@giro-ds/react 9.0.0 → 9.1.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
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { ReactNode, ReactElement, ComponentPropsWithoutRef, CSSProperties } from 'react';
2
+ import React__default, { ReactNode, ReactElement, RefObject, ComponentPropsWithoutRef, CSSProperties } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { Matcher } from 'react-day-picker';
5
5
  import { RowData, ColumnDef } from '@tanstack/react-table';
@@ -18,6 +18,7 @@ type Side = 'top' | 'right' | 'bottom' | 'left';
18
18
  type Align = 'start' | 'center' | 'end';
19
19
  /** Posição horizontal de um elemento secundário: 'right' (direita), 'left' (esquerda) ou 'both' (ambos os lados) */
20
20
  type Position = 'right' | 'left' | 'both';
21
+ type Scale = 1 | 1.5 | 2;
21
22
  /** Localidade do componente: 'pt-br' (Português do Brasil) ou 'en-us' (Inglês dos EUA) */
22
23
  type Locale = 'pt-br' | 'en-us';
23
24
  /** Props base compartilhadas por todos os componentes do design system */
@@ -78,7 +79,7 @@ interface BadgeProps extends BaseProps {
78
79
  badgeValue?: number | string | null;
79
80
  /** Label acessível para leitores de tela */
80
81
  'aria-label'?: string;
81
- /** Prop que sinaliza se o Badge será usado no Filter ou não, pois no Filter ele tem uma cor diferente */
82
+ /** Quando `true`, aplica a variante de cor do Filter (fundo azul em vez do padrão vermelho) */
82
83
  filterVariant?: boolean;
83
84
  /** Classe CSS opcional */
84
85
  className?: string;
@@ -114,6 +115,8 @@ type ButtonOwnPropsBase = {
114
115
  type?: 'button' | 'submit' | 'reset';
115
116
  /** Tamanho do botão */
116
117
  size?: Size;
118
+ /** Escala visual aplicada ao botão */
119
+ scale?: Scale;
117
120
  /** Define se o botão ocupa 100% da largura do container */
118
121
  fullWidth?: boolean;
119
122
  /** Label acessível para leitores de tela */
@@ -231,10 +234,12 @@ interface CalendarBaseProps extends Omit<BaseProps, 'disabled'> {
231
234
  autoFocus?: boolean;
232
235
  /** Substitui os `classNames` padrão do react-day-picker. */
233
236
  classNames?: Partial<Record<string, string>>;
237
+ /** Escala visual aplicada ao componente */
238
+ scale?: Scale;
234
239
  }
235
240
  type CalendarProps = CalendarBaseProps;
236
241
 
237
- 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;
242
+ declare const Calendar: ({ selected, currentDate, defaultMonth, startMonth, endMonth, onDaySelect, onDateChange, onClear: _onClear, minDate, maxDate, disabled, format: _format, locale, autoFocus, className, scale, id, "aria-label": ariaLabel, ...rest }: CalendarProps) => react_jsx_runtime.JSX.Element;
238
243
 
239
244
  /**
240
245
  * Props do componente Callout
@@ -322,6 +327,8 @@ interface CheckboxProps extends BaseProps {
322
327
  indeterminate?: boolean;
323
328
  /** Classe CSS opcional */
324
329
  className?: string;
330
+ /** Escala visual aplicada ao componente */
331
+ scale?: Scale;
325
332
  }
326
333
 
327
334
  declare const Checkbox: React$1.FC<CheckboxProps>;
@@ -361,6 +368,8 @@ interface ChipsProps extends BaseProps, Omit<React$1.HTMLAttributes<HTMLDivEleme
361
368
  style?: React$1.CSSProperties;
362
369
  /** Classe CSS opcional */
363
370
  className?: string;
371
+ /** Escala visual aplicada ao componente */
372
+ scale?: Scale;
364
373
  }
365
374
 
366
375
  declare const MemoizedChips: React__default.NamedExoticComponent<ChipsProps>;
@@ -436,6 +445,10 @@ interface DatePickerProps extends BaseProps {
436
445
  'data-testid'?: string;
437
446
  /** Classe CSS opcional */
438
447
  className?: string;
448
+ /** Escala visual aplicada ao componente */
449
+ datePickerScale?: Scale;
450
+ /** Escala visual aplicada ao calendário */
451
+ calendarScale?: Scale;
439
452
  }
