forlogic-core 2.0.5 → 2.0.7

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 (39) hide show
  1. package/dist/auth/services/TokenManager.d.ts +0 -1
  2. package/dist/crud/components/CrudTable.d.ts +11 -1
  3. package/dist/crud/primitives/Table.d.ts +1 -1
  4. package/dist/crud/primitives/types.d.ts +10 -0
  5. package/dist/index.css +1 -1
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/index.js +1 -1
  9. package/docs/KNOWLEDGE.md +5 -5
  10. package/docs/PROJECT_KNOWLEDGE_TEMPLATE.md +12 -9
  11. package/docs/design-system/patterns/README.md +53 -0
  12. package/{.note/memory/components/action-button-for-tables.md → docs/design-system/patterns/action-button.md} +1 -2
  13. package/{.note/memory/components/alertdialog-permanent-deletion.md → docs/design-system/patterns/alertdialog-deletion.md} +1 -2
  14. package/{.note/memory/components → docs/design-system/patterns}/baseform-custom-fields.md +2 -3
  15. package/{.note/memory/components → docs/design-system/patterns}/baseform-usage.md +1 -2
  16. package/{.note/memory/patterns/body-content-scroll-usage.md → docs/design-system/patterns/body-content-scroll.md} +1 -4
  17. package/{.note/memory/components → docs/design-system/patterns}/combo-tree.md +1 -2
  18. package/docs/design-system/patterns/components-registry.md +17 -0
  19. package/docs/design-system/patterns/crud-bulk-actions.md +12 -0
  20. package/docs/design-system/patterns/crud-config-props.md +16 -0
  21. package/docs/design-system/patterns/crud-defaults.md +17 -0
  22. package/{.note/memory/patterns/crud-toolbar-layout.md → docs/design-system/patterns/crud-toolbar.md} +8 -6
  23. package/{.note/memory/components/delete-confirmation-dialog.md → docs/design-system/patterns/delete-confirmation.md} +1 -9
  24. package/{.note/memory/patterns/dialog-body-scroll-pattern.md → docs/design-system/patterns/dialog-body-scroll.md} +3 -4
  25. package/{.note/memory/components/dialog-sizes-and-structure.md → docs/design-system/patterns/dialog-structure.md} +1 -2
  26. package/{.note/memory/components → docs/design-system/patterns}/dialog-variants.md +5 -8
  27. package/{.note/memory/patterns/header-metadata-pattern.md → docs/design-system/patterns/header-metadata.md} +1 -6
  28. package/{.note/memory → docs/design-system}/patterns/i18n-setup.md +0 -1
  29. package/{.note/memory/components/pagination-usage.md → docs/design-system/patterns/pagination.md} +1 -2
  30. package/{.note/memory/patterns/single-scroll-pattern.md → docs/design-system/patterns/single-scroll.md} +1 -2
  31. package/{.note/memory → docs/design-system}/patterns/vite-tailwind-setup.md +1 -2
  32. package/package.json +1 -1
  33. package/.note/memory/features/crud-defaults-batteries-included.md +0 -14
  34. package/.note/memory/features/crud-standardized-config-props.md +0 -3
  35. package/.note/memory/patterns/components-registry.md +0 -18
  36. package/.note/memory/patterns/crud-action-bar-3-zone-layout.md +0 -3
  37. package/.note/memory/patterns/crud-bulk-actions-dropdown-standard.md +0 -3
  38. /package/{.note/memory/patterns/core-providers-setup.md → docs/design-system/patterns/core-providers.md} +0 -0
  39. /package/{.note/memory → docs/design-system}/patterns/feature-flags.md +0 -0
package/docs/KNOWLEDGE.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # KNOWLEDGE — Regras Críticas do Projeto
2
2
 
3
3
  > 🤖 **Para IA**: Detalhes de componentes, props e tipos → ler do projeto **Admin** via cross-project.
