@giro-ds/react 6.0.2 → 7.0.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/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import * as React$1 from 'react';
2
2
  import React__default, { ReactNode, ReactElement, ComponentPropsWithoutRef, CSSProperties } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Matcher } from 'react-day-picker';
5
+ import { RowData, ColumnDef } from '@tanstack/react-table';
5
6
  import { Toast as Toast$1 } from 'radix-ui';
6
7
 
7
8
  /** Tamanho do componente: 'sm' (pequeno) ou 'lg' (grande) */
@@ -48,44 +49,38 @@ interface AvatarProps extends Omit<BaseProps, 'disabled'> {
48
49
  src?: string;
49
50
  /** Texto alternativo da imagem do avatar, usado como as iniciais do nome */
50
51
  initialLetters?: string;
52
+ /** Classe CSS opcional */
53
+ className?: string;
51
54
  }
52
55
 
53
56
  declare const Avatar: React__default.FC<AvatarProps>;
54
57
 
55
- /** Tipos de badge suportados */
56
- type BadgeType = 'notification' | 'status';
57
- /** Valores possíveis para exibição no badge */
58
- type BadgeValue = number | string | null;
59
58
  /**
60
59
  * Props do componente Badge
61
60
  * @example
62
61
  * ```tsx
63
- * <Badge type="notification" badgeValue={5}>
62
+ * // Modo overlay: badge flutua sobre o children
63
+ * <Badge badgeValue={5}>
64
64
  * <IconButton icon={<BellIcon />} />
65
65
  * </Badge>
66
66
  * ```
67
67
  * @example
68
68
  * ```tsx
69
- * <Badge
70
- * type="status"
71
- * badgeValue="novo"
72
- * aria-label="Novo item disponível"
73
- * >
74
- * <Avatar icon={<UserIcon />} />
75
- * </Badge>
69
+ * // Modo inline: badge standalone ao lado de outros elementos
70
+ * <Badge badgeValue="+3" aria-label="3 novos itens" />
76
71
  * ```
77
72
  */
78
73
  interface BadgeProps extends BaseProps {
79
- /** Tipo de badge (notificação ou status) */
80
- type: BadgeType;
81
- /** Conteúdo a ser envolvido pelo badge */
74
+ /** Conteúdo a ser envolvido pelo badge. Quando presente, o badge é posicionado sobre o children (modo overlay). */
82
75
  children?: ReactNode;
83
- /** Valor a ser exibido no badge (número, texto ou null) */
84
- badgeValue?: BadgeValue;
85
- /** Valor máximo a ser exibido (ex: 99+ quando badgeValue > maxValue) */
86
- maxValue?: number;
76
+ /** Valor exibido no badge — aceita número ou string formatada (ex: "+3") */
77
+ badgeValue?: number | string | null;
87
78
  /** Label acessível para leitores de tela */
88
79
  'aria-label'?: string;
80
+ /** Prop que sinaliza se o Badge será usado no Filter ou não, pois no Filter ele tem uma cor diferente */
81
+ filterVariant?: boolean;
82
+ /** Classe CSS opcional */
83
+ className?: string;
89
84
  }
90
85
 
91
86
  declare const Badge: React__default.FC<BadgeProps>;
@@ -130,6 +125,10 @@ type ButtonOwnPropsBase = {
130
125
  tooltipSide?: 'top' | 'bottom' | 'left' | 'right';
131
126
  /** Alinhamento do tooltip */
132
127
  tooltipAlign?: 'start' | 'center' | 'end';
128
+ /**
129
+ * Classe CSS adicional para customização. Use com moderação e prefira as variantes e estilos pré-definidos do design system.
130
+ */
131
+ className?: string;
133
132
  /** Handler de clique; tipado em HTMLElement para ser compatível com todos os modos */
134
133
  onClick?: React__default.MouseEventHandler<HTMLElement>;
135
134
  } & BaseProps;
@@ -234,14 +233,14 @@ interface CalendarBaseProps extends Omit<BaseProps, 'disabled'> {
234
233
  }
