@seedgrid/ai-toolkit 0.4.3 → 0.5.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.
@@ -38,286 +38,22 @@ Monorepo `front/seedgrid-fe-components` (pnpm + Turborepo, React 19). Pacote pri
38
38
  | Showcase | 0 | 1 | [[SeedGrid/SeedGrid-components/showcase\|Showcase]] |
39
39
  | **Total** | **90** | **119** | |
40
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]] |
41
+ ## Onde está cada símbolo
42
+
43
+ Procure o nome abaixo e abra só a seção dele: `Grep "^## NomeDoComponente"` no `API.md` do grupo (props completas) e depois leia essa faixa com `offset`/`limit`. Para escolher o componente por necessidade ("preciso de X"), leia [[SeedGrid/SeedGrid-components/Preciso-de|Preciso de X, use Y]] e valide as props com a skill `sg-componente`. O resumo de cada símbolo, e se ele é exportado, está em [[SeedGrid/SeedGrid-components/Catalogo|Catálogo]] (leia só se precisar escolher entre componentes parecidos).
44
+
45
+ - **Inputs de texto e documentos** (`inputs-texto/`): SgInputText, SgInputTextArea, SgInputTextSearch, SgInputEmail, SgInputPassword, SgInputPhone, SgInputCPF, SgInputCNPJ, SgInputCPFCNPJ, SgInputPostalCode, SgInputDate, SgInputBirthDate, SgInputNumber, SgInputCurrency, SgInputOTP
46
+ - **Inputs de seleção e valores** (`inputs-selecao/`): SgAutocomplete, SgCombobox, SgCheckboxGroup, SgRadioGroup, SgMultiSelect, SgMultiSelectChips, SgOrderList, SgPickList, SgPeriodSelector, SgYearPartSelector, SgToggleSwitch, SgRating, SgSlider, SgStepperInput
47
+ - **Tabela de dados** (`datatable/`): SgDatatable
48
+ - **Editor de texto rico** (`editor/`): SgTextEditor
49
+ - **Botões** (`buttons/`): SgButton, SgSplitButton, SgFloatActionButton, buildFabStorageKey, parseStoredFabDragPosition
50
+ - **Feedback e exibição** (`feedback-e-exibicao/`): SgAvatar, SgAvatarGroup, SgBadge, SgBadgeOverlay, SgSkeleton, SgToaster, SgToastHost, SgWhistler, SgWhistleHost, SgToasterHostContext, SgWhistlerHostContext, dismissSgToast, subscribeSgToasts, registerHost, unregisterHost, getActiveHostId, hasAnyHost, subscribeHostRegistry, nextHostId, dismissSgWhistle, subscribeSgWhistles, toast, sgWhistle
51
+ - **Layout e containers** (`layout/`): SgStack, SgGrid, SgPanel, SgScreen, SgGroupBox, SgCard, SgAccordion, SgPageControl, SgPageControlPage, SgExpandablePanel, SgCarousel, SgBreadcrumb, SgMenu, SgTreeView, SgDockLayout, SgDockZone, SgDockScreen, SgToolBar, SgToolbarIconButton, useSgDockLayout, renderDockContent e helpers de sgDocking.tsx, parseStoredPanelDragPosition, buildToolbarStorageKey, buildDockMenuStorageKey, resolveToolbarOrientationDirection, resolveToolbarDockOrientationDirection, buildToolbarLayoutState, buildMenuMaps, collectParentChain, computeActiveSets, resolveEffectiveActiveId, mergeExpandedIdsForActivePath, resolveTieredActiveState, resolveMenuLayoutState, resolveMenuNodeActionIntent, resolveExpandedIdsToggle, resolveMenuHintPosition, resolveHorizontalDockAlign, resolveTieredHoverPath, resolveTieredHoverIntent, resolveTieredClickState, resolveMenuSearchSelectionState, resolveTieredNodeClickIntent, resolveMegaMenuActiveNode, resolveMegaMenuInteraction, resolveMegaMenuHoverActiveId, resolveMenuAutocompleteItems, filterMenuNodes, collectMenuSearchEntries, flattenVisibleNodes, resolveMenuKeyboardAction, sgTreeFromJson, sgTreeFromJsonWithChecked
52
+ - **Navegação, overlay e wizard** (`navegacao-e-overlay/`): SgDockMenu, SgPopup, SgDialog, SgConfirmationDialog, SgWizard, SgWizardPage, resolveDockMenuOrientation, resolveDockMenuLiftDirection, buildDockMenuLayout, buildDockMenuItemMotion, buildDockMenuLabelStyle, buildDockMenuContainerStyle, buildDockMenuContextMenuState, buildDockMenuStorageKey, clampWizardStep, canNavigateToWizardStep, canProceedWizardAction
53
+ - **Gadgets (relógio, calendário, gauges, QR)** (`gadgets/`): SgCalendar, SgClock, SgTimeProvider, useSgTime, SgClockThemeProvider, useSgClockThemeResolver, createThemeResolver, registerTheme, registerThemes, getTheme, hasTheme, listThemes, unregisterTheme, clearThemes, resolveTheme, ThemeLayer, useDarkFlag, sgClockThemesBuiltIn, SgClockThemePicker, SgClockThemePreview, SgLinearGauge, SgRadialGauge, SgQRCode, SgStringAnimator, SG_STRING_ANIMATOR_DEFAULT_CHARSET, useSgTimeContext, filterClockThemes, resolveClockThemeSelection, themes/search.ts, gauge/math.ts, clampGaugeValue, valueToGaugeRatio
54
+ - **Dígitos animados** (`digits/`): SgDiscardDigit, SgFadeDigit, SgFlipDigit, SgMatrixDigit, SgNeonDigit, SgRoller3DDigit, SgSegmentDigit, SgSevenSegmentDigit
55
+ - **Providers (ambiente/persistência e realtime)** (`providers/`): SgEnvironmentProvider, useSgEnvironment, useSgNamespaceProvider, useSgPersistence, useSgPersistentState, useHasSgEnvironmentProvider, buildSgPersistenceKey, createLocalStorageStrategy, createApiPersistenceStrategy, createCompositePersistenceStrategy, readLocalPersistentState, writeLocalPersistentState, clearLocalPersistentState, resolvePersistedStateValue, SgRealtimeProvider, useSgRealtimeEvent, useSgRealtimeStatus, matchesSgRealtimeEvent
56
+ - **Fundamentos do @seedgrid/fe-components** (`fundamentos/`): masks.ts, validators.ts, blocked-email-domains.ts, rhf.ts, i18n/, injectStyles.ts, generated/compiledStyles.ts, ai-meta/
57
+ - **Pacotes de apoio** (`pacotes/`): @seedgrid/fe-theme, @seedgrid/fe-core, @seedgrid/fe-commons, @seedgrid/fe-playground
58
+ - **Módulos de tela @seedgrid/fe-*** (`modulos/`): @seedgrid/fe-apikeys, @seedgrid/fe-audit, @seedgrid/fe-backup, @seedgrid/fe-billing-platform, @seedgrid/fe-billing-user, @seedgrid/fe-login-tenancy, @seedgrid/fe-security, @seedgrid/fe-self-enter, @seedgrid/fe-subdomain-tenancy
59
+ - **Showcase** (`showcase/`): apps/showcase
@@ -0,0 +1,165 @@
1
+ ---
2
+ description: "Índice \"preciso de X, use Y\": para cada necessidade de tela (CPF, tabela, aviso, data, upload…) o componente SeedGrid certo, com sinônimos e o que não usar. Substitui a busca semântica do MCP; leia inteiro (é curto) antes de escolher um componente."
3
+ tags: [seedgrid, component, indice]
4
+ gerado-por: seedgrid-components-mcp/scripts/export-kb-data.mjs
5
+ ---
6
+ # Preciso de X, use Y
7
+
8
+ > Nota **gerada** dos manifestos de IA (`seedgrid-components-mcp`); não edite à mão. Escolheu? Confira as props com `node .ai/skills/sg-componente/scripts/validate-props.mjs <Componente> ...` e leia só a seção `## Nome` do `API.md` do grupo (ver [[SeedGrid/SeedGrid-components/Indice|Índice]]).
9
+
10
+ ## Campos de entrada
11
+
12
+ - `SgAutocomplete`: autocomplete; typeahead; search select; lookup field · não serve? SgCombobox ou SgRadioGroup
13
+ - `SgCheckboxGroup`: checkbox group; multi select; multiple choice; checklist field · não serve? SgRadioGroup ou SgCombobox
14
+ - `SgCombobox`: combobox; searchable select; lookup combo; assisted select · não serve? SgRadioGroup ou SgCheckboxGroup
15
+ - `SgInputBirthDate`: birth date; date of birth; dob; data de nascimento · não serve? SgInputDate
16
+ - `SgInputCNPJ`: cnpj; company tax id; documento cnpj; business tax id · não serve? SgInputCPF
17
+ - `SgInputCPF`: cpf; tax id; documento cpf; personal tax id · não serve? SgInputCNPJ
18
+ - `SgInputCPFCNPJ`: cpf cnpj; documento misto; hybrid document; cpf or cnpj · não serve? SgInputCPF
19
+ - `SgInputCurrency`: currency input; money field; price input; amount input · não serve? SgInputNumber
20
+ - `SgInputDate`: date input; calendar field; deadline input; schedule date · não serve? SgInputText ou SgInputTextArea
21
+ - `SgInputEmail`: email; email input; mail field; contact email · não serve? SgInputText
22
+ - `SgInputNumber`: number input; numeric field; quantity input; decimal input · não serve? SgInputText ou SgInputTextArea
23
+ - `SgInputOTP`: otp; one time password; verification code; auth code · não serve? SgInputPassword
24
+ - `SgInputPassword`: password; secret; credential input; login password · não serve? SgInputOTP
25
+ - `SgInputPhone`: phone; telephone; mobile; phone input
26
+ - `SgInputPostalCode`: postal code; zip code; cep; zipcode
27
+ - `SgInputText`: text field; text input; campo texto; campo livre · não serve? SgInputTextArea ou SgTextEditor
28
+ - `SgInputTextArea`: textarea; long text field; notes field; description input · não serve? SgInputText
29
+ - `SgInputTextSearch`: search input; search field; campo de busca; debounced search · não serve? SgInputText
30
+ - `SgMultiSelect`: multi select; multiselect; selecao multipla; multiple choice select · não serve? SgCombobox ou SgRadioGroup
31
+ - `SgMultiSelectChips`: multi select chips; multiselect tags; selecao multipla com chips; tag input select · não serve? SgCombobox ou SgRadioGroup
32
+ - `SgOrderList`: order list; sortable list; priority list; ranking list · não serve? SgPickList
33
+ - `SgPeriodSelector`: period selector; date range preset; seletor de periodo; filtro de periodo · não serve? SgInputDate
34
+ - `SgPickList`: pick list; dual list; transfer list; source target list
35
+ - `SgRadioGroup`: radio group; single choice; one of many; option group · não serve? SgCheckboxGroup
36
+ - `SgRating`: rating; stars; score; review rating
37
+ - `SgSlider`: slider; range input; seek bar; value slider · não serve? SgInputNumber
38
+ - `SgStepperInput`: stepper; quantity input; increment input; counter field · não serve? SgInputNumber
39
+ - `SgTextEditor`: text editor; rich text editor; wysiwyg; formatted text · não serve? SgInputText ou SgInputTextArea
40
+ - `SgToggleSwitch`: toggle; switch; boolean switch; on off control · não serve? SgButton
41
+ - `SgYearPartSelector`: year part selector; seletor de recorte de ano; seletor de semestre; seletor de trimestre · não serve? SgPeriodSelector
42
+
43
+ ## Botões e ações
44
+
45
+ - `SgButton`: button; cta; action button; submit button · não serve? SgPanel ou SgCard
46
+ - `SgFloatActionButton`: fab; floating action button; quick action button; floating cta · não serve? SgButton ou SgSplitButton
47
+ - `SgSplitButton`: split button; dropdown action button; menu button; compound action · não serve? SgButton
48
+ - `SgToolbarIconButton`: toolbar icon button; icon action; quick toolbar action; shortcut button · não serve? SgButton
49
+
50
+ ## Dados e tabelas
51
+
52
+ - `SgDatatable`: datatable; data grid; table; listing grid
53
+
54
+ ## Feedback e avisos
55
+
56
+ - `SgAvatar`: avatar; profile image; user avatar; identity badge · não serve? SgBadge
57
+ - `SgAvatarGroup`: avatar group; team avatars; participant stack; member avatars · não serve? SgAvatar
58
+ - `SgBadge`: badge; tag; status chip; counter badge
59
+ - `SgBadgeOverlay`: badge overlay; notification overlay; indicator overlay; statusoverlay · não serve? SgBadge
60
+ - `SgConfirmationDialog`: confirmation dialog; confirm modal; danger prompt; warning confirm · não serve? SgDialog
61
+ - `SgDialog`: dialog; modal; overlay modal; popup dialog
62
+ - `SgPopup`: popup; anchored popup; context menu popup; contextual overlay · não serve? SgDialog ou SgConfirmationDialog
63
+ - `SgSkeleton`: skeleton; loading placeholder; content shimmer; loading block
64
+ - `SgToaster`: toaster; toast container; toast notifications; toastcontainer · não serve? SgConfirmationDialog
65
+ - `SgToastHost`: toast host; toast mount point; notification host; toasthost
66
+ - `SgWhistleHost`: alert host; message stack host; persistent notifications host; alerthost
67
+ - `SgWhistler`: alert renderer; message stack; persistent notifications; alertrenderer · não serve? SgWhistleHost
68
+
69
+ ## Layout e containers
70
+
71
+ - `AppShell`: app shell; application shell; page frame; layout shell
72
+ - `SgAccordion`: accordion; collapsible sections; expansion panels; disclosure group
73
+ - `SgCard`: card; content card; summary card; surface block
74
+ - `SgCarousel`: carousel; slider; gallery slider; content rotator
75
+ - `SgDockLayout`: dock layout; workspace layout; zone layout; docking shell · não serve? SgPanel ou SgCard
76
+ - `SgDockScreen`: dock screen; workspace screen; docking shell; dock workspace
77
+ - `SgDockZone`: dock zone; dock region; layout zone; drop area
78
+ - `SgExpandablePanel`: expandable panel; drawer; sliding panel; side panel · não serve? SgDialog
79
+ - `SgGrid`: grid; responsive grid; columns layout; card grid · não serve? SgStack
80
+ - `SgGroupBox`: group box; fieldset; form group; titled section · não serve? SgAccordion
81
+ - `SgPanel`: panel; container; section; group box · não serve? SgButton
82
+ - `SgScreen`: screen; page shell; layout shell; workspace
83
+ - `SgStack`: stack; flex stack; row/column layout; linear container · não serve? SgGrid
84
+
85
+ ## Navegação e overlays
86
+
87
+ - `SgBreadcrumb`: breadcrumb; navigation trail; path navigation; hierarchy trail · não serve? SgMenu
88
+ - `SgDockMenu`: dock menu; launcher; quick menu; floating dock
89
+ - `SgMenu`: menu; sidebar; navigation menu; app menu · não serve? SgBreadcrumb
90
+ - `SgPageControl`: tabs; page control; tabbed navigation; section tabs
91
+ - `SgPageControlPage`: tab page; page control page; navigation page; tab panel
92
+ - `SgToolBar`: toolbar; action bar; command bar; floating toolbar · não serve? SgMenu
93
+ - `SgTreeView`: tree view; hierarchy tree; permission tree; navigation tree
94
+ - `SgWizard`: wizard; step form; multi-step flow; guided flow
95
+ - `SgWizardPage`: wizard page; wizard step; step page; form step
96
+
97
+ ## Gadgets e visualização
98
+
99
+ - `SgCalendar`: calendar; month calendar; date gadget; schedule calendar · não serve? SgInputDate
100
+ - `SgClock`: clock; time widget; digital clock; analog clock
101
+ - `SgClockThemePicker`: clock theme picker; theme selector; theme chooser; visual theme picker
102
+ - `SgClockThemePreview`: clock theme preview; theme thumbnail; theme preview; style preview · não serve? SgClockThemePicker
103
+ - `SgDiscardDigit`: discard digit; animated digit; counter digit; digitdisplay
104
+ - `SgFadeDigit`: fade digit; animated digit; nixie-style digit; digitdisplay
105
+ - `SgFlipDigit`: flip digit; flip clock digit; animated digit; digitdisplay
106
+ - `SgLinearGauge`: linear gauge; linear meter; level indicator; measurement bar · não serve? SgInputNumber
107
+ - `SgMatrixDigit`: matrix digit; dot matrix digit; panel digit; digitdisplay
108
+ - `SgNeonDigit`: neon digit; glow digit; highlight digit; digitdisplay
109
+ - `SgPlayground`: code sandbox; interactive editor; live demo; code playground
110
+ - `SgQRCode`: qr code; code generator; pix qr; scan code
111
+ - `SgRadialGauge`: radial gauge; speedometer; dial gauge; circular meter · não serve? SgLinearGauge
112
+ - `SgRoller3DDigit`: roller 3d digit; 3d digit; animated roller digit; digitdisplay
113
+ - `SgSegmentDigit`: segment digit; segmented digit; digital segment display; digitdisplay
114
+ - `SgSevenSegmentDigit`: seven segment digit; 7 segment display; digital clock digit; digitdisplay
115
+ - `SgStringAnimator`: string animator; animated text; text transition; display animator
116
+
117
+ ## Hooks e funções
118
+
119
+ - `buscarCep`: postal code lookup; cep search; address finder; cep
120
+ - `buscarCnpj`: company lookup; cnpj search; business finder; cnpj
121
+ - `createApiPersistenceStrategy`: server persistence; api state sync; backend storage; state
122
+ - `createCompositePersistenceStrategy`: dual persistence; fallback persistence; hybrid storage; resilient persistence
123
+ - `createHttpClient`: api client; fetch wrapper; http request client; http
124
+ - `createLocalStorageStrategy`: browser persistence; local storage strategy; client-side state storage; state
125
+ - `dismissSgToast`: dismiss toast; close notification; clear toast; dismissal
126
+ - `dismissSgWhistle`: dismiss whistle; close notification; clear alert; dismissal
127
+ - `sgWhistle`: whistle; banner; alert; notification banner
128
+ - `subscribeSgToasts`: subscribe; listen to toasts; toast observer; subscription · não serve? SgToastHost
129
+ - `subscribeSgWhistles`: subscribe; listen to whistles; whistle observer; subscription · não serve? SgWhistleHost
130
+ - `toast`: toast notification; notification; snackbar; userfeedback · não serve? SgDialog ou SgConfirmationDialog
131
+ - `useComponentsI18n`: i18n context; locale hook; translation context; locale
132
+ - `useDebouncedValue`: debounced search; debounced input; debounced state; search debounce
133
+ - `useSgClockThemeResolver`: theme resolver; clock theme; theme switcher; themeresolver · não serve? SgClockThemeProvider
134
+ - `useSgEnvironment`: environment context; environment hook; persistence context; environmentcontext · não serve? useSgPersistence ou useSgPersistentState
135
+ - `useSgNamespaceProvider`: namespace context; tenant provider; isolation scope; namespacecontext · não serve? useSgEnvironment
136
+ - `useSgPersistence`: persistence hook; state storage; persistence layer; persistencelayer · não serve? useState
137
+ - `useSgPersistentState`: persistent state; synced state; stored state; persistentstate · não serve? useState
138
+ - `useSgRealtimeEvent`: realtime event; pulse event; on notice; realtimechannel
139
+ - `useSgRealtimeStatus`: realtime status; pulse status; connection state; connectionstatus
140
+ - `useSgTheme`: theme context; theme hook; design token access; themecontext
141
+ - `useSgTime`: time context; time sync; server time; ticker
142
+ - `useTheme`: legacy theme hook; use theme; theme compatibility hook; legacythemehook · não serve? useSgTheme
143
+
144
+ ## Providers
145
+
146
+ - `SeedGridRegistry`: module registry; provider registry; app composer; navigation builder
147
+ - `SeedThemeProvider`: theme provider; seed theme; design token provider; themeprovider
148
+ - `SgClockThemeProvider`: clock theme provider; theme resolver provider; clock theme context; themeprovider · não serve? SgClockThemePicker
149
+ - `SgComponentsI18nProvider`: components i18n provider; locale provider; messages provider; translation context
150
+ - `SgEnvironmentProvider`: environment provider; persistence provider; namespace provider; storage context
151
+ - `SgRealtimeProvider`: realtime provider; pulse provider; websocket provider; push notifications
152
+ - `SgTimeProvider`: time provider; server time context; clock time provider; synced time provider
153
+ - `ThemeProvider`: legacy theme provider; theme provider compatibility; old theme provider; legacythemeprovider
154
+
155
+ ## Utilitários
156
+
157
+ - `buildScaleFromHex`: build color scale; palette generator; hex scale; colorscalegeneration
158
+ - `captureException`: error capture; exception reporter; error guard; run guarded
159
+ - `clamp`: clamp; bound number; limit value; rangeconstraint
160
+ - `extractApiErrorMessage`: rfc7807 parser; problem details; api validation message; violations message
161
+ - `getSystemMode`: system mode; prefers color scheme; detect dark mode; systemmodedetection
162
+
163
+ ## Factories
164
+
165
+ - `createApiClient`: api client; fetch wrapper; http client; authenticated fetch
@@ -2,7 +2,7 @@
2
2
  id: frontend-react
