@giro-ds/react 8.0.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.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/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/Search/Search.tsx","../src/components/Filter/Filter.tsx","../src/components/Radio/Radio.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/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/Table/EmptyRows150Color.tsx","../../../node_modules/.pnpm/react-content-loader@7.1.1_react@18.3.1/node_modules/react-content-loader/dist/react-content-loader.es.js","../src/components/Table/LoaderList.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableHeader.tsx","../src/components/Table/TablePagination.tsx","../src/components/TableV2/components/EmptyState.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 initialLetters,\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 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 || initialLetters}\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 { 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 Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>(({\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 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}, ref) => {\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 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 ...rest,\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 (iconOnly && 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 extracts UTC offset in minutes from 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 * @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\n */\nexport function tzOffset(timeZone, date) {\n try {\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n const offsetStr = format(date).split(\"GMT\")[1];\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support ±HH:MM/±HHMM/±HH\n // 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\";\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n this.setTime(+args[0]);\n } else {\n this.setTime(+new Date(...args));\n adjustToSystemTZ(this, NaN);\n syncToInternal(this);\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\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(time) {\n Date.prototype.setTime.apply(this, arguments);\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 * Function syncs time to internal date, applying the time zone offset.\n *\n * @param {Date} date - Date to sync\n */\nfunction syncToInternal(date) {\n date.internal.setTime(+date);\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * Function syncs the internal date UTC values to the date. It allows to get\n * accurate timestamp value.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // First we transpose the internal values\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 * 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 * @param {Date} date - Date to adjust\n */\nfunction adjustToSystemTZ(date) {\n // Save the time zone offset before all the adjustments\n const baseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const offset = baseOffset > 0 ? Math.floor(baseOffset) : Math.ceil(baseOffset);\n //#region System DST adjustment\n\n // The biggest problem with using the system time zone is that when we create\n // a date from internal values stored in UTC, the system time zone might end\n // up on the DST hour:\n //\n // $ TZ=America/New_York node\n // > new Date(2020, 2, 8, 1).toString()\n // 'Sun Mar 08 2020 01:00:00 GMT-0500 (Eastern Standard Time)'\n // > new Date(2020, 2, 8, 2).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 3).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 4).toString()\n // 'Sun Mar 08 2020 04:00:00 GMT-0400 (Eastern Daylight Time)'\n //\n // Here we get the same hour for both 2 and 3, because the system time zone\n // has DST beginning at 8 March 2020, 2 a.m. and jumps to 3 a.m. So we have\n // to adjust the internal date to reflect that.\n //\n // However we want to adjust only if that's the DST hour the change happenes,\n // not the hour where DST moves to.\n\n // We calculate the previous hour to see if the time zone offset has changed\n // and we have landed on the DST hour.\n const prevHour = new Date(+date);\n // We use UTC methods here as we don't want to land on the same hour again\n // in case of DST.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Calculate if we are on the system DST hour.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n // Detect the DST shift. System DST change will occur both on\n const dstShift = Date.prototype.getHours.apply(date) !== date.internal.getUTCHours();\n\n // Move the internal date when we are on the system DST hour.\n if (systemDSTChange && dstShift) date.internal.setUTCMinutes(date.internal.getUTCMinutes() + systemDSTChange);\n\n //#endregion\n\n //#region System diff adjustment\n\n // Now we need to adjust the date, since we just applied internal values.\n // We need to calculate the difference between the system and date time zones\n // and apply it to the date.\n\n const offsetDiff = systemOffset - offset;\n if (offsetDiff) Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds System diff adjustment\n\n const systemDate = new Date(+date);\n // Set the UTC seconds to 0 to isolate the timezone offset in seconds.\n systemDate.setUTCSeconds(0);\n // For negative systemOffset, invert the seconds.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Calculate the seconds offset based on the timezone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset) {\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() + secondsOffset);\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n }\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n const postBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const postOffset = postBaseOffset > 0 ? Math.floor(postBaseOffset) : Math.ceil(postBaseOffset);\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n const postOffsetDiff = postSystemOffset - postOffset;\n const offsetChanged = postOffset !== offset;\n const postDiff = postOffsetDiff - offsetDiff;\n if (offsetChanged && postDiff) {\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Now we need to check if got offset change during the post-adjustment.\n // If so, we also need both dates to reflect that.\n\n const newBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const newOffset = newBaseOffset > 0 ? Math.floor(newBaseOffset) : Math.ceil(newBaseOffset);\n const offsetChange = postOffset - newOffset;\n if (offsetChange) {\n date.internal.setUTCMinutes(date.internal.getUTCMinutes() + offsetChange);\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\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 { 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 <Icon className={className} aria-hidden />;\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 <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden />\r\n ) : (\r\n <ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden />\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 selected,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onDateChange,\r\n onClear: _onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n className,\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 [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 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 }\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 mode: \"single\" as const,\r\n selected: resolvedSelected,\r\n onSelect: handleSelect,\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 };\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, className)}>\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...rest}\r\n captionLayout=\"label\"\r\n month={resolvedDisplayMonth}\r\n onMonthChange={handleMonthChange}\r\n components={{ MonthCaption: GridMonthCaption, Chevron: CustomChevron }}\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 <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\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 <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\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 <ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden />\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 <ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden />\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 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 indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n return (\r\n <div className={clsx(styles.container, className)}>\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 className,\r\n style,\r\n ...rest\r\n}) => {\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.hasLeftIcon]: leftIcon,\r\n [styles.hasRightIcon]: rightIcon,\r\n },\r\n className\r\n );\r\n\r\n const colorStyle = {\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 isInteractive = typeof rest.onClick === 'function';\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 {...rest}\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}>\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 { Popover as PopoverRadix } from \"radix-ui\";\r\nimport clsx from \"clsx\";\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 />}\r\n </PopoverRadix.Content>\r\n </PopoverRadix.Portal>\r\n </PopoverRadix.Root>\r\n );\r\n};\r\n\r\nexport default Popover;\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}\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}: LabelProps) => (\r\n <div className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}>\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 <Tooltip side={side} align={align} text={tooltipText || ''}>\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 </Tooltip>\r\n )}\r\n </div>\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, forwardRef, useEffect } from 'react';\r\n\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 {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength = 30,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\t align = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n icon,\r\n onBlur,\r\n onFocus,\r\n name,\r\n persistIcon = 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 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 // Reavaliar erro quando valor muda externamente (ex: DatePicker atualiza o campo)\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 && 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 containerClass = clsx(styles.container, {\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError && !disabled,\r\n [className!]: 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={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\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={ref}\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 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) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <Dismiss16Regular />\r\n </button>\r\n )}\r\n </div>\r\n\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 </div>\r\n </div>\r\n );\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 = 'Data',\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 className,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\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 ref={wrapperRef} className={clsx(styles.datePicker, className)} {...rest}>\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 persistIcon\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 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 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 className={styles.DialogDescription}>\r\n\t\t\t\t\t{bodyContent}\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 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 </div>\r\n </>,\r\n document.body\r\n );\r\n};\r\n\r\nexport default Drawer;","import { Search16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useId } from 'react';\r\n\r\nimport styles from './Search.module.scss';\r\n\r\nimport type { SearchProps } from './Search.types';\r\n\r\nconst Search = React.forwardRef<HTMLInputElement, SearchProps>(\r\n (\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 id,\r\n className,\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 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 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 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 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 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={ref}\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 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 </div>\r\n );\r\n }\r\n);\r\n\r\nSearch.displayName = 'Search';\r\n\r\nexport default Search;\r\n","// Filter.tsx\r\nimport { 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 Filter: React.FC<FilterProps> = ({\r\n items,\r\n type = 'checkbox',\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 === 'checkbox') {\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 === 'checkbox'}\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 === 'checkbox' && (\r\n <Checkbox\r\n checked={isSelected}\r\n disabled={item.disabled}\r\n label=\"\"\r\n />\r\n )}\r\n {type === 'icon' && 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 item 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 Filter;\r\n\r\n","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 className,\r\n ...rest\r\n}) => {\r\n const componentId = id || useId();\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, className)}\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, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport Radio from '../Radio/Radio';\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 name,\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 value,\r\n showSubText = false,\r\n hovered = false,\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\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = !internalChecked;\r\n setInternalChecked(newChecked);\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleRadioClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n if (!internalChecked) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\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 handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLLIElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'radio':\r\n handleRadioClick(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, variant, handleCheckboxClick, handleRadioClick, 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 const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'radio', '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 <Checkbox\r\n checked={internalChecked}\r\n disabled={disabled}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__text']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'radio':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-radio']}>\r\n <span className={styles['zds-list-item__radio']} aria-hidden=\"true\">\r\n <Radio\r\n name={name}\r\n onValueChange={() => handleRadioClick({} as React.MouseEvent<HTMLElement>)}\r\n items= {[{\r\n value: value || '',\r\n label: '',\r\n disabled: disabled}]}\r\n aria-labelledby={`${itemId}-text`}\r\n />\r\n </span>\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleRadioClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\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['zds-list-item__wrapper-icon']}>\r\n {icon}\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\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['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, disabled, handleCheckboxClick, handleRadioClick, handleTextOrIconClick, value, text, showSubText, subText, icon, name]);\r\n\r\n const listItemClass = clsx(\r\n styles['zds-list-item__container'],\r\n {\r\n [styles[`zds-list-item--${variant}`]]: variant,\r\n [styles['zds-list-item--disabled']]: disabled,\r\n [styles['zds-list-item--hovered']]: hovered,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const getAriaChecked = useCallback((): boolean | undefined => {\r\n if (variant === 'checkbox' || variant === 'radio') {\r\n return internalChecked;\r\n }\r\n return undefined;\r\n }, [variant, internalChecked]);\r\n\r\n return (\r\n <li\r\n className={listItemClass}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={getAriaChecked()}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={showSubText && subText ? `${itemId}-subtext` : undefined}\r\n data-testid=\"list-item\"\r\n {...rest}\r\n >\r\n {renderVariantContent()}\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 className,\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 { 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>{children}</DropdownMenu.Trigger>\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n className={clsx(styles.content, className)}\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.emptyState}>Nenhum item 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\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 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 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 } as React.CSSProperties}\r\n onInteractOutside={!closeOnOverlayClick ? (e) => e.preventDefault() : undefined}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n <div 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 <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 <div className={styles.modalBody}>\r\n {children}\r\n </div>\r\n {footer && (\r\n <div className={styles.modalFooter}>{footer}</div>\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 className,\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 className={clsx(styles.quantity, { [styles.disabled]: disabled }, className)} {...rest}>\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 />\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 />\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 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 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 = React.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}: 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 (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 errorMessage,\r\n disabled = false,\r\n className,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n isLoadingMore = false,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\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\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,\r\n onApiSearch,\r\n isSearching,\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) {\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]);\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 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 = enableApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, enableApiSearch, utils]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n }), [maxWidth]);\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 (enableApiSearch) {\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 (enableApiSearch && 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}\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={tooltip}\r\n side={side}\r\n align={align}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\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 {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\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 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 />\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 React from 'react';\r\n\r\n/**\r\n * Componente de ícone SVG para estado vazio da tabela\r\n * Exibe um ícone de lupa com design personalizado do Zanthus Design System\r\n * @returns Elemento SVG para estado vazio\r\n */\r\nconst EmptyRows150Color: React.FC = () => (\r\n <svg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <circle cx='75' cy='75' r='75' fill='#E8E8EE' />\r\n <path\r\n d='M67.6111 63.3889C69.36 63.3889 70.7778 64.8067 70.7778 66.5556V81.3333C70.7778 83.0822 69.36 84.5 67.6111 84.5C65.8622 84.5 64.4444 83.0822 64.4444 81.3333V66.5556C64.4444 64.8067 65.8622 63.3889 67.6111 63.3889ZM67.6111 59.1667C69.943 59.1667 71.8333 57.2763 71.8333 54.9444C71.8333 52.6126 69.943 50.7222 67.6111 50.7222C65.2792 50.7222 63.3889 52.6126 63.3889 54.9444C63.3889 57.2763 65.2792 59.1667 67.6111 59.1667ZM67.6111 37C84.5172 37 98.2222 50.7051 98.2222 67.6111C98.2222 74.9235 95.6583 81.637 91.3803 86.9017L112.073 107.594C113.309 108.831 113.309 110.836 112.073 112.073C110.948 113.197 109.189 113.299 107.949 112.379L107.594 112.073L86.9017 91.3803C81.637 95.6583 74.9235 98.2222 67.6111 98.2222C50.7051 98.2222 37 84.5172 37 67.6111C37 50.7051 50.7051 37 67.6111 37ZM67.6111 43.3333C54.2029 43.3333 43.3333 54.2029 43.3333 67.6111C43.3333 81.0194 54.2029 91.8889 67.6111 91.8889C81.0194 91.8889 91.8889 81.0194 91.8889 67.6111C91.8889 54.2029 81.0194 43.3333 67.6111 43.3333Z'\r\n fill='#3B45F2'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default EmptyRows150Color;","import { createElement, isValidElement } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar uid = (function () {\n return Math.random()\n .toString(36)\n .substring(6);\n});\n\nvar SVG = function (_a) {\n var _b = _a.animate, animate = _b === void 0 ? true : _b, _c = _a.backgroundColor, backgroundColor = _c === void 0 ? '#f5f6f7' : _c, _d = _a.backgroundOpacity, backgroundOpacity = _d === void 0 ? 1 : _d, _e = _a.baseUrl, baseUrl = _e === void 0 ? '' : _e, children = _a.children, _f = _a.foregroundColor, foregroundColor = _f === void 0 ? '#eee' : _f, _g = _a.foregroundOpacity, foregroundOpacity = _g === void 0 ? 1 : _g, _h = _a.gradientRatio, gradientRatio = _h === void 0 ? 2 : _h, uniqueKey = _a.uniqueKey, _j = _a.rtl, rtl = _j === void 0 ? false : _j, _k = _a.speed, speed = _k === void 0 ? 1.2 : _k, _l = _a.style, style = _l === void 0 ? {} : _l, _m = _a.title, title = _m === void 0 ? 'Loading...' : _m, _o = _a.beforeMask, beforeMask = _o === void 0 ? null : _o, props = __rest(_a, [\"animate\", \"backgroundColor\", \"backgroundOpacity\", \"baseUrl\", \"children\", \"foregroundColor\", \"foregroundOpacity\", \"gradientRatio\", \"uniqueKey\", \"rtl\", \"speed\", \"style\", \"title\", \"beforeMask\"]);\n var fixedId = uniqueKey || uid();\n var idClip = \"\".concat(fixedId, \"-diff\");\n var idGradient = \"\".concat(fixedId, \"-animated-diff\");\n var idAria = \"\".concat(fixedId, \"-aria\");\n var rtlStyle = rtl ? { transform: 'scaleX(-1)' } : null;\n var dur = \"\".concat(speed, \"s\");\n var from = \"\".concat(gradientRatio * -1, \" 0\");\n var to = \"\".concat(gradientRatio, \" 0\");\n return (createElement(\"svg\", __assign({ \"aria-labelledby\": idAria, role: \"img\", style: __assign(__assign({}, style), rtlStyle) }, props),\n title ? createElement(\"title\", { id: idAria }, title) : null,\n beforeMask && isValidElement(beforeMask) ? beforeMask : null,\n createElement(\"rect\", { role: \"presentation\", x: \"0\", y: \"0\", width: \"100%\", height: \"100%\", clipPath: \"url(\".concat(baseUrl, \"#\").concat(idClip, \")\"), style: { fill: \"url(\".concat(baseUrl, \"#\").concat(idGradient, \")\") } }),\n createElement(\"defs\", null,\n createElement(\"clipPath\", { id: idClip }, children),\n createElement(\"linearGradient\", { id: idGradient, gradientTransform: \"translate(\".concat(from, \")\") },\n createElement(\"stop\", { offset: \"0%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n createElement(\"stop\", { offset: \"50%\", stopColor: foregroundColor, stopOpacity: foregroundOpacity }),\n createElement(\"stop\", { offset: \"100%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n animate && (createElement(\"animateTransform\", { attributeName: \"gradientTransform\", type: \"translate\", values: \"\".concat(from, \"; 0 0; \").concat(to), dur: dur, repeatCount: \"indefinite\" }))))));\n};\n\nvar ContentLoader = function (props) {\n return props.children ? createElement(SVG, __assign({}, props)) : createElement(ReactContentLoaderFacebook, __assign({}, props));\n};\n\nvar ReactContentLoaderFacebook = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 476 124\" }, props),\n createElement(\"rect\", { x: \"48\", y: \"8\", width: \"88\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"48\", y: \"26\", width: \"52\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"56\", width: \"410\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"72\", width: \"380\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"88\", width: \"178\", height: \"6\", rx: \"3\" }),\n createElement(\"circle\", { cx: \"20\", cy: \"20\", r: \"20\" }))); };\n\nvar ReactContentLoaderInstagram = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 460\" }, props),\n createElement(\"circle\", { cx: \"31\", cy: \"31\", r: \"15\" }),\n createElement(\"rect\", { x: \"58\", y: \"18\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"58\", y: \"34\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"2\", ry: \"2\", width: \"400\", height: \"400\" }))); };\n\nvar ReactContentLoaderCode = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 340 84\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", width: \"67\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"76\", y: \"0\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"127\", y: \"48\", width: \"53\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"187\", y: \"48\", width: \"72\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"48\", width: \"100\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"71\", width: \"37\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"23\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"166\", y: \"23\", width: \"173\", height: \"11\", rx: \"3\" }))); };\n\nvar ReactContentLoaderListStyle = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 110\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"20\", rx: \"3\", ry: \"3\", width: \"220\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"40\", rx: \"3\", ry: \"3\", width: \"170\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"80\", rx: \"3\", ry: \"3\", width: \"200\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"100\", rx: \"3\", ry: \"3\", width: \"80\", height: \"10\" }))); };\n\nvar ReactContentLoaderBulletList = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 245 125\" }, props),\n createElement(\"circle\", { cx: \"10\", cy: \"20\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"15\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"50\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"45\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"80\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"75\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"110\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"105\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }))); };\n\nexport default ContentLoader;\nexport { ReactContentLoaderBulletList as BulletList, ReactContentLoaderCode as Code, ReactContentLoaderFacebook as Facebook, ReactContentLoaderInstagram as Instagram, ReactContentLoaderListStyle as List };\n//# sourceMappingURL=react-content-loader.es.js.map\n","import React from 'react';\r\nimport ContentLoader, { IContentLoaderProps } from 'react-content-loader';\r\n\r\n/**\r\n * Componente de loading para lista de tabela\r\n * Simula o carregamento de dados em formato de tabela usando ContentLoader\r\n * @param props - Propriedades adicionais para o ContentLoader\r\n * @returns Elemento de loading animado\r\n */\r\nconst LoaderList: React.FC<IContentLoaderProps> = (props) => (\r\n <ContentLoader\r\n speed={1}\r\n width=\"100%\"\r\n viewBox=\"0 0 1272 652\"\r\n backgroundColor=\"#F5F5F7\"\r\n foregroundColor=\"#FFFFFF\"\r\n {...props}\r\n >\r\n {/* Cabeçalho da tabela */}\r\n <rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"44\" />\r\n\r\n {/* Primeira linha */}\r\n <rect x=\"0\" y=\"76\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"116\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Segunda linha */}\r\n <rect x=\"0\" y=\"164\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"204\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Terceira linha */}\r\n <rect x=\"0\" y=\"252\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"292\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quarta linha */}\r\n <rect x=\"0\" y=\"340\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"380\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quinta linha */}\r\n <rect x=\"0\" y=\"428\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"468\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Sexta linha */}\r\n <rect x=\"0\" y=\"516\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"556\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Rodapé da tabela */}\r\n <rect x=\"0\" y=\"604\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"48\" />\r\n </ContentLoader>\r\n)\r\nexport default LoaderList;","import clsx from 'clsx';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport React, { useState, useMemo, useCallback, ReactNode, CSSProperties } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Checkbox from '../Checkbox';\r\nimport EmptyRows150Color from './EmptyRows150Color';\r\nimport LoaderList from './LoaderList';\r\n\r\nimport type { TableColumn, TableRowData, TableProps } from './Table.types';\r\n\r\nconst useSelection = <T extends TableRowData = TableRowData>(\r\n dataSource: T[],\r\n rowSelection?: TableProps<T>['rowSelection']\r\n) => {\r\n const [internalKeys, setInternalKeys] = useState<(string | number)[]>([]);\r\n const selectedKeys = rowSelection?.selectedRowKeys ?? internalKeys;\r\n const selectedSet = useMemo(() => new Set(selectedKeys), [selectedKeys]);\r\n\r\n const handleChange = useCallback((newKeys: (string | number)[]) => {\r\n const newRows = dataSource.filter((_, index) => newKeys.includes(index)) as T[];\r\n\r\n if (rowSelection?.selectedRowKeys !== undefined) {\r\n rowSelection.onChange?.(newKeys, newRows);\r\n } else {\r\n setInternalKeys(newKeys);\r\n rowSelection?.onChange?.(newKeys, newRows);\r\n }\r\n }, [dataSource, rowSelection]);\r\n\r\n const toggleRow = useCallback((key: string | number) => {\r\n const newKeys = selectedSet.has(key)\r\n ? selectedKeys.filter(k => k !== key)\r\n : [...selectedKeys, key];\r\n handleChange(newKeys);\r\n }, [selectedKeys, selectedSet, handleChange]);\r\n\r\n const selectableKeys = useMemo(() => (\r\n dataSource\r\n .map((row, index) => ({ index, disabled: rowSelection?.getCheckboxProps?.(row, index)?.disabled }))\r\n .filter(({ disabled }) => !disabled)\r\n .map(({ index }) => index)\r\n ), [dataSource, rowSelection]);\r\n\r\n const toggleAll = useCallback(() => {\r\n const isAllSelectableSelected = selectableKeys.every(k => selectedSet.has(k));\r\n const newKeys = isAllSelectableSelected\r\n ? selectedKeys.filter(k => !selectableKeys.includes(k as number))\r\n : [...new Set([...selectedKeys, ...selectableKeys])];\r\n handleChange(newKeys);\r\n }, [selectableKeys, selectedKeys, selectedSet, handleChange]);\r\n\r\n const isAllSelected = selectableKeys.length > 0 && selectableKeys.every(k => selectedSet.has(k));\r\n const isIndeterminate = selectableKeys.some(k => selectedSet.has(k)) && !isAllSelected;\r\n\r\n return {\r\n selectedSet,\r\n selectedKeys,\r\n toggleRow,\r\n toggleAll,\r\n isAllSelected,\r\n isIndeterminate,\r\n };\r\n};\r\n\r\nconst renderCell = <T extends TableRowData = TableRowData>(column: TableColumn<T>, row: T, index: number): ReactNode => {\r\n if (column.render) {\r\n return column.render(row, index);\r\n }\r\n\r\n const value = row[column.key];\r\n\r\n switch (column.type) {\r\n case 'datetime':\r\n if (!value) return '';\r\n try {\r\n const date = new Date(value);\r\n return format(date, column.format || 'dd/MM/yyyy', { locale: ptBR });\r\n } catch {\r\n return value;\r\n }\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nconst Table = <T extends TableRowData = TableRowData>({\r\n columns,\r\n dataSource,\r\n className,\r\n loading = false,\r\n rowSelection,\r\n locale,\r\n onRow,\r\n ...rest\r\n}: TableProps<T>) => {\r\n if (!Array.isArray(columns) || !Array.isArray(dataSource)) {\r\n console.warn('Table: columns e dataSource devem ser arrays');\r\n return null;\r\n }\r\n\r\n const { selectedSet, toggleRow, toggleAll, isAllSelected, isIndeterminate } = useSelection(\r\n dataSource,\r\n rowSelection\r\n );\r\n\r\n const finalColumns = useMemo(() => {\r\n if (!rowSelection) return columns;\r\n\r\n const checkboxColumn: TableColumn<T> = {\r\n key: '__checkbox__',\r\n label: (\r\n <Checkbox\r\n checked={isAllSelected || isIndeterminate}\r\n indeterminate={isIndeterminate}\r\n onCheckedChange={toggleAll}\r\n disabled={rowSelection.disableSelectAll}\r\n />\r\n ),\r\n render: (_, index) => {\r\n const props = rowSelection.getCheckboxProps?.(dataSource[index], index) || {};\r\n return (\r\n <Checkbox\r\n checked={selectedSet.has(index)}\r\n onCheckedChange={() => toggleRow(index)}\r\n disabled={props.disabled}\r\n />\r\n );\r\n },\r\n align: 'center',\r\n };\r\n\r\n return [checkboxColumn, ...columns];\r\n }, [columns, rowSelection, isAllSelected, isIndeterminate, toggleAll, selectedSet, toggleRow, dataSource]);\r\n const tableId = useMemo(() =>\r\n `table-${Math.random().toString(36).substr(2, 9)}`, []\r\n );\r\n if (loading) {\r\n return (\r\n <div className={clsx(styles.tableContainer, className)}>\r\n <div className={styles.tableLoader}>\r\n <LoaderList />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n const emptyText = locale?.emptyText || (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n <EmptyRows150Color />\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>Nenhum dado encontrado</h3>\r\n <p className={styles.tableEmptyCaption}>Nenhum registro encontrado</p>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={clsx(styles.tableContainer, className)} {...rest}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table \r\n className={styles.table}\r\n role=\"table\"\r\n aria-label=\"Tabela de dados\"\r\n aria-describedby={loading ? `${tableId}-loading` : undefined}\r\n aria-rowcount={dataSource.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n <tr>\r\n {finalColumns.map((column) => (\r\n <th\r\n key={column.key}\r\n className={clsx(styles.tableTh, column.align && `text-${column.align}`)}\r\n style={column.style}\r\n >\r\n <div className={styles.tableThContent}>{column.label}</div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {dataSource.length > 0 ? (\r\n dataSource.map((row, index) => {\r\n const rowProps = onRow?.(row, index) || {};\r\n return (\r\n <tr\r\n key={index}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {finalColumns.map((column) => (\r\n <td\r\n key={column.key}\r\n className={clsx(styles.tableTd, column.align && `text-${column.align}`)}\r\n >\r\n {renderCell(column, row, index)}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td colSpan={finalColumns.length} className={styles.tableEmptyCell}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;","import React, { useState, KeyboardEvent } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { Side, Align } from '../../types/common.types';\r\nimport type { FilterItem as FilterListItem } from '../Filter';\r\n\r\ninterface BaseFilterItem {\r\n id?: string;\r\n buttonText: string | React.ReactNode;\r\n icon?: React.ReactElement;\r\n side?: Side;\r\n align?: Exclude<Align, 'center'>;\r\n disabled?: boolean;\r\n onToggle?: (isOpen: boolean) => void;\r\n tooltip?: string;\r\n}\r\n\r\ninterface CheckboxFilterItem extends BaseFilterItem {\r\n type: 'checkbox' | 'text' | 'icon';\r\n items: FilterListItem[];\r\n selectedIds?: string[];\r\n onSelectionChange?: (selectedIds: string[]) => void;\r\n placeholder?: string;\r\n enableSearch?: boolean;\r\n}\r\n\r\ninterface CalendarFilterItem extends BaseFilterItem {\r\n type: 'calendar';\r\n selectedDate?: Date | null;\r\n onDateSelect?: (date: Date) => void;\r\n onClear?: () => void;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n locale?: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport type FilterItem = CheckboxFilterItem | CalendarFilterItem;\r\n\r\nconst isCalendarFilter = (filter: FilterItem): filter is CalendarFilterItem => {\r\n return filter.type === 'calendar';\r\n};\r\n\r\nconst isCheckboxFilter = (filter: FilterItem): filter is CheckboxFilterItem => {\r\n return filter.type === 'checkbox' || filter.type === 'text' || filter.type === 'icon';\r\n};\r\n\r\nexport interface TableHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n searchValue?: string;\r\n onSearchChange?: (value: string) => void;\r\n searchPlaceholder?: string;\r\n showSearch?: boolean;\r\n showFilters?: boolean;\r\n filters?: React.ReactNode;\r\n filterItems?: FilterItem[];\r\n className?: string;\r\n onSearch?: (value: string) => void;\r\n showClearSearch?: boolean;\r\n}\r\n\r\nconst TableHeader: React.FC<TableHeaderProps> = ({\r\n searchValue = '',\r\n onSearchChange,\r\n onSearch,\r\n searchPlaceholder = 'Pesquisar...',\r\n showSearch = true,\r\n showFilters = false,\r\n filters,\r\n filterItems = [],\r\n className = '',\r\n ...rest\r\n}) => {\r\n const [internalSearchValue, setInternalSearchValue] = useState(searchValue);\r\n\r\n React.useEffect(() => {\r\n setInternalSearchValue(searchValue);\r\n }, [searchValue]);\r\n\r\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setInternalSearchValue(value);\r\n \r\n if (value === '' && onSearchChange) {\r\n onSearchChange('');\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n if (onSearch) {\r\n onSearch(internalSearchValue);\r\n } else if (onSearchChange) {\r\n onSearchChange(internalSearchValue);\r\n }\r\n }\r\n };\r\n\r\n const hasFilters = filters || (filterItems && filterItems.length > 0);\r\n\r\n return (\r\n <div className={`${styles.tableHeader} ${className}`.trim()} {...rest}>\r\n {showSearch && (onSearchChange || onSearch) && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={internalSearchValue}\r\n onChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n placeholder={searchPlaceholder}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n \r\n {showFilters && (\r\n <div className={styles.tableHeaderFilters}>\r\n {hasFilters ? (\r\n <div className={styles.tableHeaderFiltersContent}>\r\n {filters && (\r\n <div className={styles.tableHeaderCustomFilters}>\r\n {filters}\r\n </div>\r\n )}\r\n\r\n <div className={styles.tableHeaderFiltersWrapper}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n \r\n <div className={styles.tableHeaderFilterItems}>\r\n {filterItems && 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 (isCalendarFilter(filterItem)) {\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 placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n\r\n if (isCheckboxFilter(filterItem)) {\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\r\n console.warn('TableHeader: Tipo de filtro não reconhecido:', filterItem);\r\n return null;\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className={styles.tableHeaderFiltersPlaceholder}>\r\n <span>Nenhum filtro disponível</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport type { CalendarFilterItem, CheckboxFilterItem };\r\nexport { isCalendarFilter, isCheckboxFilter };\r\n\r\nexport default TableHeader;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular } from '@fluentui/react-icons';\r\nimport React from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\n\r\nexport interface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\r\n currentPage: number;\r\n totalItems: number;\r\n itemsPerPage: number;\r\n onPageChange: (page: number) => void;\r\n onItemsPerPageChange: (itemsPerPage: number) => void;\r\n pageSizeOptions?: number[];\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst TablePagination: React.FC<TablePaginationProps> = ({\r\n currentPage,\r\n totalItems,\r\n itemsPerPage,\r\n onPageChange,\r\n onItemsPerPageChange,\r\n pageSizeOptions = [10, 25, 50, 100],\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const startItem = totalItems > 0 ? (currentPage - 1) * itemsPerPage + 1 : 0;\r\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\r\n \r\n const canGoPrev = currentPage > 1 && !disabled;\r\n const canGoNext = currentPage < totalPages && !disabled;\r\n \r\n const handlePrevious = () => {\r\n if (canGoPrev) {\r\n onPageChange(currentPage - 1);\r\n }\r\n };\r\n \r\n const handleNext = () => {\r\n if (canGoNext) {\r\n onPageChange(currentPage + 1);\r\n }\r\n };\r\n \r\n const handleItemsPerPageChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\r\n const newItemsPerPage = Number(event.target.value);\r\n onItemsPerPageChange(newItemsPerPage);\r\n };\r\n\r\n return (\r\n <div className={`${styles.tablePagination} ${className}`.trim()} {...rest}>\r\n\r\n <div className={styles.tablePaginationSelect}>\r\n <label htmlFor=\"items-per-page\" className={styles.tablePaginationLabel}>\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"items-per-page\"\r\n value={itemsPerPage}\r\n onChange={handleItemsPerPageChange}\r\n disabled={disabled}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {pageSizeOptions.map((option) => (\r\n <option key={option} value={option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n \r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalItems > 0 \r\n ? `${startItem}–${endItem} de ${totalItems}`\r\n : '0 itens'\r\n }\r\n </span>\r\n </div>\r\n \r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handlePrevious}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n \r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handleNext}\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};\r\n\r\nexport default TablePagination;","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 { ChevronLeft16Regular, ChevronRight16Regular, ArrowSort16Regular, ArrowSortUp16Regular, ArrowSortDown16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport {\r\n type ColumnDef,\r\n type ColumnFiltersState,\r\n type RowSelectionState,\r\n type SortingState,\r\n flexRender,\r\n getCoreRowModel,\r\n getFilteredRowModel,\r\n getPaginationRowModel,\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\n\r\nimport type { TableV2Props } from './Table.types';\r\n\r\nconst TableV2 = <T,>({\r\n columns,\r\n data,\r\n enableFilters = false,\r\n enableRowSelection = false,\r\n enableSorting = true,\r\n onRowSelectionChange,\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 [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\r\n const [globalFilter, setGlobalFilter] = useState('');\r\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\r\n const rowSelectionRef = useRef<RowSelectionState>({});\r\n rowSelectionRef.current = rowSelection;\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 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 onCheckedChange={(checked) => row.toggleSelected(checked)}\r\n />\r\n </div>\r\n ),\r\n }), []);\r\n\r\n const resolvedColumns = useMemo(\r\n () => (enableRowSelection ? [selectionColumn, ...columns] : columns),\r\n [enableRowSelection, selectionColumn, columns]\r\n );\r\n\r\n const showSearch = !!(header && (header.showSearch ?? true));\r\n\r\n const table = useReactTable({\r\n data,\r\n columns: resolvedColumns,\r\n defaultColumn: { minSize: 44, size: 0 },\r\n state: {\r\n ...(enableFilters ? { columnFilters } : {}),\r\n ...(showSearch ? { globalFilter } : {}),\r\n ...(footer ? { pagination: { pageIndex, pageSize } } : {}),\r\n ...(enableRowSelection ? { rowSelection } : {}),\r\n ...(enableSorting ? { sorting } : {}),\r\n },\r\n onColumnFiltersChange: enableFilters ? setColumnFilters : undefined,\r\n onGlobalFilterChange: showSearch ? setGlobalFilter : undefined,\r\n onSortingChange: enableSorting ? setSorting : undefined,\r\n enableSorting,\r\n onRowSelectionChange: enableRowSelection\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 setRowSelection(next);\r\n if (onRowSelectionChange) {\r\n const selectedRows = table\r\n .getCoreRowModel()\r\n .rows.filter((r) => next[r.id])\r\n .map((r) => r.original);\r\n onRowSelectionChange(selectedRows);\r\n }\r\n }\r\n : undefined,\r\n enableRowSelection,\r\n onPaginationChange: footer ? setPagination : undefined,\r\n getCoreRowModel: getCoreRowModel(),\r\n getFilteredRowModel:\r\n enableFilters || showSearch ? getFilteredRowModel() : undefined,\r\n getPaginationRowModel: footer ? getPaginationRowModel() : undefined,\r\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\r\n });\r\n\r\n const filteredRowCount = table.getFilteredRowModel().rows.length;\r\n const effectiveTotalItems = footer\r\n ? (enableFilters || showSearch) ? filteredRowCount : footer.totalItems\r\n : 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 : (data.length > 0 ? data.length : pageSize);\r\n\r\n const selectedRows = useMemo(\r\n () =>\r\n table\r\n .getCoreRowModel()\r\n .rows.filter((r) => rowSelection[r.id])\r\n .map((r) => r.original),\r\n [rowSelection, table]\r\n );\r\n const selectedCount = selectedRows.length;\r\n const showBulkActions = enableRowSelection && !!bulkActions && selectedCount > 0;\r\n\r\n useEffect(() => {\r\n if (enableRowSelection) {\r\n table.resetRowSelection();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pageIndex]);\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 {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={globalFilter}\r\n onChange={(e) => {\r\n setGlobalFilter(e.target.value);\r\n if (footer) setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n }}\r\n placeholder={header.searchPlaceholder ?? 'Pesquisar...'}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n {!!header.filterItems?.length && (\r\n <div className={styles.tableHeaderFilters}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\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 === '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={filteredRowCount + 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={clsx(styles.tableSortIcon, 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 {enableFilters && col.column.getCanFilter() && (\r\n <input\r\n value={(col.column.getFilterValue() as string) ?? ''}\r\n onChange={(e) =>\r\n col.column.setFilterValue(e.target.value)\r\n }\r\n placeholder=\"Filtrar...\"\r\n />\r\n )}\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 {cell.column.columnDef.meta?.maxHeight ? (\r\n <div \r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta.maxHeight}}>\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n ) : (\r\n flexRender(cell.column.columnDef.cell, cell.getContext())\r\n )}\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, forwardRef, useEffect } from 'react';\r\n\r\nimport styles from './TextArea.module.scss';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\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 tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n align = '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 showCharCount = false,\r\n height,\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 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 || '\\u00A0';\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={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\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={ref}\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 />\r\n </div>\r\n\r\n <div className={styles.footer}>\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 {showCharCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\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\r\n React.useEffect(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n 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\tclassName,\r\n\t...rest\r\n}) => (\r\n\t\t<div className={clsx(styles.container, className)}>\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);\r\n\r\nexport default Switch;","import clsx from 'clsx';\r\nimport React, { useRef, useState, useCallback, useEffect } from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { InputType, VerificationCodeProps } from './VerificationCode.types';\r\n\r\n/**\r\n * Mapa de regex para validação dos tipos de entrada\r\n */\r\nconst REGEX_MAP: Record<InputType, RegExp> = {\r\n numeric: /^[0-9]$/,\r\n alpha: /^[a-zA-Z]$/,\r\n alphanumeric: /^[a-zA-Z0-9]$/,\r\n};\r\n\r\n/**\r\n * Componente VerificationCode para entrada de códigos de verificação\r\n * \r\n * @description Permite entrada de códigos com múltiplos dígitos,\r\n * suportando diferentes tipos de caracteres e navegação por teclado.\r\n * \r\n * @example\r\n * ```tsx\r\n * <VerificationCode\r\n * length={6}\r\n * inputType=\"numeric\"\r\n * onComplete={(code) => console.log('Código:', code)}\r\n * hasError={false}\r\n * />\r\n * ```\r\n */\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n inputType = 'numeric',\r\n onComplete,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n const [values, setValues] = useState<string[]>(Array(validLength).fill(''));\r\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\r\n const currentRegex = REGEX_MAP[inputType] || REGEX_MAP.numeric;\r\n\r\n\r\n useEffect(() => {\r\n setValues(Array(validLength).fill(''));\r\n }, [inputType, validLength]);\r\n\r\n \r\n const handleChange = useCallback((index: number, value: string): void => {\r\n\r\n if (!currentRegex.test(value)) return;\r\n\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n if (value && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handlePaste = useCallback((e: React.ClipboardEvent<HTMLInputElement>): void => {\r\n e.preventDefault();\r\n\r\n const pasteData = e.clipboardData.getData('Text');\r\n const valuesToPaste = pasteData.split('').slice(0, validLength);\r\n\r\n const newValues = [...values];\r\n\r\n valuesToPaste.forEach((value, index) => {\r\n if (currentRegex.test(value)) {\r\n newValues[index] = value;\r\n }\r\n });\r\n\r\n setValues(newValues);\r\n\r\n const firstEmptyIndex = newValues.findIndex(v => v === '');\r\n const focusIndex = firstEmptyIndex === -1 ? validLength - 1 : firstEmptyIndex;\r\n inputsRef.current[focusIndex]?.focus();\r\n\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handleKeyDown = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Backspace') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n\r\n if (values[index]) {\r\n\r\n newValues[index] = '';\r\n setValues(newValues);\r\n } else if (index > 0) {\r\n\r\n inputsRef.current[index - 1]?.focus();\r\n newValues[index - 1] = '';\r\n setValues(newValues);\r\n }\r\n }\r\n\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n newValues[index] = '';\r\n setValues(newValues);\r\n\r\n if (index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }\r\n if (e.key === 'ArrowLeft' && index > 0) {\r\n e.preventDefault();\r\n inputsRef.current[index - 1]?.focus();\r\n }\r\n\r\n if (e.key === 'ArrowRight' && index < validLength - 1) {\r\n e.preventDefault();\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }, [values, validLength]);\r\n\r\n const handleKeyUp = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n if (values[index] && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n } else if (values[index] && index === validLength - 1) {\r\n inputsRef.current[index]?.blur();\r\n }\r\n }\r\n }, [values, validLength]);\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>): void => {\r\n e.target.select();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className={clsx(styles['zds-verification-code__container'], className)} {...rest}>\r\n {values.map((val, i) => (\r\n <input\r\n id={`zds-verification-code__element-${i}`}\r\n key={i}\r\n ref={(el) => {\r\n inputsRef.current[i] = el;\r\n }}\r\n type=\"text\"\r\n inputMode={inputType === 'numeric' ? 'numeric' : 'text'}\r\n maxLength={1}\r\n value={val}\r\n onChange={(e) => handleChange(i, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(i, e)}\r\n onKeyUp={(e) => handleKeyUp(i, e)}\r\n onPaste={i === 0 ? handlePaste : undefined}\r\n onFocus={handleFocus}\r\n disabled={disabled}\r\n className={clsx(styles['zds-verification-code__input'], {\r\n [styles['zds-verification-code__has-error']]: hasError,\r\n [styles['zds-verification-code__filled']]: val,\r\n })}\r\n aria-invalid={hasError}\r\n aria-label={`Dígito ${i + 1} de ${validLength}`}\r\n aria-describedby={hasError && errorMessage ? 'verification-code-error' : undefined}\r\n autoComplete=\"one-time-code\"\r\n />\r\n ))}\r\n </div>\r\n\r\n {hasError && errorMessage && (\r\n <div\r\n id=\"verification-code-error\"\r\n className={styles['zds-verification-code__error']}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n >\r\n {errorMessage}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default VerificationCode;","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","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","Label","Info12Regular","TextField","forwardRef","useEffect","useCallback","Dismiss16Regular","useRef","Calendar16Regular","AlertDialog","createPortal","Search16Regular","ChevronDownRegular","RadioGroup","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","Select","useReducer","SelectRadix","createElement","isValidElement","SearchInfo20Regular","useReactTable","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","SwitchRadix"],"mappings":"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","x_google_ignoreList":[4,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,62]}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.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/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/Filter/components/Combined.tsx","../src/components/Search/Search.tsx","../src/components/Filter/components/Simple.tsx","../src/components/Filter/Filter.tsx","../src/components/Radio/Radio.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/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/Table/EmptyRows150Color.tsx","../../../node_modules/.pnpm/react-content-loader@7.1.1_react@18.3.1/node_modules/react-content-loader/dist/react-content-loader.es.js","../src/components/Table/LoaderList.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableHeader.tsx","../src/components/Table/TablePagination.tsx","../src/components/TableV2/components/EmptyState.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 initialLetters,\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 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 || initialLetters}\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 { 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 Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>(({\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}, ref) => {\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 scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n const buttonClasses = clsx(\r\n styles.button,\r\n styles[`button-${variant}`],\r\n styles[`button-${size}`],\r\n scaleClass,\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 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 ...rest,\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 (iconOnly && 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 extracts UTC offset in minutes from 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 * @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\n */\nexport function tzOffset(timeZone, date) {\n try {\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n const offsetStr = format(date).split(\"GMT\")[1];\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support ±HH:MM/±HHMM/±HH\n // 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\";\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n this.setTime(+args[0]);\n } else {\n this.setTime(+new Date(...args));\n adjustToSystemTZ(this, NaN);\n syncToInternal(this);\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\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(time) {\n Date.prototype.setTime.apply(this, arguments);\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 * Function syncs time to internal date, applying the time zone offset.\n *\n * @param {Date} date - Date to sync\n */\nfunction syncToInternal(date) {\n date.internal.setTime(+date);\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * Function syncs the internal date UTC values to the date. It allows to get\n * accurate timestamp value.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // First we transpose the internal values\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 * 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 * @param {Date} date - Date to adjust\n */\nfunction adjustToSystemTZ(date) {\n // Save the time zone offset before all the adjustments\n const baseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const offset = baseOffset > 0 ? Math.floor(baseOffset) : Math.ceil(baseOffset);\n //#region System DST adjustment\n\n // The biggest problem with using the system time zone is that when we create\n // a date from internal values stored in UTC, the system time zone might end\n // up on the DST hour:\n //\n // $ TZ=America/New_York node\n // > new Date(2020, 2, 8, 1).toString()\n // 'Sun Mar 08 2020 01:00:00 GMT-0500 (Eastern Standard Time)'\n // > new Date(2020, 2, 8, 2).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 3).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 4).toString()\n // 'Sun Mar 08 2020 04:00:00 GMT-0400 (Eastern Daylight Time)'\n //\n // Here we get the same hour for both 2 and 3, because the system time zone\n // has DST beginning at 8 March 2020, 2 a.m. and jumps to 3 a.m. So we have\n // to adjust the internal date to reflect that.\n //\n // However we want to adjust only if that's the DST hour the change happenes,\n // not the hour where DST moves to.\n\n // We calculate the previous hour to see if the time zone offset has changed\n // and we have landed on the DST hour.\n const prevHour = new Date(+date);\n // We use UTC methods here as we don't want to land on the same hour again\n // in case of DST.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Calculate if we are on the system DST hour.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n // Detect the DST shift. System DST change will occur both on\n const dstShift = Date.prototype.getHours.apply(date) !== date.internal.getUTCHours();\n\n // Move the internal date when we are on the system DST hour.\n if (systemDSTChange && dstShift) date.internal.setUTCMinutes(date.internal.getUTCMinutes() + systemDSTChange);\n\n //#endregion\n\n //#region System diff adjustment\n\n // Now we need to adjust the date, since we just applied internal values.\n // We need to calculate the difference between the system and date time zones\n // and apply it to the date.\n\n const offsetDiff = systemOffset - offset;\n if (offsetDiff) Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds System diff adjustment\n\n const systemDate = new Date(+date);\n // Set the UTC seconds to 0 to isolate the timezone offset in seconds.\n systemDate.setUTCSeconds(0);\n // For negative systemOffset, invert the seconds.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Calculate the seconds offset based on the timezone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset) {\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() + secondsOffset);\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n }\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n const postBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const postOffset = postBaseOffset > 0 ? Math.floor(postBaseOffset) : Math.ceil(postBaseOffset);\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n const postOffsetDiff = postSystemOffset - postOffset;\n const offsetChanged = postOffset !== offset;\n const postDiff = postOffsetDiff - offsetDiff;\n if (offsetChanged && postDiff) {\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Now we need to check if got offset change during the post-adjustment.\n // If so, we also need both dates to reflect that.\n\n const newBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const newOffset = newBaseOffset > 0 ? Math.floor(newBaseOffset) : Math.ceil(newBaseOffset);\n const offsetChange = postOffset - newOffset;\n if (offsetChange) {\n date.internal.setUTCMinutes(date.internal.getUTCMinutes() + offsetChange);\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\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 { 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 <Icon className={className} aria-hidden />;\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 <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden />\r\n ) : (\r\n <ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden />\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 selected,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onDateChange,\r\n onClear: _onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n className,\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 [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 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 }\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 mode: \"single\" as const,\r\n selected: resolvedSelected,\r\n onSelect: handleSelect,\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 };\r\n\r\n const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, scaleClass, className)}>\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...rest}\r\n captionLayout=\"label\"\r\n month={resolvedDisplayMonth}\r\n onMonthChange={handleMonthChange}\r\n components={{ MonthCaption: GridMonthCaption, Chevron: CustomChevron }}\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 <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\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 <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\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 <ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden />\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 <ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden />\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 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 scale = 1,\r\n indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n return (\r\n <div className={clsx(styles.container, scaleClass, className)}>\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 scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n const chipsClass = clsx(\r\n styles.chips,\r\n styles[variant],\r\n scaleClass,\r\n {\r\n [styles.disabled]: 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 ...(!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 isInteractive = typeof rest.onClick === 'function';\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 {...rest}\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}>\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 { Popover as PopoverRadix } from \"radix-ui\";\r\nimport clsx from \"clsx\";\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 />}\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} from '@fluentui/react-icons';\r\n\r\nimport type { VirtualKeyboardType } from '../VirtualKeyboard.type';\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};\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')} Apagar`,\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.type';\r\n\r\nconst EMOTICON_KEY = '{emoticon}';\r\nconst DOWN_KEYBOARD_KEY = '{downkeyboard}';\r\n\r\nconst removeKeyFromLayout = (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(' ').replace(/\\s+/g, ' ').trim()),\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 ç {bksp}',\r\n '{shift} z x c v b n m , . {shift}',\r\n '{numbers} {alt} {space} {downkeyboard} {enter}',\r\n];\r\n\r\nconst NUMPAD = ['1 2 3', '4 5 6', '7 8 9', '{bksp} 0 {abc}'];\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 Ç {bksp}',\r\n '{capslock} Z X C V B N M , . {capslock}',\r\n '{numbers} {alt} {emoticon} {space} {downkeyboard} {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 Ç {bksp}',\r\n '{shiftactivated} Z X C V B N M , . {shiftactivated}',\r\n '{numbers} {alt} {emoticon} {space} {downkeyboard} {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} {downkeyboard} {enter}',\r\n ],\r\n alt2: [\r\n '[ ] { } # % ^ * + =',\r\n '_ \\\\ | ~ < > ¢ £ ¥ •',\r\n `{alt} . , ? ! ' {bksp}`,\r\n '{default} {emoticon} {space} {downkeyboard} {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): 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 = 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 (isFixed) {\r\n computedLayout = Object.fromEntries(\r\n Object.entries(computedLayout).map(([layoutName, rows]) => [\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 (/\\{(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 ) 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","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\n\r\nimport type { VirtualKeyboardProps } from './VirtualKeyboard.type';\r\n\r\nconst LONG_PRESS_DELAY_MS = 400;\r\n\r\nconst ACCENT_OPTIONS: Record<string, string[]> = {\r\n a: ['á', 'à', 'â', 'ã', 'ä', 'å', 'æ'],\r\n e: ['é', 'è', 'ê', 'ë'],\r\n i: ['í', 'ì', 'î', 'ï'],\r\n o: ['ó', 'ò', 'ô', 'õ', 'ö', 'ø', 'œ', 'ð'],\r\n u: ['ú', 'ù', 'û', 'ü'],\r\n y: ['ý', 'ÿ'],\r\n n: ['ñ'],\r\n 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 maxLength,\r\n Emoji = false,\r\n className,\r\n id,\r\n textFieldPlaceholder = 'Digite aqui...',\r\n helperText,\r\n error,\r\n errorMessage,\r\n targetRef,\r\n}) => {\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')\r\n );\r\n const visualType = NATIVE_LAYOUT_KEYS.has(type) ? type : 'default';\r\n\r\n const [isOpen, setIsOpen] = useState(variant !== 'native');\r\n const hideTimeoutRef = 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 accentMenuOpenRef = useRef(false);\r\n const valueRef = useRef(value);\r\n const [iconSlots, setIconSlots] = useState<HTMLElement[]>([]);\r\n\r\n useEffect(() => {\r\n valueRef.current = value;\r\n }, [value]);\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(value);\r\n }, [value, syncKeyboardInput]);\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 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 setIsOpen(true);\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 };\r\n }, [variant, targetRef, scheduleHideIfBlurred]);\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'));\r\n }, [type, Emoji, variant]);\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 (!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 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) => [...prev, ...newSlots]);\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 }, []);\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 accentMenuOpenRef.current = !!accentMenu;\r\n }, [accentMenu]);\r\n\r\n useEffect(() => {\r\n const updateAccentPosition = () => {\r\n if (!accentMenuOpenRef.current) return;\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 const sourceKey = buttonEl.getAttribute('data-skbtn') ?? '';\r\n heldAccentKeyRef.current = null;\r\n longPressTriggeredRef.current = false;\r\n\r\n if (!sourceKey || sourceKey.startsWith('{')) return;\r\n\r\n const accentOptions = ACCENT_OPTIONS[sourceKey.toLowerCase()];\r\n if (!accentOptions) return;\r\n\r\n heldAccentKeyRef.current = sourceKey;\r\n\r\n clearLongPressTimeout();\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\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]\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 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 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 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 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'); return; }\r\n if (button === '{abc}') { setLayoutName(baseLayout); 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 onKeyPress?.(button);\r\n },\r\n [\r\n type,\r\n layoutName,\r\n capsLockOn,\r\n onKeyPress,\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).split('').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 + 1 &&\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 onChange?.(input);\r\n },\r\n [maxLength, onChange, syncKeyboardInput]\r\n );\r\n\r\n const keyboardDisplay = useMemo(() => {\r\n const baseDisplay = LAYOUT_DISPLAY[visualType];\r\n if (!baseDisplay) return baseDisplay;\r\n\r\n if (variant !== 'fixed') {\r\n return baseDisplay;\r\n }\r\n\r\n return {\r\n ...baseDisplay,\r\n '{bksp}': (baseDisplay['{bksp}'] ?? '').replace(/\\s*Apagar$/, ''),\r\n };\r\n }, [visualType, variant]);\r\n\r\n const keyboardEl = activeLayout ? (\r\n <div\r\n ref={keyboardWrapperRef}\r\n className={styles.keyboardWrapper}\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 />\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 {accentMenu && (\r\n typeof document !== 'undefined' &&\r\n createPortal(\r\n <div\r\n ref={accentMenuRef}\r\n className={styles.accentMenu}\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 {accentMenu.options.map((option) => (\r\n <button\r\n key={`${accentMenu.sourceKey}-${option}`}\r\n type=\"button\"\r\n className={styles.accentOption}\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 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[`layout--${visualType}`],\r\n className\r\n )}\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[`layout--${visualType}`],\r\n className\r\n )}\r\n >\r\n {variant === 'fixed' && (\r\n <div className={styles.textFieldContainer}>\r\n <TextField\r\n placeholder={textFieldPlaceholder}\r\n value={value}\r\n onChange={onChange}\r\n helperText={helperText}\r\n error={error}\r\n errorMessage={errorMessage}\r\n readOnly\r\n maxLength={maxLength}\r\n attachedToVirtualKeyboard\r\n className={styles.textFieldWrapper}\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}\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}: LabelProps) => {\r\n const container = (\r\n <div className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}>\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, forwardRef, useEffect } from 'react';\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 {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength = 30,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\t align = '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 persistIcon = false,\r\n virtualKeyboard = false,\r\n virtualKeyboardType,\r\n virtualKeyboardMaxLength,\r\n attachedToVirtualKeyboard = 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 && 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 scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n const containerClass = clsx(styles.container, scaleClass, {\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError && !disabled,\r\n [styles.errorWithMessage]: Boolean(error) && Boolean(errorMessage) && !disabled,\r\n [styles.attachedToVirtualKeyboard]: attachedToVirtualKeyboard,\r\n [className!]: 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={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\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 ? 'none' : rest.inputMode}\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) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <Dismiss16Regular />\r\n </button>\r\n )}\r\n </div>\r\n\r\n {(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 && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboardType}\r\n value={inputValue}\r\n maxLength={maxLength ?? virtualKeyboardMaxLength}\r\n targetRef={inputRef}\r\n onChange={(val) => {\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\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 = 'Data',\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 datePickerScale = 1,\r\n calendarScale = 1,\r\n className,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\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 const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[datePickerScale];\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 ref={wrapperRef} className={clsx(styles.datePicker, scaleClass, className)} {...rest}>\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 persistIcon\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 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={calendarScale}\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 className={styles.DialogDescription}>\r\n\t\t\t\t\t{bodyContent}\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 { 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 activeCount = 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 {activeCount > 0 && (\r\n <Badge badgeValue={activeCount} 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 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 = React.forwardRef<HTMLInputElement, SearchProps>(\r\n (\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 virtualKeyboard = false,\r\n virtualKeyboardType,\r\n virtualKeyboardMaxLength,\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 scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\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 scaleClass,\r\n { [styles.disabled]: disabled },\r\n className\r\n )} \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 ? '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 && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboardType}\r\n maxLength={virtualKeyboardMaxLength}\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\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 item 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 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 ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, scaleClass, className)}\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, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport Radio from '../Radio/Radio';\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 name,\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 value,\r\n showSubText = false,\r\n hovered = false,\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\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = !internalChecked;\r\n setInternalChecked(newChecked);\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleRadioClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n if (!internalChecked) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\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 handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLLIElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'radio':\r\n handleRadioClick(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, variant, handleCheckboxClick, handleRadioClick, 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 const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'radio', '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 <Checkbox\r\n checked={internalChecked}\r\n disabled={disabled}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__text']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'radio':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-radio']}>\r\n <span className={styles['zds-list-item__radio']} aria-hidden=\"true\">\r\n <Radio\r\n name={name}\r\n onValueChange={() => handleRadioClick({} as React.MouseEvent<HTMLElement>)}\r\n items= {[{\r\n value: value || '',\r\n label: '',\r\n disabled: disabled}]}\r\n aria-labelledby={`${itemId}-text`}\r\n />\r\n </span>\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleRadioClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\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['zds-list-item__wrapper-icon']}>\r\n {icon}\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\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['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, disabled, handleCheckboxClick, handleRadioClick, handleTextOrIconClick, value, text, showSubText, subText, icon, name]);\r\n\r\n const listItemClass = clsx(\r\n styles['zds-list-item__container'],\r\n {\r\n [styles[`zds-list-item--${variant}`]]: variant,\r\n [styles['zds-list-item--disabled']]: disabled,\r\n [styles['zds-list-item--hovered']]: hovered,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const getAriaChecked = useCallback((): boolean | undefined => {\r\n if (variant === 'checkbox' || variant === 'radio') {\r\n return internalChecked;\r\n }\r\n return undefined;\r\n }, [variant, internalChecked]);\r\n\r\n return (\r\n <li\r\n className={listItemClass}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={getAriaChecked()}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={showSubText && subText ? `${itemId}-subtext` : undefined}\r\n data-testid=\"list-item\"\r\n {...rest}\r\n >\r\n {renderVariantContent()}\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 dropdownScale = 1,\r\n buttonScale,\r\n className,\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 scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[dropdownScale];\r\n\r\n const triggerWithScale = React.isValidElement(children) && buttonScale\r\n ? React.cloneElement(children as React.ReactElement<any>, {\r\n scale: (children as React.ReactElement<any>).props?.scale ?? buttonScale,\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, scaleClass, className)}\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.emptyState}>Nenhum item 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\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 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 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 } as React.CSSProperties}\r\n onInteractOutside={!closeOnOverlayClick ? (e) => e.preventDefault() : undefined}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n <div 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 <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 <div className={styles.modalBody}>\r\n {children}\r\n </div>\r\n {footer && (\r\n <div className={styles.modalFooter}>{footer}</div>\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 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 const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[scale];\r\n\r\n return (\r\n <div className={clsx(styles.quantity, scaleClass, { [styles.disabled]: disabled }, className)} {...rest}>\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 />\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 />\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 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 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 = React.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}: 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 (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 errorMessage,\r\n disabled = false,\r\n scale = 1,\r\n className,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n isLoadingMore = false,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\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\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,\r\n onApiSearch,\r\n isSearching,\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) {\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]);\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 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 = enableApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, enableApiSearch, utils]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n }), [maxWidth]);\r\n\r\n const scaleClass = {\r\n 1: 'scale-1-0',\r\n 1.5: 'scale-1-5',\r\n 2: 'scale-2-0',\r\n }[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 (enableApiSearch) {\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 (enableApiSearch && 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, scaleClass, className)}\r\n style={containerStyle}\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={tooltip}\r\n side={side}\r\n align={align}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\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 {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\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 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 />\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 React from 'react';\r\n\r\n/**\r\n * Componente de ícone SVG para estado vazio da tabela\r\n * Exibe um ícone de lupa com design personalizado do Zanthus Design System\r\n * @returns Elemento SVG para estado vazio\r\n */\r\nconst EmptyRows150Color: React.FC = () => (\r\n <svg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <circle cx='75' cy='75' r='75' fill='#E8E8EE' />\r\n <path\r\n d='M67.6111 63.3889C69.36 63.3889 70.7778 64.8067 70.7778 66.5556V81.3333C70.7778 83.0822 69.36 84.5 67.6111 84.5C65.8622 84.5 64.4444 83.0822 64.4444 81.3333V66.5556C64.4444 64.8067 65.8622 63.3889 67.6111 63.3889ZM67.6111 59.1667C69.943 59.1667 71.8333 57.2763 71.8333 54.9444C71.8333 52.6126 69.943 50.7222 67.6111 50.7222C65.2792 50.7222 63.3889 52.6126 63.3889 54.9444C63.3889 57.2763 65.2792 59.1667 67.6111 59.1667ZM67.6111 37C84.5172 37 98.2222 50.7051 98.2222 67.6111C98.2222 74.9235 95.6583 81.637 91.3803 86.9017L112.073 107.594C113.309 108.831 113.309 110.836 112.073 112.073C110.948 113.197 109.189 113.299 107.949 112.379L107.594 112.073L86.9017 91.3803C81.637 95.6583 74.9235 98.2222 67.6111 98.2222C50.7051 98.2222 37 84.5172 37 67.6111C37 50.7051 50.7051 37 67.6111 37ZM67.6111 43.3333C54.2029 43.3333 43.3333 54.2029 43.3333 67.6111C43.3333 81.0194 54.2029 91.8889 67.6111 91.8889C81.0194 91.8889 91.8889 81.0194 91.8889 67.6111C91.8889 54.2029 81.0194 43.3333 67.6111 43.3333Z'\r\n fill='#3B45F2'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default EmptyRows150Color;","import { createElement, isValidElement } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar uid = (function () {\n return Math.random()\n .toString(36)\n .substring(6);\n});\n\nvar SVG = function (_a) {\n var _b = _a.animate, animate = _b === void 0 ? true : _b, _c = _a.backgroundColor, backgroundColor = _c === void 0 ? '#f5f6f7' : _c, _d = _a.backgroundOpacity, backgroundOpacity = _d === void 0 ? 1 : _d, _e = _a.baseUrl, baseUrl = _e === void 0 ? '' : _e, children = _a.children, _f = _a.foregroundColor, foregroundColor = _f === void 0 ? '#eee' : _f, _g = _a.foregroundOpacity, foregroundOpacity = _g === void 0 ? 1 : _g, _h = _a.gradientRatio, gradientRatio = _h === void 0 ? 2 : _h, uniqueKey = _a.uniqueKey, _j = _a.rtl, rtl = _j === void 0 ? false : _j, _k = _a.speed, speed = _k === void 0 ? 1.2 : _k, _l = _a.style, style = _l === void 0 ? {} : _l, _m = _a.title, title = _m === void 0 ? 'Loading...' : _m, _o = _a.beforeMask, beforeMask = _o === void 0 ? null : _o, props = __rest(_a, [\"animate\", \"backgroundColor\", \"backgroundOpacity\", \"baseUrl\", \"children\", \"foregroundColor\", \"foregroundOpacity\", \"gradientRatio\", \"uniqueKey\", \"rtl\", \"speed\", \"style\", \"title\", \"beforeMask\"]);\n var fixedId = uniqueKey || uid();\n var idClip = \"\".concat(fixedId, \"-diff\");\n var idGradient = \"\".concat(fixedId, \"-animated-diff\");\n var idAria = \"\".concat(fixedId, \"-aria\");\n var rtlStyle = rtl ? { transform: 'scaleX(-1)' } : null;\n var dur = \"\".concat(speed, \"s\");\n var from = \"\".concat(gradientRatio * -1, \" 0\");\n var to = \"\".concat(gradientRatio, \" 0\");\n return (createElement(\"svg\", __assign({ \"aria-labelledby\": idAria, role: \"img\", style: __assign(__assign({}, style), rtlStyle) }, props),\n title ? createElement(\"title\", { id: idAria }, title) : null,\n beforeMask && isValidElement(beforeMask) ? beforeMask : null,\n createElement(\"rect\", { role: \"presentation\", x: \"0\", y: \"0\", width: \"100%\", height: \"100%\", clipPath: \"url(\".concat(baseUrl, \"#\").concat(idClip, \")\"), style: { fill: \"url(\".concat(baseUrl, \"#\").concat(idGradient, \")\") } }),\n createElement(\"defs\", null,\n createElement(\"clipPath\", { id: idClip }, children),\n createElement(\"linearGradient\", { id: idGradient, gradientTransform: \"translate(\".concat(from, \")\") },\n createElement(\"stop\", { offset: \"0%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n createElement(\"stop\", { offset: \"50%\", stopColor: foregroundColor, stopOpacity: foregroundOpacity }),\n createElement(\"stop\", { offset: \"100%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n animate && (createElement(\"animateTransform\", { attributeName: \"gradientTransform\", type: \"translate\", values: \"\".concat(from, \"; 0 0; \").concat(to), dur: dur, repeatCount: \"indefinite\" }))))));\n};\n\nvar ContentLoader = function (props) {\n return props.children ? createElement(SVG, __assign({}, props)) : createElement(ReactContentLoaderFacebook, __assign({}, props));\n};\n\nvar ReactContentLoaderFacebook = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 476 124\" }, props),\n createElement(\"rect\", { x: \"48\", y: \"8\", width: \"88\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"48\", y: \"26\", width: \"52\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"56\", width: \"410\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"72\", width: \"380\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"88\", width: \"178\", height: \"6\", rx: \"3\" }),\n createElement(\"circle\", { cx: \"20\", cy: \"20\", r: \"20\" }))); };\n\nvar ReactContentLoaderInstagram = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 460\" }, props),\n createElement(\"circle\", { cx: \"31\", cy: \"31\", r: \"15\" }),\n createElement(\"rect\", { x: \"58\", y: \"18\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"58\", y: \"34\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"2\", ry: \"2\", width: \"400\", height: \"400\" }))); };\n\nvar ReactContentLoaderCode = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 340 84\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", width: \"67\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"76\", y: \"0\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"127\", y: \"48\", width: \"53\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"187\", y: \"48\", width: \"72\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"48\", width: \"100\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"71\", width: \"37\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"23\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"166\", y: \"23\", width: \"173\", height: \"11\", rx: \"3\" }))); };\n\nvar ReactContentLoaderListStyle = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 110\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"20\", rx: \"3\", ry: \"3\", width: \"220\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"40\", rx: \"3\", ry: \"3\", width: \"170\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"80\", rx: \"3\", ry: \"3\", width: \"200\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"100\", rx: \"3\", ry: \"3\", width: \"80\", height: \"10\" }))); };\n\nvar ReactContentLoaderBulletList = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 245 125\" }, props),\n createElement(\"circle\", { cx: \"10\", cy: \"20\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"15\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"50\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"45\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"80\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"75\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"110\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"105\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }))); };\n\nexport default ContentLoader;\nexport { ReactContentLoaderBulletList as BulletList, ReactContentLoaderCode as Code, ReactContentLoaderFacebook as Facebook, ReactContentLoaderInstagram as Instagram, ReactContentLoaderListStyle as List };\n//# sourceMappingURL=react-content-loader.es.js.map\n","import React from 'react';\r\nimport ContentLoader, { IContentLoaderProps } from 'react-content-loader';\r\n\r\n/**\r\n * Componente de loading para lista de tabela\r\n * Simula o carregamento de dados em formato de tabela usando ContentLoader\r\n * @param props - Propriedades adicionais para o ContentLoader\r\n * @returns Elemento de loading animado\r\n */\r\nconst LoaderList: React.FC<IContentLoaderProps> = (props) => (\r\n <ContentLoader\r\n speed={1}\r\n width=\"100%\"\r\n viewBox=\"0 0 1272 652\"\r\n backgroundColor=\"#F5F5F7\"\r\n foregroundColor=\"#FFFFFF\"\r\n {...props}\r\n >\r\n {/* Cabeçalho da tabela */}\r\n <rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"44\" />\r\n\r\n {/* Primeira linha */}\r\n <rect x=\"0\" y=\"76\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"116\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Segunda linha */}\r\n <rect x=\"0\" y=\"164\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"204\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Terceira linha */}\r\n <rect x=\"0\" y=\"252\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"292\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quarta linha */}\r\n <rect x=\"0\" y=\"340\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"380\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quinta linha */}\r\n <rect x=\"0\" y=\"428\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"468\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Sexta linha */}\r\n <rect x=\"0\" y=\"516\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"556\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Rodapé da tabela */}\r\n <rect x=\"0\" y=\"604\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"48\" />\r\n </ContentLoader>\r\n)\r\nexport default LoaderList;","import clsx from 'clsx';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport React, { useState, useMemo, useCallback, ReactNode, CSSProperties } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Checkbox from '../Checkbox';\r\nimport EmptyRows150Color from './EmptyRows150Color';\r\nimport LoaderList from './LoaderList';\r\n\r\nimport type { TableColumn, TableRowData, TableProps } from './Table.types';\r\n\r\nconst useSelection = <T extends TableRowData = TableRowData>(\r\n dataSource: T[],\r\n rowSelection?: TableProps<T>['rowSelection']\r\n) => {\r\n const [internalKeys, setInternalKeys] = useState<(string | number)[]>([]);\r\n const selectedKeys = rowSelection?.selectedRowKeys ?? internalKeys;\r\n const selectedSet = useMemo(() => new Set(selectedKeys), [selectedKeys]);\r\n\r\n const handleChange = useCallback((newKeys: (string | number)[]) => {\r\n const newRows = dataSource.filter((_, index) => newKeys.includes(index)) as T[];\r\n\r\n if (rowSelection?.selectedRowKeys !== undefined) {\r\n rowSelection.onChange?.(newKeys, newRows);\r\n } else {\r\n setInternalKeys(newKeys);\r\n rowSelection?.onChange?.(newKeys, newRows);\r\n }\r\n }, [dataSource, rowSelection]);\r\n\r\n const toggleRow = useCallback((key: string | number) => {\r\n const newKeys = selectedSet.has(key)\r\n ? selectedKeys.filter(k => k !== key)\r\n : [...selectedKeys, key];\r\n handleChange(newKeys);\r\n }, [selectedKeys, selectedSet, handleChange]);\r\n\r\n const selectableKeys = useMemo(() => (\r\n dataSource\r\n .map((row, index) => ({ index, disabled: rowSelection?.getCheckboxProps?.(row, index)?.disabled }))\r\n .filter(({ disabled }) => !disabled)\r\n .map(({ index }) => index)\r\n ), [dataSource, rowSelection]);\r\n\r\n const toggleAll = useCallback(() => {\r\n const isAllSelectableSelected = selectableKeys.every(k => selectedSet.has(k));\r\n const newKeys = isAllSelectableSelected\r\n ? selectedKeys.filter(k => !selectableKeys.includes(k as number))\r\n : [...new Set([...selectedKeys, ...selectableKeys])];\r\n handleChange(newKeys);\r\n }, [selectableKeys, selectedKeys, selectedSet, handleChange]);\r\n\r\n const isAllSelected = selectableKeys.length > 0 && selectableKeys.every(k => selectedSet.has(k));\r\n const isIndeterminate = selectableKeys.some(k => selectedSet.has(k)) && !isAllSelected;\r\n\r\n return {\r\n selectedSet,\r\n selectedKeys,\r\n toggleRow,\r\n toggleAll,\r\n isAllSelected,\r\n isIndeterminate,\r\n };\r\n};\r\n\r\nconst renderCell = <T extends TableRowData = TableRowData>(column: TableColumn<T>, row: T, index: number): ReactNode => {\r\n if (column.render) {\r\n return column.render(row, index);\r\n }\r\n\r\n const value = row[column.key];\r\n\r\n switch (column.type) {\r\n case 'datetime':\r\n if (!value) return '';\r\n try {\r\n const date = new Date(value);\r\n return format(date, column.format || 'dd/MM/yyyy', { locale: ptBR });\r\n } catch {\r\n return value;\r\n }\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nconst Table = <T extends TableRowData = TableRowData>({\r\n columns,\r\n dataSource,\r\n className,\r\n loading = false,\r\n rowSelection,\r\n locale,\r\n onRow,\r\n ...rest\r\n}: TableProps<T>) => {\r\n if (!Array.isArray(columns) || !Array.isArray(dataSource)) {\r\n console.warn('Table: columns e dataSource devem ser arrays');\r\n return null;\r\n }\r\n\r\n const { selectedSet, toggleRow, toggleAll, isAllSelected, isIndeterminate } = useSelection(\r\n dataSource,\r\n rowSelection\r\n );\r\n\r\n const finalColumns = useMemo(() => {\r\n if (!rowSelection) return columns;\r\n\r\n const checkboxColumn: TableColumn<T> = {\r\n key: '__checkbox__',\r\n label: (\r\n <Checkbox\r\n checked={isAllSelected || isIndeterminate}\r\n indeterminate={isIndeterminate}\r\n onCheckedChange={toggleAll}\r\n disabled={rowSelection.disableSelectAll}\r\n />\r\n ),\r\n render: (_, index) => {\r\n const props = rowSelection.getCheckboxProps?.(dataSource[index], index) || {};\r\n return (\r\n <Checkbox\r\n checked={selectedSet.has(index)}\r\n onCheckedChange={() => toggleRow(index)}\r\n disabled={props.disabled}\r\n />\r\n );\r\n },\r\n align: 'center',\r\n };\r\n\r\n return [checkboxColumn, ...columns];\r\n }, [columns, rowSelection, isAllSelected, isIndeterminate, toggleAll, selectedSet, toggleRow, dataSource]);\r\n const tableId = useMemo(() =>\r\n `table-${Math.random().toString(36).substr(2, 9)}`, []\r\n );\r\n if (loading) {\r\n return (\r\n <div className={clsx(styles.tableContainer, className)}>\r\n <div className={styles.tableLoader}>\r\n <LoaderList />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n const emptyText = locale?.emptyText || (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n <EmptyRows150Color />\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>Nenhum dado encontrado</h3>\r\n <p className={styles.tableEmptyCaption}>Nenhum registro encontrado</p>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={clsx(styles.tableContainer, className)} {...rest}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table \r\n className={styles.table}\r\n role=\"table\"\r\n aria-label=\"Tabela de dados\"\r\n aria-describedby={loading ? `${tableId}-loading` : undefined}\r\n aria-rowcount={dataSource.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n <tr>\r\n {finalColumns.map((column) => (\r\n <th\r\n key={column.key}\r\n className={clsx(styles.tableTh, column.align && `text-${column.align}`)}\r\n style={column.style}\r\n >\r\n <div className={styles.tableThContent}>{column.label}</div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {dataSource.length > 0 ? (\r\n dataSource.map((row, index) => {\r\n const rowProps = onRow?.(row, index) || {};\r\n return (\r\n <tr\r\n key={index}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {finalColumns.map((column) => (\r\n <td\r\n key={column.key}\r\n className={clsx(styles.tableTd, column.align && `text-${column.align}`)}\r\n >\r\n {renderCell(column, row, index)}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td colSpan={finalColumns.length} className={styles.tableEmptyCell}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;","import React, { useState, KeyboardEvent } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { Side, Align } from '../../types/common.types';\r\nimport type { FilterItem as FilterListItem } from '../Filter';\r\n\r\ninterface BaseFilterItem {\r\n id?: string;\r\n buttonText: string | React.ReactNode;\r\n icon?: React.ReactElement;\r\n side?: Side;\r\n align?: Exclude<Align, 'center'>;\r\n disabled?: boolean;\r\n onToggle?: (isOpen: boolean) => void;\r\n tooltip?: string;\r\n}\r\n\r\ninterface CheckboxFilterItem extends BaseFilterItem {\r\n type: 'multiple' | 'single';\r\n items: FilterListItem[];\r\n selectedIds?: string[];\r\n onSelectionChange?: (selectedIds: string[]) => void;\r\n placeholder?: string;\r\n enableSearch?: boolean;\r\n}\r\n\r\ninterface CalendarFilterItem extends BaseFilterItem {\r\n type: 'calendar';\r\n selectedDate?: Date | null;\r\n onDateSelect?: (date: Date) => void;\r\n onClear?: () => void;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n locale?: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport type FilterItem = CheckboxFilterItem | CalendarFilterItem;\r\n\r\nconst isCalendarFilter = (filter: FilterItem): filter is CalendarFilterItem => {\r\n return filter.type === 'calendar';\r\n};\r\n\r\nconst isCheckboxFilter = (filter: FilterItem): filter is CheckboxFilterItem => {\r\n return filter.type === 'multiple' || filter.type === 'single';\r\n};\r\n\r\nexport interface TableHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n searchValue?: string;\r\n onSearchChange?: (value: string) => void;\r\n searchPlaceholder?: string;\r\n showSearch?: boolean;\r\n showFilters?: boolean;\r\n filters?: React.ReactNode;\r\n filterItems?: FilterItem[];\r\n className?: string;\r\n onSearch?: (value: string) => void;\r\n showClearSearch?: boolean;\r\n}\r\n\r\nconst TableHeader: React.FC<TableHeaderProps> = ({\r\n searchValue = '',\r\n onSearchChange,\r\n onSearch,\r\n searchPlaceholder = 'Pesquisar...',\r\n showSearch = true,\r\n showFilters = false,\r\n filters,\r\n filterItems = [],\r\n className = '',\r\n ...rest\r\n}) => {\r\n const [internalSearchValue, setInternalSearchValue] = useState(searchValue);\r\n\r\n React.useEffect(() => {\r\n setInternalSearchValue(searchValue);\r\n }, [searchValue]);\r\n\r\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setInternalSearchValue(value);\r\n \r\n if (value === '' && onSearchChange) {\r\n onSearchChange('');\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n if (onSearch) {\r\n onSearch(internalSearchValue);\r\n } else if (onSearchChange) {\r\n onSearchChange(internalSearchValue);\r\n }\r\n }\r\n };\r\n\r\n const hasFilters = filters || (filterItems && filterItems.length > 0);\r\n\r\n return (\r\n <div className={`${styles.tableHeader} ${className}`.trim()} {...rest}>\r\n {showSearch && (onSearchChange || onSearch) && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={internalSearchValue}\r\n onChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n placeholder={searchPlaceholder}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n \r\n {showFilters && (\r\n <div className={styles.tableHeaderFilters}>\r\n {hasFilters ? (\r\n <div className={styles.tableHeaderFiltersContent}>\r\n {filters && (\r\n <div className={styles.tableHeaderCustomFilters}>\r\n {filters}\r\n </div>\r\n )}\r\n\r\n <div className={styles.tableHeaderFiltersWrapper}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n \r\n <div className={styles.tableHeaderFilterItems}>\r\n {filterItems && 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 (isCalendarFilter(filterItem)) {\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 placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n\r\n if (isCheckboxFilter(filterItem)) {\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\r\n console.warn('TableHeader: Tipo de filtro não reconhecido:', filterItem);\r\n return null;\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className={styles.tableHeaderFiltersPlaceholder}>\r\n <span>Nenhum filtro disponível</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport type { CalendarFilterItem, CheckboxFilterItem };\r\nexport { isCalendarFilter, isCheckboxFilter };\r\n\r\nexport default TableHeader;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular } from '@fluentui/react-icons';\r\nimport React from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\n\r\nexport interface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\r\n currentPage: number;\r\n totalItems: number;\r\n itemsPerPage: number;\r\n onPageChange: (page: number) => void;\r\n onItemsPerPageChange: (itemsPerPage: number) => void;\r\n pageSizeOptions?: number[];\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst TablePagination: React.FC<TablePaginationProps> = ({\r\n currentPage,\r\n totalItems,\r\n itemsPerPage,\r\n onPageChange,\r\n onItemsPerPageChange,\r\n pageSizeOptions = [10, 25, 50, 100],\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const startItem = totalItems > 0 ? (currentPage - 1) * itemsPerPage + 1 : 0;\r\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\r\n \r\n const canGoPrev = currentPage > 1 && !disabled;\r\n const canGoNext = currentPage < totalPages && !disabled;\r\n \r\n const handlePrevious = () => {\r\n if (canGoPrev) {\r\n onPageChange(currentPage - 1);\r\n }\r\n };\r\n \r\n const handleNext = () => {\r\n if (canGoNext) {\r\n onPageChange(currentPage + 1);\r\n }\r\n };\r\n \r\n const handleItemsPerPageChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\r\n const newItemsPerPage = Number(event.target.value);\r\n onItemsPerPageChange(newItemsPerPage);\r\n };\r\n\r\n return (\r\n <div className={`${styles.tablePagination} ${className}`.trim()} {...rest}>\r\n\r\n <div className={styles.tablePaginationSelect}>\r\n <label htmlFor=\"items-per-page\" className={styles.tablePaginationLabel}>\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"items-per-page\"\r\n value={itemsPerPage}\r\n onChange={handleItemsPerPageChange}\r\n disabled={disabled}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {pageSizeOptions.map((option) => (\r\n <option key={option} value={option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n \r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalItems > 0 \r\n ? `${startItem}–${endItem} de ${totalItems}`\r\n : '0 itens'\r\n }\r\n </span>\r\n </div>\r\n \r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handlePrevious}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n \r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handleNext}\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};\r\n\r\nexport default TablePagination;","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 { 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\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 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, ...columns] : columns),\r\n [isRowSelectionEnabled, selectionColumn, columns]\r\n );\r\n\r\n const showSearch = !!(header?.onSearchChange);\r\n\r\n const table = useReactTable({\r\n data,\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 : (data.length > 0 ? data.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 {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={pendingSearch}\r\n virtualKeyboard={header.virtualKeyboard}\r\n virtualKeyboardType={header.virtualKeyboardType}\r\n virtualKeyboardMaxLength={header.virtualKeyboardMaxLength}\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.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 activeCount={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={clsx(styles.tableSortIcon, 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 {cell.column.columnDef.meta?.maxHeight ? (\r\n <div \r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta.maxHeight}}>\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n ) : (\r\n flexRender(cell.column.columnDef.cell, cell.getContext())\r\n )}\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, forwardRef, useEffect } from 'react';\r\n\r\nimport useInputKeyboardValue from '../../hooks/useInputKeyboardValue';\r\nimport VirtualKeyboard from '../VirtualKeyboard';\r\nimport styles from './TextArea.module.scss';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\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 tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n align = '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 showCharCount = false,\r\n height,\r\n virtualKeyboard = false,\r\n virtualKeyboardType,\r\n virtualKeyboardMaxLength,\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 || '\\u00A0';\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={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\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 ? 'none' : rest.inputMode}\r\n />\r\n </div>\r\n\r\n <div className={styles.footer}>\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 {showCharCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {virtualKeyboard && (\r\n <div className=\"virtualKeyboardWrapper\">\r\n <VirtualKeyboard\r\n variant=\"native\"\r\n type={virtualKeyboardType}\r\n maxLength={virtualKeyboardMaxLength}\r\n value={textareaValue}\r\n targetRef={textareaRef}\r\n onChange={(val) => {\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\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\r\n React.useEffect(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n 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\t...rest\r\n}) => {\r\n\tconst scaleClass = {\r\n\t\t1: 'scale-1-0',\r\n\t\t1.5: 'scale-1-5',\r\n\t\t2: 'scale-2-0',\r\n\t}[scale];\r\n\r\n\treturn (\r\n\t\t<div className={clsx(styles.container, scaleClass, className)}>\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 React, { useRef, useState, useCallback, useEffect } from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { InputType, VerificationCodeProps } from './VerificationCode.types';\r\n\r\n/**\r\n * Mapa de regex para validação dos tipos de entrada\r\n */\r\nconst REGEX_MAP: Record<InputType, RegExp> = {\r\n numeric: /^[0-9]$/,\r\n alpha: /^[a-zA-Z]$/,\r\n alphanumeric: /^[a-zA-Z0-9]$/,\r\n};\r\n\r\n/**\r\n * Componente VerificationCode para entrada de códigos de verificação\r\n * \r\n * @description Permite entrada de códigos com múltiplos dígitos,\r\n * suportando diferentes tipos de caracteres e navegação por teclado.\r\n * \r\n * @example\r\n * ```tsx\r\n * <VerificationCode\r\n * length={6}\r\n * inputType=\"numeric\"\r\n * onComplete={(code) => console.log('Código:', code)}\r\n * hasError={false}\r\n * />\r\n * ```\r\n */\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n inputType = 'numeric',\r\n onComplete,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n const [values, setValues] = useState<string[]>(Array(validLength).fill(''));\r\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\r\n const currentRegex = REGEX_MAP[inputType] || REGEX_MAP.numeric;\r\n\r\n\r\n useEffect(() => {\r\n setValues(Array(validLength).fill(''));\r\n }, [inputType, validLength]);\r\n\r\n \r\n const handleChange = useCallback((index: number, value: string): void => {\r\n\r\n if (!currentRegex.test(value)) return;\r\n\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n if (value && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handlePaste = useCallback((e: React.ClipboardEvent<HTMLInputElement>): void => {\r\n e.preventDefault();\r\n\r\n const pasteData = e.clipboardData.getData('Text');\r\n const valuesToPaste = pasteData.split('').slice(0, validLength);\r\n\r\n const newValues = [...values];\r\n\r\n valuesToPaste.forEach((value, index) => {\r\n if (currentRegex.test(value)) {\r\n newValues[index] = value;\r\n }\r\n });\r\n\r\n setValues(newValues);\r\n\r\n const firstEmptyIndex = newValues.findIndex(v => v === '');\r\n const focusIndex = firstEmptyIndex === -1 ? validLength - 1 : firstEmptyIndex;\r\n inputsRef.current[focusIndex]?.focus();\r\n\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handleKeyDown = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Backspace') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n\r\n if (values[index]) {\r\n\r\n newValues[index] = '';\r\n setValues(newValues);\r\n } else if (index > 0) {\r\n\r\n inputsRef.current[index - 1]?.focus();\r\n newValues[index - 1] = '';\r\n setValues(newValues);\r\n }\r\n }\r\n\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n newValues[index] = '';\r\n setValues(newValues);\r\n\r\n if (index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }\r\n if (e.key === 'ArrowLeft' && index > 0) {\r\n e.preventDefault();\r\n inputsRef.current[index - 1]?.focus();\r\n }\r\n\r\n if (e.key === 'ArrowRight' && index < validLength - 1) {\r\n e.preventDefault();\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }, [values, validLength]);\r\n\r\n const handleKeyUp = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n if (values[index] && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n } else if (values[index] && index === validLength - 1) {\r\n inputsRef.current[index]?.blur();\r\n }\r\n }\r\n }, [values, validLength]);\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>): void => {\r\n e.target.select();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className={clsx(styles['zds-verification-code__container'], className)} {...rest}>\r\n {values.map((val, i) => (\r\n <input\r\n id={`zds-verification-code__element-${i}`}\r\n key={i}\r\n ref={(el) => {\r\n inputsRef.current[i] = el;\r\n }}\r\n type=\"text\"\r\n inputMode={inputType === 'numeric' ? 'numeric' : 'text'}\r\n maxLength={1}\r\n value={val}\r\n onChange={(e) => handleChange(i, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(i, e)}\r\n onKeyUp={(e) => handleKeyUp(i, e)}\r\n onPaste={i === 0 ? handlePaste : undefined}\r\n onFocus={handleFocus}\r\n disabled={disabled}\r\n className={clsx(styles['zds-verification-code__input'], {\r\n [styles['zds-verification-code__has-error']]: hasError,\r\n [styles['zds-verification-code__filled']]: val,\r\n })}\r\n aria-invalid={hasError}\r\n aria-label={`Dígito ${i + 1} de ${validLength}`}\r\n aria-describedby={hasError && errorMessage ? 'verification-code-error' : undefined}\r\n autoComplete=\"one-time-code\"\r\n />\r\n ))}\r\n </div>\r\n\r\n {hasError && errorMessage && (\r\n <div\r\n id=\"verification-code-error\"\r\n className={styles['zds-verification-code__error']}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n >\r\n {errorMessage}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default VerificationCode;","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","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","useEffect","useLayoutEffect","createPortal","createElement","Label","Info12Regular","TextField","forwardRef","Dismiss16Regular","Calendar16Regular","AlertDialog","FilterRegular","Search16Regular","ChevronDownRegular","RadioGroup","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","Select","useReducer","SelectRadix","isValidElement","SearchInfo20Regular","useReactTable","getCoreRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","SwitchRadix"],"mappings":"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","x_google_ignoreList":[4,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,68]}