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.
- package/.note/memory/architecture/documentation-strategy.md +59 -0
- package/.note/memory/patterns/core-providers-setup.md +39 -0
- package/.note/memory/patterns/deprecated-patterns.md +14 -0
- package/.note/memory/patterns/feature-flags.md +19 -0
- package/.note/memory/patterns/header-metadata-pattern.md +62 -0
- package/.note/memory/patterns/i18n-setup.md +43 -0
- package/.note/memory/patterns/vite-tailwind-setup.md +49 -0
- package/.note/memory/rules/doc-sync-rule.md +32 -0
- package/.note/memory/rules/i18n-import-rule.md +29 -0
- package/.note/memory/rules/lib-first-rule.md +42 -0
- package/.note/memory/rules/no-auto-index-rule.md +37 -9
- package/.note/memory/rules/no-delete-policy-rule.md +41 -12
- package/.note/memory/rules/rls-syntax-rule.md +50 -0
- package/.note/memory/rules/sql-naming-rule.md +23 -0
- package/.note/memory/rules/supabase-import-rule.md +31 -0
- package/.note/memory/rules/supabase-schema-rule.md +5 -4
- package/.note/memory/ui/components/combo-tree.md +9 -1
- package/.note/memory/ui/design-system/documentation-standard.md +17 -0
- package/README.md +78 -212
- package/dist/README.md +78 -212
- package/dist/bin/bootstrap.js +40 -0
- package/dist/bin/pull-docs.js +14 -22
- package/dist/components/ui/combo-tree.d.ts +2 -0
- package/dist/contexts/PageMetadataContext.d.ts +6 -1
- package/dist/docs/KNOWLEDGE.md +68 -167
- package/dist/i18n/config.d.ts +11 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/providers/CoreProviders.d.ts +31 -34
- package/docs/KNOWLEDGE.md +68 -167
- package/package.json +3 -4
- 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
|
-
###
|
|
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` |
|
|
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
|
|
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
|
|
683
|
-
|
|
|
684
|
-
| `
|
|
685
|
-
| `
|
|
686
|
-
| `
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
776
|
+
#### Traduções mostram apenas as chaves
|
|
776
777
|
|
|
777
|
-
| Causa
|
|
778
|
-
|
|
|
779
|
-
|
|
|
780
|
-
|
|
|
781
|
-
|
|
|
782
|
-
|
|
|
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
|
-
- [ ]
|
|
811
|
-
- [ ]
|
|
812
|
-
- [ ]
|
|
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:
|
|
1043
|
+
## 🛠️ CLI: Sincronizar Regras e Convenções
|
|
1056
1044
|
|
|
1057
|
-
O `forlogic-core` disponibiliza um comando CLI para sincronizar
|
|
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
|
|
1051
|
+
npx lib-update
|
|
1064
1052
|
|
|
1065
1053
|
# Ou adicione ao package.json do seu projeto:
|
|
1066
1054
|
{
|
|
1067
1055
|
"scripts": {
|
|
1068
|
-
"
|
|
1056
|
+
"lib-update": "lib-update"
|
|
1069
1057
|
}
|
|
1070
1058
|
}
|
|
1071
1059
|
|
|
1072
1060
|
# E execute:
|
|
1073
|
-
npm run
|
|
1061
|
+
npm run lib-update
|
|
1074
1062
|
```
|
|
1075
1063
|
|
|
1076
1064
|
### O que é sincronizado
|
|
1077
1065
|
|
|
1078
|
-
| Arquivo
|
|
1079
|
-
|
|
|
1080
|
-
| `docs/
|
|
1081
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
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
|
-
|
|
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.
|