forlogic-core 1.16.8 → 1.16.10

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 (36) hide show
  1. package/.note/memory/architecture/documentation-strategy.md +59 -0
  2. package/.note/memory/patterns/core-providers-setup.md +39 -0
  3. package/.note/memory/patterns/deprecated-patterns.md +14 -0
  4. package/.note/memory/patterns/feature-flags.md +19 -0
  5. package/.note/memory/patterns/header-metadata-pattern.md +62 -0
  6. package/.note/memory/patterns/i18n-setup.md +43 -0
  7. package/.note/memory/patterns/vite-tailwind-setup.md +49 -0
  8. package/.note/memory/rules/doc-sync-rule.md +32 -0
  9. package/.note/memory/rules/i18n-import-rule.md +29 -0
  10. package/.note/memory/rules/lib-first-rule.md +42 -0
  11. package/.note/memory/rules/no-auto-index-rule.md +37 -9
  12. package/.note/memory/rules/no-delete-policy-rule.md +41 -12
  13. package/.note/memory/rules/rls-syntax-rule.md +50 -0
  14. package/.note/memory/rules/sql-naming-rule.md +23 -0
  15. package/.note/memory/rules/supabase-import-rule.md +31 -0
  16. package/.note/memory/rules/supabase-schema-rule.md +5 -4
  17. package/.note/memory/ui/components/combo-tree.md +9 -1
  18. package/.note/memory/ui/design-system/documentation-standard.md +17 -0
  19. package/README.md +78 -212
  20. package/dist/README.md +78 -212
  21. package/dist/bin/bootstrap.js +40 -0
  22. package/dist/bin/pull-docs.js +14 -22
  23. package/dist/components/ui/combo-tree.d.ts +2 -0
  24. package/dist/contexts/PageMetadataContext.d.ts +6 -1
  25. package/dist/docs/KNOWLEDGE.md +68 -167
  26. package/dist/i18n/config.d.ts +11 -0
  27. package/dist/i18n/index.d.ts +1 -1
  28. package/dist/index.css +1 -1
  29. package/dist/index.css.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.esm.js +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/providers/CoreProviders.d.ts +31 -34
  34. package/docs/KNOWLEDGE.md +68 -167
  35. package/package.json +3 -4
  36. package/docs/DESIGN_SYSTEM.md +0 -12186
@@ -0,0 +1,17 @@
1
+ # Design System Documentation Standard
2
+
3
+ ## Fonte de verdade
4
+
5
+ Os arquivos `*Doc.tsx` em `src/design-system/docs/` são a fonte de verdade para documentação de componentes. Eles alimentam a rota `/ds` no app.
6
+
7
+ ## Regras para *Doc.tsx
8
+
9
+ - Devem usar `ComponentDocTemplate` com a prop `usage` obrigatória (snippet de código)
10
+ - Seções críticas como ModuleAccess e Audit Log devem incluir padrões SQL e configurações
11
+ - Exemplos visuais interativos são obrigatórios para componentes complexos
12
+
13
+ ## Acesso à documentação
14
+
15
+ - **Rota `/ds`**: Design system interativo no app
16
+ - **Cross-project**: IA lê `*Doc.tsx` diretamente do código-fonte do projeto **Admin** (forlogic-core)
17
+ - **Não há mais geração automática** de `DESIGN_SYSTEM.md` — foi removido em favor de leitura direta
package/README.md CHANGED
@@ -27,12 +27,15 @@ npm install forlogic-core
27
27
 
28
28
  **Nota**: O npm/yarn irá alertar automaticamente se alguma peer dependency estiver faltando ou com versão incompatível.
29
29
 
30
- ### Baixar documentação atualizada
30
+ ### Sincronizar regras e convenções
31
31
 
32
32
  ```bash
33
33
  npx lib-update
34
34
  ```
35
35
 
36
+ > Copia apenas `docs/KNOWLEDGE.md` (regras + mapa de módulos) e `.note/memory/rules/`.
37
+ > Documentação de componentes é acessada via rota `/ds` ou cross-project.
38
+
36
39
  ### ⚠️ IMPORTANTE: Imports de i18n
37
40
 
38
41
  **Sempre** importe hooks de internacionalização do `forlogic-core`, nunca diretamente de `react-i18next`:
@@ -114,7 +117,7 @@ src/components/SplitButton.tsx // Existe na lib (a partir de v1.12.2)
114
117
  | `/design_system` | Design System com todos os componentes documentados |
115
118
  | `forlogic-core/lib/exports/ui.ts` | Lista de exports de UI |
116
119
  | `forlogic-core/lib/index.ts` | Index principal com todos os exports |
