@wgalleti/primevue-components 1.7.2 → 1.9.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.
@@ -6,8 +6,8 @@ export type EditableRow = Record<string, unknown>;
6
6
  * `date` edita com o `WDatePicker` (digitação com máscara, calendário, F2 = hoje)
7
7
  * e guarda `YYYY-MM-DD` na linha — o mesmo formato que a API recebe. */
8
8
  export type EditableColumnEditor = 'number' | 'text' | 'select' | 'date' | 'none';
9
- /** Papel da coluna quando a tabela vira card (tablet em pé). Ver `EditableColumnDef.card`. */
10
- export type EditableCardRole = 'title' | 'actions' | 'meta' | 'field' | 'read' | 'hidden';
9
+ /** Papel da coluna quando a tabela vira card (componente com menos de 840px). Ver `EditableColumnDef.card`. */
10
+ export type EditableCardRole = 'title' | 'actions' | 'meta' | 'value' | 'field' | 'read' | 'hidden';
11
11
  /**
12
12
  * Coluna do WEditableTable. Diferente do `ColumnDef` (que descreve uma coluna de
13
13
  * listagem vinda da API), aqui a coluna também descreve COMO se edita a célula e
@@ -16,7 +16,8 @@ export type EditableCardRole = 'title' | 'actions' | 'meta' | 'field' | 'read' |
16
16
  export interface EditableColumnDef {
17
17
  field: string;
18
18
  header: string;
19
- /** Largura fixa da coluna (`'120px'`, `120` → px, `'12rem'`). Sem isso a coluna é fluida. */
19
+ /** Largura fixa da coluna (`'120px'`, `120` → px, `'12rem'`). Sem isso a coluna é fluida,
20
+ * com piso de `--w-col-title-min`: abaixo da soma, a grade rola na horizontal. */
20
21
  width?: string | number;
21
22
  /** Alinhamento do conteúdo. Default: `right` para `editor: 'number'`, senão `left`. */
22
23
  align?: 'left' | 'center' | 'right';
@@ -48,7 +49,8 @@ export interface EditableColumnDef {
48
49
  * Colunas sem grupo ficam com a célula de cima vazia. */
49
50
  group?: string;
50
51
  /**
51
- * Papel da coluna no **modo card** (tablet em pé, `< 840px`).
52
+ * Papel da coluna no **modo card** (o próprio componente com menos de 840px de
53
+ * largura — não a janela).
52
54
  *
53
55
  * Sem declarar nada a tabela já vira card: a primeira coluna é o `title` e as
54
56
  * demais viram `field`. Declare para dar hierarquia ao card — o que se lê de
@@ -57,14 +59,34 @@ export interface EditableColumnDef {
57
59
  * - `title` — a manchete do card (uma por linha; sobrando, a primeira vence)
58
60
  * - `actions` — ações da linha, ao lado do título
59
61
  * - `meta` — contexto compacto sob o título, duas por linha (talhão, saldo)
62
+ * - `value` — o número principal do card (saldo, total da linha): largura
63
+ * cheia, logo abaixo do contexto, rótulo pequeno em cima e o número grande,
64
+ * em negrito. Pode receber um campo pelo slot `#cell-*` (ex.: `InputNumber`):
65
+ * ele ocupa o lugar da manchete, largura cheia e no tamanho dela. O total do
66
+ * rodapé de uma coluna `value` também sai como manchete
60
67
  * - `field` — rótulo à esquerda e o controle à direita, largura cheia
61
- * - `read` — derivado: mesma régua do `field` (rótulo, caixa e número na mesma
62
- * coluna), com a caixa tinta e sem borda — borda é o que se edita
68
+ * - `read` — derivado: mesma régua do `field` (rótulo e número na mesma coluna),
69
+ * mas como TEXTO, sem caixa nem borda — borda é o que se edita; o que só se
70
+ * lê é texto
63
71
  * - `hidden` — fora do card (a coluna continua na tabela larga)
64
72
  *
65
73
  * `field` e `read` aparecem na ORDEM DAS COLUNAS, intercalados — o miolo do card
66
74
  * lê na mesma sequência da tabela. Posição fixa só para `title`, `actions`, `meta`
67
- * (contexto, logo abaixo do título) e a expansão, que fecha o card.
75
+ * (contexto, logo abaixo do título), `value` (logo abaixo do contexto) e a
76
+ * expansão, que fecha o card.
77
+ *
78
+ * **Papel por linha**: passe uma função `(row) => papel` quando a mesma coluna
79
+ * muda de natureza conforme a linha — ex.: o valor é `InputNumber` na linha em
80
+ * modo manual (`'field'`) e número calculado nas demais (`'value'`). É chamada
81
+ * por linha × coluna no render: mantenha-a pura e barata (só ler a linha).
82
+ * Use a função para `meta`, `value`, `field`, `read` (e `hidden`). `title` e
83
+ * `actions` são da TABELA, não da linha: declare-os fixos. O título é decidido
84
+ * uma vez (o primeiro `card: 'title'` fixo, senão a primeira coluna); qualquer
85
+ * outra coluna que resolva `'title'` — fixa duplicada ou função — cai em `field`.
86
+ *
87
+ * **Rodapé**: o total não tem linha, então segue a coluna — `value` fixo sai como
88
+ * manchete; com função, sai como manchete se ALGUMA linha resolve `value` (a parte
89
+ * nunca fica maior que o todo); senão, compacto (`read`).
68
90
  */
69
- card?: EditableCardRole;
91
+ card?: EditableCardRole | ((row: EditableRow) => EditableCardRole);
70
92
  }
