forlogic-core 2.1.4 → 2.1.5
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/features/import/attachment-idempotency-registry.md +8 -8
- package/.note/memory/features/import/attachment-strategy.md +30 -30
- package/.note/memory/patterns/admin-i18n-policy.md +20 -20
- package/.note/memory/patterns/alias-url-resolution.md +69 -69
- package/.note/memory/patterns/doc-sync-rule.md +35 -35
- package/.note/memory/patterns/documentation-standard.md +17 -17
- package/.note/memory/patterns/dynamic-supabase-config.md +4 -4
- package/.note/memory/patterns/environment-detection-logic.md +35 -35
- package/.note/memory/patterns/i18n-architecture.md +3 -3
- package/README.md +68 -68
- package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +6 -2
- package/dist/components/ui/__tests__/status-badge.test.d.ts +1 -0
- package/dist/components/ui/status-badge.d.ts +49 -0
- package/dist/crud/primitives/Table.d.ts +1 -1
- package/dist/crud/primitives/types.d.ts +6 -0
- package/dist/exports/crud.d.ts +5 -0
- package/dist/exports/ui.d.ts +1 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/color.d.ts +26 -0
- package/dist/utils/index.d.ts +1 -0
- package/docs/PUBLISH.md +168 -0
- package/docs/WORKSPACE_KNOWLEDGE.md +119 -119
- package/docs/design-system/README.md +1 -1
- package/docs/design-system/buttons-actions.md +130 -130
- package/docs/design-system/charts-dashboards.md +340 -301
- package/docs/design-system/crud.md +174 -114
- package/docs/design-system/data-display.md +108 -103
- package/docs/design-system/dialogs.md +212 -212
- package/docs/design-system/domain.md +317 -317
- package/docs/design-system/examples.md +275 -275
- package/docs/design-system/foundation.md +1 -1
- package/docs/design-system/inputs.md +131 -131
- package/docs/design-system/layout.md +202 -154
- package/docs/design-system/navigation.md +271 -325
- package/docs/design-system/notifications-feedback.md +34 -34
- package/docs/design-system/patterns/README.md +53 -53
- package/docs/design-system/patterns/action-button.md +22 -22
- package/docs/design-system/patterns/alertdialog-deletion.md +46 -46
- package/docs/design-system/patterns/baseform-custom-fields.md +59 -59
- package/docs/design-system/patterns/baseform-usage.md +42 -42
- package/docs/design-system/patterns/body-content-scroll.md +56 -56
- package/docs/design-system/patterns/combo-tree.md +23 -23
- package/docs/design-system/patterns/components-registry.md +17 -17
- package/docs/design-system/patterns/core-providers.md +39 -39
- package/docs/design-system/patterns/crud-bulk-actions.md +12 -12
- package/docs/design-system/patterns/crud-config-props.md +16 -16
- package/docs/design-system/patterns/crud-defaults.md +17 -17
- package/docs/design-system/patterns/crud-toolbar.md +28 -28
- package/docs/design-system/patterns/delete-confirmation.md +40 -40
- package/docs/design-system/patterns/dialog-body-scroll.md +26 -26
- package/docs/design-system/patterns/dialog-structure.md +32 -32
- package/docs/design-system/patterns/dialog-variants.md +41 -41
- package/docs/design-system/patterns/feature-flags.md +24 -20
- package/docs/design-system/patterns/header-metadata.md +57 -57
- package/docs/design-system/patterns/i18n-setup.md +117 -117
- package/docs/design-system/patterns/pagination.md +27 -27
- package/docs/design-system/patterns/single-scroll.md +39 -39
- package/docs/design-system/patterns/vite-tailwind-setup.md +48 -48
- package/docs/design-system/platform.md +18 -18
- package/docs/design-system/selectors.md +236 -236
- package/docs/design-system/tables-grids.md +95 -38
- package/package.json +144 -144
- package/dist/README.md +0 -1079
- package/dist/bin/bootstrap.js +0 -40
- package/dist/bin/pull-docs.js +0 -186
- package/dist/docs/KNOWLEDGE.md +0 -109
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gera uma cor de fundo pastel a partir de uma cor hex semântica.
|
|
3
|
+
* Útil para StatusBadge e outros componentes que precisam de fundo suave.
|
|
4
|
+
*
|
|
5
|
+
* @param hex - Cor em formato hex (ex: '#2E7D5B')
|
|
6
|
+
* @param opacity - Opacidade do fundo (0-1, default 0.1)
|
|
7
|
+
* @returns String rgba (ex: 'rgba(46, 125, 91, 0.1)')
|
|
8
|
+
*/
|
|
9
|
+
export declare function generatePastelBg(hex: string, opacity?: number): string;
|
|
10
|
+
/**
|
|
11
|
+
* Calcula a luminância relativa de uma cor hex (WCAG 2.0).
|
|
12
|
+
* Retorna um valor entre 0 (preto) e 1 (branco).
|
|
13
|
+
*
|
|
14
|
+
* @param hex - Cor em formato hex (ex: '#2E7D5B')
|
|
15
|
+
* @returns Luminância relativa (0-1)
|
|
16
|
+
*/
|
|
17
|
+
export declare function getLuminance(hex: string): number;
|
|
18
|
+
/**
|
|
19
|
+
* Calcula a razão de contraste entre duas cores (WCAG 2.0).
|
|
20
|
+
* Razão >= 4.5 atende AA para texto normal; >= 7 atende AAA.
|
|
21
|
+
*
|
|
22
|
+
* @param hex1 - Primeira cor hex
|
|
23
|
+
* @param hex2 - Segunda cor hex
|
|
24
|
+
* @returns Razão de contraste (1-21)
|
|
25
|
+
*/
|
|
26
|
+
export declare function getContrastRatio(hex1: string, hex2: string): number;
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export { formatDatetime, formatDate } from './formatters/dateFormatters';
|
|
|
5
5
|
export { formatCurrency } from './formatters/currencyFormatters';
|
|
6
6
|
export declare const debounce: <T extends (...args: any[]) => any>(func: T, wait: number) => ((...args: Parameters<T>) => void);
|
|
7
7
|
export declare const slugify: (text: string) => string;
|
|
8
|
+
export { generatePastelBg, getLuminance, getContrastRatio } from './color';
|
|
8
9
|
export { handleExternalLink, buildModuleUrl } from './linkHelpers';
|
package/docs/PUBLISH.md
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# 📦 Como Publicar a Biblioteca forlogic-core
|
|
2
|
+
|
|
3
|
+
> **Nota:** Para documentação de uso e instalação da biblioteca, consulte [README.md](../README.md)
|
|
4
|
+
|
|
5
|
+
## Configuração Inicial
|
|
6
|
+
|
|
7
|
+
A biblioteca está configurada para ser publicada no NPM como `forlogic-core`.
|
|
8
|
+
|
|
9
|
+
### Arquivos de Configuração
|
|
10
|
+
|
|
11
|
+
- `package.json` - Configuração principal com campos de biblioteca
|
|
12
|
+
- `rollup.config.js` - Configuração de build
|
|
13
|
+
- `tsconfig.json` - Configuração TypeScript unificada
|
|
14
|
+
- `.npmignore` - Arquivos excluídos da publicação (inclui `docs/` - não publicada no NPM)
|
|
15
|
+
- `README.md` - Documentação principal (copiada para dist/)
|
|
16
|
+
|
|
17
|
+
## Comandos Disponíveis
|
|
18
|
+
|
|
19
|
+
### 1. Build da Biblioteca
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run build:lib
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Teste de Publicação (Dry Run)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm publish --dry-run
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 3. Release Automatizado (Recomendado)
|
|
32
|
+
|
|
33
|
+
**Script JavaScript**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Release patch (1.0.0 → 1.0.1)
|
|
37
|
+
node scripts/publish.js patch
|
|
38
|
+
|
|
39
|
+
# Release minor (1.0.0 → 1.1.0)
|
|
40
|
+
node scripts/publish.js minor
|
|
41
|
+
|
|
42
|
+
# Release major (1.0.0 → 2.0.0)
|
|
43
|
+
node scripts/publish.js major
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 4. Publicação Manual (Legado)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Incrementar versão e publicar manualmente
|
|
50
|
+
npm version patch # 1.0.0 → 1.0.1
|
|
51
|
+
npm version minor # 1.0.0 → 1.1.0
|
|
52
|
+
npm version major # 1.0.0 → 2.0.0
|
|
53
|
+
|
|
54
|
+
# Publicar versão atual
|
|
55
|
+
npm publish
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Processo de Release Automatizado
|
|
59
|
+
|
|
60
|
+
### Scripts Automatizados
|
|
61
|
+
|
|
62
|
+
Os scripts `scripts/publish/release.js` e `scripts/publish/release.sh` executam automaticamente:
|
|
63
|
+
|
|
64
|
+
1. **Verificação**: Confere se não há mudanças pendentes no Git
|
|
65
|
+
2. **Build**: Executa `npm run build:lib` com Rollup
|
|
66
|
+
3. **Versão**: Incrementa versão no `package.json`
|
|
67
|
+
4. **Publicação**: Publica no NPM
|
|
68
|
+
5. **Tags**: Envia tags para o GitHub
|
|
69
|
+
|
|
70
|
+
### Processo Manual (Legado)
|
|
71
|
+
|
|
72
|
+
1. **Build**: Executa `npm run build:lib` com Rollup
|
|
73
|
+
2. **Geração**: Cria arquivos CJS, ESM e declarações TypeScript
|
|
74
|
+
3. **Publicação**: Usa `npm publish` diretamente
|
|
75
|
+
|
|
76
|
+
## Estrutura da Publicação
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
dist/
|
|
80
|
+
├── index.js # CommonJS
|
|
81
|
+
├── index.esm.js # ES Modules
|
|
82
|
+
├── index.d.ts # TypeScript declarations
|
|
83
|
+
├── index.css # CSS da biblioteca
|
|
84
|
+
├── package.json # Configuração da lib
|
|
85
|
+
└── README.md # Documentação
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Documentação para Usuários
|
|
89
|
+
|
|
90
|
+
A documentação completa está **consolidada no README.md** e disponível publicamente no repositório GitHub:
|
|
91
|
+
|
|
92
|
+
- **[📖 README.md](../README.md)** - Guia completo (~350 linhas)
|
|
93
|
+
- ✅ Regras críticas e checklist
|
|
94
|
+
- ✅ Quick start CRUD
|
|
95
|
+
- ✅ Migrations e RLS
|
|
96
|
+
- ✅ Troubleshooting
|
|
97
|
+
- ✅ Referência rápida
|
|
98
|
+
|
|
99
|
+
### ⚙️ Documentação no Pacote NPM
|
|
100
|
+
|
|
101
|
+
O `README.md` é incluído no pacote NPM publicado (`dist/README.md`) e contém toda a documentação necessária em um único arquivo otimizado para leitura por IA e desenvolvedores.
|
|
102
|
+
|
|
103
|
+
#### Documentações Modulares
|
|
104
|
+
|
|
105
|
+
Algumas features possuem documentação detalhada em arquivos específicos para desenvolvimento local:
|
|
106
|
+
|
|
107
|
+
- `lib/crud/components/CUSTOM_FIELDS.md` - Campos customizados do BaseForm
|
|
108
|
+
- `lib/qualiex/places/README.md` - Sistema de gestores de locais
|
|
109
|
+
|
|
110
|
+
**Importante:** Essas documentações **não são publicadas no NPM**. O conteúdo consolidado está no `README.md` principal que é copiado para `dist/README.md`.
|
|
111
|
+
|
|
112
|
+
## Verificação antes da Publicação
|
|
113
|
+
|
|
114
|
+
1. ✅ Build bem-sucedido (`npm run build:lib`)
|
|
115
|
+
2. ✅ Dry-run sem erros (`npm publish --dry-run`)
|
|
116
|
+
3. ✅ Versão correta no `package.json`
|
|
117
|
+
4. ✅ README atualizado
|
|
118
|
+
5. ✅ Changelog documentado (se aplicável)
|
|
119
|
+
|
|
120
|
+
## Troubleshooting
|
|
121
|
+
|
|
122
|
+
### Erro de Permissão NPM
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm login
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Build Falha
|
|
129
|
+
|
|
130
|
+
Verifique se todas as dependências estão instaladas:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
npm install
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Rollup Errors
|
|
137
|
+
|
|
138
|
+
Confirme que o `rollup.config.js` está correto e que o `lib/index.ts` existe e exporta tudo necessário.
|
|
139
|
+
|
|
140
|
+
### CSS Import Issues
|
|
141
|
+
|
|
142
|
+
Se houver erro ao importar CSS, use:
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
import 'forlogic-core/index.css';
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
O CSS é extraído para `index.css` durante o build da biblioteca.
|
|
149
|
+
|
|
150
|
+
# Comandos Disponíveis
|
|
151
|
+
|
|
152
|
+
## Instalar a última versão do forlogic-core
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npm i forlogic-core@latest
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Build do projeto
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npm run build
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Limpar cache do NPM
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm cache clean --force
|
|
168
|
+
```
|
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
# forlogic-core — Workspace Knowledge
|
|
2
|
-
|
|
3
|
-
> **Documento para colar no Lovable Workspace Knowledge** de projetos consumidores.
|
|
4
|
-
> Funciona como mapa de referências cruzadas entre os projetos.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Projetos do Ecossistema
|
|
9
|
-
|
|
10
|
-
| Projeto | Alias | Responsabilidade |
|
|
11
|
-
|---------|-------|-----------------|
|
|
12
|
-
| **forlogic-docs** | `@forlogic-docs` | Fonte canônica de regras, padrões, templates e documentação |
|
|
13
|
-
| **qualiex-admin** | `@Admin` | Código-fonte da lib `forlogic-core`, Design System e docs gerados |
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Onde buscar cada informação
|
|
18
|
-
|
|
19
|
-
### Regras e Padrões → `@forlogic-docs`
|
|
20
|
-
|
|
21
|
-
| O que | Caminho |
|
|
22
|
-
|-------|---------|
|
|
23
|
-
| Constituição (regras canônicas) | `docs/engenharia/padroes/constitution.md` |
|
|
24
|
-
| Guia de migração de ícones | `docs/engenharia/padroes/icon-migration.md` |
|
|
25
|
-
| Guia de publicação da lib | `docs/engenharia/devops/publish.md` |
|
|
26
|
-
| Prompt: auditoria | `docs/templates/prompts/audit.md` |
|
|
27
|
-
| Prompt: criação de tela | `docs/templates/prompts/new-screen.md` |
|
|
28
|
-
| Prompt: starter template | `docs/templates/prompts/starter.md` |
|
|
29
|
-
| ADRs (decisões de arquitetura) | `docs/adrs/` |
|
|
30
|
-
| Specs de API | `docs/apis/` |
|
|
31
|
-
|
|
32
|
-
### Código-fonte e Design System → `@Admin`
|
|
33
|
-
|
|
34
|
-
| O que | Caminho |
|
|
35
|
-
|-------|---------|
|
|
36
|
-
| Código dos componentes UI | `lib/components/ui/` |
|
|
37
|
-
| Sistema CRUD | `lib/crud/` |
|
|
38
|
-
| Barrel exports (lista completa) | `lib/exports/ui.ts`, `lib/exports/index.ts` |
|
|
39
|
-
| Documentação MD do Design System | `docs/design-system/` |
|
|
40
|
-
| Golden snippets (exemplos) | `docs/design-system/examples.md` |
|
|
41
|
-
| Docs interativos (código-fonte) | `src/design-system/docs/` |
|
|
42
|
-
| Hooks compartilhados | `lib/hooks/` |
|
|
43
|
-
| Providers (CoreProviders) | `lib/providers/` |
|
|
44
|
-
| Serviços (Base, Email, Error) | `lib/services/` |
|
|
45
|
-
| Config Vite/Tailwind | `lib/vite/`, `lib/tailwind/` |
|
|
46
|
-
| Spec do módulo Queries | `spec/queries.md` |
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Schema do Projeto
|
|
51
|
-
|
|
52
|
-
> ⚠️ **O schema é definido no `README.md` de cada projeto consumidor.** Consulte-o antes de qualquer query.
|
|
53
|
-
|
|
54
|
-
```ts
|
|
55
|
-
// ✅ CORRETO — substituir pelo schema do projeto
|
|
56
|
-
supabase.schema('SCHEMA_DO_PROJETO').from('tabela').select('*');
|
|
57
|
-
|
|
58
|
-
// ❌ ERRADO
|
|
59
|
-
supabase.from('tabela').select('*');
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Regras Invioláveis (resumo)
|
|
65
|
-
|
|
66
|
-
> Fonte canônica: `@forlogic-docs docs/engenharia/padroes/constitution.md`
|
|
67
|
-
|
|
68
|
-
| Regra | Detalhe |
|
|
69
|
-
|-------|---------|
|
|
70
|
-
| Schema obrigatório | `.schema('...')` em toda query Supabase |
|
|
71
|
-
| Sem DELETE físico | Soft delete com `deleted_at` |
|
|
72
|
-
| Lib-first | Usar `forlogic-core` antes de criar componente |
|
|
73
|
-
| Import do Supabase | `getSupabaseClient()` de `forlogic-core` |
|
|
74
|
-
| Import de i18n | `useTranslation` de `forlogic-core`, nunca de `react-i18next` |
|
|
75
|
-
| Sem hardcoded admin | Nunca localStorage/sessionStorage para roles |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Design System — Categorias
|
|
80
|
-
|
|
81
|
-
> Para ver props e exemplos: `@Admin docs/design-system/<arquivo>.md`
|
|
82
|
-
|
|
83
|
-
| Categoria | Arquivo |
|
|
84
|
-
|-----------|---------|
|
|
85
|
-
| Fundação | `foundation.md` |
|
|
86
|
-
| Botões & Ações | `buttons-actions.md` |
|
|
87
|
-
| Inputs | `inputs.md` |
|
|
88
|
-
| Seletores | `selectors.md` |
|
|
89
|
-
| Data Display | `data-display.md` |
|
|
90
|
-
| Data Grid | `tables-grids.md` |
|
|
91
|
-
| Navegação | `navigation.md` |
|
|
92
|
-
| Dialogs | `dialogs.md` |
|
|
93
|
-
| Layout | `layout.md` |
|
|
94
|
-
| CRUD | `crud.md` |
|
|
95
|
-
|
|
96
|
-
### Aliases
|
|
97
|
-
|
|
98
|
-
| Original | Alias(es) |
|
|
99
|
-
|----------|-----------|
|
|
100
|
-
| Combobox | SelectSearch, MultiSelect, EntitySelect |
|
|
101
|
-
| ComboTree | TreeSelect |
|
|
102
|
-
| ActionButton | ActionMenu, RowActions |
|
|
103
|
-
| CrudPrimitiveTable | DataTable |
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Instrução para IA — Leitura Obrigatória
|
|
108
|
-
|
|
109
|
-
**QUANDO** criar ou modificar qualquer arquivo `.tsx`:
|
|
110
|
-
|
|
111
|
-
- **SE** contém tabela/CRUD → **LER** `@Admin docs/design-system/crud.md` ANTES
|
|
112
|
-
- **SE** contém formulário → **LER** `@Admin docs/design-system/inputs.md` ANTES
|
|
113
|
-
- **SE** contém modal → **LER** `@Admin docs/design-system/dialogs.md` ANTES
|
|
114
|
-
- **SE** contém botões/ações → **LER** `@Admin docs/design-system/buttons-actions.md` ANTES
|
|
115
|
-
- **SE** é layout → **LER** `@Admin docs/design-system/layout.md` ANTES
|
|
116
|
-
|
|
117
|
-
**SEMPRE** consultar `@Admin docs/design-system/examples.md` como referência.
|
|
118
|
-
|
|
119
|
-
**VALIDAÇÃO**: Todo import de componente visual DEVE vir de `forlogic-core`.
|
|
1
|
+
# forlogic-core — Workspace Knowledge
|
|
2
|
+
|
|
3
|
+
> **Documento para colar no Lovable Workspace Knowledge** de projetos consumidores.
|
|
4
|
+
> Funciona como mapa de referências cruzadas entre os projetos.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Projetos do Ecossistema
|
|
9
|
+
|
|
10
|
+
| Projeto | Alias | Responsabilidade |
|
|
11
|
+
|---------|-------|-----------------|
|
|
12
|
+
| **forlogic-docs** | `@forlogic-docs` | Fonte canônica de regras, padrões, templates e documentação |
|
|
13
|
+
| **qualiex-admin** | `@Admin` | Código-fonte da lib `forlogic-core`, Design System e docs gerados |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Onde buscar cada informação
|
|
18
|
+
|
|
19
|
+
### Regras e Padrões → `@forlogic-docs`
|
|
20
|
+
|
|
21
|
+
| O que | Caminho |
|
|
22
|
+
|-------|---------|
|
|
23
|
+
| Constituição (regras canônicas) | `docs/engenharia/padroes/constitution.md` |
|
|
24
|
+
| Guia de migração de ícones | `docs/engenharia/padroes/icon-migration.md` |
|
|
25
|
+
| Guia de publicação da lib | `docs/engenharia/devops/publish.md` |
|
|
26
|
+
| Prompt: auditoria | `docs/templates/prompts/audit.md` |
|
|
27
|
+
| Prompt: criação de tela | `docs/templates/prompts/new-screen.md` |
|
|
28
|
+
| Prompt: starter template | `docs/templates/prompts/starter.md` |
|
|
29
|
+
| ADRs (decisões de arquitetura) | `docs/adrs/` |
|
|
30
|
+
| Specs de API | `docs/apis/` |
|
|
31
|
+
|
|
32
|
+
### Código-fonte e Design System → `@Admin`
|
|
33
|
+
|
|
34
|
+
| O que | Caminho |
|
|
35
|
+
|-------|---------|
|
|
36
|
+
| Código dos componentes UI | `lib/components/ui/` |
|
|
37
|
+
| Sistema CRUD | `lib/crud/` |
|
|
38
|
+
| Barrel exports (lista completa) | `lib/exports/ui.ts`, `lib/exports/index.ts` |
|
|
39
|
+
| Documentação MD do Design System | `docs/design-system/` |
|
|
40
|
+
| Golden snippets (exemplos) | `docs/design-system/examples.md` |
|
|
41
|
+
| Docs interativos (código-fonte) | `src/design-system/docs/` |
|
|
42
|
+
| Hooks compartilhados | `lib/hooks/` |
|
|
43
|
+
| Providers (CoreProviders) | `lib/providers/` |
|
|
44
|
+
| Serviços (Base, Email, Error) | `lib/services/` |
|
|
45
|
+
| Config Vite/Tailwind | `lib/vite/`, `lib/tailwind/` |
|
|
46
|
+
| Spec do módulo Queries | `spec/queries.md` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Schema do Projeto
|
|
51
|
+
|
|
52
|
+
> ⚠️ **O schema é definido no `README.md` de cada projeto consumidor.** Consulte-o antes de qualquer query.
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
// ✅ CORRETO — substituir pelo schema do projeto
|
|
56
|
+
supabase.schema('SCHEMA_DO_PROJETO').from('tabela').select('*');
|
|
57
|
+
|
|
58
|
+
// ❌ ERRADO
|
|
59
|
+
supabase.from('tabela').select('*');
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Regras Invioláveis (resumo)
|
|
65
|
+
|
|
66
|
+
> Fonte canônica: `@forlogic-docs docs/engenharia/padroes/constitution.md`
|
|
67
|
+
|
|
68
|
+
| Regra | Detalhe |
|
|
69
|
+
|-------|---------|
|
|
70
|
+
| Schema obrigatório | `.schema('...')` em toda query Supabase |
|
|
71
|
+
| Sem DELETE físico | Soft delete com `deleted_at` |
|
|
72
|
+
| Lib-first | Usar `forlogic-core` antes de criar componente |
|
|
73
|
+
| Import do Supabase | `getSupabaseClient()` de `forlogic-core` |
|
|
74
|
+
| Import de i18n | `useTranslation` de `forlogic-core`, nunca de `react-i18next` |
|
|
75
|
+
| Sem hardcoded admin | Nunca localStorage/sessionStorage para roles |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Design System — Categorias
|
|
80
|
+
|
|
81
|
+
> Para ver props e exemplos: `@Admin docs/design-system/<arquivo>.md`
|
|
82
|
+
|
|
83
|
+
| Categoria | Arquivo |
|
|
84
|
+
|-----------|---------|
|
|
85
|
+
| Fundação | `foundation.md` |
|
|
86
|
+
| Botões & Ações | `buttons-actions.md` |
|
|
87
|
+
| Inputs | `inputs.md` |
|
|
88
|
+
| Seletores | `selectors.md` |
|
|
89
|
+
| Data Display | `data-display.md` |
|
|
90
|
+
| Data Grid | `tables-grids.md` |
|
|
91
|
+
| Navegação | `navigation.md` |
|
|
92
|
+
| Dialogs | `dialogs.md` |
|
|
93
|
+
| Layout | `layout.md` |
|
|
94
|
+
| CRUD | `crud.md` |
|
|
95
|
+
|
|
96
|
+
### Aliases
|
|
97
|
+
|
|
98
|
+
| Original | Alias(es) |
|
|
99
|
+
|----------|-----------|
|
|
100
|
+
| Combobox | SelectSearch, MultiSelect, EntitySelect |
|
|
101
|
+
| ComboTree | TreeSelect |
|
|
102
|
+
| ActionButton | ActionMenu, RowActions |
|
|
103
|
+
| CrudPrimitiveTable | DataTable |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Instrução para IA — Leitura Obrigatória
|
|
108
|
+
|
|
109
|
+
**QUANDO** criar ou modificar qualquer arquivo `.tsx`:
|
|
110
|
+
|
|
111
|
+
- **SE** contém tabela/CRUD → **LER** `@Admin docs/design-system/crud.md` ANTES
|
|
112
|
+
- **SE** contém formulário → **LER** `@Admin docs/design-system/inputs.md` ANTES
|
|
113
|
+
- **SE** contém modal → **LER** `@Admin docs/design-system/dialogs.md` ANTES
|
|
114
|
+
- **SE** contém botões/ações → **LER** `@Admin docs/design-system/buttons-actions.md` ANTES
|
|
115
|
+
- **SE** é layout → **LER** `@Admin docs/design-system/layout.md` ANTES
|
|
116
|
+
|
|
117
|
+
**SEMPRE** consultar `@Admin docs/design-system/examples.md` como referência.
|
|
118
|
+
|
|
119
|
+
**VALIDAÇÃO**: Todo import de componente visual DEVE vir de `forlogic-core`.
|