# @seniorsistemas/components-ai

Biblioteca de componentes reutilizáveis com inteligência artificial para aplicações da Senior Sistemas.

## 📦 Instalação

```bash
npm install @seniorsistemas/components-ai
```

## 🎯 Objetivo

Esta biblioteca fornece componentes, serviços e utilitários comuns para acelerar o desenvolvimento de aplicações, eliminando duplicação de código e garantindo consistência entre projetos.

## 🚀 Recursos

### Componentes
- **DynamicFormComponent** - Formulário dinâmico com múltiplos modos e tipos de campo
- **ExportDialogComponent** - Exportação de dados (Excel, PDF)
- **BulkDeleteDialogComponent** - Exclusão em massa
- **BreadcrumbComponent** - Navegação breadcrumb

### Serviços
- **EntityService** - Serviço base genérico para CRUD
- **AuthService** - Autenticação
- **TranslationService** - Internacionalização
- **ThemeService** - Gerenciamento de temas
- **PermissionService** - Controle de permissões

### Diretivas
- **CepMaskDirective** - Máscara de CEP
- **DocumentMaskDirective** - Máscara de CPF/CNPJ
- **PhoneMaskDirective** - Máscara de telefone

### Pipes
- **TranslatePipe** - Pipe de tradução

## 📖 Uso Básico

### Importar o módulo

```typescript
import { AngularComponentsModule } from '@seniorsistemas/components-ai';

@NgModule({
  imports: [
    AngularComponentsModule
  ]
})
export class AppModule { }
```

### Exemplo: Formulário Dinâmico

```typescript
import { Component } from '@angular/core';
import { DynamicFormFieldConfig, FieldType } from '@seniorsistemas/components-ai';

@Component({
  selector: 'app-product-form',
  template: `
    <sia-dynamic-form
      [formFields]="formFields"
      [mode]="'create'"
      (onSubmit)="handleSubmit($event)"
    ></sia-dynamic-form>
  `
})
export class ProductFormComponent {
  formFields: DynamicFormFieldConfig[] = [
    {
      name: 'name',
      label: 'Nome do Produto',
      type: FieldType.TEXT,
      required: true,
      cols: 12
    },
    {
      name: 'price',
      label: 'Preço',
      type: FieldType.NUMBER,
      required: true,
      cols: 6
    }
  ];

  handleSubmit(formValue: any): void {
    console.log('Produto criado:', formValue);
  }
}
```

### Exemplo: Formulário em Dialog

```typescript
<sia-dynamic-form
  [(visible)]="showDialog"
  [formFields]="formFields"
  [entity]="selectedEntity"
  [mode]="selectedEntity ? 'edit' : 'create'"
  [displayMode]="'dialog'"
  [dialogHeader]="'Novo Produto'"
  (onSubmit)="handleSubmit($event)"
></sia-dynamic-form>
```

## 📚 Documentação Completa

A biblioteca inclui documentação detalhada na pasta `docs/`:

- **[COMPONENTS.md](./docs/COMPONENTS.md)** - Documentação completa de cada componente
- **[EXAMPLES.md](./docs/EXAMPLES.md)** - Exemplos práticos de uso
- **[API.md](./docs/API.md)** - Referência completa da API
- **[MIGRATION.md](./docs/MIGRATION.md)** - Guia de migração

### Acessando a Documentação

Após instalar a biblioteca, a documentação estará disponível em:
```
node_modules/@seniorsistemas/components-ai/docs/
```

Você pode abrir os arquivos diretamente no seu editor:
```bash
code node_modules/@seniorsistemas/components-ai/docs/COMPONENTS.md
code node_modules/@seniorsistemas/components-ai/docs/EXAMPLES.md
```

## 🛠️ Desenvolvimento

### Build

```bash
npm run build
```

### Testes

```bash
npm run test
```

## 📋 Requisitos

- Angular 18.2+
- PrimeNG 18.0+
- RxJS 7.8+

## 🤝 Contribuindo

Contribuições são bem-vindas! Por favor, leia o [guia de contribuição](./CONTRIBUTING.md) antes de submeter PRs.

## 📄 Licença

MIT © Senior Sistemas

## 🔗 Links

- [Documentação Completa](./docs/COMPONENTS.md)
- [Exemplos](./docs/EXAMPLES.md)
- [Changelog](./CHANGELOG.md)
