@giro-ds/react 12.2.0 → 12.4.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.cjs CHANGED
@@ -76,6 +76,39 @@ const Badge = ({ children, badgeValue = null, className, id, filterVariant = fal
76
76
  }, className), "data-testid": "badge", children: !isEmpty && (jsxRuntime.jsx("span", { "aria-hidden": !!ariaLabel, children: displayValue })) }) }));
77
77
  };
78
78
 
79
+ const REACT_MAJOR = parseInt(React.version.split('.')[0], 10);
80
+ /**
81
+ * Shim de compatibilidade para `React.forwardRef` que funciona tanto no React 18
82
+ * quanto no React 19.
83
+ *
84
+ * - React 18: `ref` não é uma prop comum — usa `React.forwardRef` internamente.
85
+ * - React 19: `ref` é uma prop normal e `forwardRef` foi depreciado. Este shim
86
+ * cria um componente funcional comum que lê `ref` das props diretamente,
87
+ * evitando o aviso de depreciação.
88
+ *
89
+ * O padrão de autoria dos componentes permanece idêntico para ambas as versões.
90
+ *
91
+ * @example
92
+ * const MyInput = forwardRef<HTMLInputElement, MyInputProps>((props, ref) => {
93
+ * return <input ref={ref} {...props} />;
94
+ * });
95
+ */
96
+ function forwardRef(render) {
97
+ if (REACT_MAJOR >= 19) {
98
+ const Comp = (props) => {
99
+ const { ref, ...rest } = props;
100
+ return render(rest, ref ?? null);
101
+ };
102
+ const displayName = render.displayName ?? render.name;
103
+ if (displayName) {
104
+ Comp.displayName = displayName;
105
+ }
106
+ return Comp;
107
+ }
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
+ return React.forwardRef(render);
110
+ }
111
+
79
112
  var styles$t = {"tooltipContent":"Tooltip-module__tooltipContent___xycUg","triggerWrapper":"Tooltip-module__triggerWrapper___x83XR"};
80
113
 
