@giro-ds/react 1.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.
Files changed (119) hide show
  1. package/LICENCE +11 -0
  2. package/dist/components/Avatar/Avatar.d.ts +3 -0
  3. package/dist/components/Avatar/Avatar.types.d.ts +7 -0
  4. package/dist/components/Avatar/index.d.ts +1 -0
  5. package/dist/components/Badge/Badge.d.ts +4 -0
  6. package/dist/components/Badge/Badge.types.d.ts +19 -0
  7. package/dist/components/Badge/index.d.ts +2 -0
  8. package/dist/components/Button/Button.d.ts +4 -0
  9. package/dist/components/Button/Button.types.d.ts +43 -0
  10. package/dist/components/Button/index.d.ts +2 -0
  11. package/dist/components/Calendar/Calendar.d.ts +6 -0
  12. package/dist/components/Calendar/Calendar.types.d.ts +42 -0
  13. package/dist/components/Calendar/i18n.d.ts +56 -0
  14. package/dist/components/Calendar/index.d.ts +1 -0
  15. package/dist/components/Callout/Callout.d.ts +4 -0
  16. package/dist/components/Callout/Callout.types.d.ts +17 -0
  17. package/dist/components/Callout/index.d.ts +1 -0
  18. package/dist/components/Checkbox/Checkbox.d.ts +4 -0
  19. package/dist/components/Checkbox/Checkbox.types.d.ts +25 -0
  20. package/dist/components/Checkbox/index.d.ts +2 -0
  21. package/dist/components/CheckboxRadix/CheckboxRadix.d.ts +4 -0
  22. package/dist/components/CheckboxRadix/CheckboxRadix.types.d.ts +10 -0
  23. package/dist/components/CheckboxRadix/index.d.ts +2 -0
  24. package/dist/components/Chips/Chips.d.ts +4 -0
  25. package/dist/components/Chips/Chips.types.d.ts +17 -0
  26. package/dist/components/Chips/index.d.ts +1 -0
  27. package/dist/components/Container/Container.types.d.ts +4 -0
  28. package/dist/components/Container/index.d.ts +2 -0
  29. package/dist/components/DatePicker/DatePicker.d.ts +4 -0
  30. package/dist/components/DatePicker/DatePicker.types.d.ts +32 -0
  31. package/dist/components/DatePicker/DateUtils.d.ts +23 -0
  32. package/dist/components/DatePicker/index.d.ts +2 -0
  33. package/dist/components/Dialog/Dialog.d.ts +4 -0
  34. package/dist/components/Dialog/Dialog.types.d.ts +24 -0
  35. package/dist/components/Dialog/index.d.ts +2 -0
  36. package/dist/components/Dialog/utils/DialogUtils.d.ts +1 -0
  37. package/dist/components/Drawer/Drawer.d.ts +9 -0
  38. package/dist/components/Drawer/Drawer.types.d.ts +43 -0
  39. package/dist/components/Drawer/index.d.ts +1 -0
  40. package/dist/components/Dropdown/Dropdown.d.ts +4 -0
  41. package/dist/components/Dropdown/Dropdown.types.d.ts +64 -0
  42. package/dist/components/Dropdown/DropdownUtils.d.ts +8 -0
  43. package/dist/components/Dropdown/index.d.ts +2 -0
  44. package/dist/components/Filter/Filter.d.ts +4 -0
  45. package/dist/components/Filter/Filter.types.d.ts +46 -0
  46. package/dist/components/Filter/index.d.ts +2 -0
  47. package/dist/components/ListItem/ListItem.d.ts +9 -0
  48. package/dist/components/ListItem/ListItem.types.d.ts +34 -0
  49. package/dist/components/ListItem/index.d.ts +2 -0
  50. package/dist/components/Menu/Menu.d.ts +4 -0
  51. package/dist/components/Menu/Menu.types.d.ts +41 -0
  52. package/dist/components/Menu/index.d.ts +2 -0
  53. package/dist/components/MenuRadix/MenuRadix.d.ts +4 -0
  54. package/dist/components/MenuRadix/MenuRadix.types.d.ts +27 -0
  55. package/dist/components/MenuRadix/components/MenuItem.d.ts +8 -0
  56. package/dist/components/MenuRadix/hooks/useMenuLogic.d.ts +15 -0
  57. package/dist/components/MenuRadix/hooks/useSearchLogic.d.ts +13 -0
  58. package/dist/components/MenuRadix/index.d.ts +2 -0
  59. package/dist/components/Quantity/Quantity.d.ts +4 -0
  60. package/dist/components/Quantity/Quantity.types.d.ts +20 -0
  61. package/dist/components/Quantity/index.d.ts +2 -0
  62. package/dist/components/Radio/Radio.d.ts +4 -0
  63. package/dist/components/Radio/Radio.types.d.ts +18 -0
  64. package/dist/components/Radio/index.d.ts +1 -0
  65. package/dist/components/RadioRadix/RadioRadix.d.ts +4 -0
  66. package/dist/components/RadioRadix/RadioRadix.types.d.ts +15 -0
  67. package/dist/components/RadioRadix/index.d.ts +2 -0
  68. package/dist/components/Search/Search.d.ts +4 -0
  69. package/dist/components/Search/Search.types.d.ts +15 -0
  70. package/dist/components/Search/index.d.ts +2 -0
  71. package/dist/components/Select/Select.d.ts +4 -0
  72. package/dist/components/Select/Select.types.d.ts +67 -0
  73. package/dist/components/Select/index.d.ts +2 -0
  74. package/dist/components/SelectField/SelectField.d.ts +4 -0
  75. package/dist/components/SelectField/SelectField.types.d.ts +35 -0
  76. package/dist/components/SelectRadix/SelectRadix.d.ts +4 -0
  77. package/dist/components/SelectRadix/SelectRadix.types.d.ts +112 -0
  78. package/dist/components/SelectRadix/components/CheckboxSelectItem.d.ts +4 -0
  79. package/dist/components/SelectRadix/components/SelectItem.d.ts +7 -0
  80. package/dist/components/SelectRadix/hooks/useSelectLogic.d.ts +3 -0
  81. package/dist/components/SelectRadix/index.d.ts +5 -0
  82. package/dist/components/Table/EmptyRows150Color.d.ts +8 -0
  83. package/dist/components/Table/LoaderList.d.ts +10 -0
  84. package/dist/components/Table/MultiLineText/MultiLineText.d.ts +14 -0
  85. package/dist/components/Table/MultiLineText/index.d.ts +2 -0
  86. package/dist/components/Table/Table.d.ts +4 -0
  87. package/dist/components/Table/Table.types.d.ts +35 -0
  88. package/dist/components/Table/TableHeader.d.ts +47 -0
  89. package/dist/components/Table/TablePagination.d.ts +21 -0
  90. package/dist/components/Table/index.d.ts +7 -0
  91. package/dist/components/Table/utils/tableActions.d.ts +21 -0
  92. package/dist/components/TextField/TextField.d.ts +4 -0
  93. package/dist/components/TextField/TextField.types.d.ts +22 -0
  94. package/dist/components/TextField/ValidationUtils.d.ts +8 -0
  95. package/dist/components/TextField/index.d.ts +2 -0
  96. package/dist/components/Toast/Toast.d.ts +13 -0
  97. package/dist/components/Toast/Toast.types.d.ts +22 -0
  98. package/dist/components/Toast/index.d.ts +2 -0
  99. package/dist/components/Tooltip/Tooltip.d.ts +4 -0
  100. package/dist/components/Tooltip/Tooltip.types.d.ts +7 -0
  101. package/dist/components/Tooltip/index.d.ts +1 -0
  102. package/dist/components/VerificationCode/VerificationCode.d.ts +20 -0
  103. package/dist/components/VerificationCode/VerificationCode.types.d.ts +19 -0
  104. package/dist/components/VerificationCode/index.d.ts +2 -0
  105. package/dist/components/index.d.ts +65 -0
  106. package/dist/hooks/ApiSimulation.d.ts +53 -0
  107. package/dist/hooks/InfiniteScroll.d.ts +41 -0
  108. package/dist/hooks/NormalizeText.d.ts +1 -0
  109. package/dist/index.cjs +7354 -0
  110. package/dist/index.cjs.map +1 -0
  111. package/dist/index.d.ts +1045 -0
  112. package/dist/index.esm.js +7299 -0
  113. package/dist/index.esm.js.map +1 -0
  114. package/dist/shared/Label/index.d.ts +13 -0
  115. package/dist/shared/icons/CheckHalf.d.ts +10 -0
  116. package/dist/shared/icons/CheckSmall.d.ts +10 -0
  117. package/dist/shared/icons/index.d.ts +4 -0
  118. package/dist/styles.css +1 -0
  119. package/package.json +72 -0