235
234
  type CalendarProps = CalendarBaseProps;
236
235
 
237
- declare const Calendar: ({ selected, currentDate, defaultMonth, startMonth, endMonth, onDaySelect, onDateChange, onClear: _onClear, minDate, maxDate, disabled, format: _format, locale, autoFocus, id, "aria-label": ariaLabel, }: CalendarProps) => react_jsx_runtime.JSX.Element;
236
+ declare const Calendar: ({ selected, currentDate, defaultMonth, startMonth, endMonth, onDaySelect, onDateChange, onClear: _onClear, minDate, maxDate, disabled, format: _format, locale, autoFocus, className, id, "aria-label": ariaLabel, ...rest }: CalendarProps) => react_jsx_runtime.JSX.Element;
238
237
 
239
238
  /**
240
239
  * Props do componente Callout
241
240
  * @example
242
241
  * ```tsx
243
242
  * <Callout
244
- * type="success"
243
+ * variant="success"
245
244
  * title="Sucesso!"
246
245
  * text="Operação realizada com sucesso"
247
246
  * icon={<CheckIcon />}
@@ -250,21 +249,39 @@ declare const Calendar: ({ selected, currentDate, defaultMonth, startMonth, endM
250
249
  * @example
251
250
  * ```tsx
252
251
  * <Callout
253
- * type="alert"
252
+ * variant="alert"
254
253
  * title="Atenção"
255
254
  * text="Verifique os campos obrigatórios"
255
+ * dismiss
256
+ * onDismiss={() => setVisible(false)}
256
257
  * />
257
258
  * ```
258
259
  */
259
- interface CalloutProps extends BaseProps {
260
- /** Tipo visual do callout */
261
- type?: TextVariant;
262
- /** Título principal do callout (texto em destaque) */
263
- title?: string | null;
264
- /** Texto descritivo do callout */
265
- text?: string;
260
+ interface CalloutProps extends Omit<BaseProps, 'disabled'>, Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title'> {
261
+ /** Variante semântica do callout */
262
+ variant?: Exclude<TextVariant, 'color'>;
263
+ /** Título principal do callout */
264
+ title?: React$1.ReactNode;
265
+ /** Conteúdo descritivo do callout */
266
+ text: React$1.ReactNode;
266
267
  /** Ícone a ser exibido no callout */
267
268
  icon?: React$1.ReactNode;
269
+ /** Callback chamado ao clicar no botão de fechar. */
270
+ onDismiss?: () => void;
271
+ /** Exibe o botão de fechar. Requer onDismiss. */
272
+ dismiss?: boolean;
273
+ /**
274
+ * Nome do token de cor de fundo (sem `--`). Sobrescreve a cor da variante.
275
+ * @example backgroundColor="color-brand-secondary-medium"
276
+ */
277
+ backgroundColor?: string;
278
+ /**
279
+ * Nome do token de cor do texto e ícone (sem `--`). Sobrescreve a cor padrão.
280
+ * @example textColor="color-neutral-low-default"
281
+ */
282
+ textColor?: string;
283
+ /** Classe CSS opcional */
284
+ className?: string;
268
285
  /** Props adicionais para o elemento div */
269
286
  [key: string]: any;
270
287
  }
@@ -302,6 +319,8 @@ interface CheckboxProps extends BaseProps {
302
319
  checked?: boolean;
303
320
  /** Estado indeterminado (usado em selecionar todos com seleção parcial) */
304
321
  indeterminate?: boolean;
322
+ /** Classe CSS opcional */
323
+ className?: string;
305
324
  }
306
325
 
307
326
  declare const Checkbox: React$1.FC<CheckboxProps>;
@@ -339,6 +358,8 @@ interface ChipsProps extends BaseProps, Omit<React$1.HTMLAttributes<HTMLDivEleme
339
358
  rightIcon?: React$1.ReactNode;
340
359
  /** Estilos inline adicionais */
341
360
  style?: React$1.CSSProperties;
361
+ /** Classe CSS opcional */
362
+ className?: string;
342
363
  }
