@esperanca-ui/componentes 2.14.24 → 2.16.0

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/COMPONENTS.md CHANGED
@@ -67,7 +67,7 @@ const sections = [
67
67
 
68
68
  export function WorkspaceShell() {
69
69
  return (
70
- <Background variant="solid" pattern="dots">
70
+ <Background pattern="dots">
71
71
  <div className="esp-shell esp-shell-density-comfortable">
72
72
  <Sidebar
73
73
  surface="glass"
@@ -134,7 +134,6 @@ Classes disponiveis:
134
134
  - `esp-quick-action-text`: texto que participa da expansao no hover
135
135
 
136
136
  Essas classes cuidam do visual do botao. Para o layout do topo, prefira usar as classes publicas `esp-shell-actions` e `esp-shell-header`.
137
- Para headers mais densos, `Button size="xs"` reduz quick actions e botoes de texto sem criar outra variante de componente.
138
137
 
139
138
  Exemplo:
140
139
 
@@ -146,16 +145,16 @@ import { FiBell, FiPlus, FiSearch } from 'react-icons/fi';
146
145
  export function TopQuickActions() {
147
146
  return (
148
147
  <div style={{ display: 'flex', justifyContent: 'flex-end', gap: 8 }}>
149
- <Button variant="ghost" size="xs" className="esp-quick-action esp-quick-action-expand" aria-label="Buscar">
148
+ <Button variant="ghost" size="sm" className="esp-quick-action esp-quick-action-expand" aria-label="Buscar">
150
149
  <FiSearch />
151
150
  <span className="esp-quick-action-text">Buscar</span>
152
151
  </Button>
153
152
 
154
- <Button variant="ghost" size="xs" className="esp-quick-action esp-quick-action-outline" aria-label="Novo projeto">
153
+ <Button variant="ghost" size="sm" className="esp-quick-action esp-quick-action-outline" aria-label="Novo projeto">
155
154
  <FiPlus />
156
155
  </Button>
157
156
 
158
- <Button variant="ghost" size="xs" className="esp-quick-action esp-quick-action-soft" aria-label="Notificacoes">
157
+ <Button variant="ghost" size="sm" className="esp-quick-action esp-quick-action-soft" aria-label="Notificacoes">
159
158
  <FiBell />
160
159
  </Button>
161
160
  </div>
@@ -165,9 +164,8 @@ export function TopQuickActions() {
165
164
 
166
165
  ## Notas de Integracao
167
166
 
168
- - `Background` entrega a superficie e os patterns. Use `variant="solid"` quando quiser um fundo neutro, sem blooms nem gradientes decorativos do preset. Blobs borrados, cards glass e outros adornos dos exemplos continuam sendo estilos da aplicacao consumidora.
167
+ - `Background` entrega a superficie e os patterns. Blobs borrados, cards glass e outros adornos dos exemplos continuam sendo estilos da aplicacao consumidora.
169
168
  - `PageHeader` aceita qualquer `actions`, mas o layout do grupo de acoes continua sendo responsabilidade do app.
170
- - `PageHeader` agora aceita `variant="page" | "section"` para trocar a escala do titulo e da descricao sem criar outro componente para subtitulos de area.
171
169
  - `Tabs` foi pensado para dois niveis: navegacao contextual (`Resumo`, `Timeline`, `Gantt`, `Calendario`) e troca de modo (`Dia`, `Semana`, `Mes`).
172
170
  - `Sidebar` agora expõe `surface="default" | "soft" | "glass"` como API publica para definir a superficie do menu lateral.
173
171
  - Itens do `Sidebar` aceitam `children` para submenu nativo. Em desktop o grupo abre no hover; em mobile o mesmo item funciona como toggle por clique.
@@ -180,16 +178,18 @@ export function TopQuickActions() {
180
178
  - Para ajustar dashboards mais densos sem CSS manual, os charts tambem aceitam `axisFontSize`, `axisTitleFontSize`, `legendFontSize`, `valueLabelFontSize`, `valueLabelFontWeight` e `fontFamily`; no `LineChart`, `lineWidth` controla a espessura da linha.
181
179
  - No `LineChart`, os labels de valor acompanham a ordem vertical das series em cada ponto: linha mais alta com valor acima, linha mais baixa com valor abaixo; quando cruzam, o lado do rotulo troca junto.
182
180
  - Quando `enableUserPreferences` estiver ativo, o proprio usuario pode ajustar itens como titulo, legenda, nomes dos eixos, valores sobre os dados e orientacao do eixo X. Se `preferencesStorageKey` for informado, isso fica salvo em `localStorage`.
183
- - `TaskCalendar` usa o mesmo contrato visual do `Card` e agora suporta `month`, `week` e `day`. No mes o padrao virou chip resumido empilhado, com espaco para responsavel, tarefa, projeto e horas; se precisar manter o visual antigo, use `monthTaskVariant="badge"`. Quando um dia passa de `maxVisibleTasks`, o `+N mais` expande a celula inline. `dayHighlights` colore dias ou faixas para feriados, freezes e janelas especiais. Nos modos `month` e `week`, o overflow horizontal tambem aceita arraste com mouse/toque via `dragToScroll`.
184
- - `GanttChart` fecha a visao horizontal de planejamento e usa `groups` como primeiro nivel. Assim, o mesmo componente serve para agrupar por projeto ou por responsavel. `dayHighlights` pinta cabecalho e grade da timeline para destacar feriados, manutencoes e bloqueios operacionais sem alterar os itens do cronograma.
181
+ - `TaskCalendar` usa o mesmo contrato visual do `Card` e agora suporta `month`, `week` e `day`. No mes as tarefas ficam pequenas como badges; em semana e dia o padrao vira card com mais contexto.
182
+ - `GanttChart` fecha a visao horizontal de planejamento e usa `groups` como primeiro nivel. Assim, o mesmo componente serve para agrupar por projeto ou por responsavel.
185
183
  - `LineChart` e `StepLineChart` aceitam `yStartAtZero` para forcar o eixo Y a comecar em 0, `yMin` e `yMax` para definir limites customizados do eixo Y. Se nenhum for informado, o eixo e calculado automaticamente.
186
184
  - `DataTable` agora suporta ordenacao por coluna. Colunas com `sortable: true` exibem indicador de ordenacao clicavel (none → asc → desc → none). Dois modos: **local** (sem `onSortChange`, ordena os dados automaticamente) e **controlado/server-side** (com `onSortChange`, o consumidor controla a ordenacao via API). Props: `sortKey`, `sortDirection`, `onSortChange`. Tipo `SortDirection` exportado como `'asc' | 'desc'`.
185
+ - `DataTable` agora suporta densidade de linhas. O botao na toolbar alterna entre `compact`, `comfortable` e `spacious` — mesma escala de `esp-shell-density-*` — reduzindo/aumentando o padding das celulas (e dos cards no mobile). Padrao: `comfortable`. Sem a prop `density` o componente controla e persiste sozinho no `localStorage`; com ela, o consumidor controla via `onDensityChange`. Props: `density`, `onDensityChange`, `densityStorageKey`. Tipo `TableDensity` exportado como `'compact' | 'comfortable' | 'spacious'`.
186
+ - `DataTable` agora aceita `maxHeight` (numero em px ou string CSS como `'60vh'`/`'calc(100vh - 240px)'`). Com ela a area de linhas ganha altura maxima e scroll vertical proprio, com o cabecalho fixo no topo — em vez de a tabela crescer e a pagina inteira rolar. Sem a prop, o comportamento continua o de antes.
187
187
 
188
188
  ## Componentes Publicos
189
189
 
190
190
  | Componente | Import | Uso minimo |
191
191
  | --- | --- | --- |
192
- | `Background` | `import { Background } from '@esperanca-ui/componentes'` | `<Background variant="solid" pattern="dots" />` |
192
+ | `Background` | `import { Background } from '@esperanca-ui/componentes'` | `<Background pattern="dots" />` |
193
193
  | `Button` | `import { Button } from '@esperanca-ui/componentes'` | `<Button>Salvar</Button>` |
194
194
  | `Card` | `import { Card } from '@esperanca-ui/componentes'` | `<Card><Card.Body>Conteudo</Card.Body></Card>` |
195
195
  | `MetricCard` | `import { MetricCard } from '@esperanca-ui/componentes'` | `<MetricCard value="42" title="Ativos" />` |
@@ -204,7 +204,7 @@ export function TopQuickActions() {
204
204
  | `BarChart` | `import { BarChart } from '@esperanca-ui/componentes'` | `<BarChart data={data} series={series} xAxisLabel="Mes" yAxisLabel="Valor" yAxisTickWidth={112} axisFontSize={11} valueLabelFontSize={10} valueLabelFontWeight={600} showValueLabels enableUserPreferences />` |
205
205
  | `Loading` | `import { Loading } from '@esperanca-ui/componentes'` | `<Loading variant="spinner" />` ou `<Loading fullScreen text="Validando acesso" />` |
206
206
  | `Modal` | `import { Modal } from '@esperanca-ui/componentes'` | `<Modal isOpen={open} onClose={...}>...</Modal>` |
207
- | `PageHeader` | `import { PageHeader } from '@esperanca-ui/componentes'` | `<PageHeader title="Clientes" />` ou `<PageHeader variant="section" title="Filtros" />` |
207
+ | `PageHeader` | `import { PageHeader } from '@esperanca-ui/componentes'` | `<PageHeader title="Clientes" />` |
208
208
  | `Tabs` | `import { Tabs } from '@esperanca-ui/componentes'` | `<Tabs items={items} variant="underline" />` |
209
209
  | `Portal` | `import { Portal } from '@esperanca-ui/componentes'` | `<Portal><div>Overlay</div></Portal>` |
210
210
  | `Radio` | `import { Radio } from '@esperanca-ui/componentes'` | `<Radio label="Opcao A" />` |
@@ -215,7 +215,7 @@ export function TopQuickActions() {
215
215
  | `TaskCard` | `import { TaskCard } from '@esperanca-ui/componentes'` | `<TaskCard title="Revisar agenda" status="in_progress" />` |
216
216
  | `TaskCalendar` | `import { TaskCalendar } from '@esperanca-ui/componentes'` | `<TaskCalendar tasks={tasks} defaultDate="2026-03-01" showViewSwitcher />` |
217
217
  | `GanttChart` | `import { GanttChart } from '@esperanca-ui/componentes'` | `<GanttChart groups={groups} defaultView="month" />` |
218
- | `DataTable` | `import { DataTable } from '@esperanca-ui/componentes'` | `<DataTable columns={columns} data={data} layoutMode="scroll" dragToScroll />` |
218
+ | `DataTable` | `import { DataTable } from '@esperanca-ui/componentes'` | `<DataTable columns={columns} data={data} density="compact" layoutMode="scroll" dragToScroll />` |
219
219
  | `Textarea` | `import { Textarea } from '@esperanca-ui/componentes'` | `<Textarea label="Descricao" />` |
220
220
  | `ThemeProvider` | `import { ThemeProvider } from '@esperanca-ui/componentes'` | `<ThemeProvider defaultTheme="system"><App /></ThemeProvider>` |
221
221
  | `ToastProvider` + `useToast` | `import { ToastProvider, useToast } from '@esperanca-ui/componentes'` | `<ToastProvider><App /></ToastProvider>` |
package/README.md CHANGED
@@ -26,12 +26,11 @@ Biblioteca de componentes React com estilos em CSS puro, build com Vite e um sit
26
26
  ├── docs-site/ # app de documentacao
27
27
  ├── docker/ # imagens e configuracao nginx
28
28
  ├── docs/ # guias de uso/publicacao
29
- ├── scripts/ # wrappers Node para tarefas locais das docs
30
29
  ├── src/ # biblioteca publicada
31
30
  ├── .gitlab-ci.yml # validacao + publicacao
32
31
  ├── package.json # scripts e metadados do pacote
33
- ├── vite.config.ts # build da biblioteca
34
- └── vite.config.docs.mjs # build das docs
32
+ ├── vite.config.ts # build da biblioteca
33
+ └── vite.config.docs.ts # build das docs
35
34
  ```
36
35
 
37
36
  ## Configuracao (.env)