4
- > Consulte `.note/memory/` para padrões de layout e componentes.
4
+ > Padrões universais (componentes, layout, CRUD, scroll) `docs/design-system/patterns/`
5
+ > Padrões internos do Admin → `.note/memory/`
5
6
 
6
7
  ---
7
8
 
@@ -100,10 +101,9 @@ supabase.from('tabela').select('*');
100
101
 
101
102
  | Fonte | Caminho | Conteúdo |
102
103
  |-------|---------|----------|
103
- | Memory components | `.note/memory/components/` | Props, variantes e exemplos de componentes |
104
- | Memory patterns | `.note/memory/patterns/` | Layouts, setup, convenções, regras do projeto |
105
- | Memory features | `.note/memory/features/` | Contexto de features específicas do projeto |
104
+ | **Padrões universais** | `docs/design-system/patterns/` | Componentes, CRUD, layout, scroll, setup acessível via cross-project |
105
+ | Padrões internos Admin | `.note/memory/` | Lógicas específicas do Admin (alias, doc-sync, env detection) |
106
106
  | Código-fonte da lib | Cross-project → projeto **Admin** (forlogic-core) | Props, tipos, implementação |
107
107
  | Design System (visual) | Rota `/ds` no app do projeto **Admin** | Documentação interativa |
108
108
 
