forlogic-core 1.11.4 → 1.11.6

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/README.md CHANGED
@@ -312,17 +312,16 @@ export default defineConfig(({ mode }) => ({
312
312
 
313
313
  ### 🏗️ Factory de Configuração Vite (Opcional)
314
314
 
315
- Para projetos que desejam usar a configuração completa padronizada:
315
+ Para projetos que desejam usar a configuração padronizada com segurança:
316
316
 
317
317
  ```typescript
318
318
  // vite.config.ts
319
319
  import { defineConfig } from 'vite';
320
320
  import react from '@vitejs/plugin-react-swc';
321
+ import path from 'path';
321
322
  import { createForlogicViteConfig } from 'forlogic-core/vite';
322
323
 
323
324
  const forlogicConfig = createForlogicViteConfig({
324
- srcAlias: '@',
325
- libAlias: 'forlogic-core',
326
325
  security: {
327
326
  supabaseUrls: ['https://seu-projeto.supabase.co'],
328
327
  trustedOrigins: ['https://meu-app.com'],
@@ -332,14 +331,98 @@ const forlogicConfig = createForlogicViteConfig({
332
331
  });
333
332
 
334
333
  export default defineConfig(({ mode }) => {
335
- const config = forlogicConfig(mode === 'development');
334
+ const isDev = mode === 'development';
335
+ const baseConfig = forlogicConfig(isDev);
336
+
336
337
  return {
337
- ...config,
338
- plugins: [react(), ...config.plugins],
338
+ ...baseConfig,
339
+ plugins: [react(), ...baseConfig.plugins],
340
+ // IMPORTANTE: resolve.alias deve usar caminhos absolutos
341
+ resolve: {
342
+ alias: {
343
+ '@': path.resolve(__dirname, './src'),
344
+ },
345
+ },
339
346
  };
340
347
  });
341
348
  ```
342
349
 
350
+ > **⚠️ IMPORTANTE**: A factory **não** configura `resolve.alias` porque caminhos relativos não funcionam corretamente no build. Cada projeto deve definir seus próprios aliases com `path.resolve(__dirname, './caminho')` para garantir caminhos absolutos.
351
+
352
+ ---
353
+
354
+ ### 📋 Template Completo para Projetos Consumidores
355
+
356
+ Copie e adapte este template para novos projetos:
357
+
358
+ ```typescript
359
+ // vite.config.ts
360
+ import { defineConfig } from 'vite';
361
+ import react from '@vitejs/plugin-react-swc';
362
+ import path from 'path';
363
+ import { createSecurityHeadersPlugin } from 'forlogic-core/vite';
364
+
365
+ export default defineConfig(({ mode }) => {
366
+ const isDev = mode === 'development';
367
+
368
+ return {
369
+ server: {
370
+ host: '::',
371
+ port: 8080,
372
+ },
373
+
374
+ // Força re-bundle quando atualizar forlogic-core
375
+ optimizeDeps: {
376
+ force: true,
377
+ },
378
+
379
+ plugins: [
380
+ react(),
381
+ // Headers de segurança (CSP, CORS, etc.)
382
+ createSecurityHeadersPlugin(isDev, {
383
+ supabaseUrls: [
384
+ 'https://SEU_PROJETO.supabase.co',
385
+ ],
386
+ additionalConnectSrc: [
387
+ 'https://*.qualiex.com',
388
+ ],
389
+ // Opcional: URI para relatório de violações CSP
390
+ cspReportUri: isDev
391
+ ? 'https://SEU_PROJETO_DEV.supabase.co/functions/v1/csp-report'
392
+ : 'https://SEU_PROJETO_PROD.supabase.co/functions/v1/csp-report',
393
+ }),
394
+ ],
395
+
396
+ // CRÍTICO: Aliases devem usar caminhos absolutos
397
+ resolve: {
398
+ alias: {
399
+ '@': path.resolve(__dirname, './src'),
400
+ },
401
+ },
402
+
403
+ publicDir: false,
404
+
405
+ esbuild: {
406
+ sourcemap: true,
407
+ target: 'es2020',
408
+ },
409
+
410
+ build: {
411
+ chunkSizeWarningLimit: 4000,
412
+ },
413
+ };
414
+ });
415
+ ```
416
+
417
+ #### Checklist de Configuração
418
+
419
+ ```markdown
420
+ - [ ] Substituiu `SEU_PROJETO` pelas URLs do Supabase
421
+ - [ ] Adicionou origens confiáveis em `additionalConnectSrc` se necessário
422
+ - [ ] Verificou que `resolve.alias` usa `path.resolve(__dirname, ...)`
423
+ - [ ] Reiniciou o servidor após modificar o arquivo
424
+ ```
425
+
343
426
  ---
344
427
 
345
428
  ### 🔄 Forçar Re-bundle de Dependências
@@ -747,6 +830,48 @@ Se você não fornecer um `queryClient`, o `CoreProviders` cria um com as seguin
747
830
 
748
831
  ---
749
832
 
833
+ ## 🛠️ CLI: Sincronização de Documentação
834
+
835
+ O `forlogic-core` disponibiliza um comando CLI para sincronizar a documentação centralizada do banco de dados para projetos consumidores.
836
+
837
+ ### Uso
838
+
839
+ ```bash
840
+ # Via npx (recomendado)
841
+ npx forlogic-core-pull-docs
842
+
843
+ # Ou adicione ao package.json do seu projeto:
844
+ {
845
+ "scripts": {
846
+ "pull-docs": "forlogic-core-pull-docs"
847
+ }
848
+ }
849
+
850
+ # E execute:
851
+ npm run pull-docs
852
+ ```
853
+
854
+ ### O que é sincronizado
855
+
856
+ | Arquivo | Descrição |
857
+ |---------|-----------|
858
+ | `docs/FORLOGIC_CORE_README.md` | README completo da biblioteca |
859
+ | `docs/DESIGN_SYSTEM.md` | Documentação do Design System |
860
+ | `docs/KNOWLEDGE.md` | Knowledge base para IA/Lovable |
861
+
862
+ ### Benefícios
863
+
864
+ - ✅ **Centralizado**: Documentação mantida em um único lugar (banco de dados)
865
+ - ✅ **Sempre atualizado**: Execute o comando para obter a versão mais recente
866
+ - ✅ **Sem cópia manual**: Não precisa copiar arquivos entre projetos
867
+ - ✅ **Ideal para Custom Knowledge**: Use os arquivos gerados no Lovable
868
+
869
+ ### Requisitos
870
+
871
+ O comando usa credenciais públicas do Supabase do forlogic-core e não requer configuração adicional.
872
+
873
+ ---
874
+
750
875
  <!-- AUTO_GENERATED_START -->
751
876
 
752
877
  ### 📚 Estatísticas da Documentação
package/dist/README.md CHANGED
@@ -312,17 +312,16 @@ export default defineConfig(({ mode }) => ({
312
312
 
313
313
  ### 🏗️ Factory de Configuração Vite (Opcional)
314
314
 
315
- Para projetos que desejam usar a configuração completa padronizada:
315
+ Para projetos que desejam usar a configuração padronizada com segurança:
316
316
 
317
317
  ```typescript
318
318
  // vite.config.ts
319
319
  import { defineConfig } from 'vite';
320
320
  import react from '@vitejs/plugin-react-swc';
321
+ import path from 'path';
321
322
  import { createForlogicViteConfig } from 'forlogic-core/vite';
322
323
 
323
324
  const forlogicConfig = createForlogicViteConfig({
324
- srcAlias: '@',
325
- libAlias: 'forlogic-core',
326
325
  security: {
327
326
  supabaseUrls: ['https://seu-projeto.supabase.co'],
328
327
  trustedOrigins: ['https://meu-app.com'],
@@ -332,14 +331,98 @@ const forlogicConfig = createForlogicViteConfig({
332
331
  });
333
332
 
334
333
  export default defineConfig(({ mode }) => {
335
- const config = forlogicConfig(mode === 'development');
334
+ const isDev = mode === 'development';
335
+ const baseConfig = forlogicConfig(isDev);
336
+
336
337
  return {
337
- ...config,
338
- plugins: [react(), ...config.plugins],
338
+ ...baseConfig,
339
+ plugins: [react(), ...baseConfig.plugins],
340
+ // IMPORTANTE: resolve.alias deve usar caminhos absolutos
341
+ resolve: {
342
+ alias: {
343
+ '@': path.resolve(__dirname, './src'),
344
+ },
345
+ },
346
+ };
347
+ });
348
+ ```
349
+
350
+ > **⚠️ IMPORTANTE**: A factory **não** configura `resolve.alias` porque caminhos relativos não funcionam corretamente no build. Cada projeto deve definir seus próprios aliases com `path.resolve(__dirname, './caminho')` para garantir caminhos absolutos.
351
+
352
+ ---
353
+
354
+ ### 📋 Template Completo para Projetos Consumidores
355
+
356
+ Copie e adapte este template para novos projetos:
357
+
358
+ ```typescript
359
+ // vite.config.ts
360
+ import { defineConfig } from 'vite';
361
+ import react from '@vitejs/plugin-react-swc';
362
+ import path from 'path';
363
+ import { createSecurityHeadersPlugin } from 'forlogic-core/vite';
364
+
365
+ export default defineConfig(({ mode }) => {
366
+ const isDev = mode === 'development';
367
+
368
+ return {
369
+ server: {
370
+ host: '::',
371
+ port: 8080,
372
+ },
373
+
374
+ // Força re-bundle quando atualizar forlogic-core
375
+ optimizeDeps: {
376
+ force: true,
377
+ },
378
+
379
+ plugins: [
380
+ react(),
381
+ // Headers de segurança (CSP, CORS, etc.)
382
+ createSecurityHeadersPlugin(isDev, {
383
+ supabaseUrls: [
384
+ 'https://SEU_PROJETO.supabase.co',
385
+ ],
386
+ additionalConnectSrc: [
387
+ 'https://*.qualiex.com',
388
+ ],
389
+ // Opcional: URI para relatório de violações CSP
390
+ cspReportUri: isDev
391
+ ? 'https://SEU_PROJETO_DEV.supabase.co/functions/v1/csp-report'
392
+ : 'https://SEU_PROJETO_PROD.supabase.co/functions/v1/csp-report',
393
+ }),
394
+ ],
395
+
396
+ // CRÍTICO: Aliases devem usar caminhos absolutos
397
+ resolve: {
398
+ alias: {
399
+ '@': path.resolve(__dirname, './src'),
400
+ },
401
+ },
402
+
403
+ publicDir: false,
404
+
405
+ esbuild: {
406
+ sourcemap: true,
407
+ target: 'es2020',
408
+ },
409
+
410
+ build: {
411
+ chunkSizeWarningLimit: 4000,
412
+ },
339
413
  };
340
414
  });
341
415
  ```
342
416
 
417
+ #### Checklist de Configuração
418
+
419
+ ```markdown
420
+ - [ ] Substituiu `SEU_PROJETO` pelas URLs do Supabase
421
+ - [ ] Adicionou origens confiáveis em `additionalConnectSrc` se necessário
422
+ - [ ] Verificou que `resolve.alias` usa `path.resolve(__dirname, ...)`
423
+ - [ ] Reiniciou o servidor após modificar o arquivo
424
+ ```
425
+
343
426
  ---
344
427
 
345
428
  ### 🔄 Forçar Re-bundle de Dependências
@@ -747,82 +830,124 @@ Se você não fornecer um `queryClient`, o `CoreProviders` cria um com as seguin
747
830
 
748
831
  ---
749
832
 
750
- <!-- AUTO_GENERATED_START -->
833
+ ## 🛠️ CLI: Sincronização de Documentação
751
834
 
752
- ### 📚 Estatísticas da Documentação
835
+ O `forlogic-core` disponibiliza um comando CLI para sincronizar a documentação centralizada do banco de dados para projetos consumidores.
753
836
 
754
- **49 Componentes UI** | **6 Tokens** | **2 Ferramentas CRUD**
837
+ ### Uso
755
838
 
756
- ---
839
+ ```bash
840
+ # Via npx (recomendado)
841
+ npx forlogic-core-pull-docs
757
842
 
758
- ### 🎨 Fundamentos (Tokens)
759
-
760
- - [Colors Foundation](./docs/DESIGN_SYSTEM.md#colorsfoundation) - Sistema de cores completo com escalas neutras, de marca e funcionais.
761
- - [Radius](./docs/DESIGN_SYSTEM.md#radius) - Sistema de arredondamento de bordas para consistência visual.
762
- - [Shadows](./docs/DESIGN_SYSTEM.md#shadows) - Sistema de sombras e elevação para criar profundidade e hierarquia.
763
- - [Spacing](./docs/DESIGN_SYSTEM.md#spacing) - Escala de espaçamento consistente baseada em uma unidade base de 4px.
764
- - [Typography](./docs/DESIGN_SYSTEM.md#typographycomponent) - Componentes de tipografia para estilos de texto consistentes em toda a sua aplicação.
765
- - [Typography Foundation](./docs/DESIGN_SYSTEM.md#typographyfoundation) - Sistema tipográfico completo com Display, Headings, Body e mais.
766
-
767
- ### 🧩 Componentes UI
768
-
769
- - [Accordion](./docs/DESIGN_SYSTEM.md#accordion) - Um conjunto de cabeçalhos interativos empilhados verticalmente, onde cada um revela uma seção de conteúdo.
770
- - [Action Button](./docs/DESIGN_SYSTEM.md#actionbutton) - Botão compacto otimizado para ações em linhas de tabela e menus dropdown.
771
- - [Alert](./docs/DESIGN_SYSTEM.md#alert) - Exibe uma mensagem de destaque para chamar a atenção do usuário.
772
- - [Aspect Ratio](./docs/DESIGN_SYSTEM.md#aspectratio) - Exibe conteúdo dentro de uma proporção desejada.
773
- - [Avatar](./docs/DESIGN_SYSTEM.md#avatar) - Um elemento de imagem com fallback para representar o usuário.
774
- - [Badge](./docs/DESIGN_SYSTEM.md#badge) - Exibe um badge ou um componente que se parece com um badge.
775
- - [Breadcrumb](./docs/DESIGN_SYSTEM.md#breadcrumb) - Exibe o caminho até o recurso atual usando uma hierarquia de links.
776
- - [Button](./docs/DESIGN_SYSTEM.md#button) - Componente de botão com variantes semânticas, tamanhos e estados. Use para ações primárias, secundárias e destrutivas.
777
- - [Button Group](./docs/DESIGN_SYSTEM.md#buttongroup) - Agrupa botões relacionados com espaçamento e bordas apropriados.
778
- - [Calendar & Date Picker](./docs/DESIGN_SYSTEM.md#calendar) - Componentes para seleção de datas. O Calendar exibe um calendário interativo, enquanto o Date Picker combina um campo de input com o calendário em um popover.
779
- - [Card](./docs/DESIGN_SYSTEM.md#card) - Exibe um card com cabeçalho, conteúdo e rodapé.
780
- - [Carousel](./docs/DESIGN_SYSTEM.md#carousel) - Um componente de carrossel para alternar entre elementos. Nota: Este componente requer a biblioteca Embla Carousel que não está incluída no forlogic-core por padrão.
781
- - [Checkbox](./docs/DESIGN_SYSTEM.md#checkbox) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
782
- - [Collapsible](./docs/DESIGN_SYSTEM.md#collapsible) - Um componente interativo que expande/colapsa um painel.
783
- - [Color Picker](./docs/DESIGN_SYSTEM.md#colorpicker) - Seletor de cores com paleta predefinida e seletor customizado.
784
- - [Combobox](./docs/DESIGN_SYSTEM.md#combobox) - Componente versátil para seleção única ou múltipla com busca inteligente. Combina Popover e Command para autocomplete.
785
- - [Context Menu](./docs/DESIGN_SYSTEM.md#contextmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um clique com o botão direito do mouse.
786
- - [Dialog](./docs/DESIGN_SYSTEM.md#dialog) - Uma janela sobreposta à janela principal ou a outra janela de diálogo, tornando o conteúdo abaixo inerte. Inclui variações para seleção, tabelas e formulários.
787
- - [Dropdown Menu](./docs/DESIGN_SYSTEM.md#dropdownmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um botão ou elemento interativo.
788
- - [Empty State](./docs/DESIGN_SYSTEM.md#emptystate) - Componente para exibir estados vazios com ícone, mensagem e ação opcional.
789
- - [Form](./docs/DESIGN_SYSTEM.md#form) - Construindo formulários com React Hook Form e Zod.
790
- - [Grid](./docs/DESIGN_SYSTEM.md#grid) - Sistema de grid responsivo com configuração simplificada de colunas e espaçamento.
791
- - [Icon Picker](./docs/DESIGN_SYSTEM.md#iconpicker) - Seletor de ícones da biblioteca Lucide React com busca integrada.
792
- - [Input](./docs/DESIGN_SYSTEM.md#input) - Exibe um campo de entrada de texto.
793
- - [Input Group](./docs/DESIGN_SYSTEM.md#inputgroup) - Agrupe inputs com addons de prefixo, sufixo, ícones, botões, tooltips e dropdowns. Segue a API oficial do shadcn/ui.
794
- - [Input OTP](./docs/DESIGN_SYSTEM.md#inputotp) - Accessible one-time password component with customizable number of inputs. Available in the UI library but not exported from forlogic-core.
795
- - [Label](./docs/DESIGN_SYSTEM.md#label) - Renderiza uma label acessível associada a controles.
796
- - [Loading State](./docs/DESIGN_SYSTEM.md#loadingstate) - Componente para gerenciar estados de loading de forma declarativa com dois tipos: spinner e overlay.
797
- - [Native Select](./docs/DESIGN_SYSTEM.md#nativeselect) - Elemento select nativo do HTML com estilização.
798
- - [Pagination](./docs/DESIGN_SYSTEM.md#pagination) - Barra de paginação completa com seletor de itens por página e controles de navegação.
799
- - [Progress](./docs/DESIGN_SYSTEM.md#progress) - Exibe um indicador mostrando o progresso de conclusão de uma tarefa, tipicamente exibido como uma barra de progresso.
800
- - [Radio Group](./docs/DESIGN_SYSTEM.md#radiogroup) - Um conjunto de botões marcáveis—conhecidos como botões de rádio—onde apenas um pode ser marcado por vez.
801
- - [Resizable](./docs/DESIGN_SYSTEM.md#resizable) - Grupos de painéis redimensionáveis e layouts acessíveis com suporte a teclado. Construído sobre react-resizable-panels.
802
- - [Scroll Area](./docs/DESIGN_SYSTEM.md#scrollarea) - Aprimora a funcionalidade de rolagem nativa para estilização personalizada e cross-browser.
803
- - [Searchbar](./docs/DESIGN_SYSTEM.md#searchbar) - Campo de busca com ícone de pesquisa integrado e botão de limpar opcional. Otimizado para experiências de busca em toda a aplicação.
804
- - [Select](./docs/DESIGN_SYSTEM.md#select) - Exibe uma lista de opções para o usuário escolher—acionada por um botão.
805
- - [Separator](./docs/DESIGN_SYSTEM.md#separator) - Separa visual ou semanticamente o conteúdo.
806
- - [Sheet](./docs/DESIGN_SYSTEM.md#sheet) - Estende o componente Dialog para exibir conteúdo que complementa o conteúdo principal da tela.
807
- - [Skeleton](./docs/DESIGN_SYSTEM.md#skeleton) - Componente de placeholder para estados de carregamento. Inclui variantes pré-configuradas para tabelas, cards, formulários e mais.
808
- - [Slider](./docs/DESIGN_SYSTEM.md#slider) - Um input onde o usuário seleciona um valor dentro de um intervalo determinado.
809
- - [Spinner](./docs/DESIGN_SYSTEM.md#spinner) - Um componente de spinner de carregamento para indicar estado de carregamento.
810
- - [Stack](./docs/DESIGN_SYSTEM.md#stack) - Layout de pilha flexível com controle de direção, espaçamento, alinhamento e justificação.
811
- - [Switch](./docs/DESIGN_SYSTEM.md#switch) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
812
- - [Tab Page Layout](./docs/DESIGN_SYSTEM.md#tabpagelayout) - Layout padronizado para páginas dentro de tabs com header, descrição, ações e conteúdo scrollável.
813
- - [Table](./docs/DESIGN_SYSTEM.md#table) - Uma tabela semântica para exibir dados tabulares.
814
- - [Tabs](./docs/DESIGN_SYSTEM.md#tabs) - Um conjunto de seções de conteúdo em camadas—conhecidas como painéis de abas—que são exibidas uma de cada vez.
815
- - [Textarea](./docs/DESIGN_SYSTEM.md#textarea) - Exibe um textarea de formulário ou um componente que se parece com um textarea.
816
- - [Toast](./docs/DESIGN_SYSTEM.md#toast) - Componente de notificação toast usando Sonner. Exibe mensagens temporárias para feedback de ações do usuário.
817
- - [Toggle](./docs/DESIGN_SYSTEM.md#toggle) - Botões de dois estados que podem estar ligados ou desligados, individualmente ou em grupo.
818
-
819
- ### 🚀 Sistema CRUD
820
-
821
- - [CRUD System](./docs/DESIGN_SYSTEM.md#crudsystem) - Sistema completo para criação rápida de interfaces CRUD com validação, busca, paginação e muito mais.
822
- - [Wizard Form](./docs/DESIGN_SYSTEM.md#wizardform) - Formulário multi-etapas com validação, navegação entre seções e indicadores de progresso.
843
+ # Ou adicione ao package.json do seu projeto:
844
+ {
845
+ "scripts": {
846
+ "pull-docs": "forlogic-core-pull-docs"
847
+ }
848
+ }
823
849
 
824
- ---
850
+ # E execute:
851
+ npm run pull-docs
852
+ ```
853
+
854
+ ### O que é sincronizado
855
+
856
+ | Arquivo | Descrição |
857
+ |---------|-----------|
858
+ | `docs/FORLOGIC_CORE_README.md` | README completo da biblioteca |
859
+ | `docs/DESIGN_SYSTEM.md` | Documentação do Design System |
860
+ | `docs/KNOWLEDGE.md` | Knowledge base para IA/Lovable |
861
+
862
+ ### Benefícios
825
863
 
826
- > 📘 **Documentação Completa**: Para ver detalhes de props, exemplos de uso e acessibilidade de cada componente, consulte o [Design System Completo](./docs/DESIGN_SYSTEM.md).
864
+ - **Centralizado**: Documentação mantida em um único lugar (banco de dados)
865
+ - ✅ **Sempre atualizado**: Execute o comando para obter a versão mais recente
866
+ - ✅ **Sem cópia manual**: Não precisa copiar arquivos entre projetos
867
+ - ✅ **Ideal para Custom Knowledge**: Use os arquivos gerados no Lovable
868
+
869
+ ### Requisitos
870
+
871
+ O comando usa credenciais públicas do Supabase do forlogic-core e não requer configuração adicional.
872
+
873
+ ---
827
874
 
875
+ <!-- AUTO_GENERATED_START -->
876
+
877
+ ### 📚 Estatísticas da Documentação
878
+
879
+ **49 Componentes UI** | **6 Tokens** | **2 Ferramentas CRUD**
880
+
881
+ ---
882
+
883
+ ### 🎨 Fundamentos (Tokens)
884
+
885
+ - [Colors Foundation](./docs/DESIGN_SYSTEM.md#colorsfoundation) - Sistema de cores completo com escalas neutras, de marca e funcionais.
886
+ - [Radius](./docs/DESIGN_SYSTEM.md#radius) - Sistema de arredondamento de bordas para consistência visual.
887
+ - [Shadows](./docs/DESIGN_SYSTEM.md#shadows) - Sistema de sombras e elevação para criar profundidade e hierarquia.
888
+ - [Spacing](./docs/DESIGN_SYSTEM.md#spacing) - Escala de espaçamento consistente baseada em uma unidade base de 4px.
889
+ - [Typography](./docs/DESIGN_SYSTEM.md#typographycomponent) - Componentes de tipografia para estilos de texto consistentes em toda a sua aplicação.
890
+ - [Typography Foundation](./docs/DESIGN_SYSTEM.md#typographyfoundation) - Sistema tipográfico completo com Display, Headings, Body e mais.
891
+
892
+ ### 🧩 Componentes UI
893
+
894
+ - [Accordion](./docs/DESIGN_SYSTEM.md#accordion) - Um conjunto de cabeçalhos interativos empilhados verticalmente, onde cada um revela uma seção de conteúdo.
895
+ - [Action Button](./docs/DESIGN_SYSTEM.md#actionbutton) - Botão compacto otimizado para ações em linhas de tabela e menus dropdown.
896
+ - [Alert](./docs/DESIGN_SYSTEM.md#alert) - Exibe uma mensagem de destaque para chamar a atenção do usuário.
897
+ - [Aspect Ratio](./docs/DESIGN_SYSTEM.md#aspectratio) - Exibe conteúdo dentro de uma proporção desejada.
898
+ - [Avatar](./docs/DESIGN_SYSTEM.md#avatar) - Um elemento de imagem com fallback para representar o usuário.
899
+ - [Badge](./docs/DESIGN_SYSTEM.md#badge) - Exibe um badge ou um componente que se parece com um badge.
900
+ - [Breadcrumb](./docs/DESIGN_SYSTEM.md#breadcrumb) - Exibe o caminho até o recurso atual usando uma hierarquia de links.
901
+ - [Button](./docs/DESIGN_SYSTEM.md#button) - Componente de botão com variantes semânticas, tamanhos e estados. Use para ações primárias, secundárias e destrutivas.
902
+ - [Button Group](./docs/DESIGN_SYSTEM.md#buttongroup) - Agrupa botões relacionados com espaçamento e bordas apropriados.
903
+ - [Calendar & Date Picker](./docs/DESIGN_SYSTEM.md#calendar) - Componentes para seleção de datas. O Calendar exibe um calendário interativo, enquanto o Date Picker combina um campo de input com o calendário em um popover.
904
+ - [Card](./docs/DESIGN_SYSTEM.md#card) - Exibe um card com cabeçalho, conteúdo e rodapé.
905
+ - [Carousel](./docs/DESIGN_SYSTEM.md#carousel) - Um componente de carrossel para alternar entre elementos. Nota: Este componente requer a biblioteca Embla Carousel que não está incluída no forlogic-core por padrão.
906
+ - [Checkbox](./docs/DESIGN_SYSTEM.md#checkbox) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
907
+ - [Collapsible](./docs/DESIGN_SYSTEM.md#collapsible) - Um componente interativo que expande/colapsa um painel.
908
+ - [Color Picker](./docs/DESIGN_SYSTEM.md#colorpicker) - Seletor de cores com paleta predefinida e seletor customizado.
909
+ - [Combobox](./docs/DESIGN_SYSTEM.md#combobox) - Componente versátil para seleção única ou múltipla com busca inteligente. Combina Popover e Command para autocomplete.
910
+ - [Context Menu](./docs/DESIGN_SYSTEM.md#contextmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um clique com o botão direito do mouse.
911
+ - [Dialog](./docs/DESIGN_SYSTEM.md#dialog) - Uma janela sobreposta à janela principal ou a outra janela de diálogo, tornando o conteúdo abaixo inerte. Inclui variações para seleção, tabelas e formulários.
912
+ - [Dropdown Menu](./docs/DESIGN_SYSTEM.md#dropdownmenu) - Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um botão ou elemento interativo.
913
+ - [Empty State](./docs/DESIGN_SYSTEM.md#emptystate) - Componente para exibir estados vazios com ícone, mensagem e ação opcional.
914
+ - [Form](./docs/DESIGN_SYSTEM.md#form) - Construindo formulários com React Hook Form e Zod.
915
+ - [Grid](./docs/DESIGN_SYSTEM.md#grid) - Sistema de grid responsivo com configuração simplificada de colunas e espaçamento.
916
+ - [Icon Picker](./docs/DESIGN_SYSTEM.md#iconpicker) - Seletor de ícones da biblioteca Lucide React com busca integrada.
917
+ - [Input](./docs/DESIGN_SYSTEM.md#input) - Exibe um campo de entrada de texto.
918
+ - [Input Group](./docs/DESIGN_SYSTEM.md#inputgroup) - Agrupe inputs com addons de prefixo, sufixo, ícones, botões, tooltips e dropdowns. Segue a API oficial do shadcn/ui.
919
+ - [Input OTP](./docs/DESIGN_SYSTEM.md#inputotp) - Accessible one-time password component with customizable number of inputs. Available in the UI library but not exported from forlogic-core.
920
+ - [Label](./docs/DESIGN_SYSTEM.md#label) - Renderiza uma label acessível associada a controles.
921
+ - [Loading State](./docs/DESIGN_SYSTEM.md#loadingstate) - Componente para gerenciar estados de loading de forma declarativa com dois tipos: spinner e overlay.
922
+ - [Native Select](./docs/DESIGN_SYSTEM.md#nativeselect) - Elemento select nativo do HTML com estilização.
923
+ - [Pagination](./docs/DESIGN_SYSTEM.md#pagination) - Barra de paginação completa com seletor de itens por página e controles de navegação.
924
+ - [Progress](./docs/DESIGN_SYSTEM.md#progress) - Exibe um indicador mostrando o progresso de conclusão de uma tarefa, tipicamente exibido como uma barra de progresso.
925
+ - [Radio Group](./docs/DESIGN_SYSTEM.md#radiogroup) - Um conjunto de botões marcáveis—conhecidos como botões de rádio—onde apenas um pode ser marcado por vez.
926
+ - [Resizable](./docs/DESIGN_SYSTEM.md#resizable) - Grupos de painéis redimensionáveis e layouts acessíveis com suporte a teclado. Construído sobre react-resizable-panels.
927
+ - [Scroll Area](./docs/DESIGN_SYSTEM.md#scrollarea) - Aprimora a funcionalidade de rolagem nativa para estilização personalizada e cross-browser.
928
+ - [Searchbar](./docs/DESIGN_SYSTEM.md#searchbar) - Campo de busca com ícone de pesquisa integrado e botão de limpar opcional. Otimizado para experiências de busca em toda a aplicação.
929
+ - [Select](./docs/DESIGN_SYSTEM.md#select) - Exibe uma lista de opções para o usuário escolher—acionada por um botão.
930
+ - [Separator](./docs/DESIGN_SYSTEM.md#separator) - Separa visual ou semanticamente o conteúdo.
931
+ - [Sheet](./docs/DESIGN_SYSTEM.md#sheet) - Estende o componente Dialog para exibir conteúdo que complementa o conteúdo principal da tela.
932
+ - [Skeleton](./docs/DESIGN_SYSTEM.md#skeleton) - Componente de placeholder para estados de carregamento. Inclui variantes pré-configuradas para tabelas, cards, formulários e mais.
933
+ - [Slider](./docs/DESIGN_SYSTEM.md#slider) - Um input onde o usuário seleciona um valor dentro de um intervalo determinado.
934
+ - [Spinner](./docs/DESIGN_SYSTEM.md#spinner) - Um componente de spinner de carregamento para indicar estado de carregamento.
935
+ - [Stack](./docs/DESIGN_SYSTEM.md#stack) - Layout de pilha flexível com controle de direção, espaçamento, alinhamento e justificação.
936
+ - [Switch](./docs/DESIGN_SYSTEM.md#switch) - Um controle que permite ao usuário alternar entre marcado e desmarcado.
937
+ - [Tab Page Layout](./docs/DESIGN_SYSTEM.md#tabpagelayout) - Layout padronizado para páginas dentro de tabs com header, descrição, ações e conteúdo scrollável.
938
+ - [Table](./docs/DESIGN_SYSTEM.md#table) - Uma tabela semântica para exibir dados tabulares.
939
+ - [Tabs](./docs/DESIGN_SYSTEM.md#tabs) - Um conjunto de seções de conteúdo em camadas—conhecidas como painéis de abas—que são exibidas uma de cada vez.
940
+ - [Textarea](./docs/DESIGN_SYSTEM.md#textarea) - Exibe um textarea de formulário ou um componente que se parece com um textarea.
941
+ - [Toast](./docs/DESIGN_SYSTEM.md#toast) - Componente de notificação toast usando Sonner. Exibe mensagens temporárias para feedback de ações do usuário.
942
+ - [Toggle](./docs/DESIGN_SYSTEM.md#toggle) - Botões de dois estados que podem estar ligados ou desligados, individualmente ou em grupo.
943
+
944
+ ### 🚀 Sistema CRUD
945
+
946
+ - [CRUD System](./docs/DESIGN_SYSTEM.md#crudsystem) - Sistema completo para criação rápida de interfaces CRUD com validação, busca, paginação e muito mais.
947
+ - [Wizard Form](./docs/DESIGN_SYSTEM.md#wizardform) - Formulário multi-etapas com validação, navegação entre seções e indicadores de progresso.
948
+
949
+ ---
950
+
951
+ > 📘 **Documentação Completa**: Para ver detalhes de props, exemplos de uso e acessibilidade de cada componente, consulte o [Design System Completo](./docs/DESIGN_SYSTEM.md).
952
+
828
953
  <!-- AUTO_GENERATED_END -->