3
3
  description: Implementa telas, componentes e integração com APIs em React quando a tarefa altera o frontend.
4
4
  capabilities: [read-files, edit-files, run-checks]
5
- preferred_skills: [sg-crud-front, sg-new-screen, sg-validate-change]
5
+ preferred_skills: [sg-componente, sg-crud-front, sg-new-screen, sg-validate-change]
6
6
  ---
7
7
 
8
8
  # Frontend React
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: sg-componente
3
+ description: Escolhe o componente React SeedGrid certo para uma necessidade de tela (CPF, tabela, aviso, data, lista dupla…) e confere as props contra o tipo real antes de escrever o código. Use ao montar ou revisar tela com `@seedgrid/fe-components`; evita prop inventada e leitura de notas grandes.
4
+ metadata:
5
+ toolkit: seedgrid-ai
6
+ ---
7
+
8
+ # Escolher componente e validar props
9
+
10
+ Faz o papel do MCP de componentes com poucos tokens. Regra: **nunca invente prop**; confira antes de usar.
11
+
12
+ ## Passos
13
+
14
+ 1. **Escolher.** Leia `SeedGrid/SeedGrid-components/Preciso-de.md` (curta, um componente por linha, com sinônimos e "não serve? use outro"). Se ainda houver dúvida entre parecidos, `Grep` pelo nome em `SeedGrid/SeedGrid-components/Catalogo.md`.
15
+ 2. **Ver as props.** `node .ai/skills/sg-componente/scripts/validate-props.mjs <Componente> --list` lista nome, tipo, obrigatória (`*`) e valores aceitos de enum. Para exemplo e detalhes (a11y, ref, RHF), `Grep "^## <Componente>"` no `API.md` do grupo (grupo no `Indice.md`) e leia só essa faixa com `offset`/`limit`. Nunca leia o `API.md` inteiro.
16
+ 3. **Escrever** o código com o `Exemplos.md` do grupo como base (mesma seção por `Grep`).
17
+ 4. **Validar antes de entregar:** `node .ai/skills/sg-componente/scripts/validate-props.mjs <Componente> --jsx '<Componente id="x" ... />'` (ou `--json '{...}'`, ou `--props a,b,c`). Corrija tudo que ele apontar: prop inexistente (com sugestão de parecidas), obrigatória ausente, valor fora do enum, tipo errado. Saída 0 = ok. `--find <texto>` procura componente pelo nome.
18
+
19
+ ## Limites
20
+
21
+ - Os dados (`data/props.json`) vêm dos tipos TypeScript da versão documentada (ver `SeedGrid/Versoes.md`); se o projeto usa outra versão, confira no pacote instalado.
22
+ - O validador confere nomes, obrigatoriedade, enums e tipos simples; expressão (`{algo}`) só tem a presença conferida. Comportamento e regras de negócio continuam no `API.md`.
23
+ - Hooks e funções (`toast`, `useSgTime`…) não têm props de componente: use o `API.md` do grupo.