109
- > ℹ️ `.note/memory/` usa 3 pastas padronizadas: `components/`, `patterns/`, `features/`. `KNOWLEDGE.md` é a fonte única de verdade para regras e convenções.
109
+ > ℹ️ Padrões universais foram migrados de `.note/memory/` para `docs/design-system/patterns/` para ficarem acessíveis a todos os projetos consumidores via `@Admin docs/design-system/patterns/`. `KNOWLEDGE.md` é a fonte única de verdade para regras e convenções.
@@ -104,14 +104,17 @@ import {
104
104
 
105
105
  ---
106
106
 
107
- ## 7. Instrução para IA
108
-
109
- Antes de criar qualquer componente, leia via cross-project:
110
-
111
- - `@Admin docs/design-system/crud.md` listagens
112
- - `@Admin docs/design-system/inputs.md` — formulários
113
- - `@Admin docs/design-system/selectors.md` — selects/combos
114
- - `@Admin docs/design-system/layout.md` — estrutura de página
115
- - `@Admin docs/design-system/dialogs.md` — modais
107
+ ## 7. Fontes de Contexto (Cross-Project)
108
+
109
+ Antes de criar qualquer componente, leia via cross-project (`@Admin`):
110
+
111
+ | O que | Onde buscar |
112
+ |-------|------------|
113
+ | Padrões universais (componentes, CRUD, layout, scroll, setup) | `@Admin docs/design-system/patterns/` |
114
+ | Índice dos padrões | `@Admin docs/design-system/patterns/README.md` |
115
+ | Documentação MD do Design System | `@Admin docs/design-system/*.md` |
116
+ | Código-fonte dos componentes | `@Admin lib/components/ui/` |
117
+ | Implementação CRUD | `@Admin lib/crud/` |
118
+ | Design System visual | Rota `/ds` no app Admin |
116
119
 
117
120
  Nunca crie componentes sem consultar esses arquivos primeiro.
@@ -0,0 +1,53 @@
1
+ # Design System — Padrões Universais
2
+
3
+ > Padrões obrigatórios para todos os projetos que consomem `forlogic-core`.
4
+ > Acessível via cross-project: `@Admin docs/design-system/patterns/`
5
+
6
+ ## Índice
7
+
8
+ ### Componentes
9
+
10
+ | Arquivo | Descrição |
11
+ |---------|-----------|
12
+ | [action-button.md](action-button.md) | Uso obrigatório do ActionButton em tabelas |
13
+ | [alertdialog-deletion.md](alertdialog-deletion.md) | AlertDialog para exclusões permanentes |
14
+ | [baseform-usage.md](baseform-usage.md) | BaseForm — formulário dinâmico CRUD |
15
+ | [baseform-custom-fields.md](baseform-custom-fields.md) | Campos customizados no BaseForm |
16
+ | [combo-tree.md](combo-tree.md) | ComboTree — seleção hierárquica |
17
+ | [delete-confirmation.md](delete-confirmation.md) | Dialog de confirmação de exclusão |
18
+ | [dialog-structure.md](dialog-structure.md) | Tamanhos e estrutura obrigatória do Dialog |
19
+ | [dialog-variants.md](dialog-variants.md) | Variantes semânticas do Dialog |
20
+ | [pagination.md](pagination.md) | Paginação padronizada |
21
+
22
+ ### Padrões de Layout & Scroll
23
+
24
+ | Arquivo | Descrição |
25
+ |---------|-----------|
26
+ | [dialog-body-scroll.md](dialog-body-scroll.md) | Scroll interno em Dialogs |
27
+ | [body-content-scroll.md](body-content-scroll.md) | Scroll em páginas (BodyContent) |
28
+ | [single-scroll.md](single-scroll.md) | Padrão de scroll único no viewport |
29
+
30
+ ### Padrões CRUD
31
+
32
+ | Arquivo | Descrição |
33
+ |---------|-----------|
34
+ | [crud-toolbar.md](crud-toolbar.md) | Layout 3 zonas da toolbar |
35
+ | [crud-bulk-actions.md](crud-bulk-actions.md) | Ações em lote via dropdown |
36
+ | [crud-defaults.md](crud-defaults.md) | Defaults obrigatórios (resize, sort, etc.) |
37
+ | [crud-config-props.md](crud-config-props.md) | Props padronizadas de configuração |
38
+
39
+ ### Setup & Configuração
40
+
41
+ | Arquivo | Descrição |
42
+ |---------|-----------|
43
+ | [core-providers.md](core-providers.md) | Setup obrigatório do CoreProviders |
44
+ | [vite-tailwind-setup.md](vite-tailwind-setup.md) | Configuração Vite + Tailwind |
45
+ | [i18n-setup.md](i18n-setup.md) | Setup de internacionalização |
46
+ | [feature-flags.md](feature-flags.md) | Feature flags disponíveis |
47
+ | [header-metadata.md](header-metadata.md) | Padrão de título/subtítulo via header |
48
+
49
+ ### Referência
50
+
51
+ | Arquivo | Descrição |
52
+ |---------|-----------|
53
+ | [components-registry.md](components-registry.md) | Registry de componentes consolidados |
@@ -1,5 +1,4 @@
1
- # Memory: components/action-button-for-tables
2
- Updated: now
1
+ # Padrão: ActionButton para Tabelas
3
2
 
4
3
  Uso de `ActionButton` é **OBRIGATÓRIO** para menus de ação em linhas de tabela.
5
4
 
@@ -1,5 +1,4 @@
1
- # Memory: components/alertdialog-permanent-deletion
2
- Updated: now
1
+ # Padrão: AlertDialog para Exclusão Permanente
3
2
 
4
3
  AlertDialog é usado **apenas** para exclusões permanentes que requerem digitação de confirmação:
5
4
 
@@ -1,5 +1,4 @@
1
- # Memory: components/baseform-custom-fields
2
- Updated: now
1
+ # Padrão: BaseForm — Campos Customizados
3
2
 
4
3
  Campos customizados no BaseForm usam `type: 'custom'` com `component` ou `render`:
5
4
 
@@ -23,7 +22,7 @@ Campos customizados no BaseForm usam `type: 'custom'` com `component` ou `render
23
22
  type: 'custom',
24
23
  component: FileUpload,
25
24
  componentProps: (formData) => ({
26
- required: !formData?.id, // Obrigatório só no cadastro
25
+ required: !formData?.id,
27
26
  accept: '.pdf,.doc',
28
27
  }),
29
28
  }
@@ -1,5 +1,4 @@
1
- # Memory: components/baseform-usage
2
- Updated: now
1
+ # Padrão: BaseForm — Formulário Dinâmico
3
2
 
4
3
  BaseForm é o formulário dinâmico do sistema CRUD, configurado via `sections` e `fields`.
5
4
 
@@ -1,5 +1,4 @@
1
- # Memory: patterns/body-content-scroll-usage
2
- Updated: now
1
+ # Padrão: Scroll em Páginas (BodyContent)
3
2
 
4
3
  ## Quando Usar Cada Abordagem
5
4
 
@@ -30,14 +29,12 @@ import { BodyContent } from 'forlogic-core';
30
29
  {/* Conteúdo original mantido sem alterações */}
31
30
  <div className="p-6">
32
31
  <h1>Título Original</h1>
33
- {/* ... */}
34
32
  </div>
35
33
  </BodyContent>
36
34
  ```
37
35
 
38
36
  ### ✅ Container Mínimo (Sem BodyContent)
39
37
  ```tsx
40
- // Apenas scroll, sem dependência do forlogic-core
41
38
  <div className="h-full overflow-y-auto">
42
39
  {/* Conteúdo original */}
43
40
  </div>
@@ -1,5 +1,4 @@
1
- # Memory: ui/components/combo-tree
2
- Updated: today
1
+ # Padrão: ComboTree — Seleção Hierárquica
3
2
 
4
3
  O componente `ComboTree` permite a seleção de dados hierárquicos com busca recursiva e separação entre expansão (chevron) e seleção (label).
5
4
 
@@ -0,0 +1,17 @@
1
+ # Referência: Registry de Componentes Consolidados
2
+
3
+ Design System mantém um registro de componentes documentados em conjunto sob entradas únicas:
4
+
5
+ - **Breadcrumb** (documenta Breadcrumb e PageBreadcrumb)
6
+ - **Calendar & Date Picker** (documenta Calendar e DatePicker)
7
+ - **Combobox** (documenta Combobox com Command usado internamente)
8
+ - **Toggle & Group** (documenta Toggle e ToggleGroup)
9
+ - **Skeleton** (documenta base Skeleton e todas as variantes)
10
+ - **AppSidebar** (documenta AppSidebar, Sidebar base, SidebarProvider, SidebarMenu*, Collapsible)
11
+ - **Accordion** (documenta Accordion e Collapsible)
12
+ - **Input** (documenta Input, InputGroup, InputGroupAddon, InputGroupButton)
13
+ - **Grid & Stack** (documenta Grid e Stack layout components)
14
+ - **Dialog** (documenta Dialog, AlertDialog, Sheet, Drawer)
15
+ - **Tabs** (documenta Tabs e TabPageLayout)
16
+
17
+ Este registro deve ser consultado antes de criar nova documentação para evitar duplicatas.
@@ -0,0 +1,12 @@
1
+ # Padrão: CRUD — Ações em Lote
2
+
3
+ As ações em lote foram unificadas em um dropdown "Ações em lote" no CrudActionBar.
4
+
5
+ **Comportamento:**
6
+ - O menu permanece visível se habilitado
7
+ - Exibe um badge com a contagem de itens selecionados
8
+ - As opções internas são desabilitadas se a seleção for zero
9
+
10
+ **Regras:**
11
+ - O componente `BulkActionBar` foi **removido** para evitar barras duplicadas e layout shifts
12
+ - Na CrudTable, a coluna de ações de linha não deve ter label no cabeçalho (usar apenas ícone ⋮ ou tooltip) para evitar confusão com o menu de ações em lote da toolbar
@@ -0,0 +1,16 @@
1
+ # Padrão: CRUD — Props Padronizadas de Configuração
2
+
3
+ A interface CrudPageConfig foi estendida para padronizar a UX em todos os CRUDs (createCrudPage, CrudTable, CrudGrid).
4
+
5
+ **Props disponíveis:**
6
+
7
+ | Prop | Default | Descrição |
8
+ |------|---------|-----------|
9
+ | `showNewButton` | `true` | Exibe botão de criação |
10
+ | `showSearch` | `true` | Exibe campo de busca |
11
+ | `showBulkActions` | — | Alias para `enableBulkActions` |
12
+ | `showActionBar` | `true` | Exibe a barra de ações (substitui `hideActionBar`) |
13
+ | `newButtonLabel` | — | Customiza texto do botão de criação |
14
+ | `searchPlaceholder` | — | Customiza placeholder da busca |
15
+
16
+ Esta padronização garante que todos os CRUDs ofereçam as mesmas capacidades de busca, criação e ações em lote de forma consistente.
@@ -0,0 +1,17 @@
1
+ # Padrão: CRUD — Defaults Obrigatórios
2
+
3
+ Todos os CRUDs (CrudTable, createCrudPage) incluem por padrão:
4
+
5
+ | Feature | Default | Nota |
6
+ |---------|---------|------|
7
+ | Column resize | `true` ✓ | Já obrigatório |
8
+ | Column manager | `true` ✓ | Botão ⋮ no header da coluna "Ações" |
9
+ | Sort | `true` ✓ | Todas as colunas ordenáveis por padrão. Use `sortable: false` para desabilitar |
10
+ | Busca | Header global | Para busca na action bar, usar `showSearch=true` |
11
+ | Paginação | 25 itens/página | — |
12
+
13
+ **NÃO vem por padrão:**
14
+ - **Agrupamento** (`enableGrouping=false`) — precisa ser habilitado explicitamente
15
+ - **Busca na action bar** (`showSearch=false`) — padrão é busca no header
16
+
17
+ **Storage keys:** `createCrudPage` gera automaticamente `columnManagerStorageKey` e `resizeStorageKey` a partir do `entityName`.
@@ -1,13 +1,12 @@
1
- # Memory: patterns/crud-toolbar-layout
2
- Updated: now
1
+ # Padrão: CRUD Toolbar — Layout 3 Zonas
3
2
 
4
- Toolbar CRUD segue layout obrigatório de 3 zonas:
3
+ O CrudActionBar implementa um layout rígido de 3 zonas:
5
4
 
6
5
  | Zona | Posição | Conteúdo |
7
6
  |------|---------|----------|
8
- | Esquerda | `justify-start` | Botão "Novo" (ação principal) |
7
+ | Esquerda | `justify-start` | Botão "Novo" (ação principal) + Dropdown ações em lote |
9
8
  | Centro | `flex-1 max-w-md` | Campo de busca (FilterBar/Input) |
10
- | Direita | `justify-end` | Botões Filtro/Ações |
9
+ | Direita | `justify-end` | Filtros customizados + Toggle de visualização |
11
10
 
12
11
  ```tsx
13
12
  // ✅ CORRETO
@@ -23,4 +22,7 @@ Toolbar CRUD segue layout obrigatório de 3 zonas:
23
22
  </div>
24
23
  ```
25
24
 
26
- **Regra**: Botão de criação NUNCA deve ficar isolado no cabeçalho do Card.
25
+ **Regras:**
26
+ - Botão de criação NUNCA deve ficar isolado no cabeçalho do Card
27
+ - Este componente substitui implementações locais de barra de ferramentas
28
+ - Garante visual consistente (bg-muted/50), comportamento e espaçamento em todos os CRUDs
@@ -1,5 +1,4 @@
1
- # Memory: components/delete-confirmation-dialog
2
- Updated: now
1
+ # Padrão: Dialog de Confirmação de Exclusão
3
2
 
4
3
  Dialog de exclusão segue padrão visual específico (NÃO usar AlertDialog para deleções simples):
5
4
 
@@ -10,24 +9,17 @@ Dialog de exclusão segue padrão visual específico (NÃO usar AlertDialog para
10
9
  <DialogTitle className="sr-only">Confirmação</DialogTitle>
11
10
  </DialogHeader>
12
11
 
13
- {/* Conteúdo centralizado */}
14
12
  <div className="flex flex-col items-center text-center space-y-3 py-4">
15
- {/* Ícone de alerta */}
16
13
  <div className="w-12 h-12 rounded-full bg-destructive/10 flex items-center justify-center">
17
14
  <AlertTriangle className="h-6 w-6 text-destructive" />
18
15
  </div>
19
-
20
- {/* Título */}
21
16
  <h3 className="text-lg font-semibold">Tem certeza?</h3>
22
-
23
- {/* Mensagem em duas linhas */}
24
17
  <p className="text-sm text-muted-foreground">
25
18
  Você está prestes a excluir este registro.<br />
26
19
  Esta ação não pode ser desfeita.
27
20
  </p>
28
21
  </div>
29
22
 
30
- {/* Botões centralizados */}
31
23
  <DialogFooter className="justify-center gap-2 mt-6">
32
24
  <Button variant="outline" onClick={() => setOpen(false)}>
33
25
  Cancelar
@@ -1,11 +1,10 @@
1
- # Memory: patterns/dialog-body-scroll-pattern
2
- Updated: now
1
+ # Padrão: Scroll Interno em Dialogs
3
2
 
4
3
  Conteúdo de Dialog/Sheet com scroll interno **DEVE** usar o padrão responsivo:
5
4
 
6
5
  ```tsx
7
6
  // ✅ CORRETO - padrão obrigatório
8
- <div className="flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1">
7
+ <div className="flex-1 min-h-0 overflow-auto py-4 px-2 -mx-2">
9
8
  {/* Conteúdo scrollável */}
10
9
  </div>
11
10
 
@@ -22,6 +21,6 @@ Conteúdo de Dialog/Sheet com scroll interno **DEVE** usar o padrão responsivo:
22
21
  | `min-h-0` | Permite shrink em flex container |
23
22
  | `overflow-auto` | Habilita scroll quando necessário |
24
23
  | `py-4` | Padding vertical padrão (16px) |
25
- | `px-1 -mx-1` | Previne corte de focus rings |
24
+ | `px-2 -mx-2` | Previne corte de focus rings (8px de respiro) |
26
25
 
27
26
  **Aplica-se a:** Dialog, Sheet, Drawer, AlertDialog
@@ -1,5 +1,4 @@
1
- # Memory: components/dialog-sizes-and-structure
2
- Updated: now
1
+ # Padrão: Dialog — Tamanhos e Estrutura
3
2
 
4
3
  Dialog possui 3 tamanhos opcionais (sem default) e estrutura obrigatória:
5
4
 
@@ -1,11 +1,8 @@
1
- # Memory: components/dialog-variants
2
- Updated: 2026-02-26
3
-
4
- ## Variantes Semânticas do Dialog
1
+ # Padrão: Dialog — Variantes Semânticas
5
2
 
6
3
  O `DialogContent` possui uma prop `variant` que controla o comportamento de fechamento:
7
4
 
8
- ### Variantes
5
+ ## Variantes
9
6
 
10
7
  | Variante | Clique externo | ESC | Botão X | Uso |
11
8
  |----------|---------------|-----|---------|-----|
@@ -15,7 +12,7 @@ O `DialogContent` possui uma prop `variant` que controla o comportamento de fech
15
12
 
16
13
  \* Com `isDirty={true}`, exibe `window.confirm` antes de fechar.
17
14
 
18
- ### Props
15
+ ## Props
19
16
 
20
17
  ```typescript
21
18
  interface DialogContentProps {
@@ -24,7 +21,7 @@ interface DialogContentProps {
24
21
  }
25
22
  ```
26
23
 
27
- ### Padrão de uso
24
+ ## Padrão de uso
28
25
 
29
26
  ```tsx
30
27
  // Formulários
@@ -37,7 +34,7 @@ interface DialogContentProps {
37
34
  <DialogContent variant="informative">
38
35
  ```
39
36
 
40
- ### Regras
37
+ ## Regras
41
38
  - Default é `'informative'` para compatibilidade com dialogs existentes
42
39
  - `destructive` oculta o botão X — fechamento apenas por botões no DialogFooter
43
40
  - `form` com `isDirty` usa `window.confirm` nativo para confirmação
@@ -5,7 +5,7 @@
5
5
  **O padrão da aplicação é exibir título, subtítulo e breadcrumbs no header** usando `usePageMetadata()`.
6
6
 
7
7
  - **NÃO** usar `BodyContent` ou `ContentContainer` com título/subtítulo internos por padrão.
8
- - Breadcrumbs, títulos e subtítulos internos ao conteúdo são **exceções** e devem ser usados **somente quando explicitamente solicitados** pelo usuário.
8
+ - Breadcrumbs, títulos e subtítulos internos ao conteúdo são **exceções** e devem ser usados **somente quando explicitamente solicitados**.
9
9
 
10
10
  ## Uso Padrão
11
11
 
@@ -55,8 +55,3 @@ usePageMetadata({
55
55
  </ContentContainer>
56
56
  </BodyContent>
57
57
  ```
58
-
59
- ## Quando usar breadcrumbs/título interno
60
-
61
- - Apenas quando o usuário **pedir explicitamente** breadcrumbs ou título dentro do conteúdo.
62
- - Páginas com navegação hierárquica profunda podem justificar breadcrumbs, mas sempre confirmar antes.
@@ -30,7 +30,6 @@ t('save') com override no app → app: "Gravar" (sobrescreve core)
30
30
  ```ts
31
31
  import { i18n } from 'forlogic-core';
32
32
  console.log('Resources:', i18n.store.data);
33
- // { 'pt-BR': { core: {...}, app: {...} } }
34
33
  ```
35
34
 
36
35
  ## Troubleshooting
@@ -1,5 +1,4 @@
1
- # Memory: components/pagination-usage
2
- Updated: now
1
+ # Padrão: Paginação
3
2
 
4
3
  **SEMPRE** usar `Pagination` ou `CrudPrimitivePagination` da lib. NUNCA implementar manualmente.
5
4
 
@@ -1,5 +1,4 @@
1
- # Memory: patterns/single-scroll-pattern
2
- Updated: now
1
+ # Padrão: Scroll Único no Viewport
3
2
 
4
3
  O padrão de Scroll Único evita barras de rolagem duplicadas na aplicação.
5
4
 
@@ -14,9 +14,8 @@ export default defineConfig(({ mode }) => ({
14
14
  }),
15
15
  ],
16
16
  resolve: {
17
- alias: { '@': path.resolve(__dirname, './src') }, // DEVE ser absoluto
17
+ alias: { '@': path.resolve(__dirname, './src') },
18
18
  },
19
- // optimizeDeps.force: true já vem por padrão via createForlogicViteConfig()
20
19
  publicDir: false,
21
20
  esbuild: { sourcemap: true, target: 'es2020' },
22
21
  build: { chunkSizeWarningLimit: 4000 },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forlogic-core",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -1,14 +0,0 @@
1
- # Memory: features/crud-defaults-batteries-included
2
-
3
- Todos os CRUDs (CrudTable, createCrudPage) agora incluem por padrão:
4
- - **Column resize** (`enableColumnResize=true`) — já era default
5
- - **Column manager** (`enableColumnManager=true`) — botão ⋮ no header da coluna "Ações"
6
- - **Sort** — **todas as colunas são ordenáveis por padrão** (`sortable` default `true`). Use `sortable: false` para desabilitar.
7
- - **Busca** — por padrão usa a busca global do header (não a action bar). Para busca na action bar, usar `showSearch=true`
8
- - **Storage keys** — `createCrudPage` gera automaticamente `columnManagerStorageKey` e `resizeStorageKey` a partir do `entityName`
9
-
10
- **NÃO vem por padrão:**
11
- - **Agrupamento** (`enableGrouping=false`) — precisa ser habilitado explicitamente com `enableGrouping={true}`
12
- - **Busca na action bar** (`showSearch=false`) — padrão é busca no header
13
-
14
- **Paginação:** padrão de 25 itens por página.
@@ -1,3 +0,0 @@
1
- # Memory: features/crud-standardized-config-props
2
-
3
- A interface CrudPageConfig foi estendida para padronizar a experiência do usuário (UX) em todos os CRUDs (createCrudPage, CrudTable, CrudGrid). As novas propriedades incluem: showNewButton (default: true), showSearch (default: true), showBulkActions (alias para enableBulkActions), showActionBar (default: true, substituindo hideActionBar), newButtonLabel (para customizar o texto do botão de criação) e searchPlaceholder. Esta padronização garante que todos os CRUDs ofereçam as mesmas capacidades de busca, criação e ações em lote de forma consistente.
@@ -1,18 +0,0 @@
1
- # Memory: documentation/consolidated-components-registry
2
- Updated: now
3
-
4
- Design System maintains a Consolidated Components Registry tracking components documented together under single documentation entries for reusability reference:
5
-
6
- - **Breadcrumb** (documents Breadcrumb and PageBreadcrumb)
7
- - **Calendar & Date Picker** (documents Calendar and DatePicker)
8
- - **Combobox** (documents Combobox with Command used internally)
9
- - **Toggle & Group** (documents Toggle and ToggleGroup)
10
- - **Skeleton** (documents base Skeleton and all skeleton variants)
11
- - **AppSidebar** (documents AppSidebar, Sidebar base component, SidebarProvider, SidebarMenu*, Collapsible integration)
12
- - **Accordion** (documents Accordion and Collapsible)
13
- - **Input** (documents Input, InputGroup, InputGroupAddon, InputGroupButton)
14
- - **Grid & Stack** (documents Grid and Stack layout components)
15
- - **Dialog** (documents Dialog, AlertDialog, Sheet positional variants, Drawer)
16
- - **Tabs** (documents Tabs and TabPageLayout)
17
-
18
- This registry must be checked before creating new documentation to avoid duplicates. The Sidebar base component from Shadcn is documented as a subsection within AppSidebarDoc for users who need to create custom sidebars outside the AppLayout context.
@@ -1,3 +0,0 @@
1
- # Memory: patterns/crud-action-bar-3-zone-layout
2
-
3
- O CrudActionBar (lib/crud/components/CrudActionBar.tsx) é o componente compartilhado que unifica a barra de ações de todos os CRUDs do sistema. Ele implementa um layout rígido de 3 zonas: ESQUERDA (Botão Novo + Dropdown de Ações em Lote), CENTRO (Barra de busca centralizada) e DIREITA (Filtros customizados + Toggle de visualização). Este componente substitui as implementações locais de barra de ferramentas no CrudTable, CrudGrid e createCrudPage, garantindo que a barra superior tenha sempre o mesmo visual (bg-muted/50), comportamento e espaçamento, independentemente do componente de visualização de dados utilizado.
@@ -1,3 +0,0 @@
1
- # Memory: patterns/crud-bulk-actions-dropdown-standard
2
-
3
- As ações em lote foram unificadas em um dropdown 'Ações em lote' no CrudActionBar. Este menu permanece visível se habilitado, exibindo um badge com a contagem de itens selecionados. As opções internas são desabilitadas se a seleção for zero. O componente BulkActionBar foi removido para evitar barras duplicadas e 'layout shifts'. Na CrudTable, a coluna de ações de linha não deve ter label no cabeçalho (usar apenas ícone ⋮ ou tooltip) para evitar confusão com o menu de ações em lote da toolbar.