343
364
 
344
365
  declare const MemoizedChips: React__default.NamedExoticComponent<ChipsProps>;
@@ -356,9 +377,11 @@ declare const MemoizedChips: React__default.NamedExoticComponent<ChipsProps>;
356
377
  interface ContainerProps {
357
378
  /** Conteúdo a ser renderizado dentro do container */
358
379
  children: React__default.ReactNode;
380
+ /** Classe CSS customizada aplicada ao elemento raiz do container */
381
+ className?: string;
359
382
  }
360
383
 
361
- declare function Container({ children }: ContainerProps): react_jsx_runtime.JSX.Element;
384
+ declare function Container({ children, className }: ContainerProps): react_jsx_runtime.JSX.Element;
362
385
 
363
386
  /**
364
387
  * Props do componente DatePicker
@@ -410,6 +433,8 @@ interface DatePickerProps extends BaseProps {
410
433
  maxDate?: Date;
411
434
  /** ID para testes automatizados */
412
435
  'data-testid'?: string;
436
+ /** Classe CSS opcional */
437
+ className?: string;
413
438
  }
414
439
 
415
440
  declare const _default$2: React__default.NamedExoticComponent<DatePickerProps>;
@@ -439,6 +464,8 @@ interface DialogProps extends BaseProps, React.HTMLAttributes<HTMLDivElement> {
439
464
  onPrimaryAction?: () => void;
440
465
  /** Função chamada ao executar a ação secundária */
441
466
  onSecondaryAction?: () => void;
467
+ /** Classe CSS opcional */
468
+ className?: string;
442
469
  }
443
470
 
444
471
  declare const Dialog: React$1.FC<DialogProps>;
@@ -493,11 +520,13 @@ interface DrawerProps extends BaseProps {
493
520
  closeOnOverlayClick?: boolean;
494
521
  /** Define se o drawer fecha ao pressionar ESC */
495
522
  closeOnEscape?: boolean;
523
+ /** Classe CSS opcional */
524
+ className?: string;
496
525
  }
497
526
 
498
527
  declare const Drawer: React__default.FC<DrawerProps>;
499
528
 
