@giro-ds/react 5.0.0 → 6.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 (135) hide show
  1. package/dist/index.cjs +232 -208
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.ts +1656 -0
  4. package/dist/index.esm.js +234 -211
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/styles.css +1 -1
  7. package/package.json +1 -1
  8. package/dist/dts-temp/components/Avatar/Avatar.d.ts +0 -4
  9. package/dist/dts-temp/components/Avatar/Avatar.types.d.ts +0 -23
  10. package/dist/dts-temp/components/Avatar/__tests__/Avatar.test.d.ts +0 -1
  11. package/dist/dts-temp/components/Avatar/index.d.ts +0 -2
  12. package/dist/dts-temp/components/Badge/Badge.d.ts +0 -4
  13. package/dist/dts-temp/components/Badge/Badge.types.d.ts +0 -37
  14. package/dist/dts-temp/components/Badge/index.d.ts +0 -2
  15. package/dist/dts-temp/components/Button/Button.d.ts +0 -4
  16. package/dist/dts-temp/components/Button/Button.types.d.ts +0 -62
  17. package/dist/dts-temp/components/Button/__tests__/Button.test.d.ts +0 -1
  18. package/dist/dts-temp/components/Button/index.d.ts +0 -2
  19. package/dist/dts-temp/components/Calendar/Calendar.d.ts +0 -3
  20. package/dist/dts-temp/components/Calendar/Calendar.types.d.ts +0 -55
  21. package/dist/dts-temp/components/Calendar/__tests__/Calendar.test.d.ts +0 -1
  22. package/dist/dts-temp/components/Calendar/index.d.ts +0 -1
  23. package/dist/dts-temp/components/Callout/Callout.d.ts +0 -4
  24. package/dist/dts-temp/components/Callout/Callout.types.d.ts +0 -34
  25. package/dist/dts-temp/components/Callout/index.d.ts +0 -1
  26. package/dist/dts-temp/components/Checkbox/Checkbox.d.ts +0 -4
  27. package/dist/dts-temp/components/Checkbox/Checkbox.types.d.ts +0 -34
  28. package/dist/dts-temp/components/Checkbox/__tests__/Checkbox.test.d.ts +0 -1
  29. package/dist/dts-temp/components/Checkbox/index.d.ts +0 -2
  30. package/dist/dts-temp/components/Chips/Chips.d.ts +0 -4
  31. package/dist/dts-temp/components/Chips/Chips.types.d.ts +0 -34
  32. package/dist/dts-temp/components/Chips/index.d.ts +0 -1
  33. package/dist/dts-temp/components/Container/Container.d.ts +0 -2
  34. package/dist/dts-temp/components/Container/Container.types.d.ts +0 -15
  35. package/dist/dts-temp/components/Container/__tests__/Container.test.d.ts +0 -1
  36. package/dist/dts-temp/components/DatePicker/DatePicker.d.ts +0 -4
  37. package/dist/dts-temp/components/DatePicker/DatePicker.types.d.ts +0 -52
  38. package/dist/dts-temp/components/DatePicker/Utils/DateUtils.d.ts +0 -6
  39. package/dist/dts-temp/components/DatePicker/__test__/DatePicker.test.d.ts +0 -1
  40. package/dist/dts-temp/components/DatePicker/index.d.ts +0 -2
  41. package/dist/dts-temp/components/Dialog/Dialog.d.ts +0 -4
  42. package/dist/dts-temp/components/Dialog/Dialog.types.d.ts +0 -27
  43. package/dist/dts-temp/components/Dialog/__tests__/Dialog.test.d.ts +0 -1
  44. package/dist/dts-temp/components/Dialog/index.d.ts +0 -2
  45. package/dist/dts-temp/components/Drawer/Drawer.d.ts +0 -4
  46. package/dist/dts-temp/components/Drawer/Drawer.types.d.ts +0 -76
  47. package/dist/dts-temp/components/Drawer/__tests__/Drawer.test.d.ts +0 -1
  48. package/dist/dts-temp/components/Drawer/index.d.ts +0 -1
  49. package/dist/dts-temp/components/Filter/Filter.d.ts +0 -4
  50. package/dist/dts-temp/components/Filter/Filter.types.d.ts +0 -74
  51. package/dist/dts-temp/components/Filter/index.d.ts +0 -2
  52. package/dist/dts-temp/components/ListItem/ListItem.d.ts +0 -4
  53. package/dist/dts-temp/components/ListItem/ListItem.types.d.ts +0 -52
  54. package/dist/dts-temp/components/ListItem/index.d.ts +0 -2
  55. package/dist/dts-temp/components/Menu/Menu.d.ts +0 -4
  56. package/dist/dts-temp/components/Menu/Menu.types.d.ts +0 -90
  57. package/dist/dts-temp/components/Menu/__tests__/Menu.test.d.ts +0 -1
  58. package/dist/dts-temp/components/Menu/components/MenuItem.d.ts +0 -3
  59. package/dist/dts-temp/components/Menu/hooks/useMenuLogic.d.ts +0 -15
  60. package/dist/dts-temp/components/Menu/hooks/useSearchLogic.d.ts +0 -13
  61. package/dist/dts-temp/components/Menu/index.d.ts +0 -2
  62. package/dist/dts-temp/components/Popover/Popover.d.ts +0 -4
  63. package/dist/dts-temp/components/Popover/Popover.types.d.ts +0 -25
  64. package/dist/dts-temp/components/Popover/__test__/Popover.test.d.ts +0 -1
  65. package/dist/dts-temp/components/Popover/index.d.ts +0 -2
  66. package/dist/dts-temp/components/Quantity/Quantity.d.ts +0 -4
  67. package/dist/dts-temp/components/Quantity/Quantity.types.d.ts +0 -38
  68. package/dist/dts-temp/components/Quantity/index.d.ts +0 -2
  69. package/dist/dts-temp/components/Radio/Radio.d.ts +0 -4
  70. package/dist/dts-temp/components/Radio/Radio.types.d.ts +0 -52
  71. package/dist/dts-temp/components/Radio/__tests__/Radio.test.d.ts +0 -1
  72. package/dist/dts-temp/components/Radio/index.d.ts +0 -2
  73. package/dist/dts-temp/components/Search/Search.d.ts +0 -4
  74. package/dist/dts-temp/components/Search/Search.types.d.ts +0 -48
  75. package/dist/dts-temp/components/Search/__tests__/Search.test.d.ts +0 -1
  76. package/dist/dts-temp/components/Search/index.d.ts +0 -2
  77. package/dist/dts-temp/components/Select/Select.d.ts +0 -4
  78. package/dist/dts-temp/components/Select/Select.types.d.ts +0 -224
  79. package/dist/dts-temp/components/Select/__tests__/SelectRadix.test.d.ts +0 -1
  80. package/dist/dts-temp/components/Select/components/CheckboxSelectItem.d.ts +0 -4
  81. package/dist/dts-temp/components/Select/components/ExpandableSelectItem.d.ts +0 -11
  82. package/dist/dts-temp/components/Select/components/SelectItem.d.ts +0 -7
  83. package/dist/dts-temp/components/Select/hooks/useSelectLogic.d.ts +0 -3
  84. package/dist/dts-temp/components/Select/index.d.ts +0 -5
  85. package/dist/dts-temp/components/Switch/Switch.d.ts +0 -4
  86. package/dist/dts-temp/components/Switch/Switch.types.d.ts +0 -32
  87. package/dist/dts-temp/components/Switch/__tests__/Switch.test.d.ts +0 -1
  88. package/dist/dts-temp/components/Switch/index.d.ts +0 -2
  89. package/dist/dts-temp/components/Table/EmptyRows150Color.d.ts +0 -8
  90. package/dist/dts-temp/components/Table/LoaderList.d.ts +0 -10
  91. package/dist/dts-temp/components/Table/MultiLineText/MultiLineText.d.ts +0 -14
  92. package/dist/dts-temp/components/Table/MultiLineText/index.d.ts +0 -2
  93. package/dist/dts-temp/components/Table/Table.d.ts +0 -3
  94. package/dist/dts-temp/components/Table/Table.types.d.ts +0 -70
  95. package/dist/dts-temp/components/Table/TableHeader.d.ts +0 -50
  96. package/dist/dts-temp/components/Table/TablePagination.d.ts +0 -13
  97. package/dist/dts-temp/components/Table/index.d.ts +0 -7
  98. package/dist/dts-temp/components/Table/utils/tableActions.d.ts +0 -21
  99. package/dist/dts-temp/components/TextArea/TextArea.d.ts +0 -4
  100. package/dist/dts-temp/components/TextArea/TextArea.types.d.ts +0 -56
  101. package/dist/dts-temp/components/TextArea/__tests__/TextArea.test.d.ts +0 -1
  102. package/dist/dts-temp/components/TextArea/index.d.ts +0 -2
  103. package/dist/dts-temp/components/TextField/TextField.d.ts +0 -4
  104. package/dist/dts-temp/components/TextField/TextField.types.d.ts +0 -77
  105. package/dist/dts-temp/components/TextField/__tests__/Textfield.test.d.ts +0 -1
  106. package/dist/dts-temp/components/TextField/index.d.ts +0 -2
  107. package/dist/dts-temp/components/TextField/utils/__tests__/validation.test.d.ts +0 -1
  108. package/dist/dts-temp/components/TextField/utils/index.d.ts +0 -2
  109. package/dist/dts-temp/components/TextField/utils/validation.d.ts +0 -8
  110. package/dist/dts-temp/components/Toast/Toast.d.ts +0 -34
  111. package/dist/dts-temp/components/Toast/Toast.types.d.ts +0 -57
  112. package/dist/dts-temp/components/Toast/__tests__/Toast.test.d.ts +0 -1
  113. package/dist/dts-temp/components/Toast/components/ToastContainer.d.ts +0 -22
  114. package/dist/dts-temp/components/Toast/components/ToastProvider.d.ts +0 -35
  115. package/dist/dts-temp/components/Toast/index.d.ts +0 -5
  116. package/dist/dts-temp/components/Tooltip/Tooltip.d.ts +0 -4
  117. package/dist/dts-temp/components/Tooltip/Tooltip.types.d.ts +0 -14
  118. package/dist/dts-temp/components/Tooltip/__tests__/Tooltip.test.d.ts +0 -1
  119. package/dist/dts-temp/components/Tooltip/index.d.ts +0 -2
  120. package/dist/dts-temp/components/VerificationCode/VerificationCode.d.ts +0 -20
  121. package/dist/dts-temp/components/VerificationCode/VerificationCode.types.d.ts +0 -39
  122. package/dist/dts-temp/components/VerificationCode/index.d.ts +0 -2
  123. package/dist/dts-temp/components/index.d.ts +0 -59
  124. package/dist/dts-temp/contexts/ToastContext.d.ts +0 -43
  125. package/dist/dts-temp/hooks/ApiSimulation.d.ts +0 -53
  126. package/dist/dts-temp/hooks/InfiniteScroll.d.ts +0 -41
  127. package/dist/dts-temp/hooks/NormalizeText.d.ts +0 -1
  128. package/dist/dts-temp/hooks/useToast.d.ts +0 -46
  129. package/dist/dts-temp/index.d.ts +0 -1
  130. package/dist/dts-temp/shared/Label/index.d.ts +0 -15
  131. package/dist/dts-temp/shared/icons/CheckHalf.d.ts +0 -10
  132. package/dist/dts-temp/shared/icons/CheckSmall.d.ts +0 -10
  133. package/dist/dts-temp/shared/icons/index.d.ts +0 -4
  134. package/dist/dts-temp/types/common.types.d.ts +0 -12
  135. package/dist/dts-temp/types/index.d.ts +0 -1