81
114
  const Tooltip = ({ children, text, side = 'bottom', align = 'start', maxWidth, sideOffset = 10, className, ...rest }) => {
@@ -84,7 +117,7 @@ const Tooltip = ({ children, text, side = 'bottom', align = 'start', maxWidth, s
84
117
 
85
118
  var styles$s = {"button":"Button-module__button___18Bed","button-lg":"Button-module__button-lg___-A8B9","button-sm":"Button-module__button-sm___L7aT7","button-filled":"Button-module__button-filled___IQx1z","button-outlined":"Button-module__button-outlined___hLkLN","button-text":"Button-module__button-text___8GFeA","buttonWithIcon":"Button-module__buttonWithIcon___8ehK1","buttonIconPosition-left":"Button-module__buttonIconPosition-left___uOY6b","buttonIconPosition-right":"Button-module__buttonIconPosition-right___eswRS","buttonIconPosition-both":"Button-module__buttonIconPosition-both___1Lith","buttonNoContent":"Button-module__buttonNoContent___Tc9jk","buttonIconOnly":"Button-module__buttonIconOnly___aifk4","buttonIconLeft":"Button-module__buttonIconLeft___RICR3","buttonIconRight":"Button-module__buttonIconRight___71lu2","buttonFullWidth":"Button-module__buttonFullWidth___tXuVE","disabled":"Button-module__disabled___UzdWL","buttonLoading":"Button-module__buttonLoading___RGdNw","buttonContentHidden":"Button-module__buttonContentHidden___CoCiN","buttonLoadingSpinner":"Button-module__buttonLoadingSpinner___oZxEU","spin":"Button-module__spin___kQKH9"};
86
119
 
87
- const Button = React.forwardRef(({ as, children, variant = 'filled', iconPosition = 'left', href, to, external = false, target, rel, disabled = false, onClick, size = 'lg', scale = 1, className, type = 'button', id, icon, fullWidth = false, ariaLabel, iconOnly = false, loading = false, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', ...rest }, ref) => {
120
+ const Button = forwardRef(({ as, children, variant = 'filled', iconPosition = 'left', href, to, external = false, target, rel, disabled = false, onClick, size = 'lg', scale = 1, className, type = 'button', id, icon, fullWidth = false, ariaLabel, iconOnly = false, loading = false, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', ...rest }, ref) => {
88
121
  const generatedId = React.useId();
89
122
  const componentId = id || generatedId;
90
123
  const getComponent = () => {
@@ -196,7 +229,7 @@ const Button = React.forwardRef(({ as, children, variant = 'filled', iconPositio
196
229
  }
197
230
  return {};
198
231
  };
199
- if (iconOnly && tooltipText && !loading) {
232
+ if (tooltipText && !loading) {
200
233
  return (jsxRuntime.jsx(Tooltip, { text: tooltipText, side: tooltipSide, align: tooltipAlign, children: jsxRuntime.jsx(Component, { ...baseProps, ...getNavigationProps(), children: renderContent() }) }));
201
234
  }
202
235
  return (jsxRuntime.jsx(Component, { ...baseProps, ...getNavigationProps(), children: renderContent() }));
@@ -2105,12 +2138,6 @@ class DateLib {
2105
2138
  * @param overrides Custom overrides for the date library functions.
2106
2139
  */
2107
2140
  constructor(options, overrides) {
2108
- /**
2109
- * Reference to the built-in Date constructor.
2110
- *
2111
- * @deprecated Use `newDate()` or `today()`.
2112
- */
2113
- this.Date = Date;
2114
2141
  /**
2115
2142
  * Creates a new `Date` object representing today's date.
2116
2143
  *
@@ -2124,7 +2151,8 @@ class DateLib {
2124
2151
  if (this.options.timeZone) {
2125
2152
  return TZDate.tz(this.options.timeZone);
2126
2153
  }
2127
- return new this.Date();
2154
+ const DateCtor = this.options.Date ?? Date;
2155
+ return new DateCtor();
2128
2156
  };
2129
2157
  /**
2130
2158
  * Creates a new `Date` object with the specified year, month, and day.
@@ -2929,6 +2957,7 @@ const ICON_KEY_MAP = {
2929
2957
  downkeyboard: reactIcons.ChevronDown20Regular,
2930
2958
  emoji: reactIcons.Emoji20Regular,
2931
2959
  enterNumpad: reactIcons.ArrowImport20Regular,
2960
+ spaceNumpad: reactIcons.Spacebar20Regular,
2932
2961
  };
2933
2962
  const SHARED_DISPLAY = {
2934
2963
  '{capslock}': iconSlot('capslock'),
@@ -2972,7 +3001,7 @@ const QWERTY_LOWERCASE = [
2972
3001
  '{numbers} {alt} {space} . {enter}',
2973
3002
  ];
2974
3003
  const NUMPAD = ['1 2 3', '4 5 6', '7 8 9', '{abc} 0 {bksp}'];
2975
- const NUMPAD_WITH_ENTER = ['1 2 3 -', '4 5 6 _', '7 8 9 {bksp}', '{abc} 0 . {enter}'];
3004
+ const NUMPAD_WITH_ENTER = ['1 2 3 -', '4 5 6 {space}', '7 8 9 {bksp}', '{abc} 0 . {enter}'];
2976
3005
  const SHARED_LAYOUTS = {
2977
3006
  shift: [
2978
3007
  '1 2 3 4 5 6 7 8 9 0',
@@ -3049,19 +3078,22 @@ const getNativeLayout = (type, Emoji = true, showDownKeyboardButton = true, isFi
3049
3078
  computedLayout = replaceKeyWithBlank(computedLayout, '{abc}');
3050
3079
  }
3051
3080
  if (isFixed) {
3052
- computedLayout = Object.fromEntries(Object.entries(computedLayout).map(([layoutName, rows]) => [
3053
- layoutName,
3054
- rows.map((row) => {
3055
- const trimmed = row.trim();
3056
- if (/^[a-zA-ZçÇ]/.test(trimmed) && trimmed.endsWith('{bksp}')) {
3057
- return '{//} ' + trimmed.replace(/\s*\{bksp\}$/, '') + ' {//}';
3058
- }
3059
- if (/\{(shift|capslock|shiftactivated)\}$/.test(trimmed)) {
3060
- return trimmed.replace(/\{(shift|capslock|shiftactivated)\}$/, '{bksp}');
3061
- }
3062
- return row;
3063
- }),
3064
- ]));
3081
+ computedLayout = Object.fromEntries(Object.entries(computedLayout).map(([layoutName, rows]) => {
3082
+ const hasBksp = rows.some((r) => r.includes('{bksp}'));
3083
+ return [
3084
+ layoutName,
3085
+ rows.map((row) => {
3086
+ const trimmed = row.trim();
3087
+ if (/^[a-zA-ZçÇ]/.test(trimmed) && trimmed.endsWith('{bksp}')) {
3088
+ return '{//} ' + trimmed.replace(/\s*\{bksp\}$/, '') + ' {//}';
3089
+ }
3090
+ if (!hasBksp && /\{(shift|capslock|shiftactivated)\}$/.test(trimmed)) {
3091
+ return trimmed.replace(/\{(shift|capslock|shiftactivated)\}$/, '{bksp}');
3092
+ }
3093
+ return row;
3094
+ }),
3095
+ ];
3096
+ }));
3065
3097
  }
3066
3098
  return computedLayout;
3067
3099
  };
@@ -3113,7 +3145,7 @@ const ACCENT_OPTIONS = {
3113
3145
  * <VirtualKeyboard targetRef={inputRef} value={value} onChange={setValue} />
3114
3146
  * ```
3115
3147
  */
3116
- const VirtualKeyboard = ({ variant = 'native', type = 'default', value, onChange, onKeyPress, onEnterPress, onTypeChange, maxLength, Emoji = false, className, id, placeholder = 'Digite aqui...', helperText, error, errorMessage, targetRef, textFieldScale = 1, showEnterKey = true, showTypeSwitchKey = true, numpadWithEnter = false, }) => {
3148
+ const VirtualKeyboard = ({ variant = 'native', type = 'default', value, onChange, onKeyPress, onEnterPress, onTypeChange, maxLength, Emoji = false, className, id, placeholder = 'Digite aqui...', helperText, error, errorMessage, targetRef, textFieldScale = 1, showEnterKey = true, showTypeSwitchKey = true, numpadWithEnter = false, nativeHeight, }) => {
3117
3149
  const [internalValue, setInternalValue] = React.useState(value ?? '');
3118
3150
  const [layoutName, setLayoutName] = React.useState('default');
3119
3151
  const [capsLockOn, setCapsLockOn] = React.useState(false);
@@ -3564,12 +3596,12 @@ const VirtualKeyboard = ({ variant = 'native', type = 'default', value, onChange
3564
3596
  if (heldKey &&
3565
3597
  input.length >= currentValue.length + 1 &&
3566
3598
  input.startsWith(currentValue) &&
3567
- input.slice(currentValue.length).split('').every((char) => char === heldKey)) {
3599
+ [...input.slice(currentValue.length)].every((char) => char === heldKey)) {
3568
3600
  syncKeyboardInput(currentValue);
3569
3601
  return;
3570
3602
  }
3571
3603
  if (suppressedKey &&
3572
- input.length === currentValue.length + 1 &&
3604
+ input.length === currentValue.length + suppressedKey.length &&
3573
3605
  input.endsWith(suppressedKey)) {
3574
3606
  suppressNextInputRef.current = null;
3575
3607
  syncKeyboardInput(currentValue);
@@ -3599,6 +3631,7 @@ const VirtualKeyboard = ({ variant = 'native', type = 'default', value, onChange
3599
3631
  const display = { ...baseDisplay };
3600
3632
  if (numpadWithEnter && isNumpadLayout) {
3601
3633
  display['{enter}'] = '<span data-icon-key="enterNumpad"></span>';
3634
+ display['{space}'] = '<span data-icon-key="spaceNumpad"></span>';
3602
3635
  }
3603
3636
  if (variant === 'fixed') {
3604
3637
  display['{bksp}'] = (display['{bksp}'] ?? '').replace(/\s*Apagar$/, '');
@@ -3643,7 +3676,7 @@ const VirtualKeyboard = ({ variant = 'native', type = 'default', value, onChange
3643
3676
  event.stopPropagation();
3644
3677
  }, onClick: () => handleAccentSelect(option), children: option }, `${accentMenu.sourceKey}-${option}`))) }, rowIndex))) }), document.body))] })) : null;
3645
3678
  if (variant === 'native' && typeof document !== 'undefined') {
3646
- return reactDom.createPortal(jsxRuntime.jsx("div", { id: id, className: clsx(styles$k.overlay, { [styles$k.overlayOpen]: isOpen }, styles$k[isNumpadLayout ? 'layout--numeric' : 'layout--default'], className), children: keyboardEl }), document.body);
3679
+ return reactDom.createPortal(jsxRuntime.jsx("div", { id: id, className: clsx(styles$k.overlay, { [styles$k.overlayOpen]: isOpen }, styles$k[isNumpadLayout ? 'layout--numeric' : 'layout--default'], className), style: nativeHeight ? { '--vkeyboard-native-height': nativeHeight } : undefined, children: keyboardEl }), document.body);
3647
3680
  }
3648
3681
  return (jsxRuntime.jsxs("div", { id: id, className: clsx(styles$k.container, styles$k[`mode--${variant}`], styles$k[isNumpadLayout ? 'layout--numeric' : 'layout--default'], className), children: [variant === 'fixed' && (jsxRuntime.jsx("div", { className: styles$k.textFieldContainer, children: jsxRuntime.jsx(TextField, { placeholder: placeholder, value: effectiveValue, onChange: onChange, helperText: helperText, error: error, errorMessage: errorMessage, readOnly: true, disableAutoComplete: true, maxLength: maxLength, attachedToVirtualKeyboard: true, className: styles$k.textFieldWrapper, scale: textFieldScale }) })), keyboardEl] }));
3649
3682
  };
@@ -3674,7 +3707,7 @@ const LabelComponent = ({ children, htmlFor, required = false, tooltip = false,
3674
3707
  return container;
3675
3708
  };
3676
3709
 
3677
- const TextField$1 = React.forwardRef(({ className, style, value, label, placeholder, type = 'text', onChange, disabled = false, maxLength, required = false, helperText, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', errorMessage, error, id, icon, scale = 1, onBlur, onFocus, name, persistIcon = false, virtualKeyboard, attachedToVirtualKeyboard, disableAutoComplete = false, ...rest }, ref) => {
3710
+ const TextField$1 = forwardRef(({ className, style, value, label, placeholder, type = 'text', onChange, disabled = false, maxLength, required = false, helperText, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', errorMessage, error, id, icon, scale = 1, onBlur, onFocus, name, virtualKeyboard, attachedToVirtualKeyboard, disableAutoComplete = false, ...rest }, ref) => {
3678
3711
  const normalizeValue = (val) => {
3679
3712
  return val === undefined || val === null ? '' : String(val);
3680
3713
  };
@@ -3725,7 +3758,7 @@ const TextField$1 = React.forwardRef(({ className, style, value, label, placehol
3725
3758
  setIsFocused(true);
3726
3759
  onFocus?.(e);
3727
3760
  }, [onFocus]);
3728
- const showCustomIcon = (inputValue.trim().length === 0 || persistIcon) && icon;
3761
+ const showCustomIcon = (inputValue.trim().length === 0 || !isFocused) && icon;
3729
3762
  const showClearIcon = isFocused && inputValue.trim().length > 0;
3730
3763
  const hasError = Boolean(inputError) || Boolean(error);
3731
3764
  const displayHelperText = (error ? errorMessage : undefined) || inputError || helperText || '\u00A0';
@@ -3980,7 +4013,7 @@ const DatePicker = ({ locale = 'pt-br', calendarSide = 'bottom', calendarAlign =
3980
4013
  };
3981
4014
  return (jsxRuntime.jsx("div", { ref: wrapperRef, id: id, className: clsx(styles$h.datePicker, className), style: { ...containerStyle, ...style }, ...rest, children: jsxRuntime.jsx(Popover, { open: showCalendar, onOpenChange: setShowCalendar, asAnchor: true, trigger: jsxRuntime.jsx(TextField, { className: styles$h.textfieldContainer, type: "tel", icon: jsxRuntime.jsx(reactIcons.Calendar16Regular, { onClick: !disabled ? handleIconClick : undefined, className: clsx(styles$h.datePickerIcon, disabled && styles$h.datePickerIconDisabled) }), onChange: (e) => {
3982
4015
  handleTextFieldChange(String(e));
3983
- }, onKeyDown: handleKeyDown, onFocus: handleFocus, persistIcon: true, autoComplete: "off", value: displayValue, helperText: !externalError ? (helperText || undefined) : undefined, errorMessage: externalError ? combinedHelperText : undefined, error: hasValidationError ? true : undefined, maxLength: 10, required: required, label: label, disabled: disabled, scale: scale, id: fieldId, "data-testid": testId, placeholder: locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY', "aria-label": "Open calendar", "aria-expanded": showCalendar, "aria-controls": calendarId, "aria-invalid": hasValidationError, "aria-describedby": externalError ? undefined : (helperText ? `${fieldId}-help` : undefined) }), content: jsxRuntime.jsx(Calendar, { selected: currentSelectedDate, currentDate: currentDate, onDateChange: setCurrentDate, onDaySelect: handleDaySelect, locale: locale, format: locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy', minDate: minDate, maxDate: maxDate, scale: scale, id: calendarId, onClear: () => {
4016
+ }, onKeyDown: handleKeyDown, onFocus: handleFocus, autoComplete: "off", value: displayValue, helperText: !externalError ? (helperText || undefined) : undefined, errorMessage: externalError ? combinedHelperText : undefined, error: hasValidationError ? true : undefined, maxLength: 10, required: required, label: label, disabled: disabled, scale: scale, id: fieldId, "data-testid": testId, placeholder: locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY', "aria-label": "Open calendar", "aria-expanded": showCalendar, "aria-controls": calendarId, "aria-invalid": hasValidationError, "aria-describedby": externalError ? undefined : (helperText ? `${fieldId}-help` : undefined) }), content: jsxRuntime.jsx(Calendar, { selected: currentSelectedDate, currentDate: currentDate, onDateChange: setCurrentDate, onDaySelect: handleDaySelect, locale: locale, format: locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy', minDate: minDate, maxDate: maxDate, scale: scale, id: calendarId, onClear: () => {
3984
4017
  handleDateChange(null);
3985
4018
  setCurrentDate(new Date());
3986
4019
  } }), side: calendarSide, align: calendarAlign, sideOffset: 8 }) }));
@@ -3989,7 +4022,7 @@ var DatePicker_default = React.memo(DatePicker);
3989
4022
 
3990
4023
  var styles$g = {"DialogOverlay":"Dialog-module__DialogOverlay___LEX2O","DialogContent":"Dialog-module__DialogContent___ziVXb","DialogTitle":"Dialog-module__DialogTitle___ay1tD","DialogDescription":"Dialog-module__DialogDescription___odslw","DivButtons":"Dialog-module__DivButtons___BiwX-"};
3991
4024
 
3992
- const Dialog = ({ show = false, title, bodyContent, textPrimaryAction, textSecondaryAction, onPrimaryAction, onSecondaryAction, className, ...rest }) => (jsxRuntime.jsx(radixUi.AlertDialog.Root, { open: show, ...rest, children: jsxRuntime.jsxs(radixUi.AlertDialog.Portal, { children: [jsxRuntime.jsx(radixUi.AlertDialog.Overlay, { className: styles$g.DialogOverlay }), jsxRuntime.jsxs(radixUi.AlertDialog.Content, { className: clsx(styles$g.DialogContent, className), children: [jsxRuntime.jsx(radixUi.AlertDialog.Title, { className: styles$g.DialogTitle, children: title }), jsxRuntime.jsx(radixUi.AlertDialog.Description, { className: styles$g.DialogDescription, children: bodyContent }), jsxRuntime.jsxs("div", { className: styles$g.DivButtons, children: [!!(textSecondaryAction && textSecondaryAction.trim()) && (jsxRuntime.jsx(radixUi.AlertDialog.Cancel, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "outlined", ...(onSecondaryAction && { onClick: onSecondaryAction }), children: textSecondaryAction }) })), jsxRuntime.jsx(radixUi.AlertDialog.Action, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "filled", ...(onPrimaryAction && { onClick: onPrimaryAction }), children: textPrimaryAction }) })] })] })] }) }));
4025
+ const Dialog = ({ show = false, title, bodyContent, textPrimaryAction, textSecondaryAction, onPrimaryAction, onSecondaryAction, className, ...rest }) => (jsxRuntime.jsx(radixUi.AlertDialog.Root, { open: show, ...rest, children: jsxRuntime.jsxs(radixUi.AlertDialog.Portal, { children: [jsxRuntime.jsx(radixUi.AlertDialog.Overlay, { className: styles$g.DialogOverlay }), jsxRuntime.jsxs(radixUi.AlertDialog.Content, { className: clsx(styles$g.DialogContent, className), children: [jsxRuntime.jsx(radixUi.AlertDialog.Title, { className: styles$g.DialogTitle, children: title }), jsxRuntime.jsx(radixUi.AlertDialog.Description, { asChild: true, className: styles$g.DialogDescription, children: jsxRuntime.jsx("div", { children: bodyContent }) }), jsxRuntime.jsxs("div", { className: styles$g.DivButtons, children: [!!(textSecondaryAction && textSecondaryAction.trim()) && (jsxRuntime.jsx(radixUi.AlertDialog.Cancel, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "outlined", ...(onSecondaryAction && { onClick: onSecondaryAction }), children: textSecondaryAction }) })), jsxRuntime.jsx(radixUi.AlertDialog.Action, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "filled", ...(onPrimaryAction && { onClick: onPrimaryAction }), children: textPrimaryAction }) })] })] })] }) }));
3993
4026
 
3994
4027
  var styles$f = {"drawerShadow":"Drawer-module__drawerShadow___0Z6iL","drawerShadow--visible":"Drawer-module__drawerShadow--visible___FspoH","drawerSidebar":"Drawer-module__drawerSidebar___cdyyb","drawerSidebar--open":"Drawer-module__drawerSidebar--open___ee2-Y","drawerSidebar--disabled":"Drawer-module__drawerSidebar--disabled___MYrBI","drawerTitleClose":"Drawer-module__drawerTitleClose___QzqN-","drawerTitle":"Drawer-module__drawerTitle___naMX0","drawerChildren":"Drawer-module__drawerChildren___xGdg9","drawerHeaderContent":"Drawer-module__drawerHeaderContent___NLSwj"};
3995
4028
 
@@ -4082,7 +4115,7 @@ const matchesAccept = (file, accept) => {
4082
4115
  return fileType === type;
4083
4116
  });
4084
4117
  };
4085
- const FileUpload = React.forwardRef(({ value, onChange, helperText, error = false, errorMessage, maxFileSize, maxFilesQuantity, disabled = false, className, id, accept, multiple = true, description = 'Clique ou arraste os arquivos aqui', descriptionErrorMessage = 'Falha ao subir um ou mais arquivos.', ...rest }, ref) => {
4118
+ const FileUpload = forwardRef(({ value, onChange, helperText, error = false, errorMessage, maxFileSize, maxFilesQuantity, disabled = false, className, id, accept, multiple = true, description = 'Clique ou arraste os arquivos aqui', descriptionErrorMessage = 'Falha ao subir um ou mais arquivos.', ...rest }, ref) => {
4086
4119
  const generatedId = React.useId();
4087
4120
  const componentId = id || generatedId;
4088
4121
  const helperId = `${componentId}-helper`;
@@ -4244,7 +4277,7 @@ const Combined = ({ buttonText = 'Filtrar', icon, variant = 'outlined', disabled
4244
4277
 
4245
4278
  var styles$c = {"search":"Search-module__search___u3QsV","searchLeftIcon":"Search-module__searchLeftIcon___OKOBq","disabled":"Search-module__disabled___adbxO","inputWithClearIcon":"Search-module__inputWithClearIcon___cqvkq","searchClearIcon":"Search-module__searchClearIcon___qX9-h"};
4246
4279
 
4247
- const Search = React.forwardRef(({ placeholder = 'Dica do que deve ser buscado', disabled = false, value, onChange, onKeyDown, onFocus, onBlur, onClear, onClick, onMouseDown, searchMode = 'instant', onSearch, id, scale = 1, className, style, virtualKeyboard, 'data-testid': testId, ...rest }, ref) => {
4280
+ const Search = forwardRef(({ placeholder = 'Dica do que deve ser buscado', disabled = false, value, onChange, onKeyDown, onFocus, onBlur, onClear, onClick, onMouseDown, searchMode = 'instant', onSearch, id, scale = 1, className, style, virtualKeyboard, 'data-testid': testId, ...rest }, ref) => {
4248
4281
  const [internalValue, setInternalValue] = React.useState('');
4249
4282
  const { internalRef: inputRef, setRefs: setInputRefs } = useInputKeyboardValue(ref);
4250
4283
  const isControlled = value !== undefined && onChange !== undefined;
@@ -4854,9 +4887,9 @@ const Menu = ({ items, children, onItemSelect, search, enableInfiniteScroll, onS
4854
4887
  }, ...rest, children: [search && (jsxRuntime.jsx("div", { className: styles$a.searchWrapper, children: jsxRuntime.jsx(Search, { placeholder: "Buscar", onChange: handleSearchChange, value: searchInput, onKeyDown: handleSearchKeyDown }) })), jsxRuntime.jsxs("div", { className: styles$a.itemsWrapper, ref: itemsWrapperRef, style: { maxHeight: maxHeightStyle }, children: [filteredItems.length > 0 ? (filteredItems.map((item, index) => renderMenuItem(item, item.value || item.text || `item-${index}`))) : (jsxRuntime.jsx("div", { className: styles$a.emptyState, children: "Nenhum item encontrado" })), enableInfiniteScroll && isLoadingMore && (jsxRuntime.jsx("div", { className: styles$a.loadingMore, children: "Carregando mais itens..." })), enableInfiniteScroll && (jsxRuntime.jsx("div", { ref: sentinelRef, "data-scroll-sentinel": true, style: { height: '1px', visibility: 'hidden' } }))] })] }) })] }));
4855
4888
  };
4856
4889
 
4857
- var styles$9 = {"modalOverlay":"Modal-module__modalOverlay___rI8Wz","modalContent":"Modal-module__modalContent___6Cgb1","modalContent--fullscreen":"Modal-module__modalContent--fullscreen___QeBlG","modalHeader":"Modal-module__modalHeader___IuHIg","modalTitle":"Modal-module__modalTitle___9VDmr","modalBody":"Modal-module__modalBody___ohjQm","modalFooter":"Modal-module__modalFooter___TEqdK"};
4890
+ var styles$9 = {"modalOverlay":"Modal-module__modalOverlay___rI8Wz","modalContent":"Modal-module__modalContent___6Cgb1","modalContent--fullscreen":"Modal-module__modalContent--fullscreen___QeBlG","modalHeader":"Modal-module__modalHeader___IuHIg","modalCloseButton":"Modal-module__modalCloseButton___VoWHD","modalTitle":"Modal-module__modalTitle___9VDmr","modalBody":"Modal-module__modalBody___ohjQm","modalFooter":"Modal-module__modalFooter___TEqdK"};
4858
4891
 
4859
- const Modal = ({ isOpen = false, onClose, title, children, headerContent, closeOnOverlayClick = true, className, id, footer, customWidth, customHeight, fullscreen = false, ...rest }) => {
4892
+ const Modal = ({ isOpen = false, onClose, title, children, headerContent, closeOnOverlayClick = true, className, id, footer, customWidth, customHeight, closingButton = true, fullscreen = false, ...rest }) => {
4860
4893
  const contentRef = React__namespace.useRef(null);
4861
4894
  const handleOpenChange = (open) => {
4862
4895
  if (!open) {
@@ -4870,7 +4903,7 @@ const Modal = ({ isOpen = false, onClose, title, children, headerContent, closeO
4870
4903
  return (jsxRuntime.jsx(radixUi.Dialog.Root, { open: isOpen, onOpenChange: handleOpenChange, ...rest, children: jsxRuntime.jsxs(radixUi.Dialog.Portal, { children: [jsxRuntime.jsx(radixUi.Dialog.Overlay, { className: styles$9.modalOverlay }), jsxRuntime.jsxs(radixUi.Dialog.Content, { ref: contentRef, className: clsx(styles$9.modalContent, fullscreen && styles$9['modalContent--fullscreen'], className), id: id, style: {
4871
4904
  '--modal-custom-width': customWidth,
4872
4905
  '--modal-custom-height': customHeight,
4873
- }, onInteractOutside: !closeOnOverlayClick ? (e) => e.preventDefault() : undefined, onOpenAutoFocus: handleOpenAutoFocus, "aria-labelledby": id ? `${id}-title` : 'modal-title', tabIndex: -1, children: [jsxRuntime.jsxs("header", { className: styles$9.modalHeader, children: [title && (jsxRuntime.jsx(radixUi.Dialog.Title, { className: styles$9.modalTitle, id: id ? `${id}-title` : 'modal-title', children: title })), headerContent && (jsxRuntime.jsx("div", { children: headerContent })), jsxRuntime.jsx(radixUi.Dialog.Close, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "outlined", iconOnly: true, icon: jsxRuntime.jsx(reactIcons.Dismiss16Regular, {}), size: "lg", tooltipText: 'Fechar' }) })] }), jsxRuntime.jsx("section", { className: styles$9.modalBody, children: children }), footer && (jsxRuntime.jsx("footer", { className: styles$9.modalFooter, children: footer }))] })] }) }));
4906
+ }, onInteractOutside: !closeOnOverlayClick ? (e) => e.preventDefault() : undefined, onOpenAutoFocus: handleOpenAutoFocus, "aria-labelledby": id ? `${id}-title` : 'modal-title', tabIndex: -1, children: [(title || headerContent || closingButton) && (jsxRuntime.jsxs("header", { className: styles$9.modalHeader, children: [title && (jsxRuntime.jsx(radixUi.Dialog.Title, { className: styles$9.modalTitle, id: id ? `${id}-title` : 'modal-title', children: title })), headerContent && (jsxRuntime.jsx("div", { children: headerContent })), closingButton && (jsxRuntime.jsx("div", { className: styles$9.modalCloseButton, children: jsxRuntime.jsx(radixUi.Dialog.Close, { asChild: true, children: jsxRuntime.jsx(Button, { variant: "outlined", iconOnly: true, icon: jsxRuntime.jsx(reactIcons.Dismiss16Regular, {}), size: "lg", tooltipText: 'Fechar' }) }) }))] })), jsxRuntime.jsx("section", { className: styles$9.modalBody, children: children }), footer && (jsxRuntime.jsx("footer", { className: styles$9.modalFooter, children: footer }))] })] }) }));
4874
4907
  };
