# DatePicker Padronizado (Flatpickr)

Este documento define a padronização do componente de seleção de data em todo o ERP.

## Tecnologia
- Biblioteca: Flatpickr (via CDN)
- Padrões globais:
  - `dateFormat: 'd-m-Y'` (visual: `dd-mm-yyyy`)
  - `locale: 'pt'` (pt-BR)
  - `allowInput: true` com validação automática de formato
  - `disableMobile: true` para consistência cross-browser

## Componente central
- Script: `/js/ui/datepicker.js`
- API:
  - `window.DatePicker.init()` — inicializa todos os inputs `type="date"` (exceto os com `data-native-date="true"`) e `.js-datepicker` com Flatpickr.
  - `window.DatePicker.refresh()` — reexecuta a inicialização (use após renderizações dinâmicas).

## Regras de uso
- Não usar outros plugins de datepicker.
- Para novos campos:
  - Use `<input type="date" class="input" />` ou adicione `class="js-datepicker"`.
  - Não defina máscaras manuais; o componente fará a validação.
- Para manter nativo do SO em casos raros, marque o input com `data-native-date="true"`.

## Validação e retrocompatibilidade
- Normalização automática de valores `YYYY-MM-DD` e `dd/mm/aaaa` para `dd-mm-aaaa`.
- Atributo `pattern` e `aria-invalid` são aplicados para acessibilidade e validação.

## Estilo e acessibilidade
- Overrides em `/css/theme.css` garantem consistência com o design system.
- Atributos ARIA (`aria-haspopup`, `aria-expanded`, `aria-invalid`) aplicados conforme estado.

## Testes cross-browser
- Validado em Chrome, Firefox, Edge e Safari (desktop e mobile) com `disableMobile` para manter UI consistente.
- Use ambientes `dev`, `staging` e `produção` para validar cenários reais de filtros, relatórios e formulários.

## Critérios de aceitação
- Formato unificado `dd-mm-aaaa` em todo o sistema.
- Funcionalidade operacional 100% (seleção, digitação, persistência, APIs).
- Performance otimizada e sem bloqueios.
- Retrocompatibilidade com dados históricos (ISO e `dd/mm/aaaa`).