@@ -0,0 +1,15 @@
1
+ /** Chave de uma linha do WGroupedSelectList (o valor de `dataKey`). */
2
+ export type GroupedSelectKey = string | number;
3
+ /** Escopo dos slots `group-header` e `group-meta` do WGroupedSelectList. */
4
+ export interface GroupedSelectGroupScope {
5
+ groupKey: string;
6
+ /** Rótulo do grupo (`groupLabel` ou a própria chave). */
7
+ label: string;
8
+ /** Todas as linhas do grupo, na ordem de `items`. */
9
+ items: Record<string, unknown>[];
10
+ /** Linhas do grupo que estão em `selection`. */
11
+ selectedCount: number;
12
+ /** Linhas do grupo que podem ser selecionadas. */
13
+ selectableCount: number;
14
+ collapsed: boolean;
15
+ }
@@ -4,6 +4,7 @@ export type { FieldDef, FieldType, FieldValidateContext, FkCrudConfig, SelectOpt
4
4
  export type { EditableCardRole, EditableColumnDef, EditableColumnEditor, EditableRow, } from './editableTable';
5
5
  export type { CheckListItem, CheckListLevel } from './checkList';
6
6
  export type { AttentionItem, AttentionItemClickEvent, AttentionSeverity } from './attentionList';
7
+ export type { GroupedSelectGroupScope, GroupedSelectKey } from './groupedSelectList';
7
8
  export type { KanbanColumn, KanbanMoveEvent } from './kanban';
8
9
  export type { MarkdownHeading, MarkdownRenderResult } from './markdown';
9
10
  export type { TabItem } from './tabs';
@@ -21,6 +21,8 @@ export interface KpiItem {
21
21
  size?: 'default' | 'compact';
22
22
  /** O card é o filtro aplicado à lista (borda na cor do tom, `aria-pressed`). */
23
23
  active?: boolean;
24
+ /** O tom da severidade pinta só o ícone (`icon`, padrão) ou também o valor (`value`). */
25
+ tint?: 'icon' | 'value';
24
26
  /**
25
27
  * `false` deixa o card estático mesmo com listener de `item-click` no WKpiGrid — para o
26
28
  * número que só informa numa grade em que os outros cards são filtros.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wgalleti/primevue-components",
3
- "version": "1.7.2",
3
+ "version": "1.9.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "publishConfig": {