4875
4908
 
4876
4909
  var styles$8 = {"quantity":"Quantity-module__quantity___-vndR","quantityInput":"Quantity-module__quantityInput___xZG-v","disabled":"Quantity-module__disabled___X6p5l"};
@@ -5146,7 +5179,7 @@ const ExpandableSelectItem = ({ item, variant, onSelect, selectedValues, level =
5146
5179
  }, role: "button", tabIndex: item.disabled ? -1 : 0, "data-disabled": item.disabled || undefined, "data-selected": isSelected && !hasChildren ? 'true' : undefined, "data-testid": `select-item-${item.value}`, children: [variant === 'icon' && item.icon && (jsxRuntime.jsx("span", { className: styles$6.icon, children: item.icon })), jsxRuntime.jsxs("div", { className: styles$6.textContent, children: [jsxRuntime.jsx("div", { className: styles$6.title, children: item.text }), item.subTitle && jsxRuntime.jsx("div", { className: styles$6.subTitle, children: item.subTitle })] }), hasChildren && (jsxRuntime.jsx("span", { className: styles$6.chevron, children: isExpanded ? jsxRuntime.jsx(reactIcons.ChevronDown16Regular, {}) : jsxRuntime.jsx(reactIcons.ChevronRight16Regular, {}) }))] }) }), hasChildren && isExpanded && (jsxRuntime.jsx("div", { className: styles$6.childrenWrapper, children: item.children.map((child) => (jsxRuntime.jsx(ExpandableSelectItem, { item: child, variant: variant, onSelect: onSelect, selectedValues: selectedValues, level: level + 1 }, child.id || child.value))) }))] }));
