@iclips/ui 1.0.12 → 1.0.13

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.
@@ -0,0 +1,87 @@
1
+ import { ColumnDef } from './table-types';
2
+ import { FilterField } from './filter-builder';
3
+ import * as React from "react";
4
+ export interface AdvancedDataTableProps<T extends Record<string, any>> {
5
+ /**
6
+ * Dados a serem exibidos na tabela
7
+ */
8
+ data: T[];
9
+ /**
10
+ * Definições de colunas (header, render, sortable, etc.)
11
+ */
12
+ columns: ColumnDef<T>[];
13
+ /**
14
+ * Título opcional para exibir acima da tabela
15
+ */
16
+ title?: string;
17
+ /**
18
+ * Descrição opcional abaixo do título
19
+ */
20
+ description?: string;
21
+ /**
22
+ * Placeholder para o campo de busca
23
+ * @default "Buscar..."
24
+ */
25
+ searchPlaceholder?: string;
26
+ /**
27
+ * Colunas que serão pesquisadas pela busca global
28
+ * @default Auto-detecta primeira coluna com key 'nome', 'name', 'title' ou primeira coluna
29
+ */
30
+ searchableColumns?: (keyof T)[];
31
+ /**
32
+ * Campos disponíveis para filtros avançados
33
+ */
34
+ filterFields?: FilterField[];
35
+ /**
36
+ * Habilitar busca global
37
+ * @default true
38
+ */
39
+ enableSearch?: boolean;
40
+ /**
41
+ * Habilitar filtros avançados
42
+ * @default true (se filterFields fornecido)
43
+ */
44
+ enableFilters?: boolean;
45
+ /**
46
+ * Opções de tamanho de página
47
+ * @default [5, 10, 20, 50]
48
+ */
49
+ pageSizeOptions?: number[];
50
+ /**
51
+ * Tamanho inicial da página
52
+ * @default 10
53
+ */
54
+ initialPageSize?: number;
55
+ /**
56
+ * Exibir em Card wrapper
57
+ * @default true
58
+ */
59
+ showCard?: boolean;
60
+ /**
61
+ * Padding do Card
62
+ * @default "p-6"
63
+ */
64
+ cardPadding?: string;
65
+ /**
66
+ * Ações customizadas na toolbar (botões, dropdowns, etc.)
67
+ * Passe qualquer React.ReactNode (botões, dropdowns, menus, etc.)
68
+ */
69
+ toolbarActions?: React.ReactNode;
70
+ /**
71
+ * Estado de loading (exibe skeleton/spinner)
72
+ */
73
+ isLoading?: boolean;
74
+ /**
75
+ * Mensagem quando não há dados
76
+ * @default "Nenhum resultado encontrado."
77
+ */
78
+ emptyMessage?: string;
79
+ /**
80
+ * Classes CSS adicionais
81
+ */
82
+ className?: string;
83
+ }
84
+ export declare const AdvancedDataTable: <T extends Record<string, any>>(props: AdvancedDataTableProps<T> & {
85
+ ref?: React.Ref<HTMLDivElement>;
86
+ }) => React.ReactElement;
87
+ //# sourceMappingURL=advanced-data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-data-table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/advanced-data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnE;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IAEV;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAEhC;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkLD,eAAO,MAAM,iBAAiB,EAA+C,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzG,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KACnE,KAAK,CAAC,YAAY,CAAC"}
@@ -56,7 +56,12 @@ export * from './filter-builder';
56
56
  export * from './filter-chip';
57
57
  export * from './gantt-chart';
58
58
  export * from './kanban-card';
59
+ export * from './kpi-card';
59
60
  export * from './saved-filters';
61
+ export * from './data-table';
62
+ export * from './advanced-data-table';
63
+ export * from './table-types';
64
+ export * from './table-pagination';
60
65
  export * from './sidebar';
61
66
  export * from './task-edit-dialog';
62
67
  export * from './time-picker';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,45 @@
1
+ import * as React from "react";
2
+ export interface KPICardProps {
3
+ /**
4
+ * Título do KPI (ex: "Receita Mensal")
5
+ */
6
+ title: string;
7
+ /**
8
+ * Valor principal em destaque (ex: "R$ 127.361,23")
9
+ */
10
+ primaryContent: string;
11
+ /**
12
+ * Texto secundário descritivo (ex: "vs. mês anterior")
13
+ */
14
+ secondaryContent?: string;
15
+ /**
16
+ * Valor de tendência para exibir badge com seta
17
+ * Positivo = verde + seta para cima
18
+ * Negativo = vermelho + seta para baixo
19
+ */
20
+ trendValue?: number;
21
+ /**
22
+ * Label customizado para tendência (default: "+X%" ou "-X%")
23
+ */
24
+ trendLabel?: string;
25
+ /**
26
+ * Ícone a ser exibido no header (componente Lucide React)
27
+ */
28
+ icon?: React.ComponentType<{
29
+ className?: string;
30
+ }>;
31
+ /**
32
+ * Estado de loading - exibe skeleton
33
+ */
34
+ isLoading?: boolean;
35
+ /**
36
+ * Handler de click - torna o card clicável com hover
37
+ */
38
+ onClick?: () => void;
39
+ /**
40
+ * Classes CSS adicionais
41
+ */
42
+ className?: string;
43
+ }
44
+ export declare const KPICard: React.ForwardRefExoticComponent<KPICardProps & React.RefAttributes<HTMLDivElement>>;
45
+ //# sourceMappingURL=kpi-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kpi-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/kpi-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,qFA4EnB,CAAC"}