117
- | `npx lib-update` | Baixa documentação atualizada |
120
+ | `npx lib-update` | Sincroniza regras e KNOWLEDGE.md |
118
121
 
119
122
  ### ⚠️ Exceções (quando PODE criar localmente)
120
123
 
@@ -675,17 +678,15 @@ VITE_IS_QUALIEX=true
675
678
 
676
679
  ## 🌐 Setup de Traduções para Projetos Consumidores
677
680
 
678
- O sistema de internacionalização (i18n) do `forlogic-core` carrega traduções dinamicamente do banco de dados Supabase. Para que funcione corretamente em projetos consumidores, siga os passos abaixo.
681
+ O sistema de i18n usa **namespaces**: a lib fornece traduções base no namespace `core` e cada projeto injeta suas traduções no namespace `app`. A resolução é: `app` `core` fallback `pt-BR`.
679
682
 
680
683
  ### Requisitos
681
684
 
682
- | Requisito | Descrição |
683
- | ------------------------------- | -------------------------------------------------------------------------- |
684
- | `VITE_SUPABASE_URL` | URL do projeto Supabase (mesma instância que contém `common.translations`) |
685
- | `VITE_SUPABASE_PUBLISHABLE_KEY` | Chave pública (anon key) do Supabase |
686
- | `i18next` | Peer dependency instalada |
687
- | `react-i18next` | Peer dependency instalada |
688
- | Tabela `common.translations` | Deve existir no Supabase com RLS pública para SELECT |
685
+ | Requisito | Descrição |
686
+ | ------------------ | ----------------------------------------- |
687
+ | `i18next` | Peer dependency instalada |
688
+ | `react-i18next` | Peer dependency instalada |
689
+ | `CoreProviders` | Wrapper no App.tsx |
689
690
 
690
691
  ### Passo 1: Instalar Peer Dependencies
691
692
 
@@ -693,56 +694,37 @@ O sistema de internacionalização (i18n) do `forlogic-core` carrega traduções
693
694
  npm install i18next@^25.0.0 react-i18next@^16.0.0
694
695
  ```
695
696
 
696
- ### Passo 2: Configurar Variáveis de Ambiente
697
-
698
- No arquivo `.env` do projeto consumidor:
699
-
700
- ```env
701
- # Deve apontar para a mesma instância Supabase que contém common.translations
702
- VITE_SUPABASE_URL=https://seu-projeto.supabase.co
703
- VITE_SUPABASE_PUBLISHABLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
704
- ```
705
-
706
- ### Passo 3: Aguardar i18n Inicializar no main.tsx
707
-
708
- **⚠️ CRÍTICO**: O `main.tsx` deve aguardar o i18n carregar as traduções antes de renderizar a aplicação.
709
-
710
- ```tsx
711
- // src/main.tsx
712
- import { createRoot } from 'react-dom/client';
713
- import { i18n } from 'forlogic-core';
714
- import App from './App';
715
- import './index.css';
697
+ ### Passo 2: Criar JSONs de Tradução do Projeto
716
698
 
717
- const renderApp = () => {
718
- createRoot(document.getElementById("root")!).render(<App />);
719
- };
699
+ Crie arquivos JSON flat (um por idioma) com as traduções específicas do seu projeto:
720
700
 