5147
5180
  };
5148
5181
 
5149
- const SelectItem = React.forwardRef(({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {
5182
+ const SelectItem = forwardRef(({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {
5150
5183
  return (jsxRuntime.jsxs("div", { className: clsx(styles$6.itemWrapper, {
5151
5184
  [styles$6.disabled]: disabled,
5152
5185
  }), "data-disabled": disabled || undefined, "data-testid": `select-item-${value}`, ref: ref, children: [variant === 'icon' && icon && (jsxRuntime.jsx("span", { className: styles$6.icon, children: icon })), jsxRuntime.jsxs(radixUi.Select.Item, { className: clsx(styles$6.item, {
@@ -5388,11 +5421,12 @@ function useSelectLogic({ value, required = false, search = false, onValueChange
5388
5421
  };
5389
5422
  }
5390
5423
 
5391
- const Select = ({ items, onValueChange, onOpenChange, variant, required = false, value, label, helperText, placeholder = 'Selecione', maxWidth, search = false, error, errorMessage, disabled = false, className, style, 'aria-label': ariaLabel, 'data-testid': testId, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', enableInfiniteScroll = false, onScrollEnd, isLoadingMore = false, enableApiSearch = false, onApiSearch, isSearching = false, scale = 1, ...rest }) => {
5424
+ const Select = ({ items, onValueChange, onOpenChange, variant, required = false, value, label, helperText, placeholder = 'Selecione', maxWidth, search = false, error, errorMessage, disabled = false, className, style, 'aria-label': ariaLabel, 'data-testid': testId, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', enableInfiniteScroll = false, onScrollEnd, hasMore = true, isLoadingMore = false, enableApiSearch = false, onApiSearch, isSearching = false, scale = 1, ...rest }) => {
5392
5425
  const componentId = React.useId();
5393
5426
  const selectId = `select-${componentId}`;
5394
5427
  const viewportRef = React.useRef(null);
5395
5428
  const hasReachedEndRef = React.useRef(false);
5429
+ const wasLoadingMoreRef = React.useRef(false);
5396
5430
  const { state, actions, refs, utils, } = useSelectLogic({
5397
5431
  value,
5398
5432
  required,
@@ -5411,7 +5445,7 @@ const Select = ({ items, onValueChange, onOpenChange, variant, required = false,
5411
5445
  const handleScroll = () => {
5412
5446
  const { scrollTop, scrollHeight, clientHeight } = viewport;
5413
5447
  const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;
5414
- if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore) {
5448
+ if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore && hasMore) {
5415
5449
  hasReachedEndRef.current = true;
5416
5450
  onScrollEnd();
5417
5451
  }
@@ -5423,17 +5457,38 @@ const Select = ({ items, onValueChange, onOpenChange, variant, required = false,
5423
5457
  return () => {
5424
5458
  viewport.removeEventListener('scroll', handleScroll);
5425
5459
  };
5426
- }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore]);
5460
+ }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore]);
5427
5461
  React.useEffect(() => {
5428
5462
  if (state.isOpen && enableInfiniteScroll) {
5429
5463
  hasReachedEndRef.current = false;
5430
5464
  }
5431
5465
  }, [state.isOpen, enableInfiniteScroll]);
5466
+ React.useEffect(() => {
5467
+ if (wasLoadingMoreRef.current && !isLoadingMore && enableInfiniteScroll) {
5468
+ hasReachedEndRef.current = false;
5469
+ }
5470
+ wasLoadingMoreRef.current = isLoadingMore;
5471
+ }, [isLoadingMore, enableInfiniteScroll]);
5432
5472
  const displayText = React.useMemo(() => utils.getDisplayText(state.selectedValues, placeholder, variant, items), [state.selectedValues, placeholder, variant, items, utils]);
5433
5473
  const filteredItems = React.useMemo(() => {
5434
5474
  const termToFilter = enableApiSearch ? state.searchTerm : state.searchInput;
5435
5475
  return utils.getFilteredItems(items, termToFilter);
5436
5476
  }, [items, state.searchTerm, state.searchInput, enableApiSearch, utils]);
5477
+ React.useEffect(() => {
5478
+ if (!state.isOpen || !enableInfiniteScroll || !onScrollEnd || isLoadingMore)
5479
+ return;
5480
+ const timer = setTimeout(() => {
5481
+ const viewport = viewportRef.current;
5482
+ if (!viewport)
5483
+ return;
5484
+ const { scrollHeight, clientHeight } = viewport;
5485
+ if (scrollHeight <= clientHeight && !hasReachedEndRef.current && hasMore) {
5486
+ hasReachedEndRef.current = true;
5487
+ onScrollEnd();
5488
+ }
5489
+ }, 150);
5490
+ return () => clearTimeout(timer);
5491
+ }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore, filteredItems.length]);
5437
5492
  const containerStyle = React.useMemo(() => ({
5438
5493
  maxWidth: maxWidth ? `${maxWidth}px` : undefined,
5439
5494
  '--giro-scale': scale,
@@ -5501,18 +5556,18 @@ const EmptyState = ({ emptyIcon, emptyTitle, emptyText }) => (jsxRuntime.jsxs("d
5501
5556
 
5502
5557
  var styles$4 = {"toggle":"ToggleButton-module__toggle___c1Ym-","item":"ToggleButton-module__item___2Qll-","toggle-lg":"ToggleButton-module__toggle-lg___8f3lo","item-lg":"ToggleButton-module__item-lg___479w-","toggle-sm":"ToggleButton-module__toggle-sm___SAGGb","item-sm":"ToggleButton-module__item-sm___4ju--","toggleIconLeft":"ToggleButton-module__toggleIconLeft___VwgKk","toggleWithIcon":"ToggleButton-module__toggleWithIcon___WbCr7","toggleIconOnly":"ToggleButton-module__toggleIconOnly___4iMEp","group":"ToggleButton-module__group___BoR-e"};
5503
5558
 
5504
- const Toggle = ({ pressed, defaultPressed, onPressedChange, disabled = false, className, children, id, size = 'lg', scale = 1, style, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', icon, iconOnly = false, mode: _mode, selectionType: _type, value: _value, defaultValue: _defaultValue, onValueChange: _onValueChange, orientation: _orientation, items: _items, ...rest }) => {
5559
+ const Toggle = ({ pressed, defaultPressed, onPressedChange, disabled = false, className, label, id, size = 'lg', scale = 1, style, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', icon, iconOnly = false, mode: _mode, selectionType: _type, value: _value, defaultValue: _defaultValue, onValueChange: _onValueChange, items: _items, ...rest }) => {
5505
5560
  const toggle = (jsxRuntime.jsx(radixUi.Toggle.Root, { pressed: pressed, defaultPressed: defaultPressed, onPressedChange: onPressedChange, disabled: disabled, className: clsx(styles$4.toggle, styles$4[`toggle-${size}`], {
5506
5561
  [styles$4.toggleIconOnly]: iconOnly,
5507
5562
  [styles$4.toggleWithIcon]: !!icon && !iconOnly,
5508
- }, className), id: id, style: { '--giro-scale': scale, ...style }, ...rest, children: iconOnly ? (jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: icon })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon && jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: icon }), children] })) }));
5563
+ }, className), id: id, style: { '--giro-scale': scale, ...style }, ...rest, children: iconOnly ? (jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: icon })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon && jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: icon }), label] })) }));
5509
5564
  if (tooltipText) {
5510
5565
  return (jsxRuntime.jsx(Tooltip, { text: tooltipText, side: tooltipSide, align: tooltipAlign, children: toggle }));
5511
5566
  }
5512
5567
  return toggle;
5513
5568
  };
5514
5569
 
5515
- const ToggleGroup = ({ selectionType = 'single', value, defaultValue, onValueChange, orientation = 'horizontal', disabled = false, items = [], children, className, id, size = 'lg', scale = 1, style, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', mode: _mode, icon: _icon, iconOnly: _iconOnly, pressed: _pressed, defaultPressed: _defaultPressed, onPressedChange: _onPressedChange, ...rest }) => {
5570
+ const ToggleGroup = ({ selectionType = 'single', value, defaultValue, onValueChange, disabled = false, items = [], className, id, size = 'lg', scale = 1, style, tooltipText, tooltipSide = 'top', tooltipAlign = 'center', mode: _mode, icon: _icon, iconOnly: _iconOnly, pressed: _pressed, defaultPressed: _defaultPressed, onPressedChange: _onPressedChange, ...rest }) => {
5516
5571
  const rootProps = selectionType === 'multiple'
5517
5572
  ? {
5518
5573
  type: 'multiple',
@@ -5526,11 +5581,10 @@ const ToggleGroup = ({ selectionType = 'single', value, defaultValue, onValueCha
5526
5581
  defaultValue: defaultValue,
5527
5582
  onValueChange: onValueChange,
5528
5583
  };
5529
- const group = (jsxRuntime.jsx(radixUi.ToggleGroup.Root, { ...rootProps, orientation: orientation, disabled: disabled, className: clsx(styles$4.group, className), id: id, style: { '--giro-scale': scale, ...style }, ...rest, children: children ??
5530
- items.map((item) => (jsxRuntime.jsx(radixUi.ToggleGroup.Item, { value: item.value, disabled: item.disabled, className: clsx(styles$4.item, styles$4[`item-${size}`], {
5531
- [styles$4.toggleIconOnly]: item.iconOnly,
5532
- [styles$4.toggleWithIcon]: !!item.icon && !item.iconOnly,
5533
- }), style: { '--giro-scale': scale }, children: item.iconOnly ? (jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: item.icon })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [item.icon && jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: item.icon }), item.label] })) }, item.value))) }));
5584
+ const group = (jsxRuntime.jsx(radixUi.ToggleGroup.Root, { ...rootProps, disabled: disabled, className: clsx(styles$4.group, className), id: id, style: { '--giro-scale': scale, ...style }, ...rest, children: items.map((item) => (jsxRuntime.jsx(radixUi.ToggleGroup.Item, { value: item.value, disabled: item.disabled, className: clsx(styles$4.item, styles$4[`item-${size}`], {
5585
+ [styles$4.toggleIconOnly]: item.iconOnly,
5586
+ [styles$4.toggleWithIcon]: !!item.icon && !item.iconOnly,
5587
+ }), style: { '--giro-scale': scale }, children: item.iconOnly ? (jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: item.icon })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [item.icon && jsxRuntime.jsx("span", { className: styles$4.toggleIconLeft, "aria-hidden": "true", children: item.icon }), item.label] })) }, item.value))) }));
5534
5588
  if (tooltipText) {
5535
5589
  return (jsxRuntime.jsx(Tooltip, { text: tooltipText, side: tooltipSide, align: tooltipAlign, children: group }));
5536
5590
  }
@@ -5747,7 +5801,7 @@ const TableV2 = ({ columns, data, rowSelection: rowSelectionConfig, enableSortin
5747
5801
 
5748
5802
  var styles$3 = {"container":"TextArea-module__container___WEBC-","inputWrapper":"TextArea-module__inputWrapper___-omPx","inputContainer":"TextArea-module__inputContainer___0-jKY","footer":"TextArea-module__footer___7XMlj","helperText":"TextArea-module__helperText___709rD","charCount":"TextArea-module__charCount___zdbxM","error":"TextArea-module__error___DWDms","disabled":"TextArea-module__disabled___lHxCa"};
5749
5803
 
5750
- const TextArea = React.forwardRef(({ className, value, label, placeholder, onChange, disabled = false, maxLength, required = false, helperText, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', errorMessage, error, id, onBlur, onFocus, name, resize = 'vertical', charCount = false, height, virtualKeyboard, ...rest }, ref) => {
5804
+ const TextArea = forwardRef(({ className, value, label, placeholder, onChange, disabled = false, maxLength, required = false, helperText, tooltipText, tooltipSide = 'bottom', tooltipAlign = 'start', errorMessage, error, id, onBlur, onFocus, name, resize = 'vertical', charCount = false, height, virtualKeyboard, ...rest }, ref) => {
5751
5805
  const normalizeValue = (val) => {
5752
5806
  return val === undefined || val === null ? '' : String(val);
5753
5807
  };
@@ -5896,13 +5950,19 @@ const useToast = () => {
5896
5950
  const Toast = ({ id, title, duration = 5000, icon, iconClosed = jsxRuntime.jsx(reactIcons.Dismiss16Filled, {}), automaticClose = true, iconType = "Info", className, ...rest }) => {
5897
5951
  const [open, setOpen] = React__namespace.useState(false);
5898
5952
  const { dismissToast } = useToastContext();
5953
+ const dismissTimerRef = React__namespace.useRef(null);
5899
5954
  React__namespace.useEffect(() => {
5900
5955
  setOpen(true);
5956
+ return () => {
5957
+ if (dismissTimerRef.current !== null) {
5958
+ clearTimeout(dismissTimerRef.current);
5959
+ }
5960
+ };
5901
5961
  }, []);
5902
5962
  const handleOpenChange = (isOpen) => {
5903
5963
  setOpen(isOpen);
5904
5964
  if (!isOpen && id) {
5905
- setTimeout(() => dismissToast(id), 200);
5965
+ dismissTimerRef.current = setTimeout(() => dismissToast(id), 200);
5906
5966
  }
5907
5967
  };
5908
5968
  let displayIcon = icon;
@@ -6328,6 +6388,39 @@ exports.Dialog = Dialog;
6328
6388
  exports.Drawer = Drawer;
6329
6389
  exports.FileUpload = FileUpload;
6330
6390
  exports.Filter = Filter;
6391
+ exports.G_Avatar = Avatar;
6392
+ exports.G_Badge = Badge;
6393
+ exports.G_Button = Button;
6394
+ exports.G_Calendar = Calendar;
6395
+ exports.G_Callout = Callout;
6396
+ exports.G_Card = Card;
6397
+ exports.G_Checkbox = Checkbox;
6398
+ exports.G_Chips = MemoizedChips;
6399
+ exports.G_Container = Container;
6400
+ exports.G_DatePicker = DatePicker_default;
6401
+ exports.G_Dialog = Dialog;
6402
+ exports.G_Drawer = Drawer;
6403
+ exports.G_FileUpload = FileUpload;
6404
+ exports.G_Filter = Filter;
6405
+ exports.G_ListItem = ListItem;
6406
+ exports.G_Menu = Menu;
6407
+ exports.G_Modal = Modal;
6408
+ exports.G_Popover = Popover;
6409
+ exports.G_Quantity = memorizedQuantity;
6410
+ exports.G_Radio = Radio;
6411
+ exports.G_Search = Search;
6412
+ exports.G_Select = Select;
6413
+ exports.G_Switch = Switch;
6414
+ exports.G_TableV2 = TableV2;
6415
+ exports.G_TextArea = TextArea_default;
6416
+ exports.G_TextField = TextField;
6417
+ exports.G_Toast = Toast;
6418
+ exports.G_ToastContainer = ToastContainer;
6419
+ exports.G_ToastProvider = ToastProvider;
6420
+ exports.G_ToggleButton = ToggleButton;
6421
+ exports.G_Tooltip = Tooltip;
6422
+ exports.G_VerificationCode = VerificationCode;
6423
+ exports.G_VirtualKeyboard = VirtualKeyboard;
6331
6424
  exports.ListItem = ListItem;
6332
6425
  exports.Menu = Menu;
6333
6426
  exports.Modal = Modal;