@@ -1,90 +0,0 @@
1
- import * as React from 'react';
2
- import { ReactElement } from 'react';
3
- import { BaseProps } from '../../types/common.types';
4
- /**
5
- * Representa um item do menu (suporta subitens aninhados)
6
- */
7
- export interface MenuItemProps {
8
- /** ID único do item */
9
- id?: string;
10
- /** Texto principal do item */
11
- text?: string;
12
- /** Texto secundário/descrição do item */
13
- subText?: string;
14
- /** Estado desabilitado do item */
15
- disabled?: boolean;
16
- /** Ícone do item */
17
- icon?: React.ReactNode;
18
- /** Subitens do menu (para menus aninhados) */
19
- children?: MenuItemProps[];
20
- /** Valor do item */
21
- value?: string;
22
- }
23
- /**
24
- * Props para renderização customizada de item do menu
25
- */
26
- export interface DefaultMenuItemProps {
27
- /** Dados do item */
28
- item: MenuItemProps;
29
- /** Define se o item está selecionado */
30
- isSelected: boolean;
31
- /** Callback executado ao selecionar o item: (item) => void */
32
- onSelect: (item: MenuItemProps) => void;
33
- }
34
- /**
35
- * Props do componente Menu
36
- * @example
37
- * ```tsx
38
- * <Menu
39
- * items={[
40
- * { id: '1', text: 'Perfil', icon: <UserIcon /> },
41
- * { id: '2', text: 'Configurações', icon: <SettingsIcon /> }
42
- * ]}
43
- * onItemSelect={(item) => handleSelect(item)}
44
- * >
45
- * <Button>Menu</Button>
46
- * </Menu>
47
- * ```
48
- * @example
49
- * ```tsx
50
- * <Menu
51
- * items={menuItems}
52
- * type="icon"
53
- * search={true}
54
- * enableInfiniteScroll={true}
55
- * onScrollEnd={loadMore}
56
- * maxHeight="400px"
57
- * align="end"
58
- * />
59
- * ```
60
- */
61
- export interface MenuProps extends BaseProps {
62
- /** Array de itens do menu */
63
- items: MenuItemProps[];
64
- /** Elemento trigger customizado para abrir o menu */
65
- children?: ReactElement;
66
- /** Tipo de visualização do menu */
67
- type?: 'text' | 'icon';
68
- /** Callback executado quando um item é selecionado: (item) => void */
69
- onItemSelect?: (items: MenuItemProps) => void;
70
- /** Array de itens selecionados */
71
- selectedItems?: MenuItemProps[];
72
- /** Habilita campo de busca */
73
- search?: boolean;
74
- /** Alinhamento do menu */
75
- align?: 'start' | 'end' | 'center';
76
- /** Altura máxima do menu */
77
- maxHeight?: number | string;
78
- /** Habilita scroll infinito */
79
- enableInfiniteScroll?: boolean;
80
- /** Callback executado ao chegar ao final do scroll: () => void */
81
- onScrollEnd?: () => void;
82
- /** Estado de carregamento de mais itens */
83
- isLoadingMore?: boolean;
84
- /** Habilita busca via API */
85
- enableApiSearch?: boolean;
86
- /** Callback executado na busca via API: (searchTerm) => void */
87
- onApiSearch?: (searchTerm: string) => void;
88
- /** Callback executado quando o menu abre/fecha: (open) => void */
89
- onOpenChange?: (open: boolean) => void;
90
- }
@@ -1,3 +0,0 @@
1
- import { DefaultMenuItemProps } from '../Menu.types';
2
- export declare const MenuItem: import("react").MemoExoticComponent<({ item, isSelected, onSelect }: DefaultMenuItemProps) => import("react/jsx-runtime").JSX.Element>;
3
- export default MenuItem;
@@ -1,15 +0,0 @@
1
- import { MenuItemProps } from '../Menu.types';
2
- export interface UseMenuLogicProps {
3
- selectedItems?: MenuItemProps[];
4
- onItemSelect?: (items: MenuItemProps) => void;
5
- onOpenChange?: (open: boolean) => void;
6
- }
7
- export interface UseMenuLogicReturn {
8
- open: boolean;
9
- internalSelectedItems: MenuItemProps[];
10
- setOpen: (open: boolean) => void;
11
- handleItemSelect: (item: MenuItemProps) => void;
12
- isItemSelected: (item: MenuItemProps) => boolean;
13
- }
14
- export declare function useMenuLogic({ selectedItems, onItemSelect, onOpenChange, }: UseMenuLogicProps): UseMenuLogicReturn;
15
- export default useMenuLogic;
@@ -1,13 +0,0 @@
1
- import { MenuItemProps } from '../Menu.types';
2
- interface UseSearchLogicProps {
3
- items: MenuItemProps[];
4
- searchValue: string;
5
- searchTerm: string;
6
- enableApiSearch?: boolean;
7
- onApiSearch?: (term: string) => void;
8
- }
9
- interface UseSearchLogicReturn {
10
- filteredItems: MenuItemProps[];
11
- }
12
- export declare const useSearchLogic: ({ items, searchValue, searchTerm, enableApiSearch, onApiSearch, }: UseSearchLogicProps) => UseSearchLogicReturn;
13
- export {};
@@ -1,2 +0,0 @@
1
- export { default } from './Menu';
2
- export type { MenuProps, MenuItemProps } from './Menu.types';
@@ -1,4 +0,0 @@
1
- import * as React from "react";
2
- import { PopoverProps } from "./Popover.types";
3
- declare const Popover: React.FC<PopoverProps>;
4
- export default Popover;
@@ -1,25 +0,0 @@
1
- import { Align, Side } from '../../types/common.types';
2
- export interface PopoverProps {
3
- trigger: React.ReactNode;
4
- content: React.ReactNode;
5
- align?: Align;
6
- side?: Side;
7
- /** Distância em pixels entre o conteúdo e o trigger */
8
- sideOffset?: number;
9
- /** Controla o estado de abertura em modo controlado */
10
- open?: boolean;
11
- /** Callback chamado quando o estado de abertura muda */
12
- onOpenChange?: (open: boolean) => void;
13
- /**
14
- * Quando `true`, o trigger atua como âncora de posicionamento e o popover
15
- * é aberto/fechado exclusivamente via `open`/`onOpenChange` (modo DatePicker).
16
- * Quando `false` (padrão), o trigger continua abrindo/fechando o popover
17
- * normalmente, mas o estado pode ser sincronizado via `open`/`onOpenChange`
18
- * (modo Filter).
19
- */
20
- asAnchor?: boolean;
21
- /** Callback chamado quando o foco automático é ativado ao abrir o popover */
22
- onOpenAutoFocus?: (event: Event) => void;
23
- /** Callback chamado quando o foco automático é ativado ao fechar o popover */
24
- onCloseAutoFocus?: (event: Event) => void;
25
- }
@@ -1,2 +0,0 @@
1
- export { default } from './Popover';
2
- export type { PopoverProps } from './Popover.types';
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import type { QuantityProps } from './Quantity.types';
3
- declare const memorizedQuantity: React.NamedExoticComponent<QuantityProps>;
4
- export default memorizedQuantity;
@@ -1,38 +0,0 @@
1
- import { Size, BaseProps } from '../../types/common.types';
2
- /**
3
- * Props do componente Quantity
4
- * @example
5
- * ```tsx
6
- * <Quantity
7
- * value={quantity}
8
- * onChange={setQuantity}
9
- * size="lg"
10
- * />
11
- * ```
12
- * @example
13
- * ```tsx
14
- * <Quantity
15
- * defaultValue={1}
16
- * decimal={true}
17
- * decimalPlaces={2}
18
- * step={0.5}
19
- * disabled={false}
20
- * />
21
- * ```
22
- */
23
- export interface QuantityProps extends BaseProps {
24
- /** Valor inicial (modo não controlado) */
25
- defaultValue?: number;
26
- /** Valor atual (modo controlado) */
27
- value?: number;
28
- /** Callback executado quando o valor muda: (value) => void */
29
- onChange?: (value: number) => void;
30
- /** Habilita entrada de valores decimais */
31
- decimal?: boolean;
32
- /** Tamanho do componente */
33
- size?: Size;
34
- /** Número de casas decimais permitidas */
35
- decimalPlaces?: number;
36
- /** Incremento/decremento ao clicar nos botões */
37
- step?: number;
38
- }
@@ -1,2 +0,0 @@
1
- export { default } from './Quantity';
2
- export type { QuantityProps } from './Quantity.types';
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { RadioGroupProps } from './Radio.types';
3
- declare const Radio: React.FC<RadioGroupProps>;
4
- export default Radio;
@@ -1,52 +0,0 @@
1
- import { BaseProps } from '../../types/common.types';
2
- /**
3
- * Props de um item individual de rádio
4
- */
5
- export interface RadioProps {
6
- /** ID único do elemento */
7
- id?: string | number;
8
- /** Valor do radio button */
9
- value: string;
10
- /** Label exibida ao lado do radio button */
11
- label: string;
12
- /** Estado desabilitado do item */
13
- disabled?: boolean;
14
- }
15
- /**
16
- * Props do componente RadioGroup
17
- * @example
18
- * ```tsx
19
- * <RadioGroup
20
- * items={[
21
- * { value: 'option1', label: 'Opção 1' },
22
- * { value: 'option2', label: 'Opção 2' }
23
- * ]}
24
- * onValueChange={(value) => setSelected(value)}
25
- * defaultValue="option1"
26
- * />
27
- * ```
28
- * @example
29
- * ```tsx
30
- * <RadioGroup
31
- * items={options}
32
- * onValueChange={handleChange}
33
- * name="preference"
34
- * orientation="horizontal"
35
- * ariaLabel="Selecione sua preferência"
36
- * />
37
- * ```
38
- */
39
- export interface RadioGroupProps extends BaseProps {
40
- /** Array de itens de rádio */
41
- items: RadioProps[];
42
- /** Callback executado quando o valor muda: (value) => void */
43
- onValueChange?: (value: string) => void;
44
- /** Valor inicial selecionado */
45
- defaultValue?: string;
46
- /** Nome do grupo de radio buttons */
47
- name?: string;
48
- /** Label acessível para leitores de tela */
49
- ariaLabel?: string;
50
- /** Orientação do layout dos radio buttons */
51
- orientation?: "horizontal" | "vertical";
52
- }
@@ -1,2 +0,0 @@
1
- export { default } from './Radio';
2
- export type { RadioProps, RadioGroupProps } from './Radio.types';
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import type { SearchProps } from './Search.types';
3
- declare const Search: React.ForwardRefExoticComponent<SearchProps & React.RefAttributes<HTMLInputElement>>;
4
- export default Search;
@@ -1,48 +0,0 @@
1
- import * as React from 'react';
2
- import type { ComponentPropsWithoutRef } from 'react';
3
- import { BaseProps } from '../../types/common.types';
4
- /**
5
- * Props do componente Search
6
- * @example
7
- * ```tsx
8
- * <Search
9
- * placeholder="Buscar..."
10
- * value={searchTerm}
11
- * onChange={(e) => setSearchTerm(e.target.value)}
12
- * onClear={() => setSearchTerm('')}
13
- * />
14
- * ```
15
- * @example
16
- * ```tsx
17
- * <Search
18
- * placeholder="Pesquisar produtos"
19
- * disabled={isLoading}
20
- * onKeyDown={(e) => e.key === 'Enter' && handleSearch()}
21
- * onFocus={handleFocus}
22
- * />
23
- * ```
24
- */
25
- type NativeInputProps = Omit<ComponentPropsWithoutRef<'input'>, 'value' | 'defaultValue' | 'onChange' | 'onClick' | 'onMouseDown'>;
26
- export interface SearchProps extends BaseProps, NativeInputProps {
27
- /** Placeholder do campo de busca */
28
- placeholder?: string;
29
- /** Valor controlado do campo */
30
- value?: string;
31
- /** Callback executado quando o valor muda: (e) => void */
32
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
33
- /** Callback executado ao pressionar tecla: (e) => void */
34
- onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
35
- /** Callback executado ao focar no campo: (e) => void */
36
- onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
37
- /** Callback executado ao desfocar do campo: (e) => void */
38
- onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
39
- /** Callback executado ao limpar o campo: () => void */
40
- onClear?: () => void;
41
- /** Callback executado ao clicar no componente: (e) => void */
42
- onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
43
- /** Callback executado ao pressionar mouse no componente: (e) => void */
44
- onMouseDown?: (e: React.MouseEvent<HTMLDivElement>) => void;
45
- /** ID para testes automatizados */
46
- 'data-testid'?: string;
47
- }
48
- export {};
@@ -1,2 +0,0 @@
1
- export { default } from './Search';
2
- export type { SearchProps } from './Search.types';
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SelectProps } from './Select.types';
3
- declare const Select: React.FC<SelectProps>;
4
- export default Select;
@@ -1,224 +0,0 @@
1
- import * as React from 'react';
2
- import { ReactNode } from 'react';
3
- import { Side, Align, BaseProps } from '../../types/common.types';
4
- /**
5
- * Representa um item do select
6
- */
7
- export interface SelectItemProps extends BaseProps {
8
- /** Texto principal do item */
9
- text: ReactNode;
10
- /** Subtítulo ou descrição do item */
11
- subTitle?: ReactNode;
12
- /** Ícone do item */
13
- icon?: ReactNode;
14
- /** Valor do item */
15
- value: string;
16
- /** Define se o item está selecionado */
17
- selected?: boolean;
18
- /** Subitens do select (para selects aninhados) */
19
- children?: SelectItemProps[];
20
- }
21
- /**
22
- * Props de um item com checkbox
23
- */
24
- export interface CheckboxItemProps extends SelectItemProps {
25
- /** Estado de checked do checkbox */
26
- checked: boolean;
27
- /** Callback executado quando o estado muda: (checked) => void */
28
- onCheckedChange: (checked: boolean) => void;
29
- }
30
- /** Variantes disponíveis para o Select */
31
- export type SelectVariant = 'text' | 'icon' | 'checkbox';
32
- /**
33
- * Props do componente Select
34
- * @example
35
- * ```tsx
36
- * <Select
37
- * items={[
38
- * { value: '1', text: 'Opção 1' },
39
- * { value: '2', text: 'Opção 2' }
40
- * ]}
41
- * variant="text"
42
- * placeholder="Selecione uma opção"
43
- * onValueChange={(value) => console.log(value)}
44
- * />
45
- * ```
46
- * @example
47
- * ```tsx
48
- * <Select
49
- * items={options}
50
- * variant="checkbox"
51
- * multiple={true}
52
- * search={true}
53
- * label="Selecione múltiplas opções"
54
- * helperText="Você pode selecionar mais de uma"
55
- * required={true}
56
- * />
57
- * ```
58
- */
59
- export interface SelectProps extends BaseProps {
60
- /** Array de itens do select */
61
- items: SelectItemProps[];
62
- /** Callback executado quando o valor muda: (value) => void */
63
- onValueChange?: (value: string | string[]) => void;
64
- /** Callback executado quando o select abre/fecha: (open) => void */
65
- onOpenChange?: (open: boolean) => void;
66
- /** Variante visual do select */
67
- variant: SelectVariant;
68
- /** Define se o campo é obrigatório */
69
- required?: boolean;
70
- /** Valor(es) selecionado(s) */
71
- value?: string | string[];
72
- /** Habilita seleção múltipla */
73
- multiple?: boolean;
74
- /** Placeholder do campo */
75
- placeholder?: string;
76
- /** Habilita campo de busca */
77
- search?: boolean;
78
- /** Label do campo */
79
- label?: string;
80
- /** Texto de ajuda exibido abaixo do campo */
81
- helperText?: string;
82
- /** Largura máxima do select */
83
- maxWidth?: number;
84
- /** Mensagem de erro a ser exibida */
85
- errorMessage?: string;
86
- /** Label acessível para leitores de tela */
87
- 'aria-label'?: string;
88
- /** ID para testes automatizados */
89
- 'data-testid'?: string;
90
- /** Habilita tooltip */
91
- tooltip?: boolean;
92
- /** Texto do tooltip */
93
- tooltipText?: string;
94
- /** Lado onde o dropdown abre */
95
- side?: Side;
96
- /** Alinhamento do dropdown */
97
- align?: Align;
98
- /** Habilita scroll infinito */
99
- enableInfiniteScroll?: boolean;
100
- /** Callback executado ao chegar ao final do scroll: () => void */
101
- onScrollEnd?: () => void;
102
- /** Estado de carregamento de mais itens */
103
- isLoadingMore?: boolean;
104
- /** Habilita busca via API */
105
- enableApiSearch?: boolean;
106
- /** Callback executado na busca via API: (term) => void */
107
- onApiSearch?: (term: string) => void;
108
- /** Estado de busca em andamento */
109
- isSearching?: boolean;
110
- }
111
- /**
112
- * Estado interno do componente Select
113
- */
114
- export interface SelectState {
115
- /** Define se o select está aberto */
116
- isOpen: boolean;
117
- /** Valores selecionados */
118
- selectedValues: string[];
119
- /** Texto digitado no campo de busca */
120
- searchInput: string;
121
- /** Termo de busca aplicado */
122
- searchTerm: string;
123
- /** Define se o campo foi tocado */
124
- touched: boolean;
125
- /** Define se há erro de validação */
126
- hasError: boolean;
127
- }
128
- /** Ações disponíveis para o reducer do Select */
129
- export type SelectAction = {
130
- type: 'SET_OPEN';
131
- payload: boolean;
132
- } | {
133
- type: 'SET_SELECTED_VALUES';
134
- payload: string[];
135
- } | {
136
- type: 'SET_SEARCH_INPUT';
137
- payload: string;
138
- } | {
139
- type: 'SET_SEARCH_TERM';
140
- payload: string;
141
- } | {
142
- type: 'SET_TOUCHED';
143
- payload: boolean;
144
- } | {
145
- type: 'SET_ERROR';
146
- payload: boolean;
147
- } | {
148
- type: 'RESET_SEARCH';
149
- } | {
150
- type: 'VALIDATE';
151
- payload: {
152
- required: boolean;
153
- };
154
- };
155
- /**
156
- * Props do hook useSelectLogic
157
- */
158
- export interface UseSelectLogicProps {
159
- /** Valor(es) controlado(s) */
160
- value?: string | string[];
161
- /** Define se o campo é obrigatório */
162
- required?: boolean;
163
- /** Habilita busca */
164
- search?: boolean;
165
- /** Callback executado quando o valor muda: (value) => void */
166
- onValueChange?: (value: string | string[]) => void;
167
- /** Callback executado quando o select abre/fecha: (open) => void */
168
- onOpenChange?: (open: boolean) => void;
169
- /** Habilita busca via API */
170
- enableApiSearch?: boolean;
171
- /** Callback executado na busca via API: (term) => void */
172
- onApiSearch?: (term: string) => void;
173
- /** Estado de busca em andamento */
174
- isSearching?: boolean;
175
- }
176
- /**
177
- * Retorno do hook useSelectLogic
178
- */
179
- export interface UseSelectLogicReturn {
180
- /** Estado atual do select */
181
- state: SelectState;
182
- /** Ações disponíveis */
183
- actions: {
184
- /** Define se o select está aberto */
185
- setOpen: (open: boolean) => void;
186
- /** Define os valores selecionados */
187
- setSelectedValues: (values: string[]) => void;
188
- /** Define o texto de busca */
189
- setSearchInput: (input: string) => void;
190
- /** Define o termo de busca aplicado */
191
- setSearchTerm: (term: string) => void;
192
- /** Define se o campo foi tocado */
193
- setTouched: (touched: boolean) => void;
194
- /** Define se há erro */
195
- setError: (error: boolean) => void;
196
- /** Reseta a busca */
197
- resetSearch: () => void;
198
- /** Valida o campo */
199
- validate: () => void;
200
- /** Manipula seleção simples */
201
- handleSingleSelect: (value: string) => void;
202
- /** Manipula seleção múltipla */
203
- handleMultipleSelect: (value: string, checked: boolean) => void;
204
- };
205
- /** Valores computados */
206
- computed: {
207
- /** Texto a ser exibido no campo */
208
- displayText: string;
209
- /** Itens filtrados pela busca */
210
- filteredItems: SelectItemProps[];
211
- };
212
- /** Referências */
213
- refs: {
214
- /** Referência do input de busca */
215
- searchInputRef: React.RefObject<HTMLInputElement | null>;
216
- };
217
- /** Funções utilitárias */
218
- utils: {
219
- /** Obtém o texto a ser exibido */
220
- getDisplayText: (selectedValues: string[], placeholder: string, variant: string, items: SelectItemProps[]) => string;
221
- /** Filtra os itens pela busca */
222
- getFilteredItems: (items: SelectItemProps[], searchTerm: string) => SelectItemProps[];
223
- };
224
- }
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { CheckboxItemProps } from '../Select.types';
3
- declare const CheckboxSelectItem: React.FC<CheckboxItemProps>;
4
- export default CheckboxSelectItem;
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { SelectItemProps, SelectVariant } from '../Select.types';
3
- interface ExpandableSelectItemProps {
4
- item: SelectItemProps;
5
- variant: SelectVariant;
6
- onSelect: (value: string) => void;
7
- selectedValues: string[];
8
- level?: number;
9
- }
10
- declare const ExpandableSelectItem: React.FC<ExpandableSelectItemProps>;
11
- export default ExpandableSelectItem;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { SelectItemProps, SelectVariant } from '../Select.types';
3
- interface SelectItemComponentProps extends SelectItemProps {
4
- variant?: SelectVariant;
5
- }
6
- declare const SelectItem: React.ForwardRefExoticComponent<SelectItemComponentProps & React.RefAttributes<HTMLDivElement>>;
7
- export default SelectItem;
@@ -1,3 +0,0 @@
1
- import { UseSelectLogicProps, UseSelectLogicReturn } from '../Select.types';
2
- export declare function useSelectLogic({ value, required, search, onValueChange, onOpenChange, enableApiSearch, onApiSearch, isSearching, }: UseSelectLogicProps): UseSelectLogicReturn;
3
- export default useSelectLogic;
@@ -1,5 +0,0 @@
1
- export { default } from './Select';
2
- export type { SelectProps, SelectItemProps, CheckboxItemProps, SelectVariant, SelectState, SelectAction, UseSelectLogicProps, UseSelectLogicReturn } from './Select.types';
3
- export { useSelectLogic } from './hooks/useSelectLogic';
4
- export { default as CheckboxSelectItem } from './components/CheckboxSelectItem';
5
- export { default as SelectItem } from './components/SelectItem';
@@ -1,4 +0,0 @@
1
- import * as React from "react";
2
- import { SwitchProps } from './Switch.types';
3
- declare const Switch: React.FC<SwitchProps>;
4
- export default Switch;
@@ -1,32 +0,0 @@
1
- import { BaseProps } from '../../types/common.types';
2
- /**
3
- * Props do componente Switch
4
- * @example
5
- * ```tsx
6
- * <Switch
7
- * checked={isEnabled}
8
- * onCheckedChange={setIsEnabled}
9
- * />
10
- * ```
11
- * @example
12
- * ```tsx
13
- * <Switch
14
- * defaultChecked={true}
15
- * disabled={isLoading}
16
- * onCheckedChange={(checked) => console.log(checked)}
17
- * name="notifications"
18
- * />
19
- * ```
20
- */
21
- export interface SwitchProps extends BaseProps {
22
- /** Estado inicial (modo não controlado) */
23
- defaultChecked?: boolean;
24
- /** Callback executado quando o estado muda: (checked) => void */
25
- onCheckedChange?: (checked: boolean) => void;
26
- /** Nome do input */
27
- name?: string;
28
- /** Valor do input */
29
- value?: string;
30
- /** Estado atual (modo controlado) */
31
- checked?: boolean;
32
- }
@@ -1,2 +0,0 @@
1
- export { default } from './Switch';
2
- export type { SwitchProps } from './Switch.types';