721
- // ✅ Aguardar i18n inicializar antes de renderizar
722
- if (i18n.isInitialized) {
723
- renderApp();
724
- } else {
725
- i18n.on('initialized', renderApp);
701
+ ```json
702
+ // src/i18n/pt-BR.json
703
+ {
704
+ "objective": "Objetivo",
705
+ "key_result": "Resultado-chave",
706
+ "cycle": "Ciclo"
726
707
  }
727
708
  ```
728
709
 
729
- **❌ ERRADO** - Renderizar sem aguardar (mostrará apenas chaves):
730
-
731
- ```tsx
732
- // ❌ NÃO FAÇA ISSO - traduções não estarão prontas
733
- createRoot(document.getElementById("root")!).render(<App />);
734
- ```
735
-
736
- ### Passo 4: Usar CoreProviders no App.tsx
710
+ ### Passo 3: Passar para CoreProviders via `appTranslations`
737
711
 
738
712
  ```tsx
739
713
  // src/App.tsx
740
714
  import { CoreProviders } from 'forlogic-core';
741
715
  import { BrowserRouter, Routes, Route } from 'react-router-dom';
716
+ import ptBR from './i18n/pt-BR.json';
717
+ // import enUS from './i18n/en-US.json'; // quando tiver
742
718
 
743
719
  function App() {
744
720
  return (
745
- <CoreProviders>
721
+ <CoreProviders
722
+ moduleAlias="performance"
723
+ appTranslations={{
724
+ 'pt-BR': ptBR,
725
+ // 'en-US': enUS,
726
+ }}
727
+ >
746
728
  <BrowserRouter>
747
729
  <Routes>
748
730
  {/* Suas rotas */}
@@ -755,10 +737,10 @@ function App() {
755
737
  export default App;
756
738
  ```
757
739
 
758
- ### Passo 5: Usar useTranslation do forlogic-core
740
+ ### Passo 4: Usar useTranslation do forlogic-core
759
741
 
760
742
  ```tsx
761
- // ❌ ERRADO - Cria instância separada
743
+ // ❌ ERRADO - Cria instância separada (erro NO_I18NEXT_INSTANCE)
762
744
  import { useTranslation } from 'react-i18next';
763
745
 
764
746
  // ✅ CORRETO - Usa mesma instância configurada
@@ -766,53 +748,59 @@ import { useTranslation } from 'forlogic-core';
766
748
 
767
749
  function MeuComponente() {
768
750
  const { t } = useTranslation();
769
- return <h1>{t('minha.chave')}</h1>;
751
+ return (
752
+ <div>
753
+ <h1>{t('objective')}</h1> {/* namespace app → "Objetivo" */}
754
+ <Button>{t('save')}</Button> {/* app → não encontra → core → "Salvar" */}
755
+ </div>
756
+ );
770
757
  }
771
758
  ```
772
759
 
760
+ ### Como funciona a resolução de namespaces
761
+
762
+ ```
763
+ t('save')
764
+ 1. Busca em namespace 'app' (projeto) → não encontrou
765
+ 2. Busca em namespace 'core' (lib) → "Salvar" ✅
766
+
767
+ t('objective')
768
+ 1. Busca em namespace 'app' (projeto) → "Objetivo" ✅
769
+
770
+ t('save') com override no app
771
+ 1. Busca em namespace 'app' → "Gravar" ✅ (sobrescreve o core)
772
+ ```
773
+
773
774
  ### Troubleshooting
774
775
 
775
- #### Traduções mostram apenas as chaves (ex: `common.save` ao invés de "Salvar")
776
+ #### Traduções mostram apenas as chaves
776
777
 
777
- | Causa | Solução |
778
- | -------------------------------- | -------------------------------------------------------------------- |
779
- | `main.tsx` não aguarda i18n | Adicionar verificação `i18n.isInitialized` conforme Passo 3 |
780
- | Peer dependencies faltando | Instalar `i18next` e `react-i18next` |
781
- | Variáveis de ambiente incorretas | Verificar `VITE_SUPABASE_URL` e `VITE_SUPABASE_PUBLISHABLE_KEY` |
782
- | Supabase diferente | Verificar se aponta para a mesma instância com `common.translations` |
783
- | Import de `react-i18next` direto | Usar import de `forlogic-core` |
778
+ | Causa | Solução |
779
+ | ------------------------------------ | ------------------------------------------------------ |
780
+ | Peer dependencies faltando | Instalar `i18next` e `react-i18next` |
781
+ | Import de `react-i18next` direto | Usar import de `forlogic-core` |
782
+ | `appTranslations` não passado | Adicionar prop no `CoreProviders` |
783
+ | JSON com formato errado | Deve ser flat: `{ "key": "value" }`, sem nesting |
784
784
 
785
785
  #### Debug: Verificar se traduções foram carregadas
786
786
 
787
787
  ```tsx
788
788
  import { i18n } from 'forlogic-core';
789
789
 
790
- // No console
791
790
  console.log('i18n initialized:', i18n.isInitialized);
792
791
  console.log('Current language:', i18n.language);
793
792
  console.log('Loaded resources:', i18n.store.data);
793
+ // Deve mostrar: { 'pt-BR': { core: {...}, app: {...} } }
794
794
  ```
795
795
 
796
- #### Habilitar modo debug
797
-
798
- Adicione no `.env`:
799
-
800
- ```env
801
- VITE_I18N_DEBUG_MODE=true
802
- ```
803
-
804
- Com debug ativo, chaves traduzidas aparecem como `[chave ✅]` e chaves não encontradas como `[⚠️ chave]`.
805
-
806
796
  ### Checklist de Configuração
807
797
 
808
798
  ```markdown
809
799
  - [ ] Instalou `i18next@^25.0.0` e `react-i18next@^16.0.0`?
810
- - [ ] Configurou `VITE_SUPABASE_URL` apontando para a instância correta?
811
- - [ ] Configurou `VITE_SUPABASE_PUBLISHABLE_KEY`?
812
- - [ ] O `main.tsx` aguarda `i18n.isInitialized` antes de renderizar?
800
+ - [ ] Criou JSONs de tradução em `src/i18n/pt-BR.json`?
801
+ - [ ] Passou `appTranslations` para o `CoreProviders`?
802
+ - [ ] Todos os imports de `useTranslation` são de `forlogic-core` (nunca de `react-i18next`)?
813
803
  - [ ] O `App.tsx` usa `CoreProviders`?
814
- - [ ] Todos os imports de `useTranslation` são de `forlogic-core`?
815
- - [ ] A tabela `common.translations` existe e tem RLS pública para SELECT?
816
804
  ```
817
805
 
818
806
  ---
@@ -1052,162 +1040,40 @@ function MeuDialog({ open, onOpenChange }) {
1052
1040
  - "Adicione navegação para criar" (ação ≠ navegação)
1053
1041
  - "Crie um link para nova entidade" (link = navegação, não ação)
1054
1042
 
1055
- ## 🛠️ CLI: Sincronização de Documentação
1043
+ ## 🛠️ CLI: Sincronizar Regras e Convenções
1056
1044
 
1057
- O `forlogic-core` disponibiliza um comando CLI para sincronizar a documentação centralizada do banco de dados para projetos consumidores.
1045
+ O `forlogic-core` disponibiliza um comando CLI para sincronizar regras e convenções arquiteturais para projetos consumidores.
1058
1046
 
1059
1047
  ### Uso
1060
1048
 
1061
1049
  ```bash
1062
1050
  # Via npx (recomendado)
1063
- npx forlogic-core-pull-docs
1051
+ npx lib-update
1064
1052
 
1065
1053
  # Ou adicione ao package.json do seu projeto:
1066
1054
  {
1067
1055
  "scripts": {
1068
- "pull-docs": "forlogic-core-pull-docs"
1056
+ "lib-update": "lib-update"
1069
1057
  }
1070
1058
  }
1071
1059
 
1072
1060
  # E execute:
1073
- npm run pull-docs
1061
+ npm run lib-update
1074
1062
  ```
1075
1063
 
1076
1064
  ### O que é sincronizado
1077
1065
 
1078
- | Arquivo | Descrição |
1079
- | ------------------------------ | ------------------------------ |
1080
- | `docs/FORLOGIC_CORE_README.md` | README completo da biblioteca |
1081
- | `docs/DESIGN_SYSTEM.md` | Documentação do Design System |
1082
- | `docs/KNOWLEDGE.md` | Knowledge base para IA/Lovable |
1083
-
1084
- ### Benefícios
1066
+ | Arquivo/Diretório | Descrição |
1067
+ | ----------------------- | ------------------------------------------------ |
1068
+ | `docs/KNOWLEDGE.md` | Regras críticas + mapa de módulos para IA/Lovable |
1069
+ | `.note/memory/rules/` | Regras de schema, RLS, índices, .env |
1085
1070
 
1086
- - **Centralizado**: Documentação mantida em um único lugar (banco de dados)
1087
- - ✅ **Sempre atualizado**: Execute o comando para obter a versão mais recente
1088
- - ✅ **Sem cópia manual**: Não precisa copiar arquivos entre projetos
1089
- - ✅ **Ideal para Custom Knowledge**: Use os arquivos gerados no Lovable
1071
+ ### O que NÃO é sincronizado (leitura via cross-project projeto **Admin**)
1090
1072
 
1091
- ### Requisitos
1092
-
1093
- O comando usa credenciais públicas do Supabase do forlogic-core e não requer configuração adicional.
1094
-
1095
- ---
1073
+ | Recurso | Como acessar |
1074
+ | --------------------------- | --------------------------------------------------------- |
1075
+ | Documentação de componentes | Rota `/ds` no projeto **Admin** ou cross-project |
1076
+ | Props, exemplos, tipos | Ler dos `*Doc.tsx` via cross-project → projeto **Admin** |
1077
+ | Padrões de layout/CRUD | `.note/memory/patterns/` via cross-project → **Admin** |
1096
1078
 
1097
- <!-- AUTO_GENERATED_START -->
1098
-
1099
- ### 📚 Estatísticas da Documentação
1100
-
1101
- **61 Componentes UI** | **6 Tokens** | **9 Ferramentas CRUD** | **10 Core/Utilitários**
1102
-
1103
- ---
1104
-
1105
- ### 🎨 Fundamentos (Tokens)
1106
-
1107
- - [Ícones](./docs/DESIGN_SYSTEM.md#iconsfoundation) - Biblioteca completa de ícones usando Lucide React - uma biblioteca de ícones
1108
- open-source com mais de 1400 ícones em SVG.
1109
- - [Sistema de Cores](./docs/DESIGN_SYSTEM.md#colorsfoundation) - Sistema de cores profissional completo com escala neutra (0-1000), escala de marca (50-900),
1110
- e cores funcionais (sucesso, aviso, perigo, sharp). Todas as cores garantem conformidade de contraste WCAG AA.
1111
- - [Sistema de Espaçamento](./docs/DESIGN_SYSTEM.md#spacing) - Escala de espaçamento consistente baseada em uma unidade base de 4px (0.25rem),
1112
- garantindo ritmo visual e alinhamento em todos os componentes.
1113
- - [Sistema de Raio de Borda](./docs/DESIGN_SYSTEM.md#radius) - Arredondamento de cantos consistente que cria harmonia visual e
1114
- define a personalidade da interface.
1115
- - [Sistema de Sombras e Elevação](./docs/DESIGN_SYSTEM.md#shadows) - Sombras criam profundidade e hierarquia, ajudando usuários a entender as relações
1116
- espaciais entre elementos e seus estados interativos.
1117
- - [Sistema Tipográfico](./docs/DESIGN_SYSTEM.md#typographyfoundation) - Sistema tipográfico profissional com Display (2 níveis), Headings (6 níveis), Subtitle (2 níveis),
1118
- Body (2 níveis), Label (2 níveis) e Monospace (Code). Todos os níveis incluem escalamento responsivo e conformidade de acessibilidade.
1119
-
1120
- ### 🧩 Componentes UI
1121
-
1122
- - [Accordion & Collapsible](./docs/DESIGN_SYSTEM.md#accordion) - Componentes de expansão/colapso para revelar conteúdo. Accordion para múltiplos itens, Collapsible para item único.
1123
- - [Action Button](./docs/DESIGN_SYSTEM.md#actionbutton) - Botão compacto otimizado para ações em linhas de tabela e menus dropdown. OBRIGATÓRIO para todas as ações em tabelas CRUD.
1124
- - [Alert](./docs/DESIGN_SYSTEM.md#alert) - Exibe uma mensagem de destaque para chamar a atenção do usuário. O componente inclui ícone automático baseado na variante.
1125
- - [AppHeader](./docs/DESIGN_SYSTEM.md#appheader) - Header principal da aplicação com título dinâmico, busca global integrada ao CRUD, ações customizáveis e informações do usuário. Altura fixa de 56px (h-14).
1126
- - [AppSidebar](./docs/DESIGN_SYSTEM.md#appsidebar) - Sidebar de navegação principal da aplicação com suporte a pin/unpin, permissões assíncronas, ações de módulo (SidebarActionTrigger), redimensionamento e navegação hierárquica.
1127
- - [Assinatura Digital (Sign)](./docs/DESIGN_SYSTEM.md#sign) - Componente único multi-provider de assinatura digital com fluxo em 3 fases: Upload → Assinatura → Download. Suporta Clicksign (widget JavaScript embedded v2.1.0, API v3) e D4Sign (iframe embedded, API v1). O provedor é resolvido automaticamente pela configuração da unidade na tabela sign_configs.
1128
- - [Avatar](./docs/DESIGN_SYSTEM.md#avatar) - Um elemento de imagem com fallback para representar o usuário.
1129
- - [Badge](./docs/DESIGN_SYSTEM.md#badge) - Exibe um badge ou um componente que se parece com um badge.
1130
- - [BodyContent](./docs/DESIGN_SYSTEM.md#bodycontent) - Container principal de página com breadcrumb, background neutro e suporte a múltiplos containers de conteúdo.
1131
- - [Breadcrumb](./docs/DESIGN_SYSTEM.md#breadcrumb) - Exibe o caminho até o recurso atual usando uma hierarquia de links.
1132
- - [Button](./docs/DESIGN_SYSTEM.md#button) - Componente de botão com variantes semânticas, tamanhos e estados. Use para ações primárias, secundárias e destrutivas.
1133
- - [Button Group](./docs/DESIGN_SYSTEM.md#buttongroup) - Agrupa botões relacionados com espaçamento e bordas apropriados.
1134
- - [Calendar & Date Picker](./docs/DESIGN_SYSTEM.md#calendar) - Componentes para seleção de datas. O Calendar exibe um calendário interativo, enquanto o Date Picker combina um campo de input com o calendário em um popover.
1135
- - [Card](./docs/DESIGN_SYSTEM.md#card) - Exibe um card com cabeçalho, conteúdo e rodapé.
1136
- - [Chart](./docs/DESIGN_SYSTEM.md#chart) - Sistema de gráficos baseado em Recharts com suporte a temas e tooltips customizados. Inclui barras, linhas, áreas, pizza, radar e mais.
1137
- - [Checkbox](./docs/DESIGN_SYSTEM.md#checkbox) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
1138
- - [Color Picker](./docs/DESIGN_SYSTEM.md#colorpicker) - Seletor de cores com paleta predefinida e seletor customizado.
1139
- - [Combobox](./docs/DESIGN_SYSTEM.md#combobox) - Componente versátil para seleção única ou múltipla com busca inteligente. Combina Popover e Command para autocomplete. O componente Command é usado internamente para fornecer funcionalidades de busca e navegação por teclado.
1140
- - [ComboTree](./docs/DESIGN_SYSTEM.md#combotree) - Componente de seleção hierárquica (tree view) com busca recursiva, expansão por chevron e seleção por label.
1141
- - [Context Menu](./docs/DESIGN_SYSTEM.md#contextmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um clique com o botão direito do mouse.
1142
- - [DataList](./docs/DESIGN_SYSTEM.md#datalist) - Sistema de lista de dados com composição de componentes. Ideal para exibir informações estruturadas em formato de cards.
1143
- - [Dialog](./docs/DESIGN_SYSTEM.md#dialog) - Uma janela sobreposta à janela principal ou a outra janela de diálogo, tornando o conteúdo abaixo inerte. Inclui variações para seleção, tabelas e formulários.
1144
- - [Dropdown Menu](./docs/DESIGN_SYSTEM.md#dropdownmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um botão ou elemento interativo.
1145
- - [Empty State](./docs/DESIGN_SYSTEM.md#emptystate) - Componente para exibir estados vazios com ícone, mensagem e ação opcional.
1146
- - [Form](./docs/DESIGN_SYSTEM.md#form) - Construindo formulários com React Hook Form e Zod.
1147
- - [Grid & Stack](./docs/DESIGN_SYSTEM.md#grid) - Sistema de layout com Grid responsivo e Stack flexível para organização de conteúdo.
1148
- - [Hover Card](./docs/DESIGN_SYSTEM.md#hovercard) - Para usuários com visão visualizarem conteúdo disponível por trás de um link. Exibe informações adicionais ao passar o mouse.
1149
- - [Icon Picker](./docs/DESIGN_SYSTEM.md#iconpicker) - Seletor de ícones da biblioteca Lucide React com busca integrada.
1150
- - [Input](./docs/DESIGN_SYSTEM.md#input) - Campo de entrada de texto com suporte a todos os tipos HTML. Inclui Label para rótulos acessíveis e InputGroup para agrupar inputs com addons de prefixo, sufixo, ícones e botões.
1151
- - [Label](./docs/DESIGN_SYSTEM.md#label) - Renderiza uma label acessível associada a controles de formulário.
1152
- - [Leadership](./docs/DESIGN_SYSTEM.md#leadership) - Módulo hierárquico de liderança para gerenciar relações de liderança entre usuários do Qualiex. Inclui componentes visuais, hooks de API e utilitários para construção de árvores hierárquicas.
1153
- - [Loading](./docs/DESIGN_SYSTEM.md#skeleton) - Componentes para estados de carregamento: Skeleton (placeholders), Spinner (indicador de loading), e LoadingState (gerenciamento declarativo).
1154
- - [Media](./docs/DESIGN_SYSTEM.md#media) - Módulo completo para upload, edição e renderização de imagens e vídeos. Inclui editores interativos, renderizadores otimizados e hook genérico de upload.
1155
- - [Menubar](./docs/DESIGN_SYSTEM.md#menubar) - Barra de menu horizontal com submenus, checkboxes e radio items. Ideal para barras de navegação de aplicações desktop-like, seguindo padrões de aplicações nativas.
1156
- - [ModulesDialog](./docs/DESIGN_SYSTEM.md#modulesdialog) - Dialog para navegação entre módulos do sistema.
1157
- - [Navigation Menu](./docs/DESIGN_SYSTEM.md#navigationmenu) - Uma coleção de links para navegação em websites.
1158
- - [Onboarding Dialog](./docs/DESIGN_SYSTEM.md#onboardingdialog) - Componente para fluxos de onboarding em múltiplos passos. Suporta imagens estáticas, GIFs, navegação entre steps e indicador de progresso com dropdown.
1159
- - [Pagination](./docs/DESIGN_SYSTEM.md#pagination) - Componente de paginação padronizado com layout de 3 colunas, seletor de itens por página e navegação completa.
1160
- - [Pagination](./docs/DESIGN_SYSTEM.md#pagination) - Barra de paginação completa com seletor de itens por página e controles de navegação.
1161
- - [Places](./docs/DESIGN_SYSTEM.md#places) - Módulo para gerenciar estruturas hierárquicas de locais integrado com a API Qualiex. Inclui visualização em árvore, gestão de acessos e componentes reutilizáveis.
1162
- - [Popover](./docs/DESIGN_SYSTEM.md#popover) - Exibe conteúdo rico em um portal, acionado por um botão.
1163
- - [Progress](./docs/DESIGN_SYSTEM.md#progress) - Exibe um indicador mostrando o progresso de conclusão de uma tarefa, tipicamente exibido como uma barra de progresso.
1164
- - [QualiexUserField](./docs/DESIGN_SYSTEM.md#qualiexuserfield) - Campo de seleção de usuários integrado com a API Qualiex. Suporta seleção única ou múltipla, display customizado, filtros e funciona perfeitamente dentro de Dialogs.
1165
- - [Radio Group](./docs/DESIGN_SYSTEM.md#radiogroup) - Um conjunto de botões marcáveis—conhecidos como botões de rádio—onde apenas um pode ser marcado por vez.
1166
- - [RequiredFieldsCounter](./docs/DESIGN_SYSTEM.md#requiredfieldscounter) - Indica o progresso de preenchimento de campos obrigatórios em formulários com feedback visual e tooltips informativos.
1167
- - [Resizable](./docs/DESIGN_SYSTEM.md#resizable) - Painéis redimensionáveis para criar layouts flexíveis e adaptáveis. Baseado em react-resizable-panels.
1168
- - [Rich Text Editor](./docs/DESIGN_SYSTEM.md#richtexteditor) - Editor de texto rico construído com Tiptap, suportando formatação visual, edição de código HTML e preview. Ideal para formulários que precisam de conteúdo formatado.
1169
- - [ScrollArea](./docs/DESIGN_SYSTEM.md#scrollarea) - Área de rolagem customizada com scrollbars estilizadas, baseada no Radix UI ScrollArea.
1170
- - [Select](./docs/DESIGN_SYSTEM.md#select) - Exibe uma lista de opções para o usuário escolher—acionada por um botão.
1171
- - [Separator](./docs/DESIGN_SYSTEM.md#separator) - Separa visual ou semanticamente o conteúdo.
1172
- - [Slider](./docs/DESIGN_SYSTEM.md#slider) - Um input onde o usuário seleciona um valor dentro de um intervalo determinado.
1173
- - [Split Button](./docs/DESIGN_SYSTEM.md#splitbutton) - Combina uma ação principal com ações secundárias em um menu dropdown. Ideal para destacar a ação prioritária enquanto mantém alternativas acessíveis.
1174
- - [Step Selector](./docs/DESIGN_SYSTEM.md#stepselector) - Componente de navegação para Wizards multi-etapas. Combina um DropdownMenu para seleção de etapas com uma barra de Progress para indicação visual do progresso.
1175
- - [Switch](./docs/DESIGN_SYSTEM.md#switch) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
1176
- - [Table](./docs/DESIGN_SYSTEM.md#table) - Uma tabela semântica para exibir dados tabulares. Inclui TableResizeHandle para redimensionamento de colunas e TruncatedCell para texto truncado com tooltip automático.
1177
- - [Tabs & TabPageLayout](./docs/DESIGN_SYSTEM.md#tabs) - Componentes de navegação em abas. Tabs para conteúdo simples e TabPageLayout para páginas completas com header fixo e scroll.
1178
- - [Textarea](./docs/DESIGN_SYSTEM.md#textarea) - Exibe um textarea de formulário ou um componente que se parece com um textarea.
1179
- - [Toast](./docs/DESIGN_SYSTEM.md#toast) - Componente de notificação toast usando Sonner. Feedback temporário e não bloqueante que informa rapidamente o usuário sem competir visualmente com outros Toasts.
1180
- - [Toggle](./docs/DESIGN_SYSTEM.md#toggle) - Botões de dois estados que podem estar ligados ou desligados, individualmente ou em grupo.
1181
- - [Tooltip](./docs/DESIGN_SYSTEM.md#tooltip) - Um popup que exibe informações relacionadas a um elemento quando o elemento recebe foco do teclado ou o mouse passa sobre ele.
1182
- - [Truncated Cell](./docs/DESIGN_SYSTEM.md#truncatedcell) - Componente utilitário que trunca texto longo e exibe tooltip automático quando o conteúdo está cortado.
1183
-
1184
- ### 🚀 Sistema CRUD
1185
-
1186
- - [BaseForm](./docs/DESIGN_SYSTEM.md#baseform) - Formulário dinâmico baseado em configuração de seções e campos, suportando múltiplos tipos de campo, validação e layouts flexíveis.
1187
- - [createCrudPage](./docs/DESIGN_SYSTEM.md#createcrudpage) - Factory de alto nível que gera uma página CRUD completa com ~15 linhas de configuração declarativa.
1188
- - [CRUD de Fornecedores](./docs/DESIGN_SYSTEM.md#crudusers) - Padrão completo de CRUD para gestão de fornecedores com 16 campos, incluindo ordenação, filtros avançados, exportação/importação e ações em massa.
1189
- - [CRUD Primitives](./docs/DESIGN_SYSTEM.md#crudprimitives) - Componentes de baixo nível para interfaces CRUD totalmente customizadas com controle total sobre layout e comportamento.
1190
- - [CRUD System](./docs/DESIGN_SYSTEM.md#crudsystem) - Sistema completo para criação rápida de interfaces CRUD com validação, busca, paginação e muito mais.
1191
- - [CrudActionBar](./docs/DESIGN_SYSTEM.md#crudactionbar) - Barra de ações unificada usada por todos os componentes CRUD (CrudTable, CrudGrid, createCrudPage) para garantir UX consistente.
1192
- - [CrudGrid](./docs/DESIGN_SYSTEM.md#crudgrid) - Componente para exibir dados em formato de grade (cards) com todas as funcionalidades CRUD. Alternativa visual ao CrudTable para listagens com layout mais visual.
1193
- - [CrudTable](./docs/DESIGN_SYSTEM.md#crudtable) - Componente de tabela CRUD completo com ordenação, seleção, resize de colunas, ações em massa e paginação integrada com useCrud.
1194
- - [Sistema CRUD](./docs/DESIGN_SYSTEM.md#crudoverview) - Componentes padronizados para operações Create, Read, Update e Delete com arquitetura em 3 níveis de abstração.
1195
-
1196
- ### 🔧 Core & Utilitários
1197
-
1198
- - [Autenticação (Auth)](./docs/DESIGN_SYSTEM.md#auth) - Sistema completo de autenticação OAuth integrado com Qualiex. Inclui gerenciamento de tokens, rotas protegidas, suporte multi-tenant e troca de unidades.
1199
- - [Contexts](./docs/DESIGN_SYSTEM.md#contexts) - Contexts globais da biblioteca forlogic-core para gerenciamento de estado da aplicação. Incluem LocaleContext para i18n, NavigationContext para navegação, PageMetadataContext para metadados de página e ModalStateContext para rastreamento de modais.
1200
- - [Environments (Configuração por Project ID)](./docs/DESIGN_SYSTEM.md#environments) - Configurações de ambiente são extraídas automaticamente do arquivo auto-gerado pelo Lovable (src/integrations/supabase/client.ts) e injetadas pelo vite.config.ts. Não é necessário configurar variáveis Supabase no .env.
1201
- - [ErrorBoundary](./docs/DESIGN_SYSTEM.md#errorboundary) - Componente de classe React que captura erros de renderização em componentes filhos, evitando que a aplicação inteira quebre.
1202
- - [Hooks](./docs/DESIGN_SYSTEM.md#hooks) - Hooks utilitários da biblioteca forlogic-core para otimização, dados, formatação e UI. Todos os hooks seguem padrões React e são compatíveis com React Query quando aplicável.
1203
- - [Internacionalização (i18n)](./docs/DESIGN_SYSTEM.md#i18n) - Sistema de internacionalização usando react-i18next com traduções carregadas de um arquivo JSON estático local (lib/i18n/translations.json). Suporta pt-BR, en-US e es-ES com gerenciamento de preferências do usuário.
1204
- - [Acesso Módulo (ModuleAccess)](./docs/DESIGN_SYSTEM.md#moduleaccess) - Sistema de autorização para verificar e bloquear acesso a módulos da plataforma Qualiex. Proteção automática de rotas via CoreProviders e hook para verificações programáticas.
1205
- - [Segurança (Vite Config)](./docs/DESIGN_SYSTEM.md#security) - Plugin de segurança para Vite que aplica headers OWASP, CSP configurável, CORS seguro e proteções contra ataques comuns. Configuração centralizada para todos os projetos Forlogic.
1206
- - [Services](./docs/DESIGN_SYSTEM.md#services) - Serviços utilitários da biblioteca forlogic-core para operações CRUD, envio de emails, tratamento de erros e gerenciamento de traduções. Todos os serviços são singletons prontos para uso.
1207
- - [Utilities](./docs/DESIGN_SYSTEM.md#utilities) - Funções utilitárias essenciais exportadas pela biblioteca para manipulação de classes CSS, formatação de datas e valores monetários.
1208
-
1209
- ---
1210
-
1211
- > 📘 **Documentação Completa**: Para ver detalhes de props, exemplos de uso e acessibilidade de cada componente, consulte o [Design System Completo](./docs/DESIGN_SYSTEM.md).
1212
-
1213
- <!-- AUTO_GENERATED_END -->
1079
+ > 💡 A IA consegue ler o código-fonte do forlogic-core no projeto **Admin** via cross-project visibility.