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.
- package/dist/auth/services/TokenManager.d.ts +0 -1
- package/dist/crud/components/CrudTable.d.ts +11 -1
- package/dist/crud/primitives/Table.d.ts +1 -1
- package/dist/crud/primitives/types.d.ts +10 -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/docs/KNOWLEDGE.md +5 -5
- package/docs/PROJECT_KNOWLEDGE_TEMPLATE.md +12 -9
- package/docs/design-system/patterns/README.md +53 -0
- package/{.note/memory/components/action-button-for-tables.md → docs/design-system/patterns/action-button.md} +1 -2
- package/{.note/memory/components/alertdialog-permanent-deletion.md → docs/design-system/patterns/alertdialog-deletion.md} +1 -2
- package/{.note/memory/components → docs/design-system/patterns}/baseform-custom-fields.md +2 -3
- package/{.note/memory/components → docs/design-system/patterns}/baseform-usage.md +1 -2
- package/{.note/memory/patterns/body-content-scroll-usage.md → docs/design-system/patterns/body-content-scroll.md} +1 -4
- package/{.note/memory/components → docs/design-system/patterns}/combo-tree.md +1 -2
- package/docs/design-system/patterns/components-registry.md +17 -0
- package/docs/design-system/patterns/crud-bulk-actions.md +12 -0
- package/docs/design-system/patterns/crud-config-props.md +16 -0
- package/docs/design-system/patterns/crud-defaults.md +17 -0
- package/{.note/memory/patterns/crud-toolbar-layout.md → docs/design-system/patterns/crud-toolbar.md} +8 -6
- package/{.note/memory/components/delete-confirmation-dialog.md → docs/design-system/patterns/delete-confirmation.md} +1 -9
- package/{.note/memory/patterns/dialog-body-scroll-pattern.md → docs/design-system/patterns/dialog-body-scroll.md} +3 -4
- package/{.note/memory/components/dialog-sizes-and-structure.md → docs/design-system/patterns/dialog-structure.md} +1 -2
- package/{.note/memory/components → docs/design-system/patterns}/dialog-variants.md +5 -8
- package/{.note/memory/patterns/header-metadata-pattern.md → docs/design-system/patterns/header-metadata.md} +1 -6
- package/{.note/memory → docs/design-system}/patterns/i18n-setup.md +0 -1
- package/{.note/memory/components/pagination-usage.md → docs/design-system/patterns/pagination.md} +1 -2
- package/{.note/memory/patterns/single-scroll-pattern.md → docs/design-system/patterns/single-scroll.md} +1 -2
- package/{.note/memory → docs/design-system}/patterns/vite-tailwind-setup.md +1 -2
- package/package.json +1 -1
- package/.note/memory/features/crud-defaults-batteries-included.md +0 -14
- package/.note/memory/features/crud-standardized-config-props.md +0 -3
- package/.note/memory/patterns/components-registry.md +0 -18
- package/.note/memory/patterns/crud-action-bar-3-zone-layout.md +0 -3
- package/.note/memory/patterns/crud-bulk-actions-dropdown-standard.md +0 -3
- /package/{.note/memory/patterns/core-providers-setup.md → docs/design-system/patterns/core-providers.md} +0 -0
- /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
|
-
>
|
|
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
|
-
|
|
|
104
|
-
|
|
|
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/`
|
|
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.
|
|
108
|
-
|
|
109
|
-
Antes de criar qualquer componente, leia via cross-project:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
#
|
|
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,
|
|
25
|
+
required: !formData?.id,
|
|
27
26
|
accept: '.pdf,.doc',
|
|
28
27
|
}),
|
|
29
28
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#
|
|
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>
|
|
@@ -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`.
|
package/{.note/memory/patterns/crud-toolbar-layout.md → docs/design-system/patterns/crud-toolbar.md}
RENAMED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
#
|
|
2
|
-
Updated: now
|
|
1
|
+
# Padrão: CRUD Toolbar — Layout 3 Zonas
|
|
3
2
|
|
|
4
|
-
|
|
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` |
|
|
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
|
-
**
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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-
|
|
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-
|
|
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,11 +1,8 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
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
|
-
|
|
15
|
+
## Props
|
|
19
16
|
|
|
20
17
|
```typescript
|
|
21
18
|
interface DialogContentProps {
|
|
@@ -24,7 +21,7 @@ interface DialogContentProps {
|
|
|
24
21
|
}
|
|
25
22
|
```
|
|
26
23
|
|
|
27
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
@@ -14,9 +14,8 @@ export default defineConfig(({ mode }) => ({
|
|
|
14
14
|
}),
|
|
15
15
|
],
|
|
16
16
|
resolve: {
|
|
17
|
-
alias: { '@': path.resolve(__dirname, './src') },
|
|
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,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.
|
|
File without changes
|
|
File without changes
|