500
- interface FilterItem$1 {
529
+ interface FilterItem$2 {
501
530
  id?: string;
502
531
  text: string;
503
532
  subText?: string;
@@ -531,7 +560,7 @@ type FilterType = 'text' | 'checkbox' | 'icon' | 'calendar';
531
560
  */
532
561
  interface FilterProps extends BaseProps {
533
562
  /** Array de itens para filtros do tipo dropdown */
534
- items?: FilterItem$1[];
563
+ items?: FilterItem$2[];
535
564
  /** Tipo do filtro (dropdown ou calendário) */
536
565
  type?: FilterType;
537
566
  /** IDs dos itens selecionados */
@@ -568,6 +597,8 @@ interface FilterProps extends BaseProps {
568
597
  maxDate?: Date;
569
598
  /** Idioma do calendário */
570
599
  locale?: Locale;
600
+ /** Classe CSS opcional */
601
+ className?: string;
571
602
  }
572
603
 
573
604
  declare const Filter: React__default.FC<FilterProps>;
@@ -621,6 +652,8 @@ interface ListItemProps extends BaseProps {
621
652
  showSubText?: boolean;
622
653
  /** Estado de hover */
623
654
  hovered?: boolean;
655
+ /** Classe CSS opcional */
656
+ className?: string;
624
657
  }
625
658
 
626
659
  declare const ListItem: React__default.FC<ListItemProps>;
@@ -700,6 +733,8 @@ interface MenuProps extends BaseProps {
700
733
  onApiSearch?: (searchTerm: string) => void;
701
734
  /** Callback executado quando o menu abre/fecha: (open) => void */
702
735
  onOpenChange?: (open: boolean) => void;
736
+ /** Classe CSS opcional */
737
+ className?: string;
703
738
  }
704
739
 
705
740
  declare const Menu: React__default.FC<MenuProps>;
@@ -747,6 +782,8 @@ interface ModalProps extends BaseProps {
747
782
  customWidth?: string;
748
783
  /** Define se o modal ocupa toda a tela. Tem prioridade sobre customWidth */
749
784
  fullscreen?: boolean;
785
+ /** Classe CSS opcional */
786
+ className?: string;
750
787
  }
751
788
 
752
789
  declare const Modal: React$1.FC<ModalProps>;
@@ -776,6 +813,8 @@ interface PopoverProps {
776
813
  onCloseAutoFocus?: (event: Event) => void;
777
814
  /** Quando `true`, exibe uma seta apontando para o trigger */
778
815
  showArrow?: boolean;
816
+ /** Classe CSS opcional */
817
+ className?: string;
779
818
  }
780
819
 
781
820
  declare const Popover: React$1.FC<PopoverProps>;
@@ -825,12 +864,14 @@ interface QuantityProps extends BaseProps {
825
864
  minValue?: number;
826
865
  /** Valor máximo permitido */
827
866
  maxValue?: number;
828
- /** Aria label for the decrement button. Default: 'Decrease quantity' */
867
+ /** Aria label para o botão de decremento. Padrão: 'Diminuir quantidade' */
829
868
  decrementAriaLabel?: string;
830
- /** Aria label for the increment button. Default: 'Increase quantity' */
869
+ /** Aria label para o botão de incremento. Padrão: 'Aumentar quantidade' */
831
870
  incrementAriaLabel?: string;
832
- /** Aria label for the quantity input. Default: 'Quantity' */
871
+ /** Aria label para a entrada de quantidade. Padrão: 'Quantidade' */
833
872
  inputAriaLabel?: string;
873
+ /** Classe CSS opcional */
874
+ className?: string;
834
875
  }
835
876
 
836
877
  declare const memorizedQuantity: React__default.NamedExoticComponent<QuantityProps>;
@@ -847,6 +888,8 @@ interface RadioProps {
847
888
  label: string;
848
889
  /** Estado desabilitado do item */
849
890
  disabled?: boolean;
891
+ /** Classe CSS opcional */
892
+ className?: string;
850
893
  }
851
894
  /**
852
895
  * Props do componente RadioGroup
@@ -932,6 +975,8 @@ interface SearchProps extends BaseProps, NativeInputProps {
932
975
  onMouseDown?: (e: React$1.MouseEvent<HTMLDivElement>) => void;
933
976
  /** ID para testes automatizados */
934
977
  'data-testid'?: string;
978
+ /** Classe CSS opcional */
979
+ className?: string;
935
980
  }
936
981
 
937
982
  declare const Search: React__default.ForwardRefExoticComponent<SearchProps & React__default.RefAttributes<HTMLInputElement>>;
@@ -1033,6 +1078,8 @@ interface SelectProps extends BaseProps {
1033
1078
  onApiSearch?: (term: string) => void;
1034
1079
  /** Estado de busca em andamento */
1035
1080
  isSearching?: boolean;
1081
+ /** Classe CSS opcional */
1082
+ className?: string;
1036
1083
  }
1037
1084
 
1038
1085
  declare const Select: React__default.FC<SelectProps>;
@@ -1108,7 +1155,7 @@ interface TableProps<T = TableRowData> extends BaseProps {
1108
1155
 
1109
1156
  declare const Table: <T extends TableRowData = TableRowData>({ columns, dataSource, className, loading, rowSelection, locale, onRow, ...rest }: TableProps<T>) => react_jsx_runtime.JSX.Element | null;
1110
1157
 
1111
- interface BaseFilterItem {
1158
+ interface BaseFilterItem$1 {
1112
1159
  id?: string;
1113
1160
  buttonText: string | React__default.ReactNode;
1114
1161
  icon?: React__default.ReactElement;
@@ -1118,15 +1165,15 @@ interface BaseFilterItem {
1118
1165
  onToggle?: (isOpen: boolean) => void;
1119
1166
  tooltip?: string;
1120
1167
  }
1121
- interface CheckboxFilterItem extends BaseFilterItem {
1168
+ interface CheckboxFilterItem$1 extends BaseFilterItem$1 {
1122
1169
  type: 'checkbox' | 'text' | 'icon';
1123
- items: FilterItem$1[];
1170
+ items: FilterItem$2[];
1124
1171
  selectedIds?: string[];
1125
1172
  onSelectionChange?: (selectedIds: string[]) => void;
1126
1173
  placeholder?: string;
1127
1174
  enableSearch?: boolean;
1128
1175
  }
1129
- interface CalendarFilterItem extends BaseFilterItem {
1176
+ interface CalendarFilterItem$1 extends BaseFilterItem$1 {
1130
1177
  type: 'calendar';
1131
1178
  selectedDate?: Date | null;
1132
1179
  onDateSelect?: (date: Date) => void;
@@ -1136,7 +1183,7 @@ interface CalendarFilterItem extends BaseFilterItem {
1136
1183
  locale?: string;
1137
1184
  placeholder?: string;
1138
1185
  }
1139
- type FilterItem = CheckboxFilterItem | CalendarFilterItem;
1186
+ type FilterItem$1 = CheckboxFilterItem$1 | CalendarFilterItem$1;
1140
1187
  interface TableHeaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
1141
1188
  searchValue?: string;
1142
1189
  onSearchChange?: (value: string) => void;
@@ -1144,7 +1191,7 @@ interface TableHeaderProps extends React__default.HTMLAttributes<HTMLDivElement>
1144
1191
  showSearch?: boolean;
1145
1192
  showFilters?: boolean;
1146
1193
  filters?: React__default.ReactNode;
1147
- filterItems?: FilterItem[];
1194
+ filterItems?: FilterItem$1[];
1148
1195
  className?: string;
1149
1196
  onSearch?: (value: string) => void;
1150
1197
  showClearSearch?: boolean;
@@ -1163,6 +1210,188 @@ interface TablePaginationProps extends React__default.HTMLAttributes<HTMLDivElem
1163
1210
  }
1164
1211
  declare const TablePagination: React__default.FC<TablePaginationProps>;
1165
1212
 
1213
+ declare module '@tanstack/react-table' {
1214
+ interface ColumnMeta<TData extends RowData, TValue> {
1215
+ /** Alinhamento do conteúdo da célula */
1216
+ align?: 'left' | 'center' | 'right';
1217
+ /** Altura máxima do conteúdo da célula (ex: 48, '3rem'). Aplica overflow: hidden */
1218
+ maxHeight?: number | string;
1219
+ }
1220
+ }
1221
+ /**
1222
+ * Props base compartilhadas por todos os tipos de filtro da tabela.
1223
+ */
1224
+ interface BaseFilterItem {
1225
+ /** Identificador único do filtro */
1226
+ id?: string;
1227
+ /** Texto ou nó exibido no botão que abre o filtro */
1228
+ buttonText: string | ReactNode;
1229
+ /** Ícone exibido no botão do filtro */
1230
+ icon?: ReactElement;
1231
+ /** Lado em que o dropdown do filtro será exibido */
1232
+ side?: Side;
1233
+ /** Alinhamento do dropdown do filtro */
1234
+ align?: Exclude<Align, 'center'>;
1235
+ /** Desabilita o botão do filtro */
1236
+ disabled?: boolean;
1237
+ /** Callback chamado quando o estado de abertura do filtro muda */
1238
+ onToggle?: (isOpen: boolean) => void;
1239
+ }
1240
+ /**
1241
+ * Props de filtro do tipo checkbox, texto ou ícone.
1242
+ * Renderiza uma lista de opções selecionáveis.
1243
+ */
1244
+ interface CheckboxFilterItem extends BaseFilterItem {
1245
+ /** Tipo do filtro */
1246
+ type: 'checkbox' | 'text' | 'icon';
1247
+ /** Lista de itens disponíveis para seleção */
1248
+ items: FilterItem$2[];
1249
+ /** IDs dos itens atualmente selecionados */
1250
+ selectedIds?: string[];
1251
+ /** Callback chamado quando a seleção muda */
1252
+ onSelectionChange?: (selectedIds: string[]) => void;
1253
+ /** Placeholder do campo de busca interno do filtro */
1254
+ placeholder?: string;
1255
+ /** Habilita campo de busca dentro do dropdown */
1256
+ enableSearch?: boolean;
1257
+ }
1258
+ /**
1259
+ * Props de filtro do tipo calendário.
1260
+ * Renderiza um seletor de data.
1261
+ */
1262
+ interface CalendarFilterItem extends BaseFilterItem {
1263
+ /** Tipo do filtro */
1264
+ type: 'calendar';
1265
+ /** Data atualmente selecionada */
1266
+ selectedDate?: Date | null;
1267
+ /** Callback chamado quando uma data é selecionada */
1268
+ onDateSelect?: (date: Date) => void;
1269
+ /** Callback chamado ao limpar a data selecionada */
1270
+ onClear?: () => void;
1271
+ /** Data mínima permitida para seleção */
1272
+ minDate?: Date;
1273
+ /** Data máxima permitida para seleção */
1274
+ maxDate?: Date;
1275
+ /** Locale utilizado para formatar datas no calendário */
1276
+ locale?: Locale;
1277
+ /** Placeholder exibido quando nenhuma data está selecionada */
1278
+ placeholder?: string;
1279
+ }
1280
+ /**
1281
+ * Union type representando um item de filtro da tabela.
1282
+ * Pode ser do tipo checkbox/texto/ícone ou calendário.
1283
+ */
1284
+ type FilterItem = CheckboxFilterItem | CalendarFilterItem;
1285
+ /**
1286
+ * Props do cabeçalho do TableV2, com busca global e filtros.
1287
+ */
1288
+ interface TableV2HeaderProps {
1289
+ /** Placeholder do campo de busca global */
1290
+ searchPlaceholder?: string;
1291
+ /** Exibe o campo de busca (padrão: true) */
1292
+ showSearch?: boolean;
1293
+ /** Items de filtro (Status, Data de início, etc.) */
1294
+ filterItems?: FilterItem[];
1295
+ }
1296
+ /**
1297
+ * Props do rodapé do TableV2, com controles de paginação.
1298
+ */
1299
+ interface TableV2FooterProps {
1300
+ /** Total de itens (para calcular número de páginas) */
1301
+ totalItems: number;
1302
+ /** Itens por página inicial (padrão: 10) */
1303
+ defaultPageSize?: number;
1304
+ /** Opções do seletor de itens por página */
1305
+ pageSizeOptions?: number[];
1306
+ /** Callback chamado quando a página muda */
1307
+ onPageChange?: (page: number) => void;
1308
+ /** Callback chamado quando o tamanho da página muda */
1309
+ onPageSizeChange?: (pageSize: number) => void;
1310
+ }
1311
+ /**
1312
+ * Props para personalização do estado vazio da tabela.
1313
+ */
1314
+ interface EmptyStateProps {
1315
+ /** Ícone exibido no estado vazio */
1316
+ emptyIcon?: ReactNode;
1317
+ /** Título exibido no estado vazio */
1318
+ emptyTitle?: ReactNode;
1319
+ /** Texto descritivo exibido no estado vazio */
1320
+ emptyText?: ReactNode;
1321
+ }
1322
+ /**
1323
+ * Definição de uma ação em massa disponível na barra de seleção.
1324
+ */
1325
+ interface BulkAction {
1326
+ /** Label do botão de ação */
1327
+ label: ReactNode;
1328
+ /** Callback ao clicar no botão */
1329
+ onClick: () => void;
1330
+ /** Desabilita o botão */
1331
+ disabled?: boolean;
1332
+ /** Variante visual do botão (padrão: 'outlined') */
1333
+ variant?: 'filled' | 'outlined' | 'text';
1334
+ }
1335
+ /**
1336
+ * Props da barra de ações em massa do TableV2.
1337
+ * Exibida quando há linhas selecionadas.
1338
+ */
1339
+ interface TableV2BulkActionsProps<T = Record<string, unknown>> {
1340
+ /** Função que retorna o label da barra de ações em massa.
1341
+ * Recebe a contagem de itens selecionados e os itens originais.
1342
+ * Se não fornecido, exibe "{count} itens selecionados". */
1343
+ label?: (count: number, selectedRows: T[]) => ReactNode;
1344
+ /** Lista de ações disponíveis quando há itens selecionados */
1345
+ actions: BulkAction[];
1346
+ /** Callback chamado ao clicar no botão de limpar seleção (X) */
1347
+ onClear?: () => void;
1348
+ }
1349
+ /**
1350
+ * Props do componente TableV2.
1351
+ * @example
1352
+ * ```tsx
1353
+ * <TableV2
1354
+ * columns={columns}
1355
+ * data={data}
1356
+ * enableSorting
1357
+ * enableRowSelection
1358
+ * loading={isLoading}
1359
+ * />
1360
+ * ```
1361
+ */
1362
+ interface TableV2Props<T = Record<string, unknown>> extends EmptyStateProps {
1363
+ /** Definições das colunas da tabela */
1364
+ columns: ColumnDef<T, any>[];
1365
+ /** Dados exibidos na tabela */
1366
+ data: T[];
1367
+ /** Habilita filtros individuais por coluna no <th> */
1368
+ enableFilters?: boolean;
1369
+ /** Habilita seleção de linhas via checkbox */
1370
+ enableRowSelection?: boolean;
1371
+ /** Habilita ordenação de colunas ao clicar no cabeçalho */
1372
+ enableSorting?: boolean;
1373
+ /** Callback chamado quando a seleção de linhas muda */
1374
+ onRowSelectionChange?: (selectedRows: T[]) => void;
1375
+ /** Configuração das ações em massa exibidas quando há linhas selecionadas */
1376
+ bulkActions?: TableV2BulkActionsProps<T>;
1377
+ /** Header acima da tabela com busca + filtros */
1378
+ header?: TableV2HeaderProps;
1379
+ /** Footer com paginação */
1380
+ footer?: TableV2FooterProps;
1381
+ /** Classe CSS personalizada para o componente */
1382
+ className?: string;
1383
+ /** Estado de carregamento — exibe skeleton animado no lugar da tabela */
1384
+ loading?: boolean;
1385
+ /** Eventos e classe aplicados por linha */
1386
+ onRow?: (row: T, index: number) => {
1387
+ onClick?: () => void;
1388
+ onDoubleClick?: () => void;
1389
+ className?: string;
1390
+ };
1391
+ }
1392
+
1393
+ declare const TableV2: <T>({ columns, data, enableFilters, enableRowSelection, enableSorting, onRowSelectionChange, bulkActions, header, footer, loading, emptyIcon, emptyTitle, emptyText, onRow, className, }: TableV2Props<T>) => react_jsx_runtime.JSX.Element;
1394
+
1166
1395
  /**
1167
1396
  * Props do componente TextArea
1168
1397
  * @example
@@ -1215,7 +1444,10 @@ interface TextAreaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLT
1215
1444
  resize?: 'none' | 'vertical' | 'both';
1216
1445
  /** Exibe contador de caracteres (requer maxLength) */
1217
1446
  showCharCount?: boolean;
1447
+ /** Altura do textarea em pixels */
1218
1448
  height?: number;
1449
+ /** Classe CSS opcional */
1450
+ className?: string;
1219
1451
  }
1220
1452
 
1221
1453
  declare const _default$1: React__default.NamedExoticComponent<TextAreaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
@@ -1279,6 +1511,8 @@ interface TextFieldProps extends Omit<React__default.InputHTMLAttributes<HTMLInp
1279
1511
  icon?: React__default.ReactNode;
1280
1512
  /** Mantém o ícone visível mesmo quando o campo tem valor */
1281
1513
  persistIcon?: boolean;
1514
+ /** Classe CSS opcional */
1515
+ className?: string;
1282
1516
  }
1283
1517
 
1284
1518
  declare const _default: React__default.NamedExoticComponent<TextFieldProps & React__default.RefAttributes<HTMLInputElement>>;
@@ -1336,6 +1570,8 @@ interface ToastProps extends BaseProps, Omit<React$1.ComponentPropsWithoutRef<ty
1336
1570
  * @default 'Info'
1337
1571
  */
1338
1572
  iconType?: 'Info' | 'Success' | 'Alert';
1573
+ /** Classe CSS opcional */
1574
+ className?: string;
1339
1575
  }
1340
1576
 
1341
1577
  /**
@@ -1477,6 +1713,8 @@ interface TooltipProps extends BaseProps {
1477
1713
  maxWidth?: number;
1478
1714
  /** Elemento que dispara o tooltip ao hover */
1479
1715
  children: React__default.ReactNode;
1716
+ /** Classe CSS opcional */
1717
+ className?: string;
1480
1718
  }
1481
1719
 
1482
1720
  declare const Tooltip: React__default.FC<TooltipProps>;
@@ -1511,6 +1749,8 @@ interface SwitchProps extends BaseProps {
1511
1749
  value?: string;
1512
1750
  /** Estado atual (modo controlado) */
1513
1751
  checked?: boolean;
1752
+ /** Classe CSS opcional */
1753
+ className?: string;
1514
1754
  }
1515
1755
 
1516
1756
  declare const Switch: React$1.FC<SwitchProps>;
@@ -1668,5 +1908,5 @@ declare function useInfiniteScroll({ status, page, lastPage, onLoadMore, thresho
1668
1908
 
1669
1909
  declare const normalizeText: (text: React.ReactNode) => string;
1670
1910
 
1671
- export { Avatar, Badge, Button, Calendar, Callout, Checkbox, MemoizedChips as Chips, Container, _default$2 as DatePicker, Dialog, Drawer, Filter, ListItem, Menu, Modal, Popover, memorizedQuantity as Quantity, Radio, Search, Select, Switch, Table, TableHeader, TablePagination, _default$1 as TextArea, _default as TextField, Toast, ToastContainer, ToastProvider, Tooltip, VerificationCode, normalizeText, useApiSimulation, useInfiniteScroll, useToast };
1672
- export type { AvatarProps, BadgeProps, ButtonProps, CalendarProps, CalloutProps, CheckboxProps, ChipsProps, ContainerProps, DatePickerProps, DialogProps, DrawerProps, FilterItem, FilterProps, ListItemProps, MenuProps, ModalProps, PopoverProps, QuantityProps, RadioGroupProps, RadioProps, SearchProps, SelectProps, SwitchProps, TableHeaderProps, TablePaginationProps, TableProps, TextAreaProps, TextFieldProps, ToastProps, TooltipProps, VerificationCodeProps };
1911
+ export { Avatar, Badge, Button, Calendar, Callout, Checkbox, MemoizedChips as Chips, Container, _default$2 as DatePicker, Dialog, Drawer, Filter, ListItem, Menu, Modal, Popover, memorizedQuantity as Quantity, Radio, Search, Select, Switch, Table, TableHeader, TablePagination, TableV2, _default$1 as TextArea, _default as TextField, Toast, ToastContainer, ToastProvider, Tooltip, VerificationCode, normalizeText, useApiSimulation, useInfiniteScroll, useToast };
1912
+ export type { AvatarProps, BadgeProps, ButtonProps, CalendarProps, CalloutProps, CheckboxProps, ChipsProps, ContainerProps, DatePickerProps, DialogProps, DrawerProps, FilterItem$1 as FilterItem, FilterProps, ListItemProps, MenuProps, ModalProps, PopoverProps, QuantityProps, RadioGroupProps, RadioProps, SearchProps, SelectProps, SwitchProps, TableHeaderProps, TablePaginationProps, TableProps, TableV2FooterProps, TableV2HeaderProps, TableV2Props, TextAreaProps, TextFieldProps, ToastProps, TooltipProps, VerificationCodeProps };