440
453
 
441
454
  declare const _default$2: React__default.NamedExoticComponent<DatePickerProps>;
@@ -530,10 +543,15 @@ interface DrawerProps extends BaseProps {
530
543
  declare const Drawer: React__default.FC<DrawerProps>;
531
544
 
532
545
  interface FilterItem$2 {
546
+ /** Identificador único do item (usado em `selectedIds` e `onApplyFilter`) */
533
547
  id?: BaseProps['id'];
548
+ /** Texto principal exibido no item */
534
549
  text: string;
550
+ /** Texto secundário exibido abaixo do texto principal */
535
551
  subText?: string;
552
+ /** Ícone exibido à esquerda do texto */
536
553
  icon?: ReactNode;
554
+ /** Desabilita o item, impedindo sua seleção */
537
555
  disabled?: BaseProps['disabled'];
538
556
  }
539
557
  type FilterType = 'single' | 'multiple' | 'calendar';
@@ -671,9 +689,9 @@ interface ListItemProps extends BaseProps {
671
689
  icon?: React$1.ReactNode;
672
690
  /** Valor do input (para variantes checkbox/radio) */
673
691
  value?: string;
674
- /** Define se deve mostrar o subtexto */
692
+ /** Controla a visibilidade do subtexto explicitamente, independentemente de `subText` estar preenchido */
675
693
  showSubText?: boolean;
676
- /** Estado de hover */
694
+ /** Força o estado visual de hover no item (útil para controle externo de foco/seleção) */
677
695
  hovered?: boolean;
678
696
  /** Classe CSS opcional */
679
697
  className?: string;
@@ -732,7 +750,11 @@ interface MenuProps extends BaseProps {
732
750
  items: MenuItemProps[];
733
751
  /** Elemento trigger customizado para abrir o menu */
734
752
  children?: ReactElement;
735
- /** Tipo de visualização do menu */
753
+ /**
754
+ * Tipo de visualização dos itens do menu.
755
+ * - `'text'` (padrão): exibe texto e ícone lado a lado
756
+ * - `'icon'`: exibe apenas ícones, sem texto
757
+ */
736
758
  type?: 'text' | 'icon';
737
759
  /** Callback executado quando um item é selecionado: (item) => void */
738
760
  onItemSelect?: (items: MenuItemProps) => void;
@@ -758,6 +780,10 @@ interface MenuProps extends BaseProps {
758
780
  onOpenChange?: (open: boolean) => void;
759
781
  /** Classe CSS opcional */
760
782
  className?: string;
783
+ /** Escala visual aplicada ao conteúdo do menu */
784
+ dropdownScale?: Scale;
785
+ /** Escala visual aplicada ao botão/trigger quando ele aceitar a prop `scale` */
786
+ buttonScale?: Scale;
761
787
  }
762
788
 
763
789
  declare const Menu: React__default.FC<MenuProps>;
@@ -812,9 +838,13 @@ interface ModalProps extends BaseProps {
812
838
  declare const Modal: React$1.FC<ModalProps>;
813
839
 
814
840
  interface PopoverProps {
815
- trigger: React.ReactNode;
816
- content: React.ReactNode;
841
+ /** Elemento que aciona a abertura do popover (geralmente um botão ou ícone) */
842
+ trigger: React$1.ReactNode;
843
+ /** Conteúdo exibido dentro do popover ao abrir */
844
+ content: React$1.ReactNode;
845
+ /** Alinhamento do popover em relação ao trigger no eixo perpendicular ao `side`. @default 'center' */
817
846
  align?: Align;
847
+ /** Lado em que o popover aparece em relação ao trigger. @default 'bottom' */
818
848
  side?: Side;
819
849
  /** Distância em pixels entre o conteúdo e o trigger */
820
850
  sideOffset?: number;
@@ -823,12 +853,12 @@ interface PopoverProps {
823
853
  /** Callback chamado quando o estado de abertura muda */
824
854
  onOpenChange?: (open: boolean) => void;
825
855
  /**
826
- * Quando `true`, o trigger atua como âncora de posicionamento e o popover
827
- * é aberto/fechado exclusivamente via `open`/`onOpenChange` (modo DatePicker).
828
- * Quando `false` (padrão), o trigger continua abrindo/fechando o popover
829
- * normalmente, mas o estado pode ser sincronizado via `open`/`onOpenChange`
830
- * (modo Filter).
831
- */
856
+ * Quando `true`, o trigger atua como âncora de posicionamento e o popover
857
+ * é aberto/fechado exclusivamente via `open`/`onOpenChange` (modo DatePicker).
858
+ * Quando `false` (padrão), o trigger continua abrindo/fechando o popover
859
+ * normalmente, mas o estado pode ser sincronizado via `open`/`onOpenChange`
860
+ * (modo Filter).
861
+ */
832
862
  asAnchor?: boolean;
833
863
  /** Callback chamado quando o foco automático é ativado ao abrir o popover */
834
864
  onOpenAutoFocus?: (event: Event) => void;
@@ -858,7 +888,7 @@ declare const Popover: React$1.FC<PopoverProps>;
858
888
  * value={1}
859
889
  * decimal={true}
860
890
  * decimalPlaces={2}
861
- * step={0.5}
891
+ * valueIncrement={0.5}
862
892
  * disabled={false}
863
893
  * />
864
894
  * ```
@@ -895,6 +925,8 @@ interface QuantityProps extends BaseProps {
895
925
  inputAriaLabel?: string;
896
926
  /** Classe CSS opcional */
897
927
  className?: string;
928
+ /** Escala visual aplicada ao componente */
929
+ scale?: Scale;
898
930
  }
899
931
 
900
932
  declare const memorizedQuantity: React__default.NamedExoticComponent<QuantityProps>;
@@ -951,10 +983,79 @@ interface RadioGroupProps extends BaseProps {
951
983
  ariaLabel?: string;
952
984
  /** Orientação do layout dos radio buttons */
953
985
  orientation?: "horizontal" | "vertical";
986
+ /** Escala visual aplicada ao grupo */
987
+ scale?: Scale;
954
988
  }
955
989
 
956
990
  declare const Radio: React__default.FC<RadioGroupProps>;
957
991
 
992
+ /**
993
+ * Modo de exibição do VirtualKeyboard.
994
+ * - `native`: age como teclado nativo — aparecerá ao focar em um campo (implementação futura).
995
+ * - `fixed`: teclado sempre visível na tela com um TextField próprio acima dele.
996
+ */
997
+ type VirtualKeyboardVariant = 'native' | 'fixed';
998
+ /** Layouts disponíveis para o VirtualKeyboard */
999
+ type VirtualKeyboardType = 'default' | 'numeric';
1000
+ /**
1001
+ * Props do componente VirtualKeyboard
1002
+ * @example
1003
+ * ```tsx
1004
+ * // Modo fixed: teclado sempre visível com TextField próprio
1005
+ * <VirtualKeyboard
1006
+ * variant="fixed"
1007
+ * type="default"
1008
+ * onChange={(value) => setValue(value)}
1009
+ * />
1010
+ * ```
1011
+ * @example
1012
+ * ```tsx
1013
+ * // Modo native: teclado gerenciado externamente (futuramente acionado por foco)
1014
+ * <VirtualKeyboard
1015
+ * variant="native"
1016
+ * type="numeric"
1017
+ * value={pin}
1018
+ * onChange={setPin}
1019
+ * maxLength={4}
1020
+ * />
1021
+ * ```
1022
+ */
1023
+ interface VirtualKeyboardProps extends Omit<BaseProps, 'disabled'> {
1024
+ /**
1025
+ * Modo de exibição do teclado.
1026
+ * - `native`: comporta-se como teclado nativo (acionamento por foco — futuramente implementado).
1027
+ * - `fixed`: teclado fixo na tela com um TextField próprio acima.
1028
+ * @default 'native'
1029
+ */
1030
+ variant?: VirtualKeyboardVariant;
1031
+ /** Valor controlado do input vinculado ao teclado */
1032
+ value?: string;
1033
+ /** Tipo do teclado (padrão: "default") */
1034
+ type?: VirtualKeyboardType;
1035
+ /** Callback executado quando o valor do input muda: (value) => void */
1036
+ onChange?: (value: string) => void;
1037
+ /** Callback executado quando uma tecla é pressionada: (key) => void */
1038
+ onKeyPress?: (key: string) => void;
1039
+ /** Limite máximo de caracteres */
1040
+ maxLength?: number;
1041
+ /** Controla a exibição do botão {emoticon} nos layouts suportados */
1042
+ Emoji?: boolean;
1043
+ /** Placeholder do TextField exibido no modo `fixed` */
1044
+ textFieldPlaceholder?: string;
1045
+ /** Texto de ajuda do TextField exibido no modo `fixed` */
1046
+ helperText?: string;
1047
+ /** Sinaliza erro no TextField exibido no modo `fixed` */
1048
+ error?: boolean;
1049
+ /** Mensagem de erro do TextField exibido no modo `fixed` */
1050
+ errorMessage?: string;
1051
+ /**
1052
+ * Ref para o campo de input que aciona o teclado no modo `native`.
1053
+ * O teclado aparece ao focar no elemento referenciado e some ao perder o foco.
1054
+ * Se omitido no modo `native`, o teclado permanece sempre visível.
1055
+ */
1056
+ targetRef?: RefObject<HTMLInputElement | HTMLTextAreaElement | null>;
1057
+ }
1058
+
958
1059
  /**
959
1060
  * Props do componente Search
960
1061
  * @example
@@ -1012,6 +1113,14 @@ interface SearchProps extends BaseProps, NativeInputProps {
1012
1113
  'data-testid'?: string;
1013
1114
  /** Classe CSS opcional */
1014
1115
  className?: string;
1116
+ /** Habilita o teclado virtual */
1117
+ virtualKeyboard?: boolean;
1118
+ /** Variante do teclado virtual (padrão: 'default') */
1119
+ virtualKeyboardType?: VirtualKeyboardType;
1120
+ /** Comprimento máximo permitido pelo teclado virtual */
1121
+ virtualKeyboardMaxLength?: number;
1122
+ /** Escala visual aplicada ao componente */
1123
+ scale?: Scale;
1015
1124
  }
1016
1125
 
1017
1126
  declare const Search: React__default.ForwardRefExoticComponent<SearchProps & React__default.RefAttributes<HTMLInputElement>>;
@@ -1115,6 +1224,8 @@ interface SelectProps extends BaseProps {
1115
1224
  isSearching?: boolean;
1116
1225
  /** Classe CSS opcional */
1117
1226
  className?: string;
1227
+ /** Escala visual aplicada ao componente */
1228
+ scale?: Scale;
1118
1229
  }
1119
1230
 
1120
1231
  declare const Select: React__default.FC<SelectProps>;
@@ -1349,6 +1460,12 @@ interface TableV2HeaderProps {
1349
1460
  searchPlaceholder?: string;
1350
1461
  /** Items de filtro (Status, Data de início, etc.) */
1351
1462
  filterItems?: FilterItem[];
1463
+ /** Habilita o teclado virtual */
1464
+ virtualKeyboard?: boolean;
1465
+ /** Tipo do teclado virtual (padrão: 'default') */
1466
+ virtualKeyboardType?: VirtualKeyboardType;
1467
+ /** Comprimento máximo permitido pelo teclado virtual */
1468
+ virtualKeyboardMaxLength?: number;
1352
1469
  /** Modo de busca: 'instant' chama onSearchChange a cada tecla; 'on-enter' chama apenas ao pressionar Enter (padrão) */
1353
1470
  searchMode?: 'instant' | 'on-enter';
1354
1471
  /**
@@ -1555,6 +1672,12 @@ interface TextAreaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLT
1555
1672
  height?: number;
1556
1673
  /** Classe CSS opcional */
1557
1674
  className?: string;
1675
+ /** Habilita o teclado virtual */
1676
+ virtualKeyboard?: boolean;
1677
+ /** Tipo do teclado virtual (padrão: 'default') */
1678
+ virtualKeyboardType?: VirtualKeyboardType;
1679
+ /** Comprimento máximo permitido pelo teclado virtual */
1680
+ virtualKeyboardMaxLength?: number;
1558
1681
  }
1559
1682
 
1560
1683
  declare const _default$1: React__default.NamedExoticComponent<TextAreaProps & React__default.RefAttributes<HTMLTextAreaElement>>;
@@ -1620,6 +1743,16 @@ interface TextFieldProps extends Omit<React__default.InputHTMLAttributes<HTMLInp
1620
1743
  persistIcon?: boolean;
1621
1744
  /** Classe CSS opcional */
1622
1745
  className?: string;
1746
+ /** Habilita o teclado virtual */
1747
+ virtualKeyboard?: boolean;
1748
+ /** Tipo do teclado virtual (padrão: 'default') */
1749
+ virtualKeyboardType?: VirtualKeyboardType;
1750
+ /** Comprimento máximo permitido pelo teclado virtual */
1751
+ virtualKeyboardMaxLength?: number;
1752
+ /** Aplica variação visual para uso acoplado ao VirtualKeyboard no modo fixed */
1753
+ attachedToVirtualKeyboard?: boolean;
1754
+ /** Escala visual aplicada ao componente */
1755
+ scale?: Scale;
1623
1756
  }
1624
1757
 
1625
1758
  declare const _default: React__default.NamedExoticComponent<TextFieldProps & React__default.RefAttributes<HTMLInputElement>>;
@@ -1850,14 +1983,16 @@ interface SwitchProps extends BaseProps {
1850
1983
  defaultChecked?: boolean;
1851
1984
  /** Callback executado quando o estado muda: (checked) => void */
1852
1985
  onCheckedChange?: (checked: boolean) => void;
1853
- /** Nome do input */
1986
+ /** Nome do input — associa o switch a um campo de formulário (HTML `name`) */
1854
1987
  name?: string;
1855
- /** Valor do input */
1988
+ /** Valor enviado no formulário quando o switch está ativo (análogo ao `value` do `<input type="checkbox">`) */
1856
1989
  value?: string;
1857
1990
  /** Estado atual (modo controlado) */
1858
1991
  checked?: boolean;
1859
1992
  /** Classe CSS opcional */
1860
1993
  className?: string;
1994
+ /** Escala visual aplicada ao componente */
1995
+ scale?: Scale;
1861
1996
  }
1862
1997
 
1863
1998
  declare const Switch: React$1.FC<SwitchProps>;
@@ -1919,6 +2054,33 @@ interface VerificationCodeProps extends BaseProps {
1919
2054
  */
1920
2055
  declare const VerificationCode: React__default.FC<VerificationCodeProps>;
1921
2056
 
2057
+ /**
2058
+ * Componente VirtualKeyboard — teclado virtual on-screen para entradas controladas.
2059
+ *
2060
+ * @description Baseado em `react-simple-keyboard`, oferece apenas layouts nativos (QWERTY e numérico)
2061
+ * seguindo o visual padrão da biblioteca.
2062
+ *
2063
+ * Possui dois modos:
2064
+ * - **`native`** (padrão): age como teclado nativo — aparece ao focar no campo referenciado por `targetRef` e some ao perder o foco.
2065
+ * - **`fixed`**: teclado sempre visível com um TextField próprio acima.
2066
+ *
2067
+ * @example
2068
+ * ```tsx
2069
+ * // Modo fixed
2070
+ * <VirtualKeyboard variant="fixed" type="default" onChange={setValue} />
2071
+ * ```
2072
+ *
2073
+ * @example
2074
+ * ```tsx
2075
+ * // Modo native — aparece ao focar no input
2076
+ * const inputRef = useRef<HTMLInputElement>(null);
2077
+ * const [value, setValue] = useState('');
2078
+ * <input ref={inputRef} value={value} readOnly />
2079
+ * <VirtualKeyboard targetRef={inputRef} value={value} onChange={setValue} />
2080
+ * ```
2081
+ */
2082
+ declare const VirtualKeyboard: React__default.FC<VirtualKeyboardProps>;
2083
+
1922
2084
  /**
1923
2085
  * Configurações para simulação de API
1924
2086
  */
@@ -2015,5 +2177,5 @@ declare function useInfiniteScroll({ status, page, lastPage, onLoadMore, thresho
2015
2177
 
2016
2178
  declare const normalizeText: (text: React.ReactNode) => string;
2017
2179
 
2018
- 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 };
2019
- 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 };
2180
+ 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, VirtualKeyboard, normalizeText, useApiSimulation, useInfiniteScroll, useToast };
2181
+ 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, VirtualKeyboardProps, VirtualKeyboardVariant };