forlogic-core 2.1.3 → 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.
Files changed (69) hide show
  1. package/.note/memory/features/import/attachment-idempotency-registry.md +8 -8
  2. package/.note/memory/features/import/attachment-strategy.md +30 -30
  3. package/.note/memory/patterns/admin-i18n-policy.md +20 -20
  4. package/.note/memory/patterns/alias-url-resolution.md +69 -69
  5. package/.note/memory/patterns/doc-sync-rule.md +35 -35
  6. package/.note/memory/patterns/documentation-standard.md +17 -17
  7. package/.note/memory/patterns/dynamic-supabase-config.md +4 -4
  8. package/.note/memory/patterns/environment-detection-logic.md +35 -35
  9. package/.note/memory/patterns/i18n-architecture.md +3 -3
  10. package/README.md +68 -68
  11. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +6 -2
  12. package/dist/components/ui/__tests__/status-badge.test.d.ts +1 -0
  13. package/dist/components/ui/status-badge.d.ts +49 -0
  14. package/dist/crud/primitives/Table.d.ts +1 -1
  15. package/dist/crud/primitives/types.d.ts +6 -0
  16. package/dist/exports/crud.d.ts +5 -0
  17. package/dist/exports/ui.d.ts +1 -0
  18. package/dist/index.css +1 -1
  19. package/dist/index.css.map +1 -1
  20. package/dist/index.esm.js +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/utils/color.d.ts +26 -0
  23. package/dist/utils/index.d.ts +1 -0
  24. package/docs/PUBLISH.md +168 -0
  25. package/docs/WORKSPACE_KNOWLEDGE.md +119 -119
  26. package/docs/design-system/README.md +1 -1
  27. package/docs/design-system/buttons-actions.md +130 -130
  28. package/docs/design-system/charts-dashboards.md +340 -301
  29. package/docs/design-system/crud.md +174 -114
  30. package/docs/design-system/data-display.md +108 -103
  31. package/docs/design-system/dialogs.md +212 -212
  32. package/docs/design-system/domain.md +317 -317
  33. package/docs/design-system/examples.md +275 -275
  34. package/docs/design-system/foundation.md +1 -1
  35. package/docs/design-system/inputs.md +131 -131
  36. package/docs/design-system/layout.md +202 -154
  37. package/docs/design-system/navigation.md +271 -325
  38. package/docs/design-system/notifications-feedback.md +34 -34
  39. package/docs/design-system/patterns/README.md +53 -53
  40. package/docs/design-system/patterns/action-button.md +22 -22
  41. package/docs/design-system/patterns/alertdialog-deletion.md +46 -46
  42. package/docs/design-system/patterns/baseform-custom-fields.md +59 -59
  43. package/docs/design-system/patterns/baseform-usage.md +42 -42
  44. package/docs/design-system/patterns/body-content-scroll.md +56 -56
  45. package/docs/design-system/patterns/combo-tree.md +23 -23
  46. package/docs/design-system/patterns/components-registry.md +17 -17
  47. package/docs/design-system/patterns/core-providers.md +39 -39
  48. package/docs/design-system/patterns/crud-bulk-actions.md +12 -12
  49. package/docs/design-system/patterns/crud-config-props.md +16 -16
  50. package/docs/design-system/patterns/crud-defaults.md +17 -17
  51. package/docs/design-system/patterns/crud-toolbar.md +28 -28
  52. package/docs/design-system/patterns/delete-confirmation.md +40 -40
  53. package/docs/design-system/patterns/dialog-body-scroll.md +26 -26
  54. package/docs/design-system/patterns/dialog-structure.md +32 -32
  55. package/docs/design-system/patterns/dialog-variants.md +41 -41
  56. package/docs/design-system/patterns/feature-flags.md +24 -20
  57. package/docs/design-system/patterns/header-metadata.md +57 -57
  58. package/docs/design-system/patterns/i18n-setup.md +117 -117
  59. package/docs/design-system/patterns/pagination.md +27 -27
  60. package/docs/design-system/patterns/single-scroll.md +39 -39
  61. package/docs/design-system/patterns/vite-tailwind-setup.md +48 -48
  62. package/docs/design-system/platform.md +18 -18
  63. package/docs/design-system/selectors.md +236 -236
  64. package/docs/design-system/tables-grids.md +95 -38
  65. package/package.json +144 -144
  66. package/dist/README.md +0 -1079
  67. package/dist/bin/bootstrap.js +0 -40
  68. package/dist/bin/pull-docs.js +0 -186
  69. 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;
@@ -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';
@@ -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`.
@@ -3,7 +3,7 @@
3
3
 
4
4
  # Design System — forlogic-core
5
5
 
6
- > Gerado automaticamente em 2026-04-10
6
+ > Gerado automaticamente em 2026-04-14
7
7
  > Total: 92 componentes documentados em 15 categorias
8
8
 
9
9
  ## Categorias