nexaas-ui-components 1.0.96 → 1.0.98

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,"sources":["../src/assets/spinner.tsx","../src/components/Button.tsx","../src/components/ButtonLink.tsx","../src/components/Input.tsx","../src/components/Logo.tsx","../src/components/Rocket.tsx","../src/stores/field-errors.ts","../src/components/DatePickerInput.tsx","../src/components/Badge.tsx","../src/components/Calendar.tsx","../src/components/Checkbox.tsx","../src/components/Popover/Popover.tsx","../src/components/FilterButton/FilterCalendar.tsx","../src/components/InputSmall/InputSmall.tsx","../src/components/FilterButton/FilterOptions.tsx","../src/components/FilterSelect/FilterSelect.tsx","../src/utils/intl-currency-input.ts","../src/components/InputMoney.tsx","../src/utils/debounce.ts","../src/components/InputNumber.tsx","../src/components/InputPercentage.tsx","../src/components/MaskedInput.tsx","../src/components/ModalDialog.tsx","../src/components/Select/Select.styles.ts","../src/components/Select/Select.tsx","../src/components/SelectFieldBip/SelectFieldBip.styles.tsx","../src/components/SelectFieldBip/SelectFieldBip.tsx","../src/components/RadioButton/Radio.tsx","../src/components/Toggle.tsx","../src/components/Table/PaginationSelects.tsx","../src/components/Table/TableComponents.tsx","../src/components/Table/DataTablePagination.tsx","../src/components/Table/index.tsx","../src/components/Accordion.tsx","../src/components/CopyPopover.tsx","../src/components/Dropdown/Menu.tsx","../src/components/Dropdown/Item.tsx","../src/components/EditableButton.tsx","../src/components/EditableText.tsx","../src/components/EditableTextSelect.tsx","../src/components/FileUpload/ImagePreview.tsx","../src/components/FileUpload/FileStatus.tsx","../src/components/FileUpload/FileUploadReducer.tsx","../src/assets/IconFile.tsx","../src/assets/IconCheck.tsx","../src/assets/FileUpload.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/InfoIcon.tsx","../src/components/MultiSelect/MultiSelect.styles.tsx","../src/components/MultiSelect/MultiSelect.tsx","../src/components/InputTag/InputTag.styles.tsx","../src/components/InputTag/InputTag.tsx","../src/components/MultiSelectBottom/MultiSelectBottom.styles.tsx","../src/components/MultiSelectBottom/MultiSelectBottom.tsx","../src/components/PageBox.tsx","../src/components/PageHeader.tsx","../src/components/ProgressBar.tsx","../src/components/SimpleTab.tsx","../src/components/SkeletonLoading/SkeletonDetails.tsx","../src/components/SkeletonLoading/SkeletonList.tsx","../src/components/SkeletonLoading/SkeletonRegister.tsx","../src/components/StatusBar.tsx","../src/components/Tabs.tsx","../src/components/TextArea.tsx","../src/components/Timeline.tsx","../src/components/ControlledInput/ControlledInput.tsx"],"names":["jsx","useEffect","jsxs","clsx","Fragment","sizes","variants","forwardRef","_a","React","create","set","useState","useRef","Controller","DateInput3","format","parse","sub","startOfWeek","endOfWeek","startOfMonth","endOfMonth","DateRangePicker3","subYears","DatePicker3","Tooltip","Popover","Float","PopoverButton","PopoverPanel","ListboxOption","_b","Listbox","ListboxOptions","IntlCurrencyInputRaw","value","lodashNamespace","useMemo","InputMask","customStyles","cloneElement","Modal","debounce","components","inputValue","onChange","AsyncSelect","useImperativeHandle","ValueContainer","Switch","_c","_d","_e","_f","Combobox","React6","rankItem","pageIndex","pageSize","useReactTable","getCoreRowModel","getFilteredRowModel","getFacetedRowModel","getFacetedUniqueValues","getExpandedRowModel","flexRender","Transition","HeadlessMenu","MenuButton","MenuItems","MenuItem","Fuse","Menu","Dialog","useReducer","usePapaParse","files","name","Select","CreatableSelect","Skeleton","TabGroup","TabList","Tab","TabPanels","TabPanel"],"mappings":"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","file":"index.cjs","sourcesContent":["import React from \"react\";\n\nexport const SpinnerIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n width={`${props.width || 33}`}\n height={`${props.height || 33}`}\n viewBox=\"0 0 33 33\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.4671 32.1821C18.269 33.1951 14.8378 33.2061 11.6333 32.2137C8.42885 31.2213 5.6044 29.2729 3.53866 26.6297C1.47293 23.9866 0.264665 20.7751 0.0758752 17.4258C-0.112914 14.0765 0.726798 10.7495 2.48242 7.89096C4.23804 5.03242 6.82565 2.77896 9.89828 1.43272C12.9709 0.0864894 16.3817 -0.288163 19.6733 0.359002C22.9649 1.00617 25.98 2.64421 28.3142 5.0535C30.6485 7.46279 32.1903 10.5282 32.7331 13.8386L28.9102 14.4653C28.4953 11.9345 27.3165 9.59102 25.532 7.74911C23.7474 5.9072 21.4424 4.65491 18.926 4.16015C16.4095 3.66539 13.802 3.95181 11.4529 4.98101C9.10388 6.01021 7.12564 7.73299 5.78346 9.91835C4.44128 12.1037 3.79932 14.6472 3.94365 17.2077C4.08798 19.7683 5.01171 22.2235 6.59097 24.2442C8.17023 26.2649 10.3295 27.7544 12.7794 28.5132C15.2292 29.2719 17.8524 29.2634 20.2973 28.489L21.4671 32.1821Z\"\n fill={props.fill || \"#009EDB\"}\n />\n </svg>\n);\n","import React, { JSX, useEffect } from \"react\";\nimport { SpinnerIcon } from \"../assets/spinner\";\nimport clsx from \"clsx\";\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n icon?: JSX.Element;\n variant?: keyof typeof variants;\n size?: keyof typeof sizes;\n loading?: boolean;\n loadingIcon?: JSX.Element;\n dropdown?: boolean;\n hotkey?: string;\n hotkeyPosition?: \"top\" | \"bottom\" | \"left\" | \"right\" | \"inside\";\n};\n\n// Tamanho único \"x-small\" do Figma (node 3781:738) — xxs e xxsm apontam para\n// os mesmos valores porque nenhum dos dois batia com o Figma nem entre si\n// (xxs não tinha padding definido; xxsm tinha um quadrado fixo 24x24).\n// min-w-6 + padding compacto no iconOnly preserva o visual quadrado 24x24\n// já usado hoje (botões só-ícone); o padding assimétrico só entra quando\n// há label, caso ainda não utilizado no projeto.\nconst xSmall = {\n text: \"h-6 min-w-6 !rounded-[6px] text-[12px] leading-[1.3]\",\n icon: \"text-[12px] leading-3\",\n gap: \"gap-[4px]\",\n spinner: \"w-3 h-3\",\n};\n\nconst sizes = {\n xxs: xSmall,\n xxsm: xSmall,\n xs: {\n text: \"h-8 min-w-8 max-w-20\",\n icon: \"text-[16px] leading-4\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n sm: {\n text: \"h-[32px] text-[14px]\",\n icon: \"text-[14px] leading-[14px]\",\n gap: \"gap-[4px]\",\n spinner: \"w-3 h-3\",\n },\n md: {\n text: \"h-[38px]\",\n icon: \"text-[20px] leading-5\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n lg: {\n text: \"h-[46px]\",\n icon: \"text-[20px] leading-5\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n};\n\n// Sombra neutra dos botões com borda (secondary/outline/dangerOutline/\n// successOutline): o Figma usa uma sombra mais forte só no tamanho large\n// (\"Shadow/sm\") e a mais leve \"Shadow/xs - Neutral\" em medium/small/x-small\n// (e nos botões só-ícone). Como shadow é fixo por variante e não por\n// tamanho, isso é resolvido em runtime dentro do componente.\nconst SHADOW_XS_NEUTRAL = \"shadow-[0px_1px_1px_0px_rgba(56,61,77,0.1)]\";\nconst SHADOW_SM_NEUTRAL = \"shadow-[0px_1px_1.5px_0px_rgba(56,61,77,0.12)]\";\nconst NEUTRAL_BORDERED_VARIANTS = new Set([\n \"secondary\",\n \"outline\",\n \"dangerOutline\",\n \"successOutline\",\n]);\n\nconst variants = {\n // Default: sólido rose-500 + véu de brilho via ::before com mix-blend-mode\n // (não background-blend-mode: testado no Chromium real — background-blend-mode:\n // plus-lighter é ignorado silenciosamente e cai pra \"normal\", sem véu nenhum;\n // mix-blend-mode: plus-lighter funciona. O \"Copy as CSS\" do Figma Dev Mode usa\n // background-blend-mode, mas não reflete suporte real de browser — visualmente\n // confirmado lado a lado). Sombra com blur 4px (era 2px, Figma pede radius 4).\n // Hover troca pro gradiente rose-start/rose-end (opaco, cobre o véu). Active\n // zera o véu (before:opacity-0) e vira rose-600 sólido, sem sombra.\n primary: {\n text: \"relative isolate bg-rose-500 text-white shadow-[0_1px_4px_0_rgba(217,48,99,0.3)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(218,48,99,0.2)] before:to-[rgba(218,48,99,0)] hover:bg-gradient-to-b hover:from-rose-start hover:to-rose-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-rose-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n secondary: {\n text: \"bg-surface border-[0.5px] border-neutral-300 text-neutral-600 hover:bg-neutral-100 hover:text-neutral-600 active:text-neutral-600 active:bg-neutral-200 active:shadow-none disabled:opacity-50\",\n },\n icon: {\n text: \"shadow-[0_1px_1px_0_rgba(56,61,77,0.1)] gap-1 bg-surface border-[0.5px] border-neutral-300 text-neutral-500 hover:bg-neutral-100 hover:text-neutral-600 active:bg-neutral-200 active:text-neutral-600 disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50 active:shadow-none\",\n },\n // Figma: borda rose-400 (mais clara que o texto rose-500), sem escurecer o\n // texto em hover/active. Active vira preenchimento sólido rose-500 com\n // texto branco. Disabled clareia pra rose-300 em vez de escurecer.\n outline: {\n text: \"bg-surface border-[0.5px] border-rose-400 text-rose-500 hover:bg-rose-100 active:bg-rose-500 active:text-white active:border-transparent active:shadow-none disabled:bg-surface disabled:border-rose-300 disabled:text-rose-300 disabled:shadow-none\",\n },\n link: {\n // blue-400 não existe no design system — o disabled não mudava de cor\n // nenhuma antes disso, só perdia o underline.\n text: \"text-left text-blue-500 hover:text-blue-600 hover:underline active:text-blue-600 disabled:text-blue-500 disabled:opacity-50 disabled:no-underline outline-none focus:outline-none shadow-none font-normal\",\n },\n // Antes o default usava dangerous-300 (o tom claro que o Figma reserva pro\n // disabled) — a borda/texto de força total é o estado default correto.\n dangerOutline: {\n text: \"text-dangerous-500 bg-surface border-[0.5px] border-dangerous-500 hover:bg-dangerous-100 active:bg-dangerous-500 active:text-white active:border-transparent active:shadow-none disabled:bg-surface disabled:border-dangerous-300 disabled:text-dangerous-300 disabled:shadow-none\",\n },\n // Mesmo padrão do primary (node 412:5131): sólido + véu branco (rgba(255,255,255,.15)->0)\n // via ::before + mix-blend-mode (background-blend-mode não funciona, ver primary acima).\n // Blur da sombra era 1.5px — Figma \"Shadow/Danger\" pede radius 3.\n danger: {\n text: \"relative isolate bg-dangerous-500 text-white shadow-[0_1px_3px_0_rgba(222,56,56,0.12)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-danger-start hover:to-danger-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-dangerous-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n // Node 412:5002 — mesmo padrão, véu branco. Blur era 1.5px, Figma \"Shadow/Success\" pede 3.\n success: {\n text: \"relative isolate bg-success-500 text-white shadow-[0_1px_3px_0_rgba(13,189,105,0.2)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-success-start hover:to-success-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-success-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n // Antes usava green-500/green-100 — tokens que não existem no design\n // system (caem no verde default do Tailwind). Trocado pros tokens success-*.\n successOutline: {\n text: \"active:shadow-none text-success-500 font-bold bg-surface border-[0.5px] border-success-500 hover:bg-success-100 active:bg-success-500 active:text-white active:border-transparent disabled:opacity-50 disabled:bg-surface disabled:text-success-500\",\n },\n // Node 412:5067 — faltava o véu branco no default (ficava warning-500 chapado, enquanto\n // danger/success já tinham o gradiente). Mesmo padrão dos dois: ::before com\n // mix-blend-plus-lighter, zerado no hover (que troca pro gradiente opaco) e no active.\n warn: {\n text: \"relative isolate shadow-[0_1px_1.5px_0_rgba(242,153,20,0.2)] text-white bg-warning-500 before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-warning-start hover:to-warning-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-warning-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n blue: {\n text: \"shadow-button bg-blue-500 text-accent-label hover:bg-blue-600 active:bg-blue-600 text-bold\",\n },\n // Figma \"Ghost button / Transparent\" (pra usar sobre fundo colorido/escuro):\n // fica transparente sempre — hover/active só ganham um véu branco (10%/20%),\n // nunca fundo sólido, borda, ou mudança de cor do ícone. Antes o active usava\n // um véu PRETO (bg-[#0A0A0A40]) e o disabled ganhava fundo branco + borda +\n // texto cinza — nada disso existe no Figma, só opacity-50.\n iconSecondary: {\n text: \"text-white bg-transparent hover:bg-[rgba(255,255,255,0.1)] active:bg-[rgba(255,255,255,0.2)] active:shadow-none disabled:opacity-50\",\n },\n outlineIcon: {\n text: \"bg-surface text-rose-500 hover:shadow-button hover:text-rose-600 active:bg-rose-500 active:text-white disabled:text-neutral-400 disabled:border-disabled disabled:bg-surface disabled:opacity-50 active:shadow-none\",\n },\n dangerLight: {\n text: \"active:shadow-none shadow-red-sm text-danger-500 font-bold bg-surface border-[0.5px] border-dangerous-300 hover:bg-dangerous-100 active:bg-danger-500 active:text-white disabled:opacity-50 disabled:bg-surface disabled:text-danger-500\",\n },\n ghost: {\n text: \"bg-transparent hover:bg-neutral-100 !rounded-full text-paragraph active:bg-neutral-200 disabled:opacity-50\",\n },\n // Novo: réplica do \"Icon Button / Primary\" do Figma — botão só-ícone\n // preenchido. Diferente do primary em texto: aqui NÃO tem gradiente no\n // hover (o Figma só troca a cor no active) e a sombra é neutra, não\n // rosa — igual à sombra do \"Icon Button / Danger\" abaixo, só que cinza.\n iconPrimary: {\n text: \"bg-rose-500 text-white shadow-[0px_1px_1.5px_0px_rgba(56,61,77,0.12)] active:bg-rose-600 active:shadow-none disabled:opacity-50 disabled:shadow-none\",\n },\n // Novo: réplica do \"Icon Button / Danger\" do Figma — bordado em vermelho\n // cheio (dangerous-500), diferente do outlineIcon (que é rose, não red).\n iconDanger: {\n text: \"bg-surface border-[0.5px] border-dangerous-500 text-dangerous-500 shadow-[0px_1px_1.5px_0px_rgba(222,56,56,0.12)] hover:bg-dangerous-100 active:bg-dangerous-500 active:text-white active:border-transparent active:shadow-none disabled:opacity-50 disabled:shadow-none\",\n },\n // Novo: réplica do \"Ghost button / Neutral\" do Figma — utilitário só-ícone\n // sem borda, cor --label; distinto do `ghost` existente (pill com texto).\n // Disabled vira fundo branco + opacity-50 (não fica transparente feito o\n // default) — igual ao secondary comum.\n ghostIcon: {\n text: \"bg-transparent text-label rounded-[6px] hover:bg-neutral-100 active:bg-neutral-200 disabled:bg-surface disabled:opacity-50\",\n },\n // Novo: réplica do \"Transparent button\" do Figma — texto branco em negrito\n // centralizado, pensado pra ficar sobre fundo colorido/escuro (ex.: banners,\n // headers coloridos). Padding e radius próprios, independentes do size.\n onColorText: {\n text: \"!rounded-[4px] justify-center bg-transparent text-white hover:bg-[rgba(214,214,214,0.15)] active:bg-[rgba(10,10,10,0.25)] active:shadow-none disabled:opacity-50 disabled:shadow-[0_2px_6px_0_rgba(56,61,77,0.12)]\",\n },\n};\n\nconst paddingConfig = {\n // xxs fica sem padding de propósito (era assim antes) — usado em contextos\n // sem chrome de botão (ex.: variant=\"link\" como texto \"ver mais/menos\"),\n // onde padding quebraria o alinhamento inline com o texto ao redor.\n xxs: {\n normal: \"\",\n icon: \"\",\n iconOnly: \"\",\n },\n xxsm: {\n normal: \"px-2 py-1\",\n icon: \"py-1 pl-2 pr-2.5\",\n iconOnly: \"p-[6px]\",\n },\n xs: {\n normal: \"p-2\",\n icon: \"p-2\",\n iconOnly: \"p-2\",\n },\n sm: {\n normal: \"px-3 py-[6px]\",\n icon: \"py-[6px] pl-2 pr-3\",\n iconOnly: \"p-[6px]\",\n },\n md: {\n normal: \"py-2 px-4\",\n icon: \"py-2 pl-3 pr-4\",\n iconOnly: \"p-2\",\n },\n lg: {\n normal: \"py-3 px-4\",\n icon: \"p-3 pr-4\",\n iconOnly: \"p-3\",\n },\n};\n\nexport const Button = ({\n variant = \"primary\",\n size = \"lg\",\n hotkey,\n hotkeyPosition = \"bottom\",\n ...props\n}: ButtonProps) => {\n const applyGap = props.icon && props.children;\n const appliedVariant = variants[variant].text;\n const appliedSize = sizes[size];\n const neutralShadow = NEUTRAL_BORDERED_VARIANTS.has(variant)\n ? size === \"lg\"\n ? SHADOW_SM_NEUTRAL\n : SHADOW_XS_NEUTRAL\n : \"\";\n const appliedPadding = props.icon\n ? props.children\n ? paddingConfig[size].icon\n : paddingConfig[size].iconOnly\n : paddingConfig[size].normal;\n const gapText = applyGap ? appliedSize.gap : \"gap-0\";\n\n useEffect(() => {\n if (!hotkey || !props.onClick) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (props.disabled || props.loading) return;\n\n const keys = hotkey\n .toLowerCase()\n .split(\"+\")\n .map((k) => k.trim());\n const primaryKey = keys.pop();\n\n if (!primaryKey) return;\n\n const requiredCtrl = keys.includes(\"ctrl\");\n const requiredAlt = keys.includes(\"alt\");\n const requiredShift = keys.includes(\"shift\");\n const requiredMeta = keys.includes(\"meta\") || keys.includes(\"cmd\");\n\n // Normaliza apelidos de teclas para o valor real de event.key\n // (ex.: \"esc\" -> \"escape\", \"del\" -> \"delete\", \"space\" -> \" \").\n const keyAliases: Record<string, string> = {\n esc: \"escape\",\n del: \"delete\",\n space: \" \",\n spacebar: \" \",\n };\n const normalizedPrimary = keyAliases[primaryKey] ?? primaryKey;\n\n const match =\n event.key.toLowerCase() === normalizedPrimary &&\n event.ctrlKey === requiredCtrl &&\n event.altKey === requiredAlt &&\n event.shiftKey === requiredShift &&\n event.metaKey === requiredMeta;\n\n if (match) {\n event.preventDefault();\n props.onClick?.(event as any);\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [hotkey, props.onClick, props.disabled, props.loading]);\n\n const hotkeyLabel = hotkey && (\n <span className=\"text-p-sm font-normal\">{hotkey.toUpperCase()}</span>\n );\n\n return (\n <div\n className={clsx(\"inline-flex gap-[8px]\", {\n \"flex-col items-center\":\n hotkeyPosition === \"top\" || hotkeyPosition === \"bottom\",\n \"flex-row items-center\":\n hotkeyPosition === \"left\" || hotkeyPosition === \"right\",\n \"cursor-not-allowed\": props.disabled || props.loading,\n })}\n >\n {hotkey && (hotkeyPosition === \"top\" || hotkeyPosition === \"left\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n <button\n type={props.type}\n id=\"button-component\"\n {...props}\n disabled={props.disabled || props.loading}\n className={`\n ${props.className}\n ${appliedVariant}\n ${neutralShadow}\n ${appliedSize.text}\n ${appliedPadding}\n ${gapText}\n whitespace-nowrap group rounded-lg font-bold disabled:shadow-none active:shadow-none flex items-center disabled:pointer-events-none focus-visible:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] focus-visible:rounded-[2px]\n `}\n >\n <>\n {props.icon && (\n <div\n className={`flex items-center justify-center ${appliedSize.icon}`}\n >\n {props.icon && !props.loading ? (\n props.icon\n ) : props.loadingIcon && props.loading ? (\n props.loadingIcon\n ) : (\n <SpinnerIcon\n className={`animate-spin ${appliedSize.spinner}`}\n fill=\"currentColor\"\n />\n )}\n </div>\n )}\n {props.children}\n {hotkey && hotkeyPosition === \"inside\" && (\n <span className=\" font-normal\">- {hotkeyLabel}</span>\n )}\n {props.dropdown && (\n <i className={\"uil uil-angle-down text-[20px]\"}></i>\n )}\n </>\n </button>\n {hotkey &&\n (hotkeyPosition === \"bottom\" || hotkeyPosition === \"right\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n </div>\n );\n};\n","import React, {\n forwardRef,\n JSX,\n ComponentType,\n AnchorHTMLAttributes,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\n\nexport type LinkProp = AnchorHTMLAttributes<HTMLAnchorElement> & {\n icon?: JSX.Element;\n size?: keyof typeof sizes;\n padding?: string;\n label?: string | JSX.Element;\n disabled?: boolean;\n name?: string;\n target?: string;\n variant?: keyof typeof variants;\n className?: string;\n href: string;\n as?: ComponentType<any> | string;\n hotkey?: string;\n hotkeyPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n iconPosition?: \"left\" | \"right\";\n};\n\nexport const sizes = {\n xxs: {\n text: \"min-h-[14px] max-h-[40px] text-[14px] gap-[4px]\",\n },\n xs: {\n text: \"h-[36px]\",\n },\n sm: {\n text: \"h-[40px]\",\n },\n md: {\n text: \"h-[46px]\",\n },\n table: {\n text: \"h-8 w-8\",\n },\n};\n\nconst variants = {\n primary: {\n text: \"shadow-button text-button-label bg-gradient-to-b hover:text-white from-rose-start to-rose-end active:bg-gradient-to-b active:from-rose-800 active:to-rose-800 disabled:bg-gradient-to-b disabled:from-rose-800 disabled:to-rose-800 disabled:opacity-50 hover:from-[#FD467F] hover:to-[#DF4573]\",\n },\n secondary: {\n text: \"shadow-button bg-surface border-[0.5px] border-paragraph text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-neutral-400 disabled:bg-surface disabled:border-[0.5px] disabled:border-neutral-400\",\n },\n link: {\n text: \"text-blue-500 hover:text-blue-600 hover:underline border-none active:text-blue-600 active:underline disabled:text-blue-500 disabled:no-underline shadow-none font-normal\",\n },\n linkDanger: {\n text: \"text-dangerous-500 hover:text-dangerous-600 hover:underline border-none active:text-dangerous-600 active:underline disabled:text-dangerous-500 disabled:no-underline shadow-none font-normal\",\n },\n icon: {\n text: \"bg-surface border-[0.5px] border-neutral-300 text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50\",\n },\n iconSecondary: {\n text: \"border-[1px] border-none text-white active:bg-[#0A0A0A40]/20 hover:bg-[#F5F5F526]/10 hover:text-white disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50\",\n },\n outline: {\n text: \"shadow-button bg-surface border-[0.5px] border-rose-700 text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-rose-700 disabled:bg-surface disabled:border-[0.5px] disabled:border-rose-700 disabled:opacity-50\",\n },\n dark: {\n text: \"shadow-button text-white hover:bg-[#f5f5f526] active:bg-[#0a0a0a40] disabled:opacity-50 disabled:bg-transparent\",\n },\n dangerLight: {\n text: \"shadow-button text-dangerous-700 font-bold bg-surface border-[0.5px] border-dangerous-700 hover:bg-dangerous-100 active:bg-dangerous-700 active:text-white disabled:opacity-50 disabled:bg-surface disabled:text-dangerous-700\",\n },\n danger: {\n text: \"shadow-button text-white bg-gradient-to-b from-danger-start to-danger-end hover:from-[#FD6363] hover:to-[#E34E4E] active:from-dangerous-800 active:to-dangerous-800 disabled:opacity-50 disabled:from-dangerous-700 disabled:to-dangerous-700\",\n },\n success: {\n text: \"shadow-button text-white bg-gradient-to-b from-success-start to-success-end hover:from-[#3FF09B] hover:to-[#27C579] active:from-success-600 active:to-success-600 disabled:opacity-50 disabled:from-success-500 disabled:to-success-500\",\n },\n warn: {\n text: \"shadow-button text-white bg-gradient-to-b from-warning-start to-warning-end hover:from-[#FEBD5D] hover:to-[#F4A42D] active:from-warning-600 active:to-warning-600 disabled:opacity-50 disabled:from-warning-500 disabled:to-warning-500\",\n },\n blue: {\n text: \"shadow-button bg-blue-700 text-accent-label text-bold\",\n },\n filter: {\n text: \"shadow-button rounded-3xl border border-neutral-300 text-blue-500 hover:text-blue-600 hover:bg-light-gray-100 active:border active:border-blue-700 active:text-blue-600 active:bg-blue-100 focus:border focus:border-blue-700 focus:text-blue-500 focus:bg-blue-100\",\n },\n filterActive: {\n text: \"shadow-button rounded-3xl border border-blue-700 text-blue-500 bg-blue-100 shadow-button hover:bg-blue-700 hover:text-accent-label active:text-accent-label active:bg-blue-900 active:border-blue-900 focus:text-accent-label focus:bg-blue-900 focus:border-blue-900\",\n },\n};\n\nexport const ButtonLink = forwardRef<HTMLAnchorElement, LinkProp>(\n (\n {\n size = \"md\",\n icon,\n padding = \"px-3\",\n label,\n disabled,\n name,\n target,\n variant = \"link\",\n className,\n as: LinkComponent = \"a\",\n hotkey,\n hotkeyPosition = \"bottom\",\n iconPosition = \"left\",\n ...props\n },\n ref,\n ) => {\n const applyGap = icon;\n useEffect(() => {\n if (!hotkey) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (disabled) return;\n\n const keys = hotkey\n .toLowerCase()\n .split(\"+\")\n .map((k) => k.trim());\n const primaryKey = keys.pop();\n\n if (!primaryKey) return;\n\n const requiredCtrl = keys.includes(\"ctrl\");\n const requiredAlt = keys.includes(\"alt\");\n const requiredShift = keys.includes(\"shift\");\n const requiredMeta = keys.includes(\"meta\") || keys.includes(\"cmd\");\n\n const match =\n event.key.toLowerCase() === primaryKey &&\n event.ctrlKey === requiredCtrl &&\n event.altKey === requiredAlt &&\n event.shiftKey === requiredShift &&\n event.metaKey === requiredMeta;\n\n if (match) {\n event.preventDefault();\n if (props.onClick) {\n props.onClick?.(event as any);\n } else {\n const linkElement = document.querySelector(\n `a[href=\"${props.href}\"]`,\n ) as HTMLAnchorElement;\n linkElement?.click();\n }\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [hotkey, props.onClick, props.href, disabled]);\n const hotkeyLabel = hotkey && (\n <span className=\"text-p-sm font-normal\">{hotkey.toUpperCase()}</span>\n );\n return (\n <div\n className={clsx(\"inline-flex gap-[4px]\", {\n \"flex-col items-center justify-center\":\n hotkeyPosition === \"top\" || hotkeyPosition === \"bottom\",\n \"flex-row items-center justify-center\":\n hotkeyPosition === \"left\" || hotkeyPosition === \"right\",\n })}\n >\n {hotkey && (hotkeyPosition === \"top\" || hotkeyPosition === \"left\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n <LinkComponent\n ref={ref}\n className={clsx(\n {\n [variants[variant]?.text]: true,\n [sizes[size].text]: true,\n [\"pointer-events-none shadow-none text-label\"]: disabled,\n [\"px-2\"]: variant !== \"link\" && variant !== \"linkDanger\",\n [\"flex-row-reverse\"]: iconPosition === \"right\",\n },\n `group rounded-lg font-bold active:shadow-none flex items-center justify-start cursor-pointer outline-none focus:outline-none\n ${applyGap ? \"gap-2\" : \"gap-0\"} ${className}\n `,\n )}\n target={target}\n {...props}\n download={name}\n >\n {icon && (\n <div\n className={clsx(\"flex items-center justify-center\", {\n \"text-[12px]\": size === \"sm\",\n \"text-[14px]\": size === \"md\",\n })}\n >\n {icon}\n </div>\n )}\n <span\n className={clsx(\"cursor-pointer line-clamp-2\", {\n \"text-[12px]\": size === \"sm\",\n \"text-[14px]\": size === \"md\",\n })}\n >\n {label}\n </span>\n </LinkComponent>\n {hotkey &&\n (hotkeyPosition === \"bottom\" || hotkeyPosition === \"right\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n </div>\n );\n },\n);\n\nButtonLink.displayName = \"ButtonLink\";\n","import React, { JSX } from \"react\";\nimport clsx from \"clsx\";\nimport {\n DetailedHTMLProps,\n forwardRef,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n} from \"react\";\nimport {\n FieldError,\n FieldErrorsImpl,\n Merge,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: () => void;\n error?: Merge<FieldError, FieldErrorsImpl<any>> | any;\n onBlur?: (value: Event) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n onClear?: () => void;\n hideInput?: boolean;\n};\n\nexport const Input = ({\n label,\n type,\n registration,\n onClick,\n error,\n onBlur,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n defaultValue,\n onKeyUp,\n onKeyDown,\n onClear,\n hideInput,\n onChange,\n ref,\n}: InputFieldProps) => {\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n const [showPassword, setShowPassword] = React.useState(false);\n const styles = {\n // Sem `focus-visible:rounded-*`: o anel de foco tem que seguir o mesmo raio do campo\n // (`rounded-lg`) — reduzir pra 2px no foco deixava o anel quadrado sobre um campo arredondado.\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-[var(--input-bg-disabled)] disabled:border-[var(--input-border-disabled)] disabled:text-disabled disabled:cursor-not-allowed disabled:shadow-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n }\n ${!hasError ? \"border-stroke\" : \"\"}`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${\n hasError ? \"text-dangerous-500\" : \"text-label peer-focus:text-blue-500\"\n } peer-focus:border-blue-500`,\n rightIcon: \"absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]\",\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n clear: \"absolute top-[8.3px] cursor-pointer text-label text-[22px]\",\n error: \"border-dangerous-500 text-dangerous-500\",\n };\n\n const inlineStyles = {\n inputWithIcon: { paddingLeft: \"48px\" },\n labelWithIcon: { left: \"3rem\" },\n };\n\n const input = name ? document?.getElementById(name) : null;\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n <input\n id={name}\n type={\n type === \"password\" ? (showPassword ? \"text\" : \"password\") : type\n }\n name={name}\n value={value}\n defaultValue={defaultValue}\n style={\n (!label && placeholder && icon) || icon\n ? inlineStyles.inputWithIcon\n : undefined\n }\n className={clsx({\n [styles.error]: hasError,\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onChange={onChange}\n onBlur={onBlur}\n onClick={onClick}\n disabled={disabled}\n ref={ref}\n {...inputProps}\n {...registration}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n {icon && (\n <div\n className={clsx(styles.icon, \"flex justify-center items-center\")}\n >\n {icon}\n </div>\n )}\n {hideInput && (\n <div\n className={clsx(\n styles.rightIcon,\n \"flex justify-center items-center\",\n )}\n >\n <i className=\"uil uil-eye text-label cursor-pointer text-[20px]\"></i>\n </div>\n )}\n <label\n style={icon ? inlineStyles.labelWithIcon : undefined}\n className={clsx(\n {\n [styles.label]: true,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text whitespace-nowrap text-ellipsis overflow-hidden pointer-events-none\",\n )}\n htmlFor={name}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n {type === \"password\" && (\n <i\n onClick={() => setShowPassword(!showPassword)}\n className={clsx(\n \"uil text-label cursor-pointer text-[20px] absolute right-2 top-1/2 -translate-y-1/2\",\n {\n \"uil-eye-slash\": showPassword,\n \"uil-eye\": !showPassword,\n },\n )}\n ></i>\n )}\n {clearField && value && value !== \"\" && !disabled && (\n <i\n className={clsx(styles.clear, \"uil uil-times clear-icon\", {\n \"right-9\": type === \"password\",\n \"right-2\": type !== \"password\",\n })}\n onClick={() => {\n if (input) {\n input?.focus();\n }\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-p-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import React from \"react\";\n// Exemplo: Se você tiver uma imagem PNG ou JPG\n// import logo from \"../assets/logo.png\";\n\n// Para SVG estático (não como componente)\nimport exampleLogo from \"../assets/example-logo.svg\";\n\nexport const Logo: React.FC<{ className?: string }> = ({ className }) => {\n return (\n <img \n src={exampleLogo} \n alt=\"Logo\" \n className={className}\n width={100}\n height={100}\n />\n );\n};\n","import React from \"react\";\n\nexport const RocketIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"800px\"\n height=\"800px\"\n viewBox=\"0 0 1024 1024\"\n className=\"icon\"\n version=\"1.1\"\n style={props.style}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M512 301.2m-10 0a10 10 0 1 0 20 0 10 10 0 1 0-20 0Z\"\n fill=\"#E73B37\"\n />\n <path\n d=\"M400.3 744.5c2.1-0.7 4.1-1.4 6.2-2-2 0.6-4.1 1.3-6.2 2z m0 0c2.1-0.7 4.1-1.4 6.2-2-2 0.6-4.1 1.3-6.2 2z\"\n fill=\"#39393A\"\n />\n <path\n d=\"M511.8 256.6c24.4 0 44.2 19.8 44.2 44.2S536.2 345 511.8 345s-44.2-19.8-44.2-44.2 19.9-44.2 44.2-44.2m0-20c-35.5 0-64.2 28.7-64.2 64.2s28.7 64.2 64.2 64.2 64.2-28.7 64.2-64.2-28.7-64.2-64.2-64.2z\"\n fill=\"#E73B37\"\n />\n <path\n d=\"M730.7 529.5c0.4-8.7 0.6-17.4 0.6-26.2 0-179.6-86.1-339.1-219.3-439.5-133.1 100.4-219.2 259.9-219.2 439.5 0 8.8 0.2 17.5 0.6 26.1-56 56-90.6 133.3-90.6 218.7 0 61.7 18 119.1 49.1 167.3 30.3-49.8 74.7-90.1 127.7-115.3 39-18.6 82.7-29 128.8-29 48.3 0 93.9 11.4 134.3 31.7 52.5 26.3 96.3 67.7 125.6 118.4 33.4-49.4 52.9-108.9 52.9-173.1 0-85.4-34.6-162.6-90.5-218.6zM351.1 383.4c9.2-37.9 22.9-74.7 40.6-109.5a502.1 502.1 0 0 1 63.6-95.9c17.4-20.6 36.4-39.9 56.8-57.5 20.4 17.6 39.4 36.9 56.8 57.5 24.8 29.5 46.2 61.8 63.6 95.9 17.7 34.8 31.4 71.6 40.6 109.5 8.7 35.8 13.5 72.7 14.2 109.9C637.4 459 577 438.9 512 438.9c-65 0-125.3 20.1-175.1 54.4 0.7-37.2 5.5-74.1 14.2-109.9z m-90.6 449.2c-9.1-27-13.7-55.5-13.7-84.4 0-35.8 7-70.6 20.8-103.2 8.4-19.8 19-38.4 31.9-55.5 9.7 61.5 29.5 119.7 57.8 172.6-36.4 17.8-69 41.6-96.8 70.5z m364.2-85.3c-0.7-0.3-1.5-0.5-2.2-0.8-0.4-0.2-0.9-0.3-1.3-0.5-0.6-0.2-1.3-0.5-1.9-0.7-0.8-0.3-1.5-0.5-2.3-0.8-0.8-0.3-1.5-0.5-2.3-0.7l-0.9-0.3c-1-0.3-2.1-0.7-3.1-1-1.2-0.4-2.4-0.7-3.5-1.1l-3-0.9c-0.2-0.1-0.4-0.1-0.7-0.2-1.1-0.3-2.3-0.7-3.4-1-1.2-0.3-2.4-0.6-3.5-0.9l-3.6-0.9-3.6-0.9c-1-0.3-2.1-0.5-3.1-0.7-1.2-0.3-2.4-0.5-3.6-0.8-1.3-0.3-2.5-0.6-3.8-0.8h-0.3c-0.9-0.2-1.9-0.4-2.8-0.6-0.4-0.1-0.7-0.1-1.1-0.2-1.1-0.2-2.2-0.4-3.4-0.6-1.2-0.2-2.4-0.4-3.6-0.7l-5.4-0.9c-0.9-0.1-1.9-0.3-2.8-0.4-0.8-0.1-1.6-0.3-2.5-0.4-2.6-0.4-5.1-0.7-7.7-1-1.2-0.1-2.3-0.3-3.5-0.4h-0.4c-0.9-0.1-1.8-0.2-2.8-0.3-1.1-0.1-2.1-0.2-3.2-0.3-1.7-0.2-3.4-0.3-5.1-0.4-0.8-0.1-1.5-0.1-2.3-0.2-0.9-0.1-1.9-0.1-2.8-0.2-0.4 0-0.8 0-1.2-0.1-1.1-0.1-2.1-0.1-3.2-0.2-0.5 0-1-0.1-1.5-0.1-1.3-0.1-2.6-0.1-3.9-0.1-0.8 0-1.5-0.1-2.3-0.1-1.2 0-2.4 0-3.5-0.1h-13.9c-2.3 0-4.6 0.1-6.9 0.2-0.9 0-1.9 0.1-2.8 0.1-0.8 0-1.5 0.1-2.3 0.1-1.4 0.1-2.8 0.2-4.1 0.3-1.4 0.1-2.7 0.2-4.1 0.3-1.4 0.1-2.7 0.2-4.1 0.4-0.6 0-1.2 0.1-1.8 0.2l-7.8 0.9c-1.1 0.1-2.1 0.3-3.2 0.4-1 0.1-2.1 0.3-3.1 0.4-3.2 0.5-6.4 0.9-9.5 1.5-0.7 0.1-1.4 0.2-2.1 0.4-0.9 0.1-1.7 0.3-2.6 0.5-1.1 0.2-2.3 0.4-3.4 0.6-0.9 0.2-1.7 0.3-2.6 0.5-0.4 0.1-0.8 0.1-1.1 0.2-0.7 0.1-1.4 0.3-2.1 0.4-1.2 0.3-2.4 0.5-3.6 0.8-1.2 0.3-2.4 0.5-3.6 0.8-0.2 0-0.4 0.1-0.6 0.1-0.5 0.1-1 0.2-1.5 0.4-1.1 0.3-2.3 0.6-3.5 0.9-1.3 0.3-2.5 0.6-3.8 1-0.4 0.1-0.9 0.2-1.4 0.4-1.3 0.4-2.7 0.7-4 1.1-1.5 0.4-3 0.9-4.6 1.3-1 0.3-2.1 0.6-3.1 1-2.1 0.6-4.1 1.3-6.2 2-0.7 0.2-1.4 0.5-2.1 0.7-15-27.5-27.4-56.4-37-86.2-11.7-36.1-19.2-73.6-22.5-111.6-0.6-6.7-1-13.3-1.3-20-0.1-1.2-0.1-2.4-0.1-3.6-0.1-1.2-0.1-2.4-0.1-3.6 0-1.2-0.1-2.4-0.1-3.6 0-1.2-0.1-2.4-0.1-3.7 18.8-14 39.2-25.8 61-35 36.1-15.3 74.5-23 114.1-23 39.6 0 78 7.8 114.1 23 21.8 9.2 42.2 20.9 61 35v0.1c0 1 0 1.9-0.1 2.9 0 1.4-0.1 2.8-0.1 4.3 0 0.7 0 1.3-0.1 2-0.1 1.8-0.1 3.5-0.2 5.3-0.3 6.7-0.8 13.3-1.3 20-3.3 38.5-11 76.5-23 113-9.7 30.3-22.3 59.4-37.6 87.1z m136.8 90.9a342.27 342.27 0 0 0-96.3-73.2c29.1-53.7 49.5-112.8 59.4-175.5 12.8 17.1 23.4 35.6 31.8 55.5 13.8 32.7 20.8 67.4 20.8 103.2 0 31-5.3 61.3-15.7 90z\"\n fill=\"#39393A\"\n />\n <path\n d=\"M512 819.3c8.7 0 24.7 22.9 24.7 60.4s-16 60.4-24.7 60.4-24.7-22.9-24.7-60.4 16-60.4 24.7-60.4m0-20c-24.7 0-44.7 36-44.7 80.4 0 44.4 20 80.4 44.7 80.4s44.7-36 44.7-80.4c0-44.4-20-80.4-44.7-80.4z\"\n fill=\"#E73B37\"\n />\n </svg>\n);\n","import { nanoid } from 'nanoid';\nimport { create } from 'zustand';\n\nexport type Field = {\n [key: string]: FieldError;\n};\n\ntype FieldError = {\n code: string;\n message: string;\n};\n\ntype ValidationError = {\n id?: string;\n code: string;\n message: string;\n path?: string[];\n position?: number;\n};\n\ntype FieldErrorsStore = {\n field: Field;\n addValidationError: (\n validationErrors: ValidationError[]\n ) => void;\n dismissAllValidationErrors?: () => void;\n};\n\nexport const useFieldErrorsStore = create<FieldErrorsStore>(\n (set) => ({\n field: {},\n addValidationError: (validationErrors) =>\n set((state) => {\n let fieldErrorsByPath = {};\n validationErrors?.forEach(\n ({ position, path, code, message }) => {\n path?.shift();\n if (position !== null) {\n path?.splice(1, 0, position?.toString());\n }\n\n const fieldPathWithPosition = path\n .join('.')\n .replace('.', '');\n\n fieldErrorsByPath = {\n ...fieldErrorsByPath,\n [fieldPathWithPosition]: {\n code,\n message,\n },\n };\n }\n );\n\n return {\n ...state,\n field: {\n ...fieldErrorsByPath,\n },\n };\n }),\n dismissAllValidationErrors: () =>\n set((state) => ({\n field: {},\n })),\n })\n);\n","import { DateInput3 } from \"@blueprintjs/datetime2\";\r\nimport { forwardRef, JSX, useState, useRef } from \"react\";\r\nimport {\r\n Control,\r\n Controller,\r\n DeepRequired,\r\n FieldError,\r\n FieldErrorsImpl,\r\n UseFormRegisterReturn,\r\n} from \"react-hook-form\";\r\nimport { useFieldErrorsStore } from \"../stores/field-errors\";\r\nimport clsx from \"clsx\";\r\nimport { format, parse } from \"date-fns\";\r\n\r\n/** Respiro entre o input e o calendario, em px. */\r\nconst DEFAULT_POPOVER_OFFSET: [number, number] = [0, 8];\r\n\r\ninterface Props {\r\n icon?: JSX.Element;\r\n label: string;\r\n registration?: UseFormRegisterReturn;\r\n error?: FieldError | any;\r\n inputProps?: any;\r\n clearField?: boolean;\r\n control: Control<unknown> | any;\r\n name: string | never;\r\n required?: boolean;\r\n defaultValue?: any;\r\n onChangeFunction?: (e) => void;\r\n maxDate?: any;\r\n minDate?: any;\r\n disabled?: boolean;\r\n small?: boolean;\r\n onClear?: () => void;\r\n /** Deslocamento [skidding, distance] do calendario em relacao ao input (modifier `offset` do\r\n * Popper). Antes era declarado e nunca usado: alimentava uma variavel CSS que nenhuma folha de\r\n * estilo lia. Default [0, 8]: com `minimal` o Popover nasce colado no input. */\r\n popoverOffset?: [number, number];\r\n}\r\n\r\nexport const DatePickerInput = forwardRef(\r\n (\r\n {\r\n icon,\r\n label,\r\n registration,\r\n error,\r\n inputProps,\r\n clearField,\r\n control,\r\n name,\r\n required,\r\n defaultValue,\r\n onChangeFunction,\r\n maxDate,\r\n minDate,\r\n disabled,\r\n small,\r\n onClear,\r\n popoverOffset,\r\n }: Props,\r\n ref: any,\r\n ) => {\r\n const [invalidDate, setInvalidDate] = useState(false);\r\n const [showCalendar, setShowCalendar] = useState(false);\r\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\r\n const dateFnsFormat = \"dd/MM/yyyy\";\r\n\r\n const fieldValidation = useFieldErrorsStore((state) => state.field);\r\n const fieldValidationMessages = [\r\n fieldValidation[name ? name : registration?.name]?.message,\r\n error?.message,\r\n ];\r\n\r\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\r\n\r\n const styles = {\r\n input: `text-p-md text-paragraph bg-surface shadow-input border-[0.5px] rounded block pb-[10px] h-[46px] w-full disabled:bg-light-gray-100 disabled:shadow-none focus:border-[1.5px] focus:border-blue-500 ${\r\n hasError ? \"border-dangerous-500 text-dangerous-500\" : \"border-stroke\"\r\n }`,\r\n icon: `absolute bg-light-gray-100 h-[44px] w-[38px] top-[1px] left-[1px] rounded-l-lg rounded-r-none ${\r\n hasError ? \"text-dangerous-700\" : \"text-label\"\r\n }`,\r\n label: \"absolute text-label text-sm\",\r\n clear:\r\n \"absolute top-[8px] right-[8px] cursor-pointer text-label text-[22px]\",\r\n };\r\n\r\n const input = name ? document?.getElementById(name) : null;\r\n\r\n return (\r\n <div>\r\n <Controller\r\n control={control}\r\n name={name as never}\r\n render={({ field }) => {\r\n const normalizeDate = (value: any): string | null => {\r\n if (!value) return null;\r\n if (value instanceof Date) {\r\n return isNaN(value.getTime()) ? null : value.toISOString();\r\n }\r\n if (typeof value === \"string\") {\r\n const parsed = new Date(value);\r\n return isNaN(parsed.getTime()) ? null : parsed.toISOString();\r\n }\r\n return null;\r\n };\r\n\r\n const normalizedValue = normalizeDate(field.value);\r\n\r\n return (\r\n <div\r\n id=\"group-input-calendar\"\r\n className=\"relative\"\r\n ref={(node) => {\r\n inputContainerRef.current = node;\r\n if (typeof ref === \"function\") {\r\n ref(node);\r\n } else if (ref) {\r\n ref.current = node;\r\n }\r\n }}\r\n >\r\n {icon && (\r\n <div\r\n id=\"icon\"\r\n className={clsx(\r\n styles.icon,\r\n \"flex justify-center items-center text-[20px] bg-light-gray-100\",\r\n )}\r\n >\r\n {icon}\r\n </div>\r\n )}\r\n <DateInput3\r\n outOfRangeMessage=\"Data não permitida\"\r\n invalidDateMessage=\"Data inválida\"\r\n onError={() => setInvalidDate(true)}\r\n defaultValue={normalizedValue}\r\n inputProps={{\r\n className: styles.input,\r\n style: { height: \"46px\" },\r\n }}\r\n popoverProps={{\r\n placement: \"bottom-start\",\r\n // usePortal false renderizava o calendario dentro do proprio input, entao\r\n // qualquer ancestral com overflow auto/hidden (modal com scroll, painel\r\n // lateral) o cortava e ele ficava inutilizavel. Com portal ele vai pro body e\r\n // o Popper reposiciona sozinho quando nao ha espaco abaixo.\r\n usePortal: true,\r\n minimal: true,\r\n popoverClassName: \"date-picker-popover\",\r\n // O .bp6-portal nasce com z-index 20, abaixo do overlay do ModalDialog\r\n // (react-modal, zIndex 9999): dentro de modal o calendario ficava atras.\r\n // O z-index vai no PORTAL, nao no popoverClassName — quem empilha e o\r\n // wrapper posicionado no body, nao o conteudo do popover.\r\n portalClassName: \"date-picker-portal\",\r\n // Sem boundary o flip ignora o viewport quando o input esta dentro de um\r\n // container com scroll.\r\n modifiers: {\r\n preventOverflow: { enabled: true, options: { padding: 8 } },\r\n flip: { enabled: true },\r\n // Sempre aplicado: com `minimal` o Popover nao tem seta nem margem propria e\r\n // o calendario encostava no input. 8px e o respiro padrao.\r\n offset: {\r\n enabled: true,\r\n options: { offset: popoverOffset ?? DEFAULT_POPOVER_OFFSET },\r\n },\r\n },\r\n }}\r\n disabled={disabled}\r\n onChange={(e, isUserChange) => {\r\n if (isUserChange) {\r\n let value = e;\r\n if (e) {\r\n const date = new Date(e);\r\n date.setUTCHours(23, 59, 59, 0);\r\n value = date.toISOString();\r\n }\r\n field.onChange(value);\r\n setShowCalendar(false);\r\n if (onChangeFunction) {\r\n onChangeFunction(value);\r\n }\r\n setInvalidDate(false);\r\n }\r\n }}\r\n value={normalizedValue}\r\n locale=\"pt-BR\"\r\n highlightCurrentDay={true}\r\n formatDate={(value) => {\r\n const adjusted = new Date(\r\n value.getTime() + value.getTimezoneOffset() * 60000,\r\n );\r\n return format(adjusted, dateFnsFormat);\r\n }}\r\n parseDate={(value) => parse(value, dateFnsFormat, new Date())}\r\n maxDate={\r\n maxDate || new Date(new Date().getFullYear() + 5, 11, 31)\r\n }\r\n minDate={minDate || new Date(1900, 0, 1)}\r\n />\r\n <label\r\n className={clsx(\r\n \"pointer-events-none \",\r\n styles.label,\r\n `\r\n ${\r\n (field.value && field.value[0] !== null) || invalidDate\r\n ? \" scale-75 -translate-y-3 \"\r\n : \"\"\r\n }\r\n ${icon ? \"left-[3rem]\" : \"left-2.5\"}`,\r\n )}\r\n style={{ top: \"13px\" }}\r\n >\r\n {label}\r\n {required && label && (\r\n <strong className=\"text-dangerous-700 ml-1\">*</strong>\r\n )}\r\n </label>\r\n {clearField &&\r\n field?.value &&\r\n field?.value !== \"\" &&\r\n !disabled && (\r\n <i\r\n className={clsx(\r\n {\r\n [styles.clear]: true,\r\n },\r\n \"uil uil-times clear-icon\",\r\n )}\r\n onClick={() => {\r\n if (input) {\r\n input?.focus();\r\n }\r\n if (onClear) {\r\n onClear();\r\n }\r\n }}\r\n ></i>\r\n )}\r\n </div>\r\n );\r\n }}\r\n />\r\n {fieldValidationMessages.map((message, index) => (\r\n <div\r\n key={index}\r\n className=\"absolute text-dangerous-700 text-xs mt-[2px] ml-1\"\r\n role=\"alert\"\r\n aria-label={message}\r\n >\r\n {message}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n },\r\n);\r\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { ReactNode, JSX } from \"react\";\n\ntype BadgeProps = {\n variant?: keyof typeof variants | string;\n children?: ReactNode | JSX.Element;\n className?: string;\n style?: any;\n};\n\nconst variants = {\n success: \"bg-success-100 text-success-600\",\n warning: \"bg-warning-100 text-warning-600\",\n blue: \"bg-blue-100 text-blue-500\",\n gray: \"bg-neutral-100 text-neutral-400\",\n dangerous: \"bg-dangerous-100 text-dangerous-600\",\n light: \"bg-neutral-100 text-neutral-400\",\n white:\n \"bg-surface text-neutral-400 px-4 py-[6px] border border-neutral-200 shadow-button text-paragraph\",\n primary: \"bg-rose-100 text-rose-800\",\n dark: \"bg-neutral-700 text-white\",\n outline: \"bg-surface text-rose-700 border border-neutral-200\",\n \"dark-gray\": \"bg-neutral-100 text-neutral-600\",\n};\n\nexport const Badge = ({\n variant = \"blue\",\n children,\n className,\n style,\n}: BadgeProps) => {\n return (\n <span\n className={clsx(\n { [variants[variant]]: variant?.length > 0 },\n \"py-1 px-2 text-p-md font-normal inline-flex items-center justify-center gap-1 rounded-full text-center\",\n className,\n )}\n style={style}\n >\n {children}\n </span>\n );\n};\n","import React from \"react\";\nimport { DatePicker3, DateRangePicker3 } from \"@blueprintjs/datetime2\";\nimport {\n Control,\n Controller,\n FieldError,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\nimport {\n set,\n sub,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n subYears,\n} from \"date-fns\";\n\ninterface Props {\n registration?: UseFormRegisterReturn;\n error?: FieldError;\n control: Control<any>;\n name: string | never;\n rangeCalendar?: boolean;\n shortcutsChange?: (e) => void;\n selectedShortcut?: number | null;\n setSelectedShortcut?: (e) => void;\n maxDate?: Date;\n singleMonth?: boolean;\n}\nexport const Calendar = ({\n registration,\n error,\n control,\n name,\n rangeCalendar = false,\n shortcutsChange,\n selectedShortcut,\n setSelectedShortcut,\n maxDate = new Date(),\n singleMonth = false,\n}: Props) => {\n const fieldValidationMessages = [error?.message];\n\n const shorcuts: any = [\n {\n label: \"Todo o período\",\n dateRange: [],\n },\n {\n label: \"Hoje\",\n dateRange: [\n set(new Date(), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Ontem\",\n dateRange: [\n set(sub(new Date(), { days: 1 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(sub(new Date(), { days: 1 }), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 7 dias\",\n dateRange: [\n set(sub(new Date(), { days: 7 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 14 dias\",\n dateRange: [\n set(sub(new Date(), { days: 14 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 30 dias\",\n dateRange: [\n set(sub(new Date(), { days: 30 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 60 dias\",\n dateRange: [\n set(sub(new Date(), { days: 60 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 90 dias\",\n dateRange: [\n set(sub(new Date(), { days: 90 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Esta semana\",\n dateRange: [\n startOfWeek(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Semana passada\",\n dateRange: [\n startOfWeek(sub(new Date(), { days: 7 })),\n endOfWeek(sub(new Date(), { days: 7 })),\n ],\n },\n {\n label: \"Este Mês\",\n dateRange: [\n startOfMonth(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Mês passado\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 1 })),\n endOfMonth(sub(new Date(), { months: 1 })),\n ],\n },\n {\n label: \"Últimos 6 meses\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 6 })),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ,\n ],\n },\n ];\n return (\n <div>\n <Controller\n control={control}\n name={name as never}\n render={({ field: { onChange, value } }) => (\n <div id=\"group-input-calendar\" className=\"relative\">\n {rangeCalendar ? (\n <DateRangePicker3\n allowSingleDayRange\n shortcuts={shorcuts}\n selectedShortcutIndex={selectedShortcut || shorcuts[0]}\n onChange={(e) => {\n let date = [];\n if (e[0] && e[0] !== null) {\n date.push(\n set(e[0] as never, {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }) as never,\n );\n }\n\n if (e[1] && e[1] !== null) {\n date.push(\n set(e[1] as never, {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }) as never,\n );\n }\n\n if (e[0] !== null && e[1] == null) {\n if (shortcutsChange) shortcutsChange(null);\n if (setSelectedShortcut) setSelectedShortcut(null);\n }\n if (shortcutsChange) shortcutsChange(\"\");\n onChange(date);\n }}\n singleMonthOnly={singleMonth}\n value={value}\n highlightCurrentDay={true}\n minDate={subYears(new Date(), 50)}\n maxDate={maxDate}\n locale=\"pt-BR\"\n onShortcutChange={(e) => {\n const index = shorcuts.findIndex(\n (item) => item.label === e.label,\n );\n if (index !== -1 && setSelectedShortcut) {\n setSelectedShortcut(index);\n }\n if (shortcutsChange) shortcutsChange(e);\n }}\n />\n ) : (\n <DatePicker3\n onChange={(e) => {\n onChange(e);\n }}\n value={value}\n highlightCurrentDay={true}\n locale=\"pt-BR\"\n />\n )}\n </div>\n )}\n />\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { UseFormRegisterReturn } from \"react-hook-form\";\nexport type CheckboxProps = {\n key?: string;\n label?: string;\n registration?: UseFormRegisterReturn;\n disabled?: boolean;\n};\n\nexport const Checkbox = ({\n key = \"\",\n label,\n registration,\n disabled,\n}: CheckboxProps) => (\n <div>\n <div className=\"relative flex items-start\">\n <div className=\"flex h-5 items-center\">\n <input\n {...registration}\n id={registration ? registration.name : key}\n disabled={disabled}\n type=\"checkbox\"\n className={clsx(\n \"disabled:hover:bg-neutral-100 disabled:cursor-default cursor-pointer h-[16px] w-[16px] rounded-[2.5px] border border-neutral-200 text-blue-500 focus:rounded-[4px] focus:border-[1.5px] focus:ring-blue-500 focus-visible:ring-blue-500 checked:after:text-blue-500 disabled:bg-neutral-100\"\n )}\n />\n </div>\n <div className=\"ml-3 text-sm\">\n <label\n htmlFor={registration?.name}\n className=\"cursor-pointer font-medium text-paragraph\"\n >\n {label}\n </label>\n </div>\n </div>\n </div>\n);\n","import React from \"react\";\nimport { Tooltip } from \"react-tooltip\";\ninterface Props {\n id: string;\n displayArrow?: boolean;\n openOnClick?: boolean;\n}\n\nexport const Popover = ({\n id,\n displayArrow = true,\n openOnClick = false,\n}: Props) => {\n const style = {\n noArrow: \"hidden\",\n };\n\n return (\n <>\n <Tooltip\n id={id}\n className=\"absolute bg-neutral-700 text-p-md text-neutral-0 rounded-lg shadow-dropdown py-[6px] px-3 max-w-[430px] break-words whitespace-normal\"\n classNameArrow={!displayArrow ? style.noArrow : \"\"}\n openOnClick={openOnClick}\n delayHide={0}\n delayShow={0}\n />\n </>\n );\n};\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport { Popover, PopoverButton, PopoverPanel } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport { Popover as ClearTooltip } from \"../Popover/Popover\";\nimport { format } from \"date-fns\";\nimport {\n set,\n sub,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n subYears,\n} from \"date-fns\";\nimport { DatePicker3, DateRangePicker3 } from \"@blueprintjs/datetime2\";\n\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n onApply?: () => void;\n onClear?: () => void;\n control: Control;\n name: string;\n rangeCalendar?: boolean;\n defaultShortcut?: number | null;\n shortcutsChange?: (e) => void;\n singleMonth?: boolean;\n maxDate?: Date | undefined;\n /** Sobrescreve a cor do texto do label no estado de repouso (ex.: \"text-neutral-700\"). */\n labelClassName?: string;\n /** Mostra o botão de limpar (X) no chip fechado, sobre o filtro já selecionado. Padrão: true. */\n clearButton?: boolean;\n}\n\nexport const FilterCalendar = ({\n icon,\n label,\n onApply,\n onClear,\n control,\n name,\n rangeCalendar = true,\n defaultShortcut,\n shortcutsChange,\n singleMonth = false,\n maxDate = undefined,\n labelClassName,\n clearButton = true,\n}: Props) => {\n const [currentValue, setCurrentValue] = useState<any>([]);\n\n const isMobileSize = window?.innerWidth < 768;\n\n const shorcuts: any = [\n {\n label: \"Todo o período\",\n dateRange: [],\n },\n {\n label: \"Hoje\",\n dateRange: [\n set(new Date(), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Ontem\",\n dateRange: [\n set(sub(new Date(), { days: 1 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(sub(new Date(), { days: 1 }), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 7 dias\",\n dateRange: [\n set(sub(new Date(), { days: 7 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 14 dias\",\n dateRange: [\n set(sub(new Date(), { days: 14 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 30 dias\",\n dateRange: [\n set(sub(new Date(), { days: 30 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 60 dias\",\n dateRange: [\n set(sub(new Date(), { days: 60 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 90 dias\",\n dateRange: [\n set(sub(new Date(), { days: 90 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Esta semana\",\n dateRange: [\n startOfWeek(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Semana passada\",\n dateRange: [\n startOfWeek(sub(new Date(), { days: 7 })),\n endOfWeek(sub(new Date(), { days: 7 })),\n ],\n },\n {\n label: \"Este Mês\",\n dateRange: [\n startOfMonth(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Mês passado\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 1 })),\n endOfMonth(sub(new Date(), { months: 1 })),\n ],\n },\n {\n label: \"Últimos 6 meses\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 6 })),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ,\n ],\n },\n ];\n const [selectedShortcut, setSelectedShortcut] = useState(\n defaultShortcut || shorcuts[0],\n );\n const [calendarLabel, setCalendarLabel] = useState(\n defaultShortcut != null && shorcuts[defaultShortcut]\n ? shorcuts[defaultShortcut].label\n : \"\",\n );\n\n const calendar = (\n <div id=\"group-input-calendar\" className=\"relative\">\n {rangeCalendar ? (\n <DateRangePicker3\n allowSingleDayRange\n shortcuts={shorcuts}\n selectedShortcutIndex={selectedShortcut}\n onChange={(e) => {\n let date = [];\n if (e[0] && e[0] !== null) {\n date.push(\n set(e[0] as never, {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }) as never,\n );\n }\n\n if (e[1] && e[1] !== null) {\n date.push(\n set(e[1] as never, {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }) as never,\n );\n }\n\n if (e[0] !== null && e[1] == null) {\n setCalendarLabel(\"\");\n\n if (setSelectedShortcut) setSelectedShortcut(null);\n }\n setCalendarLabel(\"\");\n setCurrentValue(date);\n }}\n singleMonthOnly={singleMonth}\n value={currentValue}\n highlightCurrentDay={true}\n minDate={subYears(new Date(), 50)}\n maxDate={maxDate}\n locale=\"pt-BR\"\n onShortcutChange={(e) => {\n const index = shorcuts.findIndex((item) => item.label === e.label);\n if (index !== -1 && setSelectedShortcut) {\n setSelectedShortcut(index);\n }\n setCalendarLabel(e?.label);\n }}\n />\n ) : (\n <DatePicker3\n onChange={(e) => {\n setCurrentValue(e);\n }}\n value={currentValue}\n highlightCurrentDay={true}\n locale=\"pt-BR\"\n />\n )}\n </div>\n );\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue =\n field?.value?.length > 0 ||\n (!!calendarLabel && calendarLabel !== shorcuts[0].label);\n\n const clearValue = () => {\n if (!onClear) return;\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n };\n\n const chipLabel = calendarLabel\n ? calendarLabel\n : field?.value?.length > 0\n ? field?.value\n ?.map((item) => (item !== null ? format(item, \"dd/MM/yyyy\") : \"\"))\n .join(\" - \")\n : label;\n\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n {/* `group` aqui só serve pro botão de limpar (sibling) reagir\n ao hover/press do chip inteiro — o próprio chip usa\n hover:/active: direto, sem precisar de group. */}\n <div className=\"relative group\">\n <PopoverButton\n as=\"button\"\n className={clsx(\n \"group/chip flex items-center justify-center gap-[6px] rounded-lg px-3 py-2 text-p-md font-bold outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n hasValue\n ? \"bg-blue-100 border-[0.5px] border-blue-500 text-blue-500 shadow-[0px_1px_3px_0px_rgba(0,158,219,0.2)] group-hover:bg-blue-500 group-hover:border-transparent group-hover:text-white active:bg-[#007fb0] active:border-transparent active:text-white\"\n : `bg-surface border-[0.5px] border-stroke ${labelClassName ?? \"text-paragraph\"} shadow-[0px_1px_2px_0px_rgba(56,61,77,0.1)] hover:bg-neutral-50 active:bg-blue-100 active:border-blue-500 active:text-blue-500`,\n )}\n >\n {icon && <div className=\"text-[18px] leading-none\">{icon}</div>}\n <label className=\"truncate cursor-pointer\">{chipLabel}</label>\n <i\n className={clsx(\n \"text-[18px]\",\n open ? \"uil uil-angle-up\" : \"uil uil-angle-down\",\n // Some quando o X de limpar aparece, pra não sobrepor.\n hasValue && clearButton\n ? \"group-hover:opacity-0 group-active:opacity-0\"\n : \"\",\n )}\n ></i>\n </PopoverButton>\n {hasValue && clearButton && (\n <button\n type=\"button\"\n aria-label=\"Limpar\"\n // O \"x\" sozinho nao diz o que faz: o tooltip nomeia a acao no hover.\n // Um id por filtro, senao os chips da tela compartilhariam o mesmo balao.\n data-tooltip-id={`filter-calendar-clear-${name}`}\n data-tooltip-content=\"Limpar\"\n data-tooltip-place=\"top\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n clearValue();\n }}\n className={clsx(\n \"absolute right-0 top-1/2 hidden h-9 -translate-y-1/2 items-center justify-end rounded-r-lg pl-2 pr-1\",\n \"bg-gradient-to-l from-blue-500 via-blue-500 via-[69%] to-transparent\",\n \"group-hover:flex group-active:flex group-active:from-[#007fb0] group-active:via-[#007fb0]\",\n )}\n >\n <span className=\"flex h-full w-7 items-center justify-center rounded-[6px] text-white\">\n <i className=\"uil uil-times text-[18px]\"></i>\n </span>\n </button>\n )}\n {hasValue && clearButton && (\n <ClearTooltip id={`filter-calendar-clear-${name}`} />\n )}\n </div>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel className=\"p-3 whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200\">\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n {calendar}\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n clearValue();\n close();\n }}\n >\n Limpar\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n Cancelar\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n Aplicar\n </Button>\n </div>\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n useRef,\n JSX,\n} from \"react\";\nimport { UseFormRegisterReturn } from \"react-hook-form\";\nimport clsx from \"clsx\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: any;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n searchOnClick?: () => void;\n onClear?: () => void;\n collapsed?: boolean;\n};\n\nexport default function InputSmall({\n type,\n registration,\n onClick,\n onBlur,\n onChange,\n inputProps,\n icon,\n clearField,\n disabled,\n placeholder,\n className,\n onKeyDown,\n value,\n searchOnClick,\n onClear,\n collapsed,\n}: InputFieldProps) {\n const inputRef = useRef(null);\n\n const styles = {\n input: `text-p-md text-paragraph w-full outline-none placeholder:text-label disabled:text-disabled disabled:cursor-not-allowed bg-transparent`,\n icon: \"text-label group-focus-within:text-neutral-600 m-[10px]\",\n // disabled fica no <input> interno, não neste wrapper — por isso o\n // estado desabilitado é resolvido via ternário em vez de `disabled:`\n // (pseudo-classe que nunca dispararia numa div).\n wrapper: `border-[0.5px] border-stroke focus-within:border-[1.5px] focus-within:border-blue-500 group rounded-lg h-9 w-full text-paragraph flex items-center justify-between ${\n disabled ? \"bg-neutral-100 shadow-none\" : \"bg-surface shadow-input\"\n } ${className}`,\n clear: \"pr-[5px] cursor-pointer text-label text-[16px]\",\n };\n\n const elem = inputRef?.current as any;\n return (\n <div className={clsx(styles.wrapper)}>\n {icon && !searchOnClick && (\n <div className={clsx(styles.icon)}>{icon}</div>\n )}\n <input\n {...registration}\n {...inputProps}\n type=\"search-text\"\n ref={inputRef}\n className={clsx(\n {\n [\"pl-1\"]: collapsed,\n },\n styles.input\n )}\n placeholder={placeholder}\n onBlur={onBlur}\n onChange={(e) => onChange(e.target.value)}\n onClick={onClick}\n disabled={disabled}\n onKeyDown={onKeyDown}\n />\n {clearField && value && !disabled && (\n <i\n className={clsx(styles.clear, \"uil uil-times\")}\n onClick={() => {\n elem.value = \"\";\n elem?.focus();\n onChange(\"\");\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n {searchOnClick && (\n <div className=\"py-1\">\n <button\n type=\"button\"\n className={clsx({\n [\"border-l border-input pl-1\"]: clearField && value && !disabled,\n [\"text-blue-500\"]: !disabled,\n [\"text-neutral-300\"]: disabled,\n [\"pl-[2px]\"]: collapsed,\n })}\n onClick={searchOnClick}\n >\n {/* Figma \"Input Button / Main action\": ícone vira botão de fato —\n hover clareia com um círculo azul claro, active preenche sólido\n com ícone branco. Antes o ícone não tinha nenhum feedback visual. */}\n <i className=\"uil uil-search text-[16px] rounded-full p-1.5 hover:bg-blue-100 active:bg-blue-500 active:text-white transition-colors\"></i>\n </button>\n </div>\n )}\n </div>\n );\n}\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { Fragment, Key, useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport {\n Listbox,\n ListboxOption,\n ListboxOptions,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport InputSmall from \"../InputSmall/InputSmall\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\n\nexport interface Options {\n id: any;\n label: any;\n description?: any;\n disabled?: boolean;\n icon?: JSX.Element;\n}\n\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n isMulti?: boolean;\n options: Options[];\n onApply?: () => void;\n onClear?: () => void;\n onSelectAll?: () => void;\n control: Control;\n name: string;\n fetch?: (value: string | number, button: string) => Promise<Options[]>;\n subFilters?: {\n id: string | any;\n name: string;\n }[];\n emptyMessage?: string;\n initialMessage?: string;\n /** Sobrescreve a classe do texto de initialMessage (ex.: \"text-center\"). Padrão: sem alinhamento. */\n initialMessageClassName?: string;\n applyOnClick?: boolean;\n showFilter?: boolean;\n renderOption?: (option: Options, isSelected: boolean) => JSX.Element;\n /** Placeholder do campo de busca. Padrão: \"Pesquisar\". */\n searchPlaceholder?: string;\n /** Sobrescreve o padding/classe do painel do dropdown. Padrão: \"p-2\". */\n panelClassName?: string;\n /** Labels dos botões de ação (sobrescrevem os padrões). */\n applyLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n selectAllLabel?: string;\n}\n\nexport const FilterOptions = ({\n icon,\n label,\n isMulti,\n options = [],\n onApply,\n onClear,\n onSelectAll,\n control,\n name,\n fetch,\n subFilters = [],\n emptyMessage,\n initialMessage,\n initialMessageClassName,\n applyOnClick = false,\n showFilter = false,\n renderOption,\n searchPlaceholder = \"Pesquisar\",\n panelClassName = \"p-2\",\n applyLabel = \"Aplicar\",\n cancelLabel = \"Cancelar\",\n clearLabel = \"Limpar\",\n selectAllLabel = \"Marcar todos\",\n}: Props) => {\n const style = {\n filter:\n \"rounded-3xl shadow-input bg-surface hover:bg-neutral-50 border border-[0.5px] border-neutral-200 active:text-blue-500 active:bg-blue-100 active:border-blue-500\",\n filterOpen:\n \"rounded-3xl shadow-input border border-blue-500 bg-blue-100 text-blue-500\",\n filterActive:\n \"rounded-3xl border border-blue-500 text-blue-500 bg-blue-100 shadow-input hover:bg-blue-500 hover:text-accent-label active:text-accent-label active:bg-blue-600 active:border-blue-600\",\n };\n\n const [currentValue, setCurrentValue] = useState<any>(isMulti ? [] : {});\n const [data, setData] = useState(() => options);\n const [filter, setFilter] = useState(\"\");\n const [subFilter, setSubFilter] = useState(\n subFilters?.length > 0 ? subFilters[0].id : null,\n );\n const [loading, setLoading] = useState(false);\n\n const search = async () => {\n if (filter?.length > 0 || options?.length > 0) {\n if (fetch) {\n setData(await fetch(filter, subFilter));\n } else {\n const result = options.filter((opt) =>\n opt?.label?.toLowerCase().includes(filter.toLowerCase()),\n );\n const order = result.sort((a, b) => a?.label?.toLowerCase());\n setData(order);\n }\n } else {\n setData([]);\n }\n setLoading(false);\n };\n\n useEffect(() => {\n setLoading(true);\n const timeout = setTimeout(() => {\n search();\n }, 400);\n\n return () => clearTimeout(timeout);\n }, [filter]);\n\n const optionStyle = (option, isSelected) => {\n return (\n <ListboxOption\n disabled={option.disabled}\n key={option.id as Key}\n value={option}\n as={Fragment}\n >\n {renderOption ? (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n {renderOption(option, isSelected)}\n </div>\n ) : (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n },\n \"text-wrap break-words font-normal block\",\n )}\n >\n {option?.label}\n </span>\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n [\"text-label\"]: !isSelected,\n },\n \"w-[200px] whitespace-nowrap text-ellipsis overflow-hidden text-p-sm block\",\n )}\n >\n {option?.description}\n </span>\n </div>\n )}\n </ListboxOption>\n );\n };\n const isMobileSize = window?.innerWidth < 768;\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue = isMulti ? field?.value?.length > 0 : !!field?.value?.id;\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n <PopoverButton\n as=\"button\"\n className=\"rounded-3xl outline-none focus:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\"\n >\n <div\n className={clsx(\n {\n [style.filter]: !hasValue && !open,\n [style.filterOpen]: open && !hasValue,\n [style.filterActive]:\n (open && hasValue) || (!open && hasValue),\n },\n `group px-3 h-[36px] text-p-ls font-bold disabled:shadow-none active:shadow-none flex items-center justify-between outline-none gap-2`,\n )}\n >\n {icon && (\n <div\n className={clsx({\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n })}\n >\n {icon}\n </div>\n )}\n\n <label\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"truncate cursor-pointer\",\n )}\n >\n {isMulti\n ? label\n : field?.value?.id\n ? field?.value?.label\n : label}\n </label>\n {isMulti && field.value && field.value.length > 0 && (\n <div className=\"bg-blue-500 text-accent-label text-p-xs px-1 py-[2px] rounded group-hover:bg-blue-500\">\n {field.value.length}\n </div>\n )}\n {open ? (\n <i\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"uil uil-angle-up text-[18px]\",\n )}\n ></i>\n ) : (\n <i\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"uil uil-angle-down text-[18px]\",\n )}\n ></i>\n )}\n </div>\n </PopoverButton>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel\n className={clsx(\n \"whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200\",\n panelClassName,\n )}\n >\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Listbox\n value={currentValue || []}\n onChange={setCurrentValue}\n multiple={isMulti}\n >\n <ListboxOptions\n static\n className={clsx(\n \"max-h-60 w-full overflow-x-hidden overflow-y-auto bg-surface text-p-md focus:outline-none sm:text-sm relative\",\n {\n \"pr-2\": options.some(\n (option) => option.description,\n )\n ? options.length > 3\n : options.length > 4,\n },\n )}\n >\n <div className=\"mr-1 sticky top-0 z-30\">\n {showFilter && (\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setFilter(e)}\n value={filter}\n placeholder={searchPlaceholder}\n clearField\n onKeyDown={(e) => {\n if (\n e.key === \" \" ||\n e.code === \"Space\"\n ) {\n e.stopPropagation();\n }\n }}\n />\n )}\n {subFilters && fetch && (\n <div className=\"flex items-center gap-2 pt-2 bg-surface\">\n {subFilters.map((item, index) => {\n const active = item?.id === subFilter;\n return (\n <button\n key={index}\n className={clsx(\n {\n [\"bg-blue-500 text-accent-label\"]:\n active,\n [\"text-paragraph\"]: !active,\n },\n `rounded-[20px] border-[0.5px] border-neutral-200 px-4 py-[6px]`,\n )}\n onClick={() => {\n if (subFilter == item.id) {\n setSubFilter(null);\n } else {\n setSubFilter(item.id);\n }\n }}\n >\n {item.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n {loading && (\n <div className=\"flex items-center justify-center gap-2 w-full my-4\">\n <SpinnerIcon className=\"animate-spin w-[16px] h-[16px]\" />\n Carregando\n </div>\n )}\n {data?.length === 0 &&\n filter?.length > 0 &&\n !loading && (\n <div className=\"py-4\">\n <span className=\"text-label text-p-md\">\n {emptyMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n data?.length === 0 &&\n filter?.length === 0 &&\n !loading &&\n options?.length === 0 &&\n !currentValue?.id && (\n <div className={clsx(\"py-4\", initialMessageClassName)}>\n <span className=\"text-label text-p-md\">\n {initialMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n currentValue &&\n currentValue?.id &&\n filter?.length === 0 && (\n <div className=\"py-2\">\n {isMulti ? (\n <>\n {currentValue?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue?.length > 0 &&\n currentValue?.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue?.id === option.id;\n return optionStyle(\n options,\n isSelected,\n );\n })}\n </>\n ) : (\n optionStyle(field.value, true)\n )}\n </div>\n )}\n {!loading &&\n data?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue.length > 0 &&\n currentValue.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue.id === option.id;\n return optionStyle(option, isSelected);\n })}\n </ListboxOptions>\n </Listbox>\n {!applyOnClick && (\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {isMulti && onSelectAll && (\n <div className=\"border-r pr-2 border-neutral-300\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n onSelectAll();\n field.onChange(options);\n setCurrentValue(options);\n close();\n }}\n >\n {selectAllLabel}\n </Button>\n </div>\n )}\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n if (onClear) {\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n }\n close();\n }}\n >\n {clearLabel}\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n {applyLabel}\n </Button>\n </div>\n )}\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { Fragment, Key, useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport {\n Listbox,\n ListboxOption,\n ListboxOptions,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport { Popover as ClearTooltip } from \"../Popover/Popover\";\nimport InputSmall from \"../InputSmall/InputSmall\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\nimport type { Options } from \"../FilterButton/FilterOptions\";\n\n// v2 do filtro de listagem (Figma node 6650:20472, \"Filter v2\") — componente\n// separado do FilterOptions (v1) por pedido explícito, sem NENHUMA mudança\n// de funcionalidade: toda a lógica do painel (busca, subfiltros, seleção\n// múltipla, aplicar/cancelar/limpar) é a mesma, copiada tal e qual. A única\n// diferença real é o visual do chip/gatilho fechado — cores, sombra, e o\n// botão de limpar (X) que aparece no lugar da seta ao passar o mouse/clicar\n// num filtro já selecionado, em vez de só existir dentro do painel aberto.\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n isMulti?: boolean;\n options: Options[];\n onApply?: () => void;\n onClear?: () => void;\n onSelectAll?: () => void;\n control: Control;\n name: string;\n fetch?: (value: string | number, button: string) => Promise<Options[]>;\n subFilters?: {\n id: string | any;\n name: string;\n }[];\n emptyMessage?: string;\n initialMessage?: string;\n /** Sobrescreve a classe do texto de initialMessage (ex.: \"text-center\"). Padrão: sem alinhamento. */\n initialMessageClassName?: string;\n applyOnClick?: boolean;\n showFilter?: boolean;\n renderOption?: (option: Options, isSelected: boolean) => JSX.Element;\n /** Placeholder do campo de busca. Padrão: \"Pesquisar\". */\n searchPlaceholder?: string;\n /** Sobrescreve o padding/classe do painel do dropdown. Padrão: \"p-2\". */\n panelClassName?: string;\n /** Labels dos botões de ação (sobrescrevem os padrões). */\n applyLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n selectAllLabel?: string;\n /** Mostra o botão de limpar (X) no chip fechado, sobre o filtro já selecionado. Padrão: true. */\n clearButton?: boolean;\n}\n\nexport const FilterSelect = ({\n icon,\n label,\n isMulti,\n options = [],\n onApply,\n onClear,\n onSelectAll,\n control,\n name,\n fetch,\n subFilters = [],\n emptyMessage,\n initialMessage,\n initialMessageClassName,\n applyOnClick = false,\n showFilter = false,\n renderOption,\n searchPlaceholder = \"Pesquisar\",\n panelClassName = \"p-2\",\n applyLabel = \"Aplicar\",\n cancelLabel = \"Cancelar\",\n clearLabel = \"Limpar\",\n selectAllLabel = \"Marcar todos\",\n clearButton = true,\n}: Props) => {\n const [currentValue, setCurrentValue] = useState<any>(isMulti ? [] : {});\n const [data, setData] = useState(() => options);\n const [filter, setFilter] = useState(\"\");\n const [subFilter, setSubFilter] = useState(\n subFilters?.length > 0 ? subFilters[0].id : null,\n );\n const [loading, setLoading] = useState(false);\n\n const search = async () => {\n if (filter?.length > 0 || options?.length > 0) {\n if (fetch) {\n setData(await fetch(filter, subFilter));\n } else {\n const result = options.filter((opt) =>\n opt?.label?.toLowerCase().includes(filter.toLowerCase()),\n );\n const order = result.sort((a, b) => a?.label?.toLowerCase());\n setData(order);\n }\n } else {\n setData([]);\n }\n setLoading(false);\n };\n\n useEffect(() => {\n setLoading(true);\n const timeout = setTimeout(() => {\n search();\n }, 400);\n\n return () => clearTimeout(timeout);\n }, [filter]);\n\n const optionStyle = (option, isSelected) => {\n return (\n <ListboxOption\n disabled={option.disabled}\n key={option.id as Key}\n value={option}\n as={Fragment}\n >\n {renderOption ? (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n {renderOption(option, isSelected)}\n </div>\n ) : (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n },\n \"text-wrap break-words font-normal block\",\n )}\n >\n {option?.label}\n </span>\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n [\"text-label\"]: !isSelected,\n },\n \"w-[200px] whitespace-nowrap text-ellipsis overflow-hidden text-p-sm block\",\n )}\n >\n {option?.description}\n </span>\n </div>\n )}\n </ListboxOption>\n );\n };\n const isMobileSize = window?.innerWidth < 768;\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue = isMulti ? field?.value?.length > 0 : !!field?.value?.id;\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n {/* `group` aqui só serve pro botão de limpar (sibling) reagir\n ao hover/press do chip inteiro — o próprio chip usa\n hover:/active: direto, sem precisar de group. */}\n <div className=\"relative group\">\n <PopoverButton\n as=\"button\"\n className={clsx(\n \"group/chip flex items-center justify-center gap-[6px] rounded-lg px-3 py-2 text-p-md font-bold outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n hasValue\n ? \"bg-blue-100 border-[0.5px] border-blue-500 text-blue-500 shadow-[0px_1px_3px_0px_rgba(0,158,219,0.2)] group-hover:bg-blue-500 group-hover:border-transparent group-hover:text-white active:bg-[#007fb0] active:border-transparent active:text-white\"\n : \"bg-surface border-[0.5px] border-stroke text-paragraph shadow-[0px_1px_2px_0px_rgba(56,61,77,0.1)] hover:bg-neutral-50 active:bg-blue-100 active:border-blue-500 active:text-blue-500\",\n )}\n >\n {icon && <div className=\"text-[18px] leading-none\">{icon}</div>}\n <span className=\"truncate cursor-pointer\">\n {isMulti\n ? label\n : field?.value?.id\n ? field?.value?.label\n : label}\n </span>\n {isMulti && field.value && field.value.length > 0 && (\n <div className=\"rounded-[2px] bg-blue-500 px-1 py-px text-p-xs text-white group-hover/chip:bg-[#007fb0] group-active/chip:bg-[#007fb0]\">\n {field.value.length}\n </div>\n )}\n <i\n className={clsx(\n \"text-[18px]\",\n open ? \"uil uil-angle-up\" : \"uil uil-angle-down\",\n // Some quando o X de limpar aparece, pra não sobrepor.\n hasValue && clearButton\n ? \"group-hover:opacity-0 group-active:opacity-0\"\n : \"\",\n )}\n ></i>\n </PopoverButton>\n {hasValue && clearButton && (\n <button\n type=\"button\"\n aria-label={clearLabel}\n // O \"x\" sozinho nao diz o que faz: o tooltip nomeia a acao no hover.\n // Um id por filtro, senao os chips da tela compartilhariam o mesmo balao.\n data-tooltip-id={`filter-select-clear-${name}`}\n data-tooltip-content={clearLabel}\n data-tooltip-place=\"top\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n const emptyValue = isMulti ? [] : null;\n field.onChange(emptyValue);\n setCurrentValue(isMulti ? [] : {});\n if (onClear) onClear();\n }}\n className={clsx(\n \"absolute right-0 top-1/2 hidden h-9 -translate-y-1/2 items-center justify-end rounded-r-lg pl-2 pr-1\",\n \"bg-gradient-to-l from-blue-500 via-blue-500 via-[69%] to-transparent\",\n \"group-hover:flex group-active:flex group-active:from-[#007fb0] group-active:via-[#007fb0]\",\n )}\n >\n <span className=\"flex h-full w-7 items-center justify-center rounded-[6px] text-white\">\n <i className=\"uil uil-times text-[18px]\"></i>\n </span>\n </button>\n )}\n {hasValue && clearButton && (\n <ClearTooltip id={`filter-select-clear-${name}`} />\n )}\n </div>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel\n className={clsx(\n \"whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200 outline-none focus:outline-none\",\n panelClassName,\n )}\n >\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Listbox\n value={currentValue || []}\n onChange={setCurrentValue}\n multiple={isMulti}\n >\n <ListboxOptions\n static\n className={clsx(\n \"max-h-60 w-full overflow-x-hidden overflow-y-auto bg-surface text-p-md focus:outline-none sm:text-sm relative\",\n {\n \"pr-2\": options.some(\n (option) => option.description,\n )\n ? options.length > 3\n : options.length > 4,\n },\n )}\n >\n <div className=\"mr-1 sticky top-0 z-30\">\n {showFilter && (\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setFilter(e)}\n value={filter}\n placeholder={searchPlaceholder}\n clearField\n onKeyDown={(e) => {\n if (\n e.key === \" \" ||\n e.code === \"Space\"\n ) {\n e.stopPropagation();\n }\n }}\n />\n )}\n {subFilters && fetch && (\n <div className=\"flex items-center gap-2 pt-2 bg-surface\">\n {subFilters.map((item, index) => {\n const active = item?.id === subFilter;\n return (\n <button\n key={index}\n className={clsx(\n {\n [\"bg-blue-500 text-accent-label\"]:\n active,\n [\"text-paragraph\"]: !active,\n },\n `rounded-[20px] border-[0.5px] border-neutral-200 px-4 py-[6px]`,\n )}\n onClick={() => {\n if (subFilter == item.id) {\n setSubFilter(null);\n } else {\n setSubFilter(item.id);\n }\n }}\n >\n {item.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n {loading && (\n <div className=\"flex items-center justify-center gap-2 w-full my-4\">\n <SpinnerIcon className=\"animate-spin w-[16px] h-[16px]\" />\n Carregando\n </div>\n )}\n {data?.length === 0 &&\n filter?.length > 0 &&\n !loading && (\n <div className=\"py-4\">\n <span className=\"text-label text-p-md\">\n {emptyMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n data?.length === 0 &&\n filter?.length === 0 &&\n !loading &&\n options?.length === 0 &&\n !currentValue?.id && (\n <div className={clsx(\"py-4\", initialMessageClassName)}>\n <span className=\"text-label text-p-md\">\n {initialMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n currentValue &&\n currentValue?.id &&\n filter?.length === 0 && (\n <div className=\"py-2\">\n {isMulti ? (\n <>\n {currentValue?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue?.length > 0 &&\n currentValue?.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue?.id === option.id;\n return optionStyle(\n options,\n isSelected,\n );\n })}\n </>\n ) : (\n optionStyle(field.value, true)\n )}\n </div>\n )}\n {!loading &&\n data?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue.length > 0 &&\n currentValue.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue.id === option.id;\n return optionStyle(option, isSelected);\n })}\n </ListboxOptions>\n </Listbox>\n {!applyOnClick && (\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {isMulti && onSelectAll && (\n <div className=\"border-r pr-2 border-neutral-300\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n onSelectAll();\n field.onChange(options);\n setCurrentValue(options);\n close();\n }}\n >\n {selectAllLabel}\n </Button>\n </div>\n )}\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n if (onClear) {\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n }\n close();\n }}\n >\n {clearLabel}\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n {applyLabel}\n </Button>\n </div>\n )}\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","// Wrapper to ensure proper import of react-intl-currency-input\n// This handles both ESM and CommonJS interoperability\nimport IntlCurrencyInputRaw from 'react-intl-currency-input';\n\n// @ts-ignore - Handle both default and named exports\nconst IntlCurrencyInput = (IntlCurrencyInputRaw.default || IntlCurrencyInputRaw) as typeof IntlCurrencyInputRaw;\n\nexport default IntlCurrencyInput;\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n JSX,\n} from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport IntlCurrencyInput from \"../utils/intl-currency-input\";\ntype InputMoneyProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n control: Control<any> | any;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>> | any;\n onBlur?: (value: any) => void;\n onChangeValue?: (e: any) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n isWeightField?: boolean;\n minFractionDigits?: number;\n};\n\nexport function InputMoney({\n label,\n type,\n onClick,\n error,\n onBlur,\n onChangeValue,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n control,\n defaultValue,\n isWeightField,\n minFractionDigits = 2,\n}: InputMoneyProps) {\n const numberConfig = isWeightField\n ? {\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n useGrouping: false,\n }\n : {\n style: \"currency\",\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n };\n const currencyConfig: any = {\n locale: \"pt-BR\",\n formats: {\n number: {\n BRL: numberConfig,\n },\n },\n };\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke focus-visible:border-blue-500\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1px] w-[38px] rounded-l-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: \"border-[0.5px] border-neutral-300 rounded shadow-input\",\n };\n\n return (\n <Controller\n control={control}\n name={name as string}\n defaultValue={defaultValue}\n render={({ field: { ref: _ref, ...field } }) => {\n // ref é descartado: IntlCurrencyInput é um componente de função sem\n // forwardRef e dispara \"Function components cannot be given refs\".\n const handleChange = (event: any, value: any, maskedValue: any) => {\n event.preventDefault();\n field.onChange(value);\n if (onChangeValue) {\n onChangeValue(value);\n }\n };\n\n if (typeof field.value === \"string\") field.value = Number(field.value);\n\n return (\n <div>\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <IntlCurrencyInput\n {...inputProps}\n {...field}\n type=\"text\"\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[46px]\"]: (!label && placeholder && icon) || icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onClick={onClick}\n disabled={disabled}\n currency=\"BRL\"\n config={currencyConfig}\n onChange={handleChange}\n onBlur={() => {\n if (onBlur) {\n onBlur(field.value);\n }\n }}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[46px]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n // onClick={() => ref?.current.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-p-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputMoney.displayName = \"InputMoney\";\n","// Wrapper to ensure proper import of lodash debounce\n// This handles both ESM and CommonJS interoperability\n// Using full lodash import to avoid Windows path resolution issues with lodash/debounce\nimport * as lodashNamespace from 'lodash';\n\n// @ts-ignore - Handle both default and named exports\nconst lodash = (lodashNamespace.default || lodashNamespace) as any;\nconst debounce = lodash.debounce;\n\nexport default debounce;\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n useMemo,\n useState,\n JSX,\n} from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport _debounce from \"../utils/debounce\";\n\ntype InputNumberProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n control: Control<any>;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n onBlur?: any;\n onChangeValue?: (e) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n hideArrows?: boolean;\n onlyNumbers?: boolean;\n showZero?: boolean;\n maxValue?: number;\n};\n\nexport function InputNumber({\n label,\n type,\n onClick,\n error,\n onBlur,\n onChangeValue,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n control,\n defaultValue,\n hideArrows = false,\n maxLength,\n onlyNumbers,\n showZero,\n maxValue,\n}: InputNumberProps) {\n const input = name ? document?.getElementById(name) : null;\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-3 peer text-paragraph bg-surface border-[0.5px] rounded-lg outline-none block pb-[10px] h-[44px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500 shadow-none\"\n : \"border-stroke focus-visible:border-blue-500 shadow-input\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[2px] left-[1.5px] w-[38px] rounded-l-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: `border-[0.5px] border-neutral-300 rounded shadow-[0px_1px_1px_rgba(56,61,77,0.1)] h-4 w-4 flex items-center justify-center ${\n disabled ? \"bg-neutral-100\" : \"bg-surface\"\n }`,\n };\n const [debouncedCount, setDebouncedCount] = useState(0);\n const save = () => {\n if (onBlur) {\n onBlur(value);\n }\n };\n\n const updateCount = useMemo(() => {\n return _debounce(() => {\n save();\n }, 1000);\n }, []);\n\n return (\n <Controller\n control={control}\n name={name as any}\n defaultValue={defaultValue}\n render={({ field: { onChange, value } }) => {\n const update = (value) => {\n updateCount();\n setDebouncedCount(value);\n };\n\n const changeValue = (value) => {\n onChange(value);\n if (onChangeValue) {\n const val = {\n ...value,\n target: {\n ...value.target,\n value: value.target.value.replace(/^0+/, \"\"),\n },\n };\n onChangeValue(val);\n }\n update(debouncedCount + 1);\n };\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <input\n type=\"number\"\n autoComplete=\"off\"\n id={name}\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[57px]\"]: !label && placeholder && icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onKeyDown={(e) => {\n if (\n e.code === \"ArrowUp\" ||\n e.code === \"ArrowDown\" ||\n e.code === \"Enter\" ||\n e.key === \"+\" ||\n e.key === \"-\" ||\n (e.key === \"e\" && !onlyNumbers)\n ) {\n e.preventDefault();\n }\n if (\n onlyNumbers &&\n ![\n \"Digit1\",\n \"Digit2\",\n \"Digit3\",\n \"Digit4\",\n \"Digit5\",\n \"Digit6\",\n \"Digit7\",\n \"Digit8\",\n \"Digit9\",\n \"Digit0\",\n \"Backspace\",\n ].includes(e.code)\n ) {\n e.preventDefault();\n }\n }}\n onClick={onClick}\n disabled={disabled}\n value={\n showZero ? String(value) : String(value).replace(/^0+/, \"\")\n }\n onChange={(e: any) => {\n let value = maxLength\n ? {\n ...e,\n target: {\n ...e.target,\n value: e.target.value.slice(0, maxLength),\n },\n }\n : e;\n\n if (\n !maxValue ||\n (maxValue && Number(e.target.value) <= maxValue)\n ) {\n changeValue(value);\n } else {\n }\n }}\n defaultValue={value}\n onBlur={(evt) => {\n if (onBlur) onBlur(evt.target.value);\n }}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3.5rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n onClick={() => input?.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n {!hideArrows && (\n <div className={clsx([styles.buttonsWrapper])}>\n <button\n type=\"button\"\n className={clsx([styles.button])}\n disabled={disabled}\n onClick={() => {\n if (\n !maxValue ||\n (maxValue && Number(value || 0) + 1 <= maxValue)\n ) {\n changeValue(String(Number(value || 0) + 1));\n }\n }}\n >\n <i className=\"uil uil-angle-up text-[12px] text-neutral-600\"></i>\n </button>\n <button\n type=\"button\"\n className={clsx([styles.button])}\n disabled={disabled}\n onClick={() => {\n if (\n !maxValue ||\n (maxValue &&\n Number(value === 0 ? 0 : Number(value) - 1) <=\n maxValue)\n ) {\n changeValue(\n value === 0 ? 0 : String(Number(value) - 1),\n );\n }\n }}\n >\n <i className=\"uil uil-angle-down text-[12px] text-neutral-600\"></i>\n </button>\n </div>\n )}\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"absolute text-dangerous-500 text-p-xs left-[4px] -bottom-[18px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputNumber.displayName = \"InputNumber\";\n","import { DetailedHTMLProps, InputHTMLAttributes, JSX } from \"react\";\nimport { Controller, Control, FieldError } from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport IntlCurrencyInput from \"../utils/intl-currency-input\";\n\ntype InputPercentageProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n control: Control<any>;\n onClick?: any;\n error?: FieldError;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n maskChar?: string;\n minFractionDigits?: number;\n onChangeValue?: (e) => void;\n};\nexport function InputPercentage({\n label,\n onClick,\n error,\n onBlur,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n placeholder,\n control,\n defaultValue,\n minFractionDigits = 2,\n onChangeValue,\n maxLength,\n}: InputPercentageProps) {\n const config = {\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n useGrouping: false,\n };\n const currencyConfig: any = {\n locale: \"pt-BR\",\n formats: {\n number: {\n BRL: config,\n },\n },\n };\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke focus-visible:border-blue-500\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] text-[22px] rounded-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: \"border-[0.5px] border-neutral-300 rounded shadow-input\",\n };\n const input = name ? document?.getElementById(name) : null;\n\n return (\n <Controller\n control={control}\n name={name as any}\n defaultValue={defaultValue}\n render={({ field: { ref: _ref, ...field } }) => {\n // ref é descartado: IntlCurrencyInput é um componente de função sem\n // forwardRef e dispara \"Function components cannot be given refs\".\n const handleChange = (event, value, maskedValue) => {\n event.preventDefault();\n field.onChange(value.toString());\n if (onChangeValue) {\n onChangeValue(value.toString());\n }\n };\n\n if (typeof field.value === \"string\") field.value = Number(field.value);\n\n return (\n <div>\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <IntlCurrencyInput\n {...inputProps}\n {...field}\n type=\"text\"\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[3rem]\"]: icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onClick={onClick}\n disabled={disabled}\n currency=\"BRL\"\n config={currencyConfig}\n onChange={handleChange}\n max={maxLength}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n onClick={() => input?.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputPercentage.displayName = \"InputPercentage\";\n","import React from \"react\";\nimport { HTMLInputTypeAttribute, KeyboardEventHandler, useRef } from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport InputMask from \"react-input-mask\";\nimport {Input} from \"./Input\";\n\ntype MaskedInputProps = {\n label: string;\n placeholder?: string;\n type?: HTMLInputTypeAttribute;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n mask?: string;\n control: Control<any>;\n name: string;\n required?: boolean;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n maskChar?: string;\n alwaysShowMask?: boolean;\n defaultValue?: any;\n disabled?: boolean;\n};\n\nexport const MaskedInput = ({\n type = \"text\",\n name,\n label,\n placeholder,\n error,\n mask,\n control,\n required,\n onKeyUp,\n maskChar = \"\",\n alwaysShowMask,\n defaultValue,\n disabled,\n}: MaskedInputProps) => {\n const ref = useRef(null);\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const beforeMaskedValueChange = (states: any) => {\n const { nextState, previousState } = states;\n var { value } = nextState;\n var selection = nextState.selection;\n var cursorPosition = selection ? selection.start : null;\n var chars = [\".\", \"-\", \"/\", \"(\", \")\", \" \"];\n var words = [...value];\n\n if (chars.includes(words[words.length - 1])) {\n if (cursorPosition === value.length) {\n cursorPosition--;\n selection = {\n start: cursorPosition,\n end: cursorPosition,\n };\n }\n value = value.slice(0, -1);\n }\n\n return {\n value,\n selection,\n };\n };\n\n return (\n <InputMask\n {...field}\n onKeyUp={onKeyUp}\n disabled={disabled}\n mask={mask}\n value={field.value || \"\"}\n onChange={field.onChange}\n maskChar={maskChar}\n alwaysShowMask={alwaysShowMask}\n beforeMaskedStateChange={beforeMaskedValueChange}\n >\n {(inputProps: any) => (\n <Input\n onKeyUp={onKeyUp}\n type={type}\n label={label}\n placeholder={placeholder}\n required={required}\n inputProps={inputProps}\n error={error}\n name={name}\n disabled={disabled}\n ref={ref}\n />\n )}\n </InputMask>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { JSX, ReactNode, cloneElement } from \"react\";\nimport Modal from \"react-modal\";\nimport { Button } from \"./Button\";\n\nexport type ModalProps = {\n open?: boolean;\n onOpen?: () => void;\n onClose?: () => void;\n onCancel?: () => void;\n triggerButton?: React.ReactElement;\n confirmButton?: React.ReactElement;\n title?: string | React.ReactElement;\n cancelButton?: React.ReactElement;\n icon?: JSX.Element;\n alertType?: keyof typeof alertTypes;\n size?: keyof typeof sizes;\n info?: React.ReactElement;\n description?: string;\n children?: ReactNode;\n showHeader?: boolean;\n headerBorder?: boolean;\n showFooter?: boolean;\n closeOnOverlayClick?: boolean;\n};\n\nconst alertTypes = {\n success: \"text-success-500\",\n error: \"text-dangerous-500\",\n warning: \"text-warning-500\",\n info: \"text-blue-500\",\n primary: \"text-rose-500\",\n};\n\nconst sizes = {\n xs: \"w-[350px]\",\n xsm: \"w-[470px]\",\n sm: \"w-[662px]\",\n md: \"w-[960px]\",\n lg: \"w-[80%] min-w-[800px]\",\n null: \"\",\n};\n\nexport const ModalDialog = ({\n open,\n onOpen = () => {},\n onClose,\n onCancel,\n triggerButton,\n confirmButton,\n title,\n cancelButton,\n icon,\n alertType,\n size = \"sm\",\n info,\n description,\n children,\n showFooter = true,\n showHeader = true,\n headerBorder = false,\n closeOnOverlayClick = true,\n}: ModalProps) => {\n const customStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n border: \"1px solid var(--neutral-200)\",\n background: \"var(--surface)\",\n color: \"var(--paragraph)\",\n padding: \"20px 24px 24px 24px\",\n borderRadius: \"8px\",\n overflow: \"initial\",\n },\n overlay: {\n backgroundColor: \"rgb(107,114,128,0.50)\",\n zIndex: 9999,\n },\n };\n // O slot do icone segue o ICONE, nao o alertType. Antes: renderizava a caixa de 26px sempre\n // que houvesse alertType, entao um modal com alertType e sem icone (ou com `icon={<></>}`)\n // ganhava uma caixa vazia + o gap-2 do h3 e empurrava o titulo ~34px para a direita. E o\n // inverso tambem falhava: quem passava icon sem alertType tinha o icone descartado em silencio.\n // Fragment vazio conta como \"sem icone\" — `<></>` e truthy e nao seria pego por `icon &&`.\n const hasIcon =\n React.isValidElement(icon) &&\n !(\n icon.type === React.Fragment &&\n React.Children.count((icon.props as { children?: ReactNode })?.children) === 0\n );\n\n const trigger = triggerButton\n ? cloneElement(triggerButton as any, {\n onClick: () => {\n onOpen();\n },\n })\n : null;\n return (\n <div>\n {trigger}\n <Modal\n ariaHideApp={false}\n isOpen={open}\n onRequestClose={closeOnOverlayClick ? onClose || onCancel : undefined}\n shouldCloseOnOverlayClick={closeOnOverlayClick}\n shouldCloseOnEsc={closeOnOverlayClick}\n style={customStyles}\n contentLabel=\"Example Modal\"\n closeTimeoutMS={200}\n >\n <div className={clsx(\"modal-inner\", sizes[size])}>\n {showHeader && (\n <div\n className={clsx(\"flex items-center justify-between\", {\n \"border-b border-b-neutral-200\": headerBorder,\n })}\n >\n <h3 className=\"font-title text-t-sm font-bold text-title flex items-center gap-2\">\n {hasIcon && (\n <div\n className={clsx(\n alertType && alertTypes[alertType],\n \"w-[26px] h-[26px] text-[26px] flex items-center justify-center shrink-0\",\n )}\n >\n {icon}\n </div>\n )}\n {title}\n </h3>\n <div className=\"inline\">\n <Button\n onClick={onCancel}\n variant=\"ghost\"\n size=\"md\"\n icon={<i className=\"uil uil-times text-neutral-400\"></i>}\n />\n </div>\n </div>\n )}\n <div className=\"mt-4\">{children}</div>\n {showFooter && (\n <div className=\"pt-6 flex w-full items-center justify-between\">\n <div\n className={clsx({\n [\"flex-1\"]: info,\n })}\n >\n {info}\n </div>\n <div className=\"flex flex-col-reverse md:flex-row gap-3 items-center md:justify-end w-full md:w-auto\">\n {cancelButton || (\n <Button\n onClick={() => {\n if (onCancel) {\n onCancel();\n }\n }}\n variant=\"secondary\"\n size=\"md\"\n >\n Cancelar\n </Button>\n )}\n {confirmButton}\n </div>\n </div>\n )}\n </div>\n </Modal>\n </div>\n );\n};\n","export const customStyles = {\n indicatorSeparator: (provided: any, props: any) => {\n return {\n ...provided,\n backgroundColor:\n props.hasValue && provided?.selectProps?.isSearchable\n ? \"var(--input)\"\n : \"transparent\",\n };\n },\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: state.isDisabled ? \"var(--input-icon-disabled)\" : \"var(--paragraph)\",\n // translateY antes do rotate: transform e aplicado da esquerda pra direita, entao\n // invertendo a ordem o deslocamento acontece no eixo ja girado e a seta desce 2px em vez\n // de subir. -2px corrige o desalinhamento otico da seta com o texto do campo.\n transform: state?.selectProps?.menuIsOpen\n ? \"translateY(-2px) rotate(180deg)\"\n : \"translateY(-2px) rotate(0)\",\n \":hover\": {\n color: state.isDisabled ? \"var(--input-icon-disabled)\" : \"var(--paragraph)\",\n },\n }),\n placeholder: (provided: any, state: any) => ({\n ...provided,\n color: state.isDisabled ? \"var(--input-placeholder-disabled)\" : \"var(--label)\",\n }),\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0px\",\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"8px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n background: \"var(--surface)\",\n zIndex: 20,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: \"8px\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0\",\n color:\n state.data.value === \"active\"\n ? \"#0EAF86\"\n : state.selectProps.hasError\n ? \"var(--dangerous-500)\"\n : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-700)\"\n : state.menuIsOpen\n ? \"1.5px solid var(--blue-700)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"0 0 0 2px var(--surface), 0 0 0 3.5px var(--blue-500)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n // Raio fixo: o anel de foco é desenhado por box-shadow, que segue o borderRadius do\n // control — trocar pra 2px no foco deixava o anel quadrado sobre um campo arredondado.\n borderRadius: \"0.5rem\",\n placeholder: \" \",\n height: state.selectProps.smallField ? \"30px\" : \"46px\",\n backgroundColor: state.isDisabled\n ? \"var(--light-100)\"\n : \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 8px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color = state.isSelected\n ? \"var(--accent-label)\"\n : state?.isDisabled\n ? \"var(--label)\"\n : \"var(--paragraph)\";\n\n // /* if(state.isSelected) {\n // color = 'rgba(0,0,0,0.03)';\n // } */\n\n return {\n ...provided,\n cursor: state.isDisabled ? \"auto\" : \"pointer\",\n pointerEvents: state.isDisabled ? \"none\" : \"\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n padding: \"12px\",\n backgroundColor: state.isSelected ? \"var(--blue-500)\" : \"var(--surface)\",\n color,\n fontWeight: state.isSelected ? 700 : 400,\n \"&:hover\": {\n backgroundColor: state.isSelected\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active i\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" i\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import React, { useRef, JSX } from \"react\";\nimport {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport { customStyles } from \"./Select.styles\";\nimport { useEffect, useState } from \"react\";\nimport { useFieldErrorsStore } from \"./../../stores/field-errors\";\n\nimport clsx from \"clsx\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\nexport type OptionType = {\n value: number | string;\n label: string;\n disabled?: boolean;\n};\n\ntype SelectFieldProps = {\n name: string;\n label?: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n onChange?: any;\n required?: boolean;\n isClearable?: boolean;\n filterOptions?: (value) => any;\n debounce?: number;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n optionsList?: any;\n disabled?: boolean;\n onChangeValue?: (value) => void;\n resize?: boolean;\n optionStyle?: (option: any, isSelected?: boolean) => void;\n valueStyle?: (option) => void;\n icon?: JSX.Element;\n emptyMessage?: string;\n small?: boolean;\n initialMessage?: string;\n clearOnBlur?: boolean;\n onMenuClose?: () => void;\n clearOnMenuClose?: boolean;\n menuIsEverOpen?: boolean;\n showArrow?: boolean;\n};\n\nexport const SelectField = ({\n name,\n error,\n label,\n defaultValue,\n control,\n placeholder,\n isSearchable = false,\n isClearable = false,\n onChange,\n required,\n debounce = 0,\n filterOptions,\n optionsList,\n disabled,\n onChangeValue,\n resize = true,\n optionStyle,\n valueStyle,\n icon,\n emptyMessage,\n small = false,\n initialMessage,\n menuIsEverOpen = false,\n clearOnBlur = true,\n onMenuClose,\n clearOnMenuClose,\n showArrow = true,\n}: SelectFieldProps) => {\n const { Option, DropdownIndicator, ClearIndicator, SingleValue } = components;\n const selectRef = useRef(null);\n const [inputValue, setInputValue] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [options, setOptions] = useState(() => optionsList || []);\n const [cachedOptions, setCachedOptions] = useState([]);\n const [availableHeight, setAvailableHeight] = useState(300);\n const [isFocused, setIsFocused] = useState(false);\n useEffect(() => {\n const updateAvailableHeight = () => {\n if (selectRef?.current?.getBoundingClientRect) {\n const rect = selectRef?.current?.getBoundingClientRect();\n const bottomSpace = window.innerHeight - rect.bottom;\n const margin = bottomSpace - 24;\n setAvailableHeight(margin < 250 ? 276 : margin);\n }\n };\n updateAvailableHeight();\n window.addEventListener(\"resize\", updateAvailableHeight);\n return () => {\n window.removeEventListener(\"resize\", updateAvailableHeight);\n };\n }, [selectRef]);\n\n const loadOptions = async (inputValue: string) => {\n setLoading(true);\n if (isSearchable && filterOptions) {\n if ((debounce && inputValue.length >= debounce) || !debounce) {\n const result = await filterOptions(inputValue);\n setCachedOptions(result || []);\n setLoading(false);\n return result;\n }\n } else {\n setOptions(optionsList);\n }\n setLoading(false);\n return cachedOptions;\n };\n\n const fieldValidation = useFieldErrorsStore((state) => state.field);\n const fieldValidationMessages = [\n fieldValidation[name]?.message,\n error?.message,\n ];\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const smallField = {\n smallField: small,\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const menuHeight = resize\n ? {\n menuHeight: availableHeight,\n }\n : null;\n const hasIcon = {\n hasIcon: icon,\n };\n\n useEffect(() => {\n setOptions(() => optionsList);\n }, [optionsList]);\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const CustomSingleValue = (props) => {\n return (\n <SingleValue {...props}>\n {valueStyle ? valueStyle(props?.data) : <>{props.data.label} </>}\n </SingleValue>\n );\n };\n\n const IconOption = (props) => {\n return (\n <Option {...props}>\n {optionStyle ? (\n optionStyle(props?.data, props.isSelected)\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n )}\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <SpinnerIcon className=\"animate-spin\" width={16} height={16} />\n Buscando...\n </div>\n );\n } else if (debounce && inputValue.length < debounce) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n }\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (props.selectProps.inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && props.selectProps.inputValue.length < debounce)\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n } else if (\n initialMessage &&\n !debounce &&\n isSearchable &&\n props.selectProps.inputValue.length === 0\n ) {\n return <div className=\"p-2 text-neutral-300\">{initialMessage}</div>;\n } else if (\n ((props.selectProps.inputValue.length > 0 && isSearchable) ||\n !isSearchable ||\n (isSearchable && props?.options?.length == 0)) &&\n props?.options?.length == 0\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n {emptyMessage || \"Sem opções disponíveis\"}\n </div>\n );\n }\n };\n\n const DropdownIndicatorCustom = (props: any) => {\n return (\n <DropdownIndicator {...props}>\n <i\n className={`uil uil-angle-down text-[20px] ${\n small ? \"h-[20px] -mt-[7px]\" : \"h-full\"\n }`}\n />\n </DropdownIndicator>\n );\n };\n\n const ClearIndicatorCustom = (props: any) => {\n return (\n <ClearIndicator {...props}>\n <i className=\"uil uil-times text-[16px]\"></i>\n </ClearIndicator>\n );\n };\n const onChange = (value) => {\n field.onChange(value);\n if (onChangeValue) {\n onChangeValue(value);\n }\n };\n const handleKeyDown = async (event) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n\n const fetchedOptions = await loadOptions(event?.target?.value);\n\n if (fetchedOptions?.length > 0) {\n onChange(fetchedOptions[0]);\n }\n }\n };\n return (\n <div className=\"relative w-full\" id=\"select\" ref={selectRef}>\n {icon && (\n <div\n className={clsx(\n \"z-[70] absolute bg-neutral-100 top-[1px] left-[1px] rounded-l-lg flex justify-center items-center h-[44px] w-[38px] text-[22px] text-label\",\n {\n \"text-blue-500\": isFocused && hasIcon.hasIcon,\n \"text-red-500\": hasError.hasError && hasIcon.hasIcon,\n },\n )}\n >\n {icon}\n </div>\n )}\n <AsyncSelect\n onKeyDown={handleKeyDown}\n {...field}\n {...hasError}\n {...hasLabel}\n {...menuHeight}\n {...hasIcon}\n {...smallField}\n isDisabled={disabled}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n }}\n onMenuClose={() => {\n const shouldClear =\n typeof clearOnMenuClose !== \"undefined\"\n ? clearOnMenuClose\n : clearOnBlur;\n if (shouldClear) setInputValue(\"\");\n if (onMenuClose) onMenuClose();\n }}\n inputValue={inputValue}\n onInputChange={(val, meta) => {\n if (meta.action === \"input-change\") {\n setInputValue(val);\n } else if (\n meta.action === \"menu-close\" ||\n meta.action === \"input-blur\"\n ) {\n const shouldClear =\n typeof clearOnMenuClose !== \"undefined\"\n ? clearOnMenuClose\n : clearOnBlur;\n if (shouldClear) setInputValue(\"\");\n }\n }}\n menuIsOpen={menuIsEverOpen ? true : undefined}\n loadingMessage={() => <div>Carregando</div>}\n isLoading={loading}\n defaultOptions={\n menuIsEverOpen && cachedOptions.length > 0\n ? cachedOptions\n : debounce > 0\n ? false\n : optionsList\n ? options\n : true\n }\n loadOptions={loadOptions}\n name={field.name}\n isClearable={isClearable}\n styles={customStyles as any}\n placeholder={placeholder || \" \"}\n isSearchable={isSearchable}\n options={options}\n tabSelectsValue={true}\n components={{\n SingleValue: CustomSingleValue,\n ValueContainer,\n Option: IconOption,\n LoadingIndicator: () => <></>,\n LoadingMessage,\n NoOptionsMessage,\n DropdownIndicator: showArrow ? DropdownIndicatorCustom : null,\n ClearIndicator: ClearIndicatorCustom,\n }}\n closeMenuOnSelect\n isOptionDisabled={(option: any) => !!option?.disabled}\n hideSelectedOptions={false}\n onChange={onChange}\n />\n <span\n className={clsx(\n \"text-label text-sm left-2.5 cursor-pointer pointer-events-none absolute transition-all duration-200\",\n {\n \"scale-75 -translate-y-3\": field.value || inputValue,\n \"ml-[35px]\": hasIcon.hasIcon,\n \"ml-[2px]\": !hasIcon.hasIcon,\n \"top-2.5\": !(field.value || inputValue),\n \"top-0\": field.value || inputValue,\n },\n )}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-700\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n style={{ color: \"var(--dangerous-700)\" }}\n className=\"text-xs ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n","export const customStyles = {\n indicatorSeparator: (provided: any, props: any) => {\n return {\n ...provided,\n backgroundColor:\n props.hasValue && provided?.selectProps?.isSearchable\n ? \"var(--input)\"\n : \"transparent\",\n padding: \"0px\",\n };\n },\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n transform: state?.selectProps?.menuIsOpen ? \"rotate(180deg)\" : \"rotate(0)\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0px\",\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n background: \"var(--surface)\",\n zIndex: 60,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: \"0px 8px\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0\",\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n placeholder: (provided: any, state: any) => ({\n ...provided,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n color: state.isDisabled\n ? \"var(--input-placeholder-disabled)\"\n : \"var(--label)\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-700)\"\n : state.menuIsOpen\n ? \"1.5px solid var(--blue-700)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"0 0 0 2px var(--surface), 0 0 0 3.5px var(--blue-500)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n // Raio fixo: o anel de foco é desenhado por box-shadow, que segue o borderRadius do\n // control — trocar pra 2px no foco deixava o anel quadrado sobre um campo arredondado.\n borderRadius: \"0.5rem\",\n placeholder: \" \",\n height: \"46px\",\n backgroundColor: state.isDisabled\n ? \"var(--input-bg-disabled)\"\n : \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--light-100)\",\n padding: \"0px 8px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-700)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color = state.isSelected\n ? \"var(--accent-label)\"\n : state?.isDisabled\n ? \"var(--label)\"\n : \"var(--paragraph)\";\n\n /* if(state.isSelected) {\n color = 'rgba(0,0,0,0.03)';\n } */\n\n return {\n ...provided,\n cursor: state.isDisabled ? \"auto\" : \"pointer\",\n pointerEvents: state.isDisabled ? \"none\" : \"\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n padding: \"10px 12px\",\n backgroundColor: state.isSelected ? \"var(--blue-700)\" : \"var(--surface)\",\n color,\n fontWeight: state.isSelected ? 700 : 400,\n \"&:hover\": {\n backgroundColor: state.isSelected\n ? \"var(--blue-700)\"\n : \"var(--light-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-700)\",\n color: \"var(--accent-label) !important\",\n fontWeight: 700,\n },\n \"&:active i\": {\n color: \"var(--accent-label) !important\",\n fontWeight: 700,\n },\n \" i\": {\n color: \"var(--accent-label) !important\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport { FieldWrapperPassThroughProps } from \"./../FieldWrapper\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport { customStyles } from \"./SelectFieldBip.styles\";\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n JSX,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport { useFieldErrorsStore } from \"./../../stores/field-errors\";\nimport clsx from \"clsx\";\nimport _debounce from \"../../utils/debounce\";\nimport { SpinnerIcon } from \"../..\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n disabled?: boolean;\n};\n\nexport interface SelectFieldBipRef {\n focus: () => void;\n clearValue: () => void;\n getValue: () => any;\n selectRef: any;\n}\n\ntype SelectFieldProps = FieldWrapperPassThroughProps & {\n name: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n onChange?: any;\n required?: boolean;\n filterOptions?: (value) => any;\n debounce?: number;\n error?: Merge<FieldError, FieldErrorsImpl<unknown>>;\n disabled?: boolean;\n onChangeValue?: (value) => void;\n optionStyle?: (option) => void;\n valueStyle?: (option) => void;\n icon?: JSX.Element;\n onErrorBip?: (value) => void;\n clearAfterSelect?: boolean;\n menuIsOpen?: boolean;\n messages?: {\n searching?: string;\n debounce?: string;\n emptyMessage?: string;\n loading?: string;\n };\n};\n\nexport const SelectFieldBip = forwardRef<SelectFieldBipRef, SelectFieldProps>(\n (\n {\n name,\n label,\n error,\n defaultValue,\n control,\n placeholder,\n isSearchable = false,\n required,\n debounce,\n filterOptions,\n disabled,\n onChangeValue,\n optionStyle,\n valueStyle,\n icon,\n onErrorBip,\n clearAfterSelect = true,\n menuIsOpen,\n messages = {\n searching: \"Buscando...\",\n debounce: `Digite pelo menos {debounce} caracteres`,\n emptyMessage: \"Nenhuma opção encontrada\",\n loading: \"Carregando...\",\n },\n },\n ref,\n ) => {\n const { Option, SingleValue } = components;\n const selectRef = useRef(null);\n const [inputValue, setInputValue] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [cachedOptions, setCachedOptions] = useState([]);\n\n useImperativeHandle(ref, () => ({\n focus: () => selectRef.current?.focus(),\n clearValue: () => selectRef.current?.clearValue(),\n getValue: () => selectRef.current?.getValue(),\n selectRef: selectRef.current,\n }));\n const fetchOptions = async (value: string) => {\n if (isSearchable && filterOptions) {\n if (!debounce || (debounce && value.length >= debounce)) {\n setLoading(true);\n const result = await filterOptions(value);\n setCachedOptions(result);\n setLoading(false);\n return result;\n }\n }\n return [];\n };\n\n const fieldValidation = useFieldErrorsStore((state) => state.field);\n const fieldValidationMessages = [\n fieldValidation[name]?.message,\n error?.message,\n ];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const hasIcon = {\n hasIcon: icon,\n };\n\n const iconStyle = `z-[70] absolute bg-neutral-100 h-[44px] top-[1px] left-[1px] rounded-l-lg flex justify-center items-center w-[38px] text-[22px] ${\n hasError.hasError ? \"text-dangerous-500\" : \"text-label\"\n }`;\n\n const debouncedFetchOptions = useMemo(() => {\n return _debounce((value: string, callback: (opts) => void) => {\n fetchOptions(value).then(callback);\n }, 300);\n }, [filterOptions]);\n\n useEffect(() => {\n return () => {\n debouncedFetchOptions.cancel();\n };\n }, [debouncedFetchOptions]);\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const CustomSingleValue = (props) => {\n return (\n <SingleValue {...props}>\n {valueStyle ? (\n valueStyle(props?.data)\n ) : (\n <>{props.data.label} </>\n )}\n </SingleValue>\n );\n };\n\n const IconOption = (props) => {\n return (\n <Option {...props}>\n {optionStyle ? (\n optionStyle(props?.data)\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n )}\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <SpinnerIcon\n width={16}\n height={16}\n className=\"animate-spin\"\n />\n {messages.searching}\n </div>\n );\n } else if (debounce && inputValue.length < debounce) {\n return (\n <div\n style={{ color: \"var(--label)\" }}\n className=\"p-2 text-[14px]\"\n >\n {messages.debounce.replace(\"{debounce}\", String(debounce))}\n </div>\n );\n }\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && inputValue.length < debounce)\n ) {\n return (\n <div\n className=\"p-2 text-[14px]\"\n style={{ color: \"var(--label)\" }}\n >\n {messages.debounce.replace(\"{debounce}\", String(debounce))}\n </div>\n );\n } else if (inputValue.length > 0 && props?.options?.length == 0) {\n return (\n <div\n className=\"p-2 text-[14px]\"\n style={{ color: \"var(--label)\" }}\n >\n {messages.emptyMessage}\n </div>\n );\n }\n };\n\n const DropdownIndicatorCustom = (props: any) => {\n return null;\n };\n\n const handleKeyDown = async (event) => {\n if (event.key === \"Enter\") {\n // Enter COM modificador é atalho da aplicação (Ctrl+Enter avança pro pagamento no\n // PDV), não leitura de código de barras — leitor sempre manda Enter puro. Sem esta\n // guarda o campo tratava o atalho como bip: buscava, não achava nada e disparava\n // onErrorBip (\"Produto não encontrado\"), além de engolir o atalho no\n // preventDefault. O foco fica no campo de busca por padrão, então isso acontecia\n // em todo Ctrl+Enter. Tarefa 96048.\n if (event.ctrlKey || event.metaKey || event.altKey) return;\n\n event.preventDefault();\n debouncedFetchOptions.cancel();\n\n // Enter no campo vazio não é bip: nada foi digitado nem lido, então não há erro de\n // \"não encontrado\" a reportar.\n if (!event.target.value) return;\n\n const fetchedOptions = await fetchOptions(event.target.value);\n\n if (fetchedOptions?.length > 0) {\n onChange(fetchedOptions[0]);\n\n setTimeout(() => {\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.clearValue();\n selectRef?.current?.focus();\n selectRef?.current?.onMenuClose();\n field.onChange(null);\n }\n }, 10);\n } else {\n onErrorBip(event?.target?.value);\n selectRef.current.inputRef.select();\n selectRef.current.onMenuClose();\n }\n }\n };\n\n const handleInputChange = (value, actionMeta) => {\n if (actionMeta.action === \"input-change\") {\n if (clearAfterSelect) setInputValue(value);\n }\n return value;\n };\n\n const onChange = async (value, action?) => {\n if (onChangeValue) onChangeValue(value);\n\n if (action?.action === \"select-option\") {\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.clearValue();\n selectRef?.current?.onMenuClose();\n selectRef?.current?.focus();\n field.onChange(null);\n } else {\n field.onChange(value);\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.onMenuClose();\n }\n }\n }\n\n if (action === \"clear-value\") {\n if (clearAfterSelect) {\n setInputValue(\"\");\n setCachedOptions([]);\n selectRef?.current?.clearValue();\n field.onChange(null);\n }\n }\n };\n\n const loadOptions = (value: string, callback: (opts) => void) => {\n debouncedFetchOptions(value, callback);\n };\n\n return (\n <div className=\"relative\" id=\"multiselect\">\n {icon && <div className={iconStyle}>{icon}</div>}\n <AsyncSelect\n onKeyDown={handleKeyDown}\n {...field}\n {...hasError}\n {...hasLabel}\n {...hasIcon}\n ref={selectRef}\n isDisabled={disabled}\n onBlur={() => {\n if (clearAfterSelect) {\n handleInputChange(\"\", {\n action: \"input-change\",\n });\n }\n }}\n loadingMessage={() => <div>{messages.loading}</div>}\n isLoading={loading}\n loadOptions={loadOptions}\n defaultOptions={false}\n name={field.name}\n isClearable={false}\n styles={customStyles}\n placeholder={placeholder || \" \"}\n isSearchable={isSearchable}\n tabSelectsValue={true}\n components={{\n SingleValue: CustomSingleValue,\n ValueContainer,\n Option: IconOption,\n LoadingIndicator: () => <></>,\n LoadingMessage,\n NoOptionsMessage,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n closeMenuOnSelect={false}\n blurInputOnSelect\n hideSelectedOptions={false}\n menuIsOpen={menuIsOpen}\n isOptionDisabled={(option: any) => !!option?.disabled}\n onChange={onChange}\n inputValue={inputValue}\n onInputChange={handleInputChange}\n />\n {inputValue !== \"\" && (\n <i\n onClick={() => onChange(null, \"clear-value\")}\n className=\"uil uil-times text-[18px] absolute right-2 top-[11px] cursor-pointer text-label\"\n ></i>\n )}\n <span\n className={clsx(\n \"text-label text-sm left-2.5 cursor-pointer pointer-events-none\",\n {\n [\" scale-75 -translate-y-3 \"]: field.value,\n [\"text-dangerous-700\"]: hasError.hasError,\n },\n )}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-700\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-700 text-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n },\n);\n\nSelectFieldBip.displayName = \"SelectFieldBip\";\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n","import React from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\ninterface Props {\n disabled?: boolean;\n control: Control<any>;\n name: string;\n label?: string;\n defaultChecked?: boolean;\n value?: string | number;\n onChange?: (value: string | number) => void;\n}\n\nexport const Radio = ({\n disabled,\n control,\n name,\n label,\n defaultChecked,\n value,\n onChange,\n}: Props) => {\n return (\n <Controller\n name={name as never}\n control={control}\n render={({ field }) => {\n return (\n <div className=\"flex items-center justify-center gap-2\">\n <label className=\"custom-radio flex items-center\">\n <input\n name={name}\n id={`${name}-${value}`}\n type=\"radio\"\n className=\"\"\n onClick={(e: any) => {\n field.onChange(e.target.value);\n }}\n value={value}\n onChange={(e) => field.onChange(e.target.value)}\n defaultChecked={defaultChecked}\n disabled={disabled}\n />\n <span></span>\n </label>\n {label && (\n <label htmlFor={`${name}-${value}`} className=\"text-p-md cursor-pointer -pt-1\">\n {label}\n </label>\n )}\n </div>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport { Switch } from \"@headlessui/react\";\nimport { Control, Controller } from \"react-hook-form\";\n\nconst { Group, Label } = Switch;\n\ntype ToggleProps = {\n name: string;\n label?: string;\n subLabel?: string;\n control: Control<any>;\n disabled?: boolean;\n};\n\nfunction classNames(...classes: any) {\n return classes.filter(Boolean).join(\" \");\n}\n\nexport const Toggle = ({\n name,\n label,\n subLabel,\n control,\n disabled,\n}: ToggleProps) => {\n return (\n <Group as=\"div\" className=\"flex items-center\">\n <Controller\n control={control}\n name={name as never}\n render={({ field }) => (\n <Switch\n disabled={disabled}\n {...field}\n className=\"h-[18px] w-[33px] focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded-full\"\n checked={Boolean(field.value)}\n onChange={(value: boolean) => {\n field.onChange(value);\n }}\n >\n {({ checked }) => (\n <div\n className={classNames(\n checked ? \"bg-blue-500\" : \"bg-neutral-200\",\n \"relative inline-flex h-[18px] p-[2px] w-[33px] flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out \"\n )}\n >\n <span\n className={classNames(\n \"pointer-events-none relative inline-block -top-[2px] right-[2px] h-[14px] w-[14px] transform rounded-full shadow ring-0 transition duration-200 ease-in-out\",\n checked ? \"translate-x-[15px]\" : \"translate-x-0\",\n disabled ? \"bg-neutral-300\" : \"bg-button-label\"\n )}\n >\n <span\n className={classNames(\n checked\n ? \"opacity-0 ease-out duration-100\"\n : \"opacity-100 ease-in duration-200\",\n \"absolute inset-0 flex h-full w-full items-center justify-center transition-opacity\"\n )}\n aria-hidden=\"true\"\n ></span>\n <span\n className={classNames(\n checked\n ? \"opacity-100 ease-in duration-200\"\n : \"opacity-0 ease-out duration-100\",\n \"absolute inset-0 flex h-full w-full items-center justify-center transition-opacity\"\n )}\n aria-hidden=\"true\"\n ></span>\n </span>\n </div>\n )}\n </Switch>\n )}\n />\n\n {label && (\n <Label as=\"span\" className=\"flex flex-col gap-1 ml-2 cursor-pointer\">\n <span className=\"text-sm text-paragraph\">{label}</span>\n {subLabel && <span className=\"text-sm\">{subLabel}</span>}\n </Label>\n )}\n </Group>\n );\n};\n","import React from \"react\";\nimport { Combobox } from \"@headlessui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Table } from \"@tanstack/react-table\";\nimport clsx from \"clsx\";\n\ninterface Props<TData> {\n pageSizeOptions?: number[];\n table: Table<TData>;\n}\n\nexport function PaginationSelect<TData>({\n pageSizeOptions,\n table,\n}: Props<TData>) {\n const pageCount = table?.getPageCount();\n const pagesArray = pageCount ? [...Array(pageCount)] : [];\n const options = pagesArray?.map((item, index) => ({\n id: index,\n name: index,\n }));\n const [pageSizeSelected, setPageSizeSelected] = useState({\n id: JSON.parse(sessionStorage.getItem(\"pageSize\") as string)?.id || 20,\n name: JSON.parse(sessionStorage.getItem(\"pageSize\") as string)?.name || 20,\n });\n\n const [pageSelected, setPageSelected] = useState({\n id: table?.getState()?.pagination?.pageIndex || 0,\n name: table?.getState()?.pagination?.pageIndex || 0,\n });\n const [pagesOptions, setPagesOptions] = useState(() => options);\n\n const [pageSizesOptions, setPagesSizesOptions] = useState(\n pageSizeOptions?.map((item) => ({\n id: item,\n name: item,\n }))\n );\n const [query, setQuery] = useState(\"\");\n\n const filter = () => {\n let copy = [...options];\n setPagesOptions(\n copy.filter((item) => {\n return (item.name + 1).toString().startsWith(query);\n })\n );\n };\n\n const saveSessionStorage = (key: any, values: any) => {\n sessionStorage.setItem(key, JSON.stringify(values));\n };\n\n useEffect(() => {\n filter();\n }, [query]);\n\n useEffect(() => {\n saveSessionStorage(\"pageSize\", pageSizeSelected);\n table.setPageSize(pageSizeSelected?.id);\n table.setPageIndex(0);\n setPageSelected({\n id: 0,\n name: 0,\n });\n }, [pageSizeSelected]);\n\n useEffect(() => {\n setPagesOptions(\n pageCount\n ? [...Array(pageCount)].map((item, index) => ({\n id: index,\n name: index,\n }))\n : []\n );\n }, [table?.getPageCount()]);\n\n useEffect(() => {\n if (table?.getState()?.pagination?.pageIndex >= 0) {\n setPageSelected({\n id: table?.getState()?.pagination?.pageIndex,\n name: table?.getState()?.pagination?.pageIndex,\n });\n }\n }, [table?.getState().pagination]);\n\n return (\n <div className=\"hidden md:flex items-center gap-2\">\n <div className=\"flex items-center gap-2 text-paragraph\">\n <span>Exibir </span>\n <Combobox\n value={pageSizeSelected}\n onChange={(value: any) => {\n setPageSizeSelected(value);\n }}\n >\n {({ open }) => (\n <div className=\"relative\">\n <Combobox.Button className=\"flex items-center justify-between w-[70px] h-[42px] text-paragraph outline-none text-p-sm cursor-pointer peer relative shadow-input rounded-lg border p-2 disabled:bg-neutral-100 border-neutral-300\">\n {pageSizeSelected?.name}\n {open ? (\n <i className=\"uil uil-angle-up text-base top-[13px] pl-3 cursor-pointer text-label\"></i>\n ) : (\n <i className=\"uil uil-angle-down text-base top-[13px] pl-3 cursor-pointer text-label\"></i>\n )}\n </Combobox.Button>\n <Combobox.Options className=\"w-full outline-none max-h-[200px] overflow-auto border-[0.5px] mt-1 color-neutral-300 flex flex-col gap-y-2 p-1 absolute right-0 bottom-12 z-[999] rounded-lg bg-surface\">\n {pageSizesOptions?.map((opt) => {\n const selected = opt?.id === pageSizeSelected?.id;\n return (\n <Combobox.Option\n key={pageSizeSelected?.id + \"size\"}\n value={opt}\n className={clsx(\n \"p-2 rounded-lg items-center justify-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n }\n )}\n >\n {opt.name}\n </Combobox.Option>\n );\n })}\n </Combobox.Options>\n </div>\n )}\n </Combobox>\n <span> resultados</span>\n </div>\n <div className=\"bg-neutral-300 h-[20px] w-[1px]\"></div>\n <div className=\"flex items-center gap-2 text-paragraph\">\n <span>Ir para a página </span>\n <Combobox\n value={pageSelected}\n onChange={(value) => {\n if (value && value?.id) {\n setPageSelected({\n id: value?.id,\n name: value?.id,\n });\n saveSessionStorage(\"pageIndex\", value?.id);\n table.setPageIndex(value?.id);\n setQuery(\"\");\n }\n }}\n >\n {({ open }) => (\n <div className=\"relative\">\n <Combobox.Button className=\"relative\">\n <Combobox.Input\n as=\"input\"\n onKeyDown={(e: any) => {\n const val = Number(e.target?.value);\n\n if (e.key == \"Enter\" && val && val <= pageCount) {\n setPageSelected({\n id: val - 1,\n name: val - 1,\n });\n saveSessionStorage(\"pageIndex\", val);\n table.setPageIndex(val - 1);\n setQuery(\"\");\n }\n }}\n displayValue={(item: any) => {\n return pageSelected ? pageSelected?.id + 1 : item?.id + 1;\n }}\n onChange={(e) => {\n if (e.target.value) {\n setQuery(e.target.value);\n }\n }}\n className=\"h-[42px] w-[70px] outline-none text-p-md text-paragraph cursor-pointer border-neutral-300 peer shadow-input rounded-lg border block disabled:bg-neutral-100 p-2\"\n />\n {open ? (\n <i className=\"uil uil-angle-up text-base absolute top-[10px] right-2 cursor-pointer text-label\"></i>\n ) : (\n <i className=\"uil uil-angle-down text-base absolute top-[10px] right-2 cursor-pointer text-label\"></i>\n )}\n </Combobox.Button>\n <Combobox.Options className=\"w-full outline-none max-h-[200px] overflow-auto border-[0.5px] mt-1 color-neutral-300 flex flex-col gap-y-2 p-1 absolute right-0 bottom-12 z-[999] rounded-lg bg-surface\">\n {pagesOptions.map((opt) => {\n const selected = opt?.id === pageSelected?.id;\n\n return (\n <Combobox.Option\n key={pageSelected?.id + \"page\"}\n value={opt}\n // onClick={() => {\n // setPageSelected({\n // id: opt.id - 1,\n // name: opt.id - 1,\n // });\n // saveSessionStorage(\n // 'pageIndex',\n // opt?.id\n // );\n // table.setPageIndex(opt?.id);\n // }}\n className={clsx(\n \"p-2 rounded-lg items-center justify-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n }\n )}\n >\n {opt?.name + 1}\n </Combobox.Option>\n );\n })}\n </Combobox.Options>\n </div>\n )}\n </Combobox>\n </div>\n </div>\n );\n}\n","import { clsx } from \"clsx\";\nimport * as React from \"react\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={clsx(\n \"table-scroll block text-left border-separate border-spacing-0 w-full\",\n className\n )}\n onScroll={props.onScroll}\n {...props}\n />\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"w-full sticky top-0 z-[90]\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={clsx(className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n \" flex flex-col md:flex-row gap-2 md:gap-0 justify-between items-center py-4 px-6 bg-surface w-full h-full border border-neutral-200 rounded-t-lg\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr ref={ref} className={clsx(className)} {...props} />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }: any, ref) => (\n <th\n ref={ref}\n className={clsx(\n {\n \"hover:bg-neutral-100\": props.sortable,\n },\n \"text-p-md z-[50] bg-surface font-normal text-neutral-700 p-4 text-left border-t border-b border-neutral-200 first:border-l last:border-r first:rounded-tl-lg first:rounded-bl-lg last:rounded-tr-lg last:rounded-br-lg\",\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"align-middle h-[80px] border-b border-neutral-200 whitespace-nowrap py-4 px-5\",\n className\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={clsx(\"text-default mt-4 text-sm\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\nimport type { Table } from \"@tanstack/react-table\";\nimport { TableFooter } from \"./TableComponents\";\nimport { Fragment, JSX, MutableRefObject } from \"react\";\nimport { PaginationSelect } from \"./PaginationSelects\";\nimport { Button } from \"../Button\";\n\ninterface DataTablePaginationProps<TData> {\n table: Table<TData>;\n footer?: JSX.Element;\n totalData?: number;\n selectAllOption?: boolean;\n onSelectAll?: (value: any) => void;\n onRemoveAll?: (value: any) => void;\n rowsSelected?: number;\n tableRef?: MutableRefObject<HTMLDivElement>;\n paginationScroll?: number;\n pageSizeOptions?: number[];\n}\n\nexport function DataTablePagination<TData>({\n table,\n footer = <div></div>,\n totalData,\n selectAllOption,\n onSelectAll,\n rowsSelected,\n onRemoveAll,\n tableRef,\n paginationScroll,\n pageSizeOptions = [],\n}: DataTablePaginationProps<TData>) {\n const selectedPage = table?.getState()?.pagination.pageIndex;\n const results = totalData;\n const pageCount = table?.getPageCount();\n const limitPagePositive = table?.getState()?.pagination.pageIndex + 2;\n const limitPageNegative = table?.getState()?.pagination.pageIndex - 2;\n const pagesArray = pageCount ? [...Array(pageCount)] : [];\n const pageRowsCount = table?.getRowModel()?.rows?.length || 0;\n\n return (\n <div className=\"w-full flex flex-col sticky z-[90] bottom-0\">\n <div\n className=\"bg-none overflow-x-hidden md:overflow-x-auto overflow-y-hidden table-scroll rounded-lg relative top-[8px] -space-y-1 z-[302] h-[12px]\"\n onScroll={(evt) => {\n tableRef?.current.scrollTo({\n left: evt.currentTarget.scrollLeft,\n });\n }}\n >\n <div\n style={{\n width: paginationScroll ? paginationScroll - 2 : 0,\n }}\n >\n &nbsp;\n </div>\n </div>\n\n <TableFooter>\n {pageSizeOptions?.length > 0 && (\n <PaginationSelect table={table} pageSizeOptions={pageSizeOptions} />\n )}\n <div className=\"flex flex-col md:flex-row items-center justify-center md:justify-normal gap-2 md:gap-4\">\n {footer}\n {selectAllOption && (\n <div>\n {rowsSelected !== totalData ? (\n <div className=\"md:border-l border-neutral-300 pl-4\">\n <Button size=\"xxs\" onClick={onSelectAll} variant=\"secondary\">\n Selecionar todos os {totalData}\n </Button>\n </div>\n ) : (\n <div className=\"md:border-l border-neutral-300 pl-4\">\n <Button size=\"xxs\" onClick={onRemoveAll} variant=\"secondary\">\n Desmarcar todos\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n <div className=\"flex flex-col md:flex-row items-center md:justify-end justify-center gap-2 flex-1\">\n <span className=\"text-p-md text-paragraph mr-1\">\n Mostrando {pageRowsCount} de {results} resultados\n </span>\n\n <div className=\"flex items-center gap-2\">\n <Button\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n variant=\"icon\"\n icon={<i className=\"uil uil-angle-left text-base\"></i>}\n size=\"xs\"\n className=\"justify-center\"\n />\n\n {limitPageNegative >= 1 && (\n <div className=\"flex gap-2\">\n <Button\n onClick={() => table.setPageIndex(0)}\n variant=\"icon\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: \"var(--paragraph)\",\n }}\n >\n {1}\n </div>\n }\n size=\"xs\"\n className=\"justify-center\"\n />\n {limitPageNegative !== 1 && (\n <Button\n disabled\n variant=\"icon\"\n icon={<>...</>}\n size=\"xs\"\n className=\"justify-center\"\n />\n )}\n </div>\n )}\n\n {pagesArray.map((elem, index) => {\n const checkPageIndexLimit =\n index <= limitPagePositive && index >= limitPageNegative;\n const isSelectedPage = index === selectedPage;\n\n return (\n <Fragment key={index + \"pagination\"}>\n {checkPageIndexLimit && (\n <Button\n onClick={() => table.setPageIndex(index)}\n className=\"font-normal text-xs justify-center\"\n variant={isSelectedPage ? \"blue\" : \"icon\"}\n size=\"xs\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: isSelectedPage\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\",\n }}\n >\n {(index + 1).toLocaleString(\"pt-BR\")}\n </div>\n }\n ></Button>\n )}\n </Fragment>\n );\n })}\n\n {limitPagePositive + 1 < pageCount && (\n <div className=\"flex gap-2\">\n {limitPagePositive !== pagesArray.length - 2 && (\n <Button\n disabled\n variant=\"icon\"\n icon={<>...</>}\n size=\"xs\"\n className=\"justify-center\"\n />\n )}\n <Button\n onClick={() => table.setPageIndex(pageCount)}\n variant=\"icon\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: \"var(--paragraph)\",\n }}\n >\n {pageCount.toLocaleString(\"pt-BR\")}\n </div>\n }\n size=\"xs\"\n className=\"font-normal justify-center\"\n />\n </div>\n )}\n <Button\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n variant=\"icon\"\n icon={<i className=\"uil uil-angle-right text-base\"></i>}\n size=\"xs\"\n className=\"justify-center\"\n />\n </div>\n </div>\n </TableFooter>\n </div>\n );\n}\n","import type {\n ColumnFiltersState,\n ExpandedState,\n FilterFn,\n PaginationState,\n Row,\n SortingState,\n Table as TableType,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport React, {\n JSX,\n MutableRefObject,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./TableComponents\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport clsx from \"clsx\";\n// import EmptyState from '../Table/Components/Empty/EmptyState';\nimport { rankItem } from \"@tanstack/match-sorter-utils\";\nimport {Input} from \"./../Input\";\n\ntype CustomTData = {\n _destroy?: string;\n};\n\nconst fuzzyFilter: FilterFn<any> = (row, columnId, value, addMeta) => {\n // Rank the item\n const itemRank = rankItem(row.getValue(columnId), value);\n // Store the itemRank info\n addMeta({\n itemRank,\n });\n\n // Return if the item should be filtered in/out\n return itemRank.passed;\n};\n\nexport interface DataTableProps<TData extends CustomTData, TValue> {\n tableContainerRef: MutableRefObject<any>;\n columns: any[];\n data?: any[];\n searchKey?: string;\n tableCTA?: React.ReactNode;\n isLoading?: boolean;\n onScroll?: any;\n CTA?: React.ReactNode;\n hidePagination?: boolean;\n emptyButtonAction?: JSX.Element;\n hideBlankState?: boolean;\n getRowCanExpand?: () => boolean;\n enableRowSelection?: () => boolean;\n renderSubComponent?: (row: any) => any;\n footer?: JSX.Element;\n borderFull?: boolean;\n withShadow?: boolean;\n actionsSelection?: JSX.Element;\n rowSelection?: any;\n setRowSelection?: any;\n hideHeader?: boolean;\n backgroundColor?: string;\n emptyState?: JSX.Element;\n totalData?: number;\n showFilter?: boolean;\n placeholder?: string;\n fetchData?: (options: {\n pageIndex: number;\n pageSize: number;\n order?: string;\n orderDir?: \"ASC\" | \"DESC\";\n }) => Promise<{\n rows: TData[];\n pageCount: number;\n }>;\n openedSubComponent?: boolean;\n setRows?: (e: any) => void;\n selectAllOption?: boolean;\n autoPagination?: boolean;\n tableClass?: string;\n rowClassName?: (row: any) => any;\n listUpdate?: JSX.Element;\n perPage?: number;\n pageSizeOptions?: number[];\n onFinishFetch?: () => void;\n /* filterableItems?: FilterableItems;\n selectionOptions?: ActionItem<TData>[]; */\n}\n\ntype CustomTable<TData> = TableType<TData> & {\n options?: {\n meta?: {\n getRowStyles?: (row: Row<TData>) => React.CSSProperties;\n };\n };\n};\n\nexport default function DataTable<TData extends CustomTData, TValue>({\n columns,\n tableClass = \"\",\n data = [],\n hidePagination,\n emptyButtonAction,\n hideBlankState,\n renderSubComponent = () => {},\n footer,\n borderFull = false,\n withShadow = true,\n actionsSelection,\n backgroundColor,\n emptyState,\n totalData = 0,\n showFilter,\n placeholder,\n fetchData,\n openedSubComponent = false,\n getRowCanExpand,\n enableRowSelection,\n onScroll,\n tableContainerRef,\n setRows,\n selectAllOption,\n autoPagination,\n rowClassName,\n listUpdate,\n setRowSelection,\n rowSelection,\n perPage,\n pageSizeOptions,\n onFinishFetch,\n}: /* filterableItems,\n selectionOptions, */\nDataTableProps<TData, TValue>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [sorting, setSorting] = useState<SortingState>([]);\n const [arrRowSelected, setArrRowSelected] = useState([]);\n const [globalFilter, setGlobalFilter] = useState(\"\");\n const [dataTable, setDataTable] = useState([]);\n const [loading, setLoading] = useState(true);\n const [expanded, setExpanded] = useState<ExpandedState>({});\n const [total, setTotal] = useState(() => totalData);\n const [{ pageIndex, pageSize }, setPagination] = useState<PaginationState>({\n pageIndex: 0,\n pageSize: hidePagination ? 999999 : perPage ? perPage : 20,\n });\n const [paginationScroll, setPaginationScroll] = useState<number>();\n\n const pagination = useMemo(\n () => ({\n pageIndex,\n pageSize,\n }),\n [pageIndex, pageSize]\n );\n\n // Sticky header functionality removed - vh-sticky-table-header has compatibility issues\n // You can implement custom sticky header with CSS: position: sticky; top: 0;\n\n const fetch = () => {\n if (fetchData && !autoPagination) {\n fetchData({\n pageSize,\n pageIndex,\n order: sorting[0]?.id,\n orderDir: sorting[0]?.desc ? \"DESC\" : \"ASC\",\n }).then((response: any) => {\n setDataTable(response.rows);\n if (!response?.rows && totalData > 0) {\n setPagination({\n pageIndex: pageIndex - 1,\n pageSize,\n });\n }\n });\n } else {\n manualPagination(pageIndex, pageSize).then((response) => {\n setDataTable(response.rows);\n if (!response?.rows && totalData > 0) {\n setPagination({\n pageIndex: pageIndex - 1,\n pageSize,\n });\n }\n });\n }\n setTimeout(() => {\n if (onFinishFetch) {\n onFinishFetch();\n }\n }, 1000);\n };\n\n const manualPagination = async (pageIndex: number, pageSize: number) => {\n const promise = new Promise((resolve, reject) => {\n let shortArrays: any = [],\n i,\n len;\n for (i = 0, len = totalData; i < len; i += pageSize) {\n shortArrays.push(data?.slice(i, i + pageSize));\n }\n resolve(shortArrays);\n });\n\n let dataPromise = (await promise) as any;\n return {\n rows: dataPromise[pageIndex],\n pageCount: Number(pageSize),\n };\n };\n\n useEffect(() => {\n if (!tableContainerRef?.current) return;\n\n const resizeObserver = new ResizeObserver(() => {\n setPaginationScroll(tableContainerRef?.current?.scrollWidth);\n });\n resizeObserver.observe(tableContainerRef?.current);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n useEffect(() => {\n if (fetchData || autoPagination) {\n fetch();\n }\n }, [pageIndex, pageSize, sorting]);\n\n useEffect(() => {\n if (totalData !== total) {\n setPagination({\n pageIndex: 0,\n pageSize: pagination.pageSize,\n });\n setTotal(totalData);\n }\n }, [totalData]);\n\n useEffect(() => {\n if (data) {\n setDataTable(\n () => (autoPagination ? data.slice(0, pageSize) : data) as any\n );\n setLoading(false);\n }\n }, [data]);\n\n const pages =\n totalData < pagination.pageSize\n ? 1\n : Math.ceil(totalData / pagination.pageSize);\n\n let table: TableType<any> = useReactTable({\n data: dataTable?.length > 0 ? dataTable : [],\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n globalFilter,\n columnFilters,\n pagination,\n expanded,\n },\n pageCount: pages,\n manualPagination: true,\n enableRowSelection: enableRowSelection,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onGlobalFilterChange: setGlobalFilter,\n globalFilterFn: fuzzyFilter,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n // getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onPaginationChange: setPagination,\n getRowCanExpand,\n onExpandedChange: setExpanded,\n getExpandedRowModel: getExpandedRowModel(),\n enableExpanding: true,\n getRowId: (row) => {\n return row.id;\n },\n meta: {\n getRowStyles: rowClassName,\n },\n }) as CustomTable<any>;\n\n useEffect(() => {\n if (enableRowSelection && rowSelection) {\n setArrRowSelected(Object.keys(rowSelection) as any);\n }\n }, [rowSelection, enableRowSelection]);\n\n const onSelectAll = () => {\n table.toggleAllRowsSelected(true);\n const araysIds = data?.map((item) => item?.id);\n let selected = {};\n araysIds?.forEach((id) => {\n selected = {\n ...selected,\n [id]: true,\n };\n });\n setRowSelection(selected);\n return;\n };\n\n const onRemoveAll = () => {\n table.toggleAllRowsSelected();\n setRowSelection({});\n return;\n };\n\n const hideTableData =\n (dataTable && dataTable?.length == 0 && !loading && !hideBlankState) ||\n !dataTable ||\n table?.getRowModel()?.rows?.length == 0;\n const canShowTableData = !hidePagination && totalData > 0 && table;\n\n function renderBottomTable() {\n if (hideTableData && totalData !== null) {\n if (emptyState) {\n return emptyState;\n } else {\n return <div></div>;\n // <EmptyState emptyButtonAction={emptyButtonAction} />;\n }\n } else if (canShowTableData && totalData !== null) {\n return (\n <DataTablePagination\n table={table}\n footer={footer}\n totalData={totalData}\n tableRef={tableContainerRef}\n selectAllOption={selectAllOption}\n onSelectAll={onSelectAll}\n rowsSelected={Object.keys(rowSelection || {})?.length}\n onRemoveAll={onRemoveAll}\n paginationScroll={paginationScroll}\n pageSizeOptions={pageSizeOptions}\n />\n );\n } else if (totalData == null) {\n return <></>;\n }\n }\n\n useEffect(() => {\n if (rowSelection && Object.keys(rowSelection).length == 0) {\n const elements = document.getElementsByClassName(\"th-shadow\") as any;\n Object.keys(elements).forEach((index) => {\n elements[index]?.classList?.add(\"with-shadow\");\n });\n } else if (rowSelection && Object.keys(rowSelection).length == 1) {\n const elements = document.getElementsByClassName(\"th-shadow\");\n Object.keys(elements).forEach((index: any) => {\n elements[index]?.classList?.remove(\"with-shadow\");\n });\n }\n }, [rowSelection]);\n\n const stylesRow = (row: any) => {\n const tb = table as any;\n return rowClassName ? tb?.options?.meta?.getRowStyles(row) : {};\n };\n\n return (\n <div className=\"w-full h-full flex flex-col\">\n {showFilter && (\n <div className=\"w-full flex justify-between md:items-center flex-col md:flex-row gap-y-2 md:gap-y-0\">\n <div className=\"w-full md:max-w-[350px]\" id=\"filter-table\">\n <Input\n onChange={(e: any) => setGlobalFilter(e.target.value)}\n name=\"filter\"\n value={globalFilter}\n icon={<i className=\"uil uil-search\"></i>}\n placeholder=\"Buscar pedido por ID, Código ou Cliente\"\n clearField\n onClear={() => setGlobalFilter(\"\")}\n />\n </div>\n\n {listUpdate}\n </div>\n )}\n <div\n className={clsx(\"w-full flex mt-4 flex-col justify-between\", {\n \"flex-1\": !hideTableData,\n [tableClass]: tableClass,\n })}\n >\n <Table\n className={clsx(\n \"w-full table_container z-20 overflow-x-scroll md:overflow-x-hidden\"\n )}\n onScroll={onScroll}\n ref={tableContainerRef}\n >\n {rowSelection &&\n Object.keys(rowSelection)?.length > 0 &&\n actionsSelection &&\n dataTable?.length > 0 && (\n <div className=\"h-[76px] flex items-center justify-between px-4 bg-gradient-to-b from-blue-start to-blue-end rounded-lg -mb-[1px]\">\n <div className=\"flex gap-6\">\n <span className=\"text-white text-p-lg\">\n {Object.keys(rowSelection).length} selecionado(s)\n </span>\n {actionsSelection}\n </div>\n <button title=\"set-row\" onClick={() => setRowSelection({})}>\n <i className=\"uil uil-times text-white\"></i>\n </button>\n </div>\n )}\n <div className=\"table w-full mr-[2px]\" ref={tableRef}>\n <TableHeader>\n {table?.getHeaderGroups()?.map((headerGroup, headerIndex) => (\n <TableRow key={headerGroup.id + headerIndex + \"header\"}>\n {headerGroup.headers.map((header, index) => {\n const classes = header.column.columnDef.meta as any;\n return (\n <TableHead\n key={headerIndex + index + \"th\"}\n style={{\n width: header.getSize(),\n }}\n scope=\"col\"\n className={clsx(\n {\n \"hover:bg-neutral-100 th-shadow cursor-pointer\":\n header.column.getCanSort(),\n [\"with-shadow\"]:\n arrRowSelected?.length == 0 && withShadow,\n },\n classes?.header,\n classes?.className\n )}\n >\n <div onClick={header.column.getToggleSortingHandler()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {sorting[0]?.id == header.column.id ? (\n <i\n className={clsx(\n {\n [\"rotate-0\"]: !sorting[0]?.desc,\n [\"rotate-180\"]: sorting[0]?.desc,\n },\n \"uil uil-arrow-down text-blue-500 transform ml-1 text-[18px] duration-75\"\n )}\n ></i>\n ) : (\n <></>\n )}\n </div>\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody>\n {table?.getRowModel()?.rows?.map((row, rowIndex) => {\n return (\n <React.Fragment key={rowIndex + \"row\"}>\n {!row.original._destroy && (\n <React.Fragment>\n <TableRow\n key={row.id}\n id={row.id}\n className={`text-p-md font-normal h-[80px] text-paragraph w-fit`}\n style={stylesRow(row)}\n >\n {row.getVisibleCells().map((cell, index) => {\n const classes = cell.column.columnDef.meta as any;\n return (\n <TableCell\n key={cell.id}\n id={cell.id}\n style={{\n width: cell.column.getSize(),\n backgroundColor: backgroundColor\n ? backgroundColor\n : \"\",\n ...stylesRow(row),\n }}\n className={clsx(\n {\n [\"hidden\"]: cell.row.original._destroy,\n [\"first:border-l last:border-r\"]:\n borderFull,\n [\"first:rounded-bl-lg last:rounded-br-lg\"]:\n borderFull &&\n row.index === data?.length - 1,\n },\n classes?.cell,\n classes?.className\n )}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </TableRow>\n {(row.getIsExpanded() || openedSubComponent) && (\n <tr>\n <td colSpan={row.getVisibleCells().length}>\n {renderSubComponent({\n row,\n })}\n </td>\n </tr>\n )}\n </React.Fragment>\n )}\n </React.Fragment>\n );\n })}\n </TableBody>\n </div>\n </Table>\n {renderBottomTable()}\n </div>\n </div>\n );\n}\n","import { ReactNode, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Transition } from \"@headlessui/react\";\n\ninterface Props {\n title: string;\n children: ReactNode;\n open: boolean;\n}\n\nexport const Accordion = ({ title, children, open = false }: Props) => {\n const [isOpen, setOpen] = useState<boolean>(open);\n\n return (\n <div>\n <div\n className={clsx(\n {\n [\"border-neutral-200\"]: !isOpen,\n [\"border-rose-700\"]: isOpen,\n },\n \"flex flex-col w-full px-3 py-2 shadow-input border rounded-lg\"\n )}\n >\n <button\n onClick={() => {\n setOpen((state) => !state);\n }}\n type=\"button\"\n className=\"flex items-center justify-between w-full \"\n >\n <span>{title}</span>\n <i\n className={clsx(\n {\n [\"transform rotate-[180deg]\"]: isOpen,\n },\n \"duration-300 uil uil-angle-down text-[30px]\"\n )}\n ></i>\n </button>\n <Transition\n show={isOpen}\n enter=\"ease-in duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-out duration-300\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div\n className={`${\n isOpen ? \"flex opacity-100\" : \"hidden opacity-0\"\n } overflow-auto table-scroll`}\n >\n {children}\n </div>\n </Transition>\n </div>\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { Popover } from \"./Popover/Popover\";\n\nexport function CopyPopover({ children, valueToCopy }) {\n const [copied, setCopied] = useState(false);\n return (\n <>\n <div\n className=\"flex items-center gap-1\"\n onClick={async () => {\n setCopied(true);\n navigator.clipboard.writeText(valueToCopy);\n }}\n onMouseLeave={() => setTimeout(() => setCopied(false), 500)}\n >\n <div\n className=\"flex items-center gap-1\"\n data-tooltip-id=\"copy-id\"\n data-tooltip-content={copied ? \"Copiado\" : \"Copiar\"}\n data-tooltip-place=\"top\"\n >\n <Popover id=\"copy-id\" />\n <div className=\"text-neutral-400 text-xs\">{children}</div>\n </div>\n <div\n data-tooltip-id=\"icon-id\"\n data-tooltip-content={copied ? \"Copiado\" : \"Copiar\"}\n data-tooltip-place=\"top\"\n >\n <Popover id=\"icon-id\" />\n\n <i className=\"uil uil-copy text-base text-blue-500 cursor-pointer -mt-[1px]\"></i>\n </div>\n </div>\n </>\n );\n}\n","import {\n Menu as HeadlessMenu,\n Transition,\n MenuButton,\n MenuItems,\n} from \"@headlessui/react\";\nimport { Fragment, ReactNode } from \"react\";\n\ntype MenuProps = {\n triggerElement?: ReactNode;\n children?: ReactNode;\n className?: string;\n};\n\nexport const Menu = ({ triggerElement, children, className }: MenuProps) => {\n return (\n <HeadlessMenu as=\"div\" className={\"relative h-full cursor-pointer\"}>\n <MenuButton\n as=\"div\"\n className=\"flex rounded-full text-sm h-full w-full items-center\"\n >\n {triggerElement}\n </MenuButton>\n <Transition\n as={Fragment}\n enter=\"transition ease-out duration-200\"\n enterFrom=\"transform opacity-0 scale-95\"\n enterTo=\"transform opacity-100 scale-100\"\n leave=\"transition ease-in duration-75\"\n leaveFrom=\"transform opacity-100 scale-100\"\n leaveTo=\"transform opacity-0 scale-95\"\n >\n <MenuItems\n className={`border-[0.5px] mt-1 border-stroke flex min-w-[200px] flex-col p-2 absolute right-0 z-[999] rounded-lg shadow-[0px_4px_16px_rgba(56,61,77,0.1)] bg-surface cursor-default ${className}`}\n >\n {children}\n </MenuItems>\n </Transition>\n </HeadlessMenu>\n );\n};\n","import { MenuItem } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { ReactNode } from \"react\";\n\ntype ItemProps = {\n index?: number;\n isActive?: boolean;\n onClick?: (event: any) => void;\n children?: ReactNode;\n};\n\nexport const Item = ({ index, isActive, onClick, children }: ItemProps) => {\n return (\n <MenuItem key={index}>\n <div\n className={clsx(\n \"p-3 rounded-lg items-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label font-bold\":\n isActive,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !isActive,\n }\n )}\n tabIndex={index}\n role=\"button\"\n onClick={onClick}\n >\n <div className=\"flex gap-2 w-full items-center whitespace-nowrap\">\n {children}\n </div>\n </div>\n </MenuItem>\n );\n};\n","import React from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport { Button } from \"./Button\";\ntype EditableTextProps = {\n children?: ReactNode;\n button?: ReactNode;\n onClose?: Function;\n};\n\nexport const EditableButton = ({\n children,\n button,\n onClose,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n\n return (\n <div className=\"flex flex-col relative\">\n <div\n className=\"group flex gap-[5px] items-center cursor-pointer\"\n onClick={() => setShowModal(!showModal)}\n >\n {button}\n </div>\n {showModal && (\n <div className=\"max-w-[294px] p-2 bg-surface border border-neutral-300 top-14 absolute z-50 rounded-lg\">\n <div className=\"pb-3\">{children}</div>\n <div className=\"pt-3 pb-1 border-t border-neutral-200 flex items-center justify-end gap-2\">\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setShowModal(false)}\n >\n Cancelar\n </Button>\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={() => {\n setShowModal(false);\n if (onClose) onClose();\n }}\n >\n Aplicar\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { Controller } from \"react-hook-form\";\nimport { ReactNode, useState, JSX } from \"react\";\nimport { Button } from \"./Button\";\n\ntype EditableTextProps = {\n control?: any;\n name?: string;\n emptyLabel?: string | JSX.Element;\n children?: ReactNode;\n onApply?: () => void;\n value?: (value) => JSX.Element;\n hideEditIcon?: boolean;\n truncate?: boolean;\n};\n\nexport const EditableText = ({\n control,\n name = \"\",\n emptyLabel,\n children,\n onApply,\n value,\n hideEditIcon,\n truncate,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n\n const truncateText = (str, max, len) => {\n return str.length > max ? str.substring(0, len) + \"...\" : str;\n };\n return (\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <div className=\"flex flex-col relative\">\n <div\n className=\"group flex gap-[5px] items-baseline cursor-pointer z-[500]\"\n onClick={() => setShowModal(!showModal)}\n >\n {value && field.value ? (\n <>\n {truncate\n ? value(truncateText(field.value, 14, 12))\n : value(field.value)}\n </>\n ) : field.value ? (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n Preenchido\n </label>\n ) : (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n {emptyLabel ? emptyLabel : \"Não informado\"}\n </label>\n )}\n {!hideEditIcon && (\n <i\n style={{ fontSize: \"14px\" }}\n className=\"uil uil-pen text-sm text-blue-500\"\n ></i>\n )}\n </div>\n {showModal && (\n <div>\n <div className=\"w-[160px] md:w-[294px] p-2 bg-surface border border-neutral-300 absolute z-[500] rounded-lg\">\n <div className=\"pb-3 \">{children}</div>\n <div className=\"pt-3 pb-1 border-t border-neutral-200 flex flex-col md:flex-row md:items-center md:justify-end gap-2\">\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setShowModal(false)}\n >\n Cancelar\n </Button>\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={() => {\n setShowModal(false);\n onApply && onApply();\n }}\n >\n Salvar\n </Button>\n </div>\n </div>\n <div\n className=\"fixed top-0 bottom-0 left-0 right-0 z-40\"\n onClick={() => setShowModal(false)}\n ></div>\n </div>\n )}\n </div>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { Controller } from \"react-hook-form\";\nimport { ReactNode, useEffect, useState, JSX } from \"react\";\nimport { Menu } from \"@headlessui/react\";\nimport Fuse from \"fuse.js\";\nimport InputSmall from \"./InputSmall/InputSmall\";\n\ntype EditableTextProps = {\n control?: any;\n name: string;\n emptyLabel?: string | JSX.Element;\n children?: ReactNode;\n options?: any;\n optionStyle?: (value) => JSX.Element;\n valueStyle?: (value) => JSX.Element;\n showInputSeach?: boolean;\n onChangeValue?: (value) => void;\n};\n\nexport const EditableTextSelect = ({\n control,\n name,\n emptyLabel,\n options,\n optionStyle,\n valueStyle,\n showInputSeach,\n onChangeValue,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n const [optionsList, setOptionsList] = useState(() => options);\n const [inputSearch, setInputSearch] = useState(\"\");\n\n const optionsFuse = {\n includeScore: false,\n keys: [\"name\"],\n };\n const fuse = new Fuse(optionsList, optionsFuse);\n\n const filter = () => {\n let results = [...options];\n if (inputSearch) {\n results = fuse.search(inputSearch)?.map((result) => result.item);\n }\n setOptionsList(results);\n };\n\n useEffect(() => {\n setOptionsList(() => options);\n }, [options]);\n\n useEffect(() => {\n filter();\n }, [inputSearch]);\n\n return (\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Menu>\n <Menu.Button>\n <div\n className=\"group flex gap-[5px] cursor-pointer z-[500] items-center\"\n onClick={() => setShowModal(!showModal)}\n >\n {field.value ? (\n valueStyle ? (\n valueStyle(field.value)\n ) : (\n field?.value?.name\n )\n ) : (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n {emptyLabel ? emptyLabel : \"Não informado\"}\n </label>\n )}\n <i\n style={{ fontSize: \"16px\" }}\n className=\"uil uil-pen text-sm text-blue-500\"\n ></i>\n </div>\n </Menu.Button>\n <Menu.Items>\n <div className=\"w-[294px] p-2 bg-surface border border-neutral-300 absolute z-[500] rounded-lg\">\n {showInputSeach && (\n <div className=\"mb-2\">\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setInputSearch(e)}\n value={inputSearch}\n placeholder=\"Pesquisar\"\n clearField\n onKeyDown={(e) => {\n if (e.key == \" \" || e.code == \"Space\") {\n e.stopPropagation();\n }\n }}\n />\n </div>\n )}\n {optionsList?.map((opt) => {\n const selected = opt?.id === field?.value?.id;\n return (\n <Menu.Item\n onClick={() => {\n field.onChange(opt);\n if (onChangeValue) {\n onChangeValue(opt);\n }\n }}\n as=\"button\"\n className={clsx(\n \"p-3 mb-1 rounded-lg items-center flex whitespace-nowrap no-underline w-full\",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n },\n {\n \"cursor-pointer\": !opt.disabled,\n }\n )}\n >\n <div className=\"flex gap-2 w-full items-center whitespace-nowrap\">\n <div className=\"flex w-full justify-between items-center\">\n {optionStyle ? (\n <div>{optionStyle(opt)}</div>\n ) : (\n <div className=\"flex flex-col\">\n <span className=\"font-bold\">{opt?.title}</span>\n <span\n className={clsx({\n \"text-label\": opt.disabled,\n })}\n >\n {opt.name}\n </span>\n {opt?.description}\n </div>\n )}\n <span\n className={clsx(\n \"group-hover:text-accent-label \",\n {\n \"text-accent-label\": selected,\n },\n {\n \"text-blue-500\": !selected,\n }\n )}\n >\n {selected && <i className=\"uil uil-check\"></i>}\n </span>\n </div>\n </div>\n </Menu.Item>\n );\n })}\n </div>\n </Menu.Items>\n </Menu>\n );\n }}\n />\n );\n};\n","import { Fragment } from \"react\";\nimport { Dialog, Transition } from \"@headlessui/react\";\n\nexport default function ImagePreview({ open, setOpen, previewImage }) {\n return (\n <Transition.Root show={open} as={Fragment}>\n <Dialog\n as=\"div\"\n className=\"relative z-[999]\"\n onClose={() => setOpen(false)}\n >\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity\" />\n </Transition.Child>\n\n <div className=\"fixed inset-0 z-10 overflow-y-auto\">\n <div className=\"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\">\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <Dialog.Panel className=\"flex flex-col min-w-[350px] min-h-[250px] relative transform overflow-hidden rounded-lg bg-surface p-6 text-left shadow-xl transition-all\">\n <div className=\"flex flex-col h-full flex-1\">\n <div className=\"flex justify-between mb-2\">\n <h2 className=\"text-t-sm font-bold\">Prévia da imagem</h2>\n <i\n className=\"uil uil-times text-[28px] cursor-pointer\"\n onClick={() => setOpen(false)}\n ></i>\n </div>\n\n <div className=\"border-b border-neutral-200 mb-4\"></div>\n\n <div className=\"flex flex-1 h-full items-center justify-center rounded-lg w-full \">\n <img src={previewImage} alt=\"previewImage\" />\n </div>\n </div>\n </Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </Dialog>\n </Transition.Root>\n );\n}\n","import { SpinnerIcon } from \"../../assets/spinner\";\nimport { Button } from \"../Button\";\nimport ImagePreview from \"./ImagePreview\";\nimport { useState } from \"react\";\n\ntype FileStatusProps = {\n name: string;\n isLoading: boolean;\n size: number;\n onRemove: any;\n isImage: boolean;\n image?: any;\n};\n\nexport const FileStatus = ({\n name,\n isLoading,\n size,\n onRemove,\n isImage,\n image,\n}: FileStatusProps) => {\n return (\n <>\n {isImage ? (\n <ImageFile\n isLoading={isLoading}\n name={name}\n size={size}\n onRemove={onRemove}\n image={image}\n />\n ) : (\n <File\n isLoading={isLoading}\n name={name}\n size={size}\n onRemove={onRemove}\n image={image}\n />\n )}\n </>\n );\n};\n\nconst ImageFile = ({ isLoading, name, size, onRemove, image }) => {\n const [imagePreviewModal, setImagePreviewModal] = useState(false);\n const [previewImage, setPreviewImage] = useState<HTMLImageElement>();\n\n return (\n <div className=\"group h-[130px] w-[130px] flex justify-between border border-neutral-300 rounded-[8px]\">\n {!isLoading && image ? (\n <div className=\"w-full h-full relative\">\n <div className=\"hidden group-hover:block absolute top-3 left-3\">\n <Button\n className=\"w-[32px] h-[32px]\"\n variant=\"iconSecondary\"\n onClick={(evt) => {\n setImagePreviewModal(true);\n let newPreviewImage = new window.Image();\n newPreviewImage.src = image;\n setPreviewImage(newPreviewImage);\n }}\n size=\"xs\"\n icon={<i className=\"uil uil-search-plus text-[22px]\"></i>}\n />\n <ImagePreview\n open={imagePreviewModal}\n setOpen={setImagePreviewModal}\n previewImage={previewImage}\n />\n </div>\n\n <div className=\"block absolute top-3 right-3\">\n <Button\n className=\"w-[32px] h-[32px]\"\n variant=\"iconSecondary\"\n onClick={onRemove}\n size=\"xs\"\n icon={<i className=\"uil uil-times text-xl\"></i>}\n />\n </div>\n\n <div className=\"w-full h-full group-hover:bg-[#16203499]/60 z-10\">\n <img className=\"relative -z-10\" src={image} alt=\"tumbnails\" />\n </div>\n </div>\n ) : (\n <div className=\"flex flex-1 flex-col justify-between p-[10px]\">\n <div className=\"flex flex-col \">\n <div className=\"flex self-end\">\n <i\n onClick={onRemove}\n className=\"uil uil-times text-[28px] cursor-pointer\"\n ></i>\n </div>\n <div className=\"flex self-center items-center justify-center w-12 h-12 bg-blue-500 rounded-full animate-spin\">\n <img\n src={`/spinner-white.svg`}\n alt=\"circle\"\n width={30}\n height={30}\n />\n </div>\n </div>\n <div className=\"text-center\">\n <span className=\"text-p-sm\">{name}</span>\n <div className=\"text-xxs text-label\">{size.to} KB</div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst File = ({ isLoading, name, size, onRemove, image }) => {\n return (\n <div className=\"w-full md:w-[410px] flex items-center justify-between px-3 py-2 border border-neutral-300 rounded-[4px]\">\n <div className=\"flex gap-x-2 items-center\">\n {isLoading ? (\n <SpinnerIcon width={19} height={19} className=\"animate-spin\" />\n ) : (\n <span className=\"text-success-500 flex\">\n <i className=\"uil uil-check-circle text-[23px]\"></i>\n </span>\n )}\n <div className=\"flex flex-col\">\n <div className=\"flex items-start gap-x-1\">\n <span className=\"text-label self-end flex\">\n <i className=\"uil uil-file text-xs\"></i>\n </span>\n <div className=\"text-p-sm\">\n <a\n href={image}\n download={name}\n className=\"text-blue-500 hover:text-blue-500 hover:underline active:text-blue-600 active:underline active:underline-offset-4\"\n >\n {name}\n </a>\n </div>\n </div>\n <div className=\"text-xxs text-label\">\n {size\n ? size.toLocaleString(\"en-US\", {\n style: \"decimal\", // Other options: 'currency', 'percent', etc.\n })\n : null}{\" \"}\n KB\n </div>\n </div>\n </div>\n <i\n onClick={onRemove}\n className=\"uil uil-times text-[24px] text-neutral-600 cursor-pointer\"\n ></i>\n </div>\n );\n};\n","type actions = \"UPLOAD_START\" | \"UPLOAD_END\" | \"REMOVE_FILE\";\n\ntype ActionType = {\n type: actions;\n payload: any;\n};\n\ntype StateType = {\n files?: {\n name?: string;\n size?: number;\n image?: any;\n loading?: boolean;\n type?: string;\n }[];\n};\n\nexport const initialState = {\n files: [],\n};\n\nexport function reducer(state: StateType, action: ActionType): StateType {\n switch (action.type) {\n case \"UPLOAD_START\":\n return {\n files: [\n ...(state?.files as any),\n {\n name: action.payload.file.name,\n size: action.payload.file.size,\n image: action.payload.file,\n type: action.payload.file.type,\n loading: true,\n },\n ],\n };\n case \"UPLOAD_END\":\n return {\n files: state?.files?.map((file) => {\n if (file.name === action.payload.name) {\n return {\n ...file,\n image: action.payload.result,\n loading: false,\n };\n }\n\n return file;\n }),\n };\n case \"REMOVE_FILE\":\n return {\n files: state?.files?.filter(\n (file) => file.name !== action.payload.name\n ),\n };\n default:\n return state;\n }\n}\n","import React from \"react\";\n\n\nexport const IconFile: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"24\"\n height=\"30\"\n viewBox=\"0 0 24 30\"\n {...props}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M24 10.41C23.9844 10.2722 23.9542 10.1364 23.91 10.005V9.87C23.8379 9.71577 23.7417 9.574 23.625 9.45L14.625 0.45C14.501 0.333324 14.3592 0.237121 14.205 0.165H14.07L13.59 0H4.5C3.30653 0 2.16193 0.474106 1.31802 1.31802C0.474106 2.16193 0 3.30653 0 4.5V25.5C0 26.6935 0.474106 27.8381 1.31802 28.682C2.16193 29.5259 3.30653 30 4.5 30H19.5C20.6935 30 21.8381 29.5259 22.682 28.682C23.5259 27.8381 24 26.6935 24 25.5V10.5C24 10.5 24 10.5 24 10.41ZM15 5.115L18.885 9H15V5.115ZM21 25.5C21 25.8978 20.842 26.2794 20.5607 26.5607C20.2794 26.842 19.8978 27 19.5 27H4.5C4.10218 27 3.72064 26.842 3.43934 26.5607C3.15804 26.2794 3 25.8978 3 25.5V4.5C3 4.10217 3.15804 3.72064 3.43934 3.43934C3.72064 3.15804 4.10218 3 4.5 3H12V10.5C12 10.8978 12.158 11.2794 12.4393 11.5607C12.7206 11.842 13.1022 12 13.5 12H21V25.5Z\"\n fill=\"#009EDB\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const IconCheck: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"22\"\n height=\"16\"\n viewBox=\"0 0 22 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M21.065 0.815035C20.9256 0.674443 20.7597 0.562851 20.5769 0.486698C20.3941 0.410545 20.198 0.371338 20 0.371338C19.802 0.371338 19.6059 0.410545 19.4231 0.486698C19.2403 0.562851 19.0744 0.674443 18.935 0.815035L7.76 12.005L3.065 7.29503C2.92022 7.15518 2.74931 7.04521 2.56202 6.9714C2.37474 6.89759 2.17476 6.8614 1.97348 6.86488C1.77221 6.86836 1.5736 6.91145 1.38898 6.99169C1.20436 7.07194 1.03736 7.18775 0.897501 7.33254C0.757643 7.47732 0.647672 7.64823 0.573866 7.83551C0.50006 8.02279 0.463864 8.22278 0.467347 8.42405C0.470829 8.62532 0.513921 8.82394 0.594161 9.00855C0.674401 9.19317 0.790219 9.36018 0.935001 9.50004L6.695 15.26C6.83445 15.4006 7.00035 15.5122 7.18314 15.5884C7.36593 15.6645 7.56198 15.7037 7.76 15.7037C7.95802 15.7037 8.15408 15.6645 8.33687 15.5884C8.51966 15.5122 8.68556 15.4006 8.825 15.26L21.065 3.02004C21.2173 2.87957 21.3388 2.70909 21.4219 2.51935C21.505 2.3296 21.5479 2.12469 21.5479 1.91754C21.5479 1.71038 21.505 1.50548 21.4219 1.31573C21.3388 1.12598 21.2173 0.955499 21.065 0.815035Z\"\n fill=\"#009EDB\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const IconFileUpload: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"30\"\n height=\"30\"\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M10.0649 8.56503L13.4999 5.11503V19.5C13.4999 19.8979 13.6579 20.2794 13.9392 20.5607C14.2205 20.842 14.6021 21 14.9999 21C15.3977 21 15.7792 20.842 16.0605 20.5607C16.3418 20.2794 16.4999 19.8979 16.4999 19.5V5.11503L19.9349 8.56503C20.0743 8.70562 20.2402 8.81721 20.423 8.89337C20.6058 8.96952 20.8019 9.00873 20.9999 9.00873C21.1979 9.00873 21.394 8.96952 21.5767 8.89337C21.7595 8.81721 21.9254 8.70562 22.0649 8.56503C22.2055 8.42558 22.3171 8.25968 22.3932 8.07689C22.4694 7.8941 22.5086 7.69805 22.5086 7.50003C22.5086 7.30201 22.4694 7.10595 22.3932 6.92316C22.3171 6.74037 22.2055 6.57447 22.0649 6.43503L16.0649 0.435028C15.9222 0.298467 15.754 0.191419 15.5699 0.120028C15.2047 -0.0299994 14.7951 -0.0299994 14.4299 0.120028C14.2457 0.191419 14.0775 0.298467 13.9349 0.435028L7.93488 6.43503C7.79502 6.57489 7.68408 6.74092 7.60839 6.92365C7.5327 7.10639 7.49374 7.30224 7.49374 7.50003C7.49374 7.69782 7.5327 7.89367 7.60839 8.0764C7.68408 8.25914 7.79502 8.42517 7.93488 8.56503C8.07474 8.70489 8.24077 8.81583 8.4235 8.89152C8.60624 8.96721 8.80209 9.00617 8.99988 9.00617C9.19767 9.00617 9.39352 8.96721 9.57625 8.89152C9.75898 8.81583 9.92502 8.70489 10.0649 8.56503ZM28.4999 15C28.1021 15 27.7205 15.1581 27.4392 15.4394C27.1579 15.7207 26.9999 16.1022 26.9999 16.5V25.5C26.9999 25.8979 26.8418 26.2794 26.5605 26.5607C26.2792 26.842 25.8977 27 25.4999 27H4.49988C4.10205 27 3.72052 26.842 3.43922 26.5607C3.15791 26.2794 2.99988 25.8979 2.99988 25.5V16.5C2.99988 16.1022 2.84184 15.7207 2.56054 15.4394C2.27923 15.1581 1.8977 15 1.49988 15C1.10205 15 0.720522 15.1581 0.439218 15.4394C0.157913 15.7207 -0.00012207 16.1022 -0.00012207 16.5V25.5C-0.00012207 26.6935 0.473984 27.8381 1.3179 28.682C2.16181 29.5259 3.3064 30 4.49988 30H25.4999C26.6934 30 27.8379 29.5259 28.6819 28.682C29.5258 27.8381 29.9999 26.6935 29.9999 25.5V16.5C29.9999 16.1022 29.8418 15.7207 29.5605 15.4394C29.2792 15.1581 28.8977 15 28.4999 15Z\"\n fill=\"white\"\n />\n </svg>\n);\n","import React from \"react\";\nimport { useEffect, useReducer, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { FileStatus } from \"./FileStatus\";\nimport { initialState, reducer } from \"./FileUploadReducer\";\nimport { usePapaParse } from \"react-papaparse\";\nimport { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\nimport { IconFile } from \"../../assets/IconFile\";\nimport { IconCheck } from \"../../assets/IconCheck\";\nimport { IconFileUpload } from \"../../assets/FileUpload\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\n\ntype FileUploadProps = {\n icon?: \"file\" | \"image\";\n multiple?: boolean;\n direction?: \"vertical\" | \"horizontal\";\n isImage?: boolean;\n setFiles?: any;\n supportedFormats?: string[];\n validationFunction?: any;\n files?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n name?: string;\n limitMessage?: string;\n};\n\nexport const FileUpload = ({\n icon = \"file\",\n multiple = false,\n direction = \"vertical\",\n isImage = false,\n setFiles,\n supportedFormats,\n validationFunction,\n files,\n error,\n name,\n limitMessage,\n}: FileUploadProps) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const [dragging, setDragging] = useState(false);\n const [loading, setLoading] = useState(false);\n const { readString } = usePapaParse();\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n useEffect(() => {\n if (state?.files?.some((file) => file.loading === true)) {\n setLoading(true);\n } else {\n setLoading(false);\n }\n }, [state?.files]);\n\n useEffect(() => {\n if (!files || files.length == 0) {\n state.files = [];\n }\n }, [files]);\n\n useEffect(() => {\n if ((!multiple && state?.files?.length === 0) || multiple) {\n window.addEventListener(\"dragover\", handleDragOver);\n window.addEventListener(\"drop\", handleDrop);\n window.addEventListener(\"dragleave\", handleDragLeave);\n }\n\n return () => {\n window.removeEventListener(\"dragover\", handleDragOver);\n window.removeEventListener(\"drop\", handleDrop);\n window.removeEventListener(\"dragleave\", handleDragLeave);\n };\n }, [multiple, state.files]);\n\n const handleDragOver = (event: globalThis.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!multiple && state.files?.length === 1) {\n setDragging(false);\n } else {\n setDragging(true);\n }\n };\n\n const handleDrop = (event: globalThis.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setDragging(false);\n\n let files = [...(event?.dataTransfer?.files as any)];\n\n if ((!multiple && files?.length === 1) || (multiple && files?.length > 0)) {\n const existingFiles = state?.files?.map((f) => f.name);\n files = files.filter((f) => !existingFiles?.includes(f.name));\n\n files.forEach((file) => {\n const reader = new FileReader();\n\n reader.addEventListener(\"loadstart\", () => {\n dispatch({\n type: \"UPLOAD_START\",\n payload: { file },\n });\n });\n\n reader.addEventListener(\"load\", () => {\n if (!validationFunction) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n }\n if (validationFunction(file)) {\n setTimeout(() => {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n }, 1000);\n\n setFiles && setFiles(file);\n } else {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name: file.name,\n },\n });\n }\n });\n\n reader.readAsDataURL(file);\n });\n event?.dataTransfer?.clearData();\n }\n };\n\n const handleDragLeave = (event: globalThis.DragEvent) => {\n if (event.screenX === 0 && event.screenY === 0) {\n setDragging(false);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n const onChangeFile = (e) => {\n const files = Object.values(e.target.files) as File[];\n e.target.value = null;\n\n files.forEach((file) => {\n const reader = new FileReader();\n\n reader.addEventListener(\"loadstart\", () => {\n dispatch({\n type: \"UPLOAD_START\",\n payload: { file },\n });\n });\n\n reader.addEventListener(\"load\", () => {\n setTimeout(() => {\n readString(String(file), {\n delimiter: \",\",\n worker: true,\n complete: (results) => {\n if (!validationFunction) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n } else if (validationFunction(file)) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n } else {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name: file.name,\n },\n });\n }\n },\n });\n }, 1000);\n });\n\n reader.readAsDataURL(file);\n });\n };\n\n const renderContent = () => {\n if (loading) {\n return <LoadingContent />;\n } else if (dragging) {\n return <DraggingContent />;\n } else if (!multiple && (state?.files?.length as any) > 0) {\n return <BlockedContent />;\n }\n\n return (\n <DefaultContent\n icon={icon}\n formats={supportedFormats?.join(\", \").replace(/\\./g, \"\").toUpperCase()}\n limitMessage={limitMessage}\n />\n );\n };\n\n const removeFile = (name: string) => {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name,\n },\n });\n setFiles && setFiles(null);\n };\n\n return (\n <div className=\"w-full\">\n <div\n className={clsx(\n \"flex gap-1 w-full rounded-lg items-center justify-center\",\n {\n \"flex-col gap-1\": direction === \"vertical\",\n }\n )}\n >\n <input\n id=\"file-upload\"\n name=\"file-upload\"\n type=\"file\"\n accept={supportedFormats?.join(\",\")}\n multiple={multiple}\n className=\"sr-only\"\n onChange={onChangeFile}\n />\n {renderContent()}\n <div\n className={clsx(\n {\n \"flex flex-col w-full gap-y-[6px]\":\n direction === \"vertical\" && !isImage,\n },\n {\n \"flex flex-col gap-y-[6px] w-full\":\n direction === \"horizontal\" && !isImage,\n },\n {\n \"flex gap-[6px]\": direction === \"vertical\" && isImage,\n },\n {\n \"flex gap-[6px]\": direction === \"horizontal\" && !isImage,\n }\n )}\n >\n {state?.files?.map((file) => (\n <FileStatus\n key={file.name}\n name={file?.name as any}\n onRemove={() => removeFile(file?.name as any)}\n isLoading={file.loading as any}\n size={file.size as any}\n isImage={file.image && isImage}\n image={file.image}\n />\n ))}\n </div>\n {hasError &&\n fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs -mt-[6px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message as any}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nconst DefaultContent = ({ formats, icon, limitMessage }) => (\n <div className=\"w-full md:w-[410px] h-full flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-2 bg-blue-100 rounded-full\"\n }\n >\n {icon === \"file\" ? (\n <IconFile />\n ) : (\n <i className=\"uil uil-image-plus text-[28px] text-blue-500\" />\n )}\n </div>\n\n <h1 className=\"font-bold text-base\">\n {icon === \"file\"\n ? \"Arraste o arquivo e solte aqui\"\n : \"Arraste as imagens e solte aqui\"}\n </h1>\n\n <label\n htmlFor=\"file-upload\"\n className=\"relative leading-none cursor-pointer text-sm bg-surface focus-within:outline-none\"\n >\n <p>\n ou&nbsp;\n <span className=\"text-blue-500\">selecione do seu computador</span>\n </p>\n </label>\n\n <small className=\"text-label text-xxs leading-5\">\n Formatos: {formats} | {limitMessage ? limitMessage : \"Até 25 MB\"}\n </small>\n </div>\n </div>\n);\nconst BlockedContent = () => (\n <div className=\"w-full md:w-[410px] h-full flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center justify-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-1 bg-blue-100 rounded-full\"\n }\n >\n <IconCheck />\n </div>\n\n <h1 className=\"font-bold text-base mt-1\">Arquivo carregado!</h1>\n </div>\n </div>\n);\n\nconst DraggingContent = () => (\n <div className=\"w-full md:w-[410px] h-[152px] bg-blue-100 rounded-lg\">\n <div className=\"flex flex-col p-4 custom-border justify-center\">\n <div className=\"flex flex-1 flex-col h-full text-center items-center justify-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-2 bg-blue-500 rounded-full\"\n }\n >\n <IconFileUpload />\n </div>\n\n <h1 className=\"font-bold text-base text-blue-500\">\n Solte aqui para carregar o arquivo\n </h1>\n </div>\n </div>\n </div>\n);\n\nconst LoadingContent = () => (\n <div className=\"w-full h-full bg-blue-100 flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center justify-center\">\n <SpinnerIcon className=\"animate-spin\" />\n\n <h1 className=\"font-bold text-base text-blue-500\">\n Carregando arquivo...\n </h1>\n </div>\n </div>\n);\n","import { Popover } from \"./Popover/Popover\";\n\nexport function InfoIcon({\n content,\n id = \"info-id\",\n}: {\n content?: string;\n id?: string;\n}) {\n return (\n <div\n data-tooltip-id={id}\n data-tooltip-html={content}\n data-tooltip-place=\"top\"\n >\n <Popover id={id} />\n <i className=\"uil uil-info-circle text-p-lg text-neutral-400\"></i>\n </div>\n );\n}\n","export const customStyles = {\n indicatorSeparator: (provided: any, { hasValue }: any) => {\n return {\n ...provided,\n marginTop: \"-6px\",\n backgroundColor: hasValue ? \"var(--input)\" : \"transparent\",\n };\n },\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n paddingLeft: state.selectProps.hasIcon ? \"2.5rem\" : \"0px\",\n }),\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n marginTop: \"-6px\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n display: state.selectProps.isTargeted ? \"none\" : \"flex\",\n paddingRight: \"12px\",\n marginTop: \"-6px\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 70,\n background: \"var(--surface)\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.menuIsOpen\n ? \"1.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n boxShadow: state.isDisabled\n ? \"none\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n paddingLeft: \"0px\",\n placeholder: \" \",\n minHeight: \"46px\",\n alignItems: \"end\",\n paddingTop: \"8px\",\n backgroundColor: \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingTop: \"2px\",\n lineHeight: \"16px\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n paddingRight: \"6px\",\n paddingLeft: \"0px\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color =\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\";\n\n if (state.isDisabled) {\n color = \"var(--disabled)\";\n }\n\n return {\n ...provided,\n height: \"44px\",\n cursor: \"pointer\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : state.isFocused\n ? \"var(--neutral-200)\"\n : \"var(--surface)\",\n color,\n fontWeight: state.isSelected && !state.selectProps.isTargeted ? 700 : 400,\n \"&:hover\": {\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active svg\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" svg\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import {\n Control,\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport Select, { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./MultiSelect.styles\";\nimport clsx from \"clsx\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n options: OptionType[];\n defaultValue?: OptionType;\n control?: Control<any>;\n isSearchable?: boolean;\n required?: boolean;\n label?: string;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n disabled?: boolean;\n}\n\nexport const MultiSelect = ({\n name,\n options,\n label = \"\",\n error,\n defaultValue,\n control,\n isSearchable = false,\n required,\n disabled,\n}: SelectFieldProps) => {\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const { DropdownIndicator, Option } = components;\n\n const DropdownIndicatorCustom = (props: any) => {\n return (\n <DropdownIndicator {...props}>\n <i className=\"uil uil-angle-down text-[20px]\"></i>\n </DropdownIndicator>\n );\n };\n\n const IconOption = (props: any) => {\n return (\n <Option {...props}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n height: \"100%\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n </Option>\n );\n };\n\n const NoOptionsMessage = () => {\n return (\n <div className=\"p-2 text-neutral-300\">Nenhum dado encontrado</div>\n );\n };\n\n return (\n <div className=\"relative h-full\" id=\"multiselect\">\n <Select\n {...field}\n {...hasError}\n isDisabled={disabled}\n name={field.name}\n ref={field.ref}\n styles={customStyles}\n placeholder=\" \"\n isSearchable={isSearchable}\n options={options}\n isMulti\n tabSelectsValue={true}\n components={{\n ValueContainer,\n Option: IconOption,\n NoOptionsMessage,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n isOptionDisabled={(option: any) => option.blocked}\n hideSelectedOptions={false}\n closeMenuOnSelect={false}\n />\n\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\" scale-75 -translate-y-3 \"]:\n field.value && field.value.length > 0,\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs -mt-[5px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\n","export const customStyles = {\n input: (provided) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n height: \"100%\",\n }),\n indicatorSeparator: (provided) => ({\n ...provided,\n backgroundColor: \"transparent\",\n }),\n clearIndicator: (provided) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n display: \"none\",\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 30,\n background: \"var(--surface)\",\n }),\n control: (provided, state) => {\n const border = state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.isFocused\n ? \"1.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n paddingTop: state.selectProps.hasLabel ? \"18px\" : \"0px\",\n border: state.isDisabled\n ? \"0.5px solid var(--input-border-disabled, var(--stroke))\"\n : border,\n boxShadow: state.isDisabled\n ? \"none\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n backgroundColor: \"var(--surface)\",\n // height: \"52px\",\n // paddingLeft: '8px',\n placeholder: state.selectProps.hasLabel\n ? \" \"\n : state.selectProps.placeholder,\n alignItems: state.selectProps.hasLabel ? \"end\" : \"center\",\n \":hover\": {\n border: state.isDisabled\n ? \"0.5px solid var(--input-border-disabled, var(--stroke))\"\n : border,\n // height: \"52px\",\n },\n \":focus-within\": {\n // height: \"52px\",\n },\n };\n },\n multiValue: (provided) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 6px\",\n }),\n multiValueLabel: (provided) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n container: (provided) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import React from \"react\";\nimport { Controller, FieldError } from \"react-hook-form\";\nimport CreatableSelect, { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./InputTag.styles\";\nimport { KeyboardEventHandler, useState } from \"react\";\nimport clsx from \"clsx\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n required?: boolean;\n label?: string;\n error?: FieldError | undefined;\n onKeyDown?: (event: any) => void;\n blockSpaces?: boolean;\n}\n\nexport const InputTag = ({\n name,\n label = \"\",\n error,\n defaultValue,\n control,\n required,\n placeholder,\n blockSpaces = false,\n}: SelectFieldProps) => {\n const [inputValue, setInputValue] = useState(\"\");\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const removeSpaces = (value: string) => {\n return value\n ?.replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w\\-]+/g, \"\") // Remove all non-word chars\n .replace(/\\-\\-+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\");\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (\n !inputValue ||\n (field?.value || []).find((item) => item?.value === inputValue)\n )\n return;\n switch (event.key) {\n case \"Enter\":\n case \"Tab\":\n field.onChange([\n ...(field?.value || []),\n {\n label: blockSpaces ? removeSpaces(inputValue) : inputValue,\n value: blockSpaces ? removeSpaces(inputValue) : inputValue,\n },\n ]);\n\n setInputValue(\"\");\n event.preventDefault();\n }\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n return (\n <div\n className={`relative ${label ? \"with-label\" : \"\"}`}\n id=\"inputtag\"\n >\n <CreatableSelect\n {...hasError}\n {...hasLabel}\n {...{ placeholder: placeholder }}\n {...field}\n styles={customStyles}\n menuIsOpen={false}\n placeholder={hasLabel.hasLabel ? \" \" : placeholder}\n isMulti\n tabSelectsValue={true}\n onKeyDown={handleKeyDown}\n isClearable={false}\n inputValue={inputValue}\n onInputChange={(newValue) => setInputValue(newValue)}\n isOptionDisabled={(option) => option.blocked}\n />\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\" scale-75 -translate-y-3 \"]:\n field.value && field.value.length > 0,\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\nInputTag.displayName = \"InputTag\";","export const customStyles = {\n indicatorSeparator: (provided: any, { hasValue }: any) => {\n return {\n ...provided,\n display: \"none\",\n };\n },\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n paddingLeft: state.selectProps.hasIcon ? \"2.5rem\" : \"0px\",\n }),\n clearIndicator: (provided: any) => ({\n ...provided,\n display: \"none\",\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n display: state.selectProps.isTargeted ? \"none\" : \"flex\",\n paddingRight: \"12px\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 70,\n background: \"var(--surface)\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.menuIsOpen\n ? \"1.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n boxShadow: state.isDisabled\n ? \"none\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n paddingLeft: \"8px\",\n placeholder: \" \",\n height: \"46px\",\n alignItems: \"end\",\n backgroundColor: \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 0px\",\n display: \"none\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingTop: \"6px\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n paddingRight: \"6px\",\n paddingLeft: \"0px\",\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color =\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\";\n\n if (state.isDisabled) {\n color = \"var(--disabled)\";\n }\n\n return {\n ...provided,\n height: \"44px\",\n cursor: \"pointer\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : state.isFocused\n ? \"var(--neutral-200)\"\n : \"var(--surface)\",\n color,\n fontWeight: state.isSelected && !state.selectProps.isTargeted ? 700 : 400,\n \"&:hover\": {\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active svg\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" svg\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n valueContainer: (provided: any) => ({\n ...provided,\n padding: \"2px 0px\",\n }),\n};\n","import {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport AsyncSelect from \"react-select/async\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./MultiSelectBottom.styles\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n options: OptionType[];\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n required?: boolean;\n label?: string;\n error?: FieldError | Merge<FieldError, FieldErrorsImpl<any>>;\n disabled?: boolean;\n emptyMessage?: string;\n filterOptions?: (value: any) => any;\n debounce?: number;\n}\n\nexport const MultiSelectBottom = ({\n name,\n options,\n label = \"\",\n error,\n defaultValue,\n control,\n isSearchable = false,\n required,\n disabled,\n emptyMessage,\n filterOptions,\n debounce = 0,\n}: SelectFieldProps) => {\n const [loading, setLoading] = useState(false);\n const [optionsList, setOptionsList] = useState(() => options || []);\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const loadOptions = (inputValue: string) => {\n setLoading(true);\n if (isSearchable && filterOptions) {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n const result = filterOptions(inputValue);\n setLoading(false);\n return result;\n }\n } else {\n setOptionsList(options);\n }\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const { DropdownIndicator, Option } = components;\n\n const DropdownIndicatorCustom = (props: any) => {\n return (\n <DropdownIndicator {...props}>\n <i className=\"uil uil-angle-down text-[20px]\"></i>\n </DropdownIndicator>\n );\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (props.selectProps.inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && props.selectProps.inputValue.length < debounce)\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n } else if (\n props.selectProps.inputValue.length > 0 &&\n props?.options?.length == 0\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">Nenhum dado encontrado</div>\n );\n }\n };\n\n const IconOption = (props: any) => {\n return (\n <Option {...props}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n height: \"100%\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (\n !debounce ||\n (debounce && props.selectProps.inputValue.length >= debounce)\n ) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <img\n className=\"animate-spin \"\n src=\"/spinner.svg\"\n alt=\"circle\"\n width={16}\n height={16}\n />\n Buscando...\n </div>\n );\n } else if (\n debounce &&\n props.selectProps.inputValue.length < debounce\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n }\n };\n\n return (\n <div className=\"relative h-full\" id=\"multiselectbottom\">\n <AsyncSelect\n {...field}\n {...hasError}\n isDisabled={disabled}\n name={field.name}\n ref={field.ref}\n styles={customStyles}\n placeholder=\" \"\n isSearchable={isSearchable}\n options={optionsList}\n isMulti\n defaultOptions={\n debounce > 0 ? false : options ? optionsList : true\n }\n loadOptions={loadOptions}\n tabSelectsValue={true}\n components={{\n ValueContainer,\n Option: IconOption,\n NoOptionsMessage: NoOptionsMessage as any,\n LoadingMessage: LoadingMessage as any,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n isOptionDisabled={(option: any) => option.blocked}\n hideSelectedOptions={false}\n closeMenuOnSelect={false}\n backspaceRemovesValue={false}\n />\n\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages?.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[3px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n <div className=\"flex items-center gap-x-2 gap-y-1 flex-wrap\">\n {field?.value?.length > 0 ? (\n field?.value?.map((item) => (\n <div className=\"text-p-sm bg-neutral-100 rounded-[20px] py-2 px-3 flex items-center justify-between mt-3\">\n <span className=\"whitespace-nowrap\">{item.label}</span>\n <button\n type=\"button\"\n onClick={() => {\n const copy = [...field.value];\n const index = copy.findIndex(\n (opt) => opt.value == item.value\n );\n copy.splice(index, 1);\n field.onChange(copy);\n }}\n >\n <i className=\"uil uil-times text-sm text-neutral-400\"></i>\n </button>\n </div>\n ))\n ) : (\n <span className=\"text-p-md text-label pt-2 pl-2\">\n {emptyMessage || \"Nenhuma opção selecionada\"}\n </span>\n )}\n </div>\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\nMultiSelectBottom.displayName = \"MultiSelectBottom\";","import React from \"react\";\n\nexport function PageBox(props: {\n title?: string;\n children?: React.ReactNode;\n}) {\n return (\n <div className=\"py-5 px-4 border border-neutral-200 rounded-lg\">\n {props?.title && (\n <h1 className=\"text-t-xs font-bold text-title mb-4\">{props.title}</h1>\n )}\n {props?.children}\n </div>\n );\n}\n","import { JSX } from \"react\";\n\ntype PageHeaderProps = {\n title: JSX.Element | string;\n breadcrumbs?: {\n name: string;\n link?: string;\n }[];\n children?: JSX.Element;\n description?: JSX.Element | string;\n};\n\nexport const PageHeader = ({\n title,\n breadcrumbs,\n children,\n description,\n}: PageHeaderProps) => {\n return (\n <div className=\"flex flex-col md:flex-row place-content-between font-sans pb-4 w-full\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex flex-row items-center text-p-lg text-label\">\n {breadcrumbs &&\n breadcrumbs.map((breadcrumb, index) => (\n <div key={index}>\n {breadcrumb.link ? (\n <a\n href={breadcrumb.link}\n className=\"hover:no-underline hover:text-paragraph\"\n >\n <span className=\"cursor-pointer flex items-center\">\n {index > 0 && <i className=\"uil uil-angle-right\"></i>}\n {breadcrumb.name}\n </span>\n </a>\n ) : (\n <div className=\"flex items-center\">\n <i className=\"uil uil-angle-right\"></i>\n <span\n className={\n index === breadcrumbs.length - 1 ? \"text-paragraph\" : \"\"\n }\n >\n {breadcrumb.name}\n </span>\n </div>\n )}\n </div>\n ))}\n </div>\n <div>\n <h2 className=\"text-t-md text-title font-bold mb-1\">{title}</h2>\n {description && (\n <span className=\"text-p-lg text-label\">{description}</span>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center gap-6 md:justify-end flex-1 mt-2 md:mt-0\">\n {children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\n\ntype ProgressBarProps = {\n percentage: number;\n variant: \"primary\" | \"success\" | \"danger\" | \"info\";\n status: string;\n};\n\nconst variants = {\n primary: {\n bar: \"bg-gradient-to-b from-blue-start to-blue-end\",\n text: \"text-blue-500\",\n },\n success: {\n bar: \"bg-gradient-to-b from-success-start to-success-end\",\n text: \"text-success-500\",\n },\n danger: {\n bar: \"bg-gradient-to-b from-danger-start to-danger-end\",\n text: \"text-dangerous-600\",\n },\n info: {\n bar: \"bg-gradient-to-b from-blue-start to-blue-end\",\n text: \"text-blue-500\",\n },\n};\n\nexport const ProgressBar = ({\n percentage,\n variant = \"primary\",\n status,\n}: ProgressBarProps) => {\n const [barPercentage, setBarPercentage] = useState(() => fixPercentage());\n\n function fixPercentage() {\n if (percentage > 100) {\n return 100;\n } else {\n return percentage;\n }\n }\n useEffect(() => {\n setBarPercentage(fixPercentage());\n }, [percentage]);\n\n return (\n <div className=\"flex flex-col gap-y-[2px] min-w-[170px]\">\n <div className=\"w-full p-[1px] border border-neutral-300 rounded-[15px]\">\n <div\n className={clsx(variants[variant].bar, \"h-[14px] rounded-[15px]\")}\n style={{ width: `${barPercentage}%` }}\n ></div>\n </div>\n {status && (\n <span className={clsx(variants[variant].text, \"text-blue-500 text-xs\")}>\n {status}\n {percentage && (\n <span className=\"font-bold\">&nbsp;- {percentage} %</span>\n )}\n </span>\n )}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { useState, JSX } from \"react\";\n\nexport type TabsProps = {\n tabs: {\n key: string;\n label: string | JSX.Element;\n icon?: any;\n children: JSX.Element;\n hidden?: boolean;\n }[];\n onClick?: (current) => void;\n};\n\nexport function SimpleTab({ tabs, onClick }: TabsProps) {\n const [currentTab, setCurrentTab] = useState(0);\n\n function isCurrentTab(index) {\n return index === currentTab;\n }\n return (\n <div className=\"flex-1 flex flex-col\">\n <div className=\"flex flex-col h-full flex-1\">\n <div className=\"border-b border-neutral-200\">\n <div className=\"-mb-px flex\" aria-label=\"Tabs\">\n {tabs\n .filter((item) => !item.hidden)\n .map((tab, index) => (\n <nav\n key={tab.key}\n className={clsx(\n isCurrentTab(index)\n ? \"border-rose-700 text-rose-700 font-bold hover:border-rose-800 hover:text-rose-800 hover:font-bold\"\n : \"border-transparent text-label hover:text-paragraph\",\n \"group cursor-pointer flex items-center border-b-2 py-1 px-4 text-base\"\n )}\n aria-current={isCurrentTab(index) ? \"page\" : undefined}\n onClick={() => {\n setCurrentTab(index);\n if (onClick) {\n onClick(tabs[index]);\n }\n }}\n >\n <div\n id=\"tab-icon\"\n className={clsx(\n isCurrentTab(index)\n ? \"text-rose-700 group-hover:text-rose-800\"\n : \"text-label group-hover:text-paragraph\",\n { \"-ml-0.5 mr-2\": tab.icon }\n )}\n aria-hidden=\"true\"\n >\n {tab.icon}\n </div>\n <span>{tab.label}</span>\n </nav>\n ))}\n </div>\n </div>\n <div className=\"h-full flex-1 flex flex-col\">\n {tabs[currentTab].children}\n </div>\n </div>\n </div>\n );\n}\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonDetails = ({ loading, ...props }) => {\n const label = (\n <div className=\"w-[120px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const description = (\n <div className=\"w-[105px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const details = (\n <div className=\"flex flex-col gap-2 w-[25%]\">\n {label}\n {description}\n </div>\n );\n\n const lineDetails = (\n <div className=\"flex items-start justify-between\">\n {Array(5)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"line\"}>{details}</div>\n ))}\n </div>\n );\n\n const timeline = (\n <div className=\"flex flex-col\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div className=\"flex\" key={index}>\n <div className=\"mr-3 relative\">\n {index !== 2 && (\n <div className=\"w-[2px] bg-neutral-200 ml-[5px] h-full absolute mt-10\"></div>\n )}\n <div className=\"relative mt-10\">\n <div className=\"h-3 w-3 rounded-full bg-neutral-100\"></div>\n <div className=\"h-2 w-2 rounded-full absolute z-30 top-[2px] left-[2px] bg-neutral-300\"></div>\n </div>\n </div>\n <div className=\"flex flex-col h-[60px] mt-3 relative gap-[4px]\">\n <div className=\"w-[105px] h-4\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n <div className=\"w-[105px] h-4\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n\n return (\n <div className=\"flex-1 w-full h-full\">\n <div className={clsx({ [\"hidden\"]: !loading }, \"flex flex-col gap-4\")}>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-[4px]\">\n {label}\n <div className=\"w-3 h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"w-[200px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n <div className=\"w-[95px] h-5\">\n <Skeleton className=\"h-full rounded-l\" />\n </div>\n </div>\n <div className=\"w-[480px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <div className=\"w-[150px] h-[46px]\">\n <Skeleton className=\"h-full\" />\n </div>\n <div className=\"w-[150px] h-[46px]\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-4\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"tabs\"} className=\"w-[220px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n ))}\n </div>\n <div className=\"h-[1px] w-full bg-neutral-200\"></div>\n </div>\n <div className=\"flex items-start gap-8\">\n <div className=\"w-[75%] border border-neutral-200 rounded-lg p-4 flex flex-col gap-6\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"lineDetails\"}>{lineDetails}</div>\n ))}\n </div>\n <div className=\"flex-1 flex-col\">\n <div className=\"p-3 border border-neutral-200 rounded-lg\">\n {label}\n </div>\n <div className=\"border-x border-neutral-200 -mt-1 p-4 pt-[20px] flex items-center gap-2\">\n <div className=\"w-6 h-6\">\n <Skeleton className=\"h-full rounded-f\" />\n </div>\n {label}\n </div>\n <div className=\"border border-neutral-200 rounded-b-lg p-4 pt-0\">\n {timeline}\n </div>\n </div>\n </div>\n </div>\n <div\n className={clsx(\n { [\"hidden\"]: loading },\n \"flex flex-1 w-full h-full flex-col\"\n )}\n >\n {props.children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonList = ({ loading, ...props }) => {\n const tableLine = (\n <div className=\"border-b gap-x-2 border-neutral-200 py-6 px-2 flex items-center justify-between\">\n <div className=\"w-[200px] h-6\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n </div>\n );\n\n const headerItem = (\n <div className=\"border border-neutral-200 rounded-lg py-3 px-2 flex items-center justify-between gap-5\">\n <div className=\"w-[200px] h-6\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n </div>\n );\n\n const buttonPagination = (\n <div className=\"w-8 h-8 rounded-md\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n return (\n <div className=\"flex flex-1 flex-col gap-y-4\">\n <div\n className={clsx(\n { [\"hidden\"]: !loading },\n \"flex-1 flex flex-col h-full justify-between relative\"\n )}\n >\n <div className=\"flex-1\">\n <div className=\"mt-3\">\n {new Array(1).fill(null).map((_, index) => (\n <div key={index + \"second\"}>{headerItem}</div>\n ))}\n {new Array(4).fill(null).map((_, index) => (\n <div key={index + \"third\"}>{tableLine}</div>\n ))}\n </div>\n </div>\n <div className=\"py-4 px-6 sticky bottom-0 bg-surface w-full border border-neutral-200 rounded-t-lg flex items-center gap-3 justify-end\">\n <div className=\"w-[190px] h-6 rounded-md\">\n <Skeleton className=\"h-full\" />\n </div>\n {Array(5)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"buttons\"}>{buttonPagination}</div>\n ))}\n </div>\n </div>\n <div className={clsx({ [\"hidden\"]: loading }, \"flex flex-1 h-full\")}>\n {props.children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonRegister = ({ loading, ...props }) => {\n const label = (\n <div className=\"w-[120px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const subtitle = (\n <div className=\"w-[204px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const input = (\n <div className=\"w-[316px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const inputSm = (\n <div className=\"w-[126px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n return (\n <>\n <div className={clsx({ [\"hidden\"]: !loading })}>\n <div className=\"flex flex-col gap-5\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-[4px]\">\n {label}\n <div className=\"w-3 h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n </div>\n <div className=\"w-[250px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"w-full border border-neutral-200 rounded-lg px-4 py-6\">\n <div>\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n {Array(4)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"first\"}>{input}</div>\n ))}\n </div>\n <div className=\"mt-6 flex items-center gap-4\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"second\"}>{input}</div>\n ))}\n </div>\n </div>\n <div className=\"mt-8\">\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n {Array(2)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"third\"}>{input}</div>\n ))}\n </div>\n </div>\n <div className=\"mt-8\">\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n <div className=\"w-[216px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"mt-4 flex items-center gap-4\">\n {input}\n {inputSm}\n {input}\n </div>\n <div className=\"mt-4 flex items-center gap-4\">\n {input}\n {input}\n {inputSm}\n </div>\n </div>\n </div>\n </div>\n <div className=\"flex items-center justify-end gap-4 mt-6\">\n {Array(2)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"buttons\"}>{inputSm}</div>\n ))}\n </div>\n </div>\n <div className={clsx({ [\"hidden\"]: loading })}>{props.children}</div>\n </>\n );\n};\n","import clsx from \"clsx\";\n\nexport type StatusBallProps = {\n label?: string;\n variant?: keyof typeof variants;\n labelPosition?: \"left\" | \"right\";\n};\n\nconst variants = {\n success: {\n small: \"bg-success-500\",\n big: \"border border-[1px] border-success-500\",\n },\n dangerous: {\n small: \"bg-dangerous-500\",\n big: \"border border-[1px] border-dangerous-500\",\n },\n warning: {\n small: \"bg-warning-500\",\n big: \"border border-[1px] border-warning-500\",\n },\n info: {\n small: \"bg-blue-500\",\n big: \"border border-[1px] border-blue-500\",\n },\n gray: {\n small: \"bg-neutral-300\",\n big: \"border border-[1px] border-neutral-300\",\n },\n};\n\nexport const StatusBall = ({\n label,\n variant = \"info\",\n labelPosition = \"right\",\n}: StatusBallProps) => {\n const ball = (\n <div\n className={clsx(\n variants[variant].big,\n \"shrink-0 h-3 w-3 rounded-full flex items-center justify-center\",\n )}\n >\n <div\n className={clsx(variants[variant].small, \"h-[8px] w-[8px] rounded-full\")}\n ></div>\n </div>\n );\n\n return (\n <div className=\"flex items-center justify-center gap-2\">\n {labelPosition === \"right\" ? (\n <>\n {ball}\n <span className=\"text-p-md text-paragraph font-normal\">{label}</span>\n </>\n ) : (\n <>\n <span className=\"text-p-md text-paragraph font-normal\">{label}</span>\n {ball}\n </>\n )}\n </div>\n );\n};\n","import { Tab, TabGroup, TabList, TabPanel, TabPanels } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { ReactNode, useState, JSX } from \"react\";\nimport { Button } from \"./Button\";\n\ntype tab = {\n key: string;\n label: string;\n icon: JSX.Element | string;\n children: JSX.Element;\n secondChildren?: JSX.Element;\n required?: boolean;\n disabled?: boolean;\n subPanel?: JSX.Element;\n};\n\nexport type TabProps = {\n tabs: tab[];\n createButtonLabel: string;\n cancelButton: ReactNode;\n buttonDisabled?: boolean;\n buttonLoading?: boolean;\n saveButton?: JSX.Element;\n onClick?: (value: tab) => void;\n onSave?: () => void | number;\n showNextStep?: boolean;\n};\n\nexport const Tabs = ({\n tabs,\n cancelButton,\n buttonDisabled,\n createButtonLabel,\n buttonLoading,\n saveButton,\n onClick,\n onSave,\n showNextStep = true,\n}: TabProps) => {\n const [selectedTab, setSelectedTab] = useState(0);\n\n const ShowSaveButton = saveButton ? (\n <>{saveButton}</>\n ) : (\n <Button\n icon={<i className=\"uil uil-check\"></i>}\n variant=\"primary\"\n loading={buttonLoading}\n onClick={async () => {\n if (onSave) {\n const resp = await onSave();\n if (typeof resp == \"number\") {\n setSelectedTab(resp);\n }\n }\n }}\n >\n {createButtonLabel}\n </Button>\n );\n\n return (\n <div className=\"flex flex-col w-full\">\n <TabGroup\n selectedIndex={selectedTab}\n onChange={(index) => {\n setSelectedTab(index);\n if (onClick) onClick(tabs[index]);\n }}\n >\n <TabList className=\"flex gap-2\">\n {tabs.map((tab, index) => {\n return (\n <Tab\n key={tab.key}\n disabled={tab?.disabled}\n className={({ selected }) =>\n clsx(\n \"group inline-flex rounded-t-lg font-bold text-p-md border border-neutral-200 px-6 py-3 z-20 outline-none focus:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n {\n \"text-rose-700 border-b-0 bg-surface shadow-tabs\": selected,\n \"bg-neutral-100 text-rose-700 opacity-80 shadow-tabDisabled\":\n !selected && !tab.disabled,\n \"text-disabled bg-neutral-100 shadow-tabDisabled\":\n tab.disabled && !selected,\n }\n )\n }\n >\n <div\n className={clsx(\n \"-ml-0.5 md:mr-2 flex items-center justify-center font-bold rounded-full h-8 w-8 group-aria-selected:bg-rose-700 group-aria-selected:text-white\",\n {\n \"bg-neutral-200 text-disabled\": tab.disabled,\n \"text-white bg-rose-700\": !tab.disabled,\n }\n )}\n aria-hidden=\"true\"\n >\n <span className=\"mt-[1px]\">{index + 1}</span>\n </div>\n\n <span className=\"self-center hidden md:block\">{tab.label}</span>\n </Tab>\n );\n })}\n </TabList>\n\n <TabPanels>\n {tabs.map((tab) => {\n return (\n <div key={tab.key} className=\"flex flex-col gap-y-6\">\n <TabPanel>\n <div\n className={clsx({\n [\"flex items-start justify-between gap-6 flex-col md:flex-row\"]:\n tab.secondChildren,\n })}\n >\n <div className=\"w-full flex-1\">\n <div className=\"outline-none border border-neutral-200 px-4 py-6 rounded-lg rounded-tl-none -mt-[1px]\">\n {tab.children}\n </div>\n\n {tab.subPanel && (\n <div className=\"mt-4\">{tab.subPanel}</div>\n )}\n </div>\n {tab.secondChildren}\n </div>\n </TabPanel>\n </div>\n );\n })}\n </TabPanels>\n </TabGroup>\n\n <div className=\"flex self-start gap-x-4 mt-6 mb-10\">\n {selectedTab === 0 ? (\n cancelButton\n ) : (\n <Button\n variant=\"secondary\"\n onClick={(e) => {\n e.preventDefault();\n setSelectedTab(selectedTab - 1);\n }}\n >\n Voltar\n </Button>\n )}\n\n {selectedTab !== tabs.length - 1 && showNextStep ? (\n <Button\n variant=\"primary\"\n disabled={buttonDisabled}\n onClick={(e) => {\n if (onClick) onClick(tabs[selectedTab + 1]);\n if (!tabs[selectedTab + 1].disabled) {\n e.preventDefault();\n setSelectedTab(selectedTab + 1);\n }\n }}\n >\n Próximo\n </Button>\n ) : (\n <>{ShowSaveButton}</>\n )}\n </div>\n </div>\n );\n};\n\nTabs.displayName = \"Tabs\";\n","import { FieldError, UseFormRegisterReturn } from \"react-hook-form\";\nimport { DetailedHTMLProps, TextareaHTMLAttributes, useRef } from \"react\";\nimport clsx from \"clsx\";\n\ntype TextAreaProps = DetailedHTMLProps<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n> & {\n label?: string;\n registration?: UseFormRegisterReturn;\n error?: FieldError;\n inputProps?: any;\n};\n\nexport const TextArea = ({\n label,\n registration,\n disabled,\n error,\n inputProps,\n name,\n}: TextAreaProps) => {\n const inputRef = useRef(null);\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `border-[0.5px] rounded-lg block pb-[10px] pt-[18px] w-full bg-surface disabled:bg-neutral-100 disabled:shadow-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] focus-visible:rounded-[2px] text-p-md peer shadow-input pl-2 outline-none ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke text-paragraph\"\n }`,\n label: `cursor-text absolute text-label top-[0.70rem] z-10 transform origin-[0] -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-3 left-2.5`,\n };\n\n return (\n <div>\n <div className=\"relative outline-none\">\n <textarea\n id={name}\n name={name}\n ref={inputRef}\n className={clsx(styles.input)}\n placeholder=\" \"\n disabled={disabled}\n rows={4}\n {...registration}\n {...inputProps}\n />\n <label className={clsx(styles.label)} htmlFor={name}>\n {label}\n </label>\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { JSX } from \"react\";\nexport type TimelineProps = {\n data: {\n date?: string;\n label: string;\n description?: string;\n variant: string;\n info?: string;\n action?: JSX.Element;\n color?: string;\n }[];\n};\n\nexport const translateVariant = (variant) => {\n switch (variant) {\n case \"green\":\n return \"success\";\n case \"red\":\n return \"dangerous\";\n case \"orange\":\n return \"warning\";\n case \"blue\":\n return \"info\";\n default:\n return \"gray\";\n }\n};\n\nconst variants = {\n success: {\n small: \"bg-success-500\",\n big: \"bg-success-100\",\n },\n dangerous: {\n small: \"bg-dangerous-500\",\n big: \"bg-dangerous-100\",\n },\n warning: {\n small: \"bg-warning-500\",\n big: \"bg-warning-100\",\n },\n info: {\n small: \"bg-blue-500\",\n big: \"bg-blue-100\",\n },\n gray: {\n small: \"bg-neutral-300\",\n big: \"bg-neutral-100\",\n },\n};\n\nexport const Timeline = ({ data }: TimelineProps) => {\n return (\n <div className=\"flex flex-col\">\n {data?.length > 0 &&\n data?.map((item, index) => (\n <div className=\"flex\" key={index}>\n <div className=\"mr-3 relative\">\n {index !== data.length - 1 && (\n <div className=\"w-[2px] bg-neutral-200 ml-[5px] h-full absolute mt-8\"></div>\n )}\n <div className=\"relative mt-8\">\n <div\n className={clsx(\n {\n [variants[item?.variant]?.big]: !item?.color,\n },\n \"h-3 w-3 rounded-full\"\n )}\n style={{\n backgroundColor:\n item?.color ?? variants[item?.variant]?.big,\n }}\n ></div>\n <div\n className={clsx(\n {\n [variants[item?.variant]?.small]: !item?.color,\n },\n \"h-2 w-2 rounded-full absolute z-30 top-[2px] left-[2px]\"\n )}\n style={{\n backgroundColor:\n item?.color ?? variants[item?.variant]?.small,\n }}\n ></div>\n </div>\n </div>\n <div className=\"flex flex-col mt-3 relative\">\n <span className=\"text-p-sm text-label\">{item?.date}</span>\n <div className=\"flex items-center gap-[3px]\">\n <span className=\"text-p-md text-paragraph font-bold\">\n {item?.label}\n </span>\n {item?.action}\n </div>\n <span className=\"text-p-sm text-paragraph\">\n {item?.description}\n </span>\n <span className=\"text-p-xs text-paragraph\">{item?.info}</span>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nTimeline.displayName = \"Timeline\";","import {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n JSX,\n useRef,\n} from \"react\";\nimport {\n Control,\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<unknown>> | any;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n onClear?: () => void;\n hideInput?: boolean;\n control: Control<unknown> | any;\n searchOnClick?: () => void;\n};\nexport function ControlledInput({\n label,\n type,\n registration,\n onClick,\n error,\n onBlur,\n onChange,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n defaultValue,\n onKeyUp,\n onKeyDown,\n onClear,\n hideInput,\n control,\n searchOnClick,\n}: InputFieldProps) {\n let inputRef = useRef<HTMLInputElement>(null);\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] focus-visible:border-blue-500 ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n }\n ${!hasError ? \"border-stroke\" : \"\"}`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }`,\n rightIcon: \"absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]\",\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n clear: `absolute top-[7px] cursor-pointer text-label text-[22px] ${\n searchOnClick ? \"right-[46px]\" : \"right-[8px]\"\n }`,\n error: \"border-dangerous-500 text-dangerous-500\",\n };\n\n const input = name ? document?.getElementById(name) : null;\n\n return (\n <Controller\n name={name as never}\n control={control}\n render={({ field }) => {\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n {icon && !searchOnClick && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <input\n {...field}\n id={name}\n type={type}\n name={name}\n className={clsx({\n [styles.error]: hasError,\n [styles.input]: true,\n [\"pr-10\"]: clearField && !searchOnClick,\n [\"pr-[68px]\"]: clearField && searchOnClick,\n [\"pr-2\"]: !clearField && !searchOnClick,\n [\"pl-[57px]\"]: (!label && placeholder && icon) || icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onBlur={onBlur}\n onClick={onClick}\n disabled={disabled}\n ref={inputRef}\n {...inputProps}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n {hideInput && (\n <div\n className={clsx(\n styles.rightIcon,\n \"flex justify-center items-center\",\n )}\n >\n <i className=\"uil uil-eye text-label cursor-pointer text-[20px]\"></i>\n </div>\n )}\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3.5rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text whitespace-nowrap text-ellipsis overflow-hidden pointer-events-none\",\n )}\n htmlFor={name}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n {clearField &&\n field?.value &&\n field?.value !== \"\" &&\n !disabled && (\n <i\n className={clsx(\n {\n [styles.clear]: true,\n },\n \"uil uil-times clear-icon\",\n )}\n onClick={() => {\n field.onChange(\"\");\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n {searchOnClick && (\n <div className=\"py-1 absolute top-[7px] right-[8px]\">\n <button\n disabled={disabled}\n type=\"button\"\n className={clsx({\n [\"border-l border-input pl-1\"]:\n clearField && field?.value && !disabled,\n [\"text-blue-500\"]: !disabled,\n [\"text-neutral-300\"]: disabled,\n })}\n onClick={searchOnClick}\n >\n {/* Figma \"Input Button / Main action\": ícone vira botão de fato —\n hover clareia com um círculo azul claro, active preenche sólido\n com ícone branco. Antes o ícone não tinha nenhum feedback visual. */}\n <i className=\"uil uil-search text-[16px] rounded-full p-1.5 hover:bg-blue-100 active:bg-blue-500 active:text-white transition-colors\"></i>\n </button>\n </div>\n )}\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"absolute text-dangerous-500 text-xs left-[4px] -bottom-[18px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nControlledInput.displayName = \"ControlledInput\";\n"]}
1
+ {"version":3,"sources":["../src/assets/spinner.tsx","../src/components/Button.tsx","../src/components/ButtonLink.tsx","../src/components/Input.tsx","../src/components/Logo.tsx","../src/components/Rocket.tsx","../src/stores/field-errors.ts","../src/components/DatePickerInput.tsx","../src/components/Badge.tsx","../src/components/Calendar.tsx","../src/components/Checkbox.tsx","../src/components/Popover/Popover.tsx","../src/components/FilterButton/FilterCalendar.tsx","../src/components/InputSmall/InputSmall.tsx","../src/components/FilterButton/FilterOptions.tsx","../src/components/FilterSelect/FilterSelect.tsx","../src/utils/intl-currency-input.ts","../src/components/InputMoney.tsx","../src/utils/debounce.ts","../src/components/InputNumber.tsx","../src/components/InputPercentage.tsx","../src/components/MaskedInput.tsx","../src/components/ModalDialog.tsx","../src/components/Select/Select.styles.ts","../src/components/Select/Select.tsx","../src/components/SelectFieldBip/SelectFieldBip.styles.tsx","../src/components/SelectFieldBip/SelectFieldBip.tsx","../src/components/RadioButton/Radio.tsx","../src/components/Toggle.tsx","../src/components/Table/PaginationSelects.tsx","../src/components/Table/TableComponents.tsx","../src/components/Table/DataTablePagination.tsx","../src/components/Table/index.tsx","../src/components/Accordion.tsx","../src/components/CopyPopover.tsx","../src/components/Dropdown/Menu.tsx","../src/components/Dropdown/Item.tsx","../src/components/EditableButton.tsx","../src/components/EditableText.tsx","../src/components/EditableTextSelect.tsx","../src/components/FileUpload/ImagePreview.tsx","../src/components/FileUpload/FileStatus.tsx","../src/components/FileUpload/FileUploadReducer.tsx","../src/assets/IconFile.tsx","../src/assets/IconCheck.tsx","../src/assets/FileUpload.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/InfoIcon.tsx","../src/components/MultiSelect/MultiSelect.styles.tsx","../src/components/MultiSelect/MultiSelect.tsx","../src/components/InputTag/InputTag.styles.tsx","../src/components/InputTag/InputTag.tsx","../src/components/MultiSelectBottom/MultiSelectBottom.styles.tsx","../src/components/MultiSelectBottom/MultiSelectBottom.tsx","../src/components/PageBox.tsx","../src/components/PageHeader.tsx","../src/components/ProgressBar.tsx","../src/components/SimpleTab.tsx","../src/components/SkeletonLoading/SkeletonDetails.tsx","../src/components/SkeletonLoading/SkeletonList.tsx","../src/components/SkeletonLoading/SkeletonRegister.tsx","../src/components/StatusBar.tsx","../src/components/Tabs.tsx","../src/components/TextArea.tsx","../src/components/Timeline.tsx","../src/components/ControlledInput/ControlledInput.tsx"],"names":["jsx","useEffect","jsxs","clsx","Fragment","sizes","variants","forwardRef","_a","React","create","set","useState","useRef","Controller","DateInput3","format","parse","sub","startOfWeek","endOfWeek","startOfMonth","endOfMonth","DateRangePicker3","subYears","DatePicker3","Tooltip","Popover","Float","PopoverButton","PopoverPanel","ListboxOption","_b","Listbox","ListboxOptions","IntlCurrencyInputRaw","value","lodashNamespace","useMemo","InputMask","customStyles","cloneElement","Modal","debounce","components","inputValue","onChange","AsyncSelect","useImperativeHandle","ValueContainer","Switch","_c","_d","_e","_f","Combobox","React6","rankItem","pageIndex","pageSize","useReactTable","getCoreRowModel","getFilteredRowModel","getFacetedRowModel","getFacetedUniqueValues","getExpandedRowModel","flexRender","Transition","HeadlessMenu","MenuButton","MenuItems","MenuItem","Fuse","Menu","Dialog","useReducer","usePapaParse","files","name","Select","CreatableSelect","Skeleton","TabGroup","TabList","Tab","TabPanels","TabPanel"],"mappings":"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","file":"index.cjs","sourcesContent":["import React from \"react\";\n\nexport const SpinnerIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n {...props}\n width={`${props.width || 33}`}\n height={`${props.height || 33}`}\n viewBox=\"0 0 33 33\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.4671 32.1821C18.269 33.1951 14.8378 33.2061 11.6333 32.2137C8.42885 31.2213 5.6044 29.2729 3.53866 26.6297C1.47293 23.9866 0.264665 20.7751 0.0758752 17.4258C-0.112914 14.0765 0.726798 10.7495 2.48242 7.89096C4.23804 5.03242 6.82565 2.77896 9.89828 1.43272C12.9709 0.0864894 16.3817 -0.288163 19.6733 0.359002C22.9649 1.00617 25.98 2.64421 28.3142 5.0535C30.6485 7.46279 32.1903 10.5282 32.7331 13.8386L28.9102 14.4653C28.4953 11.9345 27.3165 9.59102 25.532 7.74911C23.7474 5.9072 21.4424 4.65491 18.926 4.16015C16.4095 3.66539 13.802 3.95181 11.4529 4.98101C9.10388 6.01021 7.12564 7.73299 5.78346 9.91835C4.44128 12.1037 3.79932 14.6472 3.94365 17.2077C4.08798 19.7683 5.01171 22.2235 6.59097 24.2442C8.17023 26.2649 10.3295 27.7544 12.7794 28.5132C15.2292 29.2719 17.8524 29.2634 20.2973 28.489L21.4671 32.1821Z\"\n fill={props.fill || \"#009EDB\"}\n />\n </svg>\n);\n","import React, { JSX, useEffect } from \"react\";\nimport { SpinnerIcon } from \"../assets/spinner\";\nimport clsx from \"clsx\";\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n icon?: JSX.Element;\n variant?: keyof typeof variants;\n size?: keyof typeof sizes;\n loading?: boolean;\n loadingIcon?: JSX.Element;\n dropdown?: boolean;\n hotkey?: string;\n hotkeyPosition?: \"top\" | \"bottom\" | \"left\" | \"right\" | \"inside\";\n};\n\n// Tamanho único \"x-small\" do Figma (node 3781:738) — xxs e xxsm apontam para\n// os mesmos valores porque nenhum dos dois batia com o Figma nem entre si\n// (xxs não tinha padding definido; xxsm tinha um quadrado fixo 24x24).\n// min-w-6 + padding compacto no iconOnly preserva o visual quadrado 24x24\n// já usado hoje (botões só-ícone); o padding assimétrico só entra quando\n// há label, caso ainda não utilizado no projeto.\nconst xSmall = {\n text: \"h-6 min-w-6 !rounded-[6px] text-[12px] leading-[1.3]\",\n icon: \"text-[12px] leading-3\",\n gap: \"gap-[4px]\",\n spinner: \"w-3 h-3\",\n};\n\nconst sizes = {\n xxs: xSmall,\n xxsm: xSmall,\n xs: {\n text: \"h-8 min-w-8 max-w-20\",\n icon: \"text-[16px] leading-4\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n sm: {\n text: \"h-[32px] text-[14px]\",\n icon: \"text-[14px] leading-[14px]\",\n gap: \"gap-[4px]\",\n spinner: \"w-3 h-3\",\n },\n md: {\n text: \"h-[38px]\",\n icon: \"text-[20px] leading-5\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n lg: {\n text: \"h-[46px]\",\n icon: \"text-[20px] leading-5\",\n gap: \"gap-[6px]\",\n spinner: \"w-3.5 h-3.5\",\n },\n};\n\n// Sombra neutra dos botões com borda (secondary/outline/dangerOutline/\n// successOutline): o Figma usa uma sombra mais forte só no tamanho large\n// (\"Shadow/sm\") e a mais leve \"Shadow/xs - Neutral\" em medium/small/x-small\n// (e nos botões só-ícone). Como shadow é fixo por variante e não por\n// tamanho, isso é resolvido em runtime dentro do componente.\nconst SHADOW_XS_NEUTRAL = \"shadow-[0px_1px_1px_0px_rgba(56,61,77,0.1)]\";\nconst SHADOW_SM_NEUTRAL = \"shadow-[0px_1px_1.5px_0px_rgba(56,61,77,0.12)]\";\nconst NEUTRAL_BORDERED_VARIANTS = new Set([\n \"secondary\",\n \"outline\",\n \"dangerOutline\",\n \"successOutline\",\n]);\n\nconst variants = {\n // Default: sólido rose-500 + véu de brilho via ::before com mix-blend-mode\n // (não background-blend-mode: testado no Chromium real — background-blend-mode:\n // plus-lighter é ignorado silenciosamente e cai pra \"normal\", sem véu nenhum;\n // mix-blend-mode: plus-lighter funciona. O \"Copy as CSS\" do Figma Dev Mode usa\n // background-blend-mode, mas não reflete suporte real de browser — visualmente\n // confirmado lado a lado). Sombra com blur 4px (era 2px, Figma pede radius 4).\n // Hover troca pro gradiente rose-start/rose-end (opaco, cobre o véu). Active\n // zera o véu (before:opacity-0) e vira rose-600 sólido, sem sombra.\n primary: {\n text: \"relative isolate bg-rose-500 text-white shadow-[0_1px_4px_0_rgba(217,48,99,0.3)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(218,48,99,0.2)] before:to-[rgba(218,48,99,0)] hover:bg-gradient-to-b hover:from-rose-start hover:to-rose-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-rose-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n secondary: {\n text: \"bg-surface border-[0.5px] border-neutral-300 text-neutral-600 hover:bg-neutral-100 hover:text-neutral-600 active:text-neutral-600 active:bg-neutral-200 active:shadow-none disabled:opacity-50\",\n },\n icon: {\n text: \"shadow-[0_1px_1px_0_rgba(56,61,77,0.1)] gap-1 bg-surface border-[0.5px] border-neutral-300 text-neutral-500 hover:bg-neutral-100 hover:text-neutral-600 active:bg-neutral-200 active:text-neutral-600 disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50 active:shadow-none\",\n },\n // Figma: borda rose-400 (mais clara que o texto rose-500), sem escurecer o\n // texto em hover/active. Active vira preenchimento sólido rose-500 com\n // texto branco. Disabled clareia pra rose-300 em vez de escurecer.\n outline: {\n text: \"bg-surface border-[0.5px] border-rose-400 text-rose-500 hover:bg-rose-100 active:bg-rose-500 active:text-white active:border-transparent active:shadow-none disabled:bg-surface disabled:border-rose-300 disabled:text-rose-300 disabled:shadow-none\",\n },\n link: {\n // blue-400 não existe no design system — o disabled não mudava de cor\n // nenhuma antes disso, só perdia o underline.\n text: \"text-left text-blue-500 hover:text-blue-600 hover:underline active:text-blue-600 disabled:text-blue-500 disabled:opacity-50 disabled:no-underline outline-none focus:outline-none shadow-none font-normal\",\n },\n // Antes o default usava dangerous-300 (o tom claro que o Figma reserva pro\n // disabled) — a borda/texto de força total é o estado default correto.\n dangerOutline: {\n text: \"text-dangerous-500 bg-surface border-[0.5px] border-dangerous-500 hover:bg-dangerous-100 active:bg-dangerous-500 active:text-white active:border-transparent active:shadow-none disabled:bg-surface disabled:border-dangerous-300 disabled:text-dangerous-300 disabled:shadow-none\",\n },\n // Mesmo padrão do primary (node 412:5131): sólido + véu branco (rgba(255,255,255,.15)->0)\n // via ::before + mix-blend-mode (background-blend-mode não funciona, ver primary acima).\n // Blur da sombra era 1.5px — Figma \"Shadow/Danger\" pede radius 3.\n danger: {\n text: \"relative isolate bg-dangerous-500 text-white shadow-[0_1px_3px_0_rgba(222,56,56,0.12)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-danger-start hover:to-danger-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-dangerous-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n // Node 412:5002 — mesmo padrão, véu branco. Blur era 1.5px, Figma \"Shadow/Success\" pede 3.\n success: {\n text: \"relative isolate bg-success-500 text-white shadow-[0_1px_3px_0_rgba(13,189,105,0.2)] before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-success-start hover:to-success-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-success-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n // Antes usava green-500/green-100 — tokens que não existem no design\n // system (caem no verde default do Tailwind). Trocado pros tokens success-*.\n successOutline: {\n text: \"active:shadow-none text-success-500 font-bold bg-surface border-[0.5px] border-success-500 hover:bg-success-100 active:bg-success-500 active:text-white active:border-transparent disabled:opacity-50 disabled:bg-surface disabled:text-success-500\",\n },\n // Node 412:5067 — faltava o véu branco no default (ficava warning-500 chapado, enquanto\n // danger/success já tinham o gradiente). Mesmo padrão dos dois: ::before com\n // mix-blend-plus-lighter, zerado no hover (que troca pro gradiente opaco) e no active.\n warn: {\n text: \"relative isolate shadow-[0_1px_1.5px_0_rgba(242,153,20,0.2)] text-white bg-warning-500 before:content-[''] before:absolute before:inset-0 before:-z-10 before:rounded-lg before:pointer-events-none before:mix-blend-plus-lighter before:bg-gradient-to-b before:from-[rgba(255,255,255,0.15)] before:to-[rgba(255,255,255,0)] hover:bg-gradient-to-b hover:from-warning-start hover:to-warning-end hover:shadow-[0_2px_3px_0_rgba(56,61,77,0.12)] hover:before:opacity-0 active:bg-warning-600 active:shadow-none active:before:opacity-0 disabled:opacity-50 disabled:shadow-none\",\n },\n blue: {\n text: \"shadow-button bg-blue-500 text-accent-label hover:bg-blue-600 active:bg-blue-600 text-bold\",\n },\n // Figma \"Ghost button / Transparent\" (pra usar sobre fundo colorido/escuro):\n // fica transparente sempre — hover/active só ganham um véu branco (10%/20%),\n // nunca fundo sólido, borda, ou mudança de cor do ícone. Antes o active usava\n // um véu PRETO (bg-[#0A0A0A40]) e o disabled ganhava fundo branco + borda +\n // texto cinza — nada disso existe no Figma, só opacity-50.\n iconSecondary: {\n text: \"text-white bg-transparent hover:bg-[rgba(255,255,255,0.1)] active:bg-[rgba(255,255,255,0.2)] active:shadow-none disabled:opacity-50\",\n },\n outlineIcon: {\n text: \"bg-surface text-rose-500 hover:shadow-button hover:text-rose-600 active:bg-rose-500 active:text-white disabled:text-neutral-400 disabled:border-disabled disabled:bg-surface disabled:opacity-50 active:shadow-none\",\n },\n dangerLight: {\n text: \"active:shadow-none shadow-red-sm text-danger-500 font-bold bg-surface border-[0.5px] border-dangerous-300 hover:bg-dangerous-100 active:bg-danger-500 active:text-white disabled:opacity-50 disabled:bg-surface disabled:text-danger-500\",\n },\n ghost: {\n text: \"bg-transparent hover:bg-neutral-100 !rounded-full text-paragraph active:bg-neutral-200 disabled:opacity-50\",\n },\n // Novo: réplica do \"Icon Button / Primary\" do Figma — botão só-ícone\n // preenchido. Diferente do primary em texto: aqui NÃO tem gradiente no\n // hover (o Figma só troca a cor no active) e a sombra é neutra, não\n // rosa — igual à sombra do \"Icon Button / Danger\" abaixo, só que cinza.\n iconPrimary: {\n text: \"bg-rose-500 text-white shadow-[0px_1px_1.5px_0px_rgba(56,61,77,0.12)] active:bg-rose-600 active:shadow-none disabled:opacity-50 disabled:shadow-none\",\n },\n // Novo: réplica do \"Icon Button / Danger\" do Figma — bordado em vermelho\n // cheio (dangerous-500), diferente do outlineIcon (que é rose, não red).\n iconDanger: {\n text: \"bg-surface border-[0.5px] border-dangerous-500 text-dangerous-500 shadow-[0px_1px_1.5px_0px_rgba(222,56,56,0.12)] hover:bg-dangerous-100 active:bg-dangerous-500 active:text-white active:border-transparent active:shadow-none disabled:opacity-50 disabled:shadow-none\",\n },\n // Novo: réplica do \"Ghost button / Neutral\" do Figma — utilitário só-ícone\n // sem borda, cor --label; distinto do `ghost` existente (pill com texto).\n // Disabled vira fundo branco + opacity-50 (não fica transparente feito o\n // default) — igual ao secondary comum.\n ghostIcon: {\n text: \"bg-transparent text-label rounded-[6px] hover:bg-neutral-100 active:bg-neutral-200 disabled:bg-surface disabled:opacity-50\",\n },\n // Novo: réplica do \"Transparent button\" do Figma — texto branco em negrito\n // centralizado, pensado pra ficar sobre fundo colorido/escuro (ex.: banners,\n // headers coloridos). Padding e radius próprios, independentes do size.\n onColorText: {\n text: \"!rounded-[4px] justify-center bg-transparent text-white hover:bg-[rgba(214,214,214,0.15)] active:bg-[rgba(10,10,10,0.25)] active:shadow-none disabled:opacity-50 disabled:shadow-[0_2px_6px_0_rgba(56,61,77,0.12)]\",\n },\n};\n\nconst paddingConfig = {\n // xxs fica sem padding de propósito (era assim antes) — usado em contextos\n // sem chrome de botão (ex.: variant=\"link\" como texto \"ver mais/menos\"),\n // onde padding quebraria o alinhamento inline com o texto ao redor.\n xxs: {\n normal: \"\",\n icon: \"\",\n iconOnly: \"\",\n },\n xxsm: {\n normal: \"px-2 py-1\",\n icon: \"py-1 pl-2 pr-2.5\",\n iconOnly: \"p-[6px]\",\n },\n xs: {\n normal: \"p-2\",\n icon: \"p-2\",\n iconOnly: \"p-2\",\n },\n sm: {\n normal: \"px-3 py-[6px]\",\n icon: \"py-[6px] pl-2 pr-3\",\n iconOnly: \"p-[6px]\",\n },\n md: {\n normal: \"py-2 px-4\",\n icon: \"py-2 pl-3 pr-4\",\n iconOnly: \"p-2\",\n },\n lg: {\n normal: \"py-3 px-4\",\n icon: \"p-3 pr-4\",\n iconOnly: \"p-3\",\n },\n};\n\nexport const Button = ({\n variant = \"primary\",\n size = \"lg\",\n hotkey,\n hotkeyPosition = \"bottom\",\n ...props\n}: ButtonProps) => {\n const applyGap = props.icon && props.children;\n const appliedVariant = variants[variant].text;\n const appliedSize = sizes[size];\n const neutralShadow = NEUTRAL_BORDERED_VARIANTS.has(variant)\n ? size === \"lg\"\n ? SHADOW_SM_NEUTRAL\n : SHADOW_XS_NEUTRAL\n : \"\";\n const appliedPadding = props.icon\n ? props.children\n ? paddingConfig[size].icon\n : paddingConfig[size].iconOnly\n : paddingConfig[size].normal;\n const gapText = applyGap ? appliedSize.gap : \"gap-0\";\n\n useEffect(() => {\n if (!hotkey || !props.onClick) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (props.disabled || props.loading) return;\n\n const keys = hotkey\n .toLowerCase()\n .split(\"+\")\n .map((k) => k.trim());\n const primaryKey = keys.pop();\n\n if (!primaryKey) return;\n\n const requiredCtrl = keys.includes(\"ctrl\");\n const requiredAlt = keys.includes(\"alt\");\n const requiredShift = keys.includes(\"shift\");\n const requiredMeta = keys.includes(\"meta\") || keys.includes(\"cmd\");\n\n // Normaliza apelidos de teclas para o valor real de event.key\n // (ex.: \"esc\" -> \"escape\", \"del\" -> \"delete\", \"space\" -> \" \").\n const keyAliases: Record<string, string> = {\n esc: \"escape\",\n del: \"delete\",\n space: \" \",\n spacebar: \" \",\n };\n const normalizedPrimary = keyAliases[primaryKey] ?? primaryKey;\n\n const match =\n event.key.toLowerCase() === normalizedPrimary &&\n event.ctrlKey === requiredCtrl &&\n event.altKey === requiredAlt &&\n event.shiftKey === requiredShift &&\n event.metaKey === requiredMeta;\n\n if (match) {\n event.preventDefault();\n props.onClick?.(event as any);\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [hotkey, props.onClick, props.disabled, props.loading]);\n\n const hotkeyLabel = hotkey && (\n <span className=\"text-p-sm font-normal\">{hotkey.toUpperCase()}</span>\n );\n\n return (\n <div\n className={clsx(\"inline-flex gap-[8px]\", {\n \"flex-col items-center\":\n hotkeyPosition === \"top\" || hotkeyPosition === \"bottom\",\n \"flex-row items-center\":\n hotkeyPosition === \"left\" || hotkeyPosition === \"right\",\n \"cursor-not-allowed\": props.disabled || props.loading,\n })}\n >\n {hotkey && (hotkeyPosition === \"top\" || hotkeyPosition === \"left\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n <button\n type={props.type}\n id=\"button-component\"\n {...props}\n disabled={props.disabled || props.loading}\n className={`\n ${props.className}\n ${appliedVariant}\n ${neutralShadow}\n ${appliedSize.text}\n ${appliedPadding}\n ${gapText}\n whitespace-nowrap group rounded-lg font-bold disabled:shadow-none active:shadow-none flex items-center disabled:pointer-events-none focus-visible:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] focus-visible:rounded-[2px]\n `}\n >\n <>\n {props.icon && (\n <div\n className={`flex items-center justify-center ${appliedSize.icon}`}\n >\n {props.icon && !props.loading ? (\n props.icon\n ) : props.loadingIcon && props.loading ? (\n props.loadingIcon\n ) : (\n <SpinnerIcon\n className={`animate-spin ${appliedSize.spinner}`}\n fill=\"currentColor\"\n />\n )}\n </div>\n )}\n {props.children}\n {hotkey && hotkeyPosition === \"inside\" && (\n <span className=\" font-normal\">- {hotkeyLabel}</span>\n )}\n {props.dropdown && (\n <i className={\"uil uil-angle-down text-[20px]\"}></i>\n )}\n </>\n </button>\n {hotkey &&\n (hotkeyPosition === \"bottom\" || hotkeyPosition === \"right\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n </div>\n );\n};\n","import React, {\n forwardRef,\n JSX,\n ComponentType,\n AnchorHTMLAttributes,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\n\nexport type LinkProp = AnchorHTMLAttributes<HTMLAnchorElement> & {\n icon?: JSX.Element;\n size?: keyof typeof sizes;\n padding?: string;\n label?: string | JSX.Element;\n disabled?: boolean;\n name?: string;\n target?: string;\n variant?: keyof typeof variants;\n className?: string;\n href: string;\n as?: ComponentType<any> | string;\n hotkey?: string;\n hotkeyPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n iconPosition?: \"left\" | \"right\";\n};\n\nexport const sizes = {\n xxs: {\n text: \"min-h-[14px] max-h-[40px] text-[14px] gap-[4px]\",\n },\n xs: {\n text: \"h-[36px]\",\n },\n sm: {\n text: \"h-[40px]\",\n },\n md: {\n text: \"h-[46px]\",\n },\n table: {\n text: \"h-8 w-8\",\n },\n};\n\nconst variants = {\n primary: {\n text: \"shadow-button text-button-label bg-gradient-to-b hover:text-white from-rose-start to-rose-end active:bg-gradient-to-b active:from-rose-800 active:to-rose-800 disabled:bg-gradient-to-b disabled:from-rose-800 disabled:to-rose-800 disabled:opacity-50 hover:from-[#FD467F] hover:to-[#DF4573]\",\n },\n secondary: {\n text: \"shadow-button bg-surface border-[0.5px] border-paragraph text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-neutral-400 disabled:bg-surface disabled:border-[0.5px] disabled:border-neutral-400\",\n },\n link: {\n text: \"text-blue-500 hover:text-blue-600 hover:underline border-none active:text-blue-600 active:underline disabled:text-blue-500 disabled:no-underline shadow-none font-normal\",\n },\n linkDanger: {\n text: \"text-dangerous-500 hover:text-dangerous-600 hover:underline border-none active:text-dangerous-600 active:underline disabled:text-dangerous-500 disabled:no-underline shadow-none font-normal\",\n },\n icon: {\n text: \"bg-surface border-[0.5px] border-neutral-300 text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50\",\n },\n iconSecondary: {\n text: \"border-[1px] border-none text-white active:bg-[#0A0A0A40]/20 hover:bg-[#F5F5F526]/10 hover:text-white disabled:text-neutral-400 disabled:border-[0.5px] disabled:border-disabled disabled:bg-surface disabled:opacity-50\",\n },\n outline: {\n text: \"shadow-button bg-surface border-[0.5px] border-rose-700 text-blue-500 hover:text-blue-600 hover:bg-neutral-100 active:text-blue-600 active:bg-light-gray-100 disabled:text-rose-700 disabled:bg-surface disabled:border-[0.5px] disabled:border-rose-700 disabled:opacity-50\",\n },\n dark: {\n text: \"shadow-button text-white hover:bg-[#f5f5f526] active:bg-[#0a0a0a40] disabled:opacity-50 disabled:bg-transparent\",\n },\n dangerLight: {\n text: \"shadow-button text-dangerous-700 font-bold bg-surface border-[0.5px] border-dangerous-700 hover:bg-dangerous-100 active:bg-dangerous-700 active:text-white disabled:opacity-50 disabled:bg-surface disabled:text-dangerous-700\",\n },\n danger: {\n text: \"shadow-button text-white bg-gradient-to-b from-danger-start to-danger-end hover:from-[#FD6363] hover:to-[#E34E4E] active:from-dangerous-800 active:to-dangerous-800 disabled:opacity-50 disabled:from-dangerous-700 disabled:to-dangerous-700\",\n },\n success: {\n text: \"shadow-button text-white bg-gradient-to-b from-success-start to-success-end hover:from-[#3FF09B] hover:to-[#27C579] active:from-success-600 active:to-success-600 disabled:opacity-50 disabled:from-success-500 disabled:to-success-500\",\n },\n warn: {\n text: \"shadow-button text-white bg-gradient-to-b from-warning-start to-warning-end hover:from-[#FEBD5D] hover:to-[#F4A42D] active:from-warning-600 active:to-warning-600 disabled:opacity-50 disabled:from-warning-500 disabled:to-warning-500\",\n },\n blue: {\n text: \"shadow-button bg-blue-700 text-accent-label text-bold\",\n },\n filter: {\n text: \"shadow-button rounded-3xl border border-neutral-300 text-blue-500 hover:text-blue-600 hover:bg-light-gray-100 active:border active:border-blue-700 active:text-blue-600 active:bg-blue-100 focus:border focus:border-blue-700 focus:text-blue-500 focus:bg-blue-100\",\n },\n filterActive: {\n text: \"shadow-button rounded-3xl border border-blue-700 text-blue-500 bg-blue-100 shadow-button hover:bg-blue-700 hover:text-accent-label active:text-accent-label active:bg-blue-900 active:border-blue-900 focus:text-accent-label focus:bg-blue-900 focus:border-blue-900\",\n },\n};\n\nexport const ButtonLink = forwardRef<HTMLAnchorElement, LinkProp>(\n (\n {\n size = \"md\",\n icon,\n padding = \"px-3\",\n label,\n disabled,\n name,\n target,\n variant = \"link\",\n className,\n as: LinkComponent = \"a\",\n hotkey,\n hotkeyPosition = \"bottom\",\n iconPosition = \"left\",\n ...props\n },\n ref,\n ) => {\n const applyGap = icon;\n useEffect(() => {\n if (!hotkey) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (disabled) return;\n\n const keys = hotkey\n .toLowerCase()\n .split(\"+\")\n .map((k) => k.trim());\n const primaryKey = keys.pop();\n\n if (!primaryKey) return;\n\n const requiredCtrl = keys.includes(\"ctrl\");\n const requiredAlt = keys.includes(\"alt\");\n const requiredShift = keys.includes(\"shift\");\n const requiredMeta = keys.includes(\"meta\") || keys.includes(\"cmd\");\n\n const match =\n event.key.toLowerCase() === primaryKey &&\n event.ctrlKey === requiredCtrl &&\n event.altKey === requiredAlt &&\n event.shiftKey === requiredShift &&\n event.metaKey === requiredMeta;\n\n if (match) {\n event.preventDefault();\n if (props.onClick) {\n props.onClick?.(event as any);\n } else {\n const linkElement = document.querySelector(\n `a[href=\"${props.href}\"]`,\n ) as HTMLAnchorElement;\n linkElement?.click();\n }\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [hotkey, props.onClick, props.href, disabled]);\n const hotkeyLabel = hotkey && (\n <span className=\"text-p-sm font-normal\">{hotkey.toUpperCase()}</span>\n );\n return (\n <div\n className={clsx(\"inline-flex gap-[4px]\", {\n \"flex-col items-center justify-center\":\n hotkeyPosition === \"top\" || hotkeyPosition === \"bottom\",\n \"flex-row items-center justify-center\":\n hotkeyPosition === \"left\" || hotkeyPosition === \"right\",\n })}\n >\n {hotkey && (hotkeyPosition === \"top\" || hotkeyPosition === \"left\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n <LinkComponent\n ref={ref}\n className={clsx(\n {\n [variants[variant]?.text]: true,\n [sizes[size].text]: true,\n [\"pointer-events-none shadow-none text-label\"]: disabled,\n [\"px-2\"]: variant !== \"link\" && variant !== \"linkDanger\",\n [\"flex-row-reverse\"]: iconPosition === \"right\",\n },\n `group rounded-lg font-bold active:shadow-none flex items-center justify-start cursor-pointer outline-none focus:outline-none\n ${applyGap ? \"gap-2\" : \"gap-0\"} ${className}\n `,\n )}\n target={target}\n {...props}\n download={name}\n >\n {icon && (\n <div\n className={clsx(\"flex items-center justify-center\", {\n \"text-[12px]\": size === \"sm\",\n \"text-[14px]\": size === \"md\",\n })}\n >\n {icon}\n </div>\n )}\n <span\n className={clsx(\"cursor-pointer line-clamp-2\", {\n \"text-[12px]\": size === \"sm\",\n \"text-[14px]\": size === \"md\",\n })}\n >\n {label}\n </span>\n </LinkComponent>\n {hotkey &&\n (hotkeyPosition === \"bottom\" || hotkeyPosition === \"right\") && (\n <span\n style={{ color: \"var(--label)\" }}\n className=\"text-p-sm font-normal\"\n >\n {hotkeyLabel}\n </span>\n )}\n </div>\n );\n },\n);\n\nButtonLink.displayName = \"ButtonLink\";\n","import React, { JSX } from \"react\";\nimport clsx from \"clsx\";\nimport {\n DetailedHTMLProps,\n forwardRef,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n} from \"react\";\nimport {\n FieldError,\n FieldErrorsImpl,\n Merge,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: () => void;\n error?: Merge<FieldError, FieldErrorsImpl<any>> | any;\n onBlur?: (value: Event) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n onClear?: () => void;\n hideInput?: boolean;\n};\n\nexport const Input = ({\n label,\n type,\n registration,\n onClick,\n error,\n onBlur,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n defaultValue,\n onKeyUp,\n onKeyDown,\n onClear,\n hideInput,\n onChange,\n ref,\n}: InputFieldProps) => {\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n const [showPassword, setShowPassword] = React.useState(false);\n const styles = {\n // Focus ring padrao: classe `input-focus-ring` (src/styles/index.css) desenha o anel de\n // 1.5px sobre o proprio contorno do campo. Nao usar `ring-*`/`ring-offset-*` do Tailwind\n // aqui: eles criam um anel por fora do input, fora do padrao do design system.\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-[var(--input-bg-disabled)] disabled:border-[var(--input-border-disabled)] disabled:text-disabled disabled:cursor-not-allowed disabled:shadow-none input-focus-ring ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n }\n ${!hasError ? \"border-stroke\" : \"\"}`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${\n hasError ? \"text-dangerous-500\" : \"text-label peer-focus:text-blue-500\"\n } peer-focus:border-blue-500`,\n rightIcon: \"absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]\",\n // `-translate-y-[10px]` (e nao `-translate-y-3`/12px): o label flutuante ficava colado\n // demais no topo do campo. Os 2px a menos de deslocamento aproximam o espaco acima do\n // label do espaco abaixo do conteudo (pb-[10px]). Mesmo valor nos demais inputs.\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n clear: \"absolute top-[8.3px] cursor-pointer text-label text-[22px]\",\n error: \"border-dangerous-500 text-dangerous-500\",\n };\n\n const inlineStyles = {\n inputWithIcon: { paddingLeft: \"48px\" },\n labelWithIcon: { left: \"3rem\" },\n };\n\n const input = name ? document?.getElementById(name) : null;\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n <input\n id={name}\n type={\n type === \"password\" ? (showPassword ? \"text\" : \"password\") : type\n }\n name={name}\n value={value}\n defaultValue={defaultValue}\n style={\n (!label && placeholder && icon) || icon\n ? inlineStyles.inputWithIcon\n : undefined\n }\n className={clsx({\n [styles.error]: hasError,\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onChange={onChange}\n onBlur={onBlur}\n onClick={onClick}\n disabled={disabled}\n ref={ref}\n {...inputProps}\n {...registration}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n {icon && (\n <div\n className={clsx(styles.icon, \"flex justify-center items-center\")}\n >\n {icon}\n </div>\n )}\n {hideInput && (\n <div\n className={clsx(\n styles.rightIcon,\n \"flex justify-center items-center\",\n )}\n >\n <i className=\"uil uil-eye text-label cursor-pointer text-[20px]\"></i>\n </div>\n )}\n <label\n style={icon ? inlineStyles.labelWithIcon : undefined}\n className={clsx(\n {\n [styles.label]: true,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text whitespace-nowrap text-ellipsis overflow-hidden pointer-events-none\",\n )}\n htmlFor={name}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n {type === \"password\" && (\n <i\n onClick={() => setShowPassword(!showPassword)}\n className={clsx(\n \"uil text-label cursor-pointer text-[20px] absolute right-2 top-1/2 -translate-y-1/2\",\n {\n \"uil-eye-slash\": showPassword,\n \"uil-eye\": !showPassword,\n },\n )}\n ></i>\n )}\n {clearField && value && value !== \"\" && !disabled && (\n <i\n className={clsx(styles.clear, \"uil uil-times clear-icon\", {\n \"right-9\": type === \"password\",\n \"right-2\": type !== \"password\",\n })}\n onClick={() => {\n if (input) {\n input?.focus();\n }\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-p-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import React from \"react\";\n// Exemplo: Se você tiver uma imagem PNG ou JPG\n// import logo from \"../assets/logo.png\";\n\n// Para SVG estático (não como componente)\nimport exampleLogo from \"../assets/example-logo.svg\";\n\nexport const Logo: React.FC<{ className?: string }> = ({ className }) => {\n return (\n <img \n src={exampleLogo} \n alt=\"Logo\" \n className={className}\n width={100}\n height={100}\n />\n );\n};\n","import React from \"react\";\n\nexport const RocketIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"800px\"\n height=\"800px\"\n viewBox=\"0 0 1024 1024\"\n className=\"icon\"\n version=\"1.1\"\n style={props.style}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M512 301.2m-10 0a10 10 0 1 0 20 0 10 10 0 1 0-20 0Z\"\n fill=\"#E73B37\"\n />\n <path\n d=\"M400.3 744.5c2.1-0.7 4.1-1.4 6.2-2-2 0.6-4.1 1.3-6.2 2z m0 0c2.1-0.7 4.1-1.4 6.2-2-2 0.6-4.1 1.3-6.2 2z\"\n fill=\"#39393A\"\n />\n <path\n d=\"M511.8 256.6c24.4 0 44.2 19.8 44.2 44.2S536.2 345 511.8 345s-44.2-19.8-44.2-44.2 19.9-44.2 44.2-44.2m0-20c-35.5 0-64.2 28.7-64.2 64.2s28.7 64.2 64.2 64.2 64.2-28.7 64.2-64.2-28.7-64.2-64.2-64.2z\"\n fill=\"#E73B37\"\n />\n <path\n d=\"M730.7 529.5c0.4-8.7 0.6-17.4 0.6-26.2 0-179.6-86.1-339.1-219.3-439.5-133.1 100.4-219.2 259.9-219.2 439.5 0 8.8 0.2 17.5 0.6 26.1-56 56-90.6 133.3-90.6 218.7 0 61.7 18 119.1 49.1 167.3 30.3-49.8 74.7-90.1 127.7-115.3 39-18.6 82.7-29 128.8-29 48.3 0 93.9 11.4 134.3 31.7 52.5 26.3 96.3 67.7 125.6 118.4 33.4-49.4 52.9-108.9 52.9-173.1 0-85.4-34.6-162.6-90.5-218.6zM351.1 383.4c9.2-37.9 22.9-74.7 40.6-109.5a502.1 502.1 0 0 1 63.6-95.9c17.4-20.6 36.4-39.9 56.8-57.5 20.4 17.6 39.4 36.9 56.8 57.5 24.8 29.5 46.2 61.8 63.6 95.9 17.7 34.8 31.4 71.6 40.6 109.5 8.7 35.8 13.5 72.7 14.2 109.9C637.4 459 577 438.9 512 438.9c-65 0-125.3 20.1-175.1 54.4 0.7-37.2 5.5-74.1 14.2-109.9z m-90.6 449.2c-9.1-27-13.7-55.5-13.7-84.4 0-35.8 7-70.6 20.8-103.2 8.4-19.8 19-38.4 31.9-55.5 9.7 61.5 29.5 119.7 57.8 172.6-36.4 17.8-69 41.6-96.8 70.5z m364.2-85.3c-0.7-0.3-1.5-0.5-2.2-0.8-0.4-0.2-0.9-0.3-1.3-0.5-0.6-0.2-1.3-0.5-1.9-0.7-0.8-0.3-1.5-0.5-2.3-0.8-0.8-0.3-1.5-0.5-2.3-0.7l-0.9-0.3c-1-0.3-2.1-0.7-3.1-1-1.2-0.4-2.4-0.7-3.5-1.1l-3-0.9c-0.2-0.1-0.4-0.1-0.7-0.2-1.1-0.3-2.3-0.7-3.4-1-1.2-0.3-2.4-0.6-3.5-0.9l-3.6-0.9-3.6-0.9c-1-0.3-2.1-0.5-3.1-0.7-1.2-0.3-2.4-0.5-3.6-0.8-1.3-0.3-2.5-0.6-3.8-0.8h-0.3c-0.9-0.2-1.9-0.4-2.8-0.6-0.4-0.1-0.7-0.1-1.1-0.2-1.1-0.2-2.2-0.4-3.4-0.6-1.2-0.2-2.4-0.4-3.6-0.7l-5.4-0.9c-0.9-0.1-1.9-0.3-2.8-0.4-0.8-0.1-1.6-0.3-2.5-0.4-2.6-0.4-5.1-0.7-7.7-1-1.2-0.1-2.3-0.3-3.5-0.4h-0.4c-0.9-0.1-1.8-0.2-2.8-0.3-1.1-0.1-2.1-0.2-3.2-0.3-1.7-0.2-3.4-0.3-5.1-0.4-0.8-0.1-1.5-0.1-2.3-0.2-0.9-0.1-1.9-0.1-2.8-0.2-0.4 0-0.8 0-1.2-0.1-1.1-0.1-2.1-0.1-3.2-0.2-0.5 0-1-0.1-1.5-0.1-1.3-0.1-2.6-0.1-3.9-0.1-0.8 0-1.5-0.1-2.3-0.1-1.2 0-2.4 0-3.5-0.1h-13.9c-2.3 0-4.6 0.1-6.9 0.2-0.9 0-1.9 0.1-2.8 0.1-0.8 0-1.5 0.1-2.3 0.1-1.4 0.1-2.8 0.2-4.1 0.3-1.4 0.1-2.7 0.2-4.1 0.3-1.4 0.1-2.7 0.2-4.1 0.4-0.6 0-1.2 0.1-1.8 0.2l-7.8 0.9c-1.1 0.1-2.1 0.3-3.2 0.4-1 0.1-2.1 0.3-3.1 0.4-3.2 0.5-6.4 0.9-9.5 1.5-0.7 0.1-1.4 0.2-2.1 0.4-0.9 0.1-1.7 0.3-2.6 0.5-1.1 0.2-2.3 0.4-3.4 0.6-0.9 0.2-1.7 0.3-2.6 0.5-0.4 0.1-0.8 0.1-1.1 0.2-0.7 0.1-1.4 0.3-2.1 0.4-1.2 0.3-2.4 0.5-3.6 0.8-1.2 0.3-2.4 0.5-3.6 0.8-0.2 0-0.4 0.1-0.6 0.1-0.5 0.1-1 0.2-1.5 0.4-1.1 0.3-2.3 0.6-3.5 0.9-1.3 0.3-2.5 0.6-3.8 1-0.4 0.1-0.9 0.2-1.4 0.4-1.3 0.4-2.7 0.7-4 1.1-1.5 0.4-3 0.9-4.6 1.3-1 0.3-2.1 0.6-3.1 1-2.1 0.6-4.1 1.3-6.2 2-0.7 0.2-1.4 0.5-2.1 0.7-15-27.5-27.4-56.4-37-86.2-11.7-36.1-19.2-73.6-22.5-111.6-0.6-6.7-1-13.3-1.3-20-0.1-1.2-0.1-2.4-0.1-3.6-0.1-1.2-0.1-2.4-0.1-3.6 0-1.2-0.1-2.4-0.1-3.6 0-1.2-0.1-2.4-0.1-3.7 18.8-14 39.2-25.8 61-35 36.1-15.3 74.5-23 114.1-23 39.6 0 78 7.8 114.1 23 21.8 9.2 42.2 20.9 61 35v0.1c0 1 0 1.9-0.1 2.9 0 1.4-0.1 2.8-0.1 4.3 0 0.7 0 1.3-0.1 2-0.1 1.8-0.1 3.5-0.2 5.3-0.3 6.7-0.8 13.3-1.3 20-3.3 38.5-11 76.5-23 113-9.7 30.3-22.3 59.4-37.6 87.1z m136.8 90.9a342.27 342.27 0 0 0-96.3-73.2c29.1-53.7 49.5-112.8 59.4-175.5 12.8 17.1 23.4 35.6 31.8 55.5 13.8 32.7 20.8 67.4 20.8 103.2 0 31-5.3 61.3-15.7 90z\"\n fill=\"#39393A\"\n />\n <path\n d=\"M512 819.3c8.7 0 24.7 22.9 24.7 60.4s-16 60.4-24.7 60.4-24.7-22.9-24.7-60.4 16-60.4 24.7-60.4m0-20c-24.7 0-44.7 36-44.7 80.4 0 44.4 20 80.4 44.7 80.4s44.7-36 44.7-80.4c0-44.4-20-80.4-44.7-80.4z\"\n fill=\"#E73B37\"\n />\n </svg>\n);\n","import { nanoid } from 'nanoid';\nimport { create } from 'zustand';\n\nexport type Field = {\n [key: string]: FieldError;\n};\n\ntype FieldError = {\n code: string;\n message: string;\n};\n\ntype ValidationError = {\n id?: string;\n code: string;\n message: string;\n path?: string[];\n position?: number;\n};\n\ntype FieldErrorsStore = {\n field: Field;\n addValidationError: (\n validationErrors: ValidationError[]\n ) => void;\n dismissAllValidationErrors?: () => void;\n};\n\nexport const useFieldErrorsStore = create<FieldErrorsStore>(\n (set) => ({\n field: {},\n addValidationError: (validationErrors) =>\n set((state) => {\n let fieldErrorsByPath = {};\n validationErrors?.forEach(\n ({ position, path, code, message }) => {\n path?.shift();\n if (position !== null) {\n path?.splice(1, 0, position?.toString());\n }\n\n const fieldPathWithPosition = path\n .join('.')\n .replace('.', '');\n\n fieldErrorsByPath = {\n ...fieldErrorsByPath,\n [fieldPathWithPosition]: {\n code,\n message,\n },\n };\n }\n );\n\n return {\n ...state,\n field: {\n ...fieldErrorsByPath,\n },\n };\n }),\n dismissAllValidationErrors: () =>\n set((state) => ({\n field: {},\n })),\n })\n);\n","import { DateInput3 } from \"@blueprintjs/datetime2\";\nimport { forwardRef, JSX, useState, useRef } from \"react\";\nimport {\n Control,\n Controller,\n DeepRequired,\n FieldError,\n FieldErrorsImpl,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\nimport { useFieldErrorsStore } from \"../stores/field-errors\";\nimport clsx from \"clsx\";\nimport { format, parse } from \"date-fns\";\n\n/** Respiro entre o input e o calendario, em px. */\nconst DEFAULT_POPOVER_OFFSET: [number, number] = [0, 8];\n\ninterface Props {\n icon?: JSX.Element;\n label: string;\n registration?: UseFormRegisterReturn;\n error?: FieldError | any;\n inputProps?: any;\n clearField?: boolean;\n control: Control<unknown> | any;\n name: string | never;\n required?: boolean;\n defaultValue?: any;\n onChangeFunction?: (e) => void;\n maxDate?: any;\n minDate?: any;\n disabled?: boolean;\n small?: boolean;\n onClear?: () => void;\n /** Deslocamento [skidding, distance] do calendario em relacao ao input (modifier `offset` do\n * Popper). Antes era declarado e nunca usado: alimentava uma variavel CSS que nenhuma folha de\n * estilo lia. Default [0, 8]: com `minimal` o Popover nasce colado no input. */\n popoverOffset?: [number, number];\n}\n\nexport const DatePickerInput = forwardRef(\n (\n {\n icon,\n label,\n registration,\n error,\n inputProps,\n clearField,\n control,\n name,\n required,\n defaultValue,\n onChangeFunction,\n maxDate,\n minDate,\n disabled,\n small,\n onClear,\n popoverOffset,\n }: Props,\n ref: any,\n ) => {\n const [invalidDate, setInvalidDate] = useState(false);\n const [showCalendar, setShowCalendar] = useState(false);\n const inputContainerRef = useRef<HTMLDivElement | null>(null);\n const dateFnsFormat = \"dd/MM/yyyy\";\n\n const fieldValidation = useFieldErrorsStore((state) => state.field);\n const fieldValidationMessages = [\n fieldValidation[name ? name : registration?.name]?.message,\n error?.message,\n ];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n // Borda e sombra iguais as do Input: `rounded-lg` (era `rounded`, 4px contra os 8px do\n // Input) e o mesmo bloco de disabled, com os tokens `--input-bg-disabled` /\n // `--input-border-disabled` em vez de `bg-light-gray-100` — os tokens trocam de valor no\n // tema escuro, a cor fixa nao.\n input: `text-p-md text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg block pb-[10px] h-[46px] w-full disabled:bg-[var(--input-bg-disabled)] disabled:border-[var(--input-border-disabled)] disabled:text-disabled disabled:cursor-not-allowed disabled:shadow-none input-focus-ring ${\n hasError ? \"border-dangerous-500 text-dangerous-500\" : \"border-stroke\"\n }`,\n // left-[1.5px] como no Input: cobre a borda de 0.5px sem deixar fiapo aparecendo.\n icon: `absolute bg-neutral-100 h-[44px] w-[38px] top-[1px] left-[1.5px] rounded-l-lg rounded-r-none ${\n hasError ? \"text-dangerous-700\" : \"text-label\"\n }`,\n label: \"absolute text-label text-sm\",\n clear:\n \"absolute top-[8px] right-[8px] cursor-pointer text-label text-[22px]\",\n };\n\n const input = name ? document?.getElementById(name) : null;\n\n return (\n <div>\n <Controller\n control={control}\n name={name as never}\n render={({ field }) => {\n const normalizeDate = (value: any): string | null => {\n if (!value) return null;\n if (value instanceof Date) {\n return isNaN(value.getTime()) ? null : value.toISOString();\n }\n if (typeof value === \"string\") {\n const parsed = new Date(value);\n return isNaN(parsed.getTime()) ? null : parsed.toISOString();\n }\n return null;\n };\n\n const normalizedValue = normalizeDate(field.value);\n\n return (\n <div\n id=\"group-input-calendar\"\n className=\"relative\"\n ref={(node) => {\n inputContainerRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n >\n {icon && (\n <div\n id=\"icon\"\n className={clsx(\n styles.icon,\n \"flex justify-center items-center text-[20px] bg-light-gray-100\",\n )}\n >\n {icon}\n </div>\n )}\n <DateInput3\n outOfRangeMessage=\"Data não permitida\"\n invalidDateMessage=\"Data inválida\"\n onError={() => setInvalidDate(true)}\n defaultValue={normalizedValue}\n inputProps={{\n className: styles.input,\n style: { height: \"46px\" },\n }}\n popoverProps={{\n placement: \"bottom-start\",\n // usePortal false renderizava o calendario dentro do proprio input, entao\n // qualquer ancestral com overflow auto/hidden (modal com scroll, painel\n // lateral) o cortava e ele ficava inutilizavel. Com portal ele vai pro body e\n // o Popper reposiciona sozinho quando nao ha espaco abaixo.\n usePortal: true,\n minimal: true,\n popoverClassName: \"date-picker-popover\",\n // O .bp6-portal nasce com z-index 20, abaixo do overlay do ModalDialog\n // (react-modal, zIndex 9999): dentro de modal o calendario ficava atras.\n // O z-index vai no PORTAL, nao no popoverClassName — quem empilha e o\n // wrapper posicionado no body, nao o conteudo do popover.\n portalClassName: \"date-picker-portal\",\n // Sem boundary o flip ignora o viewport quando o input esta dentro de um\n // container com scroll.\n modifiers: {\n preventOverflow: { enabled: true, options: { padding: 8 } },\n flip: { enabled: true },\n // Sempre aplicado: com `minimal` o Popover nao tem seta nem margem propria e\n // o calendario encostava no input. 8px e o respiro padrao.\n offset: {\n enabled: true,\n options: { offset: popoverOffset ?? DEFAULT_POPOVER_OFFSET },\n },\n },\n }}\n disabled={disabled}\n onChange={(e, isUserChange) => {\n if (isUserChange) {\n let value = e;\n if (e) {\n const date = new Date(e);\n date.setUTCHours(23, 59, 59, 0);\n value = date.toISOString();\n }\n field.onChange(value);\n setShowCalendar(false);\n if (onChangeFunction) {\n onChangeFunction(value);\n }\n setInvalidDate(false);\n }\n }}\n value={normalizedValue}\n locale=\"pt-BR\"\n highlightCurrentDay={true}\n formatDate={(value) => {\n const adjusted = new Date(\n value.getTime() + value.getTimezoneOffset() * 60000,\n );\n return format(adjusted, dateFnsFormat);\n }}\n parseDate={(value) => parse(value, dateFnsFormat, new Date())}\n maxDate={\n maxDate || new Date(new Date().getFullYear() + 5, 11, 31)\n }\n minDate={minDate || new Date(1900, 0, 1)}\n />\n <label\n className={clsx(\n \"pointer-events-none \",\n styles.label,\n `\n ${\n (field.value && field.value[0] !== null) || invalidDate\n ? \" scale-75 -translate-y-[10px] \"\n : \"\"\n }\n ${icon ? \"left-[3rem]\" : \"left-2.5\"}`,\n )}\n style={{ top: \"13px\" }}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-700 ml-1\">*</strong>\n )}\n </label>\n {clearField &&\n field?.value &&\n field?.value !== \"\" &&\n !disabled && (\n <i\n className={clsx(\n {\n [styles.clear]: true,\n },\n \"uil uil-times clear-icon\",\n )}\n onClick={() => {\n if (input) {\n input?.focus();\n }\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n </div>\n );\n }}\n />\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"absolute text-dangerous-700 text-xs mt-[2px] ml-1\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n },\n);\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { ReactNode, JSX } from \"react\";\n\ntype BadgeProps = {\n variant?: keyof typeof variants | string;\n children?: ReactNode | JSX.Element;\n className?: string;\n style?: any;\n};\n\nconst variants = {\n success: \"bg-success-100 text-success-600\",\n warning: \"bg-warning-100 text-warning-600\",\n blue: \"bg-blue-100 text-blue-500\",\n gray: \"bg-neutral-100 text-neutral-400\",\n dangerous: \"bg-dangerous-100 text-dangerous-600\",\n light: \"bg-neutral-100 text-neutral-400\",\n white:\n \"bg-surface text-neutral-400 px-4 py-[6px] border border-neutral-200 shadow-button text-paragraph\",\n primary: \"bg-rose-100 text-rose-800\",\n dark: \"bg-neutral-700 text-white\",\n outline: \"bg-surface text-rose-700 border border-neutral-200\",\n \"dark-gray\": \"bg-neutral-100 text-neutral-600\",\n};\n\nexport const Badge = ({\n variant = \"blue\",\n children,\n className,\n style,\n}: BadgeProps) => {\n return (\n <span\n className={clsx(\n { [variants[variant]]: variant?.length > 0 },\n \"py-1 px-2 text-p-md font-normal inline-flex items-center justify-center gap-1 rounded-full text-center\",\n className,\n )}\n style={style}\n >\n {children}\n </span>\n );\n};\n","import React from \"react\";\nimport { DatePicker3, DateRangePicker3 } from \"@blueprintjs/datetime2\";\nimport {\n Control,\n Controller,\n FieldError,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\nimport {\n set,\n sub,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n subYears,\n} from \"date-fns\";\n\ninterface Props {\n registration?: UseFormRegisterReturn;\n error?: FieldError;\n control: Control<any>;\n name: string | never;\n rangeCalendar?: boolean;\n shortcutsChange?: (e) => void;\n selectedShortcut?: number | null;\n setSelectedShortcut?: (e) => void;\n maxDate?: Date;\n singleMonth?: boolean;\n}\nexport const Calendar = ({\n registration,\n error,\n control,\n name,\n rangeCalendar = false,\n shortcutsChange,\n selectedShortcut,\n setSelectedShortcut,\n maxDate = new Date(),\n singleMonth = false,\n}: Props) => {\n const fieldValidationMessages = [error?.message];\n\n const shorcuts: any = [\n {\n label: \"Todo o período\",\n dateRange: [],\n },\n {\n label: \"Hoje\",\n dateRange: [\n set(new Date(), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Ontem\",\n dateRange: [\n set(sub(new Date(), { days: 1 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(sub(new Date(), { days: 1 }), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 7 dias\",\n dateRange: [\n set(sub(new Date(), { days: 7 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 14 dias\",\n dateRange: [\n set(sub(new Date(), { days: 14 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 30 dias\",\n dateRange: [\n set(sub(new Date(), { days: 30 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 60 dias\",\n dateRange: [\n set(sub(new Date(), { days: 60 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 90 dias\",\n dateRange: [\n set(sub(new Date(), { days: 90 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Esta semana\",\n dateRange: [\n startOfWeek(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Semana passada\",\n dateRange: [\n startOfWeek(sub(new Date(), { days: 7 })),\n endOfWeek(sub(new Date(), { days: 7 })),\n ],\n },\n {\n label: \"Este Mês\",\n dateRange: [\n startOfMonth(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Mês passado\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 1 })),\n endOfMonth(sub(new Date(), { months: 1 })),\n ],\n },\n {\n label: \"Últimos 6 meses\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 6 })),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ,\n ],\n },\n ];\n return (\n <div>\n <Controller\n control={control}\n name={name as never}\n render={({ field: { onChange, value } }) => (\n <div id=\"group-input-calendar\" className=\"relative\">\n {rangeCalendar ? (\n <DateRangePicker3\n allowSingleDayRange\n shortcuts={shorcuts}\n selectedShortcutIndex={selectedShortcut || shorcuts[0]}\n onChange={(e) => {\n let date = [];\n if (e[0] && e[0] !== null) {\n date.push(\n set(e[0] as never, {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }) as never,\n );\n }\n\n if (e[1] && e[1] !== null) {\n date.push(\n set(e[1] as never, {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }) as never,\n );\n }\n\n if (e[0] !== null && e[1] == null) {\n if (shortcutsChange) shortcutsChange(null);\n if (setSelectedShortcut) setSelectedShortcut(null);\n }\n if (shortcutsChange) shortcutsChange(\"\");\n onChange(date);\n }}\n singleMonthOnly={singleMonth}\n value={value}\n highlightCurrentDay={true}\n minDate={subYears(new Date(), 50)}\n maxDate={maxDate}\n locale=\"pt-BR\"\n onShortcutChange={(e) => {\n const index = shorcuts.findIndex(\n (item) => item.label === e.label,\n );\n if (index !== -1 && setSelectedShortcut) {\n setSelectedShortcut(index);\n }\n if (shortcutsChange) shortcutsChange(e);\n }}\n />\n ) : (\n <DatePicker3\n onChange={(e) => {\n onChange(e);\n }}\n value={value}\n highlightCurrentDay={true}\n locale=\"pt-BR\"\n />\n )}\n </div>\n )}\n />\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { UseFormRegisterReturn } from \"react-hook-form\";\nexport type CheckboxProps = {\n key?: string;\n label?: string;\n registration?: UseFormRegisterReturn;\n disabled?: boolean;\n};\n\nexport const Checkbox = ({\n key = \"\",\n label,\n registration,\n disabled,\n}: CheckboxProps) => (\n <div>\n <div className=\"relative flex items-start\">\n <div className=\"flex h-5 items-center\">\n <input\n {...registration}\n id={registration ? registration.name : key}\n disabled={disabled}\n type=\"checkbox\"\n className={clsx(\n \"disabled:hover:bg-neutral-100 disabled:cursor-default cursor-pointer h-[16px] w-[16px] rounded-[2.5px] border border-neutral-200 text-blue-500 focus:rounded-[4px] focus:border-[1.5px] focus:ring-blue-500 focus-visible:ring-blue-500 checked:after:text-blue-500 disabled:bg-neutral-100\"\n )}\n />\n </div>\n <div className=\"ml-3 text-sm\">\n <label\n htmlFor={registration?.name}\n className=\"cursor-pointer font-medium text-paragraph\"\n >\n {label}\n </label>\n </div>\n </div>\n </div>\n);\n","import React from \"react\";\nimport { Tooltip } from \"react-tooltip\";\ninterface Props {\n id: string;\n displayArrow?: boolean;\n openOnClick?: boolean;\n}\n\nexport const Popover = ({\n id,\n displayArrow = true,\n openOnClick = false,\n}: Props) => {\n const style = {\n noArrow: \"hidden\",\n };\n\n return (\n <>\n <Tooltip\n id={id}\n className=\"absolute bg-neutral-700 text-p-md text-neutral-0 rounded-lg shadow-dropdown py-[6px] px-3 max-w-[430px] break-words whitespace-normal\"\n classNameArrow={!displayArrow ? style.noArrow : \"\"}\n openOnClick={openOnClick}\n delayHide={0}\n delayShow={0}\n />\n </>\n );\n};\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport { Popover, PopoverButton, PopoverPanel } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport { Popover as ClearTooltip } from \"../Popover/Popover\";\nimport { format } from \"date-fns\";\nimport {\n set,\n sub,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n subYears,\n} from \"date-fns\";\nimport { DatePicker3, DateRangePicker3 } from \"@blueprintjs/datetime2\";\n\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n onApply?: () => void;\n onClear?: () => void;\n control: Control;\n name: string;\n rangeCalendar?: boolean;\n defaultShortcut?: number | null;\n shortcutsChange?: (e) => void;\n singleMonth?: boolean;\n maxDate?: Date | undefined;\n /** Sobrescreve a cor do texto do label no estado de repouso (ex.: \"text-neutral-700\"). */\n labelClassName?: string;\n /** Mostra o botão de limpar (X) no chip fechado, sobre o filtro já selecionado. Padrão: true. */\n clearButton?: boolean;\n}\n\nexport const FilterCalendar = ({\n icon,\n label,\n onApply,\n onClear,\n control,\n name,\n rangeCalendar = true,\n defaultShortcut,\n shortcutsChange,\n singleMonth = false,\n maxDate = undefined,\n labelClassName,\n clearButton = true,\n}: Props) => {\n const [currentValue, setCurrentValue] = useState<any>([]);\n\n const isMobileSize = window?.innerWidth < 768;\n\n const shorcuts: any = [\n {\n label: \"Todo o período\",\n dateRange: [],\n },\n {\n label: \"Hoje\",\n dateRange: [\n set(new Date(), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Ontem\",\n dateRange: [\n set(sub(new Date(), { days: 1 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(sub(new Date(), { days: 1 }), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 7 dias\",\n dateRange: [\n set(sub(new Date(), { days: 7 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 14 dias\",\n dateRange: [\n set(sub(new Date(), { days: 14 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 30 dias\",\n dateRange: [\n set(sub(new Date(), { days: 30 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 60 dias\",\n dateRange: [\n set(sub(new Date(), { days: 60 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Últimos 90 dias\",\n dateRange: [\n set(sub(new Date(), { days: 90 }), {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Esta semana\",\n dateRange: [\n startOfWeek(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Semana passada\",\n dateRange: [\n startOfWeek(sub(new Date(), { days: 7 })),\n endOfWeek(sub(new Date(), { days: 7 })),\n ],\n },\n {\n label: \"Este Mês\",\n dateRange: [\n startOfMonth(new Date()),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ],\n },\n {\n label: \"Mês passado\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 1 })),\n endOfMonth(sub(new Date(), { months: 1 })),\n ],\n },\n {\n label: \"Últimos 6 meses\",\n dateRange: [\n startOfMonth(sub(new Date(), { months: 6 })),\n set(new Date(), {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }),\n ,\n ],\n },\n ];\n const [selectedShortcut, setSelectedShortcut] = useState(\n defaultShortcut || shorcuts[0],\n );\n const [calendarLabel, setCalendarLabel] = useState(\n defaultShortcut != null && shorcuts[defaultShortcut]\n ? shorcuts[defaultShortcut].label\n : \"\",\n );\n\n const calendar = (\n <div id=\"group-input-calendar\" className=\"relative\">\n {rangeCalendar ? (\n <DateRangePicker3\n allowSingleDayRange\n shortcuts={shorcuts}\n selectedShortcutIndex={selectedShortcut}\n onChange={(e) => {\n let date = [];\n if (e[0] && e[0] !== null) {\n date.push(\n set(e[0] as never, {\n hours: 0,\n minutes: 0,\n seconds: 0,\n }) as never,\n );\n }\n\n if (e[1] && e[1] !== null) {\n date.push(\n set(e[1] as never, {\n hours: 23,\n minutes: 59,\n seconds: 59,\n }) as never,\n );\n }\n\n if (e[0] !== null && e[1] == null) {\n setCalendarLabel(\"\");\n\n if (setSelectedShortcut) setSelectedShortcut(null);\n }\n setCalendarLabel(\"\");\n setCurrentValue(date);\n }}\n singleMonthOnly={singleMonth}\n value={currentValue}\n highlightCurrentDay={true}\n minDate={subYears(new Date(), 50)}\n maxDate={maxDate}\n locale=\"pt-BR\"\n onShortcutChange={(e) => {\n const index = shorcuts.findIndex((item) => item.label === e.label);\n if (index !== -1 && setSelectedShortcut) {\n setSelectedShortcut(index);\n }\n setCalendarLabel(e?.label);\n }}\n />\n ) : (\n <DatePicker3\n onChange={(e) => {\n setCurrentValue(e);\n }}\n value={currentValue}\n highlightCurrentDay={true}\n locale=\"pt-BR\"\n />\n )}\n </div>\n );\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue =\n field?.value?.length > 0 ||\n (!!calendarLabel && calendarLabel !== shorcuts[0].label);\n\n const clearValue = () => {\n if (!onClear) return;\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n };\n\n const chipLabel = calendarLabel\n ? calendarLabel\n : field?.value?.length > 0\n ? field?.value\n ?.map((item) => (item !== null ? format(item, \"dd/MM/yyyy\") : \"\"))\n .join(\" - \")\n : label;\n\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n {/* `group` aqui só serve pro botão de limpar (sibling) reagir\n ao hover/press do chip inteiro — o próprio chip usa\n hover:/active: direto, sem precisar de group. */}\n <div className=\"relative group\">\n <PopoverButton\n as=\"button\"\n className={clsx(\n \"group/chip flex items-center justify-center gap-[6px] rounded-lg px-3 py-2 text-p-md font-bold outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n hasValue\n ? \"bg-blue-100 border-[0.5px] border-blue-500 text-blue-500 shadow-[0px_1px_3px_0px_rgba(0,158,219,0.2)] group-hover:bg-blue-500 group-hover:border-transparent group-hover:text-white active:bg-[#007fb0] active:border-transparent active:text-white\"\n : `bg-surface border-[0.5px] border-stroke ${labelClassName ?? \"text-paragraph\"} shadow-[0px_1px_2px_0px_rgba(56,61,77,0.1)] hover:bg-neutral-50 active:bg-blue-100 active:border-blue-500 active:text-blue-500`,\n )}\n >\n {icon && <div className=\"text-[18px] leading-none\">{icon}</div>}\n <label className=\"truncate cursor-pointer\">{chipLabel}</label>\n <i\n className={clsx(\n \"text-[18px]\",\n open ? \"uil uil-angle-up\" : \"uil uil-angle-down\",\n // Some quando o X de limpar aparece, pra não sobrepor.\n hasValue && clearButton\n ? \"group-hover:opacity-0 group-active:opacity-0\"\n : \"\",\n )}\n ></i>\n </PopoverButton>\n {hasValue && clearButton && (\n <button\n type=\"button\"\n aria-label=\"Limpar\"\n // O \"x\" sozinho nao diz o que faz: o tooltip nomeia a acao no hover.\n // Um id por filtro, senao os chips da tela compartilhariam o mesmo balao.\n data-tooltip-id={`filter-calendar-clear-${name}`}\n data-tooltip-content=\"Limpar\"\n data-tooltip-place=\"top\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n clearValue();\n }}\n className={clsx(\n \"absolute right-0 top-1/2 hidden h-9 -translate-y-1/2 items-center justify-end rounded-r-lg pl-2 pr-1\",\n \"bg-gradient-to-l from-blue-500 via-blue-500 via-[69%] to-transparent\",\n \"group-hover:flex group-active:flex group-active:from-[#007fb0] group-active:via-[#007fb0]\",\n )}\n >\n <span className=\"flex h-full w-7 items-center justify-center rounded-[6px] text-white\">\n <i className=\"uil uil-times text-[18px]\"></i>\n </span>\n </button>\n )}\n {hasValue && clearButton && (\n <ClearTooltip id={`filter-calendar-clear-${name}`} />\n )}\n </div>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel className=\"p-3 whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200\">\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n {calendar}\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n clearValue();\n close();\n }}\n >\n Limpar\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n Cancelar\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n Aplicar\n </Button>\n </div>\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n useRef,\n JSX,\n} from \"react\";\nimport { UseFormRegisterReturn } from \"react-hook-form\";\nimport clsx from \"clsx\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: any;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n searchOnClick?: () => void;\n onClear?: () => void;\n collapsed?: boolean;\n};\n\nexport default function InputSmall({\n type,\n registration,\n onClick,\n onBlur,\n onChange,\n inputProps,\n icon,\n clearField,\n disabled,\n placeholder,\n className,\n onKeyDown,\n value,\n searchOnClick,\n onClear,\n collapsed,\n}: InputFieldProps) {\n const inputRef = useRef(null);\n\n const styles = {\n input: `text-p-md text-paragraph w-full outline-none placeholder:text-label disabled:text-disabled disabled:cursor-not-allowed bg-transparent`,\n icon: \"text-label group-focus-within:text-neutral-600 m-[10px]\",\n // disabled fica no <input> interno, não neste wrapper — por isso o\n // estado desabilitado é resolvido via ternário em vez de `disabled:`\n // (pseudo-classe que nunca dispararia numa div).\n // `input-focus-ring-within`: o foco cai no <input>, mas a borda esta neste wrapper — o\n // anel de 1.5px e desenhado sobre o contorno, sem mudar a altura do campo (h-9).\n wrapper: `border-[0.5px] border-stroke input-focus-ring-within group rounded-lg h-9 w-full text-paragraph flex items-center justify-between ${\n disabled ? \"bg-neutral-100 shadow-none\" : \"bg-surface shadow-input\"\n } ${className}`,\n clear: \"pr-[5px] cursor-pointer text-label text-[16px]\",\n };\n\n const elem = inputRef?.current as any;\n return (\n <div className={clsx(styles.wrapper)}>\n {icon && !searchOnClick && (\n <div className={clsx(styles.icon)}>{icon}</div>\n )}\n <input\n {...registration}\n {...inputProps}\n type=\"search-text\"\n ref={inputRef}\n className={clsx(\n {\n [\"pl-1\"]: collapsed,\n },\n styles.input\n )}\n placeholder={placeholder}\n onBlur={onBlur}\n onChange={(e) => onChange(e.target.value)}\n onClick={onClick}\n disabled={disabled}\n onKeyDown={onKeyDown}\n />\n {clearField && value && !disabled && (\n <i\n className={clsx(styles.clear, \"uil uil-times\")}\n onClick={() => {\n elem.value = \"\";\n elem?.focus();\n onChange(\"\");\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n {searchOnClick && (\n <div className=\"py-1\">\n <button\n type=\"button\"\n className={clsx({\n [\"border-l border-input pl-1\"]: clearField && value && !disabled,\n [\"text-blue-500\"]: !disabled,\n [\"text-neutral-300\"]: disabled,\n [\"pl-[2px]\"]: collapsed,\n })}\n onClick={searchOnClick}\n >\n {/* Figma \"Input Button / Main action\": ícone vira botão de fato —\n hover clareia com um círculo azul claro, active preenche sólido\n com ícone branco. Antes o ícone não tinha nenhum feedback visual. */}\n <i className=\"uil uil-search text-[16px] rounded-full p-1.5 hover:bg-blue-100 active:bg-blue-500 active:text-white transition-colors\"></i>\n </button>\n </div>\n )}\n </div>\n );\n}\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { Fragment, Key, useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport {\n Listbox,\n ListboxOption,\n ListboxOptions,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport InputSmall from \"../InputSmall/InputSmall\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\n\nexport interface Options {\n id: any;\n label: any;\n description?: any;\n disabled?: boolean;\n icon?: JSX.Element;\n}\n\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n isMulti?: boolean;\n options: Options[];\n onApply?: () => void;\n onClear?: () => void;\n onSelectAll?: () => void;\n control: Control;\n name: string;\n fetch?: (value: string | number, button: string) => Promise<Options[]>;\n subFilters?: {\n id: string | any;\n name: string;\n }[];\n emptyMessage?: string;\n initialMessage?: string;\n /** Sobrescreve a classe do texto de initialMessage (ex.: \"text-center\"). Padrão: sem alinhamento. */\n initialMessageClassName?: string;\n applyOnClick?: boolean;\n showFilter?: boolean;\n renderOption?: (option: Options, isSelected: boolean) => JSX.Element;\n /** Placeholder do campo de busca. Padrão: \"Pesquisar\". */\n searchPlaceholder?: string;\n /** Sobrescreve o padding/classe do painel do dropdown. Padrão: \"p-2\". */\n panelClassName?: string;\n /** Labels dos botões de ação (sobrescrevem os padrões). */\n applyLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n selectAllLabel?: string;\n}\n\nexport const FilterOptions = ({\n icon,\n label,\n isMulti,\n options = [],\n onApply,\n onClear,\n onSelectAll,\n control,\n name,\n fetch,\n subFilters = [],\n emptyMessage,\n initialMessage,\n initialMessageClassName,\n applyOnClick = false,\n showFilter = false,\n renderOption,\n searchPlaceholder = \"Pesquisar\",\n panelClassName = \"p-2\",\n applyLabel = \"Aplicar\",\n cancelLabel = \"Cancelar\",\n clearLabel = \"Limpar\",\n selectAllLabel = \"Marcar todos\",\n}: Props) => {\n const style = {\n filter:\n \"rounded-3xl shadow-input bg-surface hover:bg-neutral-50 border border-[0.5px] border-neutral-200 active:text-blue-500 active:bg-blue-100 active:border-blue-500\",\n filterOpen:\n \"rounded-3xl shadow-input border border-blue-500 bg-blue-100 text-blue-500\",\n filterActive:\n \"rounded-3xl border border-blue-500 text-blue-500 bg-blue-100 shadow-input hover:bg-blue-500 hover:text-accent-label active:text-accent-label active:bg-blue-600 active:border-blue-600\",\n };\n\n const [currentValue, setCurrentValue] = useState<any>(isMulti ? [] : {});\n const [data, setData] = useState(() => options);\n const [filter, setFilter] = useState(\"\");\n const [subFilter, setSubFilter] = useState(\n subFilters?.length > 0 ? subFilters[0].id : null,\n );\n const [loading, setLoading] = useState(false);\n\n const search = async () => {\n if (filter?.length > 0 || options?.length > 0) {\n if (fetch) {\n setData(await fetch(filter, subFilter));\n } else {\n const result = options.filter((opt) =>\n opt?.label?.toLowerCase().includes(filter.toLowerCase()),\n );\n const order = result.sort((a, b) => a?.label?.toLowerCase());\n setData(order);\n }\n } else {\n setData([]);\n }\n setLoading(false);\n };\n\n useEffect(() => {\n setLoading(true);\n const timeout = setTimeout(() => {\n search();\n }, 400);\n\n return () => clearTimeout(timeout);\n }, [filter]);\n\n const optionStyle = (option, isSelected) => {\n return (\n <ListboxOption\n disabled={option.disabled}\n key={option.id as Key}\n value={option}\n as={Fragment}\n >\n {renderOption ? (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n {renderOption(option, isSelected)}\n </div>\n ) : (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n },\n \"text-wrap break-words font-normal block\",\n )}\n >\n {option?.label}\n </span>\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n [\"text-label\"]: !isSelected,\n },\n \"w-[200px] whitespace-nowrap text-ellipsis overflow-hidden text-p-sm block\",\n )}\n >\n {option?.description}\n </span>\n </div>\n )}\n </ListboxOption>\n );\n };\n const isMobileSize = window?.innerWidth < 768;\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue = isMulti ? field?.value?.length > 0 : !!field?.value?.id;\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n <PopoverButton\n as=\"button\"\n className=\"rounded-3xl outline-none focus:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\"\n >\n <div\n className={clsx(\n {\n [style.filter]: !hasValue && !open,\n [style.filterOpen]: open && !hasValue,\n [style.filterActive]:\n (open && hasValue) || (!open && hasValue),\n },\n `group px-3 h-[36px] text-p-ls font-bold disabled:shadow-none active:shadow-none flex items-center justify-between outline-none gap-2`,\n )}\n >\n {icon && (\n <div\n className={clsx({\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n })}\n >\n {icon}\n </div>\n )}\n\n <label\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"truncate cursor-pointer\",\n )}\n >\n {isMulti\n ? label\n : field?.value?.id\n ? field?.value?.label\n : label}\n </label>\n {isMulti && field.value && field.value.length > 0 && (\n <div className=\"bg-blue-500 text-accent-label text-p-xs px-1 py-[2px] rounded group-hover:bg-blue-500\">\n {field.value.length}\n </div>\n )}\n {open ? (\n <i\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"uil uil-angle-up text-[18px]\",\n )}\n ></i>\n ) : (\n <i\n className={clsx(\n {\n [\"text-paragraph group-active:text-blue-500\"]:\n !hasValue && !open,\n [\"text-blue-500\"]: open && !hasValue,\n [\n \"text-blue-500 group-hover:text-accent-label group-active:text-accent-label\"\n ]: hasValue,\n },\n \"uil uil-angle-down text-[18px]\",\n )}\n ></i>\n )}\n </div>\n </PopoverButton>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel\n className={clsx(\n \"whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200\",\n panelClassName,\n )}\n >\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Listbox\n value={currentValue || []}\n onChange={setCurrentValue}\n multiple={isMulti}\n >\n <ListboxOptions\n static\n className={clsx(\n \"max-h-60 w-full overflow-x-hidden overflow-y-auto bg-surface text-p-md focus:outline-none sm:text-sm relative\",\n {\n \"pr-2\": options.some(\n (option) => option.description,\n )\n ? options.length > 3\n : options.length > 4,\n },\n )}\n >\n <div className=\"mr-1 sticky top-0 z-30\">\n {showFilter && (\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setFilter(e)}\n value={filter}\n placeholder={searchPlaceholder}\n clearField\n onKeyDown={(e) => {\n if (\n e.key === \" \" ||\n e.code === \"Space\"\n ) {\n e.stopPropagation();\n }\n }}\n />\n )}\n {subFilters && fetch && (\n <div className=\"flex items-center gap-2 pt-2 bg-surface\">\n {subFilters.map((item, index) => {\n const active = item?.id === subFilter;\n return (\n <button\n key={index}\n className={clsx(\n {\n [\"bg-blue-500 text-accent-label\"]:\n active,\n [\"text-paragraph\"]: !active,\n },\n `rounded-[20px] border-[0.5px] border-neutral-200 px-4 py-[6px]`,\n )}\n onClick={() => {\n if (subFilter == item.id) {\n setSubFilter(null);\n } else {\n setSubFilter(item.id);\n }\n }}\n >\n {item.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n {loading && (\n <div className=\"flex items-center justify-center gap-2 w-full my-4\">\n <SpinnerIcon className=\"animate-spin w-[16px] h-[16px]\" />\n Carregando\n </div>\n )}\n {data?.length === 0 &&\n filter?.length > 0 &&\n !loading && (\n <div className=\"py-4\">\n <span className=\"text-label text-p-md\">\n {emptyMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n data?.length === 0 &&\n filter?.length === 0 &&\n !loading &&\n options?.length === 0 &&\n !currentValue?.id && (\n <div className={clsx(\"py-4\", initialMessageClassName)}>\n <span className=\"text-label text-p-md\">\n {initialMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n currentValue &&\n currentValue?.id &&\n filter?.length === 0 && (\n <div className=\"py-2\">\n {isMulti ? (\n <>\n {currentValue?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue?.length > 0 &&\n currentValue?.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue?.id === option.id;\n return optionStyle(\n options,\n isSelected,\n );\n })}\n </>\n ) : (\n optionStyle(field.value, true)\n )}\n </div>\n )}\n {!loading &&\n data?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue.length > 0 &&\n currentValue.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue.id === option.id;\n return optionStyle(option, isSelected);\n })}\n </ListboxOptions>\n </Listbox>\n {!applyOnClick && (\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {isMulti && onSelectAll && (\n <div className=\"border-r pr-2 border-neutral-300\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n onSelectAll();\n field.onChange(options);\n setCurrentValue(options);\n close();\n }}\n >\n {selectAllLabel}\n </Button>\n </div>\n )}\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n if (onClear) {\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n }\n close();\n }}\n >\n {clearLabel}\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n {applyLabel}\n </Button>\n </div>\n )}\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","/* eslint-disable no-useless-computed-key */\nimport React from \"react\";\nimport { Fragment, Key, useEffect, useState, JSX } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport {\n Listbox,\n ListboxOption,\n ListboxOptions,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { Float } from \"@headlessui-float/react\";\nimport { Button } from \"../Button\";\nimport { Popover as ClearTooltip } from \"../Popover/Popover\";\nimport InputSmall from \"../InputSmall/InputSmall\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\nimport type { Options } from \"../FilterButton/FilterOptions\";\n\n// v2 do filtro de listagem (Figma node 6650:20472, \"Filter v2\") — componente\n// separado do FilterOptions (v1) por pedido explícito, sem NENHUMA mudança\n// de funcionalidade: toda a lógica do painel (busca, subfiltros, seleção\n// múltipla, aplicar/cancelar/limpar) é a mesma, copiada tal e qual. A única\n// diferença real é o visual do chip/gatilho fechado — cores, sombra, e o\n// botão de limpar (X) que aparece no lugar da seta ao passar o mouse/clicar\n// num filtro já selecionado, em vez de só existir dentro do painel aberto.\ninterface Props {\n icon?: JSX.Element;\n label?: string;\n isMulti?: boolean;\n options: Options[];\n onApply?: () => void;\n onClear?: () => void;\n onSelectAll?: () => void;\n control: Control;\n name: string;\n fetch?: (value: string | number, button: string) => Promise<Options[]>;\n subFilters?: {\n id: string | any;\n name: string;\n }[];\n emptyMessage?: string;\n initialMessage?: string;\n /** Sobrescreve a classe do texto de initialMessage (ex.: \"text-center\"). Padrão: sem alinhamento. */\n initialMessageClassName?: string;\n applyOnClick?: boolean;\n showFilter?: boolean;\n renderOption?: (option: Options, isSelected: boolean) => JSX.Element;\n /** Placeholder do campo de busca. Padrão: \"Pesquisar\". */\n searchPlaceholder?: string;\n /** Sobrescreve o padding/classe do painel do dropdown. Padrão: \"p-2\". */\n panelClassName?: string;\n /** Labels dos botões de ação (sobrescrevem os padrões). */\n applyLabel?: string;\n cancelLabel?: string;\n clearLabel?: string;\n selectAllLabel?: string;\n /** Mostra o botão de limpar (X) no chip fechado, sobre o filtro já selecionado. Padrão: true. */\n clearButton?: boolean;\n}\n\nexport const FilterSelect = ({\n icon,\n label,\n isMulti,\n options = [],\n onApply,\n onClear,\n onSelectAll,\n control,\n name,\n fetch,\n subFilters = [],\n emptyMessage,\n initialMessage,\n initialMessageClassName,\n applyOnClick = false,\n showFilter = false,\n renderOption,\n searchPlaceholder = \"Pesquisar\",\n panelClassName = \"p-2\",\n applyLabel = \"Aplicar\",\n cancelLabel = \"Cancelar\",\n clearLabel = \"Limpar\",\n selectAllLabel = \"Marcar todos\",\n clearButton = true,\n}: Props) => {\n const [currentValue, setCurrentValue] = useState<any>(isMulti ? [] : {});\n const [data, setData] = useState(() => options);\n const [filter, setFilter] = useState(\"\");\n const [subFilter, setSubFilter] = useState(\n subFilters?.length > 0 ? subFilters[0].id : null,\n );\n const [loading, setLoading] = useState(false);\n\n const search = async () => {\n if (filter?.length > 0 || options?.length > 0) {\n if (fetch) {\n setData(await fetch(filter, subFilter));\n } else {\n const result = options.filter((opt) =>\n opt?.label?.toLowerCase().includes(filter.toLowerCase()),\n );\n const order = result.sort((a, b) => a?.label?.toLowerCase());\n setData(order);\n }\n } else {\n setData([]);\n }\n setLoading(false);\n };\n\n useEffect(() => {\n setLoading(true);\n const timeout = setTimeout(() => {\n search();\n }, 400);\n\n return () => clearTimeout(timeout);\n }, [filter]);\n\n const optionStyle = (option, isSelected) => {\n return (\n <ListboxOption\n disabled={option.disabled}\n key={option.id as Key}\n value={option}\n as={Fragment}\n >\n {renderOption ? (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n {renderOption(option, isSelected)}\n </div>\n ) : (\n <div\n className={clsx(\n \"relative cursor-pointer outline-none select-none p-3 rounded-lg pr-9 text-paragraph mt-1 first:mt-0 overflow-hidden w-full\",\n {\n [\"hover:bg-neutral-100\"]: !option.disabled && !isSelected,\n [\"text-disabled\"]: option.disabled,\n [\"bg-blue-500 hover:bg-blue-500\"]: isSelected,\n },\n )}\n >\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n },\n \"text-wrap break-words font-normal block\",\n )}\n >\n {option?.label}\n </span>\n <span\n className={clsx(\n {\n [\"font-semibold text-accent-label\"]: isSelected,\n [\"text-label\"]: !isSelected,\n },\n \"w-[200px] whitespace-nowrap text-ellipsis overflow-hidden text-p-sm block\",\n )}\n >\n {option?.description}\n </span>\n </div>\n )}\n </ListboxOption>\n );\n };\n const isMobileSize = window?.innerWidth < 768;\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n let hasValue = isMulti ? field?.value?.length > 0 : !!field?.value?.id;\n return (\n <Popover\n className={clsx(\n { [\"w-full\"]: isMobileSize },\n \"relative text-paragraph\",\n )}\n >\n {({ open }) => (\n <Float composable shift={8} zIndex={99} offset={6}>\n <Float.Reference>\n {/* `group` aqui só serve pro botão de limpar (sibling) reagir\n ao hover/press do chip inteiro — o próprio chip usa\n hover:/active: direto, sem precisar de group. */}\n <div className=\"relative group\">\n <PopoverButton\n as=\"button\"\n className={clsx(\n \"group/chip flex items-center justify-center gap-[6px] rounded-lg px-3 py-2 text-p-md font-bold outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n hasValue\n ? \"bg-blue-100 border-[0.5px] border-blue-500 text-blue-500 shadow-[0px_1px_3px_0px_rgba(0,158,219,0.2)] group-hover:bg-blue-500 group-hover:border-transparent group-hover:text-white active:bg-[#007fb0] active:border-transparent active:text-white\"\n : \"bg-surface border-[0.5px] border-stroke text-paragraph shadow-[0px_1px_2px_0px_rgba(56,61,77,0.1)] hover:bg-neutral-50 active:bg-blue-100 active:border-blue-500 active:text-blue-500\",\n )}\n >\n {icon && <div className=\"text-[18px] leading-none\">{icon}</div>}\n <span className=\"truncate cursor-pointer\">\n {isMulti\n ? label\n : field?.value?.id\n ? field?.value?.label\n : label}\n </span>\n {isMulti && field.value && field.value.length > 0 && (\n <div className=\"rounded-[2px] bg-blue-500 px-1 py-px text-p-xs text-white group-hover/chip:bg-[#007fb0] group-active/chip:bg-[#007fb0]\">\n {field.value.length}\n </div>\n )}\n <i\n className={clsx(\n \"text-[18px]\",\n open ? \"uil uil-angle-up\" : \"uil uil-angle-down\",\n // Some quando o X de limpar aparece, pra não sobrepor.\n hasValue && clearButton\n ? \"group-hover:opacity-0 group-active:opacity-0\"\n : \"\",\n )}\n ></i>\n </PopoverButton>\n {hasValue && clearButton && (\n <button\n type=\"button\"\n aria-label={clearLabel}\n // O \"x\" sozinho nao diz o que faz: o tooltip nomeia a acao no hover.\n // Um id por filtro, senao os chips da tela compartilhariam o mesmo balao.\n data-tooltip-id={`filter-select-clear-${name}`}\n data-tooltip-content={clearLabel}\n data-tooltip-place=\"top\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n const emptyValue = isMulti ? [] : null;\n field.onChange(emptyValue);\n setCurrentValue(isMulti ? [] : {});\n if (onClear) onClear();\n }}\n className={clsx(\n \"absolute right-0 top-1/2 hidden h-9 -translate-y-1/2 items-center justify-end rounded-r-lg pl-2 pr-1\",\n \"bg-gradient-to-l from-blue-500 via-blue-500 via-[69%] to-transparent\",\n \"group-hover:flex group-active:flex group-active:from-[#007fb0] group-active:via-[#007fb0]\",\n )}\n >\n <span className=\"flex h-full w-7 items-center justify-center rounded-[6px] text-white\">\n <i className=\"uil uil-times text-[18px]\"></i>\n </span>\n </button>\n )}\n {hasValue && clearButton && (\n <ClearTooltip id={`filter-select-clear-${name}`} />\n )}\n </div>\n </Float.Reference>\n {(open as any) && (\n <Float.Content>\n <PopoverPanel\n className={clsx(\n \"whitespace-nowrap bg-surface rounded-lg shadow-dropdown border-[0.5px] border-neutral-200 outline-none focus:outline-none\",\n panelClassName,\n )}\n >\n {({ close }) => {\n const onClose = () => {\n setCurrentValue(field.value);\n close();\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n setCurrentValue(field.value);\n }, [open]);\n\n return (\n <div className=\"flex flex-col gap-2\">\n <Listbox\n value={currentValue || []}\n onChange={setCurrentValue}\n multiple={isMulti}\n >\n <ListboxOptions\n static\n className={clsx(\n \"max-h-60 w-full overflow-x-hidden overflow-y-auto bg-surface text-p-md focus:outline-none sm:text-sm relative\",\n {\n \"pr-2\": options.some(\n (option) => option.description,\n )\n ? options.length > 3\n : options.length > 4,\n },\n )}\n >\n <div className=\"mr-1 sticky top-0 z-30\">\n {showFilter && (\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setFilter(e)}\n value={filter}\n placeholder={searchPlaceholder}\n clearField\n onKeyDown={(e) => {\n if (\n e.key === \" \" ||\n e.code === \"Space\"\n ) {\n e.stopPropagation();\n }\n }}\n />\n )}\n {subFilters && fetch && (\n <div className=\"flex items-center gap-2 pt-2 bg-surface\">\n {subFilters.map((item, index) => {\n const active = item?.id === subFilter;\n return (\n <button\n key={index}\n className={clsx(\n {\n [\"bg-blue-500 text-accent-label\"]:\n active,\n [\"text-paragraph\"]: !active,\n },\n `rounded-[20px] border-[0.5px] border-neutral-200 px-4 py-[6px]`,\n )}\n onClick={() => {\n if (subFilter == item.id) {\n setSubFilter(null);\n } else {\n setSubFilter(item.id);\n }\n }}\n >\n {item.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n {loading && (\n <div className=\"flex items-center justify-center gap-2 w-full my-4\">\n <SpinnerIcon className=\"animate-spin w-[16px] h-[16px]\" />\n Carregando\n </div>\n )}\n {data?.length === 0 &&\n filter?.length > 0 &&\n !loading && (\n <div className=\"py-4\">\n <span className=\"text-label text-p-md\">\n {emptyMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n data?.length === 0 &&\n filter?.length === 0 &&\n !loading &&\n options?.length === 0 &&\n !currentValue?.id && (\n <div className={clsx(\"py-4\", initialMessageClassName)}>\n <span className=\"text-label text-p-md\">\n {initialMessage}\n </span>\n </div>\n )}\n {initialMessage &&\n currentValue &&\n currentValue?.id &&\n filter?.length === 0 && (\n <div className=\"py-2\">\n {isMulti ? (\n <>\n {currentValue?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue?.length > 0 &&\n currentValue?.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue?.id === option.id;\n return optionStyle(\n options,\n isSelected,\n );\n })}\n </>\n ) : (\n optionStyle(field.value, true)\n )}\n </div>\n )}\n {!loading &&\n data?.map((option) => {\n let isSelected = isMulti\n ? currentValue &&\n currentValue.length > 0 &&\n currentValue.some(\n (e) => e.id === option.id,\n )\n : currentValue &&\n currentValue.id === option.id;\n return optionStyle(option, isSelected);\n })}\n </ListboxOptions>\n </Listbox>\n {!applyOnClick && (\n <div className=\"flex gap-2 items-center justify-end border-t border-t-neutral-200 pt-3\">\n {isMulti && onSelectAll && (\n <div className=\"border-r pr-2 border-neutral-300\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n onSelectAll();\n field.onChange(options);\n setCurrentValue(options);\n close();\n }}\n >\n {selectAllLabel}\n </Button>\n </div>\n )}\n {onClear && (\n <div className=\"mr-1\">\n <Button\n variant=\"link\"\n size=\"xxs\"\n onClick={() => {\n if (onClear) {\n onClear();\n setCurrentValue([]);\n field.onChange([]);\n }\n close();\n }}\n >\n {clearLabel}\n </Button>\n </div>\n )}\n <Button\n size=\"xs\"\n variant=\"secondary\"\n onClick={() => {\n onClose();\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"xs\"\n variant=\"primary\"\n disabled={\n JSON.stringify(currentValue) ===\n JSON.stringify(field?.value)\n }\n onClick={() => {\n field.onChange(currentValue);\n if (onApply) onApply();\n close();\n }}\n >\n {applyLabel}\n </Button>\n </div>\n )}\n </div>\n );\n }}\n </PopoverPanel>\n </Float.Content>\n )}\n </Float>\n )}\n </Popover>\n );\n }}\n />\n );\n};\n","// Wrapper to ensure proper import of react-intl-currency-input\n// This handles both ESM and CommonJS interoperability\nimport IntlCurrencyInputRaw from 'react-intl-currency-input';\n\n// @ts-ignore - Handle both default and named exports\nconst IntlCurrencyInput = (IntlCurrencyInputRaw.default || IntlCurrencyInputRaw) as typeof IntlCurrencyInputRaw;\n\nexport default IntlCurrencyInput;\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n JSX,\n} from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport IntlCurrencyInput from \"../utils/intl-currency-input\";\ntype InputMoneyProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n control: Control<any> | any;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>> | any;\n onBlur?: (value: any) => void;\n onChangeValue?: (e: any) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n isWeightField?: boolean;\n minFractionDigits?: number;\n};\n\nexport function InputMoney({\n label,\n type,\n onClick,\n error,\n onBlur,\n onChangeValue,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n control,\n defaultValue,\n isWeightField,\n minFractionDigits = 2,\n}: InputMoneyProps) {\n const numberConfig = isWeightField\n ? {\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n useGrouping: false,\n }\n : {\n style: \"currency\",\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n };\n const currencyConfig: any = {\n locale: \"pt-BR\",\n formats: {\n number: {\n BRL: numberConfig,\n },\n },\n };\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke focus-visible:border-blue-500\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1px] w-[38px] rounded-l-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: \"border-[0.5px] border-neutral-300 rounded shadow-input\",\n };\n\n return (\n <Controller\n control={control}\n name={name as string}\n defaultValue={defaultValue}\n render={({ field: { ref: _ref, ...field } }) => {\n // ref é descartado: IntlCurrencyInput é um componente de função sem\n // forwardRef e dispara \"Function components cannot be given refs\".\n const handleChange = (event: any, value: any, maskedValue: any) => {\n event.preventDefault();\n field.onChange(value);\n if (onChangeValue) {\n onChangeValue(value);\n }\n };\n\n if (typeof field.value === \"string\") field.value = Number(field.value);\n\n return (\n <div>\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <IntlCurrencyInput\n {...inputProps}\n {...field}\n type=\"text\"\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[46px]\"]: (!label && placeholder && icon) || icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onClick={onClick}\n disabled={disabled}\n currency=\"BRL\"\n config={currencyConfig}\n onChange={handleChange}\n onBlur={() => {\n if (onBlur) {\n onBlur(field.value);\n }\n }}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[46px]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n // onClick={() => ref?.current.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-p-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputMoney.displayName = \"InputMoney\";\n","// Wrapper to ensure proper import of lodash debounce\n// This handles both ESM and CommonJS interoperability\n// Using full lodash import to avoid Windows path resolution issues with lodash/debounce\nimport * as lodashNamespace from 'lodash';\n\n// @ts-ignore - Handle both default and named exports\nconst lodash = (lodashNamespace.default || lodashNamespace) as any;\nconst debounce = lodash.debounce;\n\nexport default debounce;\n","import React from \"react\";\nimport {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n useMemo,\n useState,\n JSX,\n} from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport _debounce from \"../utils/debounce\";\n\ntype InputNumberProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n control: Control<any>;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n onBlur?: any;\n onChangeValue?: (e) => void;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n hideArrows?: boolean;\n onlyNumbers?: boolean;\n showZero?: boolean;\n maxValue?: number;\n};\n\nexport function InputNumber({\n label,\n type,\n onClick,\n error,\n onBlur,\n onChangeValue,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n control,\n defaultValue,\n hideArrows = false,\n maxLength,\n onlyNumbers,\n showZero,\n maxValue,\n}: InputNumberProps) {\n const input = name ? document?.getElementById(name) : null;\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-3 peer text-paragraph bg-surface border-[0.5px] rounded-lg outline-none block pb-[10px] h-[44px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500 shadow-none\"\n : \"border-stroke focus-visible:border-blue-500 shadow-input\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[2px] left-[1.5px] w-[38px] rounded-l-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: `border-[0.5px] border-neutral-300 rounded shadow-[0px_1px_1px_rgba(56,61,77,0.1)] h-4 w-4 flex items-center justify-center ${\n disabled ? \"bg-neutral-100\" : \"bg-surface\"\n }`,\n };\n const [debouncedCount, setDebouncedCount] = useState(0);\n const save = () => {\n if (onBlur) {\n onBlur(value);\n }\n };\n\n const updateCount = useMemo(() => {\n return _debounce(() => {\n save();\n }, 1000);\n }, []);\n\n return (\n <Controller\n control={control}\n name={name as any}\n defaultValue={defaultValue}\n render={({ field: { onChange, value } }) => {\n const update = (value) => {\n updateCount();\n setDebouncedCount(value);\n };\n\n const changeValue = (value) => {\n onChange(value);\n if (onChangeValue) {\n const val = {\n ...value,\n target: {\n ...value.target,\n value: value.target.value.replace(/^0+/, \"\"),\n },\n };\n onChangeValue(val);\n }\n update(debouncedCount + 1);\n };\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <input\n type=\"number\"\n autoComplete=\"off\"\n id={name}\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[57px]\"]: !label && placeholder && icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onKeyDown={(e) => {\n if (\n e.code === \"ArrowUp\" ||\n e.code === \"ArrowDown\" ||\n e.code === \"Enter\" ||\n e.key === \"+\" ||\n e.key === \"-\" ||\n (e.key === \"e\" && !onlyNumbers)\n ) {\n e.preventDefault();\n }\n if (\n onlyNumbers &&\n ![\n \"Digit1\",\n \"Digit2\",\n \"Digit3\",\n \"Digit4\",\n \"Digit5\",\n \"Digit6\",\n \"Digit7\",\n \"Digit8\",\n \"Digit9\",\n \"Digit0\",\n \"Backspace\",\n ].includes(e.code)\n ) {\n e.preventDefault();\n }\n }}\n onClick={onClick}\n disabled={disabled}\n value={\n showZero ? String(value) : String(value).replace(/^0+/, \"\")\n }\n onChange={(e: any) => {\n let value = maxLength\n ? {\n ...e,\n target: {\n ...e.target,\n value: e.target.value.slice(0, maxLength),\n },\n }\n : e;\n\n if (\n !maxValue ||\n (maxValue && Number(e.target.value) <= maxValue)\n ) {\n changeValue(value);\n } else {\n }\n }}\n defaultValue={value}\n onBlur={(evt) => {\n if (onBlur) onBlur(evt.target.value);\n }}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3.5rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n onClick={() => input?.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n {!hideArrows && (\n <div className={clsx([styles.buttonsWrapper])}>\n <button\n type=\"button\"\n className={clsx([styles.button])}\n disabled={disabled}\n onClick={() => {\n if (\n !maxValue ||\n (maxValue && Number(value || 0) + 1 <= maxValue)\n ) {\n changeValue(String(Number(value || 0) + 1));\n }\n }}\n >\n <i className=\"uil uil-angle-up text-[12px] text-neutral-600\"></i>\n </button>\n <button\n type=\"button\"\n className={clsx([styles.button])}\n disabled={disabled}\n onClick={() => {\n if (\n !maxValue ||\n (maxValue &&\n Number(value === 0 ? 0 : Number(value) - 1) <=\n maxValue)\n ) {\n changeValue(\n value === 0 ? 0 : String(Number(value) - 1),\n );\n }\n }}\n >\n <i className=\"uil uil-angle-down text-[12px] text-neutral-600\"></i>\n </button>\n </div>\n )}\n </div>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"absolute text-dangerous-500 text-p-xs left-[4px] -bottom-[18px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputNumber.displayName = \"InputNumber\";\n","import { DetailedHTMLProps, InputHTMLAttributes, JSX } from \"react\";\nimport { Controller, Control, FieldError } from \"react-hook-form\";\nimport clsx from \"clsx\";\nimport IntlCurrencyInput from \"../utils/intl-currency-input\";\n\ntype InputPercentageProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n control: Control<any>;\n onClick?: any;\n error?: FieldError;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n maskChar?: string;\n minFractionDigits?: number;\n onChangeValue?: (e) => void;\n};\nexport function InputPercentage({\n label,\n onClick,\n error,\n onBlur,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n placeholder,\n control,\n defaultValue,\n minFractionDigits = 2,\n onChangeValue,\n maxLength,\n}: InputPercentageProps) {\n const config = {\n currency: \"BRL\",\n minimumFractionDigits: minFractionDigits,\n maximumFractionDigits: minFractionDigits,\n useGrouping: false,\n };\n const currencyConfig: any = {\n locale: \"pt-BR\",\n formats: {\n number: {\n BRL: config,\n },\n },\n };\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n } ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke focus-visible:border-blue-500\"\n }`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] text-[22px] rounded-lg ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }\n `,\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n buttonsWrapper:\n \"absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]\",\n button: \"border-[0.5px] border-neutral-300 rounded shadow-input\",\n };\n const input = name ? document?.getElementById(name) : null;\n\n return (\n <Controller\n control={control}\n name={name as any}\n defaultValue={defaultValue}\n render={({ field: { ref: _ref, ...field } }) => {\n // ref é descartado: IntlCurrencyInput é um componente de função sem\n // forwardRef e dispara \"Function components cannot be given refs\".\n const handleChange = (event, value, maskedValue) => {\n event.preventDefault();\n field.onChange(value.toString());\n if (onChangeValue) {\n onChangeValue(value.toString());\n }\n };\n\n if (typeof field.value === \"string\") field.value = Number(field.value);\n\n return (\n <div>\n <div className=\"relative outline-none\">\n {icon && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <IntlCurrencyInput\n {...inputProps}\n {...field}\n type=\"text\"\n className={clsx({\n [styles.input]: true,\n [\"pr-10\"]: clearField,\n [\"pr-2\"]: !clearField,\n [\"pl-[3rem]\"]: icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onClick={onClick}\n disabled={disabled}\n currency=\"BRL\"\n config={currencyConfig}\n onChange={handleChange}\n max={maxLength}\n />\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text\",\n )}\n onClick={() => input?.focus()}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nInputPercentage.displayName = \"InputPercentage\";\n","import React from \"react\";\nimport { HTMLInputTypeAttribute, KeyboardEventHandler, useRef } from \"react\";\nimport {\n Controller,\n Control,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport InputMask from \"react-input-mask\";\nimport {Input} from \"./Input\";\n\ntype MaskedInputProps = {\n label: string;\n placeholder?: string;\n type?: HTMLInputTypeAttribute;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n mask?: string;\n control: Control<any>;\n name: string;\n required?: boolean;\n onKeyUp?: KeyboardEventHandler<HTMLInputElement>;\n maskChar?: string;\n alwaysShowMask?: boolean;\n defaultValue?: any;\n disabled?: boolean;\n};\n\nexport const MaskedInput = ({\n type = \"text\",\n name,\n label,\n placeholder,\n error,\n mask,\n control,\n required,\n onKeyUp,\n maskChar = \"\",\n alwaysShowMask,\n defaultValue,\n disabled,\n}: MaskedInputProps) => {\n const ref = useRef(null);\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const beforeMaskedValueChange = (states: any) => {\n const { nextState, previousState } = states;\n var { value } = nextState;\n var selection = nextState.selection;\n var cursorPosition = selection ? selection.start : null;\n var chars = [\".\", \"-\", \"/\", \"(\", \")\", \" \"];\n var words = [...value];\n\n if (chars.includes(words[words.length - 1])) {\n if (cursorPosition === value.length) {\n cursorPosition--;\n selection = {\n start: cursorPosition,\n end: cursorPosition,\n };\n }\n value = value.slice(0, -1);\n }\n\n return {\n value,\n selection,\n };\n };\n\n return (\n <InputMask\n {...field}\n onKeyUp={onKeyUp}\n disabled={disabled}\n mask={mask}\n value={field.value || \"\"}\n onChange={field.onChange}\n maskChar={maskChar}\n alwaysShowMask={alwaysShowMask}\n beforeMaskedStateChange={beforeMaskedValueChange}\n >\n {(inputProps: any) => (\n <Input\n onKeyUp={onKeyUp}\n type={type}\n label={label}\n placeholder={placeholder}\n required={required}\n inputProps={inputProps}\n error={error}\n name={name}\n disabled={disabled}\n ref={ref}\n />\n )}\n </InputMask>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { JSX, ReactNode, cloneElement } from \"react\";\nimport Modal from \"react-modal\";\nimport { Button } from \"./Button\";\n\nexport type ModalProps = {\n open?: boolean;\n onOpen?: () => void;\n onClose?: () => void;\n onCancel?: () => void;\n triggerButton?: React.ReactElement;\n confirmButton?: React.ReactElement;\n title?: string | React.ReactElement;\n cancelButton?: React.ReactElement;\n icon?: JSX.Element;\n alertType?: keyof typeof alertTypes;\n size?: keyof typeof sizes;\n info?: React.ReactElement;\n description?: string;\n children?: ReactNode;\n showHeader?: boolean;\n headerBorder?: boolean;\n showFooter?: boolean;\n closeOnOverlayClick?: boolean;\n};\n\nconst alertTypes = {\n success: \"text-success-500\",\n error: \"text-dangerous-500\",\n warning: \"text-warning-500\",\n info: \"text-blue-500\",\n primary: \"text-rose-500\",\n};\n\nconst sizes = {\n xs: \"w-[350px]\",\n xsm: \"w-[470px]\",\n sm: \"w-[662px]\",\n md: \"w-[960px]\",\n lg: \"w-[80%] min-w-[800px]\",\n null: \"\",\n};\n\nexport const ModalDialog = ({\n open,\n onOpen = () => {},\n onClose,\n onCancel,\n triggerButton,\n confirmButton,\n title,\n cancelButton,\n icon,\n alertType,\n size = \"sm\",\n info,\n description,\n children,\n showFooter = true,\n showHeader = true,\n headerBorder = false,\n closeOnOverlayClick = true,\n}: ModalProps) => {\n const customStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n border: \"1px solid var(--neutral-200)\",\n background: \"var(--surface)\",\n color: \"var(--paragraph)\",\n padding: \"20px 24px 24px 24px\",\n borderRadius: \"8px\",\n overflow: \"initial\",\n },\n overlay: {\n backgroundColor: \"rgb(107,114,128,0.50)\",\n zIndex: 9999,\n },\n };\n // O slot do icone segue o ICONE, nao o alertType. Antes: renderizava a caixa de 26px sempre\n // que houvesse alertType, entao um modal com alertType e sem icone (ou com `icon={<></>}`)\n // ganhava uma caixa vazia + o gap-2 do h3 e empurrava o titulo ~34px para a direita. E o\n // inverso tambem falhava: quem passava icon sem alertType tinha o icone descartado em silencio.\n // Fragment vazio conta como \"sem icone\" — `<></>` e truthy e nao seria pego por `icon &&`.\n const hasIcon =\n React.isValidElement(icon) &&\n !(\n icon.type === React.Fragment &&\n React.Children.count((icon.props as { children?: ReactNode })?.children) === 0\n );\n\n const trigger = triggerButton\n ? cloneElement(triggerButton as any, {\n onClick: () => {\n onOpen();\n },\n })\n : null;\n return (\n <div>\n {trigger}\n <Modal\n ariaHideApp={false}\n isOpen={open}\n onRequestClose={closeOnOverlayClick ? onClose || onCancel : undefined}\n shouldCloseOnOverlayClick={closeOnOverlayClick}\n shouldCloseOnEsc={closeOnOverlayClick}\n style={customStyles}\n contentLabel=\"Example Modal\"\n closeTimeoutMS={200}\n >\n <div className={clsx(\"modal-inner\", sizes[size])}>\n {showHeader && (\n <div\n className={clsx(\"flex items-center justify-between\", {\n \"border-b border-b-neutral-200\": headerBorder,\n })}\n >\n <h3 className=\"font-title text-t-sm font-bold text-title flex items-center gap-2\">\n {hasIcon && (\n <div\n className={clsx(\n alertType && alertTypes[alertType],\n \"w-[26px] h-[26px] text-[26px] flex items-center justify-center shrink-0\",\n )}\n >\n {icon}\n </div>\n )}\n {title}\n </h3>\n <div className=\"inline\">\n <Button\n onClick={onCancel}\n variant=\"ghost\"\n size=\"md\"\n icon={<i className=\"uil uil-times text-neutral-400\"></i>}\n />\n </div>\n </div>\n )}\n <div className=\"mt-4\">{children}</div>\n {showFooter && (\n <div className=\"pt-6 flex w-full items-center justify-between\">\n <div\n className={clsx({\n [\"flex-1\"]: info,\n })}\n >\n {info}\n </div>\n <div className=\"flex flex-col-reverse md:flex-row gap-3 items-center md:justify-end w-full md:w-auto\">\n {cancelButton || (\n <Button\n onClick={() => {\n if (onCancel) {\n onCancel();\n }\n }}\n variant=\"secondary\"\n size=\"md\"\n >\n Cancelar\n </Button>\n )}\n {confirmButton}\n </div>\n </div>\n )}\n </div>\n </Modal>\n </div>\n );\n};\n","export const customStyles = {\n indicatorSeparator: (provided: any, props: any) => {\n return {\n ...provided,\n backgroundColor:\n props.hasValue && provided?.selectProps?.isSearchable\n ? \"var(--input)\"\n : \"transparent\",\n };\n },\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: state.isDisabled ? \"var(--input-icon-disabled)\" : \"var(--paragraph)\",\n // -2px corrige o desalinhamento otico da seta com o texto do campo. Sem rotate: o estado\n // aberto troca o glifo pra `uil-angle-up` (ver DropdownIndicatorCustom em Select.tsx), assim\n // a seta fica na mesma posicao nos dois estados.\n transform: \"translateY(-2px)\",\n \":hover\": {\n color: state.isDisabled ? \"var(--input-icon-disabled)\" : \"var(--paragraph)\",\n },\n }),\n placeholder: (provided: any, state: any) => ({\n ...provided,\n color: state.isDisabled ? \"var(--input-placeholder-disabled)\" : \"var(--label)\",\n }),\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0px\",\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"8px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n background: \"var(--surface)\",\n zIndex: 20,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: \"8px\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0\",\n color:\n state.data.value === \"active\"\n ? \"#0EAF86\"\n : state.selectProps.hasError\n ? \"var(--dangerous-500)\"\n : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-700)\"\n : state.isFocused\n ? \"0.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do\n // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do\n // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda\n // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de\n // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel\n // fica por dentro do campo, sem o anel \"extra\" por fora que o box-shadow duplo criava.\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n // Raio fixo: o anel de foco segue o borderRadius do control — trocar pra 2px no foco\n // deixava o anel quadrado sobre um campo arredondado.\n borderRadius: \"0.5rem\",\n placeholder: \" \",\n height: state.selectProps.smallField ? \"30px\" : \"46px\",\n backgroundColor: state.isDisabled\n ? \"var(--light-100)\"\n : \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 8px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color = state.isSelected\n ? \"var(--accent-label)\"\n : state?.isDisabled\n ? \"var(--label)\"\n : \"var(--paragraph)\";\n\n // /* if(state.isSelected) {\n // color = 'rgba(0,0,0,0.03)';\n // } */\n\n return {\n ...provided,\n cursor: state.isDisabled ? \"auto\" : \"pointer\",\n pointerEvents: state.isDisabled ? \"none\" : \"\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n padding: \"12px\",\n backgroundColor: state.isSelected ? \"var(--blue-500)\" : \"var(--surface)\",\n color,\n fontWeight: state.isSelected ? 700 : 400,\n \"&:hover\": {\n backgroundColor: state.isSelected\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active i\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" i\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import React, { useRef, JSX } from \"react\";\nimport {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport { customStyles } from \"./Select.styles\";\nimport { useEffect, useState } from \"react\";\nimport { useFieldErrorsStore } from \"./../../stores/field-errors\";\n\nimport clsx from \"clsx\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\nexport type OptionType = {\n value: number | string;\n label: string;\n disabled?: boolean;\n};\n\ntype SelectFieldProps = {\n name: string;\n label?: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n onChange?: any;\n required?: boolean;\n isClearable?: boolean;\n filterOptions?: (value) => any;\n debounce?: number;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n optionsList?: any;\n disabled?: boolean;\n onChangeValue?: (value) => void;\n resize?: boolean;\n optionStyle?: (option: any, isSelected?: boolean) => void;\n valueStyle?: (option) => void;\n icon?: JSX.Element;\n emptyMessage?: string;\n small?: boolean;\n initialMessage?: string;\n clearOnBlur?: boolean;\n onMenuClose?: () => void;\n clearOnMenuClose?: boolean;\n menuIsEverOpen?: boolean;\n showArrow?: boolean;\n};\n\nexport const SelectField = ({\n name,\n error,\n label,\n defaultValue,\n control,\n placeholder,\n isSearchable = false,\n isClearable = false,\n onChange,\n required,\n debounce = 0,\n filterOptions,\n optionsList,\n disabled,\n onChangeValue,\n resize = true,\n optionStyle,\n valueStyle,\n icon,\n emptyMessage,\n small = false,\n initialMessage,\n menuIsEverOpen = false,\n clearOnBlur = true,\n onMenuClose,\n clearOnMenuClose,\n showArrow = true,\n}: SelectFieldProps) => {\n const { Option, DropdownIndicator, ClearIndicator, SingleValue } = components;\n const selectRef = useRef(null);\n const [inputValue, setInputValue] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [options, setOptions] = useState(() => optionsList || []);\n const [cachedOptions, setCachedOptions] = useState([]);\n const [availableHeight, setAvailableHeight] = useState(300);\n const [isFocused, setIsFocused] = useState(false);\n useEffect(() => {\n const updateAvailableHeight = () => {\n if (selectRef?.current?.getBoundingClientRect) {\n const rect = selectRef?.current?.getBoundingClientRect();\n const bottomSpace = window.innerHeight - rect.bottom;\n const margin = bottomSpace - 24;\n setAvailableHeight(margin < 250 ? 276 : margin);\n }\n };\n updateAvailableHeight();\n window.addEventListener(\"resize\", updateAvailableHeight);\n return () => {\n window.removeEventListener(\"resize\", updateAvailableHeight);\n };\n }, [selectRef]);\n\n const loadOptions = async (inputValue: string) => {\n setLoading(true);\n if (isSearchable && filterOptions) {\n if ((debounce && inputValue.length >= debounce) || !debounce) {\n const result = await filterOptions(inputValue);\n setCachedOptions(result || []);\n setLoading(false);\n return result;\n }\n } else {\n setOptions(optionsList);\n }\n setLoading(false);\n return cachedOptions;\n };\n\n const fieldValidation = useFieldErrorsStore((state) => state.field);\n const fieldValidationMessages = [\n fieldValidation[name]?.message,\n error?.message,\n ];\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const smallField = {\n smallField: small,\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const menuHeight = resize\n ? {\n menuHeight: availableHeight,\n }\n : null;\n const hasIcon = {\n hasIcon: icon,\n };\n\n useEffect(() => {\n setOptions(() => optionsList);\n }, [optionsList]);\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const CustomSingleValue = (props) => {\n return (\n <SingleValue {...props}>\n {valueStyle ? valueStyle(props?.data) : <>{props.data.label} </>}\n </SingleValue>\n );\n };\n\n const IconOption = (props) => {\n return (\n <Option {...props}>\n {optionStyle ? (\n optionStyle(props?.data, props.isSelected)\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n )}\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <SpinnerIcon className=\"animate-spin\" width={16} height={16} />\n Buscando...\n </div>\n );\n } else if (debounce && inputValue.length < debounce) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n }\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (props.selectProps.inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && props.selectProps.inputValue.length < debounce)\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n } else if (\n initialMessage &&\n !debounce &&\n isSearchable &&\n props.selectProps.inputValue.length === 0\n ) {\n return <div className=\"p-2 text-neutral-300\">{initialMessage}</div>;\n } else if (\n ((props.selectProps.inputValue.length > 0 && isSearchable) ||\n !isSearchable ||\n (isSearchable && props?.options?.length == 0)) &&\n props?.options?.length == 0\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n {emptyMessage || \"Sem opções disponíveis\"}\n </div>\n );\n }\n };\n\n const DropdownIndicatorCustom = (props: any) => {\n // Troca de glifo em vez de `rotate(180deg)` no container: a tinta do `uil-angle-down`\n // nao fica no centro exato da caixa do indicador, entao girar 180deg jogava a seta 2px\n // pra cima — aberta e fechada nao paravam na mesma altura. Mesmo padrao do\n // FilterSelect/FilterCalendar.\n return (\n <DropdownIndicator {...props}>\n <i\n className={clsx(\n \"uil text-[20px]\",\n props.selectProps?.menuIsOpen\n ? \"uil-angle-up\"\n : \"uil-angle-down\",\n small ? \"h-[20px] -mt-[7px]\" : \"h-full\",\n )}\n />\n </DropdownIndicator>\n );\n };\n\n const ClearIndicatorCustom = (props: any) => {\n return (\n <ClearIndicator {...props}>\n <i className=\"uil uil-times text-[16px]\"></i>\n </ClearIndicator>\n );\n };\n const onChange = (value) => {\n field.onChange(value);\n if (onChangeValue) {\n onChangeValue(value);\n }\n };\n const handleKeyDown = async (event) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n\n const fetchedOptions = await loadOptions(event?.target?.value);\n\n if (fetchedOptions?.length > 0) {\n onChange(fetchedOptions[0]);\n }\n }\n };\n return (\n <div className=\"relative w-full\" id=\"select\" ref={selectRef}>\n {icon && (\n <div\n className={clsx(\n \"z-[70] absolute bg-neutral-100 top-[1px] left-[1px] rounded-l-lg flex justify-center items-center h-[44px] w-[38px] text-[22px] text-label\",\n {\n \"text-blue-500\": isFocused && hasIcon.hasIcon,\n \"text-red-500\": hasError.hasError && hasIcon.hasIcon,\n },\n )}\n >\n {icon}\n </div>\n )}\n <AsyncSelect\n onKeyDown={handleKeyDown}\n {...field}\n {...hasError}\n {...hasLabel}\n {...menuHeight}\n {...hasIcon}\n {...smallField}\n isDisabled={disabled}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n }}\n onMenuClose={() => {\n const shouldClear =\n typeof clearOnMenuClose !== \"undefined\"\n ? clearOnMenuClose\n : clearOnBlur;\n if (shouldClear) setInputValue(\"\");\n if (onMenuClose) onMenuClose();\n }}\n inputValue={inputValue}\n onInputChange={(val, meta) => {\n if (meta.action === \"input-change\") {\n setInputValue(val);\n } else if (\n meta.action === \"menu-close\" ||\n meta.action === \"input-blur\"\n ) {\n const shouldClear =\n typeof clearOnMenuClose !== \"undefined\"\n ? clearOnMenuClose\n : clearOnBlur;\n if (shouldClear) setInputValue(\"\");\n }\n }}\n menuIsOpen={menuIsEverOpen ? true : undefined}\n loadingMessage={() => <div>Carregando</div>}\n isLoading={loading}\n defaultOptions={\n menuIsEverOpen && cachedOptions.length > 0\n ? cachedOptions\n : debounce > 0\n ? false\n : optionsList\n ? options\n : true\n }\n loadOptions={loadOptions}\n name={field.name}\n isClearable={isClearable}\n styles={customStyles as any}\n placeholder={placeholder || \" \"}\n isSearchable={isSearchable}\n options={options}\n tabSelectsValue={true}\n components={{\n SingleValue: CustomSingleValue,\n ValueContainer,\n Option: IconOption,\n LoadingIndicator: () => <></>,\n LoadingMessage,\n NoOptionsMessage,\n DropdownIndicator: showArrow ? DropdownIndicatorCustom : null,\n ClearIndicator: ClearIndicatorCustom,\n }}\n closeMenuOnSelect\n isOptionDisabled={(option: any) => !!option?.disabled}\n hideSelectedOptions={false}\n onChange={onChange}\n />\n <span\n className={clsx(\n \"text-label text-sm left-2.5 cursor-pointer pointer-events-none absolute transition-all duration-200\",\n {\n \"scale-75 -translate-y-[10px]\": field.value || inputValue,\n \"ml-[35px]\": hasIcon.hasIcon,\n \"ml-[2px]\": !hasIcon.hasIcon,\n \"top-2.5\": !(field.value || inputValue),\n \"top-0\": field.value || inputValue,\n },\n )}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-700\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n style={{ color: \"var(--dangerous-700)\" }}\n className=\"text-xs ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n","export const customStyles = {\n indicatorSeparator: (provided: any, props: any) => {\n return {\n ...provided,\n backgroundColor:\n props.hasValue && provided?.selectProps?.isSearchable\n ? \"var(--input)\"\n : \"transparent\",\n padding: \"0px\",\n };\n },\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n transform: state?.selectProps?.menuIsOpen ? \"rotate(180deg)\" : \"rotate(0)\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0px\",\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n background: \"var(--surface)\",\n zIndex: 60,\n }),\n menuList: (provided: any) => ({\n ...provided,\n padding: \"0px 8px\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n paddingTop: state.selectProps.hasLabel ? \"10px\" : \"0\",\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n placeholder: (provided: any, state: any) => ({\n ...provided,\n paddingLeft: state.selectProps.hasIcon ? \"34px\" : \"0px\",\n color: state.isDisabled\n ? \"var(--input-placeholder-disabled)\"\n : \"var(--label)\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-700)\"\n : state.isFocused\n ? \"0.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do\n // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do\n // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda\n // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de\n // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel\n // fica por dentro do campo, sem o anel \"extra\" por fora que o box-shadow duplo criava.\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n // Raio fixo: o anel de foco segue o borderRadius do control — trocar pra 2px no foco\n // deixava o anel quadrado sobre um campo arredondado.\n borderRadius: \"0.5rem\",\n placeholder: \" \",\n height: \"46px\",\n backgroundColor: state.isDisabled\n ? \"var(--input-bg-disabled)\"\n : \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--light-100)\",\n padding: \"0px 8px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-700)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color = state.isSelected\n ? \"var(--accent-label)\"\n : state?.isDisabled\n ? \"var(--label)\"\n : \"var(--paragraph)\";\n\n /* if(state.isSelected) {\n color = 'rgba(0,0,0,0.03)';\n } */\n\n return {\n ...provided,\n cursor: state.isDisabled ? \"auto\" : \"pointer\",\n pointerEvents: state.isDisabled ? \"none\" : \"\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n padding: \"10px 12px\",\n backgroundColor: state.isSelected ? \"var(--blue-700)\" : \"var(--surface)\",\n color,\n fontWeight: state.isSelected ? 700 : 400,\n \"&:hover\": {\n backgroundColor: state.isSelected\n ? \"var(--blue-700)\"\n : \"var(--light-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-700)\",\n color: \"var(--accent-label) !important\",\n fontWeight: 700,\n },\n \"&:active i\": {\n color: \"var(--accent-label) !important\",\n fontWeight: 700,\n },\n \" i\": {\n color: \"var(--accent-label) !important\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport { FieldWrapperPassThroughProps } from \"./../FieldWrapper\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport { customStyles } from \"./SelectFieldBip.styles\";\nimport {\n useEffect,\n useMemo,\n useRef,\n useState,\n JSX,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport { useFieldErrorsStore } from \"./../../stores/field-errors\";\nimport clsx from \"clsx\";\nimport _debounce from \"../../utils/debounce\";\nimport { SpinnerIcon } from \"../..\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n disabled?: boolean;\n};\n\nexport interface SelectFieldBipRef {\n focus: () => void;\n clearValue: () => void;\n getValue: () => any;\n selectRef: any;\n}\n\ntype SelectFieldProps = FieldWrapperPassThroughProps & {\n name: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n onChange?: any;\n required?: boolean;\n filterOptions?: (value) => any;\n debounce?: number;\n error?: Merge<FieldError, FieldErrorsImpl<unknown>>;\n disabled?: boolean;\n onChangeValue?: (value) => void;\n optionStyle?: (option) => void;\n valueStyle?: (option) => void;\n icon?: JSX.Element;\n onErrorBip?: (value) => void;\n clearAfterSelect?: boolean;\n menuIsOpen?: boolean;\n messages?: {\n searching?: string;\n debounce?: string;\n emptyMessage?: string;\n loading?: string;\n };\n};\n\nexport const SelectFieldBip = forwardRef<SelectFieldBipRef, SelectFieldProps>(\n (\n {\n name,\n label,\n error,\n defaultValue,\n control,\n placeholder,\n isSearchable = false,\n required,\n debounce,\n filterOptions,\n disabled,\n onChangeValue,\n optionStyle,\n valueStyle,\n icon,\n onErrorBip,\n clearAfterSelect = true,\n menuIsOpen,\n messages = {\n searching: \"Buscando...\",\n debounce: `Digite pelo menos {debounce} caracteres`,\n emptyMessage: \"Nenhuma opção encontrada\",\n loading: \"Carregando...\",\n },\n },\n ref,\n ) => {\n const { Option, SingleValue } = components;\n const selectRef = useRef(null);\n const [inputValue, setInputValue] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [cachedOptions, setCachedOptions] = useState([]);\n\n useImperativeHandle(ref, () => ({\n focus: () => selectRef.current?.focus(),\n clearValue: () => selectRef.current?.clearValue(),\n getValue: () => selectRef.current?.getValue(),\n selectRef: selectRef.current,\n }));\n const fetchOptions = async (value: string) => {\n if (isSearchable && filterOptions) {\n if (!debounce || (debounce && value.length >= debounce)) {\n setLoading(true);\n const result = await filterOptions(value);\n setCachedOptions(result);\n setLoading(false);\n return result;\n }\n }\n return [];\n };\n\n const fieldValidation = useFieldErrorsStore((state) => state.field);\n const fieldValidationMessages = [\n fieldValidation[name]?.message,\n error?.message,\n ];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const hasIcon = {\n hasIcon: icon,\n };\n\n const iconStyle = `z-[70] absolute bg-neutral-100 h-[44px] top-[1px] left-[1px] rounded-l-lg flex justify-center items-center w-[38px] text-[22px] ${\n hasError.hasError ? \"text-dangerous-500\" : \"text-label\"\n }`;\n\n const debouncedFetchOptions = useMemo(() => {\n return _debounce((value: string, callback: (opts) => void) => {\n fetchOptions(value).then(callback);\n }, 300);\n }, [filterOptions]);\n\n useEffect(() => {\n return () => {\n debouncedFetchOptions.cancel();\n };\n }, [debouncedFetchOptions]);\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const CustomSingleValue = (props) => {\n return (\n <SingleValue {...props}>\n {valueStyle ? (\n valueStyle(props?.data)\n ) : (\n <>{props.data.label} </>\n )}\n </SingleValue>\n );\n };\n\n const IconOption = (props) => {\n return (\n <Option {...props}>\n {optionStyle ? (\n optionStyle(props?.data)\n ) : (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n )}\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <SpinnerIcon\n width={16}\n height={16}\n className=\"animate-spin\"\n />\n {messages.searching}\n </div>\n );\n } else if (debounce && inputValue.length < debounce) {\n return (\n <div\n style={{ color: \"var(--label)\" }}\n className=\"p-2 text-[14px]\"\n >\n {messages.debounce.replace(\"{debounce}\", String(debounce))}\n </div>\n );\n }\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && inputValue.length < debounce)\n ) {\n return (\n <div\n className=\"p-2 text-[14px]\"\n style={{ color: \"var(--label)\" }}\n >\n {messages.debounce.replace(\"{debounce}\", String(debounce))}\n </div>\n );\n } else if (inputValue.length > 0 && props?.options?.length == 0) {\n return (\n <div\n className=\"p-2 text-[14px]\"\n style={{ color: \"var(--label)\" }}\n >\n {messages.emptyMessage}\n </div>\n );\n }\n };\n\n const DropdownIndicatorCustom = (props: any) => {\n return null;\n };\n\n const handleKeyDown = async (event) => {\n if (event.key === \"Enter\") {\n // Enter COM modificador é atalho da aplicação (Ctrl+Enter avança pro pagamento no\n // PDV), não leitura de código de barras — leitor sempre manda Enter puro. Sem esta\n // guarda o campo tratava o atalho como bip: buscava, não achava nada e disparava\n // onErrorBip (\"Produto não encontrado\"), além de engolir o atalho no\n // preventDefault. O foco fica no campo de busca por padrão, então isso acontecia\n // em todo Ctrl+Enter. Tarefa 96048.\n if (event.ctrlKey || event.metaKey || event.altKey) return;\n\n event.preventDefault();\n debouncedFetchOptions.cancel();\n\n // Enter no campo vazio não é bip: nada foi digitado nem lido, então não há erro de\n // \"não encontrado\" a reportar.\n if (!event.target.value) return;\n\n const fetchedOptions = await fetchOptions(event.target.value);\n\n if (fetchedOptions?.length > 0) {\n onChange(fetchedOptions[0]);\n\n setTimeout(() => {\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.clearValue();\n selectRef?.current?.focus();\n selectRef?.current?.onMenuClose();\n field.onChange(null);\n }\n }, 10);\n } else {\n onErrorBip(event?.target?.value);\n selectRef.current.inputRef.select();\n selectRef.current.onMenuClose();\n }\n }\n };\n\n const handleInputChange = (value, actionMeta) => {\n if (actionMeta.action === \"input-change\") {\n if (clearAfterSelect) setInputValue(value);\n }\n return value;\n };\n\n const onChange = async (value, action?) => {\n if (onChangeValue) onChangeValue(value);\n\n if (action?.action === \"select-option\") {\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.clearValue();\n selectRef?.current?.onMenuClose();\n selectRef?.current?.focus();\n field.onChange(null);\n } else {\n field.onChange(value);\n if (clearAfterSelect) {\n setInputValue(\"\");\n selectRef?.current?.onMenuClose();\n }\n }\n }\n\n if (action === \"clear-value\") {\n if (clearAfterSelect) {\n setInputValue(\"\");\n setCachedOptions([]);\n selectRef?.current?.clearValue();\n field.onChange(null);\n }\n }\n };\n\n const loadOptions = (value: string, callback: (opts) => void) => {\n debouncedFetchOptions(value, callback);\n };\n\n return (\n <div className=\"relative\" id=\"multiselect\">\n {icon && <div className={iconStyle}>{icon}</div>}\n <AsyncSelect\n onKeyDown={handleKeyDown}\n {...field}\n {...hasError}\n {...hasLabel}\n {...hasIcon}\n ref={selectRef}\n isDisabled={disabled}\n onBlur={() => {\n if (clearAfterSelect) {\n handleInputChange(\"\", {\n action: \"input-change\",\n });\n }\n }}\n loadingMessage={() => <div>{messages.loading}</div>}\n isLoading={loading}\n loadOptions={loadOptions}\n defaultOptions={false}\n name={field.name}\n isClearable={false}\n styles={customStyles}\n placeholder={placeholder || \" \"}\n isSearchable={isSearchable}\n tabSelectsValue={true}\n components={{\n SingleValue: CustomSingleValue,\n ValueContainer,\n Option: IconOption,\n LoadingIndicator: () => <></>,\n LoadingMessage,\n NoOptionsMessage,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n closeMenuOnSelect={false}\n blurInputOnSelect\n hideSelectedOptions={false}\n menuIsOpen={menuIsOpen}\n isOptionDisabled={(option: any) => !!option?.disabled}\n onChange={onChange}\n inputValue={inputValue}\n onInputChange={handleInputChange}\n />\n {inputValue !== \"\" && (\n <i\n onClick={() => onChange(null, \"clear-value\")}\n className=\"uil uil-times text-[18px] absolute right-2 top-[11px] cursor-pointer text-label\"\n ></i>\n )}\n <span\n className={clsx(\n \"text-label text-sm left-2.5 cursor-pointer pointer-events-none\",\n {\n [\" scale-75 -translate-y-[10px] \"]: field.value,\n [\"text-dangerous-700\"]: hasError.hasError,\n },\n )}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-700\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-700 text-xs mt-1 ml-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n },\n);\n\nSelectFieldBip.displayName = \"SelectFieldBip\";\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n","import React from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\ninterface Props {\n disabled?: boolean;\n control: Control<any>;\n name: string;\n label?: string;\n defaultChecked?: boolean;\n value?: string | number;\n onChange?: (value: string | number) => void;\n}\n\nexport const Radio = ({\n disabled,\n control,\n name,\n label,\n defaultChecked,\n value,\n onChange,\n}: Props) => {\n return (\n <Controller\n name={name as never}\n control={control}\n render={({ field }) => {\n return (\n <div className=\"flex items-center justify-center gap-2\">\n <label className=\"custom-radio flex items-center\">\n <input\n name={name}\n id={`${name}-${value}`}\n type=\"radio\"\n className=\"\"\n onClick={(e: any) => {\n field.onChange(e.target.value);\n }}\n value={value}\n onChange={(e) => field.onChange(e.target.value)}\n defaultChecked={defaultChecked}\n disabled={disabled}\n />\n <span></span>\n </label>\n {label && (\n <label htmlFor={`${name}-${value}`} className=\"text-p-md cursor-pointer -pt-1\">\n {label}\n </label>\n )}\n </div>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport { Switch } from \"@headlessui/react\";\nimport { Control, Controller } from \"react-hook-form\";\n\nconst { Group, Label } = Switch;\n\ntype ToggleProps = {\n name: string;\n label?: string;\n subLabel?: string;\n control: Control<any>;\n disabled?: boolean;\n};\n\nfunction classNames(...classes: any) {\n return classes.filter(Boolean).join(\" \");\n}\n\nexport const Toggle = ({\n name,\n label,\n subLabel,\n control,\n disabled,\n}: ToggleProps) => {\n return (\n <Group as=\"div\" className=\"flex items-center\">\n <Controller\n control={control}\n name={name as never}\n render={({ field }) => (\n <Switch\n disabled={disabled}\n {...field}\n className=\"h-[18px] w-[33px] focus:ring-2 focus:ring-blue-500 focus:ring-offset-1 rounded-full\"\n checked={Boolean(field.value)}\n onChange={(value: boolean) => {\n field.onChange(value);\n }}\n >\n {({ checked }) => (\n <div\n className={classNames(\n checked ? \"bg-blue-500\" : \"bg-neutral-200\",\n \"relative inline-flex h-[18px] p-[2px] w-[33px] flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out \"\n )}\n >\n <span\n className={classNames(\n \"pointer-events-none relative inline-block -top-[2px] right-[2px] h-[14px] w-[14px] transform rounded-full shadow ring-0 transition duration-200 ease-in-out\",\n checked ? \"translate-x-[15px]\" : \"translate-x-0\",\n disabled ? \"bg-neutral-300\" : \"bg-button-label\"\n )}\n >\n <span\n className={classNames(\n checked\n ? \"opacity-0 ease-out duration-100\"\n : \"opacity-100 ease-in duration-200\",\n \"absolute inset-0 flex h-full w-full items-center justify-center transition-opacity\"\n )}\n aria-hidden=\"true\"\n ></span>\n <span\n className={classNames(\n checked\n ? \"opacity-100 ease-in duration-200\"\n : \"opacity-0 ease-out duration-100\",\n \"absolute inset-0 flex h-full w-full items-center justify-center transition-opacity\"\n )}\n aria-hidden=\"true\"\n ></span>\n </span>\n </div>\n )}\n </Switch>\n )}\n />\n\n {label && (\n <Label as=\"span\" className=\"flex flex-col gap-1 ml-2 cursor-pointer\">\n <span className=\"text-sm text-paragraph\">{label}</span>\n {subLabel && <span className=\"text-sm\">{subLabel}</span>}\n </Label>\n )}\n </Group>\n );\n};\n","import React from \"react\";\nimport { Combobox } from \"@headlessui/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Table } from \"@tanstack/react-table\";\nimport clsx from \"clsx\";\n\ninterface Props<TData> {\n pageSizeOptions?: number[];\n table: Table<TData>;\n}\n\nexport function PaginationSelect<TData>({\n pageSizeOptions,\n table,\n}: Props<TData>) {\n const pageCount = table?.getPageCount();\n const pagesArray = pageCount ? [...Array(pageCount)] : [];\n const options = pagesArray?.map((item, index) => ({\n id: index,\n name: index,\n }));\n const [pageSizeSelected, setPageSizeSelected] = useState({\n id: JSON.parse(sessionStorage.getItem(\"pageSize\") as string)?.id || 20,\n name: JSON.parse(sessionStorage.getItem(\"pageSize\") as string)?.name || 20,\n });\n\n const [pageSelected, setPageSelected] = useState({\n id: table?.getState()?.pagination?.pageIndex || 0,\n name: table?.getState()?.pagination?.pageIndex || 0,\n });\n const [pagesOptions, setPagesOptions] = useState(() => options);\n\n const [pageSizesOptions, setPagesSizesOptions] = useState(\n pageSizeOptions?.map((item) => ({\n id: item,\n name: item,\n }))\n );\n const [query, setQuery] = useState(\"\");\n\n const filter = () => {\n let copy = [...options];\n setPagesOptions(\n copy.filter((item) => {\n return (item.name + 1).toString().startsWith(query);\n })\n );\n };\n\n const saveSessionStorage = (key: any, values: any) => {\n sessionStorage.setItem(key, JSON.stringify(values));\n };\n\n useEffect(() => {\n filter();\n }, [query]);\n\n useEffect(() => {\n saveSessionStorage(\"pageSize\", pageSizeSelected);\n table.setPageSize(pageSizeSelected?.id);\n table.setPageIndex(0);\n setPageSelected({\n id: 0,\n name: 0,\n });\n }, [pageSizeSelected]);\n\n useEffect(() => {\n setPagesOptions(\n pageCount\n ? [...Array(pageCount)].map((item, index) => ({\n id: index,\n name: index,\n }))\n : []\n );\n }, [table?.getPageCount()]);\n\n useEffect(() => {\n if (table?.getState()?.pagination?.pageIndex >= 0) {\n setPageSelected({\n id: table?.getState()?.pagination?.pageIndex,\n name: table?.getState()?.pagination?.pageIndex,\n });\n }\n }, [table?.getState().pagination]);\n\n return (\n <div className=\"hidden md:flex items-center gap-2\">\n <div className=\"flex items-center gap-2 text-paragraph\">\n <span>Exibir </span>\n <Combobox\n value={pageSizeSelected}\n onChange={(value: any) => {\n setPageSizeSelected(value);\n }}\n >\n {({ open }) => (\n <div className=\"relative\">\n <Combobox.Button className=\"flex items-center justify-between w-[70px] h-[42px] text-paragraph outline-none text-p-sm cursor-pointer peer relative shadow-input rounded-lg border p-2 disabled:bg-neutral-100 border-neutral-300\">\n {pageSizeSelected?.name}\n {open ? (\n <i className=\"uil uil-angle-up text-base top-[13px] pl-3 cursor-pointer text-label\"></i>\n ) : (\n <i className=\"uil uil-angle-down text-base top-[13px] pl-3 cursor-pointer text-label\"></i>\n )}\n </Combobox.Button>\n <Combobox.Options className=\"w-full outline-none max-h-[200px] overflow-auto border-[0.5px] mt-1 color-neutral-300 flex flex-col gap-y-2 p-1 absolute right-0 bottom-12 z-[999] rounded-lg bg-surface\">\n {pageSizesOptions?.map((opt) => {\n const selected = opt?.id === pageSizeSelected?.id;\n return (\n <Combobox.Option\n key={pageSizeSelected?.id + \"size\"}\n value={opt}\n className={clsx(\n \"p-2 rounded-lg items-center justify-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n }\n )}\n >\n {opt.name}\n </Combobox.Option>\n );\n })}\n </Combobox.Options>\n </div>\n )}\n </Combobox>\n <span> resultados</span>\n </div>\n <div className=\"bg-neutral-300 h-[20px] w-[1px]\"></div>\n <div className=\"flex items-center gap-2 text-paragraph\">\n <span>Ir para a página </span>\n <Combobox\n value={pageSelected}\n onChange={(value) => {\n if (value && value?.id) {\n setPageSelected({\n id: value?.id,\n name: value?.id,\n });\n saveSessionStorage(\"pageIndex\", value?.id);\n table.setPageIndex(value?.id);\n setQuery(\"\");\n }\n }}\n >\n {({ open }) => (\n <div className=\"relative\">\n <Combobox.Button className=\"relative\">\n <Combobox.Input\n as=\"input\"\n onKeyDown={(e: any) => {\n const val = Number(e.target?.value);\n\n if (e.key == \"Enter\" && val && val <= pageCount) {\n setPageSelected({\n id: val - 1,\n name: val - 1,\n });\n saveSessionStorage(\"pageIndex\", val);\n table.setPageIndex(val - 1);\n setQuery(\"\");\n }\n }}\n displayValue={(item: any) => {\n return pageSelected ? pageSelected?.id + 1 : item?.id + 1;\n }}\n onChange={(e) => {\n if (e.target.value) {\n setQuery(e.target.value);\n }\n }}\n className=\"h-[42px] w-[70px] outline-none text-p-md text-paragraph cursor-pointer border-neutral-300 peer shadow-input rounded-lg border block disabled:bg-neutral-100 p-2\"\n />\n {open ? (\n <i className=\"uil uil-angle-up text-base absolute top-[10px] right-2 cursor-pointer text-label\"></i>\n ) : (\n <i className=\"uil uil-angle-down text-base absolute top-[10px] right-2 cursor-pointer text-label\"></i>\n )}\n </Combobox.Button>\n <Combobox.Options className=\"w-full outline-none max-h-[200px] overflow-auto border-[0.5px] mt-1 color-neutral-300 flex flex-col gap-y-2 p-1 absolute right-0 bottom-12 z-[999] rounded-lg bg-surface\">\n {pagesOptions.map((opt) => {\n const selected = opt?.id === pageSelected?.id;\n\n return (\n <Combobox.Option\n key={pageSelected?.id + \"page\"}\n value={opt}\n // onClick={() => {\n // setPageSelected({\n // id: opt.id - 1,\n // name: opt.id - 1,\n // });\n // saveSessionStorage(\n // 'pageIndex',\n // opt?.id\n // );\n // table.setPageIndex(opt?.id);\n // }}\n className={clsx(\n \"p-2 rounded-lg items-center justify-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n }\n )}\n >\n {opt?.name + 1}\n </Combobox.Option>\n );\n })}\n </Combobox.Options>\n </div>\n )}\n </Combobox>\n </div>\n </div>\n );\n}\n","import { clsx } from \"clsx\";\nimport * as React from \"react\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={clsx(\n \"table-scroll block text-left border-separate border-spacing-0 w-full\",\n className\n )}\n onScroll={props.onScroll}\n {...props}\n />\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"w-full sticky top-0 z-[90]\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody ref={ref} className={clsx(className)} {...props} />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n \" flex flex-col md:flex-row gap-2 md:gap-0 justify-between items-center py-4 px-6 bg-surface w-full h-full border border-neutral-200 rounded-t-lg\",\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr ref={ref} className={clsx(className)} {...props} />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }: any, ref) => (\n <th\n ref={ref}\n className={clsx(\n {\n \"hover:bg-neutral-100\": props.sortable,\n },\n \"text-p-md z-[50] bg-surface font-normal text-neutral-700 p-4 text-left border-t border-b border-neutral-200 first:border-l last:border-r first:rounded-tl-lg first:rounded-bl-lg last:rounded-tr-lg last:rounded-br-lg\",\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"align-middle h-[80px] border-b border-neutral-200 whitespace-nowrap py-4 px-5\",\n className\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={clsx(\"text-default mt-4 text-sm\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import React from \"react\";\nimport type { Table } from \"@tanstack/react-table\";\nimport { TableFooter } from \"./TableComponents\";\nimport { Fragment, JSX, MutableRefObject } from \"react\";\nimport { PaginationSelect } from \"./PaginationSelects\";\nimport { Button } from \"../Button\";\n\ninterface DataTablePaginationProps<TData> {\n table: Table<TData>;\n footer?: JSX.Element;\n totalData?: number;\n selectAllOption?: boolean;\n onSelectAll?: (value: any) => void;\n onRemoveAll?: (value: any) => void;\n rowsSelected?: number;\n tableRef?: MutableRefObject<HTMLDivElement>;\n paginationScroll?: number;\n pageSizeOptions?: number[];\n}\n\nexport function DataTablePagination<TData>({\n table,\n footer = <div></div>,\n totalData,\n selectAllOption,\n onSelectAll,\n rowsSelected,\n onRemoveAll,\n tableRef,\n paginationScroll,\n pageSizeOptions = [],\n}: DataTablePaginationProps<TData>) {\n const selectedPage = table?.getState()?.pagination.pageIndex;\n const results = totalData;\n const pageCount = table?.getPageCount();\n const limitPagePositive = table?.getState()?.pagination.pageIndex + 2;\n const limitPageNegative = table?.getState()?.pagination.pageIndex - 2;\n const pagesArray = pageCount ? [...Array(pageCount)] : [];\n const pageRowsCount = table?.getRowModel()?.rows?.length || 0;\n\n return (\n <div className=\"w-full flex flex-col sticky z-[90] bottom-0\">\n <div\n className=\"bg-none overflow-x-hidden md:overflow-x-auto overflow-y-hidden table-scroll rounded-lg relative top-[8px] -space-y-1 z-[302] h-[12px]\"\n onScroll={(evt) => {\n tableRef?.current.scrollTo({\n left: evt.currentTarget.scrollLeft,\n });\n }}\n >\n <div\n style={{\n width: paginationScroll ? paginationScroll - 2 : 0,\n }}\n >\n &nbsp;\n </div>\n </div>\n\n <TableFooter>\n {pageSizeOptions?.length > 0 && (\n <PaginationSelect table={table} pageSizeOptions={pageSizeOptions} />\n )}\n <div className=\"flex flex-col md:flex-row items-center justify-center md:justify-normal gap-2 md:gap-4\">\n {footer}\n {selectAllOption && (\n <div>\n {rowsSelected !== totalData ? (\n <div className=\"md:border-l border-neutral-300 pl-4\">\n <Button size=\"xxs\" onClick={onSelectAll} variant=\"secondary\">\n Selecionar todos os {totalData}\n </Button>\n </div>\n ) : (\n <div className=\"md:border-l border-neutral-300 pl-4\">\n <Button size=\"xxs\" onClick={onRemoveAll} variant=\"secondary\">\n Desmarcar todos\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n <div className=\"flex flex-col md:flex-row items-center md:justify-end justify-center gap-2 flex-1\">\n <span className=\"text-p-md text-paragraph mr-1\">\n Mostrando {pageRowsCount} de {results} resultados\n </span>\n\n <div className=\"flex items-center gap-2\">\n <Button\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n variant=\"icon\"\n icon={<i className=\"uil uil-angle-left text-base\"></i>}\n size=\"xs\"\n className=\"justify-center\"\n />\n\n {limitPageNegative >= 1 && (\n <div className=\"flex gap-2\">\n <Button\n onClick={() => table.setPageIndex(0)}\n variant=\"icon\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: \"var(--paragraph)\",\n }}\n >\n {1}\n </div>\n }\n size=\"xs\"\n className=\"justify-center\"\n />\n {limitPageNegative !== 1 && (\n <Button\n disabled\n variant=\"icon\"\n icon={<>...</>}\n size=\"xs\"\n className=\"justify-center\"\n />\n )}\n </div>\n )}\n\n {pagesArray.map((elem, index) => {\n const checkPageIndexLimit =\n index <= limitPagePositive && index >= limitPageNegative;\n const isSelectedPage = index === selectedPage;\n\n return (\n <Fragment key={index + \"pagination\"}>\n {checkPageIndexLimit && (\n <Button\n onClick={() => table.setPageIndex(index)}\n className=\"font-normal text-xs justify-center\"\n variant={isSelectedPage ? \"blue\" : \"icon\"}\n size=\"xs\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: isSelectedPage\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\",\n }}\n >\n {(index + 1).toLocaleString(\"pt-BR\")}\n </div>\n }\n ></Button>\n )}\n </Fragment>\n );\n })}\n\n {limitPagePositive + 1 < pageCount && (\n <div className=\"flex gap-2\">\n {limitPagePositive !== pagesArray.length - 2 && (\n <Button\n disabled\n variant=\"icon\"\n icon={<>...</>}\n size=\"xs\"\n className=\"justify-center\"\n />\n )}\n <Button\n onClick={() => table.setPageIndex(pageCount)}\n variant=\"icon\"\n icon={\n <div\n style={{\n fontSize: \"12px\",\n color: \"var(--paragraph)\",\n }}\n >\n {pageCount.toLocaleString(\"pt-BR\")}\n </div>\n }\n size=\"xs\"\n className=\"font-normal justify-center\"\n />\n </div>\n )}\n <Button\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n variant=\"icon\"\n icon={<i className=\"uil uil-angle-right text-base\"></i>}\n size=\"xs\"\n className=\"justify-center\"\n />\n </div>\n </div>\n </TableFooter>\n </div>\n );\n}\n","import type {\n ColumnFiltersState,\n ExpandedState,\n FilterFn,\n PaginationState,\n Row,\n SortingState,\n Table as TableType,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport React, {\n JSX,\n MutableRefObject,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./TableComponents\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport clsx from \"clsx\";\n// import EmptyState from '../Table/Components/Empty/EmptyState';\nimport { rankItem } from \"@tanstack/match-sorter-utils\";\nimport {Input} from \"./../Input\";\n\ntype CustomTData = {\n _destroy?: string;\n};\n\nconst fuzzyFilter: FilterFn<any> = (row, columnId, value, addMeta) => {\n // Rank the item\n const itemRank = rankItem(row.getValue(columnId), value);\n // Store the itemRank info\n addMeta({\n itemRank,\n });\n\n // Return if the item should be filtered in/out\n return itemRank.passed;\n};\n\nexport interface DataTableProps<TData extends CustomTData, TValue> {\n tableContainerRef: MutableRefObject<any>;\n columns: any[];\n data?: any[];\n searchKey?: string;\n tableCTA?: React.ReactNode;\n isLoading?: boolean;\n onScroll?: any;\n CTA?: React.ReactNode;\n hidePagination?: boolean;\n emptyButtonAction?: JSX.Element;\n hideBlankState?: boolean;\n getRowCanExpand?: () => boolean;\n enableRowSelection?: () => boolean;\n renderSubComponent?: (row: any) => any;\n footer?: JSX.Element;\n borderFull?: boolean;\n withShadow?: boolean;\n actionsSelection?: JSX.Element;\n rowSelection?: any;\n setRowSelection?: any;\n hideHeader?: boolean;\n backgroundColor?: string;\n emptyState?: JSX.Element;\n totalData?: number;\n showFilter?: boolean;\n placeholder?: string;\n fetchData?: (options: {\n pageIndex: number;\n pageSize: number;\n order?: string;\n orderDir?: \"ASC\" | \"DESC\";\n }) => Promise<{\n rows: TData[];\n pageCount: number;\n }>;\n openedSubComponent?: boolean;\n setRows?: (e: any) => void;\n selectAllOption?: boolean;\n autoPagination?: boolean;\n tableClass?: string;\n rowClassName?: (row: any) => any;\n listUpdate?: JSX.Element;\n perPage?: number;\n pageSizeOptions?: number[];\n onFinishFetch?: () => void;\n /* filterableItems?: FilterableItems;\n selectionOptions?: ActionItem<TData>[]; */\n}\n\ntype CustomTable<TData> = TableType<TData> & {\n options?: {\n meta?: {\n getRowStyles?: (row: Row<TData>) => React.CSSProperties;\n };\n };\n};\n\nexport default function DataTable<TData extends CustomTData, TValue>({\n columns,\n tableClass = \"\",\n data = [],\n hidePagination,\n emptyButtonAction,\n hideBlankState,\n renderSubComponent = () => {},\n footer,\n borderFull = false,\n withShadow = true,\n actionsSelection,\n backgroundColor,\n emptyState,\n totalData = 0,\n showFilter,\n placeholder,\n fetchData,\n openedSubComponent = false,\n getRowCanExpand,\n enableRowSelection,\n onScroll,\n tableContainerRef,\n setRows,\n selectAllOption,\n autoPagination,\n rowClassName,\n listUpdate,\n setRowSelection,\n rowSelection,\n perPage,\n pageSizeOptions,\n onFinishFetch,\n}: /* filterableItems,\n selectionOptions, */\nDataTableProps<TData, TValue>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [sorting, setSorting] = useState<SortingState>([]);\n const [arrRowSelected, setArrRowSelected] = useState([]);\n const [globalFilter, setGlobalFilter] = useState(\"\");\n const [dataTable, setDataTable] = useState([]);\n const [loading, setLoading] = useState(true);\n const [expanded, setExpanded] = useState<ExpandedState>({});\n const [total, setTotal] = useState(() => totalData);\n const [{ pageIndex, pageSize }, setPagination] = useState<PaginationState>({\n pageIndex: 0,\n pageSize: hidePagination ? 999999 : perPage ? perPage : 20,\n });\n const [paginationScroll, setPaginationScroll] = useState<number>();\n\n const pagination = useMemo(\n () => ({\n pageIndex,\n pageSize,\n }),\n [pageIndex, pageSize]\n );\n\n // Sticky header functionality removed - vh-sticky-table-header has compatibility issues\n // You can implement custom sticky header with CSS: position: sticky; top: 0;\n\n const fetch = () => {\n if (fetchData && !autoPagination) {\n fetchData({\n pageSize,\n pageIndex,\n order: sorting[0]?.id,\n orderDir: sorting[0]?.desc ? \"DESC\" : \"ASC\",\n }).then((response: any) => {\n setDataTable(response.rows);\n if (!response?.rows && totalData > 0) {\n setPagination({\n pageIndex: pageIndex - 1,\n pageSize,\n });\n }\n });\n } else {\n manualPagination(pageIndex, pageSize).then((response) => {\n setDataTable(response.rows);\n if (!response?.rows && totalData > 0) {\n setPagination({\n pageIndex: pageIndex - 1,\n pageSize,\n });\n }\n });\n }\n setTimeout(() => {\n if (onFinishFetch) {\n onFinishFetch();\n }\n }, 1000);\n };\n\n const manualPagination = async (pageIndex: number, pageSize: number) => {\n const promise = new Promise((resolve, reject) => {\n let shortArrays: any = [],\n i,\n len;\n for (i = 0, len = totalData; i < len; i += pageSize) {\n shortArrays.push(data?.slice(i, i + pageSize));\n }\n resolve(shortArrays);\n });\n\n let dataPromise = (await promise) as any;\n return {\n rows: dataPromise[pageIndex],\n pageCount: Number(pageSize),\n };\n };\n\n useEffect(() => {\n if (!tableContainerRef?.current) return;\n\n const resizeObserver = new ResizeObserver(() => {\n setPaginationScroll(tableContainerRef?.current?.scrollWidth);\n });\n resizeObserver.observe(tableContainerRef?.current);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n useEffect(() => {\n if (fetchData || autoPagination) {\n fetch();\n }\n }, [pageIndex, pageSize, sorting]);\n\n useEffect(() => {\n if (totalData !== total) {\n setPagination({\n pageIndex: 0,\n pageSize: pagination.pageSize,\n });\n setTotal(totalData);\n }\n }, [totalData]);\n\n useEffect(() => {\n if (data) {\n setDataTable(\n () => (autoPagination ? data.slice(0, pageSize) : data) as any\n );\n setLoading(false);\n }\n }, [data]);\n\n const pages =\n totalData < pagination.pageSize\n ? 1\n : Math.ceil(totalData / pagination.pageSize);\n\n let table: TableType<any> = useReactTable({\n data: dataTable?.length > 0 ? dataTable : [],\n columns,\n state: {\n sorting,\n columnVisibility,\n rowSelection,\n globalFilter,\n columnFilters,\n pagination,\n expanded,\n },\n pageCount: pages,\n manualPagination: true,\n enableRowSelection: enableRowSelection,\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onGlobalFilterChange: setGlobalFilter,\n globalFilterFn: fuzzyFilter,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n // getSortedRowModel: getSortedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onPaginationChange: setPagination,\n getRowCanExpand,\n onExpandedChange: setExpanded,\n getExpandedRowModel: getExpandedRowModel(),\n enableExpanding: true,\n getRowId: (row) => {\n return row.id;\n },\n meta: {\n getRowStyles: rowClassName,\n },\n }) as CustomTable<any>;\n\n useEffect(() => {\n if (enableRowSelection && rowSelection) {\n setArrRowSelected(Object.keys(rowSelection) as any);\n }\n }, [rowSelection, enableRowSelection]);\n\n const onSelectAll = () => {\n table.toggleAllRowsSelected(true);\n const araysIds = data?.map((item) => item?.id);\n let selected = {};\n araysIds?.forEach((id) => {\n selected = {\n ...selected,\n [id]: true,\n };\n });\n setRowSelection(selected);\n return;\n };\n\n const onRemoveAll = () => {\n table.toggleAllRowsSelected();\n setRowSelection({});\n return;\n };\n\n const hideTableData =\n (dataTable && dataTable?.length == 0 && !loading && !hideBlankState) ||\n !dataTable ||\n table?.getRowModel()?.rows?.length == 0;\n const canShowTableData = !hidePagination && totalData > 0 && table;\n\n function renderBottomTable() {\n if (hideTableData && totalData !== null) {\n if (emptyState) {\n return emptyState;\n } else {\n return <div></div>;\n // <EmptyState emptyButtonAction={emptyButtonAction} />;\n }\n } else if (canShowTableData && totalData !== null) {\n return (\n <DataTablePagination\n table={table}\n footer={footer}\n totalData={totalData}\n tableRef={tableContainerRef}\n selectAllOption={selectAllOption}\n onSelectAll={onSelectAll}\n rowsSelected={Object.keys(rowSelection || {})?.length}\n onRemoveAll={onRemoveAll}\n paginationScroll={paginationScroll}\n pageSizeOptions={pageSizeOptions}\n />\n );\n } else if (totalData == null) {\n return <></>;\n }\n }\n\n useEffect(() => {\n if (rowSelection && Object.keys(rowSelection).length == 0) {\n const elements = document.getElementsByClassName(\"th-shadow\") as any;\n Object.keys(elements).forEach((index) => {\n elements[index]?.classList?.add(\"with-shadow\");\n });\n } else if (rowSelection && Object.keys(rowSelection).length == 1) {\n const elements = document.getElementsByClassName(\"th-shadow\");\n Object.keys(elements).forEach((index: any) => {\n elements[index]?.classList?.remove(\"with-shadow\");\n });\n }\n }, [rowSelection]);\n\n const stylesRow = (row: any) => {\n const tb = table as any;\n return rowClassName ? tb?.options?.meta?.getRowStyles(row) : {};\n };\n\n return (\n <div className=\"w-full h-full flex flex-col\">\n {showFilter && (\n <div className=\"w-full flex justify-between md:items-center flex-col md:flex-row gap-y-2 md:gap-y-0\">\n <div className=\"w-full md:max-w-[350px]\" id=\"filter-table\">\n <Input\n onChange={(e: any) => setGlobalFilter(e.target.value)}\n name=\"filter\"\n value={globalFilter}\n icon={<i className=\"uil uil-search\"></i>}\n placeholder=\"Buscar pedido por ID, Código ou Cliente\"\n clearField\n onClear={() => setGlobalFilter(\"\")}\n />\n </div>\n\n {listUpdate}\n </div>\n )}\n <div\n className={clsx(\"w-full flex mt-4 flex-col justify-between\", {\n \"flex-1\": !hideTableData,\n [tableClass]: tableClass,\n })}\n >\n <Table\n className={clsx(\n \"w-full table_container z-20 overflow-x-scroll md:overflow-x-hidden\"\n )}\n onScroll={onScroll}\n ref={tableContainerRef}\n >\n {rowSelection &&\n Object.keys(rowSelection)?.length > 0 &&\n actionsSelection &&\n dataTable?.length > 0 && (\n <div className=\"h-[76px] flex items-center justify-between px-4 bg-gradient-to-b from-blue-start to-blue-end rounded-lg -mb-[1px]\">\n <div className=\"flex gap-6\">\n <span className=\"text-white text-p-lg\">\n {Object.keys(rowSelection).length} selecionado(s)\n </span>\n {actionsSelection}\n </div>\n <button title=\"set-row\" onClick={() => setRowSelection({})}>\n <i className=\"uil uil-times text-white\"></i>\n </button>\n </div>\n )}\n <div className=\"table w-full mr-[2px]\" ref={tableRef}>\n <TableHeader>\n {table?.getHeaderGroups()?.map((headerGroup, headerIndex) => (\n <TableRow key={headerGroup.id + headerIndex + \"header\"}>\n {headerGroup.headers.map((header, index) => {\n const classes = header.column.columnDef.meta as any;\n return (\n <TableHead\n key={headerIndex + index + \"th\"}\n style={{\n width: header.getSize(),\n }}\n scope=\"col\"\n className={clsx(\n {\n \"hover:bg-neutral-100 th-shadow cursor-pointer\":\n header.column.getCanSort(),\n [\"with-shadow\"]:\n arrRowSelected?.length == 0 && withShadow,\n },\n classes?.header,\n classes?.className\n )}\n >\n <div onClick={header.column.getToggleSortingHandler()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {sorting[0]?.id == header.column.id ? (\n <i\n className={clsx(\n {\n [\"rotate-0\"]: !sorting[0]?.desc,\n [\"rotate-180\"]: sorting[0]?.desc,\n },\n \"uil uil-arrow-down text-blue-500 transform ml-1 text-[18px] duration-75\"\n )}\n ></i>\n ) : (\n <></>\n )}\n </div>\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody>\n {table?.getRowModel()?.rows?.map((row, rowIndex) => {\n return (\n <React.Fragment key={rowIndex + \"row\"}>\n {!row.original._destroy && (\n <React.Fragment>\n <TableRow\n key={row.id}\n id={row.id}\n className={`text-p-md font-normal h-[80px] text-paragraph w-fit`}\n style={stylesRow(row)}\n >\n {row.getVisibleCells().map((cell, index) => {\n const classes = cell.column.columnDef.meta as any;\n return (\n <TableCell\n key={cell.id}\n id={cell.id}\n style={{\n width: cell.column.getSize(),\n backgroundColor: backgroundColor\n ? backgroundColor\n : \"\",\n ...stylesRow(row),\n }}\n className={clsx(\n {\n [\"hidden\"]: cell.row.original._destroy,\n [\"first:border-l last:border-r\"]:\n borderFull,\n [\"first:rounded-bl-lg last:rounded-br-lg\"]:\n borderFull &&\n row.index === data?.length - 1,\n },\n classes?.cell,\n classes?.className\n )}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </TableRow>\n {(row.getIsExpanded() || openedSubComponent) && (\n <tr>\n <td colSpan={row.getVisibleCells().length}>\n {renderSubComponent({\n row,\n })}\n </td>\n </tr>\n )}\n </React.Fragment>\n )}\n </React.Fragment>\n );\n })}\n </TableBody>\n </div>\n </Table>\n {renderBottomTable()}\n </div>\n </div>\n );\n}\n","import { ReactNode, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Transition } from \"@headlessui/react\";\n\ninterface Props {\n title: string;\n children: ReactNode;\n open: boolean;\n}\n\nexport const Accordion = ({ title, children, open = false }: Props) => {\n const [isOpen, setOpen] = useState<boolean>(open);\n\n return (\n <div>\n <div\n className={clsx(\n {\n [\"border-neutral-200\"]: !isOpen,\n [\"border-rose-700\"]: isOpen,\n },\n \"flex flex-col w-full px-3 py-2 shadow-input border rounded-lg\"\n )}\n >\n <button\n onClick={() => {\n setOpen((state) => !state);\n }}\n type=\"button\"\n className=\"flex items-center justify-between w-full \"\n >\n <span>{title}</span>\n <i\n className={clsx(\n {\n [\"transform rotate-[180deg]\"]: isOpen,\n },\n \"duration-300 uil uil-angle-down text-[30px]\"\n )}\n ></i>\n </button>\n <Transition\n show={isOpen}\n enter=\"ease-in duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-out duration-300\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div\n className={`${\n isOpen ? \"flex opacity-100\" : \"hidden opacity-0\"\n } overflow-auto table-scroll`}\n >\n {children}\n </div>\n </Transition>\n </div>\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { Popover } from \"./Popover/Popover\";\n\nexport function CopyPopover({ children, valueToCopy }) {\n const [copied, setCopied] = useState(false);\n return (\n <>\n <div\n className=\"flex items-center gap-1\"\n onClick={async () => {\n setCopied(true);\n navigator.clipboard.writeText(valueToCopy);\n }}\n onMouseLeave={() => setTimeout(() => setCopied(false), 500)}\n >\n <div\n className=\"flex items-center gap-1\"\n data-tooltip-id=\"copy-id\"\n data-tooltip-content={copied ? \"Copiado\" : \"Copiar\"}\n data-tooltip-place=\"top\"\n >\n <Popover id=\"copy-id\" />\n <div className=\"text-neutral-400 text-xs\">{children}</div>\n </div>\n <div\n data-tooltip-id=\"icon-id\"\n data-tooltip-content={copied ? \"Copiado\" : \"Copiar\"}\n data-tooltip-place=\"top\"\n >\n <Popover id=\"icon-id\" />\n\n <i className=\"uil uil-copy text-base text-blue-500 cursor-pointer -mt-[1px]\"></i>\n </div>\n </div>\n </>\n );\n}\n","import {\n Menu as HeadlessMenu,\n Transition,\n MenuButton,\n MenuItems,\n} from \"@headlessui/react\";\nimport { Fragment, ReactNode } from \"react\";\n\ntype MenuProps = {\n triggerElement?: ReactNode;\n children?: ReactNode;\n className?: string;\n};\n\nexport const Menu = ({ triggerElement, children, className }: MenuProps) => {\n return (\n <HeadlessMenu as=\"div\" className={\"relative h-full cursor-pointer\"}>\n <MenuButton\n as=\"div\"\n className=\"flex rounded-full text-sm h-full w-full items-center\"\n >\n {triggerElement}\n </MenuButton>\n <Transition\n as={Fragment}\n enter=\"transition ease-out duration-200\"\n enterFrom=\"transform opacity-0 scale-95\"\n enterTo=\"transform opacity-100 scale-100\"\n leave=\"transition ease-in duration-75\"\n leaveFrom=\"transform opacity-100 scale-100\"\n leaveTo=\"transform opacity-0 scale-95\"\n >\n <MenuItems\n className={`border-[0.5px] mt-1 border-stroke flex min-w-[200px] flex-col p-2 absolute right-0 z-[999] rounded-lg shadow-[0px_4px_16px_rgba(56,61,77,0.1)] bg-surface cursor-default ${className}`}\n >\n {children}\n </MenuItems>\n </Transition>\n </HeadlessMenu>\n );\n};\n","import { MenuItem } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { ReactNode } from \"react\";\n\ntype ItemProps = {\n index?: number;\n isActive?: boolean;\n onClick?: (event: any) => void;\n children?: ReactNode;\n};\n\nexport const Item = ({ index, isActive, onClick, children }: ItemProps) => {\n return (\n <MenuItem key={index}>\n <div\n className={clsx(\n \"p-3 rounded-lg items-center cursor-pointer flex whitespace-nowrap no-underline \",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label font-bold\":\n isActive,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !isActive,\n }\n )}\n tabIndex={index}\n role=\"button\"\n onClick={onClick}\n >\n <div className=\"flex gap-2 w-full items-center whitespace-nowrap\">\n {children}\n </div>\n </div>\n </MenuItem>\n );\n};\n","import React from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport { Button } from \"./Button\";\ntype EditableTextProps = {\n children?: ReactNode;\n button?: ReactNode;\n onClose?: Function;\n};\n\nexport const EditableButton = ({\n children,\n button,\n onClose,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n\n return (\n <div className=\"flex flex-col relative\">\n <div\n className=\"group flex gap-[5px] items-center cursor-pointer\"\n onClick={() => setShowModal(!showModal)}\n >\n {button}\n </div>\n {showModal && (\n <div className=\"max-w-[294px] p-2 bg-surface border border-neutral-300 top-14 absolute z-50 rounded-lg\">\n <div className=\"pb-3\">{children}</div>\n <div className=\"pt-3 pb-1 border-t border-neutral-200 flex items-center justify-end gap-2\">\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setShowModal(false)}\n >\n Cancelar\n </Button>\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={() => {\n setShowModal(false);\n if (onClose) onClose();\n }}\n >\n Aplicar\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { Controller } from \"react-hook-form\";\nimport { ReactNode, useState, JSX } from \"react\";\nimport { Button } from \"./Button\";\n\ntype EditableTextProps = {\n control?: any;\n name?: string;\n emptyLabel?: string | JSX.Element;\n children?: ReactNode;\n onApply?: () => void;\n value?: (value) => JSX.Element;\n hideEditIcon?: boolean;\n truncate?: boolean;\n};\n\nexport const EditableText = ({\n control,\n name = \"\",\n emptyLabel,\n children,\n onApply,\n value,\n hideEditIcon,\n truncate,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n\n const truncateText = (str, max, len) => {\n return str.length > max ? str.substring(0, len) + \"...\" : str;\n };\n return (\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <div className=\"flex flex-col relative\">\n <div\n className=\"group flex gap-[5px] items-baseline cursor-pointer z-[500]\"\n onClick={() => setShowModal(!showModal)}\n >\n {value && field.value ? (\n <>\n {truncate\n ? value(truncateText(field.value, 14, 12))\n : value(field.value)}\n </>\n ) : field.value ? (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n Preenchido\n </label>\n ) : (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n {emptyLabel ? emptyLabel : \"Não informado\"}\n </label>\n )}\n {!hideEditIcon && (\n <i\n style={{ fontSize: \"14px\" }}\n className=\"uil uil-pen text-sm text-blue-500\"\n ></i>\n )}\n </div>\n {showModal && (\n <div>\n <div className=\"w-[160px] md:w-[294px] p-2 bg-surface border border-neutral-300 absolute z-[500] rounded-lg\">\n <div className=\"pb-3 \">{children}</div>\n <div className=\"pt-3 pb-1 border-t border-neutral-200 flex flex-col md:flex-row md:items-center md:justify-end gap-2\">\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => setShowModal(false)}\n >\n Cancelar\n </Button>\n <Button\n variant=\"primary\"\n size=\"sm\"\n onClick={() => {\n setShowModal(false);\n onApply && onApply();\n }}\n >\n Salvar\n </Button>\n </div>\n </div>\n <div\n className=\"fixed top-0 bottom-0 left-0 right-0 z-40\"\n onClick={() => setShowModal(false)}\n ></div>\n </div>\n )}\n </div>\n );\n }}\n />\n );\n};\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport { Controller } from \"react-hook-form\";\nimport { ReactNode, useEffect, useState, JSX } from \"react\";\nimport { Menu } from \"@headlessui/react\";\nimport Fuse from \"fuse.js\";\nimport InputSmall from \"./InputSmall/InputSmall\";\n\ntype EditableTextProps = {\n control?: any;\n name: string;\n emptyLabel?: string | JSX.Element;\n children?: ReactNode;\n options?: any;\n optionStyle?: (value) => JSX.Element;\n valueStyle?: (value) => JSX.Element;\n showInputSeach?: boolean;\n onChangeValue?: (value) => void;\n};\n\nexport const EditableTextSelect = ({\n control,\n name,\n emptyLabel,\n options,\n optionStyle,\n valueStyle,\n showInputSeach,\n onChangeValue,\n}: EditableTextProps) => {\n const [showModal, setShowModal] = useState(false);\n const [optionsList, setOptionsList] = useState(() => options);\n const [inputSearch, setInputSearch] = useState(\"\");\n\n const optionsFuse = {\n includeScore: false,\n keys: [\"name\"],\n };\n const fuse = new Fuse(optionsList, optionsFuse);\n\n const filter = () => {\n let results = [...options];\n if (inputSearch) {\n results = fuse.search(inputSearch)?.map((result) => result.item);\n }\n setOptionsList(results);\n };\n\n useEffect(() => {\n setOptionsList(() => options);\n }, [options]);\n\n useEffect(() => {\n filter();\n }, [inputSearch]);\n\n return (\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Menu>\n <Menu.Button>\n <div\n className=\"group flex gap-[5px] cursor-pointer z-[500] items-center\"\n onClick={() => setShowModal(!showModal)}\n >\n {field.value ? (\n valueStyle ? (\n valueStyle(field.value)\n ) : (\n field?.value?.name\n )\n ) : (\n <label\n className={clsx(\n {\n [\"text-label\"]: !field.value,\n [\"text-paragraph\"]: field.value,\n },\n \"text-p-md group-hover:underline group-hover:underline-offset-[3px] cursor-pointer decoration-blue-500\"\n )}\n >\n {emptyLabel ? emptyLabel : \"Não informado\"}\n </label>\n )}\n <i\n style={{ fontSize: \"16px\" }}\n className=\"uil uil-pen text-sm text-blue-500\"\n ></i>\n </div>\n </Menu.Button>\n <Menu.Items>\n <div className=\"w-[294px] p-2 bg-surface border border-neutral-300 absolute z-[500] rounded-lg\">\n {showInputSeach && (\n <div className=\"mb-2\">\n <InputSmall\n icon={<i className=\"uil uil-search\"></i>}\n onChange={(e: any) => setInputSearch(e)}\n value={inputSearch}\n placeholder=\"Pesquisar\"\n clearField\n onKeyDown={(e) => {\n if (e.key == \" \" || e.code == \"Space\") {\n e.stopPropagation();\n }\n }}\n />\n </div>\n )}\n {optionsList?.map((opt) => {\n const selected = opt?.id === field?.value?.id;\n return (\n <Menu.Item\n onClick={() => {\n field.onChange(opt);\n if (onChangeValue) {\n onChangeValue(opt);\n }\n }}\n as=\"button\"\n className={clsx(\n \"p-3 mb-1 rounded-lg items-center flex whitespace-nowrap no-underline w-full\",\n {\n \"bg-blue-500 hover:bg-blue-500 hover:text-accent-label text-accent-label\":\n selected,\n },\n {\n \"hover:bg-neutral-100 text-paragraph\": !selected,\n },\n {\n \"cursor-pointer\": !opt.disabled,\n }\n )}\n >\n <div className=\"flex gap-2 w-full items-center whitespace-nowrap\">\n <div className=\"flex w-full justify-between items-center\">\n {optionStyle ? (\n <div>{optionStyle(opt)}</div>\n ) : (\n <div className=\"flex flex-col\">\n <span className=\"font-bold\">{opt?.title}</span>\n <span\n className={clsx({\n \"text-label\": opt.disabled,\n })}\n >\n {opt.name}\n </span>\n {opt?.description}\n </div>\n )}\n <span\n className={clsx(\n \"group-hover:text-accent-label \",\n {\n \"text-accent-label\": selected,\n },\n {\n \"text-blue-500\": !selected,\n }\n )}\n >\n {selected && <i className=\"uil uil-check\"></i>}\n </span>\n </div>\n </div>\n </Menu.Item>\n );\n })}\n </div>\n </Menu.Items>\n </Menu>\n );\n }}\n />\n );\n};\n","import { Fragment } from \"react\";\nimport { Dialog, Transition } from \"@headlessui/react\";\n\nexport default function ImagePreview({ open, setOpen, previewImage }) {\n return (\n <Transition.Root show={open} as={Fragment}>\n <Dialog\n as=\"div\"\n className=\"relative z-[999]\"\n onClose={() => setOpen(false)}\n >\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity\" />\n </Transition.Child>\n\n <div className=\"fixed inset-0 z-10 overflow-y-auto\">\n <div className=\"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0\">\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <Dialog.Panel className=\"flex flex-col min-w-[350px] min-h-[250px] relative transform overflow-hidden rounded-lg bg-surface p-6 text-left shadow-xl transition-all\">\n <div className=\"flex flex-col h-full flex-1\">\n <div className=\"flex justify-between mb-2\">\n <h2 className=\"text-t-sm font-bold\">Prévia da imagem</h2>\n <i\n className=\"uil uil-times text-[28px] cursor-pointer\"\n onClick={() => setOpen(false)}\n ></i>\n </div>\n\n <div className=\"border-b border-neutral-200 mb-4\"></div>\n\n <div className=\"flex flex-1 h-full items-center justify-center rounded-lg w-full \">\n <img src={previewImage} alt=\"previewImage\" />\n </div>\n </div>\n </Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </Dialog>\n </Transition.Root>\n );\n}\n","import { SpinnerIcon } from \"../../assets/spinner\";\nimport { Button } from \"../Button\";\nimport ImagePreview from \"./ImagePreview\";\nimport { useState } from \"react\";\n\ntype FileStatusProps = {\n name: string;\n isLoading: boolean;\n size: number;\n onRemove: any;\n isImage: boolean;\n image?: any;\n};\n\nexport const FileStatus = ({\n name,\n isLoading,\n size,\n onRemove,\n isImage,\n image,\n}: FileStatusProps) => {\n return (\n <>\n {isImage ? (\n <ImageFile\n isLoading={isLoading}\n name={name}\n size={size}\n onRemove={onRemove}\n image={image}\n />\n ) : (\n <File\n isLoading={isLoading}\n name={name}\n size={size}\n onRemove={onRemove}\n image={image}\n />\n )}\n </>\n );\n};\n\nconst ImageFile = ({ isLoading, name, size, onRemove, image }) => {\n const [imagePreviewModal, setImagePreviewModal] = useState(false);\n const [previewImage, setPreviewImage] = useState<HTMLImageElement>();\n\n return (\n <div className=\"group h-[130px] w-[130px] flex justify-between border border-neutral-300 rounded-[8px]\">\n {!isLoading && image ? (\n <div className=\"w-full h-full relative\">\n <div className=\"hidden group-hover:block absolute top-3 left-3\">\n <Button\n className=\"w-[32px] h-[32px]\"\n variant=\"iconSecondary\"\n onClick={(evt) => {\n setImagePreviewModal(true);\n let newPreviewImage = new window.Image();\n newPreviewImage.src = image;\n setPreviewImage(newPreviewImage);\n }}\n size=\"xs\"\n icon={<i className=\"uil uil-search-plus text-[22px]\"></i>}\n />\n <ImagePreview\n open={imagePreviewModal}\n setOpen={setImagePreviewModal}\n previewImage={previewImage}\n />\n </div>\n\n <div className=\"block absolute top-3 right-3\">\n <Button\n className=\"w-[32px] h-[32px]\"\n variant=\"iconSecondary\"\n onClick={onRemove}\n size=\"xs\"\n icon={<i className=\"uil uil-times text-xl\"></i>}\n />\n </div>\n\n <div className=\"w-full h-full group-hover:bg-[#16203499]/60 z-10\">\n <img className=\"relative -z-10\" src={image} alt=\"tumbnails\" />\n </div>\n </div>\n ) : (\n <div className=\"flex flex-1 flex-col justify-between p-[10px]\">\n <div className=\"flex flex-col \">\n <div className=\"flex self-end\">\n <i\n onClick={onRemove}\n className=\"uil uil-times text-[28px] cursor-pointer\"\n ></i>\n </div>\n <div className=\"flex self-center items-center justify-center w-12 h-12 bg-blue-500 rounded-full animate-spin\">\n <img\n src={`/spinner-white.svg`}\n alt=\"circle\"\n width={30}\n height={30}\n />\n </div>\n </div>\n <div className=\"text-center\">\n <span className=\"text-p-sm\">{name}</span>\n <div className=\"text-xxs text-label\">{size.to} KB</div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst File = ({ isLoading, name, size, onRemove, image }) => {\n return (\n <div className=\"w-full md:w-[410px] flex items-center justify-between px-3 py-2 border border-neutral-300 rounded-[4px]\">\n <div className=\"flex gap-x-2 items-center\">\n {isLoading ? (\n <SpinnerIcon width={19} height={19} className=\"animate-spin\" />\n ) : (\n <span className=\"text-success-500 flex\">\n <i className=\"uil uil-check-circle text-[23px]\"></i>\n </span>\n )}\n <div className=\"flex flex-col\">\n <div className=\"flex items-start gap-x-1\">\n <span className=\"text-label self-end flex\">\n <i className=\"uil uil-file text-xs\"></i>\n </span>\n <div className=\"text-p-sm\">\n <a\n href={image}\n download={name}\n className=\"text-blue-500 hover:text-blue-500 hover:underline active:text-blue-600 active:underline active:underline-offset-4\"\n >\n {name}\n </a>\n </div>\n </div>\n <div className=\"text-xxs text-label\">\n {size\n ? size.toLocaleString(\"en-US\", {\n style: \"decimal\", // Other options: 'currency', 'percent', etc.\n })\n : null}{\" \"}\n KB\n </div>\n </div>\n </div>\n <i\n onClick={onRemove}\n className=\"uil uil-times text-[24px] text-neutral-600 cursor-pointer\"\n ></i>\n </div>\n );\n};\n","type actions = \"UPLOAD_START\" | \"UPLOAD_END\" | \"REMOVE_FILE\";\n\ntype ActionType = {\n type: actions;\n payload: any;\n};\n\ntype StateType = {\n files?: {\n name?: string;\n size?: number;\n image?: any;\n loading?: boolean;\n type?: string;\n }[];\n};\n\nexport const initialState = {\n files: [],\n};\n\nexport function reducer(state: StateType, action: ActionType): StateType {\n switch (action.type) {\n case \"UPLOAD_START\":\n return {\n files: [\n ...(state?.files as any),\n {\n name: action.payload.file.name,\n size: action.payload.file.size,\n image: action.payload.file,\n type: action.payload.file.type,\n loading: true,\n },\n ],\n };\n case \"UPLOAD_END\":\n return {\n files: state?.files?.map((file) => {\n if (file.name === action.payload.name) {\n return {\n ...file,\n image: action.payload.result,\n loading: false,\n };\n }\n\n return file;\n }),\n };\n case \"REMOVE_FILE\":\n return {\n files: state?.files?.filter(\n (file) => file.name !== action.payload.name\n ),\n };\n default:\n return state;\n }\n}\n","import React from \"react\";\n\n\nexport const IconFile: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"24\"\n height=\"30\"\n viewBox=\"0 0 24 30\"\n {...props}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M24 10.41C23.9844 10.2722 23.9542 10.1364 23.91 10.005V9.87C23.8379 9.71577 23.7417 9.574 23.625 9.45L14.625 0.45C14.501 0.333324 14.3592 0.237121 14.205 0.165H14.07L13.59 0H4.5C3.30653 0 2.16193 0.474106 1.31802 1.31802C0.474106 2.16193 0 3.30653 0 4.5V25.5C0 26.6935 0.474106 27.8381 1.31802 28.682C2.16193 29.5259 3.30653 30 4.5 30H19.5C20.6935 30 21.8381 29.5259 22.682 28.682C23.5259 27.8381 24 26.6935 24 25.5V10.5C24 10.5 24 10.5 24 10.41ZM15 5.115L18.885 9H15V5.115ZM21 25.5C21 25.8978 20.842 26.2794 20.5607 26.5607C20.2794 26.842 19.8978 27 19.5 27H4.5C4.10218 27 3.72064 26.842 3.43934 26.5607C3.15804 26.2794 3 25.8978 3 25.5V4.5C3 4.10217 3.15804 3.72064 3.43934 3.43934C3.72064 3.15804 4.10218 3 4.5 3H12V10.5C12 10.8978 12.158 11.2794 12.4393 11.5607C12.7206 11.842 13.1022 12 13.5 12H21V25.5Z\"\n fill=\"#009EDB\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const IconCheck: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"22\"\n height=\"16\"\n viewBox=\"0 0 22 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M21.065 0.815035C20.9256 0.674443 20.7597 0.562851 20.5769 0.486698C20.3941 0.410545 20.198 0.371338 20 0.371338C19.802 0.371338 19.6059 0.410545 19.4231 0.486698C19.2403 0.562851 19.0744 0.674443 18.935 0.815035L7.76 12.005L3.065 7.29503C2.92022 7.15518 2.74931 7.04521 2.56202 6.9714C2.37474 6.89759 2.17476 6.8614 1.97348 6.86488C1.77221 6.86836 1.5736 6.91145 1.38898 6.99169C1.20436 7.07194 1.03736 7.18775 0.897501 7.33254C0.757643 7.47732 0.647672 7.64823 0.573866 7.83551C0.50006 8.02279 0.463864 8.22278 0.467347 8.42405C0.470829 8.62532 0.513921 8.82394 0.594161 9.00855C0.674401 9.19317 0.790219 9.36018 0.935001 9.50004L6.695 15.26C6.83445 15.4006 7.00035 15.5122 7.18314 15.5884C7.36593 15.6645 7.56198 15.7037 7.76 15.7037C7.95802 15.7037 8.15408 15.6645 8.33687 15.5884C8.51966 15.5122 8.68556 15.4006 8.825 15.26L21.065 3.02004C21.2173 2.87957 21.3388 2.70909 21.4219 2.51935C21.505 2.3296 21.5479 2.12469 21.5479 1.91754C21.5479 1.71038 21.505 1.50548 21.4219 1.31573C21.3388 1.12598 21.2173 0.955499 21.065 0.815035Z\"\n fill=\"#009EDB\"\n />\n </svg>\n);\n","import React from \"react\";\n\nexport const IconFileUpload: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"30\"\n height=\"30\"\n viewBox=\"0 0 30 30\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M10.0649 8.56503L13.4999 5.11503V19.5C13.4999 19.8979 13.6579 20.2794 13.9392 20.5607C14.2205 20.842 14.6021 21 14.9999 21C15.3977 21 15.7792 20.842 16.0605 20.5607C16.3418 20.2794 16.4999 19.8979 16.4999 19.5V5.11503L19.9349 8.56503C20.0743 8.70562 20.2402 8.81721 20.423 8.89337C20.6058 8.96952 20.8019 9.00873 20.9999 9.00873C21.1979 9.00873 21.394 8.96952 21.5767 8.89337C21.7595 8.81721 21.9254 8.70562 22.0649 8.56503C22.2055 8.42558 22.3171 8.25968 22.3932 8.07689C22.4694 7.8941 22.5086 7.69805 22.5086 7.50003C22.5086 7.30201 22.4694 7.10595 22.3932 6.92316C22.3171 6.74037 22.2055 6.57447 22.0649 6.43503L16.0649 0.435028C15.9222 0.298467 15.754 0.191419 15.5699 0.120028C15.2047 -0.0299994 14.7951 -0.0299994 14.4299 0.120028C14.2457 0.191419 14.0775 0.298467 13.9349 0.435028L7.93488 6.43503C7.79502 6.57489 7.68408 6.74092 7.60839 6.92365C7.5327 7.10639 7.49374 7.30224 7.49374 7.50003C7.49374 7.69782 7.5327 7.89367 7.60839 8.0764C7.68408 8.25914 7.79502 8.42517 7.93488 8.56503C8.07474 8.70489 8.24077 8.81583 8.4235 8.89152C8.60624 8.96721 8.80209 9.00617 8.99988 9.00617C9.19767 9.00617 9.39352 8.96721 9.57625 8.89152C9.75898 8.81583 9.92502 8.70489 10.0649 8.56503ZM28.4999 15C28.1021 15 27.7205 15.1581 27.4392 15.4394C27.1579 15.7207 26.9999 16.1022 26.9999 16.5V25.5C26.9999 25.8979 26.8418 26.2794 26.5605 26.5607C26.2792 26.842 25.8977 27 25.4999 27H4.49988C4.10205 27 3.72052 26.842 3.43922 26.5607C3.15791 26.2794 2.99988 25.8979 2.99988 25.5V16.5C2.99988 16.1022 2.84184 15.7207 2.56054 15.4394C2.27923 15.1581 1.8977 15 1.49988 15C1.10205 15 0.720522 15.1581 0.439218 15.4394C0.157913 15.7207 -0.00012207 16.1022 -0.00012207 16.5V25.5C-0.00012207 26.6935 0.473984 27.8381 1.3179 28.682C2.16181 29.5259 3.3064 30 4.49988 30H25.4999C26.6934 30 27.8379 29.5259 28.6819 28.682C29.5258 27.8381 29.9999 26.6935 29.9999 25.5V16.5C29.9999 16.1022 29.8418 15.7207 29.5605 15.4394C29.2792 15.1581 28.8977 15 28.4999 15Z\"\n fill=\"white\"\n />\n </svg>\n);\n","import React from \"react\";\nimport { useEffect, useReducer, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { FileStatus } from \"./FileStatus\";\nimport { initialState, reducer } from \"./FileUploadReducer\";\nimport { usePapaParse } from \"react-papaparse\";\nimport { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\nimport { IconFile } from \"../../assets/IconFile\";\nimport { IconCheck } from \"../../assets/IconCheck\";\nimport { IconFileUpload } from \"../../assets/FileUpload\";\nimport { SpinnerIcon } from \"../../assets/spinner\";\n\ntype FileUploadProps = {\n icon?: \"file\" | \"image\";\n multiple?: boolean;\n direction?: \"vertical\" | \"horizontal\";\n isImage?: boolean;\n setFiles?: any;\n supportedFormats?: string[];\n validationFunction?: any;\n files?: any;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n name?: string;\n limitMessage?: string;\n};\n\nexport const FileUpload = ({\n icon = \"file\",\n multiple = false,\n direction = \"vertical\",\n isImage = false,\n setFiles,\n supportedFormats,\n validationFunction,\n files,\n error,\n name,\n limitMessage,\n}: FileUploadProps) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const [dragging, setDragging] = useState(false);\n const [loading, setLoading] = useState(false);\n const { readString } = usePapaParse();\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n useEffect(() => {\n if (state?.files?.some((file) => file.loading === true)) {\n setLoading(true);\n } else {\n setLoading(false);\n }\n }, [state?.files]);\n\n useEffect(() => {\n if (!files || files.length == 0) {\n state.files = [];\n }\n }, [files]);\n\n useEffect(() => {\n if ((!multiple && state?.files?.length === 0) || multiple) {\n window.addEventListener(\"dragover\", handleDragOver);\n window.addEventListener(\"drop\", handleDrop);\n window.addEventListener(\"dragleave\", handleDragLeave);\n }\n\n return () => {\n window.removeEventListener(\"dragover\", handleDragOver);\n window.removeEventListener(\"drop\", handleDrop);\n window.removeEventListener(\"dragleave\", handleDragLeave);\n };\n }, [multiple, state.files]);\n\n const handleDragOver = (event: globalThis.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (!multiple && state.files?.length === 1) {\n setDragging(false);\n } else {\n setDragging(true);\n }\n };\n\n const handleDrop = (event: globalThis.DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setDragging(false);\n\n let files = [...(event?.dataTransfer?.files as any)];\n\n if ((!multiple && files?.length === 1) || (multiple && files?.length > 0)) {\n const existingFiles = state?.files?.map((f) => f.name);\n files = files.filter((f) => !existingFiles?.includes(f.name));\n\n files.forEach((file) => {\n const reader = new FileReader();\n\n reader.addEventListener(\"loadstart\", () => {\n dispatch({\n type: \"UPLOAD_START\",\n payload: { file },\n });\n });\n\n reader.addEventListener(\"load\", () => {\n if (!validationFunction) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n }\n if (validationFunction(file)) {\n setTimeout(() => {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n }, 1000);\n\n setFiles && setFiles(file);\n } else {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name: file.name,\n },\n });\n }\n });\n\n reader.readAsDataURL(file);\n });\n event?.dataTransfer?.clearData();\n }\n };\n\n const handleDragLeave = (event: globalThis.DragEvent) => {\n if (event.screenX === 0 && event.screenY === 0) {\n setDragging(false);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n const onChangeFile = (e) => {\n const files = Object.values(e.target.files) as File[];\n e.target.value = null;\n\n files.forEach((file) => {\n const reader = new FileReader();\n\n reader.addEventListener(\"loadstart\", () => {\n dispatch({\n type: \"UPLOAD_START\",\n payload: { file },\n });\n });\n\n reader.addEventListener(\"load\", () => {\n setTimeout(() => {\n readString(String(file), {\n delimiter: \",\",\n worker: true,\n complete: (results) => {\n if (!validationFunction) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n } else if (validationFunction(file)) {\n dispatch({\n type: \"UPLOAD_END\",\n payload: {\n name: file.name,\n result: reader.result,\n },\n });\n\n setFiles && setFiles(file);\n } else {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name: file.name,\n },\n });\n }\n },\n });\n }, 1000);\n });\n\n reader.readAsDataURL(file);\n });\n };\n\n const renderContent = () => {\n if (loading) {\n return <LoadingContent />;\n } else if (dragging) {\n return <DraggingContent />;\n } else if (!multiple && (state?.files?.length as any) > 0) {\n return <BlockedContent />;\n }\n\n return (\n <DefaultContent\n icon={icon}\n formats={supportedFormats?.join(\", \").replace(/\\./g, \"\").toUpperCase()}\n limitMessage={limitMessage}\n />\n );\n };\n\n const removeFile = (name: string) => {\n dispatch({\n type: \"REMOVE_FILE\",\n payload: {\n name,\n },\n });\n setFiles && setFiles(null);\n };\n\n return (\n <div className=\"w-full\">\n <div\n className={clsx(\n \"flex gap-1 w-full rounded-lg items-center justify-center\",\n {\n \"flex-col gap-1\": direction === \"vertical\",\n }\n )}\n >\n <input\n id=\"file-upload\"\n name=\"file-upload\"\n type=\"file\"\n accept={supportedFormats?.join(\",\")}\n multiple={multiple}\n className=\"sr-only\"\n onChange={onChangeFile}\n />\n {renderContent()}\n <div\n className={clsx(\n {\n \"flex flex-col w-full gap-y-[6px]\":\n direction === \"vertical\" && !isImage,\n },\n {\n \"flex flex-col gap-y-[6px] w-full\":\n direction === \"horizontal\" && !isImage,\n },\n {\n \"flex gap-[6px]\": direction === \"vertical\" && isImage,\n },\n {\n \"flex gap-[6px]\": direction === \"horizontal\" && !isImage,\n }\n )}\n >\n {state?.files?.map((file) => (\n <FileStatus\n key={file.name}\n name={file?.name as any}\n onRemove={() => removeFile(file?.name as any)}\n isLoading={file.loading as any}\n size={file.size as any}\n isImage={file.image && isImage}\n image={file.image}\n />\n ))}\n </div>\n {hasError &&\n fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs -mt-[6px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message as any}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nconst DefaultContent = ({ formats, icon, limitMessage }) => (\n <div className=\"w-full md:w-[410px] h-full flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-2 bg-blue-100 rounded-full\"\n }\n >\n {icon === \"file\" ? (\n <IconFile />\n ) : (\n <i className=\"uil uil-image-plus text-[28px] text-blue-500\" />\n )}\n </div>\n\n <h1 className=\"font-bold text-base\">\n {icon === \"file\"\n ? \"Arraste o arquivo e solte aqui\"\n : \"Arraste as imagens e solte aqui\"}\n </h1>\n\n <label\n htmlFor=\"file-upload\"\n className=\"relative leading-none cursor-pointer text-sm bg-surface focus-within:outline-none\"\n >\n <p>\n ou&nbsp;\n <span className=\"text-blue-500\">selecione do seu computador</span>\n </p>\n </label>\n\n <small className=\"text-label text-xxs leading-5\">\n Formatos: {formats} | {limitMessage ? limitMessage : \"Até 25 MB\"}\n </small>\n </div>\n </div>\n);\nconst BlockedContent = () => (\n <div className=\"w-full md:w-[410px] h-full flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center justify-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-1 bg-blue-100 rounded-full\"\n }\n >\n <IconCheck />\n </div>\n\n <h1 className=\"font-bold text-base mt-1\">Arquivo carregado!</h1>\n </div>\n </div>\n);\n\nconst DraggingContent = () => (\n <div className=\"w-full md:w-[410px] h-[152px] bg-blue-100 rounded-lg\">\n <div className=\"flex flex-col p-4 custom-border justify-center\">\n <div className=\"flex flex-1 flex-col h-full text-center items-center justify-center\">\n <div\n className={\n \"flex items-center justify-center w-14 h-14 mb-2 bg-blue-500 rounded-full\"\n }\n >\n <IconFileUpload />\n </div>\n\n <h1 className=\"font-bold text-base text-blue-500\">\n Solte aqui para carregar o arquivo\n </h1>\n </div>\n </div>\n </div>\n);\n\nconst LoadingContent = () => (\n <div className=\"w-full h-full bg-blue-100 flex flex-col p-4 custom-border\">\n <div className=\"flex flex-1 flex-col text-center items-center justify-center\">\n <SpinnerIcon className=\"animate-spin\" />\n\n <h1 className=\"font-bold text-base text-blue-500\">\n Carregando arquivo...\n </h1>\n </div>\n </div>\n);\n","import { Popover } from \"./Popover/Popover\";\n\nexport function InfoIcon({\n content,\n id = \"info-id\",\n}: {\n content?: string;\n id?: string;\n}) {\n return (\n <div\n data-tooltip-id={id}\n data-tooltip-html={content}\n data-tooltip-place=\"top\"\n >\n <Popover id={id} />\n <i className=\"uil uil-info-circle text-p-lg text-neutral-400\"></i>\n </div>\n );\n}\n","export const customStyles = {\n indicatorSeparator: (provided: any, { hasValue }: any) => {\n return {\n ...provided,\n marginTop: \"-6px\",\n backgroundColor: hasValue ? \"var(--input)\" : \"transparent\",\n };\n },\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n paddingLeft: state.selectProps.hasIcon ? \"2.5rem\" : \"0px\",\n }),\n clearIndicator: (provided: any) => ({\n ...provided,\n color: \"var(--label)\",\n marginTop: \"-6px\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n display: state.selectProps.isTargeted ? \"none\" : \"flex\",\n paddingRight: \"12px\",\n marginTop: \"-6px\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 70,\n background: \"var(--surface)\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.isFocused\n ? \"0.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do\n // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do\n // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda\n // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de\n // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel\n // fica por dentro do campo, sem o anel \"extra\" por fora que o box-shadow duplo criava.\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n paddingLeft: \"0px\",\n placeholder: \" \",\n minHeight: \"46px\",\n alignItems: \"end\",\n paddingTop: \"8px\",\n backgroundColor: \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingTop: \"2px\",\n lineHeight: \"16px\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n paddingRight: \"6px\",\n paddingLeft: \"0px\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color =\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\";\n\n if (state.isDisabled) {\n color = \"var(--disabled)\";\n }\n\n return {\n ...provided,\n height: \"44px\",\n cursor: \"pointer\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : state.isFocused\n ? \"var(--neutral-200)\"\n : \"var(--surface)\",\n color,\n fontWeight: state.isSelected && !state.selectProps.isTargeted ? 700 : 400,\n \"&:hover\": {\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active svg\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" svg\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import {\n Control,\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport Select, { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./MultiSelect.styles\";\nimport clsx from \"clsx\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n options: OptionType[];\n defaultValue?: OptionType;\n control?: Control<any>;\n isSearchable?: boolean;\n required?: boolean;\n label?: string;\n error?: Merge<FieldError, FieldErrorsImpl<any>>;\n disabled?: boolean;\n}\n\nexport const MultiSelect = ({\n name,\n options,\n label = \"\",\n error,\n defaultValue,\n control,\n isSearchable = false,\n required,\n disabled,\n}: SelectFieldProps) => {\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const { DropdownIndicator, Option } = components;\n\n const DropdownIndicatorCustom = (props: any) => {\n return (\n <DropdownIndicator {...props}>\n <i className=\"uil uil-angle-down text-[20px]\"></i>\n </DropdownIndicator>\n );\n };\n\n const IconOption = (props: any) => {\n return (\n <Option {...props}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n height: \"100%\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n </Option>\n );\n };\n\n const NoOptionsMessage = () => {\n return (\n <div className=\"p-2 text-neutral-300\">Nenhum dado encontrado</div>\n );\n };\n\n return (\n <div className=\"relative h-full\" id=\"multiselect\">\n <Select\n {...field}\n {...hasError}\n isDisabled={disabled}\n name={field.name}\n ref={field.ref}\n styles={customStyles}\n placeholder=\" \"\n isSearchable={isSearchable}\n options={options}\n isMulti\n tabSelectsValue={true}\n components={{\n ValueContainer,\n Option: IconOption,\n NoOptionsMessage,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n isOptionDisabled={(option: any) => option.blocked}\n hideSelectedOptions={false}\n closeMenuOnSelect={false}\n />\n\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\" scale-75 -translate-y-[10px] \"]:\n field.value && field.value.length > 0,\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n\n {fieldValidationMessages.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs -mt-[5px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\n","export const customStyles = {\n input: (provided) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n height: \"100%\",\n }),\n indicatorSeparator: (provided) => ({\n ...provided,\n backgroundColor: \"transparent\",\n }),\n clearIndicator: (provided) => ({\n ...provided,\n color: \"var(--label)\",\n \":hover\": {\n color: \"var(--label)\",\n },\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n display: \"none\",\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 30,\n background: \"var(--surface)\",\n }),\n control: (provided, state) => {\n const border = state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.isFocused\n ? \"0.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n paddingTop: state.selectProps.hasLabel ? \"18px\" : \"0px\",\n border: state.isDisabled\n ? \"0.5px solid var(--input-border-disabled, var(--stroke))\"\n : border,\n // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do\n // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do\n // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda\n // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de\n // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel\n // fica por dentro do campo, sem o anel \"extra\" por fora que o box-shadow duplo criava.\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n backgroundColor: \"var(--surface)\",\n // height: \"52px\",\n // paddingLeft: '8px',\n placeholder: state.selectProps.hasLabel\n ? \" \"\n : state.selectProps.placeholder,\n alignItems: state.selectProps.hasLabel ? \"end\" : \"center\",\n \":hover\": {\n border: state.isDisabled\n ? \"0.5px solid var(--input-border-disabled, var(--stroke))\"\n : border,\n // height: \"52px\",\n },\n \":focus-within\": {\n // height: \"52px\",\n },\n };\n },\n multiValue: (provided) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 6px\",\n }),\n multiValueLabel: (provided) => ({\n ...provided,\n color: \"var(--paragraph)\",\n }),\n multiValueRemove: (provided) => ({\n ...provided,\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n container: (provided) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n};\n","import React from \"react\";\nimport { Controller, FieldError } from \"react-hook-form\";\nimport CreatableSelect, { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./InputTag.styles\";\nimport { KeyboardEventHandler, useState } from \"react\";\nimport clsx from \"clsx\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n required?: boolean;\n label?: string;\n error?: FieldError | undefined;\n onKeyDown?: (event: any) => void;\n blockSpaces?: boolean;\n}\n\nexport const InputTag = ({\n name,\n label = \"\",\n error,\n defaultValue,\n control,\n required,\n placeholder,\n blockSpaces = false,\n}: SelectFieldProps) => {\n const [inputValue, setInputValue] = useState(\"\");\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const removeSpaces = (value: string) => {\n return value\n ?.replace(/\\s+/g, \"-\") // Replace spaces with -\n .replace(/[^\\w\\-]+/g, \"\") // Remove all non-word chars\n .replace(/\\-\\-+/g, \"-\") // Replace multiple - with single -\n .replace(/^-+/, \"\") // Trim - from start of text\n .replace(/-+$/, \"\");\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (\n !inputValue ||\n (field?.value || []).find((item) => item?.value === inputValue)\n )\n return;\n switch (event.key) {\n case \"Enter\":\n case \"Tab\":\n field.onChange([\n ...(field?.value || []),\n {\n label: blockSpaces ? removeSpaces(inputValue) : inputValue,\n value: blockSpaces ? removeSpaces(inputValue) : inputValue,\n },\n ]);\n\n setInputValue(\"\");\n event.preventDefault();\n }\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n return (\n <div\n className={`relative ${label ? \"with-label\" : \"\"}`}\n id=\"inputtag\"\n >\n <CreatableSelect\n {...hasError}\n {...hasLabel}\n {...{ placeholder: placeholder }}\n {...field}\n styles={customStyles}\n menuIsOpen={false}\n placeholder={hasLabel.hasLabel ? \" \" : placeholder}\n isMulti\n tabSelectsValue={true}\n onKeyDown={handleKeyDown}\n isClearable={false}\n inputValue={inputValue}\n onInputChange={(newValue) => setInputValue(newValue)}\n isOptionDisabled={(option) => option.blocked}\n />\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\" scale-75 -translate-y-[10px] \"]:\n field.value && field.value.length > 0,\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\nInputTag.displayName = \"InputTag\";","export const customStyles = {\n indicatorSeparator: (provided: any, { hasValue }: any) => {\n return {\n ...provided,\n display: \"none\",\n };\n },\n input: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n outline: \"none\",\n paddingLeft: state.selectProps.hasIcon ? \"2.5rem\" : \"0px\",\n }),\n clearIndicator: (provided: any) => ({\n ...provided,\n display: \"none\",\n }),\n dropdownIndicator: (provided: any, state: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n display: state.selectProps.isTargeted ? \"none\" : \"flex\",\n paddingRight: \"12px\",\n \":hover\": {\n color: \"var(--paragraph)\",\n },\n }),\n menu: (provided: any) => ({\n ...provided,\n marginTop: \"4px\",\n border: \"1px solid var(--neutral-300)\",\n boxShadow: \"none\",\n borderRadius: \"8px\",\n padding: \"0px 8px\",\n zIndex: 70,\n background: \"var(--surface)\",\n }),\n singleValue: (base: any, state: any) => ({\n ...base,\n color: state.data.value === \"active\" ? \"#0EAF86\" : \"var(--paragraph)\",\n display: \"flex\",\n }),\n control: (provided: any, state: any) => {\n const border = state.isDisabled\n ? \"0.5px solid var(--input-border-disabled)\"\n : state.selectProps.hasError\n ? \"0.5px solid var(--dangerous-500)\"\n : state.isFocused\n ? \"0.5px solid var(--blue-500)\"\n : \"0.5px solid var(--stroke)\";\n return {\n ...provided,\n cursor: \"pointer\",\n border,\n // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do\n // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do\n // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda\n // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de\n // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel\n // fica por dentro do campo, sem o anel \"extra\" por fora que o box-shadow duplo criava.\n boxShadow: state.isDisabled\n ? \"none\"\n : state.isFocused\n ? \"inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)\"\n : \"0px 1px 1.5px 0px rgba(56,61,77,0.12)\",\n outline: \"none\",\n borderRadius: \"0.5rem\",\n paddingLeft: \"8px\",\n placeholder: \" \",\n height: \"46px\",\n alignItems: \"end\",\n backgroundColor: \"var(--surface)\",\n \":hover\": {\n border,\n },\n };\n },\n multiValue: (provided: any) => ({\n ...provided,\n borderRadius: \"20px\",\n backgroundColor: \"var(--neutral-100)\",\n padding: \"0px 0px\",\n display: \"none\",\n }),\n multiValueLabel: (provided: any) => ({\n ...provided,\n color: \"var(--paragraph)\",\n paddingTop: \"6px\",\n }),\n multiValueRemove: (provided: any) => ({\n ...provided,\n paddingRight: \"6px\",\n paddingLeft: \"0px\",\n color: \"var(--neutral-400)\",\n \":hover\": {\n color: \"var(--dangerous-500)\",\n },\n }),\n option: (provided: any, state: any) => {\n let color =\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--accent-label)\"\n : \"var(--paragraph)\";\n\n if (state.isDisabled) {\n color = \"var(--disabled)\";\n }\n\n return {\n ...provided,\n height: \"44px\",\n cursor: \"pointer\",\n borderRadius: \"8px\",\n margin: \"4px 0px\",\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : state.isFocused\n ? \"var(--neutral-200)\"\n : \"var(--surface)\",\n color,\n fontWeight: state.isSelected && !state.selectProps.isTargeted ? 700 : 400,\n \"&:hover\": {\n backgroundColor:\n state.isSelected && !state.selectProps.isTargeted\n ? \"var(--blue-500)\"\n : \"var(--neutral-200)\",\n },\n \"&:active\": {\n backgroundColor: \"var(--blue-500)\",\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \"&:active svg\": {\n color: \"var(--accent-label)\",\n fontWeight: 700,\n },\n \" svg\": {\n color: \"var(--accent-label)\",\n },\n };\n },\n container: (provided: any) => ({\n ...provided,\n border: \"none\",\n outline: \"none\",\n boxShadow: \"none\",\n padding: \"none\",\n margin: \"none\",\n }),\n valueContainer: (provided: any) => ({\n ...provided,\n padding: \"2px 0px\",\n }),\n};\n","import {\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n} from \"react-hook-form\";\nimport AsyncSelect from \"react-select/async\";\nimport { components, ValueContainerProps } from \"react-select\";\nimport { customStyles } from \"./MultiSelectBottom.styles\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\n\nexport type OptionType = {\n value: number | string;\n label: string;\n};\n\ninterface SelectFieldProps {\n name: string;\n options: OptionType[];\n defaultValue?: any;\n control?: any;\n placeholder?: string;\n isSearchable?: boolean;\n required?: boolean;\n label?: string;\n error?: FieldError | Merge<FieldError, FieldErrorsImpl<any>>;\n disabled?: boolean;\n emptyMessage?: string;\n filterOptions?: (value: any) => any;\n debounce?: number;\n}\n\nexport const MultiSelectBottom = ({\n name,\n options,\n label = \"\",\n error,\n defaultValue,\n control,\n isSearchable = false,\n required,\n disabled,\n emptyMessage,\n filterOptions,\n debounce = 0,\n}: SelectFieldProps) => {\n const [loading, setLoading] = useState(false);\n const [optionsList, setOptionsList] = useState(() => options || []);\n const fieldValidationMessages = [error?.message];\n\n const hasError = {\n hasError: fieldValidationMessages.some((item) => item !== undefined),\n };\n\n const hasLabel = {\n hasLabel: label?.length > 0,\n };\n\n const loadOptions = (inputValue: string) => {\n setLoading(true);\n if (isSearchable && filterOptions) {\n if (!debounce || (debounce && inputValue.length >= debounce)) {\n const result = filterOptions(inputValue);\n setLoading(false);\n return result;\n }\n } else {\n setOptionsList(options);\n }\n };\n\n return (\n <Controller\n name={name}\n control={control}\n defaultValue={defaultValue}\n render={({ field }) => {\n const { DropdownIndicator, Option } = components;\n\n const DropdownIndicatorCustom = (props: any) => {\n return (\n <DropdownIndicator {...props}>\n <i className=\"uil uil-angle-down text-[20px]\"></i>\n </DropdownIndicator>\n );\n };\n\n const NoOptionsMessage = (props: any) => {\n if (\n (props.selectProps.inputValue.length == 0 && debounce > 0) ||\n (debounce > 0 && props.selectProps.inputValue.length < debounce)\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n } else if (\n props.selectProps.inputValue.length > 0 &&\n props?.options?.length == 0\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">Nenhum dado encontrado</div>\n );\n }\n };\n\n const IconOption = (props: any) => {\n return (\n <Option {...props}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n height: \"100%\",\n }}\n >\n <span className={clsx(\"text-p-md focus:text-white\")}>\n {props.data.label}\n </span>\n </div>\n </Option>\n );\n };\n\n const LoadingMessage = (props: any) => {\n if (\n !debounce ||\n (debounce && props.selectProps.inputValue.length >= debounce)\n ) {\n return (\n <div\n {...props.innerProps}\n className=\"flex items-center gap-[6px] p-2\"\n >\n <img\n className=\"animate-spin \"\n src=\"/spinner.svg\"\n alt=\"circle\"\n width={16}\n height={16}\n />\n Buscando...\n </div>\n );\n } else if (\n debounce &&\n props.selectProps.inputValue.length < debounce\n ) {\n return (\n <div className=\"p-2 text-neutral-300\">\n Digite {debounce} ou mais caracteres para pesquisar\n </div>\n );\n }\n };\n\n return (\n <div className=\"relative h-full\" id=\"multiselectbottom\">\n <AsyncSelect\n {...field}\n {...hasError}\n isDisabled={disabled}\n name={field.name}\n ref={field.ref}\n styles={customStyles}\n placeholder=\" \"\n isSearchable={isSearchable}\n options={optionsList}\n isMulti\n defaultOptions={\n debounce > 0 ? false : options ? optionsList : true\n }\n loadOptions={loadOptions}\n tabSelectsValue={true}\n components={{\n ValueContainer,\n Option: IconOption,\n NoOptionsMessage: NoOptionsMessage as any,\n LoadingMessage: LoadingMessage as any,\n DropdownIndicator: DropdownIndicatorCustom,\n }}\n isOptionDisabled={(option: any) => option.blocked}\n hideSelectedOptions={false}\n closeMenuOnSelect={false}\n backspaceRemovesValue={false}\n />\n\n <span\n className={clsx(\"text-label text-sm left-2.5\", {\n [\"text-dangerous-500\"]: hasError.hasError,\n })}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </span>\n {fieldValidationMessages?.map((message: any, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[3px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n <div className=\"flex items-center gap-x-2 gap-y-1 flex-wrap\">\n {field?.value?.length > 0 ? (\n field?.value?.map((item) => (\n <div className=\"text-p-sm bg-neutral-100 rounded-[20px] py-2 px-3 flex items-center justify-between mt-3\">\n <span className=\"whitespace-nowrap\">{item.label}</span>\n <button\n type=\"button\"\n onClick={() => {\n const copy = [...field.value];\n const index = copy.findIndex(\n (opt) => opt.value == item.value\n );\n copy.splice(index, 1);\n field.onChange(copy);\n }}\n >\n <i className=\"uil uil-times text-sm text-neutral-400\"></i>\n </button>\n </div>\n ))\n ) : (\n <span className=\"text-p-md text-label pt-2 pl-2\">\n {emptyMessage || \"Nenhuma opção selecionada\"}\n </span>\n )}\n </div>\n </div>\n );\n }}\n />\n );\n};\n\nexport const ValueContainer = ({ children, ...props }: ValueContainerProps) => {\n return (\n <components.ValueContainer {...props}>{children}</components.ValueContainer>\n );\n};\n\nMultiSelectBottom.displayName = \"MultiSelectBottom\";","import React from \"react\";\n\nexport function PageBox(props: {\n title?: string;\n children?: React.ReactNode;\n}) {\n return (\n <div className=\"py-5 px-4 border border-neutral-200 rounded-lg\">\n {props?.title && (\n <h1 className=\"text-t-xs font-bold text-title mb-4\">{props.title}</h1>\n )}\n {props?.children}\n </div>\n );\n}\n","import { JSX } from \"react\";\n\ntype PageHeaderProps = {\n title: JSX.Element | string;\n breadcrumbs?: {\n name: string;\n link?: string;\n }[];\n children?: JSX.Element;\n description?: JSX.Element | string;\n};\n\nexport const PageHeader = ({\n title,\n breadcrumbs,\n children,\n description,\n}: PageHeaderProps) => {\n return (\n <div className=\"flex flex-col md:flex-row place-content-between font-sans pb-4 w-full\">\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex flex-row items-center text-p-lg text-label\">\n {breadcrumbs &&\n breadcrumbs.map((breadcrumb, index) => (\n <div key={index}>\n {breadcrumb.link ? (\n <a\n href={breadcrumb.link}\n className=\"hover:no-underline hover:text-paragraph\"\n >\n <span className=\"cursor-pointer flex items-center\">\n {index > 0 && <i className=\"uil uil-angle-right\"></i>}\n {breadcrumb.name}\n </span>\n </a>\n ) : (\n <div className=\"flex items-center\">\n <i className=\"uil uil-angle-right\"></i>\n <span\n className={\n index === breadcrumbs.length - 1 ? \"text-paragraph\" : \"\"\n }\n >\n {breadcrumb.name}\n </span>\n </div>\n )}\n </div>\n ))}\n </div>\n <div>\n <h2 className=\"text-t-md text-title font-bold mb-1\">{title}</h2>\n {description && (\n <span className=\"text-p-lg text-label\">{description}</span>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center gap-6 md:justify-end flex-1 mt-2 md:mt-0\">\n {children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { useEffect, useState } from \"react\";\n\ntype ProgressBarProps = {\n percentage: number;\n variant: \"primary\" | \"success\" | \"danger\" | \"info\";\n status: string;\n};\n\nconst variants = {\n primary: {\n bar: \"bg-gradient-to-b from-blue-start to-blue-end\",\n text: \"text-blue-500\",\n },\n success: {\n bar: \"bg-gradient-to-b from-success-start to-success-end\",\n text: \"text-success-500\",\n },\n danger: {\n bar: \"bg-gradient-to-b from-danger-start to-danger-end\",\n text: \"text-dangerous-600\",\n },\n info: {\n bar: \"bg-gradient-to-b from-blue-start to-blue-end\",\n text: \"text-blue-500\",\n },\n};\n\nexport const ProgressBar = ({\n percentage,\n variant = \"primary\",\n status,\n}: ProgressBarProps) => {\n const [barPercentage, setBarPercentage] = useState(() => fixPercentage());\n\n function fixPercentage() {\n if (percentage > 100) {\n return 100;\n } else {\n return percentage;\n }\n }\n useEffect(() => {\n setBarPercentage(fixPercentage());\n }, [percentage]);\n\n return (\n <div className=\"flex flex-col gap-y-[2px] min-w-[170px]\">\n <div className=\"w-full p-[1px] border border-neutral-300 rounded-[15px]\">\n <div\n className={clsx(variants[variant].bar, \"h-[14px] rounded-[15px]\")}\n style={{ width: `${barPercentage}%` }}\n ></div>\n </div>\n {status && (\n <span className={clsx(variants[variant].text, \"text-blue-500 text-xs\")}>\n {status}\n {percentage && (\n <span className=\"font-bold\">&nbsp;- {percentage} %</span>\n )}\n </span>\n )}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { useState, JSX } from \"react\";\n\nexport type TabsProps = {\n tabs: {\n key: string;\n label: string | JSX.Element;\n icon?: any;\n children: JSX.Element;\n hidden?: boolean;\n }[];\n onClick?: (current) => void;\n};\n\nexport function SimpleTab({ tabs, onClick }: TabsProps) {\n const [currentTab, setCurrentTab] = useState(0);\n\n function isCurrentTab(index) {\n return index === currentTab;\n }\n return (\n <div className=\"flex-1 flex flex-col\">\n <div className=\"flex flex-col h-full flex-1\">\n <div className=\"border-b border-neutral-200\">\n <div className=\"-mb-px flex\" aria-label=\"Tabs\">\n {tabs\n .filter((item) => !item.hidden)\n .map((tab, index) => (\n <nav\n key={tab.key}\n className={clsx(\n isCurrentTab(index)\n ? \"border-rose-700 text-rose-700 font-bold hover:border-rose-800 hover:text-rose-800 hover:font-bold\"\n : \"border-transparent text-label hover:text-paragraph\",\n \"group cursor-pointer flex items-center border-b-2 py-1 px-4 text-base\"\n )}\n aria-current={isCurrentTab(index) ? \"page\" : undefined}\n onClick={() => {\n setCurrentTab(index);\n if (onClick) {\n onClick(tabs[index]);\n }\n }}\n >\n <div\n id=\"tab-icon\"\n className={clsx(\n isCurrentTab(index)\n ? \"text-rose-700 group-hover:text-rose-800\"\n : \"text-label group-hover:text-paragraph\",\n { \"-ml-0.5 mr-2\": tab.icon }\n )}\n aria-hidden=\"true\"\n >\n {tab.icon}\n </div>\n <span>{tab.label}</span>\n </nav>\n ))}\n </div>\n </div>\n <div className=\"h-full flex-1 flex flex-col\">\n {tabs[currentTab].children}\n </div>\n </div>\n </div>\n );\n}\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonDetails = ({ loading, ...props }) => {\n const label = (\n <div className=\"w-[120px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const description = (\n <div className=\"w-[105px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const details = (\n <div className=\"flex flex-col gap-2 w-[25%]\">\n {label}\n {description}\n </div>\n );\n\n const lineDetails = (\n <div className=\"flex items-start justify-between\">\n {Array(5)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"line\"}>{details}</div>\n ))}\n </div>\n );\n\n const timeline = (\n <div className=\"flex flex-col\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div className=\"flex\" key={index}>\n <div className=\"mr-3 relative\">\n {index !== 2 && (\n <div className=\"w-[2px] bg-neutral-200 ml-[5px] h-full absolute mt-10\"></div>\n )}\n <div className=\"relative mt-10\">\n <div className=\"h-3 w-3 rounded-full bg-neutral-100\"></div>\n <div className=\"h-2 w-2 rounded-full absolute z-30 top-[2px] left-[2px] bg-neutral-300\"></div>\n </div>\n </div>\n <div className=\"flex flex-col h-[60px] mt-3 relative gap-[4px]\">\n <div className=\"w-[105px] h-4\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n <div className=\"w-[105px] h-4\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n\n return (\n <div className=\"flex-1 w-full h-full\">\n <div className={clsx({ [\"hidden\"]: !loading }, \"flex flex-col gap-4\")}>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-[4px]\">\n {label}\n <div className=\"w-3 h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"w-[200px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n <div className=\"w-[95px] h-5\">\n <Skeleton className=\"h-full rounded-l\" />\n </div>\n </div>\n <div className=\"w-[480px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <div className=\"w-[150px] h-[46px]\">\n <Skeleton className=\"h-full\" />\n </div>\n <div className=\"w-[150px] h-[46px]\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-4\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"tabs\"} className=\"w-[220px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n ))}\n </div>\n <div className=\"h-[1px] w-full bg-neutral-200\"></div>\n </div>\n <div className=\"flex items-start gap-8\">\n <div className=\"w-[75%] border border-neutral-200 rounded-lg p-4 flex flex-col gap-6\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"lineDetails\"}>{lineDetails}</div>\n ))}\n </div>\n <div className=\"flex-1 flex-col\">\n <div className=\"p-3 border border-neutral-200 rounded-lg\">\n {label}\n </div>\n <div className=\"border-x border-neutral-200 -mt-1 p-4 pt-[20px] flex items-center gap-2\">\n <div className=\"w-6 h-6\">\n <Skeleton className=\"h-full rounded-f\" />\n </div>\n {label}\n </div>\n <div className=\"border border-neutral-200 rounded-b-lg p-4 pt-0\">\n {timeline}\n </div>\n </div>\n </div>\n </div>\n <div\n className={clsx(\n { [\"hidden\"]: loading },\n \"flex flex-1 w-full h-full flex-col\"\n )}\n >\n {props.children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonList = ({ loading, ...props }) => {\n const tableLine = (\n <div className=\"border-b gap-x-2 border-neutral-200 py-6 px-2 flex items-center justify-between\">\n <div className=\"w-[200px] h-6\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n </div>\n );\n\n const headerItem = (\n <div className=\"border border-neutral-200 rounded-lg py-3 px-2 flex items-center justify-between gap-5\">\n <div className=\"w-[200px] h-6\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n <div className=\"w-[200px]\">\n <Skeleton className=\"h-6\" />\n </div>\n </div>\n );\n\n const buttonPagination = (\n <div className=\"w-8 h-8 rounded-md\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n return (\n <div className=\"flex flex-1 flex-col gap-y-4\">\n <div\n className={clsx(\n { [\"hidden\"]: !loading },\n \"flex-1 flex flex-col h-full justify-between relative\"\n )}\n >\n <div className=\"flex-1\">\n <div className=\"mt-3\">\n {new Array(1).fill(null).map((_, index) => (\n <div key={index + \"second\"}>{headerItem}</div>\n ))}\n {new Array(4).fill(null).map((_, index) => (\n <div key={index + \"third\"}>{tableLine}</div>\n ))}\n </div>\n </div>\n <div className=\"py-4 px-6 sticky bottom-0 bg-surface w-full border border-neutral-200 rounded-t-lg flex items-center gap-3 justify-end\">\n <div className=\"w-[190px] h-6 rounded-md\">\n <Skeleton className=\"h-full\" />\n </div>\n {Array(5)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"buttons\"}>{buttonPagination}</div>\n ))}\n </div>\n </div>\n <div className={clsx({ [\"hidden\"]: loading }, \"flex flex-1 h-full\")}>\n {props.children}\n </div>\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport Skeleton from \"react-loading-skeleton\";\n\nexport const SkeletonRegister = ({ loading, ...props }) => {\n const label = (\n <div className=\"w-[120px] h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const subtitle = (\n <div className=\"w-[204px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const input = (\n <div className=\"w-[316px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n const inputSm = (\n <div className=\"w-[126px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n\n return (\n <>\n <div className={clsx({ [\"hidden\"]: !loading })}>\n <div className=\"flex flex-col gap-5\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center gap-[4px]\">\n {label}\n <div className=\"w-3 h-5\">\n <Skeleton className=\"h-full\" />\n </div>\n {label}\n </div>\n <div className=\"w-[250px] h-7\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"w-full border border-neutral-200 rounded-lg px-4 py-6\">\n <div>\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n {Array(4)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"first\"}>{input}</div>\n ))}\n </div>\n <div className=\"mt-6 flex items-center gap-4\">\n {Array(3)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"second\"}>{input}</div>\n ))}\n </div>\n </div>\n <div className=\"mt-8\">\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n {Array(2)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"third\"}>{input}</div>\n ))}\n </div>\n </div>\n <div className=\"mt-8\">\n {subtitle}\n <div className=\"mt-4 flex items-center gap-4\">\n <div className=\"w-[216px] h-12\">\n <Skeleton className=\"h-full\" />\n </div>\n </div>\n <div className=\"mt-4 flex items-center gap-4\">\n {input}\n {inputSm}\n {input}\n </div>\n <div className=\"mt-4 flex items-center gap-4\">\n {input}\n {input}\n {inputSm}\n </div>\n </div>\n </div>\n </div>\n <div className=\"flex items-center justify-end gap-4 mt-6\">\n {Array(2)\n .fill(null)\n .map((_, index) => (\n <div key={index + \"buttons\"}>{inputSm}</div>\n ))}\n </div>\n </div>\n <div className={clsx({ [\"hidden\"]: loading })}>{props.children}</div>\n </>\n );\n};\n","import clsx from \"clsx\";\n\nexport type StatusBallProps = {\n label?: string;\n variant?: keyof typeof variants;\n labelPosition?: \"left\" | \"right\";\n};\n\nconst variants = {\n success: {\n small: \"bg-success-500\",\n big: \"border border-[1px] border-success-500\",\n },\n dangerous: {\n small: \"bg-dangerous-500\",\n big: \"border border-[1px] border-dangerous-500\",\n },\n warning: {\n small: \"bg-warning-500\",\n big: \"border border-[1px] border-warning-500\",\n },\n info: {\n small: \"bg-blue-500\",\n big: \"border border-[1px] border-blue-500\",\n },\n gray: {\n small: \"bg-neutral-300\",\n big: \"border border-[1px] border-neutral-300\",\n },\n};\n\nexport const StatusBall = ({\n label,\n variant = \"info\",\n labelPosition = \"right\",\n}: StatusBallProps) => {\n const ball = (\n <div\n className={clsx(\n variants[variant].big,\n \"shrink-0 h-3 w-3 rounded-full flex items-center justify-center\",\n )}\n >\n <div\n className={clsx(variants[variant].small, \"h-[8px] w-[8px] rounded-full\")}\n ></div>\n </div>\n );\n\n return (\n <div className=\"flex items-center justify-center gap-2\">\n {labelPosition === \"right\" ? (\n <>\n {ball}\n <span className=\"text-p-md text-paragraph font-normal\">{label}</span>\n </>\n ) : (\n <>\n <span className=\"text-p-md text-paragraph font-normal\">{label}</span>\n {ball}\n </>\n )}\n </div>\n );\n};\n","import { Tab, TabGroup, TabList, TabPanel, TabPanels } from \"@headlessui/react\";\nimport clsx from \"clsx\";\nimport { ReactNode, useState, JSX } from \"react\";\nimport { Button } from \"./Button\";\n\ntype tab = {\n key: string;\n label: string;\n icon: JSX.Element | string;\n children: JSX.Element;\n secondChildren?: JSX.Element;\n required?: boolean;\n disabled?: boolean;\n subPanel?: JSX.Element;\n};\n\nexport type TabProps = {\n tabs: tab[];\n createButtonLabel: string;\n cancelButton: ReactNode;\n buttonDisabled?: boolean;\n buttonLoading?: boolean;\n saveButton?: JSX.Element;\n onClick?: (value: tab) => void;\n onSave?: () => void | number;\n showNextStep?: boolean;\n};\n\nexport const Tabs = ({\n tabs,\n cancelButton,\n buttonDisabled,\n createButtonLabel,\n buttonLoading,\n saveButton,\n onClick,\n onSave,\n showNextStep = true,\n}: TabProps) => {\n const [selectedTab, setSelectedTab] = useState(0);\n\n const ShowSaveButton = saveButton ? (\n <>{saveButton}</>\n ) : (\n <Button\n icon={<i className=\"uil uil-check\"></i>}\n variant=\"primary\"\n loading={buttonLoading}\n onClick={async () => {\n if (onSave) {\n const resp = await onSave();\n if (typeof resp == \"number\") {\n setSelectedTab(resp);\n }\n }\n }}\n >\n {createButtonLabel}\n </Button>\n );\n\n return (\n <div className=\"flex flex-col w-full\">\n <TabGroup\n selectedIndex={selectedTab}\n onChange={(index) => {\n setSelectedTab(index);\n if (onClick) onClick(tabs[index]);\n }}\n >\n <TabList className=\"flex gap-2\">\n {tabs.map((tab, index) => {\n return (\n <Tab\n key={tab.key}\n disabled={tab?.disabled}\n className={({ selected }) =>\n clsx(\n \"group inline-flex rounded-t-lg font-bold text-p-md border border-neutral-200 px-6 py-3 z-20 outline-none focus:outline-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px]\",\n {\n \"text-rose-700 border-b-0 bg-surface shadow-tabs\": selected,\n \"bg-neutral-100 text-rose-700 opacity-80 shadow-tabDisabled\":\n !selected && !tab.disabled,\n \"text-disabled bg-neutral-100 shadow-tabDisabled\":\n tab.disabled && !selected,\n }\n )\n }\n >\n <div\n className={clsx(\n \"-ml-0.5 md:mr-2 flex items-center justify-center font-bold rounded-full h-8 w-8 group-aria-selected:bg-rose-700 group-aria-selected:text-white\",\n {\n \"bg-neutral-200 text-disabled\": tab.disabled,\n \"text-white bg-rose-700\": !tab.disabled,\n }\n )}\n aria-hidden=\"true\"\n >\n <span className=\"mt-[1px]\">{index + 1}</span>\n </div>\n\n <span className=\"self-center hidden md:block\">{tab.label}</span>\n </Tab>\n );\n })}\n </TabList>\n\n <TabPanels>\n {tabs.map((tab) => {\n return (\n <div key={tab.key} className=\"flex flex-col gap-y-6\">\n <TabPanel>\n <div\n className={clsx({\n [\"flex items-start justify-between gap-6 flex-col md:flex-row\"]:\n tab.secondChildren,\n })}\n >\n <div className=\"w-full flex-1\">\n <div className=\"outline-none border border-neutral-200 px-4 py-6 rounded-lg rounded-tl-none -mt-[1px]\">\n {tab.children}\n </div>\n\n {tab.subPanel && (\n <div className=\"mt-4\">{tab.subPanel}</div>\n )}\n </div>\n {tab.secondChildren}\n </div>\n </TabPanel>\n </div>\n );\n })}\n </TabPanels>\n </TabGroup>\n\n <div className=\"flex self-start gap-x-4 mt-6 mb-10\">\n {selectedTab === 0 ? (\n cancelButton\n ) : (\n <Button\n variant=\"secondary\"\n onClick={(e) => {\n e.preventDefault();\n setSelectedTab(selectedTab - 1);\n }}\n >\n Voltar\n </Button>\n )}\n\n {selectedTab !== tabs.length - 1 && showNextStep ? (\n <Button\n variant=\"primary\"\n disabled={buttonDisabled}\n onClick={(e) => {\n if (onClick) onClick(tabs[selectedTab + 1]);\n if (!tabs[selectedTab + 1].disabled) {\n e.preventDefault();\n setSelectedTab(selectedTab + 1);\n }\n }}\n >\n Próximo\n </Button>\n ) : (\n <>{ShowSaveButton}</>\n )}\n </div>\n </div>\n );\n};\n\nTabs.displayName = \"Tabs\";\n","import { FieldError, UseFormRegisterReturn } from \"react-hook-form\";\nimport { DetailedHTMLProps, TextareaHTMLAttributes, useRef } from \"react\";\nimport clsx from \"clsx\";\n\ntype TextAreaProps = DetailedHTMLProps<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n> & {\n label?: string;\n registration?: UseFormRegisterReturn;\n error?: FieldError;\n inputProps?: any;\n};\n\nexport const TextArea = ({\n label,\n registration,\n disabled,\n error,\n inputProps,\n name,\n}: TextAreaProps) => {\n const inputRef = useRef(null);\n\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `border-[0.5px] rounded-lg block pb-[10px] pt-[18px] w-full bg-surface disabled:bg-neutral-100 disabled:shadow-none input-focus-ring text-p-md peer shadow-input pl-2 outline-none ${\n hasError\n ? \"border-dangerous-500 text-dangerous-500\"\n : \"border-stroke text-paragraph\"\n }`,\n label: `cursor-text absolute text-label top-[0.70rem] z-10 transform origin-[0] -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-[10px] left-2.5`,\n };\n\n return (\n <div>\n <div className=\"relative outline-none\">\n <textarea\n id={name}\n name={name}\n ref={inputRef}\n className={clsx(styles.input)}\n placeholder=\" \"\n disabled={disabled}\n rows={4}\n {...registration}\n {...inputProps}\n />\n <label className={clsx(styles.label)} htmlFor={name}>\n {label}\n </label>\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"text-dangerous-500 text-xs mt-[2px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n};\n","import clsx from \"clsx\";\nimport { JSX } from \"react\";\nexport type TimelineProps = {\n data: {\n date?: string;\n label: string;\n description?: string;\n variant: string;\n info?: string;\n action?: JSX.Element;\n color?: string;\n }[];\n};\n\nexport const translateVariant = (variant) => {\n switch (variant) {\n case \"green\":\n return \"success\";\n case \"red\":\n return \"dangerous\";\n case \"orange\":\n return \"warning\";\n case \"blue\":\n return \"info\";\n default:\n return \"gray\";\n }\n};\n\nconst variants = {\n success: {\n small: \"bg-success-500\",\n big: \"bg-success-100\",\n },\n dangerous: {\n small: \"bg-dangerous-500\",\n big: \"bg-dangerous-100\",\n },\n warning: {\n small: \"bg-warning-500\",\n big: \"bg-warning-100\",\n },\n info: {\n small: \"bg-blue-500\",\n big: \"bg-blue-100\",\n },\n gray: {\n small: \"bg-neutral-300\",\n big: \"bg-neutral-100\",\n },\n};\n\nexport const Timeline = ({ data }: TimelineProps) => {\n return (\n <div className=\"flex flex-col\">\n {data?.length > 0 &&\n data?.map((item, index) => (\n <div className=\"flex\" key={index}>\n <div className=\"mr-3 relative\">\n {index !== data.length - 1 && (\n <div className=\"w-[2px] bg-neutral-200 ml-[5px] h-full absolute mt-8\"></div>\n )}\n <div className=\"relative mt-8\">\n <div\n className={clsx(\n {\n [variants[item?.variant]?.big]: !item?.color,\n },\n \"h-3 w-3 rounded-full\"\n )}\n style={{\n backgroundColor:\n item?.color ?? variants[item?.variant]?.big,\n }}\n ></div>\n <div\n className={clsx(\n {\n [variants[item?.variant]?.small]: !item?.color,\n },\n \"h-2 w-2 rounded-full absolute z-30 top-[2px] left-[2px]\"\n )}\n style={{\n backgroundColor:\n item?.color ?? variants[item?.variant]?.small,\n }}\n ></div>\n </div>\n </div>\n <div className=\"flex flex-col mt-3 relative\">\n <span className=\"text-p-sm text-label\">{item?.date}</span>\n <div className=\"flex items-center gap-[3px]\">\n <span className=\"text-p-md text-paragraph font-bold\">\n {item?.label}\n </span>\n {item?.action}\n </div>\n <span className=\"text-p-sm text-paragraph\">\n {item?.description}\n </span>\n <span className=\"text-p-xs text-paragraph\">{item?.info}</span>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nTimeline.displayName = \"Timeline\";","import {\n DetailedHTMLProps,\n HTMLInputTypeAttribute,\n InputHTMLAttributes,\n JSX,\n useRef,\n} from \"react\";\nimport {\n Control,\n Controller,\n FieldError,\n FieldErrorsImpl,\n Merge,\n UseFormRegisterReturn,\n} from \"react-hook-form\";\nimport clsx from \"clsx\";\n\ntype InputFieldProps = DetailedHTMLProps<\n InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n> & {\n label?: string;\n type?: HTMLInputTypeAttribute;\n registration?: UseFormRegisterReturn;\n onClick?: any;\n error?: Merge<FieldError, FieldErrorsImpl<unknown>> | any;\n onBlur?: any;\n onChange?: any;\n inputProps?: any;\n icon?: JSX.Element;\n clearField?: boolean;\n name?: string;\n onClear?: () => void;\n hideInput?: boolean;\n control: Control<unknown> | any;\n searchOnClick?: () => void;\n};\nexport function ControlledInput({\n label,\n type,\n registration,\n onClick,\n error,\n onBlur,\n onChange,\n inputProps,\n icon,\n clearField,\n name,\n required,\n disabled,\n value,\n placeholder,\n defaultValue,\n onKeyUp,\n onKeyDown,\n onClear,\n hideInput,\n control,\n searchOnClick,\n}: InputFieldProps) {\n let inputRef = useRef<HTMLInputElement>(null);\n const fieldValidationMessages = [error?.message];\n\n const hasError = fieldValidationMessages.some((item) => item !== undefined);\n\n const styles = {\n input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${\n label ? \"pt-[22px]\" : \"pt-[10px]\"\n }\n ${!hasError ? \"border-stroke\" : \"\"}`,\n icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${\n hasError ? \"text-dangerous-500\" : \"text-label\"\n }`,\n rightIcon: \"absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]\",\n label:\n \"absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0\",\n clear: `absolute top-[7px] cursor-pointer text-label text-[22px] ${\n searchOnClick ? \"right-[46px]\" : \"right-[8px]\"\n }`,\n error: \"border-dangerous-500 text-dangerous-500\",\n };\n\n const input = name ? document?.getElementById(name) : null;\n\n return (\n <Controller\n name={name as never}\n control={control}\n render={({ field }) => {\n return (\n <div className=\"relative\">\n <div className=\"relative outline-none\">\n {icon && !searchOnClick && (\n <div\n className={clsx(\n styles.icon,\n \"flex justify-center items-center\",\n )}\n >\n {icon}\n </div>\n )}\n <div>\n <input\n {...field}\n id={name}\n type={type}\n name={name}\n className={clsx({\n [styles.error]: hasError,\n [styles.input]: true,\n [\"pr-10\"]: clearField && !searchOnClick,\n [\"pr-[68px]\"]: clearField && searchOnClick,\n [\"pr-2\"]: !clearField && !searchOnClick,\n [\"pl-[57px]\"]: (!label && placeholder && icon) || icon,\n })}\n placeholder={!label && placeholder ? placeholder : \" \"}\n onBlur={onBlur}\n onClick={onClick}\n disabled={disabled}\n ref={inputRef}\n {...inputProps}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n {hideInput && (\n <div\n className={clsx(\n styles.rightIcon,\n \"flex justify-center items-center\",\n )}\n >\n <i className=\"uil uil-eye text-label cursor-pointer text-[20px]\"></i>\n </div>\n )}\n <label\n className={clsx(\n {\n [styles.label]: true,\n [\"left-[3.5rem]\"]: icon,\n [\"left-2.5\"]: !icon,\n },\n \"cursor-text whitespace-nowrap text-ellipsis overflow-hidden pointer-events-none\",\n )}\n htmlFor={name}\n >\n {label}\n {required && label && (\n <strong className=\"text-dangerous-500\">&nbsp;*</strong>\n )}\n </label>\n </div>\n {clearField &&\n field?.value &&\n field?.value !== \"\" &&\n !disabled && (\n <i\n className={clsx(\n {\n [styles.clear]: true,\n },\n \"uil uil-times clear-icon\",\n )}\n onClick={() => {\n field.onChange(\"\");\n if (onClear) {\n onClear();\n }\n }}\n ></i>\n )}\n {searchOnClick && (\n <div className=\"py-1 absolute top-[7px] right-[8px]\">\n <button\n disabled={disabled}\n type=\"button\"\n className={clsx({\n [\"border-l border-input pl-1\"]:\n clearField && field?.value && !disabled,\n [\"text-blue-500\"]: !disabled,\n [\"text-neutral-300\"]: disabled,\n })}\n onClick={searchOnClick}\n >\n {/* Figma \"Input Button / Main action\": ícone vira botão de fato —\n hover clareia com um círculo azul claro, active preenche sólido\n com ícone branco. Antes o ícone não tinha nenhum feedback visual. */}\n <i className=\"uil uil-search text-[16px] rounded-full p-1.5 hover:bg-blue-100 active:bg-blue-500 active:text-white transition-colors\"></i>\n </button>\n </div>\n )}\n </div>\n {fieldValidationMessages.map((message, index) => (\n <div\n key={index}\n className=\"absolute text-dangerous-500 text-xs left-[4px] -bottom-[18px]\"\n role=\"alert\"\n aria-label={message}\n >\n {message}\n </div>\n ))}\n </div>\n );\n }}\n />\n );\n}\n\nControlledInput.displayName = \"ControlledInput\";\n"]}