forlogic-core 2.2.6 → 2.2.8
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 +120 -120
- package/dist/README.md +1079 -0
- package/dist/bin/bootstrap.js +40 -0
- package/dist/bin/pull-docs.js +186 -0
- package/dist/components/ui/color-picker.d.ts +2 -0
- package/dist/components/ui/combo-tree.d.ts +3 -1
- package/dist/components/ui/combobox.d.ts +2 -1
- package/dist/components/ui/icon-picker.d.ts +2 -0
- package/dist/components/ui/select.d.ts +9 -2
- package/dist/docs/KNOWLEDGE.md +109 -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/PUBLISH.md +168 -168
- package/docs/STORAGE_BUCKETS.md +456 -456
- package/docs/SUPABASE_SECRETS.md +122 -122
- package/docs/WORKSPACE_KNOWLEDGE.md +154 -154
- package/docs/design-system/buttons-actions.md +130 -130
- package/docs/design-system/charts-dashboards.md +301 -340
- package/docs/design-system/crud.md +114 -174
- package/docs/design-system/data-display.md +106 -106
- package/docs/design-system/dialogs.md +212 -212
- package/docs/design-system/domain.md +329 -319
- package/docs/design-system/examples.md +275 -275
- package/docs/design-system/foundation.md +1 -1
- package/docs/design-system/inputs.md +137 -132
- package/docs/design-system/layout.md +154 -202
- package/docs/design-system/navigation.md +331 -272
- 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 +41 -41
- 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 +81 -81
- 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 +49 -49
- package/docs/design-system/platform.md +18 -18
- package/docs/design-system/selectors.md +296 -260
- package/docs/design-system/tables-grids.md +38 -95
- package/package.json +152 -152
- package/dist/assets/docs-BEwTKYu3.css +0 -1
- package/dist/assets/docs-Bgpz6ETN.js +0 -10752
- package/dist/assets/index-SqMwTzMJ.js +0 -97
- package/dist/index.html +0 -34
|
@@ -11,11 +11,11 @@ Um elemento de imagem com fallback para representar o usuário.
|
|
|
11
11
|
|
|
12
12
|
**Uso:**
|
|
13
13
|
```tsx
|
|
14
|
-
import { Avatar, AvatarImage, AvatarFallback } from "forlogic-core"
|
|
15
|
-
|
|
16
|
-
<Avatar>
|
|
17
|
-
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
18
|
-
<AvatarFallback>CN</AvatarFallback>
|
|
14
|
+
import { Avatar, AvatarImage, AvatarFallback } from "forlogic-core"
|
|
15
|
+
|
|
16
|
+
<Avatar>
|
|
17
|
+
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
18
|
+
<AvatarFallback>CN</AvatarFallback>
|
|
19
19
|
</Avatar>
|
|
20
20
|
```
|
|
21
21
|
|
|
@@ -27,12 +27,12 @@ import { Avatar, AvatarImage, AvatarFallback } from "forlogic-core"
|
|
|
27
27
|
|
|
28
28
|
**Exemplos:**
|
|
29
29
|
```tsx
|
|
30
|
-
<Avatar>
|
|
30
|
+
<Avatar>
|
|
31
31
|
<AvatarImage src=
|
|
32
32
|
```
|
|
33
33
|
```tsx
|
|
34
|
-
<Avatar>
|
|
35
|
-
<AvatarFallback>JD</AvatarFallback>
|
|
34
|
+
<Avatar>
|
|
35
|
+
<AvatarFallback>JD</AvatarFallback>
|
|
36
36
|
</Avatar>
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -41,7 +41,7 @@ import { Avatar, AvatarImage, AvatarFallback } from "forlogic-core"
|
|
|
41
41
|
- Fallback garante que o conteúdo seja sempre exibido
|
|
42
42
|
- Estrutura HTML semântica
|
|
43
43
|
|
|
44
|
-
> Fonte: `src
|
|
44
|
+
> Fonte: `src\design-system\docs\components\AvatarDoc.tsx`
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
@@ -51,26 +51,26 @@ Exibe um badge ou um componente que se parece com um badge.
|
|
|
51
51
|
|
|
52
52
|
**Uso:**
|
|
53
53
|
```tsx
|
|
54
|
-
import { Badge, StatusBadge, createStatusConfig } from "forlogic-core"
|
|
55
|
-
|
|
56
|
-
// Badge genérico
|
|
57
|
-
<Badge>Badge</Badge>
|
|
58
|
-
<Badge variant="success">Aprovado</Badge>
|
|
59
|
-
|
|
60
|
-
// Status Badge — uso direto
|
|
61
|
-
<StatusBadge label="Em Execução" color="#2E7D5B" icon={Play} />
|
|
62
|
-
|
|
63
|
-
// Status Badge — com createStatusConfig
|
|
64
|
-
const getStatus = createStatusConfig({
|
|
65
|
-
pending: { label: 'Pendente', color: '#8B7355', icon: Clock },
|
|
66
|
-
approved: { label: 'Aprovado', color: '#3D7A40', icon: CheckCircle2 },
|
|
67
|
-
});
|
|
54
|
+
import { Badge, StatusBadge, createStatusConfig } from "forlogic-core"
|
|
55
|
+
|
|
56
|
+
// Badge genérico
|
|
57
|
+
<Badge>Badge</Badge>
|
|
58
|
+
<Badge variant="success">Aprovado</Badge>
|
|
59
|
+
|
|
60
|
+
// Status Badge — uso direto
|
|
61
|
+
<StatusBadge label="Em Execução" color="#2E7D5B" icon={Play} />
|
|
62
|
+
|
|
63
|
+
// Status Badge — com createStatusConfig
|
|
64
|
+
const getStatus = createStatusConfig({
|
|
65
|
+
pending: { label: 'Pendente', color: '#8B7355', icon: Clock },
|
|
66
|
+
approved: { label: 'Aprovado', color: '#3D7A40', icon: CheckCircle2 },
|
|
67
|
+
});
|
|
68
68
|
<StatusBadge {...getStatus('pending')} />
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
**Exemplos:**
|
|
72
72
|
```tsx
|
|
73
|
-
<Badge>Default</Badge>
|
|
73
|
+
<Badge>Default</Badge>
|
|
74
74
|
<Badge variant=
|
|
75
75
|
```
|
|
76
76
|
```tsx
|
|
@@ -91,7 +91,7 @@ import { StatusBadge, createStatusConfig } from
|
|
|
91
91
|
- Funciona com leitores de tela
|
|
92
92
|
- Pode ser tornado interativo com labels ARIA adequadas se necessário
|
|
93
93
|
|
|
94
|
-
> Fonte: `src
|
|
94
|
+
> Fonte: `src\design-system\docs\components\BadgeDoc.tsx`
|
|
95
95
|
|
|
96
96
|
---
|
|
97
97
|
|
|
@@ -101,19 +101,19 @@ Exibe um card com cabeçalho, conteúdo e rodapé.
|
|
|
101
101
|
|
|
102
102
|
**Uso:**
|
|
103
103
|
```tsx
|
|
104
|
-
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "forlogic-core"
|
|
105
|
-
|
|
106
|
-
<Card>
|
|
107
|
-
<CardHeader>
|
|
108
|
-
<CardTitle>Card Title</CardTitle>
|
|
109
|
-
<CardDescription>Card Description</CardDescription>
|
|
110
|
-
</CardHeader>
|
|
111
|
-
<CardContent>
|
|
112
|
-
<p>Card Content</p>
|
|
113
|
-
</CardContent>
|
|
114
|
-
<CardFooter>
|
|
115
|
-
<p>Card Footer</p>
|
|
116
|
-
</CardFooter>
|
|
104
|
+
import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "forlogic-core"
|
|
105
|
+
|
|
106
|
+
<Card>
|
|
107
|
+
<CardHeader>
|
|
108
|
+
<CardTitle>Card Title</CardTitle>
|
|
109
|
+
<CardDescription>Card Description</CardDescription>
|
|
110
|
+
</CardHeader>
|
|
111
|
+
<CardContent>
|
|
112
|
+
<p>Card Content</p>
|
|
113
|
+
</CardContent>
|
|
114
|
+
<CardFooter>
|
|
115
|
+
<p>Card Footer</p>
|
|
116
|
+
</CardFooter>
|
|
117
117
|
</Card>
|
|
118
118
|
```
|
|
119
119
|
|
|
@@ -128,7 +128,7 @@ import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter }
|
|
|
128
128
|
- Contraste de cores acessível
|
|
129
129
|
- Funciona com leitores de tela
|
|
130
130
|
|
|
131
|
-
> Fonte: `src
|
|
131
|
+
> Fonte: `src\design-system\docs\components\CardDoc.tsx`
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
@@ -138,18 +138,18 @@ Sistema de lista de dados com composição de componentes. Ideal para exibir inf
|
|
|
138
138
|
|
|
139
139
|
**Uso:**
|
|
140
140
|
```tsx
|
|
141
|
-
import { DataList, Badge } from "forlogic-core"
|
|
142
|
-
|
|
143
|
-
<DataList.Root>
|
|
144
|
-
<DataList.Item onClick={() => console.log('clicked')}>
|
|
145
|
-
<DataList.Field label="Nome" value="João Silva" />
|
|
146
|
-
<DataList.Field label="Email" value="joao@exemplo.com" />
|
|
147
|
-
<DataList.Field label="Status" value={<Badge>Ativo</Badge>} />
|
|
148
|
-
</DataList.Item>
|
|
149
|
-
<DataList.Item>
|
|
150
|
-
<DataList.Field label="Nome" value="Maria Santos" />
|
|
151
|
-
<DataList.Field label="Email" value="maria@exemplo.com" />
|
|
152
|
-
</DataList.Item>
|
|
141
|
+
import { DataList, Badge } from "forlogic-core"
|
|
142
|
+
|
|
143
|
+
<DataList.Root>
|
|
144
|
+
<DataList.Item onClick={() => console.log('clicked')}>
|
|
145
|
+
<DataList.Field label="Nome" value="João Silva" />
|
|
146
|
+
<DataList.Field label="Email" value="joao@exemplo.com" />
|
|
147
|
+
<DataList.Field label="Status" value={<Badge>Ativo</Badge>} />
|
|
148
|
+
</DataList.Item>
|
|
149
|
+
<DataList.Item>
|
|
150
|
+
<DataList.Field label="Nome" value="Maria Santos" />
|
|
151
|
+
<DataList.Field label="Email" value="maria@exemplo.com" />
|
|
152
|
+
</DataList.Item>
|
|
153
153
|
</DataList.Root>
|
|
154
154
|
```
|
|
155
155
|
|
|
@@ -172,7 +172,7 @@ import { DataList, Badge } from "forlogic-core"
|
|
|
172
172
|
- 💡 Field.value aceita ReactNode - use Badge, Button, etc.
|
|
173
173
|
- 💡 onClick em Item adiciona hover state automaticamente
|
|
174
174
|
|
|
175
|
-
> Fonte: `src
|
|
175
|
+
> Fonte: `src\design-system\docs\components\DataListDoc.tsx`
|
|
176
176
|
|
|
177
177
|
---
|
|
178
178
|
|
|
@@ -182,40 +182,40 @@ Componente para exibir estados vazios com ícone, mensagem e ação opcional.
|
|
|
182
182
|
|
|
183
183
|
**Uso:**
|
|
184
184
|
```tsx
|
|
185
|
-
import { EmptyState } from "forlogic-core"
|
|
186
|
-
|
|
187
|
-
// Estado vazio padrão
|
|
188
|
-
<EmptyState
|
|
189
|
-
title="Nenhum item encontrado"
|
|
190
|
-
description="Adicione seu primeiro item para começar"
|
|
191
|
-
action={{
|
|
192
|
-
label: "Adicionar Item",
|
|
193
|
-
onClick: () => handleAddItem()
|
|
194
|
-
}}
|
|
195
|
-
/>
|
|
196
|
-
|
|
197
|
-
// Sem resultados de busca
|
|
198
|
-
<EmptyState
|
|
199
|
-
variant="search"
|
|
200
|
-
title="Nenhum resultado encontrado"
|
|
201
|
-
description="Tente ajustar sua busca"
|
|
202
|
-
/>
|
|
203
|
-
|
|
204
|
-
// Estado de erro
|
|
205
|
-
<EmptyState
|
|
206
|
-
variant="error"
|
|
207
|
-
title="Erro ao carregar dados"
|
|
208
|
-
description="Não foi possível carregar as informações"
|
|
209
|
-
action={{
|
|
210
|
-
label: "Tentar Novamente",
|
|
211
|
-
onClick: () => refetch()
|
|
212
|
-
}}
|
|
213
|
-
/>
|
|
214
|
-
|
|
215
|
-
// Ícone customizado
|
|
216
|
-
<EmptyState
|
|
217
|
-
icon={<Package className="h-8 w-8" />}
|
|
218
|
-
title="Sem produtos"
|
|
185
|
+
import { EmptyState } from "forlogic-core"
|
|
186
|
+
|
|
187
|
+
// Estado vazio padrão
|
|
188
|
+
<EmptyState
|
|
189
|
+
title="Nenhum item encontrado"
|
|
190
|
+
description="Adicione seu primeiro item para começar"
|
|
191
|
+
action={{
|
|
192
|
+
label: "Adicionar Item",
|
|
193
|
+
onClick: () => handleAddItem()
|
|
194
|
+
}}
|
|
195
|
+
/>
|
|
196
|
+
|
|
197
|
+
// Sem resultados de busca
|
|
198
|
+
<EmptyState
|
|
199
|
+
variant="search"
|
|
200
|
+
title="Nenhum resultado encontrado"
|
|
201
|
+
description="Tente ajustar sua busca"
|
|
202
|
+
/>
|
|
203
|
+
|
|
204
|
+
// Estado de erro
|
|
205
|
+
<EmptyState
|
|
206
|
+
variant="error"
|
|
207
|
+
title="Erro ao carregar dados"
|
|
208
|
+
description="Não foi possível carregar as informações"
|
|
209
|
+
action={{
|
|
210
|
+
label: "Tentar Novamente",
|
|
211
|
+
onClick: () => refetch()
|
|
212
|
+
}}
|
|
213
|
+
/>
|
|
214
|
+
|
|
215
|
+
// Ícone customizado
|
|
216
|
+
<EmptyState
|
|
217
|
+
icon={<Package className="h-8 w-8" />}
|
|
218
|
+
title="Sem produtos"
|
|
219
219
|
/>
|
|
220
220
|
```
|
|
221
221
|
|
|
@@ -234,7 +234,7 @@ import { EmptyState } from "forlogic-core"
|
|
|
234
234
|
- Centralizado e responsivo
|
|
235
235
|
- Suporte a ícone customizado
|
|
236
236
|
|
|
237
|
-
> Fonte: `src
|
|
237
|
+
> Fonte: `src\design-system\docs\components\EmptyStateDoc.tsx`
|
|
238
238
|
|
|
239
239
|
---
|
|
240
240
|
|
|
@@ -244,9 +244,9 @@ Separa visual ou semanticamente o conteúdo.
|
|
|
244
244
|
|
|
245
245
|
**Uso:**
|
|
246
246
|
```tsx
|
|
247
|
-
import { Separator } from "forlogic-core"
|
|
248
|
-
|
|
249
|
-
<Separator />
|
|
247
|
+
import { Separator } from "forlogic-core"
|
|
248
|
+
|
|
249
|
+
<Separator />
|
|
250
250
|
<Separator orientation="vertical" />
|
|
251
251
|
```
|
|
252
252
|
|
|
@@ -268,7 +268,7 @@ import { Separator } from "forlogic-core"
|
|
|
268
268
|
- Pode ser decorativo ou estrutural
|
|
269
269
|
- Atributos ARIA adequados
|
|
270
270
|
|
|
271
|
-
> Fonte: `src
|
|
271
|
+
> Fonte: `src\design-system\docs\components\SeparatorDoc.tsx`
|
|
272
272
|
|
|
273
273
|
---
|
|
274
274
|
|
|
@@ -278,8 +278,8 @@ Exibe um indicador mostrando o progresso de conclusão de uma tarefa, tipicament
|
|
|
278
278
|
|
|
279
279
|
**Uso:**
|
|
280
280
|
```tsx
|
|
281
|
-
import { Progress } from "forlogic-core"
|
|
282
|
-
|
|
281
|
+
import { Progress } from "forlogic-core"
|
|
282
|
+
|
|
283
283
|
<Progress value={60} />
|
|
284
284
|
```
|
|
285
285
|
|
|
@@ -306,7 +306,7 @@ import { Progress } from "forlogic-core"
|
|
|
306
306
|
- Ajuste a altura via className (h-1, h-2, h-4) para diferentes contextos
|
|
307
307
|
- Para uploads, mostre tamanho atual e total junto com o percentual
|
|
308
308
|
|
|
309
|
-
> Fonte: `src
|
|
309
|
+
> Fonte: `src\design-system\docs\components\ProgressDoc.tsx`
|
|
310
310
|
|
|
311
311
|
---
|
|
312
312
|
|
|
@@ -316,17 +316,17 @@ Componentes para estados de carregamento: Skeleton (placeholders), Spinner (indi
|
|
|
316
316
|
|
|
317
317
|
**Uso:**
|
|
318
318
|
```tsx
|
|
319
|
-
import { Skeleton, Spinner, LoadingState } from "forlogic-core"
|
|
320
|
-
|
|
321
|
-
// Skeleton básico
|
|
322
|
-
<Skeleton className="h-4 w-[200px]" />
|
|
323
|
-
|
|
324
|
-
// Spinner
|
|
325
|
-
<Spinner size="md" />
|
|
326
|
-
|
|
327
|
-
// LoadingState declarativo
|
|
328
|
-
<LoadingState isLoading={isLoading} type="spinner">
|
|
329
|
-
<div>Conteúdo carregado</div>
|
|
319
|
+
import { Skeleton, Spinner, LoadingState } from "forlogic-core"
|
|
320
|
+
|
|
321
|
+
// Skeleton básico
|
|
322
|
+
<Skeleton className="h-4 w-[200px]" />
|
|
323
|
+
|
|
324
|
+
// Spinner
|
|
325
|
+
<Spinner size="md" />
|
|
326
|
+
|
|
327
|
+
// LoadingState declarativo
|
|
328
|
+
<LoadingState isLoading={isLoading} type="spinner">
|
|
329
|
+
<div>Conteúdo carregado</div>
|
|
330
330
|
</LoadingState>
|
|
331
331
|
```
|
|
332
332
|
|
|
@@ -360,6 +360,6 @@ import { Skeleton, Spinner, LoadingState } from "forlogic-core"
|
|
|
360
360
|
- **type=
|
|
361
361
|
- **: Mostra um placeholder animado no lugar dos children.
|
|
362
362
|
|
|
363
|
-
> Fonte: `src
|
|
363
|
+
> Fonte: `src\design-system\docs\components\SkeletonDoc.tsx`
|
|
364
364
|
|
|
365
365
|
---
|