@giro-ds/react 12.6.1 → 12.6.2
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 +29 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +30 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/styles.css +2 -2
- package/package.json +2 -2
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/utils/forwardRef.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.tsx","../src/components/Card/Card.tsx","../src/shared/icons/CheckSmall.tsx","../src/shared/icons/CheckHalf.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chips/Chips.tsx","../src/components/Container/Container.tsx","../src/components/Popover/Popover.tsx","../src/hooks/useInputKeyboardValue.tsx","../src/components/VirtualKeyboard/components/IconDisplay.tsx","../src/components/VirtualKeyboard/components/Variants.ts","../src/utils/dismissOutside.ts","../src/components/VirtualKeyboard/VirtualKeyboard.tsx","../src/components/TextField/utils/validation.ts","../src/shared/Label/index.tsx","../src/components/TextField/TextField.tsx","../src/components/DatePicker/Utils/DateUtils.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/Filter/components/Combined.tsx","../src/components/Search/Search.tsx","../src/components/Filter/components/Simple.tsx","../src/components/Filter/Filter.tsx","../src/components/ListItem/ListItem.tsx","../src/components/Menu/components/MenuItem.tsx","../src/components/Menu/hooks/useMenuLogic.ts","../src/hooks/NormalizeText.tsx","../src/components/Menu/hooks/useSearchLogic.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/Quantity/Quantity.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/components/CheckboxSelectItem.tsx","../src/components/Select/components/ExpandableSelectItem.tsx","../src/components/Select/components/SelectItem.tsx","../src/components/Select/hooks/useSelectLogic.ts","../src/components/Select/Select.tsx","../src/components/TableV2/components/EmptyState.tsx","../src/components/ToggleButton/components/Toggle.tsx","../src/components/ToggleButton/components/ToggleGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx","../src/components/TableV2/Table.tsx","../src/components/TextArea/TextArea.tsx","../src/contexts/ToastContext.ts","../src/hooks/useToast.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/components/ToastProvider.tsx","../src/components/Toast/components/ToastContainer.tsx","../src/components/Switch/Switch.tsx","../src/components/VerificationCode/VerificationCode.tsx","../src/hooks/ApiSimulation.tsx","../src/hooks/InfiniteScroll.tsx"],"sourcesContent":["import clsx from 'clsx';\r\nimport { Avatar as AvatarRadix } from \"radix-ui\";\r\nimport React from 'react';\r\n\r\nimport styles from './Avatar.module.scss';\r\n\r\n\r\nimport type { AvatarProps } from './Avatar.types';\r\n\r\nconst Avatar: React.FC<AvatarProps> = ({\r\n icon,\r\n size = 'lg',\r\n src,\r\n className,\r\n text,\r\n ...rest\r\n}) => {\r\n const AvatarClass = clsx(\r\n styles.AvatarRoot,\r\n {\r\n [styles['AvatarRoot--lg']]: size === 'lg',\r\n [styles['AvatarRoot--sm']]: size === 'sm',\r\n },\r\n className\r\n );\r\n\r\n const truncatedText = text ? text.slice(0, 2) : undefined;\r\n\r\n return (\r\n <AvatarRadix.Root className={AvatarClass} {...rest}>\r\n {src && (\r\n <AvatarRadix.Image\r\n className={styles.AvatarImage}\r\n src={src}\r\n alt=\"Avatar\"\r\n />\r\n )}\r\n <AvatarRadix.Fallback className={styles.AvatarFallback}>\r\n {icon || truncatedText}\r\n </AvatarRadix.Fallback>\r\n </AvatarRadix.Root>\r\n );\r\n};\r\n\r\nexport default Avatar;\r\n","import clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Badge.module.scss';\r\n\r\nimport type { BadgeProps } from './Badge.types';\r\n\r\nconst getDisplayValue = (value: BadgeProps['badgeValue']): string => {\r\n if (value === null || value === undefined) return '';\r\n if (typeof value === 'string') {\r\n const parsed = Number(value);\r\n if (isFinite(parsed) && parsed > 0 && String(parsed) === value) {\r\n return parsed > 99 ? '99+' : value;\r\n }\r\n return value;\r\n }\r\n if (!isFinite(value) || value <= 0) return '';\r\n return value > 99 ? '99+' : String(value);\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = ({\r\n children,\r\n badgeValue = null,\r\n className,\r\n id,\r\n filterVariant = false,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const displayValue = getDisplayValue(badgeValue);\r\n const isEmpty = displayValue === '';\r\n\r\n if (children) {\r\n return (\r\n <div className={styles.badgeContainer} {...rest}>\r\n <div data-testid=\"badge-content\">{children}</div>\r\n <div\r\n id={componentId}\r\n className={clsx(styles.badge, {\r\n [styles['badge__empty']]: isEmpty,\r\n [styles['badge__flex']]: displayValue.length >= 2,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && <span aria-hidden={!!ariaLabel}>{displayValue}</span>}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.badgeContainer}>\r\n <div\r\n className={clsx(styles['badge__status'], {\r\n [styles['badge__status__empty']]: isEmpty,\r\n [styles['badge__status__flex']]: displayValue.length >= 2,\r\n [styles['badge__status__filterBadge']]: filterVariant,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && (\r\n <span aria-hidden={!!ariaLabel}>{displayValue}</span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Badge;","import {\r\n forwardRef as forwardRefR18,\r\n version,\r\n} from 'react';\r\n\r\nimport type {\r\n ForwardedRef,\r\n ForwardRefExoticComponent,\r\n ForwardRefRenderFunction,\r\n RefAttributes,\r\n} from 'react';\r\n\r\nconst REACT_MAJOR = parseInt(version.split('.')[0], 10);\r\n\r\n/**\r\n * Shim de compatibilidade para `React.forwardRef` que funciona tanto no React 18\r\n * quanto no React 19.\r\n *\r\n * - React 18: `ref` não é uma prop comum — usa `React.forwardRef` internamente.\r\n * - React 19: `ref` é uma prop normal e `forwardRef` foi depreciado. Este shim\r\n * cria um componente funcional comum que lê `ref` das props diretamente,\r\n * evitando o aviso de depreciação.\r\n *\r\n * O padrão de autoria dos componentes permanece idêntico para ambas as versões.\r\n *\r\n * @example\r\n * const MyInput = forwardRef<HTMLInputElement, MyInputProps>((props, ref) => {\r\n * return <input ref={ref} {...props} />;\r\n * });\r\n */\r\nexport function forwardRef<T, P = {}>(\r\n render: ForwardRefRenderFunction<T, P>,\r\n): ForwardRefExoticComponent<P & RefAttributes<T>> {\r\n if (REACT_MAJOR >= 19) {\r\n const Comp = (props: P & { ref?: ForwardedRef<T> }) => {\r\n const { ref, ...rest } = props as P & { ref?: ForwardedRef<T> };\r\n return render(rest as P, ref ?? null);\r\n };\r\n\r\n const displayName = (render as { displayName?: string }).displayName ?? render.name;\r\n if (displayName) {\r\n (Comp as unknown as { displayName: string }).displayName = displayName;\r\n }\r\n\r\n return Comp as unknown as ForwardRefExoticComponent<P & RefAttributes<T>>;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return forwardRefR18(render as any) as unknown as ForwardRefExoticComponent<P & RefAttributes<T>>;\r\n}\r\n","import { Tooltip as TooltipRadix} from \"radix-ui\";\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Tooltip.module.scss';\r\nimport { TooltipProps } from './Tooltip.types';\r\n\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n\tchildren,\r\n\ttext,\r\n\tside = 'bottom',\r\n\talign = 'start',\r\n\tmaxWidth,\r\n\tsideOffset = 10,\r\n\tclassName,\r\n\t...rest\r\n}) => {\r\n\treturn (\r\n\t\t<TooltipRadix.Provider>\r\n\t\t\t<TooltipRadix.Root>\r\n\t\t\t\t<TooltipRadix.Trigger asChild>\r\n\t\t\t\t\t<span className={styles.triggerWrapper}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</TooltipRadix.Trigger>\r\n\t\t\t\t<TooltipRadix.Portal>\r\n\t\t\t\t\t<TooltipRadix.Content\r\n\t\t\t\t\tclassName={clsx(styles.tooltipContent, className)}\r\n\t\t\t\t\t\tside={side}\r\n\t\t\t\t\t\talign={align}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tstyle={{ maxWidth: maxWidth ? `${maxWidth}px` : 'auto' }}\r\n\t\t\t\t\t\t{...rest}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t</TooltipRadix.Content>\r\n\t\t\t\t</TooltipRadix.Portal>\r\n\t\t\t</TooltipRadix.Root>\r\n\t\t</TooltipRadix.Provider>\r\n\t);\r\n};\r\n\r\nexport default Tooltip\r\n\r\n\r\n","import { SpinnerIos16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId, useMemo } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>((\r\n {\r\n as,\r\n children,\r\n variant = 'filled',\r\n iconPosition = 'left',\r\n href,\r\n to,\r\n external = false,\r\n target,\r\n rel,\r\n disabled = false,\r\n onClick,\r\n size = 'lg',\r\n scale = 1,\r\n className,\r\n type = 'button',\r\n id,\r\n icon,\r\n fullWidth = false,\r\n ariaLabel,\r\n iconOnly = false,\r\n loading = false,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n const getComponent = (): React.ElementType => {\r\n if (as) return as;\r\n\r\n if (href) return 'a';\r\n if (to) {\r\n if (process.env.NODE_ENV !== 'production' && !as) {\r\n console.warn(\r\n '[Button] A prop `to` foi usada sem `as`. ' +\r\n 'Para navegação via roteador (React Router, Next.js, etc.), passe `as={Link}`. ' +\r\n 'Por ora, `to` será tratado como `href` em um <a> nativo.'\r\n );\r\n }\r\n return 'a';\r\n }\r\n return 'button';\r\n };\r\n\r\n const Component = getComponent();\r\n\r\n const hasContent = useMemo(() => {\r\n return children && React.Children.count(children) > 0;\r\n }, [children]);\r\n\r\n if (process.env.NODE_ENV !== 'production' && iconOnly && !icon) {\r\n console.error(\r\n '[Button] `iconOnly={true}` foi usado sem a prop `icon`. ' +\r\n 'Forneça um ícone via `icon={<MeuIcone />}`.'\r\n );\r\n }\r\n const resolvedIcon = icon;\r\n\r\n const buttonClasses = clsx(\r\n styles.button,\r\n styles[`button-${variant}`],\r\n styles[`button-${size}`],\r\n {\r\n [styles['disabled']]: disabled,\r\n [styles['buttonLoading']]: loading,\r\n [styles['buttonWithIcon']]: resolvedIcon && !iconOnly,\r\n [styles[`buttonIconPosition-${iconPosition}`]]: resolvedIcon && !iconOnly,\r\n [styles['buttonNoContent']]: resolvedIcon && !hasContent && !iconOnly,\r\n [styles['buttonFullWidth']]: fullWidth,\r\n [styles['buttonIconOnly']]: iconOnly,\r\n },\r\n className\r\n );\r\n\r\n const getAriaLabel = () => {\r\n if (ariaLabel) return ariaLabel;\r\n if (iconOnly) {\r\n if (tooltipText) return tooltipText;\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n '[Button] Botões icon-only precisam de uma prop `ariaLabel` descritiva. ' +\r\n 'O fallback genérico foi removido pois não comunica intenção. ' +\r\n 'Forneça `ariaLabel` ou `tooltipText` para nomear o botão.'\r\n );\r\n }\r\n return undefined;\r\n }\r\n return undefined;\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n if (disabled || loading) {\r\n e.preventDefault();\r\n return;\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n const renderContent = () => {\r\n if (iconOnly && !loading) {\r\n return (\r\n <span className={styles.buttonIconOnly} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n );\r\n }\r\n if (loading) {\r\n return (\r\n <>\r\n {!iconOnly && (\r\n <span className={styles.buttonContentHidden} aria-hidden=\"true\">\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft}>{resolvedIcon}</span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight}>{resolvedIcon}</span>\r\n )}\r\n </span>\r\n )}\r\n <span className={styles.buttonLoadingSpinner} aria-hidden=\"true\">\r\n <SpinnerIos16Regular aria-hidden=\"true\" />\r\n </span>\r\n </>\r\n );\r\n }\r\n return (\r\n <>\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const { style: externalStyle, ...otherRest } = rest as Record<string, unknown> & { style?: React.CSSProperties };\r\n\r\n const baseProps = {\r\n ref,\r\n id: componentId,\r\n className: buttonClasses,\r\n 'aria-label': getAriaLabel(),\r\n 'aria-disabled': disabled,\r\n 'aria-busy': loading || undefined,\r\n tabIndex: disabled || loading ? -1 : 0,\r\n onClick: handleClick,\r\n ...otherRest,\r\n style: {\r\n '--giro-scale': scale,\r\n ...externalStyle,\r\n } as React.CSSProperties,\r\n };\r\n\r\n const getNavigationProps = () => {\r\n if (href) {\r\n if (disabled || loading) {\r\n return { role: 'link' };\r\n }\r\n return {\r\n href,\r\n target: external || target === '_blank' ? '_blank' : target,\r\n rel: external || target === '_blank' ? 'noopener noreferrer' : rel,\r\n };\r\n }\r\n\r\n if (to) {\r\n if (Component !== 'a') {\r\n return {\r\n to: disabled ? undefined : to,\r\n };\r\n }\r\n return {\r\n href: disabled ? undefined : to,\r\n };\r\n }\r\n if (Component === 'button') {\r\n return {\r\n type,\r\n disabled,\r\n };\r\n }\r\n\r\n return {};\r\n };\r\n\r\n if (tooltipText && !loading) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return (\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n );\r\n});\r\n\r\nButton.displayName = 'Button';\r\nexport default Button;","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","/**\n * Time zone name format.\n */\n\n/**\n * The function returns the time zone name for the given date in the specified\n * time zone.\n *\n * It uses the `Intl.DateTimeFormat` API and by default outputs the time zone\n * name in a long format, e.g. \"Pacific Standard Time\" or\n * \"Singapore Standard Time\".\n *\n * It is possible to specify the format as the third argument using one of the following options\n *\n * - \"short\": e.g. \"EDT\" or \"GMT+8\".\n * - \"long\": e.g. \"Eastern Daylight Time\".\n * - \"shortGeneric\": e.g. \"ET\" or \"Singapore Time\".\n * - \"longGeneric\": e.g. \"Eastern Time\" or \"Singapore Standard Time\".\n *\n * These options correspond to TR35 tokens `z..zzz`, `zzzz`, `v`, and `vvvv` respectively: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date object to get the time zone name for\n * @param format - Optional format of the time zone name. Defaults to \"long\". Can be \"short\", \"long\", \"shortGeneric\", or \"longGeneric\".\n *\n * @returns Time zone name (e.g. \"Singapore Standard Time\")\n */\nexport function tzName(timeZone, date, format = \"long\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n // Enforces engine to render the time. Without the option JavaScriptCore omits it.\n hour: \"numeric\",\n timeZone: timeZone,\n timeZoneName: format\n }).format(date).split(/\\s/g) // Format.JS uses non-breaking spaces\n .slice(2) // Skip the hour and AM/PM parts\n .join(\" \");\n}","const offsetFormatCache = {};\nconst offsetCache = {};\n\n/**\n * The function returns UTC offset in minutes for the given date in specified\n * time zone.\n *\n * Unlike `Date.prototype.getTimezoneOffset`, this function returns the value\n * mirrored to the sign of the offset in the time zone. For Asia/Singapore\n * (UTC+8), `tzOffset` returns `480`, while `getTimezoneOffset` returns `-480`.\n *\n * It uses `Intl.DateTimeFormat` internally to access otherwise unavailable\n * runtime's time zone data, and falls back to basic manual parsing if Intl API\n * is not supported (e.g., older Node.js versions, React Native's Hermes, etc.).\n *\n * @param timeZone - Time zone name (IANA or UTC offset).\n * @param date - Date to check the offset for.\n *\n * @returns UTC offset in minutes (e.g., `480` for date in UTC+8).\n */\nexport function tzOffset(timeZone, date) {\n try {\n // Create `Intl.DateTimeFormat` with `\"longOffset\"` that gives us consistent\n // date strings like `\"5/19/2026, GMT-08:00\"`.\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n\n // Get `\"-08:00\"`.\n const offsetStr = format(date).split(\"GMT\")[1];\n\n // Avoid parsing the same offset string.\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n\n // Calculate offset from `[\"-08\", \"00\"]` and cache it.\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support\n // `±HH:MM/±HHMM/±HH`. See: https://github.com/nodejs/node/issues/53419.\n if (timeZone in offsetCache) return offsetCache[timeZone];\n const captures = timeZone?.match(offsetRe);\n if (captures) return calcOffset(timeZone, captures.slice(1));\n return NaN;\n }\n}\nconst offsetRe = /([+-]\\d\\d):?(\\d\\d)?/;\nfunction calcOffset(cacheStr, values) {\n const hours = +(values[0] || 0);\n const minutes = +(values[1] || 0);\n // Convert seconds to minutes by dividing by 60 to keep the function return in minutes.\n const seconds = +(values[2] || 0) / 60;\n return offsetCache[cacheStr] = hours * 60 + minutes > 0 ? hours * 60 + minutes + seconds : hours * 60 - minutes - seconds;\n}","import { tzOffset } from \"../tzOffset/index.js\";\n\n// TZDate stores time in two `Date` objects because native `Date` can only\n// expose local fields in the system time zone.\n//\n// The external date (`this`) stores the real timestamp. It is the value used by\n// `getTime()`, `valueOf()`, UTC getters/setters, comparisons, and arithmetic.\n// Its local getters are not used for target-zone fields because they would read\n// the timestamp through the system time zone.\n//\n// The internal date (`this.internal`) stores the target-zone wall-clock fields.\n// We read and write those fields through UTC getters/setters so the host system\n// time zone cannot reinterpret them. For example, `getHours()` returns\n// `internal.getUTCHours()`, and `setHours()` writes `internal.setUTCHours(...)`.\n//\n// Syncing moves data between the two representations:\n//\n// - `syncToInternal` starts from the external timestamp and rebuilds internal\n// wall-clock fields using `this.timeZone` offset.\n//\n// - `syncFromInternal` starts from internal wall-clock fields, writes them into\n// the external date, then adjusts that timestamp for the system/target offset\n// difference and DST edge cases.\n//\n// The public TZDate value is the combination of both: external is the instant,\n// internal is the wall-clock view of that instant in `this.timeZone`.\n\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n\n // Time zone string is always the last string argument unless date string\n // is passed (as a single argument).\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n\n // Validate the time zone by checking its offset.\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n // No arguments passed: use current time\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n // Timestamp passed: use it as is\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n // `Date` string passed: parse it as external date\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n // `Date` passed: use its timestamp\n this.setTime(+args[0]);\n } else {\n // `Date` values passed:\n\n // Set it as external date.\n this.setTime(+new Date(...args));\n\n // Adjust internal and external dates considering that we might have\n // landed on the DST hour.\n adjustToSystemTZ(this, args);\n }\n }\n }\n static tz(tz, ...args) {\n return args.length ? new TZDateMini(...args, tz) : new TZDateMini(Date.now(), tz);\n }\n\n //#endregion\n\n //#region time zone\n\n withTimeZone(timeZone) {\n return new TZDateMini(+this, timeZone);\n }\n getTimezoneOffset() {\n const offset = -tzOffset(this.timeZone, this);\n // Remove the seconds offset using `Math.floor` for negative UTC time zones\n // and `Math.ceil` for positive UTC time zones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(_time) {\n // Use the native `setTime` to the external date time.\n Date.prototype.setTime.apply(this, arguments);\n\n // Then apply it to the internal date adjusting to the timezone offset.\n syncToInternal(this);\n return +this;\n }\n\n //#endregion\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDateMini(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}\n\n// Assign getters and setters\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n if (!re.test(method)) return;\n const utcMethod = method.replace(re, \"$1UTC\");\n // Filter out methods without UTC counterparts\n if (!TZDateMini.prototype[utcMethod]) return;\n if (method.startsWith(\"get\")) {\n // Delegate to internal date's UTC method\n TZDateMini.prototype[method] = function () {\n return this.internal[utcMethod]();\n };\n } else {\n // Assign regular setter\n TZDateMini.prototype[method] = function () {\n Date.prototype[utcMethod].apply(this.internal, arguments);\n syncFromInternal(this);\n return +this;\n };\n\n // Assign UTC setter\n TZDateMini.prototype[utcMethod] = function () {\n Date.prototype[utcMethod].apply(this, arguments);\n syncToInternal(this);\n return +this;\n };\n }\n});\n\n/**\n * @internal\n * Function syncs time to internal date, applying the current time zone offset.\n *\n * @param {Date} date - `Date` to sync\n */\nfunction syncToInternal(date) {\n // Start internal from the same real timestamp as external.\n date.internal.setTime(+date);\n\n // Shift internal by the target offset so its UTC fields become the target-zone\n // wall-clock fields for the external timestamp.\n //\n // o internal UTC fields: 2024-02-11 00:00\n // |\n // | + Asia/Singapore offset (+08:00)\n // v\n // x internal UTC fields: 2024-02-11 08:00\n //\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() -\n // Round after converting minutes to seconds to avoid fractional offset\n // precision errors from historical offsets.\n Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * @internal\n * Function syncs internal wall-clock fields into the external date.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // Copy target-zone wall-clock fields from internal into external using native\n // local setters. At this point external holds the right field values but they\n // are interpreted in the system time zone; `adjustToSystemTZ` fixes that.\n Date.prototype.setFullYear.call(date, date.internal.getUTCFullYear(), date.internal.getUTCMonth(), date.internal.getUTCDate());\n Date.prototype.setHours.call(date, date.internal.getUTCHours(), date.internal.getUTCMinutes(), date.internal.getUTCSeconds(), date.internal.getUTCMilliseconds());\n\n // Now we have to adjust the date to the system time zone\n adjustToSystemTZ(date);\n}\n\n/**\n * @internal\n * Function adjusts the date to the system time zone. It uses the time zone\n * differences to calculate the offset and adjust the date.\n *\n * We use it when constructing `TZDate` and syncing the external date from\n * the internal one.\n *\n * @param {TZDate} date - `TZDate` to adjust.\n */\nfunction adjustToSystemTZ(date, constructorArgs) {\n // Keep the intended target-zone wall-clock value before native Date/system\n // time zone normalization can move it. Later corrections compare against this\n // value to distinguish intended DST normalization from accidental drift.\n const expectedInternalTime = Array.isArray(constructorArgs) ? constructorArgsToInternalTime(constructorArgs) : +date.internal;\n //#region Initial offset calculation\n\n // Current target time zone offset at the native timestamp. It may include\n // historical offset seconds, which we preserve for the seconds adjustment.\n const offsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset used by minute-based timestamp adjustments.\n // Historical offsets can contain seconds, so we strip the fractional minute\n // here and handle remaining seconds in the seconds adjustment below.\n const offset = offsetWithSeconds > 0 ? Math.floor(offsetWithSeconds) : Math.ceil(offsetWithSeconds);\n\n //#endregion\n\n //#region System DST adjustment\n\n // Native `Date` may normalize the requested wall time when the system time\n // zone skips that hour for DST.\n //\n // We compare the system wall-clock hour represented by the external date with\n // the wall-clock hour stored in the internal date. If they differ, the next\n // offset-diff calculation may need the previous system offset, because the\n // current external timestamp is already after the system DST jump.\n\n // Previous-hour reference used to detect whether the system offset changed\n // immediately before the current native timestamp.\n const prevHour = new Date(+date);\n\n // Use UTC math so subtracting one hour cannot be normalized back into the\n // same missing local DST hour.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Current system offset at the native timestamp.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n\n // System offset one real hour before the native timestamp.\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n\n // Non-zero when the system offset changed between `prevHour` and `date`.\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n\n // System offset to use in the later system-target offset difference.\n // Defaults to the current system offset and switches to the previous offset\n // only when native `Date` normalized a missing system wall time.\n let systemOffsetForDiff = systemOffset;\n if (systemDSTChange && systemOffset !== offset) {\n // System wall-clock hour represented by the current external timestamp.\n const systemHour = Date.prototype.getHours.apply(date);\n\n // Target wall-clock hour currently stored in internal fields. Constructors\n // get it from arguments because internal may have already been synced from\n // the normalized external timestamp; setters get it directly from internal.\n const expectedHour = Array.isArray(constructorArgs) ? constructorArgs[3] || 0 : date.internal.getUTCHours();\n if (systemHour !== expectedHour) {\n // Check whether using the current system offset would keep the target\n // offset unchanged. If so, the only DST jump we crossed is the system\n // one, so the diff should use the pre-DST system offset.\n const testDate = new Date(+date);\n\n // Difference that the later offset-diff step would apply with the\n // current system offset.\n const testOffsetDiff = systemOffset - offset;\n if (testOffsetDiff) testDate.setUTCMinutes(testDate.getUTCMinutes() + testOffsetDiff);\n\n // Target offset after applying the current system offset difference.\n const testOffsetWithSeconds = tzOffset(date.timeZone, testDate);\n\n // Target offset without historical seconds, matching `offset`.\n const testOffset = testOffsetWithSeconds > 0 ? Math.floor(testOffsetWithSeconds) : Math.ceil(testOffsetWithSeconds);\n if (testOffset === offset) systemOffsetForDiff = prevHourSystemOffset;\n }\n }\n\n //#endregion\n\n //#region System diff adjustment\n\n // Move external from the system-zone interpretation of internal fields toward\n // the timestamp that represents those fields in the target time zone.\n //\n // At this point native `Date` has treated the internal wall-clock fields as if\n // they belonged to the system zone. The system-target offset difference moves\n // external by the distance between that system interpretation and the target\n // interpretation.\n\n // Difference between the system offset selected above and the minute-precision\n // target offset. Positive values move external forward; negative values move\n // it backward.\n const offsetDiff = systemOffsetForDiff - offset;\n if (offsetDiff)\n // Apply the system-target minute difference to external. Internal is\n // rebuilt from the final external timestamp after all adjustments are\n // complete.\n //\n // o external as target: 2023-01-31 23:00\n // |\n // | add `offsetDiff`\n // v\n // x external as target: 2023-02-01 12:00\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds system diff adjustment\n\n // Historical time zone offsets can include seconds, but the minute-based\n // offset adjustment above intentionally used minute precision.\n //\n // This adjustment applies the remaining seconds difference to external. For\n // example, historical Singapore used UTC+06:55:25, while ISO formatting shows\n // only `+06:55`; without the seconds correction, setter paths keep the wrong\n // wall-clock seconds.\n\n // Clone external as a native `Date` so we can inspect how the system time zone\n // represents the same timestamp.\n const systemDate = new Date(+date);\n\n // Zero UTC seconds before reading system seconds. Any remaining local seconds\n // then come from the system time zone offset rather than from the timestamp's\n // own seconds value.\n systemDate.setUTCSeconds(0);\n\n // Seconds part contributed by the system time zone offset. Negative offsets\n // need wrapping because `Date#getSeconds()` returns values in the 0..59 range.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Seconds part contributed by the target time zone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset)\n // Apply the remaining second-level system-target difference to external.\n //\n // o external as Asia/Singapore: 1900-01-01 00:00:56\n // |\n // | + `secondsOffset`\n // | + `systemSecondsOffset`\n // v\n // x external as Asia/Singapore: 1900-01-01 00:00:31\n //\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n // The first system-target offset move can cross a target-zone DST boundary.\n //\n // When that happens, the target offset at the new external timestamp differs\n // from the target offset used for `offsetDiff`. We compare the original move\n // with the move that would be calculated at the new timestamp, then apply the\n // difference to external.\n\n // Target offset at the current external timestamp, including historical\n // seconds for the later seconds adjustment.\n const postOffsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset at the current external timestamp.\n const postOffset = postOffsetWithSeconds > 0 ? Math.floor(postOffsetWithSeconds) : Math.ceil(postOffsetWithSeconds);\n\n // System offset at the current external timestamp.\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n\n // System-target offset difference at the current external timestamp.\n const postOffsetDiff = postSystemOffset - postOffset;\n\n // Whether the target offset changed after the first offset move.\n const offsetChanged = postOffset !== offset;\n\n // Difference between the current offset move and the move already applied.\n const postDiff = postOffsetDiff - offsetDiff;\n\n // If the first offset move already normalized a target DST gap forward, the\n // generic post-DST correction below would undo that valid normalization. This\n // happens, for example, with America/New_York 02:00 during spring-forward when\n // the system zone also changes offset around the same instant.\n const targetDSTShift = postOffset - offset;\n\n // Candidate timestamp that would represent the requested wall-clock time with\n // the post-transition target offset. If it still does not round-trip to the\n // requested wall-clock fields, the requested time is inside a target DST gap.\n const postOffsetCandidate = expectedInternalTime - postOffset * 60 * 1000;\n\n // Only positive target offset shifts are spring-forward gaps. Negative shifts\n // are fall-back overlaps and still need the regular post-adjustment path.\n const normalizedTargetDSTGap = targetDSTShift > 0 && targetInternalTime(date) - expectedInternalTime === targetDSTShift * 60 * 1000 && targetInternalTime(date, postOffsetCandidate) !== expectedInternalTime;\n if (offsetChanged && postDiff && !normalizedTargetDSTGap) {\n // Apply the target-DST correction to external. In the backward-crossing case\n // shown here, this lands on an intermediate value that needs `offsetChange`\n // below.\n //\n // o external as America/New_York: 2023-03-12 03:00 EDT\n // |\n // | + `postDiff`\n // v\n // x external as America/New_York: 2023-03-12 01:00 EST\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Target offset after applying `postDiff`. It may change again if the\n // correction itself crosses a target-zone DST boundary.\n const newOffsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset after applying `postDiff`.\n const newOffset = newOffsetWithSeconds > 0 ? Math.floor(newOffsetWithSeconds) : Math.ceil(newOffsetWithSeconds);\n\n // Offset change caused by the `postDiff` move itself.\n const offsetChange = postOffset - newOffset;\n\n // If the correction moved external backward across the target DST boundary,\n // apply the boundary change so external lands on the valid target-zone\n // timestamp. Forward crossings are already normalized by native Date, and\n // applying this correction there would undo the valid post-DST result.\n if (offsetChange && postDiff < 0) {\n // Apply the second target-DST correction to external.\n //\n // o external as America/New_York: 2023-03-12 01:00 EST\n // |\n // | + `offsetChange`\n // v\n // x external as America/New_York: 2023-03-12 03:00 EDT\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\n\n // Rebuild internal wall-clock fields from the final external timestamp.\n syncToInternal(date);\n\n // Native Date can normalize historical system offsets with minute and second\n // precision before we adjust to the target time zone. Correct only small\n // historical drift so DST gap normalization (usually one hour) remains intact.\n const expectedTime = constructorArgs ? expectedInternalTime : expectedInternalTime + secondsOffset * 1000;\n const drift = expectedTime - +date.internal;\n if (drift && Math.abs(drift) < 30 * 60 * 1000) {\n Date.prototype.setTime.call(date, +date + drift);\n syncToInternal(date);\n }\n}\nfunction constructorArgsToInternalTime(args) {\n // Mirror Date's date-value constructor defaults while preserving explicit\n // `undefined` behavior. Missing month/day default, but passed `undefined`\n // should remain invalid just like `Date.UTC(year, undefined, ...)`.\n return Date.UTC(args[0], args.length > 1 ? args[1] : 0, args.length > 2 ? args[2] : 1, ...args.slice(3));\n}\nfunction targetInternalTime(date, time) {\n // Compute the target-zone wall-clock representation for a timestamp without\n // mutating the TZDate. This mirrors syncToInternal for temporary checks.\n const internal = new Date(time ?? +date);\n internal.setUTCSeconds(internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, internal) * 60));\n return +internal;\n}","import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}","const FIVE_WEEKS = 5;\nconst FOUR_WEEKS = 4;\n/**\n * Returns the number of weeks to display in the broadcast calendar for a given\n * month.\n *\n * The broadcast calendar may have either 4 or 5 weeks in a month, depending on\n * the start and end dates of the broadcast weeks.\n *\n * @since 9.4.0\n * @param month The month for which to calculate the number of weeks.\n * @param dateLib The date library to use for date manipulation.\n * @returns The number of weeks in the broadcast calendar (4 or 5).\n */\nexport function getBroadcastWeeksInMonth(month, dateLib) {\n // Get the first day of the month\n const firstDayOfMonth = dateLib.startOfMonth(month);\n // Get the day of the week for the first day of the month (1-7, where 1 is Monday)\n const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;\n const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);\n const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);\n const numberOfWeeks = dateLib.getMonth(month) === dateLib.getMonth(lastDateOfLastWeek)\n ? FIVE_WEEKS\n : FOUR_WEEKS;\n return numberOfWeeks;\n}\n","/**\n * Returns the start date of the week in the broadcast calendar.\n *\n * The broadcast week starts on Monday. If the first day of the month is not a\n * Monday, this function calculates the previous Monday as the start of the\n * broadcast week.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the start of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The start date of the broadcast week.\n */\nexport function startOfBroadcastWeek(date, dateLib) {\n const firstOfMonth = dateLib.startOfMonth(date);\n const dayOfWeek = firstOfMonth.getDay();\n if (dayOfWeek === 1) {\n return firstOfMonth;\n }\n else if (dayOfWeek === 0) {\n return dateLib.addDays(firstOfMonth, -1 * 6);\n }\n else {\n return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));\n }\n}\n","import { getBroadcastWeeksInMonth } from \"./getBroadcastWeeksInMonth.js\";\nimport { startOfBroadcastWeek } from \"./startOfBroadcastWeek.js\";\n/**\n * Returns the end date of the week in the broadcast calendar.\n *\n * The broadcast week ends on the last day of the last broadcast week for the\n * given date.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the end of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The end date of the broadcast week.\n */\nexport function endOfBroadcastWeek(date, dateLib) {\n const startDate = startOfBroadcastWeek(date, dateLib);\n const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);\n const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);\n return endDate;\n}\n","import { format } from \"date-fns\";\nimport { enUS as dateFnsEnUS } from \"date-fns/locale\";\n/** English (United States) locale extended with DayPicker-specific translations. */\nexport const enUS = {\n ...dateFnsEnUS,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n },\n labelMonthDropdown: \"Choose the Month\",\n labelNext: \"Go to the Next Month\",\n labelPrevious: \"Go to the Previous Month\",\n labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,\n labelYearDropdown: \"Choose the Year\",\n labelGrid: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"LLLL yyyy\");\n },\n labelGridcell: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n },\n labelNav: \"Navigation bar\",\n labelWeekNumberHeader: \"Week Number\",\n labelWeekday: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"cccc\");\n },\n },\n};\n","import { TZDate } from \"@date-fns/tz\";\nimport { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, eachYearOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isDate, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear, } from \"date-fns\";\nimport { endOfBroadcastWeek } from \"../helpers/endOfBroadcastWeek.js\";\nimport { startOfBroadcastWeek } from \"../helpers/startOfBroadcastWeek.js\";\nimport { enUS } from \"../locale/en-US.js\";\n/**\n * A wrapper class around [date-fns](http://date-fns.org) that provides utility\n * methods for date manipulation and formatting.\n *\n * @since 9.2.0\n * @example\n * const dateLib = new DateLib({ locale: es });\n * const newDate = dateLib.addDays(new Date(), 5);\n */\nexport class DateLib {\n /**\n * Creates an instance of `DateLib`.\n *\n * @param options Configuration options for the date library.\n * @param overrides Custom overrides for the date library functions.\n */\n constructor(options, overrides) {\n /**\n * Reference to the built-in Date constructor.\n *\n * @deprecated Use `newDate()` or `today()`.\n */\n this.Date = Date;\n /**\n * Creates a new `Date` object representing today's date.\n *\n * @since 9.5.0\n * @returns A `Date` object for today's date.\n */\n this.today = () => {\n if (this.overrides?.today) {\n return this.overrides.today();\n }\n if (this.options.timeZone) {\n return TZDate.tz(this.options.timeZone);\n }\n return new this.Date();\n };\n /**\n * Creates a new `Date` object with the specified year, month, and day.\n *\n * @since 9.5.0\n * @param year The year.\n * @param monthIndex The month (0-11).\n * @param date The day of the month.\n * @returns A new `Date` object.\n */\n this.newDate = (year, monthIndex, date) => {\n if (this.overrides?.newDate) {\n return this.overrides.newDate(year, monthIndex, date);\n }\n if (this.options.timeZone) {\n return new TZDate(year, monthIndex, date, this.options.timeZone);\n }\n return new Date(year, monthIndex, date);\n };\n /**\n * Adds the specified number of days to the given date.\n *\n * @param date The date to add days to.\n * @param amount The number of days to add.\n * @returns The new date with the days added.\n */\n this.addDays = (date, amount) => {\n return this.overrides?.addDays\n ? this.overrides.addDays(date, amount)\n : addDays(date, amount);\n };\n /**\n * Adds the specified number of months to the given date.\n *\n * @param date The date to add months to.\n * @param amount The number of months to add.\n * @returns The new date with the months added.\n */\n this.addMonths = (date, amount) => {\n return this.overrides?.addMonths\n ? this.overrides.addMonths(date, amount)\n : addMonths(date, amount);\n };\n /**\n * Adds the specified number of weeks to the given date.\n *\n * @param date The date to add weeks to.\n * @param amount The number of weeks to add.\n * @returns The new date with the weeks added.\n */\n this.addWeeks = (date, amount) => {\n return this.overrides?.addWeeks\n ? this.overrides.addWeeks(date, amount)\n : addWeeks(date, amount);\n };\n /**\n * Adds the specified number of years to the given date.\n *\n * @param date The date to add years to.\n * @param amount The number of years to add.\n * @returns The new date with the years added.\n */\n this.addYears = (date, amount) => {\n return this.overrides?.addYears\n ? this.overrides.addYears(date, amount)\n : addYears(date, amount);\n };\n /**\n * Returns the number of calendar days between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar days between the dates.\n */\n this.differenceInCalendarDays = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarDays\n ? this.overrides.differenceInCalendarDays(dateLeft, dateRight)\n : differenceInCalendarDays(dateLeft, dateRight);\n };\n /**\n * Returns the number of calendar months between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar months between the dates.\n */\n this.differenceInCalendarMonths = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarMonths\n ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)\n : differenceInCalendarMonths(dateLeft, dateRight);\n };\n /**\n * Returns the months between the given dates.\n *\n * @param interval The interval to get the months for.\n */\n this.eachMonthOfInterval = (interval) => {\n return this.overrides?.eachMonthOfInterval\n ? this.overrides.eachMonthOfInterval(interval)\n : eachMonthOfInterval(interval);\n };\n /**\n * Returns the years between the given dates.\n *\n * @since 9.11.1\n * @param interval The interval to get the years for.\n * @returns The array of years in the interval.\n */\n this.eachYearOfInterval = (interval) => {\n const years = this.overrides?.eachYearOfInterval\n ? this.overrides.eachYearOfInterval(interval)\n : eachYearOfInterval(interval);\n // Remove duplicates that may happen across DST transitions (e.g., \"America/Sao_Paulo\")\n // See https://github.com/date-fns/tz/issues/72\n const uniqueYears = new Set(years.map((d) => this.getYear(d)));\n if (uniqueYears.size === years.length) {\n // No duplicates, return as is\n return years;\n }\n // Rebuild the array to ensure one date per year\n const yearsArray = [];\n uniqueYears.forEach((y) => {\n yearsArray.push(new Date(y, 0, 1));\n });\n return yearsArray;\n };\n /**\n * Returns the end of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The end of the broadcast week.\n */\n this.endOfBroadcastWeek = (date) => {\n return this.overrides?.endOfBroadcastWeek\n ? this.overrides.endOfBroadcastWeek(date)\n : endOfBroadcastWeek(date, this);\n };\n /**\n * Returns the end of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The end of the ISO week.\n */\n this.endOfISOWeek = (date) => {\n return this.overrides?.endOfISOWeek\n ? this.overrides.endOfISOWeek(date)\n : endOfISOWeek(date);\n };\n /**\n * Returns the end of the month for the given date.\n *\n * @param date The original date.\n * @returns The end of the month.\n */\n this.endOfMonth = (date) => {\n return this.overrides?.endOfMonth\n ? this.overrides.endOfMonth(date)\n : endOfMonth(date);\n };\n /**\n * Returns the end of the week for the given date.\n *\n * @param date The original date.\n * @returns The end of the week.\n */\n this.endOfWeek = (date, options) => {\n return this.overrides?.endOfWeek\n ? this.overrides.endOfWeek(date, options)\n : endOfWeek(date, this.options);\n };\n /**\n * Returns the end of the year for the given date.\n *\n * @param date The original date.\n * @returns The end of the year.\n */\n this.endOfYear = (date) => {\n return this.overrides?.endOfYear\n ? this.overrides.endOfYear(date)\n : endOfYear(date);\n };\n /**\n * Formats the given date using the specified format string.\n *\n * @param date The date to format.\n * @param formatStr The format string.\n * @returns The formatted date string.\n */\n this.format = (date, formatStr, _options) => {\n const formatted = this.overrides?.format\n ? this.overrides.format(date, formatStr, this.options)\n : format(date, formatStr, this.options);\n if (this.options.numerals && this.options.numerals !== \"latn\") {\n return this.replaceDigits(formatted);\n }\n return formatted;\n };\n /**\n * Returns the ISO week number for the given date.\n *\n * @param date The date to get the ISO week number for.\n * @returns The ISO week number.\n */\n this.getISOWeek = (date) => {\n return this.overrides?.getISOWeek\n ? this.overrides.getISOWeek(date)\n : getISOWeek(date);\n };\n /**\n * Returns the month of the given date.\n *\n * @param date The date to get the month for.\n * @returns The month.\n */\n this.getMonth = (date, _options) => {\n return this.overrides?.getMonth\n ? this.overrides.getMonth(date, this.options)\n : getMonth(date, this.options);\n };\n /**\n * Returns the year of the given date.\n *\n * @param date The date to get the year for.\n * @returns The year.\n */\n this.getYear = (date, _options) => {\n return this.overrides?.getYear\n ? this.overrides.getYear(date, this.options)\n : getYear(date, this.options);\n };\n /**\n * Returns the local week number for the given date.\n *\n * @param date The date to get the week number for.\n * @returns The week number.\n */\n this.getWeek = (date, _options) => {\n return this.overrides?.getWeek\n ? this.overrides.getWeek(date, this.options)\n : getWeek(date, this.options);\n };\n /**\n * Checks if the first date is after the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is after the second date.\n */\n this.isAfter = (date, dateToCompare) => {\n return this.overrides?.isAfter\n ? this.overrides.isAfter(date, dateToCompare)\n : isAfter(date, dateToCompare);\n };\n /**\n * Checks if the first date is before the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is before the second date.\n */\n this.isBefore = (date, dateToCompare) => {\n return this.overrides?.isBefore\n ? this.overrides.isBefore(date, dateToCompare)\n : isBefore(date, dateToCompare);\n };\n /**\n * Checks if the given value is a Date object.\n *\n * @param value The value to check.\n * @returns True if the value is a Date object.\n */\n this.isDate = (value) => {\n return this.overrides?.isDate\n ? this.overrides.isDate(value)\n : isDate(value);\n };\n /**\n * Checks if the given dates are on the same day.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are on the same day.\n */\n this.isSameDay = (dateLeft, dateRight) => {\n return this.overrides?.isSameDay\n ? this.overrides.isSameDay(dateLeft, dateRight)\n : isSameDay(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same month.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same month.\n */\n this.isSameMonth = (dateLeft, dateRight) => {\n return this.overrides?.isSameMonth\n ? this.overrides.isSameMonth(dateLeft, dateRight)\n : isSameMonth(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same year.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same year.\n */\n this.isSameYear = (dateLeft, dateRight) => {\n return this.overrides?.isSameYear\n ? this.overrides.isSameYear(dateLeft, dateRight)\n : isSameYear(dateLeft, dateRight);\n };\n /**\n * Returns the latest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The latest date.\n */\n this.max = (dates) => {\n return this.overrides?.max ? this.overrides.max(dates) : max(dates);\n };\n /**\n * Returns the earliest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The earliest date.\n */\n this.min = (dates) => {\n return this.overrides?.min ? this.overrides.min(dates) : min(dates);\n };\n /**\n * Sets the month of the given date.\n *\n * @param date The date to set the month on.\n * @param month The month to set (0-11).\n * @returns The new date with the month set.\n */\n this.setMonth = (date, month) => {\n return this.overrides?.setMonth\n ? this.overrides.setMonth(date, month)\n : setMonth(date, month);\n };\n /**\n * Sets the year of the given date.\n *\n * @param date The date to set the year on.\n * @param year The year to set.\n * @returns The new date with the year set.\n */\n this.setYear = (date, year) => {\n return this.overrides?.setYear\n ? this.overrides.setYear(date, year)\n : setYear(date, year);\n };\n /**\n * Returns the start of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The start of the broadcast week.\n */\n this.startOfBroadcastWeek = (date, _dateLib) => {\n return this.overrides?.startOfBroadcastWeek\n ? this.overrides.startOfBroadcastWeek(date, this)\n : startOfBroadcastWeek(date, this);\n };\n /**\n * Returns the start of the day for the given date.\n *\n * @param date The original date.\n * @returns The start of the day.\n */\n this.startOfDay = (date) => {\n return this.overrides?.startOfDay\n ? this.overrides.startOfDay(date)\n : startOfDay(date);\n };\n /**\n * Returns the start of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The start of the ISO week.\n */\n this.startOfISOWeek = (date) => {\n return this.overrides?.startOfISOWeek\n ? this.overrides.startOfISOWeek(date)\n : startOfISOWeek(date);\n };\n /**\n * Returns the start of the month for the given date.\n *\n * @param date The original date.\n * @returns The start of the month.\n */\n this.startOfMonth = (date) => {\n return this.overrides?.startOfMonth\n ? this.overrides.startOfMonth(date)\n : startOfMonth(date);\n };\n /**\n * Returns the start of the week for the given date.\n *\n * @param date The original date.\n * @returns The start of the week.\n */\n this.startOfWeek = (date, _options) => {\n return this.overrides?.startOfWeek\n ? this.overrides.startOfWeek(date, this.options)\n : startOfWeek(date, this.options);\n };\n /**\n * Returns the start of the year for the given date.\n *\n * @param date The original date.\n * @returns The start of the year.\n */\n this.startOfYear = (date) => {\n return this.overrides?.startOfYear\n ? this.overrides.startOfYear(date)\n : startOfYear(date);\n };\n this.options = { locale: enUS, ...options };\n this.overrides = overrides;\n }\n /**\n * Generates a mapping of Arabic digits (0-9) to the target numbering system\n * digits.\n *\n * @since 9.5.0\n * @returns A record mapping Arabic digits to the target numerals.\n */\n getDigitMap() {\n const { numerals = \"latn\" } = this.options;\n // Use Intl.NumberFormat to create a formatter with the specified numbering system\n const formatter = new Intl.NumberFormat(\"en-US\", {\n numberingSystem: numerals,\n });\n // Map Arabic digits (0-9) to the target numerals\n const digitMap = {};\n for (let i = 0; i < 10; i++) {\n digitMap[i.toString()] = formatter.format(i);\n }\n return digitMap;\n }\n /**\n * Replaces Arabic digits in a string with the target numbering system digits.\n *\n * @since 9.5.0\n * @param input The string containing Arabic digits.\n * @returns The string with digits replaced.\n */\n replaceDigits(input) {\n const digitMap = this.getDigitMap();\n return input.replace(/\\d/g, (digit) => digitMap[digit] || digit);\n }\n /**\n * Formats a number using the configured numbering system.\n *\n * @since 9.5.0\n * @param value The number to format.\n * @returns The formatted number as a string.\n */\n formatNumber(value) {\n return this.replaceDigits(value.toString());\n }\n /**\n * Returns the preferred ordering for month and year labels for the current\n * locale.\n */\n getMonthYearOrder() {\n const code = this.options.locale?.code;\n if (!code) {\n return \"month-first\";\n }\n return DateLib.yearFirstLocales.has(code) ? \"year-first\" : \"month-first\";\n }\n /**\n * Formats the month/year pair respecting locale conventions.\n *\n * @since 9.11.0\n */\n formatMonthYear(date) {\n const { locale, timeZone, numerals } = this.options;\n const localeCode = locale?.code;\n if (localeCode && DateLib.yearFirstLocales.has(localeCode)) {\n try {\n const intl = new Intl.DateTimeFormat(localeCode, {\n month: \"long\",\n year: \"numeric\",\n timeZone,\n numberingSystem: numerals,\n });\n const formatted = intl.format(date);\n return formatted;\n }\n catch {\n // Fallback to date-fns formatting below.\n }\n }\n const pattern = this.getMonthYearOrder() === \"year-first\" ? \"y LLLL\" : \"LLLL y\";\n return this.format(date, pattern);\n }\n}\nDateLib.yearFirstLocales = new Set([\n \"eu\",\n \"hu\",\n \"ja\",\n \"ja-Hira\",\n \"ja-JP\",\n \"ko\",\n \"ko-KR\",\n \"lt\",\n \"lt-LT\",\n \"lv\",\n \"lv-LV\",\n \"mn\",\n \"mn-MN\",\n \"zh\",\n \"zh-CN\",\n \"zh-HK\",\n \"zh-TW\",\n]);\n/** The default locale (English). */\nexport { enUS as defaultLocale } from \"../locale/en-US.js\";\n/**\n * The default date library with English locale.\n *\n * @since 9.2.0\n */\nexport const defaultDateLib = new DateLib();\n/**\n * @ignore\n * @deprecated Use `defaultDateLib`.\n */\nexport const dateLib = defaultDateLib;\n","import { ptBR as dateFnsPtBR } from \"date-fns/locale\";\nimport { DateLib } from \"../classes/DateLib.js\";\n/** Portuguese (Brazil) locale extended with DayPicker-specific translations. */\nexport const ptBR = {\n ...dateFnsPtBR,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers.today)\n label = `Hoje, ${label}`;\n if (modifiers.selected)\n label = `${label}, selecionado`;\n return label;\n },\n labelMonthDropdown: \"Escolha o mês\",\n labelNext: \"Ir para o próximo mês\",\n labelPrevious: \"Ir para o mês anterior\",\n labelWeekNumber: (weekNumber) => `Semana ${weekNumber}`,\n labelYearDropdown: \"Escolha o ano\",\n labelGrid: (date, options, dateLib) => (dateLib ?? new DateLib(options)).formatMonthYear(date),\n labelGridcell: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Hoje, ${label}`;\n }\n return label;\n },\n labelNav: \"Barra de navegação\",\n labelWeekNumberHeader: \"Número da semana\",\n labelWeekday: (date, options, dateLib) => (dateLib ?? new DateLib(options)).format(date, \"cccc\"),\n },\n};\n","import {\r\n ChevronDown16Regular,\r\n ChevronLeft16Regular,\r\n ChevronRight16Regular,\r\n ChevronUp16Regular,\r\n} from \"@fluentui/react-icons\";\r\nimport clsx from \"clsx\";\r\nimport { createContext, useContext, useState } from \"react\";\r\nimport { DayPicker } from \"react-day-picker\";\r\nimport { enUS, ptBR } from \"react-day-picker/locale\";\r\n\r\nimport styles from \"./Calendar.module.scss\";\r\n\r\nimport type { CalendarProps } from \"./Calendar.types\";\r\nimport type { DateRange, MonthCaptionProps } from \"react-day-picker\";\r\n\r\ntype ChevronOrientation = \"up\" | \"down\" | \"left\" | \"right\";\r\n\r\nconst FLUENT_CHEVRON_MAP: Record<ChevronOrientation, React.ComponentType<{ className?: string; \"aria-hidden\"?: boolean }>> = {\r\n down: ChevronDown16Regular,\r\n up: ChevronUp16Regular,\r\n left: ChevronLeft16Regular,\r\n right: ChevronRight16Regular,\r\n};\r\n\r\nconst CustomChevron = ({\r\n orientation = \"left\",\r\n className,\r\n}: {\r\n className?: string;\r\n size?: number;\r\n disabled?: boolean;\r\n orientation?: ChevronOrientation;\r\n}) => {\r\n const Icon = FLUENT_CHEVRON_MAP[orientation];\r\n return <span className={styles.chevron_wrapper}><Icon className={className} aria-hidden /></span>;\r\n};\r\n\r\ntype GridView = \"days\" | \"months\" | \"years\";\r\n\r\ninterface GridPickerContext {\r\n view: GridView;\r\n intlLocale: string;\r\n onYearLabelClick: () => void;\r\n}\r\n\r\nconst GridCtx = createContext<GridPickerContext | null>(null);\r\n\r\nconst GridMonthCaption = ({ calendarMonth, displayIndex: _displayIndex, ...divProps }: MonthCaptionProps) => {\r\n const ctx = useContext(GridCtx);\r\n const { view, intlLocale, onYearLabelClick } = ctx ?? ({} as GridPickerContext);\r\n const date = calendarMonth.date;\r\n const monthLabel = new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(date);\r\n const yearLabel = String(date.getFullYear());\r\n\r\n return (\r\n <div {...divProps}>\r\n <span className={styles.caption_grid_label}>\r\n {monthLabel}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n aria-pressed={view === \"years\"}\r\n onClick={onYearLabelClick}\r\n >\r\n {yearLabel}\r\n {view !== \"days\" ? (\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden /></span>\r\n ) : (\r\n <span className={styles.chevron_wrapper}><ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden /></span>\r\n )}\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nconst YEARS_PER_PAGE = 20;\r\n\r\nconst Calendar = ({\r\n mode = \"single\",\r\n selected,\r\n selectedRange,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onRangeSelect,\r\n onDateChange,\r\n onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n numberOfMonths,\r\n className,\r\n style,\r\n scale = 1,\r\n id,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n}: CalendarProps) => {\r\n const animate = true;\r\n\r\n const [internalSelected, setInternalSelected] = useState<Date | undefined>(\r\n selected ?? undefined\r\n );\r\n\r\n const [internalRange, setInternalRange] = useState<DateRange | undefined>(\r\n selectedRange ?? undefined\r\n );\r\n\r\n const [internalDisplayMonth, setInternalDisplayMonth] = useState<Date>(\r\n () => currentDate ?? defaultMonth ?? new Date()\r\n );\r\n\r\n const [gridView, setGridView] = useState<GridView>(\"days\");\r\n const [yearPageStart, setYearPageStart] = useState<number>(\r\n () => (currentDate ?? defaultMonth ?? new Date()).getFullYear() - 9\r\n );\r\n\r\n const resolvedSelected =\r\n selected !== undefined\r\n ? (selected ?? undefined)\r\n : internalSelected;\r\n\r\n const resolvedRange =\r\n selectedRange !== undefined\r\n ? (selectedRange ?? undefined)\r\n : internalRange;\r\n\r\n const resolvedLocale = locale === \"pt-br\" ? ptBR : enUS;\r\n const intlLocale = locale === \"pt-br\" ? \"pt-BR\" : \"en-US\";\r\n\r\n const disabledMatchers = [\r\n ...(minDate ? [{ before: minDate }] : []),\r\n ...(maxDate ? [{ after: maxDate }] : []),\r\n ...(disabled ? (Array.isArray(disabled) ? disabled : [disabled]) : []),\r\n ];\r\n\r\n const handleSelect = (date: Date | undefined) => {\r\n setInternalSelected(date);\r\n if (date) {\r\n onDaySelect?.(date);\r\n } else {\r\n onClear?.();\r\n }\r\n };\r\n\r\n const handleRangeSelect = (range: DateRange | undefined, selectedDay: Date) => {\r\n const current = resolvedRange;\r\n\r\n // Desselecionar: apenas um dia marcado (to ausente ou to = from) e o usuário clicou nele\r\n const isSingleDaySelected =\r\n current?.from != null &&\r\n (current.to == null || current.from.getTime() === current.to.getTime());\r\n\r\n if (isSingleDaySelected && current?.from?.getTime() === selectedDay.getTime()) {\r\n setInternalRange(undefined);\r\n onRangeSelect?.(undefined);\r\n onClear?.();\r\n return;\r\n }\r\n\r\n // Range completo (from ≠ to): reinicia a seleção com o dia clicado\r\n const isComplete =\r\n current?.from != null &&\r\n current?.to != null &&\r\n current.from.getTime() !== current.to.getTime();\r\n\r\n if (isComplete) {\r\n const fresh: DateRange = { from: selectedDay, to: undefined };\r\n setInternalRange(fresh);\r\n onRangeSelect?.(fresh);\r\n return;\r\n }\r\n\r\n setInternalRange(range);\r\n onRangeSelect?.(range);\r\n };\r\n\r\n const handleMonthChange = (date: Date) => {\r\n setInternalDisplayMonth(date);\r\n onDateChange?.(date);\r\n };\r\n\r\n const resolvedDisplayMonth = currentDate ?? internalDisplayMonth;\r\n const displayedMonthIndex = resolvedDisplayMonth.getMonth();\r\n const displayedYear = resolvedDisplayMonth.getFullYear();\r\n\r\n const startYear = startMonth?.getFullYear() ?? 1900;\r\n const endYear = endMonth?.getFullYear() ?? 2100;\r\n\r\n const handleGridMonthSelect = (monthIndex: number) => {\r\n const newDate = new Date(displayedYear, monthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"days\");\r\n };\r\n\r\n const handleGridYearSelect = (year: number) => {\r\n const newDate = new Date(year, displayedMonthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"months\");\r\n };\r\n\r\n const handleYearLabelClick = () => {\r\n setYearPageStart(displayedYear - 9);\r\n setGridView((v) => (v === \"years\" ? \"days\" : \"years\"));\r\n };\r\n\r\n const clampedYearPageStart = Math.max(startYear, yearPageStart);\r\n const yearsInPage = Array.from({ length: YEARS_PER_PAGE }, (_, i) => clampedYearPageStart + i).filter(\r\n (y) => y <= endYear\r\n );\r\n\r\n const canGoPrevYears = clampedYearPageStart - YEARS_PER_PAGE >= startYear;\r\n const canGoNextYears = clampedYearPageStart + YEARS_PER_PAGE <= endYear;\r\n\r\n const monthsGrid = Array.from({ length: 12 }, (_, i) => ({\r\n index: i,\r\n label: new Intl.DateTimeFormat(intlLocale, { month: \"short\" }).format(new Date(2000, i, 1)),\r\n disabled:\r\n (startMonth != null &&\r\n new Date(displayedYear, i, 1) < new Date(startMonth.getFullYear(), startMonth.getMonth(), 1)) ||\r\n (endMonth != null &&\r\n new Date(displayedYear, i, 1) > new Date(endMonth.getFullYear(), endMonth.getMonth(), 1)),\r\n }));\r\n\r\n const gridCtxValue: GridPickerContext = {\r\n view: gridView,\r\n intlLocale,\r\n onYearLabelClick: handleYearLabelClick,\r\n };\r\n\r\n const sharedDayPickerProps = {\r\n classNames: styles,\r\n animate,\r\n startMonth,\r\n endMonth,\r\n disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined,\r\n locale: resolvedLocale,\r\n autoFocus,\r\n \"aria-label\": ariaLabel,\r\n captionLayout: \"label\" as const,\r\n numberOfMonths,\r\n month: resolvedDisplayMonth,\r\n onMonthChange: handleMonthChange,\r\n components: { MonthCaption: GridMonthCaption, Chevron: CustomChevron },\r\n };\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, className)} style={{ ...containerStyle, ...style }}>\r\n {mode === \"range\" ? (\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...(rest as object)}\r\n mode=\"range\"\r\n selected={resolvedRange}\r\n onSelect={handleRangeSelect}\r\n />\r\n ) : (\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...(rest as object)}\r\n mode=\"single\"\r\n selected={resolvedSelected}\r\n onSelect={handleSelect}\r\n />\r\n )}\r\n {gridView !== \"days\" && (\r\n <div\r\n className={`${styles.gridOverlay}${gridView === \"years\" ? ` ${styles.gridOverlayYears}` : \"\"}`}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={gridView === \"months\" ? \"Selecione o mês\" : \"Selecione o ano\"}\r\n >\r\n {gridView === \"months\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de mês\"\r\n >\r\n {displayedYear}\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </span>\r\n </button>\r\n </div>\r\n <div className={styles.gridCells}>\r\n {monthsGrid.map(({ index, label, disabled: monthDisabled }) => (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n disabled={monthDisabled}\r\n className={`${styles.gridCell}${displayedMonthIndex === index ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridMonthSelect(index)}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n {gridView === \"years\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de ano\"\r\n >\r\n {displayedYear}\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </span>\r\n </button>\r\n <div className={styles.gridOverlayYearsNav}>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoPrevYears}\r\n onClick={() => setYearPageStart((s) => s - YEARS_PER_PAGE)}\r\n aria-label=\"Anos anteriores\"\r\n >\r\n <span className={styles.chevron_wrapper}><ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden /></span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoNextYears}\r\n onClick={() => setYearPageStart((s) => s + YEARS_PER_PAGE)}\r\n aria-label=\"Próximos anos\"\r\n >\r\n <span className={styles.chevron_wrapper}><ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden /></span>\r\n </button>\r\n </div>\r\n </div>\r\n <div className={`${styles.gridCells} ${styles.gridCellsYears}`}>\r\n {yearsInPage.map((year) => (\r\n <button\r\n key={year}\r\n type=\"button\"\r\n className={`${styles.gridCell}${displayedYear === year ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridYearSelect(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </GridCtx.Provider>\r\n );\r\n};\r\n\r\nexport default Calendar;\r\n","import { Dismiss24Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Callout.module.scss';\r\n\r\nimport type { CalloutProps } from './Callout.types';\r\n\r\nconst Callout: React.FC<CalloutProps> = ({\r\n variant = 'neutral',\r\n title,\r\n text,\r\n icon,\r\n onDismiss,\r\n dismiss,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n id,\r\n style,\r\n ...rest\r\n}) => {\r\n if (process.env.NODE_ENV !== 'production' && (text === '' || (typeof text === 'string' && !text.trim()))) {\r\n console.warn('[Callout] A prop `text` não pode ser uma string vazia.');\r\n }\r\n\r\n const generatedId = useId();\r\n const titleId = `callout-title-${id || generatedId}`;\r\n const componentId = id || generatedId;\r\n\r\n const isAlert = variant === 'alert';\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n styles[variant],\r\n { [styles.withTitle]: title },\r\n className\r\n );\r\n\r\n const customStyle: React.CSSProperties = {\r\n ...style,\r\n ...(backgroundColor && { '--callout-bg': `var(--${backgroundColor})` } as React.CSSProperties),\r\n ...(textColor && { '--callout-text': `var(--${textColor})` } as React.CSSProperties),\r\n };\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={containerClass}\r\n role={isAlert ? 'alert' : 'status'}\r\n aria-live={isAlert ? 'assertive' : 'polite'}\r\n aria-labelledby={title ? titleId : undefined}\r\n style={customStyle}\r\n {...rest}\r\n >\r\n <div className={styles.content}>\r\n {icon && <span className={styles.icon} aria-hidden=\"true\">{icon}</span>}\r\n <div className={styles.subcontent}>\r\n {title && (\r\n <span id={titleId} className={styles.title}>{title}</span>\r\n )}\r\n {text && <span className={styles.text}>{text}</span>}\r\n </div>\r\n {dismiss && (\r\n <button\r\n className={styles.dismiss}\r\n onClick={onDismiss}\r\n type=\"button\"\r\n aria-label=\"Fechar\"\r\n >\r\n <Dismiss24Regular aria-hidden=\"true\" />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Callout;\r\n","import clsx from 'clsx';\r\nimport styles from './Card.module.scss'\r\n\r\nimport type { CardProps } from './Card.types';\r\n\r\nexport default function Card({ children, className, hoverable, borderRadius }: CardProps) {\r\n return (\r\n <div\r\n className={clsx(styles['card'], hoverable && styles['card--hoverable'], className)}\r\n style={borderRadius !== undefined ? { borderRadius: `var(--border-radius-${borderRadius})` } : undefined}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}","import React from 'react';\r\n\r\nexport interface CheckSmallProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckSmall: React.FC<CheckSmallProps> = ({ \r\n className = '',\r\n width = 12,\r\n height = 10,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 12 10\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <path \r\n d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" \r\n fill={fill} \r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckSmall;\r\n","import React from 'react';\r\n\r\nexport interface CheckHalfProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckHalf: React.FC<CheckHalfProps> = ({ \r\n className = '',\r\n width = 16,\r\n height = 16,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 16 16\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <g id=\"Icons/check_indeterminate_small\">\r\n <path \r\n id=\"icon\" \r\n d=\"M3 9V7H13V9H3Z\" \r\n fill={fill} \r\n />\r\n </g>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckHalf;\r\n","import clsx from 'clsx';\r\nimport { Checkbox as CheckboxRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { CheckSmall, CheckHalf } from '@/shared/icons';\r\n\r\nimport styles from './Checkbox.module.scss';\r\nimport { CheckboxProps } from './Checkbox.types';\r\n\r\n\r\nconst Checkbox: React.FC<CheckboxProps> = ({\r\n id,\r\n label,\r\n onCheckedChange,\r\n checked,\r\n disabled,\r\n className,\r\n style,\r\n scale = 1,\r\n indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n return (\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n >\r\n <div\r\n className={clsx(styles.wrapperCheckbox, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"presentation\"\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <CheckboxRadix.Root\r\n className={styles.root}\r\n checked={indeterminate ? 'indeterminate' : checked}\r\n id={componentId}\r\n onCheckedChange={onCheckedChange}\r\n disabled={disabled}\r\n data-disabled={disabled}\r\n data-indeterminate={indeterminate}\r\n aria-checked={indeterminate ? 'mixed' : checked ? 'true' : 'false'}\r\n {...rest}\r\n >\r\n <CheckboxRadix.Indicator className={styles.indicator}>\r\n {indeterminate ? <CheckHalf /> : <CheckSmall />}\r\n </CheckboxRadix.Indicator>\r\n </CheckboxRadix.Root>\r\n </div>\r\n <label\r\n className={clsx(styles.label, { [styles.disabled]: disabled })}\r\n htmlFor={componentId}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Chips.module.scss';\r\n\r\nimport type { ChipsProps } from './Chips.types';\r\n\r\nconst Chips: React.FC<ChipsProps> = ({\r\n children,\r\n leftIcon,\r\n rightIcon,\r\n variant = 'neutral',\r\n disabled = false,\r\n backgroundColor,\r\n textColor,\r\n scale = 1,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n\r\n const isInteractive = typeof rest.onClick === 'function';\r\n\r\n const chipsClass = clsx(\r\n styles.chips,\r\n styles[variant],\r\n {\r\n [styles.disabled]: disabled,\r\n [styles.interactive]: isInteractive && !disabled,\r\n [styles.hasLeftIcon]: leftIcon,\r\n [styles.hasRightIcon]: rightIcon,\r\n },\r\n className\r\n );\r\n\r\n const colorStyle = {\r\n '--giro-scale': scale,\r\n ...(!disabled && backgroundColor && { '--chips-bg': `var(--${backgroundColor})` }),\r\n ...(!disabled && textColor && { '--chips-text': `var(--${textColor})` }),\r\n ...style,\r\n } as React.CSSProperties;\r\n\r\n const { onKeyDown: userOnKeyDown, ...otherRest } = rest;\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n userOnKeyDown?.(e);\r\n if (!e.defaultPrevented && isInteractive && !disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n rest.onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={chipsClass}\r\n aria-disabled={disabled}\r\n style={colorStyle}\r\n role={isInteractive ? 'button' : undefined}\r\n tabIndex={isInteractive ? (disabled ? -1 : 0) : undefined}\r\n onKeyDown={handleKeyDown}\r\n {...otherRest}\r\n >\r\n {leftIcon && (\r\n <span className={styles.iconLeft} aria-hidden=\"true\">\r\n {leftIcon}\r\n </span>\r\n )}\r\n <span className={styles.title}>{children}</span>\r\n {rightIcon && (\r\n <span className={styles.iconRight} aria-hidden=\"true\">\r\n {rightIcon}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst MemoizedChips = React.memo(Chips);\r\nMemoizedChips.displayName = 'Chips';\r\n\r\nexport default MemoizedChips;","import clsx from 'clsx';\r\nimport styles from './Container.module.scss'\r\n\r\nimport type { ContainerProps } from './Container.types';\r\n\r\nexport default function Container({ children, className }: ContainerProps) {\r\n return (\r\n <main className={clsx(styles['container'], 'mx-auto', className)}>\r\n {children}\r\n </main>\r\n )\r\n}","import clsx from \"clsx\";\r\nimport { Popover as PopoverRadix } from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from \"./Popover.module.scss\";\r\nimport { PopoverProps } from \"./Popover.types\";\r\n\r\nconst Popover: React.FC<PopoverProps> = ({\r\n trigger,\r\n content,\r\n side = \"left\",\r\n align = \"start\", \r\n sideOffset = 8, \r\n open,\r\n onOpenChange,\r\n asAnchor = false,\r\n onOpenAutoFocus,\r\n onCloseAutoFocus,\r\n showArrow = false,\r\n className,\r\n ...rest\r\n}) => {\r\n return (\r\n <PopoverRadix.Root open={open} onOpenChange={onOpenChange} {...rest}>\r\n {asAnchor ? (\r\n <PopoverRadix.Anchor asChild>\r\n {trigger}\r\n </PopoverRadix.Anchor>\r\n ) : (\r\n <PopoverRadix.Trigger asChild>\r\n {trigger}\r\n </PopoverRadix.Trigger>\r\n )}\r\n <PopoverRadix.Portal>\r\n <PopoverRadix.Content\r\n className={clsx(styles.Content, className)}\r\n sideOffset={sideOffset}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={asAnchor ? (e) => e.preventDefault() : onOpenAutoFocus}\r\n onCloseAutoFocus={asAnchor ? (e) => e.preventDefault() : onCloseAutoFocus}\r\n onInteractOutside={asAnchor ? (e) => e.preventDefault() : undefined}\r\n >\r\n {content}\r\n {showArrow && <PopoverRadix.Arrow className={styles.Arrow} />}\r\n </PopoverRadix.Content>\r\n </PopoverRadix.Portal>\r\n </PopoverRadix.Root>\r\n );\r\n};\r\n\r\nexport default Popover;\r\n","import { useRef, useCallback } from 'react';\r\n\r\nimport type { ForwardedRef } from 'react';\r\n\r\nfunction useInputKeyboardValue<T extends HTMLElement>(externalRef: ForwardedRef<T>) {\r\n const internalRef = useRef<T>(null);\r\n\r\n const setRefs = useCallback(\r\n (node: T | null) => {\r\n internalRef.current = node;\r\n\r\n if (typeof externalRef === 'function') {\r\n externalRef(node);\r\n return;\r\n }\r\n\r\n if (externalRef) {\r\n externalRef.current = node;\r\n }\r\n },\r\n [externalRef]\r\n );\r\n\r\n return { internalRef, setRefs };\r\n}\r\n\r\nexport default useInputKeyboardValue;\r\n","import {\r\n Backspace20Regular,\r\n ChevronDown20Regular,\r\n KeyboardShift20Filled,\r\n KeyboardShift20Regular,\r\n KeyboardShiftUppercase20Regular,\r\n Emoji20Regular,\r\n ArrowImport20Regular,\r\n Spacebar20Regular,\r\n} from '@fluentui/react-icons';\r\n\r\nimport type { VirtualKeyboardType } from '../VirtualKeyboard.types';\r\nimport type { ElementType } from 'react';\r\n\r\nconst iconSlot = (key: string): string => `<span data-icon-key=\"${key}\"></span>`;\r\n\r\nexport const ICON_KEY_MAP: Record<string, ElementType> = {\r\n bksp: Backspace20Regular,\r\n shift: KeyboardShift20Regular,\r\n shiftactivated: KeyboardShift20Filled,\r\n capslock: KeyboardShiftUppercase20Regular,\r\n downkeyboard: ChevronDown20Regular,\r\n emoji: Emoji20Regular,\r\n enterNumpad: ArrowImport20Regular,\r\n spaceNumpad: Spacebar20Regular,\r\n};\r\n\r\nconst SHARED_DISPLAY: Record<string, string> = {\r\n '{capslock}': iconSlot('capslock'),\r\n '{numbers}': '123',\r\n '{abc}': 'Abc',\r\n '{alt}': '.?!',\r\n '{alt2}': '#+=',\r\n '{emoticon}': iconSlot('emoji'),\r\n '{shift}': iconSlot('shift'),\r\n '{shiftactivated}': iconSlot('shiftactivated'),\r\n '{enter}': 'Enter',\r\n '{bksp}': iconSlot('bksp'),\r\n '{altright}': '.?123',\r\n '{downkeyboard}': iconSlot('downkeyboard'),\r\n '{space}': ' ',\r\n '{default}': 'Abc',\r\n};\r\n\r\nexport const LAYOUT_DISPLAY: Partial<Record<VirtualKeyboardType, Record<string, string>>> = {\r\n default: SHARED_DISPLAY,\r\n numeric: SHARED_DISPLAY,\r\n};\r\n","import type { VirtualKeyboardType } from '../VirtualKeyboard.types';\r\n\r\nconst EMOTICON_KEY = '{emoticon}';\r\nconst DOWN_KEYBOARD_KEY = '{downkeyboard}';\r\nconst ENTER_KEY = '{enter}';\r\n\r\nconst removeKeyFromLayout = (\r\n layout: Record<string, string[]>,\r\n key: string,\r\n skipLayouts: string[] = []\r\n) =>\r\n Object.fromEntries(\r\n Object.entries(layout).map(([layoutName, rows]) => [\r\n layoutName,\r\n skipLayouts.includes(layoutName)\r\n ? rows\r\n : rows.map((row) => row.split(key).join(' ').replace(/\\s+/g, ' ').trim()),\r\n ])\r\n ) as Record<string, string[]>;\r\n\r\nconst replaceKeyWithBlank = (layout: Record<string, string[]>, key: string) =>\r\n Object.fromEntries(\r\n Object.entries(layout).map(([layoutName, rows]) => [\r\n layoutName,\r\n rows.map((row) => row.split(key).join('{//}')),\r\n ])\r\n ) as Record<string, string[]>;\r\n\r\nconst QWERTY_LOWERCASE = [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'q w e r t y u i o p',\r\n 'a s d f g h j k l ç',\r\n '{shift} z x c v b n m {bksp}',\r\n '{numbers} {alt} {space} . {enter}',\r\n];\r\n\r\nconst NUMPAD = ['1 2 3', '4 5 6', '7 8 9', '{abc} 0 {bksp}'];\r\n\r\nconst NUMPAD_WITH_ENTER = ['1 2 3 -', '4 5 6 {space}', '7 8 9 {bksp}', '{abc} 0 . {enter}'];\r\n\r\nconst SHARED_LAYOUTS = {\r\n shift: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'Q W E R T Y U I O P',\r\n 'A S D F G H J K L Ç',\r\n '{capslock} Z X C V B N M {bksp}',\r\n '{numbers} {alt} {emoticon} {space} . {enter}',\r\n ],\r\n caps: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'Q W E R T Y U I O P',\r\n 'A S D F G H J K L Ç',\r\n '{shiftactivated} Z X C V B N M {bksp}',\r\n '{numbers} {alt} {emoticon} {space} . {enter}',\r\n ],\r\n numbers: NUMPAD,\r\n alt: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n `- / : ; ( ) $ & @ \"`,\r\n '{alt2} . , ? ! ´ {bksp}',\r\n '{default} {emoticon} {space} {enter}',\r\n ],\r\n alt2: [\r\n '[ ] { } # % ^ * + =',\r\n '_ \\\\ | ~ < > ¢ £ ¥ •',\r\n `{alt} . , ? ! ' {bksp}`,\r\n '{default} {emoticon} {space} {enter}',\r\n ],\r\n emoticon: [\r\n '😀 😊 😅 😂 🙂 😉 😍 😛 😠 😎 {bksp}',\r\n `😏 😬 😭 😓 😱 😪 🙄 😴 😯 {enter}`,\r\n '😐 😇 🤣 😘 😚 😆 😡 😥 😓 {shift}',\r\n '{default} {alt} {space} {altright} {downkeyboard}',\r\n ],\r\n};\r\n\r\nexport const NATIVE_LAYOUTS: Partial<Record<VirtualKeyboardType, Record<string, string[]>>> = {\r\n default: {\r\n default: QWERTY_LOWERCASE,\r\n ...SHARED_LAYOUTS,\r\n },\r\n numeric: {\r\n default: NUMPAD,\r\n abc: QWERTY_LOWERCASE,\r\n ...SHARED_LAYOUTS,\r\n },\r\n};\r\n\r\nexport const NATIVE_LAYOUT_KEYS = new Set<VirtualKeyboardType>([\r\n 'default', 'numeric',\r\n]);\r\n\r\nexport const getNativeLayout = (\r\n type: VirtualKeyboardType,\r\n Emoji = true,\r\n showDownKeyboardButton = true,\r\n isFixed = false,\r\n showEnterKey = true,\r\n showTypeSwitchKey = true,\r\n numpadWithEnter = false\r\n): Record<string, string[]> | null => {\r\n const layout = NATIVE_LAYOUTS[type] ?? NATIVE_LAYOUTS.default ?? null;\r\n\r\n if (!layout) return null;\r\n\r\n let computedLayout = numpadWithEnter\r\n ? {\r\n ...layout,\r\n ...(type === 'numeric' ? { default: NUMPAD_WITH_ENTER } : {}),\r\n numbers: NUMPAD_WITH_ENTER,\r\n }\r\n : layout;\r\n\r\n if (!Emoji) {\r\n computedLayout = removeKeyFromLayout(computedLayout, EMOTICON_KEY);\r\n }\r\n\r\n if (!showDownKeyboardButton) {\r\n computedLayout = removeKeyFromLayout(computedLayout, DOWN_KEYBOARD_KEY);\r\n }\r\n\r\n if (!showEnterKey) {\r\n // Numpad layouts always preserve {enter}; only remove from QWERTY layouts\r\n const numpadLayouts = type === 'numeric' ? ['default', 'numbers'] : ['numbers'];\r\n computedLayout = removeKeyFromLayout(computedLayout, ENTER_KEY, numpadLayouts);\r\n }\r\n\r\n if (!showTypeSwitchKey) {\r\n computedLayout = removeKeyFromLayout(computedLayout, '{numbers}');\r\n computedLayout = replaceKeyWithBlank(computedLayout, '{abc}');\r\n }\r\n\r\n if (isFixed) {\r\n computedLayout = Object.fromEntries(\r\n Object.entries(computedLayout).map(([layoutName, rows]) => {\r\n const hasBksp = rows.some((r) => r.includes('{bksp}'));\r\n return [\r\n layoutName,\r\n rows.map((row) => {\r\n const trimmed = row.trim();\r\n if (/^[a-zA-ZçÇ]/.test(trimmed) && trimmed.endsWith('{bksp}')) {\r\n return '{//} ' + trimmed.replace(/\\s*\\{bksp\\}$/, '') + ' {//}';\r\n }\r\n if (!hasBksp && /\\{(shift|capslock|shiftactivated)\\}$/.test(trimmed)) {\r\n return trimmed.replace(/\\{(shift|capslock|shiftactivated)\\}$/, '{bksp}');\r\n }\r\n return row;\r\n }),\r\n ];\r\n })\r\n ) as Record<string, string[]>;\r\n }\r\n\r\n return computedLayout;\r\n};\r\n\r\nexport const SHIFT_TOGGLES: Partial<Record<string, string>> = {\r\n default: 'shift',\r\n abc: 'shift',\r\n shift: 'default',\r\n alt: 'default',\r\n alt2: 'alt',\r\n};\r\n","/**\r\n * Atributo usado para marcar raízes de elementos portalizados (ex.: renderizados via\r\n * `createPortal` em `document.body`) que devem ser ignorados pela lógica de\r\n * \"clique/foco fora\" de camadas dispensáveis do Radix UI (Dialog, Popover, DropdownMenu etc.).\r\n *\r\n * Componentes que renderizam conteúdo fora da árvore DOM do elemento pai (como o\r\n * `VirtualKeyboard` em modo `native`) devem adicionar este atributo à raiz portalizada\r\n * para evitar que o Radix trate cliques nesse conteúdo como \"fora\" do componente,\r\n * o que causaria fechamentos indesejados quando usados dentro de um `Modal` (ou outro\r\n * componente baseado em Radix Dialog/Popover).\r\n */\r\nexport const DISMISS_OUTSIDE_IGNORE_ATTRIBUTE = 'data-dismiss-outside-ignore';\r\n\r\n/**\r\n * Verifica se o alvo de um evento de \"interação fora\" (Radix `onInteractOutside`,\r\n * `onPointerDownOutside`, `onFocusOutside`) está dentro de um elemento marcado com\r\n * {@link DISMISS_OUTSIDE_IGNORE_ATTRIBUTE}.\r\n */\r\nexport const isDismissOutsideIgnored = (target: EventTarget | null): boolean => {\r\n if (!(target instanceof Element)) return false;\r\n return target.closest(`[${DISMISS_OUTSIDE_IGNORE_ATTRIBUTE}]`) !== null;\r\n};\r\n","import clsx from 'clsx';\r\nimport React, { createElement, useState, useCallback, useEffect, useRef, useLayoutEffect, useMemo } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport Keyboard from 'react-simple-keyboard';\r\nimport 'react-simple-keyboard/build/css/index.css';\r\n\r\nimport TextField from '../TextField';\r\nimport { LAYOUT_DISPLAY, ICON_KEY_MAP } from './components/IconDisplay';\r\nimport { NATIVE_LAYOUT_KEYS, SHIFT_TOGGLES, getNativeLayout } from './components/Variants';\r\nimport styles from './VirtualKeyboard.module.scss';\r\nimport { DISMISS_OUTSIDE_IGNORE_ATTRIBUTE } from '../../utils/dismissOutside';\r\n\r\nimport type { VirtualKeyboardProps } from './VirtualKeyboard.types';\r\n\r\nconst LONG_PRESS_DELAY_MS = 400;\r\n\r\nconst ACCENT_OPTIONS: Record<string, string[]> = {\r\n a: ['a', 'á', 'à', 'â', 'ã', 'ä', 'å', 'æ', '@', 'ª'],\r\n e: ['e', 'é', 'è', 'ê', 'ë', 'ę', 'ē', 'ė', '€'],\r\n i: ['i', 'í', 'ì', 'î', 'ï', 'ī', 'į', 'ı'],\r\n o: ['o', 'ó', 'ò', 'ô', 'õ', 'ö','ō', 'ø', 'œ', 'º'],\r\n u: ['u', 'ú', 'ù', 'û', 'ü', 'ū', 'ů', 'ű'],\r\n y: ['y', 'ý', 'ÿ', 'ŷ', 'ȳ'],\r\n n: ['n', 'ñ'],\r\n c: ['c', 'ç'],\r\n '?': ['?','¿'],\r\n '!': ['!','¡'],\r\n};\r\n\r\ntype AccentMenuState = {\r\n sourceKey: string;\r\n options: string[];\r\n top: number;\r\n left: number;\r\n};\r\n\r\n/**\r\n * Componente VirtualKeyboard — teclado virtual on-screen para entradas controladas.\r\n *\r\n * @description Baseado em `react-simple-keyboard`, oferece apenas layouts nativos (QWERTY e numérico)\r\n * seguindo o visual padrão da biblioteca.\r\n *\r\n * Possui dois modos:\r\n * - **`native`** (padrão): age como teclado nativo — aparece ao focar no campo referenciado por `targetRef` e some ao perder o foco.\r\n * - **`fixed`**: teclado sempre visível com um TextField próprio acima.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Modo fixed\r\n * <VirtualKeyboard variant=\"fixed\" type=\"default\" onChange={setValue} />\r\n * ```\r\n *\r\n * @example\r\n * ```tsx\r\n * // Modo native — aparece ao focar no input\r\n * const inputRef = useRef<HTMLInputElement>(null);\r\n * const [value, setValue] = useState('');\r\n * <input ref={inputRef} value={value} readOnly />\r\n * <VirtualKeyboard targetRef={inputRef} value={value} onChange={setValue} />\r\n * ```\r\n */\r\nconst VirtualKeyboard: React.FC<VirtualKeyboardProps> = ({\r\n variant = 'native',\r\n type = 'default',\r\n value,\r\n onChange,\r\n onKeyPress,\r\n onEnterPress,\r\n onTypeChange,\r\n maxLength,\r\n Emoji = false,\r\n className,\r\n id,\r\n placeholder = 'Digite aqui...',\r\n helperText,\r\n error,\r\n errorMessage,\r\n targetRef,\r\n textFieldScale = 1,\r\n showEnterKey = true,\r\n showTypeSwitchKey = true,\r\n numpadWithEnter = false,\r\n nativeHeight,\r\n}) => {\r\n const [internalValue, setInternalValue] = useState(value ?? '');\r\n const [layoutName, setLayoutName] = useState<string>('default');\r\n const [capsLockOn, setCapsLockOn] = useState(false);\r\n const [accentMenu, setAccentMenu] = useState<AccentMenuState | null>(null);\r\n const [accentMenuOffsetX, setAccentMenuOffsetX] = useState(0);\r\n const [activeLayout, setActiveLayout] = useState<Record<string, string[]> | null>(\r\n getNativeLayout(type, Emoji, variant === 'native', variant === 'fixed', showEnterKey, showTypeSwitchKey, numpadWithEnter)\r\n );\r\n const visualType = NATIVE_LAYOUT_KEYS.has(type) ? type : 'default';\r\n const effectiveValue = onChange !== undefined ? (value ?? '') : internalValue;\r\n const isNumpadLayout =\r\n (type === 'numeric' && layoutName === 'default') || layoutName === 'numbers';\r\n\r\n const [isOpen, setIsOpen] = useState(variant !== 'native');\r\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const scrollTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const longPressTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const suppressNextInputRef = useRef<string | null>(null);\r\n const heldAccentKeyRef = useRef<string | null>(null);\r\n const longPressTriggeredRef = useRef(false);\r\n const isKeyboardInteractingRef = useRef(false);\r\n const keyboardWrapperRef = useRef<HTMLDivElement | null>(null);\r\n const keyboardInstanceRef = useRef<{ setInput: (value: string) => void } | null>(null);\r\n const accentMenuRef = useRef<HTMLDivElement | null>(null);\r\n const accentButtonRef = useRef<HTMLButtonElement | null>(null);\r\n const valueRef = useRef(value ?? '');\r\n const [iconSlots, setIconSlots] = useState<HTMLElement[]>([]);\r\n\r\n type KeyPreviewState = { char: string; top: number; left: number } | null;\r\n const [keyPreview, setKeyPreview] = useState<KeyPreviewState>(null);\r\n const [keyPreviewOffsetX, setKeyPreviewOffsetX] = useState(0);\r\n const keyPreviewRef = useRef<HTMLDivElement | null>(null);\r\n const [containerWidth, setContainerWidth] = useState<number>(Infinity);\r\n\r\n useEffect(() => {\r\n valueRef.current = effectiveValue;\r\n }, [effectiveValue]);\r\n\r\n const clearLongPressTimeout = useCallback(() => {\r\n if (longPressTimeoutRef.current !== null) {\r\n clearTimeout(longPressTimeoutRef.current);\r\n longPressTimeoutRef.current = null;\r\n }\r\n }, []);\r\n\r\n const closeAccentMenu = useCallback(() => {\r\n setAccentMenu(null);\r\n accentButtonRef.current = null;\r\n }, []);\r\n\r\n const syncKeyboardInput = useCallback((nextValue: string) => {\r\n keyboardInstanceRef.current?.setInput(nextValue);\r\n }, []);\r\n\r\n useEffect(() => {\r\n syncKeyboardInput(effectiveValue);\r\n }, [effectiveValue, syncKeyboardInput]);\r\n\r\n useEffect(() => {\r\n onTypeChange?.(type);\r\n }, [type, onTypeChange]);\r\n\r\n const scheduleHideIfBlurred = useCallback(() => {\r\n if (variant !== 'native') return;\r\n\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n\r\n hideTimeoutRef.current = setTimeout(() => {\r\n const targetEl = targetRef?.current;\r\n const isTargetFocused = !!targetEl && document.activeElement === targetEl;\r\n\r\n if (!isTargetFocused && !isKeyboardInteractingRef.current) {\r\n setIsOpen(false);\r\n }\r\n }, 150);\r\n }, [variant, targetRef]);\r\n\r\n const scrollTargetIntoView = useCallback(() => {\r\n const targetEl = targetRef?.current;\r\n if (!targetEl) return;\r\n\r\n const keyboardHeight = keyboardWrapperRef.current?.offsetHeight ?? 0;\r\n const rect = targetEl.getBoundingClientRect();\r\n const visibleBottom = window.innerHeight - keyboardHeight - 8;\r\n\r\n if (rect.bottom > visibleBottom) {\r\n window.scrollBy({ top: rect.bottom - visibleBottom, behavior: 'smooth' });\r\n }\r\n }, [targetRef]);\r\n\r\n useEffect(() => {\r\n if (variant !== 'native') return;\r\n\r\n if (!targetRef?.current) {\r\n setIsOpen(true);\r\n return;\r\n }\r\n\r\n const el = targetRef.current;\r\n\r\n const handleFocus = () => {\r\n if (hideTimeoutRef.current !== null) clearTimeout(hideTimeoutRef.current);\r\n if (scrollTimeoutRef.current !== null) clearTimeout(scrollTimeoutRef.current);\r\n setIsOpen(true);\r\n scrollTimeoutRef.current = setTimeout(scrollTargetIntoView, 50);\r\n };\r\n\r\n const handleBlur = () => {\r\n scheduleHideIfBlurred();\r\n };\r\n\r\n el.addEventListener('focus', handleFocus);\r\n el.addEventListener('blur', handleBlur);\r\n\r\n return () => {\r\n el.removeEventListener('focus', handleFocus);\r\n el.removeEventListener('blur', handleBlur);\r\n if (hideTimeoutRef.current !== null) clearTimeout(hideTimeoutRef.current);\r\n if (scrollTimeoutRef.current !== null) clearTimeout(scrollTimeoutRef.current);\r\n };\r\n }, [variant, targetRef, scheduleHideIfBlurred, scrollTargetIntoView]);\r\n\r\n useEffect(() => {\r\n if (variant !== 'native') return;\r\n\r\n const wrapper = keyboardWrapperRef.current;\r\n if (!wrapper) return;\r\n\r\n const preventIOSBlur = (event: TouchEvent) => {\r\n const targetEl = event.target as HTMLElement;\r\n const isButton = !!targetEl.closest('.hg-button');\r\n event.preventDefault();\r\n };\r\n\r\n wrapper.addEventListener('touchstart', preventIOSBlur, { passive: false });\r\n\r\n return () => {\r\n wrapper.removeEventListener('touchstart', preventIOSBlur);\r\n };\r\n}, [variant]);\r\n\r\n useEffect(() => {\r\n setLayoutName('default');\r\n setCapsLockOn(false);\r\n\r\n setActiveLayout(getNativeLayout(type, Emoji, variant === 'native', variant === 'fixed', showEnterKey, showTypeSwitchKey, numpadWithEnter));\r\n }, [type, Emoji, variant, showEnterKey, showTypeSwitchKey, numpadWithEnter]);\r\n\r\n useEffect(() => {\r\n if (!Emoji && layoutName === 'emoticon') {\r\n setLayoutName(type === 'numeric' ? 'abc' : 'default');\r\n }\r\n }, [Emoji, layoutName, type]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n clearLongPressTimeout();\r\n };\r\n }, [clearLongPressTimeout]);\r\n\r\n useEffect(() => {\r\n if (!accentMenu) return;\r\n\r\n const handleOutsidePointerDown = (event: PointerEvent) => {\r\n if (accentMenuRef.current?.contains(event.target as Node)) return;\r\n closeAccentMenu();\r\n };\r\n\r\n const handleEscape = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n closeAccentMenu();\r\n }\r\n };\r\n\r\n document.addEventListener('pointerdown', handleOutsidePointerDown, true);\r\n document.addEventListener('keydown', handleEscape);\r\n\r\n return () => {\r\n document.removeEventListener('pointerdown', handleOutsidePointerDown, true);\r\n document.removeEventListener('keydown', handleEscape);\r\n };\r\n }, [accentMenu, closeAccentMenu]);\r\n\r\n useLayoutEffect(() => {\r\n if (!keyPreview || !keyPreviewRef.current) return;\r\n\r\n const margin = 8;\r\n const rect = keyPreviewRef.current.getBoundingClientRect();\r\n if (rect.width <= 0 || rect.height <= 0) return;\r\n\r\n const minCenter = margin + rect.width / 2;\r\n const maxCenter = window.innerWidth - margin - rect.width / 2;\r\n const clampedCenter = Math.min(maxCenter, Math.max(minCenter, keyPreview.left));\r\n const nextOffset = clampedCenter - keyPreview.left;\r\n\r\n if (Math.abs(nextOffset - keyPreviewOffsetX) > 0.5) {\r\n setKeyPreviewOffsetX(nextOffset);\r\n }\r\n }, [keyPreview, keyPreviewOffsetX]);\r\n\r\n useLayoutEffect(() => {\r\n if (!accentMenu || !accentMenuRef.current) return;\r\n\r\n const margin = 8;\r\n const rect = accentMenuRef.current.getBoundingClientRect();\r\n if (rect.width <= 0 || rect.height <= 0) return;\r\n\r\n const minCenter = margin + rect.width / 2;\r\n const maxCenter = window.innerWidth - margin - rect.width / 2;\r\n const clampedCenter = Math.min(maxCenter, Math.max(minCenter, accentMenu.left));\r\n const nextOffset = clampedCenter - accentMenu.left;\r\n\r\n if (Math.abs(nextOffset - accentMenuOffsetX) > 0.5) {\r\n setAccentMenuOffsetX(nextOffset);\r\n }\r\n }, [accentMenu, accentMenuOffsetX]);\r\n\r\n useEffect(() => {\r\n const wrapper = keyboardWrapperRef.current;\r\n if (!wrapper) return;\r\n const ro = new ResizeObserver((entries) => {\r\n setContainerWidth(entries[0]?.contentRect.width ?? Infinity);\r\n });\r\n ro.observe(wrapper);\r\n return () => ro.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!keyboardWrapperRef.current) return;\r\n\r\n const container = keyboardWrapperRef.current;\r\n\r\n const registerNewSlots = () => {\r\n const newSlots = Array.from(\r\n container.querySelectorAll<HTMLElement>('[data-icon-key]:not([data-icon-root])')\r\n );\r\n if (newSlots.length === 0) return;\r\n newSlots.forEach((s) => s.setAttribute('data-icon-root', 'true'));\r\n setIconSlots((prev) => [\r\n ...prev.filter((slot) => container.contains(slot)),\r\n ...newSlots,\r\n ]);\r\n };\r\n\r\n registerNewSlots();\r\n\r\n const observer = new MutationObserver(() => {\r\n setIconSlots((prev) => prev.filter((slot) => container.contains(slot)));\r\n registerNewSlots();\r\n });\r\n\r\n observer.observe(container, { childList: true, subtree: true });\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [variant]);\r\n\r\n useEffect(() => {\r\n closeAccentMenu();\r\n setAccentMenuOffsetX(0);\r\n suppressNextInputRef.current = null;\r\n clearLongPressTimeout();\r\n }, [layoutName, type, closeAccentMenu, clearLongPressTimeout]);\r\n\r\n useEffect(() => {\r\n const updateAccentPosition = () => {\r\n const btn = accentButtonRef.current;\r\n if (!btn) return;\r\n const rect = btn.getBoundingClientRect();\r\n setAccentMenu((prev) =>\r\n prev ? { ...prev, top: rect.top - 8, left: rect.left + rect.width / 2 } : null\r\n );\r\n };\r\n\r\n window.addEventListener('scroll', updateAccentPosition, { capture: true, passive: true });\r\n window.addEventListener('resize', updateAccentPosition);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', updateAccentPosition, true);\r\n window.removeEventListener('resize', updateAccentPosition);\r\n };\r\n }, []);\r\n\r\n const handleLongPressStart = useCallback(\r\n (event: React.PointerEvent<HTMLDivElement>) => {\r\n isKeyboardInteractingRef.current = true;\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n\r\n const keyboardWrapper = keyboardWrapperRef.current;\r\n if (!keyboardWrapper) return;\r\n\r\n const buttonEl = (event.target as HTMLElement).closest('.hg-button') as HTMLButtonElement | null;\r\n if (!buttonEl || !keyboardWrapper.contains(buttonEl)) return;\r\n\r\n event.preventDefault();\r\n\r\n const sourceKey = buttonEl.getAttribute('data-skbtn') ?? '';\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n\r\n if (sourceKey && !sourceKey.startsWith('{') && type !== 'numeric' && containerWidth <= 768) {\r\n const buttonRect = buttonEl.getBoundingClientRect();\r\n setKeyPreviewOffsetX(0);\r\n setKeyPreview({\r\n char: sourceKey,\r\n top: buttonRect.top - 4,\r\n left: buttonRect.left + buttonRect.width / 2,\r\n });\r\n }\r\n\r\n if (!sourceKey || sourceKey.startsWith('{')) return;\r\n\r\n heldAccentKeyRef.current = sourceKey;\r\n clearLongPressTimeout();\r\n\r\n const accentOptions = ACCENT_OPTIONS[sourceKey.toLowerCase()];\r\n if (!accentOptions) return;\r\n\r\n longPressTimeoutRef.current = setTimeout(() => {\r\n const buttonRect = buttonEl.getBoundingClientRect();\r\n const isUpperCaseKey = sourceKey === sourceKey.toUpperCase();\r\n longPressTriggeredRef.current = true;\r\n setKeyPreview(null);\r\n accentButtonRef.current = buttonEl;\r\n setAccentMenu({\r\n sourceKey,\r\n options: isUpperCaseKey\r\n ? accentOptions.map((option) => option.toUpperCase())\r\n : accentOptions,\r\n top: buttonRect.top - 8,\r\n left: buttonRect.left + buttonRect.width / 2,\r\n });\r\n setAccentMenuOffsetX(0);\r\n\r\n suppressNextInputRef.current = sourceKey;\r\n }, LONG_PRESS_DELAY_MS);\r\n },\r\n [clearLongPressTimeout, type, containerWidth]\r\n );\r\n\r\n const handleLongPressEnd = useCallback(() => {\r\n const heldKey = heldAccentKeyRef.current;\r\n const longPressTriggered = longPressTriggeredRef.current;\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n setKeyPreview(null);\r\n isKeyboardInteractingRef.current = false;\r\n clearLongPressTimeout();\r\n\r\n if (heldKey && !longPressTriggered) {\r\n const currentValue = valueRef.current;\r\n if (maxLength === undefined || currentValue.length < maxLength) {\r\n const nextValue = `${currentValue}${heldKey}`;\r\n if (onChange === undefined) setInternalValue(nextValue);\r\n onChange?.(nextValue);\r\n onKeyPress?.(heldKey);\r\n syncKeyboardInput(nextValue);\r\n }\r\n\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n }\r\n\r\n suppressNextInputRef.current = heldKey;\r\n }\r\n\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n scheduleHideIfBlurred();\r\n }, [\r\n clearLongPressTimeout,\r\n scheduleHideIfBlurred,\r\n maxLength,\r\n onChange,\r\n onKeyPress,\r\n syncKeyboardInput,\r\n type,\r\n layoutName,\r\n capsLockOn,\r\n ]);\r\n\r\n // Cobre toda a área do overlay do teclado (inclusive espaços/paddings fora do\r\n // `keyboardWrapperRef`, como o preview de tecla e o menu de acento portalizados),\r\n // garantindo que `isKeyboardInteractingRef` não seja perdido em cliques que não\r\n // caem exatamente sobre um `.hg-button`. Isso evita que o teclado feche sozinho\r\n // (via blur do targetRef) ao interagir com áreas adjacentes do próprio teclado.\r\n const handleOverlayPointerDown = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\r\n if (keyboardWrapperRef.current?.contains(event.target as Node)) return;\r\n\r\n isKeyboardInteractingRef.current = true;\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n }, []);\r\n\r\n const handleOverlayPointerUp = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\r\n if (keyboardWrapperRef.current?.contains(event.target as Node)) return;\r\n\r\n isKeyboardInteractingRef.current = false;\r\n scheduleHideIfBlurred();\r\n }, [scheduleHideIfBlurred]);\r\n\r\n const handleAccentSelect = useCallback(\r\n (accentedChar: string) => {\r\n const currentValue = valueRef.current;\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n if (maxLength !== undefined && currentValue.length >= maxLength) {\r\n closeAccentMenu();\r\n suppressNextInputRef.current = null;\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n const nextValue = `${currentValue}${accentedChar}`;\r\n if (onChange === undefined) setInternalValue(nextValue);\r\n onChange?.(nextValue);\r\n onKeyPress?.(accentedChar);\r\n closeAccentMenu();\r\n suppressNextInputRef.current = null;\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n }\r\n\r\n syncKeyboardInput(nextValue);\r\n },\r\n [maxLength, onChange, onKeyPress, closeAccentMenu, syncKeyboardInput, type, layoutName, capsLockOn]\r\n );\r\n\r\n const handleKeyPress = useCallback(\r\n (button: string) => {\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n if (button === '{capslock}') {\r\n setCapsLockOn((prev) => {\r\n const next = !prev;\r\n setLayoutName(next ? 'caps' : baseLayout);\r\n return next;\r\n });\r\n return;\r\n }\r\n\r\n if (\r\n button === '{shift}' ||\r\n button === '{shiftactivated}'\r\n ) {\r\n if (button === '{shiftactivated}') {\r\n setCapsLockOn(false);\r\n setLayoutName(baseLayout);\r\n return;\r\n }\r\n\r\n setLayoutName((prev) => {\r\n const next = SHIFT_TOGGLES[prev] ?? 'default';\r\n return next === 'default' ? baseLayout : next;\r\n });\r\n return;\r\n }\r\n if (button === '{numbers}') { setLayoutName('numbers'); onTypeChange?.('numeric'); return; }\r\n if (button === '{abc}') { setLayoutName(baseLayout); onTypeChange?.('default'); return; }\r\n if (button === '{alt}' || button === '{altright}') {\r\n setLayoutName((prev) => {\r\n if (prev === 'alt2') return 'alt';\r\n return prev === 'alt' ? baseLayout : 'alt';\r\n });\r\n return;\r\n }\r\n if (button === '{alt2}') { setLayoutName((prev) => (prev === 'alt2' ? 'alt' : 'alt2')); return; }\r\n if (button === '{emoticon}') {\r\n if (!Emoji) return;\r\n setLayoutName((prev) => (prev === 'emoticon' ? baseLayout : 'emoticon'));\r\n return;\r\n }\r\n if (button === '{default}') {\r\n setLayoutName(baseLayout);\r\n return;\r\n }\r\n if (button === '{downkeyboard}') {\r\n setLayoutName(baseLayout);\r\n\r\n if (variant === 'native') {\r\n closeAccentMenu();\r\n setIsOpen(false);\r\n\r\n const targetElement = targetRef?.current;\r\n if (targetElement && document.activeElement === targetElement) {\r\n targetElement.blur();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n const isHeldAccentKey = heldAccentKeyRef.current === button;\r\n\r\n if (button !== '{bksp}' && button !== '{enter}' && !isHeldAccentKey) {\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n } else if (layoutName === baseLayout && capsLockOn) {\r\n setLayoutName('shift');\r\n }\r\n }\r\n\r\n if (isHeldAccentKey) {\r\n return;\r\n }\r\n\r\n if (button === '{enter}') {\r\n onEnterPress?.();\r\n }\r\n\r\n onKeyPress?.(button);\r\n },\r\n [\r\n type,\r\n layoutName,\r\n capsLockOn,\r\n onKeyPress,\r\n onEnterPress,\r\n onTypeChange,\r\n Emoji,\r\n variant,\r\n closeAccentMenu,\r\n targetRef,\r\n ]\r\n );\r\n\r\n const handleChange = useCallback(\r\n (input: string) => {\r\n const currentValue = valueRef.current;\r\n const suppressedKey = suppressNextInputRef.current;\r\n const heldKey = heldAccentKeyRef.current;\r\n\r\n if (\r\n heldKey &&\r\n input.length >= currentValue.length + 1 &&\r\n input.startsWith(currentValue) &&\r\n [...input.slice(currentValue.length)].every((char) => char === heldKey)\r\n ) {\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n if (\r\n suppressedKey &&\r\n input.length === currentValue.length + suppressedKey.length &&\r\n input.endsWith(suppressedKey)\r\n ) {\r\n suppressNextInputRef.current = null;\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n if (maxLength !== undefined && input.length > maxLength) return;\r\n if (onChange === undefined) setInternalValue(input);\r\n onChange?.(input);\r\n },\r\n [maxLength, onChange, setInternalValue, syncKeyboardInput]\r\n );\r\n\r\n const portalSizes = useMemo(() => {\r\n if (containerWidth <= 360) return { preview: 42, option: 44, fontSize: 'var(--font-size-16)' as const };\r\n if (containerWidth <= 390) return { preview: 44, option: 44, fontSize: 'var(--font-size-18)' as const };\r\n if (containerWidth <= 480) return { preview: 46, option: 46, fontSize: 'var(--font-size-20)' as const };\r\n if (containerWidth <= 768) return { preview: 48, option: 48, fontSize: undefined };\r\n return { preview: 50, option: 50, fontSize: undefined };\r\n }, [containerWidth]);\r\n\r\n const keyboardDisplay = useMemo(() => {\r\n const baseDisplay = LAYOUT_DISPLAY[visualType];\r\n if (!baseDisplay) return baseDisplay;\r\n\r\n const display = { ...baseDisplay };\r\n\r\n if (numpadWithEnter && isNumpadLayout) {\r\n display['{enter}'] = '<span data-icon-key=\"enterNumpad\"></span>';\r\n display['{space}'] = '<span data-icon-key=\"spaceNumpad\"></span>';\r\n }\r\n\r\n if (variant === 'fixed') {\r\n display['{bksp}'] = (display['{bksp}'] ?? '').replace(/\\s*Apagar$/, '');\r\n }\r\n\r\n return display;\r\n }, [visualType, variant, numpadWithEnter, isNumpadLayout]);\r\n\r\n const keyboardEl = activeLayout ? (\r\n <div\r\n ref={keyboardWrapperRef}\r\n className={clsx(\r\n styles.keyboardWrapper,\r\n isNumpadLayout && styles.keyboardNumpadActive\r\n )}\r\n onPointerDownCapture={handleLongPressStart}\r\n onPointerUpCapture={handleLongPressEnd}\r\n onPointerLeave={handleLongPressEnd}\r\n onPointerCancelCapture={handleLongPressEnd}\r\n >\r\n <Keyboard\r\n keyboardRef={(instance) => {\r\n keyboardInstanceRef.current = instance as { setInput: (value: string) => void } | null;\r\n if (instance) {\r\n (instance as { setInput: (value: string) => void }).setInput(valueRef.current);\r\n }\r\n }}\r\n layoutName={layoutName}\r\n layout={activeLayout}\r\n theme='hg-theme-default'\r\n display={keyboardDisplay}\r\n onChange={handleChange}\r\n onKeyPress={handleKeyPress}\r\n preventMouseDownDefault\r\n disableButtonHold\r\n />\r\n\r\n {(() => {\r\n const shiftCount = { current: 0 };\r\n return iconSlots.map((slot) => {\r\n const key = slot.getAttribute('data-icon-key');\r\n const Icon = key ? ICON_KEY_MAP[key] : undefined;\r\n if (!Icon || !key) return null;\r\n if (key === 'shift') {\r\n const label = shiftCount.current === 0 ? 'left' : 'right';\r\n shiftCount.current += 1;\r\n return createPortal(createElement(Icon), slot, `icon-shift-${label}`);\r\n }\r\n return createPortal(createElement(Icon), slot, `icon-${key}`);\r\n });\r\n })()}\r\n\r\n {keyPreview && typeof document !== 'undefined' && createPortal(\r\n <div\r\n ref={keyPreviewRef}\r\n className={clsx(styles.keyPreview, className)}\r\n style={{\r\n top: keyPreview.top,\r\n left: keyPreview.left + keyPreviewOffsetX,\r\n width: portalSizes.preview,\r\n height: portalSizes.preview,\r\n ...(portalSizes.fontSize ? { fontSize: portalSizes.fontSize } : {}),\r\n }}\r\n aria-hidden\r\n >\r\n {keyPreview.char}\r\n </div>,\r\n document.body\r\n )}\r\n\r\n {accentMenu && (\r\n typeof document !== 'undefined' &&\r\n createPortal(\r\n <div\r\n ref={accentMenuRef}\r\n className={clsx(styles.accentMenu, className)}\r\n style={{\r\n top: accentMenu.top,\r\n left: accentMenu.left + accentMenuOffsetX,\r\n }}\r\n role=\"listbox\"\r\n aria-label={`Opcoes de acento para ${accentMenu.sourceKey}`}\r\n >\r\n {Array.from(\r\n { length: Math.ceil(accentMenu.options.length / 5) },\r\n (_, rowIndex) => accentMenu.options.slice(rowIndex * 5, rowIndex * 5 + 5)\r\n ).map((rowOptions, rowIndex) => (\r\n <div key={rowIndex} className={styles.accentMenuRow}>\r\n {rowOptions.map((option) => (\r\n <button\r\n key={`${accentMenu.sourceKey}-${option}`}\r\n type=\"button\"\r\n className={styles.accentOption}\r\n style={{\r\n minWidth: portalSizes.option,\r\n height: portalSizes.option,\r\n ...(portalSizes.fontSize ? { fontSize: portalSizes.fontSize } : {}),\r\n }}\r\n onPointerDown={(event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n onClick={() => handleAccentSelect(option)}\r\n >\r\n {option}\r\n </button>\r\n ))}\r\n </div>\r\n ))}\r\n </div>,\r\n document.body\r\n )\r\n )}\r\n </div>\r\n ) : null;\r\n\r\n if (variant === 'native' && typeof document !== 'undefined') {\r\n return createPortal(\r\n <div\r\n id={id}\r\n className={clsx(\r\n styles.overlay,\r\n { [styles.overlayOpen]: isOpen },\r\n styles[isNumpadLayout ? 'layout--numeric' : 'layout--default'],\r\n className\r\n )}\r\n style={nativeHeight ? ({ '--vkeyboard-native-height': nativeHeight } as React.CSSProperties) : undefined}\r\n {...{ [DISMISS_OUTSIDE_IGNORE_ATTRIBUTE]: true }}\r\n onPointerDownCapture={handleOverlayPointerDown}\r\n onPointerUpCapture={handleOverlayPointerUp}\r\n onPointerCancelCapture={handleOverlayPointerUp}\r\n >\r\n {keyboardEl}\r\n </div>,\r\n document.body\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n id={id}\r\n className={clsx(\r\n styles.container,\r\n styles[`mode--${variant}`],\r\n styles[isNumpadLayout ? 'layout--numeric' : 'layout--default'],\r\n className\r\n )}\r\n >\r\n {variant === 'fixed' && (\r\n <div className={styles.textFieldContainer}>\r\n <TextField\r\n placeholder={placeholder}\r\n value={effectiveValue}\r\n onChange={onChange}\r\n helperText={helperText}\r\n error={error}\r\n errorMessage={errorMessage}\r\n disableAutoComplete={true}\r\n maxLength={maxLength}\r\n attachedToVirtualKeyboard\r\n className={styles.textFieldWrapper}\r\n scale={textFieldScale}\r\n />\r\n </div>\r\n )}\r\n {keyboardEl}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VirtualKeyboard;\r\n\r\n","export interface ValidationParams {\r\n value: string;\r\n maxLength?: number;\r\n type?: string;\r\n errorMessage?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const validateInput = ({ \r\n value, \r\n maxLength, \r\n errorMessage, \r\n required \r\n}: ValidationParams): string => {\r\n if (required && value.trim() === '') {\r\n return errorMessage || 'Campo obrigatório.';\r\n }\r\n\r\n if (maxLength && value.length > maxLength) {\r\n return errorMessage || `Campo deve ter no máximo ${maxLength} caracteres.`;\r\n }\r\n\r\n return '';\r\n};\r\n","import * as React from 'react';\r\nimport { Label } from 'radix-ui';\r\nimport styles from './index.module.scss';\r\nimport clsx from 'clsx';\r\nimport Tooltip from '../../components/Tooltip/Tooltip';\r\nimport { Info12Regular } from '@fluentui/react-icons';\r\n\r\ninterface LabelProps {\r\n children: React.ReactNode;\r\n htmlFor: string;\r\n required?: boolean;\r\n className?: string;\r\n tooltipText?: string;\r\n tooltip?: boolean;\r\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\r\n align?: \"start\" | \"center\" | \"end\";\r\n error?: boolean;\r\n disabled?: boolean;\r\n scale?: number;\r\n}\r\n\r\nconst LabelComponent = ({\r\n children,\r\n htmlFor,\r\n required = false,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n className,\r\n error = false,\r\n disabled = false,\r\n scale = 1,\r\n}: LabelProps) => {\r\n const containerStyle = {\r\n '--giro-scale': scale,\r\n } as React.CSSProperties;\r\n\r\n const container = (\r\n <div\r\n className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}\r\n style={containerStyle}\r\n >\r\n <Label.Root\r\n className={clsx(\r\n styles.wrapperLabel,\r\n error && !disabled && styles.errorLabel,\r\n disabled && styles.disabledLabel,\r\n className\r\n )}\r\n htmlFor={htmlFor}\r\n >\r\n {children}\r\n {required && <span className={styles.requiredLabel}>*</span>}\r\n </Label.Root>\r\n {tooltip && (\r\n <span\r\n className={\r\n disabled ? styles.disabledIcon : error ?\r\n styles.errorIcon : styles.infoIcon\r\n }\r\n >\r\n <Info12Regular />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n\r\n if (tooltip) {\r\n return (\r\n <Tooltip side={side} align={align} text={tooltipText || ''}>\r\n {container}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return container;\r\n};\r\n\r\nexport default LabelComponent;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, useEffect } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\nimport styles from './TextField.module.scss';\r\nimport { validateInput } from './utils';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextFieldProps } from './TextField.types';\r\n\r\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>((\r\n {\r\n className,\r\n style,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n icon,\r\n scale = 1,\r\n onBlur,\r\n onFocus,\r\n name,\r\n virtualKeyboard,\r\n attachedToVirtualKeyboard,\r\n disableAutoComplete = false,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const normalizeValue = (val: string | number | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n \r\n const [inputValue, setInputValue] = useState(normalizeValue(value));\r\n const [inputError, setInputError] = useState('');\r\n const [isFocused, setIsFocused] = useState(false);\r\n const { internalRef: inputRef, setRefs: setInputRefs } = useInputKeyboardValue(ref);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n const newValue = normalizeValue(value);\r\n setInputValue(newValue);\r\n \r\n if (inputError) {\r\n const validationError = validateInput({\r\n value: newValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(validationError);\r\n }\r\n }, [value, inputError, type, maxLength, errorMessage, required]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setInputValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleClear = useCallback(() => {\r\n if (!disabled) {\r\n setInputValue('');\r\n onChange?.('');\r\n }\r\n }, [disabled, onChange]);\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n const error = validateInput({\r\n value: inputValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(error);\r\n setIsFocused(false);\r\n onBlur?.(e);\r\n },\r\n [inputValue, type, maxLength, errorMessage, required, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n setIsFocused(true);\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const showCustomIcon = (inputValue.trim().length === 0 || !isFocused) && icon;\r\n const showClearIcon = isFocused && inputValue.trim().length > 0;\r\n const hasError = Boolean(inputError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || inputError || helperText || '\\u00A0';\r\n const helperId = (inputError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const containerClass = clsx(styles.container, className, {\r\n [styles.attachedToVirtualKeyboard]: attachedToVirtualKeyboard,\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError,\r\n [styles.errorWithMessage]: !!errorMessage,\r\n });\r\n\r\n return (\r\n <div className={containerClass} style={{ ...containerStyle, ...style }}>\r\n {label && (\r\n <LabelComponent scale={scale}\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={!!tooltipText}\r\n tooltipText={tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <input\r\n {...rest}\r\n ref={setInputRefs}\r\n id={componentId}\r\n name={name}\r\n type={type}\r\n value={inputValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n autoComplete={(disableAutoComplete || virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'off' : rest.autoComplete}\r\n className={clsx({\r\n [styles.inputWithIcon]: showCustomIcon || showClearIcon,\r\n })}\r\n />\r\n \r\n {showCustomIcon && <span className={styles.icon}>{icon}</span>}\r\n \r\n {showClearIcon && (\r\n <button\r\n type=\"button\"\r\n className={styles.clearButton}\r\n onMouseDown={(e: React.MouseEvent) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <span className={styles.clearButtonIcon}><Dismiss16Regular /></span>\r\n </button>\r\n )}\r\n </div>\r\n\r\n {((error && errorMessage) || inputError || helperText) && ( \r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n value={inputValue}\r\n maxLength={maxLength}\r\n targetRef={inputRef}\r\n onChange={(val: string) => {\r\n if (!disabled && (!maxLength || val.length <= maxLength)) {\r\n setInputValue(val);\r\n onChange?.(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nTextField.displayName = 'TextField';\r\n\r\nexport default React.memo(TextField);\r\n","import { Locale } from '../../../types/common.types';\r\n\r\nexport function formatDate(date: Date, locale: Locale = 'pt-br'): string {\r\n if (!date || !(date instanceof Date)) {\r\n return '';\r\n }\r\n\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n if (locale === 'en-us') {\r\n return `${month}/${day}/${year}`;\r\n } else {\r\n return `${day}/${month}/${year}`;\r\n }\r\n}\r\n\r\nexport function applyDateMask(value: string, locale: Locale = 'pt-br'): string {\r\n const digitsOnly = value.replace(/\\D/g, '');\r\n \r\n const limitedDigits = digitsOnly.slice(0, 8);\r\n \r\n let masked = '';\r\n \r\n for (let i = 0; i < limitedDigits.length; i++) {\r\n if (i === 2 || i === 4) {\r\n masked += '/';\r\n }\r\n masked += limitedDigits[i];\r\n }\r\n \r\n return masked;\r\n}\r\n\r\nexport function isValidDateFormat(value: string, locale: Locale = 'pt-br'): boolean {\r\n const dateRegex = locale === 'en-us'\r\n ? /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/\r\n : /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n \r\n return dateRegex.test(value);\r\n}\r\nexport function parseDate(dateString: string, locale: Locale = 'pt-br'): Date | null {\r\n if (!dateString || typeof dateString !== 'string') {\r\n return null;\r\n }\r\n\r\n const dateRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\r\n const match = dateString.trim().match(dateRegex);\r\n \r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const [, first, second, yearStr] = match;\r\n let day: number;\r\n let month: number;\r\n const year = parseInt(yearStr, 10);\r\n\r\n if (locale === 'en-us') {\r\n month = parseInt(first, 10);\r\n day = parseInt(second, 10);\r\n } else {\r\n day = parseInt(first, 10);\r\n month = parseInt(second, 10);\r\n }\r\n\r\n if (month < 1 || month > 12 || day < 1 || day > 31) {\r\n return null;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n \r\n if (date.getFullYear() !== year || \r\n date.getMonth() !== month - 1 || \r\n date.getDate() !== day) {\r\n return null;\r\n }\r\n\r\n return date;\r\n}\r\n\r\nexport function validatePartialDate(value: string, locale: Locale = 'pt-br'): 'valid' | 'invalid' | 'incomplete' {\r\n if (value.length === 0) return 'valid';\r\n\r\n if (value.length === 2) {\r\n const n = parseInt(value, 10);\r\n const isValid = locale === 'en-us' ? n >= 1 && n <= 12 : n >= 1 && n <= 31;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 5) {\r\n const parts = value.split('/');\r\n const a = parseInt(parts[0], 10);\r\n const b = parseInt(parts[1], 10);\r\n const isValid = locale === 'en-us'\r\n ? a >= 1 && a <= 12 && b >= 1 && b <= 31\r\n : a >= 1 && a <= 31 && b >= 1 && b <= 12;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 10) {\r\n if (!isValidDateFormat(value, locale)) return 'invalid';\r\n const parsed = parseDate(value, locale);\r\n return parsed ? 'valid' : 'invalid';\r\n }\r\n\r\n return 'incomplete';\r\n}","import { Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useEffect, useRef, useCallback, useId, KeyboardEvent } from 'react';\r\n\r\nimport Calendar from '../Calendar/Calendar';\r\nimport Popover from '../Popover';\r\nimport TextField from '../TextField';\r\nimport styles from './DatePicker.module.scss';\r\nimport { formatDate, parseDate, applyDateMask, isValidDateFormat, validatePartialDate } from './Utils/DateUtils';\r\n\r\nimport type { DatePickerProps } from './DatePicker.types';\r\n\r\nconst DatePicker: React.FC<DatePickerProps> = ({\r\n locale = 'pt-br',\r\n calendarSide = 'bottom',\r\n calendarAlign = 'start',\r\n helperText,\r\n required = false,\r\n label,\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n error: externalError,\r\n minDate,\r\n maxDate,\r\n 'data-testid': testId,\r\n scale = 1,\r\n id,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const isControlled = value !== undefined;\r\n const [internalDate, setInternalDate] = useState<Date | null>(defaultValue || null);\r\n const [tempInputValue, setTempInputValue] = useState<string>('');\r\n const [isEditing, setIsEditing] = useState<boolean>(false);\r\n const [internalError, setInternalError] = useState<string>('');\r\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\r\n const [currentDate, setCurrentDate] = useState<Date>(new Date());\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n const currentSelectedDate = isControlled ? value : internalDate;\r\n const hasValidationError = !!(externalError || internalError);\r\n const displayValue = isEditing ? tempInputValue : (currentSelectedDate ? formatDate(currentSelectedDate, locale) : '');\r\n\r\n const combinedHelperText = externalError && helperText\r\n ? `${helperText} • ${externalError}`\r\n : externalError || helperText || '';\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const target = event.target as Element;\r\n const isInsideWrapper = wrapperRef.current?.contains(target as Node);\r\n const isInsideCalendar = !!target.closest?.('[data-radix-popper-content-wrapper]');\r\n if (!isInsideWrapper && !isInsideCalendar) {\r\n setShowCalendar(false);\r\n }\r\n }\r\n if (showCalendar) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n }\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showCalendar]);\r\n\r\n const handleDateChange = useCallback((newDate: Date | null) => {\r\n if (!isControlled) {\r\n setInternalDate(newDate);\r\n }\r\n onChange?.(newDate);\r\n setIsEditing(false);\r\n setTempInputValue('');\r\n setInternalError('');\r\n if (newDate) {\r\n setCurrentDate(newDate);\r\n }\r\n }, [isControlled, onChange]);\r\n\r\n const handleIconClick = () => {\r\n setShowCalendar((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (key === 'Enter') {\r\n if (showCalendar) {\r\n if (currentSelectedDate) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n if (tempInputValue.length === 10 && isValidDateFormat(tempInputValue, locale)) {\r\n const parsedDate = parseDate(tempInputValue, locale);\r\n if (parsedDate && !isNaN(parsedDate.getTime())) {\r\n handleDateChange(parsedDate);\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n } else {\r\n setShowCalendar(true);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n if (key === 'Escape') {\r\n if (showCalendar) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const controlKeys = [\r\n 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight',\r\n ];\r\n\r\n if (controlKeys.includes(key)) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const handleDaySelect = (newSelectedDate: Date) => {\r\n setShowCalendar(false);\r\n handleDateChange(newSelectedDate);\r\n };\r\n\r\n const handleFocus = () => {\r\n if (!disabled) {\r\n setShowCalendar(true);\r\n }\r\n };\r\n\r\n const handleTextFieldChange = (value: string) => {\r\n const maskedValue = applyDateMask(value, locale);\r\n\r\n setTempInputValue(maskedValue);\r\n setIsEditing(true);\r\n\r\n if (maskedValue === '') {\r\n setInternalError('');\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n return;\r\n }\r\n\r\n const result = validatePartialDate(maskedValue, locale);\r\n\r\n if (result === 'invalid') {\r\n setInternalError('invalid');\r\n if (maskedValue.length === 10) {\r\n if (!isControlled) setInternalDate(null);\r\n onChange?.(null);\r\n }\r\n } else if (result === 'valid') {\r\n setInternalError('');\r\n if (maskedValue.length === 10) {\r\n const parsedDate = parseDate(maskedValue, locale);\r\n if (parsedDate) {\r\n handleDateChange(parsedDate);\r\n setCurrentDate(parsedDate);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={wrapperRef}\r\n id={id}\r\n className={clsx(styles.datePicker, className)}\r\n style={{ ...containerStyle, ...style }}\r\n {...rest}\r\n >\r\n <Popover\r\n open={showCalendar}\r\n onOpenChange={setShowCalendar}\r\n asAnchor={true}\r\n trigger={\r\n <TextField\r\n className={styles.textfieldContainer}\r\n type=\"tel\"\r\n icon={\r\n <Calendar16Regular \r\n onClick={!disabled ? handleIconClick : undefined}\r\n className={clsx(\r\n styles.datePickerIcon,\r\n disabled && styles.datePickerIconDisabled\r\n )}\r\n />\r\n }\r\n onChange={(e: string | number) => {\r\n handleTextFieldChange(String(e));\r\n }}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus}\r\n autoComplete=\"off\"\r\n value={displayValue}\r\n helperText={!externalError ? (helperText || undefined) : undefined}\r\n errorMessage={externalError ? combinedHelperText : undefined}\r\n error={hasValidationError ? true : undefined}\r\n maxLength={10}\r\n required={required}\r\n label={label}\r\n disabled={disabled}\r\n scale={scale}\r\n id={fieldId}\r\n data-testid={testId}\r\n placeholder={locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY'}\r\n aria-label=\"Open calendar\"\r\n aria-expanded={showCalendar}\r\n aria-controls={calendarId}\r\n aria-invalid={hasValidationError}\r\n aria-describedby={externalError ? undefined : (helperText ? `${fieldId}-help` : undefined)}\r\n /> \r\n }\r\n content={\r\n <Calendar\r\n selected={currentSelectedDate}\r\n currentDate={currentDate}\r\n onDateChange={setCurrentDate}\r\n onDaySelect={handleDaySelect}\r\n locale={locale}\r\n format={locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy'}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n scale={scale}\r\n id={calendarId}\r\n onClear={() => {\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n }}\r\n /> \r\n }\r\n side={calendarSide}\r\n align={calendarAlign}\r\n sideOffset={8}\r\n /> \r\n </div>\r\n );\r\n};\r\n\r\nexport default React.memo(DatePicker);","import { AlertDialog } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\n\r\nimport styles from './Dialog.module.scss';\r\nimport { DialogProps } from \"./Dialog.types\";\r\nimport Button from '../Button/Button';\r\n\r\nconst Dialog: React.FC<DialogProps> = ({\r\n\tshow = false,\r\n title,\r\n bodyContent,\r\n textPrimaryAction,\r\n textSecondaryAction,\r\n\tonPrimaryAction,\r\n\tonSecondaryAction,\r\n\tclassName,\r\n ...rest\r\n}) => (\r\n\t<AlertDialog.Root open={show} {...rest}>\r\n\t\t<AlertDialog.Portal>\r\n\t\t\t<AlertDialog.Overlay className={styles.DialogOverlay} />\r\n\t\t\t<AlertDialog.Content className={clsx(styles.DialogContent, className)}>\r\n\t\t\t\t<AlertDialog.Title className={styles.DialogTitle}>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</AlertDialog.Title>\r\n\t\t\t\t<AlertDialog.Description asChild className={styles.DialogDescription}>\r\n\t\t\t\t\t<div>{bodyContent}</div>\r\n\t\t\t\t</AlertDialog.Description>\r\n\t\t\t\t<div className={styles.DivButtons}>\r\n\t\t\t\t\t{!!(textSecondaryAction && textSecondaryAction.trim()) && (\r\n\t\t\t\t\t\t<AlertDialog.Cancel asChild>\r\n\t\t\t\t\t\t\t<Button variant=\"outlined\" {...(onSecondaryAction && { onClick: onSecondaryAction })}>{textSecondaryAction}</Button>\r\n\t\t\t\t\t\t</AlertDialog.Cancel>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<AlertDialog.Action asChild>\r\n\t\t\t\t\t\t<Button variant=\"filled\" {...(onPrimaryAction && { onClick: onPrimaryAction })}>{textPrimaryAction}</Button>\r\n\t\t\t\t\t</AlertDialog.Action>\r\n\t\t\t\t</div>\r\n\t\t\t</AlertDialog.Content>\r\n\t\t</AlertDialog.Portal>\r\n\t</AlertDialog.Root>\r\n);\r\n\r\nexport default Dialog;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useEffect, useState, useCallback, ReactNode, ReactElement } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport styles from './Drawer.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { DrawerProps, DrawerExampleProps } from './Drawer.types';\r\n\r\nconst Drawer: React.FC<DrawerProps> = ({\r\n children,\r\n headerContent,\r\n footer,\r\n customWidth = '400px',\r\n onClose,\r\n title = 'Título',\r\n isOpen = false,\r\n onOpen,\r\n className,\r\n id,\r\n disabled = false,\r\n onOverlayClick,\r\n closeOnOverlayClick = true,\r\n closeOnEscape = true,\r\n ...rest\r\n}) => {\r\n\r\n const internalClose = useCallback((): void => {\r\n if (disabled) return;\r\n\r\n onClose();\r\n }, [onClose, disabled]);\r\n\r\n const handleOverlayClick = useCallback((): void => {\r\n if (onOverlayClick) {\r\n onOverlayClick();\r\n }\r\n \r\n if (closeOnOverlayClick && !disabled) {\r\n internalClose();\r\n }\r\n }, [onOverlayClick, closeOnOverlayClick, internalClose, disabled]);\r\n\r\n useEffect(() => {\r\n if (!isOpen || !closeOnEscape) return;\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n internalClose();\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [isOpen, internalClose, closeOnEscape]);\r\n\r\n useEffect(() => {\r\n if (isOpen && !disabled) {\r\n if (onOpen) {\r\n onOpen();\r\n }\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflow = 'unset';\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = 'unset';\r\n };\r\n }, [isOpen, onOpen, disabled]);\r\n\r\n const handleDrawerClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n event.stopPropagation();\r\n };\r\n\r\n const handleCloseClick = (event: React.MouseEvent<HTMLElement>): void => {\r\n event.stopPropagation();\r\n internalClose();\r\n };\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={clsx(styles['drawerShadow'], {\r\n [styles['drawerShadow--visible']]: isOpen,\r\n })}\r\n onClick={handleOverlayClick}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n data-testid=\"drawer-overlay\"\r\n />\r\n <div\r\n className={clsx(\r\n styles['drawerSidebar'],\r\n {\r\n [styles['drawerSidebar--open']]: isOpen,\r\n [styles['drawerSidebar--disabled']]: disabled,\r\n },\r\n className\r\n )}\r\n style={{\r\n '--drawer-custom-width': customWidth,\r\n } as React.CSSProperties}\r\n onClick={handleDrawerClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={id ? `${id}-title` : 'drawer-title'}\r\n aria-hidden={!isOpen}\r\n data-testid=\"drawer-panel\"\r\n id={id}\r\n {...rest}\r\n >\r\n \r\n <div className={styles.drawerTitleClose}>\r\n <div \r\n className={styles.drawerTitle} \r\n id={id ? `${id}-title` : 'drawer-title'}\r\n >\r\n {title}\r\n </div>\r\n \r\n {headerContent && (\r\n <div className={styles.drawerHeaderContent}>{headerContent}</div>\r\n )}\r\n\r\n <Button \r\n onClick={handleCloseClick}\r\n variant='outlined'\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size='lg'\r\n tooltipText='Fechar'\r\n />\r\n </div>\r\n <div \r\n className={styles.drawerChildren} \r\n data-testid=\"drawer-content\"\r\n >\r\n {children}\r\n </div>\r\n {footer}\r\n </div>\r\n </>,\r\n document.body\r\n );\r\n};\r\n\r\nexport default Drawer;","import {\r\n Document24Regular,\r\n Dismiss16Regular,\r\n Warning24Regular,\r\n DocumentAdd24Regular,\r\n} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useId,\r\n useRef,\r\n useState,\r\n} from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport styles from './FileUpload.module.scss';\r\n\r\nimport type { FileUploadProps } from './FileUpload.type';\r\n\r\nconst truncateFileName = (fileName: string, maxChars = 18): string => {\r\n if (fileName.length <= maxChars) return fileName;\r\n const lastDot = fileName.lastIndexOf('.');\r\n const hasExtension = lastDot > 0 && lastDot < fileName.length - 1;\r\n const baseName = hasExtension ? fileName.substring(0, lastDot) : fileName;\r\n const extension = hasExtension ? fileName.substring(lastDot) : '';\r\n const reserved = 3 + extension.length; // \"...\"\r\n const available = maxChars - reserved;\r\n if (available <= 1) {\r\n return fileName.substring(0, maxChars - 3) + '...';\r\n }\r\n return baseName.substring(0, available) + '...' + extension;\r\n}\r\n\r\nconst matchesAccept = (file: File, accept?: string): boolean => {\r\n if (!accept) return true;\r\n const types = accept.split(',').map((t) => t.trim().toLowerCase());\r\n const fileName = file.name.toLowerCase();\r\n const fileType = file.type.toLowerCase();\r\n return types.some((type) => {\r\n if (type.startsWith('.')) {\r\n return fileName.endsWith(type);\r\n }\r\n if (type.endsWith('/*')) {\r\n return fileType.startsWith(type.slice(0, -1));\r\n }\r\n return fileType === type;\r\n });\r\n}\r\n\r\nconst FileUpload = forwardRef<HTMLInputElement, FileUploadProps>(\r\n (\r\n {\r\n value,\r\n onChange,\r\n helperText,\r\n error = false,\r\n errorMessage,\r\n maxFileSize,\r\n maxFilesQuantity,\r\n disabled = false,\r\n className,\r\n id,\r\n accept,\r\n multiple = true,\r\n description = 'Clique ou arraste os arquivos aqui',\r\n descriptionErrorMessage = 'Falha ao subir um ou mais arquivos.',\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const helperId = `${componentId}-helper`;\r\n const listId = `${componentId}-list`;\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [objectUrls, setObjectUrls] = useState<Map<string, string>>(new Map());\r\n const [internalError, setInternalError] = useState<string | null>(null);\r\n\r\n const isControlled = value !== undefined;\r\n const files = isControlled ? value : internalFiles;\r\n\r\n useEffect(() => {\r\n return () => {\r\n objectUrls.forEach((url) => URL.revokeObjectURL(url));\r\n };\r\n }, [objectUrls]);\r\n\r\n const getObjectUrl = useCallback(\r\n (file: File): string => {\r\n const key = `${file.name}-${file.size}`;\r\n const existing = objectUrls.get(key);\r\n if (existing) return existing;\r\n const url = URL.createObjectURL(file);\r\n setObjectUrls((prev) => new Map(prev).set(key, url));\r\n return url;\r\n },\r\n [objectUrls]\r\n );\r\n\r\n const revokeUrl = useCallback((file: File) => {\r\n const key = `${file.name}-${file.size}`;\r\n setObjectUrls((prev) => {\r\n const next = new Map(prev);\r\n const url = next.get(key);\r\n if (url) URL.revokeObjectURL(url);\r\n next.delete(key);\r\n return next;\r\n });\r\n }, []);\r\n\r\n const processFiles = useCallback(\r\n (incoming: FileList | File[]) => {\r\n if (disabled) return;\r\n\r\n const all = Array.from(incoming);\r\n const validFiles = all.filter((file) => {\r\n if (maxFileSize && file.size > maxFileSize) return false;\r\n if (!matchesAccept(file, accept)) return false;\r\n return true;\r\n });\r\n\r\n const merged = multiple\r\n ? [...files, ...validFiles]\r\n : validFiles.slice(0, 1);\r\n\r\n const limited =\r\n maxFilesQuantity && multiple ? merged.slice(0, maxFilesQuantity) : merged;\r\n\r\n // Prioridade de erro: tipo > tamanho > quantidade\r\n const hasTypeError = all.some((file) => !matchesAccept(file, accept));\r\n const hasSizeError = all.some(\r\n (file) => maxFileSize && file.size > maxFileSize\r\n );\r\n const hasQuantityError =\r\n maxFilesQuantity && multiple && merged.length > maxFilesQuantity;\r\n\r\n if (hasTypeError && hasSizeError) {\r\n setInternalError('Um ou mais arquivos possuem tipo ou tamanho inválido.');\r\n } else if (hasTypeError) {\r\n setInternalError('Um ou mais arquivos não são do tipo aceito.');\r\n } else if (hasSizeError) {\r\n setInternalError('Um ou mais arquivos excedem o tamanho máximo permitido.');\r\n } else if (hasQuantityError) {\r\n setInternalError(`Não é possível adicionar mais de ${maxFilesQuantity} arquivo(s).`);\r\n } else {\r\n setInternalError(null);\r\n }\r\n\r\n if (!isControlled) setInternalFiles(limited);\r\n onChange?.(limited);\r\n },\r\n [disabled, files, isControlled, maxFilesQuantity, maxFileSize, multiple, onChange, accept]\r\n );\r\n\r\n const handleInputChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (e.target.files) {\r\n processFiles(e.target.files);\r\n e.target.value = '';\r\n }\r\n },\r\n [processFiles]\r\n );\r\n\r\n const handleClick = useCallback(() => {\r\n if (!disabled) inputRef.current?.click();\r\n }, [disabled]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n inputRef.current?.click();\r\n }\r\n },\r\n [disabled]\r\n );\r\n\r\n const handleDragOver = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n if (!disabled) setIsDragging(true);\r\n },\r\n [disabled]\r\n );\r\n\r\n const handleDragLeave = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n },\r\n []\r\n );\r\n\r\n const handleDrop = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n if (!disabled && e.dataTransfer.files.length > 0) {\r\n processFiles(e.dataTransfer.files);\r\n }\r\n },\r\n [disabled, processFiles]\r\n );\r\n\r\n const handleRemove = useCallback(\r\n (e: React.MouseEvent | React.KeyboardEvent, index: number) => {\r\n e.stopPropagation();\r\n const removed = files[index];\r\n revokeUrl(removed);\r\n const updated = files.filter((_, i) => i !== index);\r\n if (!isControlled) setInternalFiles(updated);\r\n onChange?.(updated);\r\n },\r\n [files, isControlled, onChange, revokeUrl]\r\n );\r\n\r\n const hasFiles = files.length > 0;\r\n const isError = error || !!errorMessage || !!internalError;\r\n const displayedHelper = isError ? errorMessage || internalError || helperText : helperText;\r\n\r\n const setRefs = useCallback(\r\n (node: HTMLInputElement | null) => {\r\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node;\r\n if (typeof ref === 'function') ref(node);\r\n else if (ref) (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\r\n },\r\n [ref]\r\n );\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={clsx(styles.container, className)}\r\n >\r\n <input\r\n ref={setRefs}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n disabled={disabled}\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n style={{ display: 'none' }}\r\n onChange={handleInputChange}\r\n {...rest}\r\n />\r\n\r\n <div\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-label={description}\r\n aria-disabled={disabled}\r\n aria-describedby={displayedHelper ? helperId : undefined}\r\n aria-controls={hasFiles ? listId : undefined}\r\n data-invalid={isError || undefined}\r\n className={clsx(\r\n styles.dropZone,\r\n isDragging && styles.dragging,\r\n isError && styles.alert,\r\n disabled && styles.disabled\r\n )}\r\n onClick={handleClick}\r\n onKeyDown={handleKeyDown}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n >\r\n {!hasFiles && !isError && (\r\n <div className={styles.emptyState} aria-hidden=\"true\">\r\n <span className={styles.uploadIcon}>\r\n <DocumentAdd24Regular />\r\n </span>\r\n <span className={styles.uploadText}>{description}</span>\r\n </div>\r\n )}\r\n\r\n {!hasFiles && isError && (\r\n <div className={styles.emptyState} aria-hidden=\"true\">\r\n <span className={styles.alertIcon}>\r\n <Warning24Regular />\r\n </span>\r\n {descriptionErrorMessage && (\r\n <span className={styles.alertText}>{descriptionErrorMessage}</span>\r\n )}\r\n </div>\r\n )}\r\n\r\n {hasFiles && (\r\n <ul\r\n id={listId}\r\n className={styles.fileList}\r\n aria-label={`${files.length} arquivo${files.length !== 1 ? 's' : ''} selecionado${files.length !== 1 ? 's' : ''}`}\r\n aria-live=\"polite\"\r\n >\r\n {files.map((file, index) => {\r\n const isImage = file.type.startsWith('image/');\r\n return (\r\n <li key={`${file.name}-${index}`} className={styles.thumb}>\r\n <div className={styles.thumbClip}>\r\n {isImage ? (\r\n <img\r\n src={getObjectUrl(file)}\r\n alt={file.name}\r\n title={file.name}\r\n className={styles.thumbImage}\r\n />\r\n ) : (\r\n <div className={styles.thumbFile} aria-hidden=\"true\" title={file.name}>\r\n <Document24Regular />\r\n <span className={styles.thumbFileName}>{truncateFileName(file.name)}</span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n className={styles.removeButton}\r\n aria-label={`Remover ${file.name}`}\r\n disabled={disabled}\r\n onClick={(e) => handleRemove(e, index)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleRemove(e, index);\r\n }\r\n }}\r\n >\r\n <Dismiss16Regular aria-hidden=\"true\" />\r\n </button>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n )}\r\n </div>\r\n\r\n {displayedHelper && (\r\n <span\r\n id={helperId}\r\n role={isError ? 'alert' : undefined}\r\n className={clsx(\r\n styles.helperText,\r\n isError && styles.errorText\r\n )}\r\n >\r\n {displayedHelper}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nFileUpload.displayName = 'FileUpload';\r\n\r\nexport default FileUpload;\r\n","import { FilterRegular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback } from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Drawer from '../../Drawer/Drawer';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterProps } from '../Filter.types';\r\n\r\nconst Combined: React.FC<FilterProps> = ({\r\n buttonText = 'Filtrar',\r\n icon,\r\n variant = 'outlined',\r\n disabled = false,\r\n className,\r\n title = 'Filtrar',\r\n drawerWidth = \"fit-content\",\r\n appliedFilterCount = 0,\r\n drawerHeaderContent,\r\n children,\r\n onApply,\r\n onClear,\r\n onOpen,\r\n onClose,\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleOpen = useCallback(() => {\r\n setIsOpen(true);\r\n onOpen?.();\r\n }, [onOpen]);\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClose]);\r\n\r\n const handleApply = useCallback(() => {\r\n onApply?.();\r\n handleClose();\r\n }, [onApply, handleClose]);\r\n\r\n const handleClear = useCallback(() => {\r\n onClear?.();\r\n }, [onClear]);\r\n\r\n return (\r\n <div className={clsx(styles.triggerWrapper, className)} id={id} {...rest}>\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={icon ?? <FilterRegular />}\r\n iconPosition=\"left\"\r\n onClick={handleOpen}\r\n >\r\n <span className={styles.triggerContent}>\r\n {buttonText}\r\n {appliedFilterCount > 0 && (\r\n <Badge badgeValue={appliedFilterCount} filterVariant />\r\n )}\r\n </span>\r\n </Button>\r\n <Drawer\r\n isOpen={isOpen}\r\n onClose={handleClose}\r\n title={title}\r\n customWidth={drawerWidth}\r\n closeOnOverlayClick\r\n closeOnEscape\r\n headerContent={drawerHeaderContent}\r\n footer={\r\n <div className={styles.combinedFooter}>\r\n <Button variant=\"outlined\" onClick={handleClear}>\r\n Limpar\r\n </Button>\r\n <Button onClick={handleApply}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n }\r\n >\r\n <div className={styles.body}>\r\n {children}\r\n </div>\r\n </Drawer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Combined;\r\n","import { Search16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useId } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\nimport styles from './Search.module.scss';\r\n\r\nimport type { SearchProps } from './Search.types';\r\n\r\nconst Search = forwardRef<HTMLInputElement, SearchProps>((\r\n {\r\n placeholder = 'Dica do que deve ser buscado',\r\n disabled = false,\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n onClear,\r\n onClick,\r\n onMouseDown,\r\n searchMode = 'instant',\r\n onSearch,\r\n id,\r\n scale = 1,\r\n className,\r\n style,\r\n virtualKeyboard,\r\n 'data-testid': testId,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const [internalValue, setInternalValue] = useState<string>('');\r\n const { internalRef: inputRef, setRefs: setInputRefs } = useInputKeyboardValue(ref);\r\n const isControlled = value !== undefined && onChange !== undefined;\r\n const currentValue = isControlled ? value : internalValue;\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n onChange?.(e);\r\n } else {\r\n setInternalValue(e.target.value);\r\n }\r\n\r\n if (searchMode === 'instant') {\r\n onSearch?.(e.target.value);\r\n }\r\n };\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onFocus?.(e);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onBlur?.(e);\r\n };\r\n const clearInputSearch = (): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: '' },\r\n currentTarget: { value: '' },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue('');\r\n }\r\n onClear?.();\r\n };\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (searchMode === 'on-enter' && e.key === 'Enter') {\r\n onSearch?.(currentValue || '');\r\n }\r\n\r\n onKeyDown?.(e);\r\n };\r\n return (\r\n <div \r\n className={clsx(\r\n styles.search,\r\n { [styles.disabled]: disabled },\r\n className\r\n )}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n onClick={onClick} \r\n onMouseDown={onMouseDown}\r\n role={onClick || onMouseDown ? \"button\" : undefined}\r\n tabIndex={onClick || onMouseDown ? 0 : undefined}\r\n onKeyDown={onClick || onMouseDown ? (e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n onClick?.(e as any);\r\n }\r\n } : undefined}\r\n >\r\n <span\r\n className={clsx(styles.searchLeftIcon, { [styles.disabled]: disabled })}\r\n tabIndex={-1}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n >\r\n <Search16Regular />\r\n </span>\r\n\r\n <input\r\n ref={setInputRefs}\r\n id={inputId}\r\n type=\"text\"\r\n placeholder={placeholder}\r\n aria-label={placeholder}\r\n value={currentValue || ''}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n disabled={disabled}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n data-testid={testId}\r\n {...rest}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n className={clsx({ [styles.inputWithClearIcon]: currentValue && currentValue.length > 0 })} \r\n />\r\n {currentValue && currentValue.length > 0 && (\r\n <span\r\n className={styles.searchClearIcon}\r\n aria-hidden=\"true\"\r\n onClick={clearInputSearch}\r\n >\r\n <Dismiss16Regular />\r\n </span>\r\n )}\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n value={currentValue || ''}\r\n targetRef={inputRef}\r\n onChange={(val) => {\r\n if (disabled) return;\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: val },\r\n currentTarget: { value: val },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nSearch.displayName = 'Search';\r\n\r\nexport default Search;\r\n","import { ChevronDownRegular, Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n} from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Calendar from '../../Calendar/Calendar';\r\nimport Checkbox from '../../Checkbox';\r\nimport Popover from '../../Popover/Popover';\r\nimport Search from '../../Search';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterItem, FilterProps } from '../Filter.types';\r\n\r\ntype SelectionState = Record<string, boolean>;\r\n\r\nconst Simple: React.FC<FilterProps> = ({\r\n items,\r\n type = 'multiple',\r\n selectedIds,\r\n onApplyFilter,\r\n placeholder = 'Selecionar...',\r\n enableSearch = false,\r\n buttonText = 'Filter',\r\n icon,\r\n variant = 'outlined',\r\n onOpen,\r\n onClose,\r\n side = 'bottom',\r\n align = 'start',\r\n disabled = false,\r\n className,\r\n selectedDate,\r\n onDateSelect,\r\n onClearDate,\r\n minDate,\r\n maxDate,\r\n locale = 'pt-br',\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempSelectedItems, setTempSelectedItems] = useState<SelectionState>({});\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [currentCalendarDate, setCurrentCalendarDate] = useState<Date | null>(\r\n () => selectedDate || new Date()\r\n );\r\n\r\n useEffect(() => {\r\n if (selectedDate) {\r\n setCurrentCalendarDate(selectedDate);\r\n }\r\n }, [selectedDate]);\r\n\r\n const handleCalendarNavigation = useCallback((date: Date) => {\r\n setCurrentCalendarDate(date);\r\n }, []);\r\n\r\n const handleDateSelection = useCallback(\r\n (date: Date) => {\r\n onDateSelect?.(date);\r\n setIsOpen(false);\r\n onClose?.();\r\n },\r\n [onDateSelect, onClose]\r\n );\r\n\r\n const handleClear = useCallback((): void => {\r\n onClearDate?.();\r\n setCurrentCalendarDate(new Date());\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClearDate, onClose]);\r\n\r\n const handleOpenChange = useCallback(\r\n (open: boolean) => {\r\n if (disabled && open) return;\r\n if (open) {\r\n const initial: SelectionState = {};\r\n selectedIds?.forEach((itemId) => { initial[itemId] = true; });\r\n setTempSelectedItems(initial);\r\n setSearchQuery('');\r\n onOpen?.();\r\n } else {\r\n onClose?.();\r\n }\r\n setIsOpen(open);\r\n },\r\n [disabled, selectedIds, onOpen, onClose]\r\n );\r\n\r\n const toggleItem = useCallback(\r\n (itemId: string, item: FilterItem) => {\r\n if (item.disabled) return;\r\n setTempSelectedItems((prev) => {\r\n if (type === 'multiple') {\r\n return { ...prev, [itemId]: !prev[itemId] };\r\n }\r\n return prev[itemId] ? {} : { [itemId]: true };\r\n });\r\n },\r\n [type]\r\n );\r\n\r\n const handleApplyFilter = useCallback(() => {\r\n const ids = Object.keys(tempSelectedItems).filter((k) => tempSelectedItems[k]);\r\n onApplyFilter?.(ids);\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [tempSelectedItems, onApplyFilter, onClose]);\r\n\r\n const handleClearFilter = useCallback(() => {\r\n setTempSelectedItems({});\r\n onApplyFilter?.([]);\r\n }, [onApplyFilter]);\r\n\r\n const handleSearchChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value);\r\n }, []);\r\n\r\n const handleSearchKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n setSearchQuery('');\r\n }\r\n },\r\n []\r\n );\r\n\r\n const searchVisible = enableSearch || (items?.length ?? 0) > 4;\r\n\r\n const filteredItems = useMemo(() => {\r\n if (!items?.length) return [];\r\n if (!searchQuery.trim()) return items;\r\n const q = searchQuery.toLowerCase();\r\n return items.filter((item) => item.text.toLowerCase().includes(q));\r\n }, [items, searchQuery]);\r\n\r\n const buttonDisplayText = useMemo(() => {\r\n if (type === 'calendar' && selectedDate) {\r\n return selectedDate.toLocaleDateString(\r\n locale === 'pt-br' ? 'pt-BR' : 'en-US'\r\n );\r\n }\r\n if (!selectedIds?.length) return buttonText;\r\n const firstItem = items?.find((item) => item.id === selectedIds[0]);\r\n return firstItem?.text || selectedIds[0];\r\n }, [type, selectedDate, selectedIds, items, buttonText, locale]);\r\n\r\n const getBadgeValue = useCallback(() => {\r\n if (!selectedIds || selectedIds.length <= 1) return null;\r\n return selectedIds.length - 1;\r\n }, [selectedIds]);\r\n\r\n const filterClass = clsx(styles.container, className);\r\n\r\n const triggerButton = (\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={\r\n type === 'calendar' ? <Calendar16Regular /> : <ChevronDownRegular />\r\n }\r\n iconPosition=\"right\"\r\n size=\"lg\"\r\n >\r\n <div className={styles.buttonContent}>\r\n {icon && <span className={styles.buttonIcon}>{icon}</span>}\r\n <span className={styles.buttonText}>{buttonDisplayText}</span>\r\n <span className={clsx(styles.buttonArrow, { [styles.buttonArrowOpen]: isOpen })}>\r\n {getBadgeValue() && (\r\n <Badge badgeValue={`+${getBadgeValue()}`} filterVariant />\r\n )}\r\n </span>\r\n </div>\r\n </Button>\r\n );\r\n\r\n const popoverContent =\r\n type === 'calendar' ? (\r\n <Calendar\r\n currentDate={currentCalendarDate}\r\n selected={selectedDate}\r\n onDaySelect={handleDateSelection}\r\n onDateChange={handleCalendarNavigation}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onClear={handleClear}\r\n id={`filter-calendar-${id || ''}`}\r\n aria-label=\"Selecionar data para filtro\"\r\n />\r\n ) : (\r\n <div className={styles.panel}>\r\n {searchVisible && (\r\n <div className={styles.search}>\r\n <Search\r\n value={searchQuery}\r\n placeholder={placeholder}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={() => setSearchQuery('')}\r\n />\r\n </div>\r\n )}\r\n <ul\r\n className={styles.list}\r\n role=\"listbox\"\r\n aria-multiselectable={type === 'multiple'}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) => {\r\n const itemId = item.id || `filter-item-${index}`;\r\n const isSelected = !!tempSelectedItems[itemId];\r\n return (\r\n <li\r\n key={itemId}\r\n role=\"option\"\r\n aria-selected={isSelected}\r\n aria-disabled={item.disabled}\r\n className={clsx(styles.item, {\r\n [styles.itemSelected]: isSelected,\r\n [styles.itemDisabled]: item.disabled,\r\n })}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => toggleItem(itemId, item)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n toggleItem(itemId, item);\r\n }\r\n }}\r\n >\r\n {type === 'multiple' && (\r\n <Checkbox\r\n checked={isSelected}\r\n disabled={item.disabled}\r\n label=\"\"\r\n />\r\n )}\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <span className={styles.itemText}>{item.text}</span>\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li className={styles.noResults} role=\"status\" aria-live=\"polite\">\r\n Nenhum resultado encontrado\r\n </li>\r\n )}\r\n </ul>\r\n <div className={styles.footer}>\r\n <Button fullWidth variant=\"outlined\" onClick={handleClearFilter}>\r\n Limpar\r\n </Button>\r\n <Button fullWidth onClick={handleApplyFilter}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={filterClass} id={id} {...rest}>\r\n <Popover\r\n open={isOpen}\r\n onOpenChange={handleOpenChange}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={(e) => e.preventDefault()}\r\n trigger={triggerButton}\r\n content={popoverContent}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Simple;\r\n","import React from 'react';\r\n\r\nimport Combined from './components/Combined';\r\nimport Simple from './components/Simple';\r\n\r\nimport type { FilterProps } from './Filter.types';\r\n\r\nconst Filter: React.FC<FilterProps> = ({\r\n mode = 'simple',\r\n ...props\r\n}) => {\r\n if (mode === 'combined') {\r\n return <Combined {...props} />;\r\n }\r\n\r\n return <Simple {...props} />;\r\n};\r\n\r\nexport default Filter;\r\n\r\n","import { ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from \"clsx\";\r\nimport React, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nimport type { ListItemVariant, ListItemProps } from './ListItem.types';\r\n\r\nconst ListItem: React.FC<ListItemProps> = ({\r\n id,\r\n className,\r\n variant = 'text',\r\n text,\r\n subText,\r\n disabled = false,\r\n checked = false,\r\n selected = false,\r\n onClick,\r\n onChange,\r\n icon,\r\n customWidth,\r\n scale = 1,\r\n children,\r\n defaultExpanded = false,\r\n expanded,\r\n onExpandedChange,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const itemId = id || componentId;\r\n const [internalChecked, setInternalChecked] = useState<boolean>(checked);\r\n const [internalSelected, setInternalSelected] = useState<boolean>(selected);\r\n const [internalExpanded, setInternalExpanded] = useState<boolean>(expanded ?? defaultExpanded);\r\n const [childrenCheckedMap, setChildrenCheckedMap] = useState<Record<number, boolean>>({});\r\n\r\n const childrenCount = variant === 'checkbox'\r\n ? React.Children.toArray(children).filter(\r\n child => React.isValidElement(child) && !(child.props as ListItemProps).disabled\r\n ).length\r\n : 0;\r\n const checkedCount = Object.values(childrenCheckedMap).filter(Boolean).length;\r\n const isIndeterminate = childrenCount > 0 && checkedCount > 0 && checkedCount < childrenCount;\r\n const hasChildren = React.Children.count(children) > 0;\r\n\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = isIndeterminate ? true : !internalChecked;\r\n setInternalChecked(newChecked);\r\n if (childrenCount > 0) {\r\n const newMap: Record<number, boolean> = {};\r\n React.Children.forEach(children, (child, index) => {\r\n if (React.isValidElement(child) && !(child.props as ListItemProps).disabled) {\r\n newMap[index] = newChecked;\r\n }\r\n });\r\n setChildrenCheckedMap(newMap);\r\n }\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, isIndeterminate, childrenCount, onChange, onClick, children]);\r\n\r\n const handleTextOrIconClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newSelected = !internalSelected;\r\n setInternalSelected(newSelected);\r\n onClick?.(e);\r\n }, [disabled, internalSelected, onClick]);\r\n\r\n const handleChildChange = useCallback((index: number, childChecked: boolean): void => {\r\n setChildrenCheckedMap(prev => {\r\n const next = { ...prev, [index]: childChecked };\r\n const total = childrenCount;\r\n const checked = Object.values(next).filter(Boolean).length;\r\n if (checked === 0) {\r\n setInternalChecked(false);\r\n onChange?.(false);\r\n } else if (checked === total) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n return next;\r\n });\r\n }, [childrenCount, onChange]);\r\n\r\n const handleClick = useCallback((e: React.MouseEvent<HTMLDivElement>): void => {\r\n if (hasChildren) {\r\n if (disabled) return;\r\n const newExpanded = !internalExpanded;\r\n setInternalExpanded(newExpanded);\r\n onExpandedChange?.(newExpanded);\r\n return;\r\n }\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e as React.MouseEvent<HTMLElement>);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e as React.MouseEvent<HTMLElement>);\r\n break;\r\n }\r\n }, [hasChildren, disabled, internalExpanded, onExpandedChange, variant, handleCheckboxClick, handleTextOrIconClick]);\r\n\r\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLDivElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n if (hasChildren) {\r\n const newExpanded = !internalExpanded;\r\n setInternalExpanded(newExpanded);\r\n onExpandedChange?.(newExpanded);\r\n return;\r\n }\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e);\r\n break;\r\n }\r\n }\r\n }, [disabled, hasChildren, internalExpanded, onExpandedChange, variant, handleCheckboxClick, handleTextOrIconClick]);\r\n\r\n useEffect(() => {\r\n setInternalChecked(checked);\r\n }, [checked]);\r\n\r\n useEffect(() => {\r\n setInternalSelected(selected);\r\n }, [selected]);\r\n\r\n useEffect(() => {\r\n if (expanded !== undefined) setInternalExpanded(expanded);\r\n }, [expanded]);\r\n\r\n useEffect(() => {\r\n if (!internalExpanded || variant !== 'checkbox' || childrenCount === 0) return;\r\n setChildrenCheckedMap(prev => {\r\n let changed = false;\r\n const next = { ...prev };\r\n React.Children.forEach(children, (child, index) => {\r\n if (React.isValidElement(child) && !(child.props as ListItemProps).disabled && !(index in next)) {\r\n next[index] = internalChecked;\r\n changed = true;\r\n }\r\n });\r\n return changed ? next : prev;\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [internalExpanded, childrenCount, variant]);\r\n\r\n const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'icon'];\r\n const currentVariant = validVariants.includes(variant) ? variant : 'text';\r\n\r\n switch (currentVariant) {\r\n case 'checkbox':\r\n return (\r\n <>\r\n <span\r\n aria-hidden=\"true\"\r\n onClick={hasChildren ? (e) => e.stopPropagation() : undefined}\r\n >\r\n <Checkbox\r\n checked={internalChecked}\r\n indeterminate={isIndeterminate}\r\n disabled={disabled}\r\n scale={scale}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n </span>\r\n <div className={styles.listItemWrapperText}>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n onClick={hasChildren ? (e) => { e.stopPropagation(); handleCheckboxClick(e as React.MouseEvent<HTMLElement>); } : undefined}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'icon':\r\n return (\r\n <>\r\n <div className={styles.listItemWrapperIcon}>\r\n {icon}\r\n </div>\r\n <div className={styles.listItemWrapperText}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'text':\r\n default:\r\n return (\r\n <div className={styles.listItemWrapperText}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, isIndeterminate, disabled, handleCheckboxClick, text, subText, icon, scale, hasChildren]);\r\n\r\n const listItemClass = clsx(\r\n styles.listItem,\r\n {\r\n [styles[`listItem-${variant}`]]: variant,\r\n [styles.listItemDisabled]: disabled,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const ariaChecked = variant === 'checkbox' ? internalChecked : undefined;\r\n const ariaRole = variant === 'checkbox' ? 'checkbox' : 'option';\r\n\r\n return (\r\n <li\r\n id={itemId}\r\n className={listItemClass}\r\n data-testid=\"list-item\"\r\n style={{\r\n '--giro-scale': scale,\r\n ...(customWidth != null ? { width: customWidth } : {}),\r\n } as React.CSSProperties}\r\n {...rest}\r\n >\r\n <div\r\n role={ariaRole}\r\n className={styles.listItemRow}\r\n tabIndex={disabled ? -1 : 0}\r\n onClick={handleClick}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={ariaChecked}\r\n aria-expanded={hasChildren ? internalExpanded : undefined}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={subText ? `${itemId}-subtext` : undefined}\r\n >\r\n {renderVariantContent()}\r\n {hasChildren && (\r\n <span\r\n data-testid=\"list-item-chevron\"\r\n aria-hidden=\"true\"\r\n className={clsx(styles.listItemChevron, {\r\n [styles.listItemChevronExpanded]: internalExpanded,\r\n })}\r\n >\r\n <ChevronDown16Regular />\r\n </span>\r\n )}\r\n </div>\r\n {hasChildren && internalExpanded && (\r\n <ul className={styles.listItemChildren} role=\"group\">\r\n {variant === 'checkbox'\r\n ? React.Children.map(children, (child, index) =>\r\n React.isValidElement(child)\r\n ? React.cloneElement(child as React.ReactElement<ListItemProps>, {\r\n checked: (child.props as ListItemProps).disabled\r\n ? (child.props as ListItemProps).checked\r\n : (childrenCheckedMap[index] ?? internalChecked),\r\n onChange: (childChecked: boolean) => {\r\n (child.props as ListItemProps).onChange?.(childChecked);\r\n handleChildChange(index, childChecked);\r\n },\r\n })\r\n : child\r\n )\r\n : children}\r\n </ul>\r\n )}\r\n </li>\r\n );\r\n};\r\n\r\nexport default ListItem;","import { memo } from 'react';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport { DefaultMenuItemProps } from '../Menu.types';\r\nimport styles from '../Menu.module.scss';\r\nimport clsx from 'clsx';\r\n\r\nexport const MenuItem = memo(({ item, isSelected, onSelect }: DefaultMenuItemProps) => {\r\n \r\n const handleSelect = () => {\r\n onSelect(item);\r\n };\r\n\r\n return (\r\n <DropdownMenu.Item\r\n className={clsx(styles.item)}\r\n data-selected={isSelected || undefined}\r\n onSelect={handleSelect}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && <span className={styles.itemIcon}>{item.icon}</span>}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n </DropdownMenu.Item>\r\n );\r\n});\r\n\r\nMenuItem.displayName = 'MenuItem';\r\n\r\nexport default MenuItem;\r\n","import { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\nexport interface UseMenuLogicProps {\r\n selectedItems?: MenuItemProps[];\r\n onItemSelect?: (items: MenuItemProps) => void;\r\n onOpenChange?: (open: boolean) => void;\r\n}\r\n\r\nexport interface UseMenuLogicReturn {\r\n open: boolean;\r\n internalSelectedItems: MenuItemProps[];\r\n setOpen: (open: boolean) => void;\r\n handleItemSelect: (item: MenuItemProps) => void;\r\n isItemSelected: (item: MenuItemProps) => boolean;\r\n}\r\n\r\nexport function useMenuLogic({\r\n selectedItems = [],\r\n onItemSelect,\r\n onOpenChange,\r\n}: UseMenuLogicProps): UseMenuLogicReturn {\r\n \r\n const isControlledRef = useRef(selectedItems !== undefined);\r\n const prevSelectedItemsRef = useRef<MenuItemProps[]>(selectedItems);\r\n\r\n const [open, setOpenState] = useState(false);\r\n const [internalSelectedItems, setInternalSelectedItems] = useState<MenuItemProps[]>(\r\n selectedItems || []\r\n );\r\n\r\n const getItemKey = useCallback((item: MenuItemProps): string => {\r\n return item.value ?? item.id ?? item.text ?? '';\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isControlledRef.current || !selectedItems) return;\r\n\r\n const prevKeys = prevSelectedItemsRef.current.map(getItemKey).sort().join(',');\r\n const currentKeys = selectedItems.map(getItemKey).sort().join(',');\r\n\r\n if (prevKeys !== currentKeys) {\r\n setInternalSelectedItems(selectedItems);\r\n prevSelectedItemsRef.current = selectedItems;\r\n }\r\n }, [selectedItems, getItemKey]);\r\n\r\n const setOpen = useCallback(\r\n (newOpen: boolean) => {\r\n setOpenState(newOpen);\r\n onOpenChange?.(newOpen);\r\n },\r\n [onOpenChange]\r\n );\r\n\r\n const isItemSelected = useCallback(\r\n (item: MenuItemProps): boolean => {\r\n const itemKey = getItemKey(item);\r\n if (!itemKey) return false;\r\n\r\n return internalSelectedItems.some(\r\n (selected) => getItemKey(selected) === itemKey\r\n );\r\n },\r\n [internalSelectedItems, getItemKey]\r\n );\r\n\r\n const handleItemSelect = useCallback(\r\n (item: MenuItemProps) => {\r\n const newSelection = [item];\r\n setInternalSelectedItems(newSelection);\r\n\r\n if (onItemSelect) {\r\n onItemSelect(item);\r\n }\r\n\r\n setOpen(false);\r\n },\r\n [onItemSelect, setOpen]\r\n );\r\n\r\n return {\r\n open,\r\n internalSelectedItems,\r\n setOpen,\r\n handleItemSelect,\r\n isItemSelected,\r\n };\r\n}\r\n\r\nexport default useMenuLogic;\r\n","export const normalizeText = (text: React.ReactNode): string => {\r\n if (typeof text === 'string') return text.toLowerCase();\r\n if (typeof text === 'number') return text.toString().toLowerCase();\r\n if (typeof text === 'bigint') return text.toString().toLowerCase();\r\n if (typeof text === 'boolean') return text.toString().toLowerCase();\r\n return '';\r\n };\r\n\r\n","import { useCallback, useEffect, useRef } from 'react';\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\ninterface UseSearchLogicProps {\r\n items: MenuItemProps[];\r\n searchValue: string;\r\n searchTerm: string;\r\n enableApiSearch?: boolean;\r\n onApiSearch?: (term: string) => void;\r\n}\r\n\r\ninterface UseSearchLogicReturn {\r\n filteredItems: MenuItemProps[];\r\n}\r\n\r\nexport const useSearchLogic = ({\r\n items,\r\n searchValue,\r\n searchTerm,\r\n enableApiSearch,\r\n onApiSearch,\r\n}: UseSearchLogicProps): UseSearchLogicReturn => {\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const lastSearchTermRef = useRef<string>('');\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n\r\n const debouncedApiSearch = useCallback(\r\n (term: string) => {\r\n if (lastSearchTermRef.current === term) {\r\n return;\r\n }\r\n\r\n lastSearchTermRef.current = term;\r\n\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(term);\r\n }\r\n }, 200);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && !hasInitialSearchRef.current && onApiSearch) {\r\n hasInitialSearchRef.current = true;\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (!enableApiSearch) return;\r\n\r\n if (searchValue.trim() === '') {\r\n debouncedApiSearch('');\r\n return;\r\n }\r\n if (searchTerm !== undefined && searchTerm.trim() !== '') {\r\n debouncedApiSearch(searchTerm);\r\n }\r\n }, [searchTerm, searchValue, enableApiSearch, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filteredItems = useCallback((): MenuItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchValue.trim()) {\r\n return items;\r\n }\r\n\r\n const normalized = normalizeText(searchValue).toLowerCase();\r\n\r\n return items.filter((item) => {\r\n const text = normalizeText(item.text || '').toLowerCase();\r\n const subText = normalizeText(item.subText || '').toLowerCase();\r\n\r\n return text.includes(normalized) || subText.includes(normalized);\r\n });\r\n }, [items, searchValue, enableApiSearch]);\r\n\r\n return { filteredItems: filteredItems() };\r\n};\r\n","import { ChevronRight16Filled } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\r\n\r\nimport Search from '../Search';\r\nimport MenuItem from './components/MenuItem';\r\nimport { useMenuLogic } from './hooks/useMenuLogic';\r\nimport { useSearchLogic } from './hooks/useSearchLogic';\r\nimport styles from './Menu.module.scss';\r\nimport { MenuItemProps, MenuProps } from './Menu.types';\r\n\r\nconst Menu: React.FC<MenuProps> = ({\r\n items,\r\n children,\r\n onItemSelect,\r\n search,\r\n enableInfiniteScroll,\r\n onScrollEnd,\r\n isLoadingMore,\r\n onApiSearch,\r\n enableApiSearch,\r\n selectedItems,\r\n onOpenChange,\r\n align = 'start',\r\n scale = 1,\r\n className,\r\n style,\r\n maxHeight = 400,\r\n ...rest\r\n}) => {\r\n const itemsWrapperRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const observerRef = useRef<IntersectionObserver | null>(null);\r\n const sentinelRef = useRef<HTMLDivElement | null>(null);\r\n const onScrollEndRef = useRef(onScrollEnd);\r\n const isLoadingMoreRef = useRef(isLoadingMore);\r\n\r\n const [searchInput, setSearchInput] = useState('');\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const maxHeightStyle = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const triggerWithScale = React.isValidElement(children)\r\n ? React.cloneElement(children as React.ReactElement<any>, {\r\n scale: (children as React.ReactElement<any>).props?.scale ?? scale,\r\n })\r\n : children;\r\n\r\n const { open, setOpen, handleItemSelect: handleItemSelectLogic, isItemSelected } = useMenuLogic({\r\n selectedItems,\r\n onItemSelect,\r\n onOpenChange,\r\n });\r\n\r\n const handleItemSelect = useCallback((item: MenuItemProps) => {\r\n handleItemSelectLogic(item);\r\n }, [handleItemSelectLogic]);\r\n\r\n const { filteredItems } = useSearchLogic({\r\n items,\r\n searchValue: searchInput,\r\n searchTerm: searchTerm,\r\n onApiSearch,\r\n enableApiSearch,\r\n });\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setSearchInput(value);\r\n\r\n if (value.trim() === '') {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n e.stopPropagation();\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n setSearchTerm(searchInput);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onScrollEndRef.current = onScrollEnd;\r\n isLoadingMoreRef.current = isLoadingMore;\r\n }, [onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll) {\r\n return;\r\n }\r\n\r\n const setupTimer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n const sentinel = sentinelRef.current;\r\n \r\n if (!container || !sentinel) {\r\n return;\r\n }\r\n\r\n observerRef.current = new IntersectionObserver(\r\n ([entry]) => {\r\n if (\r\n entry.isIntersecting &&\r\n !hasReachedEndRef.current &&\r\n !isLoadingMoreRef.current &&\r\n onScrollEndRef.current\r\n ) {\r\n hasReachedEndRef.current = true;\r\n onScrollEndRef.current();\r\n }\r\n },\r\n {\r\n root: container,\r\n threshold: 0.1,\r\n rootMargin: '50px',\r\n }\r\n );\r\n\r\n observerRef.current.observe(sentinel);\r\n }, 50);\r\n return () => {\r\n clearTimeout(setupTimer);\r\n if (observerRef.current) {\r\n observerRef.current.disconnect();\r\n observerRef.current = null;\r\n }\r\n };\r\n }, [open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!isLoadingMore && open && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [isLoadingMore, open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) {\r\n return;\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n if (!container) {\r\n return;\r\n }\r\n\r\n const { scrollHeight, clientHeight } = container;\r\n \r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 200);\r\n\r\n return () => clearTimeout(timer);\r\n }, [open, enableInfiniteScroll, onScrollEnd, isLoadingMore, filteredItems.length]);\r\n\r\n const renderMenuItem = useCallback(\r\n (item: MenuItemProps, key: string | number) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n\r\n if (hasChildren) {\r\n return (\r\n <DropdownMenu.Sub key={key}>\r\n <DropdownMenu.SubTrigger\r\n className={styles.subTrigger}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n <ChevronRight16Filled className={styles.chevronIcon} />\r\n </DropdownMenu.SubTrigger>\r\n\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.SubContent\r\n className={styles.subContent}\r\n sideOffset={16}\r\n collisionPadding={20}\r\n >\r\n {item.children!.map((childItem, childIndex) =>\r\n renderMenuItem(childItem, `${key}-${childIndex}`)\r\n )}\r\n </DropdownMenu.SubContent>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Sub>\r\n );\r\n }\r\n return (\r\n <MenuItem\r\n key={key}\r\n item={item}\r\n isSelected={isItemSelected(item)}\r\n onSelect={handleItemSelect}\r\n />\r\n );\r\n },\r\n [handleItemSelect, isItemSelected]\r\n );\r\n\r\n const closedByPointerRef = useRef(false);\r\n\r\n const handleOpenChange = (newOpen: boolean) => {\r\n setOpen(newOpen);\r\n if (!newOpen) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n return (\r\n <DropdownMenu.Root open={open} onOpenChange={handleOpenChange}>\r\n <DropdownMenu.Trigger asChild>{triggerWithScale}</DropdownMenu.Trigger>\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n className={clsx(styles.content, className)}\r\n style={{ ...containerStyle, ...style }}\r\n sideOffset={8}\r\n align={align}\r\n onPointerDown={() => { closedByPointerRef.current = true; }}\r\n onInteractOutside={() => { closedByPointerRef.current = true; }}\r\n onCloseAutoFocus={(e) => {\r\n if (closedByPointerRef.current) {\r\n e.preventDefault();\r\n closedByPointerRef.current = false;\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (search) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n {...rest}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n placeholder=\"Buscar\"\r\n onChange={handleSearchChange}\r\n value={searchInput}\r\n onKeyDown={handleSearchKeyDown}\r\n />\r\n </div>\r\n )}\r\n\r\n <div \r\n className={styles.itemsWrapper} \r\n ref={itemsWrapperRef}\r\n style={{ maxHeight: maxHeightStyle }}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) =>\r\n renderMenuItem(item, item.value || item.text || `item-${index}`)\r\n )\r\n ) : (\r\n <div className={styles.noResults}>Nenhum resultado encontrado</div>\r\n )}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>Carregando mais itens...</div>\r\n )}\r\n {enableInfiniteScroll && (\r\n <div\r\n ref={sentinelRef}\r\n data-scroll-sentinel\r\n style={{ height: '1px', visibility: 'hidden' }}\r\n />\r\n )}\r\n </div>\r\n </DropdownMenu.Content>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Root>\r\n );\r\n};\r\n\r\nexport default Menu;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Dialog } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport styles from './Modal.module.scss';\r\nimport Button from '../Button/Button';\r\nimport { isDismissOutsideIgnored } from '../../utils/dismissOutside';\r\n\r\nimport type { ModalProps } from './Modal.types';\r\n\r\nconst Modal: React.FC<ModalProps> = ({\r\n isOpen = false,\r\n onClose,\r\n title,\r\n children,\r\n headerContent,\r\n closeOnOverlayClick = true,\r\n className,\r\n id,\r\n footer,\r\n customWidth,\r\n customHeight,\r\n closingButton = true,\r\n fullscreen = false,\r\n ...rest\r\n}) => {\r\n const contentRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const handleOpenChange = (open: boolean): void => {\r\n if (!open) {\r\n onClose();\r\n }\r\n };\r\n\r\n const handleOpenAutoFocus = (e: Event): void => {\r\n e.preventDefault();\r\n contentRef.current?.focus();\r\n };\r\n\r\n const handleInteractOutside = (e: Event): void => {\r\n // Ignora interações em elementos portalizados que se declararam isentos\r\n // (ex.: VirtualKeyboard em modo native), evitando fechamentos indesejados.\r\n if (isDismissOutsideIgnored(e.target)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (!closeOnOverlayClick) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return (\r\n <Dialog.Root open={isOpen} onOpenChange={handleOpenChange} {...rest}>\r\n <Dialog.Portal>\r\n <Dialog.Overlay className={styles.modalOverlay} />\r\n <Dialog.Content\r\n ref={contentRef}\r\n className={clsx(styles.modalContent, fullscreen && styles['modalContent--fullscreen'], className)}\r\n id={id}\r\n style={{\r\n '--modal-custom-width': customWidth,\r\n '--modal-custom-height': customHeight,\r\n } as React.CSSProperties}\r\n onInteractOutside={handleInteractOutside}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n {(title || headerContent || closingButton) && (\r\n <header className={styles.modalHeader}>\r\n {title && (\r\n <Dialog.Title\r\n className={styles.modalTitle}\r\n id={id ? `${id}-title` : 'modal-title'}\r\n >\r\n {title}\r\n </Dialog.Title>\r\n )}\r\n {headerContent && (\r\n <div>{headerContent}</div>\r\n )}\r\n {closingButton && (\r\n <div className={styles.modalCloseButton}>\r\n <Dialog.Close asChild>\r\n <Button\r\n variant=\"outlined\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size=\"lg\"\r\n tooltipText='Fechar'\r\n />\r\n </Dialog.Close>\r\n </div>\r\n )}\r\n </header>\r\n )}\r\n <section className={styles.modalBody}>\r\n {children}\r\n </section>\r\n {footer && (\r\n <footer className={styles.modalFooter}>{footer}</footer>\r\n )}\r\n </Dialog.Content>\r\n </Dialog.Portal>\r\n </Dialog.Root>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { Add16Regular, Subtract16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useRef, useCallback, useEffect, useId, useMemo } from 'react';\r\n\r\nimport styles from './Quantity.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { QuantityProps } from './Quantity.types';\r\n\r\nconst Quantity: React.FC<QuantityProps> = ({\r\n value = 0,\r\n onChange,\r\n disabled = false,\r\n decimal = false,\r\n decimalPlaces = 2,\r\n size = 'lg',\r\n id,\r\n valueIncrement = 1,\r\n scale = 1,\r\n className,\r\n style,\r\n inputSize,\r\n minValue = 0,\r\n maxValue = 9999,\r\n decrementAriaLabel = 'Decrease quantity',\r\n incrementAriaLabel = 'Increase quantity',\r\n inputAriaLabel = 'Quantity',\r\n ...rest\r\n}) => {\r\n const initialValue = Math.min(Math.max(value, minValue), maxValue);\r\n const [internalValue, setInternalValue] = useState<number>(initialValue);\r\n const [inputValue, setInputValue] = useState<string>(\r\n decimal ? initialValue.toFixed(decimalPlaces) : String(initialValue)\r\n );\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const stepValue = valueIncrement !== undefined ? valueIncrement : decimal ? Math.pow(10, -decimalPlaces) : 1;\r\n\r\n const isMinValue = useMemo(() => internalValue <= minValue, [internalValue, minValue]);\r\n const isMaxValue = useMemo(() => internalValue >= maxValue, [internalValue, maxValue]);\r\n\r\n const validateProps = (decimalPlaces?: number, valueIncrement?: number) => {\r\n if (decimalPlaces !== undefined && (decimalPlaces < 1 || decimalPlaces > 10)) {\r\n console.warn('decimalPlaces deve estar entre 1 e 10');\r\n }\r\n if (valueIncrement !== undefined && valueIncrement <= 0) {\r\n console.warn('valueIncrement deve ser maior que 0');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n validateProps(decimalPlaces, valueIncrement);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const clamped = Math.min(Math.max(value, minValue), maxValue);\r\n setInternalValue(clamped);\r\n setInputValue(decimal ? clamped.toFixed(decimalPlaces) : String(clamped));\r\n }, [value, minValue, maxValue, decimal, decimalPlaces]);\r\n\r\n const increment = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.min(maxValue, internalValue + stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, maxValue]);\r\n\r\n const decrement = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.max(minValue, internalValue - stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, minValue]);\r\n\r\n const filterInput = useCallback((inputValue: string): string => {\r\n if (decimal) {\r\n let filtered = inputValue.replace(/[^\\d.]/g, '');\r\n\r\n const parts = filtered.split('.');\r\n if (parts.length > 2) {\r\n filtered = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0') && !filtered.startsWith('0.')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered;\r\n } else {\r\n let filtered = inputValue.replace(/[^\\d]/g, '');\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered || '0'; // Se ficar vazio, retorna '0'\r\n }\r\n }, [decimal]);\r\n const handleInputChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n const rawValue = event.target.value;\r\n\r\n const filteredValue = filterInput(rawValue);\r\n\r\n setInputValue(filteredValue);\r\n\r\n if (filteredValue === '' || filteredValue === '.') {\r\n onChange?.(0);\r\n return;\r\n }\r\n\r\n if (decimal) {\r\n if (filteredValue.endsWith('.')) {\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(filteredValue);\r\n if (!isNaN(parsedValue)) {\r\n onChange?.(parsedValue);\r\n }\r\n } else {\r\n const parsedValue = parseInt(filteredValue, 10);\r\n if (!isNaN(parsedValue)) {\r\n const validValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n onChange?.(validValue);\r\n }\r\n }\r\n }, [disabled, decimal, filterInput, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleBlur = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const currentValue = inputValue.trim();\r\n\r\n if (decimal) {\r\n if (currentValue === '' || currentValue === '.') {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n return;\r\n }\r\n\r\n if (currentValue.endsWith('.')) {\r\n const baseValue = parseFloat(currentValue.slice(0, -1));\r\n if (!isNaN(baseValue)) {\r\n const formattedValue = baseValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(baseValue);\r\n onChange?.(baseValue);\r\n }\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(currentValue);\r\n if (!isNaN(parsedValue)) {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n const formattedValue = normalizedValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n } else {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n }\r\n } else {\r\n\r\n if (currentValue === '') {\r\n setInputValue(String(internalValue));\r\n return;\r\n }\r\n\r\n const parsedValue = parseInt(currentValue, 10);\r\n if (isNaN(parsedValue)) {\r\n setInputValue(String(internalValue));\r\n } else {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n setInputValue(String(normalizedValue));\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n }\r\n }\r\n }, [disabled, decimal, inputValue, decimalPlaces, internalValue, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleInputKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n increment();\r\n break;\r\n\r\n case 'ArrowDown':\r\n e.preventDefault();\r\n decrement();\r\n break;\r\n\r\n case 'Enter':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n setInputValue(decimal ? internalValue.toFixed(decimalPlaces) : String(internalValue));\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Home':\r\n e.preventDefault();\r\n setInternalValue(minValue);\r\n setInputValue(decimal ? minValue.toFixed(decimalPlaces) : String(minValue));\r\n onChange?.(minValue);\r\n break;\r\n\r\n case 'End':\r\n if (!decimal) {\r\n e.preventDefault();\r\n setInternalValue(maxValue);\r\n setInputValue(String(maxValue));\r\n onChange?.(maxValue);\r\n }\r\n break;\r\n }\r\n },\r\n [disabled, increment, decrement, decimal, decimalPlaces, onChange, internalValue, minValue, maxValue]\r\n );\r\n\r\n const inputSizeValue = inputSize !== undefined ? inputSize : Math.max(1, inputValue.length);\r\n\r\n const uniqueId = useId();\r\n const inputId = id || uniqueId;\r\n\r\n return (\r\n <div\r\n className={clsx(styles.quantity, { [styles.disabled]: disabled }, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n icon={<Subtract16Regular />}\r\n onClick={decrement}\r\n disabled={disabled || isMinValue}\r\n aria-label={decrementAriaLabel}\r\n tooltipText='Diminuir'\r\n scale={scale}\r\n />\r\n\r\n <input\r\n ref={inputRef}\r\n className={clsx(styles.quantityInput, { [styles.disabled]: disabled })}\r\n type='text'\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleBlur}\r\n onKeyDown={handleInputKeyDown}\r\n id={inputId}\r\n step={stepValue}\r\n aria-label={inputAriaLabel}\r\n role='spinbutton'\r\n aria-valuenow={internalValue}\r\n aria-valuemin={minValue}\r\n aria-valuemax={maxValue}\r\n disabled={disabled}\r\n inputMode={decimal ? 'decimal' : 'numeric'}\r\n size={inputSizeValue}\r\n />\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n onClick={increment}\r\n disabled={disabled || isMaxValue}\r\n aria-label={incrementAriaLabel}\r\n icon={<Add16Regular />}\r\n tooltipText='Aumentar'\r\n scale={scale}\r\n />\r\n\r\n </div>\r\n );\r\n};\r\n\r\n\r\nconst memorizedQuantity = React.memo(Quantity);\r\nmemorizedQuantity.displayName = 'Quantity';\r\n\r\nexport default memorizedQuantity;","import clsx from 'clsx';\r\nimport { RadioGroup } from 'radix-ui';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Radio.module.scss';\r\nimport { RadioGroupProps } from './Radio.types';\r\n\r\nconst Radio: React.FC<RadioGroupProps> = ({\r\n items,\r\n onValueChange,\r\n defaultValue,\r\n name,\r\n id,\r\n ariaLabel,\r\n orientation = 'vertical',\r\n scale = 1,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n name={name}\r\n aria-label={ariaLabel}\r\n data-orientation={orientation}\r\n orientation={orientation}\r\n {...rest}\r\n >\r\n {items.map(({ id, value, disabled, label }) => {\r\n const itemKey = id ?? value;\r\n const uniqueId = `${componentId}-item-${value}`;\r\n return (\r\n <div\r\n key={itemKey}\r\n className={clsx(styles.wrapper, { [styles.disabled]: disabled })}\r\n >\r\n <label className={styles.labelWrapper} htmlFor={uniqueId}>\r\n <div className={styles.itemWrapper}>\r\n <RadioGroup.Item\r\n disabled={disabled}\r\n className={styles.item}\r\n value={value}\r\n id={uniqueId}\r\n data-disabled={disabled}\r\n >\r\n <RadioGroup.Indicator className={styles.indicator} />\r\n </RadioGroup.Item>\r\n </div>\r\n <span className={styles.labelText}>{label}</span>\r\n </label>\r\n </div>\r\n );\r\n })}\r\n </RadioGroup.Root>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n","import clsx from 'clsx';\r\nimport React, { useRef } from 'react';\r\n\r\nimport Checkbox from '../../Checkbox';\r\nimport styles from '../Select.module.scss';\r\nimport { CheckboxItemProps } from '../Select.types';\r\n\r\nconst CheckboxSelectItem: React.FC<CheckboxItemProps> = ({\r\n text,\r\n subTitle,\r\n disabled,\r\n checked,\r\n onCheckedChange,\r\n value,\r\n ...restProps\r\n}) => {\r\n const itemRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleCheckboxChange = (checkedValue: boolean | 'indeterminate') => {\r\n onCheckedChange(Boolean(checkedValue));\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onCheckedChange(!checked);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const nextElement = itemRef.current?.nextElementSibling as HTMLDivElement;\r\n if (nextElement && nextElement.getAttribute('tabIndex') === '0') {\r\n nextElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const prevElement = itemRef.current?.previousElementSibling as HTMLDivElement;\r\n if (prevElement && prevElement.getAttribute('tabIndex') === '0') {\r\n prevElement.focus();\r\n }\r\n return;\r\n }\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n \r\n const target = e.target as HTMLElement;\r\n const isCheckboxClick = target.closest('input[type=\"checkbox\"]') || \r\n target.closest('label');\r\n \r\n if (!isCheckboxClick) {\r\n e.preventDefault();\r\n onCheckedChange(!checked);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={itemRef}\r\n className={clsx(styles.checkboxItem, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"option\"\r\n aria-selected={checked}\r\n aria-disabled={disabled}\r\n data-selected={checked}\r\n data-testid={`checkbox-item-${value}`}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n {...restProps}\r\n >\r\n <div className={styles.checkboxContent}>\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={handleCheckboxChange}\r\n disabled={disabled}\r\n label={\r\n <div className={styles.textContent}>\r\n <span className={styles.title}>{text}</span>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n </div>\r\n }\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCheckboxSelectItem.displayName = 'CheckboxSelectItem';\r\n\r\nexport default CheckboxSelectItem;","import { ChevronRight16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState } from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\n\r\nimport type { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\n\r\ninterface ExpandableSelectItemProps {\r\n item: SelectItemProps;\r\n variant: SelectVariant;\r\n onSelect: (value: string) => void;\r\n selectedValues: string[];\r\n level?: number; \r\n}\r\n\r\nconst ExpandableSelectItem: React.FC<ExpandableSelectItemProps> = ({\r\n item,\r\n variant,\r\n onSelect,\r\n selectedValues,\r\n level = 0,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isSelected = selectedValues.includes(item.value);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (hasChildren) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsExpanded(!isExpanded);\r\n } else {\r\n onSelect(item.value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div \r\n className={styles.expandableItemContainer}\r\n style={{ paddingLeft: `${level * 16}px` }}\r\n >\r\n <div \r\n className={clsx(styles.itemWrapper, {\r\n [styles.selected]: isSelected && !hasChildren,\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={handleClick}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleClick(e as unknown as React.MouseEvent);\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={item.disabled ? -1 : 0}\r\n data-disabled={item.disabled || undefined}\r\n data-selected={isSelected && !hasChildren ? 'true' : undefined}\r\n data-testid={`select-item-${item.value}`}\r\n >\r\n {variant === 'icon' && item.icon && (\r\n <span className={styles.icon}>{item.icon}</span>\r\n )}\r\n \r\n <div className={styles.textContent}>\r\n <div className={styles.title}>{item.text}</div>\r\n {item.subTitle && <div className={styles.subTitle}>{item.subTitle}</div>}\r\n </div>\r\n \r\n {hasChildren && (\r\n <span className={styles.chevron}>\r\n {isExpanded ? <ChevronDown16Regular /> : <ChevronRight16Regular />}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n \r\n {hasChildren && isExpanded && (\r\n <div className={styles.childrenWrapper}>\r\n {item.children!.map((child) => (\r\n <ExpandableSelectItem\r\n key={child.id || child.value}\r\n item={child}\r\n variant={variant}\r\n onSelect={onSelect}\r\n selectedValues={selectedValues}\r\n level={level + 1}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ExpandableSelectItem;","import clsx from 'clsx';\r\nimport { Select } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport { forwardRef } from '../../../utils/forwardRef';\r\n\r\nimport styles from '../Select.module.scss';\r\nimport { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\ninterface SelectItemComponentProps extends SelectItemProps {\r\n variant?: SelectVariant;\r\n disableFocusOnHover?: boolean;\r\n}\r\n\r\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemComponentProps>(\r\n ({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {\r\n return (\r\n <div\r\n className={clsx(styles.itemWrapper, {\r\n [styles.disabled]: disabled,\r\n })}\r\n data-disabled={disabled || undefined}\r\n data-testid={`select-item-${value}`}\r\n ref={ref}\r\n >\r\n {variant === 'icon' && icon && (\r\n <span className={styles.icon}>{icon}</span>\r\n )}\r\n\r\n <Select.Item\r\n className={clsx(styles.item, {\r\n [styles.disabled]: disabled,\r\n })}\r\n value={value}\r\n disabled={disabled}\r\n onPointerMove={disableFocusOnHover ? (e) => e.preventDefault() : undefined}\r\n {...restProps}\r\n >\r\n <Select.ItemText className={styles.title}>{text}</Select.ItemText>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n <Select.ItemIndicator className={styles.itemIndicator} />\r\n </Select.Item>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSelectItem.displayName = 'SelectItem';\r\n\r\nexport default SelectItem;","import { useReducer, useEffect, useRef, useCallback } from 'react';\r\n\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport {\r\n SelectState,\r\n SelectAction,\r\n UseSelectLogicProps,\r\n UseSelectLogicReturn,\r\n SelectItemProps,\r\n} from '../Select.types';\r\n\r\nconst initialState: SelectState = {\r\n isOpen: false,\r\n selectedValues: [],\r\n searchInput: '',\r\n searchTerm: '',\r\n touched: false,\r\n hasError: false,\r\n};\r\n\r\nfunction selectReducer(state: SelectState, action: SelectAction): SelectState {\r\n switch (action.type) {\r\n case 'SET_OPEN':\r\n return { ...state, isOpen: action.payload };\r\n case 'SET_SELECTED_VALUES':\r\n return { ...state, selectedValues: action.payload };\r\n case 'SET_SEARCH_INPUT':\r\n return { ...state, searchInput: action.payload };\r\n case 'SET_SEARCH_TERM':\r\n return { ...state, searchTerm: action.payload };\r\n case 'SET_TOUCHED':\r\n return { ...state, touched: action.payload };\r\n case 'SET_ERROR':\r\n return { ...state, hasError: action.payload };\r\n case 'RESET_SEARCH':\r\n return { ...state, searchInput: '', searchTerm: '' };\r\n case 'VALIDATE': {\r\n const hasError = action.payload.required && state.selectedValues.length === 0;\r\n return { ...state, hasError, touched: true };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function useSelectLogic({\r\n value,\r\n required = false,\r\n search = false,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n error,\r\n}: UseSelectLogicProps): UseSelectLogicReturn {\r\n const [state, dispatch] = useReducer(selectReducer, {\r\n ...initialState,\r\n selectedValues: Array.isArray(value) ? value : value ? [value] : [],\r\n });\r\n\r\n const searchInputRef = useRef<HTMLInputElement>(null);\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n const lastSearchTermRef = useRef<string>('');\r\n\r\n const debouncedApiSearch = useCallback(\r\n (searchTerm: string) => {\r\n if (lastSearchTermRef.current === searchTerm) {\r\n return;\r\n }\r\n \r\n lastSearchTermRef.current = searchTerm;\r\n \r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(searchTerm);\r\n }\r\n }, 300);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n const newValues = Array.isArray(value) ? value : value ? [value] : [];\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: newValues });\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (error !== undefined) {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n if (error) {\r\n dispatch({ type: 'SET_TOUCHED', payload: true });\r\n }\r\n }\r\n }, [error]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && search) {\r\n setTimeout(() => {\r\n searchInputRef.current?.focus();\r\n }, 0);\r\n }\r\n }, [state.isOpen, search]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen) {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [state.isOpen]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableApiSearch && !hasInitialSearchRef.current) {\r\n hasInitialSearchRef.current = true;\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }\r\n }, [state.isOpen, enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen) {\r\n if (lastSearchTermRef.current !== state.searchTerm) {\r\n debouncedApiSearch(state.searchTerm);\r\n }\r\n }\r\n }, [state.searchTerm, enableApiSearch, state.isOpen, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen && state.searchInput === '' && state.searchTerm === '') {\r\n if (lastSearchTermRef.current !== '') {\r\n lastSearchTermRef.current = '';\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n }\r\n }\r\n }\r\n }, [state.searchInput, state.searchTerm, enableApiSearch, state.isOpen, onApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n };\r\n }, []);\r\n\r\n const setOpen = (open: boolean) => {\r\n dispatch({ type: 'SET_OPEN', payload: open });\r\n onOpenChange?.(open);\r\n\r\n if (!open) {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n }\r\n };\r\n\r\n const setSelectedValues = (values: string[]) => {\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: values });\r\n };\r\n\r\n const setSearchInput = (input: string) => {\r\n dispatch({ type: 'SET_SEARCH_INPUT', payload: input });\r\n };\r\n\r\n const setSearchTerm = (term: string) => {\r\n dispatch({ type: 'SET_SEARCH_TERM', payload: term });\r\n };\r\n\r\n const setTouched = (touched: boolean) => {\r\n dispatch({ type: 'SET_TOUCHED', payload: touched });\r\n };\r\n\r\n const setError = (error: boolean) => {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n };\r\n\r\n const resetSearch = () => {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n lastSearchTermRef.current = '';\r\n };\r\n\r\n const validate = () => {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n };\r\n\r\n const handleSingleSelect = (newValue: string) => {\r\n const newValues = [newValue];\r\n setSelectedValues(newValues);\r\n onValueChange?.(newValue);\r\n setOpen(false);\r\n\r\n if (required && state.hasError) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const handleMultipleSelect = (itemValue: string, checked: boolean) => {\r\n let newSelectedValues: string[];\r\n\r\n if (checked) {\r\n newSelectedValues = [...state.selectedValues, itemValue];\r\n } else {\r\n newSelectedValues = state.selectedValues.filter((val) => val !== itemValue);\r\n }\r\n\r\n setSelectedValues(newSelectedValues);\r\n onValueChange?.(newSelectedValues);\r\n\r\n if (required && state.hasError && newSelectedValues.length > 0) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const getDisplayText = (\r\n selectedValues: string[],\r\n placeholder: string,\r\n variant: string,\r\n items: SelectItemProps[]\r\n ): string => {\r\n if (selectedValues.length === 0) return placeholder;\r\n\r\n if (variant === 'checkbox') {\r\n const selectedItems = selectedValues\r\n .map((value) => {\r\n const item = items.find((item) => item.value === value);\r\n return (item?.text as string) || value;\r\n });\r\n\r\n if (selectedItems.length > 3) {\r\n const firstThree = selectedItems.slice(0, 3).join(', ');\r\n const remaining = selectedItems.length - 3;\r\n return `${firstThree} e mais ${remaining}`;\r\n }\r\n\r\n return selectedItems.join(', ');\r\n }\r\n\r\n return (\r\n (items.find((item) => item.value === selectedValues[0])?.text as string) ||\r\n selectedValues[0]\r\n );\r\n };\r\n\r\n const getFilteredItems = (\r\n items: SelectItemProps[],\r\n searchTerm: string\r\n ): SelectItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchTerm) return items;\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n return items.filter((item) => {\r\n const normalizedText = normalizeText(item.text);\r\n const normalizedSubTitle = item.subTitle\r\n ? normalizeText(item.subTitle)\r\n : '';\r\n const normalizedValue = normalizeText(item.value);\r\n\r\n return (\r\n normalizedText.includes(lowercasedSearchTerm) ||\r\n normalizedSubTitle.includes(lowercasedSearchTerm) ||\r\n normalizedValue.includes(lowercasedSearchTerm)\r\n );\r\n });\r\n };\r\n\r\n return {\r\n state,\r\n actions: {\r\n setOpen,\r\n setSelectedValues,\r\n setSearchInput,\r\n setSearchTerm,\r\n setTouched,\r\n setError,\r\n resetSearch,\r\n validate,\r\n handleSingleSelect,\r\n handleMultipleSelect,\r\n },\r\n computed: {\r\n displayText: '',\r\n filteredItems: [],\r\n },\r\n refs: {\r\n searchInputRef,\r\n },\r\n utils: {\r\n getDisplayText,\r\n getFilteredItems,\r\n },\r\n };\r\n}\r\n\r\nexport default useSelectLogic;","import { ChevronUp16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Select as SelectRadix } from 'radix-ui';\r\nimport React, { useMemo, useId, useRef, useEffect } from 'react';\r\n\r\nimport CheckboxSelectItem from './components/CheckboxSelectItem';\r\nimport ExpandableSelectItem from './components/ExpandableSelectItem';\r\nimport SelectItem from './components/SelectItem';\r\nimport { useSelectLogic } from './hooks/useSelectLogic';\r\nimport styles from './Select.module.scss';\r\nimport { SelectProps } from './Select.types';\r\nimport LabelComponent from '../../shared/Label';\r\nimport Search from '../Search/Search';\r\n\r\nconst Select: React.FC<SelectProps> = ({\r\n items,\r\n onValueChange,\r\n onOpenChange,\r\n variant,\r\n required = false,\r\n value,\r\n \r\n label,\r\n helperText,\r\n placeholder = 'Selecione',\r\n maxWidth,\r\n search = false,\r\n error,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n style,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n hasMore = true,\r\n isLoadingMore = false,\r\n enableApiSearch,\r\n onApiSearch,\r\n isSearching = false,\r\n scale = 1,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const selectId = `select-${componentId}`;\r\n const viewportRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const wasLoadingMoreRef = useRef<boolean>(false);\r\n\r\n const isApiSearch = enableApiSearch ?? Boolean(onApiSearch);\r\n\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production' && enableApiSearch !== undefined) {\r\n console.warn(\r\n '[Giro DS] `enableApiSearch` está depreciado. ' +\r\n 'A busca remota será ativada pela presença de `onApiSearch`. ' +\r\n 'Remoção psera feita futuramente.'\r\n );\r\n }\r\n }, [enableApiSearch]);\r\n\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production' && enableApiSearch === false && onApiSearch) {\r\n console.warn(\r\n '[Giro DS] A combinação `enableApiSearch={false}` com `onApiSearch` ' +\r\n 'futuramente o comportamento ira mudar'\r\n );\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n const {\r\n state,\r\n actions,\r\n refs,\r\n utils,\r\n } = useSelectLogic({\r\n value,\r\n required,\r\n search,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch: isApiSearch,\r\n onApiSearch,\r\n isSearching,\r\n error,\r\n });\r\n\r\n useEffect(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport || !enableInfiniteScroll) return;\r\n\r\n const handleScroll = () => {\r\n const { scrollTop, scrollHeight, clientHeight } = viewport;\r\n const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;\r\n\r\n if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore && hasMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n } else if (!isAtBottom && hasReachedEndRef.current) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n viewport.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n viewport.removeEventListener('scroll', handleScroll);\r\n };\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [state.isOpen, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (wasLoadingMoreRef.current && !isLoadingMore && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n wasLoadingMoreRef.current = isLoadingMore;\r\n }, [isLoadingMore, enableInfiniteScroll]);\r\n\r\n const displayText = useMemo(\r\n () => utils.getDisplayText(state.selectedValues, placeholder, variant, items),\r\n [state.selectedValues, placeholder, variant, items, utils]\r\n );\r\n\r\n const filteredItems = useMemo(() => {\r\n const termToFilter = isApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, isApiSearch, utils]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) return;\r\n\r\n const timer = setTimeout(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport) return;\r\n\r\n const { scrollHeight, clientHeight } = viewport;\r\n\r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current && hasMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 150);\r\n\r\n return () => clearTimeout(timer);\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore, filteredItems.length]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n '--giro-scale': scale,\r\n } as React.CSSProperties), [maxWidth, scale]);\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n actions.setSearchInput(value);\r\n \r\n if (isApiSearch) {\r\n actions.setSearchTerm(value);\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n const isNavigationKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape', 'Tab'].includes(e.key);\r\n \r\n if (!isNavigationKey) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n \r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n e.currentTarget.blur();\r\n return;\r\n }\r\n\r\n if (e.key === 'Enter') {\r\n e.currentTarget.blur();\r\n return;\r\n } else if (e.key === 'Escape') {\r\n e.preventDefault();\r\n actions.resetSearch();\r\n }\r\n };\r\n\r\n const handleClear = () => {\r\n actions.resetSearch();\r\n if (isApiSearch && onApiSearch) {\r\n onApiSearch('');\r\n }\r\n };\r\n\r\n return (\r\n <SelectRadix.Root\r\n value={variant === 'checkbox' || (search && state.isOpen) ? '' : (state.selectedValues[0] || '')}\r\n onValueChange={variant === 'checkbox' ? undefined : actions.handleSingleSelect}\r\n required={required}\r\n open={state.isOpen}\r\n onOpenChange={actions.setOpen}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={{ ...containerStyle, ...style }}\r\n data-testid={testId}\r\n >\r\n <div className={styles.fieldContainer}>\r\n <div className={styles.containerLabel}>\r\n <LabelComponent\r\n htmlFor={selectId}\r\n required={required}\r\n tooltipText={tooltipText}\r\n tooltip={!!tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\r\n scale={scale}\r\n >\r\n {label}\r\n </LabelComponent>\r\n \r\n <SelectRadix.Trigger\r\n className={clsx(styles.trigger, {\r\n [styles.error]: state.hasError && state.touched,\r\n [styles.disabled]: disabled,\r\n [styles.hasValue]: state.selectedValues.length > 0,\r\n [styles.open]: state.isOpen,\r\n })}\r\n id={selectId}\r\n aria-label={ariaLabel}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {variant === 'checkbox' ? (\r\n <span className={styles.triggerText}>{displayText}</span>\r\n ) : (\r\n <SelectRadix.Value placeholder={placeholder} className={styles.placeholder}>{displayText}</SelectRadix.Value>\r\n )}\r\n <div className={styles.triggerIcon}>\r\n {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\r\n </div>\r\n </SelectRadix.Trigger>\r\n\r\n {!state.isOpen && helperText && !state.hasError && (\r\n <span className={clsx(\r\n styles.helper,\r\n {\r\n [styles.disabled]: disabled\r\n } \r\n )}>{helperText}</span>\r\n )}\r\n \r\n {state.hasError && state.touched && (\r\n <span className={styles.errorMessage}>\r\n {errorMessage || 'Campo obrigatório'}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <SelectRadix.Portal>\r\n <SelectRadix.Content\r\n className={styles.content}\r\n style={{ '--giro-scale': scale } as React.CSSProperties}\r\n position=\"popper\"\r\n side=\"bottom\"\r\n sideOffset={8}\r\n align=\"start\"\r\n avoidCollisions={true}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n ref={refs.searchInputRef}\r\n className={styles.search}\r\n placeholder=\"Buscar\"\r\n value={state.searchInput}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={handleClear}\r\n data-testid={`${testId}-search`}\r\n scale={scale}\r\n />\r\n </div>\r\n )}\r\n \r\n <SelectRadix.Viewport ref={viewportRef} className={styles.viewport} data-testid={testId ? `${testId}-viewport` : undefined}>\r\n <SelectRadix.Group className={styles.group}>\r\n {filteredItems.length === 0 ? (\r\n <div className={styles.noResults}>\r\n Nenhum resultado encontrado\r\n </div>\r\n ) : (\r\n <>\r\n {filteredItems.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n \r\n if (hasChildren) {\r\n return (\r\n <ExpandableSelectItem\r\n key={item.id || item.value}\r\n item={item}\r\n variant={variant}\r\n selectedValues={state.selectedValues}\r\n onSelect={(value) => {\r\n if (variant === 'checkbox') {\r\n const isSelected = state.selectedValues.includes(value);\r\n actions.handleMultipleSelect(value, !isSelected);\r\n } else {\r\n actions.handleSingleSelect(value);\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n \r\n return variant === 'checkbox' ? (\r\n <CheckboxSelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n checked={state.selectedValues.includes(item.value)}\r\n onCheckedChange={(checked: boolean) =>\r\n actions.handleMultipleSelect(item.value, checked)\r\n }\r\n />\r\n ) : (\r\n <SelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n variant={variant}\r\n disableFocusOnHover={search}\r\n />\r\n );\r\n })}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>\r\n Carregando mais itens...\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </SelectRadix.Group>\r\n </SelectRadix.Viewport>\r\n </SelectRadix.Content>\r\n </SelectRadix.Portal>\r\n </div>\r\n </SelectRadix.Root>\r\n );\r\n};\r\n\r\nSelect.displayName = 'Select';\r\n\r\nexport default Select;","import { SearchInfo20Regular } from '@fluentui/react-icons';\r\n\r\nimport styles from '../Table.module.scss';\r\n\r\nimport type { EmptyStateProps } from '../Table.types';\r\n\r\nconst EmptyState = ({ emptyIcon, emptyTitle, emptyText }: EmptyStateProps) => (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n {emptyIcon ?? <SearchInfo20Regular />}\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>\r\n {emptyTitle ?? 'Nenhum dado encontrado'}\r\n </h3>\r\n <p className={styles.tableEmptyCaption}>\r\n {emptyText ?? 'Nenhum registro encontrado'}\r\n </p>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport default EmptyState;\r\n","import clsx from 'clsx';\r\nimport { Toggle as ToggleRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport Tooltip from '../../Tooltip';\r\nimport styles from '../ToggleButton.module.scss';\r\n\r\nimport type { ToggleButtonProps } from '../ToggleButton.types';\r\n\r\nconst Toggle: React.FC<ToggleButtonProps> = ({\r\n pressed,\r\n defaultPressed,\r\n onPressedChange,\r\n disabled = false,\r\n className,\r\n label,\r\n id,\r\n size = 'lg',\r\n scale = 1,\r\n style,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n icon,\r\n iconOnly = false,\r\n mode: _mode,\r\n selectionType: _type,\r\n value: _value,\r\n defaultValue: _defaultValue,\r\n onValueChange: _onValueChange,\r\n items: _items,\r\n expandOnSelect: _expandOnSelect,\r\n requireSelection: _requireSelection,\r\n ...rest\r\n}) => {\r\n const toggle = (\r\n <ToggleRadix.Root\r\n pressed={pressed}\r\n defaultPressed={defaultPressed}\r\n onPressedChange={onPressedChange}\r\n disabled={disabled}\r\n className={clsx(\r\n styles.toggle,\r\n styles[`toggle-${size}`],\r\n {\r\n [styles.toggleIconOnly]: iconOnly,\r\n [styles.toggleWithIcon]: !!icon && !iconOnly,\r\n },\r\n className,\r\n )}\r\n id={id}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n {iconOnly ? (\r\n <span className={styles.toggleIconLeft} aria-hidden=\"true\">{icon}</span>\r\n ) : (\r\n <>\r\n {icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{icon}</span>}\r\n {label}\r\n </>\r\n )}\r\n </ToggleRadix.Root>\r\n );\r\n\r\n if (tooltipText) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n {toggle}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return toggle;\r\n};\r\n\r\nexport default Toggle;\r\n\r\n","import clsx from 'clsx';\r\nimport { ToggleGroup as ToggleGroupRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport Tooltip from '../../Tooltip';\r\nimport styles from '../ToggleButton.module.scss';\r\n\r\nimport type { ToggleButtonProps } from '../ToggleButton.types';\r\n\r\nconst ToggleGroup: React.FC<ToggleButtonProps> = ({\r\n selectionType = 'single',\r\n value,\r\n defaultValue,\r\n onValueChange,\r\n requireSelection = false,\r\n disabled = false,\r\n items = [],\r\n expandOnSelect: groupExpandOnSelect = false,\r\n className,\r\n id,\r\n size = 'lg',\r\n scale = 1,\r\n style,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n mode: _mode,\r\n icon: _icon,\r\n iconOnly: _iconOnly,\r\n pressed: _pressed,\r\n defaultPressed: _defaultPressed,\r\n onPressedChange: _onPressedChange,\r\n ...rest\r\n}) => {\r\n const singleValueProp = value as string | undefined;\r\n const singleOnValueChange = onValueChange as ((value: string) => void) | undefined;\r\n const isSingleControlled = singleValueProp !== undefined;\r\n\r\n const [uncontrolledValue, setUncontrolledValue] = React.useState(\r\n (defaultValue as string | undefined) ?? '',\r\n );\r\n\r\n const handleSingleValueChange = React.useCallback(\r\n (next: string) => {\r\n if (requireSelection && !next) {\r\n return;\r\n }\r\n if (!isSingleControlled) {\r\n setUncontrolledValue(next);\r\n }\r\n singleOnValueChange?.(next);\r\n },\r\n [requireSelection, isSingleControlled, singleOnValueChange],\r\n );\r\n\r\n const rootProps =\r\n selectionType === 'multiple'\r\n ? {\r\n type: 'multiple' as const,\r\n value: value as string[] | undefined,\r\n defaultValue: defaultValue as string[] | undefined,\r\n onValueChange: onValueChange as\r\n | ((value: string[]) => void)\r\n | undefined,\r\n }\r\n : requireSelection\r\n ? {\r\n type: 'single' as const,\r\n value: isSingleControlled ? singleValueProp : uncontrolledValue,\r\n onValueChange: handleSingleValueChange,\r\n }\r\n : {\r\n type: 'single' as const,\r\n value: singleValueProp,\r\n defaultValue: defaultValue as string | undefined,\r\n onValueChange: singleOnValueChange,\r\n };\r\n\r\n const hasExpandableItems = groupExpandOnSelect || items.some((item) => item.expandOnSelect);\r\n\r\n const group = (\r\n <ToggleGroupRadix.Root\r\n {...rootProps}\r\n disabled={disabled}\r\n className={clsx(styles.group, { [styles.groupExpandable]: hasExpandableItems }, className)}\r\n id={id}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n {items.map((item) => {\r\n const expandOnSelect = item.expandOnSelect ?? groupExpandOnSelect;\r\n\r\n return (\r\n <ToggleGroupRadix.Item\r\n key={item.value}\r\n value={item.value}\r\n disabled={item.disabled}\r\n className={clsx(\r\n styles.item,\r\n styles[`item-${size}`],\r\n {\r\n [styles.toggleIconOnly]: item.iconOnly && !expandOnSelect,\r\n [styles.toggleWithIcon]: !!item.icon && !item.iconOnly && !expandOnSelect,\r\n [styles.itemExpandOnSelect]: expandOnSelect,\r\n },\r\n )}\r\n style={{ '--giro-scale': scale } as React.CSSProperties}\r\n >\r\n {expandOnSelect ? (\r\n <>\r\n {item.icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>}\r\n <span className={styles.toggleLabel}>{item.label}</span>\r\n </>\r\n ) : item.iconOnly ? (\r\n <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>\r\n ) : (\r\n <>\r\n {item.icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>}\r\n {item.label}\r\n </>\r\n )}\r\n </ToggleGroupRadix.Item>\r\n );\r\n })}\r\n </ToggleGroupRadix.Root>\r\n );\r\n\r\n if (tooltipText) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n {group}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return group;\r\n};\r\n\r\nexport default ToggleGroup;\r\n","import React from 'react';\r\n\r\nimport Toggle from './components/Toggle';\r\nimport ToggleGroup from './components/ToggleGroup';\r\n\r\nimport type { ToggleButtonProps } from './ToggleButton.types';\r\n\r\nconst ToggleButton: React.FC<ToggleButtonProps> = ({\r\n mode = 'simple',\r\n ...props\r\n}) => {\r\n if (mode === 'combined') {\r\n return <ToggleGroup {...props} />;\r\n }\r\n\r\n return <Toggle {...props} />;\r\n};\r\n\r\nexport default ToggleButton;\r\n\r\n","import { ChevronLeft16Regular, ChevronRight16Regular, ArrowSort16Regular, ArrowSortUp16Regular, ArrowSortDown16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport {\r\n type ColumnDef,\r\n type RowSelectionState,\r\n type SortingState,\r\n flexRender,\r\n getCoreRowModel,\r\n getSortedRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\nimport clsx from 'clsx';\r\nimport { useState, useMemo, useRef, useEffect } from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport 'react-loading-skeleton/dist/skeleton.css';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Button from '../Button/Button';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport EmptyState from './components/EmptyState';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\nimport ToggleButton from '../ToggleButton/ToggleButton';\r\n\r\nimport type { TableV2Props } from './Table.types';\r\n\r\nconst TableV2 = <T,>({\r\n columns,\r\n data,\r\n rowSelection: rowSelectionConfig,\r\n enableSorting = true,\r\n bulkActions,\r\n header,\r\n footer,\r\n loading = false,\r\n emptyIcon,\r\n emptyTitle,\r\n emptyText,\r\n onRow,\r\n className,\r\n}: TableV2Props<T>) => {\r\n const isRowSelectionEnabled = !!rowSelectionConfig;\r\n const isControlled = rowSelectionConfig?.selectedRowKeys !== undefined;\r\n\r\n const [pendingSearch, setPendingSearch] = useState(header?.searchValue ?? '');\r\n\r\n useEffect(() => {\r\n if (header?.searchValue !== undefined) {\r\n setPendingSearch(header.searchValue);\r\n }\r\n }, [header?.searchValue]);\r\n\r\n const [activeView, setActiveView] = useState<string>(\r\n header?.viewToggle?.value ??\r\n header?.viewToggle?.defaultValue ??\r\n header?.viewToggle?.items?.[0]?.value ??\r\n ''\r\n );\r\n\r\n useEffect(() => {\r\n if (header?.viewToggle?.value !== undefined) {\r\n setActiveView(header.viewToggle.value);\r\n }\r\n }, [header?.viewToggle?.value]);\r\n\r\n const currentViewData = header?.viewToggle?.views?.[activeView];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const effectiveColumns = (currentViewData?.columns ?? columns) as ColumnDef<T, any>[];\r\n const effectiveData = currentViewData?.data ?? data;\r\n const [rowSelectionState, setRowSelectionState] = useState<RowSelectionState>({});\r\n const rowSelectionRef = useRef<RowSelectionState>({});\r\n\r\n const externalSelectionState = useMemo<RowSelectionState>(() => {\r\n if (!rowSelectionConfig?.selectedRowKeys) return {};\r\n return Object.fromEntries(\r\n rowSelectionConfig.selectedRowKeys.map((key) => [String(key), true])\r\n );\r\n }, [rowSelectionConfig?.selectedRowKeys]);\r\n\r\n const effectiveRowSelection = isControlled ? externalSelectionState : rowSelectionState;\r\n rowSelectionRef.current = effectiveRowSelection;\r\n const lastEmittedSelectionKey = useRef('{}');\r\n const [sorting, setSorting] = useState<SortingState>([]);\r\n const [pagination, setPagination] = useState({\r\n pageIndex: 0,\r\n pageSize: footer?.defaultPageSize ?? 10,\r\n });\r\n const { pageIndex, pageSize } = pagination;\r\n\r\n const selectionColumn = useMemo<ColumnDef<T, unknown>>(() => ({\r\n id: '__select__',\r\n size: 48,\r\n enableSorting: false,\r\n enableColumnFilter: false,\r\n header: ({ table: t }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={t.getIsAllPageRowsSelected()}\r\n indeterminate={t.getIsSomePageRowsSelected()}\r\n disabled={rowSelectionConfig?.disableSelectAll}\r\n onCheckedChange={(checked) =>\r\n t.toggleAllPageRowsSelected(checked)\r\n }\r\n />\r\n </div>\r\n ),\r\n cell: ({ row }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n disabled={!row.getCanSelect()}\r\n onCheckedChange={(checked) => row.toggleSelected(checked)}\r\n />\r\n </div>\r\n ),\r\n }), [rowSelectionConfig?.disableSelectAll]);\r\n\r\n const resolvedColumns = useMemo(\r\n () => (isRowSelectionEnabled ? [selectionColumn, ...effectiveColumns] : effectiveColumns),\r\n [isRowSelectionEnabled, selectionColumn, effectiveColumns]\r\n );\r\n\r\n const showSearch = !!(header?.onSearchChange);\r\n\r\n const table = useReactTable({\r\n data: effectiveData,\r\n columns: resolvedColumns,\r\n defaultColumn: { minSize: 44, size: 0 },\r\n state: {\r\n ...(isRowSelectionEnabled ? { rowSelection: effectiveRowSelection } : {}),\r\n ...(enableSorting ? { sorting } : {}),\r\n },\r\n onSortingChange: enableSorting ? setSorting : undefined,\r\n enableSorting,\r\n onRowSelectionChange: isRowSelectionEnabled\r\n ? (updater) => {\r\n const prev = rowSelectionRef.current;\r\n const next = typeof updater === 'function' ? updater(prev) : updater;\r\n const selectionKey = JSON.stringify(next, Object.keys(next).sort());\r\n if (selectionKey === lastEmittedSelectionKey.current) return;\r\n lastEmittedSelectionKey.current = selectionKey;\r\n rowSelectionRef.current = next;\r\n if (!isControlled) {\r\n setRowSelectionState(next);\r\n }\r\n if (rowSelectionConfig?.onRowChange) {\r\n const allRows = table.getCoreRowModel().rows;\r\n const selectedRows = allRows.filter((r) => next[r.id]).map((r) => r.original);\r\n const selectedKeys = allRows.filter((r) => next[r.id]).map((r) => r.index as (string | number));\r\n rowSelectionConfig.onRowChange(selectedRows, selectedKeys);\r\n }\r\n }\r\n : undefined,\r\n enableRowSelection: isRowSelectionEnabled\r\n ? typeof rowSelectionConfig?.disabled === 'function'\r\n ? (row) => !(rowSelectionConfig.disabled as (r: T, i: number) => boolean)(row.original, row.index)\r\n : typeof rowSelectionConfig?.disabled === 'boolean'\r\n ? !rowSelectionConfig.disabled\r\n : true\r\n : false,\r\n getCoreRowModel: getCoreRowModel(),\r\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\r\n });\r\n\r\n const effectiveTotalItems = footer?.totalItems ?? 0;\r\n const totalPages = footer ? Math.ceil(effectiveTotalItems / pageSize) : 0;\r\n const canGoPrev = pageIndex > 0;\r\n const canGoNext = pageIndex + 1 < totalPages;\r\n\r\n const skeletonRowCount = footer ? pageSize : (effectiveData.length > 0 ? effectiveData.length : pageSize);\r\n\r\n const selectedRows = useMemo(\r\n () =>\r\n table\r\n .getCoreRowModel()\r\n .rows.filter((r) => effectiveRowSelection[r.id])\r\n .map((r) => r.original),\r\n [effectiveRowSelection, table]\r\n );\r\n const selectedCount = selectedRows.length;\r\n const showBulkActions = isRowSelectionEnabled && !!bulkActions && selectedCount > 0;\r\n\r\n useEffect(() => {\r\n if (isRowSelectionEnabled) {\r\n table.resetRowSelection();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pageIndex]);\r\n\r\n useEffect(() => {\r\n if (footer?.currentPage !== undefined) {\r\n const targetPageIndex = footer.currentPage - 1;\r\n setPagination((prev) =>\r\n prev.pageIndex !== targetPageIndex\r\n ? { ...prev, pageIndex: targetPageIndex }\r\n : prev,\r\n );\r\n }\r\n }, [footer?.currentPage]);\r\n\r\n const handleClearSelection = () => {\r\n table.resetRowSelection();\r\n bulkActions?.onClear?.();\r\n };\r\n\r\n const handlePageSizeChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const size = Number(e.target.value);\r\n setPagination({ pageIndex: 0, pageSize: size });\r\n footer?.onPageSizeChange?.(size);\r\n };\r\n\r\n return (\r\n <div className={clsx(styles.wrapper, className)}>\r\n {showBulkActions && (\r\n <div className={styles.bulkActionsBar}>\r\n <div className={styles.bulkActionsInfo}>\r\n <Button\r\n variant=\"text\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n ariaLabel=\"Limpar seleção\"\r\n onClick={handleClearSelection}\r\n className={styles.bulkActionsClearButton}\r\n />\r\n <span className={styles.bulkActionsLabel}>\r\n {bulkActions.label\r\n ? bulkActions.label(selectedCount, selectedRows)\r\n : `${selectedCount} ${selectedCount === 1 ? 'item selecionado' : 'itens selecionados'}`}\r\n </span>\r\n </div>\r\n <div className={styles.bulkActionsButtons}>\r\n {bulkActions.actions.map((action, index) => (\r\n <Button\r\n key={index}\r\n variant={action.variant ?? 'outlined'}\r\n type=\"button\"\r\n disabled={action.disabled}\r\n onClick={action.onClick}\r\n size=\"sm\"\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {header && (\r\n <div className={styles.tableHeader}>\r\n <div className={styles.tableHeaderLeft}>\r\n {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={pendingSearch}\r\n virtualKeyboard={header.virtualKeyboard}\r\n searchMode={header?.searchMode ?? \"on-enter\"}\r\n onChange={(e) => {\r\n setPendingSearch(e.target.value);\r\n }}\r\n onSearch={(val) => {\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.(val);\r\n }}\r\n onClear={() => {\r\n setPendingSearch('');\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.('');\r\n }}\r\n placeholder={header.searchPlaceholder ?? 'Pesquisar...'}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n {header.viewToggle && (\r\n <ToggleButton\r\n mode=\"combined\"\r\n selectionType=\"single\"\r\n value={activeView}\r\n requireSelection={true}\r\n onValueChange={(val) => {\r\n if (!val) return;\r\n setActiveView(val);\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header.viewToggle?.onValueChange?.(val);\r\n }}\r\n items={header.viewToggle.items.map((item) => ({\r\n value: item.value,\r\n icon: item.icon,\r\n iconOnly: true,\r\n tooltipText: item.tooltipText,\r\n }))}\r\n />\r\n )}\r\n </div>\r\n {!!header.filterItems?.length && (\r\n <div className={styles.tableHeaderFilters}>\r\n {header.filterItems.some((item) => item.type !== 'combined') && (\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n )}\r\n <div className={styles.tableHeaderFilterItems}>\r\n {header.filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (filterItem.type === 'combined') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n mode=\"combined\"\r\n buttonText={filterItem.buttonText}\r\n icon={filterItem.icon}\r\n title={filterItem.title}\r\n drawerWidth={filterItem.drawerWidth}\r\n appliedFilterCount={filterItem.activeCount}\r\n drawerHeaderContent={filterItem.drawerHeaderContent}\r\n onApply={filterItem.onApply}\r\n onClear={filterItem.onClear}\r\n variant={filterItem.variant ?? 'outlined'}\r\n disabled={filterItem.disabled}\r\n >\r\n {filterItem.children}\r\n </Filter>\r\n );\r\n }\r\n if (filterItem.type === 'calendar') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n locale={filterItem.locale}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className={styles.tableContainer}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table\r\n className={styles.table}\r\n aria-label=\"Tabela de dados\"\r\n aria-rowcount={data.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <tr key={headerGroup.id}>\r\n {headerGroup.headers.map((col) => (\r\n <th\r\n key={col.id}\r\n className={styles.tableTh}\r\n style={{\r\n textAlign: col.column.columnDef.meta?.align,\r\n width: col.column.columnDef.size || undefined,\r\n minWidth: col.column.columnDef.minSize,\r\n maxWidth: col.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? col.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div className={styles.tableThContent}>\r\n {col.isPlaceholder ? null : col.column.getCanSort() ? (\r\n <button\r\n type=\"button\"\r\n className={styles.tableSortButton}\r\n onClick={col.column.getToggleSortingHandler()}\r\n aria-label={`Ordenar por ${typeof col.column.columnDef.header === 'string' ? col.column.columnDef.header : col.id}`}\r\n >\r\n {flexRender(col.column.columnDef.header, col.getContext())}\r\n {col.column.getIsSorted() === 'asc' ? (\r\n <ArrowSortUp16Regular className={styles.tableSortIcon} />\r\n ) : col.column.getIsSorted() === 'desc' ? (\r\n <ArrowSortDown16Regular className={styles.tableSortIcon} />\r\n ) : (\r\n <ArrowSort16Regular className={styles.tableSortIconNeutral} />\r\n )}\r\n </button>\r\n ) : (\r\n flexRender(col.column.columnDef.header, col.getContext())\r\n )}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n ))}\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\r\n <tr key={`skeleton-row-${rowIdx}`} className={styles.tableRow}>\r\n {table.getVisibleLeafColumns().map((col) => (\r\n <td key={col.id} className={styles.tableTd}>\r\n <Skeleton />\r\n </td>\r\n ))}\r\n </tr>\r\n ))\r\n ) : table.getRowModel().rows.length > 0 ? (\r\n table.getRowModel().rows.map((row, index) => {\r\n const rowProps = onRow?.(row.original, index) ?? {};\r\n return (\r\n <tr\r\n key={row.id}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {row.getVisibleCells().map((cell) => (\r\n <td\r\n key={cell.id}\r\n className={styles.tableTd}\r\n style={{\r\n textAlign: cell.column.columnDef.meta?.align,\r\n width: cell.column.columnDef.size || undefined,\r\n minWidth: cell.column.columnDef.minSize,\r\n maxWidth: cell.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? cell.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div\r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta?.maxHeight ?? '64px' }}\r\n >\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td\r\n colSpan={table.getVisibleLeafColumns().length}\r\n className={styles.tableEmptyCell}\r\n >\r\n <EmptyState emptyIcon={emptyIcon} emptyTitle={emptyTitle} emptyText={emptyText} />\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n {footer && (\r\n <div className={styles.tablePagination}>\r\n <div className={styles.tablePaginationSelect}>\r\n <label\r\n htmlFor=\"tablev2-page-size\"\r\n className={styles.tablePaginationLabel}\r\n >\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"tablev2-page-size\"\r\n value={pageSize}\r\n onChange={handlePageSizeChange}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {(footer.pageSizeOptions ?? [10, 25, 50, 100]).map((opt) => (\r\n <option key={opt} value={opt}>\r\n {opt}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalPages > 0\r\n ? `${pageIndex + 1} de ${totalPages}`\r\n : '0 páginas'}\r\n </span>\r\n </div>\r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex - 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex + 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default TableV2;\r\n","import clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, useEffect } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport styles from './TextArea.module.scss';\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport LabelComponent from '../../shared/Label';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>((\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n onBlur,\r\n onFocus,\r\n name,\r\n resize = 'vertical',\r\n charCount = false,\r\n height,\r\n virtualKeyboard,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const normalizeValue = (val: string | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n\r\n const [textareaValue, setTextareaValue] = useState(normalizeValue(value));\r\n const [textareaError, setTextareaError] = useState('');\r\n const { internalRef: textareaRef, setRefs: setTextareaRefs } = useInputKeyboardValue(ref);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n setTextareaValue(normalizeValue(value));\r\n }, [value]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setTextareaValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n if (required && textareaValue.trim() === '') {\r\n setTextareaError(errorMessage || 'Campo obrigatório.');\r\n } else {\r\n setTextareaError('');\r\n }\r\n onBlur?.(e);\r\n },\r\n [textareaValue, required, errorMessage, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const hasError = Boolean(textareaError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || textareaError || helperText;\r\n const helperId = (textareaError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n disabled && styles.disabled,\r\n hasError && !disabled && styles.error,\r\n className\r\n );\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={!!tooltipText}\r\n tooltipText={tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <textarea\r\n {...rest}\r\n ref={setTextareaRefs}\r\n id={componentId}\r\n name={name}\r\n value={textareaValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n style={{ resize, height }}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n />\r\n </div>\r\n\r\n {(((error && errorMessage) || textareaError || helperText) || (charCount && maxLength)) && (\r\n <div className={styles.footer}>\r\n {((error && errorMessage) || textareaError || helperText) && (\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n )}\r\n\r\n {charCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n maxLength={maxLength}\r\n value={textareaValue}\r\n targetRef={textareaRef}\r\n onChange={(val: string) => {\r\n if (!disabled && (!maxLength || val.length <= maxLength)) {\r\n setTextareaValue(val);\r\n onChange?.(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nTextArea.displayName = 'TextArea';\r\n\r\nexport default React.memo(TextArea);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\n\r\n/**\r\n * Valor disponibilizado pelo contexto do sistema de Toast.\r\n *\r\n * Acessível via `useToast()` em componentes filhos do `ToastProvider`.\r\n *\r\n * @see {@link useToast}\r\n */\r\nexport interface ToastContextValue {\r\n /** Lista de toasts atualmente visíveis na tela. */\r\n toasts: ToastProps[];\r\n /**\r\n * Exibe um novo toast na tela.\r\n *\r\n * Gera um `id` único automaticamente e adiciona o toast à fila.\r\n * Quando o limite de `maxToasts` é atingido, o toast mais antigo é removido.\r\n *\r\n * @param toast - Propriedades do toast a ser exibido (sem `id`).\r\n */\r\n showToast: (toast: Omit<ToastProps, 'id'>) => void;\r\n /**\r\n * Remove um toast específico da tela pelo seu `id`.\r\n *\r\n * @remarks\r\n * Geralmente não é necessário chamar este método manualmente, pois os toasts\r\n * se fecham automaticamente (via `duration`) ou pelo botão de fechar do usuário.\r\n *\r\n * @param id - ID único do toast a ser removido.\r\n */\r\n dismissToast: (id: string) => void;\r\n}\r\n\r\n/**\r\n * Contexto React que armazena o estado e as ações do sistema de Toast.\r\n *\r\n * @remarks\r\n * Não consuma este contexto diretamente. Utilize o hook `useToast()` para\r\n * acessar as funcionalidades de forma segura e com verificação de provider.\r\n *\r\n * @see {@link ToastContextValue}\r\n * @see {@link useToast}\r\n */\r\nexport const ToastContext = React.createContext<ToastContextValue | undefined>(undefined);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\nimport { ToastContext } from '../contexts/ToastContext';\r\n\r\n/**\r\n * Hook interno que acessa o `ToastContext` diretamente.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns O valor completo do contexto — `toasts`, `showToast` e `dismissToast`.\r\n *\r\n * @internal\r\n */\r\nexport const useToastContext = () => {\r\n const context = React.useContext(ToastContext);\r\n if (!context) {\r\n throw new Error('useToastContext deve ser usado dentro de ToastProvider');\r\n }\r\n return context;\r\n};\r\n\r\n/**\r\n * Hook para exibir e remover toasts na aplicação.\r\n *\r\n * O componente que usa este hook deve ser filho de um `ToastProvider`.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns Objeto com os métodos `showToast` e `dismissToast`.\r\n *\r\n * @example\r\n * ```tsx\r\n * import { useToast } from '@giro-ds/react';\r\n *\r\n * function MeuComponente() {\r\n * const { showToast } = useToast();\r\n *\r\n * const handleSalvar = async () => {\r\n * try {\r\n * await salvarDados();\r\n * showToast({ title: 'Sucesso!', iconType: 'Success', duration: 3000 });\r\n * } catch (err) {\r\n * showToast({ title: 'Erro ao salvar', iconType: 'Alert', automaticClose: false });\r\n * }\r\n * };\r\n *\r\n * return <button onClick={handleSalvar}>Salvar</button>;\r\n * }\r\n * ```\r\n */\r\nexport const useToast = () => {\r\n const { showToast, dismissToast } = useToastContext();\r\n\r\n return {\r\n showToast: (toast: Omit<ToastProps, 'id'>) => showToast(toast),\r\n dismissToast: (id: string) => dismissToast(id),\r\n };\r\n};\r\n","import { Info20Filled, CheckmarkCircle20Filled, Warning20Filled, Dismiss16Filled} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Toast.module.scss';\r\nimport { ToastProps } from './Toast.types';\r\nimport { useToastContext } from '../../hooks/useToast';\r\n\r\n/**\r\n * Componente individual de notificação Toast.\r\n *\r\n * Consome o contexto do `ToastProvider` para gerenciar seu próprio ciclo de vida.\r\n * Cada instância recebe um `id` único gerado pelo provider e o utiliza para\r\n * se remover da fila ao ser fechada.\r\n *\r\n * Construído sobre `Toast.Root` do **Radix UI**, com suporte completo a\r\n * acessibilidade (ARIA) e gesto de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * Este componente não deve ser usado diretamente. Utilize o hook `useToast`\r\n * para exibir toasts programaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Uso indireto via hook (recomendado)\r\n * const { showToast } = useToast();\r\n *\r\n * showToast({\r\n * title: 'Item salvo',\r\n * iconType: 'Success',\r\n * duration: 3000,\r\n * });\r\n * ```\r\n *\r\n * @param props - {@link ToastProps} combinadas com o `id` único do toast\r\n */\r\nconst Toast: React.FC<ToastProps & { id: string }> = ({ \r\n id,\r\n title,\r\n duration = 5000,\r\n icon,\r\n iconClosed = <Dismiss16Filled />,\r\n automaticClose = true,\r\n iconType = \"Info\",\r\n className,\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = React.useState(false);\r\n const { dismissToast } = useToastContext();\r\n const dismissTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n React.useEffect(() => {\r\n setOpen(true);\r\n return () => {\r\n if (dismissTimerRef.current !== null) {\r\n clearTimeout(dismissTimerRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n dismissTimerRef.current = setTimeout(() => dismissToast(id), 200);\r\n }\r\n };\r\n\r\n let displayIcon = icon;\r\n const effectiveDuration = automaticClose ? duration : Infinity;\r\n\r\n if (!icon) {\r\n if (iconType === 'Info') {\r\n displayIcon = <Info20Filled />;\r\n } else if (iconType === 'Success') {\r\n displayIcon = <CheckmarkCircle20Filled />;\r\n } else if (iconType === 'Alert') {\r\n displayIcon = <Warning20Filled />;\r\n }\r\n }\r\n\r\n return (\r\n <ToastRadix.Root \r\n className={clsx(styles.toastRoot, className)} \r\n open={open} \r\n onOpenChange={handleOpenChange} \r\n duration={effectiveDuration}\r\n {...rest}\r\n >\r\n <span className={`${styles.Icon} ${iconType ? styles[`icon${iconType}`] : ''}`} aria-hidden=\"true\">\r\n {displayIcon}\r\n </span>\r\n <div className={styles.toastContent}>\r\n <ToastRadix.Title className={styles.toastTitle}> {title} </ToastRadix.Title>\r\n </div>\r\n <ToastRadix.Close className={styles.toastClose}> {iconClosed} </ToastRadix.Close>\r\n </ToastRadix.Root>\r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import * as React from 'react';\r\n\r\nimport { ToastContext } from '../../../contexts/ToastContext';\r\nimport { ToastProps } from '../Toast.types';\r\n\r\n/**\r\n * Provider que gerencia o estado global dos toasts na aplicação.\r\n *\r\n * Deve envolver toda a árvore de componentes que precisará exibir toasts.\r\n * Disponibiliza o contexto com `showToast` e `dismissToast` para todos os\r\n * componentes filhos via `useToast()`.\r\n *\r\n * @remarks\r\n * O `ToastContainer` deve ser renderizado **dentro** do `ToastProvider`.\r\n *\r\n * @example\r\n * ```tsx\r\n * // App.tsx ou layout principal\r\n * import { ToastProvider, ToastContainer } from '@giro-ds/react';\r\n *\r\n * function App() {\r\n * return (\r\n * <ToastProvider maxToasts={5}>\r\n * <Routes />\r\n * <ToastContainer />\r\n * </ToastProvider>\r\n * );\r\n * }\r\n * ```\r\n *\r\n * @param children - Árvore de componentes filhos da aplicação.\r\n * @param maxToasts - Número máximo de toasts exibidos simultaneamente.\r\n * Quando o limite é excedido, o toast mais antigo é removido automaticamente.\r\n * @default 5\r\n */\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode; maxToasts?: number }> = ({ \r\n children, \r\n maxToasts = 5 \r\n}) => {\r\n const [toasts, setToasts] = React.useState<ToastProps[]>([]);\r\n\r\n const showToast = React.useCallback((toast: Omit<ToastProps, 'id'>) => {\r\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const newToast: ToastProps = { ...toast, id };\r\n\r\n setToasts((prevToasts) => {\r\n const updatedToasts = [...prevToasts, newToast];\r\n if (updatedToasts.length > maxToasts) {\r\n return updatedToasts.slice(updatedToasts.length - maxToasts);\r\n }\r\n return updatedToasts;\r\n });\r\n }, [maxToasts]);\r\n\r\n const dismissToast = React.useCallback((id: string) => {\r\n setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));\r\n }, []);\r\n\r\n const value = React.useMemo(\r\n () => ({ toasts, showToast, dismissToast }),\r\n [toasts, showToast, dismissToast]\r\n );\r\n\r\n return (\r\n <ToastContext.Provider value={value}>\r\n {children}\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nToastProvider.displayName = 'ToastProvider';\r\n","import { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { useToastContext } from '../../../hooks/useToast';\r\nimport Toast from '../Toast';\r\nimport styles from '../Toast.module.scss';\r\n\r\n/**\r\n * Componente responsável por renderizar todos os toasts ativos na tela.\r\n *\r\n * Lê a lista de toasts do contexto fornecido pelo `ToastProvider` e os\r\n * renderiza individualmente. Configura o `Toast.Provider` do Radix UI com\r\n * direção de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * - Deve ser posicionado **dentro** do `ToastProvider`.\r\n * - Geralmente é colocado próximo à raiz da aplicação, após os demais filhos.\r\n * - Toasts sem `id` são ignorados automaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ToastProvider>\r\n * <App />\r\n * <ToastContainer /> {/* Deve estar aqui *\\/}\r\n * </ToastProvider>\r\n * ```\r\n */\r\nexport const ToastContainer: React.FC = () => {\r\n const { toasts } = useToastContext();\r\n\r\n return (\r\n <ToastRadix.Provider swipeDirection=\"left\">\r\n {toasts.map((toast) => {\r\n if (!toast.id) return null;\r\n return <Toast key={toast.id} id={toast.id} {...toast} />;\r\n })}\r\n <ToastRadix.Viewport className={styles.toastViewport} />\r\n </ToastRadix.Provider>\r\n );\r\n};\r\n\r\nToastContainer.displayName = 'ToastContainer';\r\n","import clsx from 'clsx';\r\nimport { Switch as SwitchRadix} from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Switch.module.scss';\r\nimport { SwitchProps } from './Switch.types';\r\n\r\nconst Switch: React.FC<SwitchProps> = ({\r\n\tdisabled = false,\r\n\tdefaultChecked = false,\r\n\tchecked,\r\n\tonCheckedChange,\r\n\tscale = 1,\r\n\tclassName,\r\n\tstyle,\r\n\t...rest\r\n}) => {\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={clsx(styles.container, className)}\r\n\t\t\tstyle={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n\t\t>\r\n\t\t\t<SwitchRadix.Root \r\n\t\t\t\tclassName={styles.switchRoot} \r\n\t\t\t\tdisabled={disabled} \r\n\t\t\t\tdefaultChecked={defaultChecked} \r\n\t\t\t\tchecked={checked}\r\n\t\t\t\tonCheckedChange={onCheckedChange}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t<SwitchRadix.Thumb className={styles.switchThumb} />\r\n\t\t\t</SwitchRadix.Root>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Switch;","import clsx from 'clsx';\r\nimport { unstable_OneTimePasswordField as OneTimePasswordFieldRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { VerificationCodeProps } from './VerificationCode.types';\r\n\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n validationType = 'numeric',\r\n value,\r\n defaultValue,\r\n onValueChange,\r\n autoSubmit = false,\r\n onAutoSubmit,\r\n name,\r\n form,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n readOnly = false,\r\n className,\r\n id,\r\n}) => {\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n\r\n return (\r\n <div id={id} className={clsx(styles.container, className)}>\r\n <OneTimePasswordFieldRadix.Root\r\n className={styles.inputGroup}\r\n validationType={validationType}\r\n value={value}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n autoSubmit={autoSubmit}\r\n onAutoSubmit={onAutoSubmit}\r\n name={name}\r\n form={form}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n data-error={hasError || undefined}\r\n >\r\n {Array.from({ length: validLength }, (_, i) => (\r\n <OneTimePasswordFieldRadix.Input\r\n key={i}\r\n className={clsx(\r\n styles.input,\r\n hasError && styles.inputError,\r\n disabled && styles.inputDisabled,\r\n )}\r\n />\r\n ))}\r\n <OneTimePasswordFieldRadix.HiddenInput />\r\n </OneTimePasswordFieldRadix.Root>\r\n\r\n {hasError && errorMessage && (\r\n <span className={styles.errorMessage}>{errorMessage}</span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VerificationCode;\r\n","import { useState, useCallback, useRef, useEffect } from 'react';\r\n\r\n/**\r\n * Configurações para simulação de API\r\n */\r\nexport interface ApiSimulationConfig {\r\n /** Items por página */\r\n itemsPerPage?: number;\r\n /** Total de items no dataset */\r\n totalItems?: number;\r\n /** Delay em ms para simular latência */\r\n delay?: number;\r\n /** Taxa de erro (0-1) para simular falhas */\r\n errorRate?: number;\r\n /** Função geradora de items customizada */\r\n itemGenerator?: (index: number, searchQuery?: string) => any;\r\n /** Debug mode */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Estado da simulação de API\r\n */\r\nexport interface ApiSimulationState<T> {\r\n /** Items carregados */\r\n items: T[];\r\n /** Página atual */\r\n currentPage: number;\r\n /** Total de páginas */\r\n totalPages: number;\r\n /** Status do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Erro atual (se houver) */\r\n error: string | null;\r\n /** Query de busca atual */\r\n searchQuery: string;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se é a primeira página */\r\n isFirstPage: boolean;\r\n}\r\n\r\nexport interface ApiSimulationActions {\r\n /** Carregar próxima página */\r\n loadNextPage: () => Promise<void>;\r\n /** Realizar nova busca */\r\n search: (query: string) => Promise<void>;\r\n /** Reset completo */\r\n reset: () => void;\r\n /** Retry da última operação */\r\n retry: () => Promise<void>;\r\n}\r\n\r\nexport interface UseApiSimulationReturn<T> extends ApiSimulationState<T> {\r\n actions: ApiSimulationActions;\r\n}\r\n\r\n\r\nexport function useApiSimulation<T = any>(\r\n config: ApiSimulationConfig = {}\r\n): UseApiSimulationReturn<T> {\r\n const {\r\n itemsPerPage = 20,\r\n totalItems = 500,\r\n delay = 800,\r\n errorRate = 0,\r\n itemGenerator,\r\n debug = false\r\n } = config;\r\n\r\n // Estados\r\n const [items, setItems] = useState<T[]>([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [status, setStatus] = useState<'idle' | 'loading' | 'succeeded' | 'failed'>('idle');\r\n const [error, setError] = useState<string | null>(null);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n // Refs para evitar re-criações\r\n const abortControllerRef = useRef<AbortController | null>(null);\r\n const lastOperationRef = useRef<'load' | 'search'>('load');\r\n\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const hasNextPage = currentPage < totalPages;\r\n const isFirstPage = currentPage === 0;\r\n\r\n // ✅ Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [ApiSimulation] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ Gerador padrão de items\r\n const defaultItemGenerator = useCallback((index: number, search?: string) => {\r\n const departments = ['Vendas', 'Marketing', 'TI', 'RH', 'Financeiro', 'Operações'];\r\n const locations = ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Porto Alegre'];\r\n const itemNumber = index + 1;\r\n\r\n return {\r\n id: `item-${itemNumber}`,\r\n text: search\r\n ? `${search} - Item ${itemNumber}`\r\n : `Item ${itemNumber}`,\r\n subText: search\r\n ? `Resultado para \"${search}\" - ${departments[itemNumber % departments.length]}`\r\n : `${departments[itemNumber % departments.length]} • ${locations[itemNumber % locations.length]}`,\r\n disabled: itemNumber % 25 === 0,\r\n category: departments[itemNumber % departments.length],\r\n location: locations[itemNumber % locations.length]\r\n };\r\n }, []);\r\n\r\n // ✅ Simular chamada de API\r\n const simulateApiCall = useCallback(async (\r\n page: number,\r\n search: string = ''\r\n ): Promise<T[]> => {\r\n debugLog('Iniciando simulação de API', { page, search, delay });\r\n\r\n // Cancelar requisição anterior se existir\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n // Criar novo controller\r\n const controller = new AbortController();\r\n abortControllerRef.current = controller;\r\n\r\n try {\r\n // Simular delay de rede\r\n await new Promise((resolve, reject) => {\r\n const timeout = setTimeout(resolve, delay);\r\n controller.signal.addEventListener('abort', () => {\r\n clearTimeout(timeout);\r\n reject(new Error('Request aborted'));\r\n });\r\n });\r\n\r\n // Verificar se foi cancelada\r\n if (controller.signal.aborted) {\r\n throw new Error('Request was cancelled');\r\n }\r\n\r\n // Simular erro aleatório\r\n if (Math.random() < errorRate) {\r\n throw new Error('Simulated network error');\r\n }\r\n\r\n // Calcular range de items\r\n const startIndex = page * itemsPerPage;\r\n const generator = itemGenerator || defaultItemGenerator;\r\n\r\n // Gerar items da página\r\n const pageItems = Array.from({ length: itemsPerPage }, (_, index) => {\r\n const globalIndex = startIndex + index;\r\n if (globalIndex >= totalItems) return null;\r\n return generator(globalIndex, search);\r\n }).filter(Boolean) as T[];\r\n\r\n debugLog('API simulada com sucesso', {\r\n page,\r\n itemsReturned: pageItems.length,\r\n search\r\n });\r\n\r\n return pageItems;\r\n\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n debugLog('Request cancelada');\r\n throw err;\r\n }\r\n\r\n debugLog('Erro na simulação de API', err);\r\n throw new Error('Falha ao carregar dados. Tente novamente.');\r\n }\r\n }, [delay, errorRate, itemsPerPage, totalItems, itemGenerator, defaultItemGenerator, debugLog]);\r\n\r\n // ✅ Carregar próxima página\r\n const loadNextPage = useCallback(async () => {\r\n if (status === 'loading' || !hasNextPage) {\r\n debugLog('Load next page ignorado', { status, hasNextPage });\r\n return;\r\n }\r\n\r\n lastOperationRef.current = 'load';\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const nextPage = currentPage + 1;\r\n const newItems = await simulateApiCall(nextPage - 1, searchQuery);\r\n\r\n setItems(prev => nextPage === 1 ? newItems : [...prev, ...newItems]);\r\n setCurrentPage(nextPage);\r\n setStatus('succeeded');\r\n\r\n debugLog('Página carregada com sucesso', {\r\n page: nextPage,\r\n totalItems: items.length + newItems.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return; // Ignore cancelled requests\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro desconhecido');\r\n setStatus('failed');\r\n debugLog('Erro ao carregar página', err);\r\n }\r\n }, [status, hasNextPage, currentPage, searchQuery, simulateApiCall, items.length, debugLog]);\r\n\r\n const search = useCallback(async (query: string) => {\r\n debugLog('Iniciando busca', { query });\r\n\r\n lastOperationRef.current = 'search';\r\n setSearchQuery(query);\r\n setCurrentPage(0);\r\n setItems([]);\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const searchResults = await simulateApiCall(0, query);\r\n setItems(searchResults);\r\n setCurrentPage(1);\r\n setStatus('succeeded');\r\n\r\n debugLog('Busca concluída', {\r\n query,\r\n results: searchResults.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return;\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro na busca');\r\n setStatus('failed');\r\n debugLog('Erro na busca', err);\r\n }\r\n }, [simulateApiCall, debugLog]);\r\n\r\n const reset = useCallback(() => {\r\n debugLog('Reset completo da simulação');\r\n\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n setItems([]);\r\n setCurrentPage(0);\r\n setStatus('idle');\r\n setError(null);\r\n setSearchQuery('');\r\n }, [debugLog]);\r\n\r\n const retry = useCallback(async () => {\r\n debugLog('Retry da última operação', {\r\n lastOperation: lastOperationRef.current\r\n });\r\n\r\n if (lastOperationRef.current === 'search') {\r\n await search(searchQuery);\r\n } else {\r\n await loadNextPage();\r\n }\r\n }, [search, searchQuery, loadNextPage, debugLog]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n };\r\n }, []);\r\n\r\n return {\r\n // Estado\r\n items,\r\n currentPage,\r\n totalPages,\r\n status,\r\n error,\r\n searchQuery,\r\n hasNextPage,\r\n isFirstPage,\r\n\r\n // Ações\r\n actions: {\r\n loadNextPage,\r\n search,\r\n reset,\r\n retry\r\n }\r\n };\r\n}\r\n\r\nexport default useApiSimulation;","import { useRef, useEffect, useState, useCallback } from 'react';\r\n\r\n/**\r\n * Props para o hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollProps {\r\n /** Status atual do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Página atual */\r\n page: number;\r\n /** Última página disponível */\r\n lastPage: number;\r\n /** Callback para carregar próxima página */\r\n onLoadMore: () => void;\r\n /** Threshold para IntersectionObserver (0-1) */\r\n threshold?: number;\r\n /** Margem raiz para IntersectionObserver */\r\n rootMargin?: string;\r\n /** Habilita/desabilita o hook */\r\n enabled?: boolean;\r\n /** Debug mode - logs no console */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Retorno do hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollReturn {\r\n /** Ref para o elemento observador */\r\n observerRef: React.RefObject<HTMLDivElement | null>;\r\n /** Se o elemento está visível */\r\n isIntersecting: boolean;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se todas as páginas foram carregadas */\r\n isCompleted: boolean;\r\n /** Função para reset manual */\r\n reset: () => void;\r\n}\r\n\r\n/**\r\n * Hook otimizado para scroll infinito usando IntersectionObserver\r\n */\r\nexport function useInfiniteScroll({\r\n status,\r\n page,\r\n lastPage,\r\n onLoadMore,\r\n threshold = 0.1,\r\n rootMargin = '100px',\r\n enabled = true,\r\n debug = false\r\n}: UseInfiniteScrollProps): UseInfiniteScrollReturn {\r\n const observerRef = useRef<HTMLDivElement>(null);\r\n const [isIntersecting, setIsIntersecting] = useState(false);\r\n \r\n // Refs para controle de estado\r\n const loadingRef = useRef(false);\r\n const lastTriggeredPageRef = useRef(0);\r\n const onLoadMoreRef = useRef(onLoadMore);\r\n\r\n // Manter referência atualizada do callback\r\n useEffect(() => {\r\n onLoadMoreRef.current = onLoadMore;\r\n }, [onLoadMore]);\r\n\r\n // ✅ NOVO: Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [InfiniteScroll] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ MELHORADO: Callback do IntersectionObserver com mais controles\r\n const handleIntersect = useCallback((entries: IntersectionObserverEntry[]) => {\r\n const [target] = entries;\r\n const isVisible = target.isIntersecting;\r\n \r\n setIsIntersecting(isVisible);\r\n debugLog('Element intersecting:', isVisible);\r\n\r\n // Verificar se pode carregar mais\r\n const canLoadMore = enabled &&\r\n isVisible && \r\n status !== 'loading' && \r\n !loadingRef.current &&\r\n page < lastPage &&\r\n page !== lastTriggeredPageRef.current;\r\n\r\n debugLog('Can load more check:', {\r\n enabled,\r\n isVisible,\r\n status,\r\n isLoading: loadingRef.current,\r\n page,\r\n lastPage,\r\n lastTriggered: lastTriggeredPageRef.current,\r\n canLoad: canLoadMore\r\n });\r\n\r\n if (canLoadMore) {\r\n debugLog('Triggering load more for next page');\r\n loadingRef.current = true;\r\n lastTriggeredPageRef.current = page;\r\n onLoadMoreRef.current();\r\n }\r\n }, [enabled, status, page, lastPage, debugLog]);\r\n\r\n // ✅ MELHORADO: Observer com configurações personalizáveis\r\n useEffect(() => {\r\n if (!enabled) {\r\n debugLog('Hook disabled, skipping observer setup');\r\n return;\r\n }\r\n\r\n const observer = new IntersectionObserver(handleIntersect, {\r\n root: null,\r\n rootMargin,\r\n threshold,\r\n });\r\n\r\n const currentObserverRef = observerRef.current;\r\n if (currentObserverRef) {\r\n observer.observe(currentObserverRef);\r\n debugLog('IntersectionObserver attached', { rootMargin, threshold });\r\n }\r\n\r\n return () => {\r\n if (currentObserverRef) {\r\n observer.unobserve(currentObserverRef);\r\n debugLog('IntersectionObserver detached');\r\n }\r\n };\r\n }, [handleIntersect, rootMargin, threshold, enabled, debugLog]);\r\n\r\n // ✅ NOVO: Reset do loading flag quando status muda\r\n useEffect(() => {\r\n if (status !== 'loading') {\r\n loadingRef.current = false;\r\n debugLog('Loading flag reset', { status });\r\n }\r\n }, [status, debugLog]);\r\n\r\n // ✅ NOVO: Função de reset manual\r\n const reset = useCallback(() => {\r\n loadingRef.current = false;\r\n lastTriggeredPageRef.current = 0;\r\n setIsIntersecting(false);\r\n debugLog('Hook manually reset');\r\n }, [debugLog]);\r\n\r\n // Estados calculados\r\n const hasNextPage = page < lastPage;\r\n const isCompleted = page >= lastPage;\r\n\r\n return {\r\n observerRef,\r\n isIntersecting,\r\n hasNextPage,\r\n isCompleted,\r\n reset\r\n };\r\n}"],"names":["styles","_jsxs","AvatarRadix","_jsx","useId","version","forwardRefR18","TooltipRadix","useMemo","_Fragment","SpinnerIos16Regular","formatDistanceLocale","formatDistance","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","localize","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","dateFormats","timeFormats","dateTimeFormats","formatLong","enUS","ptBR","dateFnsEnUS","format","addDays","addMonths","addWeeks","addYears","differenceInCalendarDays","differenceInCalendarMonths","eachMonthOfInterval","eachYearOfInterval","endOfISOWeek","endOfMonth","endOfWeek","endOfYear","getISOWeek","getMonth","getYear","getWeek","isAfter","isBefore","isDate","isSameDay","isSameMonth","isSameYear","max","min","setMonth","setYear","startOfDay","startOfISOWeek","startOfMonth","startOfWeek","startOfYear","dateFnsPtBR","ChevronDown16Regular","ChevronUp16Regular","ChevronLeft16Regular","ChevronRight16Regular","createContext","useContext","useState","DayPicker","Dismiss24Regular","React","CheckboxRadix","PopoverRadix","useRef","useCallback","Backspace20Regular","KeyboardShift20Regular","KeyboardShift20Filled","KeyboardShiftUppercase20Regular","ChevronDown20Regular","Emoji20Regular","ArrowImport20Regular","Spacebar20Regular","useEffect","useLayoutEffect","createPortal","createElement","Label","Info12Regular","TextField","Dismiss16Regular","Calendar16Regular","AlertDialog","DocumentAdd24Regular","Warning24Regular","Document24Regular","FilterRegular","Search16Regular","ChevronDownRegular","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","RadioGroup","Select","useReducer","SelectRadix","SearchInfo20Regular","ToggleRadix","ToggleGroupRadix","useReactTable","getCoreRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","SwitchRadix","OneTimePasswordFieldRadix"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/utils/forwardRef.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.5.0/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.8/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.tsx","../src/components/Card/Card.tsx","../src/shared/icons/CheckSmall.tsx","../src/shared/icons/CheckHalf.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chips/Chips.tsx","../src/components/Container/Container.tsx","../src/components/Popover/Popover.tsx","../src/hooks/useInputKeyboardValue.tsx","../src/components/VirtualKeyboard/components/IconDisplay.tsx","../src/components/VirtualKeyboard/components/Variants.ts","../src/utils/dismissOutside.ts","../src/components/VirtualKeyboard/VirtualKeyboard.tsx","../src/components/TextField/utils/validation.ts","../src/shared/Label/index.tsx","../src/components/TextField/TextField.tsx","../src/components/DatePicker/Utils/DateUtils.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/Filter/components/Combined.tsx","../src/components/Search/Search.tsx","../src/components/Filter/components/Simple.tsx","../src/components/Filter/Filter.tsx","../src/components/ListItem/ListItem.tsx","../src/components/Menu/components/MenuItem.tsx","../src/components/Menu/hooks/useMenuLogic.ts","../src/hooks/NormalizeText.tsx","../src/components/Menu/hooks/useSearchLogic.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/Quantity/Quantity.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/components/CheckboxSelectItem.tsx","../src/components/Select/components/ExpandableSelectItem.tsx","../src/components/Select/components/SelectItem.tsx","../src/components/Select/hooks/useSelectLogic.ts","../src/components/Select/Select.tsx","../src/components/TableV2/components/EmptyState.tsx","../src/components/ToggleButton/components/Toggle.tsx","../src/components/ToggleButton/components/ToggleGroup.tsx","../src/components/ToggleButton/ToggleButton.tsx","../src/components/TableV2/Table.tsx","../src/components/TextArea/TextArea.tsx","../src/contexts/ToastContext.ts","../src/hooks/useToast.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/components/ToastProvider.tsx","../src/components/Toast/components/ToastContainer.tsx","../src/components/Switch/Switch.tsx","../src/components/VerificationCode/VerificationCode.tsx","../src/hooks/ApiSimulation.tsx","../src/hooks/InfiniteScroll.tsx"],"sourcesContent":["import clsx from 'clsx';\r\nimport { Avatar as AvatarRadix } from \"radix-ui\";\r\nimport React from 'react';\r\n\r\nimport styles from './Avatar.module.scss';\r\n\r\n\r\nimport type { AvatarProps } from './Avatar.types';\r\n\r\nconst Avatar: React.FC<AvatarProps> = ({\r\n icon,\r\n size = 'lg',\r\n src,\r\n className,\r\n text,\r\n ...rest\r\n}) => {\r\n const AvatarClass = clsx(\r\n styles.AvatarRoot,\r\n {\r\n [styles['AvatarRoot--lg']]: size === 'lg',\r\n [styles['AvatarRoot--sm']]: size === 'sm',\r\n },\r\n className\r\n );\r\n\r\n const truncatedText = text ? text.slice(0, 2) : undefined;\r\n\r\n return (\r\n <AvatarRadix.Root className={AvatarClass} {...rest}>\r\n {src && (\r\n <AvatarRadix.Image\r\n className={styles.AvatarImage}\r\n src={src}\r\n alt=\"Avatar\"\r\n />\r\n )}\r\n <AvatarRadix.Fallback className={styles.AvatarFallback}>\r\n {icon || truncatedText}\r\n </AvatarRadix.Fallback>\r\n </AvatarRadix.Root>\r\n );\r\n};\r\n\r\nexport default Avatar;\r\n","import clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Badge.module.scss';\r\n\r\nimport type { BadgeProps } from './Badge.types';\r\n\r\nconst getDisplayValue = (value: BadgeProps['badgeValue']): string => {\r\n if (value === null || value === undefined) return '';\r\n if (typeof value === 'string') {\r\n const parsed = Number(value);\r\n if (isFinite(parsed) && parsed > 0 && String(parsed) === value) {\r\n return parsed > 99 ? '99+' : value;\r\n }\r\n return value;\r\n }\r\n if (!isFinite(value) || value <= 0) return '';\r\n return value > 99 ? '99+' : String(value);\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = ({\r\n children,\r\n badgeValue = null,\r\n className,\r\n id,\r\n filterVariant = false,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const displayValue = getDisplayValue(badgeValue);\r\n const isEmpty = displayValue === '';\r\n\r\n if (children) {\r\n return (\r\n <div className={styles.badgeContainer} {...rest}>\r\n <div data-testid=\"badge-content\">{children}</div>\r\n <div\r\n id={componentId}\r\n className={clsx(styles.badge, {\r\n [styles['badge__empty']]: isEmpty,\r\n [styles['badge__flex']]: displayValue.length >= 2,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && <span aria-hidden={!!ariaLabel}>{displayValue}</span>}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.badgeContainer}>\r\n <div\r\n className={clsx(styles['badge__status'], {\r\n [styles['badge__status__empty']]: isEmpty,\r\n [styles['badge__status__flex']]: displayValue.length >= 2,\r\n [styles['badge__status__filterBadge']]: filterVariant,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && (\r\n <span aria-hidden={!!ariaLabel}>{displayValue}</span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Badge;","import {\r\n forwardRef as forwardRefR18,\r\n version,\r\n} from 'react';\r\n\r\nimport type {\r\n ForwardedRef,\r\n ForwardRefExoticComponent,\r\n ForwardRefRenderFunction,\r\n RefAttributes,\r\n} from 'react';\r\n\r\nconst REACT_MAJOR = parseInt(version.split('.')[0], 10);\r\n\r\n/**\r\n * Shim de compatibilidade para `React.forwardRef` que funciona tanto no React 18\r\n * quanto no React 19.\r\n *\r\n * - React 18: `ref` não é uma prop comum — usa `React.forwardRef` internamente.\r\n * - React 19: `ref` é uma prop normal e `forwardRef` foi depreciado. Este shim\r\n * cria um componente funcional comum que lê `ref` das props diretamente,\r\n * evitando o aviso de depreciação.\r\n *\r\n * O padrão de autoria dos componentes permanece idêntico para ambas as versões.\r\n *\r\n * @example\r\n * const MyInput = forwardRef<HTMLInputElement, MyInputProps>((props, ref) => {\r\n * return <input ref={ref} {...props} />;\r\n * });\r\n */\r\nexport function forwardRef<T, P = {}>(\r\n render: ForwardRefRenderFunction<T, P>,\r\n): ForwardRefExoticComponent<P & RefAttributes<T>> {\r\n if (REACT_MAJOR >= 19) {\r\n const Comp = (props: P & { ref?: ForwardedRef<T> }) => {\r\n const { ref, ...rest } = props as P & { ref?: ForwardedRef<T> };\r\n return render(rest as P, ref ?? null);\r\n };\r\n\r\n const displayName = (render as { displayName?: string }).displayName ?? render.name;\r\n if (displayName) {\r\n (Comp as unknown as { displayName: string }).displayName = displayName;\r\n }\r\n\r\n return Comp as unknown as ForwardRefExoticComponent<P & RefAttributes<T>>;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return forwardRefR18(render as any) as unknown as ForwardRefExoticComponent<P & RefAttributes<T>>;\r\n}\r\n","import { Tooltip as TooltipRadix} from \"radix-ui\";\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Tooltip.module.scss';\r\nimport { TooltipProps } from './Tooltip.types';\r\n\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n\tchildren,\r\n\ttext,\r\n\tside = 'bottom',\r\n\talign = 'start',\r\n\tmaxWidth,\r\n\tsideOffset = 10,\r\n\tclassName,\r\n\t...rest\r\n}) => {\r\n\treturn (\r\n\t\t<TooltipRadix.Provider>\r\n\t\t\t<TooltipRadix.Root>\r\n\t\t\t\t<TooltipRadix.Trigger asChild>\r\n\t\t\t\t\t<span className={styles.triggerWrapper}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</TooltipRadix.Trigger>\r\n\t\t\t\t<TooltipRadix.Portal>\r\n\t\t\t\t\t<TooltipRadix.Content\r\n\t\t\t\t\tclassName={clsx(styles.tooltipContent, className)}\r\n\t\t\t\t\t\tside={side}\r\n\t\t\t\t\t\talign={align}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tstyle={{ maxWidth: maxWidth ? `${maxWidth}px` : 'auto' }}\r\n\t\t\t\t\t\t{...rest}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t</TooltipRadix.Content>\r\n\t\t\t\t</TooltipRadix.Portal>\r\n\t\t\t</TooltipRadix.Root>\r\n\t\t</TooltipRadix.Provider>\r\n\t);\r\n};\r\n\r\nexport default Tooltip\r\n\r\n\r\n","import { SpinnerIos16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId, useMemo } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>((\r\n {\r\n as,\r\n children,\r\n variant = 'filled',\r\n iconPosition = 'left',\r\n href,\r\n to,\r\n external = false,\r\n target,\r\n rel,\r\n disabled = false,\r\n onClick,\r\n size = 'lg',\r\n scale = 1,\r\n className,\r\n type = 'button',\r\n id,\r\n icon,\r\n fullWidth = false,\r\n ariaLabel,\r\n iconOnly = false,\r\n loading = false,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n const getComponent = (): React.ElementType => {\r\n if (as) return as;\r\n\r\n if (href) return 'a';\r\n if (to) {\r\n if (process.env.NODE_ENV !== 'production' && !as) {\r\n console.warn(\r\n '[Button] A prop `to` foi usada sem `as`. ' +\r\n 'Para navegação via roteador (React Router, Next.js, etc.), passe `as={Link}`. ' +\r\n 'Por ora, `to` será tratado como `href` em um <a> nativo.'\r\n );\r\n }\r\n return 'a';\r\n }\r\n return 'button';\r\n };\r\n\r\n const Component = getComponent();\r\n\r\n const hasContent = useMemo(() => {\r\n return children && React.Children.count(children) > 0;\r\n }, [children]);\r\n\r\n if (process.env.NODE_ENV !== 'production' && iconOnly && !icon) {\r\n console.error(\r\n '[Button] `iconOnly={true}` foi usado sem a prop `icon`. ' +\r\n 'Forneça um ícone via `icon={<MeuIcone />}`.'\r\n );\r\n }\r\n const resolvedIcon = icon;\r\n\r\n const buttonClasses = clsx(\r\n styles.button,\r\n styles[`button-${variant}`],\r\n styles[`button-${size}`],\r\n {\r\n [styles['disabled']]: disabled,\r\n [styles['buttonLoading']]: loading,\r\n [styles['buttonWithIcon']]: resolvedIcon && !iconOnly,\r\n [styles[`buttonIconPosition-${iconPosition}`]]: resolvedIcon && !iconOnly,\r\n [styles['buttonNoContent']]: resolvedIcon && !hasContent && !iconOnly,\r\n [styles['buttonFullWidth']]: fullWidth,\r\n [styles['buttonIconOnly']]: iconOnly,\r\n },\r\n className\r\n );\r\n\r\n const getAriaLabel = () => {\r\n if (ariaLabel) return ariaLabel;\r\n if (iconOnly) {\r\n if (tooltipText) return tooltipText;\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n '[Button] Botões icon-only precisam de uma prop `ariaLabel` descritiva. ' +\r\n 'O fallback genérico foi removido pois não comunica intenção. ' +\r\n 'Forneça `ariaLabel` ou `tooltipText` para nomear o botão.'\r\n );\r\n }\r\n return undefined;\r\n }\r\n return undefined;\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n if (disabled || loading) {\r\n e.preventDefault();\r\n return;\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n const renderContent = () => {\r\n if (iconOnly && !loading) {\r\n return (\r\n <span className={styles.buttonIconOnly} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n );\r\n }\r\n if (loading) {\r\n return (\r\n <>\r\n {!iconOnly && (\r\n <span className={styles.buttonContentHidden} aria-hidden=\"true\">\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft}>{resolvedIcon}</span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight}>{resolvedIcon}</span>\r\n )}\r\n </span>\r\n )}\r\n <span className={styles.buttonLoadingSpinner} aria-hidden=\"true\">\r\n <SpinnerIos16Regular aria-hidden=\"true\" />\r\n </span>\r\n </>\r\n );\r\n }\r\n return (\r\n <>\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const { style: externalStyle, ...otherRest } = rest as Record<string, unknown> & { style?: React.CSSProperties };\r\n\r\n const baseProps = {\r\n ref,\r\n id: componentId,\r\n className: buttonClasses,\r\n 'aria-label': getAriaLabel(),\r\n 'aria-disabled': disabled,\r\n 'aria-busy': loading || undefined,\r\n tabIndex: disabled || loading ? -1 : 0,\r\n onClick: handleClick,\r\n ...otherRest,\r\n style: {\r\n '--giro-scale': scale,\r\n ...externalStyle,\r\n } as React.CSSProperties,\r\n };\r\n\r\n const getNavigationProps = () => {\r\n if (href) {\r\n if (disabled || loading) {\r\n return { role: 'link' };\r\n }\r\n return {\r\n href,\r\n target: external || target === '_blank' ? '_blank' : target,\r\n rel: external || target === '_blank' ? 'noopener noreferrer' : rel,\r\n };\r\n }\r\n\r\n if (to) {\r\n if (Component !== 'a') {\r\n return {\r\n to: disabled ? undefined : to,\r\n };\r\n }\r\n return {\r\n href: disabled ? undefined : to,\r\n };\r\n }\r\n if (Component === 'button') {\r\n return {\r\n type,\r\n disabled,\r\n };\r\n }\r\n\r\n return {};\r\n };\r\n\r\n if (tooltipText && !loading) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return (\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n );\r\n});\r\n\r\nButton.displayName = 'Button';\r\nexport default Button;","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","/**\n * Time zone name format.\n */\n\n/**\n * The function returns the time zone name for the given date in the specified\n * time zone.\n *\n * It uses the `Intl.DateTimeFormat` API and by default outputs the time zone\n * name in a long format, e.g. \"Pacific Standard Time\" or\n * \"Singapore Standard Time\".\n *\n * It is possible to specify the format as the third argument using one of the following options\n *\n * - \"short\": e.g. \"EDT\" or \"GMT+8\".\n * - \"long\": e.g. \"Eastern Daylight Time\".\n * - \"shortGeneric\": e.g. \"ET\" or \"Singapore Time\".\n * - \"longGeneric\": e.g. \"Eastern Time\" or \"Singapore Standard Time\".\n *\n * These options correspond to TR35 tokens `z..zzz`, `zzzz`, `v`, and `vvvv` respectively: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date object to get the time zone name for\n * @param format - Optional format of the time zone name. Defaults to \"long\". Can be \"short\", \"long\", \"shortGeneric\", or \"longGeneric\".\n *\n * @returns Time zone name (e.g. \"Singapore Standard Time\")\n */\nexport function tzName(timeZone, date, format = \"long\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n // Enforces engine to render the time. Without the option JavaScriptCore omits it.\n hour: \"numeric\",\n timeZone: timeZone,\n timeZoneName: format\n }).format(date).split(/\\s/g) // Format.JS uses non-breaking spaces\n .slice(2) // Skip the hour and AM/PM parts\n .join(\" \");\n}","const offsetFormatCache = {};\nconst offsetCache = {};\n\n/**\n * The function returns UTC offset in minutes for the given date in specified\n * time zone.\n *\n * Unlike `Date.prototype.getTimezoneOffset`, this function returns the value\n * mirrored to the sign of the offset in the time zone. For Asia/Singapore\n * (UTC+8), `tzOffset` returns `480`, while `getTimezoneOffset` returns `-480`.\n *\n * It uses `Intl.DateTimeFormat` internally to access otherwise unavailable\n * runtime's time zone data, and falls back to basic manual parsing if Intl API\n * is not supported (e.g., older Node.js versions, React Native's Hermes, etc.).\n *\n * @param timeZone - Time zone name (IANA or UTC offset).\n * @param date - Date to check the offset for.\n *\n * @returns UTC offset in minutes (e.g., `480` for date in UTC+8).\n */\nexport function tzOffset(timeZone, date) {\n try {\n // Create `Intl.DateTimeFormat` with `\"longOffset\"` that gives us consistent\n // date strings like `\"5/19/2026, GMT-08:00\"`.\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n\n // Get `\"-08:00\"`.\n const offsetStr = format(date).split(\"GMT\")[1];\n\n // Avoid parsing the same offset string.\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n\n // Calculate offset from `[\"-08\", \"00\"]` and cache it.\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support\n // `±HH:MM/±HHMM/±HH`. See: https://github.com/nodejs/node/issues/53419.\n if (timeZone in offsetCache) return offsetCache[timeZone];\n const captures = timeZone?.match(offsetRe);\n if (captures) return calcOffset(timeZone, captures.slice(1));\n return NaN;\n }\n}\nconst offsetRe = /([+-]\\d\\d):?(\\d\\d)?/;\nfunction calcOffset(cacheStr, values) {\n const hours = +(values[0] || 0);\n const minutes = +(values[1] || 0);\n // Convert seconds to minutes by dividing by 60 to keep the function return in minutes.\n const seconds = +(values[2] || 0) / 60;\n return offsetCache[cacheStr] = hours * 60 + minutes > 0 ? hours * 60 + minutes + seconds : hours * 60 - minutes - seconds;\n}","import { tzOffset } from \"../tzOffset/index.js\";\n\n// TZDate stores time in two `Date` objects because native `Date` can only\n// expose local fields in the system time zone.\n//\n// The external date (`this`) stores the real timestamp. It is the value used by\n// `getTime()`, `valueOf()`, UTC getters/setters, comparisons, and arithmetic.\n// Its local getters are not used for target-zone fields because they would read\n// the timestamp through the system time zone.\n//\n// The internal date (`this.internal`) stores the target-zone wall-clock fields.\n// We read and write those fields through UTC getters/setters so the host system\n// time zone cannot reinterpret them. For example, `getHours()` returns\n// `internal.getUTCHours()`, and `setHours()` writes `internal.setUTCHours(...)`.\n//\n// Syncing moves data between the two representations:\n//\n// - `syncToInternal` starts from the external timestamp and rebuilds internal\n// wall-clock fields using `this.timeZone` offset.\n//\n// - `syncFromInternal` starts from internal wall-clock fields, writes them into\n// the external date, then adjusts that timestamp for the system/target offset\n// difference and DST edge cases.\n//\n// The public TZDate value is the combination of both: external is the instant,\n// internal is the wall-clock view of that instant in `this.timeZone`.\n\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n\n // Time zone string is always the last string argument unless date string\n // is passed (as a single argument).\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n\n // Validate the time zone by checking its offset.\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n // No arguments passed: use current time\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n // Timestamp passed: use it as is\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n // `Date` string passed: parse it as external date\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n // `Date` passed: use its timestamp\n this.setTime(+args[0]);\n } else {\n // `Date` values passed:\n\n // Set it as external date.\n this.setTime(+new Date(...args));\n\n // Adjust internal and external dates considering that we might have\n // landed on the DST hour.\n adjustToSystemTZ(this, args);\n }\n }\n }\n static tz(tz, ...args) {\n return args.length ? new TZDateMini(...args, tz) : new TZDateMini(Date.now(), tz);\n }\n\n //#endregion\n\n //#region time zone\n\n withTimeZone(timeZone) {\n return new TZDateMini(+this, timeZone);\n }\n getTimezoneOffset() {\n const offset = -tzOffset(this.timeZone, this);\n // Remove the seconds offset using `Math.floor` for negative UTC time zones\n // and `Math.ceil` for positive UTC time zones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(_time) {\n // Use the native `setTime` to the external date time.\n Date.prototype.setTime.apply(this, arguments);\n\n // Then apply it to the internal date adjusting to the timezone offset.\n syncToInternal(this);\n return +this;\n }\n\n //#endregion\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDateMini(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}\n\n// Assign getters and setters\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n if (!re.test(method)) return;\n const utcMethod = method.replace(re, \"$1UTC\");\n // Filter out methods without UTC counterparts\n if (!TZDateMini.prototype[utcMethod]) return;\n if (method.startsWith(\"get\")) {\n // Delegate to internal date's UTC method\n TZDateMini.prototype[method] = function () {\n return this.internal[utcMethod]();\n };\n } else {\n // Assign regular setter\n TZDateMini.prototype[method] = function () {\n Date.prototype[utcMethod].apply(this.internal, arguments);\n syncFromInternal(this);\n return +this;\n };\n\n // Assign UTC setter\n TZDateMini.prototype[utcMethod] = function () {\n Date.prototype[utcMethod].apply(this, arguments);\n syncToInternal(this);\n return +this;\n };\n }\n});\n\n/**\n * @internal\n * Function syncs time to internal date, applying the current time zone offset.\n *\n * @param {Date} date - `Date` to sync\n */\nfunction syncToInternal(date) {\n // Start internal from the same real timestamp as external.\n date.internal.setTime(+date);\n\n // Shift internal by the target offset so its UTC fields become the target-zone\n // wall-clock fields for the external timestamp.\n //\n // o internal UTC fields: 2024-02-11 00:00\n // |\n // | + Asia/Singapore offset (+08:00)\n // v\n // x internal UTC fields: 2024-02-11 08:00\n //\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() -\n // Round after converting minutes to seconds to avoid fractional offset\n // precision errors from historical offsets.\n Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * @internal\n * Function syncs internal wall-clock fields into the external date.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // Copy target-zone wall-clock fields from internal into external using native\n // local setters. At this point external holds the right field values but they\n // are interpreted in the system time zone; `adjustToSystemTZ` fixes that.\n Date.prototype.setFullYear.call(date, date.internal.getUTCFullYear(), date.internal.getUTCMonth(), date.internal.getUTCDate());\n Date.prototype.setHours.call(date, date.internal.getUTCHours(), date.internal.getUTCMinutes(), date.internal.getUTCSeconds(), date.internal.getUTCMilliseconds());\n\n // Now we have to adjust the date to the system time zone\n adjustToSystemTZ(date);\n}\n\n/**\n * @internal\n * Function adjusts the date to the system time zone. It uses the time zone\n * differences to calculate the offset and adjust the date.\n *\n * We use it when constructing `TZDate` and syncing the external date from\n * the internal one.\n *\n * @param {TZDate} date - `TZDate` to adjust.\n */\nfunction adjustToSystemTZ(date, constructorArgs) {\n // Keep the intended target-zone wall-clock value before native Date/system\n // time zone normalization can move it. Later corrections compare against this\n // value to distinguish intended DST normalization from accidental drift.\n const expectedInternalTime = Array.isArray(constructorArgs) ? constructorArgsToInternalTime(constructorArgs) : +date.internal;\n //#region Initial offset calculation\n\n // Current target time zone offset at the native timestamp. It may include\n // historical offset seconds, which we preserve for the seconds adjustment.\n const offsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset used by minute-based timestamp adjustments.\n // Historical offsets can contain seconds, so we strip the fractional minute\n // here and handle remaining seconds in the seconds adjustment below.\n const offset = offsetWithSeconds > 0 ? Math.floor(offsetWithSeconds) : Math.ceil(offsetWithSeconds);\n\n //#endregion\n\n //#region System DST adjustment\n\n // Native `Date` may normalize the requested wall time when the system time\n // zone skips that hour for DST.\n //\n // We compare the system wall-clock hour represented by the external date with\n // the wall-clock hour stored in the internal date. If they differ, the next\n // offset-diff calculation may need the previous system offset, because the\n // current external timestamp is already after the system DST jump.\n\n // Previous-hour reference used to detect whether the system offset changed\n // immediately before the current native timestamp.\n const prevHour = new Date(+date);\n\n // Use UTC math so subtracting one hour cannot be normalized back into the\n // same missing local DST hour.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Current system offset at the native timestamp.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n\n // System offset one real hour before the native timestamp.\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n\n // Non-zero when the system offset changed between `prevHour` and `date`.\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n\n // System offset to use in the later system-target offset difference.\n // Defaults to the current system offset and switches to the previous offset\n // only when native `Date` normalized a missing system wall time.\n let systemOffsetForDiff = systemOffset;\n if (systemDSTChange && systemOffset !== offset) {\n // System wall-clock hour represented by the current external timestamp.\n const systemHour = Date.prototype.getHours.apply(date);\n\n // Target wall-clock hour currently stored in internal fields. Constructors\n // get it from arguments because internal may have already been synced from\n // the normalized external timestamp; setters get it directly from internal.\n const expectedHour = Array.isArray(constructorArgs) ? constructorArgs[3] || 0 : date.internal.getUTCHours();\n if (systemHour !== expectedHour) {\n // Check whether using the current system offset would keep the target\n // offset unchanged. If so, the only DST jump we crossed is the system\n // one, so the diff should use the pre-DST system offset.\n const testDate = new Date(+date);\n\n // Difference that the later offset-diff step would apply with the\n // current system offset.\n const testOffsetDiff = systemOffset - offset;\n if (testOffsetDiff) testDate.setUTCMinutes(testDate.getUTCMinutes() + testOffsetDiff);\n\n // Target offset after applying the current system offset difference.\n const testOffsetWithSeconds = tzOffset(date.timeZone, testDate);\n\n // Target offset without historical seconds, matching `offset`.\n const testOffset = testOffsetWithSeconds > 0 ? Math.floor(testOffsetWithSeconds) : Math.ceil(testOffsetWithSeconds);\n if (testOffset === offset) systemOffsetForDiff = prevHourSystemOffset;\n }\n }\n\n //#endregion\n\n //#region System diff adjustment\n\n // Move external from the system-zone interpretation of internal fields toward\n // the timestamp that represents those fields in the target time zone.\n //\n // At this point native `Date` has treated the internal wall-clock fields as if\n // they belonged to the system zone. The system-target offset difference moves\n // external by the distance between that system interpretation and the target\n // interpretation.\n\n // Difference between the system offset selected above and the minute-precision\n // target offset. Positive values move external forward; negative values move\n // it backward.\n const offsetDiff = systemOffsetForDiff - offset;\n if (offsetDiff)\n // Apply the system-target minute difference to external. Internal is\n // rebuilt from the final external timestamp after all adjustments are\n // complete.\n //\n // o external as target: 2023-01-31 23:00\n // |\n // | add `offsetDiff`\n // v\n // x external as target: 2023-02-01 12:00\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds system diff adjustment\n\n // Historical time zone offsets can include seconds, but the minute-based\n // offset adjustment above intentionally used minute precision.\n //\n // This adjustment applies the remaining seconds difference to external. For\n // example, historical Singapore used UTC+06:55:25, while ISO formatting shows\n // only `+06:55`; without the seconds correction, setter paths keep the wrong\n // wall-clock seconds.\n\n // Clone external as a native `Date` so we can inspect how the system time zone\n // represents the same timestamp.\n const systemDate = new Date(+date);\n\n // Zero UTC seconds before reading system seconds. Any remaining local seconds\n // then come from the system time zone offset rather than from the timestamp's\n // own seconds value.\n systemDate.setUTCSeconds(0);\n\n // Seconds part contributed by the system time zone offset. Negative offsets\n // need wrapping because `Date#getSeconds()` returns values in the 0..59 range.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Seconds part contributed by the target time zone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset)\n // Apply the remaining second-level system-target difference to external.\n //\n // o external as Asia/Singapore: 1900-01-01 00:00:56\n // |\n // | + `secondsOffset`\n // | + `systemSecondsOffset`\n // v\n // x external as Asia/Singapore: 1900-01-01 00:00:31\n //\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n // The first system-target offset move can cross a target-zone DST boundary.\n //\n // When that happens, the target offset at the new external timestamp differs\n // from the target offset used for `offsetDiff`. We compare the original move\n // with the move that would be calculated at the new timestamp, then apply the\n // difference to external.\n\n // Target offset at the current external timestamp, including historical\n // seconds for the later seconds adjustment.\n const postOffsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset at the current external timestamp.\n const postOffset = postOffsetWithSeconds > 0 ? Math.floor(postOffsetWithSeconds) : Math.ceil(postOffsetWithSeconds);\n\n // System offset at the current external timestamp.\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n\n // System-target offset difference at the current external timestamp.\n const postOffsetDiff = postSystemOffset - postOffset;\n\n // Whether the target offset changed after the first offset move.\n const offsetChanged = postOffset !== offset;\n\n // Difference between the current offset move and the move already applied.\n const postDiff = postOffsetDiff - offsetDiff;\n\n // If the first offset move already normalized a target DST gap forward, the\n // generic post-DST correction below would undo that valid normalization. This\n // happens, for example, with America/New_York 02:00 during spring-forward when\n // the system zone also changes offset around the same instant.\n const targetDSTShift = postOffset - offset;\n\n // Candidate timestamp that would represent the requested wall-clock time with\n // the post-transition target offset. If it still does not round-trip to the\n // requested wall-clock fields, the requested time is inside a target DST gap.\n const postOffsetCandidate = expectedInternalTime - postOffset * 60 * 1000;\n\n // Only positive target offset shifts are spring-forward gaps. Negative shifts\n // are fall-back overlaps and still need the regular post-adjustment path.\n const normalizedTargetDSTGap = targetDSTShift > 0 && targetInternalTime(date) - expectedInternalTime === targetDSTShift * 60 * 1000 && targetInternalTime(date, postOffsetCandidate) !== expectedInternalTime;\n if (offsetChanged && postDiff && !normalizedTargetDSTGap) {\n // Apply the target-DST correction to external. In the backward-crossing case\n // shown here, this lands on an intermediate value that needs `offsetChange`\n // below.\n //\n // o external as America/New_York: 2023-03-12 03:00 EDT\n // |\n // | + `postDiff`\n // v\n // x external as America/New_York: 2023-03-12 01:00 EST\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Target offset after applying `postDiff`. It may change again if the\n // correction itself crosses a target-zone DST boundary.\n const newOffsetWithSeconds = tzOffset(date.timeZone, date);\n\n // Minute-precision target offset after applying `postDiff`.\n const newOffset = newOffsetWithSeconds > 0 ? Math.floor(newOffsetWithSeconds) : Math.ceil(newOffsetWithSeconds);\n\n // Offset change caused by the `postDiff` move itself.\n const offsetChange = postOffset - newOffset;\n\n // If the correction moved external backward across the target DST boundary,\n // apply the boundary change so external lands on the valid target-zone\n // timestamp. Forward crossings are already normalized by native Date, and\n // applying this correction there would undo the valid post-DST result.\n if (offsetChange && postDiff < 0) {\n // Apply the second target-DST correction to external.\n //\n // o external as America/New_York: 2023-03-12 01:00 EST\n // |\n // | + `offsetChange`\n // v\n // x external as America/New_York: 2023-03-12 03:00 EDT\n //\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\n\n // Rebuild internal wall-clock fields from the final external timestamp.\n syncToInternal(date);\n\n // Native Date can normalize historical system offsets with minute and second\n // precision before we adjust to the target time zone. Correct only small\n // historical drift so DST gap normalization (usually one hour) remains intact.\n const expectedTime = constructorArgs ? expectedInternalTime : expectedInternalTime + secondsOffset * 1000;\n const drift = expectedTime - +date.internal;\n if (drift && Math.abs(drift) < 30 * 60 * 1000) {\n Date.prototype.setTime.call(date, +date + drift);\n syncToInternal(date);\n }\n}\nfunction constructorArgsToInternalTime(args) {\n // Mirror Date's date-value constructor defaults while preserving explicit\n // `undefined` behavior. Missing month/day default, but passed `undefined`\n // should remain invalid just like `Date.UTC(year, undefined, ...)`.\n return Date.UTC(args[0], args.length > 1 ? args[1] : 0, args.length > 2 ? args[2] : 1, ...args.slice(3));\n}\nfunction targetInternalTime(date, time) {\n // Compute the target-zone wall-clock representation for a timestamp without\n // mutating the TZDate. This mirrors syncToInternal for temporary checks.\n const internal = new Date(time ?? +date);\n internal.setUTCSeconds(internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, internal) * 60));\n return +internal;\n}","import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}","const FIVE_WEEKS = 5;\nconst FOUR_WEEKS = 4;\n/**\n * Returns the number of weeks to display in the broadcast calendar for a given\n * month.\n *\n * The broadcast calendar may have either 4 or 5 weeks in a month, depending on\n * the start and end dates of the broadcast weeks.\n *\n * @since 9.4.0\n * @param month The month for which to calculate the number of weeks.\n * @param dateLib The date library to use for date manipulation.\n * @returns The number of weeks in the broadcast calendar (4 or 5).\n */\nexport function getBroadcastWeeksInMonth(month, dateLib) {\n // Get the first day of the month\n const firstDayOfMonth = dateLib.startOfMonth(month);\n // Get the day of the week for the first day of the month (1-7, where 1 is Monday)\n const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;\n const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);\n const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);\n const numberOfWeeks = dateLib.getMonth(month) === dateLib.getMonth(lastDateOfLastWeek)\n ? FIVE_WEEKS\n : FOUR_WEEKS;\n return numberOfWeeks;\n}\n","/**\n * Returns the start date of the week in the broadcast calendar.\n *\n * The broadcast week starts on Monday. If the first day of the month is not a\n * Monday, this function calculates the previous Monday as the start of the\n * broadcast week.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the start of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The start date of the broadcast week.\n */\nexport function startOfBroadcastWeek(date, dateLib) {\n const firstOfMonth = dateLib.startOfMonth(date);\n const dayOfWeek = firstOfMonth.getDay();\n if (dayOfWeek === 1) {\n return firstOfMonth;\n }\n else if (dayOfWeek === 0) {\n return dateLib.addDays(firstOfMonth, -1 * 6);\n }\n else {\n return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));\n }\n}\n","import { getBroadcastWeeksInMonth } from \"./getBroadcastWeeksInMonth.js\";\nimport { startOfBroadcastWeek } from \"./startOfBroadcastWeek.js\";\n/**\n * Returns the end date of the week in the broadcast calendar.\n *\n * The broadcast week ends on the last day of the last broadcast week for the\n * given date.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the end of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The end date of the broadcast week.\n */\nexport function endOfBroadcastWeek(date, dateLib) {\n const startDate = startOfBroadcastWeek(date, dateLib);\n const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);\n const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);\n return endDate;\n}\n","import { format } from \"date-fns\";\nimport { enUS as dateFnsEnUS } from \"date-fns/locale\";\n/** English (United States) locale extended with DayPicker-specific translations. */\nexport const enUS = {\n ...dateFnsEnUS,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n },\n labelMonthDropdown: \"Choose the Month\",\n labelNext: \"Go to the Next Month\",\n labelPrevious: \"Go to the Previous Month\",\n labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,\n labelYearDropdown: \"Choose the Year\",\n labelGrid: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"LLLL yyyy\");\n },\n labelGridcell: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n },\n labelNav: \"Navigation bar\",\n labelWeekNumberHeader: \"Week Number\",\n labelWeekday: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"cccc\");\n },\n },\n};\n","import { TZDate } from \"@date-fns/tz\";\nimport { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, eachYearOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isDate, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear, } from \"date-fns\";\nimport { endOfBroadcastWeek } from \"../helpers/endOfBroadcastWeek.js\";\nimport { startOfBroadcastWeek } from \"../helpers/startOfBroadcastWeek.js\";\nimport { enUS } from \"../locale/en-US.js\";\n/**\n * A wrapper class around [date-fns](http://date-fns.org) that provides utility\n * methods for date manipulation and formatting.\n *\n * @since 9.2.0\n * @example\n * const dateLib = new DateLib({ locale: es });\n * const newDate = dateLib.addDays(new Date(), 5);\n */\nexport class DateLib {\n /**\n * Creates an instance of `DateLib`.\n *\n * @param options Configuration options for the date library.\n * @param overrides Custom overrides for the date library functions.\n */\n constructor(options, overrides) {\n /**\n * Reference to the built-in Date constructor.\n *\n * @deprecated Use `newDate()` or `today()`.\n */\n this.Date = Date;\n /**\n * Creates a new `Date` object representing today's date.\n *\n * @since 9.5.0\n * @returns A `Date` object for today's date.\n */\n this.today = () => {\n if (this.overrides?.today) {\n return this.overrides.today();\n }\n if (this.options.timeZone) {\n return TZDate.tz(this.options.timeZone);\n }\n return new this.Date();\n };\n /**\n * Creates a new `Date` object with the specified year, month, and day.\n *\n * @since 9.5.0\n * @param year The year.\n * @param monthIndex The month (0-11).\n * @param date The day of the month.\n * @returns A new `Date` object.\n */\n this.newDate = (year, monthIndex, date) => {\n if (this.overrides?.newDate) {\n return this.overrides.newDate(year, monthIndex, date);\n }\n if (this.options.timeZone) {\n return new TZDate(year, monthIndex, date, this.options.timeZone);\n }\n return new Date(year, monthIndex, date);\n };\n /**\n * Adds the specified number of days to the given date.\n *\n * @param date The date to add days to.\n * @param amount The number of days to add.\n * @returns The new date with the days added.\n */\n this.addDays = (date, amount) => {\n return this.overrides?.addDays\n ? this.overrides.addDays(date, amount)\n : addDays(date, amount);\n };\n /**\n * Adds the specified number of months to the given date.\n *\n * @param date The date to add months to.\n * @param amount The number of months to add.\n * @returns The new date with the months added.\n */\n this.addMonths = (date, amount) => {\n return this.overrides?.addMonths\n ? this.overrides.addMonths(date, amount)\n : addMonths(date, amount);\n };\n /**\n * Adds the specified number of weeks to the given date.\n *\n * @param date The date to add weeks to.\n * @param amount The number of weeks to add.\n * @returns The new date with the weeks added.\n */\n this.addWeeks = (date, amount) => {\n return this.overrides?.addWeeks\n ? this.overrides.addWeeks(date, amount)\n : addWeeks(date, amount);\n };\n /**\n * Adds the specified number of years to the given date.\n *\n * @param date The date to add years to.\n * @param amount The number of years to add.\n * @returns The new date with the years added.\n */\n this.addYears = (date, amount) => {\n return this.overrides?.addYears\n ? this.overrides.addYears(date, amount)\n : addYears(date, amount);\n };\n /**\n * Returns the number of calendar days between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar days between the dates.\n */\n this.differenceInCalendarDays = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarDays\n ? this.overrides.differenceInCalendarDays(dateLeft, dateRight)\n : differenceInCalendarDays(dateLeft, dateRight);\n };\n /**\n * Returns the number of calendar months between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar months between the dates.\n */\n this.differenceInCalendarMonths = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarMonths\n ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)\n : differenceInCalendarMonths(dateLeft, dateRight);\n };\n /**\n * Returns the months between the given dates.\n *\n * @param interval The interval to get the months for.\n */\n this.eachMonthOfInterval = (interval) => {\n return this.overrides?.eachMonthOfInterval\n ? this.overrides.eachMonthOfInterval(interval)\n : eachMonthOfInterval(interval);\n };\n /**\n * Returns the years between the given dates.\n *\n * @since 9.11.1\n * @param interval The interval to get the years for.\n * @returns The array of years in the interval.\n */\n this.eachYearOfInterval = (interval) => {\n const years = this.overrides?.eachYearOfInterval\n ? this.overrides.eachYearOfInterval(interval)\n : eachYearOfInterval(interval);\n // Remove duplicates that may happen across DST transitions (e.g., \"America/Sao_Paulo\")\n // See https://github.com/date-fns/tz/issues/72\n const uniqueYears = new Set(years.map((d) => this.getYear(d)));\n if (uniqueYears.size === years.length) {\n // No duplicates, return as is\n return years;\n }\n // Rebuild the array to ensure one date per year\n const yearsArray = [];\n uniqueYears.forEach((y) => {\n yearsArray.push(new Date(y, 0, 1));\n });\n return yearsArray;\n };\n /**\n * Returns the end of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The end of the broadcast week.\n */\n this.endOfBroadcastWeek = (date) => {\n return this.overrides?.endOfBroadcastWeek\n ? this.overrides.endOfBroadcastWeek(date)\n : endOfBroadcastWeek(date, this);\n };\n /**\n * Returns the end of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The end of the ISO week.\n */\n this.endOfISOWeek = (date) => {\n return this.overrides?.endOfISOWeek\n ? this.overrides.endOfISOWeek(date)\n : endOfISOWeek(date);\n };\n /**\n * Returns the end of the month for the given date.\n *\n * @param date The original date.\n * @returns The end of the month.\n */\n this.endOfMonth = (date) => {\n return this.overrides?.endOfMonth\n ? this.overrides.endOfMonth(date)\n : endOfMonth(date);\n };\n /**\n * Returns the end of the week for the given date.\n *\n * @param date The original date.\n * @returns The end of the week.\n */\n this.endOfWeek = (date, options) => {\n return this.overrides?.endOfWeek\n ? this.overrides.endOfWeek(date, options)\n : endOfWeek(date, this.options);\n };\n /**\n * Returns the end of the year for the given date.\n *\n * @param date The original date.\n * @returns The end of the year.\n */\n this.endOfYear = (date) => {\n return this.overrides?.endOfYear\n ? this.overrides.endOfYear(date)\n : endOfYear(date);\n };\n /**\n * Formats the given date using the specified format string.\n *\n * @param date The date to format.\n * @param formatStr The format string.\n * @returns The formatted date string.\n */\n this.format = (date, formatStr, _options) => {\n const formatted = this.overrides?.format\n ? this.overrides.format(date, formatStr, this.options)\n : format(date, formatStr, this.options);\n if (this.options.numerals && this.options.numerals !== \"latn\") {\n return this.replaceDigits(formatted);\n }\n return formatted;\n };\n /**\n * Returns the ISO week number for the given date.\n *\n * @param date The date to get the ISO week number for.\n * @returns The ISO week number.\n */\n this.getISOWeek = (date) => {\n return this.overrides?.getISOWeek\n ? this.overrides.getISOWeek(date)\n : getISOWeek(date);\n };\n /**\n * Returns the month of the given date.\n *\n * @param date The date to get the month for.\n * @returns The month.\n */\n this.getMonth = (date, _options) => {\n return this.overrides?.getMonth\n ? this.overrides.getMonth(date, this.options)\n : getMonth(date, this.options);\n };\n /**\n * Returns the year of the given date.\n *\n * @param date The date to get the year for.\n * @returns The year.\n */\n this.getYear = (date, _options) => {\n return this.overrides?.getYear\n ? this.overrides.getYear(date, this.options)\n : getYear(date, this.options);\n };\n /**\n * Returns the local week number for the given date.\n *\n * @param date The date to get the week number for.\n * @returns The week number.\n */\n this.getWeek = (date, _options) => {\n return this.overrides?.getWeek\n ? this.overrides.getWeek(date, this.options)\n : getWeek(date, this.options);\n };\n /**\n * Checks if the first date is after the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is after the second date.\n */\n this.isAfter = (date, dateToCompare) => {\n return this.overrides?.isAfter\n ? this.overrides.isAfter(date, dateToCompare)\n : isAfter(date, dateToCompare);\n };\n /**\n * Checks if the first date is before the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is before the second date.\n */\n this.isBefore = (date, dateToCompare) => {\n return this.overrides?.isBefore\n ? this.overrides.isBefore(date, dateToCompare)\n : isBefore(date, dateToCompare);\n };\n /**\n * Checks if the given value is a Date object.\n *\n * @param value The value to check.\n * @returns True if the value is a Date object.\n */\n this.isDate = (value) => {\n return this.overrides?.isDate\n ? this.overrides.isDate(value)\n : isDate(value);\n };\n /**\n * Checks if the given dates are on the same day.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are on the same day.\n */\n this.isSameDay = (dateLeft, dateRight) => {\n return this.overrides?.isSameDay\n ? this.overrides.isSameDay(dateLeft, dateRight)\n : isSameDay(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same month.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same month.\n */\n this.isSameMonth = (dateLeft, dateRight) => {\n return this.overrides?.isSameMonth\n ? this.overrides.isSameMonth(dateLeft, dateRight)\n : isSameMonth(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same year.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same year.\n */\n this.isSameYear = (dateLeft, dateRight) => {\n return this.overrides?.isSameYear\n ? this.overrides.isSameYear(dateLeft, dateRight)\n : isSameYear(dateLeft, dateRight);\n };\n /**\n * Returns the latest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The latest date.\n */\n this.max = (dates) => {\n return this.overrides?.max ? this.overrides.max(dates) : max(dates);\n };\n /**\n * Returns the earliest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The earliest date.\n */\n this.min = (dates) => {\n return this.overrides?.min ? this.overrides.min(dates) : min(dates);\n };\n /**\n * Sets the month of the given date.\n *\n * @param date The date to set the month on.\n * @param month The month to set (0-11).\n * @returns The new date with the month set.\n */\n this.setMonth = (date, month) => {\n return this.overrides?.setMonth\n ? this.overrides.setMonth(date, month)\n : setMonth(date, month);\n };\n /**\n * Sets the year of the given date.\n *\n * @param date The date to set the year on.\n * @param year The year to set.\n * @returns The new date with the year set.\n */\n this.setYear = (date, year) => {\n return this.overrides?.setYear\n ? this.overrides.setYear(date, year)\n : setYear(date, year);\n };\n /**\n * Returns the start of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The start of the broadcast week.\n */\n this.startOfBroadcastWeek = (date, _dateLib) => {\n return this.overrides?.startOfBroadcastWeek\n ? this.overrides.startOfBroadcastWeek(date, this)\n : startOfBroadcastWeek(date, this);\n };\n /**\n * Returns the start of the day for the given date.\n *\n * @param date The original date.\n * @returns The start of the day.\n */\n this.startOfDay = (date) => {\n return this.overrides?.startOfDay\n ? this.overrides.startOfDay(date)\n : startOfDay(date);\n };\n /**\n * Returns the start of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The start of the ISO week.\n */\n this.startOfISOWeek = (date) => {\n return this.overrides?.startOfISOWeek\n ? this.overrides.startOfISOWeek(date)\n : startOfISOWeek(date);\n };\n /**\n * Returns the start of the month for the given date.\n *\n * @param date The original date.\n * @returns The start of the month.\n */\n this.startOfMonth = (date) => {\n return this.overrides?.startOfMonth\n ? this.overrides.startOfMonth(date)\n : startOfMonth(date);\n };\n /**\n * Returns the start of the week for the given date.\n *\n * @param date The original date.\n * @returns The start of the week.\n */\n this.startOfWeek = (date, _options) => {\n return this.overrides?.startOfWeek\n ? this.overrides.startOfWeek(date, this.options)\n : startOfWeek(date, this.options);\n };\n /**\n * Returns the start of the year for the given date.\n *\n * @param date The original date.\n * @returns The start of the year.\n */\n this.startOfYear = (date) => {\n return this.overrides?.startOfYear\n ? this.overrides.startOfYear(date)\n : startOfYear(date);\n };\n this.options = { locale: enUS, ...options };\n this.overrides = overrides;\n }\n /**\n * Generates a mapping of Arabic digits (0-9) to the target numbering system\n * digits.\n *\n * @since 9.5.0\n * @returns A record mapping Arabic digits to the target numerals.\n */\n getDigitMap() {\n const { numerals = \"latn\" } = this.options;\n // Use Intl.NumberFormat to create a formatter with the specified numbering system\n const formatter = new Intl.NumberFormat(\"en-US\", {\n numberingSystem: numerals,\n });\n // Map Arabic digits (0-9) to the target numerals\n const digitMap = {};\n for (let i = 0; i < 10; i++) {\n digitMap[i.toString()] = formatter.format(i);\n }\n return digitMap;\n }\n /**\n * Replaces Arabic digits in a string with the target numbering system digits.\n *\n * @since 9.5.0\n * @param input The string containing Arabic digits.\n * @returns The string with digits replaced.\n */\n replaceDigits(input) {\n const digitMap = this.getDigitMap();\n return input.replace(/\\d/g, (digit) => digitMap[digit] || digit);\n }\n /**\n * Formats a number using the configured numbering system.\n *\n * @since 9.5.0\n * @param value The number to format.\n * @returns The formatted number as a string.\n */\n formatNumber(value) {\n return this.replaceDigits(value.toString());\n }\n /**\n * Returns the preferred ordering for month and year labels for the current\n * locale.\n */\n getMonthYearOrder() {\n const code = this.options.locale?.code;\n if (!code) {\n return \"month-first\";\n }\n return DateLib.yearFirstLocales.has(code) ? \"year-first\" : \"month-first\";\n }\n /**\n * Formats the month/year pair respecting locale conventions.\n *\n * @since 9.11.0\n */\n formatMonthYear(date) {\n const { locale, timeZone, numerals } = this.options;\n const localeCode = locale?.code;\n if (localeCode && DateLib.yearFirstLocales.has(localeCode)) {\n try {\n const intl = new Intl.DateTimeFormat(localeCode, {\n month: \"long\",\n year: \"numeric\",\n timeZone,\n numberingSystem: numerals,\n });\n const formatted = intl.format(date);\n return formatted;\n }\n catch {\n // Fallback to date-fns formatting below.\n }\n }\n const pattern = this.getMonthYearOrder() === \"year-first\" ? \"y LLLL\" : \"LLLL y\";\n return this.format(date, pattern);\n }\n}\nDateLib.yearFirstLocales = new Set([\n \"eu\",\n \"hu\",\n \"ja\",\n \"ja-Hira\",\n \"ja-JP\",\n \"ko\",\n \"ko-KR\",\n \"lt\",\n \"lt-LT\",\n \"lv\",\n \"lv-LV\",\n \"mn\",\n \"mn-MN\",\n \"zh\",\n \"zh-CN\",\n \"zh-HK\",\n \"zh-TW\",\n]);\n/** The default locale (English). */\nexport { enUS as defaultLocale } from \"../locale/en-US.js\";\n/**\n * The default date library with English locale.\n *\n * @since 9.2.0\n */\nexport const defaultDateLib = new DateLib();\n/**\n * @ignore\n * @deprecated Use `defaultDateLib`.\n */\nexport const dateLib = defaultDateLib;\n","import { ptBR as dateFnsPtBR } from \"date-fns/locale\";\nimport { DateLib } from \"../classes/DateLib.js\";\n/** Portuguese (Brazil) locale extended with DayPicker-specific translations. */\nexport const ptBR = {\n ...dateFnsPtBR,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers.today)\n label = `Hoje, ${label}`;\n if (modifiers.selected)\n label = `${label}, selecionado`;\n return label;\n },\n labelMonthDropdown: \"Escolha o mês\",\n labelNext: \"Ir para o próximo mês\",\n labelPrevious: \"Ir para o mês anterior\",\n labelWeekNumber: (weekNumber) => `Semana ${weekNumber}`,\n labelYearDropdown: \"Escolha o ano\",\n labelGrid: (date, options, dateLib) => (dateLib ?? new DateLib(options)).formatMonthYear(date),\n labelGridcell: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Hoje, ${label}`;\n }\n return label;\n },\n labelNav: \"Barra de navegação\",\n labelWeekNumberHeader: \"Número da semana\",\n labelWeekday: (date, options, dateLib) => (dateLib ?? new DateLib(options)).format(date, \"cccc\"),\n },\n};\n","import {\r\n ChevronDown16Regular,\r\n ChevronLeft16Regular,\r\n ChevronRight16Regular,\r\n ChevronUp16Regular,\r\n} from \"@fluentui/react-icons\";\r\nimport clsx from \"clsx\";\r\nimport { createContext, useContext, useState } from \"react\";\r\nimport { DayPicker } from \"react-day-picker\";\r\nimport { enUS, ptBR } from \"react-day-picker/locale\";\r\n\r\nimport styles from \"./Calendar.module.scss\";\r\n\r\nimport type { CalendarProps } from \"./Calendar.types\";\r\nimport type { DateRange, MonthCaptionProps } from \"react-day-picker\";\r\n\r\ntype ChevronOrientation = \"up\" | \"down\" | \"left\" | \"right\";\r\n\r\nconst FLUENT_CHEVRON_MAP: Record<ChevronOrientation, React.ComponentType<{ className?: string; \"aria-hidden\"?: boolean }>> = {\r\n down: ChevronDown16Regular,\r\n up: ChevronUp16Regular,\r\n left: ChevronLeft16Regular,\r\n right: ChevronRight16Regular,\r\n};\r\n\r\nconst CustomChevron = ({\r\n orientation = \"left\",\r\n className,\r\n}: {\r\n className?: string;\r\n size?: number;\r\n disabled?: boolean;\r\n orientation?: ChevronOrientation;\r\n}) => {\r\n const Icon = FLUENT_CHEVRON_MAP[orientation];\r\n return <span className={styles.chevron_wrapper}><Icon className={className} aria-hidden /></span>;\r\n};\r\n\r\ntype GridView = \"days\" | \"months\" | \"years\";\r\n\r\ninterface GridPickerContext {\r\n view: GridView;\r\n intlLocale: string;\r\n onYearLabelClick: () => void;\r\n}\r\n\r\nconst GridCtx = createContext<GridPickerContext | null>(null);\r\n\r\nconst GridMonthCaption = ({ calendarMonth, displayIndex: _displayIndex, ...divProps }: MonthCaptionProps) => {\r\n const ctx = useContext(GridCtx);\r\n const { view, intlLocale, onYearLabelClick } = ctx ?? ({} as GridPickerContext);\r\n const date = calendarMonth.date;\r\n const monthLabel = new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(date);\r\n const yearLabel = String(date.getFullYear());\r\n\r\n return (\r\n <div {...divProps}>\r\n <span className={styles.caption_grid_label}>\r\n {monthLabel}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n aria-pressed={view === \"years\"}\r\n onClick={onYearLabelClick}\r\n >\r\n {yearLabel}\r\n {view !== \"days\" ? (\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden /></span>\r\n ) : (\r\n <span className={styles.chevron_wrapper}><ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden /></span>\r\n )}\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nconst YEARS_PER_PAGE = 20;\r\n\r\nconst Calendar = ({\r\n mode = \"single\",\r\n selected,\r\n selectedRange,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onRangeSelect,\r\n onDateChange,\r\n onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n numberOfMonths,\r\n className,\r\n style,\r\n scale = 1,\r\n id,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n}: CalendarProps) => {\r\n const animate = true;\r\n\r\n const [internalSelected, setInternalSelected] = useState<Date | undefined>(\r\n selected ?? undefined\r\n );\r\n\r\n const [internalRange, setInternalRange] = useState<DateRange | undefined>(\r\n selectedRange ?? undefined\r\n );\r\n\r\n const [internalDisplayMonth, setInternalDisplayMonth] = useState<Date>(\r\n () => currentDate ?? defaultMonth ?? new Date()\r\n );\r\n\r\n const [gridView, setGridView] = useState<GridView>(\"days\");\r\n const [yearPageStart, setYearPageStart] = useState<number>(\r\n () => (currentDate ?? defaultMonth ?? new Date()).getFullYear() - 9\r\n );\r\n\r\n const resolvedSelected =\r\n selected !== undefined\r\n ? (selected ?? undefined)\r\n : internalSelected;\r\n\r\n const resolvedRange =\r\n selectedRange !== undefined\r\n ? (selectedRange ?? undefined)\r\n : internalRange;\r\n\r\n const resolvedLocale = locale === \"pt-br\" ? ptBR : enUS;\r\n const intlLocale = locale === \"pt-br\" ? \"pt-BR\" : \"en-US\";\r\n\r\n const disabledMatchers = [\r\n ...(minDate ? [{ before: minDate }] : []),\r\n ...(maxDate ? [{ after: maxDate }] : []),\r\n ...(disabled ? (Array.isArray(disabled) ? disabled : [disabled]) : []),\r\n ];\r\n\r\n const handleSelect = (date: Date | undefined) => {\r\n setInternalSelected(date);\r\n if (date) {\r\n onDaySelect?.(date);\r\n } else {\r\n onClear?.();\r\n }\r\n };\r\n\r\n const handleRangeSelect = (range: DateRange | undefined, selectedDay: Date) => {\r\n const current = resolvedRange;\r\n\r\n // Desselecionar: apenas um dia marcado (to ausente ou to = from) e o usuário clicou nele\r\n const isSingleDaySelected =\r\n current?.from != null &&\r\n (current.to == null || current.from.getTime() === current.to.getTime());\r\n\r\n if (isSingleDaySelected && current?.from?.getTime() === selectedDay.getTime()) {\r\n setInternalRange(undefined);\r\n onRangeSelect?.(undefined);\r\n onClear?.();\r\n return;\r\n }\r\n\r\n // Range completo (from ≠ to): reinicia a seleção com o dia clicado\r\n const isComplete =\r\n current?.from != null &&\r\n current?.to != null &&\r\n current.from.getTime() !== current.to.getTime();\r\n\r\n if (isComplete) {\r\n const fresh: DateRange = { from: selectedDay, to: undefined };\r\n setInternalRange(fresh);\r\n onRangeSelect?.(fresh);\r\n return;\r\n }\r\n\r\n setInternalRange(range);\r\n onRangeSelect?.(range);\r\n };\r\n\r\n const handleMonthChange = (date: Date) => {\r\n setInternalDisplayMonth(date);\r\n onDateChange?.(date);\r\n };\r\n\r\n const resolvedDisplayMonth = currentDate ?? internalDisplayMonth;\r\n const displayedMonthIndex = resolvedDisplayMonth.getMonth();\r\n const displayedYear = resolvedDisplayMonth.getFullYear();\r\n\r\n const startYear = startMonth?.getFullYear() ?? 1900;\r\n const endYear = endMonth?.getFullYear() ?? 2100;\r\n\r\n const handleGridMonthSelect = (monthIndex: number) => {\r\n const newDate = new Date(displayedYear, monthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"days\");\r\n };\r\n\r\n const handleGridYearSelect = (year: number) => {\r\n const newDate = new Date(year, displayedMonthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"months\");\r\n };\r\n\r\n const handleYearLabelClick = () => {\r\n setYearPageStart(displayedYear - 9);\r\n setGridView((v) => (v === \"years\" ? \"days\" : \"years\"));\r\n };\r\n\r\n const clampedYearPageStart = Math.max(startYear, yearPageStart);\r\n const yearsInPage = Array.from({ length: YEARS_PER_PAGE }, (_, i) => clampedYearPageStart + i).filter(\r\n (y) => y <= endYear\r\n );\r\n\r\n const canGoPrevYears = clampedYearPageStart - YEARS_PER_PAGE >= startYear;\r\n const canGoNextYears = clampedYearPageStart + YEARS_PER_PAGE <= endYear;\r\n\r\n const monthsGrid = Array.from({ length: 12 }, (_, i) => ({\r\n index: i,\r\n label: new Intl.DateTimeFormat(intlLocale, { month: \"short\" }).format(new Date(2000, i, 1)),\r\n disabled:\r\n (startMonth != null &&\r\n new Date(displayedYear, i, 1) < new Date(startMonth.getFullYear(), startMonth.getMonth(), 1)) ||\r\n (endMonth != null &&\r\n new Date(displayedYear, i, 1) > new Date(endMonth.getFullYear(), endMonth.getMonth(), 1)),\r\n }));\r\n\r\n const gridCtxValue: GridPickerContext = {\r\n view: gridView,\r\n intlLocale,\r\n onYearLabelClick: handleYearLabelClick,\r\n };\r\n\r\n const sharedDayPickerProps = {\r\n classNames: styles,\r\n animate,\r\n startMonth,\r\n endMonth,\r\n disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined,\r\n locale: resolvedLocale,\r\n autoFocus,\r\n \"aria-label\": ariaLabel,\r\n captionLayout: \"label\" as const,\r\n numberOfMonths,\r\n month: resolvedDisplayMonth,\r\n onMonthChange: handleMonthChange,\r\n components: { MonthCaption: GridMonthCaption, Chevron: CustomChevron },\r\n };\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, className)} style={{ ...containerStyle, ...style }}>\r\n {mode === \"range\" ? (\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...(rest as object)}\r\n mode=\"range\"\r\n selected={resolvedRange}\r\n onSelect={handleRangeSelect}\r\n />\r\n ) : (\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...(rest as object)}\r\n mode=\"single\"\r\n selected={resolvedSelected}\r\n onSelect={handleSelect}\r\n />\r\n )}\r\n {gridView !== \"days\" && (\r\n <div\r\n className={`${styles.gridOverlay}${gridView === \"years\" ? ` ${styles.gridOverlayYears}` : \"\"}`}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={gridView === \"months\" ? \"Selecione o mês\" : \"Selecione o ano\"}\r\n >\r\n {gridView === \"months\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de mês\"\r\n >\r\n {displayedYear}\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </span>\r\n </button>\r\n </div>\r\n <div className={styles.gridCells}>\r\n {monthsGrid.map(({ index, label, disabled: monthDisabled }) => (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n disabled={monthDisabled}\r\n className={`${styles.gridCell}${displayedMonthIndex === index ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridMonthSelect(index)}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n {gridView === \"years\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de ano\"\r\n >\r\n {displayedYear}\r\n <span className={styles.chevron_wrapper}>\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </span>\r\n </button>\r\n <div className={styles.gridOverlayYearsNav}>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoPrevYears}\r\n onClick={() => setYearPageStart((s) => s - YEARS_PER_PAGE)}\r\n aria-label=\"Anos anteriores\"\r\n >\r\n <span className={styles.chevron_wrapper}><ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden /></span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoNextYears}\r\n onClick={() => setYearPageStart((s) => s + YEARS_PER_PAGE)}\r\n aria-label=\"Próximos anos\"\r\n >\r\n <span className={styles.chevron_wrapper}><ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden /></span>\r\n </button>\r\n </div>\r\n </div>\r\n <div className={`${styles.gridCells} ${styles.gridCellsYears}`}>\r\n {yearsInPage.map((year) => (\r\n <button\r\n key={year}\r\n type=\"button\"\r\n className={`${styles.gridCell}${displayedYear === year ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridYearSelect(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </GridCtx.Provider>\r\n );\r\n};\r\n\r\nexport default Calendar;\r\n","import { Dismiss24Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Callout.module.scss';\r\n\r\nimport type { CalloutProps } from './Callout.types';\r\n\r\nconst Callout: React.FC<CalloutProps> = ({\r\n variant = 'neutral',\r\n title,\r\n text,\r\n icon,\r\n onDismiss,\r\n dismiss,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n id,\r\n style,\r\n ...rest\r\n}) => {\r\n if (process.env.NODE_ENV !== 'production' && (text === '' || (typeof text === 'string' && !text.trim()))) {\r\n console.warn('[Callout] A prop `text` não pode ser uma string vazia.');\r\n }\r\n\r\n const generatedId = useId();\r\n const titleId = `callout-title-${id || generatedId}`;\r\n const componentId = id || generatedId;\r\n\r\n const isAlert = variant === 'alert';\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n styles[variant],\r\n { [styles.withTitle]: title },\r\n className\r\n );\r\n\r\n const customStyle: React.CSSProperties = {\r\n ...style,\r\n ...(backgroundColor && { '--callout-bg': `var(--${backgroundColor})` } as React.CSSProperties),\r\n ...(textColor && { '--callout-text': `var(--${textColor})` } as React.CSSProperties),\r\n };\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={containerClass}\r\n role={isAlert ? 'alert' : 'status'}\r\n aria-live={isAlert ? 'assertive' : 'polite'}\r\n aria-labelledby={title ? titleId : undefined}\r\n style={customStyle}\r\n {...rest}\r\n >\r\n <div className={styles.content}>\r\n {icon && <span className={styles.icon} aria-hidden=\"true\">{icon}</span>}\r\n <div className={styles.subcontent}>\r\n {title && (\r\n <span id={titleId} className={styles.title}>{title}</span>\r\n )}\r\n {text && <span className={styles.text}>{text}</span>}\r\n </div>\r\n {dismiss && (\r\n <button\r\n className={styles.dismiss}\r\n onClick={onDismiss}\r\n type=\"button\"\r\n aria-label=\"Fechar\"\r\n >\r\n <Dismiss24Regular aria-hidden=\"true\" />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Callout;\r\n","import clsx from 'clsx';\r\nimport styles from './Card.module.scss'\r\n\r\nimport type { CardProps } from './Card.types';\r\n\r\nexport default function Card({ children, className, hoverable, borderRadius }: CardProps) {\r\n return (\r\n <div\r\n className={clsx(styles['card'], hoverable && styles['card--hoverable'], className)}\r\n style={borderRadius !== undefined ? { borderRadius: `var(--border-radius-${borderRadius})` } : undefined}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}","import React from 'react';\r\n\r\nexport interface CheckSmallProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckSmall: React.FC<CheckSmallProps> = ({ \r\n className = '',\r\n width = 12,\r\n height = 10,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 12 10\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <path \r\n d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" \r\n fill={fill} \r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckSmall;\r\n","import React from 'react';\r\n\r\nexport interface CheckHalfProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckHalf: React.FC<CheckHalfProps> = ({ \r\n className = '',\r\n width = 16,\r\n height = 16,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 16 16\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <g id=\"Icons/check_indeterminate_small\">\r\n <path \r\n id=\"icon\" \r\n d=\"M3 9V7H13V9H3Z\" \r\n fill={fill} \r\n />\r\n </g>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckHalf;\r\n","import clsx from 'clsx';\r\nimport { Checkbox as CheckboxRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { CheckSmall, CheckHalf } from '@/shared/icons';\r\n\r\nimport styles from './Checkbox.module.scss';\r\nimport { CheckboxProps } from './Checkbox.types';\r\n\r\n\r\nconst Checkbox: React.FC<CheckboxProps> = ({\r\n id,\r\n label,\r\n onCheckedChange,\r\n checked,\r\n disabled,\r\n className,\r\n style,\r\n scale = 1,\r\n indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n return (\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n >\r\n <div\r\n className={clsx(styles.wrapperCheckbox, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"presentation\"\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <CheckboxRadix.Root\r\n className={styles.root}\r\n checked={indeterminate ? 'indeterminate' : checked}\r\n id={componentId}\r\n onCheckedChange={onCheckedChange}\r\n disabled={disabled}\r\n data-disabled={disabled}\r\n data-indeterminate={indeterminate}\r\n aria-checked={indeterminate ? 'mixed' : checked ? 'true' : 'false'}\r\n {...rest}\r\n >\r\n <CheckboxRadix.Indicator className={styles.indicator}>\r\n {indeterminate ? <CheckHalf /> : <CheckSmall />}\r\n </CheckboxRadix.Indicator>\r\n </CheckboxRadix.Root>\r\n </div>\r\n <label\r\n className={clsx(styles.label, { [styles.disabled]: disabled })}\r\n htmlFor={componentId}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Chips.module.scss';\r\n\r\nimport type { ChipsProps } from './Chips.types';\r\n\r\nconst Chips: React.FC<ChipsProps> = ({\r\n children,\r\n leftIcon,\r\n rightIcon,\r\n variant = 'neutral',\r\n disabled = false,\r\n backgroundColor,\r\n textColor,\r\n scale = 1,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n\r\n const isInteractive = typeof rest.onClick === 'function';\r\n\r\n const chipsClass = clsx(\r\n styles.chips,\r\n styles[variant],\r\n {\r\n [styles.disabled]: disabled,\r\n [styles.interactive]: isInteractive && !disabled,\r\n [styles.hasLeftIcon]: leftIcon,\r\n [styles.hasRightIcon]: rightIcon,\r\n },\r\n className\r\n );\r\n\r\n const colorStyle = {\r\n '--giro-scale': scale,\r\n ...(!disabled && backgroundColor && { '--chips-bg': `var(--${backgroundColor})` }),\r\n ...(!disabled && textColor && { '--chips-text': `var(--${textColor})` }),\r\n ...style,\r\n } as React.CSSProperties;\r\n\r\n const { onKeyDown: userOnKeyDown, ...otherRest } = rest;\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n userOnKeyDown?.(e);\r\n if (!e.defaultPrevented && isInteractive && !disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n rest.onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={chipsClass}\r\n aria-disabled={disabled}\r\n style={colorStyle}\r\n role={isInteractive ? 'button' : undefined}\r\n tabIndex={isInteractive ? (disabled ? -1 : 0) : undefined}\r\n onKeyDown={handleKeyDown}\r\n {...otherRest}\r\n >\r\n {leftIcon && (\r\n <span className={styles.iconLeft} aria-hidden=\"true\">\r\n {leftIcon}\r\n </span>\r\n )}\r\n <span className={styles.title}>{children}</span>\r\n {rightIcon && (\r\n <span className={styles.iconRight} aria-hidden=\"true\">\r\n {rightIcon}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst MemoizedChips = React.memo(Chips);\r\nMemoizedChips.displayName = 'Chips';\r\n\r\nexport default MemoizedChips;","import clsx from 'clsx';\r\nimport styles from './Container.module.scss'\r\n\r\nimport type { ContainerProps } from './Container.types';\r\n\r\nexport default function Container({ children, className }: ContainerProps) {\r\n return (\r\n <main className={clsx(styles['container'], 'mx-auto', className)}>\r\n {children}\r\n </main>\r\n )\r\n}","import clsx from \"clsx\";\r\nimport { Popover as PopoverRadix } from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from \"./Popover.module.scss\";\r\nimport { PopoverProps } from \"./Popover.types\";\r\n\r\nconst Popover: React.FC<PopoverProps> = ({\r\n trigger,\r\n content,\r\n side = \"left\",\r\n align = \"start\", \r\n sideOffset = 8, \r\n open,\r\n onOpenChange,\r\n asAnchor = false,\r\n onOpenAutoFocus,\r\n onCloseAutoFocus,\r\n showArrow = false,\r\n className,\r\n ...rest\r\n}) => {\r\n return (\r\n <PopoverRadix.Root open={open} onOpenChange={onOpenChange} {...rest}>\r\n {asAnchor ? (\r\n <PopoverRadix.Anchor asChild>\r\n {trigger}\r\n </PopoverRadix.Anchor>\r\n ) : (\r\n <PopoverRadix.Trigger asChild>\r\n {trigger}\r\n </PopoverRadix.Trigger>\r\n )}\r\n <PopoverRadix.Portal>\r\n <PopoverRadix.Content\r\n className={clsx(styles.Content, className)}\r\n sideOffset={sideOffset}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={asAnchor ? (e) => e.preventDefault() : onOpenAutoFocus}\r\n onCloseAutoFocus={asAnchor ? (e) => e.preventDefault() : onCloseAutoFocus}\r\n onInteractOutside={asAnchor ? (e) => e.preventDefault() : undefined}\r\n >\r\n {content}\r\n {showArrow && <PopoverRadix.Arrow className={styles.Arrow} />}\r\n </PopoverRadix.Content>\r\n </PopoverRadix.Portal>\r\n </PopoverRadix.Root>\r\n );\r\n};\r\n\r\nexport default Popover;\r\n","import { useRef, useCallback } from 'react';\r\n\r\nimport type { ForwardedRef } from 'react';\r\n\r\nfunction useInputKeyboardValue<T extends HTMLElement>(externalRef: ForwardedRef<T>) {\r\n const internalRef = useRef<T>(null);\r\n\r\n const setRefs = useCallback(\r\n (node: T | null) => {\r\n internalRef.current = node;\r\n\r\n if (typeof externalRef === 'function') {\r\n externalRef(node);\r\n return;\r\n }\r\n\r\n if (externalRef) {\r\n externalRef.current = node;\r\n }\r\n },\r\n [externalRef]\r\n );\r\n\r\n return { internalRef, setRefs };\r\n}\r\n\r\nexport default useInputKeyboardValue;\r\n","import {\r\n Backspace20Regular,\r\n ChevronDown20Regular,\r\n KeyboardShift20Filled,\r\n KeyboardShift20Regular,\r\n KeyboardShiftUppercase20Regular,\r\n Emoji20Regular,\r\n ArrowImport20Regular,\r\n Spacebar20Regular,\r\n} from '@fluentui/react-icons';\r\n\r\nimport type { VirtualKeyboardType } from '../VirtualKeyboard.types';\r\nimport type { ElementType } from 'react';\r\n\r\nconst iconSlot = (key: string): string => `<span data-icon-key=\"${key}\"></span>`;\r\n\r\nexport const ICON_KEY_MAP: Record<string, ElementType> = {\r\n bksp: Backspace20Regular,\r\n shift: KeyboardShift20Regular,\r\n shiftactivated: KeyboardShift20Filled,\r\n capslock: KeyboardShiftUppercase20Regular,\r\n downkeyboard: ChevronDown20Regular,\r\n emoji: Emoji20Regular,\r\n enterNumpad: ArrowImport20Regular,\r\n spaceNumpad: Spacebar20Regular,\r\n};\r\n\r\nconst SHARED_DISPLAY: Record<string, string> = {\r\n '{capslock}': iconSlot('capslock'),\r\n '{numbers}': '123',\r\n '{abc}': 'Abc',\r\n '{alt}': '.?!',\r\n '{alt2}': '#+=',\r\n '{emoticon}': iconSlot('emoji'),\r\n '{shift}': iconSlot('shift'),\r\n '{shiftactivated}': iconSlot('shiftactivated'),\r\n '{enter}': 'Enter',\r\n '{bksp}': iconSlot('bksp'),\r\n '{altright}': '.?123',\r\n '{downkeyboard}': iconSlot('downkeyboard'),\r\n '{space}': ' ',\r\n '{default}': 'Abc',\r\n};\r\n\r\nexport const LAYOUT_DISPLAY: Partial<Record<VirtualKeyboardType, Record<string, string>>> = {\r\n default: SHARED_DISPLAY,\r\n numeric: SHARED_DISPLAY,\r\n};\r\n","import type { VirtualKeyboardType } from '../VirtualKeyboard.types';\r\n\r\nconst EMOTICON_KEY = '{emoticon}';\r\nconst DOWN_KEYBOARD_KEY = '{downkeyboard}';\r\nconst ENTER_KEY = '{enter}';\r\n\r\nconst removeKeyFromLayout = (\r\n layout: Record<string, string[]>,\r\n key: string,\r\n skipLayouts: string[] = []\r\n) =>\r\n Object.fromEntries(\r\n Object.entries(layout).map(([layoutName, rows]) => [\r\n layoutName,\r\n skipLayouts.includes(layoutName)\r\n ? rows\r\n : rows.map((row) => row.split(key).join(' ').replace(/\\s+/g, ' ').trim()),\r\n ])\r\n ) as Record<string, string[]>;\r\n\r\nconst replaceKeyWithBlank = (layout: Record<string, string[]>, key: string) =>\r\n Object.fromEntries(\r\n Object.entries(layout).map(([layoutName, rows]) => [\r\n layoutName,\r\n rows.map((row) => row.split(key).join('{//}')),\r\n ])\r\n ) as Record<string, string[]>;\r\n\r\nconst QWERTY_LOWERCASE = [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'q w e r t y u i o p',\r\n 'a s d f g h j k l ç',\r\n '{shift} z x c v b n m {bksp}',\r\n '{numbers} {alt} {space} . {enter}',\r\n];\r\n\r\nconst NUMPAD = ['1 2 3', '4 5 6', '7 8 9', '{abc} 0 {bksp}'];\r\n\r\nconst NUMPAD_WITH_ENTER = ['1 2 3 -', '4 5 6 {space}', '7 8 9 {bksp}', '{abc} 0 . {enter}'];\r\n\r\nconst SHARED_LAYOUTS = {\r\n shift: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'Q W E R T Y U I O P',\r\n 'A S D F G H J K L Ç',\r\n '{capslock} Z X C V B N M {bksp}',\r\n '{numbers} {alt} {emoticon} {space} . {enter}',\r\n ],\r\n caps: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n 'Q W E R T Y U I O P',\r\n 'A S D F G H J K L Ç',\r\n '{shiftactivated} Z X C V B N M {bksp}',\r\n '{numbers} {alt} {emoticon} {space} . {enter}',\r\n ],\r\n numbers: NUMPAD,\r\n alt: [\r\n '1 2 3 4 5 6 7 8 9 0',\r\n `- / : ; ( ) $ & @ \"`,\r\n '{alt2} . , ? ! ´ {bksp}',\r\n '{default} {emoticon} {space} {enter}',\r\n ],\r\n alt2: [\r\n '[ ] { } # % ^ * + =',\r\n '_ \\\\ | ~ < > ¢ £ ¥ •',\r\n `{alt} . , ? ! ' {bksp}`,\r\n '{default} {emoticon} {space} {enter}',\r\n ],\r\n emoticon: [\r\n '😀 😊 😅 😂 🙂 😉 😍 😛 😠 😎 {bksp}',\r\n `😏 😬 😭 😓 😱 😪 🙄 😴 😯 {enter}`,\r\n '😐 😇 🤣 😘 😚 😆 😡 😥 😓 {shift}',\r\n '{default} {alt} {space} {altright} {downkeyboard}',\r\n ],\r\n};\r\n\r\nexport const NATIVE_LAYOUTS: Partial<Record<VirtualKeyboardType, Record<string, string[]>>> = {\r\n default: {\r\n default: QWERTY_LOWERCASE,\r\n ...SHARED_LAYOUTS,\r\n },\r\n numeric: {\r\n default: NUMPAD,\r\n abc: QWERTY_LOWERCASE,\r\n ...SHARED_LAYOUTS,\r\n },\r\n};\r\n\r\nexport const NATIVE_LAYOUT_KEYS = new Set<VirtualKeyboardType>([\r\n 'default', 'numeric',\r\n]);\r\n\r\nexport const getNativeLayout = (\r\n type: VirtualKeyboardType,\r\n Emoji = true,\r\n showDownKeyboardButton = true,\r\n isFixed = false,\r\n showEnterKey = true,\r\n showTypeSwitchKey = true,\r\n numpadWithEnter = false\r\n): Record<string, string[]> | null => {\r\n const layout = NATIVE_LAYOUTS[type] ?? NATIVE_LAYOUTS.default ?? null;\r\n\r\n if (!layout) return null;\r\n\r\n let computedLayout = numpadWithEnter\r\n ? {\r\n ...layout,\r\n ...(type === 'numeric' ? { default: NUMPAD_WITH_ENTER } : {}),\r\n numbers: NUMPAD_WITH_ENTER,\r\n }\r\n : layout;\r\n\r\n if (!Emoji) {\r\n computedLayout = removeKeyFromLayout(computedLayout, EMOTICON_KEY);\r\n }\r\n\r\n if (!showDownKeyboardButton) {\r\n computedLayout = removeKeyFromLayout(computedLayout, DOWN_KEYBOARD_KEY);\r\n }\r\n\r\n if (!showEnterKey) {\r\n // Numpad layouts always preserve {enter}; only remove from QWERTY layouts\r\n const numpadLayouts = type === 'numeric' ? ['default', 'numbers'] : ['numbers'];\r\n computedLayout = removeKeyFromLayout(computedLayout, ENTER_KEY, numpadLayouts);\r\n }\r\n\r\n if (!showTypeSwitchKey) {\r\n computedLayout = removeKeyFromLayout(computedLayout, '{numbers}');\r\n computedLayout = replaceKeyWithBlank(computedLayout, '{abc}');\r\n }\r\n\r\n if (isFixed) {\r\n computedLayout = Object.fromEntries(\r\n Object.entries(computedLayout).map(([layoutName, rows]) => {\r\n const hasBksp = rows.some((r) => r.includes('{bksp}'));\r\n return [\r\n layoutName,\r\n rows.map((row) => {\r\n const trimmed = row.trim();\r\n if (/^[a-zA-ZçÇ]/.test(trimmed) && trimmed.endsWith('{bksp}')) {\r\n return '{//} ' + trimmed.replace(/\\s*\\{bksp\\}$/, '') + ' {//}';\r\n }\r\n if (!hasBksp && /\\{(shift|capslock|shiftactivated)\\}$/.test(trimmed)) {\r\n return trimmed.replace(/\\{(shift|capslock|shiftactivated)\\}$/, '{bksp}');\r\n }\r\n return row;\r\n }),\r\n ];\r\n })\r\n ) as Record<string, string[]>;\r\n }\r\n\r\n return computedLayout;\r\n};\r\n\r\nexport const SHIFT_TOGGLES: Partial<Record<string, string>> = {\r\n default: 'shift',\r\n abc: 'shift',\r\n shift: 'default',\r\n alt: 'default',\r\n alt2: 'alt',\r\n};\r\n","/**\r\n * Atributo usado para marcar raízes de elementos portalizados (ex.: renderizados via\r\n * `createPortal` em `document.body`) que devem ser ignorados pela lógica de\r\n * \"clique/foco fora\" de camadas dispensáveis do Radix UI (Dialog, Popover, DropdownMenu etc.).\r\n *\r\n * Componentes que renderizam conteúdo fora da árvore DOM do elemento pai (como o\r\n * `VirtualKeyboard` em modo `native`) devem adicionar este atributo à raiz portalizada\r\n * para evitar que o Radix trate cliques nesse conteúdo como \"fora\" do componente,\r\n * o que causaria fechamentos indesejados quando usados dentro de um `Modal` (ou outro\r\n * componente baseado em Radix Dialog/Popover).\r\n */\r\nexport const DISMISS_OUTSIDE_IGNORE_ATTRIBUTE = 'data-dismiss-outside-ignore';\r\n\r\n/**\r\n * Verifica se o alvo de um evento de \"interação fora\" (Radix `onInteractOutside`,\r\n * `onPointerDownOutside`, `onFocusOutside`) está dentro de um elemento marcado com\r\n * {@link DISMISS_OUTSIDE_IGNORE_ATTRIBUTE}.\r\n */\r\nexport const isDismissOutsideIgnored = (target: EventTarget | null): boolean => {\r\n if (!(target instanceof Element)) return false;\r\n return target.closest(`[${DISMISS_OUTSIDE_IGNORE_ATTRIBUTE}]`) !== null;\r\n};\r\n","import clsx from 'clsx';\r\nimport React, { createElement, useState, useCallback, useEffect, useRef, useLayoutEffect, useMemo } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport Keyboard from 'react-simple-keyboard';\r\nimport 'react-simple-keyboard/build/css/index.css';\r\n\r\nimport TextField from '../TextField';\r\nimport { LAYOUT_DISPLAY, ICON_KEY_MAP } from './components/IconDisplay';\r\nimport { NATIVE_LAYOUT_KEYS, SHIFT_TOGGLES, getNativeLayout } from './components/Variants';\r\nimport styles from './VirtualKeyboard.module.scss';\r\nimport { DISMISS_OUTSIDE_IGNORE_ATTRIBUTE } from '../../utils/dismissOutside';\r\n\r\nimport type { VirtualKeyboardProps } from './VirtualKeyboard.types';\r\n\r\nconst LONG_PRESS_DELAY_MS = 400;\r\n\r\nconst ACCENT_OPTIONS: Record<string, string[]> = {\r\n a: ['a', 'á', 'à', 'â', 'ã', 'ä', 'å', 'æ', '@', 'ª'],\r\n e: ['e', 'é', 'è', 'ê', 'ë', 'ę', 'ē', 'ė', '€'],\r\n i: ['i', 'í', 'ì', 'î', 'ï', 'ī', 'į', 'ı'],\r\n o: ['o', 'ó', 'ò', 'ô', 'õ', 'ö','ō', 'ø', 'œ', 'º'],\r\n u: ['u', 'ú', 'ù', 'û', 'ü', 'ū', 'ů', 'ű'],\r\n y: ['y', 'ý', 'ÿ', 'ŷ', 'ȳ'],\r\n n: ['n', 'ñ'],\r\n c: ['c', 'ç'],\r\n '?': ['?','¿'],\r\n '!': ['!','¡'],\r\n};\r\n\r\ntype AccentMenuState = {\r\n sourceKey: string;\r\n options: string[];\r\n top: number;\r\n left: number;\r\n};\r\n\r\n/**\r\n * Componente VirtualKeyboard — teclado virtual on-screen para entradas controladas.\r\n *\r\n * @description Baseado em `react-simple-keyboard`, oferece apenas layouts nativos (QWERTY e numérico)\r\n * seguindo o visual padrão da biblioteca.\r\n *\r\n * Possui dois modos:\r\n * - **`native`** (padrão): age como teclado nativo — aparece ao focar no campo referenciado por `targetRef` e some ao perder o foco.\r\n * - **`fixed`**: teclado sempre visível com um TextField próprio acima.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Modo fixed\r\n * <VirtualKeyboard variant=\"fixed\" type=\"default\" onChange={setValue} />\r\n * ```\r\n *\r\n * @example\r\n * ```tsx\r\n * // Modo native — aparece ao focar no input\r\n * const inputRef = useRef<HTMLInputElement>(null);\r\n * const [value, setValue] = useState('');\r\n * <input ref={inputRef} value={value} readOnly />\r\n * <VirtualKeyboard targetRef={inputRef} value={value} onChange={setValue} />\r\n * ```\r\n */\r\nconst VirtualKeyboard: React.FC<VirtualKeyboardProps> = ({\r\n variant = 'native',\r\n type = 'default',\r\n value,\r\n onChange,\r\n onKeyPress,\r\n onEnterPress,\r\n onTypeChange,\r\n maxLength,\r\n Emoji = false,\r\n className,\r\n id,\r\n placeholder = 'Digite aqui...',\r\n helperText,\r\n error,\r\n errorMessage,\r\n targetRef,\r\n textFieldScale = 1,\r\n showEnterKey = true,\r\n showTypeSwitchKey = true,\r\n numpadWithEnter = false,\r\n nativeHeight,\r\n}) => {\r\n const [internalValue, setInternalValue] = useState(value ?? '');\r\n const [layoutName, setLayoutName] = useState<string>('default');\r\n const [capsLockOn, setCapsLockOn] = useState(false);\r\n const [accentMenu, setAccentMenu] = useState<AccentMenuState | null>(null);\r\n const [accentMenuOffsetX, setAccentMenuOffsetX] = useState(0);\r\n const [activeLayout, setActiveLayout] = useState<Record<string, string[]> | null>(\r\n getNativeLayout(type, Emoji, variant === 'native', variant === 'fixed', showEnterKey, showTypeSwitchKey, numpadWithEnter)\r\n );\r\n const visualType = NATIVE_LAYOUT_KEYS.has(type) ? type : 'default';\r\n const effectiveValue = onChange !== undefined ? (value ?? '') : internalValue;\r\n const isNumpadLayout =\r\n (type === 'numeric' && layoutName === 'default') || layoutName === 'numbers';\r\n\r\n const [isOpen, setIsOpen] = useState(variant !== 'native');\r\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const scrollTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const longPressTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const suppressNextInputRef = useRef<string | null>(null);\r\n const heldAccentKeyRef = useRef<string | null>(null);\r\n const longPressTriggeredRef = useRef(false);\r\n const isKeyboardInteractingRef = useRef(false);\r\n const keyboardWrapperRef = useRef<HTMLDivElement | null>(null);\r\n const keyboardInstanceRef = useRef<{ setInput: (value: string) => void } | null>(null);\r\n const accentMenuRef = useRef<HTMLDivElement | null>(null);\r\n const accentButtonRef = useRef<HTMLButtonElement | null>(null);\r\n const valueRef = useRef(value ?? '');\r\n const [iconSlots, setIconSlots] = useState<HTMLElement[]>([]);\r\n\r\n type KeyPreviewState = { char: string; top: number; left: number } | null;\r\n const [keyPreview, setKeyPreview] = useState<KeyPreviewState>(null);\r\n const [keyPreviewOffsetX, setKeyPreviewOffsetX] = useState(0);\r\n const keyPreviewRef = useRef<HTMLDivElement | null>(null);\r\n const [containerWidth, setContainerWidth] = useState<number>(Infinity);\r\n\r\n useEffect(() => {\r\n valueRef.current = effectiveValue;\r\n }, [effectiveValue]);\r\n\r\n const clearLongPressTimeout = useCallback(() => {\r\n if (longPressTimeoutRef.current !== null) {\r\n clearTimeout(longPressTimeoutRef.current);\r\n longPressTimeoutRef.current = null;\r\n }\r\n }, []);\r\n\r\n const closeAccentMenu = useCallback(() => {\r\n setAccentMenu(null);\r\n accentButtonRef.current = null;\r\n }, []);\r\n\r\n const syncKeyboardInput = useCallback((nextValue: string) => {\r\n keyboardInstanceRef.current?.setInput(nextValue);\r\n }, []);\r\n\r\n useEffect(() => {\r\n syncKeyboardInput(effectiveValue);\r\n }, [effectiveValue, syncKeyboardInput]);\r\n\r\n useEffect(() => {\r\n onTypeChange?.(type);\r\n }, [type, onTypeChange]);\r\n\r\n const scheduleHideIfBlurred = useCallback(() => {\r\n if (variant !== 'native') return;\r\n\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n\r\n hideTimeoutRef.current = setTimeout(() => {\r\n const targetEl = targetRef?.current;\r\n const isTargetFocused = !!targetEl && document.activeElement === targetEl;\r\n\r\n if (!isTargetFocused && !isKeyboardInteractingRef.current) {\r\n setIsOpen(false);\r\n }\r\n }, 150);\r\n }, [variant, targetRef]);\r\n\r\n const scrollTargetIntoView = useCallback(() => {\r\n const targetEl = targetRef?.current;\r\n if (!targetEl) return;\r\n\r\n const keyboardHeight = keyboardWrapperRef.current?.offsetHeight ?? 0;\r\n const rect = targetEl.getBoundingClientRect();\r\n const visibleBottom = window.innerHeight - keyboardHeight - 8;\r\n\r\n if (rect.bottom > visibleBottom) {\r\n window.scrollBy({ top: rect.bottom - visibleBottom, behavior: 'smooth' });\r\n }\r\n }, [targetRef]);\r\n\r\n useEffect(() => {\r\n if (variant !== 'native') return;\r\n\r\n if (!targetRef?.current) {\r\n setIsOpen(true);\r\n return;\r\n }\r\n\r\n const el = targetRef.current;\r\n\r\n const handleFocus = () => {\r\n if (hideTimeoutRef.current !== null) clearTimeout(hideTimeoutRef.current);\r\n if (scrollTimeoutRef.current !== null) clearTimeout(scrollTimeoutRef.current);\r\n setIsOpen(true);\r\n scrollTimeoutRef.current = setTimeout(scrollTargetIntoView, 50);\r\n };\r\n\r\n const handleBlur = () => {\r\n scheduleHideIfBlurred();\r\n };\r\n\r\n el.addEventListener('focus', handleFocus);\r\n el.addEventListener('blur', handleBlur);\r\n\r\n return () => {\r\n el.removeEventListener('focus', handleFocus);\r\n el.removeEventListener('blur', handleBlur);\r\n if (hideTimeoutRef.current !== null) clearTimeout(hideTimeoutRef.current);\r\n if (scrollTimeoutRef.current !== null) clearTimeout(scrollTimeoutRef.current);\r\n };\r\n }, [variant, targetRef, scheduleHideIfBlurred, scrollTargetIntoView]);\r\n\r\n useEffect(() => {\r\n if (variant !== 'native') return;\r\n\r\n const wrapper = keyboardWrapperRef.current;\r\n if (!wrapper) return;\r\n\r\n const preventIOSBlur = (event: TouchEvent) => {\r\n const targetEl = event.target as HTMLElement;\r\n const isButton = !!targetEl.closest('.hg-button');\r\n event.preventDefault();\r\n };\r\n\r\n wrapper.addEventListener('touchstart', preventIOSBlur, { passive: false });\r\n\r\n return () => {\r\n wrapper.removeEventListener('touchstart', preventIOSBlur);\r\n };\r\n}, [variant]);\r\n\r\n useEffect(() => {\r\n setLayoutName('default');\r\n setCapsLockOn(false);\r\n\r\n setActiveLayout(getNativeLayout(type, Emoji, variant === 'native', variant === 'fixed', showEnterKey, showTypeSwitchKey, numpadWithEnter));\r\n }, [type, Emoji, variant, showEnterKey, showTypeSwitchKey, numpadWithEnter]);\r\n\r\n useEffect(() => {\r\n if (!Emoji && layoutName === 'emoticon') {\r\n setLayoutName(type === 'numeric' ? 'abc' : 'default');\r\n }\r\n }, [Emoji, layoutName, type]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n clearLongPressTimeout();\r\n };\r\n }, [clearLongPressTimeout]);\r\n\r\n useEffect(() => {\r\n if (!accentMenu) return;\r\n\r\n const handleOutsidePointerDown = (event: PointerEvent) => {\r\n if (accentMenuRef.current?.contains(event.target as Node)) return;\r\n closeAccentMenu();\r\n };\r\n\r\n const handleEscape = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n closeAccentMenu();\r\n }\r\n };\r\n\r\n document.addEventListener('pointerdown', handleOutsidePointerDown, true);\r\n document.addEventListener('keydown', handleEscape);\r\n\r\n return () => {\r\n document.removeEventListener('pointerdown', handleOutsidePointerDown, true);\r\n document.removeEventListener('keydown', handleEscape);\r\n };\r\n }, [accentMenu, closeAccentMenu]);\r\n\r\n useLayoutEffect(() => {\r\n if (!keyPreview || !keyPreviewRef.current) return;\r\n\r\n const margin = 8;\r\n const rect = keyPreviewRef.current.getBoundingClientRect();\r\n if (rect.width <= 0 || rect.height <= 0) return;\r\n\r\n const minCenter = margin + rect.width / 2;\r\n const maxCenter = window.innerWidth - margin - rect.width / 2;\r\n const clampedCenter = Math.min(maxCenter, Math.max(minCenter, keyPreview.left));\r\n const nextOffset = clampedCenter - keyPreview.left;\r\n\r\n if (Math.abs(nextOffset - keyPreviewOffsetX) > 0.5) {\r\n setKeyPreviewOffsetX(nextOffset);\r\n }\r\n }, [keyPreview, keyPreviewOffsetX]);\r\n\r\n useLayoutEffect(() => {\r\n if (!accentMenu || !accentMenuRef.current) return;\r\n\r\n const margin = 8;\r\n const rect = accentMenuRef.current.getBoundingClientRect();\r\n if (rect.width <= 0 || rect.height <= 0) return;\r\n\r\n const minCenter = margin + rect.width / 2;\r\n const maxCenter = window.innerWidth - margin - rect.width / 2;\r\n const clampedCenter = Math.min(maxCenter, Math.max(minCenter, accentMenu.left));\r\n const nextOffset = clampedCenter - accentMenu.left;\r\n\r\n if (Math.abs(nextOffset - accentMenuOffsetX) > 0.5) {\r\n setAccentMenuOffsetX(nextOffset);\r\n }\r\n }, [accentMenu, accentMenuOffsetX]);\r\n\r\n useEffect(() => {\r\n const wrapper = keyboardWrapperRef.current;\r\n if (!wrapper) return;\r\n const ro = new ResizeObserver((entries) => {\r\n setContainerWidth(entries[0]?.contentRect.width ?? Infinity);\r\n });\r\n ro.observe(wrapper);\r\n return () => ro.disconnect();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!keyboardWrapperRef.current) return;\r\n\r\n const container = keyboardWrapperRef.current;\r\n\r\n const registerNewSlots = () => {\r\n const newSlots = Array.from(\r\n container.querySelectorAll<HTMLElement>('[data-icon-key]:not([data-icon-root])')\r\n );\r\n if (newSlots.length === 0) return;\r\n newSlots.forEach((s) => s.setAttribute('data-icon-root', 'true'));\r\n setIconSlots((prev) => [\r\n ...prev.filter((slot) => container.contains(slot)),\r\n ...newSlots,\r\n ]);\r\n };\r\n\r\n registerNewSlots();\r\n\r\n const observer = new MutationObserver(() => {\r\n setIconSlots((prev) => prev.filter((slot) => container.contains(slot)));\r\n registerNewSlots();\r\n });\r\n\r\n observer.observe(container, { childList: true, subtree: true });\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [variant]);\r\n\r\n useEffect(() => {\r\n closeAccentMenu();\r\n setAccentMenuOffsetX(0);\r\n suppressNextInputRef.current = null;\r\n clearLongPressTimeout();\r\n }, [layoutName, type, closeAccentMenu, clearLongPressTimeout]);\r\n\r\n useEffect(() => {\r\n const updateAccentPosition = () => {\r\n const btn = accentButtonRef.current;\r\n if (!btn) return;\r\n const rect = btn.getBoundingClientRect();\r\n setAccentMenu((prev) =>\r\n prev ? { ...prev, top: rect.top - 8, left: rect.left + rect.width / 2 } : null\r\n );\r\n };\r\n\r\n window.addEventListener('scroll', updateAccentPosition, { capture: true, passive: true });\r\n window.addEventListener('resize', updateAccentPosition);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', updateAccentPosition, true);\r\n window.removeEventListener('resize', updateAccentPosition);\r\n };\r\n }, []);\r\n\r\n const handleLongPressStart = useCallback(\r\n (event: React.PointerEvent<HTMLDivElement>) => {\r\n isKeyboardInteractingRef.current = true;\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n\r\n const keyboardWrapper = keyboardWrapperRef.current;\r\n if (!keyboardWrapper) return;\r\n\r\n const buttonEl = (event.target as HTMLElement).closest('.hg-button') as HTMLButtonElement | null;\r\n if (!buttonEl || !keyboardWrapper.contains(buttonEl)) return;\r\n\r\n event.preventDefault();\r\n\r\n const sourceKey = buttonEl.getAttribute('data-skbtn') ?? '';\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n\r\n if (sourceKey && !sourceKey.startsWith('{') && type !== 'numeric' && containerWidth <= 768) {\r\n const buttonRect = buttonEl.getBoundingClientRect();\r\n setKeyPreviewOffsetX(0);\r\n setKeyPreview({\r\n char: sourceKey,\r\n top: buttonRect.top - 4,\r\n left: buttonRect.left + buttonRect.width / 2,\r\n });\r\n }\r\n\r\n if (!sourceKey || sourceKey.startsWith('{')) return;\r\n\r\n heldAccentKeyRef.current = sourceKey;\r\n clearLongPressTimeout();\r\n\r\n const accentOptions = ACCENT_OPTIONS[sourceKey.toLowerCase()];\r\n if (!accentOptions) return;\r\n\r\n longPressTimeoutRef.current = setTimeout(() => {\r\n const buttonRect = buttonEl.getBoundingClientRect();\r\n const isUpperCaseKey = sourceKey === sourceKey.toUpperCase();\r\n longPressTriggeredRef.current = true;\r\n setKeyPreview(null);\r\n accentButtonRef.current = buttonEl;\r\n setAccentMenu({\r\n sourceKey,\r\n options: isUpperCaseKey\r\n ? accentOptions.map((option) => option.toUpperCase())\r\n : accentOptions,\r\n top: buttonRect.top - 8,\r\n left: buttonRect.left + buttonRect.width / 2,\r\n });\r\n setAccentMenuOffsetX(0);\r\n\r\n suppressNextInputRef.current = sourceKey;\r\n }, LONG_PRESS_DELAY_MS);\r\n },\r\n [clearLongPressTimeout, type, containerWidth]\r\n );\r\n\r\n const handleLongPressEnd = useCallback(() => {\r\n const heldKey = heldAccentKeyRef.current;\r\n const longPressTriggered = longPressTriggeredRef.current;\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n setKeyPreview(null);\r\n isKeyboardInteractingRef.current = false;\r\n clearLongPressTimeout();\r\n\r\n if (heldKey && !longPressTriggered) {\r\n const currentValue = valueRef.current;\r\n if (maxLength === undefined || currentValue.length < maxLength) {\r\n const nextValue = `${currentValue}${heldKey}`;\r\n if (onChange === undefined) setInternalValue(nextValue);\r\n onChange?.(nextValue);\r\n onKeyPress?.(heldKey);\r\n syncKeyboardInput(nextValue);\r\n }\r\n\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n }\r\n\r\n suppressNextInputRef.current = heldKey;\r\n }\r\n\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n scheduleHideIfBlurred();\r\n }, [\r\n clearLongPressTimeout,\r\n scheduleHideIfBlurred,\r\n maxLength,\r\n onChange,\r\n onKeyPress,\r\n syncKeyboardInput,\r\n type,\r\n layoutName,\r\n capsLockOn,\r\n ]);\r\n\r\n // Cobre toda a área do overlay do teclado (inclusive espaços/paddings fora do\r\n // `keyboardWrapperRef`, como o preview de tecla e o menu de acento portalizados),\r\n // garantindo que `isKeyboardInteractingRef` não seja perdido em cliques que não\r\n // caem exatamente sobre um `.hg-button`. Isso evita que o teclado feche sozinho\r\n // (via blur do targetRef) ao interagir com áreas adjacentes do próprio teclado.\r\n const handleOverlayPointerDown = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\r\n if (keyboardWrapperRef.current?.contains(event.target as Node)) return;\r\n\r\n isKeyboardInteractingRef.current = true;\r\n if (hideTimeoutRef.current !== null) {\r\n clearTimeout(hideTimeoutRef.current);\r\n }\r\n }, []);\r\n\r\n const handleOverlayPointerUp = useCallback((event: React.PointerEvent<HTMLDivElement>) => {\r\n if (keyboardWrapperRef.current?.contains(event.target as Node)) return;\r\n\r\n isKeyboardInteractingRef.current = false;\r\n scheduleHideIfBlurred();\r\n }, [scheduleHideIfBlurred]);\r\n\r\n const handleAccentSelect = useCallback(\r\n (accentedChar: string) => {\r\n const currentValue = valueRef.current;\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n if (maxLength !== undefined && currentValue.length >= maxLength) {\r\n closeAccentMenu();\r\n suppressNextInputRef.current = null;\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n const nextValue = `${currentValue}${accentedChar}`;\r\n if (onChange === undefined) setInternalValue(nextValue);\r\n onChange?.(nextValue);\r\n onKeyPress?.(accentedChar);\r\n closeAccentMenu();\r\n suppressNextInputRef.current = null;\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n }\r\n\r\n syncKeyboardInput(nextValue);\r\n },\r\n [maxLength, onChange, onKeyPress, closeAccentMenu, syncKeyboardInput, type, layoutName, capsLockOn]\r\n );\r\n\r\n const handleKeyPress = useCallback(\r\n (button: string) => {\r\n const baseLayout = type === 'numeric' ? 'abc' : 'default';\r\n\r\n if (button === '{capslock}') {\r\n setCapsLockOn((prev) => {\r\n const next = !prev;\r\n setLayoutName(next ? 'caps' : baseLayout);\r\n return next;\r\n });\r\n return;\r\n }\r\n\r\n if (\r\n button === '{shift}' ||\r\n button === '{shiftactivated}'\r\n ) {\r\n if (button === '{shiftactivated}') {\r\n setCapsLockOn(false);\r\n setLayoutName(baseLayout);\r\n return;\r\n }\r\n\r\n setLayoutName((prev) => {\r\n const next = SHIFT_TOGGLES[prev] ?? 'default';\r\n return next === 'default' ? baseLayout : next;\r\n });\r\n return;\r\n }\r\n if (button === '{numbers}') { setLayoutName('numbers'); onTypeChange?.('numeric'); return; }\r\n if (button === '{abc}') { setLayoutName(baseLayout); onTypeChange?.('default'); return; }\r\n if (button === '{alt}' || button === '{altright}') {\r\n setLayoutName((prev) => {\r\n if (prev === 'alt2') return 'alt';\r\n return prev === 'alt' ? baseLayout : 'alt';\r\n });\r\n return;\r\n }\r\n if (button === '{alt2}') { setLayoutName((prev) => (prev === 'alt2' ? 'alt' : 'alt2')); return; }\r\n if (button === '{emoticon}') {\r\n if (!Emoji) return;\r\n setLayoutName((prev) => (prev === 'emoticon' ? baseLayout : 'emoticon'));\r\n return;\r\n }\r\n if (button === '{default}') {\r\n setLayoutName(baseLayout);\r\n return;\r\n }\r\n if (button === '{downkeyboard}') {\r\n setLayoutName(baseLayout);\r\n\r\n if (variant === 'native') {\r\n closeAccentMenu();\r\n setIsOpen(false);\r\n\r\n const targetElement = targetRef?.current;\r\n if (targetElement && document.activeElement === targetElement) {\r\n targetElement.blur();\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n const isHeldAccentKey = heldAccentKeyRef.current === button;\r\n\r\n if (button !== '{bksp}' && button !== '{enter}' && !isHeldAccentKey) {\r\n if (layoutName === 'shift' && !capsLockOn) {\r\n setLayoutName(baseLayout);\r\n } else if (layoutName === baseLayout && capsLockOn) {\r\n setLayoutName('shift');\r\n }\r\n }\r\n\r\n if (isHeldAccentKey) {\r\n return;\r\n }\r\n\r\n if (button === '{enter}') {\r\n onEnterPress?.();\r\n }\r\n\r\n onKeyPress?.(button);\r\n },\r\n [\r\n type,\r\n layoutName,\r\n capsLockOn,\r\n onKeyPress,\r\n onEnterPress,\r\n onTypeChange,\r\n Emoji,\r\n variant,\r\n closeAccentMenu,\r\n targetRef,\r\n ]\r\n );\r\n\r\n const handleChange = useCallback(\r\n (input: string) => {\r\n const currentValue = valueRef.current;\r\n const suppressedKey = suppressNextInputRef.current;\r\n const heldKey = heldAccentKeyRef.current;\r\n\r\n if (\r\n heldKey &&\r\n input.length >= currentValue.length + 1 &&\r\n input.startsWith(currentValue) &&\r\n [...input.slice(currentValue.length)].every((char) => char === heldKey)\r\n ) {\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n if (\r\n suppressedKey &&\r\n input.length === currentValue.length + suppressedKey.length &&\r\n input.endsWith(suppressedKey)\r\n ) {\r\n suppressNextInputRef.current = null;\r\n syncKeyboardInput(currentValue);\r\n return;\r\n }\r\n\r\n if (maxLength !== undefined && input.length > maxLength) return;\r\n if (onChange === undefined) setInternalValue(input);\r\n onChange?.(input);\r\n },\r\n [maxLength, onChange, setInternalValue, syncKeyboardInput]\r\n );\r\n\r\n const portalSizes = useMemo(() => {\r\n if (containerWidth <= 360) return { preview: 42, option: 44, fontSize: 'var(--font-size-16)' as const };\r\n if (containerWidth <= 390) return { preview: 44, option: 44, fontSize: 'var(--font-size-18)' as const };\r\n if (containerWidth <= 480) return { preview: 46, option: 46, fontSize: 'var(--font-size-20)' as const };\r\n if (containerWidth <= 768) return { preview: 48, option: 48, fontSize: undefined };\r\n return { preview: 50, option: 50, fontSize: undefined };\r\n }, [containerWidth]);\r\n\r\n const keyboardDisplay = useMemo(() => {\r\n const baseDisplay = LAYOUT_DISPLAY[visualType];\r\n if (!baseDisplay) return baseDisplay;\r\n\r\n const display = { ...baseDisplay };\r\n\r\n if (numpadWithEnter && isNumpadLayout) {\r\n display['{enter}'] = '<span data-icon-key=\"enterNumpad\"></span>';\r\n display['{space}'] = '<span data-icon-key=\"spaceNumpad\"></span>';\r\n }\r\n\r\n if (variant === 'fixed') {\r\n display['{bksp}'] = (display['{bksp}'] ?? '').replace(/\\s*Apagar$/, '');\r\n }\r\n\r\n return display;\r\n }, [visualType, variant, numpadWithEnter, isNumpadLayout]);\r\n\r\n const keyboardEl = activeLayout ? (\r\n <div\r\n ref={keyboardWrapperRef}\r\n className={clsx(\r\n styles.keyboardWrapper,\r\n isNumpadLayout && styles.keyboardNumpadActive\r\n )}\r\n onPointerDownCapture={handleLongPressStart}\r\n onPointerUpCapture={handleLongPressEnd}\r\n onPointerLeave={handleLongPressEnd}\r\n onPointerCancelCapture={handleLongPressEnd}\r\n >\r\n <Keyboard\r\n keyboardRef={(instance) => {\r\n keyboardInstanceRef.current = instance as { setInput: (value: string) => void } | null;\r\n if (instance) {\r\n (instance as { setInput: (value: string) => void }).setInput(valueRef.current);\r\n }\r\n }}\r\n layoutName={layoutName}\r\n layout={activeLayout}\r\n theme='hg-theme-default'\r\n display={keyboardDisplay}\r\n onChange={handleChange}\r\n onKeyPress={handleKeyPress}\r\n preventMouseDownDefault\r\n disableButtonHold\r\n />\r\n\r\n {(() => {\r\n const shiftCount = { current: 0 };\r\n return iconSlots.map((slot) => {\r\n const key = slot.getAttribute('data-icon-key');\r\n const Icon = key ? ICON_KEY_MAP[key] : undefined;\r\n if (!Icon || !key) return null;\r\n if (key === 'shift') {\r\n const label = shiftCount.current === 0 ? 'left' : 'right';\r\n shiftCount.current += 1;\r\n return createPortal(createElement(Icon), slot, `icon-shift-${label}`);\r\n }\r\n return createPortal(createElement(Icon), slot, `icon-${key}`);\r\n });\r\n })()}\r\n\r\n {keyPreview && typeof document !== 'undefined' && createPortal(\r\n <div\r\n ref={keyPreviewRef}\r\n className={clsx(styles.keyPreview, className)}\r\n style={{\r\n top: keyPreview.top,\r\n left: keyPreview.left + keyPreviewOffsetX,\r\n width: portalSizes.preview,\r\n height: portalSizes.preview,\r\n ...(portalSizes.fontSize ? { fontSize: portalSizes.fontSize } : {}),\r\n }}\r\n aria-hidden\r\n >\r\n {keyPreview.char}\r\n </div>,\r\n document.body\r\n )}\r\n\r\n {accentMenu && (\r\n typeof document !== 'undefined' &&\r\n createPortal(\r\n <div\r\n ref={accentMenuRef}\r\n className={clsx(styles.accentMenu, className)}\r\n style={{\r\n top: accentMenu.top,\r\n left: accentMenu.left + accentMenuOffsetX,\r\n }}\r\n role=\"listbox\"\r\n aria-label={`Opcoes de acento para ${accentMenu.sourceKey}`}\r\n >\r\n {Array.from(\r\n { length: Math.ceil(accentMenu.options.length / 5) },\r\n (_, rowIndex) => accentMenu.options.slice(rowIndex * 5, rowIndex * 5 + 5)\r\n ).map((rowOptions, rowIndex) => (\r\n <div key={rowIndex} className={styles.accentMenuRow}>\r\n {rowOptions.map((option) => (\r\n <button\r\n key={`${accentMenu.sourceKey}-${option}`}\r\n type=\"button\"\r\n className={styles.accentOption}\r\n style={{\r\n minWidth: portalSizes.option,\r\n height: portalSizes.option,\r\n ...(portalSizes.fontSize ? { fontSize: portalSizes.fontSize } : {}),\r\n }}\r\n onPointerDown={(event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n onClick={() => handleAccentSelect(option)}\r\n >\r\n {option}\r\n </button>\r\n ))}\r\n </div>\r\n ))}\r\n </div>,\r\n document.body\r\n )\r\n )}\r\n </div>\r\n ) : null;\r\n\r\n if (variant === 'native' && typeof document !== 'undefined') {\r\n return createPortal(\r\n <div\r\n id={id}\r\n className={clsx(\r\n styles.overlay,\r\n { [styles.overlayOpen]: isOpen },\r\n styles[isNumpadLayout ? 'layout--numeric' : 'layout--default'],\r\n className\r\n )}\r\n style={nativeHeight ? ({ '--vkeyboard-native-height': nativeHeight } as React.CSSProperties) : undefined}\r\n {...{ [DISMISS_OUTSIDE_IGNORE_ATTRIBUTE]: true }}\r\n onPointerDownCapture={handleOverlayPointerDown}\r\n onPointerUpCapture={handleOverlayPointerUp}\r\n onPointerCancelCapture={handleOverlayPointerUp}\r\n >\r\n {keyboardEl}\r\n </div>,\r\n document.body\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n id={id}\r\n className={clsx(\r\n styles.container,\r\n styles[`mode--${variant}`],\r\n styles[isNumpadLayout ? 'layout--numeric' : 'layout--default'],\r\n className\r\n )}\r\n >\r\n {variant === 'fixed' && (\r\n <div className={styles.textFieldContainer}>\r\n <TextField\r\n placeholder={placeholder}\r\n value={effectiveValue}\r\n onChange={onChange}\r\n helperText={helperText}\r\n error={error}\r\n errorMessage={errorMessage}\r\n disableAutoComplete={true}\r\n maxLength={maxLength}\r\n attachedToVirtualKeyboard\r\n className={styles.textFieldWrapper}\r\n scale={textFieldScale}\r\n />\r\n </div>\r\n )}\r\n {keyboardEl}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VirtualKeyboard;\r\n\r\n","export interface ValidationParams {\r\n value: string;\r\n maxLength?: number;\r\n type?: string;\r\n errorMessage?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const validateInput = ({ \r\n value, \r\n maxLength, \r\n errorMessage, \r\n required \r\n}: ValidationParams): string => {\r\n if (required && value.trim() === '') {\r\n return errorMessage || 'Campo obrigatório.';\r\n }\r\n\r\n if (maxLength && value.length > maxLength) {\r\n return errorMessage || `Campo deve ter no máximo ${maxLength} caracteres.`;\r\n }\r\n\r\n return '';\r\n};\r\n","import * as React from 'react';\r\nimport { Label } from 'radix-ui';\r\nimport styles from './index.module.scss';\r\nimport clsx from 'clsx';\r\nimport Tooltip from '../../components/Tooltip/Tooltip';\r\nimport { Info12Regular } from '@fluentui/react-icons';\r\n\r\ninterface LabelProps {\r\n children: React.ReactNode;\r\n htmlFor: string;\r\n required?: boolean;\r\n className?: string;\r\n tooltipText?: string;\r\n tooltip?: boolean;\r\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\r\n align?: \"start\" | \"center\" | \"end\";\r\n error?: boolean;\r\n disabled?: boolean;\r\n scale?: number;\r\n}\r\n\r\nconst LabelComponent = ({\r\n children,\r\n htmlFor,\r\n required = false,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n className,\r\n error = false,\r\n disabled = false,\r\n scale = 1,\r\n}: LabelProps) => {\r\n const containerStyle = {\r\n '--giro-scale': scale,\r\n } as React.CSSProperties;\r\n\r\n const container = (\r\n <div\r\n className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}\r\n style={containerStyle}\r\n >\r\n <Label.Root\r\n className={clsx(\r\n styles.wrapperLabel,\r\n error && !disabled && styles.errorLabel,\r\n disabled && styles.disabledLabel,\r\n className\r\n )}\r\n htmlFor={htmlFor}\r\n >\r\n {children}\r\n {required && <span className={styles.requiredLabel}>*</span>}\r\n </Label.Root>\r\n {tooltip && (\r\n <span\r\n className={\r\n disabled ? styles.disabledIcon : error ?\r\n styles.errorIcon : styles.infoIcon\r\n }\r\n >\r\n <Info12Regular />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n\r\n if (tooltip) {\r\n return (\r\n <Tooltip side={side} align={align} text={tooltipText || ''}>\r\n {container}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return container;\r\n};\r\n\r\nexport default LabelComponent;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, useEffect } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\nimport styles from './TextField.module.scss';\r\nimport { validateInput } from './utils';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextFieldProps } from './TextField.types';\r\n\r\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>((\r\n {\r\n className,\r\n style,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n icon,\r\n scale = 1,\r\n onBlur,\r\n onFocus,\r\n name,\r\n virtualKeyboard,\r\n attachedToVirtualKeyboard,\r\n disableAutoComplete = false,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const normalizeValue = (val: string | number | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n \r\n const [inputValue, setInputValue] = useState(normalizeValue(value));\r\n const [inputError, setInputError] = useState('');\r\n const [isFocused, setIsFocused] = useState(false);\r\n const { internalRef: inputRef, setRefs: setInputRefs } = useInputKeyboardValue(ref);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n const newValue = normalizeValue(value);\r\n setInputValue(newValue);\r\n \r\n if (inputError) {\r\n const validationError = validateInput({\r\n value: newValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(validationError);\r\n }\r\n }, [value, inputError, type, maxLength, errorMessage, required]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setInputValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleClear = useCallback(() => {\r\n if (!disabled) {\r\n setInputValue('');\r\n onChange?.('');\r\n }\r\n }, [disabled, onChange]);\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n const error = validateInput({\r\n value: inputValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(error);\r\n setIsFocused(false);\r\n onBlur?.(e);\r\n },\r\n [inputValue, type, maxLength, errorMessage, required, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n setIsFocused(true);\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const showCustomIcon = (inputValue.trim().length === 0 || !isFocused) && icon;\r\n const showClearIcon = isFocused && inputValue.trim().length > 0;\r\n const hasError = Boolean(inputError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || inputError || helperText || '\\u00A0';\r\n const helperId = (inputError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const containerClass = clsx(styles.container, className, {\r\n [styles.attachedToVirtualKeyboard]: attachedToVirtualKeyboard,\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError,\r\n [styles.errorWithMessage]: !!errorMessage,\r\n });\r\n\r\n return (\r\n <div className={containerClass} style={{ ...containerStyle, ...style }}>\r\n {label && (\r\n <LabelComponent scale={scale}\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={!!tooltipText}\r\n tooltipText={tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <input\r\n {...rest}\r\n ref={setInputRefs}\r\n id={componentId}\r\n name={name}\r\n type={type}\r\n value={inputValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n autoComplete={(disableAutoComplete || virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'off' : rest.autoComplete}\r\n className={clsx({\r\n [styles.inputWithIcon]: showCustomIcon || showClearIcon,\r\n })}\r\n />\r\n \r\n {showCustomIcon && <span className={styles.icon}>{icon}</span>}\r\n \r\n {showClearIcon && (\r\n <button\r\n type=\"button\"\r\n className={styles.clearButton}\r\n onMouseDown={(e: React.MouseEvent) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <span className={styles.clearButtonIcon}><Dismiss16Regular /></span>\r\n </button>\r\n )}\r\n </div>\r\n\r\n {((error && errorMessage) || inputError || helperText) && ( \r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n value={inputValue}\r\n maxLength={maxLength}\r\n targetRef={inputRef}\r\n onChange={(val: string) => {\r\n if (!disabled && (!maxLength || val.length <= maxLength)) {\r\n setInputValue(val);\r\n onChange?.(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nTextField.displayName = 'TextField';\r\n\r\nexport default React.memo(TextField);\r\n","import { Locale } from '../../../types/common.types';\r\n\r\nexport function formatDate(date: Date, locale: Locale = 'pt-br'): string {\r\n if (!date || !(date instanceof Date)) {\r\n return '';\r\n }\r\n\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n if (locale === 'en-us') {\r\n return `${month}/${day}/${year}`;\r\n } else {\r\n return `${day}/${month}/${year}`;\r\n }\r\n}\r\n\r\nexport function applyDateMask(value: string, locale: Locale = 'pt-br'): string {\r\n const digitsOnly = value.replace(/\\D/g, '');\r\n \r\n const limitedDigits = digitsOnly.slice(0, 8);\r\n \r\n let masked = '';\r\n \r\n for (let i = 0; i < limitedDigits.length; i++) {\r\n if (i === 2 || i === 4) {\r\n masked += '/';\r\n }\r\n masked += limitedDigits[i];\r\n }\r\n \r\n return masked;\r\n}\r\n\r\nexport function isValidDateFormat(value: string, locale: Locale = 'pt-br'): boolean {\r\n const dateRegex = locale === 'en-us'\r\n ? /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/\r\n : /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n \r\n return dateRegex.test(value);\r\n}\r\nexport function parseDate(dateString: string, locale: Locale = 'pt-br'): Date | null {\r\n if (!dateString || typeof dateString !== 'string') {\r\n return null;\r\n }\r\n\r\n const dateRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\r\n const match = dateString.trim().match(dateRegex);\r\n \r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const [, first, second, yearStr] = match;\r\n let day: number;\r\n let month: number;\r\n const year = parseInt(yearStr, 10);\r\n\r\n if (locale === 'en-us') {\r\n month = parseInt(first, 10);\r\n day = parseInt(second, 10);\r\n } else {\r\n day = parseInt(first, 10);\r\n month = parseInt(second, 10);\r\n }\r\n\r\n if (month < 1 || month > 12 || day < 1 || day > 31) {\r\n return null;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n \r\n if (date.getFullYear() !== year || \r\n date.getMonth() !== month - 1 || \r\n date.getDate() !== day) {\r\n return null;\r\n }\r\n\r\n return date;\r\n}\r\n\r\nexport function validatePartialDate(value: string, locale: Locale = 'pt-br'): 'valid' | 'invalid' | 'incomplete' {\r\n if (value.length === 0) return 'valid';\r\n\r\n if (value.length === 2) {\r\n const n = parseInt(value, 10);\r\n const isValid = locale === 'en-us' ? n >= 1 && n <= 12 : n >= 1 && n <= 31;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 5) {\r\n const parts = value.split('/');\r\n const a = parseInt(parts[0], 10);\r\n const b = parseInt(parts[1], 10);\r\n const isValid = locale === 'en-us'\r\n ? a >= 1 && a <= 12 && b >= 1 && b <= 31\r\n : a >= 1 && a <= 31 && b >= 1 && b <= 12;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 10) {\r\n if (!isValidDateFormat(value, locale)) return 'invalid';\r\n const parsed = parseDate(value, locale);\r\n return parsed ? 'valid' : 'invalid';\r\n }\r\n\r\n return 'incomplete';\r\n}","import { Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useEffect, useRef, useCallback, useId, KeyboardEvent } from 'react';\r\n\r\nimport Calendar from '../Calendar/Calendar';\r\nimport Popover from '../Popover';\r\nimport TextField from '../TextField';\r\nimport styles from './DatePicker.module.scss';\r\nimport { formatDate, parseDate, applyDateMask, isValidDateFormat, validatePartialDate } from './Utils/DateUtils';\r\n\r\nimport type { DatePickerProps } from './DatePicker.types';\r\n\r\nconst DatePicker: React.FC<DatePickerProps> = ({\r\n locale = 'pt-br',\r\n calendarSide = 'bottom',\r\n calendarAlign = 'start',\r\n helperText,\r\n required = false,\r\n label,\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n error: externalError,\r\n minDate,\r\n maxDate,\r\n 'data-testid': testId,\r\n scale = 1,\r\n id,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const isControlled = value !== undefined;\r\n const [internalDate, setInternalDate] = useState<Date | null>(defaultValue || null);\r\n const [tempInputValue, setTempInputValue] = useState<string>('');\r\n const [isEditing, setIsEditing] = useState<boolean>(false);\r\n const [internalError, setInternalError] = useState<string>('');\r\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\r\n const [currentDate, setCurrentDate] = useState<Date>(new Date());\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n const currentSelectedDate = isControlled ? value : internalDate;\r\n const hasValidationError = !!(externalError || internalError);\r\n const displayValue = isEditing ? tempInputValue : (currentSelectedDate ? formatDate(currentSelectedDate, locale) : '');\r\n\r\n const combinedHelperText = externalError && helperText\r\n ? `${helperText} • ${externalError}`\r\n : externalError || helperText || '';\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const target = event.target as Element;\r\n const isInsideWrapper = wrapperRef.current?.contains(target as Node);\r\n const isInsideCalendar = !!target.closest?.('[data-radix-popper-content-wrapper]');\r\n if (!isInsideWrapper && !isInsideCalendar) {\r\n setShowCalendar(false);\r\n }\r\n }\r\n if (showCalendar) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n }\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showCalendar]);\r\n\r\n const handleDateChange = useCallback((newDate: Date | null) => {\r\n if (!isControlled) {\r\n setInternalDate(newDate);\r\n }\r\n onChange?.(newDate);\r\n setIsEditing(false);\r\n setTempInputValue('');\r\n setInternalError('');\r\n if (newDate) {\r\n setCurrentDate(newDate);\r\n }\r\n }, [isControlled, onChange]);\r\n\r\n const handleIconClick = () => {\r\n setShowCalendar((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (key === 'Enter') {\r\n if (showCalendar) {\r\n if (currentSelectedDate) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n if (tempInputValue.length === 10 && isValidDateFormat(tempInputValue, locale)) {\r\n const parsedDate = parseDate(tempInputValue, locale);\r\n if (parsedDate && !isNaN(parsedDate.getTime())) {\r\n handleDateChange(parsedDate);\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n } else {\r\n setShowCalendar(true);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n if (key === 'Escape') {\r\n if (showCalendar) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const controlKeys = [\r\n 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight',\r\n ];\r\n\r\n if (controlKeys.includes(key)) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const handleDaySelect = (newSelectedDate: Date) => {\r\n setShowCalendar(false);\r\n handleDateChange(newSelectedDate);\r\n };\r\n\r\n const handleFocus = () => {\r\n if (!disabled) {\r\n setShowCalendar(true);\r\n }\r\n };\r\n\r\n const handleTextFieldChange = (value: string) => {\r\n const maskedValue = applyDateMask(value, locale);\r\n\r\n setTempInputValue(maskedValue);\r\n setIsEditing(true);\r\n\r\n if (maskedValue === '') {\r\n setInternalError('');\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n return;\r\n }\r\n\r\n const result = validatePartialDate(maskedValue, locale);\r\n\r\n if (result === 'invalid') {\r\n setInternalError('invalid');\r\n if (maskedValue.length === 10) {\r\n if (!isControlled) setInternalDate(null);\r\n onChange?.(null);\r\n }\r\n } else if (result === 'valid') {\r\n setInternalError('');\r\n if (maskedValue.length === 10) {\r\n const parsedDate = parseDate(maskedValue, locale);\r\n if (parsedDate) {\r\n handleDateChange(parsedDate);\r\n setCurrentDate(parsedDate);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={wrapperRef}\r\n id={id}\r\n className={clsx(styles.datePicker, className)}\r\n style={{ ...containerStyle, ...style }}\r\n {...rest}\r\n >\r\n <Popover\r\n open={showCalendar}\r\n onOpenChange={setShowCalendar}\r\n asAnchor={true}\r\n trigger={\r\n <TextField\r\n className={styles.textfieldContainer}\r\n type=\"tel\"\r\n icon={\r\n <Calendar16Regular \r\n onClick={!disabled ? handleIconClick : undefined}\r\n className={clsx(\r\n styles.datePickerIcon,\r\n disabled && styles.datePickerIconDisabled\r\n )}\r\n />\r\n }\r\n onChange={(e: string | number) => {\r\n handleTextFieldChange(String(e));\r\n }}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus}\r\n autoComplete=\"off\"\r\n value={displayValue}\r\n helperText={!externalError ? (helperText || undefined) : undefined}\r\n errorMessage={externalError ? combinedHelperText : undefined}\r\n error={hasValidationError ? true : undefined}\r\n maxLength={10}\r\n required={required}\r\n label={label}\r\n disabled={disabled}\r\n scale={scale}\r\n id={fieldId}\r\n data-testid={testId}\r\n placeholder={locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY'}\r\n aria-label=\"Open calendar\"\r\n aria-expanded={showCalendar}\r\n aria-controls={calendarId}\r\n aria-invalid={hasValidationError}\r\n aria-describedby={externalError ? undefined : (helperText ? `${fieldId}-help` : undefined)}\r\n /> \r\n }\r\n content={\r\n <Calendar\r\n selected={currentSelectedDate}\r\n currentDate={currentDate}\r\n onDateChange={setCurrentDate}\r\n onDaySelect={handleDaySelect}\r\n locale={locale}\r\n format={locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy'}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n scale={scale}\r\n id={calendarId}\r\n onClear={() => {\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n }}\r\n /> \r\n }\r\n side={calendarSide}\r\n align={calendarAlign}\r\n sideOffset={8}\r\n /> \r\n </div>\r\n );\r\n};\r\n\r\nexport default React.memo(DatePicker);","import { AlertDialog } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\n\r\nimport styles from './Dialog.module.scss';\r\nimport { DialogProps } from \"./Dialog.types\";\r\nimport Button from '../Button/Button';\r\n\r\nconst Dialog: React.FC<DialogProps> = ({\r\n\tshow = false,\r\n title,\r\n bodyContent,\r\n textPrimaryAction,\r\n textSecondaryAction,\r\n\tonPrimaryAction,\r\n\tonSecondaryAction,\r\n\tclassName,\r\n ...rest\r\n}) => (\r\n\t<AlertDialog.Root open={show} {...rest}>\r\n\t\t<AlertDialog.Portal>\r\n\t\t\t<AlertDialog.Overlay className={styles.DialogOverlay} />\r\n\t\t\t<AlertDialog.Content className={clsx(styles.DialogContent, className)}>\r\n\t\t\t\t<AlertDialog.Title className={styles.DialogTitle}>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</AlertDialog.Title>\r\n\t\t\t\t<AlertDialog.Description asChild className={styles.DialogDescription}>\r\n\t\t\t\t\t<div>{bodyContent}</div>\r\n\t\t\t\t</AlertDialog.Description>\r\n\t\t\t\t<div className={styles.DivButtons}>\r\n\t\t\t\t\t{!!(textSecondaryAction && textSecondaryAction.trim()) && (\r\n\t\t\t\t\t\t<AlertDialog.Cancel asChild>\r\n\t\t\t\t\t\t\t<Button variant=\"outlined\" {...(onSecondaryAction && { onClick: onSecondaryAction })}>{textSecondaryAction}</Button>\r\n\t\t\t\t\t\t</AlertDialog.Cancel>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<AlertDialog.Action asChild>\r\n\t\t\t\t\t\t<Button variant=\"filled\" {...(onPrimaryAction && { onClick: onPrimaryAction })}>{textPrimaryAction}</Button>\r\n\t\t\t\t\t</AlertDialog.Action>\r\n\t\t\t\t</div>\r\n\t\t\t</AlertDialog.Content>\r\n\t\t</AlertDialog.Portal>\r\n\t</AlertDialog.Root>\r\n);\r\n\r\nexport default Dialog;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useEffect, useState, useCallback, useRef, ReactNode, ReactElement } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport styles from './Drawer.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { DrawerProps, DrawerExampleProps } from './Drawer.types';\r\n\r\nconst Drawer: React.FC<DrawerProps> = ({\r\n children,\r\n headerContent,\r\n footer,\r\n customWidth = '400px',\r\n onClose,\r\n title = 'Título',\r\n isOpen = false,\r\n onOpen,\r\n className,\r\n id,\r\n disabled = false,\r\n onOverlayClick,\r\n closeOnOverlayClick = true,\r\n closeOnEscape = true,\r\n ...rest\r\n}) => {\r\n\r\n const internalClose = useCallback((): void => {\r\n if (disabled) return;\r\n\r\n onClose();\r\n }, [onClose, disabled]);\r\n\r\n const handleOverlayClick = useCallback((): void => {\r\n if (onOverlayClick) {\r\n onOverlayClick();\r\n }\r\n \r\n if (closeOnOverlayClick && !disabled) {\r\n internalClose();\r\n }\r\n }, [onOverlayClick, closeOnOverlayClick, internalClose, disabled]);\r\n\r\n useEffect(() => {\r\n if (!isOpen || !closeOnEscape) return;\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n internalClose();\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [isOpen, internalClose, closeOnEscape]);\r\n\r\n useEffect(() => {\r\n if (isOpen && !disabled) {\r\n if (onOpen) {\r\n onOpen();\r\n }\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflow = 'unset';\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = 'unset';\r\n };\r\n }, [isOpen, onOpen, disabled]);\r\n\r\n const handleDrawerClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n event.stopPropagation();\r\n };\r\n\r\n const handleCloseClick = (event: React.MouseEvent<HTMLElement>): void => {\r\n event.stopPropagation();\r\n internalClose();\r\n };\r\n\r\n const contentRef = useRef<HTMLDivElement>(null);\r\n const [scrollbarWidth, setScrollbarWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n const contentEl = contentRef.current;\r\n if (!contentEl) return;\r\n\r\n const measureScrollbar = (): void => {\r\n setScrollbarWidth(contentEl.offsetWidth - contentEl.clientWidth);\r\n };\r\n\r\n measureScrollbar();\r\n\r\n const resizeObserver = new ResizeObserver(measureScrollbar);\r\n resizeObserver.observe(contentEl);\r\n\r\n const mutationObserver = new MutationObserver(measureScrollbar);\r\n mutationObserver.observe(contentEl, { childList: true, subtree: true, characterData: true });\r\n\r\n return () => {\r\n resizeObserver.disconnect();\r\n mutationObserver.disconnect();\r\n };\r\n }, [isOpen, children]);\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={clsx(styles['drawerShadow'], {\r\n [styles['drawerShadow--visible']]: isOpen,\r\n })}\r\n onClick={handleOverlayClick}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n data-testid=\"drawer-overlay\"\r\n />\r\n <div\r\n className={clsx(\r\n styles['drawerSidebar'],\r\n {\r\n [styles['drawerSidebar--open']]: isOpen,\r\n [styles['drawerSidebar--disabled']]: disabled,\r\n },\r\n className\r\n )}\r\n style={{\r\n '--drawer-custom-width': customWidth,\r\n '--drawer-scrollbar-width': `${scrollbarWidth}px`,\r\n } as React.CSSProperties}\r\n onClick={handleDrawerClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={id ? `${id}-title` : 'drawer-title'}\r\n aria-hidden={!isOpen}\r\n data-testid=\"drawer-panel\"\r\n id={id}\r\n {...rest}\r\n >\r\n \r\n <div className={styles.drawerTitleClose}>\r\n <div \r\n className={styles.drawerTitle} \r\n id={id ? `${id}-title` : 'drawer-title'}\r\n >\r\n {title}\r\n </div>\r\n \r\n {headerContent && (\r\n <div className={styles.drawerHeaderContent}>{headerContent}</div>\r\n )}\r\n\r\n <Button \r\n onClick={handleCloseClick}\r\n variant='outlined'\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size='lg'\r\n tooltipText='Fechar'\r\n />\r\n </div>\r\n <div \r\n ref={contentRef}\r\n className={styles.drawerChildren} \r\n data-testid=\"drawer-content\"\r\n >\r\n {children}\r\n </div>\r\n {footer && (\r\n <div className={styles.drawerFooter}>{footer}</div>\r\n )}\r\n </div>\r\n </>,\r\n document.body\r\n );\r\n};\r\n\r\nexport default Drawer;","import {\r\n Document24Regular,\r\n Dismiss16Regular,\r\n Warning24Regular,\r\n DocumentAdd24Regular,\r\n} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useCallback,\r\n useEffect,\r\n useId,\r\n useRef,\r\n useState,\r\n} from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport styles from './FileUpload.module.scss';\r\n\r\nimport type { FileUploadProps } from './FileUpload.type';\r\n\r\nconst truncateFileName = (fileName: string, maxChars = 18): string => {\r\n if (fileName.length <= maxChars) return fileName;\r\n const lastDot = fileName.lastIndexOf('.');\r\n const hasExtension = lastDot > 0 && lastDot < fileName.length - 1;\r\n const baseName = hasExtension ? fileName.substring(0, lastDot) : fileName;\r\n const extension = hasExtension ? fileName.substring(lastDot) : '';\r\n const reserved = 3 + extension.length; // \"...\"\r\n const available = maxChars - reserved;\r\n if (available <= 1) {\r\n return fileName.substring(0, maxChars - 3) + '...';\r\n }\r\n return baseName.substring(0, available) + '...' + extension;\r\n}\r\n\r\nconst matchesAccept = (file: File, accept?: string): boolean => {\r\n if (!accept) return true;\r\n const types = accept.split(',').map((t) => t.trim().toLowerCase());\r\n const fileName = file.name.toLowerCase();\r\n const fileType = file.type.toLowerCase();\r\n return types.some((type) => {\r\n if (type.startsWith('.')) {\r\n return fileName.endsWith(type);\r\n }\r\n if (type.endsWith('/*')) {\r\n return fileType.startsWith(type.slice(0, -1));\r\n }\r\n return fileType === type;\r\n });\r\n}\r\n\r\nconst FileUpload = forwardRef<HTMLInputElement, FileUploadProps>(\r\n (\r\n {\r\n value,\r\n onChange,\r\n helperText,\r\n error = false,\r\n errorMessage,\r\n maxFileSize,\r\n maxFilesQuantity,\r\n disabled = false,\r\n className,\r\n id,\r\n accept,\r\n multiple = true,\r\n description = 'Clique ou arraste os arquivos aqui',\r\n descriptionErrorMessage = 'Falha ao subir um ou mais arquivos.',\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const helperId = `${componentId}-helper`;\r\n const listId = `${componentId}-list`;\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [objectUrls, setObjectUrls] = useState<Map<string, string>>(new Map());\r\n const [internalError, setInternalError] = useState<string | null>(null);\r\n\r\n const isControlled = value !== undefined;\r\n const files = isControlled ? value : internalFiles;\r\n\r\n useEffect(() => {\r\n return () => {\r\n objectUrls.forEach((url) => URL.revokeObjectURL(url));\r\n };\r\n }, [objectUrls]);\r\n\r\n const getObjectUrl = useCallback(\r\n (file: File): string => {\r\n const key = `${file.name}-${file.size}`;\r\n const existing = objectUrls.get(key);\r\n if (existing) return existing;\r\n const url = URL.createObjectURL(file);\r\n setObjectUrls((prev) => new Map(prev).set(key, url));\r\n return url;\r\n },\r\n [objectUrls]\r\n );\r\n\r\n const revokeUrl = useCallback((file: File) => {\r\n const key = `${file.name}-${file.size}`;\r\n setObjectUrls((prev) => {\r\n const next = new Map(prev);\r\n const url = next.get(key);\r\n if (url) URL.revokeObjectURL(url);\r\n next.delete(key);\r\n return next;\r\n });\r\n }, []);\r\n\r\n const processFiles = useCallback(\r\n (incoming: FileList | File[]) => {\r\n if (disabled) return;\r\n\r\n const all = Array.from(incoming);\r\n const validFiles = all.filter((file) => {\r\n if (maxFileSize && file.size > maxFileSize) return false;\r\n if (!matchesAccept(file, accept)) return false;\r\n return true;\r\n });\r\n\r\n const merged = multiple\r\n ? [...files, ...validFiles]\r\n : validFiles.slice(0, 1);\r\n\r\n const limited =\r\n maxFilesQuantity && multiple ? merged.slice(0, maxFilesQuantity) : merged;\r\n\r\n // Prioridade de erro: tipo > tamanho > quantidade\r\n const hasTypeError = all.some((file) => !matchesAccept(file, accept));\r\n const hasSizeError = all.some(\r\n (file) => maxFileSize && file.size > maxFileSize\r\n );\r\n const hasQuantityError =\r\n maxFilesQuantity && multiple && merged.length > maxFilesQuantity;\r\n\r\n if (hasTypeError && hasSizeError) {\r\n setInternalError('Um ou mais arquivos possuem tipo ou tamanho inválido.');\r\n } else if (hasTypeError) {\r\n setInternalError('Um ou mais arquivos não são do tipo aceito.');\r\n } else if (hasSizeError) {\r\n setInternalError('Um ou mais arquivos excedem o tamanho máximo permitido.');\r\n } else if (hasQuantityError) {\r\n setInternalError(`Não é possível adicionar mais de ${maxFilesQuantity} arquivo(s).`);\r\n } else {\r\n setInternalError(null);\r\n }\r\n\r\n if (!isControlled) setInternalFiles(limited);\r\n onChange?.(limited);\r\n },\r\n [disabled, files, isControlled, maxFilesQuantity, maxFileSize, multiple, onChange, accept]\r\n );\r\n\r\n const handleInputChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (e.target.files) {\r\n processFiles(e.target.files);\r\n e.target.value = '';\r\n }\r\n },\r\n [processFiles]\r\n );\r\n\r\n const handleClick = useCallback(() => {\r\n if (!disabled) inputRef.current?.click();\r\n }, [disabled]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n inputRef.current?.click();\r\n }\r\n },\r\n [disabled]\r\n );\r\n\r\n const handleDragOver = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n if (!disabled) setIsDragging(true);\r\n },\r\n [disabled]\r\n );\r\n\r\n const handleDragLeave = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n },\r\n []\r\n );\r\n\r\n const handleDrop = useCallback(\r\n (e: React.DragEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n if (!disabled && e.dataTransfer.files.length > 0) {\r\n processFiles(e.dataTransfer.files);\r\n }\r\n },\r\n [disabled, processFiles]\r\n );\r\n\r\n const handleRemove = useCallback(\r\n (e: React.MouseEvent | React.KeyboardEvent, index: number) => {\r\n e.stopPropagation();\r\n const removed = files[index];\r\n revokeUrl(removed);\r\n const updated = files.filter((_, i) => i !== index);\r\n if (!isControlled) setInternalFiles(updated);\r\n onChange?.(updated);\r\n },\r\n [files, isControlled, onChange, revokeUrl]\r\n );\r\n\r\n const hasFiles = files.length > 0;\r\n const isError = error || !!errorMessage || !!internalError;\r\n const displayedHelper = isError ? errorMessage || internalError || helperText : helperText;\r\n\r\n const setRefs = useCallback(\r\n (node: HTMLInputElement | null) => {\r\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node;\r\n if (typeof ref === 'function') ref(node);\r\n else if (ref) (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\r\n },\r\n [ref]\r\n );\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={clsx(styles.container, className)}\r\n >\r\n <input\r\n ref={setRefs}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n disabled={disabled}\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n style={{ display: 'none' }}\r\n onChange={handleInputChange}\r\n {...rest}\r\n />\r\n\r\n <div\r\n role=\"button\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-label={description}\r\n aria-disabled={disabled}\r\n aria-describedby={displayedHelper ? helperId : undefined}\r\n aria-controls={hasFiles ? listId : undefined}\r\n data-invalid={isError || undefined}\r\n className={clsx(\r\n styles.dropZone,\r\n isDragging && styles.dragging,\r\n isError && styles.alert,\r\n disabled && styles.disabled\r\n )}\r\n onClick={handleClick}\r\n onKeyDown={handleKeyDown}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n >\r\n {!hasFiles && !isError && (\r\n <div className={styles.emptyState} aria-hidden=\"true\">\r\n <span className={styles.uploadIcon}>\r\n <DocumentAdd24Regular />\r\n </span>\r\n <span className={styles.uploadText}>{description}</span>\r\n </div>\r\n )}\r\n\r\n {!hasFiles && isError && (\r\n <div className={styles.emptyState} aria-hidden=\"true\">\r\n <span className={styles.alertIcon}>\r\n <Warning24Regular />\r\n </span>\r\n {descriptionErrorMessage && (\r\n <span className={styles.alertText}>{descriptionErrorMessage}</span>\r\n )}\r\n </div>\r\n )}\r\n\r\n {hasFiles && (\r\n <ul\r\n id={listId}\r\n className={styles.fileList}\r\n aria-label={`${files.length} arquivo${files.length !== 1 ? 's' : ''} selecionado${files.length !== 1 ? 's' : ''}`}\r\n aria-live=\"polite\"\r\n >\r\n {files.map((file, index) => {\r\n const isImage = file.type.startsWith('image/');\r\n return (\r\n <li key={`${file.name}-${index}`} className={styles.thumb}>\r\n <div className={styles.thumbClip}>\r\n {isImage ? (\r\n <img\r\n src={getObjectUrl(file)}\r\n alt={file.name}\r\n title={file.name}\r\n className={styles.thumbImage}\r\n />\r\n ) : (\r\n <div className={styles.thumbFile} aria-hidden=\"true\" title={file.name}>\r\n <Document24Regular />\r\n <span className={styles.thumbFileName}>{truncateFileName(file.name)}</span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n className={styles.removeButton}\r\n aria-label={`Remover ${file.name}`}\r\n disabled={disabled}\r\n onClick={(e) => handleRemove(e, index)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleRemove(e, index);\r\n }\r\n }}\r\n >\r\n <Dismiss16Regular aria-hidden=\"true\" />\r\n </button>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n )}\r\n </div>\r\n\r\n {displayedHelper && (\r\n <span\r\n id={helperId}\r\n role={isError ? 'alert' : undefined}\r\n className={clsx(\r\n styles.helperText,\r\n isError && styles.errorText\r\n )}\r\n >\r\n {displayedHelper}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nFileUpload.displayName = 'FileUpload';\r\n\r\nexport default FileUpload;\r\n","import { FilterRegular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback } from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Drawer from '../../Drawer/Drawer';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterProps } from '../Filter.types';\r\n\r\nconst Combined: React.FC<FilterProps> = ({\r\n buttonText = 'Filtrar',\r\n icon,\r\n variant = 'outlined',\r\n disabled = false,\r\n className,\r\n title = 'Filtrar',\r\n drawerWidth = \"fit-content\",\r\n appliedFilterCount = 0,\r\n drawerHeaderContent,\r\n children,\r\n onApply,\r\n onClear,\r\n onOpen,\r\n onClose,\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleOpen = useCallback(() => {\r\n setIsOpen(true);\r\n onOpen?.();\r\n }, [onOpen]);\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClose]);\r\n\r\n const handleApply = useCallback(() => {\r\n onApply?.();\r\n handleClose();\r\n }, [onApply, handleClose]);\r\n\r\n const handleClear = useCallback(() => {\r\n onClear?.();\r\n }, [onClear]);\r\n\r\n return (\r\n <div className={clsx(styles.triggerWrapper, className)} id={id} {...rest}>\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={icon ?? <FilterRegular />}\r\n iconPosition=\"left\"\r\n onClick={handleOpen}\r\n >\r\n <span className={styles.triggerContent}>\r\n {buttonText}\r\n {appliedFilterCount > 0 && (\r\n <Badge badgeValue={appliedFilterCount} filterVariant />\r\n )}\r\n </span>\r\n </Button>\r\n <Drawer\r\n isOpen={isOpen}\r\n onClose={handleClose}\r\n title={title}\r\n customWidth={drawerWidth}\r\n closeOnOverlayClick\r\n closeOnEscape\r\n headerContent={drawerHeaderContent}\r\n footer={\r\n <div className={styles.combinedFooter}>\r\n <Button variant=\"outlined\" onClick={handleClear}>\r\n Limpar\r\n </Button>\r\n <Button onClick={handleApply}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n }\r\n >\r\n <div className={styles.body}>\r\n {children}\r\n </div>\r\n </Drawer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Combined;\r\n","import { Search16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useId } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\nimport styles from './Search.module.scss';\r\n\r\nimport type { SearchProps } from './Search.types';\r\n\r\nconst Search = forwardRef<HTMLInputElement, SearchProps>((\r\n {\r\n placeholder = 'Dica do que deve ser buscado',\r\n disabled = false,\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n onClear,\r\n onClick,\r\n onMouseDown,\r\n searchMode = 'instant',\r\n onSearch,\r\n id,\r\n scale = 1,\r\n className,\r\n style,\r\n virtualKeyboard,\r\n 'data-testid': testId,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const [internalValue, setInternalValue] = useState<string>('');\r\n const { internalRef: inputRef, setRefs: setInputRefs } = useInputKeyboardValue(ref);\r\n const isControlled = value !== undefined && onChange !== undefined;\r\n const currentValue = isControlled ? value : internalValue;\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n onChange?.(e);\r\n } else {\r\n setInternalValue(e.target.value);\r\n }\r\n\r\n if (searchMode === 'instant') {\r\n onSearch?.(e.target.value);\r\n }\r\n };\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onFocus?.(e);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onBlur?.(e);\r\n };\r\n const clearInputSearch = (): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: '' },\r\n currentTarget: { value: '' },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue('');\r\n }\r\n onClear?.();\r\n };\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (searchMode === 'on-enter' && e.key === 'Enter') {\r\n onSearch?.(currentValue || '');\r\n }\r\n\r\n onKeyDown?.(e);\r\n };\r\n return (\r\n <div \r\n className={clsx(\r\n styles.search,\r\n { [styles.disabled]: disabled },\r\n className\r\n )}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n onClick={onClick} \r\n onMouseDown={onMouseDown}\r\n role={onClick || onMouseDown ? \"button\" : undefined}\r\n tabIndex={onClick || onMouseDown ? 0 : undefined}\r\n onKeyDown={onClick || onMouseDown ? (e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n onClick?.(e as any);\r\n }\r\n } : undefined}\r\n >\r\n <span\r\n className={clsx(styles.searchLeftIcon, { [styles.disabled]: disabled })}\r\n tabIndex={-1}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n >\r\n <Search16Regular />\r\n </span>\r\n\r\n <input\r\n ref={setInputRefs}\r\n id={inputId}\r\n type=\"text\"\r\n placeholder={placeholder}\r\n aria-label={placeholder}\r\n value={currentValue || ''}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n disabled={disabled}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n data-testid={testId}\r\n {...rest}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n className={clsx({ [styles.inputWithClearIcon]: currentValue && currentValue.length > 0 })} \r\n />\r\n {currentValue && currentValue.length > 0 && (\r\n <span\r\n className={styles.searchClearIcon}\r\n aria-hidden=\"true\"\r\n onClick={clearInputSearch}\r\n >\r\n <Dismiss16Regular />\r\n </span>\r\n )}\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n value={currentValue || ''}\r\n targetRef={inputRef}\r\n onChange={(val) => {\r\n if (disabled) return;\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: val },\r\n currentTarget: { value: val },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nSearch.displayName = 'Search';\r\n\r\nexport default Search;\r\n","import { ChevronDownRegular, Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n} from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Calendar from '../../Calendar/Calendar';\r\nimport Checkbox from '../../Checkbox';\r\nimport Popover from '../../Popover/Popover';\r\nimport Search from '../../Search';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterItem, FilterProps } from '../Filter.types';\r\n\r\ntype SelectionState = Record<string, boolean>;\r\n\r\nconst Simple: React.FC<FilterProps> = ({\r\n items,\r\n type = 'multiple',\r\n selectedIds,\r\n onApplyFilter,\r\n placeholder = 'Selecionar...',\r\n enableSearch = false,\r\n buttonText = 'Filter',\r\n icon,\r\n variant = 'outlined',\r\n onOpen,\r\n onClose,\r\n side = 'bottom',\r\n align = 'start',\r\n disabled = false,\r\n className,\r\n selectedDate,\r\n onDateSelect,\r\n onClearDate,\r\n minDate,\r\n maxDate,\r\n locale = 'pt-br',\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempSelectedItems, setTempSelectedItems] = useState<SelectionState>({});\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [currentCalendarDate, setCurrentCalendarDate] = useState<Date | null>(\r\n () => selectedDate || new Date()\r\n );\r\n\r\n useEffect(() => {\r\n if (selectedDate) {\r\n setCurrentCalendarDate(selectedDate);\r\n }\r\n }, [selectedDate]);\r\n\r\n const handleCalendarNavigation = useCallback((date: Date) => {\r\n setCurrentCalendarDate(date);\r\n }, []);\r\n\r\n const handleDateSelection = useCallback(\r\n (date: Date) => {\r\n onDateSelect?.(date);\r\n setIsOpen(false);\r\n onClose?.();\r\n },\r\n [onDateSelect, onClose]\r\n );\r\n\r\n const handleClear = useCallback((): void => {\r\n onClearDate?.();\r\n setCurrentCalendarDate(new Date());\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClearDate, onClose]);\r\n\r\n const handleOpenChange = useCallback(\r\n (open: boolean) => {\r\n if (disabled && open) return;\r\n if (open) {\r\n const initial: SelectionState = {};\r\n selectedIds?.forEach((itemId) => { initial[itemId] = true; });\r\n setTempSelectedItems(initial);\r\n setSearchQuery('');\r\n onOpen?.();\r\n } else {\r\n onClose?.();\r\n }\r\n setIsOpen(open);\r\n },\r\n [disabled, selectedIds, onOpen, onClose]\r\n );\r\n\r\n const toggleItem = useCallback(\r\n (itemId: string, item: FilterItem) => {\r\n if (item.disabled) return;\r\n setTempSelectedItems((prev) => {\r\n if (type === 'multiple') {\r\n return { ...prev, [itemId]: !prev[itemId] };\r\n }\r\n return prev[itemId] ? {} : { [itemId]: true };\r\n });\r\n },\r\n [type]\r\n );\r\n\r\n const handleApplyFilter = useCallback(() => {\r\n const ids = Object.keys(tempSelectedItems).filter((k) => tempSelectedItems[k]);\r\n onApplyFilter?.(ids);\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [tempSelectedItems, onApplyFilter, onClose]);\r\n\r\n const handleClearFilter = useCallback(() => {\r\n setTempSelectedItems({});\r\n onApplyFilter?.([]);\r\n }, [onApplyFilter]);\r\n\r\n const handleSearchChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value);\r\n }, []);\r\n\r\n const handleSearchKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n setSearchQuery('');\r\n }\r\n },\r\n []\r\n );\r\n\r\n const searchVisible = enableSearch || (items?.length ?? 0) > 4;\r\n\r\n const filteredItems = useMemo(() => {\r\n if (!items?.length) return [];\r\n if (!searchQuery.trim()) return items;\r\n const q = searchQuery.toLowerCase();\r\n return items.filter((item) => item.text.toLowerCase().includes(q));\r\n }, [items, searchQuery]);\r\n\r\n const buttonDisplayText = useMemo(() => {\r\n if (type === 'calendar' && selectedDate) {\r\n return selectedDate.toLocaleDateString(\r\n locale === 'pt-br' ? 'pt-BR' : 'en-US'\r\n );\r\n }\r\n if (!selectedIds?.length) return buttonText;\r\n const firstItem = items?.find((item) => item.id === selectedIds[0]);\r\n return firstItem?.text || selectedIds[0];\r\n }, [type, selectedDate, selectedIds, items, buttonText, locale]);\r\n\r\n const getBadgeValue = useCallback(() => {\r\n if (!selectedIds || selectedIds.length <= 1) return null;\r\n return selectedIds.length - 1;\r\n }, [selectedIds]);\r\n\r\n const filterClass = clsx(styles.container, className);\r\n\r\n const triggerButton = (\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={\r\n type === 'calendar' ? <Calendar16Regular /> : <ChevronDownRegular />\r\n }\r\n iconPosition=\"right\"\r\n size=\"lg\"\r\n >\r\n <div className={styles.buttonContent}>\r\n {icon && <span className={styles.buttonIcon}>{icon}</span>}\r\n <span className={styles.buttonText}>{buttonDisplayText}</span>\r\n <span className={clsx(styles.buttonArrow, { [styles.buttonArrowOpen]: isOpen })}>\r\n {getBadgeValue() && (\r\n <Badge badgeValue={`+${getBadgeValue()}`} filterVariant />\r\n )}\r\n </span>\r\n </div>\r\n </Button>\r\n );\r\n\r\n const popoverContent =\r\n type === 'calendar' ? (\r\n <Calendar\r\n currentDate={currentCalendarDate}\r\n selected={selectedDate}\r\n onDaySelect={handleDateSelection}\r\n onDateChange={handleCalendarNavigation}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onClear={handleClear}\r\n id={`filter-calendar-${id || ''}`}\r\n aria-label=\"Selecionar data para filtro\"\r\n />\r\n ) : (\r\n <div className={styles.panel}>\r\n {searchVisible && (\r\n <div className={styles.search}>\r\n <Search\r\n value={searchQuery}\r\n placeholder={placeholder}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={() => setSearchQuery('')}\r\n />\r\n </div>\r\n )}\r\n <ul\r\n className={styles.list}\r\n role=\"listbox\"\r\n aria-multiselectable={type === 'multiple'}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) => {\r\n const itemId = item.id || `filter-item-${index}`;\r\n const isSelected = !!tempSelectedItems[itemId];\r\n return (\r\n <li\r\n key={itemId}\r\n role=\"option\"\r\n aria-selected={isSelected}\r\n aria-disabled={item.disabled}\r\n className={clsx(styles.item, {\r\n [styles.itemSelected]: isSelected,\r\n [styles.itemDisabled]: item.disabled,\r\n })}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => toggleItem(itemId, item)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n toggleItem(itemId, item);\r\n }\r\n }}\r\n >\r\n {type === 'multiple' && (\r\n <Checkbox\r\n checked={isSelected}\r\n disabled={item.disabled}\r\n label=\"\"\r\n />\r\n )}\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <span className={styles.itemText}>{item.text}</span>\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li className={styles.noResults} role=\"status\" aria-live=\"polite\">\r\n Nenhum resultado encontrado\r\n </li>\r\n )}\r\n </ul>\r\n <div className={styles.footer}>\r\n <Button fullWidth variant=\"outlined\" onClick={handleClearFilter}>\r\n Limpar\r\n </Button>\r\n <Button fullWidth onClick={handleApplyFilter}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={filterClass} id={id} {...rest}>\r\n <Popover\r\n open={isOpen}\r\n onOpenChange={handleOpenChange}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={(e) => e.preventDefault()}\r\n trigger={triggerButton}\r\n content={popoverContent}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Simple;\r\n","import React from 'react';\r\n\r\nimport Combined from './components/Combined';\r\nimport Simple from './components/Simple';\r\n\r\nimport type { FilterProps } from './Filter.types';\r\n\r\nconst Filter: React.FC<FilterProps> = ({\r\n mode = 'simple',\r\n ...props\r\n}) => {\r\n if (mode === 'combined') {\r\n return <Combined {...props} />;\r\n }\r\n\r\n return <Simple {...props} />;\r\n};\r\n\r\nexport default Filter;\r\n\r\n","import { ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from \"clsx\";\r\nimport React, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\n\r\nimport type { ListItemVariant, ListItemProps } from './ListItem.types';\r\n\r\nconst ListItem: React.FC<ListItemProps> = ({\r\n id,\r\n className,\r\n variant = 'text',\r\n text,\r\n subText,\r\n disabled = false,\r\n checked = false,\r\n selected = false,\r\n onClick,\r\n onChange,\r\n icon,\r\n customWidth,\r\n scale = 1,\r\n children,\r\n defaultExpanded = false,\r\n expanded,\r\n onExpandedChange,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const itemId = id || componentId;\r\n const [internalChecked, setInternalChecked] = useState<boolean>(checked);\r\n const [internalSelected, setInternalSelected] = useState<boolean>(selected);\r\n const [internalExpanded, setInternalExpanded] = useState<boolean>(expanded ?? defaultExpanded);\r\n const [childrenCheckedMap, setChildrenCheckedMap] = useState<Record<number, boolean>>({});\r\n\r\n const childrenCount = variant === 'checkbox'\r\n ? React.Children.toArray(children).filter(\r\n child => React.isValidElement(child) && !(child.props as ListItemProps).disabled\r\n ).length\r\n : 0;\r\n const checkedCount = Object.values(childrenCheckedMap).filter(Boolean).length;\r\n const isIndeterminate = childrenCount > 0 && checkedCount > 0 && checkedCount < childrenCount;\r\n const hasChildren = React.Children.count(children) > 0;\r\n\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = isIndeterminate ? true : !internalChecked;\r\n setInternalChecked(newChecked);\r\n if (childrenCount > 0) {\r\n const newMap: Record<number, boolean> = {};\r\n React.Children.forEach(children, (child, index) => {\r\n if (React.isValidElement(child) && !(child.props as ListItemProps).disabled) {\r\n newMap[index] = newChecked;\r\n }\r\n });\r\n setChildrenCheckedMap(newMap);\r\n }\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, isIndeterminate, childrenCount, onChange, onClick, children]);\r\n\r\n const handleTextOrIconClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newSelected = !internalSelected;\r\n setInternalSelected(newSelected);\r\n onClick?.(e);\r\n }, [disabled, internalSelected, onClick]);\r\n\r\n const handleChildChange = useCallback((index: number, childChecked: boolean): void => {\r\n setChildrenCheckedMap(prev => {\r\n const next = { ...prev, [index]: childChecked };\r\n const total = childrenCount;\r\n const checked = Object.values(next).filter(Boolean).length;\r\n if (checked === 0) {\r\n setInternalChecked(false);\r\n onChange?.(false);\r\n } else if (checked === total) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n return next;\r\n });\r\n }, [childrenCount, onChange]);\r\n\r\n const handleClick = useCallback((e: React.MouseEvent<HTMLDivElement>): void => {\r\n if (hasChildren) {\r\n if (disabled) return;\r\n const newExpanded = !internalExpanded;\r\n setInternalExpanded(newExpanded);\r\n onExpandedChange?.(newExpanded);\r\n return;\r\n }\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e as React.MouseEvent<HTMLElement>);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e as React.MouseEvent<HTMLElement>);\r\n break;\r\n }\r\n }, [hasChildren, disabled, internalExpanded, onExpandedChange, variant, handleCheckboxClick, handleTextOrIconClick]);\r\n\r\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLDivElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n if (hasChildren) {\r\n const newExpanded = !internalExpanded;\r\n setInternalExpanded(newExpanded);\r\n onExpandedChange?.(newExpanded);\r\n return;\r\n }\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e);\r\n break;\r\n }\r\n }\r\n }, [disabled, hasChildren, internalExpanded, onExpandedChange, variant, handleCheckboxClick, handleTextOrIconClick]);\r\n\r\n useEffect(() => {\r\n setInternalChecked(checked);\r\n }, [checked]);\r\n\r\n useEffect(() => {\r\n setInternalSelected(selected);\r\n }, [selected]);\r\n\r\n useEffect(() => {\r\n if (expanded !== undefined) setInternalExpanded(expanded);\r\n }, [expanded]);\r\n\r\n useEffect(() => {\r\n if (!internalExpanded || variant !== 'checkbox' || childrenCount === 0) return;\r\n setChildrenCheckedMap(prev => {\r\n let changed = false;\r\n const next = { ...prev };\r\n React.Children.forEach(children, (child, index) => {\r\n if (React.isValidElement(child) && !(child.props as ListItemProps).disabled && !(index in next)) {\r\n next[index] = internalChecked;\r\n changed = true;\r\n }\r\n });\r\n return changed ? next : prev;\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [internalExpanded, childrenCount, variant]);\r\n\r\n const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'icon'];\r\n const currentVariant = validVariants.includes(variant) ? variant : 'text';\r\n\r\n switch (currentVariant) {\r\n case 'checkbox':\r\n return (\r\n <>\r\n <span\r\n aria-hidden=\"true\"\r\n onClick={hasChildren ? (e) => e.stopPropagation() : undefined}\r\n >\r\n <Checkbox\r\n checked={internalChecked}\r\n indeterminate={isIndeterminate}\r\n disabled={disabled}\r\n scale={scale}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n </span>\r\n <div className={styles.listItemWrapperText}>\r\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n onClick={hasChildren ? (e) => { e.stopPropagation(); handleCheckboxClick(e as React.MouseEvent<HTMLElement>); } : undefined}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'icon':\r\n return (\r\n <>\r\n <div className={styles.listItemWrapperIcon}>\r\n {icon}\r\n </div>\r\n <div className={styles.listItemWrapperText}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'text':\r\n default:\r\n return (\r\n <div className={styles.listItemWrapperText}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles.listItemTitle}\r\n >\r\n {text}\r\n </span>\r\n {subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles.listItemSubtext}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, isIndeterminate, disabled, handleCheckboxClick, text, subText, icon, scale, hasChildren]);\r\n\r\n const listItemClass = clsx(\r\n styles.listItem,\r\n {\r\n [styles[`listItem-${variant}`]]: variant,\r\n [styles.listItemDisabled]: disabled,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const ariaChecked = variant === 'checkbox' ? internalChecked : undefined;\r\n const ariaRole = variant === 'checkbox' ? 'checkbox' : 'option';\r\n\r\n return (\r\n <li\r\n id={itemId}\r\n className={listItemClass}\r\n data-testid=\"list-item\"\r\n style={{\r\n '--giro-scale': scale,\r\n ...(customWidth != null ? { width: customWidth } : {}),\r\n } as React.CSSProperties}\r\n {...rest}\r\n >\r\n <div\r\n role={ariaRole}\r\n className={styles.listItemRow}\r\n tabIndex={disabled ? -1 : 0}\r\n onClick={handleClick}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={ariaChecked}\r\n aria-expanded={hasChildren ? internalExpanded : undefined}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={subText ? `${itemId}-subtext` : undefined}\r\n >\r\n {renderVariantContent()}\r\n {hasChildren && (\r\n <span\r\n data-testid=\"list-item-chevron\"\r\n aria-hidden=\"true\"\r\n className={clsx(styles.listItemChevron, {\r\n [styles.listItemChevronExpanded]: internalExpanded,\r\n })}\r\n >\r\n <ChevronDown16Regular />\r\n </span>\r\n )}\r\n </div>\r\n {hasChildren && internalExpanded && (\r\n <ul className={styles.listItemChildren} role=\"group\">\r\n {variant === 'checkbox'\r\n ? React.Children.map(children, (child, index) =>\r\n React.isValidElement(child)\r\n ? React.cloneElement(child as React.ReactElement<ListItemProps>, {\r\n checked: (child.props as ListItemProps).disabled\r\n ? (child.props as ListItemProps).checked\r\n : (childrenCheckedMap[index] ?? internalChecked),\r\n onChange: (childChecked: boolean) => {\r\n (child.props as ListItemProps).onChange?.(childChecked);\r\n handleChildChange(index, childChecked);\r\n },\r\n })\r\n : child\r\n )\r\n : children}\r\n </ul>\r\n )}\r\n </li>\r\n );\r\n};\r\n\r\nexport default ListItem;","import { memo } from 'react';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport { DefaultMenuItemProps } from '../Menu.types';\r\nimport styles from '../Menu.module.scss';\r\nimport clsx from 'clsx';\r\n\r\nexport const MenuItem = memo(({ item, isSelected, onSelect }: DefaultMenuItemProps) => {\r\n \r\n const handleSelect = () => {\r\n onSelect(item);\r\n };\r\n\r\n return (\r\n <DropdownMenu.Item\r\n className={clsx(styles.item)}\r\n data-selected={isSelected || undefined}\r\n onSelect={handleSelect}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && <span className={styles.itemIcon}>{item.icon}</span>}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n </DropdownMenu.Item>\r\n );\r\n});\r\n\r\nMenuItem.displayName = 'MenuItem';\r\n\r\nexport default MenuItem;\r\n","import { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\nexport interface UseMenuLogicProps {\r\n selectedItems?: MenuItemProps[];\r\n onItemSelect?: (items: MenuItemProps) => void;\r\n onOpenChange?: (open: boolean) => void;\r\n}\r\n\r\nexport interface UseMenuLogicReturn {\r\n open: boolean;\r\n internalSelectedItems: MenuItemProps[];\r\n setOpen: (open: boolean) => void;\r\n handleItemSelect: (item: MenuItemProps) => void;\r\n isItemSelected: (item: MenuItemProps) => boolean;\r\n}\r\n\r\nexport function useMenuLogic({\r\n selectedItems = [],\r\n onItemSelect,\r\n onOpenChange,\r\n}: UseMenuLogicProps): UseMenuLogicReturn {\r\n \r\n const isControlledRef = useRef(selectedItems !== undefined);\r\n const prevSelectedItemsRef = useRef<MenuItemProps[]>(selectedItems);\r\n\r\n const [open, setOpenState] = useState(false);\r\n const [internalSelectedItems, setInternalSelectedItems] = useState<MenuItemProps[]>(\r\n selectedItems || []\r\n );\r\n\r\n const getItemKey = useCallback((item: MenuItemProps): string => {\r\n return item.value ?? item.id ?? item.text ?? '';\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isControlledRef.current || !selectedItems) return;\r\n\r\n const prevKeys = prevSelectedItemsRef.current.map(getItemKey).sort().join(',');\r\n const currentKeys = selectedItems.map(getItemKey).sort().join(',');\r\n\r\n if (prevKeys !== currentKeys) {\r\n setInternalSelectedItems(selectedItems);\r\n prevSelectedItemsRef.current = selectedItems;\r\n }\r\n }, [selectedItems, getItemKey]);\r\n\r\n const setOpen = useCallback(\r\n (newOpen: boolean) => {\r\n setOpenState(newOpen);\r\n onOpenChange?.(newOpen);\r\n },\r\n [onOpenChange]\r\n );\r\n\r\n const isItemSelected = useCallback(\r\n (item: MenuItemProps): boolean => {\r\n const itemKey = getItemKey(item);\r\n if (!itemKey) return false;\r\n\r\n return internalSelectedItems.some(\r\n (selected) => getItemKey(selected) === itemKey\r\n );\r\n },\r\n [internalSelectedItems, getItemKey]\r\n );\r\n\r\n const handleItemSelect = useCallback(\r\n (item: MenuItemProps) => {\r\n const newSelection = [item];\r\n setInternalSelectedItems(newSelection);\r\n\r\n if (onItemSelect) {\r\n onItemSelect(item);\r\n }\r\n\r\n setOpen(false);\r\n },\r\n [onItemSelect, setOpen]\r\n );\r\n\r\n return {\r\n open,\r\n internalSelectedItems,\r\n setOpen,\r\n handleItemSelect,\r\n isItemSelected,\r\n };\r\n}\r\n\r\nexport default useMenuLogic;\r\n","export const normalizeText = (text: React.ReactNode): string => {\r\n if (typeof text === 'string') return text.toLowerCase();\r\n if (typeof text === 'number') return text.toString().toLowerCase();\r\n if (typeof text === 'bigint') return text.toString().toLowerCase();\r\n if (typeof text === 'boolean') return text.toString().toLowerCase();\r\n return '';\r\n };\r\n\r\n","import { useCallback, useEffect, useRef } from 'react';\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\ninterface UseSearchLogicProps {\r\n items: MenuItemProps[];\r\n searchValue: string;\r\n searchTerm: string;\r\n enableApiSearch?: boolean;\r\n onApiSearch?: (term: string) => void;\r\n}\r\n\r\ninterface UseSearchLogicReturn {\r\n filteredItems: MenuItemProps[];\r\n}\r\n\r\nexport const useSearchLogic = ({\r\n items,\r\n searchValue,\r\n searchTerm,\r\n enableApiSearch,\r\n onApiSearch,\r\n}: UseSearchLogicProps): UseSearchLogicReturn => {\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const lastSearchTermRef = useRef<string>('');\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n\r\n const debouncedApiSearch = useCallback(\r\n (term: string) => {\r\n if (lastSearchTermRef.current === term) {\r\n return;\r\n }\r\n\r\n lastSearchTermRef.current = term;\r\n\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(term);\r\n }\r\n }, 200);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && !hasInitialSearchRef.current && onApiSearch) {\r\n hasInitialSearchRef.current = true;\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (!enableApiSearch) return;\r\n\r\n if (searchValue.trim() === '') {\r\n debouncedApiSearch('');\r\n return;\r\n }\r\n if (searchTerm !== undefined && searchTerm.trim() !== '') {\r\n debouncedApiSearch(searchTerm);\r\n }\r\n }, [searchTerm, searchValue, enableApiSearch, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filteredItems = useCallback((): MenuItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchValue.trim()) {\r\n return items;\r\n }\r\n\r\n const normalized = normalizeText(searchValue).toLowerCase();\r\n\r\n return items.filter((item) => {\r\n const text = normalizeText(item.text || '').toLowerCase();\r\n const subText = normalizeText(item.subText || '').toLowerCase();\r\n\r\n return text.includes(normalized) || subText.includes(normalized);\r\n });\r\n }, [items, searchValue, enableApiSearch]);\r\n\r\n return { filteredItems: filteredItems() };\r\n};\r\n","import { ChevronRight16Filled } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\r\n\r\nimport Search from '../Search';\r\nimport MenuItem from './components/MenuItem';\r\nimport { useMenuLogic } from './hooks/useMenuLogic';\r\nimport { useSearchLogic } from './hooks/useSearchLogic';\r\nimport styles from './Menu.module.scss';\r\nimport { MenuItemProps, MenuProps } from './Menu.types';\r\n\r\nconst Menu: React.FC<MenuProps> = ({\r\n items,\r\n children,\r\n onItemSelect,\r\n search,\r\n enableInfiniteScroll,\r\n onScrollEnd,\r\n isLoadingMore,\r\n onApiSearch,\r\n enableApiSearch,\r\n selectedItems,\r\n onOpenChange,\r\n align = 'start',\r\n scale = 1,\r\n className,\r\n style,\r\n maxHeight = 400,\r\n ...rest\r\n}) => {\r\n const itemsWrapperRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const observerRef = useRef<IntersectionObserver | null>(null);\r\n const sentinelRef = useRef<HTMLDivElement | null>(null);\r\n const onScrollEndRef = useRef(onScrollEnd);\r\n const isLoadingMoreRef = useRef(isLoadingMore);\r\n\r\n const [searchInput, setSearchInput] = useState('');\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const maxHeightStyle = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\r\n\r\n const containerStyle = { '--giro-scale': scale } as React.CSSProperties;\r\n\r\n const triggerWithScale = React.isValidElement(children)\r\n ? React.cloneElement(children as React.ReactElement<any>, {\r\n scale: (children as React.ReactElement<any>).props?.scale ?? scale,\r\n })\r\n : children;\r\n\r\n const { open, setOpen, handleItemSelect: handleItemSelectLogic, isItemSelected } = useMenuLogic({\r\n selectedItems,\r\n onItemSelect,\r\n onOpenChange,\r\n });\r\n\r\n const handleItemSelect = useCallback((item: MenuItemProps) => {\r\n handleItemSelectLogic(item);\r\n }, [handleItemSelectLogic]);\r\n\r\n const { filteredItems } = useSearchLogic({\r\n items,\r\n searchValue: searchInput,\r\n searchTerm: searchTerm,\r\n onApiSearch,\r\n enableApiSearch,\r\n });\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setSearchInput(value);\r\n\r\n if (value.trim() === '') {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n e.stopPropagation();\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n setSearchTerm(searchInput);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onScrollEndRef.current = onScrollEnd;\r\n isLoadingMoreRef.current = isLoadingMore;\r\n }, [onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll) {\r\n return;\r\n }\r\n\r\n const setupTimer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n const sentinel = sentinelRef.current;\r\n \r\n if (!container || !sentinel) {\r\n return;\r\n }\r\n\r\n observerRef.current = new IntersectionObserver(\r\n ([entry]) => {\r\n if (\r\n entry.isIntersecting &&\r\n !hasReachedEndRef.current &&\r\n !isLoadingMoreRef.current &&\r\n onScrollEndRef.current\r\n ) {\r\n hasReachedEndRef.current = true;\r\n onScrollEndRef.current();\r\n }\r\n },\r\n {\r\n root: container,\r\n threshold: 0.1,\r\n rootMargin: '50px',\r\n }\r\n );\r\n\r\n observerRef.current.observe(sentinel);\r\n }, 50);\r\n return () => {\r\n clearTimeout(setupTimer);\r\n if (observerRef.current) {\r\n observerRef.current.disconnect();\r\n observerRef.current = null;\r\n }\r\n };\r\n }, [open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!isLoadingMore && open && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [isLoadingMore, open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) {\r\n return;\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n if (!container) {\r\n return;\r\n }\r\n\r\n const { scrollHeight, clientHeight } = container;\r\n \r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 200);\r\n\r\n return () => clearTimeout(timer);\r\n }, [open, enableInfiniteScroll, onScrollEnd, isLoadingMore, filteredItems.length]);\r\n\r\n const renderMenuItem = useCallback(\r\n (item: MenuItemProps, key: string | number) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n\r\n if (hasChildren) {\r\n return (\r\n <DropdownMenu.Sub key={key}>\r\n <DropdownMenu.SubTrigger\r\n className={styles.subTrigger}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n <ChevronRight16Filled className={styles.chevronIcon} />\r\n </DropdownMenu.SubTrigger>\r\n\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.SubContent\r\n className={styles.subContent}\r\n sideOffset={16}\r\n collisionPadding={20}\r\n >\r\n {item.children!.map((childItem, childIndex) =>\r\n renderMenuItem(childItem, `${key}-${childIndex}`)\r\n )}\r\n </DropdownMenu.SubContent>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Sub>\r\n );\r\n }\r\n return (\r\n <MenuItem\r\n key={key}\r\n item={item}\r\n isSelected={isItemSelected(item)}\r\n onSelect={handleItemSelect}\r\n />\r\n );\r\n },\r\n [handleItemSelect, isItemSelected]\r\n );\r\n\r\n const closedByPointerRef = useRef(false);\r\n\r\n const handleOpenChange = (newOpen: boolean) => {\r\n setOpen(newOpen);\r\n if (!newOpen) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n return (\r\n <DropdownMenu.Root open={open} onOpenChange={handleOpenChange}>\r\n <DropdownMenu.Trigger asChild>{triggerWithScale}</DropdownMenu.Trigger>\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n className={clsx(styles.content, className)}\r\n style={{ ...containerStyle, ...style }}\r\n sideOffset={8}\r\n align={align}\r\n onPointerDown={() => { closedByPointerRef.current = true; }}\r\n onInteractOutside={() => { closedByPointerRef.current = true; }}\r\n onCloseAutoFocus={(e) => {\r\n if (closedByPointerRef.current) {\r\n e.preventDefault();\r\n closedByPointerRef.current = false;\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (search) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n {...rest}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n placeholder=\"Buscar\"\r\n onChange={handleSearchChange}\r\n value={searchInput}\r\n onKeyDown={handleSearchKeyDown}\r\n />\r\n </div>\r\n )}\r\n\r\n <div \r\n className={styles.itemsWrapper} \r\n ref={itemsWrapperRef}\r\n style={{ maxHeight: maxHeightStyle }}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) =>\r\n renderMenuItem(item, item.value || item.text || `item-${index}`)\r\n )\r\n ) : (\r\n <div className={styles.noResults}>Nenhum resultado encontrado</div>\r\n )}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>Carregando mais itens...</div>\r\n )}\r\n {enableInfiniteScroll && (\r\n <div\r\n ref={sentinelRef}\r\n data-scroll-sentinel\r\n style={{ height: '1px', visibility: 'hidden' }}\r\n />\r\n )}\r\n </div>\r\n </DropdownMenu.Content>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Root>\r\n );\r\n};\r\n\r\nexport default Menu;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Dialog } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport styles from './Modal.module.scss';\r\nimport Button from '../Button/Button';\r\nimport { isDismissOutsideIgnored } from '../../utils/dismissOutside';\r\n\r\nimport type { ModalProps } from './Modal.types';\r\n\r\nconst Modal: React.FC<ModalProps> = ({\r\n isOpen = false,\r\n onClose,\r\n title,\r\n children,\r\n headerContent,\r\n closeOnOverlayClick = true,\r\n className,\r\n id,\r\n footer,\r\n customWidth,\r\n customHeight,\r\n closingButton = true,\r\n fullscreen = false,\r\n ...rest\r\n}) => {\r\n const contentRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const handleOpenChange = (open: boolean): void => {\r\n if (!open) {\r\n onClose();\r\n }\r\n };\r\n\r\n const handleOpenAutoFocus = (e: Event): void => {\r\n e.preventDefault();\r\n contentRef.current?.focus();\r\n };\r\n\r\n const handleInteractOutside = (e: Event): void => {\r\n // Ignora interações em elementos portalizados que se declararam isentos\r\n // (ex.: VirtualKeyboard em modo native), evitando fechamentos indesejados.\r\n if (isDismissOutsideIgnored(e.target)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (!closeOnOverlayClick) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return (\r\n <Dialog.Root open={isOpen} onOpenChange={handleOpenChange} {...rest}>\r\n <Dialog.Portal>\r\n <Dialog.Overlay className={styles.modalOverlay} />\r\n <Dialog.Content\r\n ref={contentRef}\r\n className={clsx(styles.modalContent, fullscreen && styles['modalContent--fullscreen'], className)}\r\n id={id}\r\n style={{\r\n '--modal-custom-width': customWidth,\r\n '--modal-custom-height': customHeight,\r\n } as React.CSSProperties}\r\n onInteractOutside={handleInteractOutside}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n {(title || headerContent || closingButton) && (\r\n <header className={styles.modalHeader}>\r\n {title && (\r\n <Dialog.Title\r\n className={styles.modalTitle}\r\n id={id ? `${id}-title` : 'modal-title'}\r\n >\r\n {title}\r\n </Dialog.Title>\r\n )}\r\n {headerContent && (\r\n <div>{headerContent}</div>\r\n )}\r\n {closingButton && (\r\n <div className={styles.modalCloseButton}>\r\n <Dialog.Close asChild>\r\n <Button\r\n variant=\"outlined\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size=\"lg\"\r\n tooltipText='Fechar'\r\n />\r\n </Dialog.Close>\r\n </div>\r\n )}\r\n </header>\r\n )}\r\n <section className={styles.modalBody}>\r\n {children}\r\n </section>\r\n {footer && (\r\n <footer className={styles.modalFooter}>{footer}</footer>\r\n )}\r\n </Dialog.Content>\r\n </Dialog.Portal>\r\n </Dialog.Root>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { Add16Regular, Subtract16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useRef, useCallback, useEffect, useId, useMemo } from 'react';\r\n\r\nimport styles from './Quantity.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { QuantityProps } from './Quantity.types';\r\n\r\nconst Quantity: React.FC<QuantityProps> = ({\r\n value = 0,\r\n onChange,\r\n disabled = false,\r\n decimal = false,\r\n decimalPlaces = 2,\r\n size = 'lg',\r\n id,\r\n valueIncrement = 1,\r\n scale = 1,\r\n className,\r\n style,\r\n inputSize,\r\n minValue = 0,\r\n maxValue = 9999,\r\n decrementAriaLabel = 'Decrease quantity',\r\n incrementAriaLabel = 'Increase quantity',\r\n inputAriaLabel = 'Quantity',\r\n ...rest\r\n}) => {\r\n const initialValue = Math.min(Math.max(value, minValue), maxValue);\r\n const [internalValue, setInternalValue] = useState<number>(initialValue);\r\n const [inputValue, setInputValue] = useState<string>(\r\n decimal ? initialValue.toFixed(decimalPlaces) : String(initialValue)\r\n );\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const stepValue = valueIncrement !== undefined ? valueIncrement : decimal ? Math.pow(10, -decimalPlaces) : 1;\r\n\r\n const isMinValue = useMemo(() => internalValue <= minValue, [internalValue, minValue]);\r\n const isMaxValue = useMemo(() => internalValue >= maxValue, [internalValue, maxValue]);\r\n\r\n const validateProps = (decimalPlaces?: number, valueIncrement?: number) => {\r\n if (decimalPlaces !== undefined && (decimalPlaces < 1 || decimalPlaces > 10)) {\r\n console.warn('decimalPlaces deve estar entre 1 e 10');\r\n }\r\n if (valueIncrement !== undefined && valueIncrement <= 0) {\r\n console.warn('valueIncrement deve ser maior que 0');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n validateProps(decimalPlaces, valueIncrement);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const clamped = Math.min(Math.max(value, minValue), maxValue);\r\n setInternalValue(clamped);\r\n setInputValue(decimal ? clamped.toFixed(decimalPlaces) : String(clamped));\r\n }, [value, minValue, maxValue, decimal, decimalPlaces]);\r\n\r\n const increment = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.min(maxValue, internalValue + stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, maxValue]);\r\n\r\n const decrement = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.max(minValue, internalValue - stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, minValue]);\r\n\r\n const filterInput = useCallback((inputValue: string): string => {\r\n if (decimal) {\r\n let filtered = inputValue.replace(/[^\\d.]/g, '');\r\n\r\n const parts = filtered.split('.');\r\n if (parts.length > 2) {\r\n filtered = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0') && !filtered.startsWith('0.')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered;\r\n } else {\r\n let filtered = inputValue.replace(/[^\\d]/g, '');\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered || '0'; // Se ficar vazio, retorna '0'\r\n }\r\n }, [decimal]);\r\n const handleInputChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n const rawValue = event.target.value;\r\n\r\n const filteredValue = filterInput(rawValue);\r\n\r\n setInputValue(filteredValue);\r\n\r\n if (filteredValue === '' || filteredValue === '.') {\r\n onChange?.(0);\r\n return;\r\n }\r\n\r\n if (decimal) {\r\n if (filteredValue.endsWith('.')) {\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(filteredValue);\r\n if (!isNaN(parsedValue)) {\r\n onChange?.(parsedValue);\r\n }\r\n } else {\r\n const parsedValue = parseInt(filteredValue, 10);\r\n if (!isNaN(parsedValue)) {\r\n const validValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n onChange?.(validValue);\r\n }\r\n }\r\n }, [disabled, decimal, filterInput, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleBlur = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const currentValue = inputValue.trim();\r\n\r\n if (decimal) {\r\n if (currentValue === '' || currentValue === '.') {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n return;\r\n }\r\n\r\n if (currentValue.endsWith('.')) {\r\n const baseValue = parseFloat(currentValue.slice(0, -1));\r\n if (!isNaN(baseValue)) {\r\n const formattedValue = baseValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(baseValue);\r\n onChange?.(baseValue);\r\n }\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(currentValue);\r\n if (!isNaN(parsedValue)) {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n const formattedValue = normalizedValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n } else {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n }\r\n } else {\r\n\r\n if (currentValue === '') {\r\n setInputValue(String(internalValue));\r\n return;\r\n }\r\n\r\n const parsedValue = parseInt(currentValue, 10);\r\n if (isNaN(parsedValue)) {\r\n setInputValue(String(internalValue));\r\n } else {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n setInputValue(String(normalizedValue));\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n }\r\n }\r\n }, [disabled, decimal, inputValue, decimalPlaces, internalValue, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleInputKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n increment();\r\n break;\r\n\r\n case 'ArrowDown':\r\n e.preventDefault();\r\n decrement();\r\n break;\r\n\r\n case 'Enter':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n setInputValue(decimal ? internalValue.toFixed(decimalPlaces) : String(internalValue));\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Home':\r\n e.preventDefault();\r\n setInternalValue(minValue);\r\n setInputValue(decimal ? minValue.toFixed(decimalPlaces) : String(minValue));\r\n onChange?.(minValue);\r\n break;\r\n\r\n case 'End':\r\n if (!decimal) {\r\n e.preventDefault();\r\n setInternalValue(maxValue);\r\n setInputValue(String(maxValue));\r\n onChange?.(maxValue);\r\n }\r\n break;\r\n }\r\n },\r\n [disabled, increment, decrement, decimal, decimalPlaces, onChange, internalValue, minValue, maxValue]\r\n );\r\n\r\n const inputSizeValue = inputSize !== undefined ? inputSize : Math.max(1, inputValue.length);\r\n\r\n const uniqueId = useId();\r\n const inputId = id || uniqueId;\r\n\r\n return (\r\n <div\r\n className={clsx(styles.quantity, { [styles.disabled]: disabled }, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n icon={<Subtract16Regular />}\r\n onClick={decrement}\r\n disabled={disabled || isMinValue}\r\n aria-label={decrementAriaLabel}\r\n tooltipText='Diminuir'\r\n scale={scale}\r\n />\r\n\r\n <input\r\n ref={inputRef}\r\n className={clsx(styles.quantityInput, { [styles.disabled]: disabled })}\r\n type='text'\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleBlur}\r\n onKeyDown={handleInputKeyDown}\r\n id={inputId}\r\n step={stepValue}\r\n aria-label={inputAriaLabel}\r\n role='spinbutton'\r\n aria-valuenow={internalValue}\r\n aria-valuemin={minValue}\r\n aria-valuemax={maxValue}\r\n disabled={disabled}\r\n inputMode={decimal ? 'decimal' : 'numeric'}\r\n size={inputSizeValue}\r\n />\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n onClick={increment}\r\n disabled={disabled || isMaxValue}\r\n aria-label={incrementAriaLabel}\r\n icon={<Add16Regular />}\r\n tooltipText='Aumentar'\r\n scale={scale}\r\n />\r\n\r\n </div>\r\n );\r\n};\r\n\r\n\r\nconst memorizedQuantity = React.memo(Quantity);\r\nmemorizedQuantity.displayName = 'Quantity';\r\n\r\nexport default memorizedQuantity;","import clsx from 'clsx';\r\nimport { RadioGroup } from 'radix-ui';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Radio.module.scss';\r\nimport { RadioGroupProps } from './Radio.types';\r\n\r\nconst Radio: React.FC<RadioGroupProps> = ({\r\n items,\r\n onValueChange,\r\n defaultValue,\r\n name,\r\n id,\r\n ariaLabel,\r\n orientation = 'vertical',\r\n scale = 1,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, className)}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n name={name}\r\n aria-label={ariaLabel}\r\n data-orientation={orientation}\r\n orientation={orientation}\r\n {...rest}\r\n >\r\n {items.map(({ id, value, disabled, label }) => {\r\n const itemKey = id ?? value;\r\n const uniqueId = `${componentId}-item-${value}`;\r\n return (\r\n <div\r\n key={itemKey}\r\n className={clsx(styles.wrapper, { [styles.disabled]: disabled })}\r\n >\r\n <label className={styles.labelWrapper} htmlFor={uniqueId}>\r\n <div className={styles.itemWrapper}>\r\n <RadioGroup.Item\r\n disabled={disabled}\r\n className={styles.item}\r\n value={value}\r\n id={uniqueId}\r\n data-disabled={disabled}\r\n >\r\n <RadioGroup.Indicator className={styles.indicator} />\r\n </RadioGroup.Item>\r\n </div>\r\n <span className={styles.labelText}>{label}</span>\r\n </label>\r\n </div>\r\n );\r\n })}\r\n </RadioGroup.Root>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n","import clsx from 'clsx';\r\nimport React, { useRef } from 'react';\r\n\r\nimport Checkbox from '../../Checkbox';\r\nimport styles from '../Select.module.scss';\r\nimport { CheckboxItemProps } from '../Select.types';\r\n\r\nconst CheckboxSelectItem: React.FC<CheckboxItemProps> = ({\r\n text,\r\n subTitle,\r\n disabled,\r\n checked,\r\n onCheckedChange,\r\n value,\r\n ...restProps\r\n}) => {\r\n const itemRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleCheckboxChange = (checkedValue: boolean | 'indeterminate') => {\r\n onCheckedChange(Boolean(checkedValue));\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onCheckedChange(!checked);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const nextElement = itemRef.current?.nextElementSibling as HTMLDivElement;\r\n if (nextElement && nextElement.getAttribute('tabIndex') === '0') {\r\n nextElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const prevElement = itemRef.current?.previousElementSibling as HTMLDivElement;\r\n if (prevElement && prevElement.getAttribute('tabIndex') === '0') {\r\n prevElement.focus();\r\n }\r\n return;\r\n }\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n \r\n const target = e.target as HTMLElement;\r\n const isCheckboxClick = target.closest('input[type=\"checkbox\"]') || \r\n target.closest('label');\r\n \r\n if (!isCheckboxClick) {\r\n e.preventDefault();\r\n onCheckedChange(!checked);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={itemRef}\r\n className={clsx(styles.checkboxItem, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"option\"\r\n aria-selected={checked}\r\n aria-disabled={disabled}\r\n data-selected={checked}\r\n data-testid={`checkbox-item-${value}`}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n {...restProps}\r\n >\r\n <div className={styles.checkboxContent}>\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={handleCheckboxChange}\r\n disabled={disabled}\r\n label={\r\n <div className={styles.textContent}>\r\n <span className={styles.title}>{text}</span>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n </div>\r\n }\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCheckboxSelectItem.displayName = 'CheckboxSelectItem';\r\n\r\nexport default CheckboxSelectItem;","import { ChevronRight16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState } from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\n\r\nimport type { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\n\r\ninterface ExpandableSelectItemProps {\r\n item: SelectItemProps;\r\n variant: SelectVariant;\r\n onSelect: (value: string) => void;\r\n selectedValues: string[];\r\n level?: number; \r\n}\r\n\r\nconst ExpandableSelectItem: React.FC<ExpandableSelectItemProps> = ({\r\n item,\r\n variant,\r\n onSelect,\r\n selectedValues,\r\n level = 0,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isSelected = selectedValues.includes(item.value);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (hasChildren) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsExpanded(!isExpanded);\r\n } else {\r\n onSelect(item.value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div \r\n className={styles.expandableItemContainer}\r\n style={{ paddingLeft: `${level * 16}px` }}\r\n >\r\n <div \r\n className={clsx(styles.itemWrapper, {\r\n [styles.selected]: isSelected && !hasChildren,\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={handleClick}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleClick(e as unknown as React.MouseEvent);\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={item.disabled ? -1 : 0}\r\n data-disabled={item.disabled || undefined}\r\n data-selected={isSelected && !hasChildren ? 'true' : undefined}\r\n data-testid={`select-item-${item.value}`}\r\n >\r\n {variant === 'icon' && item.icon && (\r\n <span className={styles.icon}>{item.icon}</span>\r\n )}\r\n \r\n <div className={styles.textContent}>\r\n <div className={styles.title}>{item.text}</div>\r\n {item.subTitle && <div className={styles.subTitle}>{item.subTitle}</div>}\r\n </div>\r\n \r\n {hasChildren && (\r\n <span className={styles.chevron}>\r\n {isExpanded ? <ChevronDown16Regular /> : <ChevronRight16Regular />}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n \r\n {hasChildren && isExpanded && (\r\n <div className={styles.childrenWrapper}>\r\n {item.children!.map((child) => (\r\n <ExpandableSelectItem\r\n key={child.id || child.value}\r\n item={child}\r\n variant={variant}\r\n onSelect={onSelect}\r\n selectedValues={selectedValues}\r\n level={level + 1}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ExpandableSelectItem;","import clsx from 'clsx';\r\nimport { Select } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport { forwardRef } from '../../../utils/forwardRef';\r\n\r\nimport styles from '../Select.module.scss';\r\nimport { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\ninterface SelectItemComponentProps extends SelectItemProps {\r\n variant?: SelectVariant;\r\n disableFocusOnHover?: boolean;\r\n}\r\n\r\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemComponentProps>(\r\n ({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {\r\n return (\r\n <div\r\n className={clsx(styles.itemWrapper, {\r\n [styles.disabled]: disabled,\r\n })}\r\n data-disabled={disabled || undefined}\r\n data-testid={`select-item-${value}`}\r\n ref={ref}\r\n >\r\n {variant === 'icon' && icon && (\r\n <span className={styles.icon}>{icon}</span>\r\n )}\r\n\r\n <Select.Item\r\n className={clsx(styles.item, {\r\n [styles.disabled]: disabled,\r\n })}\r\n value={value}\r\n disabled={disabled}\r\n onPointerMove={disableFocusOnHover ? (e) => e.preventDefault() : undefined}\r\n {...restProps}\r\n >\r\n <Select.ItemText className={styles.title}>{text}</Select.ItemText>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n <Select.ItemIndicator className={styles.itemIndicator} />\r\n </Select.Item>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSelectItem.displayName = 'SelectItem';\r\n\r\nexport default SelectItem;","import { useReducer, useEffect, useRef, useCallback } from 'react';\r\n\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport {\r\n SelectState,\r\n SelectAction,\r\n UseSelectLogicProps,\r\n UseSelectLogicReturn,\r\n SelectItemProps,\r\n} from '../Select.types';\r\n\r\nconst initialState: SelectState = {\r\n isOpen: false,\r\n selectedValues: [],\r\n searchInput: '',\r\n searchTerm: '',\r\n touched: false,\r\n hasError: false,\r\n};\r\n\r\nfunction selectReducer(state: SelectState, action: SelectAction): SelectState {\r\n switch (action.type) {\r\n case 'SET_OPEN':\r\n return { ...state, isOpen: action.payload };\r\n case 'SET_SELECTED_VALUES':\r\n return { ...state, selectedValues: action.payload };\r\n case 'SET_SEARCH_INPUT':\r\n return { ...state, searchInput: action.payload };\r\n case 'SET_SEARCH_TERM':\r\n return { ...state, searchTerm: action.payload };\r\n case 'SET_TOUCHED':\r\n return { ...state, touched: action.payload };\r\n case 'SET_ERROR':\r\n return { ...state, hasError: action.payload };\r\n case 'RESET_SEARCH':\r\n return { ...state, searchInput: '', searchTerm: '' };\r\n case 'VALIDATE': {\r\n const hasError = action.payload.required && state.selectedValues.length === 0;\r\n return { ...state, hasError, touched: true };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function useSelectLogic({\r\n value,\r\n required = false,\r\n search = false,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n error,\r\n}: UseSelectLogicProps): UseSelectLogicReturn {\r\n const [state, dispatch] = useReducer(selectReducer, {\r\n ...initialState,\r\n selectedValues: Array.isArray(value) ? value : value ? [value] : [],\r\n });\r\n\r\n const searchInputRef = useRef<HTMLInputElement>(null);\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n const lastSearchTermRef = useRef<string>('');\r\n\r\n const debouncedApiSearch = useCallback(\r\n (searchTerm: string) => {\r\n if (lastSearchTermRef.current === searchTerm) {\r\n return;\r\n }\r\n \r\n lastSearchTermRef.current = searchTerm;\r\n \r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(searchTerm);\r\n }\r\n }, 300);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n const newValues = Array.isArray(value) ? value : value ? [value] : [];\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: newValues });\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (error !== undefined) {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n if (error) {\r\n dispatch({ type: 'SET_TOUCHED', payload: true });\r\n }\r\n }\r\n }, [error]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && search) {\r\n setTimeout(() => {\r\n searchInputRef.current?.focus();\r\n }, 0);\r\n }\r\n }, [state.isOpen, search]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen) {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [state.isOpen]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableApiSearch && !hasInitialSearchRef.current) {\r\n hasInitialSearchRef.current = true;\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }\r\n }, [state.isOpen, enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen) {\r\n if (lastSearchTermRef.current !== state.searchTerm) {\r\n debouncedApiSearch(state.searchTerm);\r\n }\r\n }\r\n }, [state.searchTerm, enableApiSearch, state.isOpen, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen && state.searchInput === '' && state.searchTerm === '') {\r\n if (lastSearchTermRef.current !== '') {\r\n lastSearchTermRef.current = '';\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n }\r\n }\r\n }\r\n }, [state.searchInput, state.searchTerm, enableApiSearch, state.isOpen, onApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n };\r\n }, []);\r\n\r\n const setOpen = (open: boolean) => {\r\n dispatch({ type: 'SET_OPEN', payload: open });\r\n onOpenChange?.(open);\r\n\r\n if (!open) {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n }\r\n };\r\n\r\n const setSelectedValues = (values: string[]) => {\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: values });\r\n };\r\n\r\n const setSearchInput = (input: string) => {\r\n dispatch({ type: 'SET_SEARCH_INPUT', payload: input });\r\n };\r\n\r\n const setSearchTerm = (term: string) => {\r\n dispatch({ type: 'SET_SEARCH_TERM', payload: term });\r\n };\r\n\r\n const setTouched = (touched: boolean) => {\r\n dispatch({ type: 'SET_TOUCHED', payload: touched });\r\n };\r\n\r\n const setError = (error: boolean) => {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n };\r\n\r\n const resetSearch = () => {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n lastSearchTermRef.current = '';\r\n };\r\n\r\n const validate = () => {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n };\r\n\r\n const handleSingleSelect = (newValue: string) => {\r\n const newValues = [newValue];\r\n setSelectedValues(newValues);\r\n onValueChange?.(newValue);\r\n setOpen(false);\r\n\r\n if (required && state.hasError) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const handleMultipleSelect = (itemValue: string, checked: boolean) => {\r\n let newSelectedValues: string[];\r\n\r\n if (checked) {\r\n newSelectedValues = [...state.selectedValues, itemValue];\r\n } else {\r\n newSelectedValues = state.selectedValues.filter((val) => val !== itemValue);\r\n }\r\n\r\n setSelectedValues(newSelectedValues);\r\n onValueChange?.(newSelectedValues);\r\n\r\n if (required && state.hasError && newSelectedValues.length > 0) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const getDisplayText = (\r\n selectedValues: string[],\r\n placeholder: string,\r\n variant: string,\r\n items: SelectItemProps[]\r\n ): string => {\r\n if (selectedValues.length === 0) return placeholder;\r\n\r\n if (variant === 'checkbox') {\r\n const selectedItems = selectedValues\r\n .map((value) => {\r\n const item = items.find((item) => item.value === value);\r\n return (item?.text as string) || value;\r\n });\r\n\r\n if (selectedItems.length > 3) {\r\n const firstThree = selectedItems.slice(0, 3).join(', ');\r\n const remaining = selectedItems.length - 3;\r\n return `${firstThree} e mais ${remaining}`;\r\n }\r\n\r\n return selectedItems.join(', ');\r\n }\r\n\r\n return (\r\n (items.find((item) => item.value === selectedValues[0])?.text as string) ||\r\n selectedValues[0]\r\n );\r\n };\r\n\r\n const getFilteredItems = (\r\n items: SelectItemProps[],\r\n searchTerm: string\r\n ): SelectItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchTerm) return items;\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n return items.filter((item) => {\r\n const normalizedText = normalizeText(item.text);\r\n const normalizedSubTitle = item.subTitle\r\n ? normalizeText(item.subTitle)\r\n : '';\r\n const normalizedValue = normalizeText(item.value);\r\n\r\n return (\r\n normalizedText.includes(lowercasedSearchTerm) ||\r\n normalizedSubTitle.includes(lowercasedSearchTerm) ||\r\n normalizedValue.includes(lowercasedSearchTerm)\r\n );\r\n });\r\n };\r\n\r\n return {\r\n state,\r\n actions: {\r\n setOpen,\r\n setSelectedValues,\r\n setSearchInput,\r\n setSearchTerm,\r\n setTouched,\r\n setError,\r\n resetSearch,\r\n validate,\r\n handleSingleSelect,\r\n handleMultipleSelect,\r\n },\r\n computed: {\r\n displayText: '',\r\n filteredItems: [],\r\n },\r\n refs: {\r\n searchInputRef,\r\n },\r\n utils: {\r\n getDisplayText,\r\n getFilteredItems,\r\n },\r\n };\r\n}\r\n\r\nexport default useSelectLogic;","import { ChevronUp16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Select as SelectRadix } from 'radix-ui';\r\nimport React, { useMemo, useId, useRef, useEffect } from 'react';\r\n\r\nimport CheckboxSelectItem from './components/CheckboxSelectItem';\r\nimport ExpandableSelectItem from './components/ExpandableSelectItem';\r\nimport SelectItem from './components/SelectItem';\r\nimport { useSelectLogic } from './hooks/useSelectLogic';\r\nimport styles from './Select.module.scss';\r\nimport { SelectProps } from './Select.types';\r\nimport LabelComponent from '../../shared/Label';\r\nimport Search from '../Search/Search';\r\n\r\nconst Select: React.FC<SelectProps> = ({\r\n items,\r\n onValueChange,\r\n onOpenChange,\r\n variant,\r\n required = false,\r\n value,\r\n \r\n label,\r\n helperText,\r\n placeholder = 'Selecione',\r\n maxWidth,\r\n search = false,\r\n error,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n style,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n hasMore = true,\r\n isLoadingMore = false,\r\n enableApiSearch,\r\n onApiSearch,\r\n isSearching = false,\r\n scale = 1,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const selectId = `select-${componentId}`;\r\n const viewportRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const wasLoadingMoreRef = useRef<boolean>(false);\r\n\r\n const isApiSearch = enableApiSearch ?? Boolean(onApiSearch);\r\n\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production' && enableApiSearch !== undefined) {\r\n console.warn(\r\n '[Giro DS] `enableApiSearch` está depreciado. ' +\r\n 'A busca remota será ativada pela presença de `onApiSearch`. ' +\r\n 'Remoção psera feita futuramente.'\r\n );\r\n }\r\n }, [enableApiSearch]);\r\n\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production' && enableApiSearch === false && onApiSearch) {\r\n console.warn(\r\n '[Giro DS] A combinação `enableApiSearch={false}` com `onApiSearch` ' +\r\n 'futuramente o comportamento ira mudar'\r\n );\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n const {\r\n state,\r\n actions,\r\n refs,\r\n utils,\r\n } = useSelectLogic({\r\n value,\r\n required,\r\n search,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch: isApiSearch,\r\n onApiSearch,\r\n isSearching,\r\n error,\r\n });\r\n\r\n useEffect(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport || !enableInfiniteScroll) return;\r\n\r\n const handleScroll = () => {\r\n const { scrollTop, scrollHeight, clientHeight } = viewport;\r\n const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;\r\n\r\n if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore && hasMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n } else if (!isAtBottom && hasReachedEndRef.current) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n viewport.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n viewport.removeEventListener('scroll', handleScroll);\r\n };\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [state.isOpen, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (wasLoadingMoreRef.current && !isLoadingMore && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n wasLoadingMoreRef.current = isLoadingMore;\r\n }, [isLoadingMore, enableInfiniteScroll]);\r\n\r\n const displayText = useMemo(\r\n () => utils.getDisplayText(state.selectedValues, placeholder, variant, items),\r\n [state.selectedValues, placeholder, variant, items, utils]\r\n );\r\n\r\n const filteredItems = useMemo(() => {\r\n const termToFilter = isApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, isApiSearch, utils]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) return;\r\n\r\n const timer = setTimeout(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport) return;\r\n\r\n const { scrollHeight, clientHeight } = viewport;\r\n\r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current && hasMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 150);\r\n\r\n return () => clearTimeout(timer);\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore, hasMore, filteredItems.length]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n '--giro-scale': scale,\r\n } as React.CSSProperties), [maxWidth, scale]);\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n actions.setSearchInput(value);\r\n \r\n if (isApiSearch) {\r\n actions.setSearchTerm(value);\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n const isNavigationKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape', 'Tab'].includes(e.key);\r\n \r\n if (!isNavigationKey) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n \r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n e.currentTarget.blur();\r\n return;\r\n }\r\n\r\n if (e.key === 'Enter') {\r\n e.currentTarget.blur();\r\n return;\r\n } else if (e.key === 'Escape') {\r\n e.preventDefault();\r\n actions.resetSearch();\r\n }\r\n };\r\n\r\n const handleClear = () => {\r\n actions.resetSearch();\r\n if (isApiSearch && onApiSearch) {\r\n onApiSearch('');\r\n }\r\n };\r\n\r\n return (\r\n <SelectRadix.Root\r\n value={variant === 'checkbox' || (search && state.isOpen) ? '' : (state.selectedValues[0] || '')}\r\n onValueChange={variant === 'checkbox' ? undefined : actions.handleSingleSelect}\r\n required={required}\r\n open={state.isOpen}\r\n onOpenChange={actions.setOpen}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={{ ...containerStyle, ...style }}\r\n data-testid={testId}\r\n >\r\n <div className={styles.fieldContainer}>\r\n <div className={styles.containerLabel}>\r\n <LabelComponent\r\n htmlFor={selectId}\r\n required={required}\r\n tooltipText={tooltipText}\r\n tooltip={!!tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\r\n scale={scale}\r\n >\r\n {label}\r\n </LabelComponent>\r\n \r\n <SelectRadix.Trigger\r\n className={clsx(styles.trigger, {\r\n [styles.error]: state.hasError && state.touched,\r\n [styles.disabled]: disabled,\r\n [styles.hasValue]: state.selectedValues.length > 0,\r\n [styles.open]: state.isOpen,\r\n })}\r\n id={selectId}\r\n aria-label={ariaLabel}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {variant === 'checkbox' ? (\r\n <span className={styles.triggerText}>{displayText}</span>\r\n ) : (\r\n <SelectRadix.Value placeholder={placeholder} className={styles.placeholder}>{displayText}</SelectRadix.Value>\r\n )}\r\n <div className={styles.triggerIcon}>\r\n {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\r\n </div>\r\n </SelectRadix.Trigger>\r\n\r\n {!state.isOpen && helperText && !state.hasError && (\r\n <span className={clsx(\r\n styles.helper,\r\n {\r\n [styles.disabled]: disabled\r\n } \r\n )}>{helperText}</span>\r\n )}\r\n \r\n {state.hasError && state.touched && (\r\n <span className={styles.errorMessage}>\r\n {errorMessage || 'Campo obrigatório'}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <SelectRadix.Portal>\r\n <SelectRadix.Content\r\n className={styles.content}\r\n style={{ '--giro-scale': scale } as React.CSSProperties}\r\n position=\"popper\"\r\n side=\"bottom\"\r\n sideOffset={8}\r\n align=\"start\"\r\n avoidCollisions={true}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n ref={refs.searchInputRef}\r\n className={styles.search}\r\n placeholder=\"Buscar\"\r\n value={state.searchInput}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={handleClear}\r\n data-testid={`${testId}-search`}\r\n scale={scale}\r\n />\r\n </div>\r\n )}\r\n \r\n <SelectRadix.Viewport ref={viewportRef} className={styles.viewport} data-testid={testId ? `${testId}-viewport` : undefined}>\r\n <SelectRadix.Group className={styles.group}>\r\n {filteredItems.length === 0 ? (\r\n <div className={styles.noResults}>\r\n Nenhum resultado encontrado\r\n </div>\r\n ) : (\r\n <>\r\n {filteredItems.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n \r\n if (hasChildren) {\r\n return (\r\n <ExpandableSelectItem\r\n key={item.id || item.value}\r\n item={item}\r\n variant={variant}\r\n selectedValues={state.selectedValues}\r\n onSelect={(value) => {\r\n if (variant === 'checkbox') {\r\n const isSelected = state.selectedValues.includes(value);\r\n actions.handleMultipleSelect(value, !isSelected);\r\n } else {\r\n actions.handleSingleSelect(value);\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n \r\n return variant === 'checkbox' ? (\r\n <CheckboxSelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n checked={state.selectedValues.includes(item.value)}\r\n onCheckedChange={(checked: boolean) =>\r\n actions.handleMultipleSelect(item.value, checked)\r\n }\r\n />\r\n ) : (\r\n <SelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n variant={variant}\r\n disableFocusOnHover={search}\r\n />\r\n );\r\n })}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>\r\n Carregando mais itens...\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </SelectRadix.Group>\r\n </SelectRadix.Viewport>\r\n </SelectRadix.Content>\r\n </SelectRadix.Portal>\r\n </div>\r\n </SelectRadix.Root>\r\n );\r\n};\r\n\r\nSelect.displayName = 'Select';\r\n\r\nexport default Select;","import { SearchInfo20Regular } from '@fluentui/react-icons';\r\n\r\nimport styles from '../Table.module.scss';\r\n\r\nimport type { EmptyStateProps } from '../Table.types';\r\n\r\nconst EmptyState = ({ emptyIcon, emptyTitle, emptyText }: EmptyStateProps) => (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n {emptyIcon ?? <SearchInfo20Regular />}\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>\r\n {emptyTitle ?? 'Nenhum dado encontrado'}\r\n </h3>\r\n <p className={styles.tableEmptyCaption}>\r\n {emptyText ?? 'Nenhum registro encontrado'}\r\n </p>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport default EmptyState;\r\n","import clsx from 'clsx';\r\nimport { Toggle as ToggleRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport Tooltip from '../../Tooltip';\r\nimport styles from '../ToggleButton.module.scss';\r\n\r\nimport type { ToggleButtonProps } from '../ToggleButton.types';\r\n\r\nconst Toggle: React.FC<ToggleButtonProps> = ({\r\n pressed,\r\n defaultPressed,\r\n onPressedChange,\r\n disabled = false,\r\n className,\r\n label,\r\n id,\r\n size = 'lg',\r\n scale = 1,\r\n style,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n icon,\r\n iconOnly = false,\r\n mode: _mode,\r\n selectionType: _type,\r\n value: _value,\r\n defaultValue: _defaultValue,\r\n onValueChange: _onValueChange,\r\n items: _items,\r\n expandOnSelect: _expandOnSelect,\r\n requireSelection: _requireSelection,\r\n ...rest\r\n}) => {\r\n const toggle = (\r\n <ToggleRadix.Root\r\n pressed={pressed}\r\n defaultPressed={defaultPressed}\r\n onPressedChange={onPressedChange}\r\n disabled={disabled}\r\n className={clsx(\r\n styles.toggle,\r\n styles[`toggle-${size}`],\r\n {\r\n [styles.toggleIconOnly]: iconOnly,\r\n [styles.toggleWithIcon]: !!icon && !iconOnly,\r\n },\r\n className,\r\n )}\r\n id={id}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n {iconOnly ? (\r\n <span className={styles.toggleIconLeft} aria-hidden=\"true\">{icon}</span>\r\n ) : (\r\n <>\r\n {icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{icon}</span>}\r\n {label}\r\n </>\r\n )}\r\n </ToggleRadix.Root>\r\n );\r\n\r\n if (tooltipText) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n {toggle}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return toggle;\r\n};\r\n\r\nexport default Toggle;\r\n\r\n","import clsx from 'clsx';\r\nimport { ToggleGroup as ToggleGroupRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport Tooltip from '../../Tooltip';\r\nimport styles from '../ToggleButton.module.scss';\r\n\r\nimport type { ToggleButtonProps } from '../ToggleButton.types';\r\n\r\nconst ToggleGroup: React.FC<ToggleButtonProps> = ({\r\n selectionType = 'single',\r\n value,\r\n defaultValue,\r\n onValueChange,\r\n requireSelection = false,\r\n disabled = false,\r\n items = [],\r\n expandOnSelect: groupExpandOnSelect = false,\r\n className,\r\n id,\r\n size = 'lg',\r\n scale = 1,\r\n style,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n mode: _mode,\r\n icon: _icon,\r\n iconOnly: _iconOnly,\r\n pressed: _pressed,\r\n defaultPressed: _defaultPressed,\r\n onPressedChange: _onPressedChange,\r\n ...rest\r\n}) => {\r\n const singleValueProp = value as string | undefined;\r\n const singleOnValueChange = onValueChange as ((value: string) => void) | undefined;\r\n const isSingleControlled = singleValueProp !== undefined;\r\n\r\n const [uncontrolledValue, setUncontrolledValue] = React.useState(\r\n (defaultValue as string | undefined) ?? '',\r\n );\r\n\r\n const handleSingleValueChange = React.useCallback(\r\n (next: string) => {\r\n if (requireSelection && !next) {\r\n return;\r\n }\r\n if (!isSingleControlled) {\r\n setUncontrolledValue(next);\r\n }\r\n singleOnValueChange?.(next);\r\n },\r\n [requireSelection, isSingleControlled, singleOnValueChange],\r\n );\r\n\r\n const rootProps =\r\n selectionType === 'multiple'\r\n ? {\r\n type: 'multiple' as const,\r\n value: value as string[] | undefined,\r\n defaultValue: defaultValue as string[] | undefined,\r\n onValueChange: onValueChange as\r\n | ((value: string[]) => void)\r\n | undefined,\r\n }\r\n : requireSelection\r\n ? {\r\n type: 'single' as const,\r\n value: isSingleControlled ? singleValueProp : uncontrolledValue,\r\n onValueChange: handleSingleValueChange,\r\n }\r\n : {\r\n type: 'single' as const,\r\n value: singleValueProp,\r\n defaultValue: defaultValue as string | undefined,\r\n onValueChange: singleOnValueChange,\r\n };\r\n\r\n const hasExpandableItems = groupExpandOnSelect || items.some((item) => item.expandOnSelect);\r\n\r\n const group = (\r\n <ToggleGroupRadix.Root\r\n {...rootProps}\r\n disabled={disabled}\r\n className={clsx(styles.group, { [styles.groupExpandable]: hasExpandableItems }, className)}\r\n id={id}\r\n style={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n {...rest}\r\n >\r\n {items.map((item) => {\r\n const expandOnSelect = item.expandOnSelect ?? groupExpandOnSelect;\r\n\r\n return (\r\n <ToggleGroupRadix.Item\r\n key={item.value}\r\n value={item.value}\r\n disabled={item.disabled}\r\n className={clsx(\r\n styles.item,\r\n styles[`item-${size}`],\r\n {\r\n [styles.toggleIconOnly]: item.iconOnly && !expandOnSelect,\r\n [styles.toggleWithIcon]: !!item.icon && !item.iconOnly && !expandOnSelect,\r\n [styles.itemExpandOnSelect]: expandOnSelect,\r\n },\r\n )}\r\n style={{ '--giro-scale': scale } as React.CSSProperties}\r\n >\r\n {expandOnSelect ? (\r\n <>\r\n {item.icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>}\r\n <span className={styles.toggleLabel}>{item.label}</span>\r\n </>\r\n ) : item.iconOnly ? (\r\n <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>\r\n ) : (\r\n <>\r\n {item.icon && <span className={styles.toggleIconLeft} aria-hidden=\"true\">{item.icon}</span>}\r\n {item.label}\r\n </>\r\n )}\r\n </ToggleGroupRadix.Item>\r\n );\r\n })}\r\n </ToggleGroupRadix.Root>\r\n );\r\n\r\n if (tooltipText) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n {group}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return group;\r\n};\r\n\r\nexport default ToggleGroup;\r\n","import React from 'react';\r\n\r\nimport Toggle from './components/Toggle';\r\nimport ToggleGroup from './components/ToggleGroup';\r\n\r\nimport type { ToggleButtonProps } from './ToggleButton.types';\r\n\r\nconst ToggleButton: React.FC<ToggleButtonProps> = ({\r\n mode = 'simple',\r\n ...props\r\n}) => {\r\n if (mode === 'combined') {\r\n return <ToggleGroup {...props} />;\r\n }\r\n\r\n return <Toggle {...props} />;\r\n};\r\n\r\nexport default ToggleButton;\r\n\r\n","import { ChevronLeft16Regular, ChevronRight16Regular, ArrowSort16Regular, ArrowSortUp16Regular, ArrowSortDown16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport {\r\n type ColumnDef,\r\n type RowSelectionState,\r\n type SortingState,\r\n flexRender,\r\n getCoreRowModel,\r\n getSortedRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\nimport clsx from 'clsx';\r\nimport { useState, useMemo, useRef, useEffect } from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport 'react-loading-skeleton/dist/skeleton.css';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Button from '../Button/Button';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport EmptyState from './components/EmptyState';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\nimport ToggleButton from '../ToggleButton/ToggleButton';\r\n\r\nimport type { TableV2Props } from './Table.types';\r\n\r\nconst TableV2 = <T,>({\r\n columns,\r\n data,\r\n rowSelection: rowSelectionConfig,\r\n enableSorting = true,\r\n bulkActions,\r\n header,\r\n footer,\r\n loading = false,\r\n emptyIcon,\r\n emptyTitle,\r\n emptyText,\r\n onRow,\r\n className,\r\n}: TableV2Props<T>) => {\r\n const isRowSelectionEnabled = !!rowSelectionConfig;\r\n const isControlled = rowSelectionConfig?.selectedRowKeys !== undefined;\r\n\r\n const [pendingSearch, setPendingSearch] = useState(header?.searchValue ?? '');\r\n\r\n useEffect(() => {\r\n if (header?.searchValue !== undefined) {\r\n setPendingSearch(header.searchValue);\r\n }\r\n }, [header?.searchValue]);\r\n\r\n const [activeView, setActiveView] = useState<string>(\r\n header?.viewToggle?.value ??\r\n header?.viewToggle?.defaultValue ??\r\n header?.viewToggle?.items?.[0]?.value ??\r\n ''\r\n );\r\n\r\n useEffect(() => {\r\n if (header?.viewToggle?.value !== undefined) {\r\n setActiveView(header.viewToggle.value);\r\n }\r\n }, [header?.viewToggle?.value]);\r\n\r\n const currentViewData = header?.viewToggle?.views?.[activeView];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const effectiveColumns = (currentViewData?.columns ?? columns) as ColumnDef<T, any>[];\r\n const effectiveData = currentViewData?.data ?? data;\r\n const [rowSelectionState, setRowSelectionState] = useState<RowSelectionState>({});\r\n const rowSelectionRef = useRef<RowSelectionState>({});\r\n\r\n const externalSelectionState = useMemo<RowSelectionState>(() => {\r\n if (!rowSelectionConfig?.selectedRowKeys) return {};\r\n return Object.fromEntries(\r\n rowSelectionConfig.selectedRowKeys.map((key) => [String(key), true])\r\n );\r\n }, [rowSelectionConfig?.selectedRowKeys]);\r\n\r\n const effectiveRowSelection = isControlled ? externalSelectionState : rowSelectionState;\r\n rowSelectionRef.current = effectiveRowSelection;\r\n const lastEmittedSelectionKey = useRef('{}');\r\n const [sorting, setSorting] = useState<SortingState>([]);\r\n const [pagination, setPagination] = useState({\r\n pageIndex: 0,\r\n pageSize: footer?.defaultPageSize ?? 10,\r\n });\r\n const { pageIndex, pageSize } = pagination;\r\n\r\n const selectionColumn = useMemo<ColumnDef<T, unknown>>(() => ({\r\n id: '__select__',\r\n size: 48,\r\n enableSorting: false,\r\n enableColumnFilter: false,\r\n header: ({ table: t }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={t.getIsAllPageRowsSelected()}\r\n indeterminate={t.getIsSomePageRowsSelected()}\r\n disabled={rowSelectionConfig?.disableSelectAll}\r\n onCheckedChange={(checked) =>\r\n t.toggleAllPageRowsSelected(checked)\r\n }\r\n />\r\n </div>\r\n ),\r\n cell: ({ row }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n disabled={!row.getCanSelect()}\r\n onCheckedChange={(checked) => row.toggleSelected(checked)}\r\n />\r\n </div>\r\n ),\r\n }), [rowSelectionConfig?.disableSelectAll]);\r\n\r\n const resolvedColumns = useMemo(\r\n () => (isRowSelectionEnabled ? [selectionColumn, ...effectiveColumns] : effectiveColumns),\r\n [isRowSelectionEnabled, selectionColumn, effectiveColumns]\r\n );\r\n\r\n const showSearch = !!(header?.onSearchChange);\r\n\r\n const table = useReactTable({\r\n data: effectiveData,\r\n columns: resolvedColumns,\r\n defaultColumn: { minSize: 44, size: 0 },\r\n state: {\r\n ...(isRowSelectionEnabled ? { rowSelection: effectiveRowSelection } : {}),\r\n ...(enableSorting ? { sorting } : {}),\r\n },\r\n onSortingChange: enableSorting ? setSorting : undefined,\r\n enableSorting,\r\n onRowSelectionChange: isRowSelectionEnabled\r\n ? (updater) => {\r\n const prev = rowSelectionRef.current;\r\n const next = typeof updater === 'function' ? updater(prev) : updater;\r\n const selectionKey = JSON.stringify(next, Object.keys(next).sort());\r\n if (selectionKey === lastEmittedSelectionKey.current) return;\r\n lastEmittedSelectionKey.current = selectionKey;\r\n rowSelectionRef.current = next;\r\n if (!isControlled) {\r\n setRowSelectionState(next);\r\n }\r\n if (rowSelectionConfig?.onRowChange) {\r\n const allRows = table.getCoreRowModel().rows;\r\n const selectedRows = allRows.filter((r) => next[r.id]).map((r) => r.original);\r\n const selectedKeys = allRows.filter((r) => next[r.id]).map((r) => r.index as (string | number));\r\n rowSelectionConfig.onRowChange(selectedRows, selectedKeys);\r\n }\r\n }\r\n : undefined,\r\n enableRowSelection: isRowSelectionEnabled\r\n ? typeof rowSelectionConfig?.disabled === 'function'\r\n ? (row) => !(rowSelectionConfig.disabled as (r: T, i: number) => boolean)(row.original, row.index)\r\n : typeof rowSelectionConfig?.disabled === 'boolean'\r\n ? !rowSelectionConfig.disabled\r\n : true\r\n : false,\r\n getCoreRowModel: getCoreRowModel(),\r\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\r\n });\r\n\r\n const effectiveTotalItems = footer?.totalItems ?? 0;\r\n const totalPages = footer ? Math.ceil(effectiveTotalItems / pageSize) : 0;\r\n const canGoPrev = pageIndex > 0;\r\n const canGoNext = pageIndex + 1 < totalPages;\r\n\r\n const skeletonRowCount = footer ? pageSize : (effectiveData.length > 0 ? effectiveData.length : pageSize);\r\n\r\n const selectedRows = useMemo(\r\n () =>\r\n table\r\n .getCoreRowModel()\r\n .rows.filter((r) => effectiveRowSelection[r.id])\r\n .map((r) => r.original),\r\n [effectiveRowSelection, table]\r\n );\r\n const selectedCount = selectedRows.length;\r\n const showBulkActions = isRowSelectionEnabled && !!bulkActions && selectedCount > 0;\r\n\r\n useEffect(() => {\r\n if (isRowSelectionEnabled) {\r\n table.resetRowSelection();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pageIndex]);\r\n\r\n useEffect(() => {\r\n if (footer?.currentPage !== undefined) {\r\n const targetPageIndex = footer.currentPage - 1;\r\n setPagination((prev) =>\r\n prev.pageIndex !== targetPageIndex\r\n ? { ...prev, pageIndex: targetPageIndex }\r\n : prev,\r\n );\r\n }\r\n }, [footer?.currentPage]);\r\n\r\n const handleClearSelection = () => {\r\n table.resetRowSelection();\r\n bulkActions?.onClear?.();\r\n };\r\n\r\n const handlePageSizeChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const size = Number(e.target.value);\r\n setPagination({ pageIndex: 0, pageSize: size });\r\n footer?.onPageSizeChange?.(size);\r\n };\r\n\r\n return (\r\n <div className={clsx(styles.wrapper, className)}>\r\n {showBulkActions && (\r\n <div className={styles.bulkActionsBar}>\r\n <div className={styles.bulkActionsInfo}>\r\n <Button\r\n variant=\"text\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n ariaLabel=\"Limpar seleção\"\r\n onClick={handleClearSelection}\r\n className={styles.bulkActionsClearButton}\r\n />\r\n <span className={styles.bulkActionsLabel}>\r\n {bulkActions.label\r\n ? bulkActions.label(selectedCount, selectedRows)\r\n : `${selectedCount} ${selectedCount === 1 ? 'item selecionado' : 'itens selecionados'}`}\r\n </span>\r\n </div>\r\n <div className={styles.bulkActionsButtons}>\r\n {bulkActions.actions.map((action, index) => (\r\n <Button\r\n key={index}\r\n variant={action.variant ?? 'outlined'}\r\n type=\"button\"\r\n disabled={action.disabled}\r\n onClick={action.onClick}\r\n size=\"sm\"\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {header && (\r\n <div className={styles.tableHeader}>\r\n <div className={styles.tableHeaderLeft}>\r\n {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={pendingSearch}\r\n virtualKeyboard={header.virtualKeyboard}\r\n searchMode={header?.searchMode ?? \"on-enter\"}\r\n onChange={(e) => {\r\n setPendingSearch(e.target.value);\r\n }}\r\n onSearch={(val) => {\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.(val);\r\n }}\r\n onClear={() => {\r\n setPendingSearch('');\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.('');\r\n }}\r\n placeholder={header.searchPlaceholder ?? 'Pesquisar...'}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n {header.viewToggle && (\r\n <ToggleButton\r\n mode=\"combined\"\r\n selectionType=\"single\"\r\n value={activeView}\r\n requireSelection={true}\r\n onValueChange={(val) => {\r\n if (!val) return;\r\n setActiveView(val);\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header.viewToggle?.onValueChange?.(val);\r\n }}\r\n items={header.viewToggle.items.map((item) => ({\r\n value: item.value,\r\n icon: item.icon,\r\n iconOnly: true,\r\n tooltipText: item.tooltipText,\r\n }))}\r\n />\r\n )}\r\n </div>\r\n {!!header.filterItems?.length && (\r\n <div className={styles.tableHeaderFilters}>\r\n {header.filterItems.some((item) => item.type !== 'combined') && (\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n )}\r\n <div className={styles.tableHeaderFilterItems}>\r\n {header.filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (filterItem.type === 'combined') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n mode=\"combined\"\r\n buttonText={filterItem.buttonText}\r\n icon={filterItem.icon}\r\n title={filterItem.title}\r\n drawerWidth={filterItem.drawerWidth}\r\n appliedFilterCount={filterItem.activeCount}\r\n drawerHeaderContent={filterItem.drawerHeaderContent}\r\n onApply={filterItem.onApply}\r\n onClear={filterItem.onClear}\r\n variant={filterItem.variant ?? 'outlined'}\r\n disabled={filterItem.disabled}\r\n >\r\n {filterItem.children}\r\n </Filter>\r\n );\r\n }\r\n if (filterItem.type === 'calendar') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n locale={filterItem.locale}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className={styles.tableContainer}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table\r\n className={styles.table}\r\n aria-label=\"Tabela de dados\"\r\n aria-rowcount={data.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <tr key={headerGroup.id}>\r\n {headerGroup.headers.map((col) => (\r\n <th\r\n key={col.id}\r\n className={styles.tableTh}\r\n style={{\r\n textAlign: col.column.columnDef.meta?.align,\r\n width: col.column.columnDef.size || undefined,\r\n minWidth: col.column.columnDef.minSize,\r\n maxWidth: col.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? col.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div className={styles.tableThContent}>\r\n {col.isPlaceholder ? null : col.column.getCanSort() ? (\r\n <button\r\n type=\"button\"\r\n className={styles.tableSortButton}\r\n onClick={col.column.getToggleSortingHandler()}\r\n aria-label={`Ordenar por ${typeof col.column.columnDef.header === 'string' ? col.column.columnDef.header : col.id}`}\r\n >\r\n {flexRender(col.column.columnDef.header, col.getContext())}\r\n {col.column.getIsSorted() === 'asc' ? (\r\n <ArrowSortUp16Regular className={styles.tableSortIcon} />\r\n ) : col.column.getIsSorted() === 'desc' ? (\r\n <ArrowSortDown16Regular className={styles.tableSortIcon} />\r\n ) : (\r\n <ArrowSort16Regular className={styles.tableSortIconNeutral} />\r\n )}\r\n </button>\r\n ) : (\r\n flexRender(col.column.columnDef.header, col.getContext())\r\n )}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n ))}\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\r\n <tr key={`skeleton-row-${rowIdx}`} className={styles.tableRow}>\r\n {table.getVisibleLeafColumns().map((col) => (\r\n <td key={col.id} className={styles.tableTd}>\r\n <Skeleton />\r\n </td>\r\n ))}\r\n </tr>\r\n ))\r\n ) : table.getRowModel().rows.length > 0 ? (\r\n table.getRowModel().rows.map((row, index) => {\r\n const rowProps = onRow?.(row.original, index) ?? {};\r\n return (\r\n <tr\r\n key={row.id}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {row.getVisibleCells().map((cell) => (\r\n <td\r\n key={cell.id}\r\n className={styles.tableTd}\r\n style={{\r\n textAlign: cell.column.columnDef.meta?.align,\r\n width: cell.column.columnDef.size || undefined,\r\n minWidth: cell.column.columnDef.minSize,\r\n maxWidth: cell.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? cell.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div\r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta?.maxHeight ?? '64px' }}\r\n >\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td\r\n colSpan={table.getVisibleLeafColumns().length}\r\n className={styles.tableEmptyCell}\r\n >\r\n <EmptyState emptyIcon={emptyIcon} emptyTitle={emptyTitle} emptyText={emptyText} />\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n {footer && (\r\n <div className={styles.tablePagination}>\r\n <div className={styles.tablePaginationSelect}>\r\n <label\r\n htmlFor=\"tablev2-page-size\"\r\n className={styles.tablePaginationLabel}\r\n >\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"tablev2-page-size\"\r\n value={pageSize}\r\n onChange={handlePageSizeChange}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {(footer.pageSizeOptions ?? [10, 25, 50, 100]).map((opt) => (\r\n <option key={opt} value={opt}>\r\n {opt}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalPages > 0\r\n ? `${pageIndex + 1} de ${totalPages}`\r\n : '0 páginas'}\r\n </span>\r\n </div>\r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex - 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex + 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default TableV2;\r\n","import clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, useEffect } from 'react';\r\n\r\nimport { forwardRef } from '../../utils/forwardRef';\r\n\r\nimport styles from './TextArea.module.scss';\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport LabelComponent from '../../shared/Label';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>((\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltipText,\r\n tooltipSide = 'bottom',\r\n tooltipAlign = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n onBlur,\r\n onFocus,\r\n name,\r\n resize = 'vertical',\r\n charCount = false,\r\n height,\r\n virtualKeyboard,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const normalizeValue = (val: string | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n\r\n const [textareaValue, setTextareaValue] = useState(normalizeValue(value));\r\n const [textareaError, setTextareaError] = useState('');\r\n const { internalRef: textareaRef, setRefs: setTextareaRefs } = useInputKeyboardValue(ref);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n setTextareaValue(normalizeValue(value));\r\n }, [value]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setTextareaValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n if (required && textareaValue.trim() === '') {\r\n setTextareaError(errorMessage || 'Campo obrigatório.');\r\n } else {\r\n setTextareaError('');\r\n }\r\n onBlur?.(e);\r\n },\r\n [textareaValue, required, errorMessage, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const hasError = Boolean(textareaError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || textareaError || helperText;\r\n const helperId = (textareaError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n disabled && styles.disabled,\r\n hasError && !disabled && styles.error,\r\n className\r\n );\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={!!tooltipText}\r\n tooltipText={tooltipText}\r\n side={tooltipSide}\r\n align={tooltipAlign}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <textarea\r\n {...rest}\r\n ref={setTextareaRefs}\r\n id={componentId}\r\n name={name}\r\n value={textareaValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n style={{ resize, height }}\r\n inputMode={(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') ? 'none' : rest.inputMode}\r\n />\r\n </div>\r\n\r\n {(((error && errorMessage) || textareaError || helperText) || (charCount && maxLength)) && (\r\n <div className={styles.footer}>\r\n {((error && errorMessage) || textareaError || helperText) && (\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n )}\r\n\r\n {charCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {(virtualKeyboard === 'default' || virtualKeyboard === 'numeric') && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboard}\r\n maxLength={maxLength}\r\n value={textareaValue}\r\n targetRef={textareaRef}\r\n onChange={(val: string) => {\r\n if (!disabled && (!maxLength || val.length <= maxLength)) {\r\n setTextareaValue(val);\r\n onChange?.(val);\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\nTextArea.displayName = 'TextArea';\r\n\r\nexport default React.memo(TextArea);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\n\r\n/**\r\n * Valor disponibilizado pelo contexto do sistema de Toast.\r\n *\r\n * Acessível via `useToast()` em componentes filhos do `ToastProvider`.\r\n *\r\n * @see {@link useToast}\r\n */\r\nexport interface ToastContextValue {\r\n /** Lista de toasts atualmente visíveis na tela. */\r\n toasts: ToastProps[];\r\n /**\r\n * Exibe um novo toast na tela.\r\n *\r\n * Gera um `id` único automaticamente e adiciona o toast à fila.\r\n * Quando o limite de `maxToasts` é atingido, o toast mais antigo é removido.\r\n *\r\n * @param toast - Propriedades do toast a ser exibido (sem `id`).\r\n */\r\n showToast: (toast: Omit<ToastProps, 'id'>) => void;\r\n /**\r\n * Remove um toast específico da tela pelo seu `id`.\r\n *\r\n * @remarks\r\n * Geralmente não é necessário chamar este método manualmente, pois os toasts\r\n * se fecham automaticamente (via `duration`) ou pelo botão de fechar do usuário.\r\n *\r\n * @param id - ID único do toast a ser removido.\r\n */\r\n dismissToast: (id: string) => void;\r\n}\r\n\r\n/**\r\n * Contexto React que armazena o estado e as ações do sistema de Toast.\r\n *\r\n * @remarks\r\n * Não consuma este contexto diretamente. Utilize o hook `useToast()` para\r\n * acessar as funcionalidades de forma segura e com verificação de provider.\r\n *\r\n * @see {@link ToastContextValue}\r\n * @see {@link useToast}\r\n */\r\nexport const ToastContext = React.createContext<ToastContextValue | undefined>(undefined);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\nimport { ToastContext } from '../contexts/ToastContext';\r\n\r\n/**\r\n * Hook interno que acessa o `ToastContext` diretamente.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns O valor completo do contexto — `toasts`, `showToast` e `dismissToast`.\r\n *\r\n * @internal\r\n */\r\nexport const useToastContext = () => {\r\n const context = React.useContext(ToastContext);\r\n if (!context) {\r\n throw new Error('useToastContext deve ser usado dentro de ToastProvider');\r\n }\r\n return context;\r\n};\r\n\r\n/**\r\n * Hook para exibir e remover toasts na aplicação.\r\n *\r\n * O componente que usa este hook deve ser filho de um `ToastProvider`.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns Objeto com os métodos `showToast` e `dismissToast`.\r\n *\r\n * @example\r\n * ```tsx\r\n * import { useToast } from '@giro-ds/react';\r\n *\r\n * function MeuComponente() {\r\n * const { showToast } = useToast();\r\n *\r\n * const handleSalvar = async () => {\r\n * try {\r\n * await salvarDados();\r\n * showToast({ title: 'Sucesso!', iconType: 'Success', duration: 3000 });\r\n * } catch (err) {\r\n * showToast({ title: 'Erro ao salvar', iconType: 'Alert', automaticClose: false });\r\n * }\r\n * };\r\n *\r\n * return <button onClick={handleSalvar}>Salvar</button>;\r\n * }\r\n * ```\r\n */\r\nexport const useToast = () => {\r\n const { showToast, dismissToast } = useToastContext();\r\n\r\n return {\r\n showToast: (toast: Omit<ToastProps, 'id'>) => showToast(toast),\r\n dismissToast: (id: string) => dismissToast(id),\r\n };\r\n};\r\n","import { Info20Filled, CheckmarkCircle20Filled, Warning20Filled, Dismiss16Filled} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Toast.module.scss';\r\nimport { ToastProps } from './Toast.types';\r\nimport { useToastContext } from '../../hooks/useToast';\r\n\r\n/**\r\n * Componente individual de notificação Toast.\r\n *\r\n * Consome o contexto do `ToastProvider` para gerenciar seu próprio ciclo de vida.\r\n * Cada instância recebe um `id` único gerado pelo provider e o utiliza para\r\n * se remover da fila ao ser fechada.\r\n *\r\n * Construído sobre `Toast.Root` do **Radix UI**, com suporte completo a\r\n * acessibilidade (ARIA) e gesto de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * Este componente não deve ser usado diretamente. Utilize o hook `useToast`\r\n * para exibir toasts programaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Uso indireto via hook (recomendado)\r\n * const { showToast } = useToast();\r\n *\r\n * showToast({\r\n * title: 'Item salvo',\r\n * iconType: 'Success',\r\n * duration: 3000,\r\n * });\r\n * ```\r\n *\r\n * @param props - {@link ToastProps} combinadas com o `id` único do toast\r\n */\r\nconst Toast: React.FC<ToastProps & { id: string }> = ({ \r\n id,\r\n title,\r\n duration = 5000,\r\n icon,\r\n iconClosed = <Dismiss16Filled />,\r\n automaticClose = true,\r\n iconType = \"Info\",\r\n className,\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = React.useState(false);\r\n const { dismissToast } = useToastContext();\r\n const dismissTimerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n React.useEffect(() => {\r\n setOpen(true);\r\n return () => {\r\n if (dismissTimerRef.current !== null) {\r\n clearTimeout(dismissTimerRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n dismissTimerRef.current = setTimeout(() => dismissToast(id), 200);\r\n }\r\n };\r\n\r\n let displayIcon = icon;\r\n const effectiveDuration = automaticClose ? duration : Infinity;\r\n\r\n if (!icon) {\r\n if (iconType === 'Info') {\r\n displayIcon = <Info20Filled />;\r\n } else if (iconType === 'Success') {\r\n displayIcon = <CheckmarkCircle20Filled />;\r\n } else if (iconType === 'Alert') {\r\n displayIcon = <Warning20Filled />;\r\n }\r\n }\r\n\r\n return (\r\n <ToastRadix.Root \r\n className={clsx(styles.toastRoot, className)} \r\n open={open} \r\n onOpenChange={handleOpenChange} \r\n duration={effectiveDuration}\r\n {...rest}\r\n >\r\n <span className={`${styles.Icon} ${iconType ? styles[`icon${iconType}`] : ''}`} aria-hidden=\"true\">\r\n {displayIcon}\r\n </span>\r\n <div className={styles.toastContent}>\r\n <ToastRadix.Title className={styles.toastTitle}> {title} </ToastRadix.Title>\r\n </div>\r\n <ToastRadix.Close className={styles.toastClose}> {iconClosed} </ToastRadix.Close>\r\n </ToastRadix.Root>\r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import * as React from 'react';\r\n\r\nimport { ToastContext } from '../../../contexts/ToastContext';\r\nimport { ToastProps } from '../Toast.types';\r\n\r\n/**\r\n * Provider que gerencia o estado global dos toasts na aplicação.\r\n *\r\n * Deve envolver toda a árvore de componentes que precisará exibir toasts.\r\n * Disponibiliza o contexto com `showToast` e `dismissToast` para todos os\r\n * componentes filhos via `useToast()`.\r\n *\r\n * @remarks\r\n * O `ToastContainer` deve ser renderizado **dentro** do `ToastProvider`.\r\n *\r\n * @example\r\n * ```tsx\r\n * // App.tsx ou layout principal\r\n * import { ToastProvider, ToastContainer } from '@giro-ds/react';\r\n *\r\n * function App() {\r\n * return (\r\n * <ToastProvider maxToasts={5}>\r\n * <Routes />\r\n * <ToastContainer />\r\n * </ToastProvider>\r\n * );\r\n * }\r\n * ```\r\n *\r\n * @param children - Árvore de componentes filhos da aplicação.\r\n * @param maxToasts - Número máximo de toasts exibidos simultaneamente.\r\n * Quando o limite é excedido, o toast mais antigo é removido automaticamente.\r\n * @default 5\r\n */\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode; maxToasts?: number }> = ({ \r\n children, \r\n maxToasts = 5 \r\n}) => {\r\n const [toasts, setToasts] = React.useState<ToastProps[]>([]);\r\n\r\n const showToast = React.useCallback((toast: Omit<ToastProps, 'id'>) => {\r\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const newToast: ToastProps = { ...toast, id };\r\n\r\n setToasts((prevToasts) => {\r\n const updatedToasts = [...prevToasts, newToast];\r\n if (updatedToasts.length > maxToasts) {\r\n return updatedToasts.slice(updatedToasts.length - maxToasts);\r\n }\r\n return updatedToasts;\r\n });\r\n }, [maxToasts]);\r\n\r\n const dismissToast = React.useCallback((id: string) => {\r\n setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));\r\n }, []);\r\n\r\n const value = React.useMemo(\r\n () => ({ toasts, showToast, dismissToast }),\r\n [toasts, showToast, dismissToast]\r\n );\r\n\r\n return (\r\n <ToastContext.Provider value={value}>\r\n {children}\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nToastProvider.displayName = 'ToastProvider';\r\n","import { Toast as ToastRadix, Portal } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { useToastContext } from '../../../hooks/useToast';\r\nimport Toast from '../Toast';\r\nimport styles from '../Toast.module.scss';\r\n\r\n/**\r\n * Componente responsável por renderizar todos os toasts ativos na tela.\r\n *\r\n * Lê a lista de toasts do contexto fornecido pelo `ToastProvider` e os\r\n * renderiza individualmente. Configura o `Toast.Provider` do Radix UI com\r\n * direção de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * - Deve ser posicionado **dentro** do `ToastProvider`.\r\n * - Geralmente é colocado próximo à raiz da aplicação, após os demais filhos.\r\n * - Toasts sem `id` são ignorados automaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ToastProvider>\r\n * <App />\r\n * <ToastContainer /> {/* Deve estar aqui *\\/}\r\n * </ToastProvider>\r\n * ```\r\n */\r\nexport const ToastContainer: React.FC = () => {\r\n const { toasts } = useToastContext();\r\n const portalRef = React.useRef<HTMLDivElement>(null);\r\n\r\n React.useEffect(() => {\r\n if (toasts.length > 0 && portalRef.current) {\r\n document.body.appendChild(portalRef.current);\r\n }\r\n }, [toasts.length]);\r\n\r\n return (\r\n <ToastRadix.Provider swipeDirection=\"left\">\r\n {toasts.map((toast) => {\r\n if (!toast.id) return null;\r\n return <Toast key={toast.id} id={toast.id} {...toast} />;\r\n })}\r\n <Portal.Root ref={portalRef}>\r\n <ToastRadix.Viewport className={styles.toastViewport} />\r\n </Portal.Root>\r\n </ToastRadix.Provider>\r\n );\r\n};\r\n\r\nToastContainer.displayName = 'ToastContainer';\r\n","import clsx from 'clsx';\r\nimport { Switch as SwitchRadix} from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Switch.module.scss';\r\nimport { SwitchProps } from './Switch.types';\r\n\r\nconst Switch: React.FC<SwitchProps> = ({\r\n\tdisabled = false,\r\n\tdefaultChecked = false,\r\n\tchecked,\r\n\tonCheckedChange,\r\n\tscale = 1,\r\n\tclassName,\r\n\tstyle,\r\n\t...rest\r\n}) => {\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={clsx(styles.container, className)}\r\n\t\t\tstyle={{ '--giro-scale': scale, ...style } as React.CSSProperties}\r\n\t\t>\r\n\t\t\t<SwitchRadix.Root \r\n\t\t\t\tclassName={styles.switchRoot} \r\n\t\t\t\tdisabled={disabled} \r\n\t\t\t\tdefaultChecked={defaultChecked} \r\n\t\t\t\tchecked={checked}\r\n\t\t\t\tonCheckedChange={onCheckedChange}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t<SwitchRadix.Thumb className={styles.switchThumb} />\r\n\t\t\t</SwitchRadix.Root>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Switch;","import clsx from 'clsx';\r\nimport { unstable_OneTimePasswordField as OneTimePasswordFieldRadix } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { VerificationCodeProps } from './VerificationCode.types';\r\n\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n validationType = 'numeric',\r\n value,\r\n defaultValue,\r\n onValueChange,\r\n autoSubmit = false,\r\n onAutoSubmit,\r\n name,\r\n form,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n readOnly = false,\r\n className,\r\n id,\r\n}) => {\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n\r\n return (\r\n <div id={id} className={clsx(styles.container, className)}>\r\n <OneTimePasswordFieldRadix.Root\r\n className={styles.inputGroup}\r\n validationType={validationType}\r\n value={value}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n autoSubmit={autoSubmit}\r\n onAutoSubmit={onAutoSubmit}\r\n name={name}\r\n form={form}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n data-error={hasError || undefined}\r\n >\r\n {Array.from({ length: validLength }, (_, i) => (\r\n <OneTimePasswordFieldRadix.Input\r\n key={i}\r\n className={clsx(\r\n styles.input,\r\n hasError && styles.inputError,\r\n disabled && styles.inputDisabled,\r\n )}\r\n />\r\n ))}\r\n <OneTimePasswordFieldRadix.HiddenInput />\r\n </OneTimePasswordFieldRadix.Root>\r\n\r\n {hasError && errorMessage && (\r\n <span className={styles.errorMessage}>{errorMessage}</span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VerificationCode;\r\n","import { useState, useCallback, useRef, useEffect } from 'react';\r\n\r\n/**\r\n * Configurações para simulação de API\r\n */\r\nexport interface ApiSimulationConfig {\r\n /** Items por página */\r\n itemsPerPage?: number;\r\n /** Total de items no dataset */\r\n totalItems?: number;\r\n /** Delay em ms para simular latência */\r\n delay?: number;\r\n /** Taxa de erro (0-1) para simular falhas */\r\n errorRate?: number;\r\n /** Função geradora de items customizada */\r\n itemGenerator?: (index: number, searchQuery?: string) => any;\r\n /** Debug mode */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Estado da simulação de API\r\n */\r\nexport interface ApiSimulationState<T> {\r\n /** Items carregados */\r\n items: T[];\r\n /** Página atual */\r\n currentPage: number;\r\n /** Total de páginas */\r\n totalPages: number;\r\n /** Status do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Erro atual (se houver) */\r\n error: string | null;\r\n /** Query de busca atual */\r\n searchQuery: string;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se é a primeira página */\r\n isFirstPage: boolean;\r\n}\r\n\r\nexport interface ApiSimulationActions {\r\n /** Carregar próxima página */\r\n loadNextPage: () => Promise<void>;\r\n /** Realizar nova busca */\r\n search: (query: string) => Promise<void>;\r\n /** Reset completo */\r\n reset: () => void;\r\n /** Retry da última operação */\r\n retry: () => Promise<void>;\r\n}\r\n\r\nexport interface UseApiSimulationReturn<T> extends ApiSimulationState<T> {\r\n actions: ApiSimulationActions;\r\n}\r\n\r\n\r\nexport function useApiSimulation<T = any>(\r\n config: ApiSimulationConfig = {}\r\n): UseApiSimulationReturn<T> {\r\n const {\r\n itemsPerPage = 20,\r\n totalItems = 500,\r\n delay = 800,\r\n errorRate = 0,\r\n itemGenerator,\r\n debug = false\r\n } = config;\r\n\r\n // Estados\r\n const [items, setItems] = useState<T[]>([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [status, setStatus] = useState<'idle' | 'loading' | 'succeeded' | 'failed'>('idle');\r\n const [error, setError] = useState<string | null>(null);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n // Refs para evitar re-criações\r\n const abortControllerRef = useRef<AbortController | null>(null);\r\n const lastOperationRef = useRef<'load' | 'search'>('load');\r\n\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const hasNextPage = currentPage < totalPages;\r\n const isFirstPage = currentPage === 0;\r\n\r\n // ✅ Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [ApiSimulation] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ Gerador padrão de items\r\n const defaultItemGenerator = useCallback((index: number, search?: string) => {\r\n const departments = ['Vendas', 'Marketing', 'TI', 'RH', 'Financeiro', 'Operações'];\r\n const locations = ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Porto Alegre'];\r\n const itemNumber = index + 1;\r\n\r\n return {\r\n id: `item-${itemNumber}`,\r\n text: search\r\n ? `${search} - Item ${itemNumber}`\r\n : `Item ${itemNumber}`,\r\n subText: search\r\n ? `Resultado para \"${search}\" - ${departments[itemNumber % departments.length]}`\r\n : `${departments[itemNumber % departments.length]} • ${locations[itemNumber % locations.length]}`,\r\n disabled: itemNumber % 25 === 0,\r\n category: departments[itemNumber % departments.length],\r\n location: locations[itemNumber % locations.length]\r\n };\r\n }, []);\r\n\r\n // ✅ Simular chamada de API\r\n const simulateApiCall = useCallback(async (\r\n page: number,\r\n search: string = ''\r\n ): Promise<T[]> => {\r\n debugLog('Iniciando simulação de API', { page, search, delay });\r\n\r\n // Cancelar requisição anterior se existir\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n // Criar novo controller\r\n const controller = new AbortController();\r\n abortControllerRef.current = controller;\r\n\r\n try {\r\n // Simular delay de rede\r\n await new Promise((resolve, reject) => {\r\n const timeout = setTimeout(resolve, delay);\r\n controller.signal.addEventListener('abort', () => {\r\n clearTimeout(timeout);\r\n reject(new Error('Request aborted'));\r\n });\r\n });\r\n\r\n // Verificar se foi cancelada\r\n if (controller.signal.aborted) {\r\n throw new Error('Request was cancelled');\r\n }\r\n\r\n // Simular erro aleatório\r\n if (Math.random() < errorRate) {\r\n throw new Error('Simulated network error');\r\n }\r\n\r\n // Calcular range de items\r\n const startIndex = page * itemsPerPage;\r\n const generator = itemGenerator || defaultItemGenerator;\r\n\r\n // Gerar items da página\r\n const pageItems = Array.from({ length: itemsPerPage }, (_, index) => {\r\n const globalIndex = startIndex + index;\r\n if (globalIndex >= totalItems) return null;\r\n return generator(globalIndex, search);\r\n }).filter(Boolean) as T[];\r\n\r\n debugLog('API simulada com sucesso', {\r\n page,\r\n itemsReturned: pageItems.length,\r\n search\r\n });\r\n\r\n return pageItems;\r\n\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n debugLog('Request cancelada');\r\n throw err;\r\n }\r\n\r\n debugLog('Erro na simulação de API', err);\r\n throw new Error('Falha ao carregar dados. Tente novamente.');\r\n }\r\n }, [delay, errorRate, itemsPerPage, totalItems, itemGenerator, defaultItemGenerator, debugLog]);\r\n\r\n // ✅ Carregar próxima página\r\n const loadNextPage = useCallback(async () => {\r\n if (status === 'loading' || !hasNextPage) {\r\n debugLog('Load next page ignorado', { status, hasNextPage });\r\n return;\r\n }\r\n\r\n lastOperationRef.current = 'load';\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const nextPage = currentPage + 1;\r\n const newItems = await simulateApiCall(nextPage - 1, searchQuery);\r\n\r\n setItems(prev => nextPage === 1 ? newItems : [...prev, ...newItems]);\r\n setCurrentPage(nextPage);\r\n setStatus('succeeded');\r\n\r\n debugLog('Página carregada com sucesso', {\r\n page: nextPage,\r\n totalItems: items.length + newItems.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return; // Ignore cancelled requests\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro desconhecido');\r\n setStatus('failed');\r\n debugLog('Erro ao carregar página', err);\r\n }\r\n }, [status, hasNextPage, currentPage, searchQuery, simulateApiCall, items.length, debugLog]);\r\n\r\n const search = useCallback(async (query: string) => {\r\n debugLog('Iniciando busca', { query });\r\n\r\n lastOperationRef.current = 'search';\r\n setSearchQuery(query);\r\n setCurrentPage(0);\r\n setItems([]);\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const searchResults = await simulateApiCall(0, query);\r\n setItems(searchResults);\r\n setCurrentPage(1);\r\n setStatus('succeeded');\r\n\r\n debugLog('Busca concluída', {\r\n query,\r\n results: searchResults.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return;\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro na busca');\r\n setStatus('failed');\r\n debugLog('Erro na busca', err);\r\n }\r\n }, [simulateApiCall, debugLog]);\r\n\r\n const reset = useCallback(() => {\r\n debugLog('Reset completo da simulação');\r\n\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n setItems([]);\r\n setCurrentPage(0);\r\n setStatus('idle');\r\n setError(null);\r\n setSearchQuery('');\r\n }, [debugLog]);\r\n\r\n const retry = useCallback(async () => {\r\n debugLog('Retry da última operação', {\r\n lastOperation: lastOperationRef.current\r\n });\r\n\r\n if (lastOperationRef.current === 'search') {\r\n await search(searchQuery);\r\n } else {\r\n await loadNextPage();\r\n }\r\n }, [search, searchQuery, loadNextPage, debugLog]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n };\r\n }, []);\r\n\r\n return {\r\n // Estado\r\n items,\r\n currentPage,\r\n totalPages,\r\n status,\r\n error,\r\n searchQuery,\r\n hasNextPage,\r\n isFirstPage,\r\n\r\n // Ações\r\n actions: {\r\n loadNextPage,\r\n search,\r\n reset,\r\n retry\r\n }\r\n };\r\n}\r\n\r\nexport default useApiSimulation;","import { useRef, useEffect, useState, useCallback } from 'react';\r\n\r\n/**\r\n * Props para o hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollProps {\r\n /** Status atual do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Página atual */\r\n page: number;\r\n /** Última página disponível */\r\n lastPage: number;\r\n /** Callback para carregar próxima página */\r\n onLoadMore: () => void;\r\n /** Threshold para IntersectionObserver (0-1) */\r\n threshold?: number;\r\n /** Margem raiz para IntersectionObserver */\r\n rootMargin?: string;\r\n /** Habilita/desabilita o hook */\r\n enabled?: boolean;\r\n /** Debug mode - logs no console */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Retorno do hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollReturn {\r\n /** Ref para o elemento observador */\r\n observerRef: React.RefObject<HTMLDivElement | null>;\r\n /** Se o elemento está visível */\r\n isIntersecting: boolean;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se todas as páginas foram carregadas */\r\n isCompleted: boolean;\r\n /** Função para reset manual */\r\n reset: () => void;\r\n}\r\n\r\n/**\r\n * Hook otimizado para scroll infinito usando IntersectionObserver\r\n */\r\nexport function useInfiniteScroll({\r\n status,\r\n page,\r\n lastPage,\r\n onLoadMore,\r\n threshold = 0.1,\r\n rootMargin = '100px',\r\n enabled = true,\r\n debug = false\r\n}: UseInfiniteScrollProps): UseInfiniteScrollReturn {\r\n const observerRef = useRef<HTMLDivElement>(null);\r\n const [isIntersecting, setIsIntersecting] = useState(false);\r\n \r\n // Refs para controle de estado\r\n const loadingRef = useRef(false);\r\n const lastTriggeredPageRef = useRef(0);\r\n const onLoadMoreRef = useRef(onLoadMore);\r\n\r\n // Manter referência atualizada do callback\r\n useEffect(() => {\r\n onLoadMoreRef.current = onLoadMore;\r\n }, [onLoadMore]);\r\n\r\n // ✅ NOVO: Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [InfiniteScroll] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ MELHORADO: Callback do IntersectionObserver com mais controles\r\n const handleIntersect = useCallback((entries: IntersectionObserverEntry[]) => {\r\n const [target] = entries;\r\n const isVisible = target.isIntersecting;\r\n \r\n setIsIntersecting(isVisible);\r\n debugLog('Element intersecting:', isVisible);\r\n\r\n // Verificar se pode carregar mais\r\n const canLoadMore = enabled &&\r\n isVisible && \r\n status !== 'loading' && \r\n !loadingRef.current &&\r\n page < lastPage &&\r\n page !== lastTriggeredPageRef.current;\r\n\r\n debugLog('Can load more check:', {\r\n enabled,\r\n isVisible,\r\n status,\r\n isLoading: loadingRef.current,\r\n page,\r\n lastPage,\r\n lastTriggered: lastTriggeredPageRef.current,\r\n canLoad: canLoadMore\r\n });\r\n\r\n if (canLoadMore) {\r\n debugLog('Triggering load more for next page');\r\n loadingRef.current = true;\r\n lastTriggeredPageRef.current = page;\r\n onLoadMoreRef.current();\r\n }\r\n }, [enabled, status, page, lastPage, debugLog]);\r\n\r\n // ✅ MELHORADO: Observer com configurações personalizáveis\r\n useEffect(() => {\r\n if (!enabled) {\r\n debugLog('Hook disabled, skipping observer setup');\r\n return;\r\n }\r\n\r\n const observer = new IntersectionObserver(handleIntersect, {\r\n root: null,\r\n rootMargin,\r\n threshold,\r\n });\r\n\r\n const currentObserverRef = observerRef.current;\r\n if (currentObserverRef) {\r\n observer.observe(currentObserverRef);\r\n debugLog('IntersectionObserver attached', { rootMargin, threshold });\r\n }\r\n\r\n return () => {\r\n if (currentObserverRef) {\r\n observer.unobserve(currentObserverRef);\r\n debugLog('IntersectionObserver detached');\r\n }\r\n };\r\n }, [handleIntersect, rootMargin, threshold, enabled, debugLog]);\r\n\r\n // ✅ NOVO: Reset do loading flag quando status muda\r\n useEffect(() => {\r\n if (status !== 'loading') {\r\n loadingRef.current = false;\r\n debugLog('Loading flag reset', { status });\r\n }\r\n }, [status, debugLog]);\r\n\r\n // ✅ NOVO: Função de reset manual\r\n const reset = useCallback(() => {\r\n loadingRef.current = false;\r\n lastTriggeredPageRef.current = 0;\r\n setIsIntersecting(false);\r\n debugLog('Hook manually reset');\r\n }, [debugLog]);\r\n\r\n // Estados calculados\r\n const hasNextPage = page < lastPage;\r\n const isCompleted = page >= lastPage;\r\n\r\n return {\r\n observerRef,\r\n isIntersecting,\r\n hasNextPage,\r\n isCompleted,\r\n reset\r\n };\r\n}"],"names":["styles","_jsxs","AvatarRadix","_jsx","useId","version","forwardRefR18","TooltipRadix","useMemo","_Fragment","SpinnerIos16Regular","formatDistanceLocale","formatDistance","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","localize","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","dateFormats","timeFormats","dateTimeFormats","formatLong","enUS","ptBR","dateFnsEnUS","format","addDays","addMonths","addWeeks","addYears","differenceInCalendarDays","differenceInCalendarMonths","eachMonthOfInterval","eachYearOfInterval","endOfISOWeek","endOfMonth","endOfWeek","endOfYear","getISOWeek","getMonth","getYear","getWeek","isAfter","isBefore","isDate","isSameDay","isSameMonth","isSameYear","max","min","setMonth","setYear","startOfDay","startOfISOWeek","startOfMonth","startOfWeek","startOfYear","dateFnsPtBR","ChevronDown16Regular","ChevronUp16Regular","ChevronLeft16Regular","ChevronRight16Regular","createContext","useContext","useState","DayPicker","Dismiss24Regular","React","CheckboxRadix","PopoverRadix","useRef","useCallback","Backspace20Regular","KeyboardShift20Regular","KeyboardShift20Filled","KeyboardShiftUppercase20Regular","ChevronDown20Regular","Emoji20Regular","ArrowImport20Regular","Spacebar20Regular","useEffect","useLayoutEffect","createPortal","createElement","Label","Info12Regular","TextField","Dismiss16Regular","Calendar16Regular","AlertDialog","DocumentAdd24Regular","Warning24Regular","Document24Regular","FilterRegular","Search16Regular","ChevronDownRegular","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","RadioGroup","Select","useReducer","SelectRadix","SearchInfo20Regular","ToggleRadix","ToggleGroupRadix","useReactTable","getCoreRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","Portal","SwitchRadix","OneTimePasswordFieldRadix"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}
|