@@ -0,0 +1,1045 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactNode, ReactElement, CSSProperties } from 'react';
4
+
5
+ interface AvatarProps {
6
+ id?: string;
7
+ icon: React__default.ReactNode;
8
+ size?: 'small' | 'large';
9
+ className?: string;
10
+ }
11
+
12
+ declare let Avatar: ({ id, icon, size, className }: AvatarProps) => react_jsx_runtime.JSX.Element;
13
+
14
+ type BadgeType = 'notification' | 'status';
15
+ type BadgeValue = number | string | null;
16
+ interface BadgeProps {
17
+ /** Tipo de badge (notificação ou status) */
18
+ type: BadgeType;
19
+ /** Conteúdo a ser envolvido pelo badge */
20
+ children?: ReactNode;
21
+ /** Valor a ser exibido no badge (número, texto ou null) */
22
+ badgeValue?: BadgeValue;
23
+ /** Classes CSS adicionais */
24
+ className?: string;
25
+ /** ID único do componente */
26
+ id?: string;
27
+ /** Se o badge está desabilitado */
28
+ maxValue?: number;
29
+ /** Props de acessibilidade customizadas */
30
+ 'aria-label'?: string;
31
+ }
32
+
33
+ declare const Badge: React__default.FC<BadgeProps>;
34
+
35
+ interface ButtonProps {
36
+ /** Define o elemento a ser renderizado (ex: 'button', 'a', ou componente de roteamento) */
37
+ as?: React__default.ElementType;
38
+ /** Define o texto principal do botão */
39
+ children?: React__default.ReactNode;
40
+ /** Define tipo do botão entre as opções */
41
+ variant?: 'filled' | 'outlined' | 'text';
42
+ iconOnly?: boolean;
43
+ /** Define a posição do ícone entre as opções */
44
+ iconPosition?: 'none' | 'left' | 'right';
45
+ /** URL para links externos (ex: https://example.com) */
46
+ href?: string;
47
+ /** Rota interna para navegação SPA (ex: /dashboard, /profile) */
48
+ to?: string;
49
+ /** Indica se o link é externo */
50
+ external?: boolean;
51
+ /** Target para links (_blank, _self, etc.) */
52
+ target?: string;
53
+ /** Rel attribute para links */
54
+ rel?: string;
55
+ /** Props para React Router (replace, state, etc.) */
56
+ routerProps?: Record<string, any>;
57
+ type?: 'button' | 'submit' | 'reset';
58
+ /** Desabilita interações do botão */
59
+ disabled?: boolean;
60
+ /** Função a ser chamada quando o botão é clicado */
61
+ onClick?: (event: React__default.MouseEvent<HTMLElement>) => void;
62
+ /** Define o tamanho do botão entre as opções */
63
+ size?: 'lg' | 'sm';
64
+ /** Classe CSS opcional */
65
+ className?: string;
66
+ /** ID opcional */
67
+ id?: string;
68
+ /** Ícone opcional */
69
+ icon?: React__default.ReactNode;
70
+ /** Define se o botão deve ocupar toda a largura */
71
+ fullWidth?: boolean;
72
+ /** Texto para acessibilidade */
73
+ ariaLabel?: string;
74
+ /** Outros props específicos do elemento/componente */
75
+ [key: string]: any;
76
+ }
77
+
78
+ declare const Button: React__default.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React__default.RefAttributes<HTMLElement>>;
79
+
80
+ type Locale = 'pt-br' | 'en-us';
81
+ type DateFormat = 'dd/mm/yyyy' | 'mm/dd/yyyy';
82
+ interface DayItem {
83
+ type: 'day';
84
+ key: number;
85
+ day: number;
86
+ date: Date;
87
+ isToday: boolean;
88
+ isSelected: boolean;
89
+ label: string;
90
+ }
91
+ interface EmptyItem {
92
+ type: 'empty';
93
+ key: string;
94
+ }
95
+ type CalendarItem = DayItem | EmptyItem;
96
+ interface YearItem {
97
+ year: number;
98
+ isCurrent: boolean;
99
+ key: number;
100
+ }
101
+ interface CalendarProps {
102
+ /** Data do dia Atual */
103
+ currentDate: Date | null;
104
+ /** Classe CSS adicional */
105
+ className?: string;
106
+ /** Dia Selecionado pelo usuário */
107
+ selectedDate?: Date | null;
108
+ /** Função que é executada quando a data escolhida é alterada */
109
+ onDateChange?: (date: Date) => void;
110
+ /** Função que é executada quando um dia é selecionado */
111
+ onDaySelect?: (date: Date) => void;
112
+ onClear?: () => void;
113
+ minDate?: Date;
114
+ maxDate?: Date;
115
+ /** Locale do calendário ('pt-br' ou 'en-us') */
116
+ locale?: Locale;
117
+ /** Formato de exibição da data ('dd/mm/yyyy' ou 'mm/dd/yyyy') */
118
+ format?: DateFormat;
119
+ /** Identificador do elemento raiz do calendário */
120
+ id?: string;
121
+ }
122
+
123
+ declare const MemoizedCalendar: React__default.NamedExoticComponent<CalendarProps>;
124
+
125
+ interface CalloutProps {
126
+ /** Define o tipo de callout */
127
+ type?: 'neutral' | 'color' | 'brand' | 'alert' | 'success';
128
+ /** Define o título com mais destaque */
129
+ title?: string | null;
130
+ /** Define o texto com menos destaque */
131
+ text?: string;
132
+ /** Define o ícone a ser importado */
133
+ icon?: React__default.ReactNode;
134
+ /** Define a classe CSS adicional */
135
+ className?: string;
136
+ /** Define o id do callout */
137
+ id?: string;
138
+ /** Props adicionais para o elemento div */
139
+ [key: string]: any;
140
+ }
141
+
142
+ declare const Callout: React__default.FC<CalloutProps>;
143
+
144
+ interface CheckboxProps {
145
+ /** Unique identifier for the checkbox input */
146
+ id?: string;
147
+ /** Name attribute for the checkbox, used for form identification */
148
+ name?: string;
149
+ /** Controlled value indicating whether the checkbox is checked */
150
+ checked?: boolean;
151
+ /** Callback function triggered when the checkbox value changes */
152
+ onChange?: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
153
+ /** Label text displayed next to the checkbox */
154
+ label?: string | React__default.ReactNode;
155
+ /** Additional CSS classes for custom styling */
156
+ className?: string;
157
+ /** Value attribute for the checkbox input element */
158
+ value?: string;
159
+ /** AriaDescribedBy for the checkbox input element */
160
+ ariaDescribedby?: string;
161
+ /** Disables the checkbox, preventing user interaction */
162
+ disabled?: boolean;
163
+ /** Sets the checkbox to an indeterminate state (useful for parent-child relationships) */
164
+ indeterminate?: boolean;
165
+ /** Additional props passed to the checkbox input element */
166
+ [key: string]: any;
167
+ }
168
+
169
+ declare const MemoizedCheckbox: React__default.NamedExoticComponent<CheckboxProps>;
170
+
171
+ interface CheckboxRadixProps {
172
+ id?: string;
173
+ label: string;
174
+ onCheckedChange?: (checked: boolean) => void;
175
+ defaultChecked?: boolean;
176
+ checked?: boolean;
177
+ disabled?: boolean;
178
+ className?: string;
179
+ indeterminate?: boolean;
180
+ }
181
+
182
+ declare const CheckboxRadix: React$1.FC<CheckboxRadixProps>;
183
+
184
+ interface ChipsProps {
185
+ /** Variante a ser escolhida para utilizar padrões de estilizações pré-definidos */
186
+ type?: 'neutral' | 'brand' | 'color' | 'success' | 'alert';
187
+ /** Texto a ser exibido dentro do componente */
188
+ title: string;
189
+ /** Ícone react que ficará posicionado à esquerda no componente */
190
+ leftIcon?: React__default.ReactNode;
191
+ /** Ícone react que ficará posicionado à direita no componente */
192
+ rightIcon?: React__default.ReactNode;
193
+ /** Estado alterável para desabilitar */
194
+ disabled?: boolean;
195
+ /** Classe CSS adicional */
196
+ className?: string;
197
+ /** Props adicionais para o elemento div */
198
+ [key: string]: any;
199
+ }
200
+
201
+ declare const MemoizedChips: React__default.NamedExoticComponent<ChipsProps>;
202
+
203
+ interface ContainerProps {
204
+ children: React__default.ReactNode;
205
+ }
206
+
207
+ declare function Container({ children }: ContainerProps): react_jsx_runtime.JSX.Element;
208
+
209
+ type DatePickerLocale = 'pt-br' | 'en-us';
210
+ type CalendarPosition = 'left' | 'right';
211
+ interface DatePickerProps {
212
+ /** Locale para formatação da data */
213
+ locale?: DatePickerLocale;
214
+ /** Posição do calendário */
215
+ calendarPosition?: CalendarPosition;
216
+ /** Texto de ajuda */
217
+ helperText?: string;
218
+ /** Se o campo é obrigatório */
219
+ required?: boolean;
220
+ /** Label do campo */
221
+ label?: string;
222
+ /** Valor controlado da data */
223
+ value?: Date | null;
224
+ /** Valor inicial para modo não controlado */
225
+ defaultValue?: Date | null;
226
+ /** Callback chamado quando a data muda */
227
+ onChange?: (date: Date | null) => void;
228
+ /** Se o campo está desabilitado */
229
+ disabled?: boolean;
230
+ /** Mensagem de erro */
231
+ error?: string;
232
+ /** Data mínima permitida */
233
+ minDate?: Date;
234
+ /** Data máxima permitida */
235
+ maxDate?: Date;
236
+ /** Classes CSS adicionais */
237
+ className?: string;
238
+ /** ID para testes */
239
+ 'data-testid'?: string;
240
+ }
241
+
242
+ declare const _default: React__default.NamedExoticComponent<DatePickerProps>;
243
+
244
+ interface DialogProps {
245
+ children?: ReactNode;
246
+ /** Se o Dialog está visível */
247
+ show: boolean;
248
+ /** Título exibido no cabeçalho do Dialog (obrigatório) */
249
+ title: string;
250
+ /** Texto do corpo do Dialog */
251
+ text?: ReactNode;
252
+ /** Texto do botão de confirmação */
253
+ textConfirm?: string;
254
+ /** Texto do botão de cancelamento */
255
+ textCancel?: string;
256
+ /** Função chamada ao confirmar */
257
+ fnConfirm?: () => void;
258
+ /** Função chamada ao cancelar */
259
+ fnCancel?: () => void;
260
+ /** Função chamada ao fechar o Dialog */
261
+ onClose?: () => void;
262
+ /** ID opcional para o Dialog */
263
+ id?: string;
264
+ /** Classe CSS opcional */
265
+ className?: string;
266
+ }
267
+
268
+ declare const MemoizedDialog: React__default.NamedExoticComponent<DialogProps>;
269
+
270
+ interface DrawerProps {
271
+ /** Conteúdo do Drawer */
272
+ children?: ReactNode;
273
+ /** Largura do Drawer (use design tokens quando possível) */
274
+ customWidth?: string;
275
+ /** Callback quando o Drawer é fechado */
276
+ onClose: () => void;
277
+ /** Título do Drawer */
278
+ title?: string;
279
+ /** Determina se o drawer está aberto */
280
+ isOpen: boolean;
281
+ /** Callback quando o Drawer é aberto */
282
+ onOpen?: () => void;
283
+ /** Classes CSS adicionais */
284
+ className?: string;
285
+ /** ID único do componente */
286
+ id?: string;
287
+ /** Se o drawer está desabilitado */
288
+ disabled?: boolean;
289
+ /** Callback chamado quando clica no overlay */
290
+ onOverlayClick?: () => void;
291
+ /** Se deve fechar ao clicar no overlay */
292
+ closeOnOverlayClick?: boolean;
293
+ /** Se deve fechar ao pressionar ESC */
294
+ closeOnEscape?: boolean;
295
+ }
296
+
297
+ /**
298
+ * Componente Drawer do Zanthus Design System
299
+ * Implementa um painel lateral deslizante com overlay
300
+ * Segue padrões WCAG 2.1 AA para acessibilidade
301
+ */
302
+ declare const Drawer: React__default.FC<DrawerProps>;
303
+
304
+ interface DropdownItem {
305
+ /** ID único do item (opcional, será gerado automaticamente se não fornecido) */
306
+ id?: string;
307
+ /** Texto principal do item */
308
+ text: string;
309
+ /** Texto secundário/descrição do item */
310
+ subText?: string;
311
+ /** Ícone do item (React node) */
312
+ icon?: React__default.ReactNode;
313
+ /** Define se o item está desabilitado */
314
+ disabled?: boolean;
315
+ }
316
+ type DropdownType = 'text' | 'checkbox' | 'icon';
317
+ interface DropdownProps {
318
+ /** Classes CSS adicionais */
319
+ className?: string;
320
+ /** Força posição do dropdown: 'top' abre para cima, 'bottom' abre para baixo. Se não especificado, usa detecção automática */
321
+ position?: 'top' | 'bottom';
322
+ /** Array de itens para o dropdown - obrigatório */
323
+ items: DropdownItem[];
324
+ /** ID único do componente */
325
+ id?: string;
326
+ /** Tipo do dropdown */
327
+ type?: DropdownType;
328
+ /** Habilita campo de busca */
329
+ applySearch?: boolean;
330
+ /** Placeholder do campo de busca */
331
+ placeholder?: string;
332
+ /** Callback para mudanças na seleção */
333
+ onSelectionChange?: (selectedIds: string[]) => void;
334
+ /** Controla exibição do subtexto */
335
+ showSubText?: boolean;
336
+ /** IDs dos itens selecionados por padrão */
337
+ defaultSelectedIds?: string[];
338
+ /** Estado inicial dos itens selecionados (objeto com chave-valor) */
339
+ initialItemsSelected?: Record<string, boolean>;
340
+ width?: string | number;
341
+ maxWidth?: string | number;
342
+ minWidth?: string | number;
343
+ /** Altura máxima do dropdown */
344
+ maxHeight?: string | number;
345
+ /** Define se o componente esta sendo usado para filtro */
346
+ filter?: boolean;
347
+ /**
348
+ * Configurações para paginação infinita
349
+ */
350
+ infiniteScroll?: {
351
+ /** Status atual do carregamento */
352
+ status: 'idle' | 'loading' | 'succeeded' | 'failed';
353
+ /** Página atual */
354
+ page: number;
355
+ /** Última página disponível */
356
+ lastPage: number;
357
+ /** Callback para carregar próxima página */
358
+ onLoadMore: () => void;
359
+ /** Threshold para trigger (0-1) */
360
+ threshold?: number;
361
+ /** Margem para trigger */
362
+ rootMargin?: string;
363
+ /** Debug mode */
364
+ debug?: boolean;
365
+ };
366
+ }
367
+
368
+ declare const MemoizedDropdown: React__default.NamedExoticComponent<DropdownProps>;
369
+
370
+ type FilterButtonVariant = 'filled' | 'outlined' | 'text';
371
+ interface FilterProps {
372
+ /** Items para o dropdown */
373
+ items?: DropdownItem[];
374
+ /** Tipo do dropdown */
375
+ type?: DropdownType | 'calendar';
376
+ /** IDs selecionados */
377
+ selectedIds?: string[];
378
+ /** Callback quando aplicar filtros */
379
+ onApplyFilter?: (selectedIds: string[]) => void;
380
+ /** Placeholder do dropdown */
381
+ placeholder?: string;
382
+ /** Habilita busca no dropdown */
383
+ enableSearch?: boolean;
384
+ /** Texto do botão do filtro */
385
+ buttonText?: string | ReactNode;
386
+ /** Ícone do botão */
387
+ icon?: ReactElement;
388
+ /** Variante do botão */
389
+ variant?: FilterButtonVariant;
390
+ /** Callback chamado quando o filtro é aberto */
391
+ onOpen?: () => void;
392
+ /** Callback chamado quando o filtro é fechado */
393
+ onClose?: () => void;
394
+ /** Posição do dropdown */
395
+ position?: 'left' | 'right';
396
+ /** Se o filtro está desabilitado */
397
+ disabled?: boolean;
398
+ /** Classes CSS adicionais */
399
+ className?: string;
400
+ /** Data selecionada (quando type='calendar') */
401
+ selectedDate?: Date | null;
402
+ /** Callback quando data é selecionada */
403
+ onDateSelect?: (date: Date) => void;
404
+ /** Callback para limpar data */
405
+ onClearDate?: () => void;
406
+ /** Data mínima permitida */
407
+ minDate?: Date;
408
+ /** Data máxima permitida */
409
+ maxDate?: Date;
410
+ /** Locale do calendar */
411
+ locale?: 'pt-br' | 'en-us';
412
+ }
413
+
414
+ declare const Filter: React__default.FC<FilterProps>;
415
+
416
+ type ListItemVariant = 'text' | 'checkbox' | 'radio' | 'icon';
417
+ interface ListItemProps {
418
+ /** ID único do componente */
419
+ id?: string;
420
+ /** Classes CSS customizadas */
421
+ className?: string;
422
+ /** Variante do item da lista */
423
+ variant?: ListItemVariant;
424
+ /** Texto principal do item */
425
+ text?: string;
426
+ /** Nome do input (para checkbox/radio) */
427
+ name?: string;
428
+ /** Texto secundário/descrição */
429
+ subText?: string;
430
+ /** Se o item está desabilitado */
431
+ disabled?: boolean;
432
+ /** Estado de checked (para checkbox/radio) */
433
+ checked?: boolean;
434
+ /** Estado de selecionado (para text/icon) */
435
+ selected?: boolean;
436
+ /** Callback para clique no item */
437
+ onClick?: (event: React__default.MouseEvent<HTMLElement> | React__default.KeyboardEvent<HTMLElement>) => void;
438
+ /** Callback para mudança de estado */
439
+ onChange?: (checked: boolean) => void;
440
+ /** Ícone do item (para variant icon) */
441
+ icon?: React__default.ReactNode;
442
+ /** Valor do input (para checkbox/radio) */
443
+ value?: string;
444
+ /** Se deve mostrar o subtexto */
445
+ showSubText?: boolean;
446
+ /** Estado de hover */
447
+ hovered?: boolean;
448
+ }
449
+
450
+ /**
451
+ * Componente ListItem do Zanthus Design System
452
+ * Implementa item de lista unificado com variações text, checkbox, radio e icon
453
+ * Segue padrões WCAG 2.1 AA para acessibilidade
454
+ */
455
+ declare const ListItem: React__default.FC<ListItemProps>;
456
+
457
+ interface MenuItem {
458
+ /** ID único do item */
459
+ id: string;
460
+ /** Texto principal do item */
461
+ text: string;
462
+ /** Texto secundário opcional */
463
+ subText?: string;
464
+ /** Ícone do item */
465
+ icon?: ReactNode;
466
+ /** Estado desabilitado */
467
+ disabled?: boolean;
468
+ /** Valor customizado do item */
469
+ value?: unknown;
470
+ }
471
+ interface MenuProps {
472
+ /** Elemento React que será usado como âncora do menu (obrigatório) */
473
+ children: ReactElement<any, any>;
474
+ /** Array de itens do menu */
475
+ menuItems?: MenuItem[];
476
+ /** Callback executado quando um item do menu é clicado */
477
+ onMenuItemClick?: (item: MenuItem) => void;
478
+ /** Callback executado quando o menu é aberto/fechado */
479
+ onToggle?: (isOpen: boolean) => void;
480
+ /** Tipo do dropdown */
481
+ type?: 'text' | 'icon';
482
+ /** Habilita campo de busca */
483
+ applySearch?: boolean;
484
+ /** Placeholder do campo de busca */
485
+ placeholder?: string;
486
+ /** Controla exibição do subtexto */
487
+ showSubText?: boolean;
488
+ /** Classes CSS adicionais */
489
+ className?: string;
490
+ /** ID único do componente */
491
+ id?: string;
492
+ maxWidth?: string | number;
493
+ minWidth?: string | number;
494
+ /** Posição do menu em relação ao elemento âncora */
495
+ position?: 'left' | 'right';
496
+ }
497
+
498
+ declare const Menu: React__default.FC<MenuProps>;
499
+
500
+ interface MenuItemProps {
501
+ id?: string;
502
+ text?: string;
503
+ subText?: string;
504
+ disabled?: boolean;
505
+ icon?: React.ReactNode;
506
+ children?: MenuItemProps[];
507
+ value?: string;
508
+ }
509
+ interface MenuRadixProps {
510
+ items: MenuItemProps[];
511
+ children?: ReactElement;
512
+ type?: 'text' | 'icon';
513
+ className?: string;
514
+ onItemSelect?: (items: MenuItemProps) => void;
515
+ selectedItems?: MenuItemProps[];
516
+ search?: boolean;
517
+ align?: 'start' | 'end' | 'center';
518
+ maxHeight?: number | string;
519
+ enableInfiniteScroll?: boolean;
520
+ onScrollEnd?: () => void;
521
+ isLoadingMore?: boolean;
522
+ enableApiSearch?: boolean;
523
+ onApiSearch?: (searchTerm: string) => void;
524
+ onOpenChange?: (open: boolean) => void;
525
+ }
526
+
527
+ declare const MenuRadix: React__default.FC<MenuRadixProps>;
528
+
529
+ interface QuantityProps {
530
+ /** Valor padrão inicial */
531
+ defaultValue?: number;
532
+ /** Valor controlado externamente */
533
+ value?: number;
534
+ /** Callback chamado quando o valor muda */
535
+ onChange?: (value: number) => void;
536
+ /** Define se o componente está desabilitado */
537
+ disabled?: boolean;
538
+ /** Define se o valor do input será decimal ou inteiro */
539
+ decimal?: boolean;
540
+ /** Define o tamanho do componente */
541
+ size?: 'lg' | 'sm';
542
+ /** Define o número de casas decimais quando decimal for true */
543
+ decimalPlaces?: number;
544
+ step?: number;
545
+ id?: string;
546
+ /** ClassName adicional para customização */
547
+ className?: string;
548
+ }
549
+
550
+ declare const memorizedQuantity: React__default.NamedExoticComponent<QuantityProps>;
551
+
552
+ interface RadioProps$1 {
553
+ /** Definirá o nome do grupo de radio */
554
+ name?: string;
555
+ /** O valor associado ao botão de rádio */
556
+ value: string;
557
+ /** O identificador único para o input do rádio */
558
+ id?: string;
559
+ /** Indica se o botão de rádio está selecionado */
560
+ checked?: boolean;
561
+ /** Classes adicionais para estilização personalizada */
562
+ className?: string;
563
+ /** Função de callback acionada quando o valor do botão de rádio muda */
564
+ onChange?: (value: string) => void;
565
+ /** O texto do rótulo exibido ao lado do botão de rádio */
566
+ label?: string;
567
+ /** Indica se o botão de rádio está desabilitado */
568
+ disabled?: boolean;
569
+ }
570
+
571
+ declare const MemoizedRadio: React__default.NamedExoticComponent<RadioProps$1>;
572
+
573
+ interface RadioProps {
574
+ id?: string | number;
575
+ value: string;
576
+ label: string;
577
+ disabled?: boolean;
578
+ }
579
+ interface RadioGroupProps {
580
+ id?: string;
581
+ items: RadioProps[];
582
+ onValueChange?: (value: string) => void;
583
+ defaultValue?: string;
584
+ name?: string;
585
+ ariaLabel?: string;
586
+ orientation?: "horizontal" | "vertical";
587
+ }
588
+
589
+ declare const RadioRadix: React__default.FC<RadioGroupProps>;
590
+
591
+ interface SearchProps {
592
+ placeholder?: string;
593
+ disabled?: boolean;
594
+ value?: string;
595
+ onChange?: (e: React__default.ChangeEvent<HTMLInputElement>) => void;
596
+ onKeyDown?: (e: React__default.KeyboardEvent<HTMLInputElement>) => void;
597
+ onFocus?: (e: React__default.FocusEvent<HTMLInputElement>) => void;
598
+ onBlur?: (e: React__default.FocusEvent<HTMLInputElement>) => void;
599
+ onClear?: () => void;
600
+ onClick?: (e: React__default.MouseEvent<HTMLDivElement>) => void;
601
+ onMouseDown?: (e: React__default.MouseEvent<HTMLDivElement>) => void;
602
+ className?: string;
603
+ id?: string;
604
+ }
605
+
606
+ declare const Search: React__default.ForwardRefExoticComponent<SearchProps & React__default.RefAttributes<HTMLInputElement>>;
607
+
608
+ interface SelectOption {
609
+ /** ID único da opção (opcional, será gerado automaticamente se não fornecido) */
610
+ id?: string;
611
+ /** Texto principal da opção */
612
+ text: string;
613
+ /** Texto secundário/descrição da opção */
614
+ subText?: string;
615
+ /** Ícone da opção (React node) */
616
+ icon?: React__default.ReactNode;
617
+ /** Define se a opção está desabilitada */
618
+ disabled?: boolean;
619
+ }
620
+ interface SelectProps {
621
+ /** ID único do componente */
622
+ id?: string;
623
+ /** Array de opções para seleção - obrigatório */
624
+ options: SelectOption[];
625
+ /** Valor(es) selecionado(s) */
626
+ value?: string | string[];
627
+ /** Valor inicial para seleção (usado apenas na primeira renderização) */
628
+ initialValue?: string | string[];
629
+ /** Callback para mudanças na seleção */
630
+ onChange?: (selectedItems: SelectOption[]) => void;
631
+ /** Placeholder do campo */
632
+ placeholder?: string;
633
+ /** Tipo do dropdown (single ou multiple) */
634
+ type?: DropdownType;
635
+ maxHeight?: string;
636
+ /** Label do campo */
637
+ label?: string;
638
+ /** Texto de ajuda */
639
+ helperText?: string;
640
+ /** Mensagem de erro */
641
+ errorMessage?: string;
642
+ /** Campo obrigatório */
643
+ required?: boolean;
644
+ /** Campo desabilitado */
645
+ disabled?: boolean;
646
+ /** Classes CSS adicionais */
647
+ className?: string;
648
+ /** Texto para acessibilidade */
649
+ showSubText?: boolean;
650
+ /** Aria-label do campo */
651
+ ariaLabel?: string;
652
+ /** Habilita campo de busca */
653
+ applySearch?: boolean;
654
+ /** Placeholder do campo de busca */
655
+ searchPlaceholder?: string;
656
+ maxWidth?: string;
657
+ minWidth?: string;
658
+ tooltip?: boolean;
659
+ tooltipText?: string;
660
+ width?: string;
661
+ /** Força posição do dropdown: 'top' abre para cima, 'bottom' abre para baixo. Se não especificado, usa detecção automática */
662
+ position?: 'top' | 'bottom';
663
+ positionTooltip?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'left' | 'right';
664
+ infiniteScroll?: {
665
+ status: 'idle' | 'loading' | 'succeeded' | 'failed';
666
+ page: number;
667
+ lastPage: number;
668
+ onLoadMore: () => void;
669
+ threshold?: number;
670
+ rootMargin?: string;
671
+ };
672
+ }
673
+
674
+ declare const Select: React__default.NamedExoticComponent<SelectProps>;
675
+
676
+ interface SelectFieldProps {
677
+ /** ID do campo */
678
+ id?: string;
679
+ /** Nome do campo */
680
+ name?: string;
681
+ /** Valor exibido */
682
+ value?: string;
683
+ /** Placeholder */
684
+ placeholder?: string;
685
+ /** Label do campo */
686
+ label?: string;
687
+ /** Texto de ajuda */
688
+ helperText?: string;
689
+ /** Mensagem de erro */
690
+ errorMessage?: string;
691
+ /** Campo obrigatório */
692
+ required?: boolean;
693
+ /** Campo desabilitado */
694
+ disabled?: boolean;
695
+ /** Ícone (chevron) */
696
+ icon?: React__default.ReactNode;
697
+ /** Estado aberto */
698
+ isOpen?: boolean;
699
+ /** Classes CSS adicionais */
700
+ className?: string;
701
+ /** Tooltip info */
702
+ tooltip?: React__default.ReactNode;
703
+ tooltipText?: string;
704
+ positionTooltip?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'left' | 'right';
705
+ /** Indica se o campo foi "tocado" (aberto e fechado) */
706
+ isTouched?: boolean;
707
+ /** Força estado de erro independente da validação interna */
708
+ hasError?: boolean;
709
+ }
710
+
711
+ declare const SelectField: React__default.ForwardRefExoticComponent<SelectFieldProps & React__default.RefAttributes<HTMLDivElement>>;
712
+
713
+ interface SelectItemProps {
714
+ id?: string;
715
+ text: ReactNode;
716
+ subTitle?: ReactNode;
717
+ icon?: ReactNode;
718
+ disabled?: boolean;
719
+ value: string;
720
+ selected?: boolean;
721
+ }
722
+ type SelectVariant = 'text' | 'icon' | 'checkbox';
723
+ interface SelectRadixProps {
724
+ items: SelectItemProps[];
725
+ onValueChange?: (value: string | string[]) => void;
726
+ onOpenChange?: (open: boolean) => void;
727
+ variant: SelectVariant;
728
+ required?: boolean;
729
+ value?: string | string[];
730
+ multiple?: boolean;
731
+ placeholder?: string;
732
+ search?: boolean;
733
+ tooltip?: boolean;
734
+ tooltipMessage?: string;
735
+ label?: string;
736
+ helperText?: string;
737
+ maxWidth?: string | number;
738
+ errorMessage?: string;
739
+ disabled?: boolean;
740
+ className?: string;
741
+ 'aria-label'?: string;
742
+ 'data-testid'?: string;
743
+ enableInfiniteScroll?: boolean;
744
+ onScrollEnd?: () => void;
745
+ isLoadingMore?: boolean;
746
+ enableApiSearch?: boolean;
747
+ onApiSearch?: (term: string) => void;
748
+ isSearching?: boolean;
749
+ }
750
+
751
+ declare const SelectRadix: React__default.FC<SelectRadixProps>;
752
+
753
+ type TableColumnType = 'text' | 'datetime' | 'custom';
754
+ type TableAlign = 'left' | 'center' | 'right';
755
+ interface TableColumn {
756
+ key: string;
757
+ label: ReactNode;
758
+ type?: TableColumnType;
759
+ format?: string;
760
+ render?: (row: TableRowData, index: number) => ReactNode;
761
+ align?: TableAlign;
762
+ style?: CSSProperties;
763
+ }
764
+ type TableRowData = Record<string, any>;
765
+ interface TableProps {
766
+ columns: TableColumn[];
767
+ dataSource: TableRowData[];
768
+ className?: string;
769
+ loading?: boolean;
770
+ rowSelection?: {
771
+ selectedRowKeys?: (string | number)[];
772
+ onChange?: (keys: (string | number)[], rows: TableRowData[]) => void;
773
+ getCheckboxProps?: (row: TableRowData, index: number) => {
774
+ disabled?: boolean;
775
+ };
776
+ };
777
+ locale?: {
778
+ emptyText?: ReactNode;
779
+ };
780
+ /** Eventos de linha */
781
+ onRow?: (row: TableRowData, index: number) => {
782
+ onClick?: () => void;
783
+ onDoubleClick?: () => void;
784
+ className?: string;
785
+ };
786
+ }
787
+
788
+ declare const Table: React__default.FC<TableProps>;
789
+
790
+ interface BaseFilterItem {
791
+ id?: string;
792
+ buttonText: string | React__default.ReactNode;
793
+ icon?: React__default.ReactElement;
794
+ position?: 'left' | 'right';
795
+ disabled?: boolean;
796
+ onToggle?: (isOpen: boolean) => void;
797
+ tooltip?: string;
798
+ }
799
+ interface CheckboxFilterItem extends BaseFilterItem {
800
+ type: 'checkbox' | 'text' | 'icon';
801
+ items: DropdownItem[];
802
+ selectedIds?: string[];
803
+ onSelectionChange?: (selectedIds: string[]) => void;
804
+ placeholder?: string;
805
+ enableSearch?: boolean;
806
+ }
807
+ interface CalendarFilterItem extends BaseFilterItem {
808
+ type: 'calendar';
809
+ selectedDate?: Date | null;
810
+ onDateSelect?: (date: Date) => void;
811
+ minDate?: Date;
812
+ maxDate?: Date;
813
+ locale?: string;
814
+ placeholder?: string;
815
+ }
816
+ type FilterItem = CheckboxFilterItem | CalendarFilterItem;
817
+ interface TableHeaderProps {
818
+ searchValue?: string;
819
+ onSearchChange?: (value: string) => void;
820
+ searchPlaceholder?: string;
821
+ showSearch?: boolean;
822
+ showFilters?: boolean;
823
+ filters?: React__default.ReactNode;
824
+ filterItems?: FilterItem[];
825
+ className?: string;
826
+ onSearch?: (value: string) => void;
827
+ showClearSearch?: boolean;
828
+ }
829
+ declare const TableHeader: React__default.FC<TableHeaderProps>;
830
+
831
+ interface TablePaginationProps {
832
+ /** Página atual */
833
+ currentPage: number;
834
+ /** Total de itens */
835
+ totalItems: number;
836
+ /** Itens por página */
837
+ itemsPerPage: number;
838
+ /** Callback quando a página muda */
839
+ onPageChange: (page: number) => void;
840
+ /** Callback quando itens por página muda */
841
+ onItemsPerPageChange: (itemsPerPage: number) => void;
842
+ /** Opções disponíveis para itens por página */
843
+ pageSizeOptions?: number[];
844
+ /** Desabilita a paginação */
845
+ disabled?: boolean;
846
+ /** Classes CSS adicionais */
847
+ className?: string;
848
+ }
849
+ declare const TablePagination: React__default.FC<TablePaginationProps>;
850
+
851
+ interface TextFieldProps {
852
+ name?: string;
853
+ className?: string;
854
+ value?: string | number;
855
+ label?: string;
856
+ placeholder?: string;
857
+ type?: string;
858
+ onChange?: (value: string | number) => void;
859
+ disabled?: boolean;
860
+ maxLength?: number;
861
+ required?: boolean;
862
+ helper?: boolean;
863
+ helperText?: string;
864
+ tooltip?: boolean;
865
+ tooltipText?: string;
866
+ positionTooltip?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
867
+ errorMessage?: string;
868
+ trailingIcon?: boolean;
869
+ id?: string;
870
+ icon?: React__default.ReactNode;
871
+ }
872
+
873
+ declare const MemoizedTextField: React__default.NamedExoticComponent<TextFieldProps>;
874
+
875
+ type ToastType = 'success' | 'alert' | 'info';
876
+ interface ToastMessage {
877
+ id: string;
878
+ message: string;
879
+ type: ToastType;
880
+ persistent?: boolean;
881
+ duration?: number;
882
+ timestamp: number;
883
+ }
884
+ interface ToastOptions {
885
+ persistent?: boolean;
886
+ duration?: number;
887
+ }
888
+ interface ToastContextType {
889
+ showToast: (message: string, type?: ToastType, options?: ToastOptions) => string;
890
+ hideToast: (id: string) => void;
891
+ hideAllToasts: () => void;
892
+ }
893
+
894
+ interface ToastProviderProps {
895
+ children: ReactNode;
896
+ maxToasts?: number;
897
+ }
898
+ declare const ToastProvider: React__default.FC<ToastProviderProps>;
899
+ declare const useToast: () => ToastContextType;
900
+
901
+ interface TooltipProps {
902
+ id?: string;
903
+ text: React__default.ReactNode;
904
+ position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'left' | 'right';
905
+ children: React__default.ReactNode;
906
+ }
907
+
908
+ declare const Tooltip: React__default.FC<TooltipProps>;
909
+
910
+ type InputType = 'numeric' | 'alpha' | 'alphanumeric';
911
+ interface VerificationCodeProps {
912
+ /** Define o número de dígitos do código (padrão: 6) */
913
+ length?: number;
914
+ /** Define tipo de entrada: números, letras ou alfanumérico (padrão: "numeric") */
915
+ inputType?: InputType;
916
+ /** Callback chamado quando todos os campos são preenchidos */
917
+ onComplete?: (value: string) => void;
918
+ /** Indica se o campo está em estado de erro */
919
+ hasError?: boolean;
920
+ /** Mensagem de erro exibida abaixo do componente */
921
+ errorMessage?: string;
922
+ /** Define se o componente deve estar desabilitado */
923
+ disabled?: boolean;
924
+ /** Classe CSS adicional para estilização externa */
925
+ className?: string;
926
+ /** Props adicionais passadas para os inputs */
927
+ [key: string]: any;
928
+ }
929
+
930
+ /**
931
+ * Componente VerificationCode para entrada de códigos de verificação
932
+ *
933
+ * @description Permite entrada de códigos com múltiplos dígitos,
934
+ * suportando diferentes tipos de caracteres e navegação por teclado.
935
+ *
936
+ * @example
937
+ * ```tsx
938
+ * <VerificationCode
939
+ * length={6}
940
+ * inputType="numeric"
941
+ * onComplete={(code) => console.log('Código:', code)}
942
+ * hasError={false}
943
+ * />
944
+ * ```
945
+ */
946
+ declare const VerificationCode: React__default.FC<VerificationCodeProps>;
947
+
948
+ /**
949
+ * Configurações para simulação de API
950
+ */
951
+ interface ApiSimulationConfig {
952
+ /** Items por página */
953
+ itemsPerPage?: number;
954
+ /** Total de items no dataset */
955
+ totalItems?: number;
956
+ /** Delay em ms para simular latência */
957
+ delay?: number;
958
+ /** Taxa de erro (0-1) para simular falhas */
959
+ errorRate?: number;
960
+ /** Função geradora de items customizada */
961
+ itemGenerator?: (index: number, searchQuery?: string) => any;
962
+ /** Debug mode */
963
+ debug?: boolean;
964
+ }
965
+ /**
966
+ * Estado da simulação de API
967
+ */
968
+ interface ApiSimulationState<T> {
969
+ /** Items carregados */
970
+ items: T[];
971
+ /** Página atual */
972
+ currentPage: number;
973
+ /** Total de páginas */
974
+ totalPages: number;
975
+ /** Status do carregamento */
976
+ status: 'idle' | 'loading' | 'succeeded' | 'failed';
977
+ /** Erro atual (se houver) */
978
+ error: string | null;
979
+ /** Query de busca atual */
980
+ searchQuery: string;
981
+ /** Se há próxima página */
982
+ hasNextPage: boolean;
983
+ /** Se é a primeira página */
984
+ isFirstPage: boolean;
985
+ }
986
+ interface ApiSimulationActions {
987
+ /** Carregar próxima página */
988
+ loadNextPage: () => Promise<void>;
989
+ /** Realizar nova busca */
990
+ search: (query: string) => Promise<void>;
991
+ /** Reset completo */
992
+ reset: () => void;
993
+ /** Retry da última operação */
994
+ retry: () => Promise<void>;
995
+ }
996
+ interface UseApiSimulationReturn<T> extends ApiSimulationState<T> {
997
+ actions: ApiSimulationActions;
998
+ }
999
+ declare function useApiSimulation<T = any>(config?: ApiSimulationConfig): UseApiSimulationReturn<T>;
1000
+
1001
+ /**
1002
+ * Props para o hook useInfiniteScroll
1003
+ */
1004
+ interface UseInfiniteScrollProps {
1005
+ /** Status atual do carregamento */
1006
+ status: 'idle' | 'loading' | 'succeeded' | 'failed';
1007
+ /** Página atual */
1008
+ page: number;
1009
+ /** Última página disponível */
1010
+ lastPage: number;
1011
+ /** Callback para carregar próxima página */
1012
+ onLoadMore: () => void;
1013
+ /** Threshold para IntersectionObserver (0-1) */
1014
+ threshold?: number;
1015
+ /** Margem raiz para IntersectionObserver */
1016
+ rootMargin?: string;
1017
+ /** Habilita/desabilita o hook */
1018
+ enabled?: boolean;
1019
+ /** Debug mode - logs no console */
1020
+ debug?: boolean;
1021
+ }
1022
+ /**
1023
+ * Retorno do hook useInfiniteScroll
1024
+ */
1025
+ interface UseInfiniteScrollReturn {
1026
+ /** Ref para o elemento observador */
1027
+ observerRef: React.RefObject<HTMLDivElement | null>;
1028
+ /** Se o elemento está visível */
1029
+ isIntersecting: boolean;
1030
+ /** Se há próxima página */
1031
+ hasNextPage: boolean;
1032
+ /** Se todas as páginas foram carregadas */
1033
+ isCompleted: boolean;
1034
+ /** Função para reset manual */
1035
+ reset: () => void;
1036
+ }
1037
+ /**
1038
+ * Hook otimizado para scroll infinito usando IntersectionObserver
1039
+ */
1040
+ declare function useInfiniteScroll({ status, page, lastPage, onLoadMore, threshold, rootMargin, enabled, debug }: UseInfiniteScrollProps): UseInfiniteScrollReturn;
1041
+
1042
+ declare const normalizeText: (text: React.ReactNode) => string;
1043
+
1044
+ export { Avatar, Badge, Button, MemoizedCalendar as Calendar, Callout, MemoizedCheckbox as Checkbox, CheckboxRadix, MemoizedChips as Chips, Container, _default as DatePicker, MemoizedDialog as Dialog, Drawer, MemoizedDropdown as Dropdown, Filter, ListItem, Menu, MenuRadix, memorizedQuantity as Quantity, MemoizedRadio as Radio, RadioRadix, Search, Select, SelectField, SelectRadix, Table, TableHeader, TablePagination, MemoizedTextField as TextField, ToastProvider as Toast, ToastProvider, Tooltip, VerificationCode, normalizeText, useApiSimulation, useInfiniteScroll, useToast };
1045
+ export type { AvatarProps, BadgeProps, ButtonProps, CalendarItem, CalendarProps, CalloutProps, CheckboxProps, CheckboxRadixProps, ChipsProps, ContainerProps, DateFormat, DatePickerProps, DayItem, DialogProps, DrawerProps, DropdownItem, DropdownProps, DropdownType, EmptyItem, FilterItem, FilterProps, ListItemProps, Locale, MenuItem, MenuProps, MenuRadixProps, QuantityProps, RadioProps$1 as RadioProps, RadioProps as RadioRadixItemProps, RadioGroupProps as RadioRadixProps, SearchProps, SelectFieldProps, SelectOption, SelectProps, SelectRadixProps, TableHeaderProps, TablePaginationProps, TableProps, TextFieldProps, ToastContextType, ToastMessage, ToastOptions, ToastType, TooltipProps, VerificationCodeProps, YearItem };