eai-frontend-components 2.0.22 → 2.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/calendar.tsx","../src/components/ui/card.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/popover.tsx","../src/components/ui/dateRangePicker.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/label.tsx","../src/components/ui/form.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/masks.ts","../src/lib/help/format.ts","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../node_modules/date-fns/locale/pt-BR/_lib/localize.js","../node_modules/date-fns/locale/pt-BR/_lib/match.js","../node_modules/date-fns/locale/pt-BR.js","../src/components/ui/select.tsx","../src/components/ui/custom/date-picker.tsx","../src/components/ui/input.tsx","../src/components/ui/pagination.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toast.tsx","../src/components/ui/use-toast.ts","../src/components/ui/toaster.tsx","../src/components/ui/use-calendar.tsx","../src/lib/help/theme.ts","../src/components/ui/custom/theme-provider.tsx","../src/components/ui/custom/form/form-help-text.tsx","../src/components/ui/custom/form/form-label.tsx","../src/components/ui/custom/form/form-message.tsx","../src/components/ui/custom/form/checkbox.tsx","../src/components/ui/custom/form/utils.ts","../src/components/ui/custom/form/color.tsx","../src/components/ui/custom/form/combobox.tsx","../src/components/ui/custom/form/cpf-cnpj.tsx","../src/components/ui/custom/form/currency.tsx","../src/lib/help/date-utils.ts","../src/components/ui/custom/form/date.tsx","../src/components/ui/custom/form/date-range.tsx","../src/components/ui/custom/form/decimal.tsx","../src/components/ui/custom/form/file.tsx","../src/components/ui/custom/form/ghost.tsx","../src/components/ui/custom/form/input.tsx","../src/components/ui/custom/form/mask.tsx","../src/components/ui/custom/form/multi-select.tsx","../src/components/ui/custom/form/password.tsx","../src/components/ui/custom/form/percent.tsx","../src/components/ui/custom/form/phone.tsx","../src/components/ui/custom/form/radio-group.tsx","../src/components/ui/custom/form/select.tsx","../src/components/ui/custom/form/step-new-form.tsx","../src/components/ui/custom/form/switch.tsx","../src/components/ui/custom/form/text.tsx","../src/components/ui/custom/form/textarea.tsx","../src/components/ui/custom/table/data-table-export.tsx","../src/components/ui/custom/table/data-table-footer.tsx","../src/components/ui/custom/table/data-table-header.tsx","../src/components/ui/custom/table/data-table-rows.tsx","../src/components/ui/custom/table/data-table.tsx","../src/components/ui/custom/sidebar/sidebar-item-two-lines.tsx","../src/components/ui/custom/sidebar/module-switcher.tsx","../src/components/ui/custom/sidebar/sidebar-button.tsx","../src/components/ui/custom/sidebar/sidebar-item.tsx","../src/components/ui/custom/sidebar/nav-footer.tsx","../src/components/ui/custom/sidebar/nav-submenu-collapsible.tsx","../src/components/ui/custom/sidebar/nav-submenu-dropdown.tsx","../src/components/ui/custom/sidebar/types/sidebar.ts","../src/components/ui/custom/sidebar/nav-main.tsx","../src/components/ui/custom/sidebar/nav-user.tsx","../src/components/ui/custom/header.tsx","../src/components/ui/custom/label.tsx","../src/components/ui/custom/not-found.tsx","../src/lib/help/uuid.ts","../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n\treturn twMerge(clsx(inputs));\r\n}\r\n","import * as AccordionPrimitive from '@radix-ui/react-accordion';\r\nimport { ChevronDown } from 'lucide-react';\r\nimport * as React from 'react';\r\n\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Accordion = AccordionPrimitive.Root;\r\n\r\nconst AccordionItem = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\r\n>(({ className, ...props }, ref) => <AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />);\r\nAccordionItem.displayName = 'AccordionItem';\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<AccordionPrimitive.Header className='flex'>\r\n\t\t<AccordionPrimitive.Trigger\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('flex flex-1 items-center justify-between p-4 font-medium transition-all [&[data-state=open]>svg]:rotate-180', className)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t\t<ChevronDown className='h-4 w-4 shrink-0 transition-transform duration-200' />\r\n\t\t</AccordionPrimitive.Trigger>\r\n\t</AccordionPrimitive.Header>\r\n));\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\r\n\r\nconst AccordionContent = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<AccordionPrimitive.Content\r\n\t\tref={ref}\r\n\t\tclassName='overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down'\r\n\t\t{...props}\r\n\t>\r\n\t\t<div className={cn('p-4 pt-0', className)}>{children}</div>\r\n\t</AccordionPrimitive.Content>\r\n));\r\n\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\r\n\r\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\r\n\r\n","import { cva, type VariantProps } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst alertVariants = cva(\r\n\t'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'bg-background text-foreground',\r\n\t\t\t\tdestructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst Alert = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>>(\r\n\t({ className, variant, ...props }, ref) => <div ref={ref} role='alert' className={cn(alertVariants({ variant }), className)} {...props} />,\r\n);\r\nAlert.displayName = 'Alert';\r\n\r\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(({ className, ...props }, ref) => (\r\n\t<h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\r\n));\r\nAlertTitle.displayName = 'AlertTitle';\r\n\r\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\r\n));\r\nAlertDescription.displayName = 'AlertDescription';\r\n\r\nexport { Alert, AlertDescription, AlertTitle };\r\n\r\n","import { Slot } from '@radix-ui/react-slot';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst buttonVariants = cva(\r\n\t'inline-flex items-center justify-center gap-2 self-start px-4 py-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'bg-background-primary text-white hover:bg-background-primary-hover disabled:opacity-50',\r\n\t\t\t\tsecondary: 'bg-secondary text-secondary-foreground hover:bg-secondary-hover disabled:opacity-50',\r\n\t\t\t\tdestructive: 'bg-red-600 text-destructive-foreground hover:bg-destructive/90 disabled:opacity-50',\r\n\t\t\t\toutline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground disabled:opacity-50',\r\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground disabled:opacity-50',\r\n\t\t\t\tlink: 'text-primary underline-offset-4 hover:underline disabled:opacity-50',\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tdefault: 'h-10 px-4 py-2',\r\n\t\t\t\tsm: 'h-9 rounded-md px-3',\r\n\t\t\t\tlg: 'h-11 rounded-md px-8',\r\n\t\t\t\ticon: 'h-10 w-10',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t\tsize: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\r\n\tasChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(({ className, variant, size, asChild = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\treturn <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />;\r\n});\r\nButton.displayName = 'Button';\r\n\r\nexport { Button, buttonVariants };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\r\nimport * as React from \"react\"\r\nimport { buttonVariants } from \"./button\"\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n))\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n))\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\r\n\r\nconst AlertDialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-2 text-center sm:text-left\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\r\n\r\nconst AlertDialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\"text-lg font-semibold\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogDescription.displayName =\r\n AlertDialogPrimitive.Description.displayName\r\n\r\n const AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> & {\r\n variant?: \"default\" | \"outline\" | \"destructive\" | \"secondary\"; // Adapte conforme suas variantes\r\n }\r\n>(({ className, variant = \"default\", ...props }, ref) => (\r\n <AlertDialogPrimitive.Action\r\n ref={ref}\r\n className={cn(buttonVariants({ variant }), className)}\r\n {...props}\r\n />\r\n));\r\n\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\r\n\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel> & {\r\n variant?: \"default\" | \"outline\" | \"destructive\" | \"secondary\"; // Adapte conforme suas variantes\r\n }\r\n>(({ className, variant = \"outline\", ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(\r\n buttonVariants({ variant }), // Usa a variante passada como prop\r\n \"mt-2 sm:mt-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\n\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\r\n\r\n\r\nexport {\r\n AlertDialog, AlertDialogAction,\r\n AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger\r\n}\r\n\r\n","import * as React from \"react\"\r\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatar.displayName = AvatarPrimitive.Root.displayName\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn(\"aspect-square h-full w-full\", className)}\r\n {...props}\r\n />\r\n))\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback }\r\n","import { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst badgeVariants = cva(\r\n\t'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'border-transparent bg-background-primary text-primary-foreground',\r\n\t\t\t\tsecondary: 'border-transparent bg-background-secondary text-secondary-foreground',\r\n\t\t\t\tsurface: 'border-transparent bg-primary-100 text-primary',\r\n\t\t\t\tdestructive: 'border-transparent bg-destructive text-destructive-foreground',\r\n\t\t\t\toutline: 'text-foreground',\r\n\t\t\t\tgreen: 'border-transparent bg-green-50 text-emerald-700',\r\n\t\t\t\tred: 'border-transparent bg-red-50 text-red-600',\r\n\t\t\t\tgray: 'border-transparent bg-zinc-100 text-zinc-950',\r\n\t\t\t\tblue: 'border-transparent bg-blue-50 text-blue-600',\r\n\t\t\t\torange: 'border-transparent bg-orange-50 text-orange-600',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n\treturn <div className={cn(badgeVariants({ variant }), className)} {...props} />;\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n\r\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Breadcrumb = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentPropsWithoutRef<\"nav\"> & {\r\n separator?: React.ReactNode\r\n }\r\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\r\nBreadcrumb.displayName = \"Breadcrumb\"\r\n\r\nconst BreadcrumbList = React.forwardRef<\r\n HTMLOListElement,\r\n React.ComponentPropsWithoutRef<\"ol\">\r\n>(({ className, ...props }, ref) => (\r\n <ol\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbList.displayName = \"BreadcrumbList\"\r\n\r\nconst BreadcrumbItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentPropsWithoutRef<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li\r\n ref={ref}\r\n className={cn(\"inline-flex items-center gap-1.5\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\r\n\r\nconst BreadcrumbLink = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentPropsWithoutRef<\"a\"> & {\r\n asChild?: boolean\r\n }\r\n>(({ asChild, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n className={cn(\"transition-colors hover:text-foreground\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\r\n\r\nconst BreadcrumbPage = React.forwardRef<\r\n HTMLSpanElement,\r\n React.ComponentPropsWithoutRef<\"span\">\r\n>(({ className, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn(\"font-normal text-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\r\n\r\nconst BreadcrumbSeparator = ({\r\n children,\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"li\">) => (\r\n <li\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRight />}\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\r\n\r\nconst BreadcrumbEllipsis = ({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) => (\r\n <span\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n)\r\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n}\r\n","import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\r\nimport { cn } from '../../lib/utils';\r\nimport { Button, buttonVariants } from './button';\r\n\r\nfunction Calendar({\r\n\tclassName,\r\n\tclassNames,\r\n\tshowOutsideDays = true,\r\n\tcaptionLayout = 'label',\r\n\tbuttonVariant = 'ghost',\r\n\tformatters,\r\n\tcomponents,\r\n\t...props\r\n}: React.ComponentProps<typeof DayPicker> & {\r\n\tbuttonVariant?: React.ComponentProps<typeof Button>['variant'];\r\n}) {\r\n\tconst defaultClassNames = getDefaultClassNames();\r\n\r\n\treturn (\r\n\t\t<DayPicker\r\n\t\t\tshowOutsideDays={showOutsideDays}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\r\n\t\t\t\tString.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\r\n\t\t\t\tString.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tcaptionLayout={captionLayout}\r\n\t\t\tformatters={{\r\n\t\t\t\tformatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\r\n\t\t\t\t...formatters,\r\n\t\t\t}}\r\n\t\t\tclassNames={{\r\n\t\t\t\troot: cn('w-fit', defaultClassNames.root),\r\n\t\t\t\tmonths: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\r\n\t\t\t\tmonth: cn('flex w-full flex-col gap-4', defaultClassNames.month),\r\n\t\t\t\tnav: cn('absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1', defaultClassNames.nav),\r\n\t\t\t\tbutton_previous: cn(\r\n\t\t\t\t\tbuttonVariants({ variant: buttonVariant }),\r\n\t\t\t\t\t'h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50',\r\n\t\t\t\t\tdefaultClassNames.button_previous,\r\n\t\t\t\t),\r\n\t\t\t\tbutton_next: cn(\r\n\t\t\t\t\tbuttonVariants({ variant: buttonVariant }),\r\n\t\t\t\t\t'h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50',\r\n\t\t\t\t\tdefaultClassNames.button_next,\r\n\t\t\t\t),\r\n\t\t\t\tmonth_caption: cn('flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]', defaultClassNames.month_caption),\r\n\t\t\t\tdropdowns: cn('flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium', defaultClassNames.dropdowns),\r\n\t\t\t\tdropdown_root: cn(\r\n\t\t\t\t\t'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\r\n\t\t\t\t\tdefaultClassNames.dropdown_root,\r\n\t\t\t\t),\r\n\t\t\t\tdropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\r\n\t\t\t\tcaption_label: cn(\r\n\t\t\t\t\t'select-none font-medium',\r\n\t\t\t\t\tcaptionLayout === 'label'\r\n\t\t\t\t\t\t? 'text-sm'\r\n\t\t\t\t\t\t: '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\r\n\t\t\t\t\tdefaultClassNames.caption_label,\r\n\t\t\t\t),\r\n\t\t\t\ttable: 'w-full border-collapse',\r\n\t\t\t\tweekdays: cn('flex', defaultClassNames.weekdays),\r\n\t\t\t\tweekday: cn('text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal', defaultClassNames.weekday),\r\n\t\t\t\tweek: cn('mt-2 flex w-full', defaultClassNames.week),\r\n\t\t\t\tweek_number_header: cn('w-[--cell-size] select-none', defaultClassNames.week_number_header),\r\n\t\t\t\tweek_number: cn('text-muted-foreground select-none text-[0.8rem]', defaultClassNames.week_number),\r\n\t\t\t\tday: cn(\r\n\t\t\t\t\t'group/day relative aspect-square h-[32px] w-[32px] select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\r\n\t\t\t\t\tdefaultClassNames.day,\r\n\t\t\t\t),\r\n\t\t\t\trange_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\r\n\t\t\t\trange_middle: cn('rounded-none', defaultClassNames.range_middle),\r\n\t\t\t\trange_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\r\n\t\t\t\ttoday: cn('bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none', defaultClassNames.today),\r\n\t\t\t\toutside: cn('text-muted-foreground aria-selected:text-muted-foreground', defaultClassNames.outside),\r\n\t\t\t\tdisabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\r\n\t\t\t\thidden: cn('invisible', defaultClassNames.hidden),\r\n\t\t\t\t...classNames,\r\n\t\t\t}}\r\n\t\t\tcomponents={{\r\n\t\t\t\tRoot: ({ className, rootRef, ...props }) => {\r\n\t\t\t\t\treturn <div data-slot='calendar' ref={rootRef} className={cn(className)} {...props} />;\r\n\t\t\t\t},\r\n\t\t\t\tChevron: ({ className, orientation, ...props }) => {\r\n\t\t\t\t\tif (orientation === 'left') {\r\n\t\t\t\t\t\treturn <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (orientation === 'right') {\r\n\t\t\t\t\t\treturn <ChevronRightIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn <ChevronDownIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t},\r\n\t\t\t\tDayButton: CalendarDayButton,\r\n\t\t\t\tWeekNumber: ({ children, ...props }) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<td {...props}>\r\n\t\t\t\t\t\t\t<div className='flex size-[--cell-size] items-center justify-center text-center'>{children}</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\t...components,\r\n\t\t\t}}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\nfunction CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>) {\r\n\tconst defaultClassNames = getDefaultClassNames();\r\n\r\n\tconst ref = React.useRef<HTMLButtonElement>(null);\r\n\tReact.useEffect(() => {\r\n\t\tif (modifiers.focused) ref.current?.focus();\r\n\t}, [modifiers.focused]);\r\n\r\n\treturn (\r\n\t\t<Button\r\n\t\t\tref={ref}\r\n\t\t\tvariant='ghost'\r\n\t\t\tsize='icon'\r\n\t\t\tdata-day={day.date.toLocaleDateString()}\r\n\t\t\tdata-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\r\n\t\t\tdata-range-start={modifiers.range_start}\r\n\t\t\tdata-range-end={modifiers.range_end}\r\n\t\t\tdata-range-middle={modifiers.range_middle}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'data-[selected-single=true]:bg-background-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-background-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-background-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\r\n\t\t\t\tdefaultClassNames.day,\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\nexport { Calendar, CalendarDayButton };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)} {...props} />\r\n));\r\nCard.displayName = 'Card';\r\n\r\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('flex p-6', className)} {...props} />\r\n));\r\nCardHeader.displayName = 'CardHeader';\r\n\r\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-2xl font-semibold leading-none tracking-tight', className)} {...props} />\r\n));\r\nCardTitle.displayName = 'CardTitle';\r\n\r\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\r\n));\r\nCardDescription.displayName = 'CardDescription';\r\n\r\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('py-8 px-6', className)} {...props} />\r\n));\r\nCardContent.displayName = 'CardContent';\r\n\r\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('flex items-center p-6', className)} {...props} />\r\n));\r\nCardFooter.displayName = 'CardFooter';\r\n\r\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from \"embla-carousel-react\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { Button } from \"./button\"\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: \"horizontal\" | \"vertical\"\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) {\r\n return\r\n }\r\n\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n onSelect(api)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn(\"relative\", className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = \"Carousel\"\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex\",\r\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = \"CarouselContent\"\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n \"min-w-0 shrink-0 grow-0 basis-full\",\r\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = \"CarouselItem\"\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute h-8 w-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"-left-12 top-1/2 -translate-y-1/2\"\r\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = \"CarouselPrevious\"\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute h-8 w-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"-right-12 top-1/2 -translate-y-1/2\"\r\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = \"CarouselNext\"\r\n\r\nexport {\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem, CarouselNext, CarouselPrevious, type CarouselApi\r\n}\r\n\r\n","import * as React from 'react';\r\nimport * as RechartsPrimitive from 'recharts';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst THEMES = { light: '', dark: '.dark' } as const;\r\n\r\nexport type ChartConfig = {\r\n\t[k in string]: {\r\n\t\tlabel?: React.ReactNode;\r\n\t\ticon?: React.ComponentType;\r\n\t} & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\r\n};\r\n\r\ntype ChartContextProps = {\r\n\tconfig: ChartConfig;\r\n};\r\n\r\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\r\n\r\nfunction useChart() {\r\n\tconst context = React.useContext(ChartContext);\r\n\r\n\tif (!context) {\r\n\t\tthrow new Error('useChart must be used within a <ChartContainer />');\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n\r\nconst ChartContainer = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tconfig: ChartConfig;\r\n\t\tchildren: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\r\n\t}\r\n>(({ id, className, children, config, ...props }, ref) => {\r\n\tconst uniqueId = React.useId();\r\n\tconst chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\r\n\r\n\treturn (\r\n\t\t<ChartContext.Provider value={{ config }}>\r\n\t\t\t<div\r\n\t\t\t\tdata-chart={chartId}\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<ChartStyle id={chartId} config={config} />\r\n\t\t\t\t<RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\r\n\t\t\t</div>\r\n\t\t</ChartContext.Provider>\r\n\t);\r\n});\r\nChartContainer.displayName = 'Chart';\r\n\r\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\r\n\tconst colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);\r\n\r\n\tif (!colorConfig.length) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<style\r\n\t\t\t// biome-ignore lint/security/noDangerouslySetInnerHtml: Chart theme CSS generation requires dynamic CSS injection\r\n\t\t\tdangerouslySetInnerHTML={{\r\n\t\t\t\t__html: Object.entries(THEMES)\r\n\t\t\t\t\t.map(\r\n\t\t\t\t\t\t([theme, prefix]) => `\r\n${prefix} [data-chart=${id}] {\r\n${colorConfig\r\n\t.map(([key, itemConfig]) => {\r\n\t\tconst color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\r\n\t\treturn color ? ` --color-${key}: ${color};` : null;\r\n\t})\r\n\t.join('\\n')}\r\n}\r\n`,\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.join('\\n'),\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nconst ChartTooltip = RechartsPrimitive.Tooltip;\r\n\r\nconst ChartTooltipContent = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<typeof RechartsPrimitive.Tooltip> &\r\n\t\tReact.ComponentProps<'div'> & {\r\n\t\t\thideLabel?: boolean;\r\n\t\t\thideIndicator?: boolean;\r\n\t\t\tindicator?: 'line' | 'dot' | 'dashed';\r\n\t\t\tnameKey?: string;\r\n\t\t\tlabelKey?: string;\r\n\t\t}\r\n>(\r\n\t(\r\n\t\t{\r\n\t\t\tactive,\r\n\t\t\tpayload,\r\n\t\t\tclassName,\r\n\t\t\tindicator = 'dot',\r\n\t\t\thideLabel = false,\r\n\t\t\thideIndicator = false,\r\n\t\t\tlabel,\r\n\t\t\tlabelFormatter,\r\n\t\t\tlabelClassName,\r\n\t\t\tformatter,\r\n\t\t\tcolor,\r\n\t\t\tnameKey,\r\n\t\t\tlabelKey,\r\n\t\t},\r\n\t\tref,\r\n\t) => {\r\n\t\tconst { config } = useChart();\r\n\r\n\t\tconst tooltipLabel = React.useMemo(() => {\r\n\t\t\tif (hideLabel || !payload?.length) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tconst [item] = payload;\r\n\t\t\tconst key = `${labelKey || item.dataKey || item.name || 'value'}`;\r\n\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\t\t\tconst value = !labelKey && typeof label === 'string' ? config[label as keyof typeof config]?.label || label : itemConfig?.label;\r\n\r\n\t\t\tif (labelFormatter) {\r\n\t\t\t\treturn <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\r\n\t\t\t}\r\n\r\n\t\t\tif (!value) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn <div className={cn('font-medium', labelClassName)}>{value}</div>;\r\n\t\t}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\r\n\r\n\t\tif (!active || !payload?.length) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst nestLabel = payload.length === 1 && indicator !== 'dot';\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t{!nestLabel ? tooltipLabel : null}\r\n\t\t\t\t<div className='grid gap-1.5'>\r\n\t\t\t\t\t{payload.map((item, index) => {\r\n\t\t\t\t\t\tconst key = `${nameKey || item.name || item.dataKey || 'value'}`;\r\n\t\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\t\t\t\t\t\tconst indicatorColor = color || item.payload.fill || item.color;\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tkey={item.dataKey}\r\n\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\r\n\t\t\t\t\t\t\t\t\tindicator === 'dot' && 'items-center',\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{formatter && item?.value !== undefined && item.name ? (\r\n\t\t\t\t\t\t\t\t\tformatter(item.value, item.name, item, index, item.payload)\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{itemConfig?.icon ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<itemConfig.icon />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t!hideIndicator && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'h-2.5 w-2.5': indicator === 'dot',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'w-1': indicator === 'line',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'my-0.5': nestLabel && indicator === 'dashed',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-bg': indicatorColor,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-border': indicatorColor,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t<div className={cn('flex flex-1 justify-between leading-none', nestLabel ? 'items-end' : 'items-center')}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className='grid gap-1.5'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{nestLabel ? tooltipLabel : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className='text-muted-foreground'>{itemConfig?.label || item.name}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t{item.value && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className='font-mono font-medium tabular-nums text-foreground'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.value.toLocaleString()}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\nChartTooltipContent.displayName = 'ChartTooltip';\r\n\r\nconst ChartLegend = RechartsPrimitive.Legend;\r\n\r\nconst ChartLegendContent = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> &\r\n\t\tPick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\r\n\t\t\thideIcon?: boolean;\r\n\t\t\tnameKey?: string;\r\n\t\t}\r\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\r\n\tconst { config } = useChart();\r\n\r\n\tif (!payload?.length) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div ref={ref} className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}>\r\n\t\t\t{payload.map((item) => {\r\n\t\t\t\tconst key = `${nameKey || item.dataKey || 'value'}`;\r\n\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div key={item.value} className={cn('flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground')}>\r\n\t\t\t\t\t\t{itemConfig?.icon && !hideIcon ? (\r\n\t\t\t\t\t\t\t<itemConfig.icon />\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName='h-2 w-2 shrink-0 rounded-[2px]'\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: item.color,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{itemConfig?.label}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t</div>\r\n\t);\r\n});\r\nChartLegendContent.displayName = 'ChartLegend';\r\n\r\n// Helper to extract item config from a payload.\r\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\r\n\tif (typeof payload !== 'object' || payload === null) {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst payloadPayload = 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null ? payload.payload : undefined;\r\n\r\n\tlet configLabelKey: string = key;\r\n\r\n\tif (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\r\n\t\tconfigLabelKey = payload[key as keyof typeof payload] as string;\r\n\t} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key as keyof typeof payloadPayload] === 'string') {\r\n\t\tconfigLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\r\n\t}\r\n\r\n\treturn configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\r\n}\r\n\r\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\r\n","import * as CheckboxPrimitive from '@radix-ui/react-checkbox';\r\nimport { Check } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Checkbox = React.forwardRef<React.ElementRef<typeof CheckboxPrimitive.Root>, React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>>(\r\n\t({ className, value, ...props }, ref) => (\r\n\t\t<CheckboxPrimitive.Root\r\n\t\t\tref={ref}\r\n\t\t\tchecked={!!value}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'peer h-4 w-4 shrink-0 rounded-sm border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-background-primary data-[state=checked]:text-primary-foreground',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\r\n\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t</CheckboxPrimitive.Indicator>\r\n\t\t</CheckboxPrimitive.Root>\r\n\t),\r\n);\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\r\n\r\nexport { Checkbox };\r\n\r\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nconst Collapsible = CollapsiblePrimitive.Root\r\n\r\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\r\n\r\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","'use client';\r\n\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Dialog = DialogPrimitive.Root;\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger;\r\n\r\nconst DialogPortal = DialogPrimitive.Portal;\r\n\r\nconst DialogClose = DialogPrimitive.Close;\r\n\r\nconst DialogOverlay = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Overlay>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n\t<DialogPrimitive.Overlay\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\r\n\r\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\r\n\thideClose?: boolean;\r\n}\r\n\r\nconst DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\r\n\t({ className, children, hideClose, ...props }, ref) => (\r\n\t\t<DialogPortal>\r\n\t\t\t<DialogOverlay />\r\n\t\t\t<DialogPrimitive.Content\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'fixed left-[50%] top-[50%] z-50 grid translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t\t{!hideClose && (\r\n\t\t\t\t\t<DialogPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground'>\r\n\t\t\t\t\t\t<X className='h-4 w-4' />\r\n\t\t\t\t\t\t<span className='sr-only'>Close</span>\r\n\t\t\t\t\t</DialogPrimitive.Close>\r\n\t\t\t\t)}\r\n\t\t\t</DialogPrimitive.Content>\r\n\t\t</DialogPortal>\r\n\t),\r\n);\r\nDialogContent.displayName = DialogPrimitive.Content.displayName;\r\n\r\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\r\n);\r\nDialogHeader.displayName = 'DialogHeader';\r\n\r\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\r\n);\r\nDialogFooter.displayName = 'DialogFooter';\r\n\r\nconst DialogTitle = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Title>, React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<DialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold leading-none tracking-tight', className)} {...props} />\r\n\t),\r\n);\r\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\r\n\r\nconst DialogDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\r\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\r\n\r\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\r\nimport { Command as CommandPrimitive } from \"cmdk\"\r\nimport { Search } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { Dialog, DialogContent } from \"./dialog\"\r\n\r\nconst Command = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive\r\n ref={ref}\r\n className={cn(\r\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nCommand.displayName = CommandPrimitive.displayName\r\n\r\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\r\n return (\r\n <Dialog {...props}>\r\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n\r\nconst CommandInput = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Input>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\r\n>(({ className, ...props }, ref) => (\r\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\r\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n ref={ref}\r\n className={cn(\r\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n))\r\n\r\nCommandInput.displayName = CommandPrimitive.Input.displayName\r\n\r\nconst CommandList = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.List\r\n ref={ref}\r\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandList.displayName = CommandPrimitive.List.displayName\r\n\r\nconst CommandEmpty = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Empty>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\r\n>((props, ref) => (\r\n <CommandPrimitive.Empty\r\n ref={ref}\r\n className=\"py-6 text-center text-sm\"\r\n {...props}\r\n />\r\n))\r\n\r\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\r\n\r\nconst CommandGroup = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Group>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Group\r\n ref={ref}\r\n className={cn(\r\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandGroup.displayName = CommandPrimitive.Group.displayName\r\n\r\nconst CommandSeparator = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 h-px bg-border\", className)}\r\n {...props}\r\n />\r\n))\r\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\r\n\r\nconst CommandItem = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandItem.displayName = CommandPrimitive.Item.displayName\r\n\r\nconst CommandShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nCommandShortcut.displayName = \"CommandShortcut\"\r\n\r\nexport {\r\n Command,\r\n CommandDialog, CommandEmpty,\r\n CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut\r\n}\r\n\r\n","import * as React from \"react\"\r\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst ContextMenu = ContextMenuPrimitive.Root\r\n\r\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\r\n\r\nconst ContextMenuGroup = ContextMenuPrimitive.Group\r\n\r\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\r\n\r\nconst ContextMenuSub = ContextMenuPrimitive.Sub\r\n\r\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\r\n\r\nconst ContextMenuSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto h-4 w-4\" />\r\n </ContextMenuPrimitive.SubTrigger>\r\n))\r\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\r\n\r\nconst ContextMenuSubContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\r\n\r\nconst ContextMenuContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Portal>\r\n <ContextMenuPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </ContextMenuPrimitive.Portal>\r\n))\r\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\r\n\r\nconst ContextMenuItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\r\n\r\nconst ContextMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n <ContextMenuPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.CheckboxItem>\r\n))\r\nContextMenuCheckboxItem.displayName =\r\n ContextMenuPrimitive.CheckboxItem.displayName\r\n\r\nconst ContextMenuRadioItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.RadioItem>\r\n))\r\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\r\n\r\nconst ContextMenuLabel = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\r\n\r\nconst ContextMenuSeparator = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\r\n {...props}\r\n />\r\n))\r\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\r\n\r\nconst ContextMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\r\n\r\nexport {\r\n ContextMenu,\r\n ContextMenuTrigger,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuCheckboxItem,\r\n ContextMenuRadioItem,\r\n ContextMenuLabel,\r\n ContextMenuSeparator,\r\n ContextMenuShortcut,\r\n ContextMenuGroup,\r\n ContextMenuPortal,\r\n ContextMenuSub,\r\n ContextMenuSubContent,\r\n ContextMenuSubTrigger,\r\n ContextMenuRadioGroup,\r\n}\r\n","import * as PopoverPrimitive from '@radix-ui/react-popover';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Popover = PopoverPrimitive.Root;\r\n\r\nconst PopoverTrigger = PopoverPrimitive.Trigger;\r\n\r\nconst PopoverContent = React.forwardRef<\r\n\tReact.ElementRef<typeof PopoverPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n\t<PopoverPrimitive.Portal>\r\n\t\t<PopoverPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\talign={align}\r\n\t\t\tsideOffset={sideOffset}\r\n\t\t\tonWheel={(e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t</PopoverPrimitive.Portal>\r\n));\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\r\n\r\nexport { Popover, PopoverContent, PopoverTrigger };\r\n\r\n","import { addDays, format } from \"date-fns\"\r\nimport { CalendarIcon } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { DateRange } from \"react-day-picker\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"./button\"\r\nimport { Calendar } from \"./calendar\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"./popover\"\r\n\r\nexport function DatePickerWithRange({\r\n className,\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n const [date, setDate] = React.useState<DateRange | undefined>({\r\n from: new Date(2022, 0, 20),\r\n to: addDays(new Date(2022, 0, 20), 20),\r\n })\r\n\r\n return (\r\n <div className={cn(\"grid gap-2\", className)}>\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant={\"outline\"}\r\n className={cn(\r\n \"w-[300px] justify-start text-left font-normal\",\r\n !date && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon />\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, \"LLL dd, y\")} -{\" \"}\r\n {format(date.to, \"LLL dd, y\")}\r\n </>\r\n ) : (\r\n format(date.from, \"LLL dd, y\")\r\n )\r\n ) : (\r\n <span>Pick a date</span>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n initialFocus\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={setDate}\r\n numberOfMonths={2}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n )\r\n}\r\n","import * as React from \"react\"\r\nimport { Drawer as DrawerPrimitive } from \"vaul\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Drawer = ({\r\n shouldScaleBackground = true,\r\n ...props\r\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\r\n <DrawerPrimitive.Root\r\n shouldScaleBackground={shouldScaleBackground}\r\n {...props}\r\n />\r\n)\r\nDrawer.displayName = \"Drawer\"\r\n\r\nconst DrawerTrigger = DrawerPrimitive.Trigger\r\n\r\nconst DrawerPortal = DrawerPrimitive.Portal\r\n\r\nconst DrawerClose = DrawerPrimitive.Close\r\n\r\nconst DrawerOverlay = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Overlay\r\n ref={ref}\r\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\r\n\r\nconst DrawerContent = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <DrawerPortal>\r\n <DrawerOverlay />\r\n <DrawerPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\r\n {children}\r\n </DrawerPrimitive.Content>\r\n </DrawerPortal>\r\n))\r\nDrawerContent.displayName = \"DrawerContent\"\r\n\r\nconst DrawerHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerHeader.displayName = \"DrawerHeader\"\r\n\r\nconst DrawerFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerFooter.displayName = \"DrawerFooter\"\r\n\r\nconst DrawerTitle = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Title\r\n ref={ref}\r\n className={cn(\r\n \"text-lg font-semibold leading-none tracking-tight\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\r\n\r\nconst DrawerDescription = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\r\n\r\nexport {\r\n Drawer,\r\n DrawerPortal,\r\n DrawerOverlay,\r\n DrawerTrigger,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerHeader,\r\n DrawerFooter,\r\n DrawerTitle,\r\n DrawerDescription,\r\n}\r\n","import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { Check, ChevronRight, Circle } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst DropdownMenu = DropdownMenuPrimitive.Root;\r\n\r\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\r\n\r\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\r\n\r\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\r\n\r\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\r\n\r\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\r\n\r\nconst DropdownMenuSubTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, children, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.SubTrigger\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',\r\n\t\t\tinset && 'pl-8',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{children}\r\n\t\t<ChevronRight className='ml-auto h-4 w-4' />\r\n\t</DropdownMenuPrimitive.SubTrigger>\r\n));\r\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\r\n\r\nconst DropdownMenuSubContent = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.SubContent\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\r\n\r\nconst DropdownMenuContent = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Portal>\r\n\t\t<DropdownMenuPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tsideOffset={sideOffset}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t</DropdownMenuPrimitive.Portal>\r\n));\r\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\r\n\r\nconst DropdownMenuItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Item\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tinset && 'pl-8',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\r\n\r\nconst DropdownMenuCheckboxItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.CheckboxItem\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\tchecked={checked}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t<DropdownMenuPrimitive.ItemIndicator>\r\n\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t</DropdownMenuPrimitive.ItemIndicator>\r\n\t\t</span>\r\n\t\t{children}\r\n\t</DropdownMenuPrimitive.CheckboxItem>\r\n));\r\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\r\n\r\nconst DropdownMenuRadioItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.RadioItem\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t<DropdownMenuPrimitive.ItemIndicator>\r\n\t\t\t\t<Circle className='h-2 w-2 fill-current' />\r\n\t\t\t</DropdownMenuPrimitive.ItemIndicator>\r\n\t\t</span>\r\n\t\t{children}\r\n\t</DropdownMenuPrimitive.RadioItem>\r\n));\r\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\r\n\r\nconst DropdownMenuLabel = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Label>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)} {...props} />\r\n));\r\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\r\n\r\nconst DropdownMenuSeparator = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Separator>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <DropdownMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />);\r\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\r\n\r\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\r\n\treturn <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />;\r\n};\r\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\r\n\r\nexport {\r\n\tDropdownMenu,\r\n\tDropdownMenuCheckboxItem,\r\n\tDropdownMenuContent,\r\n\tDropdownMenuGroup,\r\n\tDropdownMenuItem,\r\n\tDropdownMenuLabel,\r\n\tDropdownMenuPortal,\r\n\tDropdownMenuRadioGroup,\r\n\tDropdownMenuRadioItem,\r\n\tDropdownMenuSeparator,\r\n\tDropdownMenuShortcut,\r\n\tDropdownMenuSub,\r\n\tDropdownMenuSubContent,\r\n\tDropdownMenuSubTrigger,\r\n\tDropdownMenuTrigger\r\n};\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst labelVariants = cva('text-sm font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70');\r\n\r\nconst Label = React.forwardRef<\r\n\tReact.ElementRef<typeof LabelPrimitive.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\r\n>(({ className, ...props }, ref) => <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />);\r\nLabel.displayName = LabelPrimitive.Root.displayName;\r\n\r\nexport { Label };\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport * as React from 'react';\r\nimport { Controller, ControllerProps, FieldPath, FieldValues, FormProvider, useFormContext } from 'react-hook-form';\r\nimport { cn } from '../../lib/utils';\r\nimport { Label } from './label';\r\n\r\nconst Form = FormProvider;\r\n\r\ntype FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {\r\n\tname: TName;\r\n};\r\n\r\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);\r\n\r\nconst FormField = <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({\r\n\t...props\r\n}: ControllerProps<TFieldValues, TName>) => {\r\n\treturn (\r\n\t\t<FormFieldContext.Provider value={{ name: props.name }}>\r\n\t\t\t<Controller {...props} />\r\n\t\t</FormFieldContext.Provider>\r\n\t);\r\n};\r\n\r\nconst useFormField = () => {\r\n\tconst fieldContext = React.useContext(FormFieldContext);\r\n\tconst itemContext = React.useContext(FormItemContext);\r\n\tconst { getFieldState, formState } = useFormContext();\r\n\r\n\tconst fieldState = getFieldState(fieldContext.name, formState);\r\n\r\n\tif (!fieldContext) {\r\n\t\tthrow new Error('useFormField should be used within <FormField>');\r\n\t}\r\n\r\n\tconst { id } = itemContext;\r\n\r\n\treturn {\r\n\t\tid,\r\n\t\tname: fieldContext.name,\r\n\t\tformItemId: `${id}-form-item`,\r\n\t\tformDescriptionId: `${id}-form-item-description`,\r\n\t\tformMessageId: `${id}-form-item-message`,\r\n\t\t...fieldState,\r\n\t};\r\n};\r\n\r\ntype FormItemContextValue = {\r\n\tid: string;\r\n};\r\n\r\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);\r\n\r\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => {\r\n\tconst id = React.useId();\r\n\r\n\treturn (\r\n\t\t<FormItemContext.Provider value={{ id }}>\r\n\t\t\t<div ref={ref} className={cn('', className)} {...props} />\r\n\t\t</FormItemContext.Provider>\r\n\t);\r\n});\r\nFormItem.displayName = 'FormItem';\r\n\r\nconst FormLabel = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst { error, formItemId } = useFormField();\r\n\r\n\t\treturn <Label ref={ref} className={cn(error && 'text-destructive', className)} htmlFor={formItemId} {...props} />;\r\n\t},\r\n);\r\nFormLabel.displayName = 'FormLabel';\r\n\r\nconst FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(({ ...props }, ref) => {\r\n\tconst { error, formItemId, formDescriptionId, formMessageId } = useFormField();\r\n\r\n\treturn (\r\n\t\t<Slot\r\n\t\t\tref={ref}\r\n\t\t\tid={formItemId}\r\n\t\t\taria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\r\n\t\t\taria-invalid={!!error}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nFormControl.displayName = 'FormControl';\r\n\r\nconst FormDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, ...props }, ref) => {\r\n\tconst { formDescriptionId } = useFormField();\r\n\r\n\treturn <p ref={ref} id={formDescriptionId} className={cn('text-sm text-muted-foreground', className)} {...props} />;\r\n});\r\nFormDescription.displayName = 'FormDescription';\r\n\r\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, children, ...props }, ref) => {\r\n\tconst { error, formMessageId } = useFormField();\r\n\tconst body = error ? String(error?.message) : children;\r\n\r\n\tif (!body) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<p ref={ref} id={formMessageId} className={cn('text-sm font-medium text-destructive', className)} {...props}>\r\n\t\t\t{body}\r\n\t\t</p>\r\n\t);\r\n});\r\nFormMessage.displayName = 'FormMessage';\r\n\r\nexport { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };\r\n\r\n","import * as HoverCardPrimitive from '@radix-ui/react-hover-card';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst HoverCard = HoverCardPrimitive.Root;\r\n\r\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\r\n\r\nconst HoverCardContent = React.forwardRef<\r\n\tReact.ElementRef<typeof HoverCardPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n\t<HoverCardPrimitive.Content\r\n\t\tref={ref}\r\n\t\talign={align}\r\n\t\tsideOffset={sideOffset}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 w-auto mr-20 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\r\n\r\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\r\n\r\n","import { Modify } from '@react-input/mask';\r\n\r\n/**\r\n * Type for mask modification functions.\r\n * Fallback for projects without @react-input/mask types.\r\n */\r\nexport type MaskModifyFunction = Modify;\r\n\r\n/**\r\n * Modify function for phone number input mask.\r\n * Automatically adjusts between landline and mobile phone formats.\r\n *\r\n * @param value - Current input value\r\n * @param data - New input data\r\n * @param selectionStart - Cursor start position\r\n * @param selectionEnd - Cursor end position\r\n * @returns Mask configuration object\r\n */\r\nexport const modifyPhone: Modify = ({ value, data, selectionStart, selectionEnd }) => {\r\n\tconst _value = value.slice(0, selectionStart) + (data ?? '') + value.slice(selectionEnd);\r\n\tconst len = _value ? _value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\treturn maskPhone(_value);\r\n};\r\n\r\n/**\r\n * Creates a phone number mask based on the input length.\r\n * - Landline: (XX) XXXX-XXXX\r\n * - Mobile: (XX) X XXXX-XXXX\r\n *\r\n * @param value - Phone number string (can be null)\r\n * @returns Mask configuration object with pattern and replacement rules\r\n *\r\n * @example\r\n * ```tsx\r\n * const mask = maskPhone('11987654321');\r\n * // Returns: { mask: '(__) _ ____-____', replacement: { _: /\\d/ } }\r\n * ```\r\n */\r\nexport function maskPhone(value: string | null) {\r\n\tconst len = value ? value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\tif (len > 10) return { mask: '(__) _ ____-____', replacement: { _: /\\d/ } };\r\n\r\n\treturn { mask: '(__) ____-_____', replacement: { _: /\\d/ } };\r\n}\r\n\r\n/**\r\n * Modify function for CPF/CNPJ input mask.\r\n * Automatically switches between CPF and CNPJ formats based on input length.\r\n *\r\n * @param value - Current input value\r\n * @param data - New input data\r\n * @param selectionStart - Cursor start position\r\n * @param selectionEnd - Cursor end position\r\n * @returns Mask configuration object\r\n */\r\nexport const modifyCpfCnpj: Modify = ({ value, data, selectionStart, selectionEnd }) => {\r\n\tconst _value = value.slice(0, selectionStart) + (data ?? '') + value.slice(selectionEnd);\r\n\tconst len = _value ? _value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\treturn maskCpfCnpj(_value);\r\n};\r\n\r\n/**\r\n * Creates a CPF or CNPJ mask based on the input length.\r\n * - CPF: XXX.XXX.XXX-XX (up to 11 digits)\r\n * - CNPJ: XX.XXX.XXX/XXXX-XX (12+ digits)\r\n *\r\n * @param value - CPF/CNPJ string (can be null)\r\n * @returns Mask configuration object with pattern and replacement rules\r\n *\r\n * @example\r\n * ```tsx\r\n * const cpfMask = maskCpfCnpj('12345678901');\r\n * // Returns: { mask: '___.___.___-___', replacement: { _: /\\d/ } }\r\n *\r\n * const cnpjMask = maskCpfCnpj('12345678000195');\r\n * // Returns: { mask: '__.___.___/____-__', replacement: { _: /\\d/ } }\r\n * ```\r\n */\r\nexport function maskCpfCnpj(value: string | null) {\r\n\tconst len = value ? value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\tif (len > 11) return { mask: '__.___.___/____-__', replacement: { _: /\\d/ } };\r\n\r\n\treturn { mask: '___.___.___-___', replacement: { _: /\\d/ } };\r\n}\r\n\r\n/**\r\n * Removes all non-numeric characters from a string.\r\n * Useful for extracting only digits from masked inputs.\r\n *\r\n * @param value - String with potential mask characters\r\n * @returns String containing only numeric characters\r\n *\r\n * @example\r\n * ```tsx\r\n * const cleaned = removeMaskNumber('(11) 9 8765-4321');\r\n * // Returns: '11987654321'\r\n *\r\n * const cleanCpf = removeMaskNumber('123.456.789-01');\r\n * // Returns: '12345678901'\r\n * ```\r\n */\r\nexport const removeMaskNumber = (value: string): string => {\r\n\treturn value?.replace(/\\D/g, '');\r\n};\r\n","import { format } from '@react-input/mask';\r\nimport { maskCpfCnpj, maskPhone } from '../../components/ui/masks';\r\n\r\n// PHONE\r\n/**\r\n * Formats a phone number string with proper mask.\r\n * Automatically detects landline vs mobile format.\r\n *\r\n * @param telefone - Raw phone number string\r\n * @param removerCountryCode - Whether to remove country code (55) if present\r\n * @returns Formatted phone number string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatPhone('11987654321') // '(11) 9 8765-4321'\r\n * formatPhone('1134567890') // '(11) 3456-7890'\r\n * ```\r\n */\r\nexport function formatPhone(telefone: string, removerCountryCode = true) {\r\n\tif (!telefone) return '';\r\n\r\n\tlet numberPhone = telefone.replace(/\\D/g, '');\r\n\r\n\t// Remover código do país apenas se ele começar com '55'\r\n\tif (removerCountryCode && numberPhone.startsWith('55')) {\r\n\t\tnumberPhone = numberPhone.substring(2);\r\n\t}\r\n\r\n\treturn format(numberPhone, maskPhone(numberPhone));\r\n}\r\n\r\n// CPF/CNPJ\r\n/**\r\n * Formats a CPF or CNPJ string with proper mask.\r\n * Automatically detects CPF vs CNPJ format based on length.\r\n *\r\n * @param cpfCnpj - Raw CPF/CNPJ string\r\n * @returns Formatted CPF/CNPJ string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCpfCnpj('12345678901') // '123.456.789-01'\r\n * formatCpfCnpj('12345678000195') // '12.345.678/0001-95'\r\n * ```\r\n */\r\nexport function formatCpfCnpj(cpfCnpj?: string): string {\r\n\tif (!cpfCnpj) return '';\r\n\r\n\tconst numberCpfCnpj = cpfCnpj.replace(/\\D/g, '');\r\n\r\n\treturn format(numberCpfCnpj, maskCpfCnpj(numberCpfCnpj));\r\n}\r\n\r\n// DATE\r\nfunction getDay(date: Date) {\r\n\treturn date.getDate().toString().padStart(2, '0');\r\n}\r\n\r\nfunction getMonth(date: Date) {\r\n\treturn (date.getMonth() + 1).toString().padStart(2, '0');\r\n}\r\n\r\nfunction getYear(date: Date) {\r\n\treturn date.getFullYear().toString();\r\n}\r\n\r\n/**\r\n * Formats a date to Brazilian format (DD/MM/YYYY).\r\n *\r\n * @param date - Date string, Date object, or undefined\r\n * @param separator - Date separator (default: '/')\r\n * @returns Formatted date string in Brazilian format\r\n *\r\n * @example\r\n * ```tsx\r\n * formatDate('2023-12-25') // '25/12/2023'\r\n * formatDate(new Date()) // '13/10/2025'\r\n * ```\r\n */\r\nexport const formatDate = (date: string | Date | undefined, separator: string = '/') => {\r\n\tif (!date) return '';\r\n\r\n\tconst d = new Date(date);\r\n\r\n\treturn d.toLocaleDateString('pt-BR');\r\n};\r\n\r\nexport const formatDateTime = (date: Date | undefined, returnSeconds: boolean = false): string => {\r\n\tif (!date) return '';\r\n\r\n\tconst hours = date.getHours().toString().padStart(2, '0');\r\n\tconst minutes = date.getMinutes().toString().padStart(2, '0');\r\n\tconst seconds = returnSeconds ? `:${date.getSeconds().toString().padStart(2, '0')}` : '';\r\n\r\n\treturn `${formatDate(date)} ${hours}:${minutes}${seconds}`;\r\n};\r\n\r\nexport function formatDateCalendar(date: Date | undefined): string {\r\n\tif (!date) return '';\r\n\r\n\tconst day = getDay(date);\r\n\tconst month = getMonth(date);\r\n\tconst year = getYear(date);\r\n\r\n\treturn `${year}-${month}-${day}`;\r\n}\r\n\r\nexport function stringDateToDate(date: string | undefined, separator: string = '/'): Date | undefined {\r\n\tif (!date) return undefined;\r\n\r\n\tconst [day, month, year] = date.split(separator).map(Number);\r\n\r\n\t// new Date(ano, mês-1, dia) interpreta a data no fuso horário local\r\n\treturn new Date(year, month - 1, day);\r\n}\r\n\r\n// NUMBER\r\nexport const roundNumber = (value: number, fractionDigits: number = 2): number => {\r\n\treturn Number(value.toFixed(fractionDigits));\r\n};\r\n\r\nexport const stringToNumber = (value: string | undefined): number => {\r\n\tif (!value) return 0;\r\n\r\n\tconst numericValue = value\r\n\t\t.replace(/[^\\d,-]/g, '')\r\n\t\t.replace(/\\./g, '')\r\n\t\t.replace(',', '.');\r\n\treturn Number.parseFloat(numericValue);\r\n};\r\n\r\nexport const convertMbToGb = (value: number) => {\r\n\treturn value > 0 ? roundNumber(value / 1024) : 0;\r\n};\r\n\r\nexport const convertGbToMb = (value: number) => {\r\n\treturn value > 0 ? roundNumber(value * 1024) : 0;\r\n};\r\n\r\nexport const convertSecondsToMinutes = (value: number): number => {\r\n\treturn value > 0 ? roundNumber(value / 60) : 0;\r\n};\r\n\r\nexport const convertBytesToMB = (bytes: number): number => {\r\n\tif (!bytes || Number.isNaN(bytes)) return 0;\r\n\treturn roundNumber(bytes / (1024 * 1024));\r\n};\r\n\r\nexport const convertMonthToDays = (months: number): number => {\r\n\treturn months > 0 ? months * 30 : 0;\r\n};\r\n\r\nexport const convertDaysToMonth = (days: number): number => {\r\n\treturn days > 0 ? roundNumber(days / 30) : 0;\r\n};\r\n\r\n// NUMBER\r\nexport const formatNumber = (value: number) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'decimal',\r\n\t\tminimumFractionDigits: 0,\r\n\t\tmaximumFractionDigits: 0,\r\n\t});\r\n};\r\n\r\n// DECIMAL\r\n/**\r\n * Formats a number with Brazilian decimal format.\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted decimal string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatDecimal(1234.56) // '1.234,56'\r\n * formatDecimal(1000.1, 1) // '1.000,1'\r\n * ```\r\n */\r\nexport const formatDecimal = (value: number, decimalPlaces: number = 2) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'decimal',\r\n\t\tminimumFractionDigits: decimalPlaces,\r\n\t\tmaximumFractionDigits: decimalPlaces,\r\n\t});\r\n};\r\n\r\n// PERCENT\r\n/**\r\n * Formats a number as percentage with Brazilian decimal format.\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted percentage string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatPercent(15.5) // '% 15,50'\r\n * formatPercent(100, 0) // '% 100'\r\n * ```\r\n */\r\nexport const formatPercent = (value: number, decimalPlaces: number = 2) => {\r\n\treturn `% ${formatDecimal(value, decimalPlaces)}`;\r\n};\r\n\r\n// CURRENCY\r\n/**\r\n * Formats a number as Brazilian currency (BRL).\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted currency string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCurrency(1234.56) // 'R$ 1.234,56'\r\n * formatCurrency(1000, 0) // 'R$ 1.000'\r\n * ```\r\n */\r\nexport const formatCurrency = (value: number, decimalPlaces: number = 2) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'currency',\r\n\t\tcurrency: 'BRL',\r\n\t\tminimumFractionDigits: decimalPlaces,\r\n\t\tmaximumFractionDigits: decimalPlaces,\r\n\t});\r\n};\r\n\r\nexport const isInvalidCurrencyValue = (rawValue: string | undefined): boolean => {\r\n\tif (!rawValue || rawValue.trim() === '') return true;\r\n\r\n\tconst numericValue = stringToNumber(rawValue);\r\n\r\n\treturn Number.isNaN(numericValue) || numericValue <= 0;\r\n};\r\n\r\n// OTHERS\r\n/**\r\n * Formats an MSISDN (mobile phone number) to display format.\r\n *\r\n * @param value - Raw MSISDN string\r\n * @returns Formatted MSISDN string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatMsisdn('5511987654321') // '(11) 98765-4321'\r\n * ```\r\n */\r\nexport function formatMsisdn(value: string = ''): string {\r\n\tconst msisdn = value.replace(/\\D/g, '');\r\n\treturn `(${msisdn.slice(2, 4)}) ${msisdn.slice(4, 9)}-${msisdn.slice(9)}`;\r\n}\r\n\r\n/**\r\n * Formats a CEP (Brazilian postal code) with proper mask.\r\n *\r\n * @param cep - Raw CEP string\r\n * @returns Formatted CEP string (XXXXX-XXX)\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCEP('01234567') // '01234-567'\r\n * formatCEP('12345') // '12345'\r\n * ```\r\n */\r\nexport function formatCEP(cep?: string) {\r\n\tif (!cep) return '';\r\n\r\n\treturn cep\r\n\t\t.replace(/\\D/g, '')\r\n\t\t.replace(/(\\d{5})(\\d)/, '$1-$2')\r\n\t\t.replace(/(-\\d{3})\\d+?$/, '$1');\r\n}\r\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","import * as SelectPrimitive from '@radix-ui/react-select';\r\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Select = SelectPrimitive.Root;\r\n\r\nconst SelectGroup = SelectPrimitive.Group;\r\n\r\nconst SelectValue = SelectPrimitive.Value;\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<SelectPrimitive.Trigger\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{children}\r\n\t\t<SelectPrimitive.Icon asChild>\r\n\t\t\t<ChevronDown className='h-4 w-4 opacity-50' />\r\n\t\t</SelectPrimitive.Icon>\r\n\t</SelectPrimitive.Trigger>\r\n));\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\r\n\r\nconst SelectScrollUpButton = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\r\n>(({ className, ...props }, ref) => (\r\n\t<SelectPrimitive.ScrollUpButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}>\r\n\t\t<ChevronUp className='h-4 w-4' />\r\n\t</SelectPrimitive.ScrollUpButton>\r\n));\r\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\r\n\r\nconst SelectScrollDownButton = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\r\n>(({ className, ...props }, ref) => (\r\n\t<SelectPrimitive.ScrollDownButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}>\r\n\t\t<ChevronDown className='h-4 w-4' />\r\n\t</SelectPrimitive.ScrollDownButton>\r\n));\r\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\r\n\r\nconst SelectContent = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\r\n>(({ className, children, position = 'popper', ...props }, ref) => (\r\n\t<SelectPrimitive.Portal>\r\n\t\t<SelectPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]',\r\n\t\t\t\tposition === 'popper' &&\r\n\t\t\t\t\t'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tposition={position}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<SelectScrollUpButton />\r\n\t\t\t<SelectPrimitive.Viewport\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'p-1',\r\n\t\t\t\t\tposition === 'popper' && 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</SelectPrimitive.Viewport>\r\n\t\t\t<SelectScrollDownButton />\r\n\t\t</SelectPrimitive.Content>\r\n\t</SelectPrimitive.Portal>\r\n));\r\nSelectContent.displayName = SelectPrimitive.Content.displayName;\r\n\r\nconst SelectLabel = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Label>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SelectPrimitive.Label ref={ref} className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className)} {...props} />\r\n\t),\r\n);\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\r\n\r\nconst SelectItem = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Item>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>>(\r\n\t({ className, children, ...props }, ref) => (\r\n\t\t<SelectPrimitive.Item\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-3 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n\r\n\t\t\t<span className='absolute right-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t\t<SelectPrimitive.ItemIndicator>\r\n\t\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t\t</SelectPrimitive.ItemIndicator>\r\n\t\t\t</span>\r\n\t\t</SelectPrimitive.Item>\r\n\t),\r\n);\r\nSelectItem.displayName = SelectPrimitive.Item.displayName;\r\n\r\nconst SelectSeparator = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Separator>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <SelectPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />);\r\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\r\n\r\nexport {\r\n\tSelect,\r\n\tSelectContent,\r\n\tSelectGroup,\r\n\tSelectItem,\r\n\tSelectLabel,\r\n\tSelectScrollDownButton,\r\n\tSelectScrollUpButton,\r\n\tSelectSeparator,\r\n\tSelectTrigger,\r\n\tSelectValue\r\n};\r\n\r\n","import { getMonth, getYear, setMonth, setYear } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport { Calendar as CalendarIcon } from 'lucide-react';\r\nimport React, { useState } from 'react';\r\nimport { DayPicker } from 'react-day-picker';\r\nimport { cn } from '../../../lib/utils';\r\nimport { Calendar as CalendarComponent } from '../calendar';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover';\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../select';\r\n\r\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\r\n\r\ninterface CalendarFormProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tonDateSelected: (selectedDateProps: Date | null) => void;\r\n\tselectedDateProps?: Date | null;\r\n\tstartYear?: number;\r\n\tendYear?: number;\r\n}\r\n\r\nconst DatePicker = React.forwardRef<HTMLDivElement, CalendarFormProps>(\r\n\t({ className, onDateSelected, selectedDateProps, startYear = getYear(new Date()) - 100, endYear = getYear(new Date()) + 100, ...props }, ref) => {\r\n\t\tconst [selectedDate, setSelectedDate] = useState<Date | null>(null);\r\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = useState(false);\r\n\t\tconst months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];\r\n\r\n\t\tconst years = Array.from({ length: endYear - startYear + 1 }, (_, i) => startYear + i);\r\n\r\n\t\tconst handleMonthChange = (month: string) => {\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst newDate = setMonth(selectedDate, months.indexOf(month));\r\n\t\t\t\tsetSelectedDate(newDate);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst handleYearChange = (year: string) => {\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst newDate = setYear(selectedDate, parseInt(year, 10));\r\n\t\t\t\tsetSelectedDate(newDate);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst handleDateChange = (selectedDate: Date | undefined) => {\r\n\t\t\tconst newDate = selectedDate || null;\r\n\t\t\tsetSelectedDate(newDate);\r\n\t\t\tsetIsPopoverOpen(false);\r\n\t\t\tonDateSelected(newDate);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t<div className={cn('gap-2', className)} ref={ref} {...props}>\r\n\t\t\t\t<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>\r\n\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t<CalendarIcon size={16} className='cursor-pointer text-gray-500' onClick={() => setIsPopoverOpen(true)} />\r\n\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t<PopoverContent className='w-auto p-0 flex flex-col justify-center' align='start'>\r\n\t\t\t\t\t\t<div className='flex justify-between pt-5 px-5'>\r\n\t\t\t\t\t\t\t<Select onValueChange={handleMonthChange} value={months[getMonth(selectedDate || new Date())]}>\r\n\t\t\t\t\t\t\t\t<SelectTrigger className='w-[100px]'>\r\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder='Month' />\r\n\t\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t\t{months.map((month) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={month} value={month}>\r\n\t\t\t\t\t\t\t\t\t\t\t{month}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t\t\t<Select onValueChange={handleYearChange} value={getYear(selectedDate || new Date()).toString()}>\r\n\t\t\t\t\t\t\t\t<SelectTrigger className='w-[100px]'>\r\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder='Year' />\r\n\t\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t\t{years.map((year) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={year} value={year.toString()}>\r\n\t\t\t\t\t\t\t\t\t\t\t{year}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<CalendarComponent\r\n\t\t\t\t\t\t\tmode='single'\r\n\t\t\t\t\t\t\tlocale={ptBR}\r\n\t\t\t\t\t\t\tonSelect={handleDateChange}\r\n\t\t\t\t\t\t\tclassName='bg-white text-black'\r\n\t\t\t\t\t\t\tmonth={selectedDate || undefined}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t</Popover>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nexport { DatePicker };\r\n\r\n","import InputMask from '@mona-health/react-input-mask';\r\nimport * as React from 'react';\r\nimport { useEffect, useState } from 'react';\r\nimport { formatDecimal } from '../../lib/help/format';\r\nimport { cn } from '../../lib/utils';\r\nimport { DatePicker } from './custom/date-picker';\r\n\r\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n\tmask?: string;\r\n\tmaskPlaceholder?: string | null;\r\n\tmaxLength?: number;\r\n\tplaceholder?: string;\r\n\tlabel?: string;\r\n\tdisabled?: boolean;\r\n}\r\n\r\nexport interface InputDecimalProps extends InputProps {\r\n\tsymbol?: string;\r\n}\r\n\r\nfunction classBorderColor(className: string | undefined, ariaInvalid: boolean | undefined) {\r\n\tif (className?.includes('border-none')) {\r\n\t\treturn '';\r\n\t}\r\n\treturn ariaInvalid ? 'border-red-600' : 'border-input';\r\n}\r\n\r\nconst InputFile = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype='file'\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst InputUF = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t\tonChange={(e) => {\r\n\t\t\t\talert(e.target.value);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst InputText = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tvalue={value || ''}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst MaskInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ className, type, mask, maskPlaceholder, value, maxLength, disabled, placeholder, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={maskPlaceholder}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nconst MaskInputDate = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ className, type, mask, maxLength, disabled, placeholder, onChange, value, ...props }, ref) => {\r\n\t\tconst [selectedDate, setSelectedDate] = useState<Date | null>(null);\r\n\t\tconst handleDayPickerSelect = (selectedDate: Date | null) => {\r\n\t\t\tsetSelectedDate(selectedDate);\r\n\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst formattedDate = selectedDate.toLocaleDateString('pt-BR');\r\n\t\t\t\tif (onChange) {\r\n\t\t\t\t\tonChange({ target: { value: formattedDate } } as React.ChangeEvent<HTMLInputElement>);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tuseEffect(() => {\r\n\t\t\tif (value) {\r\n\t\t\t\tconst parsedDate = new Date(Array.isArray(value) ? value[0] : value);\r\n\t\t\t\tif (!Number.isNaN(parsedDate.getTime())) {\r\n\t\t\t\t\tsetSelectedDate(parsedDate);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, [value]);\r\n\r\n\t\treturn (\r\n\t\t\t<div className='relative w-full'>\r\n\t\t\t\t<InputMask\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\tmask={'99/99/9999'}\r\n\t\t\t\t\tvalue={value || ''}\r\n\t\t\t\t\tonChange={onChange}\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\tplaceholder={placeholder ?? 'DD/MM/AAAA'}\r\n\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background pl-9 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\t\tclassName,\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t<div className='absolute left-3 top-1/2 -translate-y-1/2 cursor-pointer'>\r\n\t\t\t\t\t<DatePicker onDateSelected={handleDayPickerSelect} selectedDateProps={selectedDate} />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nconst MaskInputCpfCnpj = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, mask, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tplaceholder={'000.000.000-00'}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nconst MaskInputFone = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, mask, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tplaceholder='(00) 0 0000-0000'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nconst InputPassword = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst MaskInputDecimal = React.forwardRef<HTMLInputElement, InputDecimalProps>(({ className, value, onChange, disabled, symbol, ...props }, ref) => {\r\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst numericValue = Number(event.target.value.replace(/\\D/g, '')) / 100;\r\n\t\tconst formattedValue = symbol ? `${symbol} ${formatDecimal(numericValue)}` : formatDecimal(numericValue);\r\n\r\n\t\tif (onChange) {\r\n\t\t\tonChange({ ...event, target: { ...event.target, value: formattedValue } });\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<InputMask\r\n\t\t\tref={ref}\r\n\t\t\tmask=''\r\n\t\t\tvalue={value || ''}\r\n\t\t\tonChange={handleChange}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tplaceholder={symbol ? `${symbol} 0,00` : '0,00'}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nexport { Input, InputFile, InputPassword, InputText, InputUF, MaskInput, MaskInputCpfCnpj, MaskInputDate, MaskInputDecimal, MaskInputFone };\r\n\r\n","import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\nimport { ButtonProps, buttonVariants } from './button';\r\n\r\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\r\n\t<nav role='navigation' aria-label='pagination' className={cn('mx-auto flex w-full justify-center', className)} {...props} />\r\n);\r\nPagination.displayName = 'Pagination';\r\n\r\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} className={cn('flex flex-row items-center gap-1', className)} {...props} />\r\n));\r\nPaginationContent.displayName = 'PaginationContent';\r\n\r\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} className={cn('', className)} {...props} />\r\n));\r\nPaginationItem.displayName = 'PaginationItem';\r\n\r\ntype PaginationLinkProps = {\r\n\tisActive?: boolean;\r\n\tdisabled?: boolean;\r\n} & Pick<ButtonProps, 'size'> &\r\n\tReact.ComponentProps<'a'>;\r\n\r\nconst PaginationLink = ({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) => (\r\n\t<a\r\n\t\taria-current={isActive ? 'page' : undefined}\r\n\t\tclassName={cn(\r\n\t\t\tbuttonVariants({\r\n\t\t\t\tvariant: isActive ? 'outline' : 'ghost',\r\n\t\t\t\tsize,\r\n\t\t\t}),\r\n\t\t\tisActive ? '' : 'cursor-pointer',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n);\r\nPaginationLink.displayName = 'PaginationLink';\r\n\r\nconst PaginationPrevious = ({ className, disabled, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n\t<PaginationLink\r\n\t\taria-label='Go to previous page'\r\n\t\tsize='default'\r\n\t\tclassName={cn('gap-1 pl-2.5', disabled ? 'cursor-default text-zinc-500' : 'cursor-pointer', className)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<ChevronLeft className='h-4 w-4' />\r\n\t\t<span>Anterior</span>\r\n\t</PaginationLink>\r\n);\r\nPaginationPrevious.displayName = 'PaginationPrevious';\r\n\r\nconst PaginationNext = ({ className, disabled, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n\t<PaginationLink\r\n\t\taria-label='Go to next page'\r\n\t\tsize='default'\r\n\t\tclassName={cn('gap-1 pr-2.5', disabled ? 'cursor-default text-zinc-500' : 'cursor-pointer', className)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span>Próximo</span>\r\n\t\t<ChevronRight className='h-4 w-4' />\r\n\t</PaginationLink>\r\n);\r\nPaginationNext.displayName = 'PaginationNext';\r\n\r\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\r\n\t<span aria-hidden className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\r\n\t\t<MoreHorizontal className='h-4 w-4' />\r\n\t\t<span className='sr-only'>More pages</span>\r\n\t</span>\r\n);\r\nPaginationEllipsis.displayName = 'PaginationEllipsis';\r\n\r\nexport { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };\r\n\r\n","import * as ProgressPrimitive from '@radix-ui/react-progress';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Progress = React.forwardRef<React.ElementRef<typeof ProgressPrimitive.Root>, React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>>(\r\n\t({ className, value, ...props }, ref) => (\r\n\t\t<ProgressPrimitive.Root\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('relative h-4 w-full overflow-hidden rounded-full bg-background-secondary', className)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<ProgressPrimitive.Indicator\r\n\t\t\t\tclassName='h-full w-full flex-1 bg-background-primary transition-all'\r\n\t\t\t\tstyle={{ transform: `translateX(-${100 - (value || 0)}%)` }}\r\n\t\t\t/>\r\n\t\t</ProgressPrimitive.Root>\r\n\t),\r\n);\r\nProgress.displayName = ProgressPrimitive.Root.displayName;\r\n\r\nexport { Progress };\r\n\r\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\r\nimport { Circle } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst RadioGroup = React.forwardRef<\r\n\tReact.ElementRef<typeof RadioGroupPrimitive.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\r\n>(({ className, ...props }, ref) => {\r\n\treturn <RadioGroupPrimitive.Root className={cn('', className)} {...props} ref={ref} />;\r\n});\r\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\r\n\r\nconst RadioGroupItem = React.forwardRef<\r\n\tReact.ElementRef<typeof RadioGroupPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\r\n>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<RadioGroupPrimitive.Item\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<RadioGroupPrimitive.Indicator className='flex items-center justify-center'>\r\n\t\t\t\t<Circle className='h-2.5 w-2.5 fill-current text-current' />\r\n\t\t\t</RadioGroupPrimitive.Indicator>\r\n\t\t</RadioGroupPrimitive.Item>\r\n\t);\r\n});\r\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\r\n\r\nexport { RadioGroup, RadioGroupItem };\r\n\r\n","import * as React from \"react\"\r\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst ScrollArea = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\r\n>(({ className, children, ...props }, ref) => (\r\n <ScrollAreaPrimitive.Root\r\n ref={ref}\r\n className={cn(\"relative overflow-hidden\", className)}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\r\n {children}\r\n </ScrollAreaPrimitive.Viewport>\r\n <ScrollBar />\r\n <ScrollAreaPrimitive.Corner />\r\n </ScrollAreaPrimitive.Root>\r\n))\r\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\r\n\r\nconst ScrollBar = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\r\n <ScrollAreaPrimitive.ScrollAreaScrollbar\r\n ref={ref}\r\n orientation={orientation}\r\n className={cn(\r\n \"flex touch-none select-none transition-colors\",\r\n orientation === \"vertical\" &&\r\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\r\n orientation === \"horizontal\" &&\r\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\r\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n))\r\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\r\n\r\nexport { ScrollArea, ScrollBar }\r\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","'use client';\r\n\r\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SheetPrimitive.Overlay\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t\tref={ref}\r\n\t\t/>\r\n\t),\r\n);\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetVariants = cva(\r\n\t'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tside: {\r\n\t\t\t\ttop: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\r\n\t\t\t\tbottom: 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\r\n\t\t\t\tleft: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\r\n\t\t\t\tright: 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tside: 'right',\r\n\t\t},\r\n\t},\r\n);\r\n\r\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {}\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\r\n\t({ side = 'right', className, children, ...props }, ref) => (\r\n\t\t<SheetPortal>\r\n\t\t\t<SheetOverlay />\r\n\t\t\t<SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t\t<SheetPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-background-secondary'>\r\n\t\t\t\t\t<X className='h-4 w-4' />\r\n\t\t\t\t\t<span className='sr-only'>Close</span>\r\n\t\t\t\t</SheetPrimitive.Close>\r\n\t\t\t</SheetPrimitive.Content>\r\n\t\t</SheetPortal>\r\n\t),\r\n);\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\r\n);\r\nSheetHeader.displayName = 'SheetHeader';\r\n\r\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\r\n);\r\nSheetFooter.displayName = 'SheetFooter';\r\n\r\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SheetPrimitive.Title ref={ref} className={cn('text-lg font-semibold text-foreground', className)} {...props} />\r\n\t),\r\n);\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof SheetPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\r\n>(({ className, ...props }, ref) => <SheetPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\n\r\nfunction Skeleton({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div\r\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Skeleton }\r\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst Tooltip = TooltipPrimitive.Root;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\nconst TooltipContent = React.forwardRef<\r\n\tReact.ElementRef<typeof TooltipPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n\t<TooltipPrimitive.Content\r\n\t\tref={ref}\r\n\t\tsideOffset={sideOffset}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 overflow-hidden rounded-md bg-background-primary text-white px-3 py-1.5 text-sm shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{props.children}\r\n\t\t<TooltipPrimitive.Arrow className='z-50 fill-primary animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2' />\r\n\t</TooltipPrimitive.Content>\r\n));\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\r\n\r\n","import * as React from 'react';\r\n\r\nconst MOBILE_BREAKPOINT = 1350;\r\n\r\nexport function useIsMobile() {\r\n\tconst [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tconst mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\r\n\t\tconst onChange = () => {\r\n\t\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n\t\t};\r\n\t\tmql.addEventListener('change', onChange);\r\n\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n\t\treturn () => mql.removeEventListener('change', onChange);\r\n\t}, []);\r\n\r\n\treturn !!isMobile;\r\n}\r\n","import { Button } from '@/components/ui/button';\r\nimport { Input } from '@/components/ui/input';\r\nimport { Separator } from '@/components/ui/separator';\r\nimport { Sheet, SheetContent } from '@/components/ui/sheet';\r\nimport { Skeleton } from '@/components/ui/skeleton';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\r\nimport { useIsMobile } from '@/hooks/use-mobile';\r\nimport { cn } from '@/lib/utils';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport { VariantProps, cva } from 'class-variance-authority';\r\nimport { PanelLeft } from 'lucide-react';\r\nimport * as React from 'react';\r\n\r\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state';\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = '16rem';\r\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\r\nconst SIDEBAR_WIDTH_ICON = '3rem';\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\r\n\r\ntype SidebarContext = {\r\n\tstate: 'expanded' | 'collapsed';\r\n\topen: boolean;\r\n\tsetOpen: (open: boolean) => void;\r\n\topenMobile: boolean;\r\n\tsetOpenMobile: (open: boolean) => void;\r\n\tisMobile: boolean;\r\n\ttoggleSidebar: () => void;\r\n};\r\n\r\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\r\n\r\nfunction useSidebar() {\r\n\tconst context = React.useContext(SidebarContext);\r\n\tif (!context) {\r\n\t\tthrow new Error('useSidebar must be used within a SidebarProvider.');\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tdefaultOpen?: boolean;\r\n\t\topen?: boolean;\r\n\t\tonOpenChange?: (open: boolean) => void;\r\n\t}\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n\tconst isMobile = useIsMobile();\r\n\tconst [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n\t// This is the internal state of the sidebar.\r\n\t// We use openProp and setOpenProp for control from outside the component.\r\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\r\n\tconst open = openProp ?? _open;\r\n\tconst setOpen = React.useCallback(\r\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\r\n\t\t\tconst openState = typeof value === 'function' ? value(open) : value;\r\n\t\t\tif (setOpenProp) {\r\n\t\t\t\tsetOpenProp(openState);\r\n\t\t\t} else {\r\n\t\t\t\t_setOpen(openState);\r\n\t\t\t}\r\n\r\n\t\t\t// This sets the cookie to keep the sidebar state.\r\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n\t\t},\r\n\t\t[setOpenProp, open],\r\n\t);\r\n\r\n\t// Helper to toggle the sidebar.\r\n\tconst toggleSidebar = React.useCallback(() => {\r\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\r\n\t}, [isMobile, setOpen, setOpenMobile]);\r\n\r\n\t// Adds a keyboard shortcut to toggle the sidebar.\r\n\tReact.useEffect(() => {\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\ttoggleSidebar();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('keydown', handleKeyDown);\r\n\t\treturn () => window.removeEventListener('keydown', handleKeyDown);\r\n\t}, [toggleSidebar]);\r\n\r\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n\t// This makes it easier to style the sidebar with Tailwind classes.\r\n\tconst state = open ? 'expanded' : 'collapsed';\r\n\r\n\tconst contextValue = React.useMemo<SidebarContext>(\r\n\t\t() => ({\r\n\t\t\tstate,\r\n\t\t\topen,\r\n\t\t\tsetOpen,\r\n\t\t\tisMobile,\r\n\t\t\topenMobile,\r\n\t\t\tsetOpenMobile,\r\n\t\t\ttoggleSidebar,\r\n\t\t}),\r\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\r\n\t);\r\n\r\n\treturn (\r\n\t\t<SidebarContext.Provider value={contextValue}>\r\n\t\t\t<TooltipProvider delayDuration={0}>\r\n\t\t\t\t<div\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t'--sidebar-width': SIDEBAR_WIDTH,\r\n\t\t\t\t\t\t\t'--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\r\n\t\t\t\t\t\t\t...style,\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclassName={cn('group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar', className)}\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</TooltipProvider>\r\n\t\t</SidebarContext.Provider>\r\n\t);\r\n});\r\nSidebarProvider.displayName = 'SidebarProvider';\r\n\r\nconst Sidebar = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tside?: 'left' | 'right';\r\n\t\tvariant?: 'sidebar' | 'floating' | 'inset';\r\n\t\tcollapsible?: 'offcanvas' | 'icon' | 'none';\r\n\t}\r\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\r\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n\tif (collapsible === 'none') {\r\n\t\treturn (\r\n\t\t\t<div className={cn('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground', className)} ref={ref} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\tif (isMobile) {\r\n\t\treturn (\r\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n\t\t\t\t<SheetContent\r\n\t\t\t\t\tdata-sidebar='sidebar'\r\n\t\t\t\t\tdata-mobile='true'\r\n\t\t\t\t\tclassName='w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden'\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t'--sidebar-width': SIDEBAR_WIDTH_MOBILE,\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tside={side}\r\n\t\t\t\t>\r\n\t\t\t\t\t<div className='flex h-screen w-full flex-col'>{children}</div>\r\n\t\t\t\t</SheetContent>\r\n\t\t\t</Sheet>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName='group peer text-sidebar-foreground [display:none] md:[display:block]'\r\n\t\t\tdata-state={state}\r\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\r\n\t\t\tdata-variant={variant}\r\n\t\t\tdata-side={side}\r\n\t\t>\r\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear',\r\n\t\t\t\t\t'group-data-[collapsible=offcanvas]:w-0',\r\n\t\t\t\t\t'group-data-[side=right]:rotate-180',\r\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\r\n\t\t\t\t\t\t? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\r\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 fixed inset-y-0 z-10 h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear [display:none] md:[display:flex]',\r\n\t\t\t\t\tside === 'left'\r\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\r\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\r\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\r\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\r\n\t\t\t\t\t\t? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\r\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<div\r\n\t\t\t\t\tdata-sidebar='sidebar'\r\n\t\t\t\t\tclassName='flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow'\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n});\r\nSidebar.displayName = 'Sidebar';\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\r\n\t({ className, onClick, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='trigger'\r\n\t\t\t\tvariant='ghost'\r\n\t\t\t\tsize='icon'\r\n\t\t\t\ttype='button'\r\n\t\t\t\tclassName={cn('h-7 w-7', className)}\r\n\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\tonClick?.(event);\r\n\t\t\t\t\ttoggleSidebar();\r\n\t\t\t\t}}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<PanelLeft />\r\n\t\t\t\t<span className='sr-only'>Toggle Sidebar</span>\r\n\t\t\t</Button>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarTrigger.displayName = 'SidebarTrigger';\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(({ className, ...props }, ref) => {\r\n\tconst { toggleSidebar } = useSidebar();\r\n\r\n\treturn (\r\n\t\t<button\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='rail'\r\n\t\t\taria-label='Toggle Sidebar'\r\n\t\t\ttabIndex={-1}\r\n\t\t\ttype='button'\r\n\t\t\tonClick={toggleSidebar}\r\n\t\t\ttitle='Toggle Sidebar'\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\r\n\t\t\t\t'[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\r\n\t\t\t\t'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\r\n\t\t\t\t'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\r\n\t\t\t\t'[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\r\n\t\t\t\t'[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarRail.displayName = 'SidebarRail';\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<main\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative flex min-h-svh flex-1 flex-col bg-background',\r\n\t\t\t\t'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarInset.displayName = 'SidebarInset';\r\n\r\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<Input\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='input'\r\n\t\t\tclassName={cn('h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarInput.displayName = 'SidebarInput';\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='header' className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\r\n});\r\nSidebarHeader.displayName = 'SidebarHeader';\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='footer' className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\r\n});\r\nSidebarFooter.displayName = 'SidebarFooter';\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <Separator ref={ref} data-sidebar='separator' className={cn('mx-2 w-auto bg-sidebar-border', className)} {...props} />;\r\n\t},\r\n);\r\nSidebarSeparator.displayName = 'SidebarSeparator';\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='content'\r\n\t\t\tclassName={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarContent.displayName = 'SidebarContent';\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='group' className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />;\r\n});\r\nSidebarGroup.displayName = 'SidebarGroup';\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : 'div';\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='group-label'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t\t'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : 'button';\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='group-action'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t\t// Increases the hit area of the button on mobile.\r\n\t\t\t\t\t'after:absolute after:-inset-2 after:md:hidden',\r\n\t\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarGroupAction.displayName = 'SidebarGroupAction';\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} data-sidebar='group-content' className={cn('w-full text-sm', className)} {...props} />\r\n));\r\nSidebarGroupContent.displayName = 'SidebarGroupContent';\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} data-sidebar='menu' className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\r\n));\r\nSidebarMenu.displayName = 'SidebarMenu';\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} data-sidebar='menu-item' className={cn('group/menu-item relative', className)} {...props} />\r\n));\r\nSidebarMenuItem.displayName = 'SidebarMenuItem';\r\n\r\nconst sidebarMenuButtonVariants = cva(\r\n\t'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\r\n\t\t\t\toutline:\r\n\t\t\t\t\t'bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]',\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tdefault: 'h-8 text-sm',\r\n\t\t\t\tsm: 'h-7 text-xs',\r\n\t\t\t\tlg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t\tsize: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<'button'> & {\r\n\t\tasChild?: boolean;\r\n\t\tisActive?: boolean;\r\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n\t} & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\tconst { isMobile, state } = useSidebar();\r\n\r\n\tconst button = (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-button'\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n\r\n\tif (!tooltip) {\r\n\t\treturn button;\r\n\t}\r\n\r\n\tif (typeof tooltip === 'string') {\r\n\t\ttooltip = {\r\n\t\t\tchildren: tooltip,\r\n\t\t};\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Tooltip>\r\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\r\n\t\t\t<TooltipContent side='right' align='center' hidden={state !== 'collapsed' || isMobile} {...tooltip} />\r\n\t\t</Tooltip>\r\n\t);\r\n});\r\nSidebarMenuButton.displayName = 'SidebarMenuButton';\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<'button'> & {\r\n\t\tasChild?: boolean;\r\n\t\tshowOnHover?: boolean;\r\n\t}\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-action'\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t// Increases the hit area of the button on mobile.\r\n\t\t\t\t'after:absolute after:-inset-2 after:md:hidden',\r\n\t\t\t\t'peer-data-[size=sm]/menu-button:top-1',\r\n\t\t\t\t'peer-data-[size=default]/menu-button:top-1.5',\r\n\t\t\t\t'peer-data-[size=lg]/menu-button:top-2.5',\r\n\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\tshowOnHover &&\r\n\t\t\t\t\t'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarMenuAction.displayName = 'SidebarMenuAction';\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (\r\n\t<div\r\n\t\tref={ref}\r\n\t\tdata-sidebar='menu-badge'\r\n\t\tclassName={cn(\r\n\t\t\t'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\r\n\t\t\t'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\r\n\t\t\t'peer-data-[size=sm]/menu-button:top-1',\r\n\t\t\t'peer-data-[size=default]/menu-button:top-1.5',\r\n\t\t\t'peer-data-[size=lg]/menu-button:top-2.5',\r\n\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tshowIcon?: boolean;\r\n\t}\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n\t// Random width between 50 to 90%.\r\n\tconst width = React.useMemo(() => {\r\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<div ref={ref} data-sidebar='menu-skeleton' className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)} {...props}>\r\n\t\t\t{showIcon && <Skeleton className='size-4 rounded-md' data-sidebar='menu-skeleton-icon' />}\r\n\t\t\t<Skeleton\r\n\t\t\t\tclassName='h-4 flex-1 max-w-[--skeleton-width]'\r\n\t\t\t\tdata-sidebar='menu-skeleton-text'\r\n\t\t\t\tstyle={\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t'--skeleton-width': width,\r\n\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul\r\n\t\tref={ref}\r\n\t\tdata-sidebar='menu-sub'\r\n\t\tclassName={cn(\r\n\t\t\t'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\r\n\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nSidebarMenuSub.displayName = 'SidebarMenuSub';\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => <li ref={ref} {...props} />);\r\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n\tHTMLAnchorElement,\r\n\tReact.ComponentProps<'a'> & {\r\n\t\tasChild?: boolean;\r\n\t\tsize?: 'sm' | 'md';\r\n\t\tisActive?: boolean;\r\n\t}\r\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'a';\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-sub-button'\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\r\n\t\t\t\t'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\r\n\t\t\t\tsize === 'sm' && 'text-xs',\r\n\t\t\t\tsize === 'md' && 'text-sm',\r\n\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\r\n\r\nexport {\r\n\tSidebar,\r\n\tSidebarContent,\r\n\tSidebarFooter,\r\n\tSidebarGroup,\r\n\tSidebarGroupAction,\r\n\tSidebarGroupContent,\r\n\tSidebarGroupLabel,\r\n\tSidebarHeader,\r\n\tSidebarInput,\r\n\tSidebarInset,\r\n\tSidebarMenu,\r\n\tSidebarMenuAction,\r\n\tSidebarMenuBadge,\r\n\tSidebarMenuButton,\r\n\tSidebarMenuItem,\r\n\tSidebarMenuSkeleton,\r\n\tSidebarMenuSub,\r\n\tSidebarMenuSubButton,\r\n\tSidebarMenuSubItem,\r\n\tSidebarProvider,\r\n\tSidebarRail,\r\n\tSidebarSeparator,\r\n\tSidebarTrigger,\r\n\tuseSidebar\r\n};\r\n\r\n","import * as SliderPrimitive from '@radix-ui/react-slider';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SliderPrimitive.Root ref={ref} className={cn('relative flex w-full touch-none select-none items-center', className)} {...props}>\r\n\t\t\t<SliderPrimitive.Track className='relative h-2 w-full grow overflow-hidden rounded-full bg-background-secondary'>\r\n\t\t\t\t<SliderPrimitive.Range className='absolute h-full bg-background-primary' />\r\n\t\t\t</SliderPrimitive.Track>\r\n\t\t\t<SliderPrimitive.Thumb className='block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50' />\r\n\t\t</SliderPrimitive.Root>\r\n\t),\r\n);\r\nSlider.displayName = SliderPrimitive.Root.displayName;\r\n\r\nexport { Slider };\r\n\r\n","import * as SwitchPrimitives from '@radix-ui/react-switch';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SwitchPrimitives.Root\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-background-primary data-[state=unchecked]:bg-accent',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t\tref={ref}\r\n\t\t>\r\n\t\t\t<SwitchPrimitives.Thumb\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t</SwitchPrimitives.Root>\r\n\t),\r\n);\r\nSwitch.displayName = SwitchPrimitives.Root.displayName;\r\n\r\nexport { Switch };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(({ className, ...props }, ref) => (\r\n\t<table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\r\n));\r\nTable.displayName = 'Table';\r\n\r\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<thead ref={ref} className={cn('sticky top-0 [&_tr]:border-b', className)} {...props} />\r\n));\r\nTableHeader.displayName = 'TableHeader';\r\n\r\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\r\n));\r\nTableBody.displayName = 'TableBody';\r\n\r\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<tfoot ref={ref} className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />\r\n));\r\nTableFooter.displayName = 'TableFooter';\r\n\r\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(({ className, ...props }, ref) => (\r\n\t<tr\r\n\t\tref={ref}\r\n\t\tclassName={cn('border-b transition-colors hover:bg-datatable-accent', 'data-[state=selected]:bg-background-secondary', className)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nTableRow.displayName = 'TableRow';\r\n\r\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\r\n\t<th\r\n\t\tref={ref}\r\n\t\tclassName={cn('h-12 py-[12.25px] px-6 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0', className)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nTableHead.displayName = 'TableHead';\r\n\r\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\r\n\t<td ref={ref} className={cn('align-middle px-6 [&:has([role=checkbox])]:pr-0', className)} {...props} />\r\n));\r\nTableCell.displayName = 'TableCell';\r\n\r\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(({ className, ...props }, ref) => (\r\n\t<caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\r\n));\r\nTableCaption.displayName = 'TableCaption';\r\n\r\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\r\n\r\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst TabsList = React.forwardRef<React.ElementRef<typeof TabsPrimitive.List>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.List\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('inline-flex h-10 items-center justify-center rounded-md bg-background-elevated p-1 text-muted-foreground', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Trigger>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.Trigger\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Content>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nfunction classBorderColor(className: string | undefined, ariaInvalid: boolean | undefined) {\r\n\tif (className?.includes('border-none')) {\r\n\t\treturn '';\r\n\t}\r\n\treturn ariaInvalid ? 'border-red-600' : 'border-input';\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, React.TextareaHTMLAttributes<HTMLTextAreaElement>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<textarea\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nTextarea.displayName = 'Textarea';\r\n\r\nexport { Textarea };\r\n\r\n","import * as ToastPrimitives from '@radix-ui/react-toast';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst ToastProvider = ToastPrimitives.Provider;\r\n\r\nconst ToastViewport = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Viewport>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\r\n>(({ className, ...props }, ref) => (\r\n\t<ToastPrimitives.Viewport ref={ref} className={cn('fixed top-0 right-0 p-4 space-y-2 z-[100]', className)} {...props} />\r\n));\r\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\r\n\r\nconst toastVariants = cva(\r\n\t'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-top-full',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'border bg-background text-foreground',\r\n\t\t\t\tdestructive: 'bg-white text-zinc-950',\r\n\t\t\t\tsuccess: 'bg-white text-zinc-950',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst Toast = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\r\n>(({ className, variant, ...props }, ref) => {\r\n\treturn <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\r\n});\r\nToast.displayName = ToastPrimitives.Root.displayName;\r\n\r\nconst ToastAction = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Action>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ToastPrimitives.Action\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-background-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nToastAction.displayName = ToastPrimitives.Action.displayName;\r\n\r\nconst ToastClose = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Close>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ToastPrimitives.Close\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\ttoast-close=''\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<X className='h-4 w-4' />\r\n\t\t</ToastPrimitives.Close>\r\n\t),\r\n);\r\nToastClose.displayName = ToastPrimitives.Close.displayName;\r\n\r\nconst ToastTitle = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Title>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>>(\r\n\t({ className, ...props }, ref) => <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold', className)} {...props} />,\r\n);\r\nToastTitle.displayName = ToastPrimitives.Title.displayName;\r\n\r\nconst ToastDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\r\n>(({ className, ...props }, ref) => <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />);\r\nToastDescription.displayName = ToastPrimitives.Description.displayName;\r\n\r\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\r\n\r\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\r\n\r\nexport { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, type ToastActionElement, type ToastProps };\r\n\r\n","// Inspired by react-hot-toast library\r\nimport * as React from 'react';\r\n\r\nimport type { ToastActionElement, ToastProps } from './toast';\r\n\r\nconst TOAST_LIMIT = 1;\r\nconst TOAST_REMOVE_DELAY = 1000000;\r\n\r\ntype ToasterToast = ToastProps & {\r\n\tid: string;\r\n\ttitle?: React.ReactNode;\r\n\tdescription?: React.ReactNode;\r\n\taction?: ToastActionElement;\r\n\ticon?: React.ReactNode;\r\n};\r\n\r\nconst actionTypes = {\r\n\tADD_TOAST: 'ADD_TOAST',\r\n\tUPDATE_TOAST: 'UPDATE_TOAST',\r\n\tDISMISS_TOAST: 'DISMISS_TOAST',\r\n\tREMOVE_TOAST: 'REMOVE_TOAST',\r\n} as const;\r\n\r\nlet count = 0;\r\n\r\nfunction genId() {\r\n\tcount = (count + 1) % Number.MAX_SAFE_INTEGER;\r\n\treturn count.toString();\r\n}\r\n\r\ntype ActionType = typeof actionTypes;\r\n\r\ntype Action =\r\n\t| {\r\n\t\t\ttype: ActionType['ADD_TOAST'];\r\n\t\t\ttoast: ToasterToast;\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['UPDATE_TOAST'];\r\n\t\t\ttoast: Partial<ToasterToast>;\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['DISMISS_TOAST'];\r\n\t\t\ttoastId?: ToasterToast['id'];\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['REMOVE_TOAST'];\r\n\t\t\ttoastId?: ToasterToast['id'];\r\n\t };\r\n\r\ninterface State {\r\n\ttoasts: ToasterToast[];\r\n}\r\n\r\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\r\n\r\nconst addToRemoveQueue = (toastId: string) => {\r\n\tif (toastTimeouts.has(toastId)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst timeout = setTimeout(() => {\r\n\t\ttoastTimeouts.delete(toastId);\r\n\t\tdispatch({\r\n\t\t\ttype: 'REMOVE_TOAST',\r\n\t\t\ttoastId: toastId,\r\n\t\t});\r\n\t}, TOAST_REMOVE_DELAY);\r\n\r\n\ttoastTimeouts.set(toastId, timeout);\r\n};\r\n\r\nexport const reducer = (state: State, action: Action): State => {\r\n\tswitch (action.type) {\r\n\t\tcase 'ADD_TOAST':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\r\n\t\t\t};\r\n\r\n\t\tcase 'UPDATE_TOAST':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\r\n\t\t\t};\r\n\r\n\t\tcase 'DISMISS_TOAST': {\r\n\t\t\tconst { toastId } = action;\r\n\r\n\t\t\tif (toastId) {\r\n\t\t\t\taddToRemoveQueue(toastId);\r\n\t\t\t} else {\r\n\t\t\t\tfor (const toast of state.toasts) {\r\n\t\t\t\t\taddToRemoveQueue(toast.id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.map((t) =>\r\n\t\t\t\t\tt.id === toastId || toastId === undefined\r\n\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t...t,\r\n\t\t\t\t\t\t\t\topen: false,\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t: t,\r\n\t\t\t\t),\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase 'REMOVE_TOAST':\r\n\t\t\tif (action.toastId === undefined) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...state,\r\n\t\t\t\t\ttoasts: [],\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.filter((t) => t.id !== action.toastId),\r\n\t\t\t};\r\n\t}\r\n};\r\n\r\nconst listeners: Array<(state: State) => void> = [];\r\n\r\nlet memoryState: State = { toasts: [] };\r\n\r\nfunction dispatch(action: Action) {\r\n\tmemoryState = reducer(memoryState, action);\r\n\tfor (const listener of listeners) {\r\n\t\tlistener(memoryState);\r\n\t}\r\n}\r\n\r\ntype Toast = Omit<ToasterToast, 'id'>;\r\n\r\nfunction toast({ ...props }: Toast) {\r\n\tconst id = genId();\r\n\r\n\tconst update = (props: ToasterToast) =>\r\n\t\tdispatch({\r\n\t\t\ttype: 'UPDATE_TOAST',\r\n\t\t\ttoast: { ...props, id },\r\n\t\t});\r\n\tconst dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\r\n\r\n\tdispatch({\r\n\t\ttype: 'ADD_TOAST',\r\n\t\ttoast: {\r\n\t\t\t...props,\r\n\t\t\tid,\r\n\t\t\topen: true,\r\n\t\t\tonOpenChange: (open) => {\r\n\t\t\t\tif (!open) dismiss();\r\n\t\t\t},\r\n\t\t},\r\n\t});\r\n\r\n\treturn {\r\n\t\tid: id,\r\n\t\tdismiss,\r\n\t\tupdate,\r\n\t};\r\n}\r\n\r\nfunction useToast() {\r\n\tconst [state, setState] = React.useState<State>(memoryState);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tlisteners.push(setState);\r\n\t\treturn () => {\r\n\t\t\tconst index = listeners.indexOf(setState);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tlisteners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [state]);\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\ttoast,\r\n\t\tdismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\r\n\t};\r\n}\r\n\r\nexport { toast, useToast };\r\n","import { Check, CircleX } from 'lucide-react';\r\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from './toast';\r\nimport { useToast } from './use-toast';\r\n\r\nexport function Toaster() {\r\n\tconst { toasts } = useToast();\r\n\r\n\tconst getIcon = (icon: React.ReactNode, variant: string | null) => {\r\n\t\tif (icon) {\r\n\t\t\treturn icon;\r\n\t\t}\r\n\r\n\t\tswitch (variant) {\r\n\t\t\tcase 'success':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div className='mr-3 p-px rounded-full bg-emerald-700'>\r\n\t\t\t\t\t\t<Check size={16} className='text-white' />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\tcase 'destructive':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div className='mr-3 p-px rounded-full bg-red-700'>\r\n\t\t\t\t\t\t<CircleX size={16} className='text-white' />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ToastProvider>\r\n\t\t\t{toasts.map(({ id, title, description, action, icon, variant, ...props }) => (\r\n\t\t\t\t<Toast key={id} {...props} variant={variant} className='p-4 w-[334px] rounded-lg'>\r\n\t\t\t\t\t<div className='grid gap-1'>\r\n\t\t\t\t\t\t<div className='flex items-center'>\r\n\t\t\t\t\t\t\t{getIcon(icon, variant ?? null)}\r\n\t\t\t\t\t\t\t{title && <ToastTitle>{title}</ToastTitle>} {/* title deve funcionar aqui */}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{description && <ToastDescription>{description}</ToastDescription>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{action}\r\n\t\t\t\t\t<ToastClose className='text-white' />\r\n\t\t\t\t</Toast>\r\n\t\t\t))}\r\n\t\t\t<ToastViewport />\r\n\t\t</ToastProvider>\r\n\t);\r\n}\r\n","import { Popover, PopoverClose, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport { CalendarDays } from 'lucide-react';\r\nimport React from 'react';\r\nimport { DateRange } from 'react-day-picker';\r\nimport { cn } from '../../lib/utils';\r\nimport { Button } from './button';\r\nimport { Calendar } from './calendar';\r\n\r\ninterface CalendarFormProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tgetDataFilter: (from: Date | null, to: Date | null) => void;\r\n}\r\n\r\nexport default function UseCalendar({ className, getDataFilter }: CalendarFormProps) {\r\n\tconst endDate = null;\r\n\tconst startDate = null;\r\n\r\n\tconst [date, setDate] = React.useState<DateRange | any>({\r\n\t\tfrom: startDate,\r\n\t\tto: endDate,\r\n\t});\r\n\r\n\tconst submitDate = () => {\r\n\t\tif (date.from !== null && date.to !== null) {\r\n\t\t\tgetDataFilter(date.from, date.to);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={cn('grid gap-2', className)}>\r\n\t\t\t<Popover>\r\n\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tid='date'\r\n\t\t\t\t\t\tvariant={'outline'}\r\n\t\t\t\t\t\tclassName={'flex justify-center items-center px-4 py-2 cursor-pointer bg-primaryBack text-textFilter rounded-md'}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<CalendarDays color='#0F172A' size={16} className='mr-4' />\r\n\t\t\t\t\t\t{date?.to ? (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{format(date.from, 'dd/MM', { locale: ptBR })} - {format(date.to, 'dd/MM', { locale: ptBR })}\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<span>Filtrar por Período</span>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t<PopoverContent className='w-auto p-0 testeCalendar flex flex-col justify-center bg-white z-10 shadow-md text-black ' align='start'>\r\n\t\t\t\t\t<Calendar mode='range' locale={ptBR} selected={date} onSelect={setDate} className=' ' />\r\n\r\n\t\t\t\t\t<PopoverClose className='flex justify-center items-center p-4'>\r\n\t\t\t\t\t\t<Button className='w-[150px] bg-background-primary mt-8 px-4 py-2 text-white' onClick={submitDate}>\r\n\t\t\t\t\t\t\tAplicar Filtro\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</PopoverClose>\r\n\t\t\t\t</PopoverContent>\r\n\t\t\t</Popover>\r\n\t\t</div>\r\n\t);\r\n}\r\n","// Retorna todas as cores do Tailwind CSS das variações 50 a 950\r\nexport function getTailwindColorShades() {\r\n\t// Paleta padrão do Tailwind v3.3.0\r\n\t// Fonte: https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js\r\n\treturn {\r\n\t\tslate: {\r\n\t\t\t50: '#f8fafc',\r\n\t\t\t100: '#f1f5f9',\r\n\t\t\t200: '#e2e8f0',\r\n\t\t\t300: '#cbd5e1',\r\n\t\t\t400: '#94a3b8',\r\n\t\t\t500: '#64748b',\r\n\t\t\t600: '#475569',\r\n\t\t\t700: '#334155',\r\n\t\t\t800: '#1e293b',\r\n\t\t\t900: '#0f172a',\r\n\t\t\t950: '#020617',\r\n\t\t},\r\n\t\tgray: {\r\n\t\t\t50: '#f9fafb',\r\n\t\t\t100: '#f3f4f6',\r\n\t\t\t200: '#e5e7eb',\r\n\t\t\t300: '#d1d5db',\r\n\t\t\t400: '#9ca3af',\r\n\t\t\t500: '#6b7280',\r\n\t\t\t600: '#4b5563',\r\n\t\t\t700: '#374151',\r\n\t\t\t800: '#1f2937',\r\n\t\t\t900: '#111827',\r\n\t\t\t950: '#030712',\r\n\t\t},\r\n\t\tzinc: {\r\n\t\t\t50: '#fafafa',\r\n\t\t\t100: '#f4f4f5',\r\n\t\t\t200: '#e4e4e7',\r\n\t\t\t300: '#d4d4d8',\r\n\t\t\t400: '#a1a1aa',\r\n\t\t\t500: '#71717a',\r\n\t\t\t600: '#52525b',\r\n\t\t\t700: '#3f3f46',\r\n\t\t\t800: '#27272a',\r\n\t\t\t900: '#18181b',\r\n\t\t\t950: '#09090b',\r\n\t\t},\r\n\t\tneutral: {\r\n\t\t\t50: '#fafafa',\r\n\t\t\t100: '#f5f5f5',\r\n\t\t\t200: '#e5e5e5',\r\n\t\t\t300: '#d4d4d4',\r\n\t\t\t400: '#a3a3a3',\r\n\t\t\t500: '#737373',\r\n\t\t\t600: '#525252',\r\n\t\t\t700: '#404040',\r\n\t\t\t800: '#262626',\r\n\t\t\t900: '#171717',\r\n\t\t\t950: '#0a0a0a',\r\n\t\t},\r\n\t\tstone: {\r\n\t\t\t50: '#fafaf9',\r\n\t\t\t100: '#f5f5f4',\r\n\t\t\t200: '#e7e5e4',\r\n\t\t\t300: '#d6d3d1',\r\n\t\t\t400: '#a8a29e',\r\n\t\t\t500: '#78716c',\r\n\t\t\t600: '#57534e',\r\n\t\t\t700: '#44403c',\r\n\t\t\t800: '#292524',\r\n\t\t\t900: '#1c1917',\r\n\t\t\t950: '#0c0a09',\r\n\t\t},\r\n\t\tred: {\r\n\t\t\t50: '#fef2f2',\r\n\t\t\t100: '#fee2e2',\r\n\t\t\t200: '#fecaca',\r\n\t\t\t300: '#fca5a5',\r\n\t\t\t400: '#f87171',\r\n\t\t\t500: '#ef4444',\r\n\t\t\t600: '#dc2626',\r\n\t\t\t700: '#b91c1c',\r\n\t\t\t800: '#991b1b',\r\n\t\t\t900: '#7f1d1d',\r\n\t\t\t950: '#450a0a',\r\n\t\t},\r\n\t\torange: {\r\n\t\t\t50: '#fff7ed',\r\n\t\t\t100: '#ffedd5',\r\n\t\t\t200: '#fed7aa',\r\n\t\t\t300: '#fdba74',\r\n\t\t\t400: '#fb923c',\r\n\t\t\t500: '#f97316',\r\n\t\t\t600: '#ea580c',\r\n\t\t\t700: '#c2410c',\r\n\t\t\t800: '#9a3412',\r\n\t\t\t900: '#7c2d12',\r\n\t\t\t950: '#431407',\r\n\t\t},\r\n\t\tamber: {\r\n\t\t\t50: '#fffbeb',\r\n\t\t\t100: '#fef3c7',\r\n\t\t\t200: '#fde68a',\r\n\t\t\t300: '#fcd34d',\r\n\t\t\t400: '#fbbf24',\r\n\t\t\t500: '#f59e42',\r\n\t\t\t600: '#d97706',\r\n\t\t\t700: '#b45309',\r\n\t\t\t800: '#92400e',\r\n\t\t\t900: '#78350f',\r\n\t\t\t950: '#451a03',\r\n\t\t},\r\n\t\tyellow: {\r\n\t\t\t50: '#fefce8',\r\n\t\t\t100: '#fef9c3',\r\n\t\t\t200: '#fef08a',\r\n\t\t\t300: '#fde047',\r\n\t\t\t400: '#facc15',\r\n\t\t\t500: '#eab308',\r\n\t\t\t600: '#ca8a04',\r\n\t\t\t700: '#a16207',\r\n\t\t\t800: '#854d0e',\r\n\t\t\t900: '#713f12',\r\n\t\t\t950: '#422006',\r\n\t\t},\r\n\t\tlime: {\r\n\t\t\t50: '#f7fee7',\r\n\t\t\t100: '#ecfccb',\r\n\t\t\t200: '#d9f99d',\r\n\t\t\t300: '#bef264',\r\n\t\t\t400: '#a3e635',\r\n\t\t\t500: '#84cc16',\r\n\t\t\t600: '#65a30d',\r\n\t\t\t700: '#4d7c0f',\r\n\t\t\t800: '#3f6212',\r\n\t\t\t900: '#365314',\r\n\t\t\t950: '#1a2e05',\r\n\t\t},\r\n\t\tgreen: {\r\n\t\t\t50: '#f0fdf4',\r\n\t\t\t100: '#dcfce7',\r\n\t\t\t200: '#bbf7d0',\r\n\t\t\t300: '#86efac',\r\n\t\t\t400: '#4ade80',\r\n\t\t\t500: '#22c55e',\r\n\t\t\t600: '#16a34a',\r\n\t\t\t700: '#15803d',\r\n\t\t\t800: '#166534',\r\n\t\t\t900: '#14532d',\r\n\t\t\t950: '#052e16',\r\n\t\t},\r\n\t\temerald: {\r\n\t\t\t50: '#ecfdf5',\r\n\t\t\t100: '#d1fae5',\r\n\t\t\t200: '#a7f3d0',\r\n\t\t\t300: '#6ee7b7',\r\n\t\t\t400: '#34d399',\r\n\t\t\t500: '#10b981',\r\n\t\t\t600: '#059669',\r\n\t\t\t700: '#047857',\r\n\t\t\t800: '#065f46',\r\n\t\t\t900: '#064e3b',\r\n\t\t\t950: '#022c22',\r\n\t\t},\r\n\t\tteal: {\r\n\t\t\t50: '#f0fdfa',\r\n\t\t\t100: '#ccfbf1',\r\n\t\t\t200: '#99f6e4',\r\n\t\t\t300: '#5eead4',\r\n\t\t\t400: '#2dd4bf',\r\n\t\t\t500: '#14b8a6',\r\n\t\t\t600: '#0d9488',\r\n\t\t\t700: '#0f766e',\r\n\t\t\t800: '#115e59',\r\n\t\t\t900: '#134e4a',\r\n\t\t\t950: '#042f2e',\r\n\t\t},\r\n\t\tcyan: {\r\n\t\t\t50: '#ecfeff',\r\n\t\t\t100: '#cffafe',\r\n\t\t\t200: '#a5f3fc',\r\n\t\t\t300: '#67e8f9',\r\n\t\t\t400: '#22d3ee',\r\n\t\t\t500: '#06b6d4',\r\n\t\t\t600: '#0891b2',\r\n\t\t\t700: '#0e7490',\r\n\t\t\t800: '#155e75',\r\n\t\t\t900: '#164e63',\r\n\t\t\t950: '#083344',\r\n\t\t},\r\n\t\tsky: {\r\n\t\t\t50: '#f0f9ff',\r\n\t\t\t100: '#e0f2fe',\r\n\t\t\t200: '#bae6fd',\r\n\t\t\t300: '#7dd3fc',\r\n\t\t\t400: '#38bdf8',\r\n\t\t\t500: '#0ea5e9',\r\n\t\t\t600: '#0284c7',\r\n\t\t\t700: '#0369a1',\r\n\t\t\t800: '#075985',\r\n\t\t\t900: '#0e3a5e',\r\n\t\t\t950: '#082f49',\r\n\t\t},\r\n\t\tblue: {\r\n\t\t\t50: '#eff6ff',\r\n\t\t\t100: '#dbeafe',\r\n\t\t\t200: '#bfdbfe',\r\n\t\t\t300: '#93c5fd',\r\n\t\t\t400: '#60a5fa',\r\n\t\t\t500: '#3b82f6',\r\n\t\t\t600: '#2563eb',\r\n\t\t\t700: '#1d4ed8',\r\n\t\t\t800: '#1e40af',\r\n\t\t\t900: '#1e3a8a',\r\n\t\t\t950: '#172554',\r\n\t\t},\r\n\t\tindigo: {\r\n\t\t\t50: '#eef2ff',\r\n\t\t\t100: '#e0e7ff',\r\n\t\t\t200: '#c7d2fe',\r\n\t\t\t300: '#a5b4fc',\r\n\t\t\t400: '#818cf8',\r\n\t\t\t500: '#6366f1',\r\n\t\t\t600: '#4f46e5',\r\n\t\t\t700: '#4338ca',\r\n\t\t\t800: '#3730a3',\r\n\t\t\t900: '#312e81',\r\n\t\t\t950: '#1e1b4b',\r\n\t\t},\r\n\t\tviolet: {\r\n\t\t\t50: '#f5f3ff',\r\n\t\t\t100: '#ede9fe',\r\n\t\t\t200: '#ddd6fe',\r\n\t\t\t300: '#c4b5fd',\r\n\t\t\t400: '#a78bfa',\r\n\t\t\t500: '#8b5cf6',\r\n\t\t\t600: '#7c3aed',\r\n\t\t\t700: '#6d28d9',\r\n\t\t\t800: '#5b21b6',\r\n\t\t\t900: '#4c1d95',\r\n\t\t\t950: '#2e1065',\r\n\t\t},\r\n\t\tpurple: {\r\n\t\t\t50: '#faf5ff',\r\n\t\t\t100: '#f3e8ff',\r\n\t\t\t200: '#e9d5ff',\r\n\t\t\t300: '#d8b4fe',\r\n\t\t\t400: '#c084fc',\r\n\t\t\t500: '#a855f7',\r\n\t\t\t600: '#9333ea',\r\n\t\t\t700: '#7e22ce',\r\n\t\t\t800: '#6d19a8',\r\n\t\t\t900: '#581c87',\r\n\t\t\t950: '#3b0764',\r\n\t\t},\r\n\t\tfuchsia: {\r\n\t\t\t50: '#fdf4ff',\r\n\t\t\t100: '#fae8ff',\r\n\t\t\t200: '#f5d0fe',\r\n\t\t\t300: '#f0abfc',\r\n\t\t\t400: '#e879f9',\r\n\t\t\t500: '#d946ef',\r\n\t\t\t600: '#c026d3',\r\n\t\t\t700: '#a21caf',\r\n\t\t\t800: '#86198f',\r\n\t\t\t900: '#701a75',\r\n\t\t\t950: '#4a044e',\r\n\t\t},\r\n\t\tpink: {\r\n\t\t\t50: '#fdf2f8',\r\n\t\t\t100: '#fce7f3',\r\n\t\t\t200: '#fbcfe8',\r\n\t\t\t300: '#f9a8d4',\r\n\t\t\t400: '#f472b6',\r\n\t\t\t500: '#ec4899',\r\n\t\t\t600: '#db2777',\r\n\t\t\t700: '#be185d',\r\n\t\t\t800: '#9d174d',\r\n\t\t\t900: '#831843',\r\n\t\t\t950: '#500724',\r\n\t\t},\r\n\t\trose: {\r\n\t\t\t50: '#fff1f2',\r\n\t\t\t100: '#ffe4e6',\r\n\t\t\t200: '#fecdd3',\r\n\t\t\t300: '#fda4af',\r\n\t\t\t400: '#fb7185',\r\n\t\t\t500: '#f43f5e',\r\n\t\t\t600: '#e11d48',\r\n\t\t\t700: '#be123c',\r\n\t\t\t800: '#9f1239',\r\n\t\t\t900: '#881337',\r\n\t\t\t950: '#4c0519',\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport type TailwindColorName = keyof ReturnType<typeof getTailwindColorShades>;\r\n\r\nexport const replaceThemeTailwindColors = (theme: string, tailwindColor: string): HTMLStyleElement => {\r\n\tconst colorShades = getTailwindColorShades();\r\n\tconst isValidColor = (color: string): color is TailwindColorName => color in colorShades;\r\n\tconst colorPallete = isValidColor(tailwindColor) ? colorShades[tailwindColor] : colorShades.violet;\r\n\r\n\tconst el = document.createElement('style');\r\n\tel.id = 'theme-variables';\r\n\tel.setAttribute('type', 'text/css');\r\n\tel.textContent = ':root {';\r\n\r\n\tif (theme === 'light') {\r\n\t\tel.textContent += `--sidebar-background: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--sidebar-accent: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--sidebar-ring: ${colorPallete[300]};\\n`;\r\n\t\tel.textContent += `--sidebar-border: ${colorPallete[100]};\\n`;\r\n\t\tel.textContent += `--sidebar-scrollbar-thumb: ${colorPallete[200]};\\n`;\r\n\t}\r\n\tif (theme === 'light' || theme === 'dark-side') {\r\n\t\tel.textContent += `--background-elevated: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--background-primary-hover: ${colorPallete[100]};\\n`;\r\n\t\tel.textContent += `--background-subtle: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--accent: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--datatable-background: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--datatable-accent: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--scrollbar-thumb: ${colorPallete[200]};\\n`;\r\n\t}\r\n\tif (theme === 'dark-side' || theme === 'dark') {\r\n\t\t// Verificar essa propriedade\r\n\t\tel.textContent += `--sidebar-accent: ${colorPallete[950]};\\n`;\r\n\t}\r\n\tel.textContent += `--background-primary: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--background-primary-hover: ${colorPallete[950]};\\n`;\r\n\tel.textContent += `--primary: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--primary-950: ${colorPallete[950]};\\n`;\r\n\tel.textContent += `--primary-900: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--primary-800: ${colorPallete[800]};\\n`;\r\n\tel.textContent += `--primary-700: ${colorPallete[700]};\\n`;\r\n\tel.textContent += `--primary-600: ${colorPallete[600]};\\n`;\r\n\tel.textContent += `--primary-500: ${colorPallete[500]};\\n`;\r\n\tel.textContent += `--primary-400: ${colorPallete[400]};\\n`;\r\n\tel.textContent += `--primary-300: ${colorPallete[300]};\\n`;\r\n\tel.textContent += `--primary-200: ${colorPallete[200]};\\n`;\r\n\tel.textContent += `--primary-100: ${colorPallete[100]};\\n`;\r\n\tel.textContent += `--primary-50: ${colorPallete[50]};\\n`;\r\n\tel.textContent += `--chart-primary: ${colorPallete[800]};\\n`;\r\n\tel.textContent += `--chart-secondary: ${colorPallete[200]};\\n`;\r\n\tel.textContent += '}';\r\n\r\n\treturn el;\r\n};\r\n","import { createContext, useContext, useEffect, useState } from 'react';\r\nimport { replaceThemeTailwindColors } from '../../../lib/help/theme';\r\n\r\ntype Theme = 'light' | 'dark' | 'dark-side';\r\n\r\ntype ThemePortalDefinitions = {\r\n\tfaviconPath: string;\r\n\tfullLogoPath: string;\r\n\tbannerDesktopPath: string;\r\n\tmvnoPrimaryColor: string;\r\n\tmvnoMainTheme: Theme;\r\n\ttitle: string;\r\n\thideModuleSwitcher: boolean;\r\n};\r\n\r\ntype ThemeProviderProps = {\r\n\tchildren: React.ReactNode;\r\n\tdefaultTheme?: ThemePortalDefinitions;\r\n\tstorageKey?: string;\r\n};\r\n\r\ntype ThemeProviderState = {\r\n\tportalDefinitions: ThemePortalDefinitions;\r\n\tsetPortalDefinitions: (portalDefinitions: ThemePortalDefinitions) => void;\r\n};\r\n\r\nexport const DEFAULT_THEME_DATA: ThemePortalDefinitions = {\r\n\tfaviconPath: '',\r\n\tfullLogoPath: '',\r\n\tbannerDesktopPath: '/imgs/background-auth.png',\r\n\tmvnoPrimaryColor: 'green',\r\n\tmvnoMainTheme: 'light',\r\n\ttitle: '-',\r\n\thideModuleSwitcher: false,\r\n};\r\n\r\nconst initialState: ThemeProviderState = {\r\n\tportalDefinitions: DEFAULT_THEME_DATA,\r\n\tsetPortalDefinitions: () => null,\r\n};\r\n\r\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState);\r\n\r\nexport function ThemeProvider({ children, defaultTheme = DEFAULT_THEME_DATA, storageKey = 'vite-ui-theme', ...props }: ThemeProviderProps) {\r\n\tconst [portalDefinitions, setPortalDefinitionsState] = useState<ThemePortalDefinitions>({\r\n\t\tfaviconPath: localStorage.getItem(`${storageKey}-faviconPath`) || defaultTheme.faviconPath,\r\n\t\tfullLogoPath: localStorage.getItem(`${storageKey}-fullLogoPath`) || defaultTheme.fullLogoPath,\r\n\t\tbannerDesktopPath: localStorage.getItem(`${storageKey}-bannerDesktopPath`) || defaultTheme.bannerDesktopPath,\r\n\t\tmvnoPrimaryColor: localStorage.getItem(`${storageKey}-mvnoPrimaryColor`) || defaultTheme.mvnoPrimaryColor,\r\n\t\tmvnoMainTheme: (localStorage.getItem(storageKey) as Theme) || defaultTheme.mvnoMainTheme,\r\n\t\ttitle: localStorage.getItem(`${storageKey}-title`) || defaultTheme.title,\r\n\t\thideModuleSwitcher: localStorage.getItem(`${storageKey}-hideModuleSwitcher`) === 'true',\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tconst theme = portalDefinitions?.mvnoMainTheme;\r\n\r\n\t\tconst root = window.document.documentElement;\r\n\t\troot.classList.remove('light', 'dark', 'dark-side');\r\n\t\troot.classList.add(theme);\r\n\r\n\t\tdocument.title = portalDefinitions?.title;\r\n\t\tconst meta = document.querySelector('meta[name=\"description\"]');\r\n\t\tif (meta) {\r\n\t\t\tmeta.setAttribute('content', portalDefinitions?.title);\r\n\t\t}\r\n\r\n\t\tlet link = document.querySelector<HTMLLinkElement>(\"link[rel~='icon']\");\r\n\t\tif (!link) {\r\n\t\t\tlink = document.createElement('link');\r\n\t\t\tlink.rel = 'icon';\r\n\t\t\tdocument.getElementsByTagName('head')[0].appendChild(link);\r\n\t\t}\r\n\t\tlink.href = portalDefinitions?.faviconPath;\r\n\r\n\t\tconst el = replaceThemeTailwindColors(theme, portalDefinitions?.mvnoPrimaryColor);\r\n\r\n\t\tdocument.getElementById('theme-variables') &&\r\n\t\t\tdocument.getElementsByTagName('head')[0].removeChild(document.getElementById('theme-variables')!);\r\n\t\tdocument.getElementsByTagName('head')[0].appendChild(el);\r\n\t}, [portalDefinitions]);\r\n\r\n\tconst setPortalDefinitions = (portalDefinitions: ThemePortalDefinitions) => {\r\n\t\tlocalStorage.setItem(`${storageKey}-faviconPath`, portalDefinitions.faviconPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-fullLogoPath`, portalDefinitions.fullLogoPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-bannerDesktopPath`, portalDefinitions.bannerDesktopPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-mvnoPrimaryColor`, portalDefinitions.mvnoPrimaryColor);\r\n\t\tlocalStorage.setItem(`${storageKey}-mvnoMainTheme`, portalDefinitions.mvnoMainTheme);\r\n\t\tlocalStorage.setItem(`${storageKey}-title`, portalDefinitions.title);\r\n\t\tlocalStorage.setItem(`${storageKey}-hideModuleSwitcher`, String(portalDefinitions.hideModuleSwitcher));\r\n\r\n\t\tsetPortalDefinitionsState({\r\n\t\t\tfaviconPath: portalDefinitions.faviconPath || DEFAULT_THEME_DATA.faviconPath,\r\n\t\t\tfullLogoPath: portalDefinitions.fullLogoPath || DEFAULT_THEME_DATA.fullLogoPath,\r\n\t\t\tbannerDesktopPath: portalDefinitions.bannerDesktopPath || DEFAULT_THEME_DATA.bannerDesktopPath,\r\n\t\t\tmvnoPrimaryColor: portalDefinitions.mvnoPrimaryColor || DEFAULT_THEME_DATA.mvnoPrimaryColor,\r\n\t\t\tmvnoMainTheme: portalDefinitions.mvnoMainTheme ? (portalDefinitions.mvnoMainTheme as Theme) : DEFAULT_THEME_DATA.mvnoMainTheme,\r\n\t\t\ttitle: portalDefinitions.title || DEFAULT_THEME_DATA.title,\r\n\t\t\thideModuleSwitcher: portalDefinitions.hideModuleSwitcher || DEFAULT_THEME_DATA.hideModuleSwitcher,\r\n\t\t});\r\n\t};\r\n\r\n\tconst value: ThemeProviderState = {\r\n\t\tportalDefinitions,\r\n\t\tsetPortalDefinitions: setPortalDefinitions,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ThemeProviderContext.Provider {...props} value={value}>\r\n\t\t\t{children}\r\n\t\t</ThemeProviderContext.Provider>\r\n\t);\r\n}\r\n\r\nexport const useTheme = () => {\r\n\tconst context = useContext(ThemeProviderContext);\r\n\r\n\tif (context === undefined) throw new Error('useTheme must be used within a ThemeProvider');\r\n\r\n\treturn context;\r\n};\r\n","import { CircleHelp } from 'lucide-react';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../tooltip';\r\n\r\nconst formHelpText = (helpText: JSX.Element) => {\r\n\treturn (\r\n\t\t<TooltipProvider>\r\n\t\t\t<Tooltip>\r\n\t\t\t\t<TooltipTrigger className='pb-2'>\r\n\t\t\t\t\t<CircleHelp size={16} className='text-muted' />\r\n\t\t\t\t</TooltipTrigger>\r\n\t\t\t\t<TooltipContent className='text-white bg-background-primary' align='start'>\r\n\t\t\t\t\t{helpText}\r\n\t\t\t\t</TooltipContent>\r\n\t\t\t</Tooltip>\r\n\t\t</TooltipProvider>\r\n\t);\r\n};\r\n\r\nexport { formHelpText };\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport React from 'react';\r\nimport { cn } from '../../../../lib/utils';\r\n\r\ntype FormLabelComponent = React.ForwardRefExoticComponent<React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & React.RefAttributes<React.ElementRef<typeof LabelPrimitive.Root>>>;\r\n\r\nconst formLabel = (FormLabel: FormLabelComponent, label: string) => {\r\n\treturn <FormLabel className='text-default font-medium text-sm h-5'>{label}</FormLabel>;\r\n};\r\n\r\nconst formLabelAndSubLabel = (FormLabel: FormLabelComponent, label: string, subLabel?: string, required?: boolean | undefined, className?: string) => {\r\n\treturn (\r\n\t\t<div className={cn('flex flex-col pb-2', className)}>\r\n\t\t\t<div className='flex gap-1'>\r\n\t\t\t\t{formLabel(FormLabel, label)}\r\n\t\t\t\t{required && <FormLabel className='text-red-600 font-medium text-sm'>*</FormLabel>}\r\n\t\t\t</div>\r\n\t\t\t{subLabel && <FormLabel className='text-default font-normal pt-1'>{subLabel}</FormLabel>}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport { formLabel, formLabelAndSubLabel };\r\n\r\n","import React from 'react';\r\n\r\ntype FormMessageComponent = React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;\r\n\r\nconst formMessage = (FormMessage: FormMessageComponent) => {\r\n\treturn <FormMessage className='text-red-600 mt-1' />;\r\n};\r\n\r\nexport { formMessage };\r\n\r\n","import { Checkbox } from '../../checkbox';\r\nimport * as FormComponents from '../../form';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\tonCheckedChange?: (checked: boolean) => void;\r\n}\r\n\r\nexport const FormInputCheckbox: React.FC<Props> = ({ control, name, label, helpText, className, disabled, onCheckedChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center gap-2'>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\tvalue={field.value}\r\n\t\t\t\t\t\t\t\tclassName={`${\r\n\t\t\t\t\t\t\t\t\tfield.value\r\n\t\t\t\t\t\t\t\t\t\t? 'bg-purple-700 border border-purple-900 text-white rounded-[3px]'\r\n\t\t\t\t\t\t\t\t\t\t: 'bg-white border border-black text-black'\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) => {\r\n\t\t\t\t\t\t\t\t\tfield?.onChange?.(checked);\r\n\t\t\t\t\t\t\t\t\tonCheckedChange?.(checked as boolean);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t<div className='flex h-full items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabel(FormLabel, label)}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormInputCheckbox;\r\n","export type RGB = { r: number; g: number; b: number };\r\ntype HSL = { h: number; s: number; l: number };\r\n\r\nexport const rgbToHex = ({ r, g, b }: RGB): string => {\r\n\tconst toHex = (n: number) => Math.max(0, Math.min(255, n)).toString(16).padStart(2, '0').toUpperCase();\r\n\treturn `#${toHex(r)}${toHex(g)}${toHex(b)}`;\r\n};\r\n\r\nexport const hexToRgb = (hex: string): RGB | null => {\r\n\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\treturn result\r\n\t\t? {\r\n\t\t\t\tr: Number.parseInt(result[1], 16),\r\n\t\t\t\tg: Number.parseInt(result[2], 16),\r\n\t\t\t\tb: Number.parseInt(result[3], 16),\r\n\t\t }\r\n\t\t: null;\r\n};\r\n\r\nexport const rgbToHsl = ({ r, g, b }: RGB): HSL => {\r\n\tr /= 255;\r\n\tg /= 255;\r\n\tb /= 255;\r\n\r\n\tconst max = Math.max(r, g, b);\r\n\tconst min = Math.min(r, g, b);\r\n\tlet h = 0;\r\n\tlet s = 0;\r\n\tconst l = (max + min) / 2;\r\n\r\n\tif (max !== min) {\r\n\t\tconst d = max - min;\r\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n\t\tswitch (max) {\r\n\t\t\tcase r:\r\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\r\n\t\t\t\tbreak;\r\n\t\t\tcase g:\r\n\t\t\t\th = (b - r) / d + 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase b:\r\n\t\t\t\th = (r - g) / d + 4;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\th /= 6;\r\n\t}\r\n\r\n\treturn {\r\n\t\th: Math.round(h * 360),\r\n\t\ts: Math.round(s * 100),\r\n\t\tl: Math.round(l * 100),\r\n\t};\r\n};\r\n\r\nconst hue2rgb = (p: number, q: number, t: number) => {\r\n\tlet tempT = t;\r\n\tif (tempT < 0) tempT += 1;\r\n\tif (tempT > 1) tempT -= 1;\r\n\tif (tempT < 1 / 6) return p + (q - p) * 6 * tempT;\r\n\tif (tempT < 1 / 2) return q;\r\n\tif (tempT < 2 / 3) return p + (q - p) * (2 / 3 - tempT) * 6;\r\n\treturn p;\r\n};\r\n\r\nexport const hslToRgb = ({ h, s, l }: HSL): RGB => {\r\n\th /= 360;\r\n\ts /= 100;\r\n\tl /= 100;\r\n\r\n\tlet r: number;\r\n\tlet g: number;\r\n\tlet b: number;\r\n\r\n\tif (s === 0) {\r\n\t\tr = g = b = l;\r\n\t} else {\r\n\t\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n\t\tconst p = 2 * l - q;\r\n\r\n\t\tr = hue2rgb(p, q, h + 1 / 3);\r\n\t\tg = hue2rgb(p, q, h);\r\n\t\tb = hue2rgb(p, q, h - 1 / 3);\r\n\t}\r\n\r\n\treturn {\r\n\t\tr: Math.round(r * 255),\r\n\t\tg: Math.round(g * 255),\r\n\t\tb: Math.round(b * 255),\r\n\t};\r\n};\r\n\r\nexport const formatRgba = (rgb: RGB, a = 1): string => {\r\n\treturn `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${a})`;\r\n};\r\n\r\nexport const formatHsla = (hsl: HSL, a = 1): string => {\r\n\treturn `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a})`;\r\n};\r\n","import { Paintbrush } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { HexColorPicker } from 'react-colorful';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport * as FormComponents from '../../form';\r\nimport { Input } from '../../input';\r\nimport { Label } from '../../label';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\nimport { hexToRgb, rgbToHex } from './utils';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tid?: string;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n}\r\n\r\nexport const FormInputColor: React.FC<Props> = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\tconst DEFAULT_COLOR = '#000000';\r\n\tconst [currentColor, setCurrentColor] = useState<string>(DEFAULT_COLOR);\r\n\tconst rgb = hexToRgb(currentColor) || { r: 0, g: 0, b: 0 };\r\n\r\n\tconst handleColorChange = (newColor: string, onChange: (...event: any[]) => void) => {\r\n\t\tonChange?.(newColor);\r\n\t\tsetCurrentColor(newColor);\r\n\t};\r\n\r\n\tconst handleHexChange = (hex: string, onChange: (...event: any[]) => void) => {\r\n\t\tif (/^#[0-9A-Fa-f]{6}$/.test(hex)) {\r\n\t\t\thandleColorChange(hex, onChange);\r\n\t\t} else {\r\n\t\t\tsetCurrentColor(hex);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleRgbChange = (key: keyof typeof rgb, value: string, onChange: (...event: any[]) => void) => {\r\n\t\tconst numValue = Number.parseInt(value);\r\n\r\n\t\tif (!Number.isNaN(numValue) && numValue >= 0 && numValue <= 255) {\r\n\t\t\tconst newRgb = { ...rgb, [key]: numValue };\r\n\r\n\t\t\thandleColorChange(rgbToHex(newRgb), onChange);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Popover>\r\n\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\tclassName={cn('w-[240px] justify-start text-left font-normal', !field.value && 'text-zinc-500', className)}\r\n\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div className='w-full flex items-center gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t{field.value ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='h-4 w-4 rounded !bg-center !bg-cover transition-all border'\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ backgroundColor: field.value }}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Paintbrush className='h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t<div className='truncate flex-1 text-sm'>\r\n\t\t\t\t\t\t\t\t\t\t\t{field.value ? field.value : placeholder || 'Selecione uma cor'}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t<PopoverContent className={cn('w-80', className)}>\r\n\t\t\t\t\t\t\t<div className='flex flex-col gap-4'>\r\n\t\t\t\t\t\t\t\t<section className='[&_.react-colorful]:w-auto'>\r\n\t\t\t\t\t\t\t\t\t<HexColorPicker\r\n\t\t\t\t\t\t\t\t\t\tcolor={field.value ?? DEFAULT_COLOR}\r\n\t\t\t\t\t\t\t\t\t\tonChange={(newColor) => handleColorChange(newColor, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t<Label>Hex</Label>\r\n\t\t\t\t\t\t\t\t\t\t<Input value={currentColor} onChange={(e) => handleHexChange(e.target.value, field.onChange)} maxLength={7} />\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>R</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.r}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('r', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>G</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.g}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('g', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>B</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.b}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('b', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t</Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormInputColor;\r\n","import { Check, ChevronsUpDown, LoaderCircle, X } from 'lucide-react';\r\nimport { useEffect, useState } from 'react';\r\nimport { ControllerRenderProps, FieldValues } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../command';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface ComboboxOption {\r\n\tvalue: string | undefined;\r\n\ticon?: React.ReactNode | undefined;\r\n\ttitle: string;\r\n\tsubTitle?: string;\r\n\tclassName?: string;\r\n}\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions: ComboboxOption[];\r\n\tselectedOption?: ComboboxOption;\r\n\ticonLeft?: React.ReactNode | null;\r\n\ticonRight?: React.ReactNode | null;\r\n\taddEmptyOption?: boolean;\r\n\tcanUnselect?: boolean;\r\n\tclosePopUpOnChange?: boolean;\r\n\trunInternalSearch?: boolean;\r\n\tdisabledSearch?: boolean;\r\n\tonChange?: (option: ComboboxOption | undefined) => void;\r\n\tonSearch?: (searchString: string) => void;\r\n\tfooterAction?: {\r\n\t\tlabel: string;\r\n\t\ticon?: React.ReactNode;\r\n\t\tonClick: () => void;\r\n\t};\r\n}\r\n\r\nexport const FormCombobox: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\toptions,\r\n\tselectedOption,\r\n\ticonLeft,\r\n\ticonRight,\r\n\taddEmptyOption,\r\n\tcanUnselect = false,\r\n\tclosePopUpOnChange = true,\r\n\trunInternalSearch = true,\r\n\tdisabledSearch = false,\r\n\tonChange,\r\n\tonSearch,\r\n\tfooterAction,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [loading, setLoading] = useState<boolean>(false);\r\n\tconst [searchString, setSearchString] = useState<string>('');\r\n\tconst DEFAULT_PLACEHOLDER = 'Digite para buscar...';\r\n\r\n\tuseEffect(() => {\r\n\t\tsetLoading(false);\r\n\t}, [options]);\r\n\r\n\tconst getOptions = () => {\r\n\t\tif (options.length === 0) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tlet filteredOptions = options;\r\n\t\tif (runInternalSearch) {\r\n\t\t\tfilteredOptions = options.filter((option) => {\r\n\t\t\t\tconst title = option.title\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\t\t\t\tconst subTitle = option.subTitle\r\n\t\t\t\t\t?.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\t\t\t\tconst search = searchString\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\r\n\t\t\t\treturn title.includes(search) || subTitle?.includes(search);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (addEmptyOption) {\r\n\t\t\tfilteredOptions.unshift({ value: undefined, title: '--Selecione--', subTitle: '' });\r\n\t\t}\r\n\r\n\t\treturn filteredOptions;\r\n\t};\r\n\r\n\tconst getSelectedOption = (value: string | undefined): ComboboxOption | undefined => {\r\n\t\tconst option = options.find((option) => option.value === value);\r\n\r\n\t\tif (option) {\r\n\t\t\treturn option;\r\n\t\t}\r\n\r\n\t\treturn selectedOption;\r\n\t};\r\n\r\n\tconst handleSelect = (value: string | undefined, field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\tconst option = value ? getSelectedOption(value) : undefined;\r\n\r\n\t\tif (canUnselect) {\r\n\t\t\tfield.onChange(field.value === value ? undefined : value);\r\n\t\t} else {\r\n\t\t\tfield.onChange(value);\r\n\t\t}\r\n\r\n\t\tif (onChange) {\r\n\t\t\tonChange(option);\r\n\t\t}\r\n\t\tif (closePopUpOnChange) {\r\n\t\t\tsetOpen(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\tconst searchString = (event.target as HTMLInputElement).value;\r\n\r\n\t\tif (onSearch) {\r\n\t\t\tsetLoading(true);\r\n\t\t\tonSearch(searchString);\r\n\t\t}\r\n\t\tsetSearchString(searchString);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Popover\r\n\t\t\t\t\t\topen={open}\r\n\t\t\t\t\t\tonOpenChange={(open) => {\r\n\t\t\t\t\t\t\tif (!disabled) setOpen(open);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t\t<div className={cn(`rounded-sm outline-none ${open ? 'ring-2 ring-ring ring-offset-2' : 'ring-0'}`, className)}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\t\trole='combobox'\r\n\t\t\t\t\t\t\t\t\t\taria-expanded={open}\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t'justify-between disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\t\t\t\t\t\t\t\tformState.errors[name] ? 'border-red-600' : '',\r\n\t\t\t\t\t\t\t\t\t\t\tclassName,\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{iconLeft}\r\n\t\t\t\t\t\t\t\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t\t\t\t\t\t\t\t<span className='truncate font-normal'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value)?.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value)?.title}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='text-zinc-500'>{placeholder ?? DEFAULT_PLACEHOLDER}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{iconRight ?? <ChevronsUpDown size={20} className='stroke-zinc-500' />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t<PopoverContent className={cn('p-0', className, 'w-[--radix-popover-trigger-width]')}>\r\n\t\t\t\t\t\t\t<Command shouldFilter={false}>\r\n\t\t\t\t\t\t\t\t{!disabledSearch && <CommandInput placeholder={placeholder ?? DEFAULT_PLACEHOLDER} onKeyUp={handleKeyUp} />}\r\n\t\t\t\t\t\t\t\t<CommandList>\r\n\t\t\t\t\t\t\t\t\t<CommandEmpty className='flex flex-col justify-between items-center p-3 font-normal text-sm'>\r\n\t\t\t\t\t\t\t\t\t\t{loading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<LoaderCircle size={16} className='text-muted-foreground animate-spin mr-2' />\r\n\t\t\t\t\t\t\t\t\t\t) : getOptions()?.length === 0 && (searchString !== '' || disabledSearch) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t'Nenhum resultado encontrado'\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t'Utilize o campo de busca acima'\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</CommandEmpty>\r\n\t\t\t\t\t\t\t\t\t{options.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t<CommandGroup>\r\n\t\t\t\t\t\t\t\t\t\t\t{getOptions().map((option) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CommandItem\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`key-opt-${option.value}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName='group'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => handleSelect(option.value, field)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn('grid flex-1 text-left text-sm leading-tight', option.className)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='truncate font-normal'>{option.title}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='truncate text-xs text-zinc-500'>{option.subTitle}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={`ml-auto text-zinc-500 ${\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.value === option.value ? 'opacity-100' : 'opacity-0'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Check className={cn('flex', canUnselect && 'group-hover:hidden hover:hidden')} size={16} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<X className={cn('hidden', canUnselect && 'group-hover:flex hover:flex')} size={16} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</CommandItem>\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t</CommandGroup>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</CommandList>\r\n\t\t\t\t\t\t\t</Command>\r\n\t\t\t\t\t\t\t{footerAction && (\r\n\t\t\t\t\t\t\t\t<div className='grid w-full p-1 border-t'>\r\n\t\t\t\t\t\t\t\t\t<Button type='button' variant='ghost' className='h-8' onClick={() => footerAction.onClick()}>\r\n\t\t\t\t\t\t\t\t\t\t{footerAction.icon}\r\n\t\t\t\t\t\t\t\t\t\t{footerAction.label}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t</Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormCombobox;\r\n","import { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputCpfCnpj } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nconst masks = ['999.999.999-999', '99.999.999/9999-99'];\r\n\r\nexport const FormInputCpfCnpj: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [mask, setMask] = useState(masks[0]);\r\n\r\n\tconst handleMaskChange = (value: string) => {\r\n\t\tconst numericValue = value.replace(/\\D/g, '');\r\n\t\tif (numericValue.length > 11) {\r\n\t\t\tsetMask(masks[1]);\r\n\t\t} else {\r\n\t\t\tsetMask(masks[0]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputCpfCnpj\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\thandleMaskChange(e.target.value);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputCurrency: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tsymbol='R$'\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","export const getFirstDayOfCurrentMonth = (): Date => {\r\n\tconst now = new Date();\r\n\treturn new Date(now.getFullYear(), now.getMonth(), 1);\r\n};\r\n\r\nexport const getFirstDayOf90DaysAgo = (): Date => {\r\n\tconst now = new Date();\r\n\treturn new Date(now.getFullYear(), now.getMonth() - 3, 1);\r\n};\r\n\r\nexport const stringToDate = (dateString: string, separator: string = '/'): Date | undefined => {\r\n\tif (!dateString) return undefined;\r\n\r\n\tconst dateParts = dateString.split(separator);\r\n\tif (dateParts.length !== 3) return undefined;\r\n\r\n\tconst day = parseInt(dateParts[0], 10);\r\n\tconst month = parseInt(dateParts[1], 10) - 1; // Months are zero-based in JavaScript\r\n\tconst year = parseInt(dateParts[2], 10);\r\n\r\n\treturn new Date(year, month, day);\r\n};\r\n\r\nexport const aYearAgo = (): Date => {\r\n\tconst aYearAgo = new Date();\r\n\taYearAgo.setFullYear(aYearAgo.getFullYear() - 1);\r\n\r\n\treturn aYearAgo;\r\n};\r\n\r\nexport const invertDate = (date: string, separator: string = '/'): string => {\r\n\tif (!date) return '';\r\n\r\n\treturn date.split(separator).reverse().join('-');\r\n};\r\n\r\nexport const addDaysToToday = (days: number): Date => {\r\n\tconst date = new Date();\r\n\tdate.setDate(date.getDate() + days);\r\n\treturn date;\r\n};\r\n","import { ptBR } from 'date-fns/locale';\r\nimport { CalendarIcon } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { stringToDate } from '../../../../lib/help/date-utils';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Calendar } from '../../calendar';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInput } from '../../input';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputDate: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder = '01/01/2023',\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<div className='relative w-full'>\r\n\t\t\t\t\t\t\t<MaskInput\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tmask={'99/99/9999'}\r\n\t\t\t\t\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\tclassName={cn('pl-9', className)}\r\n\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t<div className='absolute left-3 top-1/2 -translate-y-1/2 cursor-pointer'>\r\n\t\t\t\t\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\r\n\t\t\t\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t\t<CalendarIcon size={16} className='cursor-pointer text-gray-500' />\r\n\t\t\t\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t\t\t\t<PopoverContent className='w-[250px] p-0' align='start'>\r\n\t\t\t\t\t\t\t\t\t\t<Calendar\r\n\t\t\t\t\t\t\t\t\t\t\tmode='single'\r\n\t\t\t\t\t\t\t\t\t\t\tlocale={ptBR}\r\n\t\t\t\t\t\t\t\t\t\t\trequired={true}\r\n\t\t\t\t\t\t\t\t\t\t\tselected={stringToDate(field.value) ?? new Date()}\r\n\t\t\t\t\t\t\t\t\t\t\tonSelect={(date) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(date ? date.toLocaleDateString('pt-BR') : '');\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: { value: date ? date.toLocaleDateString('pt-BR') : '' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.ChangeEvent<HTMLInputElement>);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetOpen(false);\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tclassName='rounded-md'\r\n\t\t\t\t\t\t\t\t\t\t\tcaptionLayout='dropdown'\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t\t\t\t</Popover>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { format } from 'date-fns';\r\nimport { CalendarIcon } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { DateRange } from 'react-day-picker';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Calendar } from '../../calendar';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement> | DateRange | undefined) => void;\r\n}\r\n\r\nexport const FormDataRange: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\t// const [date, setDate] = useState<DateRange | undefined>(field.value);\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\tconst handleDateChange = (newDate: DateRange | undefined, field: any) => {\r\n\t\t// setDate(newDate);\r\n\t\tfield.onChange(newDate);\r\n\t\tif (onChange) onChange(newDate);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\r\n\t\t\t\t\t\t\t<PopoverTrigger asChild className='w-full'>\r\n\t\t\t\t\t\t\t\t<div className={` rounded-sm outline-none ${open ? 'ring-2 ring-ring ring-offset-2' : 'ring-0'}`}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\t\trole='combobox'\r\n\t\t\t\t\t\t\t\t\t\taria-expanded={open}\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t` ${className} justify-start disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50`,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.errors[name] ? 'border-red-600' : '',\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<CalendarIcon className='text-zinc-500' />\r\n\t\t\t\t\t\t\t\t\t\t{field.value?.from ? (\r\n\t\t\t\t\t\t\t\t\t\t\tfield.value?.to ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{format(field.value?.from, 'dd/MM/yyyy')} - {format(field.value?.to, 'dd/MM/yyyy')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\tformat(field.value?.from, 'dd/MM/yyyy')\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<span className='font-normal text-zinc-500'>Escolha um Período</span>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t\t<PopoverContent className='flex w-auto p-0' align='start'>\r\n\t\t\t\t\t\t\t\t<div className='flex flex-row space-x-4'>\r\n\t\t\t\t\t\t\t\t\t<Calendar\r\n\t\t\t\t\t\t\t\t\t\tinitialFocus\r\n\t\t\t\t\t\t\t\t\t\tmode='range'\r\n\t\t\t\t\t\t\t\t\t\tdefaultMonth={field.value?.from}\r\n\t\t\t\t\t\t\t\t\t\tselected={field.value}\r\n\t\t\t\t\t\t\t\t\t\tnumberOfMonths={2}\r\n\t\t\t\t\t\t\t\t\t\tclassName='flex'\r\n\t\t\t\t\t\t\t\t\t\tonSelect={(newDate) => handleDateChange(newDate, field)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t\t</Popover>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputDecimal: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { InputFile } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputFile: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [value, setValue] = useState('');\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputFile\r\n\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsetValue(e.target.value);\r\n\t\t\t\t\t\t\t\tfield.onChange(e.target.files);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tclassName?: string;\r\n}\r\n\r\nexport const FormInputGhost: React.FC<Props> = ({ control, name, className }) => {\r\n\tconst { FormField, FormItem, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputText {...field} className='hidden' />\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { Input } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\ttype?: string;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInput: React.FC<Props> = ({\r\n\tcontrol,\r\n\ttype,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\ttype={type}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInput } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmask: string;\r\n\tmaskPlaceholder?: string | null;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tinputRef?: React.Ref<HTMLInputElement>;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputMask: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmask,\r\n\tmaskPlaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tinputRef,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInput\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\tmaskPlaceholder={maskPlaceholder}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { type VariantProps, cva } from 'class-variance-authority';\r\nimport { CheckIcon, ChevronDown, X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { ControllerRenderProps, FieldValues } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Badge } from '../../badge';\r\nimport { Button } from '../../button';\r\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../command';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nconst multiSelectVariants = cva('m-1 rounded-[6px]', {\r\n\tvariants: {\r\n\t\tvariant: {\r\n\t\t\tdefault: 'text-foreground bg-background-secondary dark:bg-popover hover:bg-background-secondary',\r\n\t\t\tsecondary: 'border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80',\r\n\t\t\tdestructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\r\n\t\t\tinverted: 'inverted',\r\n\t\t},\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tvariant: 'default',\r\n\t},\r\n});\r\n\r\nexport interface MultiSelectOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n}\r\n\r\ninterface MultiSelectProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof multiSelectVariants> {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\toptions: MultiSelectOption[];\r\n\tplaceholder?: string;\r\n\tmaxCount?: number;\r\n\tmodalPopover?: boolean;\r\n\tasChild?: boolean;\r\n\tclassName?: string;\r\n\trequired?: boolean;\r\n}\r\n\r\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tcontrol,\r\n name, \r\n label,\r\n subLabel,\r\n helpText,\r\n options,\r\n\t\t\tvariant,\r\n\t\t\tplaceholder,\r\n\t\t\tmaxCount = 2,\r\n\t\t\tmodalPopover = false,\r\n\t\t\tasChild = false,\r\n\t\t\tclassName,\r\n required,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref,\r\n\t) => {\r\n\t\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\r\n\t const DEFAULT_PLACEHOLDER_FILTER = 'Digite para buscar...';\r\n\t const DEFAULT_PLACEHOLDER = 'Selecione';\r\n\r\n\t\tconst toggleOption = (option: MultiSelectOption, field: ControllerRenderProps<FieldValues, string>) => {\r\n const prevValue = field.value || [];\r\n\r\n const newValue = prevValue?.some((item: MultiSelectOption) => item.value === option.value)\r\n ? prevValue.filter((item: MultiSelectOption) => item.value !== option.value)\r\n : [...prevValue, option];\r\n\r\n field.onChange(newValue);\r\n\t\t};\r\n\r\n\t\tconst handleClear = (field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\t\tfield.onChange([]);\r\n\t\t};\r\n\r\n\t\tconst handleTogglePopover = () => {\r\n\t\t\tsetIsPopoverOpen((prev) => !prev);\r\n\t\t};\r\n\r\n\t\tconst toggleAll = (field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\t\tif (field.value?.length === options.length) {\r\n\t\t\t\thandleClear(field);\r\n\t\t\t} else {\r\n\t\t\t\tconst allValues = options.map((option) => option);\r\n\t\t\t\tfield.onChange(allValues);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn (\r\n <FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n <Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen} modal={modalPopover}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n ref={ref}\r\n {...props}\r\n onClick={handleTogglePopover}\r\n className={cn(\r\n 'flex w-full p-1 rounded-md border min-h-10 h-auto items-center justify-between bg-background hover:bg-background [&_svg]:size-3.5',\r\n className,\r\n )}\r\n >\r\n {field.value?.length > 0 ? (\r\n <div className='flex justify-between items-center w-full'>\r\n <div className='flex items-center'>\r\n <div className={`grid grid-cols-${maxCount}`}>\r\n {field.value.slice(0, maxCount).map((option: MultiSelectOption) => {\r\n return (\r\n <Badge\r\n key={`msoptlbl-${option.value}`}\r\n className={cn(multiSelectVariants({ variant }))}\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n toggleOption(option, field);\r\n }}\r\n >\r\n <div className='truncate'>{option?.label}</div>\r\n <X className='ml-2 cursor-pointer text-zinc-500' />\r\n </Badge>\r\n );\r\n })}\r\n </div>\r\n {field.value?.length > maxCount && (\r\n <Badge variant={'surface'}\r\n >\r\n {`+${field.value?.length - maxCount}`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className='flex items-center justify-between'>\r\n <ChevronDown className='h-4 mx-2 cursor-pointer text-muted-foreground' />\r\n </div>\r\n </div>\r\n ) : (\r\n <div className='flex items-center justify-between w-full mx-auto'>\r\n <span className='text-sm text-muted-foreground mx-3'>{placeholder ?? DEFAULT_PLACEHOLDER}</span>\r\n <ChevronDown className='h-4 cursor-pointer text-muted-foreground mx-2' />\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className={cn('w-auto p-0', 'w-[--radix-popover-trigger-width]')} align='start' onEscapeKeyDown={() => setIsPopoverOpen(false)}>\r\n <Command>\r\n <CommandInput placeholder={DEFAULT_PLACEHOLDER_FILTER} />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem key='all' onSelect={() => toggleAll(field)} className='cursor-pointer'>\r\n <div\r\n className={cn(\r\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\r\n field.value?.length === options.length\r\n ? 'bg-primary text-primary-foreground'\r\n : 'opacity-50 [&_svg]:invisible',\r\n )}\r\n >\r\n <CheckIcon className='h-4 w-4' />\r\n </div>\r\n <span>(Selecionar Todos)</span>\r\n </CommandItem>\r\n {options.map((option) => {\r\n const isSelected = field.value?.some((item: MultiSelectOption) => item.value === option.value);\r\n return (\r\n <CommandItem key={`msopt-${option.value}`} onSelect={() => toggleOption(option, field)} className='cursor-pointer'>\r\n <div\r\n className={cn(\r\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\r\n isSelected ? 'bg-primary text-primary-foreground' : 'opacity-50 [&_svg]:invisible',\r\n )}\r\n >\r\n <CheckIcon className='h-4 w-4' />\r\n </div>\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n );\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nMultiSelect.displayName = 'MultiSelect';\r\n","import { Eye, EyeOff } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputPassWord: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [showPassword, setShowPassword] = useState(true);\r\n\tconst togglePasswordVisibility = () => setShowPassword((prev) => !prev);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<div className='relative w-full'>\r\n\t\t\t\t\t\t\t<InputText\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\ttype={showPassword ? 'password' : 'text'}\r\n\t\t\t\t\t\t\t\tname={name}\r\n\t\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<button type='button' onClick={togglePasswordVisibility} className='absolute inset-y-0 right-2 flex items-center'>\r\n\t\t\t\t\t\t\t\t{showPassword ? <EyeOff className='w-5 h-5 text-slate-500' /> : <Eye className='w-5 h-5 text-slate-500' />}\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputPercent: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tsymbol='%'\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputFone } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nconst masks = ['(99) 9999-99999', '(99) 9 9999-9999'];\r\n\r\nexport const FormInputPhone: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [mask, setMask] = useState(masks[0]);\r\n\r\n\tconst getMask = (val: string) => (val.replace(/\\D/g, '').length > 10 ? masks[1] : masks[0]);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => {\r\n\t\t\t\tuseEffect(() => {\r\n\t\t\t\t\tsetMask(getMask(field.value || ''));\r\n\t\t\t\t}, [field.value]);\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<MaskInputFone\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder ?? '(00) 0 0000-0000'}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\t\tonChange?.(e);\r\n\t\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\t\tsetMask(getMask(e.target.value));\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => onKeyUp?.(e)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t\t</FormItem>\r\n\t\t\t\t);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { Label } from '../../label';\r\nimport { RadioGroup, RadioGroupItem } from '../../radio-group';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface RadioOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\tdescription?: string;\r\n\tdisabled?: boolean;\r\n}\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tvalue?: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tclassNameOptions?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions?: RadioOption[];\r\n\tonChange?: (value: string) => void;\r\n}\r\n\r\nexport const FormRadioGroup: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tvalue,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tclassName,\r\n\tclassNameOptions,\r\n\tdisabled,\r\n\trequired,\r\n\toptions,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\tkey={value}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem>\r\n\t\t\t\t\t<div className={cn('flex items-center space-x-1.5 mb-2', className)}>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<RadioGroup\r\n\t\t\t\t\t\t\tonValueChange={(value: string) => {\r\n\t\t\t\t\t\t\t\tfield?.onChange?.(value);\r\n\t\t\t\t\t\t\t\tonChange?.(value);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tdefaultValue={field.value}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div className={cn('flex flex-grow gap-6', classNameOptions)}>\r\n\t\t\t\t\t\t\t\t{options?.map((option, index) => (\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col' key={`radio-${name}-${index}`}>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex items-center space-x-2' key={`radio-${name}-${index}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t<RadioGroupItem\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tid={`r${option.value}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value === option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={option.disabled}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label htmlFor={`r${option.value}`} className={option.disabled ? 'opacity-50' : ''}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\r\n\t\t\t\t\t\t\t\t\t\t\t</Label>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{option.description && (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn('pl-6 text-zinc-500', { 'opacity-50': option.disabled })}>{option.description}</div>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</RadioGroup>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { Select } from '@radix-ui/react-select';\r\nimport { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '../../select';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface SelectOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\tdefault?: boolean;\r\n}\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions: SelectOption[];\r\n}\r\n\r\nexport const FormSelect: React.FC<Props> = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required, options }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Select onValueChange={field.onChange} defaultValue={field.value} disabled={disabled}>\r\n\t\t\t\t\t\t\t<SelectTrigger className={cn('', formState.errors[name] ? 'border-red-600' : '', className)}>\r\n\t\t\t\t\t\t\t\t<SelectValue className='text-slate-400' placeholder={placeholder} />\r\n\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t<SelectContent className='bg-white cursor-pointer'>\r\n\t\t\t\t\t\t\t\t<SelectGroup>\r\n\t\t\t\t\t\t\t\t\t{options.map((option) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={option.value} value={option.value}>\r\n\t\t\t\t\t\t\t\t\t\t\t{option.label}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectGroup>\r\n\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { Check } from 'lucide-react';\r\nimport { Separator } from '../../separator';\r\n\r\nexport interface PropsStepNewForm {\r\n\tsteps: { id: string; label: string }[];\r\n\tcurrentIndex: number;\r\n}\r\n\r\nconst StepNewForm = ({ steps, currentIndex }: PropsStepNewForm) => {\r\n\tconst getStepIcon = (index: number) => {\r\n\t\tif (index < currentIndex) {\r\n\t\t\treturn (\r\n\t\t\t\t<div className='flex w-6 h-6 rounded-md items-center justify-center bg-background-secondary border'>\r\n\t\t\t\t\t<Check size={16} className='stroke-2 stroke-primary' />\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName={`flex w-6 h-6 rounded-md items-center justify-center border ${\r\n\t\t\t\t\tindex === currentIndex ? 'bg-background-primary text-white' : 'bg-white text-black'\r\n\t\t\t\t}`}\r\n\t\t\t>\r\n\t\t\t\t{index + 1}\r\n\t\t\t</div>\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className='flex flex-row gap-x-3 my-2.5'>\r\n\t\t\t{steps.map((step, index, array) => (\r\n\t\t\t\t<div className='flex items-center text-sm font-medium gap-x-3' key={step.id}>\r\n\t\t\t\t\t<div className='flex items-center text-sm font-medium gap-x-3'>\r\n\t\t\t\t\t\t{getStepIcon(index)}\r\n\t\t\t\t\t\t{step.label}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{index + 1 < array.length && (\r\n\t\t\t\t\t\t<div className='w-10'>\r\n\t\t\t\t\t\t\t<Separator />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t))}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport { StepNewForm };\r\n","import { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { Switch } from '../../switch';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\ttopLabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\tonCheckedChange?: (checked: boolean) => void;\r\n}\r\n\r\nexport const FormInputSwitch: React.FC<Props> = ({ control, name, label, topLabel, subLabel, helpText, className, disabled, onCheckedChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={cn('flex flex-col gap-y-2', className)}>\r\n\t\t\t\t\t{topLabel && <FormLabel>{topLabel}</FormLabel>}\r\n\t\t\t\t\t<div className='flex items-center gap-x-2'>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<Switch\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tchecked={field.value}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) => {\r\n\t\t\t\t\t\t\t\t\tfield.onChange(checked);\r\n\t\t\t\t\t\t\t\t\tif (onCheckedChange) {\r\n\t\t\t\t\t\t\t\t\t\tonCheckedChange(checked);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t<div className='flex h-full items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, false, 'pb-0')}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tinputRef?: React.Ref<HTMLInputElement>;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputText: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tinputRef,\r\n\tonKeyUp,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputText\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tvalue={field.value || ''}\r\n\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { Textarea } from '../../textarea';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;\r\n}\r\n\r\nexport const FormTextarea: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Textarea\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName='resize-none outline-none focus:outline-none'\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLTextAreaElement>) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { zodResolver } from '@hookform/resolvers/zod';\r\nimport { FieldErrors, useForm } from 'react-hook-form';\r\nimport { z } from 'zod';\r\nimport { Button } from '../../button';\r\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../dialog';\r\nimport { Form } from '../../form';\r\nimport { toast } from '../../use-toast';\r\nimport { FormRadioGroup } from '../form/radio-group';\r\nimport { ExportDataTable } from './types/data-table';\r\n\r\ninterface DataTableExportProps {\r\n\texportData?: ExportDataTable;\r\n\ttotalRows: number;\r\n}\r\n\r\nexport function DataTableExport({ exportData, totalRows }: DataTableExportProps) {\r\n\tconst exportXlSX = () => {\r\n\t\tif (!exportData) return;\r\n\r\n\t\tif (totalRows === 0) {\r\n\t\t\ttoast({\r\n\t\t\t\ttitle: 'Não há dados para exportar.',\r\n\t\t\t\tvariant: 'destructive',\r\n\t\t\t});\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst params = new URLSearchParams(exportData.params).toString();\r\n\t\twindow.open(`${exportData.url}?${params}`, '_blank');\r\n\t};\r\n\r\n\tconst renderExport = () => {\r\n\t\tif (!exportData) return null;\r\n\r\n\t\tif (exportData.type === 'xlsx') {\r\n\t\t\treturn (\r\n\t\t\t\t<Button variant='secondary' onClick={exportXlSX}>\r\n\t\t\t\t\tExportar\r\n\t\t\t\t</Button>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (exportData.type === 'dialog') {\r\n\t\t\tconst ExportDataSchema = z.object({\r\n\t\t\t\tmodel: z.string(),\r\n\t\t\t\tformat: z.string(),\r\n\t\t\t});\r\n\r\n\t\t\tconst form = useForm<z.infer<typeof ExportDataSchema>>({\r\n\t\t\t\tmode: 'onTouched',\r\n\t\t\t\tresolver: zodResolver(ExportDataSchema),\r\n\t\t\t});\r\n\r\n\t\t\tconst { control, trigger, handleSubmit } = form;\r\n\r\n\t\t\tconst onSubmit = async (values: z.infer<typeof ExportDataSchema>) => {\r\n\t\t\t\tawait trigger();\r\n\r\n\t\t\t\ttoast({\r\n\t\t\t\t\ttitle: 'Em desenvolvimento.',\r\n\t\t\t\t\tvariant: 'destructive',\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst onError = async (errors: FieldErrors<z.infer<typeof ExportDataSchema>>) => {\r\n\t\t\t\ttoast({\r\n\t\t\t\t\ttitle: 'Erro ao salvar',\r\n\t\t\t\t\tdescription: 'Verifique os campos obrigatórios',\r\n\t\t\t\t\tvariant: 'destructive',\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<Form {...(form as any)} onSubmit={handleSubmit(onSubmit, onError)}>\r\n\t\t\t\t\t<Dialog>\r\n\t\t\t\t\t\t<DialogTrigger asChild>\r\n\t\t\t\t\t\t\t<Button variant='secondary'>Exportar</Button>\r\n\t\t\t\t\t\t</DialogTrigger>\r\n\t\t\t\t\t\t<DialogContent hideClose className='fixed p-6 rounded-lg w-[451px]'>\r\n\t\t\t\t\t\t\t<DialogHeader>\r\n\t\t\t\t\t\t\t\t<DialogTitle>Exportar</DialogTitle>\r\n\t\t\t\t\t\t\t\t<DialogDescription />\r\n\t\t\t\t\t\t\t</DialogHeader>\r\n\t\t\t\t\t\t\t<div className='flex flex-col gap-6'>\r\n\t\t\t\t\t\t\t\t<FormRadioGroup\r\n\t\t\t\t\t\t\t\t\tcontrol={control}\r\n\t\t\t\t\t\t\t\t\tname='model'\r\n\t\t\t\t\t\t\t\t\tlabel='Selecione o modelo de visualização'\r\n\t\t\t\t\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t\t\t\t\t{ value: '0', label: 'Resumido' },\r\n\t\t\t\t\t\t\t\t\t\t{ value: '1', label: 'Detalhado' },\r\n\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\tclassName='text-sm font-normal'\r\n\t\t\t\t\t\t\t\t\tclassNameOptions='flex flex-col gap-4 mt-4 text-sm font-normal'\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t<FormRadioGroup\r\n\t\t\t\t\t\t\t\t\tcontrol={control}\r\n\t\t\t\t\t\t\t\t\tname='format'\r\n\t\t\t\t\t\t\t\t\tlabel='Selecione o formato desejado para exportação'\r\n\t\t\t\t\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t\t\t\t\t{ value: '0', label: 'PDF' },\r\n\t\t\t\t\t\t\t\t\t\t{ value: '1', label: 'XLSX' },\r\n\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\tclassName='text-sm font-normal'\r\n\t\t\t\t\t\t\t\t\tclassNameOptions='flex flex-col gap-4 mt-4 text-sm font-normal'\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<DialogFooter className='sm:justify-end gap-2'>\r\n\t\t\t\t\t\t\t\t<Button type='button' variant='secondary'>\r\n\t\t\t\t\t\t\t\t\tFechar\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t<Button type='button' variant='default' onClick={() => exportXlSX()}>\r\n\t\t\t\t\t\t\t\t\tExportar\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</DialogFooter>\r\n\t\t\t\t\t\t</DialogContent>\r\n\t\t\t\t\t</Dialog>\r\n\t\t\t\t</Form>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\treturn exportData && renderExport();\r\n}\r\n","import { PaginationState } from '@tanstack/react-table';\r\nimport { Badge } from '../../badge';\r\nimport {\r\n\tPagination,\r\n\tPaginationContent,\r\n\tPaginationEllipsis,\r\n\tPaginationItem,\r\n\tPaginationLink,\r\n\tPaginationNext,\r\n\tPaginationPrevious,\r\n} from '../../pagination';\r\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '../../select';\r\nimport { DataTableExport } from './data-table-export';\r\nimport { ExportDataTable } from './types/data-table';\r\n\r\ninterface DataTableFooterProps<TData> {\r\n\thidePagination?: boolean;\r\n\tdisablePagination?: boolean;\r\n\tisLoading?: boolean;\r\n\ttotalRows: number;\r\n\ttotalPages: number;\r\n\tcurrentPage: number;\r\n\tpagination: PaginationState;\r\n\thandlePageSize: (value: number) => void;\r\n\thandlePage: (value: number) => void;\r\n\tpreviousPage: {\r\n\t\taction: () => void;\r\n\t\tdisabled: boolean;\r\n\t};\r\n\tnextPage: {\r\n\t\taction: () => void;\r\n\t\tdisabled: boolean;\r\n\t};\r\n\texportData?: ExportDataTable;\r\n}\r\n\r\nexport function DataTableFooter<TData>({\r\n\tisLoading,\r\n\ttotalRows,\r\n\ttotalPages,\r\n\tcurrentPage,\r\n\thidePagination,\r\n\tdisablePagination,\r\n\tpagination,\r\n\thandlePageSize,\r\n\thandlePage,\r\n\tpreviousPage,\r\n\tnextPage,\r\n\texportData,\r\n}: DataTableFooterProps<TData>) {\r\n\tconst renderPaginationPages = () => {\r\n\t\tconst paginationItems: JSX.Element[] = [];\r\n\r\n\t\tconst createPaginationItem = (pageIndex: number) => (\r\n\t\t\t<PaginationItem key={pageIndex}>\r\n\t\t\t\t<PaginationLink onClick={() => handlePage(pageIndex)} isActive={currentPage === pageIndex}>\r\n\t\t\t\t\t{pageIndex + 1}\r\n\t\t\t\t</PaginationLink>\r\n\t\t\t</PaginationItem>\r\n\t\t);\r\n\r\n\t\t// Add first page\r\n\t\tpaginationItems.push(createPaginationItem(0));\r\n\r\n\t\t// Add ellipsis if needed\r\n\t\tif (currentPage > 2) {\r\n\t\t\tpaginationItems.push(<PaginationEllipsis key='start-ellipsis' />);\r\n\t\t}\r\n\r\n\t\t// Add pages before current page\r\n\t\tfor (let i = Math.max(1, currentPage - 1); i < currentPage; i++) {\r\n\t\t\tpaginationItems.push(createPaginationItem(i));\r\n\t\t}\r\n\r\n\t\t// Add current page\r\n\t\tif (currentPage !== 0 && currentPage !== totalPages - 1) {\r\n\t\t\tpaginationItems.push(createPaginationItem(currentPage));\r\n\t\t}\r\n\r\n\t\t// Add pages after current page\r\n\t\tfor (let i = currentPage + 1; i <= Math.min(totalPages - 2, currentPage + 1); i++) {\r\n\t\t\tpaginationItems.push(createPaginationItem(i));\r\n\t\t}\r\n\r\n\t\t// Add ellipsis if needed\r\n\t\tif (currentPage < totalPages - 3) {\r\n\t\t\tpaginationItems.push(<PaginationEllipsis key='end-ellipsis' />);\r\n\t\t}\r\n\r\n\t\t// Add last page\r\n\t\tif (totalPages > 1) {\r\n\t\t\tpaginationItems.push(createPaginationItem(totalPages - 1));\r\n\t\t}\r\n\r\n\t\treturn paginationItems;\r\n\t};\r\n\r\n\treturn (\r\n\t\t!hidePagination && (\r\n\t\t\t<footer className='flex items-center justify-between h-[64px]'>\r\n\t\t\t\t<div className='flex flex-row items-center gap-6'>\r\n\t\t\t\t\t<div className='flex flex-row items-center gap-2'>\r\n\t\t\t\t\t\tLinhas por página\r\n\t\t\t\t\t\t<Select\r\n\t\t\t\t\t\t\tvalue={pagination.pageSize.toString()}\r\n\t\t\t\t\t\t\tonValueChange={(value) => handlePageSize(Number(value))}\r\n\t\t\t\t\t\t\tdisabled={isLoading || disablePagination}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<SelectTrigger className='w-20'>\r\n\t\t\t\t\t\t\t\t<SelectValue placeholder='' className='text-slate-800 font-medium' />\r\n\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t<SelectGroup>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='25'>25</SelectItem>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='50'>50</SelectItem>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='100'>100</SelectItem>\r\n\t\t\t\t\t\t\t\t</SelectGroup>\r\n\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<DataTableExport exportData={exportData} totalRows={totalPages} />\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className='flex items-center gap-4'>\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t{!isLoading && (\r\n\t\t\t\t\t\t\t<Badge variant='secondary'>{totalRows === 0 ? 'Nenhum item' : totalRows === 1 ? '1 item' : `${totalRows} itens`}</Badge>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<Pagination>\r\n\t\t\t\t\t\t\t<PaginationContent>\r\n\t\t\t\t\t\t\t\t<PaginationItem>\r\n\t\t\t\t\t\t\t\t\t<PaginationPrevious onClick={() => previousPage.action()} disabled={previousPage.disabled || disablePagination} />\r\n\t\t\t\t\t\t\t\t</PaginationItem>\r\n\t\t\t\t\t\t\t\t{renderPaginationPages()}\r\n\t\t\t\t\t\t\t\t<PaginationItem>\r\n\t\t\t\t\t\t\t\t\t<PaginationNext onClick={() => nextPage.action()} disabled={nextPage.disabled || disablePagination} />\r\n\t\t\t\t\t\t\t\t</PaginationItem>\r\n\t\t\t\t\t\t\t</PaginationContent>\r\n\t\t\t\t\t\t</Pagination>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</footer>\r\n\t\t)\r\n\t);\r\n}\r\n","import { Table, flexRender } from '@tanstack/react-table';\r\nimport { ArrowUpDown, MoveDown, MoveUp } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Checkbox } from '../../checkbox';\r\nimport { TableHead, TableHeader, TableRow } from '../../table';\r\n\r\ninterface DataTableHeaderProps<TData> {\r\n\ttable: Table<TData>;\r\n\tcanActionsRow?: boolean;\r\n\tenableMultiRowSelection?: boolean;\r\n}\r\n\r\nexport function DataTableHeader<TData>({ table, canActionsRow, enableMultiRowSelection }: DataTableHeaderProps<TData>) {\r\n\tconst headerGroups = table.getHeaderGroups();\r\n\treturn (\r\n\t\t<TableHeader>\r\n\t\t\t{headerGroups.map((headerGroup) => (\r\n\t\t\t\t<TableRow key={headerGroup.id} className='bg-background dark:bg-datatable-accent rounded-t-md sticky top-0 z-10'>\r\n\t\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t\t<TableHead className='h-[65px] w-6'>\r\n\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\tchecked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{headerGroup.headers.map((header) => (\r\n\t\t\t\t\t\t<TableHead\r\n\t\t\t\t\t\t\tkey={header.id}\r\n\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t'h-[65px] whitespace-nowrap',\r\n\t\t\t\t\t\t\t\theader.column.id === 'id' ? 'sticky left-0 z-20' : '',\r\n\t\t\t\t\t\t\t\theader.column.columnDef.enableSorting ? 'pl-2' : '',\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{header.column.columnDef.enableSorting ? (\r\n\t\t\t\t\t\t\t\t<Button variant='ghost' onClick={() => header.column.toggleSorting(header.column.getIsSorted() === 'asc')}>\r\n\t\t\t\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\r\n\t\t\t\t\t\t\t\t\t{header.column.getIsSorted() === 'asc' ? (\r\n\t\t\t\t\t\t\t\t\t\t<MoveUp className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t) : header.column.getIsSorted() === 'desc' ? (\r\n\t\t\t\t\t\t\t\t\t\t<MoveDown className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<ArrowUpDown className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\tflexRender(header.column.columnDef.header, header.getContext())\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t{canActionsRow && <TableHead />}\r\n\t\t\t\t</TableRow>\r\n\t\t\t))}\r\n\t\t</TableHeader>\r\n\t);\r\n}\r\n","import { ColumnDef, Table, flexRender } from '@tanstack/react-table';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Checkbox } from '../../checkbox';\r\nimport { Skeleton } from '../../skeleton';\r\nimport { TableCell, TableRow } from '../../table';\r\nimport { ActionRow } from './types/data-table';\r\n\r\ninterface DataTableRowsProps<TData> {\r\n\ttable: Table<TData>;\r\n\tcolumns: ColumnDef<TData>[];\r\n\tisLoading?: boolean;\r\n\tactionsRow?: ActionRow[];\r\n\ttextNoRecords?: string;\r\n\tenableMultiRowSelection?: boolean;\r\n}\r\n\r\nexport function DataTableRows<TData>({ table, isLoading, columns, actionsRow, textNoRecords, enableMultiRowSelection }: DataTableRowsProps<TData>) {\r\n\tconst rows = table.getRowModel().rows;\r\n\r\n\tconst renderLoadingRows = () => {\r\n\t\tconst rows: JSX.Element[] = [];\r\n\r\n\t\tfor (let i = 0; i < 10; i++) {\r\n\t\t\trows.push(\r\n\t\t\t\t<TableRow key={`loading-row-${i}`}>\r\n\t\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t\t<TableCell className='py-2'>\r\n\t\t\t\t\t\t\t<Skeleton className='h-10 w-full' />\r\n\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{columns.map((column) => (\r\n\t\t\t\t\t\t<TableCell key={column.id} className='py-2'>\r\n\t\t\t\t\t\t\t<Skeleton className='h-10 w-full' />\r\n\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</TableRow>,\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn rows;\r\n\t};\r\n\r\n\tconst renderRows = () => {\r\n\t\treturn rows.map((row) => (\r\n\t\t\t<TableRow key={row.id} data-state={row.getIsSelected() && 'selected'} className='group'>\r\n\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t<TableCell className='py-4'>\r\n\t\t\t\t\t\t<Checkbox checked={row.getIsSelected()} onCheckedChange={(value) => row.toggleSelected(!!value)} aria-label='Select row' />\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t)}\r\n\t\t\t\t{row.getVisibleCells().map((cell) => (\r\n\t\t\t\t\t<TableCell key={cell.id} className='py-4'>\r\n\t\t\t\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t))}\r\n\t\t\t\t{actionsRow && (\r\n\t\t\t\t\t<TableCell\r\n\t\t\t\t\t\tclassName='opacity-0 group-hover:opacity-100 hover:opacity-100 relative overflow-visible w-[0px]'\r\n\t\t\t\t\t\tkey={`buttons-${row.id}`}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div className='absolute transition-colors group-hover:bg-datatable-accent overflow-visible right-5 -translate-y-1/2 flex space-x-4'>\r\n\t\t\t\t\t\t\t{actionsRow.map((action, index) => (\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tkey={`action-row-${index}`}\r\n\t\t\t\t\t\t\t\t\tvariant={(action.variant as 'link' | 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost') || 'default'}\r\n\t\t\t\t\t\t\t\t\tclassName={cn('bg-datatable-accent', action.className?.(row.original) || '')}\r\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick?.(row.original)}\r\n\t\t\t\t\t\t\t\t\tdisabled={action.disabled?.(row.original) || false}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{action.icon}\r\n\t\t\t\t\t\t\t\t\t{action.label}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t)}\r\n\t\t\t</TableRow>\r\n\t\t));\r\n\t};\r\n\r\n\tconst renderEmptyRows = () => {\r\n\t\tconst colSpan = columns.length + (actionsRow ? 1 : 0);\r\n\t\treturn (\r\n\t\t\t<TableRow>\r\n\t\t\t\t<TableCell colSpan={colSpan} className='text-center h-[53px]'>\r\n\t\t\t\t\t{textNoRecords ? textNoRecords : 'Sem resultados.'}\r\n\t\t\t\t</TableCell>\r\n\t\t\t</TableRow>\r\n\t\t);\r\n\t};\r\n\r\n\treturn isLoading ? renderLoadingRows() : rows.length ? renderRows() : renderEmptyRows();\r\n}\r\n","import {\r\n\tColumnDef,\r\n\tPaginationState,\r\n\tSortingState,\r\n\tgetCoreRowModel,\r\n\tgetFilteredRowModel,\r\n\tgetPaginationRowModel,\r\n\tgetSortedRowModel,\r\n\tuseReactTable,\r\n} from '@tanstack/react-table';\r\nimport { Filter, Search } from 'lucide-react';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from '../../sheet';\r\nimport { Table, TableBody } from '../../table';\r\nimport { DataTableFooter } from './data-table-footer';\r\nimport { DataTableHeader } from './data-table-header';\r\nimport { DataTableRows } from './data-table-rows';\r\nimport { ActionRow, ActionTable, ExportDataTable, FiltersActions } from './types/data-table';\r\n\r\nexport interface DataTableProps<TData> {\r\n\tcolumns: ColumnDef<TData>[];\r\n\tdata: TData[];\r\n\tactions?: ActionTable[];\r\n\tactionsRow?: ActionRow[];\r\n\tcustomFilters?: JSX.Element;\r\n\tclassName?: string;\r\n\ttitle?: string;\r\n\trowsPage?: number;\r\n\tsetSearch?: (value?: string) => void;\r\n\tsetSelectRows?: (ids: string[]) => void;\r\n\tpageChanged?: (pageNumber: number) => void;\r\n\tpageSizeChanged?: (pageSize: number) => void;\r\n\ttotalRows?: number;\r\n\tfiltersActions?: FiltersActions;\r\n\texportData?: ExportDataTable;\r\n\ttextNoRecords?: string;\r\n\theightRemainingScroll?: number;\r\n\thideFilterField?: boolean;\r\n\tmultiRowSelection?: {\r\n\t\tcallback: (selectedRows: any[]) => void;\r\n\t};\r\n\thidePagination?: boolean;\r\n\tdisablePagination?: boolean;\r\n\tisLoading?: boolean;\r\n\tfixedHeight?: number;\r\n}\r\n\r\nexport interface OriginalDataTableData {\r\n\tid: string;\r\n\tchecked?: boolean;\r\n}\r\n\r\nexport function DataTable<TData>({\r\n\tcolumns,\r\n\tdata,\r\n\tclassName,\r\n\ttitle,\r\n\trowsPage,\r\n\tactions,\r\n\tactionsRow,\r\n\tcustomFilters,\r\n\tsetSearch,\r\n\tpageChanged,\r\n\tpageSizeChanged,\r\n\ttotalRows,\r\n\tfiltersActions,\r\n\texportData,\r\n\ttextNoRecords,\r\n\theightRemainingScroll,\r\n\thideFilterField,\r\n\tmultiRowSelection,\r\n\thidePagination,\r\n\tdisablePagination,\r\n\tisLoading,\r\n\tfixedHeight,\r\n}: DataTableProps<TData>) {\r\n\tconst [sorting, setSorting] = useState<SortingState>([]);\r\n\tconst [pagination, setPagination] = useState<PaginationState>({\r\n\t\tpageIndex: 0,\r\n\t\tpageSize: rowsPage ?? 25,\r\n\t});\r\n\tconst enableMultiRowSelection = multiRowSelection !== undefined;\r\n\tconst [rowSelection, setRowSelection] = useState(\r\n\t\tenableMultiRowSelection\r\n\t\t\t? Object.fromEntries(\r\n\t\t\t\t\t(Array.isArray(data) ? data : []).map((row: any, idx: number) => {\r\n\t\t\t\t\t\treturn [idx, row.checked];\r\n\t\t\t\t\t}),\r\n\t\t\t )\r\n\t\t\t: {},\r\n\t);\r\n\tconst debounceTimeout = useRef<NodeJS.Timeout | null>(null);\r\n\tconst tableContainerRef = useRef<HTMLDivElement>(null);\r\n\tconst [tableHeight, setTableHeight] = useState('auto');\r\n\ttotalRows = totalRows ?? data.length;\r\n\r\n\tconst table = useReactTable({\r\n\t\tmanualPagination: true,\r\n\t\tdata: data,\r\n\t\tcolumns,\r\n\t\tgetPaginationRowModel: getPaginationRowModel(),\r\n\t\tonPaginationChange: setPagination,\r\n\t\tgetCoreRowModel: getCoreRowModel(),\r\n\t\tonSortingChange: setSorting,\r\n\t\tgetSortedRowModel: getSortedRowModel(),\r\n\t\tgetFilteredRowModel: getFilteredRowModel(),\r\n\t\tonRowSelectionChange: (rowSelection) => {\r\n\t\t\tsetRowSelection(rowSelection);\r\n\t\t},\r\n\t\tenableMultiRowSelection: enableMultiRowSelection,\r\n\t\tstate: { pagination, rowSelection, sorting },\r\n\t\tpageCount: Math.ceil(totalRows / pagination.pageSize),\r\n\t});\r\n\r\n\tconst totalPages = table.getPageCount();\r\n\tconst currentPage = table.getState().pagination.pageIndex;\r\n\tconst selectedRows = table.getSelectedRowModel().rows;\r\n\tconst selectedIds = selectedRows.map((row) => (row.original as OriginalDataTableData).id);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (data.length === 0 && pagination.pageIndex > 0) {\r\n\t\t\tsetPagination({ ...pagination, pageIndex: 0 });\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleResize();\r\n\r\n\t\twindow.addEventListener('resize', handleResize);\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('resize', handleResize);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (pageChanged) pageChanged(pagination.pageIndex + 1);\r\n\t}, [pagination]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst selectedRowsChecked = selectedRows.map((row) => row.original);\r\n\t\tif (multiRowSelection && selectedRowsChecked.length > 0) {\r\n\t\t\tmultiRowSelection.callback(selectedRowsChecked);\r\n\t\t}\r\n\t}, [rowSelection]);\r\n\r\n\tconst handleResize = () => {\r\n\t\tif (tableContainerRef.current) {\r\n\t\t\tconst newHeight = window.innerHeight - tableContainerRef.current.getBoundingClientRect().top - (hidePagination ? 30 : 74);\r\n\r\n\t\t\tsetTableHeight(`${newHeight - (heightRemainingScroll ?? 0)}px`);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleSearchChange = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\tconst value = event.currentTarget.value;\r\n\r\n\t\tif (debounceTimeout.current) {\r\n\t\t\tclearTimeout(debounceTimeout.current);\r\n\t\t}\r\n\r\n\t\tdebounceTimeout.current = setTimeout(() => {\r\n\t\t\tsetSearch?.(value);\r\n\t\t\thandlePage(0);\r\n\t\t}, 300);\r\n\t};\r\n\r\n\tconst handlePageSize = (value: number) => {\r\n\t\tpageSizeChanged?.(value);\r\n\t\tsetPagination({ pageIndex: 0, pageSize: value });\r\n\t};\r\n\r\n\tconst handlePage = (index: number) => {\r\n\t\tif (index !== currentPage) {\r\n\t\t\tsetPagination({ ...pagination, pageIndex: index });\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className='flex flex-col flex-1'>\r\n\t\t\t{(!hideFilterField || filtersActions || customFilters || actions) && (\r\n\t\t\t\t<div className='flex items-end justify-between mb-4 space-x-6'>\r\n\t\t\t\t\t<div className='flex items-center gap-x-4'>\r\n\t\t\t\t\t\t{!hideFilterField && (\r\n\t\t\t\t\t\t\t<div className='flex bg-background items-center border border-slate-300 rounded-sm w-[350px] overflow-hidden focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 group'>\r\n\t\t\t\t\t\t\t\t<div className='pl-3.5 transform transition-transform duration-300 group-hover:-translate-x-1'>\r\n\t\t\t\t\t\t\t\t\t<Search size={18} className='w-5 h-5 stroke-zinc-500 dark:stroke-default' />\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\tplaceholder='Buscar'\r\n\t\t\t\t\t\t\t\t\tonKeyUp={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleSearchChange(event);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tclassName='w-full bg-background text-default border-none focus:ring-0 focus:outline-none px-3 py-2 transform transition-transform duration-300 group-hover:-translate-x-1 '\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{filtersActions && (\r\n\t\t\t\t\t\t\t<Sheet open={filtersActions.filterOpen} onOpenChange={filtersActions.setFilterOpen}>\r\n\t\t\t\t\t\t\t\t<SheetTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t<Button variant='secondary' type='button'>\r\n\t\t\t\t\t\t\t\t\t\t<Filter size={20} className='h-4 w-4' /> Filtros\r\n\t\t\t\t\t\t\t\t\t\t{filtersActions.countFilters > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className='bg-background-primary text-white rounded-full h-5 w-5 flex items-center justify-center text-sm placeholder:text-muted-foreground'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{filtersActions.countFilters}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</SheetTrigger>\r\n\t\t\t\t\t\t\t\t<SheetContent>\r\n\t\t\t\t\t\t\t\t\t<SheetHeader>\r\n\t\t\t\t\t\t\t\t\t\t<SheetTitle>Filtros</SheetTitle>\r\n\t\t\t\t\t\t\t\t\t\t<SheetDescription />\r\n\t\t\t\t\t\t\t\t\t</SheetHeader>\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col py-6'>{filtersActions.fields}</div>\r\n\t\t\t\t\t\t\t\t</SheetContent>\r\n\t\t\t\t\t\t\t</Sheet>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{customFilters}\r\n\t\t\t\t\t<div className='flex space-x-4 content-end'>\r\n\t\t\t\t\t\t{actions?.map((action, index) => (\r\n\t\t\t\t\t\t\t<div key={`action-table-${index}`}>\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick?.(selectedIds, selectedRows)}\r\n\t\t\t\t\t\t\t\t\tclassName={cn(action.className, action.hideUnselectedRows && selectedRows.length === 0 ? 'hidden' : '')}\r\n\t\t\t\t\t\t\t\t\tvariant={(action.variant as 'link' | 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost') || 'default'}\r\n\t\t\t\t\t\t\t\t\tdisabled={action.disabled}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div className='[&_svg]:size-5'>{action.icon}</div>\r\n\t\t\t\t\t\t\t\t\t{action.label}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\r\n\t\t\t<div className={`flex-1 flex flex-col rounded-md border ${className}`}>\r\n\t\t\t\t<div className='flex items-center justify-between'>{title && <div className='text-h4 p-4'>{title}</div>}</div>\r\n\t\t\t\t<div\r\n\t\t\t\t\tid='data-table'\r\n\t\t\t\t\tref={tableContainerRef}\r\n\t\t\t\t\tstyle={fixedHeight ? { height: fixedHeight } : { height: tableHeight }}\r\n\t\t\t\t\tclassName='flex flex-col justify-between rounded-md overflow-x-auto overflow-y-auto'\r\n\t\t\t\t>\r\n\t\t\t\t\t<Table>\r\n\t\t\t\t\t\t<DataTableHeader\r\n\t\t\t\t\t\t\ttable={table}\r\n\t\t\t\t\t\t\tcanActionsRow={actionsRow && actionsRow.length > 0}\r\n\t\t\t\t\t\t\tenableMultiRowSelection={enableMultiRowSelection}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TableBody className='bg-background'>\r\n\t\t\t\t\t\t\t<DataTableRows\r\n\t\t\t\t\t\t\t\ttable={table}\r\n\t\t\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\t\t\tisLoading={isLoading}\r\n\t\t\t\t\t\t\t\tactionsRow={actionsRow}\r\n\t\t\t\t\t\t\t\ttextNoRecords={textNoRecords}\r\n\t\t\t\t\t\t\t\tenableMultiRowSelection={enableMultiRowSelection}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</TableBody>\r\n\t\t\t\t\t</Table>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<DataTableFooter\r\n\t\t\t\thidePagination={hidePagination}\r\n\t\t\t\tdisablePagination={disablePagination}\r\n\t\t\t\tisLoading={isLoading}\r\n\t\t\t\ttotalRows={totalRows}\r\n\t\t\t\ttotalPages={totalPages}\r\n\t\t\t\tcurrentPage={currentPage}\r\n\t\t\t\tpagination={pagination}\r\n\t\t\t\thandlePageSize={handlePageSize}\r\n\t\t\t\thandlePage={handlePage}\r\n\t\t\t\tpreviousPage={{ action: () => table.previousPage(), disabled: !table.getCanPreviousPage() }}\r\n\t\t\t\tnextPage={{ action: () => table.nextPage(), disabled: !table.getCanNextPage() }}\r\n\t\t\t\texportData={exportData}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n}\r\n","import * as React from 'react';\r\n\r\ninterface SidebarItemTwoLinesProps {\r\n\titem: {\r\n\t\ticonLeft: React.ReactNode;\r\n\t\ttitle: string;\r\n\t\tsubTitle: string;\r\n\t\ticonRight?: React.ReactNode | null;\r\n\t};\r\n}\r\n\r\nconst SidebarItemTwoLines = ({ item }: SidebarItemTwoLinesProps) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<div className='[&_svg]:size-4 text-white'>{item.iconLeft}</div>\r\n\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t<span className='truncate font-semibold'>{item.title}</span>\r\n\t\t\t\t<span className='truncate text-xs text-foreground'>{item.subTitle}</span>\r\n\t\t\t</div>\r\n\t\t\t{item.iconRight}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default SidebarItemTwoLines;\r\n","import { Check, ChevronsUpDown } from 'lucide-react';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../sidebar';\r\nimport SidebarItemTwoLines from './sidebar-item-two-lines';\r\nimport { Module } from './types/sidebar';\r\n\r\ninterface ModuleSwitcherProps {\r\n\tmodules: Module[];\r\n\tactiveModule: Module | undefined;\r\n\tonModuleChange: (module: Module) => void;\r\n}\r\n\r\nconst ModuleSwitcher = ({ modules, activeModule, onModuleChange }: ModuleSwitcherProps) => {\r\n\tconst { isMobile } = useSidebar();\r\n\r\n\treturn modules.length === 1 ? (\r\n\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t<SidebarItemTwoLines\r\n\t\t\t\titem={{\r\n\t\t\t\t\ticonLeft: <div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{activeModule?.icon}</div>,\r\n\t\t\t\t\ttitle: activeModule?.title ?? '',\r\n\t\t\t\t\tsubTitle: activeModule?.subTitle ?? '',\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t</SidebarMenuButton>\r\n\t) : (\r\n\t\t<SidebarMenu>\r\n\t\t\t<SidebarMenuItem>\r\n\t\t\t\t<DropdownMenu>\r\n\t\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\ticonLeft: (\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{activeModule?.icon}</div>\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\ttitle: activeModule?.title ?? '',\r\n\t\t\t\t\t\t\t\t\tsubTitle: activeModule?.subTitle ?? '',\r\n\t\t\t\t\t\t\t\t\ticonRight: <ChevronsUpDown size={16} />,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t\t<DropdownMenuContent className='w-[250px] rounded-lg' align='start' side={isMobile ? 'bottom' : 'right'} sideOffset={4}>\r\n\t\t\t\t\t\t{modules.map((module) => (\r\n\t\t\t\t\t\t\t<DropdownMenuItem key={`module-switcher-${module.value}`} onClick={() => onModuleChange?.(module)} className='gap-2 p-2'>\r\n\t\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\t\ticonLeft: <div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{module.icon}</div>,\r\n\t\t\t\t\t\t\t\t\t\ttitle: module.title,\r\n\t\t\t\t\t\t\t\t\t\tsubTitle: module.subTitle,\r\n\t\t\t\t\t\t\t\t\t\ticonRight: activeModule?.value === module.value ? <Check size={16} /> : null,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</DropdownMenuContent>\r\n\t\t\t\t</DropdownMenu>\r\n\t\t\t</SidebarMenuItem>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default ModuleSwitcher;\r\n","import { cn } from '../../../../lib/utils';\r\nimport { SidebarMenuButton } from '../../sidebar';\r\nimport { Module, SidebarPage } from './types/sidebar';\r\n\r\ninterface SidebarItemProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick?: (module: Module | null, path: string) => void;\r\n}\r\n\r\nconst SidebarButton = ({ item, selectedRoute, onClick }: SidebarItemProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuButton\r\n\t\t\tasChild\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground hover:bg-sidebar-accent px-2 py-5 gap-3 cursor-pointer',\r\n\t\t\t\tselectedRoute?.includes(item.path) ? 'bg-sidebar-accent' : '',\r\n\t\t\t)}\r\n\t\t\ttooltip={item.title}\r\n\t\t\tonClick={() => onClick?.(item.module ?? null, item.path)}\r\n\t\t>\r\n\t\t\t<div>\r\n\t\t\t\t<div className='[&_svg]:size-4 text-sidebar-foreground'>{item.icon}</div>\r\n\t\t\t\t<span>{item.title}</span>\r\n\t\t\t</div>\r\n\t\t</SidebarMenuButton>\r\n\t);\r\n};\r\n\r\nexport default SidebarButton;\r\n","import { SidebarMenuItem } from '../../sidebar';\r\nimport SidebarButton from './sidebar-button';\r\nimport { Module, SidebarPage } from './types/sidebar';\r\n\r\ninterface SidebarItemProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick?: (module: Module | null, path: string) => void;\r\n}\r\n\r\nconst SidebarItem = ({ item, selectedRoute, onClick }: SidebarItemProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuItem>\r\n\t\t\t<SidebarButton item={item} selectedRoute={selectedRoute} onClick={onClick} />\r\n\t\t</SidebarMenuItem>\r\n\t);\r\n};\r\n\r\nexport default SidebarItem;\r\n","import { useLocation, useNavigate } from 'react-router-dom';\r\nimport { SidebarGroup, SidebarGroupContent, SidebarMenu } from '../../sidebar';\r\nimport SidebarItem from './sidebar-item';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavFooterProps {\r\n\tpages: SidebarPage[];\r\n}\r\n\r\nconst NavFooter = ({pages}: NavFooterProps) => {\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst selectedRoutePath = location.pathname;\r\n\r\n\treturn (\r\n\t\t<SidebarGroup className='p-0'>\r\n\t\t\t<SidebarGroupContent>\r\n\t\t\t\t<SidebarMenu>\r\n\t\t\t\t\t{pages.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<SidebarItem\r\n\t\t\t\t\t\t\t\tkey={`sidebar-menu-main-${item.path}`}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(item.path)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</SidebarMenu>\r\n\t\t\t</SidebarGroupContent>\r\n\t\t</SidebarGroup>\r\n\t);\r\n};\r\n\r\nexport default NavFooter;\r\n","import { ChevronRight } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../collapsible';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, useSidebar } from '../../sidebar';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavSubmenuCollapsibleProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick: (path: string) => void;\r\n}\r\n\r\nconst NavSubmenuCollapsible = ({ item, selectedRoute, onClick }: NavSubmenuCollapsibleProps) => {\r\n\tconst { open, toggleSidebar } = useSidebar();\r\n\r\n\tconst isOpen = (): boolean => {\r\n\t\treturn selectedRoute?.includes(item.path) ?? false;\r\n\t};\r\n\r\n\tconst handleToggleSidebar = () => {\r\n\t\tif (!open) toggleSidebar();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<SidebarMenu>\r\n\t\t\t<Collapsible key={item.title} asChild defaultOpen={isOpen()}>\r\n\t\t\t\t<SidebarMenuItem>\r\n\t\t\t\t\t<CollapsibleTrigger asChild className='group/collapsible'>\r\n\t\t\t\t\t\t<SidebarMenuButton tooltip={item.title} className='px-2 py-5 gap-3' onClick={() => handleToggleSidebar()}>\r\n\t\t\t\t\t\t\t{item.icon}\r\n\t\t\t\t\t\t\t<span>{item.title}</span>\r\n\t\t\t\t\t\t\t<ChevronRight className='ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90' />\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</CollapsibleTrigger>\r\n\t\t\t\t\t<CollapsibleContent>\r\n\t\t\t\t\t\t<SidebarMenuSub>\r\n\t\t\t\t\t\t\t{item.subMenuItems\r\n\t\t\t\t\t\t\t\t?.map((subItem) => (\r\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={subItem.label}>\r\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton asChild onClick={() => onClick(subItem.path)} aria-disabled={subItem.disabled}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'cursor-pointer px-2 py-1 items-center self-stretch',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectedRoute === subItem.path ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{subItem.label}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\r\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</SidebarMenuSub>\r\n\t\t\t\t\t</CollapsibleContent>\r\n\t\t\t\t</SidebarMenuItem>\r\n\t\t\t</Collapsible>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default NavSubmenuCollapsible;\r\n","import { ChevronRight } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenuButton, SidebarMenuItem } from '../../sidebar';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavSubmenuDropdownProps {\r\n\tcols?: number;\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick: (path: string) => void;\r\n}\r\n\r\nconst NavSubmenuDropdown = ({ cols, item, selectedRoute, onClick }: NavSubmenuDropdownProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuItem>\r\n\t\t\t<DropdownMenu>\r\n\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t<SidebarMenuButton\r\n\t\t\t\t\t\tasChild\r\n\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground hover:bg-sidebar-accent px-2 py-5 gap-3 cursor-pointer',\r\n\t\t\t\t\t\t\tselectedRoute?.includes(item.path) ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\ttooltip={item.title}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t{item.icon}\r\n\t\t\t\t\t\t\t<span>{item.title}</span>\r\n\t\t\t\t\t\t\t{<ChevronRight className='ml-auto' />}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t<DropdownMenuContent className={`grid grid-cols-${cols ?? '1'} gap-4 p-4`} align='start' side='right' sideOffset={4}>\r\n\t\t\t\t\t{item.subMenuItems\r\n\t\t\t\t\t\t?.map((subItem, index) => (\r\n\t\t\t\t\t\t\t<DropdownMenuItem\r\n\t\t\t\t\t\t\t\tkey={`${index}`}\r\n\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t'flex flex-col items-start text-left max-w-[220px] gap-1 cursor-pointer',\r\n\t\t\t\t\t\t\t\t\tselectedRoute === subItem.path ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tonClick={() => onClick(subItem.path)}\r\n\t\t\t\t\t\t\t\tdisabled={subItem.disabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<div className='text-sm font-semibold'>{subItem.label}</div>\r\n\t\t\t\t\t\t\t\t<div className='text-sm text-muted-foreground'>{subItem.description}</div>\r\n\t\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t</DropdownMenuContent>\r\n\t\t\t</DropdownMenu>\r\n\t\t</SidebarMenuItem>\r\n\t);\r\n};\r\n\r\nexport default NavSubmenuDropdown;\r\n","export const SidebarSubmenuType = {\r\n\tCOLLAPSIBLE: 'collapsible',\r\n\t// Deprecated: Use COLLAPSIBLE instead\r\n\tDROPDOWN: 'dropdown',\r\n} as const;\r\nexport type SidebarSubmenuType = (typeof SidebarSubmenuType)[keyof typeof SidebarSubmenuType];\r\n\r\nexport interface Module {\r\n\tvalue: string;\r\n\tpath: string;\r\n\ttitle: string;\r\n\ticon: React.ReactNode;\r\n\tsubTitle: string;\r\n}\r\n\r\nexport interface SidebarPage {\r\n\tmodule: Module;\r\n\tpath: string;\r\n\ticon?: React.ReactNode;\r\n\ttitle: string;\r\n\thideSidebar: boolean;\r\n\tdisplayOnlyresellerIsAdm?: boolean;\r\n\tsubMenuType?: SidebarSubmenuType;\r\n\tsubMenuItems?: {\r\n\t\tlabel: string;\r\n\t\tdescription?: string;\r\n\t\tpath: string;\r\n\t\tdisplayOnlyresellerIsAdm?: boolean;\r\n\t\tdisabled?: boolean;\r\n\t}[];\r\n}\r\n","import { useIsMobile } from '@/hooks/use-mobile';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { SidebarGroup, SidebarGroupContent, SidebarMenu } from '../../sidebar';\r\nimport NavSubmenuCollapsible from './nav-submenu-collapsible';\r\nimport NavSubmenuDropdown from './nav-submenu-dropdown';\r\nimport SidebarItem from './sidebar-item';\r\nimport { SidebarPage, SidebarSubmenuType } from './types/sidebar';\r\n\r\ninterface NavMainProps {\r\n\tpages: SidebarPage[];\r\n}\r\n\r\nconst NavMain = ({pages}: NavMainProps) => {\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst isMobile = useIsMobile();\r\n\tconst selectedRoutePath = location.pathname;\r\n\r\n\treturn (\r\n\t\t<SidebarGroup>\r\n\t\t\t<SidebarGroupContent>\r\n\t\t\t\t<SidebarMenu>\r\n\t\t\t\t\t{pages.map((item) => {\r\n\t\t\t\t\t\tif (item.subMenuType) {\r\n\t\t\t\t\t\t\tif (item.subMenuType === SidebarSubmenuType.COLLAPSIBLE || isMobile) {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<NavSubmenuCollapsible\r\n\t\t\t\t\t\t\t\t\t\tkey={`sidebar-submenu-collapsible-${item.path}`}\r\n\t\t\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(path) => navigate(path)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Deprecated: Use COLLAPSIBLE instead\r\n\t\t\t\t\t\t\tif (item.subMenuType === SidebarSubmenuType.DROPDOWN) {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<NavSubmenuDropdown\r\n\t\t\t\t\t\t\t\t\t\tkey={`sidebar-submenu-dropdown-${item.path}`}\r\n\t\t\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(path) => navigate(path)}\r\n\t\t\t\t\t\t\t\t\t\tcols={3}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<SidebarItem\r\n\t\t\t\t\t\t\t\tkey={`sidebar-menu-main-${item.path}`}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(item.path)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</SidebarMenu>\r\n\t\t\t</SidebarGroupContent>\r\n\t\t</SidebarGroup>\r\n\t);\r\n};\r\n\r\nexport default NavMain;\r\n","import { LoaderCircle, LogOut } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { Avatar, AvatarFallback, AvatarImage } from '../../avatar';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../sidebar';\r\nimport SidebarItemTwoLines from './sidebar-item-two-lines';\r\n\r\ninterface NavUserProps {\r\n userName: string;\r\n userEmail: string;\r\n userInitials: string;\r\n callbackLogout: () => void;\r\n}\r\n\r\nconst NavUser = ({userName, userEmail, userInitials, callbackLogout}: NavUserProps) => {\r\n\tconst [isLoggingOut, setIsLoggingOut] = useState(false);\r\n\tconst { isMobile } = useSidebar();\r\n\r\n\tconst handleLogout = () => {\r\n\t\tsetIsLoggingOut(true);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcallbackLogout();\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<SidebarMenu>\r\n\t\t\t<SidebarMenuItem>\r\n\t\t\t\t<DropdownMenu>\r\n\t\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\ticonLeft: (\r\n\t\t\t\t\t\t\t\t\t\t<Avatar className='h-[31px] w-[31px] rounded-md'>\r\n\t\t\t\t\t\t\t\t\t\t\t<AvatarImage src={userInitials} alt={userName} />\r\n\t\t\t\t\t\t\t\t\t\t\t<AvatarFallback className='rounded-md bg-background-primary text-white'>{userInitials}</AvatarFallback>\r\n\t\t\t\t\t\t\t\t\t\t</Avatar>\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\ttitle: isLoggingOut ? 'Saindo...' : userName,\r\n\t\t\t\t\t\t\t\t\tsubTitle: isLoggingOut ? '' : userEmail,\r\n\t\t\t\t\t\t\t\t\ticonRight: isLoggingOut ? (\r\n\t\t\t\t\t\t\t\t\t\t<LoaderCircle size={16} className='text-sidebar-foreground animate-spin mr-2' />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<LogOut size={16} className='text-sidebar-foreground' />\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t\t<DropdownMenuContent className='w-[250px] rounded-lg' side={isMobile ? 'bottom' : 'right'} align='end' sideOffset={4}>\r\n\t\t\t\t\t\t<DropdownMenuLabel className='p-0 font-normal'>\r\n\t\t\t\t\t\t\t<div className='flex items-center gap-2 px-1 py-1.5 text-left text-sm'>\r\n\t\t\t\t\t\t\t\t<Avatar className='h-8 w-8 rounded-lg'>\r\n\t\t\t\t\t\t\t\t\t<AvatarImage src={userInitials} alt={userName} />\r\n\t\t\t\t\t\t\t\t\t<AvatarFallback className='rounded-lg bg-background-primary text-white'>{userInitials}</AvatarFallback>\r\n\t\t\t\t\t\t\t\t</Avatar>\r\n\t\t\t\t\t\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t\t\t\t\t\t<span className='truncate font-semibold'>{userName}</span>\r\n\t\t\t\t\t\t\t\t\t<span className='truncate text-xs'>{userEmail}</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</DropdownMenuLabel>\r\n\t\t\t\t\t\t<DropdownMenuItem className='p-0 font-normal cursor-pointer' onClick={() => handleLogout()}>\r\n\t\t\t\t\t\t\t<div className='flex items-center gap-2 px-1 py-1.5 text-left text-sm'>\r\n\t\t\t\t\t\t\t\t<div className='flex w-8 h-8 p-2 items-center rounded-md'>{<LogOut size={16} />}</div>\r\n\t\t\t\t\t\t\t\tLog out\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t</DropdownMenuContent>\r\n\t\t\t\t</DropdownMenu>\r\n\t\t\t</SidebarMenuItem>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default NavUser;\r\n","import { ReactNode, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport LoadingBar, { LoadingBarRef } from 'react-top-loading-bar';\r\nimport { getTailwindColorShades, TailwindColorName } from '../../../lib/help/theme';\r\nimport { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from '../breadcrumb';\r\nimport { SidebarTrigger } from '../sidebar';\r\nimport { Module, SidebarPage } from './sidebar/types/sidebar';\r\nimport { DEFAULT_THEME_DATA, useTheme } from './theme-provider';\r\n\r\nconst Header = ({\r\n\tsplittedPath,\r\n\tmodules,\r\n\tpages,\r\n\tisLoading,\r\n\tcombobox,\r\n}: { splittedPath: string[]; modules: Module[]; pages: SidebarPage[]; isLoading: boolean; combobox: ReactNode }) => {\r\n\tconst { portalDefinitions } = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst refProgressLoading = useRef<LoadingBarRef>(null);\r\n\tconst lastPage = splittedPath[splittedPath.length - 1];\r\n\r\n\tuseEffect(() => {\r\n\t\tisLoading ? refProgressLoading.current?.start() : refProgressLoading.current?.complete();\r\n\t}, [isLoading]);\r\n\r\n\tconst setRouter = (path: string) => {\r\n\t\tnavigate(path);\r\n\t};\r\n\r\n\tconst getPath = (index: number) => {\r\n\t\tlet path = '';\r\n\r\n\t\tfor (let i = 0; i <= index; i++) {\r\n\t\t\tpath += `/${splittedPath[i]}`;\r\n\t\t}\r\n\r\n\t\treturn path;\r\n\t};\r\n\r\n\tconst getLinkSidebar = (index: number) => {\r\n\t\treturn pages.find((item) => item.path === getPath(index));\r\n\t};\r\n\r\n\tconst getSubMenuItem = (index: number) => {\r\n\t\treturn pages.flatMap((item) => item.subMenuItems || []).find((sub) => sub.path === getPath(index));\r\n\t};\r\n\r\n\tconst getModule = (page: string) => {\r\n\t\tconst module = modules.find((mod) => mod.value === page);\r\n\t\tif (!module) {\r\n\t\t\treturn page;\r\n\t\t}\r\n\r\n\t\treturn module?.title;\r\n\t};\r\n\r\n\tconst getTitle = (index: number) => {\r\n\t\tconst linkSidebar = getLinkSidebar(index);\r\n\t\tconst subMenuItem = getSubMenuItem(index);\r\n\r\n\t\tif (subMenuItem) {\r\n\t\t\treturn subMenuItem.label;\r\n\t\t}\r\n\r\n\t\treturn linkSidebar?.title;\r\n\t};\r\n\r\n\tconst renderBreadcrumbPage = (index: number) => {\r\n\t\treturn <BreadcrumbPage>{getTitle(index)}</BreadcrumbPage>;\r\n\t};\r\n\r\n\tconst renderBreadcrumbLink = (page: string, index: number) => {\r\n\t\tconst linkSidebar = getLinkSidebar(index);\r\n\r\n\t\treturn linkSidebar?.subMenuType ? (\r\n\t\t\trenderBreadcrumbPage(index)\r\n\t\t) : (\r\n\t\t\t<BreadcrumbLink onClick={() => setRouter(getPath(index))} className='cursor-pointer'>\r\n\t\t\t\t{index === 0 ? getModule(page) : getTitle(index)}\r\n\t\t\t</BreadcrumbLink>\r\n\t\t);\r\n\t};\r\n\r\n\tconst renderBreadcrumbItens = () => {\r\n\t\tconst breadcrumbItems: JSX.Element[] = [];\r\n\r\n\t\tsplittedPath.map((page, index) => {\r\n\t\t\tbreadcrumbItems.push(\r\n\t\t\t\t<BreadcrumbItem key={`breadcrumb-item-${index}`}>\r\n\t\t\t\t\t{page === lastPage ? renderBreadcrumbPage(index) : renderBreadcrumbLink(page, index)}\r\n\t\t\t\t</BreadcrumbItem>,\r\n\t\t\t);\r\n\t\t\tif (page !== lastPage) {\r\n\t\t\t\tbreadcrumbItems.push(<BreadcrumbSeparator key={`breadcrumb-separator-${index}`} className='mt-[1px]' />);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn breadcrumbItems;\r\n\t};\r\n\r\n\tconst getColorLoadingBar = () => {\r\n\t\tconst colorShades = getTailwindColorShades();\r\n\t\tconst tailwindColor = portalDefinitions?.mvnoPrimaryColor || DEFAULT_THEME_DATA.mvnoPrimaryColor;\r\n\t\tconst isValidColor = (color: string): color is TailwindColorName => color in colorShades;\r\n\t\tconst colorPallete = isValidColor(tailwindColor) ? colorShades[tailwindColor] : colorShades.violet;\r\n\t\treturn colorPallete[900];\r\n\t};\r\n\r\n\treturn (\r\n\t\t<header className='flex flex-col justify-between items-center w-full'>\r\n\t\t\t<div className='flex justify-between items-center py-3 px-5 w-full'>\r\n\t\t\t\t<div className='flex items-center gap-x-2 h-[40px]'>\r\n\t\t\t\t\t<SidebarTrigger className='p-5' />\r\n\t\t\t\t\t<div className='p-2'>\r\n\t\t\t\t\t\t<Breadcrumb>\r\n\t\t\t\t\t\t\t<BreadcrumbList>{renderBreadcrumbItens()}</BreadcrumbList>\r\n\t\t\t\t\t\t</Breadcrumb>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className='flex items-center'>{combobox}</div>\r\n\t\t\t</div>\r\n\t\t\t{<LoadingBar ref={refProgressLoading} color={getColorLoadingBar()} height={7} />}\r\n\t\t</header>\r\n\t);\r\n};\r\n\r\nexport default Header;\r\n","import { Copy } from 'lucide-react';\r\nimport React from 'react';\r\nimport { cn } from '../../../lib/utils';\r\nimport { Button } from '../button';\r\nimport { Skeleton } from '../skeleton';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../tooltip';\r\nimport { toast } from '../use-toast';\r\n\r\ninterface LabelWithTitleProps {\r\n\ttitle: string;\r\n\tvalue: string;\r\n\tvalue2?: string;\r\n\trequired?: boolean;\r\n\tshowCopyIcon?: boolean;\r\n\tclassName?: string;\r\n\tisLoading?: boolean;\r\n}\r\n\r\nconst LabelWithTitle: React.FC<LabelWithTitleProps> = ({ title, value, value2, required, showCopyIcon = false, className, isLoading }) => {\r\n\tconst handleCopy = () => {\r\n\t\tif (showCopyIcon && value) {\r\n\t\t\tnavigator.clipboard.writeText(`${value}${value2 ?? ''}`);\r\n\t\t\ttoast({\r\n\t\t\t\ttitle: `\"${value}${value2 ?? ''}\" foi copiado para a área de transferência.`,\r\n\t\t\t\tvariant: 'success',\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={cn('flex group', className)}>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex flex-col text-sm w-full',\r\n\t\t\t\t\tshowCopyIcon ? 'p-1 rounded-md transition-colors group-hover:bg-sidebar-accent' : 'p-1',\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t<div className='relative'>\r\n\t\t\t\t\t<div className='flex items-center text-sm font-medium gap-0.5'>\r\n\t\t\t\t\t\t<label className='text-default truncate'>{title}</label>\r\n\t\t\t\t\t\t{required && <div className='text-red-500 truncate'>*</div>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className='grid flex-1 items-center pt-1'>\r\n\t\t\t\t\t\t{isLoading ? <Skeleton className='h-5 w-full rounded-lg' /> : <div className='text-zinc-500 truncate'>{value}</div>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{value2 && (\r\n\t\t\t\t\t\t<div className='grid flex-1 items-center pt-1'>\r\n\t\t\t\t\t\t\t{isLoading ? <Skeleton className='h-5 w-full rounded-lg' /> : <div className='text-zinc-500 truncate'>{value2}</div>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t'pr-1 absolute top-1/2 right-0 -translate-y-1/2 opacity-0 transition-opacity',\r\n\t\t\t\t\t\t\tshowCopyIcon && 'group-hover:opacity-100',\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TooltipProvider>\r\n\t\t\t\t\t\t\t<Tooltip>\r\n\t\t\t\t\t\t\t\t<TooltipTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant='ghost'\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn('p-1 h-8', !showCopyIcon && 'cursor-default')}\r\n\t\t\t\t\t\t\t\t\t\tonClick={handleCopy}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Copy size={16} />\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</TooltipTrigger>\r\n\t\t\t\t\t\t\t\t<TooltipContent>Copiar</TooltipContent>\r\n\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t</TooltipProvider>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default LabelWithTitle;\r\n","import { BarChart2 } from 'lucide-react';\r\nimport { Button } from '../button';\r\n\r\nconst NotFound = () => {\r\n\treturn (\r\n\t\t<div className=\"flex flex-col items-center justify-center h-screen bg-[url('/imgs/404.png')] bg-cover bg-no-repeat bg-center\">\r\n\t\t\t<div className='flex flex-col items-center justify-center gap-8 w-[424px]'>\r\n\t\t\t\t<div className='flex flex-col items-center w-full'>\r\n\t\t\t\t\t<div className='text-5xl font-extrabold'>404</div>\r\n\t\t\t\t\t<div className='text-3xl font-semibold'>Página Indisponível</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className='flex text-center text-xl font-semibold text-zinc-500'>\r\n\t\t\t\t\tA página que você está tentando acessar se encontra indisponível no momento, tente novamente mais tarde\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className='flex justify-center w-full'>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\twindow.location.href = '/';\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tclassName='[&_svg]:size-5'\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<BarChart2 />\r\n\t\t\t\t\t\tVoltar Para Inicial\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\nexport default NotFound;\r\n","export function isUUIDv4(str: string): boolean {\r\n\tconst uuidV4Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\treturn uuidV4Regex.test(str);\r\n}\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["_jsx","_jsxs","_Fragment","CommandPrimitive","DrawerPrimitive","format","React","getYear","CalendarIcon","getMonth","CalendarComponent","classBorderColor","SheetPrimitive","Popover","PopoverTrigger","PopoverContent","masks","Select"],"mappings":"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","x_google_ignoreList":[26,27,28,29,30,31,32,33,34,35,106]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/lib/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/calendar.tsx","../src/components/ui/card.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/popover.tsx","../src/components/ui/dateRangePicker.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/label.tsx","../src/components/ui/form.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/masks.ts","../src/lib/help/format.ts","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../node_modules/date-fns/locale/pt-BR/_lib/localize.js","../node_modules/date-fns/locale/pt-BR/_lib/match.js","../node_modules/date-fns/locale/pt-BR.js","../src/components/ui/select.tsx","../src/components/ui/custom/date-picker.tsx","../src/components/ui/input.tsx","../src/components/ui/pagination.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toast.tsx","../src/components/ui/use-toast.ts","../src/components/ui/toaster.tsx","../src/components/ui/use-calendar.tsx","../src/lib/help/theme.ts","../src/components/ui/custom/theme-provider.tsx","../src/components/ui/custom/form/form-help-text.tsx","../src/components/ui/custom/form/form-label.tsx","../src/components/ui/custom/form/form-message.tsx","../src/components/ui/custom/form/checkbox.tsx","../src/components/ui/custom/form/utils.ts","../src/components/ui/custom/form/color.tsx","../src/components/ui/custom/form/combobox.tsx","../src/components/ui/custom/form/cpf-cnpj.tsx","../src/components/ui/custom/form/currency.tsx","../src/lib/help/date-utils.ts","../src/components/ui/custom/form/date.tsx","../src/components/ui/custom/form/date-range.tsx","../src/components/ui/custom/form/decimal.tsx","../src/components/ui/custom/form/file.tsx","../src/components/ui/custom/form/ghost.tsx","../src/components/ui/custom/form/input.tsx","../src/components/ui/custom/form/mask.tsx","../src/components/ui/custom/form/multi-select.tsx","../src/components/ui/custom/form/password.tsx","../src/components/ui/custom/form/percent.tsx","../src/components/ui/custom/form/phone.tsx","../src/components/ui/custom/form/radio-group.tsx","../src/components/ui/custom/form/select.tsx","../src/components/ui/custom/form/step-new-form.tsx","../src/components/ui/custom/form/switch.tsx","../src/components/ui/custom/form/text.tsx","../src/components/ui/custom/form/textarea.tsx","../src/components/ui/custom/table/data-table-export.tsx","../src/components/ui/custom/table/data-table-footer.tsx","../src/components/ui/custom/table/data-table-header.tsx","../src/components/ui/custom/table/data-table-rows.tsx","../src/components/ui/custom/table/data-table.tsx","../src/components/ui/custom/sidebar/sidebar-item-two-lines.tsx","../src/components/ui/custom/sidebar/module-switcher.tsx","../src/components/ui/custom/sidebar/sidebar-button.tsx","../src/components/ui/custom/sidebar/sidebar-item.tsx","../src/components/ui/custom/sidebar/nav-footer.tsx","../src/components/ui/custom/sidebar/nav-submenu-collapsible.tsx","../src/components/ui/custom/sidebar/nav-submenu-dropdown.tsx","../src/components/ui/custom/sidebar/types/sidebar.ts","../src/components/ui/custom/sidebar/nav-main.tsx","../src/components/ui/custom/sidebar/nav-user.tsx","../src/components/ui/custom/header.tsx","../src/components/ui/custom/label.tsx","../src/components/ui/custom/not-found.tsx","../src/lib/help/uuid.ts","../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n\treturn twMerge(clsx(inputs));\r\n}\r\n","import * as AccordionPrimitive from '@radix-ui/react-accordion';\r\nimport { ChevronDown } from 'lucide-react';\r\nimport * as React from 'react';\r\n\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Accordion = AccordionPrimitive.Root;\r\n\r\nconst AccordionItem = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\r\n>(({ className, ...props }, ref) => <AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />);\r\nAccordionItem.displayName = 'AccordionItem';\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<AccordionPrimitive.Header className='flex'>\r\n\t\t<AccordionPrimitive.Trigger\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('flex flex-1 items-center justify-between p-4 font-medium transition-all [&[data-state=open]>svg]:rotate-180', className)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t\t<ChevronDown className='h-4 w-4 shrink-0 transition-transform duration-200' />\r\n\t\t</AccordionPrimitive.Trigger>\r\n\t</AccordionPrimitive.Header>\r\n));\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\r\n\r\nconst AccordionContent = React.forwardRef<\r\n\tReact.ElementRef<typeof AccordionPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<AccordionPrimitive.Content\r\n\t\tref={ref}\r\n\t\tclassName='overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down'\r\n\t\t{...props}\r\n\t>\r\n\t\t<div className={cn('p-4 pt-0', className)}>{children}</div>\r\n\t</AccordionPrimitive.Content>\r\n));\r\n\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\r\n\r\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\r\n\r\n","import { cva, type VariantProps } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst alertVariants = cva(\r\n\t'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'bg-background text-foreground',\r\n\t\t\t\tdestructive: 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst Alert = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>>(\r\n\t({ className, variant, ...props }, ref) => <div ref={ref} role='alert' className={cn(alertVariants({ variant }), className)} {...props} />,\r\n);\r\nAlert.displayName = 'Alert';\r\n\r\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(({ className, ...props }, ref) => (\r\n\t<h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\r\n));\r\nAlertTitle.displayName = 'AlertTitle';\r\n\r\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\r\n));\r\nAlertDescription.displayName = 'AlertDescription';\r\n\r\nexport { Alert, AlertDescription, AlertTitle };\r\n\r\n","import { Slot } from '@radix-ui/react-slot';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst buttonVariants = cva(\r\n\t'inline-flex items-center justify-center gap-2 self-start px-4 py-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'bg-background-primary text-white hover:bg-background-primary-hover disabled:opacity-50',\r\n\t\t\t\tsecondary: 'bg-secondary text-secondary-foreground hover:bg-secondary-hover disabled:opacity-50',\r\n\t\t\t\tdestructive: 'bg-red-600 text-destructive-foreground hover:bg-destructive/90 disabled:opacity-50',\r\n\t\t\t\toutline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground disabled:opacity-50',\r\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground disabled:opacity-50',\r\n\t\t\t\tlink: 'text-primary underline-offset-4 hover:underline disabled:opacity-50',\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tdefault: 'h-10 px-4 py-2',\r\n\t\t\t\tsm: 'h-9 rounded-md px-3',\r\n\t\t\t\tlg: 'h-11 rounded-md px-8',\r\n\t\t\t\ticon: 'h-10 w-10',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t\tsize: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\r\n\tasChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(({ className, variant, size, asChild = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\treturn <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />;\r\n});\r\nButton.displayName = 'Button';\r\n\r\nexport { Button, buttonVariants };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\r\nimport * as React from \"react\"\r\nimport { buttonVariants } from \"./button\"\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n))\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPortal>\r\n <AlertDialogOverlay />\r\n <AlertDialogPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </AlertDialogPortal>\r\n))\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\r\n\r\nconst AlertDialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-2 text-center sm:text-left\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\r\n\r\nconst AlertDialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\r\n\r\nconst AlertDialogTitle = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\"text-lg font-semibold\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <AlertDialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDialogDescription.displayName =\r\n AlertDialogPrimitive.Description.displayName\r\n\r\n const AlertDialogAction = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> & {\r\n variant?: \"default\" | \"outline\" | \"destructive\" | \"secondary\"; // Adapte conforme suas variantes\r\n }\r\n>(({ className, variant = \"default\", ...props }, ref) => (\r\n <AlertDialogPrimitive.Action\r\n ref={ref}\r\n className={cn(buttonVariants({ variant }), className)}\r\n {...props}\r\n />\r\n));\r\n\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\r\n\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel> & {\r\n variant?: \"default\" | \"outline\" | \"destructive\" | \"secondary\"; // Adapte conforme suas variantes\r\n }\r\n>(({ className, variant = \"outline\", ...props }, ref) => (\r\n <AlertDialogPrimitive.Cancel\r\n ref={ref}\r\n className={cn(\r\n buttonVariants({ variant }), // Usa a variante passada como prop\r\n \"mt-2 sm:mt-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\n\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\r\n\r\n\r\nexport {\r\n AlertDialog, AlertDialogAction,\r\n AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger\r\n}\r\n\r\n","import * as React from \"react\"\r\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatar.displayName = AvatarPrimitive.Root.displayName\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn(\"aspect-square h-full w-full\", className)}\r\n {...props}\r\n />\r\n))\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback }\r\n","import { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst badgeVariants = cva(\r\n\t'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'border-transparent bg-background-primary text-primary-foreground',\r\n\t\t\t\tsecondary: 'border-transparent bg-background-secondary text-secondary-foreground',\r\n\t\t\t\tsurface: 'border-transparent bg-primary-100 text-primary',\r\n\t\t\t\tdestructive: 'border-transparent bg-destructive text-destructive-foreground',\r\n\t\t\t\toutline: 'text-foreground',\r\n\t\t\t\tgreen: 'border-transparent bg-green-50 text-emerald-700',\r\n\t\t\t\tred: 'border-transparent bg-red-50 text-red-600',\r\n\t\t\t\tgray: 'border-transparent bg-zinc-100 text-zinc-950',\r\n\t\t\t\tblue: 'border-transparent bg-blue-50 text-blue-600',\r\n\t\t\t\torange: 'border-transparent bg-orange-50 text-orange-600',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\r\n\r\nfunction Badge({ className, variant, ...props }: BadgeProps) {\r\n\treturn <div className={cn(badgeVariants({ variant }), className)} {...props} />;\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n\r\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Breadcrumb = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentPropsWithoutRef<\"nav\"> & {\r\n separator?: React.ReactNode\r\n }\r\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\r\nBreadcrumb.displayName = \"Breadcrumb\"\r\n\r\nconst BreadcrumbList = React.forwardRef<\r\n HTMLOListElement,\r\n React.ComponentPropsWithoutRef<\"ol\">\r\n>(({ className, ...props }, ref) => (\r\n <ol\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbList.displayName = \"BreadcrumbList\"\r\n\r\nconst BreadcrumbItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentPropsWithoutRef<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li\r\n ref={ref}\r\n className={cn(\"inline-flex items-center gap-1.5\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\r\n\r\nconst BreadcrumbLink = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentPropsWithoutRef<\"a\"> & {\r\n asChild?: boolean\r\n }\r\n>(({ asChild, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n className={cn(\"transition-colors hover:text-foreground\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\r\n\r\nconst BreadcrumbPage = React.forwardRef<\r\n HTMLSpanElement,\r\n React.ComponentPropsWithoutRef<\"span\">\r\n>(({ className, ...props }, ref) => (\r\n <span\r\n ref={ref}\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn(\"font-normal text-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\r\n\r\nconst BreadcrumbSeparator = ({\r\n children,\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"li\">) => (\r\n <li\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRight />}\r\n </li>\r\n)\r\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\r\n\r\nconst BreadcrumbEllipsis = ({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) => (\r\n <span\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n)\r\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n}\r\n","import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\r\nimport { cn } from '../../lib/utils';\r\nimport { Button, buttonVariants } from './button';\r\n\r\nfunction Calendar({\r\n\tclassName,\r\n\tclassNames,\r\n\tshowOutsideDays = true,\r\n\tcaptionLayout = 'label',\r\n\tbuttonVariant = 'ghost',\r\n\tformatters,\r\n\tcomponents,\r\n\t...props\r\n}: React.ComponentProps<typeof DayPicker> & {\r\n\tbuttonVariant?: React.ComponentProps<typeof Button>['variant'];\r\n}) {\r\n\tconst defaultClassNames = getDefaultClassNames();\r\n\r\n\treturn (\r\n\t\t<DayPicker\r\n\t\t\tshowOutsideDays={showOutsideDays}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\r\n\t\t\t\tString.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\r\n\t\t\t\tString.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tcaptionLayout={captionLayout}\r\n\t\t\tformatters={{\r\n\t\t\t\tformatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\r\n\t\t\t\t...formatters,\r\n\t\t\t}}\r\n\t\t\tclassNames={{\r\n\t\t\t\troot: cn('w-fit', defaultClassNames.root),\r\n\t\t\t\tmonths: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\r\n\t\t\t\tmonth: cn('flex w-full flex-col gap-4', defaultClassNames.month),\r\n\t\t\t\tnav: cn('absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1', defaultClassNames.nav),\r\n\t\t\t\tbutton_previous: cn(\r\n\t\t\t\t\tbuttonVariants({ variant: buttonVariant }),\r\n\t\t\t\t\t'h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50',\r\n\t\t\t\t\tdefaultClassNames.button_previous,\r\n\t\t\t\t),\r\n\t\t\t\tbutton_next: cn(\r\n\t\t\t\t\tbuttonVariants({ variant: buttonVariant }),\r\n\t\t\t\t\t'h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50',\r\n\t\t\t\t\tdefaultClassNames.button_next,\r\n\t\t\t\t),\r\n\t\t\t\tmonth_caption: cn('flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]', defaultClassNames.month_caption),\r\n\t\t\t\tdropdowns: cn('flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium', defaultClassNames.dropdowns),\r\n\t\t\t\tdropdown_root: cn(\r\n\t\t\t\t\t'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\r\n\t\t\t\t\tdefaultClassNames.dropdown_root,\r\n\t\t\t\t),\r\n\t\t\t\tdropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\r\n\t\t\t\tcaption_label: cn(\r\n\t\t\t\t\t'select-none font-medium',\r\n\t\t\t\t\tcaptionLayout === 'label'\r\n\t\t\t\t\t\t? 'text-sm'\r\n\t\t\t\t\t\t: '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\r\n\t\t\t\t\tdefaultClassNames.caption_label,\r\n\t\t\t\t),\r\n\t\t\t\ttable: 'w-full border-collapse',\r\n\t\t\t\tweekdays: cn('flex', defaultClassNames.weekdays),\r\n\t\t\t\tweekday: cn('text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal', defaultClassNames.weekday),\r\n\t\t\t\tweek: cn('mt-2 flex w-full', defaultClassNames.week),\r\n\t\t\t\tweek_number_header: cn('w-[--cell-size] select-none', defaultClassNames.week_number_header),\r\n\t\t\t\tweek_number: cn('text-muted-foreground select-none text-[0.8rem]', defaultClassNames.week_number),\r\n\t\t\t\tday: cn(\r\n\t\t\t\t\t'group/day relative aspect-square h-[32px] w-[32px] select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\r\n\t\t\t\t\tdefaultClassNames.day,\r\n\t\t\t\t),\r\n\t\t\t\trange_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\r\n\t\t\t\trange_middle: cn('rounded-none', defaultClassNames.range_middle),\r\n\t\t\t\trange_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\r\n\t\t\t\ttoday: cn('bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none', defaultClassNames.today),\r\n\t\t\t\toutside: cn('text-muted-foreground aria-selected:text-muted-foreground', defaultClassNames.outside),\r\n\t\t\t\tdisabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\r\n\t\t\t\thidden: cn('invisible', defaultClassNames.hidden),\r\n\t\t\t\t...classNames,\r\n\t\t\t}}\r\n\t\t\tcomponents={{\r\n\t\t\t\tRoot: ({ className, rootRef, ...props }) => {\r\n\t\t\t\t\treturn <div data-slot='calendar' ref={rootRef} className={cn(className)} {...props} />;\r\n\t\t\t\t},\r\n\t\t\t\tChevron: ({ className, orientation, ...props }) => {\r\n\t\t\t\t\tif (orientation === 'left') {\r\n\t\t\t\t\t\treturn <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (orientation === 'right') {\r\n\t\t\t\t\t\treturn <ChevronRightIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn <ChevronDownIcon className={cn('size-4', className)} {...props} />;\r\n\t\t\t\t},\r\n\t\t\t\tDayButton: CalendarDayButton,\r\n\t\t\t\tWeekNumber: ({ children, ...props }) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<td {...props}>\r\n\t\t\t\t\t\t\t<div className='flex size-[--cell-size] items-center justify-center text-center'>{children}</div>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\t...components,\r\n\t\t\t}}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\nfunction CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>) {\r\n\tconst defaultClassNames = getDefaultClassNames();\r\n\r\n\tconst ref = React.useRef<HTMLButtonElement>(null);\r\n\tReact.useEffect(() => {\r\n\t\tif (modifiers.focused) ref.current?.focus();\r\n\t}, [modifiers.focused]);\r\n\r\n\treturn (\r\n\t\t<Button\r\n\t\t\tref={ref}\r\n\t\t\tvariant='ghost'\r\n\t\t\tsize='icon'\r\n\t\t\tdata-day={day.date.toLocaleDateString()}\r\n\t\t\tdata-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\r\n\t\t\tdata-range-start={modifiers.range_start}\r\n\t\t\tdata-range-end={modifiers.range_end}\r\n\t\t\tdata-range-middle={modifiers.range_middle}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'data-[selected-single=true]:bg-background-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-background-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-background-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\r\n\t\t\t\tdefaultClassNames.day,\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n}\r\n\r\nexport { Calendar, CalendarDayButton };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)} {...props} />\r\n));\r\nCard.displayName = 'Card';\r\n\r\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('flex p-6', className)} {...props} />\r\n));\r\nCardHeader.displayName = 'CardHeader';\r\n\r\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-2xl font-semibold leading-none tracking-tight', className)} {...props} />\r\n));\r\nCardTitle.displayName = 'CardTitle';\r\n\r\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\r\n));\r\nCardDescription.displayName = 'CardDescription';\r\n\r\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('py-8 px-6', className)} {...props} />\r\n));\r\nCardContent.displayName = 'CardContent';\r\n\r\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} className={cn('flex items-center p-6', className)} {...props} />\r\n));\r\nCardFooter.displayName = 'CardFooter';\r\n\r\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from \"embla-carousel-react\"\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { Button } from \"./button\"\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1]\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\r\ntype CarouselOptions = UseCarouselParameters[0]\r\ntype CarouselPlugin = UseCarouselParameters[1]\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions\r\n plugins?: CarouselPlugin\r\n orientation?: \"horizontal\" | \"vertical\"\r\n setApi?: (api: CarouselApi) => void\r\n}\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\r\n api: ReturnType<typeof useEmblaCarousel>[1]\r\n scrollPrev: () => void\r\n scrollNext: () => void\r\n canScrollPrev: boolean\r\n canScrollNext: boolean\r\n} & CarouselProps\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext)\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst Carousel = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\r\n>(\r\n (\r\n {\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n )\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\r\n const [canScrollNext, setCanScrollNext] = React.useState(false)\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n setCanScrollPrev(api.canScrollPrev())\r\n setCanScrollNext(api.canScrollNext())\r\n }, [])\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev()\r\n }, [api])\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext()\r\n }, [api])\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault()\r\n scrollPrev()\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault()\r\n scrollNext()\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n )\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) {\r\n return\r\n }\r\n\r\n setApi(api)\r\n }, [api, setApi])\r\n\r\n React.useEffect(() => {\r\n if (!api) {\r\n return\r\n }\r\n\r\n onSelect(api)\r\n api.on(\"reInit\", onSelect)\r\n api.on(\"select\", onSelect)\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect)\r\n }\r\n }, [api, onSelect])\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n ref={ref}\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn(\"relative\", className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n )\r\n }\r\n)\r\nCarousel.displayName = \"Carousel\"\r\n\r\nconst CarouselContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { carouselRef, orientation } = useCarousel()\r\n\r\n return (\r\n <div ref={carouselRef} className=\"overflow-hidden\">\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex\",\r\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\nCarouselContent.displayName = \"CarouselContent\"\r\n\r\nconst CarouselItem = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => {\r\n const { orientation } = useCarousel()\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n className={cn(\r\n \"min-w-0 shrink-0 grow-0 basis-full\",\r\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nCarouselItem.displayName = \"CarouselItem\"\r\n\r\nconst CarouselPrevious = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute h-8 w-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"-left-12 top-1/2 -translate-y-1/2\"\r\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselPrevious.displayName = \"CarouselPrevious\"\r\n\r\nconst CarouselNext = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel()\r\n\r\n return (\r\n <Button\r\n ref={ref}\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute h-8 w-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"-right-12 top-1/2 -translate-y-1/2\"\r\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n )\r\n})\r\nCarouselNext.displayName = \"CarouselNext\"\r\n\r\nexport {\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem, CarouselNext, CarouselPrevious, type CarouselApi\r\n}\r\n\r\n","import * as React from 'react';\r\nimport * as RechartsPrimitive from 'recharts';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst THEMES = { light: '', dark: '.dark' } as const;\r\n\r\nexport type ChartConfig = {\r\n\t[k in string]: {\r\n\t\tlabel?: React.ReactNode;\r\n\t\ticon?: React.ComponentType;\r\n\t} & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\r\n};\r\n\r\ntype ChartContextProps = {\r\n\tconfig: ChartConfig;\r\n};\r\n\r\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\r\n\r\nfunction useChart() {\r\n\tconst context = React.useContext(ChartContext);\r\n\r\n\tif (!context) {\r\n\t\tthrow new Error('useChart must be used within a <ChartContainer />');\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n\r\nconst ChartContainer = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tconfig: ChartConfig;\r\n\t\tchildren: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\r\n\t}\r\n>(({ id, className, children, config, ...props }, ref) => {\r\n\tconst uniqueId = React.useId();\r\n\tconst chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\r\n\r\n\treturn (\r\n\t\t<ChartContext.Provider value={{ config }}>\r\n\t\t\t<div\r\n\t\t\t\tdata-chart={chartId}\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<ChartStyle id={chartId} config={config} />\r\n\t\t\t\t<RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\r\n\t\t\t</div>\r\n\t\t</ChartContext.Provider>\r\n\t);\r\n});\r\nChartContainer.displayName = 'Chart';\r\n\r\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\r\n\tconst colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);\r\n\r\n\tif (!colorConfig.length) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<style\r\n\t\t\t// biome-ignore lint/security/noDangerouslySetInnerHtml: Chart theme CSS generation requires dynamic CSS injection\r\n\t\t\tdangerouslySetInnerHTML={{\r\n\t\t\t\t__html: Object.entries(THEMES)\r\n\t\t\t\t\t.map(\r\n\t\t\t\t\t\t([theme, prefix]) => `\r\n${prefix} [data-chart=${id}] {\r\n${colorConfig\r\n\t.map(([key, itemConfig]) => {\r\n\t\tconst color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\r\n\t\treturn color ? ` --color-${key}: ${color};` : null;\r\n\t})\r\n\t.join('\\n')}\r\n}\r\n`,\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.join('\\n'),\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nconst ChartTooltip = RechartsPrimitive.Tooltip;\r\n\r\nconst ChartTooltipContent = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<typeof RechartsPrimitive.Tooltip> &\r\n\t\tReact.ComponentProps<'div'> & {\r\n\t\t\thideLabel?: boolean;\r\n\t\t\thideIndicator?: boolean;\r\n\t\t\tindicator?: 'line' | 'dot' | 'dashed';\r\n\t\t\tnameKey?: string;\r\n\t\t\tlabelKey?: string;\r\n\t\t}\r\n>(\r\n\t(\r\n\t\t{\r\n\t\t\tactive,\r\n\t\t\tpayload,\r\n\t\t\tclassName,\r\n\t\t\tindicator = 'dot',\r\n\t\t\thideLabel = false,\r\n\t\t\thideIndicator = false,\r\n\t\t\tlabel,\r\n\t\t\tlabelFormatter,\r\n\t\t\tlabelClassName,\r\n\t\t\tformatter,\r\n\t\t\tcolor,\r\n\t\t\tnameKey,\r\n\t\t\tlabelKey,\r\n\t\t},\r\n\t\tref,\r\n\t) => {\r\n\t\tconst { config } = useChart();\r\n\r\n\t\tconst tooltipLabel = React.useMemo(() => {\r\n\t\t\tif (hideLabel || !payload?.length) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tconst [item] = payload;\r\n\t\t\tconst key = `${labelKey || item.dataKey || item.name || 'value'}`;\r\n\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\t\t\tconst value = !labelKey && typeof label === 'string' ? config[label as keyof typeof config]?.label || label : itemConfig?.label;\r\n\r\n\t\t\tif (labelFormatter) {\r\n\t\t\t\treturn <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\r\n\t\t\t}\r\n\r\n\t\t\tif (!value) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\treturn <div className={cn('font-medium', labelClassName)}>{value}</div>;\r\n\t\t}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\r\n\r\n\t\tif (!active || !payload?.length) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst nestLabel = payload.length === 1 && indicator !== 'dot';\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t{!nestLabel ? tooltipLabel : null}\r\n\t\t\t\t<div className='grid gap-1.5'>\r\n\t\t\t\t\t{payload.map((item, index) => {\r\n\t\t\t\t\t\tconst key = `${nameKey || item.name || item.dataKey || 'value'}`;\r\n\t\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\t\t\t\t\t\tconst indicatorColor = color || item.payload.fill || item.color;\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tkey={item.dataKey}\r\n\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\r\n\t\t\t\t\t\t\t\t\tindicator === 'dot' && 'items-center',\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{formatter && item?.value !== undefined && item.name ? (\r\n\t\t\t\t\t\t\t\t\tformatter(item.value, item.name, item, index, item.payload)\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t{itemConfig?.icon ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<itemConfig.icon />\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t!hideIndicator && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'h-2.5 w-2.5': indicator === 'dot',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'w-1': indicator === 'line',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'my-0.5': nestLabel && indicator === 'dashed',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-bg': indicatorColor,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-border': indicatorColor,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t<div className={cn('flex flex-1 justify-between leading-none', nestLabel ? 'items-end' : 'items-center')}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className='grid gap-1.5'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{nestLabel ? tooltipLabel : null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className='text-muted-foreground'>{itemConfig?.label || item.name}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t{item.value && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className='font-mono font-medium tabular-nums text-foreground'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.value.toLocaleString()}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\nChartTooltipContent.displayName = 'ChartTooltip';\r\n\r\nconst ChartLegend = RechartsPrimitive.Legend;\r\n\r\nconst ChartLegendContent = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> &\r\n\t\tPick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\r\n\t\t\thideIcon?: boolean;\r\n\t\t\tnameKey?: string;\r\n\t\t}\r\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\r\n\tconst { config } = useChart();\r\n\r\n\tif (!payload?.length) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div ref={ref} className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}>\r\n\t\t\t{payload.map((item) => {\r\n\t\t\t\tconst key = `${nameKey || item.dataKey || 'value'}`;\r\n\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div key={item.value} className={cn('flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground')}>\r\n\t\t\t\t\t\t{itemConfig?.icon && !hideIcon ? (\r\n\t\t\t\t\t\t\t<itemConfig.icon />\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName='h-2 w-2 shrink-0 rounded-[2px]'\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tbackgroundColor: item.color,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{itemConfig?.label}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t</div>\r\n\t);\r\n});\r\nChartLegendContent.displayName = 'ChartLegend';\r\n\r\n// Helper to extract item config from a payload.\r\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\r\n\tif (typeof payload !== 'object' || payload === null) {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tconst payloadPayload = 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null ? payload.payload : undefined;\r\n\r\n\tlet configLabelKey: string = key;\r\n\r\n\tif (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\r\n\t\tconfigLabelKey = payload[key as keyof typeof payload] as string;\r\n\t} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key as keyof typeof payloadPayload] === 'string') {\r\n\t\tconfigLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\r\n\t}\r\n\r\n\treturn configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\r\n}\r\n\r\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\r\n","import * as CheckboxPrimitive from '@radix-ui/react-checkbox';\r\nimport { Check } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Checkbox = React.forwardRef<React.ElementRef<typeof CheckboxPrimitive.Root>, React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>>(\r\n\t({ className, value, ...props }, ref) => (\r\n\t\t<CheckboxPrimitive.Root\r\n\t\t\tref={ref}\r\n\t\t\tchecked={!!value}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'peer h-4 w-4 shrink-0 rounded-sm border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-background-primary data-[state=checked]:text-primary-foreground',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<CheckboxPrimitive.Indicator className={cn('flex items-center justify-center text-current')}>\r\n\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t</CheckboxPrimitive.Indicator>\r\n\t\t</CheckboxPrimitive.Root>\r\n\t),\r\n);\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\r\n\r\nexport { Checkbox };\r\n\r\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nconst Collapsible = CollapsiblePrimitive.Root\r\n\r\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\r\n\r\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n","'use client';\r\n\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Dialog = DialogPrimitive.Root;\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger;\r\n\r\nconst DialogPortal = DialogPrimitive.Portal;\r\n\r\nconst DialogClose = DialogPrimitive.Close;\r\n\r\nconst DialogOverlay = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Overlay>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n\t<DialogPrimitive.Overlay\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\r\n\r\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\r\n\thideClose?: boolean;\r\n}\r\n\r\nconst DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\r\n\t({ className, children, hideClose, ...props }, ref) => (\r\n\t\t<DialogPortal>\r\n\t\t\t<DialogOverlay />\r\n\t\t\t<DialogPrimitive.Content\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'fixed left-[50%] top-[50%] z-50 grid translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t\t{!hideClose && (\r\n\t\t\t\t\t<DialogPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground'>\r\n\t\t\t\t\t\t<X className='h-4 w-4' />\r\n\t\t\t\t\t\t<span className='sr-only'>Close</span>\r\n\t\t\t\t\t</DialogPrimitive.Close>\r\n\t\t\t\t)}\r\n\t\t\t</DialogPrimitive.Content>\r\n\t\t</DialogPortal>\r\n\t),\r\n);\r\nDialogContent.displayName = DialogPrimitive.Content.displayName;\r\n\r\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\r\n);\r\nDialogHeader.displayName = 'DialogHeader';\r\n\r\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\r\n);\r\nDialogFooter.displayName = 'DialogFooter';\r\n\r\nconst DialogTitle = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Title>, React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<DialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold leading-none tracking-tight', className)} {...props} />\r\n\t),\r\n);\r\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\r\n\r\nconst DialogDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof DialogPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\r\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\r\n\r\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\r\nimport { Command as CommandPrimitive } from \"cmdk\"\r\nimport { Search } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { Dialog, DialogContent } from \"./dialog\"\r\n\r\nconst Command = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive\r\n ref={ref}\r\n className={cn(\r\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nCommand.displayName = CommandPrimitive.displayName\r\n\r\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\r\n return (\r\n <Dialog {...props}>\r\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\r\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\r\n {children}\r\n </Command>\r\n </DialogContent>\r\n </Dialog>\r\n )\r\n}\r\n\r\nconst CommandInput = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Input>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\r\n>(({ className, ...props }, ref) => (\r\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\r\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\r\n <CommandPrimitive.Input\r\n ref={ref}\r\n className={cn(\r\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n))\r\n\r\nCommandInput.displayName = CommandPrimitive.Input.displayName\r\n\r\nconst CommandList = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.List\r\n ref={ref}\r\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandList.displayName = CommandPrimitive.List.displayName\r\n\r\nconst CommandEmpty = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Empty>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\r\n>((props, ref) => (\r\n <CommandPrimitive.Empty\r\n ref={ref}\r\n className=\"py-6 text-center text-sm\"\r\n {...props}\r\n />\r\n))\r\n\r\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\r\n\r\nconst CommandGroup = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Group>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Group\r\n ref={ref}\r\n className={cn(\r\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandGroup.displayName = CommandPrimitive.Group.displayName\r\n\r\nconst CommandSeparator = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 h-px bg-border\", className)}\r\n {...props}\r\n />\r\n))\r\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\r\n\r\nconst CommandItem = React.forwardRef<\r\n React.ElementRef<typeof CommandPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\r\n>(({ className, ...props }, ref) => (\r\n <CommandPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\n\r\nCommandItem.displayName = CommandPrimitive.Item.displayName\r\n\r\nconst CommandShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nCommandShortcut.displayName = \"CommandShortcut\"\r\n\r\nexport {\r\n Command,\r\n CommandDialog, CommandEmpty,\r\n CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut\r\n}\r\n\r\n","import * as React from \"react\"\r\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst ContextMenu = ContextMenuPrimitive.Root\r\n\r\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\r\n\r\nconst ContextMenuGroup = ContextMenuPrimitive.Group\r\n\r\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\r\n\r\nconst ContextMenuSub = ContextMenuPrimitive.Sub\r\n\r\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\r\n\r\nconst ContextMenuSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto h-4 w-4\" />\r\n </ContextMenuPrimitive.SubTrigger>\r\n))\r\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\r\n\r\nconst ContextMenuSubContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\r\n\r\nconst ContextMenuContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Portal>\r\n <ContextMenuPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </ContextMenuPrimitive.Portal>\r\n))\r\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\r\n\r\nconst ContextMenuItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\r\n\r\nconst ContextMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n <ContextMenuPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.CheckboxItem>\r\n))\r\nContextMenuCheckboxItem.displayName =\r\n ContextMenuPrimitive.CheckboxItem.displayName\r\n\r\nconst ContextMenuRadioItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n <ContextMenuPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.RadioItem>\r\n))\r\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\r\n\r\nconst ContextMenuLabel = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\r\n\r\nconst ContextMenuSeparator = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\r\n {...props}\r\n />\r\n))\r\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\r\n\r\nconst ContextMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\r\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\r\n\r\nexport {\r\n ContextMenu,\r\n ContextMenuTrigger,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuCheckboxItem,\r\n ContextMenuRadioItem,\r\n ContextMenuLabel,\r\n ContextMenuSeparator,\r\n ContextMenuShortcut,\r\n ContextMenuGroup,\r\n ContextMenuPortal,\r\n ContextMenuSub,\r\n ContextMenuSubContent,\r\n ContextMenuSubTrigger,\r\n ContextMenuRadioGroup,\r\n}\r\n","import * as PopoverPrimitive from '@radix-ui/react-popover';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Popover = PopoverPrimitive.Root;\r\n\r\nconst PopoverTrigger = PopoverPrimitive.Trigger;\r\n\r\nconst PopoverContent = React.forwardRef<\r\n\tReact.ElementRef<typeof PopoverPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n\t<PopoverPrimitive.Portal>\r\n\t\t<PopoverPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\talign={align}\r\n\t\t\tsideOffset={sideOffset}\r\n\t\t\tonWheel={(e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t</PopoverPrimitive.Portal>\r\n));\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\r\n\r\nexport { Popover, PopoverContent, PopoverTrigger };\r\n\r\n","import { addDays, format } from \"date-fns\"\r\nimport { CalendarIcon } from \"lucide-react\"\r\nimport * as React from \"react\"\r\nimport { DateRange } from \"react-day-picker\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"./button\"\r\nimport { Calendar } from \"./calendar\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"./popover\"\r\n\r\nexport function DatePickerWithRange({\r\n className,\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n const [date, setDate] = React.useState<DateRange | undefined>({\r\n from: new Date(2022, 0, 20),\r\n to: addDays(new Date(2022, 0, 20), 20),\r\n })\r\n\r\n return (\r\n <div className={cn(\"grid gap-2\", className)}>\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant={\"outline\"}\r\n className={cn(\r\n \"w-[300px] justify-start text-left font-normal\",\r\n !date && \"text-muted-foreground\"\r\n )}\r\n >\r\n <CalendarIcon />\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, \"LLL dd, y\")} -{\" \"}\r\n {format(date.to, \"LLL dd, y\")}\r\n </>\r\n ) : (\r\n format(date.from, \"LLL dd, y\")\r\n )\r\n ) : (\r\n <span>Pick a date</span>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n initialFocus\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={setDate}\r\n numberOfMonths={2}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n )\r\n}\r\n","import * as React from \"react\"\r\nimport { Drawer as DrawerPrimitive } from \"vaul\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst Drawer = ({\r\n shouldScaleBackground = true,\r\n ...props\r\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\r\n <DrawerPrimitive.Root\r\n shouldScaleBackground={shouldScaleBackground}\r\n {...props}\r\n />\r\n)\r\nDrawer.displayName = \"Drawer\"\r\n\r\nconst DrawerTrigger = DrawerPrimitive.Trigger\r\n\r\nconst DrawerPortal = DrawerPrimitive.Portal\r\n\r\nconst DrawerClose = DrawerPrimitive.Close\r\n\r\nconst DrawerOverlay = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Overlay\r\n ref={ref}\r\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\r\n\r\nconst DrawerContent = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <DrawerPortal>\r\n <DrawerOverlay />\r\n <DrawerPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\r\n {children}\r\n </DrawerPrimitive.Content>\r\n </DrawerPortal>\r\n))\r\nDrawerContent.displayName = \"DrawerContent\"\r\n\r\nconst DrawerHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerHeader.displayName = \"DrawerHeader\"\r\n\r\nconst DrawerFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\r\n {...props}\r\n />\r\n)\r\nDrawerFooter.displayName = \"DrawerFooter\"\r\n\r\nconst DrawerTitle = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Title\r\n ref={ref}\r\n className={cn(\r\n \"text-lg font-semibold leading-none tracking-tight\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\r\n\r\nconst DrawerDescription = React.forwardRef<\r\n React.ElementRef<typeof DrawerPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <DrawerPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\r\n\r\nexport {\r\n Drawer,\r\n DrawerPortal,\r\n DrawerOverlay,\r\n DrawerTrigger,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerHeader,\r\n DrawerFooter,\r\n DrawerTitle,\r\n DrawerDescription,\r\n}\r\n","import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { Check, ChevronRight, Circle } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst DropdownMenu = DropdownMenuPrimitive.Root;\r\n\r\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\r\n\r\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\r\n\r\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\r\n\r\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\r\n\r\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\r\n\r\nconst DropdownMenuSubTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, children, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.SubTrigger\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',\r\n\t\t\tinset && 'pl-8',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{children}\r\n\t\t<ChevronRight className='ml-auto h-4 w-4' />\r\n\t</DropdownMenuPrimitive.SubTrigger>\r\n));\r\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\r\n\r\nconst DropdownMenuSubContent = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.SubContent\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\r\n\r\nconst DropdownMenuContent = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Portal>\r\n\t\t<DropdownMenuPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tsideOffset={sideOffset}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t</DropdownMenuPrimitive.Portal>\r\n));\r\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\r\n\r\nconst DropdownMenuItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Item\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tinset && 'pl-8',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\r\n\r\nconst DropdownMenuCheckboxItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.CheckboxItem\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\tchecked={checked}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t<DropdownMenuPrimitive.ItemIndicator>\r\n\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t</DropdownMenuPrimitive.ItemIndicator>\r\n\t\t</span>\r\n\t\t{children}\r\n\t</DropdownMenuPrimitive.CheckboxItem>\r\n));\r\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\r\n\r\nconst DropdownMenuRadioItem = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.RadioItem\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t<DropdownMenuPrimitive.ItemIndicator>\r\n\t\t\t\t<Circle className='h-2 w-2 fill-current' />\r\n\t\t\t</DropdownMenuPrimitive.ItemIndicator>\r\n\t\t</span>\r\n\t\t{children}\r\n\t</DropdownMenuPrimitive.RadioItem>\r\n));\r\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\r\n\r\nconst DropdownMenuLabel = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Label>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\r\n\t\tinset?: boolean;\r\n\t}\r\n>(({ className, inset, ...props }, ref) => (\r\n\t<DropdownMenuPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)} {...props} />\r\n));\r\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\r\n\r\nconst DropdownMenuSeparator = React.forwardRef<\r\n\tReact.ElementRef<typeof DropdownMenuPrimitive.Separator>,\r\n\tReact.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <DropdownMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />);\r\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\r\n\r\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\r\n\treturn <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />;\r\n};\r\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\r\n\r\nexport {\r\n\tDropdownMenu,\r\n\tDropdownMenuCheckboxItem,\r\n\tDropdownMenuContent,\r\n\tDropdownMenuGroup,\r\n\tDropdownMenuItem,\r\n\tDropdownMenuLabel,\r\n\tDropdownMenuPortal,\r\n\tDropdownMenuRadioGroup,\r\n\tDropdownMenuRadioItem,\r\n\tDropdownMenuSeparator,\r\n\tDropdownMenuShortcut,\r\n\tDropdownMenuSub,\r\n\tDropdownMenuSubContent,\r\n\tDropdownMenuSubTrigger,\r\n\tDropdownMenuTrigger\r\n};\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst labelVariants = cva('text-sm font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70');\r\n\r\nconst Label = React.forwardRef<\r\n\tReact.ElementRef<typeof LabelPrimitive.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\r\n>(({ className, ...props }, ref) => <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />);\r\nLabel.displayName = LabelPrimitive.Root.displayName;\r\n\r\nexport { Label };\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport * as React from 'react';\r\nimport { Controller, ControllerProps, FieldPath, FieldValues, FormProvider, useFormContext } from 'react-hook-form';\r\nimport { cn } from '../../lib/utils';\r\nimport { Label } from './label';\r\n\r\nconst Form = FormProvider;\r\n\r\ntype FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {\r\n\tname: TName;\r\n};\r\n\r\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);\r\n\r\nconst FormField = <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({\r\n\t...props\r\n}: ControllerProps<TFieldValues, TName>) => {\r\n\treturn (\r\n\t\t<FormFieldContext.Provider value={{ name: props.name }}>\r\n\t\t\t<Controller {...props} />\r\n\t\t</FormFieldContext.Provider>\r\n\t);\r\n};\r\n\r\nconst useFormField = () => {\r\n\tconst fieldContext = React.useContext(FormFieldContext);\r\n\tconst itemContext = React.useContext(FormItemContext);\r\n\tconst { getFieldState, formState } = useFormContext();\r\n\r\n\tconst fieldState = getFieldState(fieldContext.name, formState);\r\n\r\n\tif (!fieldContext) {\r\n\t\tthrow new Error('useFormField should be used within <FormField>');\r\n\t}\r\n\r\n\tconst { id } = itemContext;\r\n\r\n\treturn {\r\n\t\tid,\r\n\t\tname: fieldContext.name,\r\n\t\tformItemId: `${id}-form-item`,\r\n\t\tformDescriptionId: `${id}-form-item-description`,\r\n\t\tformMessageId: `${id}-form-item-message`,\r\n\t\t...fieldState,\r\n\t};\r\n};\r\n\r\ntype FormItemContextValue = {\r\n\tid: string;\r\n};\r\n\r\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);\r\n\r\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => {\r\n\tconst id = React.useId();\r\n\r\n\treturn (\r\n\t\t<FormItemContext.Provider value={{ id }}>\r\n\t\t\t<div ref={ref} className={cn('', className)} {...props} />\r\n\t\t</FormItemContext.Provider>\r\n\t);\r\n});\r\nFormItem.displayName = 'FormItem';\r\n\r\nconst FormLabel = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst { error, formItemId } = useFormField();\r\n\r\n\t\treturn <Label ref={ref} className={cn(error && 'text-destructive', className)} htmlFor={formItemId} {...props} />;\r\n\t},\r\n);\r\nFormLabel.displayName = 'FormLabel';\r\n\r\nconst FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(({ ...props }, ref) => {\r\n\tconst { error, formItemId, formDescriptionId, formMessageId } = useFormField();\r\n\r\n\treturn (\r\n\t\t<Slot\r\n\t\t\tref={ref}\r\n\t\t\tid={formItemId}\r\n\t\t\taria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\r\n\t\t\taria-invalid={!!error}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nFormControl.displayName = 'FormControl';\r\n\r\nconst FormDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, ...props }, ref) => {\r\n\tconst { formDescriptionId } = useFormField();\r\n\r\n\treturn <p ref={ref} id={formDescriptionId} className={cn('text-sm text-muted-foreground', className)} {...props} />;\r\n});\r\nFormDescription.displayName = 'FormDescription';\r\n\r\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(({ className, children, ...props }, ref) => {\r\n\tconst { error, formMessageId } = useFormField();\r\n\tconst body = error ? String(error?.message) : children;\r\n\r\n\tif (!body) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<p ref={ref} id={formMessageId} className={cn('text-sm font-medium text-destructive', className)} {...props}>\r\n\t\t\t{body}\r\n\t\t</p>\r\n\t);\r\n});\r\nFormMessage.displayName = 'FormMessage';\r\n\r\nexport { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };\r\n\r\n","import * as HoverCardPrimitive from '@radix-ui/react-hover-card';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst HoverCard = HoverCardPrimitive.Root;\r\n\r\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\r\n\r\nconst HoverCardContent = React.forwardRef<\r\n\tReact.ElementRef<typeof HoverCardPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\r\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\r\n\t<HoverCardPrimitive.Content\r\n\t\tref={ref}\r\n\t\talign={align}\r\n\t\tsideOffset={sideOffset}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 w-auto mr-20 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\r\n\r\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\r\n\r\n","import { Modify } from '@react-input/mask';\r\n\r\n/**\r\n * Type for mask modification functions.\r\n * Fallback for projects without @react-input/mask types.\r\n */\r\nexport type MaskModifyFunction = Modify;\r\n\r\n/**\r\n * Modify function for phone number input mask.\r\n * Automatically adjusts between landline and mobile phone formats.\r\n *\r\n * @param value - Current input value\r\n * @param data - New input data\r\n * @param selectionStart - Cursor start position\r\n * @param selectionEnd - Cursor end position\r\n * @returns Mask configuration object\r\n */\r\nexport const modifyPhone: Modify = ({ value, data, selectionStart, selectionEnd }) => {\r\n\tconst _value = value.slice(0, selectionStart) + (data ?? '') + value.slice(selectionEnd);\r\n\tconst len = _value ? _value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\treturn maskPhone(_value);\r\n};\r\n\r\n/**\r\n * Creates a phone number mask based on the input length.\r\n * - Landline: (XX) XXXX-XXXX\r\n * - Mobile: (XX) X XXXX-XXXX\r\n *\r\n * @param value - Phone number string (can be null)\r\n * @returns Mask configuration object with pattern and replacement rules\r\n *\r\n * @example\r\n * ```tsx\r\n * const mask = maskPhone('11987654321');\r\n * // Returns: { mask: '(__) _ ____-____', replacement: { _: /\\d/ } }\r\n * ```\r\n */\r\nexport function maskPhone(value: string | null) {\r\n\tconst len = value ? value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\tif (len > 10) return { mask: '(__) _ ____-____', replacement: { _: /\\d/ } };\r\n\r\n\treturn { mask: '(__) ____-_____', replacement: { _: /\\d/ } };\r\n}\r\n\r\n/**\r\n * Modify function for CPF/CNPJ input mask.\r\n * Automatically switches between CPF and CNPJ formats based on input length.\r\n *\r\n * @param value - Current input value\r\n * @param data - New input data\r\n * @param selectionStart - Cursor start position\r\n * @param selectionEnd - Cursor end position\r\n * @returns Mask configuration object\r\n */\r\nexport const modifyCpfCnpj: Modify = ({ value, data, selectionStart, selectionEnd }) => {\r\n\tconst _value = value.slice(0, selectionStart) + (data ?? '') + value.slice(selectionEnd);\r\n\tconst len = _value ? _value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\treturn maskCpfCnpj(_value);\r\n};\r\n\r\n/**\r\n * Creates a CPF or CNPJ mask based on the input length.\r\n * - CPF: XXX.XXX.XXX-XX (up to 11 digits)\r\n * - CNPJ: XX.XXX.XXX/XXXX-XX (12+ digits)\r\n *\r\n * @param value - CPF/CNPJ string (can be null)\r\n * @returns Mask configuration object with pattern and replacement rules\r\n *\r\n * @example\r\n * ```tsx\r\n * const cpfMask = maskCpfCnpj('12345678901');\r\n * // Returns: { mask: '___.___.___-___', replacement: { _: /\\d/ } }\r\n *\r\n * const cnpjMask = maskCpfCnpj('12345678000195');\r\n * // Returns: { mask: '__.___.___/____-__', replacement: { _: /\\d/ } }\r\n * ```\r\n */\r\nexport function maskCpfCnpj(value: string | null) {\r\n\tconst len = value ? value.replace(/[\\D]+/g, '').length : 0;\r\n\r\n\tif (len > 11) return { mask: '__.___.___/____-__', replacement: { _: /\\d/ } };\r\n\r\n\treturn { mask: '___.___.___-___', replacement: { _: /\\d/ } };\r\n}\r\n\r\n/**\r\n * Removes all non-numeric characters from a string.\r\n * Useful for extracting only digits from masked inputs.\r\n *\r\n * @param value - String with potential mask characters\r\n * @returns String containing only numeric characters\r\n *\r\n * @example\r\n * ```tsx\r\n * const cleaned = removeMaskNumber('(11) 9 8765-4321');\r\n * // Returns: '11987654321'\r\n *\r\n * const cleanCpf = removeMaskNumber('123.456.789-01');\r\n * // Returns: '12345678901'\r\n * ```\r\n */\r\nexport const removeMaskNumber = (value: string): string => {\r\n\treturn value?.replace(/\\D/g, '');\r\n};\r\n","import { format } from '@react-input/mask';\r\nimport { maskCpfCnpj, maskPhone } from '../../components/ui/masks';\r\n\r\n// PHONE\r\n/**\r\n * Formats a phone number string with proper mask.\r\n * Automatically detects landline vs mobile format.\r\n *\r\n * @param telefone - Raw phone number string\r\n * @param removerCountryCode - Whether to remove country code (55) if present\r\n * @returns Formatted phone number string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatPhone('11987654321') // '(11) 9 8765-4321'\r\n * formatPhone('1134567890') // '(11) 3456-7890'\r\n * ```\r\n */\r\nexport function formatPhone(telefone: string, removerCountryCode = true) {\r\n\tif (!telefone) return '';\r\n\r\n\tlet numberPhone = telefone.replace(/\\D/g, '');\r\n\r\n\t// Remover código do país apenas se ele começar com '55'\r\n\tif (removerCountryCode && numberPhone.startsWith('55')) {\r\n\t\tnumberPhone = numberPhone.substring(2);\r\n\t}\r\n\r\n\treturn format(numberPhone, maskPhone(numberPhone));\r\n}\r\n\r\n// CPF/CNPJ\r\n/**\r\n * Formats a CPF or CNPJ string with proper mask.\r\n * Automatically detects CPF vs CNPJ format based on length.\r\n *\r\n * @param cpfCnpj - Raw CPF/CNPJ string\r\n * @returns Formatted CPF/CNPJ string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCpfCnpj('12345678901') // '123.456.789-01'\r\n * formatCpfCnpj('12345678000195') // '12.345.678/0001-95'\r\n * ```\r\n */\r\nexport function formatCpfCnpj(cpfCnpj?: string): string {\r\n\tif (!cpfCnpj) return '';\r\n\r\n\tconst numberCpfCnpj = cpfCnpj.replace(/\\D/g, '');\r\n\r\n\treturn format(numberCpfCnpj, maskCpfCnpj(numberCpfCnpj));\r\n}\r\n\r\n// DATE\r\nfunction getDay(date: Date) {\r\n\treturn date.getDate().toString().padStart(2, '0');\r\n}\r\n\r\nfunction getMonth(date: Date) {\r\n\treturn (date.getMonth() + 1).toString().padStart(2, '0');\r\n}\r\n\r\nfunction getYear(date: Date) {\r\n\treturn date.getFullYear().toString();\r\n}\r\n\r\n/**\r\n * Formats a date to Brazilian format (DD/MM/YYYY).\r\n *\r\n * @param date - Date string, Date object, or undefined\r\n * @param separator - Date separator (default: '/')\r\n * @returns Formatted date string in Brazilian format\r\n *\r\n * @example\r\n * ```tsx\r\n * formatDate('2023-12-25') // '25/12/2023'\r\n * formatDate(new Date()) // '13/10/2025'\r\n * ```\r\n */\r\nexport const formatDate = (date: string | Date | undefined, separator: string = '/') => {\r\n\tif (!date) return '';\r\n\r\n\tconst d = new Date(date);\r\n\r\n\treturn d.toLocaleDateString('pt-BR');\r\n};\r\n\r\nexport const formatDateTime = (date: Date | undefined, returnSeconds: boolean = false): string => {\r\n\tif (!date) return '';\r\n\r\n\tconst hours = date.getHours().toString().padStart(2, '0');\r\n\tconst minutes = date.getMinutes().toString().padStart(2, '0');\r\n\tconst seconds = returnSeconds ? `:${date.getSeconds().toString().padStart(2, '0')}` : '';\r\n\r\n\treturn `${formatDate(date)} ${hours}:${minutes}${seconds}`;\r\n};\r\n\r\nexport function formatDateCalendar(date: Date | undefined): string {\r\n\tif (!date) return '';\r\n\r\n\tconst day = getDay(date);\r\n\tconst month = getMonth(date);\r\n\tconst year = getYear(date);\r\n\r\n\treturn `${year}-${month}-${day}`;\r\n}\r\n\r\nexport function stringDateToDate(date: string | undefined, separator: string = '/'): Date | undefined {\r\n\tif (!date) return undefined;\r\n\r\n\tconst [day, month, year] = date.split(separator).map(Number);\r\n\r\n\t// new Date(ano, mês-1, dia) interpreta a data no fuso horário local\r\n\treturn new Date(year, month - 1, day);\r\n}\r\n\r\n// NUMBER\r\nexport const roundNumber = (value: number, fractionDigits: number = 2): number => {\r\n\treturn Number(value.toFixed(fractionDigits));\r\n};\r\n\r\nexport const stringToNumber = (value: string | undefined): number => {\r\n\tif (!value) return 0;\r\n\r\n\tconst numericValue = value\r\n\t\t.replace(/[^\\d,-]/g, '')\r\n\t\t.replace(/\\./g, '')\r\n\t\t.replace(',', '.');\r\n\treturn Number.parseFloat(numericValue);\r\n};\r\n\r\nexport const convertMbToGb = (value: number) => {\r\n\treturn value > 0 ? roundNumber(value / 1024) : 0;\r\n};\r\n\r\nexport const convertGbToMb = (value: number) => {\r\n\treturn value > 0 ? roundNumber(value * 1024) : 0;\r\n};\r\n\r\nexport const convertSecondsToMinutes = (value: number): number => {\r\n\treturn value > 0 ? roundNumber(value / 60) : 0;\r\n};\r\n\r\nexport const convertBytesToMB = (bytes: number): number => {\r\n\tif (!bytes || Number.isNaN(bytes)) return 0;\r\n\treturn roundNumber(bytes / (1024 * 1024));\r\n};\r\n\r\nexport const convertMonthToDays = (months: number): number => {\r\n\treturn months > 0 ? months * 30 : 0;\r\n};\r\n\r\nexport const convertDaysToMonth = (days: number): number => {\r\n\treturn days > 0 ? roundNumber(days / 30) : 0;\r\n};\r\n\r\n// NUMBER\r\nexport const formatNumber = (value: number) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'decimal',\r\n\t\tminimumFractionDigits: 0,\r\n\t\tmaximumFractionDigits: 0,\r\n\t});\r\n};\r\n\r\n// DECIMAL\r\n/**\r\n * Formats a number with Brazilian decimal format.\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted decimal string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatDecimal(1234.56) // '1.234,56'\r\n * formatDecimal(1000.1, 1) // '1.000,1'\r\n * ```\r\n */\r\nexport const formatDecimal = (value: number, decimalPlaces: number = 2) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'decimal',\r\n\t\tminimumFractionDigits: decimalPlaces,\r\n\t\tmaximumFractionDigits: decimalPlaces,\r\n\t});\r\n};\r\n\r\n// PERCENT\r\n/**\r\n * Formats a number as percentage with Brazilian decimal format.\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted percentage string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatPercent(15.5) // '% 15,50'\r\n * formatPercent(100, 0) // '% 100'\r\n * ```\r\n */\r\nexport const formatPercent = (value: number, decimalPlaces: number = 2) => {\r\n\treturn `% ${formatDecimal(value, decimalPlaces)}`;\r\n};\r\n\r\n// CURRENCY\r\n/**\r\n * Formats a number as Brazilian currency (BRL).\r\n *\r\n * @param value - Numeric value to format\r\n * @param decimalPlaces - Number of decimal places (default: 2)\r\n * @returns Formatted currency string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCurrency(1234.56) // 'R$ 1.234,56'\r\n * formatCurrency(1000, 0) // 'R$ 1.000'\r\n * ```\r\n */\r\nexport const formatCurrency = (value: number, decimalPlaces: number = 2) => {\r\n\treturn value.toLocaleString('pt-BR', {\r\n\t\tstyle: 'currency',\r\n\t\tcurrency: 'BRL',\r\n\t\tminimumFractionDigits: decimalPlaces,\r\n\t\tmaximumFractionDigits: decimalPlaces,\r\n\t});\r\n};\r\n\r\nexport const isInvalidCurrencyValue = (rawValue: string | undefined): boolean => {\r\n\tif (!rawValue || rawValue.trim() === '') return true;\r\n\r\n\tconst numericValue = stringToNumber(rawValue);\r\n\r\n\treturn Number.isNaN(numericValue) || numericValue <= 0;\r\n};\r\n\r\n// OTHERS\r\n/**\r\n * Formats an MSISDN (mobile phone number) to display format.\r\n *\r\n * @param value - Raw MSISDN string\r\n * @returns Formatted MSISDN string\r\n *\r\n * @example\r\n * ```tsx\r\n * formatMsisdn('5511987654321') // '(11) 98765-4321'\r\n * ```\r\n */\r\nexport function formatMsisdn(value: string = ''): string {\r\n\tconst msisdn = value.replace(/\\D/g, '');\r\n\treturn `(${msisdn.slice(2, 4)}) ${msisdn.slice(4, 9)}-${msisdn.slice(9)}`;\r\n}\r\n\r\n/**\r\n * Formats a CEP (Brazilian postal code) with proper mask.\r\n *\r\n * @param cep - Raw CEP string\r\n * @returns Formatted CEP string (XXXXX-XXX)\r\n *\r\n * @example\r\n * ```tsx\r\n * formatCEP('01234567') // '01234-567'\r\n * formatCEP('12345') // '12345'\r\n * ```\r\n */\r\nexport function formatCEP(cep?: string) {\r\n\tif (!cep) return '';\r\n\r\n\treturn cep\r\n\t\t.replace(/\\D/g, '')\r\n\t\t.replace(/(\\d{5})(\\d)/, '$1-$2')\r\n\t\t.replace(/(-\\d{3})\\d+?$/, '$1');\r\n}\r\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","import * as SelectPrimitive from '@radix-ui/react-select';\r\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Select = SelectPrimitive.Root;\r\n\r\nconst SelectGroup = SelectPrimitive.Group;\r\n\r\nconst SelectValue = SelectPrimitive.Value;\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Trigger>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n\t<SelectPrimitive.Trigger\r\n\t\tref={ref}\r\n\t\tclassName={cn(\r\n\t\t\t'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{children}\r\n\t\t<SelectPrimitive.Icon asChild>\r\n\t\t\t<ChevronDown className='h-4 w-4 opacity-50' />\r\n\t\t</SelectPrimitive.Icon>\r\n\t</SelectPrimitive.Trigger>\r\n));\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\r\n\r\nconst SelectScrollUpButton = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\r\n>(({ className, ...props }, ref) => (\r\n\t<SelectPrimitive.ScrollUpButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}>\r\n\t\t<ChevronUp className='h-4 w-4' />\r\n\t</SelectPrimitive.ScrollUpButton>\r\n));\r\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\r\n\r\nconst SelectScrollDownButton = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\r\n>(({ className, ...props }, ref) => (\r\n\t<SelectPrimitive.ScrollDownButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}>\r\n\t\t<ChevronDown className='h-4 w-4' />\r\n\t</SelectPrimitive.ScrollDownButton>\r\n));\r\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\r\n\r\nconst SelectContent = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\r\n>(({ className, children, position = 'popper', ...props }, ref) => (\r\n\t<SelectPrimitive.Portal>\r\n\t\t<SelectPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]',\r\n\t\t\t\tposition === 'popper' &&\r\n\t\t\t\t\t'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tposition={position}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<SelectScrollUpButton />\r\n\t\t\t<SelectPrimitive.Viewport\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'p-1',\r\n\t\t\t\t\tposition === 'popper' && 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</SelectPrimitive.Viewport>\r\n\t\t\t<SelectScrollDownButton />\r\n\t\t</SelectPrimitive.Content>\r\n\t</SelectPrimitive.Portal>\r\n));\r\nSelectContent.displayName = SelectPrimitive.Content.displayName;\r\n\r\nconst SelectLabel = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Label>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SelectPrimitive.Label ref={ref} className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className)} {...props} />\r\n\t),\r\n);\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\r\n\r\nconst SelectItem = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Item>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>>(\r\n\t({ className, children, ...props }, ref) => (\r\n\t\t<SelectPrimitive.Item\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-3 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n\r\n\t\t\t<span className='absolute right-2 flex h-3.5 w-3.5 items-center justify-center'>\r\n\t\t\t\t<SelectPrimitive.ItemIndicator>\r\n\t\t\t\t\t<Check className='h-4 w-4' />\r\n\t\t\t\t</SelectPrimitive.ItemIndicator>\r\n\t\t\t</span>\r\n\t\t</SelectPrimitive.Item>\r\n\t),\r\n);\r\nSelectItem.displayName = SelectPrimitive.Item.displayName;\r\n\r\nconst SelectSeparator = React.forwardRef<\r\n\tReact.ElementRef<typeof SelectPrimitive.Separator>,\r\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\r\n>(({ className, ...props }, ref) => <SelectPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />);\r\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\r\n\r\nexport {\r\n\tSelect,\r\n\tSelectContent,\r\n\tSelectGroup,\r\n\tSelectItem,\r\n\tSelectLabel,\r\n\tSelectScrollDownButton,\r\n\tSelectScrollUpButton,\r\n\tSelectSeparator,\r\n\tSelectTrigger,\r\n\tSelectValue\r\n};\r\n\r\n","import { getMonth, getYear, setMonth, setYear } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport { Calendar as CalendarIcon } from 'lucide-react';\r\nimport React, { useState } from 'react';\r\nimport { DayPicker } from 'react-day-picker';\r\nimport { cn } from '../../../lib/utils';\r\nimport { Calendar as CalendarComponent } from '../calendar';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover';\r\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../select';\r\n\r\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\r\n\r\ninterface CalendarFormProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tonDateSelected: (selectedDateProps: Date | null) => void;\r\n\tselectedDateProps?: Date | null;\r\n\tstartYear?: number;\r\n\tendYear?: number;\r\n}\r\n\r\nconst DatePicker = React.forwardRef<HTMLDivElement, CalendarFormProps>(\r\n\t({ className, onDateSelected, selectedDateProps, startYear = getYear(new Date()) - 100, endYear = getYear(new Date()) + 100, ...props }, ref) => {\r\n\t\tconst [selectedDate, setSelectedDate] = useState<Date | null>(null);\r\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = useState(false);\r\n\t\tconst months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];\r\n\r\n\t\tconst years = Array.from({ length: endYear - startYear + 1 }, (_, i) => startYear + i);\r\n\r\n\t\tconst handleMonthChange = (month: string) => {\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst newDate = setMonth(selectedDate, months.indexOf(month));\r\n\t\t\t\tsetSelectedDate(newDate);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst handleYearChange = (year: string) => {\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst newDate = setYear(selectedDate, parseInt(year, 10));\r\n\t\t\t\tsetSelectedDate(newDate);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst handleDateChange = (selectedDate: Date | undefined) => {\r\n\t\t\tconst newDate = selectedDate || null;\r\n\t\t\tsetSelectedDate(newDate);\r\n\t\t\tsetIsPopoverOpen(false);\r\n\t\t\tonDateSelected(newDate);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t<div className={cn('gap-2', className)} ref={ref} {...props}>\r\n\t\t\t\t<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen}>\r\n\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t<CalendarIcon size={16} className='cursor-pointer text-gray-500' onClick={() => setIsPopoverOpen(true)} />\r\n\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t<PopoverContent className='w-auto p-0 flex flex-col justify-center' align='start'>\r\n\t\t\t\t\t\t<div className='flex justify-between pt-5 px-5'>\r\n\t\t\t\t\t\t\t<Select onValueChange={handleMonthChange} value={months[getMonth(selectedDate || new Date())]}>\r\n\t\t\t\t\t\t\t\t<SelectTrigger className='w-[100px]'>\r\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder='Month' />\r\n\t\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t\t{months.map((month) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={month} value={month}>\r\n\t\t\t\t\t\t\t\t\t\t\t{month}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t\t\t<Select onValueChange={handleYearChange} value={getYear(selectedDate || new Date()).toString()}>\r\n\t\t\t\t\t\t\t\t<SelectTrigger className='w-[100px]'>\r\n\t\t\t\t\t\t\t\t\t<SelectValue placeholder='Year' />\r\n\t\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t\t{years.map((year) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={year} value={year.toString()}>\r\n\t\t\t\t\t\t\t\t\t\t\t{year}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<CalendarComponent\r\n\t\t\t\t\t\t\tmode='single'\r\n\t\t\t\t\t\t\tlocale={ptBR}\r\n\t\t\t\t\t\t\tonSelect={handleDateChange}\r\n\t\t\t\t\t\t\tclassName='bg-white text-black'\r\n\t\t\t\t\t\t\tmonth={selectedDate || undefined}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t</Popover>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nexport { DatePicker };\r\n\r\n","import InputMask from '@mona-health/react-input-mask';\r\nimport * as React from 'react';\r\nimport { useEffect, useState } from 'react';\r\nimport { formatDecimal } from '../../lib/help/format';\r\nimport { cn } from '../../lib/utils';\r\nimport { DatePicker } from './custom/date-picker';\r\n\r\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\r\n\tmask?: string;\r\n\tmaskPlaceholder?: string | null;\r\n\tmaxLength?: number;\r\n\tplaceholder?: string;\r\n\tlabel?: string;\r\n\tdisabled?: boolean;\r\n}\r\n\r\nexport interface InputDecimalProps extends InputProps {\r\n\tsymbol?: string;\r\n}\r\n\r\nfunction classBorderColor(className: string | undefined, ariaInvalid: boolean | undefined) {\r\n\tif (className?.includes('border-none')) {\r\n\t\treturn '';\r\n\t}\r\n\treturn ariaInvalid ? 'border-red-600' : 'border-input';\r\n}\r\n\r\nconst InputFile = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype='file'\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst InputUF = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t\tonChange={(e) => {\r\n\t\t\t\talert(e.target.value);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst InputText = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tvalue={value || ''}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst MaskInput = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ className, type, mask, maskPlaceholder, value, maxLength, disabled, placeholder, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={maskPlaceholder}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nconst MaskInputDate = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ className, type, mask, maxLength, disabled, placeholder, onChange, value, ...props }, ref) => {\r\n\t\tconst [selectedDate, setSelectedDate] = useState<Date | null>(null);\r\n\t\tconst handleDayPickerSelect = (selectedDate: Date | null) => {\r\n\t\t\tsetSelectedDate(selectedDate);\r\n\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tconst formattedDate = selectedDate.toLocaleDateString('pt-BR');\r\n\t\t\t\tif (onChange) {\r\n\t\t\t\t\tonChange({ target: { value: formattedDate } } as React.ChangeEvent<HTMLInputElement>);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tuseEffect(() => {\r\n\t\t\tif (value) {\r\n\t\t\t\tconst parsedDate = new Date(Array.isArray(value) ? value[0] : value);\r\n\t\t\t\tif (!Number.isNaN(parsedDate.getTime())) {\r\n\t\t\t\t\tsetSelectedDate(parsedDate);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, [value]);\r\n\r\n\t\treturn (\r\n\t\t\t<div className='relative w-full'>\r\n\t\t\t\t<InputMask\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\tmask={'99/99/9999'}\r\n\t\t\t\t\tvalue={value || ''}\r\n\t\t\t\t\tonChange={onChange}\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\tplaceholder={placeholder ?? 'DD/MM/AAAA'}\r\n\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background pl-9 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\t\tclassName,\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t<div className='absolute left-3 top-1/2 -translate-y-1/2 cursor-pointer'>\r\n\t\t\t\t\t<DatePicker onDateSelected={handleDayPickerSelect} selectedDateProps={selectedDate} />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nconst MaskInputCpfCnpj = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, mask, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tplaceholder={'000.000.000-00'}\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nconst MaskInputFone = React.forwardRef<HTMLInputElement, InputProps>(({ className, type, mask, value, disabled, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<InputMask\r\n\t\t\t\tref={ref}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tmask={mask || ''}\r\n\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\tvalue={value || ''}\r\n\t\t\t\tdisabled={disabled}\r\n\t\t\t\tplaceholder='(00) 0 0000-0000'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nconst InputPassword = React.forwardRef<HTMLInputElement, InputProps>(({ className, placeholder, type, maxLength, ...props }, ref) => {\r\n\treturn (\r\n\t\t<input\r\n\t\t\ttype={type}\r\n\t\t\tplaceholder={placeholder}\r\n\t\t\tmaxLength={maxLength}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nconst MaskInputDecimal = React.forwardRef<HTMLInputElement, InputDecimalProps>(({ className, value, onChange, disabled, symbol, ...props }, ref) => {\r\n\tconst handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst numericValue = Number(event.target.value.replace(/\\D/g, '')) / 100;\r\n\t\tconst formattedValue = symbol ? `${symbol} ${formatDecimal(numericValue)}` : formatDecimal(numericValue);\r\n\r\n\t\tif (onChange) {\r\n\t\t\tonChange({ ...event, target: { ...event.target, value: formattedValue } });\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<InputMask\r\n\t\t\tref={ref}\r\n\t\t\tmask=''\r\n\t\t\tvalue={value || ''}\r\n\t\t\tonChange={handleChange}\r\n\t\t\tdisabled={disabled}\r\n\t\t\tplaceholder={symbol ? `${symbol} 0,00` : '0,00'}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-10 w-full rounded-md border bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nexport { Input, InputFile, InputPassword, InputText, InputUF, MaskInput, MaskInputCpfCnpj, MaskInputDate, MaskInputDecimal, MaskInputFone };\r\n\r\n","import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\nimport { ButtonProps, buttonVariants } from './button';\r\n\r\nconst Pagination = ({ className, ...props }: React.ComponentProps<'nav'>) => (\r\n\t<nav role='navigation' aria-label='pagination' className={cn('mx-auto flex w-full justify-center', className)} {...props} />\r\n);\r\nPagination.displayName = 'Pagination';\r\n\r\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} className={cn('flex flex-row items-center gap-1', className)} {...props} />\r\n));\r\nPaginationContent.displayName = 'PaginationContent';\r\n\r\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} className={cn('', className)} {...props} />\r\n));\r\nPaginationItem.displayName = 'PaginationItem';\r\n\r\ntype PaginationLinkProps = {\r\n\tisActive?: boolean;\r\n\tdisabled?: boolean;\r\n} & Pick<ButtonProps, 'size'> &\r\n\tReact.ComponentProps<'a'>;\r\n\r\nconst PaginationLink = ({ className, isActive, size = 'icon', ...props }: PaginationLinkProps) => (\r\n\t<a\r\n\t\taria-current={isActive ? 'page' : undefined}\r\n\t\tclassName={cn(\r\n\t\t\tbuttonVariants({\r\n\t\t\t\tvariant: isActive ? 'outline' : 'ghost',\r\n\t\t\t\tsize,\r\n\t\t\t}),\r\n\t\t\tisActive ? '' : 'cursor-pointer',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n);\r\nPaginationLink.displayName = 'PaginationLink';\r\n\r\nconst PaginationPrevious = ({ className, disabled, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n\t<PaginationLink\r\n\t\taria-label='Go to previous page'\r\n\t\tsize='default'\r\n\t\tclassName={cn('gap-1 pl-2.5', disabled ? 'cursor-default text-zinc-500' : 'cursor-pointer', className)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<ChevronLeft className='h-4 w-4' />\r\n\t\t<span>Anterior</span>\r\n\t</PaginationLink>\r\n);\r\nPaginationPrevious.displayName = 'PaginationPrevious';\r\n\r\nconst PaginationNext = ({ className, disabled, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n\t<PaginationLink\r\n\t\taria-label='Go to next page'\r\n\t\tsize='default'\r\n\t\tclassName={cn('gap-1 pr-2.5', disabled ? 'cursor-default text-zinc-500' : 'cursor-pointer', className)}\r\n\t\t{...props}\r\n\t>\r\n\t\t<span>Próximo</span>\r\n\t\t<ChevronRight className='h-4 w-4' />\r\n\t</PaginationLink>\r\n);\r\nPaginationNext.displayName = 'PaginationNext';\r\n\r\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\r\n\t<span aria-hidden className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\r\n\t\t<MoreHorizontal className='h-4 w-4' />\r\n\t\t<span className='sr-only'>More pages</span>\r\n\t</span>\r\n);\r\nPaginationEllipsis.displayName = 'PaginationEllipsis';\r\n\r\nexport { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };\r\n\r\n","import * as ProgressPrimitive from '@radix-ui/react-progress';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Progress = React.forwardRef<React.ElementRef<typeof ProgressPrimitive.Root>, React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>>(\r\n\t({ className, value, ...props }, ref) => (\r\n\t\t<ProgressPrimitive.Root\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('relative h-4 w-full overflow-hidden rounded-full bg-background-secondary', className)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<ProgressPrimitive.Indicator\r\n\t\t\t\tclassName='h-full w-full flex-1 bg-background-primary transition-all'\r\n\t\t\t\tstyle={{ transform: `translateX(-${100 - (value || 0)}%)` }}\r\n\t\t\t/>\r\n\t\t</ProgressPrimitive.Root>\r\n\t),\r\n);\r\nProgress.displayName = ProgressPrimitive.Root.displayName;\r\n\r\nexport { Progress };\r\n\r\n","import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\r\nimport { Circle } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst RadioGroup = React.forwardRef<\r\n\tReact.ElementRef<typeof RadioGroupPrimitive.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\r\n>(({ className, ...props }, ref) => {\r\n\treturn <RadioGroupPrimitive.Root className={cn('', className)} {...props} ref={ref} />;\r\n});\r\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\r\n\r\nconst RadioGroupItem = React.forwardRef<\r\n\tReact.ElementRef<typeof RadioGroupPrimitive.Item>,\r\n\tReact.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\r\n>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<RadioGroupPrimitive.Item\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<RadioGroupPrimitive.Indicator className='flex items-center justify-center'>\r\n\t\t\t\t<Circle className='h-2.5 w-2.5 fill-current text-current' />\r\n\t\t\t</RadioGroupPrimitive.Indicator>\r\n\t\t</RadioGroupPrimitive.Item>\r\n\t);\r\n});\r\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\r\n\r\nexport { RadioGroup, RadioGroupItem };\r\n\r\n","import * as React from \"react\"\r\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst ScrollArea = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\r\n>(({ className, children, ...props }, ref) => (\r\n <ScrollAreaPrimitive.Root\r\n ref={ref}\r\n className={cn(\"relative overflow-hidden\", className)}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\r\n {children}\r\n </ScrollAreaPrimitive.Viewport>\r\n <ScrollBar />\r\n <ScrollAreaPrimitive.Corner />\r\n </ScrollAreaPrimitive.Root>\r\n))\r\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\r\n\r\nconst ScrollBar = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\r\n <ScrollAreaPrimitive.ScrollAreaScrollbar\r\n ref={ref}\r\n orientation={orientation}\r\n className={cn(\r\n \"flex touch-none select-none transition-colors\",\r\n orientation === \"vertical\" &&\r\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\r\n orientation === \"horizontal\" &&\r\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\r\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\r\n))\r\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\r\n\r\nexport { ScrollArea, ScrollBar }\r\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","'use client';\r\n\r\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SheetPrimitive.Overlay\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t\tref={ref}\r\n\t\t/>\r\n\t),\r\n);\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetVariants = cva(\r\n\t'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tside: {\r\n\t\t\t\ttop: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\r\n\t\t\t\tbottom: 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\r\n\t\t\t\tleft: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\r\n\t\t\t\tright: 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tside: 'right',\r\n\t\t},\r\n\t},\r\n);\r\n\r\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {}\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\r\n\t({ side = 'right', className, children, ...props }, ref) => (\r\n\t\t<SheetPortal>\r\n\t\t\t<SheetOverlay />\r\n\t\t\t<SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t\t<SheetPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-background-secondary'>\r\n\t\t\t\t\t<X className='h-4 w-4' />\r\n\t\t\t\t\t<span className='sr-only'>Close</span>\r\n\t\t\t\t</SheetPrimitive.Close>\r\n\t\t\t</SheetPrimitive.Content>\r\n\t\t</SheetPortal>\r\n\t),\r\n);\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\r\n);\r\nSheetHeader.displayName = 'SheetHeader';\r\n\r\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\r\n);\r\nSheetFooter.displayName = 'SheetFooter';\r\n\r\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SheetPrimitive.Title ref={ref} className={cn('text-lg font-semibold text-foreground', className)} {...props} />\r\n\t),\r\n);\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof SheetPrimitive.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\r\n>(({ className, ...props }, ref) => <SheetPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger };\r\n\r\n","import { cn } from \"@/lib/utils\"\r\n\r\nfunction Skeleton({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div\r\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Skeleton }\r\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst Tooltip = TooltipPrimitive.Root;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\nconst TooltipContent = React.forwardRef<\r\n\tReact.ElementRef<typeof TooltipPrimitive.Content>,\r\n\tReact.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n\t<TooltipPrimitive.Content\r\n\t\tref={ref}\r\n\t\tsideOffset={sideOffset}\r\n\t\tclassName={cn(\r\n\t\t\t'z-50 overflow-hidden rounded-md bg-background-primary text-white px-3 py-1.5 text-sm shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t>\r\n\t\t{props.children}\r\n\t\t<TooltipPrimitive.Arrow className='z-50 fill-primary animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2' />\r\n\t</TooltipPrimitive.Content>\r\n));\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\r\n\r\n","import * as React from 'react';\r\n\r\nconst MOBILE_BREAKPOINT = 1350;\r\n\r\nexport function useIsMobile() {\r\n\tconst [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tconst mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\r\n\t\tconst onChange = () => {\r\n\t\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n\t\t};\r\n\t\tmql.addEventListener('change', onChange);\r\n\t\tsetIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n\t\treturn () => mql.removeEventListener('change', onChange);\r\n\t}, []);\r\n\r\n\treturn !!isMobile;\r\n}\r\n","import { Button } from '@/components/ui/button';\r\nimport { Input } from '@/components/ui/input';\r\nimport { Separator } from '@/components/ui/separator';\r\nimport { Sheet, SheetContent } from '@/components/ui/sheet';\r\nimport { Skeleton } from '@/components/ui/skeleton';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\r\nimport { useIsMobile } from '@/hooks/use-mobile';\r\nimport { cn } from '@/lib/utils';\r\nimport { Slot } from '@radix-ui/react-slot';\r\nimport { VariantProps, cva } from 'class-variance-authority';\r\nimport { PanelLeft } from 'lucide-react';\r\nimport * as React from 'react';\r\n\r\nconst SIDEBAR_COOKIE_NAME = 'sidebar:state';\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = '16rem';\r\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\r\nconst SIDEBAR_WIDTH_ICON = '3rem';\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\r\n\r\ntype SidebarContext = {\r\n\tstate: 'expanded' | 'collapsed';\r\n\topen: boolean;\r\n\tsetOpen: (open: boolean) => void;\r\n\topenMobile: boolean;\r\n\tsetOpenMobile: (open: boolean) => void;\r\n\tisMobile: boolean;\r\n\ttoggleSidebar: () => void;\r\n};\r\n\r\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\r\n\r\nfunction useSidebar() {\r\n\tconst context = React.useContext(SidebarContext);\r\n\tif (!context) {\r\n\t\tthrow new Error('useSidebar must be used within a SidebarProvider.');\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tdefaultOpen?: boolean;\r\n\t\topen?: boolean;\r\n\t\tonOpenChange?: (open: boolean) => void;\r\n\t}\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n\tconst isMobile = useIsMobile();\r\n\tconst [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n\t// This is the internal state of the sidebar.\r\n\t// We use openProp and setOpenProp for control from outside the component.\r\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\r\n\tconst open = openProp ?? _open;\r\n\tconst setOpen = React.useCallback(\r\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\r\n\t\t\tconst openState = typeof value === 'function' ? value(open) : value;\r\n\t\t\tif (setOpenProp) {\r\n\t\t\t\tsetOpenProp(openState);\r\n\t\t\t} else {\r\n\t\t\t\t_setOpen(openState);\r\n\t\t\t}\r\n\r\n\t\t\t// This sets the cookie to keep the sidebar state.\r\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n\t\t},\r\n\t\t[setOpenProp, open],\r\n\t);\r\n\r\n\t// Helper to toggle the sidebar.\r\n\tconst toggleSidebar = React.useCallback(() => {\r\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\r\n\t}, [isMobile, setOpen, setOpenMobile]);\r\n\r\n\t// Adds a keyboard shortcut to toggle the sidebar.\r\n\tReact.useEffect(() => {\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\ttoggleSidebar();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener('keydown', handleKeyDown);\r\n\t\treturn () => window.removeEventListener('keydown', handleKeyDown);\r\n\t}, [toggleSidebar]);\r\n\r\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n\t// This makes it easier to style the sidebar with Tailwind classes.\r\n\tconst state = open ? 'expanded' : 'collapsed';\r\n\r\n\tconst contextValue = React.useMemo<SidebarContext>(\r\n\t\t() => ({\r\n\t\t\tstate,\r\n\t\t\topen,\r\n\t\t\tsetOpen,\r\n\t\t\tisMobile,\r\n\t\t\topenMobile,\r\n\t\t\tsetOpenMobile,\r\n\t\t\ttoggleSidebar,\r\n\t\t}),\r\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\r\n\t);\r\n\r\n\treturn (\r\n\t\t<SidebarContext.Provider value={contextValue}>\r\n\t\t\t<TooltipProvider delayDuration={0}>\r\n\t\t\t\t<div\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t'--sidebar-width': SIDEBAR_WIDTH,\r\n\t\t\t\t\t\t\t'--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\r\n\t\t\t\t\t\t\t...style,\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclassName={cn('group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar', className)}\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</TooltipProvider>\r\n\t\t</SidebarContext.Provider>\r\n\t);\r\n});\r\nSidebarProvider.displayName = 'SidebarProvider';\r\n\r\nconst Sidebar = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tside?: 'left' | 'right';\r\n\t\tvariant?: 'sidebar' | 'floating' | 'inset';\r\n\t\tcollapsible?: 'offcanvas' | 'icon' | 'none';\r\n\t}\r\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\r\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n\tif (collapsible === 'none') {\r\n\t\treturn (\r\n\t\t\t<div className={cn('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground', className)} ref={ref} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\tif (isMobile) {\r\n\t\treturn (\r\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n\t\t\t\t<SheetContent\r\n\t\t\t\t\tdata-sidebar='sidebar'\r\n\t\t\t\t\tdata-mobile='true'\r\n\t\t\t\t\tclassName='w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden'\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t'--sidebar-width': SIDEBAR_WIDTH_MOBILE,\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tside={side}\r\n\t\t\t\t>\r\n\t\t\t\t\t<div className='flex h-screen w-full flex-col'>{children}</div>\r\n\t\t\t\t</SheetContent>\r\n\t\t\t</Sheet>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName='group peer text-sidebar-foreground [display:none] md:[display:block]'\r\n\t\t\tdata-state={state}\r\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\r\n\t\t\tdata-variant={variant}\r\n\t\t\tdata-side={side}\r\n\t\t>\r\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear',\r\n\t\t\t\t\t'group-data-[collapsible=offcanvas]:w-0',\r\n\t\t\t\t\t'group-data-[side=right]:rotate-180',\r\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\r\n\t\t\t\t\t\t? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\r\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 fixed inset-y-0 z-10 h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear [display:none] md:[display:flex]',\r\n\t\t\t\t\tside === 'left'\r\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\r\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\r\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\r\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\r\n\t\t\t\t\t\t? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]'\r\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<div\r\n\t\t\t\t\tdata-sidebar='sidebar'\r\n\t\t\t\t\tclassName='flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow'\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n});\r\nSidebar.displayName = 'Sidebar';\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\r\n\t({ className, onClick, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='trigger'\r\n\t\t\t\tvariant='ghost'\r\n\t\t\t\tsize='icon'\r\n\t\t\t\ttype='button'\r\n\t\t\t\tclassName={cn('h-7 w-7', className)}\r\n\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\tonClick?.(event);\r\n\t\t\t\t\ttoggleSidebar();\r\n\t\t\t\t}}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<PanelLeft />\r\n\t\t\t\t<span className='sr-only'>Toggle Sidebar</span>\r\n\t\t\t</Button>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarTrigger.displayName = 'SidebarTrigger';\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(({ className, ...props }, ref) => {\r\n\tconst { toggleSidebar } = useSidebar();\r\n\r\n\treturn (\r\n\t\t<button\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='rail'\r\n\t\t\taria-label='Toggle Sidebar'\r\n\t\t\ttabIndex={-1}\r\n\t\t\ttype='button'\r\n\t\t\tonClick={toggleSidebar}\r\n\t\t\ttitle='Toggle Sidebar'\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\r\n\t\t\t\t'[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\r\n\t\t\t\t'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\r\n\t\t\t\t'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\r\n\t\t\t\t'[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\r\n\t\t\t\t'[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarRail.displayName = 'SidebarRail';\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<main\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'relative flex min-h-svh flex-1 flex-col bg-background',\r\n\t\t\t\t'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarInset.displayName = 'SidebarInset';\r\n\r\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<Input\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='input'\r\n\t\t\tclassName={cn('h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarInput.displayName = 'SidebarInput';\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='header' className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\r\n});\r\nSidebarHeader.displayName = 'SidebarHeader';\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='footer' className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\r\n});\r\nSidebarFooter.displayName = 'SidebarFooter';\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <Separator ref={ref} data-sidebar='separator' className={cn('mx-2 w-auto bg-sidebar-border', className)} {...props} />;\r\n\t},\r\n);\r\nSidebarSeparator.displayName = 'SidebarSeparator';\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='content'\r\n\t\t\tclassName={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarContent.displayName = 'SidebarContent';\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar='group' className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />;\r\n});\r\nSidebarGroup.displayName = 'SidebarGroup';\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : 'div';\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='group-label'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t\t'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : 'button';\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar='group-action'\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t\t// Increases the hit area of the button on mobile.\r\n\t\t\t\t\t'after:absolute after:-inset-2 after:md:hidden',\r\n\t\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\nSidebarGroupAction.displayName = 'SidebarGroupAction';\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (\r\n\t<div ref={ref} data-sidebar='group-content' className={cn('w-full text-sm', className)} {...props} />\r\n));\r\nSidebarGroupContent.displayName = 'SidebarGroupContent';\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} data-sidebar='menu' className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\r\n));\r\nSidebarMenu.displayName = 'SidebarMenu';\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} data-sidebar='menu-item' className={cn('group/menu-item relative', className)} {...props} />\r\n));\r\nSidebarMenuItem.displayName = 'SidebarMenuItem';\r\n\r\nconst sidebarMenuButtonVariants = cva(\r\n\t'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\r\n\t\t\t\toutline:\r\n\t\t\t\t\t'bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]',\r\n\t\t\t},\r\n\t\t\tsize: {\r\n\t\t\t\tdefault: 'h-8 text-sm',\r\n\t\t\t\tsm: 'h-7 text-xs',\r\n\t\t\t\tlg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t\tsize: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<'button'> & {\r\n\t\tasChild?: boolean;\r\n\t\tisActive?: boolean;\r\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n\t} & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\tconst { isMobile, state } = useSidebar();\r\n\r\n\tconst button = (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-button'\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n\r\n\tif (!tooltip) {\r\n\t\treturn button;\r\n\t}\r\n\r\n\tif (typeof tooltip === 'string') {\r\n\t\ttooltip = {\r\n\t\t\tchildren: tooltip,\r\n\t\t};\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Tooltip>\r\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\r\n\t\t\t<TooltipContent side='right' align='center' hidden={state !== 'collapsed' || isMobile} {...tooltip} />\r\n\t\t</Tooltip>\r\n\t);\r\n});\r\nSidebarMenuButton.displayName = 'SidebarMenuButton';\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<'button'> & {\r\n\t\tasChild?: boolean;\r\n\t\tshowOnHover?: boolean;\r\n\t}\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'button';\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-action'\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\r\n\t\t\t\t// Increases the hit area of the button on mobile.\r\n\t\t\t\t'after:absolute after:-inset-2 after:md:hidden',\r\n\t\t\t\t'peer-data-[size=sm]/menu-button:top-1',\r\n\t\t\t\t'peer-data-[size=default]/menu-button:top-1.5',\r\n\t\t\t\t'peer-data-[size=lg]/menu-button:top-2.5',\r\n\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\tshowOnHover &&\r\n\t\t\t\t\t'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarMenuAction.displayName = 'SidebarMenuAction';\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (\r\n\t<div\r\n\t\tref={ref}\r\n\t\tdata-sidebar='menu-badge'\r\n\t\tclassName={cn(\r\n\t\t\t'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none',\r\n\t\t\t'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\r\n\t\t\t'peer-data-[size=sm]/menu-button:top-1',\r\n\t\t\t'peer-data-[size=default]/menu-button:top-1.5',\r\n\t\t\t'peer-data-[size=lg]/menu-button:top-2.5',\r\n\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<'div'> & {\r\n\t\tshowIcon?: boolean;\r\n\t}\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n\t// Random width between 50 to 90%.\r\n\tconst width = React.useMemo(() => {\r\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<div ref={ref} data-sidebar='menu-skeleton' className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)} {...props}>\r\n\t\t\t{showIcon && <Skeleton className='size-4 rounded-md' data-sidebar='menu-skeleton-icon' />}\r\n\t\t\t<Skeleton\r\n\t\t\t\tclassName='h-4 flex-1 max-w-[--skeleton-width]'\r\n\t\t\t\tdata-sidebar='menu-skeleton-text'\r\n\t\t\t\tstyle={\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t'--skeleton-width': width,\r\n\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\r\n\t<ul\r\n\t\tref={ref}\r\n\t\tdata-sidebar='menu-sub'\r\n\t\tclassName={cn(\r\n\t\t\t'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\r\n\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\tclassName,\r\n\t\t)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nSidebarMenuSub.displayName = 'SidebarMenuSub';\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => <li ref={ref} {...props} />);\r\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n\tHTMLAnchorElement,\r\n\tReact.ComponentProps<'a'> & {\r\n\t\tasChild?: boolean;\r\n\t\tsize?: 'sm' | 'md';\r\n\t\tisActive?: boolean;\r\n\t}\r\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : 'a';\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar='menu-sub-button'\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\r\n\t\t\t\t'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\r\n\t\t\t\tsize === 'sm' && 'text-xs',\r\n\t\t\t\tsize === 'md' && 'text-sm',\r\n\t\t\t\t'group-data-[collapsible=icon]:hidden',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\r\n\r\nexport {\r\n\tSidebar,\r\n\tSidebarContent,\r\n\tSidebarFooter,\r\n\tSidebarGroup,\r\n\tSidebarGroupAction,\r\n\tSidebarGroupContent,\r\n\tSidebarGroupLabel,\r\n\tSidebarHeader,\r\n\tSidebarInput,\r\n\tSidebarInset,\r\n\tSidebarMenu,\r\n\tSidebarMenuAction,\r\n\tSidebarMenuBadge,\r\n\tSidebarMenuButton,\r\n\tSidebarMenuItem,\r\n\tSidebarMenuSkeleton,\r\n\tSidebarMenuSub,\r\n\tSidebarMenuSubButton,\r\n\tSidebarMenuSubItem,\r\n\tSidebarProvider,\r\n\tSidebarRail,\r\n\tSidebarSeparator,\r\n\tSidebarTrigger,\r\n\tuseSidebar\r\n};\r\n\r\n","import * as SliderPrimitive from '@radix-ui/react-slider';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SliderPrimitive.Root ref={ref} className={cn('relative flex w-full touch-none select-none items-center', className)} {...props}>\r\n\t\t\t<SliderPrimitive.Track className='relative h-2 w-full grow overflow-hidden rounded-full bg-background-secondary'>\r\n\t\t\t\t<SliderPrimitive.Range className='absolute h-full bg-background-primary' />\r\n\t\t\t</SliderPrimitive.Track>\r\n\t\t\t<SliderPrimitive.Thumb className='block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50' />\r\n\t\t</SliderPrimitive.Root>\r\n\t),\r\n);\r\nSlider.displayName = SliderPrimitive.Root.displayName;\r\n\r\nexport { Slider };\r\n\r\n","import * as SwitchPrimitives from '@radix-ui/react-switch';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<SwitchPrimitives.Root\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-background-primary data-[state=unchecked]:bg-accent',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t\tref={ref}\r\n\t\t>\r\n\t\t\t<SwitchPrimitives.Thumb\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0',\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t</SwitchPrimitives.Root>\r\n\t),\r\n);\r\nSwitch.displayName = SwitchPrimitives.Root.displayName;\r\n\r\nexport { Switch };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(({ className, ...props }, ref) => (\r\n\t<table ref={ref} className={cn('w-full caption-bottom text-sm', className)} {...props} />\r\n));\r\nTable.displayName = 'Table';\r\n\r\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<thead ref={ref} className={cn('sticky top-0 [&_tr]:border-b', className)} {...props} />\r\n));\r\nTableHeader.displayName = 'TableHeader';\r\n\r\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />\r\n));\r\nTableBody.displayName = 'TableBody';\r\n\r\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => (\r\n\t<tfoot ref={ref} className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />\r\n));\r\nTableFooter.displayName = 'TableFooter';\r\n\r\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(({ className, ...props }, ref) => (\r\n\t<tr\r\n\t\tref={ref}\r\n\t\tclassName={cn('border-b transition-colors hover:bg-datatable-accent', 'data-[state=selected]:bg-background-secondary', className)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nTableRow.displayName = 'TableRow';\r\n\r\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\r\n\t<th\r\n\t\tref={ref}\r\n\t\tclassName={cn('h-12 py-[12.25px] px-6 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0', className)}\r\n\t\t{...props}\r\n\t/>\r\n));\r\nTableHead.displayName = 'TableHead';\r\n\r\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => (\r\n\t<td ref={ref} className={cn('align-middle px-6 [&:has([role=checkbox])]:pr-0', className)} {...props} />\r\n));\r\nTableCell.displayName = 'TableCell';\r\n\r\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(({ className, ...props }, ref) => (\r\n\t<caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />\r\n));\r\nTableCaption.displayName = 'TableCaption';\r\n\r\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\r\n\r\n","import * as TabsPrimitive from '@radix-ui/react-tabs';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst TabsList = React.forwardRef<React.ElementRef<typeof TabsPrimitive.List>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.List\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn('inline-flex h-10 items-center justify-center rounded-md bg-background-elevated p-1 text-muted-foreground', className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Trigger>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.Trigger\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Content>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<TabsPrimitive.Content\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\r\n\r\n","import * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nfunction classBorderColor(className: string | undefined, ariaInvalid: boolean | undefined) {\r\n\tif (className?.includes('border-none')) {\r\n\t\treturn '';\r\n\t}\r\n\treturn ariaInvalid ? 'border-red-600' : 'border-input';\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, React.TextareaHTMLAttributes<HTMLTextAreaElement>>(({ className, ...props }, ref) => {\r\n\treturn (\r\n\t\t<textarea\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\tclassBorderColor(className, props['aria-invalid'] === true),\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\tref={ref}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\nTextarea.displayName = 'Textarea';\r\n\r\nexport { Textarea };\r\n\r\n","import * as ToastPrimitives from '@radix-ui/react-toast';\r\nimport { type VariantProps, cva } from 'class-variance-authority';\r\nimport { X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { cn } from '../../lib/utils';\r\n\r\nconst ToastProvider = ToastPrimitives.Provider;\r\n\r\nconst ToastViewport = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Viewport>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\r\n>(({ className, ...props }, ref) => (\r\n\t<ToastPrimitives.Viewport ref={ref} className={cn('fixed top-0 right-0 p-4 space-y-2 z-[100]', className)} {...props} />\r\n));\r\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\r\n\r\nconst toastVariants = cva(\r\n\t'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-top-full',\r\n\t{\r\n\t\tvariants: {\r\n\t\t\tvariant: {\r\n\t\t\t\tdefault: 'border bg-background text-foreground',\r\n\t\t\t\tdestructive: 'bg-white text-zinc-950',\r\n\t\t\t\tsuccess: 'bg-white text-zinc-950',\r\n\t\t\t},\r\n\t\t},\r\n\t\tdefaultVariants: {\r\n\t\t\tvariant: 'default',\r\n\t\t},\r\n\t},\r\n);\r\n\r\nconst Toast = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Root>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\r\n>(({ className, variant, ...props }, ref) => {\r\n\treturn <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\r\n});\r\nToast.displayName = ToastPrimitives.Root.displayName;\r\n\r\nconst ToastAction = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Action>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ToastPrimitives.Action\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-background-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t),\r\n);\r\nToastAction.displayName = ToastPrimitives.Action.displayName;\r\n\r\nconst ToastClose = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Close>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ToastPrimitives.Close\r\n\t\t\tref={ref}\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\r\n\t\t\t\tclassName,\r\n\t\t\t)}\r\n\t\t\ttoast-close=''\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<X className='h-4 w-4' />\r\n\t\t</ToastPrimitives.Close>\r\n\t),\r\n);\r\nToastClose.displayName = ToastPrimitives.Close.displayName;\r\n\r\nconst ToastTitle = React.forwardRef<React.ElementRef<typeof ToastPrimitives.Title>, React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>>(\r\n\t({ className, ...props }, ref) => <ToastPrimitives.Title ref={ref} className={cn('text-sm font-semibold', className)} {...props} />,\r\n);\r\nToastTitle.displayName = ToastPrimitives.Title.displayName;\r\n\r\nconst ToastDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof ToastPrimitives.Description>,\r\n\tReact.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\r\n>(({ className, ...props }, ref) => <ToastPrimitives.Description ref={ref} className={cn('text-sm opacity-90', className)} {...props} />);\r\nToastDescription.displayName = ToastPrimitives.Description.displayName;\r\n\r\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\r\n\r\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\r\n\r\nexport { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, type ToastActionElement, type ToastProps };\r\n\r\n","// Inspired by react-hot-toast library\r\nimport * as React from 'react';\r\n\r\nimport type { ToastActionElement, ToastProps } from './toast';\r\n\r\nconst TOAST_LIMIT = 1;\r\nconst TOAST_REMOVE_DELAY = 1000000;\r\n\r\ntype ToasterToast = ToastProps & {\r\n\tid: string;\r\n\ttitle?: React.ReactNode;\r\n\tdescription?: React.ReactNode;\r\n\taction?: ToastActionElement;\r\n\ticon?: React.ReactNode;\r\n};\r\n\r\nconst actionTypes = {\r\n\tADD_TOAST: 'ADD_TOAST',\r\n\tUPDATE_TOAST: 'UPDATE_TOAST',\r\n\tDISMISS_TOAST: 'DISMISS_TOAST',\r\n\tREMOVE_TOAST: 'REMOVE_TOAST',\r\n} as const;\r\n\r\nlet count = 0;\r\n\r\nfunction genId() {\r\n\tcount = (count + 1) % Number.MAX_SAFE_INTEGER;\r\n\treturn count.toString();\r\n}\r\n\r\ntype ActionType = typeof actionTypes;\r\n\r\ntype Action =\r\n\t| {\r\n\t\t\ttype: ActionType['ADD_TOAST'];\r\n\t\t\ttoast: ToasterToast;\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['UPDATE_TOAST'];\r\n\t\t\ttoast: Partial<ToasterToast>;\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['DISMISS_TOAST'];\r\n\t\t\ttoastId?: ToasterToast['id'];\r\n\t }\r\n\t| {\r\n\t\t\ttype: ActionType['REMOVE_TOAST'];\r\n\t\t\ttoastId?: ToasterToast['id'];\r\n\t };\r\n\r\ninterface State {\r\n\ttoasts: ToasterToast[];\r\n}\r\n\r\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\r\n\r\nconst addToRemoveQueue = (toastId: string) => {\r\n\tif (toastTimeouts.has(toastId)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst timeout = setTimeout(() => {\r\n\t\ttoastTimeouts.delete(toastId);\r\n\t\tdispatch({\r\n\t\t\ttype: 'REMOVE_TOAST',\r\n\t\t\ttoastId: toastId,\r\n\t\t});\r\n\t}, TOAST_REMOVE_DELAY);\r\n\r\n\ttoastTimeouts.set(toastId, timeout);\r\n};\r\n\r\nexport const reducer = (state: State, action: Action): State => {\r\n\tswitch (action.type) {\r\n\t\tcase 'ADD_TOAST':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\r\n\t\t\t};\r\n\r\n\t\tcase 'UPDATE_TOAST':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\r\n\t\t\t};\r\n\r\n\t\tcase 'DISMISS_TOAST': {\r\n\t\t\tconst { toastId } = action;\r\n\r\n\t\t\tif (toastId) {\r\n\t\t\t\taddToRemoveQueue(toastId);\r\n\t\t\t} else {\r\n\t\t\t\tfor (const toast of state.toasts) {\r\n\t\t\t\t\taddToRemoveQueue(toast.id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.map((t) =>\r\n\t\t\t\t\tt.id === toastId || toastId === undefined\r\n\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t...t,\r\n\t\t\t\t\t\t\t\topen: false,\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t: t,\r\n\t\t\t\t),\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase 'REMOVE_TOAST':\r\n\t\t\tif (action.toastId === undefined) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...state,\r\n\t\t\t\t\ttoasts: [],\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\ttoasts: state.toasts.filter((t) => t.id !== action.toastId),\r\n\t\t\t};\r\n\t}\r\n};\r\n\r\nconst listeners: Array<(state: State) => void> = [];\r\n\r\nlet memoryState: State = { toasts: [] };\r\n\r\nfunction dispatch(action: Action) {\r\n\tmemoryState = reducer(memoryState, action);\r\n\tfor (const listener of listeners) {\r\n\t\tlistener(memoryState);\r\n\t}\r\n}\r\n\r\ntype Toast = Omit<ToasterToast, 'id'>;\r\n\r\nfunction toast({ ...props }: Toast) {\r\n\tconst id = genId();\r\n\r\n\tconst update = (props: ToasterToast) =>\r\n\t\tdispatch({\r\n\t\t\ttype: 'UPDATE_TOAST',\r\n\t\t\ttoast: { ...props, id },\r\n\t\t});\r\n\tconst dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\r\n\r\n\tdispatch({\r\n\t\ttype: 'ADD_TOAST',\r\n\t\ttoast: {\r\n\t\t\t...props,\r\n\t\t\tid,\r\n\t\t\topen: true,\r\n\t\t\tonOpenChange: (open) => {\r\n\t\t\t\tif (!open) dismiss();\r\n\t\t\t},\r\n\t\t},\r\n\t});\r\n\r\n\treturn {\r\n\t\tid: id,\r\n\t\tdismiss,\r\n\t\tupdate,\r\n\t};\r\n}\r\n\r\nfunction useToast() {\r\n\tconst [state, setState] = React.useState<State>(memoryState);\r\n\r\n\tReact.useEffect(() => {\r\n\t\tlisteners.push(setState);\r\n\t\treturn () => {\r\n\t\t\tconst index = listeners.indexOf(setState);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tlisteners.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}, [state]);\r\n\r\n\treturn {\r\n\t\t...state,\r\n\t\ttoast,\r\n\t\tdismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\r\n\t};\r\n}\r\n\r\nexport { toast, useToast };\r\n","import { Check, CircleX } from 'lucide-react';\r\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from './toast';\r\nimport { useToast } from './use-toast';\r\n\r\nexport function Toaster() {\r\n\tconst { toasts } = useToast();\r\n\r\n\tconst getIcon = (icon: React.ReactNode, variant: string | null) => {\r\n\t\tif (icon) {\r\n\t\t\treturn icon;\r\n\t\t}\r\n\r\n\t\tswitch (variant) {\r\n\t\t\tcase 'success':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div className='mr-3 p-px rounded-full bg-emerald-700'>\r\n\t\t\t\t\t\t<Check size={16} className='text-white' />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\tcase 'destructive':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div className='mr-3 p-px rounded-full bg-red-700'>\r\n\t\t\t\t\t\t<CircleX size={16} className='text-white' />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ToastProvider>\r\n\t\t\t{toasts.map(({ id, title, description, action, icon, variant, ...props }) => (\r\n\t\t\t\t<Toast key={id} {...props} variant={variant} className='p-4 w-[334px] rounded-lg'>\r\n\t\t\t\t\t<div className='grid gap-1'>\r\n\t\t\t\t\t\t<div className='flex items-center'>\r\n\t\t\t\t\t\t\t{getIcon(icon, variant ?? null)}\r\n\t\t\t\t\t\t\t{title && <ToastTitle>{title}</ToastTitle>} {/* title deve funcionar aqui */}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{description && <ToastDescription>{description}</ToastDescription>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{action}\r\n\t\t\t\t\t<ToastClose className='text-white' />\r\n\t\t\t\t</Toast>\r\n\t\t\t))}\r\n\t\t\t<ToastViewport />\r\n\t\t</ToastProvider>\r\n\t);\r\n}\r\n","import { Popover, PopoverClose, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport { CalendarDays } from 'lucide-react';\r\nimport React from 'react';\r\nimport { DateRange } from 'react-day-picker';\r\nimport { cn } from '../../lib/utils';\r\nimport { Button } from './button';\r\nimport { Calendar } from './calendar';\r\n\r\ninterface CalendarFormProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tgetDataFilter: (from: Date | null, to: Date | null) => void;\r\n}\r\n\r\nexport default function UseCalendar({ className, getDataFilter }: CalendarFormProps) {\r\n\tconst endDate = null;\r\n\tconst startDate = null;\r\n\r\n\tconst [date, setDate] = React.useState<DateRange | any>({\r\n\t\tfrom: startDate,\r\n\t\tto: endDate,\r\n\t});\r\n\r\n\tconst submitDate = () => {\r\n\t\tif (date.from !== null && date.to !== null) {\r\n\t\t\tgetDataFilter(date.from, date.to);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={cn('grid gap-2', className)}>\r\n\t\t\t<Popover>\r\n\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tid='date'\r\n\t\t\t\t\t\tvariant={'outline'}\r\n\t\t\t\t\t\tclassName={'flex justify-center items-center px-4 py-2 cursor-pointer bg-primaryBack text-textFilter rounded-md'}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<CalendarDays color='#0F172A' size={16} className='mr-4' />\r\n\t\t\t\t\t\t{date?.to ? (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{format(date.from, 'dd/MM', { locale: ptBR })} - {format(date.to, 'dd/MM', { locale: ptBR })}\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t<span>Filtrar por Período</span>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t<PopoverContent className='w-auto p-0 testeCalendar flex flex-col justify-center bg-white z-10 shadow-md text-black ' align='start'>\r\n\t\t\t\t\t<Calendar mode='range' locale={ptBR} selected={date} onSelect={setDate} className=' ' />\r\n\r\n\t\t\t\t\t<PopoverClose className='flex justify-center items-center p-4'>\r\n\t\t\t\t\t\t<Button className='w-[150px] bg-background-primary mt-8 px-4 py-2 text-white' onClick={submitDate}>\r\n\t\t\t\t\t\t\tAplicar Filtro\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</PopoverClose>\r\n\t\t\t\t</PopoverContent>\r\n\t\t\t</Popover>\r\n\t\t</div>\r\n\t);\r\n}\r\n","// Retorna todas as cores do Tailwind CSS das variações 50 a 950\r\nexport function getTailwindColorShades() {\r\n\t// Paleta padrão do Tailwind v3.3.0\r\n\t// Fonte: https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js\r\n\treturn {\r\n\t\tslate: {\r\n\t\t\t50: '#f8fafc',\r\n\t\t\t100: '#f1f5f9',\r\n\t\t\t200: '#e2e8f0',\r\n\t\t\t300: '#cbd5e1',\r\n\t\t\t400: '#94a3b8',\r\n\t\t\t500: '#64748b',\r\n\t\t\t600: '#475569',\r\n\t\t\t700: '#334155',\r\n\t\t\t800: '#1e293b',\r\n\t\t\t900: '#0f172a',\r\n\t\t\t950: '#020617',\r\n\t\t},\r\n\t\tgray: {\r\n\t\t\t50: '#f9fafb',\r\n\t\t\t100: '#f3f4f6',\r\n\t\t\t200: '#e5e7eb',\r\n\t\t\t300: '#d1d5db',\r\n\t\t\t400: '#9ca3af',\r\n\t\t\t500: '#6b7280',\r\n\t\t\t600: '#4b5563',\r\n\t\t\t700: '#374151',\r\n\t\t\t800: '#1f2937',\r\n\t\t\t900: '#111827',\r\n\t\t\t950: '#030712',\r\n\t\t},\r\n\t\tzinc: {\r\n\t\t\t50: '#fafafa',\r\n\t\t\t100: '#f4f4f5',\r\n\t\t\t200: '#e4e4e7',\r\n\t\t\t300: '#d4d4d8',\r\n\t\t\t400: '#a1a1aa',\r\n\t\t\t500: '#71717a',\r\n\t\t\t600: '#52525b',\r\n\t\t\t700: '#3f3f46',\r\n\t\t\t800: '#27272a',\r\n\t\t\t900: '#18181b',\r\n\t\t\t950: '#09090b',\r\n\t\t},\r\n\t\tneutral: {\r\n\t\t\t50: '#fafafa',\r\n\t\t\t100: '#f5f5f5',\r\n\t\t\t200: '#e5e5e5',\r\n\t\t\t300: '#d4d4d4',\r\n\t\t\t400: '#a3a3a3',\r\n\t\t\t500: '#737373',\r\n\t\t\t600: '#525252',\r\n\t\t\t700: '#404040',\r\n\t\t\t800: '#262626',\r\n\t\t\t900: '#171717',\r\n\t\t\t950: '#0a0a0a',\r\n\t\t},\r\n\t\tstone: {\r\n\t\t\t50: '#fafaf9',\r\n\t\t\t100: '#f5f5f4',\r\n\t\t\t200: '#e7e5e4',\r\n\t\t\t300: '#d6d3d1',\r\n\t\t\t400: '#a8a29e',\r\n\t\t\t500: '#78716c',\r\n\t\t\t600: '#57534e',\r\n\t\t\t700: '#44403c',\r\n\t\t\t800: '#292524',\r\n\t\t\t900: '#1c1917',\r\n\t\t\t950: '#0c0a09',\r\n\t\t},\r\n\t\tred: {\r\n\t\t\t50: '#fef2f2',\r\n\t\t\t100: '#fee2e2',\r\n\t\t\t200: '#fecaca',\r\n\t\t\t300: '#fca5a5',\r\n\t\t\t400: '#f87171',\r\n\t\t\t500: '#ef4444',\r\n\t\t\t600: '#dc2626',\r\n\t\t\t700: '#b91c1c',\r\n\t\t\t800: '#991b1b',\r\n\t\t\t900: '#7f1d1d',\r\n\t\t\t950: '#450a0a',\r\n\t\t},\r\n\t\torange: {\r\n\t\t\t50: '#fff7ed',\r\n\t\t\t100: '#ffedd5',\r\n\t\t\t200: '#fed7aa',\r\n\t\t\t300: '#fdba74',\r\n\t\t\t400: '#fb923c',\r\n\t\t\t500: '#f97316',\r\n\t\t\t600: '#ea580c',\r\n\t\t\t700: '#c2410c',\r\n\t\t\t800: '#9a3412',\r\n\t\t\t900: '#7c2d12',\r\n\t\t\t950: '#431407',\r\n\t\t},\r\n\t\tamber: {\r\n\t\t\t50: '#fffbeb',\r\n\t\t\t100: '#fef3c7',\r\n\t\t\t200: '#fde68a',\r\n\t\t\t300: '#fcd34d',\r\n\t\t\t400: '#fbbf24',\r\n\t\t\t500: '#f59e42',\r\n\t\t\t600: '#d97706',\r\n\t\t\t700: '#b45309',\r\n\t\t\t800: '#92400e',\r\n\t\t\t900: '#78350f',\r\n\t\t\t950: '#451a03',\r\n\t\t},\r\n\t\tyellow: {\r\n\t\t\t50: '#fefce8',\r\n\t\t\t100: '#fef9c3',\r\n\t\t\t200: '#fef08a',\r\n\t\t\t300: '#fde047',\r\n\t\t\t400: '#facc15',\r\n\t\t\t500: '#eab308',\r\n\t\t\t600: '#ca8a04',\r\n\t\t\t700: '#a16207',\r\n\t\t\t800: '#854d0e',\r\n\t\t\t900: '#713f12',\r\n\t\t\t950: '#422006',\r\n\t\t},\r\n\t\tlime: {\r\n\t\t\t50: '#f7fee7',\r\n\t\t\t100: '#ecfccb',\r\n\t\t\t200: '#d9f99d',\r\n\t\t\t300: '#bef264',\r\n\t\t\t400: '#a3e635',\r\n\t\t\t500: '#84cc16',\r\n\t\t\t600: '#65a30d',\r\n\t\t\t700: '#4d7c0f',\r\n\t\t\t800: '#3f6212',\r\n\t\t\t900: '#365314',\r\n\t\t\t950: '#1a2e05',\r\n\t\t},\r\n\t\tgreen: {\r\n\t\t\t50: '#f0fdf4',\r\n\t\t\t100: '#dcfce7',\r\n\t\t\t200: '#bbf7d0',\r\n\t\t\t300: '#86efac',\r\n\t\t\t400: '#4ade80',\r\n\t\t\t500: '#22c55e',\r\n\t\t\t600: '#16a34a',\r\n\t\t\t700: '#15803d',\r\n\t\t\t800: '#166534',\r\n\t\t\t900: '#14532d',\r\n\t\t\t950: '#052e16',\r\n\t\t},\r\n\t\temerald: {\r\n\t\t\t50: '#ecfdf5',\r\n\t\t\t100: '#d1fae5',\r\n\t\t\t200: '#a7f3d0',\r\n\t\t\t300: '#6ee7b7',\r\n\t\t\t400: '#34d399',\r\n\t\t\t500: '#10b981',\r\n\t\t\t600: '#059669',\r\n\t\t\t700: '#047857',\r\n\t\t\t800: '#065f46',\r\n\t\t\t900: '#064e3b',\r\n\t\t\t950: '#022c22',\r\n\t\t},\r\n\t\tteal: {\r\n\t\t\t50: '#f0fdfa',\r\n\t\t\t100: '#ccfbf1',\r\n\t\t\t200: '#99f6e4',\r\n\t\t\t300: '#5eead4',\r\n\t\t\t400: '#2dd4bf',\r\n\t\t\t500: '#14b8a6',\r\n\t\t\t600: '#0d9488',\r\n\t\t\t700: '#0f766e',\r\n\t\t\t800: '#115e59',\r\n\t\t\t900: '#134e4a',\r\n\t\t\t950: '#042f2e',\r\n\t\t},\r\n\t\tcyan: {\r\n\t\t\t50: '#ecfeff',\r\n\t\t\t100: '#cffafe',\r\n\t\t\t200: '#a5f3fc',\r\n\t\t\t300: '#67e8f9',\r\n\t\t\t400: '#22d3ee',\r\n\t\t\t500: '#06b6d4',\r\n\t\t\t600: '#0891b2',\r\n\t\t\t700: '#0e7490',\r\n\t\t\t800: '#155e75',\r\n\t\t\t900: '#164e63',\r\n\t\t\t950: '#083344',\r\n\t\t},\r\n\t\tsky: {\r\n\t\t\t50: '#f0f9ff',\r\n\t\t\t100: '#e0f2fe',\r\n\t\t\t200: '#bae6fd',\r\n\t\t\t300: '#7dd3fc',\r\n\t\t\t400: '#38bdf8',\r\n\t\t\t500: '#0ea5e9',\r\n\t\t\t600: '#0284c7',\r\n\t\t\t700: '#0369a1',\r\n\t\t\t800: '#075985',\r\n\t\t\t900: '#0e3a5e',\r\n\t\t\t950: '#082f49',\r\n\t\t},\r\n\t\tblue: {\r\n\t\t\t50: '#eff6ff',\r\n\t\t\t100: '#dbeafe',\r\n\t\t\t200: '#bfdbfe',\r\n\t\t\t300: '#93c5fd',\r\n\t\t\t400: '#60a5fa',\r\n\t\t\t500: '#3b82f6',\r\n\t\t\t600: '#2563eb',\r\n\t\t\t700: '#1d4ed8',\r\n\t\t\t800: '#1e40af',\r\n\t\t\t900: '#1e3a8a',\r\n\t\t\t950: '#172554',\r\n\t\t},\r\n\t\tindigo: {\r\n\t\t\t50: '#eef2ff',\r\n\t\t\t100: '#e0e7ff',\r\n\t\t\t200: '#c7d2fe',\r\n\t\t\t300: '#a5b4fc',\r\n\t\t\t400: '#818cf8',\r\n\t\t\t500: '#6366f1',\r\n\t\t\t600: '#4f46e5',\r\n\t\t\t700: '#4338ca',\r\n\t\t\t800: '#3730a3',\r\n\t\t\t900: '#312e81',\r\n\t\t\t950: '#1e1b4b',\r\n\t\t},\r\n\t\tviolet: {\r\n\t\t\t50: '#f5f3ff',\r\n\t\t\t100: '#ede9fe',\r\n\t\t\t200: '#ddd6fe',\r\n\t\t\t300: '#c4b5fd',\r\n\t\t\t400: '#a78bfa',\r\n\t\t\t500: '#8b5cf6',\r\n\t\t\t600: '#7c3aed',\r\n\t\t\t700: '#6d28d9',\r\n\t\t\t800: '#5b21b6',\r\n\t\t\t900: '#4c1d95',\r\n\t\t\t950: '#2e1065',\r\n\t\t},\r\n\t\tpurple: {\r\n\t\t\t50: '#faf5ff',\r\n\t\t\t100: '#f3e8ff',\r\n\t\t\t200: '#e9d5ff',\r\n\t\t\t300: '#d8b4fe',\r\n\t\t\t400: '#c084fc',\r\n\t\t\t500: '#a855f7',\r\n\t\t\t600: '#9333ea',\r\n\t\t\t700: '#7e22ce',\r\n\t\t\t800: '#6d19a8',\r\n\t\t\t900: '#581c87',\r\n\t\t\t950: '#3b0764',\r\n\t\t},\r\n\t\tfuchsia: {\r\n\t\t\t50: '#fdf4ff',\r\n\t\t\t100: '#fae8ff',\r\n\t\t\t200: '#f5d0fe',\r\n\t\t\t300: '#f0abfc',\r\n\t\t\t400: '#e879f9',\r\n\t\t\t500: '#d946ef',\r\n\t\t\t600: '#c026d3',\r\n\t\t\t700: '#a21caf',\r\n\t\t\t800: '#86198f',\r\n\t\t\t900: '#701a75',\r\n\t\t\t950: '#4a044e',\r\n\t\t},\r\n\t\tpink: {\r\n\t\t\t50: '#fdf2f8',\r\n\t\t\t100: '#fce7f3',\r\n\t\t\t200: '#fbcfe8',\r\n\t\t\t300: '#f9a8d4',\r\n\t\t\t400: '#f472b6',\r\n\t\t\t500: '#ec4899',\r\n\t\t\t600: '#db2777',\r\n\t\t\t700: '#be185d',\r\n\t\t\t800: '#9d174d',\r\n\t\t\t900: '#831843',\r\n\t\t\t950: '#500724',\r\n\t\t},\r\n\t\trose: {\r\n\t\t\t50: '#fff1f2',\r\n\t\t\t100: '#ffe4e6',\r\n\t\t\t200: '#fecdd3',\r\n\t\t\t300: '#fda4af',\r\n\t\t\t400: '#fb7185',\r\n\t\t\t500: '#f43f5e',\r\n\t\t\t600: '#e11d48',\r\n\t\t\t700: '#be123c',\r\n\t\t\t800: '#9f1239',\r\n\t\t\t900: '#881337',\r\n\t\t\t950: '#4c0519',\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport type TailwindColorName = keyof ReturnType<typeof getTailwindColorShades>;\r\n\r\nexport const replaceThemeTailwindColors = (theme: string, tailwindColor: string): HTMLStyleElement => {\r\n\tconst colorShades = getTailwindColorShades();\r\n\tconst isValidColor = (color: string): color is TailwindColorName => color in colorShades;\r\n\tconst colorPallete = isValidColor(tailwindColor) ? colorShades[tailwindColor] : colorShades.violet;\r\n\r\n\tconst el = document.createElement('style');\r\n\tel.id = 'theme-variables';\r\n\tel.setAttribute('type', 'text/css');\r\n\tel.textContent = ':root {';\r\n\r\n\tif (theme === 'light') {\r\n\t\tel.textContent += `--sidebar-background: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--sidebar-accent: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--sidebar-ring: ${colorPallete[300]};\\n`;\r\n\t\tel.textContent += `--sidebar-border: ${colorPallete[100]};\\n`;\r\n\t\tel.textContent += `--sidebar-scrollbar-thumb: ${colorPallete[200]};\\n`;\r\n\t}\r\n\tif (theme === 'light' || theme === 'dark-side') {\r\n\t\tel.textContent += `--background-elevated: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--background-primary-hover: ${colorPallete[100]};\\n`;\r\n\t\tel.textContent += `--background-subtle: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--accent: ${colorPallete[200]};\\n`;\r\n\t\tel.textContent += `--datatable-background: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--datatable-accent: ${colorPallete[50]};\\n`;\r\n\t\tel.textContent += `--scrollbar-thumb: ${colorPallete[200]};\\n`;\r\n\t}\r\n\tif (theme === 'dark-side' || theme === 'dark') {\r\n\t\t// Verificar essa propriedade\r\n\t\tel.textContent += `--sidebar-accent: ${colorPallete[950]};\\n`;\r\n\t}\r\n\tel.textContent += `--background-primary: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--background-primary-hover: ${colorPallete[950]};\\n`;\r\n\tel.textContent += `--primary: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--primary-950: ${colorPallete[950]};\\n`;\r\n\tel.textContent += `--primary-900: ${colorPallete[900]};\\n`;\r\n\tel.textContent += `--primary-800: ${colorPallete[800]};\\n`;\r\n\tel.textContent += `--primary-700: ${colorPallete[700]};\\n`;\r\n\tel.textContent += `--primary-600: ${colorPallete[600]};\\n`;\r\n\tel.textContent += `--primary-500: ${colorPallete[500]};\\n`;\r\n\tel.textContent += `--primary-400: ${colorPallete[400]};\\n`;\r\n\tel.textContent += `--primary-300: ${colorPallete[300]};\\n`;\r\n\tel.textContent += `--primary-200: ${colorPallete[200]};\\n`;\r\n\tel.textContent += `--primary-100: ${colorPallete[100]};\\n`;\r\n\tel.textContent += `--primary-50: ${colorPallete[50]};\\n`;\r\n\tel.textContent += `--chart-primary: ${colorPallete[800]};\\n`;\r\n\tel.textContent += `--chart-secondary: ${colorPallete[200]};\\n`;\r\n\tel.textContent += '}';\r\n\r\n\treturn el;\r\n};\r\n","import { createContext, useContext, useEffect, useState } from 'react';\r\nimport { replaceThemeTailwindColors } from '../../../lib/help/theme';\r\n\r\ntype Theme = 'light' | 'dark' | 'dark-side';\r\n\r\ntype ThemePortalDefinitions = {\r\n\tfaviconPath: string;\r\n\tfullLogoPath: string;\r\n\tbannerDesktopPath: string;\r\n\tmvnoPrimaryColor: string;\r\n\tmvnoMainTheme: Theme;\r\n\ttitle: string;\r\n\thideModuleSwitcher: boolean;\r\n};\r\n\r\ntype ThemeProviderProps = {\r\n\tchildren: React.ReactNode;\r\n\tdefaultTheme?: ThemePortalDefinitions;\r\n\tstorageKey?: string;\r\n};\r\n\r\ntype ThemeProviderState = {\r\n\tportalDefinitions: ThemePortalDefinitions;\r\n\tsetPortalDefinitions: (portalDefinitions: ThemePortalDefinitions) => void;\r\n};\r\n\r\nexport const DEFAULT_THEME_DATA: ThemePortalDefinitions = {\r\n\tfaviconPath: '',\r\n\tfullLogoPath: '',\r\n\tbannerDesktopPath: '/imgs/background-auth.png',\r\n\tmvnoPrimaryColor: 'green',\r\n\tmvnoMainTheme: 'light',\r\n\ttitle: '-',\r\n\thideModuleSwitcher: false,\r\n};\r\n\r\nconst initialState: ThemeProviderState = {\r\n\tportalDefinitions: DEFAULT_THEME_DATA,\r\n\tsetPortalDefinitions: () => null,\r\n};\r\n\r\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState);\r\n\r\nexport function ThemeProvider({ children, defaultTheme = DEFAULT_THEME_DATA, storageKey = 'vite-ui-theme', ...props }: ThemeProviderProps) {\r\n\tconst [portalDefinitions, setPortalDefinitionsState] = useState<ThemePortalDefinitions>({\r\n\t\tfaviconPath: localStorage.getItem(`${storageKey}-faviconPath`) || defaultTheme.faviconPath,\r\n\t\tfullLogoPath: localStorage.getItem(`${storageKey}-fullLogoPath`) || defaultTheme.fullLogoPath,\r\n\t\tbannerDesktopPath: localStorage.getItem(`${storageKey}-bannerDesktopPath`) || defaultTheme.bannerDesktopPath,\r\n\t\tmvnoPrimaryColor: localStorage.getItem(`${storageKey}-mvnoPrimaryColor`) || defaultTheme.mvnoPrimaryColor,\r\n\t\tmvnoMainTheme: (localStorage.getItem(storageKey) as Theme) || defaultTheme.mvnoMainTheme,\r\n\t\ttitle: localStorage.getItem(`${storageKey}-title`) || defaultTheme.title,\r\n\t\thideModuleSwitcher: localStorage.getItem(`${storageKey}-hideModuleSwitcher`) === 'true',\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tconst theme = portalDefinitions?.mvnoMainTheme;\r\n\r\n\t\tconst root = window.document.documentElement;\r\n\t\troot.classList.remove('light', 'dark', 'dark-side');\r\n\t\troot.classList.add(theme);\r\n\r\n\t\tdocument.title = portalDefinitions?.title;\r\n\t\tconst meta = document.querySelector('meta[name=\"description\"]');\r\n\t\tif (meta) {\r\n\t\t\tmeta.setAttribute('content', portalDefinitions?.title);\r\n\t\t}\r\n\r\n\t\tlet link = document.querySelector<HTMLLinkElement>(\"link[rel~='icon']\");\r\n\t\tif (!link) {\r\n\t\t\tlink = document.createElement('link');\r\n\t\t\tlink.rel = 'icon';\r\n\t\t\tdocument.getElementsByTagName('head')[0].appendChild(link);\r\n\t\t}\r\n\t\tlink.href = portalDefinitions?.faviconPath;\r\n\r\n\t\tconst el = replaceThemeTailwindColors(theme, portalDefinitions?.mvnoPrimaryColor);\r\n\r\n\t\tdocument.getElementById('theme-variables') &&\r\n\t\t\tdocument.getElementsByTagName('head')[0].removeChild(document.getElementById('theme-variables')!);\r\n\t\tdocument.getElementsByTagName('head')[0].appendChild(el);\r\n\t}, [portalDefinitions]);\r\n\r\n\tconst setPortalDefinitions = (portalDefinitions: ThemePortalDefinitions) => {\r\n\t\tlocalStorage.setItem(`${storageKey}-faviconPath`, portalDefinitions.faviconPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-fullLogoPath`, portalDefinitions.fullLogoPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-bannerDesktopPath`, portalDefinitions.bannerDesktopPath);\r\n\t\tlocalStorage.setItem(`${storageKey}-mvnoPrimaryColor`, portalDefinitions.mvnoPrimaryColor);\r\n\t\tlocalStorage.setItem(`${storageKey}-mvnoMainTheme`, portalDefinitions.mvnoMainTheme);\r\n\t\tlocalStorage.setItem(`${storageKey}-title`, portalDefinitions.title);\r\n\t\tlocalStorage.setItem(`${storageKey}-hideModuleSwitcher`, String(portalDefinitions.hideModuleSwitcher));\r\n\r\n\t\tsetPortalDefinitionsState({\r\n\t\t\tfaviconPath: portalDefinitions.faviconPath || DEFAULT_THEME_DATA.faviconPath,\r\n\t\t\tfullLogoPath: portalDefinitions.fullLogoPath || DEFAULT_THEME_DATA.fullLogoPath,\r\n\t\t\tbannerDesktopPath: portalDefinitions.bannerDesktopPath || DEFAULT_THEME_DATA.bannerDesktopPath,\r\n\t\t\tmvnoPrimaryColor: portalDefinitions.mvnoPrimaryColor || DEFAULT_THEME_DATA.mvnoPrimaryColor,\r\n\t\t\tmvnoMainTheme: portalDefinitions.mvnoMainTheme ? (portalDefinitions.mvnoMainTheme as Theme) : DEFAULT_THEME_DATA.mvnoMainTheme,\r\n\t\t\ttitle: portalDefinitions.title || DEFAULT_THEME_DATA.title,\r\n\t\t\thideModuleSwitcher: portalDefinitions.hideModuleSwitcher || DEFAULT_THEME_DATA.hideModuleSwitcher,\r\n\t\t});\r\n\t};\r\n\r\n\tconst value: ThemeProviderState = {\r\n\t\tportalDefinitions,\r\n\t\tsetPortalDefinitions: setPortalDefinitions,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<ThemeProviderContext.Provider {...props} value={value}>\r\n\t\t\t{children}\r\n\t\t</ThemeProviderContext.Provider>\r\n\t);\r\n}\r\n\r\nexport const useTheme = () => {\r\n\tconst context = useContext(ThemeProviderContext);\r\n\r\n\tif (context === undefined) throw new Error('useTheme must be used within a ThemeProvider');\r\n\r\n\treturn context;\r\n};\r\n","import { CircleHelp } from 'lucide-react';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../tooltip';\r\n\r\nconst formHelpText = (helpText: JSX.Element) => {\r\n\treturn (\r\n\t\t<TooltipProvider>\r\n\t\t\t<Tooltip>\r\n\t\t\t\t<TooltipTrigger className='pb-2'>\r\n\t\t\t\t\t<CircleHelp size={16} className='text-muted' />\r\n\t\t\t\t</TooltipTrigger>\r\n\t\t\t\t<TooltipContent className='text-white bg-background-primary' align='start'>\r\n\t\t\t\t\t{helpText}\r\n\t\t\t\t</TooltipContent>\r\n\t\t\t</Tooltip>\r\n\t\t</TooltipProvider>\r\n\t);\r\n};\r\n\r\nexport { formHelpText };\r\n\r\n","import * as LabelPrimitive from '@radix-ui/react-label';\r\nimport React from 'react';\r\nimport { cn } from '../../../../lib/utils';\r\n\r\ntype FormLabelComponent = React.ForwardRefExoticComponent<React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & React.RefAttributes<React.ElementRef<typeof LabelPrimitive.Root>>>;\r\n\r\nconst formLabel = (FormLabel: FormLabelComponent, label: string) => {\r\n\treturn <FormLabel className='text-default font-medium text-sm h-5'>{label}</FormLabel>;\r\n};\r\n\r\nconst formLabelAndSubLabel = (FormLabel: FormLabelComponent, label: string, subLabel?: string, required?: boolean | undefined, className?: string) => {\r\n\treturn (\r\n\t\t<div className={cn('flex flex-col pb-2', className)}>\r\n\t\t\t<div className='flex gap-1'>\r\n\t\t\t\t{formLabel(FormLabel, label)}\r\n\t\t\t\t{required && <FormLabel className='text-red-600 font-medium text-sm'>*</FormLabel>}\r\n\t\t\t</div>\r\n\t\t\t{subLabel && <FormLabel className='text-default font-normal pt-1'>{subLabel}</FormLabel>}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport { formLabel, formLabelAndSubLabel };\r\n\r\n","import React from 'react';\r\n\r\ntype FormMessageComponent = React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;\r\n\r\nconst formMessage = (FormMessage: FormMessageComponent) => {\r\n\treturn <FormMessage className='text-red-600 mt-1' />;\r\n};\r\n\r\nexport { formMessage };\r\n\r\n","import { Checkbox } from '../../checkbox';\r\nimport * as FormComponents from '../../form';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\tonCheckedChange?: (checked: boolean) => void;\r\n}\r\n\r\nexport const FormInputCheckbox: React.FC<Props> = ({ control, name, label, helpText, className, disabled, onCheckedChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center gap-2'>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\tvalue={field.value}\r\n\t\t\t\t\t\t\t\tclassName={`${\r\n\t\t\t\t\t\t\t\t\tfield.value\r\n\t\t\t\t\t\t\t\t\t\t? 'bg-purple-700 border border-purple-900 text-white rounded-[3px]'\r\n\t\t\t\t\t\t\t\t\t\t: 'bg-white border border-black text-black'\r\n\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) => {\r\n\t\t\t\t\t\t\t\t\tfield?.onChange?.(checked);\r\n\t\t\t\t\t\t\t\t\tonCheckedChange?.(checked as boolean);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t<div className='flex h-full items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabel(FormLabel, label)}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormInputCheckbox;\r\n","export type RGB = { r: number; g: number; b: number };\r\ntype HSL = { h: number; s: number; l: number };\r\n\r\nexport const rgbToHex = ({ r, g, b }: RGB): string => {\r\n\tconst toHex = (n: number) => Math.max(0, Math.min(255, n)).toString(16).padStart(2, '0').toUpperCase();\r\n\treturn `#${toHex(r)}${toHex(g)}${toHex(b)}`;\r\n};\r\n\r\nexport const hexToRgb = (hex: string): RGB | null => {\r\n\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\treturn result\r\n\t\t? {\r\n\t\t\t\tr: Number.parseInt(result[1], 16),\r\n\t\t\t\tg: Number.parseInt(result[2], 16),\r\n\t\t\t\tb: Number.parseInt(result[3], 16),\r\n\t\t }\r\n\t\t: null;\r\n};\r\n\r\nexport const rgbToHsl = ({ r, g, b }: RGB): HSL => {\r\n\tr /= 255;\r\n\tg /= 255;\r\n\tb /= 255;\r\n\r\n\tconst max = Math.max(r, g, b);\r\n\tconst min = Math.min(r, g, b);\r\n\tlet h = 0;\r\n\tlet s = 0;\r\n\tconst l = (max + min) / 2;\r\n\r\n\tif (max !== min) {\r\n\t\tconst d = max - min;\r\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n\t\tswitch (max) {\r\n\t\t\tcase r:\r\n\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\r\n\t\t\t\tbreak;\r\n\t\t\tcase g:\r\n\t\t\t\th = (b - r) / d + 2;\r\n\t\t\t\tbreak;\r\n\t\t\tcase b:\r\n\t\t\t\th = (r - g) / d + 4;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\th /= 6;\r\n\t}\r\n\r\n\treturn {\r\n\t\th: Math.round(h * 360),\r\n\t\ts: Math.round(s * 100),\r\n\t\tl: Math.round(l * 100),\r\n\t};\r\n};\r\n\r\nconst hue2rgb = (p: number, q: number, t: number) => {\r\n\tlet tempT = t;\r\n\tif (tempT < 0) tempT += 1;\r\n\tif (tempT > 1) tempT -= 1;\r\n\tif (tempT < 1 / 6) return p + (q - p) * 6 * tempT;\r\n\tif (tempT < 1 / 2) return q;\r\n\tif (tempT < 2 / 3) return p + (q - p) * (2 / 3 - tempT) * 6;\r\n\treturn p;\r\n};\r\n\r\nexport const hslToRgb = ({ h, s, l }: HSL): RGB => {\r\n\th /= 360;\r\n\ts /= 100;\r\n\tl /= 100;\r\n\r\n\tlet r: number;\r\n\tlet g: number;\r\n\tlet b: number;\r\n\r\n\tif (s === 0) {\r\n\t\tr = g = b = l;\r\n\t} else {\r\n\t\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n\t\tconst p = 2 * l - q;\r\n\r\n\t\tr = hue2rgb(p, q, h + 1 / 3);\r\n\t\tg = hue2rgb(p, q, h);\r\n\t\tb = hue2rgb(p, q, h - 1 / 3);\r\n\t}\r\n\r\n\treturn {\r\n\t\tr: Math.round(r * 255),\r\n\t\tg: Math.round(g * 255),\r\n\t\tb: Math.round(b * 255),\r\n\t};\r\n};\r\n\r\nexport const formatRgba = (rgb: RGB, a = 1): string => {\r\n\treturn `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${a})`;\r\n};\r\n\r\nexport const formatHsla = (hsl: HSL, a = 1): string => {\r\n\treturn `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a})`;\r\n};\r\n","import { Paintbrush } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { HexColorPicker } from 'react-colorful';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport * as FormComponents from '../../form';\r\nimport { Input } from '../../input';\r\nimport { Label } from '../../label';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\nimport { hexToRgb, rgbToHex } from './utils';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tid?: string;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n}\r\n\r\nexport const FormInputColor: React.FC<Props> = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\tconst DEFAULT_COLOR = '#000000';\r\n\tconst [currentColor, setCurrentColor] = useState<string>(DEFAULT_COLOR);\r\n\tconst rgb = hexToRgb(currentColor) || { r: 0, g: 0, b: 0 };\r\n\r\n\tconst handleColorChange = (newColor: string, onChange: (...event: any[]) => void) => {\r\n\t\tonChange?.(newColor);\r\n\t\tsetCurrentColor(newColor);\r\n\t};\r\n\r\n\tconst handleHexChange = (hex: string, onChange: (...event: any[]) => void) => {\r\n\t\tif (/^#[0-9A-Fa-f]{6}$/.test(hex)) {\r\n\t\t\thandleColorChange(hex, onChange);\r\n\t\t} else {\r\n\t\t\tsetCurrentColor(hex);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleRgbChange = (key: keyof typeof rgb, value: string, onChange: (...event: any[]) => void) => {\r\n\t\tconst numValue = Number.parseInt(value);\r\n\r\n\t\tif (!Number.isNaN(numValue) && numValue >= 0 && numValue <= 255) {\r\n\t\t\tconst newRgb = { ...rgb, [key]: numValue };\r\n\r\n\t\t\thandleColorChange(rgbToHex(newRgb), onChange);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Popover>\r\n\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\tclassName={cn('w-[240px] justify-start text-left font-normal', !field.value && 'text-zinc-500', className)}\r\n\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div className='w-full flex items-center gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t{field.value ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='h-4 w-4 rounded !bg-center !bg-cover transition-all border'\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ backgroundColor: field.value }}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<Paintbrush className='h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t<div className='truncate flex-1 text-sm'>\r\n\t\t\t\t\t\t\t\t\t\t\t{field.value ? field.value : placeholder || 'Selecione uma cor'}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t<PopoverContent className={cn('w-80', className)}>\r\n\t\t\t\t\t\t\t<div className='flex flex-col gap-4'>\r\n\t\t\t\t\t\t\t\t<section className='[&_.react-colorful]:w-auto'>\r\n\t\t\t\t\t\t\t\t\t<HexColorPicker\r\n\t\t\t\t\t\t\t\t\t\tcolor={field.value ?? DEFAULT_COLOR}\r\n\t\t\t\t\t\t\t\t\t\tonChange={(newColor) => handleColorChange(newColor, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</section>\r\n\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t<Label>Hex</Label>\r\n\t\t\t\t\t\t\t\t\t\t<Input value={currentColor} onChange={(e) => handleHexChange(e.target.value, field.onChange)} maxLength={7} />\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>R</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.r}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('r', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>G</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.g}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('g', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex flex-col gap-1'>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label>B</Label>\r\n\t\t\t\t\t\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={rgb.b}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => handleRgbChange('b', e.target.value, field.onChange)}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName='w-14'\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t</Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormInputColor;\r\n","import { Check, ChevronsUpDown, LoaderCircle, X } from 'lucide-react';\r\nimport { useEffect, useState } from 'react';\r\nimport { ControllerRenderProps, FieldValues } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../command';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface ComboboxOption {\r\n\tvalue: string | undefined;\r\n\ticon?: React.ReactNode | undefined;\r\n\ttitle: string;\r\n\tsubTitle?: string;\r\n\tclassName?: string;\r\n}\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions: ComboboxOption[];\r\n\tselectedOption?: ComboboxOption;\r\n\ticonLeft?: React.ReactNode | null;\r\n\ticonRight?: React.ReactNode | null;\r\n\taddEmptyOption?: boolean;\r\n\tcanUnselect?: boolean;\r\n\tclosePopUpOnChange?: boolean;\r\n\trunInternalSearch?: boolean;\r\n\tdisabledSearch?: boolean;\r\n\tonChange?: (option: ComboboxOption | undefined) => void;\r\n\tonSearch?: (searchString: string) => void;\r\n\tfooterAction?: {\r\n\t\tlabel: string;\r\n\t\ticon?: React.ReactNode;\r\n\t\tonClick: () => void;\r\n\t};\r\n}\r\n\r\nexport const FormCombobox: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\toptions,\r\n\tselectedOption,\r\n\ticonLeft,\r\n\ticonRight,\r\n\taddEmptyOption,\r\n\tcanUnselect = false,\r\n\tclosePopUpOnChange = true,\r\n\trunInternalSearch = true,\r\n\tdisabledSearch = false,\r\n\tonChange,\r\n\tonSearch,\r\n\tfooterAction,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [loading, setLoading] = useState<boolean>(false);\r\n\tconst [searchString, setSearchString] = useState<string>('');\r\n\tconst DEFAULT_PLACEHOLDER = 'Digite para buscar...';\r\n\r\n\tuseEffect(() => {\r\n\t\tsetLoading(false);\r\n\t}, [options]);\r\n\r\n\tconst getOptions = () => {\r\n\t\tif (options.length === 0) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\r\n\t\tlet filteredOptions = options;\r\n\t\tif (runInternalSearch) {\r\n\t\t\tfilteredOptions = options.filter((option) => {\r\n\t\t\t\tconst title = option.title\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\t\t\t\tconst subTitle = option.subTitle\r\n\t\t\t\t\t?.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\t\t\t\tconst search = searchString\r\n\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t.normalize('NFD')\r\n\t\t\t\t\t.replace(/[^a-z0-9\\s]/gi, '');\r\n\r\n\t\t\t\treturn title.includes(search) || subTitle?.includes(search);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (addEmptyOption) {\r\n\t\t\tfilteredOptions.unshift({ value: undefined, title: '--Selecione--', subTitle: '' });\r\n\t\t}\r\n\r\n\t\treturn filteredOptions;\r\n\t};\r\n\r\n\tconst getSelectedOption = (value: string | undefined): ComboboxOption | undefined => {\r\n\t\tconst option = options.find((option) => option.value === value);\r\n\r\n\t\tif (option) {\r\n\t\t\treturn option;\r\n\t\t}\r\n\r\n\t\treturn selectedOption;\r\n\t};\r\n\r\n\tconst handleSelect = (value: string | undefined, field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\tconst option = value ? getSelectedOption(value) : undefined;\r\n\r\n\t\tif (canUnselect) {\r\n\t\t\tfield.onChange(field.value === value ? undefined : value);\r\n\t\t} else {\r\n\t\t\tfield.onChange(value);\r\n\t\t}\r\n\r\n\t\tif (onChange) {\r\n\t\t\tonChange(option);\r\n\t\t}\r\n\t\tif (closePopUpOnChange) {\r\n\t\t\tsetOpen(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\tconst searchString = (event.target as HTMLInputElement).value;\r\n\r\n\t\tif (onSearch) {\r\n\t\t\tsetLoading(true);\r\n\t\t\tonSearch(searchString);\r\n\t\t}\r\n\t\tsetSearchString(searchString);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Popover\r\n\t\t\t\t\t\topen={open}\r\n\t\t\t\t\t\tonOpenChange={(open) => {\r\n\t\t\t\t\t\t\tif (!disabled) setOpen(open);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t\t<div className={cn(`rounded-sm outline-none ${open ? 'ring-2 ring-ring ring-offset-2' : 'ring-0'}`, className)}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\t\trole='combobox'\r\n\t\t\t\t\t\t\t\t\t\taria-expanded={open}\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t'justify-between disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50',\r\n\t\t\t\t\t\t\t\t\t\t\tformState.errors[name] ? 'border-red-600' : '',\r\n\t\t\t\t\t\t\t\t\t\t\tclassName,\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{iconLeft}\r\n\t\t\t\t\t\t\t\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t\t\t\t\t\t\t\t<span className='truncate font-normal'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value)?.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getSelectedOption(field.value)?.title}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='text-zinc-500'>{placeholder ?? DEFAULT_PLACEHOLDER}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{iconRight ?? <ChevronsUpDown size={20} className='stroke-zinc-500' />}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t<PopoverContent className={cn('p-0', className, 'w-[--radix-popover-trigger-width]')}>\r\n\t\t\t\t\t\t\t<Command shouldFilter={false}>\r\n\t\t\t\t\t\t\t\t{!disabledSearch && <CommandInput placeholder={placeholder ?? DEFAULT_PLACEHOLDER} onKeyUp={handleKeyUp} />}\r\n\t\t\t\t\t\t\t\t<CommandList>\r\n\t\t\t\t\t\t\t\t\t<CommandEmpty className='flex flex-col justify-between items-center p-3 font-normal text-sm'>\r\n\t\t\t\t\t\t\t\t\t\t{loading ? (\r\n\t\t\t\t\t\t\t\t\t\t\t<LoaderCircle size={16} className='text-muted-foreground animate-spin mr-2' />\r\n\t\t\t\t\t\t\t\t\t\t) : getOptions()?.length === 0 && (searchString !== '' || disabledSearch) ? (\r\n\t\t\t\t\t\t\t\t\t\t\t'Nenhum resultado encontrado'\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t'Utilize o campo de busca acima'\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</CommandEmpty>\r\n\t\t\t\t\t\t\t\t\t{options.length > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t<CommandGroup>\r\n\t\t\t\t\t\t\t\t\t\t\t{getOptions().map((option) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<CommandItem\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`key-opt-${option.value}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName='group'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => handleSelect(option.value, field)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn('grid flex-1 text-left text-sm leading-tight', option.className)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className='flex gap-2'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='truncate font-normal'>{option.title}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className='truncate text-xs text-zinc-500'>{option.subTitle}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={`ml-auto text-zinc-500 ${\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.value === option.value ? 'opacity-100' : 'opacity-0'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Check className={cn('flex', canUnselect && 'group-hover:hidden hover:hidden')} size={16} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<X className={cn('hidden', canUnselect && 'group-hover:flex hover:flex')} size={16} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</CommandItem>\r\n\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t</CommandGroup>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</CommandList>\r\n\t\t\t\t\t\t\t</Command>\r\n\t\t\t\t\t\t\t{footerAction && (\r\n\t\t\t\t\t\t\t\t<div className='grid w-full p-1 border-t'>\r\n\t\t\t\t\t\t\t\t\t<Button type='button' variant='ghost' className='h-8' onClick={() => footerAction.onClick()}>\r\n\t\t\t\t\t\t\t\t\t\t{footerAction.icon}\r\n\t\t\t\t\t\t\t\t\t\t{footerAction.label}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t</Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default FormCombobox;\r\n","import { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputCpfCnpj } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nconst masks = ['999.999.999-999', '99.999.999/9999-99'];\r\n\r\nexport const FormInputCpfCnpj: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [mask, setMask] = useState(masks[0]);\r\n\r\n\tconst handleMaskChange = (value: string) => {\r\n\t\tconst numericValue = value.replace(/\\D/g, '');\r\n\t\tif (numericValue.length > 11) {\r\n\t\t\tsetMask(masks[1]);\r\n\t\t} else {\r\n\t\t\tsetMask(masks[0]);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputCpfCnpj\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\thandleMaskChange(e.target.value);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputCurrency: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tsymbol='R$'\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","export const getFirstDayOfCurrentMonth = (): Date => {\r\n\tconst now = new Date();\r\n\treturn new Date(now.getFullYear(), now.getMonth(), 1);\r\n};\r\n\r\nexport const getFirstDayOf90DaysAgo = (): Date => {\r\n\tconst now = new Date();\r\n\treturn new Date(now.getFullYear(), now.getMonth() - 3, 1);\r\n};\r\n\r\nexport const stringToDate = (dateString: string, separator: string = '/'): Date | undefined => {\r\n\tif (!dateString) return undefined;\r\n\r\n\tconst dateParts = dateString.split(separator);\r\n\tif (dateParts.length !== 3) return undefined;\r\n\r\n\tconst day = parseInt(dateParts[0], 10);\r\n\tconst month = parseInt(dateParts[1], 10) - 1; // Months are zero-based in JavaScript\r\n\tconst year = parseInt(dateParts[2], 10);\r\n\r\n\treturn new Date(year, month, day);\r\n};\r\n\r\nexport const aYearAgo = (): Date => {\r\n\tconst aYearAgo = new Date();\r\n\taYearAgo.setFullYear(aYearAgo.getFullYear() - 1);\r\n\r\n\treturn aYearAgo;\r\n};\r\n\r\nexport const invertDate = (date: string, separator: string = '/'): string => {\r\n\tif (!date) return '';\r\n\r\n\treturn date.split(separator).reverse().join('-');\r\n};\r\n\r\nexport const addDaysToToday = (days: number): Date => {\r\n\tconst date = new Date();\r\n\tdate.setDate(date.getDate() + days);\r\n\treturn date;\r\n};\r\n","import { ptBR } from 'date-fns/locale';\r\nimport { CalendarIcon } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { stringToDate } from '../../../../lib/help/date-utils';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Calendar } from '../../calendar';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInput } from '../../input';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputDate: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder = '01/01/2023',\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<div className='relative w-full'>\r\n\t\t\t\t\t\t\t<MaskInput\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tmask={'99/99/9999'}\r\n\t\t\t\t\t\t\t\tmaskPlaceholder={null}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\tclassName={cn('pl-9', className)}\r\n\t\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t<div className='absolute left-3 top-1/2 -translate-y-1/2 cursor-pointer'>\r\n\t\t\t\t\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\r\n\t\t\t\t\t\t\t\t\t<PopoverTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t\t<CalendarIcon size={16} className='cursor-pointer text-gray-500' />\r\n\t\t\t\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t\t\t\t<PopoverContent className='w-[250px] p-0' align='start'>\r\n\t\t\t\t\t\t\t\t\t\t<Calendar\r\n\t\t\t\t\t\t\t\t\t\t\tmode='single'\r\n\t\t\t\t\t\t\t\t\t\t\tlocale={ptBR}\r\n\t\t\t\t\t\t\t\t\t\t\trequired={true}\r\n\t\t\t\t\t\t\t\t\t\t\tselected={stringToDate(field.value) ?? new Date()}\r\n\t\t\t\t\t\t\t\t\t\t\tonSelect={(date) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(date ? date.toLocaleDateString('pt-BR') : '');\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: { value: date ? date.toLocaleDateString('pt-BR') : '' },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.ChangeEvent<HTMLInputElement>);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetOpen(false);\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tclassName='rounded-md'\r\n\t\t\t\t\t\t\t\t\t\t\tcaptionLayout='dropdown'\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t\t\t\t</Popover>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { format } from 'date-fns';\r\nimport { CalendarIcon } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { DateRange } from 'react-day-picker';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Calendar } from '../../calendar';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement> | DateRange | undefined) => void;\r\n}\r\n\r\nexport const FormDataRange: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\t// const [date, setDate] = useState<DateRange | undefined>(field.value);\r\n\tconst [open, setOpen] = useState(false);\r\n\r\n\tconst handleDateChange = (newDate: DateRange | undefined, field: any) => {\r\n\t\t// setDate(newDate);\r\n\t\tfield.onChange(newDate);\r\n\t\tif (onChange) onChange(newDate);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Popover open={open} onOpenChange={setOpen}>\r\n\t\t\t\t\t\t\t<PopoverTrigger asChild className='w-full'>\r\n\t\t\t\t\t\t\t\t<div className={` rounded-sm outline-none ${open ? 'ring-2 ring-ring ring-offset-2' : 'ring-0'}`}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tvariant='outline'\r\n\t\t\t\t\t\t\t\t\t\trole='combobox'\r\n\t\t\t\t\t\t\t\t\t\taria-expanded={open}\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t` ${className} justify-start disabled:border-disabled disabled:cursor-not-allowed disabled:opacity-50`,\r\n\t\t\t\t\t\t\t\t\t\t\tformState.errors[name] ? 'border-red-600' : '',\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<CalendarIcon className='text-zinc-500' />\r\n\t\t\t\t\t\t\t\t\t\t{field.value?.from ? (\r\n\t\t\t\t\t\t\t\t\t\t\tfield.value?.to ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{format(field.value?.from, 'dd/MM/yyyy')} - {format(field.value?.to, 'dd/MM/yyyy')}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\tformat(field.value?.from, 'dd/MM/yyyy')\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t<span className='font-normal text-zinc-500'>Escolha um Período</span>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</PopoverTrigger>\r\n\t\t\t\t\t\t\t<PopoverContent className='flex w-auto p-0' align='start'>\r\n\t\t\t\t\t\t\t\t<div className='flex flex-row space-x-4'>\r\n\t\t\t\t\t\t\t\t\t<Calendar\r\n\t\t\t\t\t\t\t\t\t\tinitialFocus\r\n\t\t\t\t\t\t\t\t\t\tmode='range'\r\n\t\t\t\t\t\t\t\t\t\tdefaultMonth={field.value?.from}\r\n\t\t\t\t\t\t\t\t\t\tselected={field.value}\r\n\t\t\t\t\t\t\t\t\t\tnumberOfMonths={2}\r\n\t\t\t\t\t\t\t\t\t\tclassName='flex'\r\n\t\t\t\t\t\t\t\t\t\tonSelect={(newDate) => handleDateChange(newDate, field)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</PopoverContent>\r\n\t\t\t\t\t\t</Popover>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputDecimal: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { InputFile } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputFile: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [value, setValue] = useState('');\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputFile\r\n\t\t\t\t\t\t\tvalue={value}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tsetValue(e.target.value);\r\n\t\t\t\t\t\t\t\tfield.onChange(e.target.files);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tclassName?: string;\r\n}\r\n\r\nexport const FormInputGhost: React.FC<Props> = ({ control, name, className }) => {\r\n\tconst { FormField, FormItem, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputText {...field} className='hidden' />\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { Input } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\ttype?: string;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInput: React.FC<Props> = ({\r\n\tcontrol,\r\n\ttype,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Input\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\ttype={type}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import * as FormComponents from '../../form';\r\nimport { MaskInput } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmask: string;\r\n\tmaskPlaceholder?: string | null;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tinputRef?: React.Ref<HTMLInputElement>;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputMask: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmask,\r\n\tmaskPlaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tinputRef,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInput\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\tmaskPlaceholder={maskPlaceholder}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { type VariantProps, cva } from 'class-variance-authority';\r\nimport { CheckIcon, ChevronDown, X } from 'lucide-react';\r\nimport * as React from 'react';\r\nimport { ControllerRenderProps, FieldValues } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Badge } from '../../badge';\r\nimport { Button } from '../../button';\r\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../command';\r\nimport * as FormComponents from '../../form';\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nconst multiSelectVariants = cva('m-1 rounded-[6px]', {\r\n\tvariants: {\r\n\t\tvariant: {\r\n\t\t\tdefault: 'text-foreground bg-background-secondary dark:bg-popover hover:bg-background-secondary',\r\n\t\t\tsecondary: 'border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80',\r\n\t\t\tdestructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\r\n\t\t\tinverted: 'inverted',\r\n\t\t},\r\n\t},\r\n\tdefaultVariants: {\r\n\t\tvariant: 'default',\r\n\t},\r\n});\r\n\r\nexport interface MultiSelectOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n}\r\n\r\ninterface MultiSelectProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof multiSelectVariants> {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\toptions: MultiSelectOption[];\r\n\tplaceholder?: string;\r\n\tmaxCount?: number;\r\n\tmodalPopover?: boolean;\r\n\tasChild?: boolean;\r\n\tclassName?: string;\r\n\trequired?: boolean;\r\n}\r\n\r\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tcontrol,\r\n name, \r\n label,\r\n subLabel,\r\n helpText,\r\n options,\r\n\t\t\tvariant,\r\n\t\t\tplaceholder,\r\n\t\t\tmaxCount = 2,\r\n\t\t\tmodalPopover = false,\r\n\t\t\tasChild = false,\r\n\t\t\tclassName,\r\n required,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref,\r\n\t) => {\r\n\t\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\r\n\t const DEFAULT_PLACEHOLDER_FILTER = 'Digite para buscar...';\r\n\t const DEFAULT_PLACEHOLDER = 'Selecione';\r\n\r\n\t\tconst toggleOption = (option: MultiSelectOption, field: ControllerRenderProps<FieldValues, string>) => {\r\n const prevValue = field.value || [];\r\n\r\n const newValue = prevValue?.some((item: MultiSelectOption) => item.value === option.value)\r\n ? prevValue.filter((item: MultiSelectOption) => item.value !== option.value)\r\n : [...prevValue, option];\r\n\r\n field.onChange(newValue);\r\n\t\t};\r\n\r\n\t\tconst handleClear = (field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\t\tfield.onChange([]);\r\n\t\t};\r\n\r\n\t\tconst handleTogglePopover = () => {\r\n\t\t\tsetIsPopoverOpen((prev) => !prev);\r\n\t\t};\r\n\r\n\t\tconst toggleAll = (field: ControllerRenderProps<FieldValues, string>) => {\r\n\t\t\tif (field.value?.length === options.length) {\r\n\t\t\t\thandleClear(field);\r\n\t\t\t} else {\r\n\t\t\t\tconst allValues = options.map((option) => option);\r\n\t\t\t\tfield.onChange(allValues);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn (\r\n <FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n <Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen} modal={modalPopover}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n ref={ref}\r\n {...props}\r\n onClick={handleTogglePopover}\r\n className={cn(\r\n 'flex w-full p-1 rounded-md border min-h-10 h-auto items-center justify-between bg-background hover:bg-background [&_svg]:size-3.5',\r\n className,\r\n )}\r\n >\r\n {field.value?.length > 0 ? (\r\n <div className='flex justify-between items-center w-full'>\r\n <div className='flex items-center'>\r\n <div className={`grid grid-cols-${maxCount}`}>\r\n {field.value.slice(0, maxCount).map((option: MultiSelectOption) => {\r\n return (\r\n <Badge\r\n key={`msoptlbl-${option.value}`}\r\n className={cn(multiSelectVariants({ variant }))}\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n toggleOption(option, field);\r\n }}\r\n >\r\n <div className='truncate'>{option?.label}</div>\r\n <X className='ml-2 cursor-pointer text-zinc-500' />\r\n </Badge>\r\n );\r\n })}\r\n </div>\r\n {field.value?.length > maxCount && (\r\n <Badge variant={'surface'}\r\n >\r\n {`+${field.value?.length - maxCount}`}\r\n </Badge>\r\n )}\r\n </div>\r\n <div className='flex items-center justify-between'>\r\n <ChevronDown className='h-4 mx-2 cursor-pointer text-muted-foreground' />\r\n </div>\r\n </div>\r\n ) : (\r\n <div className='flex items-center justify-between w-full mx-auto'>\r\n <span className='text-sm text-muted-foreground mx-3'>{placeholder ?? DEFAULT_PLACEHOLDER}</span>\r\n <ChevronDown className='h-4 cursor-pointer text-muted-foreground mx-2' />\r\n </div>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className={cn('w-auto p-0', 'w-[--radix-popover-trigger-width]')} align='start' onEscapeKeyDown={() => setIsPopoverOpen(false)}>\r\n <Command>\r\n <CommandInput placeholder={DEFAULT_PLACEHOLDER_FILTER} />\r\n <CommandList>\r\n <CommandEmpty>Nenhum resultado encontrado</CommandEmpty>\r\n <CommandGroup>\r\n <CommandItem key='all' onSelect={() => toggleAll(field)} className='cursor-pointer'>\r\n <div\r\n className={cn(\r\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\r\n field.value?.length === options.length\r\n ? 'bg-primary text-primary-foreground'\r\n : 'opacity-50 [&_svg]:invisible',\r\n )}\r\n >\r\n <CheckIcon className='h-4 w-4' />\r\n </div>\r\n <span>(Selecionar Todos)</span>\r\n </CommandItem>\r\n {options.map((option) => {\r\n const isSelected = field.value?.some((item: MultiSelectOption) => item.value === option.value);\r\n return (\r\n <CommandItem key={`msopt-${option.value}`} onSelect={() => toggleOption(option, field)} className='cursor-pointer'>\r\n <div\r\n className={cn(\r\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\r\n isSelected ? 'bg-primary text-primary-foreground' : 'opacity-50 [&_svg]:invisible',\r\n )}\r\n >\r\n <CheckIcon className='h-4 w-4' />\r\n </div>\r\n <span>{option.label}</span>\r\n </CommandItem>\r\n );\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t\t);\r\n\t},\r\n);\r\n\r\nMultiSelect.displayName = 'MultiSelect';\r\n","import { Eye, EyeOff } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputPassWord: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [showPassword, setShowPassword] = useState(true);\r\n\tconst togglePasswordVisibility = () => setShowPassword((prev) => !prev);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<div className='relative w-full'>\r\n\t\t\t\t\t\t\t<InputText\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\ttype={showPassword ? 'password' : 'text'}\r\n\t\t\t\t\t\t\t\tname={name}\r\n\t\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<button type='button' onClick={togglePasswordVisibility} className='absolute inset-y-0 right-2 flex items-center'>\r\n\t\t\t\t\t\t\t\t{showPassword ? <EyeOff className='w-5 h-5 text-slate-500' /> : <Eye className='w-5 h-5 text-slate-500' />}\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputDecimal } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputPercent: React.FC<Props> = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<MaskInputDecimal\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tsymbol='%'\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { MaskInputFone } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nconst masks = ['(99) 9999-99999', '(99) 9 9999-9999'];\r\n\r\nexport const FormInputPhone: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\tconst [mask, setMask] = useState(masks[0]);\r\n\r\n\tconst getMask = (val: string) => (val.replace(/\\D/g, '').length > 10 ? masks[1] : masks[0]);\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => {\r\n\t\t\t\tuseEffect(() => {\r\n\t\t\t\t\tsetMask(getMask(field.value || ''));\r\n\t\t\t\t}, [field.value]);\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<MaskInputFone\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tclassName={className}\r\n\t\t\t\t\t\t\t\tplaceholder={placeholder ?? '(00) 0 0000-0000'}\r\n\t\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\t\tmask={mask}\r\n\t\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\t\tonChange?.(e);\r\n\t\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\t\tsetMask(getMask(e.target.value));\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => onKeyUp?.(e)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t\t</FormItem>\r\n\t\t\t\t);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { Label } from '../../label';\r\nimport { RadioGroup, RadioGroupItem } from '../../radio-group';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface RadioOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\tdescription?: string;\r\n\tdisabled?: boolean;\r\n}\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tvalue?: string;\r\n\tlabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tclassNameOptions?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions?: RadioOption[];\r\n\tonChange?: (value: string) => void;\r\n}\r\n\r\nexport const FormRadioGroup: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tvalue,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tclassName,\r\n\tclassNameOptions,\r\n\tdisabled,\r\n\trequired,\r\n\toptions,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\tkey={value}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem>\r\n\t\t\t\t\t<div className={cn('flex items-center space-x-1.5 mb-2', className)}>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<RadioGroup\r\n\t\t\t\t\t\t\tonValueChange={(value: string) => {\r\n\t\t\t\t\t\t\t\tfield?.onChange?.(value);\r\n\t\t\t\t\t\t\t\tonChange?.(value);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tdefaultValue={field.value}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tclassName={`${className}`}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div className={cn('flex flex-grow gap-6', classNameOptions)}>\r\n\t\t\t\t\t\t\t\t{options?.map((option, index) => (\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col' key={`radio-${name}-${index}`}>\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex items-center space-x-2' key={`radio-${name}-${index}`}>\r\n\t\t\t\t\t\t\t\t\t\t\t<RadioGroupItem\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tid={`r${option.value}`}\r\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={field.value === option.value}\r\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={option.disabled}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t<Label htmlFor={`r${option.value}`} className={option.disabled ? 'opacity-50' : ''}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\r\n\t\t\t\t\t\t\t\t\t\t\t</Label>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t{option.description && (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className={cn('pl-6 text-zinc-500', { 'opacity-50': option.disabled })}>{option.description}</div>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</RadioGroup>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { Select } from '@radix-ui/react-select';\r\nimport { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '../../select';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\nexport interface SelectOption {\r\n\tvalue: string;\r\n\tlabel: string;\r\n\tdefault?: boolean;\r\n}\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\toptions: SelectOption[];\r\n}\r\n\r\nexport const FormSelect: React.FC<Props> = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required, options }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Select onValueChange={field.onChange} defaultValue={field.value} disabled={disabled}>\r\n\t\t\t\t\t\t\t<SelectTrigger className={cn('', formState.errors[name] ? 'border-red-600' : '', className)}>\r\n\t\t\t\t\t\t\t\t<SelectValue className='text-slate-400' placeholder={placeholder} />\r\n\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t<SelectContent className='bg-white cursor-pointer'>\r\n\t\t\t\t\t\t\t\t<SelectGroup>\r\n\t\t\t\t\t\t\t\t\t{options.map((option) => (\r\n\t\t\t\t\t\t\t\t\t\t<SelectItem key={option.value} value={option.value}>\r\n\t\t\t\t\t\t\t\t\t\t\t{option.label}\r\n\t\t\t\t\t\t\t\t\t\t</SelectItem>\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t</SelectGroup>\r\n\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { Check } from 'lucide-react';\r\nimport { Separator } from '../../separator';\r\n\r\nexport interface PropsStepNewForm {\r\n\tsteps: { id: string; label: string }[];\r\n\tcurrentIndex: number;\r\n}\r\n\r\nconst StepNewForm = ({ steps, currentIndex }: PropsStepNewForm) => {\r\n\tconst getStepIcon = (index: number) => {\r\n\t\tif (index < currentIndex) {\r\n\t\t\treturn (\r\n\t\t\t\t<div className='flex w-6 h-6 rounded-md items-center justify-center bg-background-secondary border'>\r\n\t\t\t\t\t<Check size={16} className='stroke-2 stroke-primary' />\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName={`flex w-6 h-6 rounded-md items-center justify-center border ${\r\n\t\t\t\t\tindex === currentIndex ? 'bg-background-primary text-white' : 'bg-white text-black'\r\n\t\t\t\t}`}\r\n\t\t\t>\r\n\t\t\t\t{index + 1}\r\n\t\t\t</div>\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className='flex flex-row gap-x-3 my-2.5'>\r\n\t\t\t{steps.map((step, index, array) => (\r\n\t\t\t\t<div className='flex items-center text-sm font-medium gap-x-3' key={step.id}>\r\n\t\t\t\t\t<div className='flex items-center text-sm font-medium gap-x-3'>\r\n\t\t\t\t\t\t{getStepIcon(index)}\r\n\t\t\t\t\t\t{step.label}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{index + 1 < array.length && (\r\n\t\t\t\t\t\t<div className='w-10'>\r\n\t\t\t\t\t\t\t<Separator />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t))}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport { StepNewForm };\r\n","import { cn } from '../../../../lib/utils';\r\nimport * as FormComponents from '../../form';\r\nimport { Switch } from '../../switch';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\ttopLabel?: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\tonCheckedChange?: (checked: boolean) => void;\r\n}\r\n\r\nexport const FormInputSwitch: React.FC<Props> = ({ control, name, label, topLabel, subLabel, helpText, className, disabled, onCheckedChange }) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field }) => (\r\n\t\t\t\t<FormItem className={cn('flex flex-col gap-y-2', className)}>\r\n\t\t\t\t\t{topLabel && <FormLabel>{topLabel}</FormLabel>}\r\n\t\t\t\t\t<div className='flex items-center gap-x-2'>\r\n\t\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t\t<Switch\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tchecked={field.value}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) => {\r\n\t\t\t\t\t\t\t\t\tfield.onChange(checked);\r\n\t\t\t\t\t\t\t\t\tif (onCheckedChange) {\r\n\t\t\t\t\t\t\t\t\t\tonCheckedChange(checked);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t<div className='flex h-full items-center space-x-1.5'>\r\n\t\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, false, 'pb-0')}\r\n\t\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { InputText } from '../../input';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tmaxLength?: number;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tinputRef?: React.Ref<HTMLInputElement>;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n}\r\n\r\nexport const FormInputText: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tmaxLength,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tinputRef,\r\n\tonKeyUp,\r\n\tonChange,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<InputText\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tmaxLength={maxLength}\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tvalue={field.value || ''}\r\n\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { ControllerRenderProps, FieldValues, FormState } from 'react-hook-form';\r\nimport * as FormComponents from '../../form';\r\nimport { Textarea } from '../../textarea';\r\nimport { formHelpText } from './form-help-text';\r\nimport { formLabelAndSubLabel } from './form-label';\r\nimport { formMessage } from './form-message';\r\n\r\ninterface Props {\r\n\tcontrol: any;\r\n\tname: string;\r\n\tlabel: string;\r\n\tsubLabel?: string;\r\n\thelpText?: JSX.Element;\r\n\tplaceholder?: string;\r\n\tclassName?: string;\r\n\tdisabled?: boolean;\r\n\trequired?: boolean;\r\n\tonChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\r\n\tonKeyUp?: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;\r\n}\r\n\r\nexport const FormTextarea: React.FC<Props> = ({\r\n\tcontrol,\r\n\tname,\r\n\tlabel,\r\n\tsubLabel,\r\n\thelpText,\r\n\tplaceholder,\r\n\tclassName,\r\n\tdisabled,\r\n\trequired,\r\n\tonChange,\r\n\tonKeyUp,\r\n}) => {\r\n\tconst { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;\r\n\r\n\treturn (\r\n\t\t<FormField\r\n\t\t\tcontrol={control}\r\n\t\t\tname={name}\r\n\t\t\trender={({ field, formState }: { field: ControllerRenderProps<FieldValues, string>; formState: FormState<FieldValues> }) => (\r\n\t\t\t\t<FormItem className={className}>\r\n\t\t\t\t\t<div className='flex items-center space-x-1.5'>\r\n\t\t\t\t\t\t{label && formLabelAndSubLabel(FormLabel, label, subLabel, required)}\r\n\t\t\t\t\t\t{helpText && formHelpText(helpText)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<FormControl>\r\n\t\t\t\t\t\t<Textarea\r\n\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\tclassName='resize-none outline-none focus:outline-none'\r\n\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\tdisabled={disabled || formState.isSubmitting}\r\n\t\t\t\t\t\t\tonChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n\t\t\t\t\t\t\t\tfield.onChange(e);\r\n\t\t\t\t\t\t\t\tif (onChange) {\r\n\t\t\t\t\t\t\t\t\tonChange(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tonKeyUp={(e: React.KeyboardEvent<HTMLTextAreaElement>) => {\r\n\t\t\t\t\t\t\t\tif (onKeyUp) {\r\n\t\t\t\t\t\t\t\t\tonKeyUp(e);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t{formMessage(FormMessage)}\r\n\t\t\t\t</FormItem>\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n","import { zodResolver } from '@hookform/resolvers/zod';\r\nimport { FieldErrors, useForm } from 'react-hook-form';\r\nimport { z } from 'zod';\r\nimport { Button } from '../../button';\r\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../dialog';\r\nimport { Form } from '../../form';\r\nimport { toast } from '../../use-toast';\r\nimport { FormRadioGroup } from '../form/radio-group';\r\nimport { ExportDataTable } from './types/data-table';\r\n\r\ninterface DataTableExportProps {\r\n\texportData?: ExportDataTable;\r\n\ttotalRows: number;\r\n}\r\n\r\nexport function DataTableExport({ exportData, totalRows }: DataTableExportProps) {\r\n\tconst exportXlSX = () => {\r\n\t\tif (!exportData) return;\r\n\r\n\t\tif (totalRows === 0) {\r\n\t\t\ttoast({\r\n\t\t\t\ttitle: 'Não há dados para exportar.',\r\n\t\t\t\tvariant: 'destructive',\r\n\t\t\t});\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst params = new URLSearchParams(exportData.params).toString();\r\n\t\twindow.open(`${exportData.url}?${params}`, '_blank');\r\n\t};\r\n\r\n\tconst renderExport = () => {\r\n\t\tif (!exportData) return null;\r\n\r\n\t\tif (exportData.type === 'xlsx') {\r\n\t\t\treturn (\r\n\t\t\t\t<Button variant='secondary' onClick={exportXlSX}>\r\n\t\t\t\t\tExportar\r\n\t\t\t\t</Button>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (exportData.type === 'dialog') {\r\n\t\t\tconst ExportDataSchema = z.object({\r\n\t\t\t\tmodel: z.string(),\r\n\t\t\t\tformat: z.string(),\r\n\t\t\t});\r\n\r\n\t\t\tconst form = useForm<z.infer<typeof ExportDataSchema>>({\r\n\t\t\t\tmode: 'onTouched',\r\n\t\t\t\tresolver: zodResolver(ExportDataSchema),\r\n\t\t\t});\r\n\r\n\t\t\tconst { control, trigger, handleSubmit } = form;\r\n\r\n\t\t\tconst onSubmit = async (values: z.infer<typeof ExportDataSchema>) => {\r\n\t\t\t\tawait trigger();\r\n\r\n\t\t\t\ttoast({\r\n\t\t\t\t\ttitle: 'Em desenvolvimento.',\r\n\t\t\t\t\tvariant: 'destructive',\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst onError = async (errors: FieldErrors<z.infer<typeof ExportDataSchema>>) => {\r\n\t\t\t\ttoast({\r\n\t\t\t\t\ttitle: 'Erro ao salvar',\r\n\t\t\t\t\tdescription: 'Verifique os campos obrigatórios',\r\n\t\t\t\t\tvariant: 'destructive',\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<Form {...(form as any)} onSubmit={handleSubmit(onSubmit, onError)}>\r\n\t\t\t\t\t<Dialog>\r\n\t\t\t\t\t\t<DialogTrigger asChild>\r\n\t\t\t\t\t\t\t<Button variant='secondary'>Exportar</Button>\r\n\t\t\t\t\t\t</DialogTrigger>\r\n\t\t\t\t\t\t<DialogContent hideClose className='fixed p-6 rounded-lg w-[451px]'>\r\n\t\t\t\t\t\t\t<DialogHeader>\r\n\t\t\t\t\t\t\t\t<DialogTitle>Exportar</DialogTitle>\r\n\t\t\t\t\t\t\t\t<DialogDescription />\r\n\t\t\t\t\t\t\t</DialogHeader>\r\n\t\t\t\t\t\t\t<div className='flex flex-col gap-6'>\r\n\t\t\t\t\t\t\t\t<FormRadioGroup\r\n\t\t\t\t\t\t\t\t\tcontrol={control}\r\n\t\t\t\t\t\t\t\t\tname='model'\r\n\t\t\t\t\t\t\t\t\tlabel='Selecione o modelo de visualização'\r\n\t\t\t\t\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t\t\t\t\t{ value: '0', label: 'Resumido' },\r\n\t\t\t\t\t\t\t\t\t\t{ value: '1', label: 'Detalhado' },\r\n\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\tclassName='text-sm font-normal'\r\n\t\t\t\t\t\t\t\t\tclassNameOptions='flex flex-col gap-4 mt-4 text-sm font-normal'\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t<FormRadioGroup\r\n\t\t\t\t\t\t\t\t\tcontrol={control}\r\n\t\t\t\t\t\t\t\t\tname='format'\r\n\t\t\t\t\t\t\t\t\tlabel='Selecione o formato desejado para exportação'\r\n\t\t\t\t\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t\t\t\t\t{ value: '0', label: 'PDF' },\r\n\t\t\t\t\t\t\t\t\t\t{ value: '1', label: 'XLSX' },\r\n\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\tclassName='text-sm font-normal'\r\n\t\t\t\t\t\t\t\t\tclassNameOptions='flex flex-col gap-4 mt-4 text-sm font-normal'\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<DialogFooter className='sm:justify-end gap-2'>\r\n\t\t\t\t\t\t\t\t<Button type='button' variant='secondary'>\r\n\t\t\t\t\t\t\t\t\tFechar\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t<Button type='button' variant='default' onClick={() => exportXlSX()}>\r\n\t\t\t\t\t\t\t\t\tExportar\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</DialogFooter>\r\n\t\t\t\t\t\t</DialogContent>\r\n\t\t\t\t\t</Dialog>\r\n\t\t\t\t</Form>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\treturn exportData && renderExport();\r\n}\r\n","import { PaginationState } from '@tanstack/react-table';\r\nimport { Badge } from '../../badge';\r\nimport {\r\n\tPagination,\r\n\tPaginationContent,\r\n\tPaginationEllipsis,\r\n\tPaginationItem,\r\n\tPaginationLink,\r\n\tPaginationNext,\r\n\tPaginationPrevious,\r\n} from '../../pagination';\r\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '../../select';\r\nimport { DataTableExport } from './data-table-export';\r\nimport { ExportDataTable } from './types/data-table';\r\n\r\ninterface DataTableFooterProps<TData> {\r\n\thidePagination?: boolean;\r\n\tdisablePagination?: boolean;\r\n\tisLoading?: boolean;\r\n\ttotalRows: number;\r\n\ttotalPages: number;\r\n\tcurrentPage: number;\r\n\tpagination: PaginationState;\r\n\thandlePageSize: (value: number) => void;\r\n\thandlePage: (value: number) => void;\r\n\tpreviousPage: {\r\n\t\taction: () => void;\r\n\t\tdisabled: boolean;\r\n\t};\r\n\tnextPage: {\r\n\t\taction: () => void;\r\n\t\tdisabled: boolean;\r\n\t};\r\n\texportData?: ExportDataTable;\r\n}\r\n\r\nexport function DataTableFooter<TData>({\r\n\tisLoading,\r\n\ttotalRows,\r\n\ttotalPages,\r\n\tcurrentPage,\r\n\thidePagination,\r\n\tdisablePagination,\r\n\tpagination,\r\n\thandlePageSize,\r\n\thandlePage,\r\n\tpreviousPage,\r\n\tnextPage,\r\n\texportData,\r\n}: DataTableFooterProps<TData>) {\r\n\tconst renderPaginationPages = () => {\r\n\t\tconst paginationItems: JSX.Element[] = [];\r\n\r\n\t\tconst createPaginationItem = (pageIndex: number) => (\r\n\t\t\t<PaginationItem key={pageIndex}>\r\n\t\t\t\t<PaginationLink onClick={() => handlePage(pageIndex)} isActive={currentPage === pageIndex}>\r\n\t\t\t\t\t{pageIndex + 1}\r\n\t\t\t\t</PaginationLink>\r\n\t\t\t</PaginationItem>\r\n\t\t);\r\n\r\n\t\t// Add first page\r\n\t\tpaginationItems.push(createPaginationItem(0));\r\n\r\n\t\t// Add ellipsis if needed\r\n\t\tif (currentPage > 2) {\r\n\t\t\tpaginationItems.push(<PaginationEllipsis key='start-ellipsis' />);\r\n\t\t}\r\n\r\n\t\t// Add pages before current page\r\n\t\tfor (let i = Math.max(1, currentPage - 1); i < currentPage; i++) {\r\n\t\t\tpaginationItems.push(createPaginationItem(i));\r\n\t\t}\r\n\r\n\t\t// Add current page\r\n\t\tif (currentPage !== 0 && currentPage !== totalPages - 1) {\r\n\t\t\tpaginationItems.push(createPaginationItem(currentPage));\r\n\t\t}\r\n\r\n\t\t// Add pages after current page\r\n\t\tfor (let i = currentPage + 1; i <= Math.min(totalPages - 2, currentPage + 1); i++) {\r\n\t\t\tpaginationItems.push(createPaginationItem(i));\r\n\t\t}\r\n\r\n\t\t// Add ellipsis if needed\r\n\t\tif (currentPage < totalPages - 3) {\r\n\t\t\tpaginationItems.push(<PaginationEllipsis key='end-ellipsis' />);\r\n\t\t}\r\n\r\n\t\t// Add last page\r\n\t\tif (totalPages > 1) {\r\n\t\t\tpaginationItems.push(createPaginationItem(totalPages - 1));\r\n\t\t}\r\n\r\n\t\treturn paginationItems;\r\n\t};\r\n\r\n\treturn (\r\n\t\t!hidePagination && (\r\n\t\t\t<footer className='flex items-center justify-between h-[64px]'>\r\n\t\t\t\t<div className='flex flex-row items-center gap-6'>\r\n\t\t\t\t\t<div className='flex flex-row items-center gap-2'>\r\n\t\t\t\t\t\tLinhas por página\r\n\t\t\t\t\t\t<Select\r\n\t\t\t\t\t\t\tvalue={pagination.pageSize.toString()}\r\n\t\t\t\t\t\t\tonValueChange={(value) => handlePageSize(Number(value))}\r\n\t\t\t\t\t\t\tdisabled={isLoading || disablePagination}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<SelectTrigger className='w-20'>\r\n\t\t\t\t\t\t\t\t<SelectValue placeholder='' className='text-slate-800 font-medium' />\r\n\t\t\t\t\t\t\t</SelectTrigger>\r\n\t\t\t\t\t\t\t<SelectContent>\r\n\t\t\t\t\t\t\t\t<SelectGroup>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='25'>25</SelectItem>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='50'>50</SelectItem>\r\n\t\t\t\t\t\t\t\t\t<SelectItem value='100'>100</SelectItem>\r\n\t\t\t\t\t\t\t\t</SelectGroup>\r\n\t\t\t\t\t\t\t</SelectContent>\r\n\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<DataTableExport exportData={exportData} totalRows={totalPages} />\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className='flex items-center gap-4'>\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t{!isLoading && (\r\n\t\t\t\t\t\t\t<Badge variant='secondary'>{totalRows === 0 ? 'Nenhum item' : totalRows === 1 ? '1 item' : `${totalRows} itens`}</Badge>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<Pagination>\r\n\t\t\t\t\t\t\t<PaginationContent>\r\n\t\t\t\t\t\t\t\t<PaginationItem>\r\n\t\t\t\t\t\t\t\t\t<PaginationPrevious onClick={() => previousPage.action()} disabled={previousPage.disabled || disablePagination} />\r\n\t\t\t\t\t\t\t\t</PaginationItem>\r\n\t\t\t\t\t\t\t\t{renderPaginationPages()}\r\n\t\t\t\t\t\t\t\t<PaginationItem>\r\n\t\t\t\t\t\t\t\t\t<PaginationNext onClick={() => nextPage.action()} disabled={nextPage.disabled || disablePagination} />\r\n\t\t\t\t\t\t\t\t</PaginationItem>\r\n\t\t\t\t\t\t\t</PaginationContent>\r\n\t\t\t\t\t\t</Pagination>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</footer>\r\n\t\t)\r\n\t);\r\n}\r\n","import { Table, flexRender } from '@tanstack/react-table';\r\nimport { ArrowUpDown, MoveDown, MoveUp } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Checkbox } from '../../checkbox';\r\nimport { TableHead, TableHeader, TableRow } from '../../table';\r\n\r\ninterface DataTableHeaderProps<TData> {\r\n\ttable: Table<TData>;\r\n\tcanActionsRow?: boolean;\r\n\tenableMultiRowSelection?: boolean;\r\n}\r\n\r\nexport function DataTableHeader<TData>({ table, canActionsRow, enableMultiRowSelection }: DataTableHeaderProps<TData>) {\r\n\tconst headerGroups = table.getHeaderGroups();\r\n\treturn (\r\n\t\t<TableHeader>\r\n\t\t\t{headerGroups.map((headerGroup) => (\r\n\t\t\t\t<TableRow key={headerGroup.id} className='bg-background dark:bg-datatable-accent rounded-t-md sticky top-0 z-10'>\r\n\t\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t\t<TableHead className='h-[65px] w-6'>\r\n\t\t\t\t\t\t\t<Checkbox\r\n\t\t\t\t\t\t\t\tchecked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\r\n\t\t\t\t\t\t\t\tonCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{headerGroup.headers.map((header) => (\r\n\t\t\t\t\t\t<TableHead\r\n\t\t\t\t\t\t\tkey={header.id}\r\n\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t'h-[65px] whitespace-nowrap',\r\n\t\t\t\t\t\t\t\theader.column.id === 'id' ? 'sticky left-0 z-20' : '',\r\n\t\t\t\t\t\t\t\theader.column.columnDef.enableSorting ? 'pl-2' : '',\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{header.column.columnDef.enableSorting ? (\r\n\t\t\t\t\t\t\t\t<Button variant='ghost' onClick={() => header.column.toggleSorting(header.column.getIsSorted() === 'asc')}>\r\n\t\t\t\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\r\n\t\t\t\t\t\t\t\t\t{header.column.getIsSorted() === 'asc' ? (\r\n\t\t\t\t\t\t\t\t\t\t<MoveUp className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t) : header.column.getIsSorted() === 'desc' ? (\r\n\t\t\t\t\t\t\t\t\t\t<MoveDown className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<ArrowUpDown className='ml-2 h-4 w-4' />\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\tflexRender(header.column.columnDef.header, header.getContext())\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</TableHead>\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t{canActionsRow && <TableHead />}\r\n\t\t\t\t</TableRow>\r\n\t\t\t))}\r\n\t\t</TableHeader>\r\n\t);\r\n}\r\n","import { ColumnDef, Table, flexRender } from '@tanstack/react-table';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Checkbox } from '../../checkbox';\r\nimport { Skeleton } from '../../skeleton';\r\nimport { TableCell, TableRow } from '../../table';\r\nimport { ActionRow } from './types/data-table';\r\n\r\ninterface DataTableRowsProps<TData> {\r\n\ttable: Table<TData>;\r\n\tcolumns: ColumnDef<TData>[];\r\n\tisLoading?: boolean;\r\n\tactionsRow?: ActionRow[];\r\n\ttextNoRecords?: string;\r\n\tenableMultiRowSelection?: boolean;\r\n}\r\n\r\nexport function DataTableRows<TData>({ table, isLoading, columns, actionsRow, textNoRecords, enableMultiRowSelection }: DataTableRowsProps<TData>) {\r\n\tconst rows = table.getRowModel().rows;\r\n\r\n\tconst renderLoadingRows = () => {\r\n\t\tconst rows: JSX.Element[] = [];\r\n\r\n\t\tfor (let i = 0; i < 10; i++) {\r\n\t\t\trows.push(\r\n\t\t\t\t<TableRow key={`loading-row-${i}`}>\r\n\t\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t\t<TableCell className='py-2'>\r\n\t\t\t\t\t\t\t<Skeleton className='h-10 w-full' />\r\n\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{columns.map((column) => (\r\n\t\t\t\t\t\t<TableCell key={column.id} className='py-2'>\r\n\t\t\t\t\t\t\t<Skeleton className='h-10 w-full' />\r\n\t\t\t\t\t\t</TableCell>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</TableRow>,\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn rows;\r\n\t};\r\n\r\n\tconst renderRows = () => {\r\n\t\treturn rows.map((row) => (\r\n\t\t\t<TableRow key={row.id} data-state={row.getIsSelected() && 'selected'} className='group'>\r\n\t\t\t\t{enableMultiRowSelection && (\r\n\t\t\t\t\t<TableCell className='py-4'>\r\n\t\t\t\t\t\t<Checkbox checked={row.getIsSelected()} onCheckedChange={(value) => row.toggleSelected(!!value)} aria-label='Select row' />\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t)}\r\n\t\t\t\t{row.getVisibleCells().map((cell) => (\r\n\t\t\t\t\t<TableCell key={cell.id} className='py-4'>\r\n\t\t\t\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t))}\r\n\t\t\t\t{actionsRow && (\r\n\t\t\t\t\t<TableCell\r\n\t\t\t\t\t\tclassName='opacity-0 group-hover:opacity-100 hover:opacity-100 relative overflow-visible w-[0px]'\r\n\t\t\t\t\t\tkey={`buttons-${row.id}`}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div className='absolute transition-colors group-hover:bg-datatable-accent overflow-visible right-5 -translate-y-1/2 flex space-x-4'>\r\n\t\t\t\t\t\t\t{actionsRow.map((action, index) => (\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tkey={`action-row-${index}`}\r\n\t\t\t\t\t\t\t\t\tvariant={(action.variant as 'link' | 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost') || 'default'}\r\n\t\t\t\t\t\t\t\t\tclassName={cn('bg-datatable-accent', action.className?.(row.original) || '')}\r\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick?.(row.original)}\r\n\t\t\t\t\t\t\t\t\tdisabled={action.disabled?.(row.original) || false}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{action.icon}\r\n\t\t\t\t\t\t\t\t\t{action.label}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</TableCell>\r\n\t\t\t\t)}\r\n\t\t\t</TableRow>\r\n\t\t));\r\n\t};\r\n\r\n\tconst renderEmptyRows = () => {\r\n\t\tconst colSpan = columns.length + (actionsRow ? 1 : 0);\r\n\t\treturn (\r\n\t\t\t<TableRow>\r\n\t\t\t\t<TableCell colSpan={colSpan} className='text-center h-[53px]'>\r\n\t\t\t\t\t{textNoRecords ? textNoRecords : 'Sem resultados.'}\r\n\t\t\t\t</TableCell>\r\n\t\t\t</TableRow>\r\n\t\t);\r\n\t};\r\n\r\n\treturn isLoading ? renderLoadingRows() : rows.length ? renderRows() : renderEmptyRows();\r\n}\r\n","import {\r\n\tColumnDef,\r\n\tPaginationState,\r\n\tSortingState,\r\n\tgetCoreRowModel,\r\n\tgetFilteredRowModel,\r\n\tgetPaginationRowModel,\r\n\tgetSortedRowModel,\r\n\tuseReactTable,\r\n} from '@tanstack/react-table';\r\nimport { Filter, Search } from 'lucide-react';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Button } from '../../button';\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from '../../sheet';\r\nimport { Table, TableBody } from '../../table';\r\nimport { DataTableFooter } from './data-table-footer';\r\nimport { DataTableHeader } from './data-table-header';\r\nimport { DataTableRows } from './data-table-rows';\r\nimport { ActionRow, ActionTable, ExportDataTable, FiltersActions } from './types/data-table';\r\n\r\nexport interface DataTableProps<TData> {\r\n\tcolumns: ColumnDef<TData>[];\r\n\tdata: TData[];\r\n\tactions?: ActionTable[];\r\n\tactionsRow?: ActionRow[];\r\n\tcustomFilters?: JSX.Element;\r\n\tclassName?: string;\r\n\ttitle?: string;\r\n\trowsPage?: number;\r\n\tsetSearch?: (value?: string) => void;\r\n\tsetSelectRows?: (ids: string[]) => void;\r\n\tpageChanged?: (pageNumber: number) => void;\r\n\tpageSizeChanged?: (pageSize: number) => void;\r\n\ttotalRows?: number;\r\n\tfiltersActions?: FiltersActions;\r\n\texportData?: ExportDataTable;\r\n\ttextNoRecords?: string;\r\n\theightRemainingScroll?: number;\r\n\thideFilterField?: boolean;\r\n\tmultiRowSelection?: {\r\n\t\tcallback: (selectedRows: any[]) => void;\r\n\t};\r\n\thidePagination?: boolean;\r\n\tdisablePagination?: boolean;\r\n\tisLoading?: boolean;\r\n\tfixedHeight?: number;\r\n}\r\n\r\nexport interface OriginalDataTableData {\r\n\tid: string;\r\n\tchecked?: boolean;\r\n}\r\n\r\nexport function DataTable<TData>({\r\n\tcolumns,\r\n\tdata,\r\n\tclassName,\r\n\ttitle,\r\n\trowsPage,\r\n\tactions,\r\n\tactionsRow,\r\n\tcustomFilters,\r\n\tsetSearch,\r\n\tpageChanged,\r\n\tpageSizeChanged,\r\n\ttotalRows,\r\n\tfiltersActions,\r\n\texportData,\r\n\ttextNoRecords,\r\n\theightRemainingScroll,\r\n\thideFilterField,\r\n\tmultiRowSelection,\r\n\thidePagination,\r\n\tdisablePagination,\r\n\tisLoading,\r\n\tfixedHeight,\r\n}: DataTableProps<TData>) {\r\n\tconst [sorting, setSorting] = useState<SortingState>([]);\r\n\tconst [pagination, setPagination] = useState<PaginationState>({\r\n\t\tpageIndex: 0,\r\n\t\tpageSize: rowsPage ?? 25,\r\n\t});\r\n\tconst enableMultiRowSelection = multiRowSelection !== undefined;\r\n\tconst [rowSelection, setRowSelection] = useState(\r\n\t\tenableMultiRowSelection\r\n\t\t\t? Object.fromEntries(\r\n\t\t\t\t\t(Array.isArray(data) ? data : []).map((row: any, idx: number) => {\r\n\t\t\t\t\t\treturn [idx, row.checked];\r\n\t\t\t\t\t}),\r\n\t\t\t )\r\n\t\t\t: {},\r\n\t);\r\n\tconst debounceTimeout = useRef<NodeJS.Timeout | null>(null);\r\n\tconst tableContainerRef = useRef<HTMLDivElement>(null);\r\n\tconst [tableHeight, setTableHeight] = useState('auto');\r\n\ttotalRows = totalRows ?? data.length;\r\n\r\n\tconst table = useReactTable({\r\n\t\tmanualPagination: true,\r\n\t\tdata: data,\r\n\t\tcolumns,\r\n\t\tgetPaginationRowModel: getPaginationRowModel(),\r\n\t\tonPaginationChange: setPagination,\r\n\t\tgetCoreRowModel: getCoreRowModel(),\r\n\t\tonSortingChange: setSorting,\r\n\t\tgetSortedRowModel: getSortedRowModel(),\r\n\t\tgetFilteredRowModel: getFilteredRowModel(),\r\n\t\tonRowSelectionChange: (rowSelection) => {\r\n\t\t\tsetRowSelection(rowSelection);\r\n\t\t},\r\n\t\tenableMultiRowSelection: enableMultiRowSelection,\r\n\t\tstate: { pagination, rowSelection, sorting },\r\n\t\tpageCount: Math.ceil(totalRows / pagination.pageSize),\r\n\t});\r\n\r\n\tconst totalPages = table.getPageCount();\r\n\tconst currentPage = table.getState().pagination.pageIndex;\r\n\tconst selectedRows = table.getSelectedRowModel().rows;\r\n\tconst selectedIds = selectedRows.map((row) => (row.original as OriginalDataTableData).id);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (data.length === 0 && pagination.pageIndex > 0) {\r\n\t\t\tsetPagination({ ...pagination, pageIndex: 0 });\r\n\t\t}\r\n\t}, [data]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleResize();\r\n\r\n\t\twindow.addEventListener('resize', handleResize);\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('resize', handleResize);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (pageChanged) pageChanged(pagination.pageIndex + 1);\r\n\t}, [pagination]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst selectedRowsChecked = selectedRows.map((row) => row.original);\r\n\t\tif (multiRowSelection) {\r\n\t\t\tmultiRowSelection.callback(selectedRowsChecked);\r\n\t\t}\r\n\t}, [rowSelection]);\r\n\r\n\tconst handleResize = () => {\r\n\t\tif (tableContainerRef.current) {\r\n\t\t\tconst newHeight = window.innerHeight - tableContainerRef.current.getBoundingClientRect().top - (hidePagination ? 30 : 74);\r\n\r\n\t\t\tsetTableHeight(`${newHeight - (heightRemainingScroll ?? 0)}px`);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleSearchChange = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n\t\tconst value = event.currentTarget.value;\r\n\r\n\t\tif (debounceTimeout.current) {\r\n\t\t\tclearTimeout(debounceTimeout.current);\r\n\t\t}\r\n\r\n\t\tdebounceTimeout.current = setTimeout(() => {\r\n\t\t\tsetSearch?.(value);\r\n\t\t\thandlePage(0);\r\n\t\t}, 300);\r\n\t};\r\n\r\n\tconst handlePageSize = (value: number) => {\r\n\t\tpageSizeChanged?.(value);\r\n\t\tsetPagination({ pageIndex: 0, pageSize: value });\r\n\t};\r\n\r\n\tconst handlePage = (index: number) => {\r\n\t\tif (index !== currentPage) {\r\n\t\t\tsetPagination({ ...pagination, pageIndex: index });\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className='flex flex-col flex-1'>\r\n\t\t\t{(!hideFilterField || filtersActions || customFilters || actions) && (\r\n\t\t\t\t<div className='flex items-end justify-between mb-4 space-x-6'>\r\n\t\t\t\t\t<div className='flex items-center gap-x-4'>\r\n\t\t\t\t\t\t{!hideFilterField && (\r\n\t\t\t\t\t\t\t<div className='flex bg-background items-center border border-slate-300 rounded-sm w-[350px] overflow-hidden focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 group'>\r\n\t\t\t\t\t\t\t\t<div className='pl-3.5 transform transition-transform duration-300 group-hover:-translate-x-1'>\r\n\t\t\t\t\t\t\t\t\t<Search size={18} className='w-5 h-5 stroke-zinc-500 dark:stroke-default' />\r\n\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\tplaceholder='Buscar'\r\n\t\t\t\t\t\t\t\t\tonKeyUp={(event) => {\r\n\t\t\t\t\t\t\t\t\t\thandleSearchChange(event);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tclassName='w-full bg-background text-default border-none focus:ring-0 focus:outline-none px-3 py-2 transform transition-transform duration-300 group-hover:-translate-x-1 '\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{filtersActions && (\r\n\t\t\t\t\t\t\t<Sheet open={filtersActions.filterOpen} onOpenChange={filtersActions.setFilterOpen}>\r\n\t\t\t\t\t\t\t\t<SheetTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t<Button variant='secondary' type='button'>\r\n\t\t\t\t\t\t\t\t\t\t<Filter size={20} className='h-4 w-4' /> Filtros\r\n\t\t\t\t\t\t\t\t\t\t{filtersActions.countFilters > 0 && (\r\n\t\t\t\t\t\t\t\t\t\t\t<div className='bg-background-primary text-white rounded-full h-5 w-5 flex items-center justify-center text-sm placeholder:text-muted-foreground'>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{filtersActions.countFilters}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</SheetTrigger>\r\n\t\t\t\t\t\t\t\t<SheetContent>\r\n\t\t\t\t\t\t\t\t\t<SheetHeader>\r\n\t\t\t\t\t\t\t\t\t\t<SheetTitle>Filtros</SheetTitle>\r\n\t\t\t\t\t\t\t\t\t\t<SheetDescription />\r\n\t\t\t\t\t\t\t\t\t</SheetHeader>\r\n\t\t\t\t\t\t\t\t\t<div className='flex flex-col py-6'>{filtersActions.fields}</div>\r\n\t\t\t\t\t\t\t\t</SheetContent>\r\n\t\t\t\t\t\t\t</Sheet>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{customFilters}\r\n\t\t\t\t\t<div className='flex space-x-4 content-end'>\r\n\t\t\t\t\t\t{actions?.map((action, index) => (\r\n\t\t\t\t\t\t\t<div key={`action-table-${index}`}>\r\n\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\tonClick={() => action.onClick?.(selectedIds, selectedRows)}\r\n\t\t\t\t\t\t\t\t\tclassName={cn(action.className, action.hideUnselectedRows && selectedRows.length === 0 ? 'hidden' : '')}\r\n\t\t\t\t\t\t\t\t\tvariant={(action.variant as 'link' | 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost') || 'default'}\r\n\t\t\t\t\t\t\t\t\tdisabled={action.disabled}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div className='[&_svg]:size-5'>{action.icon}</div>\r\n\t\t\t\t\t\t\t\t\t{action.label}\r\n\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\r\n\t\t\t<div className={`flex-1 flex flex-col rounded-md border ${className}`}>\r\n\t\t\t\t<div className='flex items-center justify-between'>{title && <div className='text-h4 p-4'>{title}</div>}</div>\r\n\t\t\t\t<div\r\n\t\t\t\t\tid='data-table'\r\n\t\t\t\t\tref={tableContainerRef}\r\n\t\t\t\t\tstyle={fixedHeight ? { height: fixedHeight } : { height: tableHeight }}\r\n\t\t\t\t\tclassName='flex flex-col justify-between rounded-md overflow-x-auto overflow-y-auto'\r\n\t\t\t\t>\r\n\t\t\t\t\t<Table>\r\n\t\t\t\t\t\t<DataTableHeader\r\n\t\t\t\t\t\t\ttable={table}\r\n\t\t\t\t\t\t\tcanActionsRow={actionsRow && actionsRow.length > 0}\r\n\t\t\t\t\t\t\tenableMultiRowSelection={enableMultiRowSelection}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<TableBody className='bg-background'>\r\n\t\t\t\t\t\t\t<DataTableRows\r\n\t\t\t\t\t\t\t\ttable={table}\r\n\t\t\t\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\t\t\t\tisLoading={isLoading}\r\n\t\t\t\t\t\t\t\tactionsRow={actionsRow}\r\n\t\t\t\t\t\t\t\ttextNoRecords={textNoRecords}\r\n\t\t\t\t\t\t\t\tenableMultiRowSelection={enableMultiRowSelection}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</TableBody>\r\n\t\t\t\t\t</Table>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<DataTableFooter\r\n\t\t\t\thidePagination={hidePagination}\r\n\t\t\t\tdisablePagination={disablePagination}\r\n\t\t\t\tisLoading={isLoading}\r\n\t\t\t\ttotalRows={totalRows}\r\n\t\t\t\ttotalPages={totalPages}\r\n\t\t\t\tcurrentPage={currentPage}\r\n\t\t\t\tpagination={pagination}\r\n\t\t\t\thandlePageSize={handlePageSize}\r\n\t\t\t\thandlePage={handlePage}\r\n\t\t\t\tpreviousPage={{ action: () => table.previousPage(), disabled: !table.getCanPreviousPage() }}\r\n\t\t\t\tnextPage={{ action: () => table.nextPage(), disabled: !table.getCanNextPage() }}\r\n\t\t\t\texportData={exportData}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n}\r\n","import * as React from 'react';\r\n\r\ninterface SidebarItemTwoLinesProps {\r\n\titem: {\r\n\t\ticonLeft: React.ReactNode;\r\n\t\ttitle: string;\r\n\t\tsubTitle: string;\r\n\t\ticonRight?: React.ReactNode | null;\r\n\t};\r\n}\r\n\r\nconst SidebarItemTwoLines = ({ item }: SidebarItemTwoLinesProps) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<div className='[&_svg]:size-4 text-white'>{item.iconLeft}</div>\r\n\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t<span className='truncate font-semibold'>{item.title}</span>\r\n\t\t\t\t<span className='truncate text-xs text-foreground'>{item.subTitle}</span>\r\n\t\t\t</div>\r\n\t\t\t{item.iconRight}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default SidebarItemTwoLines;\r\n","import { Check, ChevronsUpDown } from 'lucide-react';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../sidebar';\r\nimport SidebarItemTwoLines from './sidebar-item-two-lines';\r\nimport { Module } from './types/sidebar';\r\n\r\ninterface ModuleSwitcherProps {\r\n\tmodules: Module[];\r\n\tactiveModule: Module | undefined;\r\n\tonModuleChange: (module: Module) => void;\r\n}\r\n\r\nconst ModuleSwitcher = ({ modules, activeModule, onModuleChange }: ModuleSwitcherProps) => {\r\n\tconst { isMobile } = useSidebar();\r\n\r\n\treturn modules.length === 1 ? (\r\n\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t<SidebarItemTwoLines\r\n\t\t\t\titem={{\r\n\t\t\t\t\ticonLeft: <div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{activeModule?.icon}</div>,\r\n\t\t\t\t\ttitle: activeModule?.title ?? '',\r\n\t\t\t\t\tsubTitle: activeModule?.subTitle ?? '',\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t</SidebarMenuButton>\r\n\t) : (\r\n\t\t<SidebarMenu>\r\n\t\t\t<SidebarMenuItem>\r\n\t\t\t\t<DropdownMenu>\r\n\t\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\ticonLeft: (\r\n\t\t\t\t\t\t\t\t\t\t<div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{activeModule?.icon}</div>\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\ttitle: activeModule?.title ?? '',\r\n\t\t\t\t\t\t\t\t\tsubTitle: activeModule?.subTitle ?? '',\r\n\t\t\t\t\t\t\t\t\ticonRight: <ChevronsUpDown size={16} />,\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t\t<DropdownMenuContent className='w-[250px] rounded-lg' align='start' side={isMobile ? 'bottom' : 'right'} sideOffset={4}>\r\n\t\t\t\t\t\t{modules.map((module) => (\r\n\t\t\t\t\t\t\t<DropdownMenuItem key={`module-switcher-${module.value}`} onClick={() => onModuleChange?.(module)} className='gap-2 p-2'>\r\n\t\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\t\ticonLeft: <div className='flex p-[7.6px] items-center rounded-md bg-background-primary'>{module.icon}</div>,\r\n\t\t\t\t\t\t\t\t\t\ttitle: module.title,\r\n\t\t\t\t\t\t\t\t\t\tsubTitle: module.subTitle,\r\n\t\t\t\t\t\t\t\t\t\ticonRight: activeModule?.value === module.value ? <Check size={16} /> : null,\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</DropdownMenuContent>\r\n\t\t\t\t</DropdownMenu>\r\n\t\t\t</SidebarMenuItem>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default ModuleSwitcher;\r\n","import { cn } from '../../../../lib/utils';\r\nimport { SidebarMenuButton } from '../../sidebar';\r\nimport { Module, SidebarPage } from './types/sidebar';\r\n\r\ninterface SidebarItemProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick?: (module: Module | null, path: string) => void;\r\n}\r\n\r\nconst SidebarButton = ({ item, selectedRoute, onClick }: SidebarItemProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuButton\r\n\t\t\tasChild\r\n\t\t\tclassName={cn(\r\n\t\t\t\t'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground hover:bg-sidebar-accent px-2 py-5 gap-3 cursor-pointer',\r\n\t\t\t\tselectedRoute?.includes(item.path) ? 'bg-sidebar-accent' : '',\r\n\t\t\t)}\r\n\t\t\ttooltip={item.title}\r\n\t\t\tonClick={() => onClick?.(item.module ?? null, item.path)}\r\n\t\t>\r\n\t\t\t<div>\r\n\t\t\t\t<div className='[&_svg]:size-4 text-sidebar-foreground'>{item.icon}</div>\r\n\t\t\t\t<span>{item.title}</span>\r\n\t\t\t</div>\r\n\t\t</SidebarMenuButton>\r\n\t);\r\n};\r\n\r\nexport default SidebarButton;\r\n","import { SidebarMenuItem } from '../../sidebar';\r\nimport SidebarButton from './sidebar-button';\r\nimport { Module, SidebarPage } from './types/sidebar';\r\n\r\ninterface SidebarItemProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick?: (module: Module | null, path: string) => void;\r\n}\r\n\r\nconst SidebarItem = ({ item, selectedRoute, onClick }: SidebarItemProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuItem>\r\n\t\t\t<SidebarButton item={item} selectedRoute={selectedRoute} onClick={onClick} />\r\n\t\t</SidebarMenuItem>\r\n\t);\r\n};\r\n\r\nexport default SidebarItem;\r\n","import { useLocation, useNavigate } from 'react-router-dom';\r\nimport { SidebarGroup, SidebarGroupContent, SidebarMenu } from '../../sidebar';\r\nimport SidebarItem from './sidebar-item';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavFooterProps {\r\n\tpages: SidebarPage[];\r\n}\r\n\r\nconst NavFooter = ({pages}: NavFooterProps) => {\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst selectedRoutePath = location.pathname;\r\n\r\n\treturn (\r\n\t\t<SidebarGroup className='p-0'>\r\n\t\t\t<SidebarGroupContent>\r\n\t\t\t\t<SidebarMenu>\r\n\t\t\t\t\t{pages.map((item) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<SidebarItem\r\n\t\t\t\t\t\t\t\tkey={`sidebar-menu-main-${item.path}`}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(item.path)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</SidebarMenu>\r\n\t\t\t</SidebarGroupContent>\r\n\t\t</SidebarGroup>\r\n\t);\r\n};\r\n\r\nexport default NavFooter;\r\n","import { ChevronRight } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../collapsible';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, useSidebar } from '../../sidebar';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavSubmenuCollapsibleProps {\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick: (path: string) => void;\r\n}\r\n\r\nconst NavSubmenuCollapsible = ({ item, selectedRoute, onClick }: NavSubmenuCollapsibleProps) => {\r\n\tconst { open, toggleSidebar } = useSidebar();\r\n\r\n\tconst isOpen = (): boolean => {\r\n\t\treturn selectedRoute?.includes(item.path) ?? false;\r\n\t};\r\n\r\n\tconst handleToggleSidebar = () => {\r\n\t\tif (!open) toggleSidebar();\r\n\t};\r\n\r\n\treturn (\r\n\t\t<SidebarMenu>\r\n\t\t\t<Collapsible key={item.title} asChild defaultOpen={isOpen()}>\r\n\t\t\t\t<SidebarMenuItem>\r\n\t\t\t\t\t<CollapsibleTrigger asChild className='group/collapsible'>\r\n\t\t\t\t\t\t<SidebarMenuButton tooltip={item.title} className='px-2 py-5 gap-3' onClick={() => handleToggleSidebar()}>\r\n\t\t\t\t\t\t\t{item.icon}\r\n\t\t\t\t\t\t\t<span>{item.title}</span>\r\n\t\t\t\t\t\t\t<ChevronRight className='ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90' />\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</CollapsibleTrigger>\r\n\t\t\t\t\t<CollapsibleContent>\r\n\t\t\t\t\t\t<SidebarMenuSub>\r\n\t\t\t\t\t\t\t{item.subMenuItems\r\n\t\t\t\t\t\t\t\t?.map((subItem) => (\r\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={subItem.label}>\r\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton asChild onClick={() => onClick(subItem.path)} aria-disabled={subItem.disabled}>\r\n\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'cursor-pointer px-2 py-1 items-center self-stretch',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectedRoute === subItem.path ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{subItem.label}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\r\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t</SidebarMenuSub>\r\n\t\t\t\t\t</CollapsibleContent>\r\n\t\t\t\t</SidebarMenuItem>\r\n\t\t\t</Collapsible>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default NavSubmenuCollapsible;\r\n","import { ChevronRight } from 'lucide-react';\r\nimport { cn } from '../../../../lib/utils';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenuButton, SidebarMenuItem } from '../../sidebar';\r\nimport { SidebarPage } from './types/sidebar';\r\n\r\ninterface NavSubmenuDropdownProps {\r\n\tcols?: number;\r\n\titem: SidebarPage;\r\n\tselectedRoute: string | null;\r\n\tonClick: (path: string) => void;\r\n}\r\n\r\nconst NavSubmenuDropdown = ({ cols, item, selectedRoute, onClick }: NavSubmenuDropdownProps) => {\r\n\treturn (\r\n\t\t<SidebarMenuItem>\r\n\t\t\t<DropdownMenu>\r\n\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t<SidebarMenuButton\r\n\t\t\t\t\t\tasChild\r\n\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t'data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground hover:bg-sidebar-accent px-2 py-5 gap-3 cursor-pointer',\r\n\t\t\t\t\t\t\tselectedRoute?.includes(item.path) ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\ttooltip={item.title}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t{item.icon}\r\n\t\t\t\t\t\t\t<span>{item.title}</span>\r\n\t\t\t\t\t\t\t{<ChevronRight className='ml-auto' />}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t<DropdownMenuContent className={`grid grid-cols-${cols ?? '1'} gap-4 p-4`} align='start' side='right' sideOffset={4}>\r\n\t\t\t\t\t{item.subMenuItems\r\n\t\t\t\t\t\t?.map((subItem, index) => (\r\n\t\t\t\t\t\t\t<DropdownMenuItem\r\n\t\t\t\t\t\t\t\tkey={`${index}`}\r\n\t\t\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t\t\t'flex flex-col items-start text-left max-w-[220px] gap-1 cursor-pointer',\r\n\t\t\t\t\t\t\t\t\tselectedRoute === subItem.path ? 'bg-sidebar-accent' : '',\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\tonClick={() => onClick(subItem.path)}\r\n\t\t\t\t\t\t\t\tdisabled={subItem.disabled}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<div className='text-sm font-semibold'>{subItem.label}</div>\r\n\t\t\t\t\t\t\t\t<div className='text-sm text-muted-foreground'>{subItem.description}</div>\r\n\t\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t</DropdownMenuContent>\r\n\t\t\t</DropdownMenu>\r\n\t\t</SidebarMenuItem>\r\n\t);\r\n};\r\n\r\nexport default NavSubmenuDropdown;\r\n","export const SidebarSubmenuType = {\r\n\tCOLLAPSIBLE: 'collapsible',\r\n\t// Deprecated: Use COLLAPSIBLE instead\r\n\tDROPDOWN: 'dropdown',\r\n} as const;\r\nexport type SidebarSubmenuType = (typeof SidebarSubmenuType)[keyof typeof SidebarSubmenuType];\r\n\r\nexport interface Module {\r\n\tvalue: string;\r\n\tpath: string;\r\n\ttitle: string;\r\n\ticon: React.ReactNode;\r\n\tsubTitle: string;\r\n}\r\n\r\nexport interface SidebarPage {\r\n\tmodule: Module;\r\n\tpath: string;\r\n\ticon?: React.ReactNode;\r\n\ttitle: string;\r\n\thideSidebar: boolean;\r\n\tdisplayOnlyresellerIsAdm?: boolean;\r\n\tsubMenuType?: SidebarSubmenuType;\r\n\tsubMenuItems?: {\r\n\t\tlabel: string;\r\n\t\tdescription?: string;\r\n\t\tpath: string;\r\n\t\tdisplayOnlyresellerIsAdm?: boolean;\r\n\t\tdisabled?: boolean;\r\n\t}[];\r\n}\r\n\r\nexport type SidebarPages = Record<string, Record<string, SidebarPage>>;\r\n","import { useIsMobile } from '@/hooks/use-mobile';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { SidebarGroup, SidebarGroupContent, SidebarMenu } from '../../sidebar';\r\nimport NavSubmenuCollapsible from './nav-submenu-collapsible';\r\nimport NavSubmenuDropdown from './nav-submenu-dropdown';\r\nimport SidebarItem from './sidebar-item';\r\nimport { SidebarPage, SidebarSubmenuType } from './types/sidebar';\r\n\r\ninterface NavMainProps {\r\n\tpages: SidebarPage[];\r\n}\r\n\r\nconst NavMain = ({pages}: NavMainProps) => {\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst isMobile = useIsMobile();\r\n\tconst selectedRoutePath = location.pathname;\r\n\r\n\treturn (\r\n\t\t<SidebarGroup>\r\n\t\t\t<SidebarGroupContent>\r\n\t\t\t\t<SidebarMenu>\r\n\t\t\t\t\t{pages.map((item) => {\r\n\t\t\t\t\t\tif (item.subMenuType) {\r\n\t\t\t\t\t\t\tif (item.subMenuType === SidebarSubmenuType.COLLAPSIBLE || isMobile) {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<NavSubmenuCollapsible\r\n\t\t\t\t\t\t\t\t\t\tkey={`sidebar-submenu-collapsible-${item.path}`}\r\n\t\t\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(path) => navigate(path)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Deprecated: Use COLLAPSIBLE instead\r\n\t\t\t\t\t\t\tif (item.subMenuType === SidebarSubmenuType.DROPDOWN) {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t<NavSubmenuDropdown\r\n\t\t\t\t\t\t\t\t\t\tkey={`sidebar-submenu-dropdown-${item.path}`}\r\n\t\t\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\t\t\tonClick={(path) => navigate(path)}\r\n\t\t\t\t\t\t\t\t\t\tcols={3}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<SidebarItem\r\n\t\t\t\t\t\t\t\tkey={`sidebar-menu-main-${item.path}`}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedRoute={selectedRoutePath}\r\n\t\t\t\t\t\t\t\tonClick={() => navigate(item.path)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</SidebarMenu>\r\n\t\t\t</SidebarGroupContent>\r\n\t\t</SidebarGroup>\r\n\t);\r\n};\r\n\r\nexport default NavMain;\r\n","import { LoaderCircle, LogOut } from 'lucide-react';\r\nimport { useState } from 'react';\r\nimport { Avatar, AvatarFallback, AvatarImage } from '../../avatar';\r\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger } from '../../dropdown-menu';\r\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../sidebar';\r\nimport SidebarItemTwoLines from './sidebar-item-two-lines';\r\n\r\ninterface NavUserProps {\r\n userName: string;\r\n userEmail: string;\r\n userInitials: string;\r\n callbackLogout: () => void;\r\n}\r\n\r\nconst NavUser = ({userName, userEmail, userInitials, callbackLogout}: NavUserProps) => {\r\n\tconst [isLoggingOut, setIsLoggingOut] = useState(false);\r\n\tconst { isMobile } = useSidebar();\r\n\r\n\tconst handleLogout = () => {\r\n\t\tsetIsLoggingOut(true);\r\n\t\tsetTimeout(() => {\r\n\t\t\tcallbackLogout();\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<SidebarMenu>\r\n\t\t\t<SidebarMenuItem>\r\n\t\t\t\t<DropdownMenu>\r\n\t\t\t\t\t<DropdownMenuTrigger asChild>\r\n\t\t\t\t\t\t<SidebarMenuButton size='lg' className='data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground'>\r\n\t\t\t\t\t\t\t<SidebarItemTwoLines\r\n\t\t\t\t\t\t\t\titem={{\r\n\t\t\t\t\t\t\t\t\ticonLeft: (\r\n\t\t\t\t\t\t\t\t\t\t<Avatar className='h-[31px] w-[31px] rounded-md'>\r\n\t\t\t\t\t\t\t\t\t\t\t<AvatarImage src={userInitials} alt={userName} />\r\n\t\t\t\t\t\t\t\t\t\t\t<AvatarFallback className='rounded-md bg-background-primary text-white'>{userInitials}</AvatarFallback>\r\n\t\t\t\t\t\t\t\t\t\t</Avatar>\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\ttitle: isLoggingOut ? 'Saindo...' : userName,\r\n\t\t\t\t\t\t\t\t\tsubTitle: isLoggingOut ? '' : userEmail,\r\n\t\t\t\t\t\t\t\t\ticonRight: isLoggingOut ? (\r\n\t\t\t\t\t\t\t\t\t\t<LoaderCircle size={16} className='text-sidebar-foreground animate-spin mr-2' />\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t<LogOut size={16} className='text-sidebar-foreground' />\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</SidebarMenuButton>\r\n\t\t\t\t\t</DropdownMenuTrigger>\r\n\t\t\t\t\t<DropdownMenuContent className='w-[250px] rounded-lg' side={isMobile ? 'bottom' : 'right'} align='end' sideOffset={4}>\r\n\t\t\t\t\t\t<DropdownMenuLabel className='p-0 font-normal'>\r\n\t\t\t\t\t\t\t<div className='flex items-center gap-2 px-1 py-1.5 text-left text-sm'>\r\n\t\t\t\t\t\t\t\t<Avatar className='h-8 w-8 rounded-lg'>\r\n\t\t\t\t\t\t\t\t\t<AvatarImage src={userInitials} alt={userName} />\r\n\t\t\t\t\t\t\t\t\t<AvatarFallback className='rounded-lg bg-background-primary text-white'>{userInitials}</AvatarFallback>\r\n\t\t\t\t\t\t\t\t</Avatar>\r\n\t\t\t\t\t\t\t\t<div className='grid flex-1 text-left text-sm leading-tight'>\r\n\t\t\t\t\t\t\t\t\t<span className='truncate font-semibold'>{userName}</span>\r\n\t\t\t\t\t\t\t\t\t<span className='truncate text-xs'>{userEmail}</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</DropdownMenuLabel>\r\n\t\t\t\t\t\t<DropdownMenuItem className='p-0 font-normal cursor-pointer' onClick={() => handleLogout()}>\r\n\t\t\t\t\t\t\t<div className='flex items-center gap-2 px-1 py-1.5 text-left text-sm'>\r\n\t\t\t\t\t\t\t\t<div className='flex w-8 h-8 p-2 items-center rounded-md'>{<LogOut size={16} />}</div>\r\n\t\t\t\t\t\t\t\tLog out\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</DropdownMenuItem>\r\n\t\t\t\t\t</DropdownMenuContent>\r\n\t\t\t\t</DropdownMenu>\r\n\t\t\t</SidebarMenuItem>\r\n\t\t</SidebarMenu>\r\n\t);\r\n};\r\n\r\nexport default NavUser;\r\n","import { ReactNode, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport LoadingBar, { LoadingBarRef } from 'react-top-loading-bar';\r\nimport { getTailwindColorShades, TailwindColorName } from '../../../lib/help/theme';\r\nimport { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from '../breadcrumb';\r\nimport { SidebarTrigger } from '../sidebar';\r\nimport { Module, SidebarPage } from './sidebar/types/sidebar';\r\nimport { DEFAULT_THEME_DATA, useTheme } from './theme-provider';\r\n\r\nconst Header = ({\r\n\tsplittedPath,\r\n\tmodules,\r\n\tpages,\r\n\tisLoading,\r\n\tcombobox,\r\n}: { splittedPath: string[]; modules: Module[]; pages: SidebarPage[]; isLoading: boolean; combobox: ReactNode }) => {\r\n\tconst { portalDefinitions } = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst refProgressLoading = useRef<LoadingBarRef>(null);\r\n\tconst lastPage = splittedPath[splittedPath.length - 1];\r\n\r\n\tuseEffect(() => {\r\n\t\tisLoading ? refProgressLoading.current?.start() : refProgressLoading.current?.complete();\r\n\t}, [isLoading]);\r\n\r\n\tconst setRouter = (path: string) => {\r\n\t\tnavigate(path);\r\n\t};\r\n\r\n\tconst getPath = (index: number) => {\r\n\t\tlet path = '';\r\n\r\n\t\tfor (let i = 0; i <= index; i++) {\r\n\t\t\tpath += `/${splittedPath[i]}`;\r\n\t\t}\r\n\r\n\t\treturn path;\r\n\t};\r\n\r\n\tconst getLinkSidebar = (index: number) => {\r\n\t\treturn pages.find((item) => item.path === getPath(index));\r\n\t};\r\n\r\n\tconst getSubMenuItem = (index: number) => {\r\n\t\treturn pages.flatMap((item) => item.subMenuItems || []).find((sub) => sub.path === getPath(index));\r\n\t};\r\n\r\n\tconst getModule = (page: string) => {\r\n\t\tconst module = modules.find((mod) => mod.value === page);\r\n\t\tif (!module) {\r\n\t\t\treturn page;\r\n\t\t}\r\n\r\n\t\treturn module?.title;\r\n\t};\r\n\r\n\tconst getTitle = (index: number) => {\r\n\t\tconst linkSidebar = getLinkSidebar(index);\r\n\t\tconst subMenuItem = getSubMenuItem(index);\r\n\r\n\t\tif (subMenuItem) {\r\n\t\t\treturn subMenuItem.label;\r\n\t\t}\r\n\r\n\t\treturn linkSidebar?.title;\r\n\t};\r\n\r\n\tconst renderBreadcrumbPage = (index: number) => {\r\n\t\treturn <BreadcrumbPage>{getTitle(index)}</BreadcrumbPage>;\r\n\t};\r\n\r\n\tconst renderBreadcrumbLink = (page: string, index: number) => {\r\n\t\tconst linkSidebar = getLinkSidebar(index);\r\n\r\n\t\treturn linkSidebar?.subMenuType ? (\r\n\t\t\trenderBreadcrumbPage(index)\r\n\t\t) : (\r\n\t\t\t<BreadcrumbLink onClick={() => setRouter(getPath(index))} className='cursor-pointer'>\r\n\t\t\t\t{index === 0 ? getModule(page) : getTitle(index)}\r\n\t\t\t</BreadcrumbLink>\r\n\t\t);\r\n\t};\r\n\r\n\tconst renderBreadcrumbItens = () => {\r\n\t\tconst breadcrumbItems: JSX.Element[] = [];\r\n\r\n\t\tsplittedPath.map((page, index) => {\r\n\t\t\tbreadcrumbItems.push(\r\n\t\t\t\t<BreadcrumbItem key={`breadcrumb-item-${index}`}>\r\n\t\t\t\t\t{page === lastPage ? renderBreadcrumbPage(index) : renderBreadcrumbLink(page, index)}\r\n\t\t\t\t</BreadcrumbItem>,\r\n\t\t\t);\r\n\t\t\tif (page !== lastPage) {\r\n\t\t\t\tbreadcrumbItems.push(<BreadcrumbSeparator key={`breadcrumb-separator-${index}`} className='mt-[1px]' />);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn breadcrumbItems;\r\n\t};\r\n\r\n\tconst getColorLoadingBar = () => {\r\n\t\tconst colorShades = getTailwindColorShades();\r\n\t\tconst tailwindColor = portalDefinitions?.mvnoPrimaryColor || DEFAULT_THEME_DATA.mvnoPrimaryColor;\r\n\t\tconst isValidColor = (color: string): color is TailwindColorName => color in colorShades;\r\n\t\tconst colorPallete = isValidColor(tailwindColor) ? colorShades[tailwindColor] : colorShades.violet;\r\n\t\treturn colorPallete[900];\r\n\t};\r\n\r\n\treturn (\r\n\t\t<header className='flex flex-col justify-between items-center w-full'>\r\n\t\t\t<div className='flex justify-between items-center py-3 px-5 w-full'>\r\n\t\t\t\t<div className='flex items-center gap-x-2 h-[40px]'>\r\n\t\t\t\t\t<SidebarTrigger className='p-5' />\r\n\t\t\t\t\t<div className='p-2'>\r\n\t\t\t\t\t\t<Breadcrumb>\r\n\t\t\t\t\t\t\t<BreadcrumbList>{renderBreadcrumbItens()}</BreadcrumbList>\r\n\t\t\t\t\t\t</Breadcrumb>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className='flex items-center'>{combobox}</div>\r\n\t\t\t</div>\r\n\t\t\t{<LoadingBar ref={refProgressLoading} color={getColorLoadingBar()} height={7} />}\r\n\t\t</header>\r\n\t);\r\n};\r\n\r\nexport default Header;\r\n","import { Copy } from 'lucide-react';\r\nimport React from 'react';\r\nimport { cn } from '../../../lib/utils';\r\nimport { Button } from '../button';\r\nimport { Skeleton } from '../skeleton';\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../tooltip';\r\nimport { toast } from '../use-toast';\r\n\r\ninterface LabelWithTitleProps {\r\n\ttitle: string;\r\n\tvalue: string;\r\n\tvalue2?: string;\r\n\trequired?: boolean;\r\n\tshowCopyIcon?: boolean;\r\n\tclassName?: string;\r\n\tisLoading?: boolean;\r\n}\r\n\r\nconst LabelWithTitle: React.FC<LabelWithTitleProps> = ({ title, value, value2, required, showCopyIcon = false, className, isLoading }) => {\r\n\tconst handleCopy = () => {\r\n\t\tif (showCopyIcon && value) {\r\n\t\t\tnavigator.clipboard.writeText(`${value}${value2 ?? ''}`);\r\n\t\t\ttoast({\r\n\t\t\t\ttitle: `\"${value}${value2 ?? ''}\" foi copiado para a área de transferência.`,\r\n\t\t\t\tvariant: 'success',\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div className={cn('flex group', className)}>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t'flex flex-col text-sm w-full',\r\n\t\t\t\t\tshowCopyIcon ? 'p-1 rounded-md transition-colors group-hover:bg-sidebar-accent' : 'p-1',\r\n\t\t\t\t)}\r\n\t\t\t>\r\n\t\t\t\t<div className='relative'>\r\n\t\t\t\t\t<div className='flex items-center text-sm font-medium gap-0.5'>\r\n\t\t\t\t\t\t<label className='text-default truncate'>{title}</label>\r\n\t\t\t\t\t\t{required && <div className='text-red-500 truncate'>*</div>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className='grid flex-1 items-center pt-1'>\r\n\t\t\t\t\t\t{isLoading ? <Skeleton className='h-5 w-full rounded-lg' /> : <div className='text-zinc-500 truncate'>{value}</div>}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{value2 && (\r\n\t\t\t\t\t\t<div className='grid flex-1 items-center pt-1'>\r\n\t\t\t\t\t\t\t{isLoading ? <Skeleton className='h-5 w-full rounded-lg' /> : <div className='text-zinc-500 truncate'>{value2}</div>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\t\t'pr-1 absolute top-1/2 right-0 -translate-y-1/2 opacity-0 transition-opacity',\r\n\t\t\t\t\t\t\tshowCopyIcon && 'group-hover:opacity-100',\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<TooltipProvider>\r\n\t\t\t\t\t\t\t<Tooltip>\r\n\t\t\t\t\t\t\t\t<TooltipTrigger asChild>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tvariant='ghost'\r\n\t\t\t\t\t\t\t\t\t\ttype='button'\r\n\t\t\t\t\t\t\t\t\t\tclassName={cn('p-1 h-8', !showCopyIcon && 'cursor-default')}\r\n\t\t\t\t\t\t\t\t\t\tonClick={handleCopy}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<Copy size={16} />\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</TooltipTrigger>\r\n\t\t\t\t\t\t\t\t<TooltipContent>Copiar</TooltipContent>\r\n\t\t\t\t\t\t\t</Tooltip>\r\n\t\t\t\t\t\t</TooltipProvider>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default LabelWithTitle;\r\n","import { BarChart2 } from 'lucide-react';\r\nimport { Button } from '../button';\r\n\r\nconst NotFound = () => {\r\n\treturn (\r\n\t\t<div className=\"flex flex-col items-center justify-center h-screen bg-[url('/imgs/404.png')] bg-cover bg-no-repeat bg-center\">\r\n\t\t\t<div className='flex flex-col items-center justify-center gap-8 w-[424px]'>\r\n\t\t\t\t<div className='flex flex-col items-center w-full'>\r\n\t\t\t\t\t<div className='text-5xl font-extrabold'>404</div>\r\n\t\t\t\t\t<div className='text-3xl font-semibold'>Página Indisponível</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className='flex text-center text-xl font-semibold text-zinc-500'>\r\n\t\t\t\t\tA página que você está tentando acessar se encontra indisponível no momento, tente novamente mais tarde\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className='flex justify-center w-full'>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\twindow.location.href = '/';\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tclassName='[&_svg]:size-5'\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<BarChart2 />\r\n\t\t\t\t\t\tVoltar Para Inicial\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\nexport default NotFound;\r\n","export function isUUIDv4(str: string): boolean {\r\n\tconst uuidV4Regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n\treturn uuidV4Regex.test(str);\r\n}\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":["_jsx","_jsxs","_Fragment","CommandPrimitive","DrawerPrimitive","format","React","getYear","CalendarIcon","getMonth","CalendarComponent","classBorderColor","SheetPrimitive","Popover","PopoverTrigger","PopoverContent","masks","Select"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGM,SAAU,EAAE,CAAC,GAAG,MAAoB,EAAA;AACzC,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B;;ACCA,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAErC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,kBAAkB,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAC1H,aAAa,CAAC,WAAW,GAAG,eAAe;AAE3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACxCA,GAAA,CAAC,kBAAkB,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EAC1CC,IAAA,CAAC,kBAAkB,CAAC,OAAO,EAAA,EAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6GAA6G,EAAE,SAAS,CAAC,EAAA,GACnI,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,oDAAoD,EAAA,CAAG,CAAA,EAAA,CAClD,EAAA,CACF,CAC5B;AACD,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW;AAErE,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACxCA,GAAA,CAAC,kBAAkB,CAAC,OAAO,IAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,0HAA0H,EAAA,GAChI,KAAK,EAAA,QAAA,EAETA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAAA,CAC/B,CAC7B;AAED,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW;;ACxCrE,MAAM,aAAa,GAAG,GAAG,CACxB,2JAA2J,EAC3J;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,+BAA+B;AACxC,YAAA,WAAW,EAAE,yFAAyF;AACtG,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,CAAA,CACD;AAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAE3I,KAAK,CAAC,WAAW,GAAG,OAAO;AAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAiE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChIA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACrG;AACD,UAAU,CAAC,WAAW,GAAG,YAAY;AAErC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAmE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACxIA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACvF;AACD,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;AC3BjD,MAAM,cAAc,GAAG,GAAG,CACzB,2VAA2V,EAC3V;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,wFAAwF;AACjG,YAAA,SAAS,EAAE,qFAAqF;AAChG,YAAA,WAAW,EAAE,oFAAoF;AACjG,YAAA,OAAO,EAAE,oGAAoG;AAC7G,YAAA,KAAK,EAAE,kEAAkE;AACzE,YAAA,IAAI,EAAE,qEAAqE;AAC3E,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,EAAE,EAAE,qBAAqB;AACzB,YAAA,EAAE,EAAE,sBAAsB;AAC1B,YAAA,IAAI,EAAE,WAAW;AACjB,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,KAAA;AACD,CAAA;AAOF,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAiC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAChI,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;IACtC,OAAOA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI;AAClG,CAAC;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ;;AClC7B,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM;AAErD,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,OAAO,EAAA,EAC3B,SAAS,EAAE,EAAE,CACX,yJAAyJ,EACzJ,SAAS,CACV,EAAA,GACG,KAAK,EACT,GAAG,EAAE,GAAG,EAAA,CACR,CACH,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW;AAEzE,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BC,IAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAAA,CAChBD,GAAA,CAAC,kBAAkB,KAAG,EACtBA,GAAA,CAAC,oBAAoB,CAAC,OAAO,IAC3B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,6fAA6f,EAC7f,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CAAA,EAAA,CACgB,CACrB;AACD,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW;AAEzE,MAAM,iBAAiB,GAAG,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EAC6B,MACrCA,aACE,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEJ,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,iBAAiB,GAAG,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EAC6B,MACrCA,aACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEJ,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,KAAK,EAAA,EACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,GAC7C,KAAK,EAAA,CACT,CACH;AACD,gBAAgB,CAAC,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW;AAErE,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,WAAW,EAAA,EAC/B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GACrD,KAAK,EAAA,CACT,CACH;AACD,sBAAsB,CAAC,WAAW;AAChC,IAAA,oBAAoB,CAAC,WAAW,CAAC,WAAW;AAE5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAK1C,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAClDA,GAAA,CAAC,oBAAoB,CAAC,MAAM,EAAA,EAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KACjD,KAAK,EAAA,CACT,CACH;AAED,iBAAiB,CAAC,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW;AAGvE,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAKxC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAClDA,GAAA,CAAC,oBAAoB,CAAC,MAAM,IAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,cAAc,EACd,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AAED,iBAAiB,CAAC,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW;;AC7HvE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,eAAe,CAAC,IAAI,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW;AAErD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,EAAA,GACnD,KAAK,EAAA,CACT,CACH;AACD,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW;AAE3D,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,eAAe,CAAC,QAAQ,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,sEAAsE,EACtE,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW;;ACzCjE,MAAM,aAAa,GAAG,GAAG,CACxB,wKAAwK,EACxK;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,kEAAkE;AAC3E,YAAA,SAAS,EAAE,sEAAsE;AACjF,YAAA,OAAO,EAAE,gDAAgD;AACzD,YAAA,WAAW,EAAE,+DAA+D;AAC5E,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,GAAG,EAAE,2CAA2C;AAChD,YAAA,IAAI,EAAE,8CAA8C;AACpD,YAAA,IAAI,EAAE,6CAA6C;AACnD,YAAA,MAAM,EAAE,iDAAiD;AACzD,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,CAAA;AAKF,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAc,EAAA;AAC1D,IAAA,OAAOA,aAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AAChF;;ACzBA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAKjC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAA,YAAA,EAAa,YAAY,EAAA,GAAK,KAAK,EAAA,CAAI;AAC7E,UAAU,CAAC,WAAW,GAAG,YAAY;AAErC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAA,IAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,0FAA0F,EAC1F,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAA,IAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,EAAA,GACxD,KAAK,EAAA,CACT,CACH;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAKrC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC1C,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG;IAEjC,QACEA,IAAC,IAAI,EAAA,EACH,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,EAAA,CACT;AAEN,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,MAAM,EAAA,eAAA,EACG,MAAM,EAAA,cAAA,EACP,MAAM,EACnB,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,EAAA,CACT,CACH;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,mBAAmB,GAAG,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACmB,MAC3BA,GAAA,CAAA,IAAA,EAAA,EACE,IAAI,EAAC,cAAc,EAAA,aAAA,EACP,MAAM,EAClB,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,EAAA,GACnD,KAAK,EAAA,QAAA,EAER,QAAQ,IAAIA,GAAA,CAAC,YAAY,EAAA,EAAA,CAAG,EAAA,CAC1B;AAEP,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;AAEvD,MAAM,kBAAkB,GAAG,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACqB,MAC7BC,eACE,IAAI,EAAC,cAAc,EAAA,aAAA,EACP,MAAM,EAClB,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,SAAS,CAAC,EAAA,GAChE,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,MAAA,EAAA,CAAY,CAAA,EAAA,CAChC;AAET,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;AClGrD,SAAS,QAAQ,CAAC,EACjB,SAAS,EACT,UAAU,EACV,eAAe,GAAG,IAAI,EACtB,aAAa,GAAG,OAAO,EACvB,aAAa,GAAG,OAAO,EACvB,UAAU,EACV,UAAU,EACV,GAAG,KAAK,EAGR,EAAA;AACA,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,EAAE;AAEhD,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,EAAE,CACZ,gJAAgJ,EAChJ,MAAM,CAAC,GAAG,CAAA,CAAA,yCAAA,CAA2C,EACrD,MAAM,CAAC,GAAG,CAAA,CAAA,6CAAA,CAA+C,EACzD,SAAS,CACT,EACD,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE;AACX,YAAA,mBAAmB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjF,YAAA,GAAG,UAAU;AACb,SAAA,EACD,UAAU,EAAE;YACX,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACzC,MAAM,EAAE,EAAE,CAAC,0CAA0C,EAAE,iBAAiB,CAAC,MAAM,CAAC;YAChF,KAAK,EAAE,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,KAAK,CAAC;YAChE,GAAG,EAAE,EAAE,CAAC,yEAAyE,EAAE,iBAAiB,CAAC,GAAG,CAAC;AACzG,YAAA,eAAe,EAAE,EAAE,CAClB,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAC1C,0EAA0E,EAC1E,iBAAiB,CAAC,eAAe,CACjC;AACD,YAAA,WAAW,EAAE,EAAE,CACd,cAAc,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAC1C,0EAA0E,EAC1E,iBAAiB,CAAC,WAAW,CAC7B;YACD,aAAa,EAAE,EAAE,CAAC,0EAA0E,EAAE,iBAAiB,CAAC,aAAa,CAAC;YAC9H,SAAS,EAAE,EAAE,CAAC,qFAAqF,EAAE,iBAAiB,CAAC,SAAS,CAAC;YACjI,aAAa,EAAE,EAAE,CAChB,qHAAqH,EACrH,iBAAiB,CAAC,aAAa,CAC/B;YACD,QAAQ,EAAE,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AACtE,YAAA,aAAa,EAAE,EAAE,CAChB,yBAAyB,EACzB,aAAa,KAAK;AACjB,kBAAE;AACF,kBAAE,yGAAyG,EAC5G,iBAAiB,CAAC,aAAa,CAC/B;AACD,YAAA,KAAK,EAAE,wBAAwB;YAC/B,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAChD,OAAO,EAAE,EAAE,CAAC,+EAA+E,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACvH,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACpD,kBAAkB,EAAE,EAAE,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;YAC3F,WAAW,EAAE,EAAE,CAAC,iDAAiD,EAAE,iBAAiB,CAAC,WAAW,CAAC;YACjG,GAAG,EAAE,EAAE,CACN,+LAA+L,EAC/L,iBAAiB,CAAC,GAAG,CACrB;YACD,WAAW,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,WAAW,CAAC;YACxE,YAAY,EAAE,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC;YAChE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,SAAS,CAAC;YACpE,KAAK,EAAE,EAAE,CAAC,+EAA+E,EAAE,iBAAiB,CAAC,KAAK,CAAC;YACnH,OAAO,EAAE,EAAE,CAAC,2DAA2D,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACnG,QAAQ,EAAE,EAAE,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC5E,MAAM,EAAE,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC;AACjD,YAAA,GAAG,UAAU;AACb,SAAA,EACD,UAAU,EAAE;YACX,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,KAAI;AAC1C,gBAAA,OAAOA,0BAAe,UAAU,EAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;YACvF,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,KAAI;AACjD,gBAAA,IAAI,WAAW,KAAK,MAAM,EAAE;AAC3B,oBAAA,OAAOA,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;gBAC1E;AAEA,gBAAA,IAAI,WAAW,KAAK,OAAO,EAAE;AAC5B,oBAAA,OAAOA,GAAA,CAAC,gBAAgB,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;gBAC3E;AAEA,gBAAA,OAAOA,GAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;YAC1E,CAAC;AACD,YAAA,SAAS,EAAE,iBAAiB;YAC5B,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,KAAI;AACtC,gBAAA,QACCA,GAAA,CAAA,IAAA,EAAA,EAAA,GAAQ,KAAK,EAAA,QAAA,EACZA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iEAAiE,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,EAAA,CAC7F;YAEP,CAAC;AACD,YAAA,GAAG,UAAU;SACb,EAAA,GACG,KAAK,EAAA,CACR;AAEJ;AAEA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAA0C,EAAA;AACzG,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,EAAE;IAEhD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC;AACjD,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACpB,IAAI,SAAS,CAAC,OAAO;AAAE,YAAA,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;AAC5C,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAEvB,IAAA,QACCA,GAAA,CAAC,MAAM,EAAA,EACN,GAAG,EAAE,GAAG,EACR,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EAAA,UAAA,EACD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,0BACjB,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,sBACnG,SAAS,CAAC,WAAW,EAAA,gBAAA,EACvB,SAAS,CAAC,SAAS,EAAA,mBAAA,EAChB,SAAS,CAAC,YAAY,EACzC,SAAS,EAAE,EAAE,CACZ,syBAAsyB,EACtyB,iBAAiB,CAAC,GAAG,EACrB,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ;;ACvIA,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,0DAA0D,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAClH;AACD,IAAI,CAAC,WAAW,GAAG,MAAM;AAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAClE;AACD,UAAU,CAAC,WAAW,GAAG,YAAY;AAErC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACrHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAC5G;AACD,SAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC3HA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACvF;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAE/C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACnE;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAC/E;AACD,UAAU,CAAC,WAAW,GAAG,YAAY;;ACFrC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAA8B,IAAI,CAAC;AAE9E,SAAS,WAAW,GAAA;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC;IACnE;AAEA,IAAA,OAAO,OAAO;AAChB;AAEA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAI/B,CACE,EACE,WAAW,GAAG,YAAY,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,gBAAgB,CACzC;AACE,QAAA,GAAG,IAAI;QACP,IAAI,EAAE,WAAW,KAAK,YAAY,GAAG,GAAG,GAAG,GAAG;KAC/C,EACD,OAAO,CACR;AACD,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/D,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE/D,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAgB,KAAI;QACtD,IAAI,CAAC,GAAG,EAAE;YACR;QACF;AAEA,QAAA,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AACrC,QAAA,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;QACxC,GAAG,EAAE,UAAU,EAAE;AACnB,IAAA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAET,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;QACxC,GAAG,EAAE,UAAU,EAAE;AACnB,IAAA,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAET,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,KAA0C,KAAI;AAC7C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,UAAU,EAAE;QACd;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YACrC,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,UAAU,EAAE;QACd;AACF,IAAA,CAAC,EACD,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB;AAED,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACnB;QACF;QAEA,MAAM,CAAC,GAAG,CAAC;AACb,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAEjB,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,IAAI,CAAC,GAAG,EAAE;YACR;QACF;QAEA,QAAQ,CAAC,GAAG,CAAC;AACb,QAAA,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC1B,QAAA,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAE1B,QAAA,OAAO,MAAK;AACV,YAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC9B,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEnB,IAAA,QACEA,GAAA,CAAC,eAAe,CAAC,QAAQ,EAAA,EACvB,KAAK,EAAE;YACL,WAAW;AACX,YAAA,GAAG,EAAE,GAAG;YACR,IAAI;AACJ,YAAA,WAAW,EACT,WAAW,KAAK,IAAI,EAAE,IAAI,KAAK,GAAG,GAAG,UAAU,GAAG,YAAY,CAAC;YACjE,UAAU;YACV,UAAU;YACV,aAAa;YACb,aAAa;AACd,SAAA,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,gBAAgB,EAAE,aAAa,EAC/B,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EACpC,IAAI,EAAC,QAAQ,EAAA,sBAAA,EACQ,UAAU,EAAA,GAC3B,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,EAAA,CACmB;AAE/B,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACjC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;AAElD,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,WAAW,EAAE,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAChDA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,MAAM,EACN,WAAW,KAAK,YAAY,GAAG,OAAO,GAAG,gBAAgB,EACzD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,EAAA,CACE;AAEV,CAAC;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAE/C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACjC,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;AAErC,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EAAA,sBAAA,EACS,OAAO,EAC5B,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,WAAW,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,EAC9C,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN,CAAC;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE;IAEhE,QACEC,IAAA,CAAC,MAAM,EAAA,EACL,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,gCAAgC,EAChC,WAAW,KAAK;AACd,cAAE;AACF,cAAE,6CAA6C,EACjD,SAAS,CACV,EACD,QAAQ,EAAE,CAAC,aAAa,EACxB,OAAO,EAAE,UAAU,EAAA,GACf,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAsB,CAAA,EAAA,CACxC;AAEb,CAAC;AACD,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;AAEjD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE;IAEhE,QACEC,IAAA,CAAC,MAAM,EAAA,EACL,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,+BAA+B,EAC/B,WAAW,KAAK;AACd,cAAE;AACF,cAAE,gDAAgD,EACpD,SAAS,CACV,EACD,QAAQ,EAAE,CAAC,aAAa,EACxB,OAAO,EAAE,UAAU,EAAA,GACf,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAClCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,CAAkB,CAAA,EAAA,CACpC;AAEb,CAAC;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;;ACrPzC,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAW;AAapD,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAA2B,IAAI,CAAC;AAExE,SAAS,QAAQ,GAAA;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACrE;AAEA,IAAA,OAAO,OAAO;AACf;AAEA,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAMrC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACxD,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE;AAC9B,IAAA,MAAM,OAAO,GAAG,CAAA,MAAA,EAAS,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;IAE3D,QACCA,GAAA,CAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACvCC,4BACa,OAAO,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,upBAAupB,EACvpB,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,UAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAI,EAC3CA,GAAA,CAAC,iBAAiB,CAAC,mBAAmB,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAyC,CAAA,EAAA,CACpF,EAAA,CACiB;AAE1B,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,OAAO;AAEpC,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAuC,KAAI;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AAE/F,IAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACxB,QAAA,OAAO,IAAI;IACZ;AAEA,IAAA,QACCA,GAAA,CAAA,OAAA,EAAA;;AAEC,QAAA,uBAAuB,EAAE;AACxB,YAAA,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;iBAC3B,GAAG,CACH,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAA;AACzB,EAAA,MAAM,gBAAgB,EAAE,CAAA;EACxB;iBACA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAI;AAC1B,gBAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,KAAsC,CAAC,IAAI,UAAU,CAAC,KAAK;AAC5F,gBAAA,OAAO,KAAK,GAAG,CAAA,UAAA,EAAa,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAG,GAAG,IAAI;AACpD,YAAA,CAAC;iBACA,IAAI,CAAC,IAAI,CAAC,CAAA;;CAEX;iBAEK,IAAI,CAAC,IAAI,CAAC;AACZ,SAAA,EAAA,CACA;AAEJ,CAAC;AAED,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAW3C,CACC,EACC,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,KAAK,EACjB,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,GACR,EACD,GAAG,KACA;AACH,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;AAE7B,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAK;AACvC,QAAA,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAClC,YAAA,OAAO,IAAI;QACZ;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO;AACtB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE;QACjE,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;QACjE,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAA4B,CAAC,EAAE,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK;QAE/H,IAAI,cAAc,EAAE;AACnB,YAAA,OAAOA,aAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAA,QAAA,EAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAO;QACjG;QAEA,IAAI,CAAC,KAAK,EAAE;AACX,YAAA,OAAO,IAAI;QACZ;AAEA,QAAA,OAAOA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAA,QAAA,EAAG,KAAK,EAAA,CAAO;AACxE,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjF,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AAChC,QAAA,OAAO,IAAI;IACZ;IAEA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK;AAE7D,IAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,wHAAwH,EACxH,SAAS,CACT,aAEA,CAAC,SAAS,GAAG,YAAY,GAAG,IAAI,EACjCD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAA,QAAA,EAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC5B,oBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE;oBAChE,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACjE,oBAAA,MAAM,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;AAE/D,oBAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAE,EAAE,CACZ,qGAAqG,EACrG,SAAS,KAAK,KAAK,IAAI,cAAc,CACrC,EAAA,QAAA,EAEA,SAAS,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,IACnD,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAE3DC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACE,UAAU,EAAE,IAAI,IAChBF,GAAA,CAAC,UAAU,CAAC,IAAI,EAAA,EAAA,CAAG,KAEnB,CAAC,aAAa,KACbA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,EAAE,CAAC,gEAAgE,EAAE;wCAC/E,aAAa,EAAE,SAAS,KAAK,KAAK;wCAClC,KAAK,EAAE,SAAS,KAAK,MAAM;wCAC3B,iDAAiD,EAAE,SAAS,KAAK,QAAQ;AACzE,wCAAA,QAAQ,EAAE,SAAS,IAAI,SAAS,KAAK,QAAQ;qCAC7C,CAAC,EACF,KAAK,EACJ;AACC,wCAAA,YAAY,EAAE,cAAc;AAC5B,wCAAA,gBAAgB,EAAE,cAAc;AACT,qCAAA,EAAA,CAExB,CACF,CACD,EACDC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,aACvGA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,aAC3B,SAAS,GAAG,YAAY,GAAG,IAAI,EAChCD,cAAM,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,CAC1E,EACL,IAAI,CAAC,KAAK,KACVA,cAAM,SAAS,EAAC,oDAAoD,EAAA,QAAA,EAClE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAA,CACtB,CACP,CAAA,EAAA,CACI,CAAA,EAAA,CACJ,CACH,EAAA,EA1CI,IAAI,CAAC,OAAO,CA2CZ;AAER,gBAAA,CAAC,CAAC,EAAA,CACG,CAAA,EAAA,CACD;AAER,CAAC;AAEF,mBAAmB,CAAC,WAAW,GAAG,cAAc;AAEhD,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAOzC,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,KAAI;AACtF,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;AAE7B,IAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AACrB,QAAA,OAAO,IAAI;IACZ;AAEA,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,aAAa,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,EAAA,QAAA,EAC1H,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACrB,MAAM,GAAG,GAAG,CAAA,EAAG,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAA,CAAE;YACnD,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AAEjE,YAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAsB,SAAS,EAAE,EAAE,CAAC,iFAAiF,CAAC,EAAA,QAAA,EAAA,CACpH,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,IAC7BD,IAAC,UAAU,CAAC,IAAI,EAAA,EAAA,CAAG,KAEnBA,aACC,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE;4BACN,eAAe,EAAE,IAAI,CAAC,KAAK;yBAC3B,EAAA,CACA,CACF,EACA,UAAU,EAAE,KAAK,CAAA,EAAA,EAXT,IAAI,CAAC,KAAK,CAYd;QAER,CAAC,CAAC,EAAA,CACG;AAER,CAAC;AACD,kBAAkB,CAAC,WAAW,GAAG,aAAa;AAE9C;AACA,SAAS,2BAA2B,CAAC,MAAmB,EAAE,OAAgB,EAAE,GAAW,EAAA;IACtF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;AACpD,QAAA,OAAO,SAAS;IACjB;AAEA,IAAA,MAAM,cAAc,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS;IAE5I,IAAI,cAAc,GAAW,GAAG;AAEhC,IAAA,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAA2B,CAAC,KAAK,QAAQ,EAAE;AAC/E,QAAA,cAAc,GAAG,OAAO,CAAC,GAA2B,CAAW;IAChE;AAAO,SAAA,IAAI,cAAc,IAAI,GAAG,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,GAAkC,CAAC,KAAK,QAAQ,EAAE;AAC7H,QAAA,cAAc,GAAG,cAAc,CAAC,GAAkC,CAAW;IAC9E;AAEA,IAAA,OAAO,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,GAA0B,CAAC;AAC9F;;ACjRA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACnCA,GAAA,CAAC,iBAAiB,CAAC,IAAI,EAAA,EACtB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,CAAC,CAAC,KAAK,EAChB,SAAS,EAAE,EAAE,CACZ,4SAA4S,EAC5S,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAETA,GAAA,CAAC,iBAAiB,CAAC,SAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,+CAA+C,CAAC,EAAA,QAAA,EAC1FA,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACA,EAAA,CACN,CACzB;AAEF,QAAQ,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW;;ACpBzD,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;;ACChD,MAAM,MAAM,GAAG,eAAe,CAAC;AAE/B,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,YAAY,GAAG,eAAe,CAAC;AAErC,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9BA,GAAA,CAAC,eAAe,CAAC,OAAO,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,yJAAyJ,EACzJ,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AACD,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW;AAM/D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACjDC,IAAA,CAAC,YAAY,eACZD,GAAA,CAAC,aAAa,KAAG,EACjBC,IAAA,CAAC,eAAe,CAAC,OAAO,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,6eAA6e,EAC7e,SAAS,CACT,KACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACR,CAAC,SAAS,KACVA,IAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,+QAA+Q,EAAA,QAAA,EAAA,CAC/SD,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACzBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,sBAAa,CAAA,EAAA,CACf,CACxB,IACwB,CAAA,EAAA,CACZ,CACf;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW;AAE/D,MAAM,YAAY,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,MAClFA,aAAK,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAEnG,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,YAAY,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,MAClFA,aAAK,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAE9G,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAC7H;AAEF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW;AAE3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAGxC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,eAAe,CAAC,WAAW,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AACnJ,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,WAAW;;ACzEvE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAACG,SAAgB,IACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,OAAO,CAAC,WAAW,GAAGA,SAAgB,CAAC,WAAW;AAElD,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAe,KAAI;IAC5D,QACEH,GAAA,CAAC,MAAM,EAAA,EAAA,GAAK,KAAK,YACfA,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,+BAA+B,YACtDA,GAAA,CAAC,OAAO,EAAA,EAAC,SAAS,EAAC,6WAA6W,EAAA,QAAA,EAC7X,QAAQ,EAAA,CACD,EAAA,CACI,EAAA,CACT;AAEb;AAEA,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA,oBAAA,EAAoB,EAAE,EAAA,QAAA,EAAA,CACpED,GAAA,CAAC,MAAM,IAAC,SAAS,EAAC,kCAAkC,EAAA,CAAG,EACvDA,GAAA,CAACG,SAAgB,CAAC,KAAK,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,wJAAwJ,EACxJ,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CAAA,EAAA,CACE,CACP;AAED,YAAY,CAAC,WAAW,GAAGA,SAAgB,CAAC,KAAK,CAAC,WAAW;AAE7D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BH,GAAA,CAACG,SAAgB,CAAC,IAAI,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,EAAA,GACvE,KAAK,EAAA,CACT,CACH;AAED,WAAW,CAAC,WAAW,GAAGA,SAAgB,CAAC,IAAI,CAAC,WAAW;AAE3D,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,KAAK,EAAE,GAAG,MACXH,GAAA,CAACG,SAAgB,CAAC,KAAK,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,0BAA0B,EAAA,GAChC,KAAK,EAAA,CACT,CACH;AAED,YAAY,CAAC,WAAW,GAAGA,SAAgB,CAAC,KAAK,CAAC,WAAW;AAE7D,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAGnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BH,GAAA,CAACG,SAAgB,CAAC,KAAK,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,wNAAwN,EACxN,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AAED,YAAY,CAAC,WAAW,GAAGA,SAAgB,CAAC,KAAK,CAAC,WAAW;AAE7D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BH,GAAA,CAACG,SAAgB,CAAC,SAAS,EAAA,EACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,EAAA,GAC5C,KAAK,EAAA,CACT,CACH;AACD,gBAAgB,CAAC,WAAW,GAAGA,SAAgB,CAAC,SAAS,CAAC,WAAW;AAErE,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BH,GAAA,CAACG,SAAgB,CAAC,IAAI,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,2TAA2T,EAC3T,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AAED,WAAW,CAAC,WAAW,GAAGA,SAAgB,CAAC,IAAI,CAAC,WAAW;AAE3D,MAAM,eAAe,GAAG,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EAC8B,KAAI;AAC1C,IAAA,QACEH,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AACA,eAAe,CAAC,WAAW,GAAG,iBAAiB;;ACnI/C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAE/C,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAE5C,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AAEnD,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAK5C,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9CC,IAAA,CAAC,oBAAoB,CAAC,UAAU,EAAA,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,4MAA4M,EAC5M,KAAK,IAAI,MAAM,EACf,SAAS,CACV,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,CAAG,CAAA,EAAA,CACZ,CACnC;AACD,qBAAqB,CAAC,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW;AAE/E,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAG5C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,UAAU,EAAA,EAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,ubAAub,EACvb,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,qBAAqB,CAAC,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW;AAE/E,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,MAAM,cAC1BA,GAAA,CAAC,oBAAoB,CAAC,OAAO,EAAA,EAC3B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,6cAA6c,EAC7c,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,EAAA,CAC0B,CAC/B;AACD,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW;AAEzE,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAKtC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACpCA,GAAA,CAAC,oBAAoB,CAAC,IAAI,EAAA,EACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,+MAA+M,EAC/M,KAAK,IAAI,MAAM,EACf,SAAS,CACV,KACG,KAAK,EAAA,CACT,CACH;AACD,eAAe,CAAC,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW;AAEnE,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,CAG9C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChDC,IAAA,CAAC,oBAAoB,CAAC,YAAY,IAChC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oNAAoN,EACpN,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAAA,GACZ,KAAK,aAETD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,8DAA8D,YAC5EA,GAAA,CAAC,oBAAoB,CAAC,aAAa,EAAA,EAAA,QAAA,EACjCA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACM,GAChC,EACN,QAAQ,CAAA,EAAA,CACyB,CACrC;AACD,uBAAuB,CAAC,WAAW;AACjC,IAAA,oBAAoB,CAAC,YAAY,CAAC,WAAW;AAE/C,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvCC,IAAA,CAAC,oBAAoB,CAAC,SAAS,EAAA,EAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,oNAAoN,EACpN,SAAS,CACV,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAC5EA,IAAC,oBAAoB,CAAC,aAAa,EAAA,EAAA,QAAA,EACjCA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,sBAAsB,EAAA,CAAG,EAAA,CACR,EAAA,CAChC,EACN,QAAQ,CAAA,EAAA,CACsB,CAClC;AACD,oBAAoB,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW;AAE7E,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAKvC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACpCA,GAAA,CAAC,oBAAoB,CAAC,KAAK,EAAA,EACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,KAAK,IAAI,MAAM,EACf,SAAS,CACV,KACG,KAAK,EAAA,CACT,CACH;AACD,gBAAgB,CAAC,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW;AAErE,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAAC,oBAAoB,CAAC,SAAS,EAAA,EAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,EAAA,GACjD,KAAK,EAAA,CACT,CACH;AACD,oBAAoB,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,WAAW;AAE7E,MAAM,mBAAmB,GAAG,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EAC8B,KAAI;AAC1C,IAAA,QACEA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAEN;AACA,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;;AC/KvD,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChEA,IAAC,gBAAgB,CAAC,MAAM,EAAA,EAAA,QAAA,EACvBA,GAAA,CAAC,gBAAgB,CAAC,OAAO,EAAA,EACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,KAAI;YACd,CAAC,CAAC,eAAe,EAAE;AACpB,QAAA,CAAC,EACD,SAAS,EAAE,EAAE,CACZ,4aAA4a,EAC5a,SAAS,CACT,KACG,KAAK,EAAA,CACR,EAAA,CACuB,CAC1B;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW;;ACd3D,SAAU,mBAAmB,CAAC,EAClC,SAAS,GAC4B,EAAA;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAwB;QAC5D,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;AAC3B,QAAA,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AACvC,KAAA,CAAC;AAEF,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAA,QAAA,EACzCC,IAAA,CAAC,OAAO,eACND,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACrBC,IAAA,CAAC,MAAM,EAAA,EACL,EAAE,EAAC,MAAM,EACT,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,EAAE,CACX,+CAA+C,EAC/C,CAAC,IAAI,IAAI,uBAAuB,CACjC,aAEDD,GAAA,CAAC,YAAY,EAAA,EAAA,CAAG,EACf,IAAI,EAAE,IAAI,IACT,IAAI,CAAC,EAAE,IACLC,4BACG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAA,IAAA,EAAI,GAAG,EACrC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA,EAAA,CAC5B,KAEH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAC/B,KAEDD,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAwB,CACzB,CAAA,EAAA,CACM,GACM,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EAClDA,GAAA,CAAC,QAAQ,EAAA,EACP,YAAY,EAAA,IAAA,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,IAAI,EAAE,IAAI,EACxB,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,CAAC,EAAA,CACjB,EAAA,CACa,CAAA,EAAA,CACT,EAAA,CACN;AAEV;;ACzDA,MAAM,MAAM,GAAG,CAAC,EACd,qBAAqB,GAAG,IAAI,EAC5B,GAAG,KAAK,EAC0C,MAClDA,GAAA,CAACI,QAAe,CAAC,IAAI,EAAA,EACnB,qBAAqB,EAAE,qBAAqB,EAAA,GACxC,KAAK,EAAA,CACT;AAEJ,MAAM,CAAC,WAAW,GAAG,QAAQ;AAE7B,MAAM,aAAa,GAAGA,QAAe,CAAC;AAEtC,MAAM,YAAY,GAAGA,QAAe,CAAC;AAErC,MAAM,WAAW,GAAGA,QAAe,CAAC;AAEpC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BJ,GAAA,CAACI,QAAe,CAAC,OAAO,EAAA,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,EAAA,GACtD,KAAK,EAAA,CACT,CACH;AACD,aAAa,CAAC,WAAW,GAAGA,QAAe,CAAC,OAAO,CAAC,WAAW;AAE/D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvCH,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACXD,GAAA,CAAC,aAAa,EAAA,EAAA,CAAG,EACjBC,IAAA,CAACG,QAAe,CAAC,OAAO,EAAA,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,gGAAgG,EAChG,SAAS,CACV,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETJ,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kDAAkD,EAAA,CAAG,EACnE,QAAQ,CAAA,EAAA,CACe,CAAA,EAAA,CACb,CAChB;AACD,aAAa,CAAC,WAAW,GAAG,eAAe;AAE3C,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EAC6B,MACrCA,aACE,SAAS,EAAE,EAAE,CAAC,2CAA2C,EAAE,SAAS,CAAC,EAAA,GACjE,KAAK,EAAA,CACT;AAEJ,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EAC6B,MACrCA,aACE,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,EAAA,GACvD,KAAK,EAAA,CACT;AAEJ,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,GAAA,CAACI,QAAe,CAAC,KAAK,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,WAAW,CAAC,WAAW,GAAGA,QAAe,CAAC,KAAK,CAAC,WAAW;AAE3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAGxC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BJ,GAAA,CAACI,QAAe,CAAC,WAAW,EAAA,EAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GACrD,KAAK,EAAA,CACT,CACH;AACD,iBAAiB,CAAC,WAAW,GAAGA,QAAe,CAAC,WAAW,CAAC,WAAW;;ACjGvE,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAErD,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAK7C,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC/CH,IAAA,CAAC,qBAAqB,CAAC,UAAU,EAAA,EAChC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,sIAAsI,EACtI,KAAK,IAAI,MAAM,EACf,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,CAAG,CAAA,EAAA,CACV,CACnC;AACD,sBAAsB,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC,WAAW;AAEjF,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9BA,GAAA,CAAC,qBAAqB,CAAC,UAAU,EAAA,EAChC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,ubAAub,EACvb,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AACD,sBAAsB,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU,CAAC,WAAW;AAEjF,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAG1C,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9CA,GAAA,CAAC,qBAAqB,CAAC,MAAM,cAC5BA,GAAA,CAAC,qBAAqB,CAAC,OAAO,EAAA,EAC7B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACZ,ubAAub,EACvb,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,EAAA,CAC4B,CAC/B;AACD,mBAAmB,CAAC,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW;AAE3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAKvC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACrCA,GAAA,CAAC,qBAAqB,CAAC,IAAI,EAAA,EAC1B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,iOAAiO,EACjO,KAAK,IAAI,MAAM,EACf,SAAS,CACT,KACG,KAAK,EAAA,CACR,CACF;AACD,gBAAgB,CAAC,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW;AAErE,MAAM,wBAAwB,GAAG,KAAK,CAAC,UAAU,CAG/C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACjDC,IAAA,CAAC,qBAAqB,CAAC,YAAY,IAClC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,sOAAsO,EACtO,SAAS,CACT,EACD,OAAO,EAAE,OAAO,EAAA,GACZ,KAAK,aAETD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,8DAA8D,YAC7EA,GAAA,CAAC,qBAAqB,CAAC,aAAa,EAAA,EAAA,QAAA,EACnCA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACQ,GAChC,EACN,QAAQ,CAAA,EAAA,CAC2B,CACrC;AACD,wBAAwB,CAAC,WAAW,GAAG,qBAAqB,CAAC,YAAY,CAAC,WAAW;AAErF,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAG5C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACxCC,IAAA,CAAC,qBAAqB,CAAC,SAAS,EAAA,EAC/B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,sOAAsO,EACtO,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAC7EA,IAAC,qBAAqB,CAAC,aAAa,EAAA,EAAA,QAAA,EACnCA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,sBAAsB,EAAA,CAAG,EAAA,CACN,EAAA,CAChC,EACN,QAAQ,CAAA,EAAA,CACwB,CAClC;AACD,qBAAqB,CAAC,WAAW,GAAG,qBAAqB,CAAC,SAAS,CAAC,WAAW;AAE/E,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAKxC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACrCA,GAAA,CAAC,qBAAqB,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,MAAM,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI,CACpI;AACD,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,WAAW;AAEvE,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAG5C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,qBAAqB,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAClJ,qBAAqB,CAAC,WAAW,GAAG,qBAAqB,CAAC,SAAS,CAAC,WAAW;AAE/E,MAAM,oBAAoB,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyC,KAAI;AAC/F,IAAA,OAAOA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AACnG;AACA,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;ACpJzD,MAAM,aAAa,GAAG,GAAG,CAAC,+EAA+E,CAAC;AAE1G,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,cAAc,CAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAC3H,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW;;ACJnD,MAAM,IAAI,GAAG;AAMb,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAwB,EAA2B,CAAC;AAEhG,MAAM,SAAS,GAAG,CAAkH,EACnI,GAAG,KAAK,EAC8B,KAAI;IAC1C,QACCA,IAAC,gBAAgB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAA,QAAA,EACrDA,GAAA,CAAC,UAAU,OAAK,KAAK,EAAA,CAAI,EAAA,CACE;AAE9B;AAEA,MAAM,YAAY,GAAG,MAAK;IACzB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IACrD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE;IAErD,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC;IAE9D,IAAI,CAAC,YAAY,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC;IAClE;AAEA,IAAA,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAE1B,OAAO;QACN,EAAE;QACF,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,UAAU,EAAE,CAAA,EAAG,EAAE,CAAA,UAAA,CAAY;QAC7B,iBAAiB,EAAE,CAAA,EAAG,EAAE,CAAA,sBAAA,CAAwB;QAChD,aAAa,EAAE,CAAA,EAAG,EAAE,CAAA,kBAAA,CAAoB;AACxC,QAAA,GAAG,UAAU;KACb;AACF;AAMA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB,EAA0B,CAAC;AAE7F,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAuD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACxH,IAAA,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;AAExB,IAAA,QACCA,GAAA,CAAC,eAAe,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAA,QAAA,EACtCA,aAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,EAAA,CAChC;AAE7B,CAAC;AACD,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAChC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;IAE5C,OAAOA,GAAA,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,IAAI,kBAAkB,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAA,GAAM,KAAK,EAAA,CAAI;AAClH,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAA6E,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACtI,IAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE;AAE9E,IAAA,QACCA,GAAA,CAAC,IAAI,EAAA,EACJ,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EAAA,kBAAA,EACI,CAAC,KAAK,GAAG,CAAA,EAAG,iBAAiB,CAAA,CAAE,GAAG,CAAA,EAAG,iBAAiB,IAAI,aAAa,CAAA,CAAE,EAAA,cAAA,EAC7E,CAAC,CAAC,KAAK,EAAA,GACjB,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAmE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC3I,IAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE;IAE5C,OAAOA,GAAA,CAAA,GAAA,EAAA,EAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AACpH,CAAC;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAE/C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAmE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACjJ,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE;AAC/C,IAAA,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,QAAQ;IAEtD,IAAI,CAAC,IAAI,EAAE;AACV,QAAA,OAAO,IAAI;IACZ;IAEA,QACCA,GAAA,CAAA,GAAA,EAAA,EAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,sCAAsC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EACzG,IAAI,EAAA,CACF;AAEN,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;;;;;;;;;;;;;;AC1GvC,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAErC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChEA,GAAA,CAAC,kBAAkB,CAAC,OAAO,EAAA,EAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACZ,obAAob,EACpb,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AACD,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW;;ACfrE;;;;;;;;;AASG;AACI,MAAM,WAAW,GAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,KAAI;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IAC5E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG;AAE3D,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC;AACzB;AAEA;;;;;;;;;;;;;AAaG;AACG,SAAU,SAAS,CAAC,KAAoB,EAAA;IAC7C,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;IAE1D,IAAI,GAAG,GAAG,EAAE;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;AAE3E,IAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;AAC7D;AAEA;;;;;;;;;AASG;AACI,MAAM,aAAa,GAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,KAAI;IACtF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;IAC5E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG;AAE3D,IAAA,OAAO,WAAW,CAAC,MAAM,CAAC;AAC3B;AAEA;;;;;;;;;;;;;;;;AAgBG;AACG,SAAU,WAAW,CAAC,KAAoB,EAAA;IAC/C,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;IAE1D,IAAI,GAAG,GAAG,EAAE;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;AAE7E,IAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;AAC7D;AAEA;;;;;;;;;;;;;;;AAeG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAY;IACzD,OAAO,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjC;;ACxGA;AACA;;;;;;;;;;;;;AAaG;SACa,WAAW,CAAC,QAAgB,EAAE,kBAAkB,GAAG,IAAI,EAAA;AACtE,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,EAAE;IAExB,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;;IAG7C,IAAI,kBAAkB,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACvD,QAAA,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC;IAEA,OAAOK,QAAM,CAAC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;AACnD;AAEA;AACA;;;;;;;;;;;;AAYG;AACG,SAAU,aAAa,CAAC,OAAgB,EAAA;AAC7C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,EAAE;IAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhD,OAAOA,QAAM,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;AACzD;AAEA;AACA,SAAS,MAAM,CAAC,IAAU,EAAA;AACzB,IAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAClD;AAEA,SAAS,QAAQ,CAAC,IAAU,EAAA;AAC3B,IAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACzD;AAEA,SAAS,OAAO,CAAC,IAAU,EAAA;AAC1B,IAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AACrC;AAEA;;;;;;;;;;;;AAYG;AACI,MAAM,UAAU,GAAG,CAAC,IAA+B,EAAE,SAAA,GAAoB,GAAG,KAAI;AACtF,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;AAExB,IAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACrC;AAEO,MAAM,cAAc,GAAG,CAAC,IAAsB,EAAE,aAAA,GAAyB,KAAK,KAAY;AAChG,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACzD,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAC7D,MAAM,OAAO,GAAG,aAAa,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE,GAAG,EAAE;AAExF,IAAA,OAAO,CAAA,EAAG,UAAU,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,OAAO,CAAA,EAAG,OAAO,CAAA,CAAE;AAC3D;AAEM,SAAU,kBAAkB,CAAC,IAAsB,EAAA;AACxD,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5B,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAE1B,IAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE;AACjC;SAEgB,gBAAgB,CAAC,IAAwB,EAAE,YAAoB,GAAG,EAAA;AACjF,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,SAAS;AAE3B,IAAA,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;;IAG5D,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACtC;AAEA;AACO,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,cAAA,GAAyB,CAAC,KAAY;IAChF,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC7C;AAEO,MAAM,cAAc,GAAG,CAAC,KAAyB,KAAY;AACnE,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,CAAC;IAEpB,MAAM,YAAY,GAAG;AACnB,SAAA,OAAO,CAAC,UAAU,EAAE,EAAE;AACtB,SAAA,OAAO,CAAC,KAAK,EAAE,EAAE;AACjB,SAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACnB,IAAA,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;AACvC;AAEO,MAAM,aAAa,GAAG,CAAC,KAAa,KAAI;AAC9C,IAAA,OAAO,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACjD;AAEO,MAAM,aAAa,GAAG,CAAC,KAAa,KAAI;AAC9C,IAAA,OAAO,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACjD;AAEO,MAAM,uBAAuB,GAAG,CAAC,KAAa,KAAY;AAChE,IAAA,OAAO,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC;AAC/C;AAEO,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAY;IACzD,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,CAAC;IAC3C,OAAO,WAAW,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AAC1C;AAEO,MAAM,kBAAkB,GAAG,CAAC,MAAc,KAAY;AAC5D,IAAA,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,EAAE,GAAG,CAAC;AACpC;AAEO,MAAM,kBAAkB,GAAG,CAAC,IAAY,KAAY;AAC1D,IAAA,OAAO,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC;AAC7C;AAEA;AACO,MAAM,YAAY,GAAG,CAAC,KAAa,KAAI;AAC7C,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,qBAAqB,EAAE,CAAC;AACxB,QAAA,qBAAqB,EAAE,CAAC;AACxB,KAAA,CAAC;AACH;AAEA;AACA;;;;;;;;;;;;AAYG;AACI,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,aAAA,GAAwB,CAAC,KAAI;AACzE,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,qBAAqB,EAAE,aAAa;AACpC,KAAA,CAAC;AACH;AAEA;AACA;;;;;;;;;;;;AAYG;AACI,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,aAAA,GAAwB,CAAC,KAAI;IACzE,OAAO,CAAA,EAAA,EAAK,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;AAClD;AAEA;AACA;;;;;;;;;;;;AAYG;AACI,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,aAAA,GAAwB,CAAC,KAAI;AAC1E,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,qBAAqB,EAAE,aAAa;AACpC,KAAA,CAAC;AACH;AAEO,MAAM,sBAAsB,GAAG,CAAC,QAA4B,KAAa;IAC/E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AAAE,QAAA,OAAO,IAAI;AAEpD,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IAE7C,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC;AACvD;AAEA;AACA;;;;;;;;;;AAUG;AACG,SAAU,YAAY,CAAC,KAAA,GAAgB,EAAE,EAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACvC,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;AAC1E;AAEA;;;;;;;;;;;AAWG;AACG,SAAU,SAAS,CAAC,GAAY,EAAA;AACrC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,EAAE;AAEnB,IAAA,OAAO;AACL,SAAA,OAAO,CAAC,KAAK,EAAE,EAAE;AACjB,SAAA,OAAO,CAAC,aAAa,EAAE,OAAO;AAC9B,SAAA,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;AACjC;;AChRO,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACxC,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,KAAK;AAC3B;AACA,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY;AAC3E,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC;AACH;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,SAAS,eAAe,CAAC,IAAI,EAAE;AACtC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,KAAK;AAC7B,IAAI,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY;;AAE7E,IAAI,IAAI,WAAW;AACnB,IAAI,IAAI,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;AAC3E,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY;;AAEzE,MAAM,WAAW;AACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAC3E,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;AAC5C,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY;;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AACnE,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK;;AAE9E;AACA,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC;AAC7B,EAAE,CAAC;AACH;;AC7DO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK;AACnC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;;AAE/B,IAAI,MAAM,YAAY;AACtB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAChD,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;;AAElD,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;;AAExC,IAAI,MAAM,aAAa;AACvB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;;AAEhD,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa;AAC3C,QAAQ,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AACzE;AACA,QAAQ,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;AAExE,IAAI,IAAI,KAAK;;AAEb,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG;AAC9D,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB;AACA,QAAQ,OAAO,CAAC,aAAa,CAAC,KAAK;AACnC,QAAQ,KAAK;;AAEb,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;;AAEnD,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,EAAE,CAAC;AACH;;AAEA,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE;AACpC,EAAE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC5B,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AACvD,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B,MAAM;AACN,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,SAAS;AAClB;;AAEA,SAAS,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE;AACrC,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC/C,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/B,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,SAAS;AAClB;;ACxDO,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK;AACnC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI;AACjC,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;;AAExC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI;AACjC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AACzC,QAAQ,WAAW,CAAC,CAAC,CAAC;;AAEtB;AACA,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK;;AAExE,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;;AAEnD,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,EAAE,CAAC;AACH;;ACnBA,MAAM,oBAAoB,GAAG;AAC7B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,qBAAqB;AAC9B,IAAI,KAAK,EAAE,6BAA6B;AACxC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,WAAW;AACpB,IAAI,KAAK,EAAE,oBAAoB;AAC/B,GAAG;;AAEH,EAAE,WAAW,EAAE,aAAa;;AAE5B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,iBAAiB;AAC1B,IAAI,KAAK,EAAE,0BAA0B;AACrC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,mBAAmB;AAC5B,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,gBAAgB;AACzB,IAAI,KAAK,EAAE,0BAA0B;AACrC,GAAG;;AAEH,EAAE,OAAO,EAAE;AACX,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,gBAAgB;AACzB,IAAI,KAAK,EAAE,yBAAyB;AACpC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;;AAEH,EAAE,UAAU,EAAE;AACd,IAAI,GAAG,EAAE,eAAe;AACxB,IAAI,KAAK,EAAE,wBAAwB;AACnC,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,aAAa;AACtB,IAAI,KAAK,EAAE,sBAAsB;AACjC,GAAG;AACH,CAAC;;AAEM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK;AACzD,EAAE,IAAI,MAAM;;AAEZ,EAAE,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC;AAChD,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,MAAM,GAAG,UAAU;AACvB,EAAE,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AAC1B,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG;AAC3B,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,EAAE;;AAEF,EAAE,IAAI,OAAO,EAAE,SAAS,EAAE;AAC1B,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;AACtD,MAAM,OAAO,KAAK,GAAG,MAAM;AAC3B,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,KAAK,GAAG,MAAM;AAC3B,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;AClGD,MAAM,WAAW,GAAG;AACpB,EAAE,IAAI,EAAE,0BAA0B;AAClC,EAAE,IAAI,EAAE,oBAAoB;AAC5B,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE,KAAK,EAAE,YAAY;AACrB,CAAC;;AAED,MAAM,WAAW,GAAG;AACpB,EAAE,IAAI,EAAE,eAAe;AACvB,EAAE,IAAI,EAAE,YAAY;AACpB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,CAAC;;AAED,MAAM,eAAe,GAAG;AACxB,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,KAAK,EAAE,oBAAoB;AAC7B,CAAC;;AAEM,MAAM,UAAU,GAAG;AAC1B,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AAC9B,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;AACJ,CAAC;;ACtCD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAK;AACtB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,IAAI,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,QAAQ,GAAG,QAAQ;AACrE,IAAI,OAAO,GAAG,GAAG,IAAI,GAAG,eAAe;AACvC,EAAE,CAAC;AACH,EAAE,SAAS,EAAE,cAAc;AAC3B,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,QAAQ,EAAE,eAAe;AAC3B,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,KAAK,EAAE,GAAG;AACZ,CAAC;;AAEM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK;AACpE,EAAE,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC;;AAE5C,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AACpC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;ACnBD,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AAC/C,CAAC;;AAED,MAAM,aAAa,GAAG;AACtB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;AACxE,CAAC;;AAED,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtE,EAAE,WAAW,EAAE;AACf,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,GAAG;AACH,CAAC;;AAED,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7C,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC1D,EAAE,WAAW,EAAE;AACf,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,GAAG;;AAEH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,GAAG;AACH,CAAC;;AAED,MAAM,eAAe,GAAG;AACxB,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,CAAC;;AAED,MAAM,yBAAyB,GAAG;AAClC,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,CAAC;;AAED,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK;AAChD,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;;AAEpC,EAAE,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE;AAChC,IAAI,OAAO,MAAM,GAAG,GAAG;AACvB,EAAE;AACF,EAAE,OAAO,MAAM,GAAG,GAAG;AACrB,CAAC;;AAEM,MAAM,QAAQ,GAAG;AACxB,EAAE,aAAa;;AAEf,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,eAAe,CAAC;AAC3B,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAE,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC;AAC9C,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,eAAe,CAAC;AACzB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,eAAe,CAAC;AAC7B,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAE,yBAAyB;AAC/C,IAAI,sBAAsB,EAAE,MAAM;AAClC,GAAG,CAAC;AACJ,CAAC;;AC7KD,MAAM,yBAAyB,GAAG,eAAe;AACjD,MAAM,yBAAyB,GAAG,MAAM;;AAExC,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,eAAe;AACzB,EAAE,WAAW,EAAE,6BAA6B;AAC5C,EAAE,IAAI,EAAE,sCAAsC;AAC9C,CAAC;AACD,MAAM,gBAAgB,GAAG;AACzB,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACvB,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AACnD,CAAC;;AAED,MAAM,oBAAoB,GAAG;AAC7B,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,IAAI,EAAE,wBAAwB;AAChC,CAAC;AACD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,CAAC;;AAED,MAAM,kBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE,eAAe;AACzB,EAAE,WAAW,EAAE,qDAAqD;AACpE,EAAE,IAAI,EAAE,8FAA8F;AACtG,CAAC;AACD,MAAM,kBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,GAAG,EAAE;AACP,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,GAAG;AACH,CAAC;;AAED,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,0BAA0B;AACpC,EAAE,KAAK,EAAE,0BAA0B;AACnC,EAAE,WAAW,EAAE,oCAAoC;AACnD,EAAE,IAAI,EAAE,0EAA0E;AAClF,CAAC;AACD,MAAM,gBAAgB,GAAG;AACzB,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;AAC9D,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;AAC/D,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;AACrE,CAAC;;AAED,MAAM,sBAAsB,GAAG;AAC/B,EAAE,MAAM,EAAE,wCAAwC;AAClD,EAAE,GAAG,EAAE,yEAAyE;AAChF,CAAC;AACD,MAAM,sBAAsB,GAAG;AAC/B,EAAE,GAAG,EAAE;AACP,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,QAAQ,EAAE,sBAAsB;AACpC,IAAI,IAAI,EAAE,oBAAoB;AAC9B,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,KAAK,EAAE,QAAQ;AACnB,GAAG;AACH,CAAC;;AAEM,MAAM,KAAK,GAAG;AACrB,EAAE,aAAa,EAAE,mBAAmB,CAAC;AACrC,IAAI,YAAY,EAAE,yBAAyB;AAC3C,IAAI,YAAY,EAAE,yBAAyB;AAC3C,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,YAAY,CAAC;AACxB,IAAI,aAAa,EAAE,oBAAoB;AACvC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,oBAAoB;AACvC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;AACvC,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,YAAY,CAAC;AACtB,IAAI,aAAa,EAAE,kBAAkB;AACrC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,kBAAkB;AACrC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,YAAY,CAAC;AAC1B,IAAI,aAAa,EAAE,sBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAE,sBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;AACJ,CAAC;;AC/HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,IAAI,GAAG;AACpB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,OAAO,EAAE;AACX,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,qBAAqB,EAAE,CAAC;AAC5B,GAAG;AACH,CAAC;;ACpBD,MAAM,MAAM,GAAG,eAAe,CAAC;AAE/B,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACxCJ,IAAA,CAAC,eAAe,CAAC,OAAO,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,wTAAwT,EACxT,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACTD,GAAA,CAAC,eAAe,CAAC,IAAI,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC5BA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,oBAAoB,EAAA,CAAG,EAAA,CACxB,CAAA,EAAA,CACE,CAC1B;AACD,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW;AAE/D,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAG3C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9BA,GAAA,CAAC,eAAe,CAAC,cAAc,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EACpIA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACD,CACjC;AACD,oBAAoB,CAAC,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,WAAW;AAE7E,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9BA,GAAA,CAAC,eAAe,CAAC,gBAAgB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EACtIA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACD,CACnC;AACD,sBAAsB,CAAC,WAAW,GAAG,eAAe,CAAC,gBAAgB,CAAC,WAAW;AAEjF,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7DA,GAAA,CAAC,eAAe,CAAC,MAAM,cACtBC,IAAA,CAAC,eAAe,CAAC,OAAO,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,+iBAA+iB,EAC/iB,QAAQ,KAAK,QAAQ;AACpB,YAAA,iIAAiI,EAClI,SAAS,CACT,EACD,QAAQ,EAAE,QAAQ,EAAA,GACd,KAAK,aAETD,GAAA,CAAC,oBAAoB,KAAG,EACxBA,GAAA,CAAC,eAAe,CAAC,QAAQ,IACxB,SAAS,EAAE,EAAE,CACZ,KAAK,EACL,QAAQ,KAAK,QAAQ,IAAI,yFAAyF,CAClH,EAAA,QAAA,EAEA,QAAQ,EAAA,CACiB,EAC3BA,IAAC,sBAAsB,EAAA,EAAA,CAAG,IACD,EAAA,CACF,CACzB;AACD,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW;AAE/D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAClH;AAEF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW;AAE3D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtCC,IAAA,CAAC,eAAe,CAAC,IAAI,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,2NAA2N,EAC3N,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETD,IAAC,eAAe,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAA4B,EAE/DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAC9EA,GAAA,CAAC,eAAe,CAAC,aAAa,EAAA,EAAA,QAAA,EAC7BA,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,EAAA,CACE,EAAA,CAC1B,CAAA,EAAA,CACe,CACvB;AAEF,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW;AAEzD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAGtC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,eAAe,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAC5I,eAAe,CAAC,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW;;AChGnE,MAAM,UAAU,GAAGM,cAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,GAAGC,SAAO,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,GAAGA,SAAO,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC/I,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;IAE5I,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC;AAEtF,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAI;QAC3C,IAAI,YAAY,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7D,eAAe,CAAC,OAAO,CAAC;QACzB;AACD,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAY,KAAI;QACzC,IAAI,YAAY,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,eAAe,CAAC,OAAO,CAAC;QACzB;AACD,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,YAA8B,KAAI;AAC3D,QAAA,MAAM,OAAO,GAAG,YAAY,IAAI,IAAI;QACpC,eAAe,CAAC,OAAO,CAAC;QACxB,gBAAgB,CAAC,KAAK,CAAC;QACvB,cAAc,CAAC,OAAO,CAAC;AACxB,IAAA,CAAC;IAED,QACCP,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,QAAA,EAC1DC,IAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAA,QAAA,EAAA,CAC3DD,IAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBA,GAAA,CAACQ,UAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,8BAA8B,EAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAA,CAAI,EAAA,CAC1F,EACjBP,IAAA,CAAC,cAAc,IAAC,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EAAA,CAChFA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAA,CAC9CA,IAAA,CAAC,MAAM,EAAA,EAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAACQ,UAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CAC5FT,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,WAAW,EAAA,QAAA,EACnCA,GAAA,CAAC,WAAW,EAAA,EAAC,WAAW,EAAC,OAAO,EAAA,CAAG,EAAA,CACpB,EAChBA,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EACZ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MACjBA,GAAA,CAAC,UAAU,EAAA,EAAa,KAAK,EAAE,KAAK,EAAA,QAAA,EAClC,KAAK,EAAA,EADU,KAAK,CAET,CACb,CAAC,EAAA,CACa,CAAA,EAAA,CACR,EACTC,IAAA,CAAC,MAAM,EAAA,EAAC,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAEM,SAAO,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAA,QAAA,EAAA,CAC7FP,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,WAAW,EAAA,QAAA,EACnCA,GAAA,CAAC,WAAW,EAAA,EAAC,WAAW,EAAC,MAAM,EAAA,CAAG,EAAA,CACnB,EAChBA,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EACZ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACfA,GAAA,CAAC,UAAU,EAAA,EAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAA,QAAA,EAC3C,IAAI,EAAA,EADW,IAAI,CAER,CACb,CAAC,EAAA,CACa,CAAA,EAAA,CACR,CAAA,EAAA,CACJ,EACNA,IAACU,QAAiB,EAAA,EACjB,IAAI,EAAC,QAAQ,EACb,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE,YAAY,IAAI,SAAS,EAAA,CAC/B,CAAA,EAAA,CACc,CAAA,EAAA,CACR,EAAA,CACL;AAER,CAAC,CACD;;ACzED,SAASC,kBAAgB,CAAC,SAA6B,EAAE,WAAgC,EAAA;AACxF,IAAA,IAAI,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE;AACvC,QAAA,OAAO,EAAE;IACV;IACA,OAAO,WAAW,GAAG,gBAAgB,GAAG,cAAc;AACvD;AAEA,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACxH,IAAA,QACCX,GAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,EAAA,CACR;AAEJ,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrI,QACCX,eACC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACR;AAEJ,CAAC;AAEe,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACvI,QACCX,eACC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACZ,8XAA8X,EAC9XW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,YAAA,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC,EAAA,CACA;AAEJ,CAAC;AAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAChJ,QACCX,GAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACR;AAEJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACtG,IAAA,QACCX,GAAA,CAAC,SAAS,EAAA,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,IAAI,EAAE,EAChB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ,CAAC,CACD;AAEqB,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC/F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC;AACnE,IAAA,MAAM,qBAAqB,GAAG,CAAC,YAAyB,KAAI;QAC3D,eAAe,CAAC,YAAY,CAAC;QAE7B,IAAI,YAAY,EAAE;YACjB,MAAM,aAAa,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC9D,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAyC,CAAC;YACtF;QACD;AACD,IAAA,CAAC;IACD,SAAS,CAAC,MAAK;QACd,IAAI,KAAK,EAAE;YACV,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE;gBACxC,eAAe,CAAC,UAAU,CAAC;YAC5B;QACD;AACD,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,QACCV,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC/BD,IAAC,SAAS,EAAA,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,IAAI,YAAY,EACxC,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,EAEFX,aAAK,SAAS,EAAC,yDAAyD,EAAA,QAAA,EACvEA,GAAA,CAAC,UAAU,EAAA,EAAC,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,GAAI,EAAA,CACjF,CAAA,EAAA,CACD;AAER,CAAC;AAGF,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACrI,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACCA,GAAA,CAAC,SAAS,EAAA,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,IAAI,EAAE,EAChB,eAAe,EAAE,IAAI,EACrB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,EAAA,CACG;AAER,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAClI,IAAA,QACCX,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACCA,GAAA,CAAC,SAAS,EAAA,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,IAAI,EAAE,EAChB,eAAe,EAAE,IAAI,EACrB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,kBAAkB,EAC9B,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,EAAA,CACG;AAER,CAAC,CAAC;AAEoB,KAAK,CAAC,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACnI,IAAA,QACCX,GAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,EAAA,CACR;AAEJ,CAAC;AAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAsC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAClJ,IAAA,MAAM,YAAY,GAAG,CAAC,KAA0C,KAAI;AACnE,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;QACxE,MAAM,cAAc,GAAG,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,aAAa,CAAC,YAAY,CAAC,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC;QAExG,IAAI,QAAQ,EAAE;AACb,YAAA,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC;QAC3E;AACD,IAAA,CAAC;AAED,IAAA,QACCX,GAAA,CAAC,SAAS,EAAA,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,EAAE,EACP,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,GAAG,MAAM,EAC/C,SAAS,EAAE,EAAE,CACZ,4YAA4Y,EAC5YW,kBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ,CAAC,CAAC;;AChQF,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B,MACvEX,aAAK,IAAI,EAAC,YAAY,EAAA,YAAA,EAAY,YAAY,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAE7H,UAAU,CAAC,WAAW,GAAG,YAAY;AAErC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAA+C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACrHA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACzF;AACD,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAA4C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC/GA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACzD;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAQ7C,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,EAAuB,MAC5FA,2BACe,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC3C,SAAS,EAAE,EAAE,CACZ,cAAc,CAAC;QACd,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO;QACvC,IAAI;AACJ,KAAA,CAAC,EACF,QAAQ,GAAG,EAAE,GAAG,gBAAgB,EAChC,SAAS,CACT,KACG,KAAK,EAAA,CACR;AAEH,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,kBAAkB,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA+C,MACzGC,IAAA,CAAC,cAAc,EAAA,EAAA,YAAA,EACH,qBAAqB,EAChC,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAA,GAClG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAqB,CAAA,EAAA,CACL;AAElB,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;AAErD,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA+C,MACrGC,IAAA,CAAC,cAAc,EAAA,EAAA,YAAA,EACH,iBAAiB,EAC5B,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAA,GAClG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAoB,EACpBA,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,CAAA,EAAA,CACpB;AAElB,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,kBAAkB,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC,MAChFC,IAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAkB,SAAS,EAAE,EAAE,CAAC,0CAA0C,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,QAAA,EAAA,CAChGD,IAAC,cAAc,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACtCA,cAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,CAAkB,CAAA,EAAA,CACrC;AAER,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;ACtErD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACnCA,GAAA,CAAC,iBAAiB,CAAC,IAAI,EAAA,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0EAA0E,EAAE,SAAS,CAAC,EAAA,GAChG,KAAK,YAETA,GAAA,CAAC,iBAAiB,CAAC,SAAS,EAAA,EAC3B,SAAS,EAAC,2DAA2D,EACrE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAA,YAAA,EAAe,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,EAAA,CAC1D,EAAA,CACsB,CACzB;AAEF,QAAQ,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW;;ACbzD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAClC,OAAOA,GAAA,CAAC,mBAAmB,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,KAAM,KAAK,EAAE,GAAG,EAAE,GAAG,GAAI;AACvF,CAAC;AACD,UAAU,CAAC,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW;AAE7D,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAClC,IAAA,QACCA,GAAA,CAAC,mBAAmB,CAAC,IAAI,EAAA,EACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,0OAA0O,EAC1O,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAETA,GAAA,CAAC,mBAAmB,CAAC,SAAS,IAAC,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAC1EA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,uCAAuC,GAAG,EAAA,CAC7B,EAAA,CACN;AAE7B,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW;;AC3BjE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAGjC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvCC,IAAA,CAAC,mBAAmB,CAAC,IAAI,EAAA,EACvB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAA,GAChD,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,mBAAmB,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,iCAAiC,EAAA,QAAA,EACtE,QAAQ,EAAA,CACoB,EAC/BA,GAAA,CAAC,SAAS,KAAG,EACbA,GAAA,CAAC,mBAAmB,CAAC,MAAM,EAAA,EAAA,CAAG,CAAA,EAAA,CACL,CAC5B;AACD,UAAU,CAAC,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW;AAE7D,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAGhC,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvDA,GAAA,CAAC,mBAAmB,CAAC,mBAAmB,EAAA,EACtC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,+CAA+C,EAC/C,WAAW,KAAK,UAAU;QACxB,oDAAoD,EACtD,WAAW,KAAK,YAAY;AAC1B,QAAA,sDAAsD,EACxD,SAAS,CACV,KACG,KAAK,EAAA,QAAA,EAETA,IAAC,mBAAmB,CAAC,eAAe,EAAA,EAAC,SAAS,EAAC,wCAAwC,GAAG,EAAA,CAClD,CAC3C;AACD,SAAS,CAAC,WAAW,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,WAAW;;ACtC3E,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAIhC,CACE,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EACtE,GAAG,MAEHA,GAAA,CAAC,kBAAkB,CAAC,IAAI,IACtB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,WAAW,KAAK,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,EAClE,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AAEH,SAAS,CAAC,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW;;AClB3D,MAAM,KAAK,GAAGY,eAAc,CAAC;AAE7B,MAAM,YAAY,GAAGA,eAAc,CAAC;AAEpC,MAAM,UAAU,GAAGA,eAAc,CAAC;AAElC,MAAM,WAAW,GAAGA,eAAc,CAAC;AAEnC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BZ,GAAA,CAACY,eAAc,CAAC,OAAO,EAAA,EACtB,SAAS,EAAE,EAAE,CACZ,yJAAyJ,EACzJ,SAAS,CACT,EAAA,GACG,KAAK,EACT,GAAG,EAAE,GAAG,EAAA,CACP,CACF;AAEF,YAAY,CAAC,WAAW,GAAGA,eAAc,CAAC,OAAO,CAAC,WAAW;AAE7D,MAAM,aAAa,GAAG,GAAG,CACxB,kMAAkM,EAClM;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,IAAI,EAAE;AACL,YAAA,GAAG,EAAE,mGAAmG;AACxG,YAAA,MAAM,EAAE,4GAA4G;AACpH,YAAA,IAAI,EAAE,+HAA+H;AACrI,YAAA,KAAK,EAAE,mIAAmI;AAC1I,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,IAAI,EAAE,OAAO;AACb,KAAA;AACD,CAAA,CACD;AAID,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtDX,KAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACXD,IAAC,YAAY,EAAA,EAAA,CAAG,EAChBC,IAAA,CAACW,eAAc,CAAC,OAAO,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,aAC5F,QAAQ,EACTX,KAACW,eAAc,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,qPAAqP,aACpRZ,GAAA,CAAC,CAAC,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACzBA,cAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,OAAA,EAAA,CAAa,CAAA,EAAA,CAChB,IACC,CAAA,EAAA,CACZ,CACd;AAEF,YAAY,CAAC,WAAW,GAAGY,eAAc,CAAC,OAAO,CAAC,WAAW;AAE7D,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,MACjFZ,aAAK,SAAS,EAAE,EAAE,CAAC,kDAAkD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAEjG,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,MACjFA,aAAK,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAE9G,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAACY,eAAc,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAChH;AAEF,UAAU,CAAC,WAAW,GAAGA,eAAc,CAAC,KAAK,CAAC,WAAW;AAEzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKZ,GAAA,CAACY,eAAc,CAAC,WAAW,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAClJ,gBAAgB,CAAC,WAAW,GAAGA,eAAc,CAAC,WAAW,CAAC,WAAW;;ACpFrE,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EAC6B,EAAA;AACrC,IAAA,QACEZ,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,EAAA,GACzD,KAAK,EAAA,CACT;AAEN;;ACRA,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAEjC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9CC,IAAA,CAAC,gBAAgB,CAAC,OAAO,EAAA,EACxB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACZ,2XAA2X,EAC3X,SAAS,CACT,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAER,KAAK,CAAC,QAAQ,EACfD,GAAA,CAAC,gBAAgB,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,8SAA8S,EAAA,CAAG,CAAA,EAAA,CACzT,CAC3B;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW;;ACzBjE,MAAM,iBAAiB,GAAG,IAAI;SAEd,WAAW,GAAA;AAC1B,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,SAAS,CAAC;AAE9E,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACpB,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA,YAAA,EAAe,iBAAiB,GAAG,CAAC,CAAA,GAAA,CAAK,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAK;AACrB,YAAA,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC;AACnD,QAAA,CAAC;AACD,QAAA,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACxC,QAAA,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC;QAClD,OAAO,MAAM,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC;IAEN,OAAO,CAAC,CAAC,QAAQ;AAClB;;ACLA,MAAM,mBAAmB,GAAG,eAAe;AAC3C,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/C,MAAM,aAAa,GAAG,OAAO;AAC7B,MAAM,oBAAoB,GAAG,OAAO;AACpC,MAAM,kBAAkB,GAAG,MAAM;AACjC,MAAM,yBAAyB,GAAG,GAAG;AAYrC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAwB,IAAI,CAAC;AAEvE,SAAS,UAAU,GAAA;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACrE;AAEA,IAAA,OAAO,OAAO;AACf;AAEA,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAOtC,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAClH,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAIzD,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrD,IAAA,MAAM,IAAI,GAAG,QAAQ,IAAI,KAAK;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAChC,CAAC,KAA8C,KAAI;AAClD,QAAA,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK;QACnE,IAAI,WAAW,EAAE;YAChB,WAAW,CAAC,SAAS,CAAC;QACvB;aAAO;YACN,QAAQ,CAAC,SAAS,CAAC;QACpB;;QAGA,QAAQ,CAAC,MAAM,GAAG,CAAA,EAAG,mBAAmB,IAAI,SAAS,CAAA,kBAAA,EAAqB,sBAAsB,CAAA,CAAE;AACnG,IAAA,CAAC,EACD,CAAC,WAAW,EAAE,IAAI,CAAC,CACnB;;AAGD,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;QAC5C,OAAO,QAAQ,GAAG,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;IAC5E,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;;AAGtC,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACpB,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAI;AAC9C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,yBAAyB,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;gBAChF,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,aAAa,EAAE;YAChB;AACD,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;QACjD,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;AAClE,IAAA,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;;;IAInB,MAAM,KAAK,GAAG,IAAI,GAAG,UAAU,GAAG,WAAW;IAE7C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CACjC,OAAO;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,aAAa;QACb,aAAa;AACb,KAAA,CAAC,EACF,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAC1E;AAED,IAAA,QACCA,GAAA,CAAC,cAAc,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,YAAY,YAC3CA,GAAA,CAAC,eAAe,IAAC,aAAa,EAAE,CAAC,EAAA,QAAA,EAChCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EACJ;AACC,oBAAA,iBAAiB,EAAE,aAAa;AAChC,oBAAA,sBAAsB,EAAE,kBAAkB;AAC1C,oBAAA,GAAG,KAAK;iBACe,EAEzB,SAAS,EAAE,EAAE,CAAC,mFAAmF,EAAE,SAAS,CAAC,EAC7G,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,QAAA,EAER,QAAQ,GACJ,EAAA,CACW,EAAA,CACO;AAE5B,CAAC;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAE/C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAO9B,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC3G,IAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE;AAEnE,IAAA,IAAI,WAAW,KAAK,MAAM,EAAE;QAC3B,QACCA,aAAK,SAAS,EAAE,EAAE,CAAC,6EAA6E,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,YAC/H,QAAQ,EAAA,CACJ;IAER;IAEA,IAAI,QAAQ,EAAE;QACb,QACCA,GAAA,CAAC,KAAK,EAAA,EAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAA,GAAM,KAAK,YAC9DA,GAAA,CAAC,YAAY,EAAA,EAAA,cAAA,EACC,SAAS,EAAA,aAAA,EACV,MAAM,EAClB,SAAS,EAAC,8EAA8E,EACxF,KAAK,EACJ;AACC,oBAAA,iBAAiB,EAAE,oBAAoB;AAChB,iBAAA,EAEzB,IAAI,EAAE,IAAI,EAAA,QAAA,EAEVA,aAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,EAAA,CACjD,EAAA,CACR;IAEV;IAEA,QACCC,cACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,sEAAsE,EAAA,YAAA,EACpE,KAAK,EAAA,kBAAA,EACC,KAAK,KAAK,WAAW,GAAG,WAAW,GAAG,EAAE,EAAA,cAAA,EAC5C,OAAO,eACV,IAAI,EAAA,QAAA,EAAA,CAGfD,aACC,SAAS,EAAE,EAAE,CACZ,+FAA+F,EAC/F,wCAAwC,EACxC,oCAAoC,EACpC,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK;AACrC,sBAAE;AACF,sBAAE,wDAAwD,CAC3D,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,EAAE,CACZ,wIAAwI,EACxI,IAAI,KAAK;AACR,sBAAE;AACF,sBAAE,kFAAkF;;AAErF,gBAAA,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK;AACrC,sBAAE;sBACA,yHAAyH,EAC5H,SAAS,CACT,EAAA,GACG,KAAK,YAETA,GAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EACc,SAAS,EACtB,SAAS,EAAC,+MAA+M,EAAA,QAAA,EAExN,QAAQ,GACJ,EAAA,CACD,CAAA,EAAA,CACD;AAER,CAAC;AACD,OAAO,CAAC,WAAW,GAAG,SAAS;AAE/B,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACzC,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE;AAEtC,IAAA,QACCC,IAAA,CAAC,MAAM,EAAA,EACN,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,SAAS,EACtB,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EACnC,OAAO,EAAE,CAAC,KAAK,KAAI;AAClB,YAAA,OAAO,GAAG,KAAK,CAAC;AAChB,YAAA,aAAa,EAAE;AAChB,QAAA,CAAC,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAETD,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EACbA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAsB,CAAA,EAAA,CACvC;AAEX,CAAC;AAEF,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAoD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACxH,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE;IAEtC,QACCA,gBACC,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,MAAM,EAAA,YAAA,EACR,gBAAgB,EAC3B,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAE,EAAE,CACZ,iPAAiP,EACjP,4EAA4E,EAC5E,wHAAwH,EACxH,yJAAyJ,EACzJ,2DAA2D,EAC3D,2DAA2D,EAC3D,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAA+C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACpH,QACCA,cACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,uDAAuD,EACvD,8QAA8Q,EAC9Q,SAAS,CACT,KACG,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAqE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC1I,QACCA,IAAC,KAAK,EAAA,EACL,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,OAAO,EACpB,SAAS,EAAE,EAAE,CAAC,2FAA2F,EAAE,SAAS,CAAC,EAAA,GACjH,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACpH,IAAA,OAAOA,aAAK,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AAC/G,CAAC;AACD,aAAa,CAAC,WAAW,GAAG,eAAe;AAE3C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACpH,IAAA,OAAOA,aAAK,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AAC/G,CAAC;AACD,aAAa,CAAC,WAAW,GAAG,eAAe;AAE3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CACxC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAChC,OAAOA,GAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,WAAW,EAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AAC9H,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;AAEjD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrH,QACCA,aACC,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,SAAS,EACtB,SAAS,EAAE,EAAE,CAAC,gGAAgG,EAAE,SAAS,CAAC,KACtH,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACnH,IAAA,OAAOA,aAAK,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,2CAA2C,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,GAAI;AAChI,CAAC;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;AAEzC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CACzC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACjD,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK;IAEnC,QACCA,GAAA,CAAC,IAAI,EAAA,EACJ,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,aAAa,EAC1B,SAAS,EAAE,EAAE,CACZ,oOAAoO,EACpO,6EAA6E,EAC7E,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAC1C,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACjD,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;AAEtC,IAAA,QACCA,GAAA,CAAC,IAAI,EAAA,EACJ,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,cAAc,EAC3B,SAAS,EAAE,EAAE,CACZ,0RAA0R;;QAE1R,+CAA+C,EAC/C,sCAAsC,EACtC,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR;AAEJ,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;AAErD,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACtHA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACrG;AACD,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;AAEvD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAA+C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC/GA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,MAAM,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAC/G;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAA4C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAChHA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,WAAW,EAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAC1G;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAE/C,MAAM,yBAAyB,GAAG,GAAG,CACpC,mzBAAmzB,EACnzB;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,8DAA8D;AACvE,YAAA,OAAO,EACN,oKAAoK;AACrK,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,EAAE,EAAE,aAAa;AACjB,YAAA,EAAE,EAAE,iDAAiD;AACrD,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,KAAA;AACD,CAAA,CACD;AAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAOxC,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACrH,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;IACtC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE;AAExC,IAAA,MAAM,MAAM,IACXA,GAAA,CAAC,IAAI,EAAA,EACJ,GAAG,EAAE,GAAG,kBACK,aAAa,EAAA,WAAA,EACf,IAAI,EAAA,aAAA,EACF,QAAQ,EACrB,SAAS,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAClE,KAAK,EAAA,CACR,CACF;IAED,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,OAAO,MAAM;IACd;AAEA,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAChC,QAAA,OAAO,GAAG;AACT,YAAA,QAAQ,EAAE,OAAO;SACjB;IACF;AAEA,IAAA,QACCC,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACPD,IAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAAE,MAAM,EAAA,CAAkB,EACjDA,GAAA,CAAC,cAAc,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,EAAE,KAAK,KAAK,WAAW,IAAI,QAAQ,EAAA,GAAM,OAAO,EAAA,CAAI,CAAA,EAAA,CAC7F;AAEZ,CAAC;AACD,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAMxC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxE,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;AAEtC,IAAA,QACCA,GAAA,CAAC,IAAI,EAAA,EACJ,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,aAAa,EAC1B,SAAS,EAAE,EAAE,CACZ,gVAAgV;;QAEhV,+CAA+C,EAC/C,uCAAuC,EACvC,8CAA8C,EAC9C,yCAAyC,EACzC,sCAAsC,EACtC,WAAW;AACV,YAAA,0LAA0L,EAC3L,SAAS,CACT,KACG,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AAEnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAA8C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACnHA,GAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,YAAY,EACzB,SAAS,EAAE,EAAE,CACZ,wKAAwK,EACxK,0HAA0H,EAC1H,uCAAuC,EACvC,8CAA8C,EAC9C,yCAAyC,EACzC,sCAAsC,EACtC,SAAS,CACT,KACG,KAAK,EAAA,CACR,CACF;AACD,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;AAEjD,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAK1C,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;;AAEpD,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAK;AAChC,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG;IACjD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAA,cAAA,EAAe,eAAe,EAAC,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAAA,CAC5H,QAAQ,IAAID,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,cAAA,EAAc,oBAAoB,EAAA,CAAG,EACzFA,IAAC,QAAQ,EAAA,EACR,SAAS,EAAC,qCAAqC,kBAClC,oBAAoB,EACjC,KAAK,EACJ;AACC,oBAAA,kBAAkB,EAAE,KAAK;iBACF,EAAA,CAExB,CAAA,EAAA,CACG;AAER,CAAC;AACD,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;AAEvD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAA+C,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAClHA,GAAA,CAAA,IAAA,EAAA,EACC,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,UAAU,EACvB,SAAS,EAAE,EAAE,CACZ,gGAAgG,EAChG,sCAAsC,EACtC,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AACD,cAAc,CAAC,WAAW,GAAG,gBAAgB;AAE7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAA4C,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI;AACzI,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;AAErD,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAO3C,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC1E,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG;AAEjC,IAAA,QACCA,GAAA,CAAC,IAAI,IACJ,GAAG,EAAE,GAAG,EAAA,cAAA,EACK,iBAAiB,eACnB,IAAI,EAAA,aAAA,EACF,QAAQ,EACrB,SAAS,EAAE,EAAE,CACZ,6eAA6e,EAC7e,wFAAwF,EACxF,IAAI,KAAK,IAAI,IAAI,SAAS,EAC1B,IAAI,KAAK,IAAI,IAAI,SAAS,EAC1B,sCAAsC,EACtC,SAAS,CACT,KACG,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;ACrjBzD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BC,IAAA,CAAC,eAAe,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,0DAA0D,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EAAA,CAC9HD,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,+EAA+E,EAAA,QAAA,EAC/GA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,uCAAuC,EAAA,CAAG,EAAA,CACpD,EACxBA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,gQAAgQ,EAAA,CAAG,CAAA,EAAA,CAC9Q,CACvB;AAEF,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW;;ACVrD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,gBAAgB,CAAC,IAAI,EAAA,EACrB,SAAS,EAAE,EAAE,CACZ,gYAAgY,EAChY,SAAS,CACT,EAAA,GACG,KAAK,EACT,GAAG,EAAE,GAAG,EAAA,QAAA,EAERA,GAAA,CAAC,gBAAgB,CAAC,KAAK,EAAA,EACtB,SAAS,EAAE,EAAE,CACZ,4KAA4K,CAC5K,EAAA,CACA,EAAA,CACqB,CACxB;AAEF,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW;;ACnBtD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA2D,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACrHA,GAAA,CAAA,OAAA,EAAA,EAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACzF;AACD,KAAK,CAAC,WAAW,GAAG,OAAO;AAE3B,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAyE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACzIA,GAAA,CAAA,OAAA,EAAA,EAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACxF;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAyE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvIA,GAAA,CAAA,OAAA,EAAA,EAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACtF;AACD,SAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAyE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACzIA,GAAA,CAAA,OAAA,EAAA,EAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACnH;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;AAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAiE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9HA,GAAA,CAAA,IAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,sDAAsD,EAAE,+CAA+C,EAAE,SAAS,CAAC,EAAA,GAC7H,KAAK,EAAA,CACR,CACF;AACD,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAqE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACnIA,GAAA,CAAA,IAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+GAA+G,EAAE,SAAS,CAAC,EAAA,GACrI,KAAK,EAAA,CACR,CACF;AACD,SAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAqE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACnIA,GAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACxG;AACD,SAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAyE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC1IA,GAAA,CAAA,SAAA,EAAA,EAAS,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CAChG;AACD,YAAY,CAAC,WAAW,GAAG,cAAc;;AC7CzC,MAAM,IAAI,GAAG,aAAa,CAAC;AAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,aAAa,CAAC,IAAI,EAAA,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0GAA0G,EAAE,SAAS,CAAC,EAAA,GAChI,KAAK,EAAA,CACR,CACF;AAEF,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW;AAErD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,aAAa,CAAC,OAAO,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,qYAAqY,EACrY,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW;AAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,aAAa,CAAC,OAAO,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,iIAAiI,EACjI,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW;;ACxC3D,SAAS,gBAAgB,CAAC,SAA6B,EAAE,WAAgC,EAAA;AACxF,IAAA,IAAI,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE;AACvC,QAAA,OAAO,EAAE;IACV;IACA,OAAO,WAAW,GAAG,gBAAgB,GAAG,cAAc;AACvD;AAEA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAyE,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1I,IAAA,QACCA,GAAA,CAAA,UAAA,EAAA,EACC,SAAS,EAAE,EAAE,CACZ,sSAAsS,EACtS,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,EAC3D,SAAS,CACT,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACR;AAEJ,CAAC;AACD,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACjBjC,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC9BA,GAAA,CAAC,eAAe,CAAC,QAAQ,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,2CAA2C,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI,CACxH;AACD,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW;AAEhE,MAAM,aAAa,GAAG,GAAG,CACxB,wlBAAwlB,EACxlB;AACC,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,sCAAsC;AAC/C,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,OAAO,EAAE,wBAAwB;AACjC,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,CAAA,CACD;AAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAG5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC3C,OAAOA,GAAA,CAAC,eAAe,CAAC,IAAI,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAC3G,CAAC;AACD,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW;AAEpD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,eAAe,CAAC,MAAM,EAAA,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,+gBAA+gB,EAC/gB,SAAS,CACT,EAAA,GACG,KAAK,EAAA,CACR,CACF;AAEF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW;AAE5D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5BA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACZ,uVAAuV,EACvV,SAAS,CACT,EAAA,aAAA,EACW,EAAE,EAAA,GACV,KAAK,EAAA,QAAA,EAETA,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACF,CACxB;AAEF,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW;AAE1D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,eAAe,CAAC,KAAK,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AAEpI,UAAU,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW;AAE1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAGvC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAKA,GAAA,CAAC,eAAe,CAAC,WAAW,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,CAAI;AACxI,gBAAgB,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,WAAW;;AChFtE;AAKA,MAAM,WAAW,GAAG,CAAC;AACrB,MAAM,kBAAkB,GAAG,OAAO;AAiBlC,IAAI,KAAK,GAAG,CAAC;AAEb,SAAS,KAAK,GAAA;IACb,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB;AAC7C,IAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;AACxB;AA0BA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyC;AAEtE,MAAM,gBAAgB,GAAG,CAAC,OAAe,KAAI;AAC5C,IAAA,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC/B;IACD;AAEA,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC/B,QAAA,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7B,QAAA,QAAQ,CAAC;AACR,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,OAAO,EAAE,OAAO;AAChB,SAAA,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC;AAEtB,IAAA,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;AACpC,CAAC;AAEM,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,MAAc,KAAW;AAC9D,IAAA,QAAQ,MAAM,CAAC,IAAI;AAClB,QAAA,KAAK,WAAW;YACf,OAAO;AACN,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;aAC7D;AAEF,QAAA,KAAK,cAAc;YAClB,OAAO;AACN,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;aAC3F;QAEF,KAAK,eAAe,EAAE;AACrB,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;YAE1B,IAAI,OAAO,EAAE;gBACZ,gBAAgB,CAAC,OAAO,CAAC;YAC1B;iBAAO;AACN,gBAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACjC,oBAAA,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B;YACD;YAEA,OAAO;AACN,gBAAA,GAAG,KAAK;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAC1B,CAAC,CAAC,EAAE,KAAK,OAAO,IAAI,OAAO,KAAK;AAC/B,sBAAE;AACA,wBAAA,GAAG,CAAC;AACJ,wBAAA,IAAI,EAAE,KAAK;AACV;sBACD,CAAC,CACJ;aACD;QACF;AACA,QAAA,KAAK,cAAc;AAClB,YAAA,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;gBACjC,OAAO;AACN,oBAAA,GAAG,KAAK;AACR,oBAAA,MAAM,EAAE,EAAE;iBACV;YACF;YACA,OAAO;AACN,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC;aAC3D;;AAEJ,CAAC;AAED,MAAM,SAAS,GAAkC,EAAE;AAEnD,IAAI,WAAW,GAAU,EAAE,MAAM,EAAE,EAAE,EAAE;AAEvC,SAAS,QAAQ,CAAC,MAAc,EAAA;AAC/B,IAAA,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;AAC1C,IAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QACjC,QAAQ,CAAC,WAAW,CAAC;IACtB;AACD;AAIA,SAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAS,EAAA;AACjC,IAAA,MAAM,EAAE,GAAG,KAAK,EAAE;IAElB,MAAM,MAAM,GAAG,CAAC,KAAmB,KAClC,QAAQ,CAAC;AACR,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;AACvB,KAAA,CAAC;AACH,IAAA,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAEtE,IAAA,QAAQ,CAAC;AACR,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE;AACN,YAAA,GAAG,KAAK;YACR,EAAE;AACF,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,YAAY,EAAE,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,CAAC,IAAI;AAAE,oBAAA,OAAO,EAAE;YACrB,CAAC;AACD,SAAA;AACD,KAAA,CAAC;IAEF,OAAO;AACN,QAAA,EAAE,EAAE,EAAE;QACN,OAAO;QACP,MAAM;KACN;AACF;AAEA,SAAS,QAAQ,GAAA;AAChB,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAQ,WAAW,CAAC;AAE5D,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACpB,QAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,QAAA,OAAO,MAAK;YACX,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,YAAA,IAAI,KAAK,GAAG,EAAE,EAAE;AACf,gBAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3B;AACD,QAAA,CAAC;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,OAAO;AACN,QAAA,GAAG,KAAK;QACR,KAAK;AACL,QAAA,OAAO,EAAE,CAAC,OAAgB,KAAK,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;KAC3E;AACF;;SCnLgB,OAAO,GAAA;AACtB,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;AAE7B,IAAA,MAAM,OAAO,GAAG,CAAC,IAAqB,EAAE,OAAsB,KAAI;QACjE,IAAI,IAAI,EAAE;AACT,YAAA,OAAO,IAAI;QACZ;QAEA,QAAQ,OAAO;AACd,YAAA,KAAK,SAAS;AACb,gBAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uCAAuC,EAAA,QAAA,EACrDA,IAAC,KAAK,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,EAAA,CAAG,EAAA,CACrC;AAER,YAAA,KAAK,aAAa;AACjB,gBAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EACjDA,IAAC,OAAO,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,EAAA,CAAG,EAAA,CACvC;AAER,YAAA;AACC,gBAAA,OAAO,IAAI;;AAEd,IAAA,CAAC;IAED,QACCC,KAAC,aAAa,EAAA,EAAA,QAAA,EAAA,CACZ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,MACvEA,KAAC,KAAK,EAAA,EAAA,GAAc,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAA,CAChFA,cAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CAC1BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,EAC9B,KAAK,IAAID,GAAA,CAAC,UAAU,cAAE,KAAK,EAAA,CAAc,SACrC,EACL,WAAW,IAAIA,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EAAE,WAAW,EAAA,CAAoB,CAAA,EAAA,CAC7D,EACL,MAAM,EACPA,IAAC,UAAU,EAAA,EAAC,SAAS,EAAC,YAAY,EAAA,CAAG,KAT1B,EAAE,CAUN,CACR,CAAC,EACFA,IAAC,aAAa,EAAA,EAAA,CAAG,CAAA,EAAA,CACF;AAElB;;AClCc,SAAU,WAAW,CAAC,EAAE,SAAS,EAAE,aAAa,EAAqB,EAAA;IAClF,MAAM,OAAO,GAAG,IAAI;IACpB,MAAM,SAAS,GAAG,IAAI;IAEtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGM,cAAK,CAAC,QAAQ,CAAkB;AACvD,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,EAAE,EAAE,OAAO;AACX,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,MAAK;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;YAC3C,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAClC;AACD,IAAA,CAAC;AAED,IAAA,QACCN,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,YAC1CC,IAAA,CAACY,SAAO,EAAA,EAAA,QAAA,EAAA,CACPb,GAAA,CAACc,gBAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBb,IAAA,CAAC,MAAM,EAAA,EACN,EAAE,EAAC,MAAM,EACT,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,qGAAqG,EAAA,QAAA,EAAA,CAEhHD,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,MAAM,EAAA,CAAG,EAC1D,IAAI,EAAE,EAAE,IACRC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAA,KAAA,EAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA,EAAA,CAC1F,KAEHF,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAgC,CAChC,IACO,EAAA,CACO,EACjBC,IAAA,CAACc,gBAAc,IAAC,SAAS,EAAC,4FAA4F,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EAAA,CACnIf,GAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,IAAI,EAAA,CAAG,EAEzFA,GAAA,CAAC,YAAY,IAAC,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAC7DA,IAAC,MAAM,EAAA,EAAC,SAAS,EAAC,4DAA4D,EAAC,OAAO,EAAE,UAAU,+BAEzF,EAAA,CACK,CAAA,EAAA,CACC,CAAA,EAAA,CACR,EAAA,CACL;AAER;;AC5DA;SACgB,sBAAsB,GAAA;;;IAGrC,OAAO;AACN,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,GAAG,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACP,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACP,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,KAAK,EAAE;AACN,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,GAAG,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACP,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACP,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,MAAM,EAAE;AACP,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,OAAO,EAAE;AACR,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;AACD,QAAA,IAAI,EAAE;AACL,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,GAAG,EAAE,SAAS;AACd,SAAA;KACD;AACF;MAIa,0BAA0B,GAAG,CAAC,KAAa,EAAE,aAAqB,KAAsB;AACpG,IAAA,MAAM,WAAW,GAAG,sBAAsB,EAAE;IAC5C,MAAM,YAAY,GAAG,CAAC,KAAa,KAAiC,KAAK,IAAI,WAAW;AACxF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,MAAM;IAElG,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1C,IAAA,EAAE,CAAC,EAAE,GAAG,iBAAiB;AACzB,IAAA,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;AACnC,IAAA,EAAE,CAAC,WAAW,GAAG,SAAS;AAE1B,IAAA,IAAI,KAAK,KAAK,OAAO,EAAE;QACtB,EAAE,CAAC,WAAW,IAAI,CAAA,sBAAA,EAAyB,YAAY,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;QAChE,EAAE,CAAC,WAAW,IAAI,CAAA,kBAAA,EAAqB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QAC7D,EAAE,CAAC,WAAW,IAAI,CAAA,gBAAA,EAAmB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QAC3D,EAAE,CAAC,WAAW,IAAI,CAAA,kBAAA,EAAqB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QAC7D,EAAE,CAAC,WAAW,IAAI,CAAA,2BAAA,EAA8B,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IACvE;IACA,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,WAAW,EAAE;QAC/C,EAAE,CAAC,WAAW,IAAI,CAAA,uBAAA,EAA0B,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QAClE,EAAE,CAAC,WAAW,IAAI,CAAA,4BAAA,EAA+B,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QACvE,EAAE,CAAC,WAAW,IAAI,CAAA,qBAAA,EAAwB,YAAY,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;QAC/D,EAAE,CAAC,WAAW,IAAI,CAAA,UAAA,EAAa,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;QACrD,EAAE,CAAC,WAAW,IAAI,CAAA,wBAAA,EAA2B,YAAY,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;QAClE,EAAE,CAAC,WAAW,IAAI,CAAA,oBAAA,EAAuB,YAAY,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;QAC9D,EAAE,CAAC,WAAW,IAAI,CAAA,mBAAA,EAAsB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC/D;IACA,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,EAAE;;QAE9C,EAAE,CAAC,WAAW,IAAI,CAAA,kBAAA,EAAqB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC9D;IACA,EAAE,CAAC,WAAW,IAAI,CAAA,sBAAA,EAAyB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IACjE,EAAE,CAAC,WAAW,IAAI,CAAA,4BAAA,EAA+B,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IACvE,EAAE,CAAC,WAAW,IAAI,CAAA,WAAA,EAAc,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IACtD,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,eAAA,EAAkB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC1D,EAAE,CAAC,WAAW,IAAI,CAAA,cAAA,EAAiB,YAAY,CAAC,EAAE,CAAC,CAAA,GAAA,CAAK;IACxD,EAAE,CAAC,WAAW,IAAI,CAAA,iBAAA,EAAoB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;IAC5D,EAAE,CAAC,WAAW,IAAI,CAAA,mBAAA,EAAsB,YAAY,CAAC,GAAG,CAAC,CAAA,GAAA,CAAK;AAC9D,IAAA,EAAE,CAAC,WAAW,IAAI,GAAG;AAErB,IAAA,OAAO,EAAE;AACV;;AC/TO,MAAM,kBAAkB,GAA2B;AACzD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,iBAAiB,EAAE,2BAA2B;AAC9C,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,kBAAkB,EAAE,KAAK;;AAG1B,MAAM,YAAY,GAAuB;AACxC,IAAA,iBAAiB,EAAE,kBAAkB;AACrC,IAAA,oBAAoB,EAAE,MAAM,IAAI;CAChC;AAED,MAAM,oBAAoB,GAAG,aAAa,CAAqB,YAAY,CAAC;SAE5D,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAG,kBAAkB,EAAE,UAAU,GAAG,eAAe,EAAE,GAAG,KAAK,EAAsB,EAAA;AACxI,IAAA,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAyB;AACvF,QAAA,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,CAAC,IAAI,YAAY,CAAC,WAAW;AAC1F,QAAA,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,aAAA,CAAe,CAAC,IAAI,YAAY,CAAC,YAAY;AAC7F,QAAA,iBAAiB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,kBAAA,CAAoB,CAAC,IAAI,YAAY,CAAC,iBAAiB;AAC5G,QAAA,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,iBAAA,CAAmB,CAAC,IAAI,YAAY,CAAC,gBAAgB;QACzG,aAAa,EAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAW,IAAI,YAAY,CAAC,aAAa;AACxF,QAAA,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,MAAA,CAAQ,CAAC,IAAI,YAAY,CAAC,KAAK;QACxE,kBAAkB,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,UAAU,CAAA,mBAAA,CAAqB,CAAC,KAAK,MAAM;AACvF,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,KAAK,GAAG,iBAAiB,EAAE,aAAa;AAE9C,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe;QAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AAEzB,QAAA,QAAQ,CAAC,KAAK,GAAG,iBAAiB,EAAE,KAAK;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC;QAC/D,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC;QACvD;QAEA,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAkB,mBAAmB,CAAC;QACvE,IAAI,CAAC,IAAI,EAAE;AACV,YAAA,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACrC,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM;AACjB,YAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAC3D;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB,EAAE,WAAW;QAE1C,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;AAEjF,QAAA,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACzC,YAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAE,CAAC;AAClG,QAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;AACzD,IAAA,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAEvB,IAAA,MAAM,oBAAoB,GAAG,CAAC,iBAAyC,KAAI;QAC1E,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC;QAChF,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,aAAA,CAAe,EAAE,iBAAiB,CAAC,YAAY,CAAC;QAClF,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,kBAAA,CAAoB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;QAC5F,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,iBAAA,CAAmB,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;QAC1F,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,cAAA,CAAgB,EAAE,iBAAiB,CAAC,aAAa,CAAC;QACpF,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,MAAA,CAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;AACpE,QAAA,YAAY,CAAC,OAAO,CAAC,CAAA,EAAG,UAAU,CAAA,mBAAA,CAAqB,EAAE,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAEtG,QAAA,yBAAyB,CAAC;AACzB,YAAA,WAAW,EAAE,iBAAiB,CAAC,WAAW,IAAI,kBAAkB,CAAC,WAAW;AAC5E,YAAA,YAAY,EAAE,iBAAiB,CAAC,YAAY,IAAI,kBAAkB,CAAC,YAAY;AAC/E,YAAA,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,iBAAiB;AAC9F,YAAA,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,gBAAgB;AAC3F,YAAA,aAAa,EAAE,iBAAiB,CAAC,aAAa,GAAI,iBAAiB,CAAC,aAAuB,GAAG,kBAAkB,CAAC,aAAa;AAC9H,YAAA,KAAK,EAAE,iBAAiB,CAAC,KAAK,IAAI,kBAAkB,CAAC,KAAK;AAC1D,YAAA,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,kBAAkB;AACjG,SAAA,CAAC;AACH,IAAA,CAAC;AAED,IAAA,MAAM,KAAK,GAAuB;QACjC,iBAAiB;AACjB,QAAA,oBAAoB,EAAE,oBAAoB;KAC1C;AAED,IAAA,QACCA,GAAA,CAAC,oBAAoB,CAAC,QAAQ,EAAA,EAAA,GAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAA,QAAA,EACpD,QAAQ,EAAA,CACsB;AAElC;AAEO,MAAM,QAAQ,GAAG,MAAK;AAC5B,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC;IAEhD,IAAI,OAAO,KAAK,SAAS;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAE1F,IAAA,OAAO,OAAO;AACf;;ACrHA,MAAM,YAAY,GAAG,CAAC,QAAqB,KAAI;AAC9C,IAAA,QACCA,GAAA,CAAC,eAAe,cACfC,IAAA,CAAC,OAAO,eACPD,GAAA,CAAC,cAAc,IAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EAC/BA,GAAA,CAAC,UAAU,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,GAAG,EAAA,CAC/B,EACjBA,IAAC,cAAc,EAAA,EAAC,SAAS,EAAC,kCAAkC,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EACxE,QAAQ,GACO,CAAA,EAAA,CACR,EAAA,CACO;AAEpB;;ACVA,MAAM,SAAS,GAAG,CAAC,SAA6B,EAAE,KAAa,KAAI;IAClE,OAAOA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAE,KAAK,EAAA,CAAa;AACvF;AAEA,MAAM,oBAAoB,GAAG,CAAC,SAA6B,EAAE,KAAa,EAAE,QAAiB,EAAE,QAA8B,EAAE,SAAkB,KAAI;IACpJ,QACCC,cAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,aAClDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzB,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EAC3B,QAAQ,IAAID,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,GAAA,EAAA,CAAc,CAAA,EAAA,CAC7E,EACL,QAAQ,IAAIA,IAAC,SAAS,EAAA,EAAC,SAAS,EAAC,+BAA+B,YAAE,QAAQ,EAAA,CAAa,CAAA,EAAA,CACnF;AAER;;AChBA,MAAM,WAAW,GAAG,CAAC,WAAiC,KAAI;AACzD,IAAA,OAAOA,IAAC,WAAW,EAAA,EAAC,SAAS,EAAC,mBAAmB,GAAG;AACrD;;MCWa,iBAAiB,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAI;AAC9H,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAEnF,QACCA,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MACjBC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACvCD,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,QAAQ,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,SAAS,EAAE,CAAA,EACV,KAAK,CAAC;AACL,sCAAE;sCACA,yCACJ,CAAA,CAAE,EACF,eAAe,EAAE,CAAC,OAAO,KAAI;AAC5B,oCAAA,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;AAC1B,oCAAA,eAAe,GAAG,OAAkB,CAAC;AACtC,gCAAA,CAAC,EACD,QAAQ,EAAE,QAAQ,EAAA,CACjB,GACW,EACdC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CACnD,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EACpC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,CAAA,EAAA,CACD,EACL,WAAW,CAAC,WAAW,CAAC,IACf,CACX,EAAA,CACA;AAEJ;;ACjDO,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAO,KAAY;AACpD,IAAA,MAAM,KAAK,GAAG,CAAC,CAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE;AACtG,IAAA,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;AAC5C,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAgB;IACnD,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,IAAA,OAAO;AACN,UAAE;YACA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACjC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACjC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC;UACD,IAAI;AACR,CAAC;;ACUM,MAAM,cAAc,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAI;AAC3I,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAEnF,MAAM,aAAa,GAAG,SAAS;IAC/B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,aAAa,CAAC;IACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAE1D,IAAA,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,QAAmC,KAAI;AACnF,QAAA,QAAQ,GAAG,QAAQ,CAAC;QACpB,eAAe,CAAC,QAAQ,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,QAAmC,KAAI;AAC5E,QAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAClC,YAAA,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC;aAAO;YACN,eAAe,CAAC,GAAG,CAAC;QACrB;AACD,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAqB,EAAE,KAAa,EAAE,QAAmC,KAAI;QACrG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEvC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,GAAG,EAAE;AAChE,YAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,EAAE;YAE1C,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QAC9C;AACD,IAAA,CAAC;IAED,QACCD,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,KAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,aAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACNA,KAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACPD,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,kBACtBA,GAAA,CAAC,WAAW,cACXA,GAAA,CAAC,MAAM,IACN,OAAO,EAAC,SAAS,EACjB,SAAS,EAAE,EAAE,CAAC,+CAA+C,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE,SAAS,CAAC,EAC1G,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAA,QAAA,EAE5CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAA,CAC7C,KAAK,CAAC,KAAK,IACXD,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,4DAA4D,EACtE,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,EAAA,CACtC,KAEFA,GAAA,CAAC,UAAU,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG,CAClC,EACDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EACtC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,IAAI,mBAAmB,GAC1D,CAAA,EAAA,CACD,EAAA,CACE,GACI,EAAA,CACE,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAA,QAAA,EAC/CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CACnCD,iBAAS,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAC9CA,GAAA,CAAC,cAAc,EAAA,EACd,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,aAAa,EACnC,QAAQ,EAAE,CAAC,QAAQ,KAAK,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAA,CAClE,EAAA,CACO,EACVC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CAC1BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,aACnCD,GAAA,CAAC,KAAK,sBAAY,EAClBA,GAAA,CAAC,KAAK,EAAA,EAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAA,CAAI,CAAA,EAAA,CACzG,EACNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CAC1BA,cAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CACnCD,GAAA,CAAC,KAAK,oBAAU,EAChBA,GAAA,CAAC,KAAK,EAAA,EACL,KAAK,EAAE,GAAG,CAAC,CAAC,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACrE,SAAS,EAAC,MAAM,EAAA,CACf,CAAA,EAAA,CACG,EACNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,aACnCD,GAAA,CAAC,KAAK,oBAAU,EAChBA,GAAA,CAAC,KAAK,EAAA,EACL,KAAK,EAAE,GAAG,CAAC,CAAC,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACrE,SAAS,EAAC,MAAM,EAAA,CACf,CAAA,EAAA,CACG,EACNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CACnCD,GAAA,CAAC,KAAK,EAAA,EAAA,QAAA,EAAA,GAAA,EAAA,CAAU,EAChBA,GAAA,CAAC,KAAK,IACL,KAAK,EAAE,GAAG,CAAC,CAAC,EACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EACrE,SAAS,EAAC,MAAM,EAAA,CACf,CAAA,EAAA,CACG,CAAA,EAAA,CACD,CAAA,EAAA,CACD,IACD,EAAA,CACU,CAAA,EAAA,CACR,EACT,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC3FO,MAAM,YAAY,GAAoB,CAAC,EAC7C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,cAAc,EACd,WAAW,GAAG,KAAK,EACnB,kBAAkB,GAAG,IAAI,EACzB,iBAAiB,GAAG,IAAI,EACxB,cAAc,GAAG,KAAK,EACtB,QAAQ,EACR,QAAQ,EACR,YAAY,GACZ,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAEnF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GAAG,uBAAuB;IAEnD,SAAS,CAAC,MAAK;QACd,UAAU,CAAC,KAAK,CAAC;AAClB,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,MAAK;AACvB,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE;QACV;QAEA,IAAI,eAAe,GAAG,OAAO;QAC7B,IAAI,iBAAiB,EAAE;YACtB,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;AAC3C,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC;AACnB,qBAAA,WAAW;qBACX,SAAS,CAAC,KAAK;AACf,qBAAA,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AAC9B,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC;AACvB,sBAAE,WAAW;qBACZ,SAAS,CAAC,KAAK;AACf,qBAAA,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG;AACb,qBAAA,WAAW;qBACX,SAAS,CAAC,KAAK;AACf,qBAAA,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AAE9B,gBAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC5D,YAAA,CAAC,CAAC;QACH;QAEA,IAAI,cAAc,EAAE;AACnB,YAAA,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACpF;AAEA,QAAA,OAAO,eAAe;AACvB,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAyB,KAAgC;AACnF,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC;QAE/D,IAAI,MAAM,EAAE;AACX,YAAA,OAAO,MAAM;QACd;AAEA,QAAA,OAAO,cAAc;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,KAAyB,EAAE,KAAiD,KAAI;AACrG,QAAA,MAAM,MAAM,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS;QAE3D,IAAI,WAAW,EAAE;AAChB,YAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;QAC1D;aAAO;AACN,YAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB;QAEA,IAAI,QAAQ,EAAE;YACb,QAAQ,CAAC,MAAM,CAAC;QACjB;QACA,IAAI,kBAAkB,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC;QACf;AACD,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAA4C,KAAI;AACpE,QAAA,MAAM,YAAY,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;QAE7D,IAAI,QAAQ,EAAE;YACb,UAAU,CAAC,IAAI,CAAC;YAChB,QAAQ,CAAC,YAAY,CAAC;QACvB;QACA,eAAe,CAAC,YAAY,CAAC;AAC9B,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACNA,IAAA,CAAC,OAAO,EAAA,EACP,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,KAAI;AACtB,wBAAA,IAAI,CAAC,QAAQ;4BAAE,OAAO,CAAC,IAAI,CAAC;oBAC7B,CAAC,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,kBACtBA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,CAAA,wBAAA,EAA2B,IAAI,GAAG,gCAAgC,GAAG,QAAQ,CAAA,CAAE,EAAE,SAAS,CAAC,EAAA,QAAA,EAC7GC,IAAA,CAAC,MAAM,EAAA,EACN,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,UAAU,EAAA,eAAA,EACA,IAAI,EACnB,SAAS,EAAE,EAAE,CACZ,0FAA0F,EAC1F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,EAAE,EAC9C,SAAS,CACT,EACD,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAA,QAAA,EAAA,CAE3C,QAAQ,EACTD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAC3DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EACpC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,IAC9BC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EACpC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA,EAAA,CACjC,KAEND,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,WAAW,IAAI,mBAAmB,EAAA,CAAQ,CAC3E,EAAA,CACK,EAAA,CACF,EACL,SAAS,IAAIA,GAAA,CAAC,cAAc,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,iBAAiB,EAAA,CAAG,CAAA,EAAA,CAC9D,EAAA,CACJ,EAAA,CACO,EAAA,CACE,EACjBC,IAAA,CAAC,cAAc,IAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,mCAAmC,CAAC,EAAA,QAAA,EAAA,CACnFA,IAAA,CAAC,OAAO,EAAA,EAAC,YAAY,EAAE,KAAK,EAAA,QAAA,EAAA,CAC1B,CAAC,cAAc,IAAID,GAAA,CAAC,YAAY,EAAA,EAAC,WAAW,EAAE,WAAW,IAAI,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAA,CAAI,EAC3GC,IAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACXD,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,oEAAoE,YAC1F,OAAO,IACPA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yCAAyC,EAAA,CAAG,IAC3E,UAAU,EAAE,EAAE,MAAM,KAAK,CAAC,KAAK,YAAY,KAAK,EAAE,IAAI,cAAc,CAAC,IACxE,6BAA6B,KAE7B,gCAAgC,CAChC,EAAA,CACa,EACd,OAAO,CAAC,MAAM,GAAG,CAAC,KAClBA,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACX,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBC,IAAA,CAAC,WAAW,EAAA,EAEX,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAC,OAAO,EACjB,QAAQ,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA,QAAA,EAAA,CAEjDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,MAAM,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,CAClFA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,YAAY,EAAA,QAAA,EAAA,CACzB,MAAM,CAAC,IAAI,EACZD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAE,MAAM,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,CACvD,EACNA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAE,MAAM,CAAC,QAAQ,EAAA,CAAQ,CAAA,EAAA,CACpE,EACNC,IAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,CAAA,sBAAA,EACV,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,aAAa,GAAG,WAChD,CAAA,CAAE,EAAA,QAAA,EAAA,CAEFD,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,IAAI,iCAAiC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EAC5FA,GAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,IAAI,6BAA6B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,CAAA,EAAA,CACjF,CAAA,EAAA,EAnBD,CAAA,QAAA,EAAW,MAAM,CAAC,KAAK,CAAA,CAAE,CAoBjB,CACd,CAAC,EAAA,CACY,CACf,CAAA,EAAA,CACY,CAAA,EAAA,CACL,EACT,YAAY,KACZA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAA,QAAA,EACxCC,IAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,MAAM,YAAY,CAAC,OAAO,EAAE,EAAA,QAAA,EAAA,CACzF,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,KAAK,CAAA,EAAA,CACX,GACJ,CACN,CAAA,EAAA,CACe,CAAA,EAAA,CACR,EACT,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC7OA,MAAMe,OAAK,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;AAEhD,MAAM,gBAAgB,GAAoB,CAAC,EACjD,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AACnF,IAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC;AAE1C,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAI;QAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC7C,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE;AAC7B,YAAA,OAAO,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC;QAClB;aAAO;AACN,YAAA,OAAO,CAACA,OAAK,CAAC,CAAC,CAAC,CAAC;QAClB;AACD,IAAA,CAAC;IAED,QACChB,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,gBAAgB,EAAA,EAAA,GACZ,KAAK,EACT,SAAS,EAAE,GAAG,SAAS,CAAA,CAAE,EACzB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,4BAAA,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BAChC,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;AACD,wBAAA,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,KAAI;4BACd,IAAI,OAAO,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;4BACX;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AClEO,MAAM,iBAAiB,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAI;AAC3I,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,gBAAgB,EAAA,EAAA,GACZ,KAAK,EACT,MAAM,EAAC,IAAI,EACX,SAAS,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,EACzB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AClDO,MAAM,yBAAyB,GAAG,MAAW;AACnD,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,IAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACtD;AAEO,MAAM,sBAAsB,GAAG,MAAW;AAChD,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,IAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D;AAEO,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,SAAA,GAAoB,GAAG,KAAsB;AAC7F,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,SAAS;IAEjC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7C,IAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;IAE5C,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtC,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEvC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAClC;AAEO,MAAM,QAAQ,GAAG,MAAW;AAClC,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE;IAC3B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAEhD,IAAA,OAAO,QAAQ;AAChB;AAEO,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,SAAA,GAAoB,GAAG,KAAY;AAC3E,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACjD;AAEO,MAAM,cAAc,GAAG,CAAC,IAAY,KAAU;AACpD,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;IACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AACnC,IAAA,OAAO,IAAI;AACZ;;ACbO,MAAM,aAAa,GAAoB,CAAC,EAC9C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,YAAY,EAC1B,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IACnF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEvC,QACCA,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC/BD,IAAC,SAAS,EAAA,EAAA,GACL,KAAK,EACT,IAAI,EAAE,YAAY,EAClB,eAAe,EAAE,IAAI,EACrB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAChC,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,oCAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oCACjB,IAAI,QAAQ,EAAE;wCACb,QAAQ,CAAC,CAAC,CAAC;oCACZ;AACD,gCAAA,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,KAAI;oCACd,IAAI,OAAO,EAAE;wCACZ,OAAO,CAAC,CAAC,CAAC;oCACX;AACD,gCAAA,CAAC,GACA,EAEFA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yDAAyD,EAAA,QAAA,EACvEC,IAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAA,QAAA,EAAA,CACzCD,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,8BAA8B,EAAA,CAAG,GACnD,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,eAAe,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EACtDA,IAAC,QAAQ,EAAA,EACR,IAAI,EAAC,QAAQ,EACb,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,EACjD,QAAQ,EAAE,CAAC,IAAI,KAAI;AAClB,oDAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oDAC5D,IAAI,QAAQ,EAAE;AACb,wDAAA,QAAQ,CAAC;AACR,4DAAA,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE;AACxB,yDAAA,CAAC;oDAC1C;oDACA,OAAO,CAAC,KAAK,CAAC;gDACf,CAAC,EACD,SAAS,EAAC,YAAY,EACtB,aAAa,EAAC,UAAU,EAAA,CACvB,EAAA,CACc,CAAA,EAAA,CACR,GACL,CAAA,EAAA,CACD,EAAA,CACO,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AClFO,MAAM,aAAa,GAAoB,CAAC,EAC9C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACR,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;;IAGnF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEvC,IAAA,MAAM,gBAAgB,GAAG,CAAC,OAA8B,EAAE,KAAU,KAAI;;AAEvE,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvB,QAAA,IAAI,QAAQ;YAAE,QAAQ,CAAC,OAAO,CAAC;AAChC,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXC,KAAC,OAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACzCD,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAC,SAAS,EAAC,QAAQ,YACzCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,yBAAA,EAA4B,IAAI,GAAG,gCAAgC,GAAG,QAAQ,CAAA,CAAE,EAAA,QAAA,EAC/FC,IAAA,CAAC,MAAM,EAAA,EACN,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,UAAU,EAAA,eAAA,EACA,IAAI,EACnB,SAAS,EAAE,EAAE,CACZ,CAAA,CAAA,EAAI,SAAS,CAAA,uFAAA,CAAyF,EACtG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAC9C,EACD,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAA,QAAA,EAAA,CAE5CD,GAAA,CAAC,YAAY,IAAC,SAAS,EAAC,eAAe,EAAA,CAAG,EACzC,KAAK,CAAC,KAAK,EAAE,IAAI,IACjB,KAAK,CAAC,KAAK,EAAE,EAAE,IACdC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,EAAA,KAAA,EAAK,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,IAChF,KAEH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CACvC,KAEDF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,CAA0B,CACrE,CAAA,EAAA,CACO,GACJ,EAAA,CACU,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EACxDA,aAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EACvCA,IAAC,QAAQ,EAAA,EACR,YAAY,EAAA,IAAA,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAC/B,QAAQ,EAAE,KAAK,CAAC,KAAK,EACrB,cAAc,EAAE,CAAC,EACjB,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,CAAC,OAAO,KAAK,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAA,CACtD,EAAA,CACG,EAAA,CACU,IACR,EAAA,CACG,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC3FO,MAAM,gBAAgB,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAI;AAC1I,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,gBAAgB,EAAA,EAAA,GACZ,KAAK,EACT,SAAS,EAAE,CAAA,EAAG,SAAS,EAAE,EACzB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC7BO,MAAM,aAAa,GAAoB,CAAC,EAC9C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACR,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAEtC,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,SAAS,EAAA,EACT,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAI;4BACf,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;AACA,4BAAA,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BACxB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC/B,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;ACtDO,MAAM,cAAc,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAI;IAC/E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAExE,QACCA,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MACjBC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BD,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,IAAC,SAAS,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAC,QAAQ,EAAA,CAAG,EAAA,CAC9B,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;ACLO,MAAM,SAAS,GAAoB,CAAC,EAC1C,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAEnF,QACCA,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,cACXA,GAAA,CAAC,KAAK,OACD,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,KAAI;4BACd,IAAI,OAAO,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;4BACX;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC7CO,MAAM,aAAa,GAAoB,CAAC,EAC9C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,eAAe,EACf,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,KAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,aAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,cACXA,GAAA,CAAC,SAAS,OACL,KAAK,EACT,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAI;AACf,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;AACD,wBAAA,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,KAAI;4BACd,IAAI,OAAO,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;4BACX;AACD,wBAAA,CAAC,EACD,GAAG,EAAE,QAAQ,GACZ,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC/DA,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,EAAE;AACpD,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE;AACR,YAAA,OAAO,EAAE,uFAAuF;AAChG,YAAA,SAAS,EAAE,mFAAmF;AAC9F,YAAA,WAAW,EAAE,uFAAuF;AACpG,YAAA,QAAQ,EAAE,UAAU;AACpB,SAAA;AACD,KAAA;AACD,IAAA,eAAe,EAAE;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,CAAA,CAAC;MAsBW,WAAW,GAAG,KAAK,CAAC,UAAU,CAC1C,CACC,EACC,OAAO,EACE,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EAChB,OAAO,EACP,WAAW,EACX,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,KAAK,EACf,SAAS,EACA,QAAQ,EACjB,GAAG,KAAK,EACR,EACD,GAAG,KACA;AACH,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAe,WAAW,EAAE,GAAG,cAAc;AACnF,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC5D,MAAM,0BAA0B,GAAG,uBAAuB;IAC1D,MAAM,mBAAmB,GAAG,WAAW;AAE1C,IAAA,MAAM,YAAY,GAAG,CAAC,MAAyB,EAAE,KAAiD,KAAI;AAC5F,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE;AAEnC,QAAA,MAAM,QAAQ,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,IAAuB,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;AACrF,cAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAuB,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;AAC3E,cAAE,CAAC,GAAG,SAAS,EAAE,MAAM,CAAC;AAE5B,QAAA,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClC,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAAiD,KAAI;AACzE,QAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnB,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAK;QAChC,gBAAgB,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAClC,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,KAAiD,KAAI;QACvE,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;YAC3C,WAAW,CAAC,KAAK,CAAC;QACnB;aAAO;AACN,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AACjD,YAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B;AACD,IAAA,CAAC;AAED,IAAA,QACUA,GAAA,CAAC,SAAS,EAAA,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MACjBC,IAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAA,CACRA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACSA,IAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,aAC7ED,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACnBA,GAAA,CAAC,MAAM,EAAA,EACH,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EACT,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,EAAE,CACT,mIAAmI,EACnI,SAAS,CACZ,EAAA,QAAA,EAEA,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IACpBC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAA,CACrDA,cAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAC9BD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,eAAA,EAAkB,QAAQ,CAAA,CAAE,EAAA,QAAA,EAC3C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAyB,KAAI;wDAC9D,QACIC,KAAC,KAAK,EAAA,EAEF,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAC/C,OAAO,EAAE,CAAC,KAAK,KAAI;gEACf,KAAK,CAAC,eAAe,EAAE;AACvB,gEAAA,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;4DAC/B,CAAC,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAE,MAAM,EAAE,KAAK,EAAA,CAAO,EAC/CA,GAAA,CAAC,CAAC,IAAC,SAAS,EAAC,mCAAmC,EAAA,CAAG,CAAA,EAAA,EAR9C,CAAA,SAAA,EAAY,MAAM,CAAC,KAAK,CAAA,CAAE,CAS3B;AAEhB,oDAAA,CAAC,CAAC,EAAA,CACI,EACL,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAC3BA,GAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,SAAS,EAAA,QAAA,EAEpB,CAAA,CAAA,EAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA,CAAE,EAAA,CACjC,CACX,IACC,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EAC9CA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,+CAA+C,EAAA,CAAG,EAAA,CACvE,IACJ,KAENC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kDAAkD,aAC7DD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oCAAoC,YAAE,WAAW,IAAI,mBAAmB,EAAA,CAAQ,EAChGA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,+CAA+C,EAAA,CAAG,CAAA,EAAA,CACvE,CACT,GACI,EAAA,CACI,EACjBA,GAAA,CAAC,cAAc,IAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,mCAAmC,CAAC,EAAE,KAAK,EAAC,OAAO,EAAC,eAAe,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAA,QAAA,EAC1IC,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACJD,GAAA,CAAC,YAAY,EAAA,EAAC,WAAW,EAAE,0BAA0B,EAAA,CAAI,EACzDC,KAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACRD,GAAA,CAAC,YAAY,8CAA2C,EACxDC,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACTA,KAAC,WAAW,EAAA,EAAW,QAAQ,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC/ED,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CACT,gFAAgF,EAChF,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAC5B,sEAAE;sEACA,8BAA8B,CACvC,EAAA,QAAA,EAEDA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC/B,EACNA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAA+B,CAAA,EAAA,EAXlB,KAAK,CAYR,EACb,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;wDACpB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAuB,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AAC9F,wDAAA,QACIC,IAAA,CAAC,WAAW,EAAA,EAA+B,QAAQ,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC9GD,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CACT,gFAAgF,EAChF,UAAU,GAAG,oCAAoC,GAAG,8BAA8B,CACrF,EAAA,QAAA,EAEDA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC/B,EACNA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,EATb,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAA,CAAE,CAU3B;AAEtB,oDAAA,CAAC,CAAC,CAAA,EAAA,CACS,CAAA,EAAA,CACL,CAAA,EAAA,CACR,GACG,CAAA,EAAA,CACX,EACxB,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEH,CAAC;AAGF,WAAW,CAAC,WAAW,GAAG,aAAa;;AC1LhC,MAAM,iBAAiB,GAAoB,CAAC,EAClD,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,GACR,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IACnF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AACtD,IAAA,MAAM,wBAAwB,GAAG,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAEvE,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,KAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAA,CAC/BD,GAAA,CAAC,SAAS,EAAA,EAAA,GACL,KAAK,EACT,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,EACxC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAA,CAC3C,EACFA,gBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAC,8CAA8C,EAAA,QAAA,EAC/G,YAAY,GAAGA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,wBAAwB,EAAA,CAAG,GAAGA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAC,wBAAwB,EAAA,CAAG,EAAA,CAClG,IACJ,EAAA,CACO,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AClDO,MAAM,gBAAgB,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAI;AAC1I,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA4F,MACtHC,IAAA,CAAC,QAAQ,IAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,IAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,gBAAgB,EAAA,EAAA,GACZ,KAAK,EACT,MAAM,EAAC,GAAG,EACV,SAAS,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,EACzB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAsC,KAAI;AACpD,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;AC7BA,MAAM,KAAK,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAoB,CAAC,EAC/C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AACnF,IAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE1C,IAAA,MAAM,OAAO,GAAG,CAAC,GAAW,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3F,QACCA,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA4F,KAAI;YAC1H,SAAS,CAAC,MAAK;gBACd,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACpC,YAAA,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAEjB,YAAA,QACCC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,aAAa,EAAA,EAAA,GACT,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,IAAI,kBAAkB,EAC9C,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,CAAsC,KAAI;AACpD,gCAAA,QAAQ,GAAG,CAAC,CAAC;AACb,gCAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACjB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACjC,CAAC,EACD,OAAO,EAAE,CAAC,CAAwC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAA,CAClE,GACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf;QAEb,CAAC,EAAA,CACA;AAEJ;;AChDO,MAAM,cAAc,GAAoB,CAAC,EAC/C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,GACR,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AACnF,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EAEV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA4F,MACtHC,IAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAA,CACRA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CACjE,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,IAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,UAAU,IACV,aAAa,EAAE,CAAC,KAAa,KAAI;AAChC,4BAAA,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC;AACxB,4BAAA,QAAQ,GAAG,KAAK,CAAC;AAClB,wBAAA,CAAC,EACD,YAAY,EAAE,KAAK,CAAC,KAAK,EACzB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,SAAS,EAAE,GAAG,SAAS,CAAA,CAAE,EAAA,QAAA,EAEzBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAC1D,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAC3BC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,aAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAA,CAC3CD,GAAA,CAAC,cAAc,IACd,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,EAAE,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAA,CAAE,EACtB,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,CACxB,EACFA,GAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAA,CAAE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAA,QAAA,EAChF,MAAM,CAAC,KAAK,EAAA,CACN,KATyC,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,KAAK,EAAE,CAUpE,EACL,MAAM,CAAC,WAAW,KAClBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAA,QAAA,EAAG,MAAM,CAAC,WAAW,EAAA,CAAO,CACvG,CAAA,EAAA,EAdkC,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAetD,CACN,CAAC,EAAA,CACG,GACM,EAAA,CACA,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,IAzCI,KAAK,CA0CT;AAEJ;;AClEO,MAAM,UAAU,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAI;AAChJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAC5BC,KAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,IAAC,WAAW,EAAA,EAAA,QAAA,EACXC,KAACgB,QAAM,EAAA,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CACnFjB,IAAC,aAAa,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,EAAE,EAAE,SAAS,CAAC,EAAA,QAAA,EAC1FA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,gBAAgB,EAAC,WAAW,EAAE,WAAW,EAAA,CAAI,EAAA,CACrD,EAChBA,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,yBAAyB,EAAA,QAAA,EACjDA,IAAC,WAAW,EAAA,EAAA,QAAA,EACV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACnBA,GAAA,CAAC,UAAU,EAAA,EAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EAChD,MAAM,CAAC,KAAK,EAAA,EADG,MAAM,CAAC,KAAK,CAEhB,CACb,CAAC,EAAA,CACW,GACC,CAAA,EAAA,CACR,EAAA,CACI,EACb,WAAW,CAAC,WAAW,CAAC,IACf,CACX,EAAA,CACA;AAEJ;;ACrDA,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAoB,KAAI;AACjE,IAAA,MAAM,WAAW,GAAG,CAAC,KAAa,KAAI;AACrC,QAAA,IAAI,KAAK,GAAG,YAAY,EAAE;AACzB,YAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oFAAoF,EAAA,QAAA,EAClGA,IAAC,KAAK,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,EAAA,CAAG,EAAA,CAClD;QAER;QAEA,QACCA,aACC,SAAS,EAAE,8DACV,KAAK,KAAK,YAAY,GAAG,kCAAkC,GAAG,qBAC/D,CAAA,CAAE,EAAA,QAAA,EAED,KAAK,GAAG,CAAC,EAAA,CACL;AAER,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,8BAA8B,EAAA,QAAA,EAC3C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,MAC7BC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC5D,WAAW,CAAC,KAAK,CAAC,EAClB,IAAI,CAAC,KAAK,CAAA,EAAA,CACN,EACL,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,KACxBD,aAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACpBA,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACR,CACN,CAAA,EAAA,EATkE,IAAI,CAAC,EAAE,CAUrE,CACN,CAAC,EAAA,CACG;AAER;;AC3BO,MAAM,eAAe,GAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAI;AAChJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MACjBC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CACzD,QAAQ,IAAID,GAAA,CAAC,SAAS,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAa,EAC9CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACzCD,IAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,MAAM,EAAA,EAAA,GACF,KAAK,EACT,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,eAAe,EAAE,CAAC,OAAO,KAAI;AAC5B,oCAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;oCACvB,IAAI,eAAe,EAAE;wCACpB,eAAe,CAAC,OAAO,CAAC;oCACzB;gCACD,CAAC,EACD,QAAQ,EAAE,QAAQ,GACjB,EAAA,CACW,EACdC,cAAK,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CACnD,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EACxE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACL,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACpB,IACI,CACX,EAAA,CACA;AAEJ;;AC9BO,MAAM,aAAa,GAAoB,CAAC,EAC9C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,GACR,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;IAEnF,QACCD,IAAC,SAAS,EAAA,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA4F,MACtHC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,cACXA,GAAA,CAAC,SAAS,OACL,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EACxB,OAAO,EAAE,CAAC,CAAwC,KAAI;4BACrD,IAAI,OAAO,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;4BACX;AACD,wBAAA,CAAC,EACD,GAAG,EAAE,QAAQ,GACZ,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;ACjDO,MAAM,YAAY,GAAoB,CAAC,EAC7C,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,GACP,KAAI;AACJ,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc;AAEnF,IAAA,QACCA,GAAA,CAAC,SAAS,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAA4F,MACtHC,IAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC7BA,cAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAA,CAC5C,KAAK,IAAI,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACnE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC9B,EACND,GAAA,CAAC,WAAW,cACXA,GAAA,CAAC,QAAQ,OACJ,KAAK,EACT,SAAS,EAAC,6CAA6C,EACvD,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAC,YAAY,EAC5C,QAAQ,EAAE,CAAC,CAAyC,KAAI;AACvD,4BAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,IAAI,QAAQ,EAAE;gCACb,QAAQ,CAAC,CAAC,CAAC;4BACZ;AACD,wBAAA,CAAC,EACD,OAAO,EAAE,CAAC,CAA2C,KAAI;4BACxD,IAAI,OAAO,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;4BACX;wBACD,CAAC,EAAA,CACA,EAAA,CACW,EACb,WAAW,CAAC,WAAW,CAAC,CAAA,EAAA,CACf,CACX,EAAA,CACA;AAEJ;;SCvDgB,eAAe,CAAC,EAAE,UAAU,EAAE,SAAS,EAAwB,EAAA;IAC9E,MAAM,UAAU,GAAG,MAAK;AACvB,QAAA,IAAI,CAAC,UAAU;YAAE;AAEjB,QAAA,IAAI,SAAS,KAAK,CAAC,EAAE;AACpB,YAAA,KAAK,CAAC;AACL,gBAAA,KAAK,EAAE,6BAA6B;AACpC,gBAAA,OAAO,EAAE,aAAa;AACtB,aAAA,CAAC;AACF,YAAA,OAAO,EAAE;QACV;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AAChE,QAAA,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAC,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,EAAE,QAAQ,CAAC;AACrD,IAAA,CAAC;IAED,MAAM,YAAY,GAAG,MAAK;AACzB,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;AAE5B,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,YAAA,QACCA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,UAAU,EAAA,QAAA,EAAA,UAAA,EAAA,CAEtC;QAEX;AAEA,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjC,YAAA,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;AACjC,gBAAA,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;AACjB,gBAAA,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AAClB,aAAA,CAAC;YAEF,MAAM,IAAI,GAAG,OAAO,CAAmC;AACtD,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC;AACvC,aAAA,CAAC;YAEF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;AAE/C,YAAA,MAAM,QAAQ,GAAG,OAAO,MAAwC,KAAI;gBACnE,MAAM,OAAO,EAAE;AAEf,gBAAA,KAAK,CAAC;AACL,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EAAE,aAAa;AACtB,iBAAA,CAAC;AACH,YAAA,CAAC;AAED,YAAA,MAAM,OAAO,GAAG,OAAO,MAAqD,KAAI;AAC/E,gBAAA,KAAK,CAAC;AACL,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,WAAW,EAAE,kCAAkC;AAC/C,oBAAA,OAAO,EAAE,aAAa;AACtB,iBAAA,CAAC;AACH,YAAA,CAAC;AAED,YAAA,QACCA,GAAA,CAAC,IAAI,EAAA,EAAA,GAAM,IAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,YACjEC,IAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,CACND,GAAA,CAAC,aAAa,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACrBA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,yBAAkB,EAAA,CAC9B,EAChBC,IAAA,CAAC,aAAa,IAAC,SAAS,EAAA,IAAA,EAAC,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAA,CAClEA,IAAA,CAAC,YAAY,eACZD,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAuB,EACnCA,IAAC,iBAAiB,EAAA,EAAA,CAAG,CAAA,EAAA,CACP,EACfC,cAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAAA,CACnCD,IAAC,cAAc,EAAA,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,8CAAoC,EAC1C,OAAO,EAAE;AACR,gDAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AACjC,gDAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;6CAClC,EACD,SAAS,EAAC,qBAAqB,EAC/B,gBAAgB,EAAC,8CAA8C,EAAA,CAC9D,EAEFA,GAAA,CAAC,cAAc,EAAA,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,wDAA8C,EACpD,OAAO,EAAE;AACR,gDAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,gDAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;6CAC7B,EACD,SAAS,EAAC,qBAAqB,EAC/B,gBAAgB,EAAC,8CAA8C,EAAA,CAC9D,CAAA,EAAA,CACG,EACNC,IAAA,CAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAA,CAC7CD,GAAA,CAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,WAAW,EAAA,QAAA,EAAA,QAAA,EAAA,CAEhC,EACTA,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,MAAM,UAAU,EAAE,EAAA,QAAA,EAAA,UAAA,EAAA,CAE1D,CAAA,EAAA,CACK,CAAA,EAAA,CACA,CAAA,EAAA,CACR,EAAA,CACH;QAET;AAEA,QAAA,OAAO,IAAI;AACZ,IAAA,CAAC;AAED,IAAA,OAAO,UAAU,IAAI,YAAY,EAAE;AACpC;;ACzFM,SAAU,eAAe,CAAQ,EACtC,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,GACmB,EAAA;IAC7B,MAAM,qBAAqB,GAAG,MAAK;QAClC,MAAM,eAAe,GAAkB,EAAE;AAEzC,QAAA,MAAM,oBAAoB,GAAG,CAAC,SAAiB,MAC9CA,GAAA,CAAC,cAAc,cACdA,GAAA,CAAC,cAAc,IAAC,OAAO,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,KAAK,SAAS,EAAA,QAAA,EACvF,SAAS,GAAG,CAAC,EAAA,CACE,IAHG,SAAS,CAIb,CACjB;;QAGD,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;;AAG7C,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;YACpB,eAAe,CAAC,IAAI,CAACA,GAAA,CAAC,kBAAkB,EAAA,EAAA,EAAK,gBAAgB,CAAG,CAAC;QAClE;;QAGA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YAChE,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC9C;;QAGA,IAAI,WAAW,KAAK,CAAC,IAAI,WAAW,KAAK,UAAU,GAAG,CAAC,EAAE;YACxD,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACxD;;QAGA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClF,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC9C;;AAGA,QAAA,IAAI,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE;YACjC,eAAe,CAAC,IAAI,CAACA,GAAA,CAAC,kBAAkB,EAAA,EAAA,EAAK,cAAc,CAAG,CAAC;QAChE;;AAGA,QAAA,IAAI,UAAU,GAAG,CAAC,EAAE;YACnB,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC3D;AAEA,QAAA,OAAO,eAAe;AACvB,IAAA,CAAC;IAED,QACC,CAAC,cAAc,KACdC,iBAAQ,SAAS,EAAC,4CAA4C,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,CAChDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,CAAA,wBAAA,EAEhDA,IAAA,CAAC,MAAM,EAAA,EACN,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EACrC,aAAa,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACvD,QAAQ,EAAE,SAAS,IAAI,iBAAiB,EAAA,QAAA,EAAA,CAExCD,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EAC9BA,GAAA,CAAC,WAAW,EAAA,EAAC,WAAW,EAAC,EAAE,EAAC,SAAS,EAAC,4BAA4B,EAAA,CAAG,GACtD,EAChBA,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EACbC,IAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACXD,GAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAC,IAAI,EAAA,QAAA,EAAA,IAAA,EAAA,CAAgB,EACtCA,GAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAC,IAAI,EAAA,QAAA,EAAA,IAAA,EAAA,CAAgB,EACtCA,GAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAC,KAAK,oBAAiB,CAAA,EAAA,CAC3B,EAAA,CACC,CAAA,EAAA,CACR,CAAA,EAAA,CACJ,EAENA,GAAA,CAAC,eAAe,EAAA,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAA,CAAI,CAAA,EAAA,CAC7D,EAENC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACvCD,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACE,CAAC,SAAS,KACVA,IAAC,KAAK,EAAA,EAAC,OAAO,EAAC,WAAW,EAAA,QAAA,EAAE,SAAS,KAAK,CAAC,GAAG,aAAa,GAAG,SAAS,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ,GAAS,CACxH,EAAA,CACI,EACNA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACCA,GAAA,CAAC,UAAU,EAAA,EAAA,QAAA,EACVC,IAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAAA,CACjBD,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACdA,GAAA,CAAC,kBAAkB,EAAA,EAAC,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,iBAAiB,EAAA,CAAI,EAAA,CAClG,EAChB,qBAAqB,EAAE,EACxBA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACdA,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,iBAAiB,EAAA,CAAI,EAAA,CACtF,CAAA,EAAA,CACE,EAAA,CACR,EAAA,CACR,CAAA,EAAA,CACD,CAAA,EAAA,CACE,CACT;AAEH;;ACtIM,SAAU,eAAe,CAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAA+B,EAAA;AACpH,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE;AAC5C,IAAA,QACCA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACV,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,MAC7BC,IAAA,CAAC,QAAQ,EAAA,EAAsB,SAAS,EAAC,uEAAuE,EAAA,QAAA,EAAA,CAC9G,uBAAuB,KACvBD,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,cAAc,YAClCA,GAAA,CAAC,QAAQ,EAAA,EACR,OAAO,EAAE,KAAK,CAAC,wBAAwB,EAAE,KAAK,KAAK,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,EACnG,eAAe,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,GACnE,EAAA,CACS,CACZ,EACA,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAC/BA,GAAA,CAAC,SAAS,EAAA,EAET,SAAS,EAAE,EAAE,CACZ,4BAA4B,EAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG,oBAAoB,GAAG,EAAE,EACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,MAAM,GAAG,EAAE,CACnD,EAAA,QAAA,EAEA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,IACrCC,IAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,aACvG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAC/D,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,IACrCD,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG,IAChC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,IACzCA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,cAAc,EAAA,CAAG,KAErCA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG,CACxC,CAAA,EAAA,CACO,KAET,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAC/D,EAAA,EApBI,MAAM,CAAC,EAAE,CAqBH,CACZ,CAAC,EACD,aAAa,IAAIA,GAAA,CAAC,SAAS,KAAG,CAAA,EAAA,EAlCjB,WAAW,CAAC,EAAE,CAmClB,CACX,CAAC,EAAA,CACW;AAEhB;;ACxCM,SAAU,aAAa,CAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,uBAAuB,EAA6B,EAAA;IAChJ,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;IAErC,MAAM,iBAAiB,GAAG,MAAK;QAC9B,MAAM,IAAI,GAAkB,EAAE;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CACRC,IAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAA,CACP,uBAAuB,KACvBD,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,MAAM,EAAA,QAAA,EAC1BA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,aAAa,EAAA,CAAG,EAAA,CACzB,CACZ,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACnBA,GAAA,CAAC,SAAS,EAAA,EAAiB,SAAS,EAAC,MAAM,EAAA,QAAA,EAC1CA,GAAA,CAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,EAAA,CAAG,EAAA,EADrB,MAAM,CAAC,EAAE,CAEb,CACZ,CAAC,CAAA,EAAA,EAVY,CAAA,YAAA,EAAe,CAAC,CAAA,CAAE,CAWtB,CACX;QACF;AAEA,QAAA,OAAO,IAAI;AACZ,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACnBC,IAAA,CAAC,QAAQ,kBAA0B,GAAG,CAAC,aAAa,EAAE,IAAI,UAAU,EAAE,SAAS,EAAC,OAAO,EAAA,QAAA,EAAA,CACrF,uBAAuB,KACvBD,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,MAAM,YAC1BA,GAAA,CAAC,QAAQ,EAAA,EAAC,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAA,YAAA,EAAa,YAAY,EAAA,CAAG,GAChH,CACZ,EACA,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAC/BA,GAAA,CAAC,SAAS,EAAA,EAAe,SAAS,EAAC,MAAM,EAAA,QAAA,EACvC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAA,EAD3C,IAAI,CAAC,EAAE,CAEX,CACZ,CAAC,EACD,UAAU,KACVA,GAAA,CAAC,SAAS,EAAA,EACT,SAAS,EAAC,uFAAuF,EAAA,QAAA,EAGjGA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qHAAqH,EAAA,QAAA,EAClI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAC7BC,IAAA,CAAC,MAAM,EAAA,EAEN,OAAO,EAAG,MAAM,CAAC,OAAkF,IAAI,SAAS,EAChH,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAC5E,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,EAC7C,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAA,QAAA,EAAA,CAEjD,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,CAAA,EAAA,EAPR,CAAA,WAAA,EAAc,KAAK,EAAE,CAQlB,CACT,CAAC,EAAA,CACG,EAAA,EAfD,CAAA,QAAA,EAAW,GAAG,CAAC,EAAE,CAAA,CAAE,CAgBb,CACZ,CAAA,EAAA,EA/Ba,GAAG,CAAC,EAAE,CAgCV,CACX,CAAC;AACH,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AAC5B,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,QACCD,GAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EACRA,GAAA,CAAC,SAAS,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAC3D,aAAa,GAAG,aAAa,GAAG,iBAAiB,EAAA,CACvC,EAAA,CACF;AAEb,IAAA,CAAC;IAED,OAAO,SAAS,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,GAAG,eAAe,EAAE;AACxF;;ACvCM,SAAU,SAAS,CAAQ,EAChC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,aAAa,EACb,SAAS,EACT,WAAW,EACX,eAAe,EACf,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,WAAW,GACY,EAAA;IACvB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC;AACxD,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkB;AAC7D,QAAA,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,QAAQ,IAAI,EAAE;AACxB,KAAA,CAAC;AACF,IAAA,MAAM,uBAAuB,GAAG,iBAAiB,KAAK,SAAS;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC/C;AACC,UAAE,MAAM,CAAC,WAAW,CAClB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAW,KAAI;AAC/D,YAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;AAC1B,QAAA,CAAC,CAAC;UAEF,EAAE,CACL;AACD,IAAA,MAAM,eAAe,GAAG,MAAM,CAAwB,IAAI,CAAC;AAC3D,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACtD,IAAA,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM;IAEpC,MAAM,KAAK,GAAG,aAAa,CAAC;AAC3B,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,IAAI,EAAE,IAAI;QACV,OAAO;QACP,qBAAqB,EAAE,qBAAqB,EAAE;AAC9C,QAAA,kBAAkB,EAAE,aAAa;QACjC,eAAe,EAAE,eAAe,EAAE;AAClC,QAAA,eAAe,EAAE,UAAU;QAC3B,iBAAiB,EAAE,iBAAiB,EAAE;QACtC,mBAAmB,EAAE,mBAAmB,EAAE;AAC1C,QAAA,oBAAoB,EAAE,CAAC,YAAY,KAAI;YACtC,eAAe,CAAC,YAAY,CAAC;QAC9B,CAAC;AACD,QAAA,uBAAuB,EAAE,uBAAuB;AAChD,QAAA,KAAK,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE;QAC5C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;AACrD,KAAA,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,SAAS;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI;AACrD,IAAA,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAM,GAAG,CAAC,QAAkC,CAAC,EAAE,CAAC;IAEzF,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE;YAClD,aAAa,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC/C;AACD,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEV,SAAS,CAAC,MAAK;AACd,QAAA,YAAY,EAAE;AAEd,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC/C,QAAA,OAAO,MAAK;AACX,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACnD,QAAA,CAAC;IACF,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,WAAW;AAAE,YAAA,WAAW,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;AACvD,IAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhB,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC;QACnE,IAAI,iBAAiB,EAAE;AACtB,YAAA,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChD;AACD,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,YAAY,GAAG,MAAK;AACzB,QAAA,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,IAAI,cAAc,GAAG,EAAE,GAAG,EAAE,CAAC;YAEzH,cAAc,CAAC,CAAA,EAAG,SAAS,IAAI,qBAAqB,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;QAChE;AACD,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAA4C,KAAI;AAC3E,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK;AAEvC,QAAA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC5B,YAAA,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC;QACtC;AAEA,QAAA,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AACzC,YAAA,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,CAAC,CAAC,CAAC;QACd,CAAC,EAAE,GAAG,CAAC;AACR,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,KAAI;AACxC,QAAA,eAAe,GAAG,KAAK,CAAC;QACxB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjD,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,KAAa,KAAI;AACpC,QAAA,IAAI,KAAK,KAAK,WAAW,EAAE;YAC1B,aAAa,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD;AACD,IAAA,CAAC;AAED,IAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAA,CACnC,CAAC,CAAC,eAAe,IAAI,cAAc,IAAI,aAAa,IAAI,OAAO,MAC/DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACxC,CAAC,eAAe,KAChBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oMAAoM,EAAA,QAAA,EAAA,CAClND,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+EAA+E,EAAA,QAAA,EAC7FA,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,6CAA6C,EAAA,CAAG,EAAA,CACvE,EAENA,eACC,WAAW,EAAC,QAAQ,EACpB,OAAO,EAAE,CAAC,KAAK,KAAI;4CAClB,kBAAkB,CAAC,KAAK,CAAC;wCAC1B,CAAC,EACD,SAAS,EAAC,iKAAiK,GAC1K,CAAA,EAAA,CACG,CACN,EACA,cAAc,KACdC,KAAC,KAAK,EAAA,EAAC,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,aAAa,EAAA,QAAA,EAAA,CACjFD,GAAA,CAAC,YAAY,EAAA,EAAC,OAAO,kBACpBC,IAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,QAAQ,EAAA,QAAA,EAAA,CACxCD,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,SAAS,EAAA,CAAG,cACvC,cAAc,CAAC,YAAY,GAAG,CAAC,KAC/BA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kIAAkI,EAAA,QAAA,EAC/I,cAAc,CAAC,YAAY,GACvB,CACN,CAAA,EAAA,CACO,EAAA,CACK,EACfC,IAAA,CAAC,YAAY,eACZA,IAAA,CAAC,WAAW,eACXD,GAAA,CAAC,UAAU,0BAAqB,EAChCA,GAAA,CAAC,gBAAgB,EAAA,EAAA,CAAG,CAAA,EAAA,CACP,EACdA,aAAK,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,cAAc,CAAC,MAAM,EAAA,CAAO,CAAA,EAAA,CACnD,CAAA,EAAA,CACR,CACR,CAAA,EAAA,CACI,EACL,aAAa,EACdA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,YACzC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAC3BA,uBACCC,IAAA,CAAC,MAAM,EAAA,EACN,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,GAAG,WAAW,EAAE,YAAY,CAAC,EAC1D,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,kBAAkB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,EACvG,OAAO,EAAG,MAAM,CAAC,OAAkF,IAAI,SAAS,EAChH,QAAQ,EAAE,MAAM,CAAC,QAAQ,aAEzBD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAE,MAAM,CAAC,IAAI,EAAA,CAAO,EAClD,MAAM,CAAC,KAAK,CAAA,EAAA,CACL,EAAA,EATA,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAE,CAU3B,CACN,CAAC,EAAA,CACG,CAAA,EAAA,CACD,CACN,EAEDC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,uCAAA,EAA0C,SAAS,CAAA,CAAE,EAAA,QAAA,EAAA,CACpED,aAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EAAE,KAAK,IAAIA,aAAK,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,KAAK,GAAO,EAAA,CAAO,EAC9GA,GAAA,CAAA,KAAA,EAAA,EACC,EAAE,EAAC,YAAY,EACf,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,WAAW,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EACtE,SAAS,EAAC,0EAA0E,EAAA,QAAA,EAEpFC,KAAC,KAAK,EAAA,EAAA,QAAA,EAAA,CACLD,IAAC,eAAe,EAAA,EACf,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAClD,uBAAuB,EAAE,uBAAuB,GAC/C,EACFA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAC,eAAe,EAAA,QAAA,EACnCA,GAAA,CAAC,aAAa,EAAA,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,uBAAuB,EAAE,uBAAuB,EAAA,CAC/C,EAAA,CACS,CAAA,EAAA,CACL,EAAA,CACH,CAAA,EAAA,CACD,EAENA,GAAA,CAAC,eAAe,IACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,EAC3F,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,EAC/E,UAAU,EAAE,UAAU,EAAA,CACrB,CAAA,EAAA,CACG;AAER;;ACjRA,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAA4B,KAAI;AAClE,IAAA,QACCC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACCF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2BAA2B,YAAE,IAAI,CAAC,QAAQ,EAAA,CAAO,EAChEC,cAAK,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAAA,CAC3DD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,YAAE,IAAI,CAAC,KAAK,EAAA,CAAQ,EAC5DA,cAAM,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAE,IAAI,CAAC,QAAQ,EAAA,CAAQ,IACpE,EACL,IAAI,CAAC,SAAS,CAAA,EAAA,CACb;AAEL;;ACVA,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAuB,KAAI;AACzF,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE;IAEjC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAC1BA,GAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,sFAAsF,YAC5HA,GAAA,CAAC,mBAAmB,EAAA,EACnB,IAAI,EAAE;gBACL,QAAQ,EAAEA,aAAK,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAAE,YAAY,EAAE,IAAI,EAAA,CAAO;AAClH,gBAAA,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;AAChC,gBAAA,QAAQ,EAAE,YAAY,EAAE,QAAQ,IAAI,EAAE;AACtC,aAAA,EAAA,CACA,EAAA,CACiB,KAEpBA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,IAAC,eAAe,EAAA,EAAA,QAAA,EACfC,IAAA,CAAC,YAAY,eACZD,GAAA,CAAC,mBAAmB,EAAA,EAAC,OAAO,kBAC3BA,GAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,sFAAsF,EAAA,QAAA,EAC5HA,GAAA,CAAC,mBAAmB,EAAA,EACnB,IAAI,EAAE;oCACL,QAAQ,GACPA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAAE,YAAY,EAAE,IAAI,EAAA,CAAO,CACxG;AACD,oCAAA,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;AAChC,oCAAA,QAAQ,EAAE,YAAY,EAAE,QAAQ,IAAI,EAAE;AACtC,oCAAA,SAAS,EAAEA,GAAA,CAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI;AACvC,iCAAA,EAAA,CACA,EAAA,CACiB,EAAA,CACC,EACtBA,GAAA,CAAC,mBAAmB,EAAA,EAAC,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,EAAA,QAAA,EACpH,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACnBA,GAAA,CAAC,gBAAgB,EAAA,EAAyC,OAAO,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,SAAS,EAAC,WAAW,EAAA,QAAA,EACvHA,GAAA,CAAC,mBAAmB,EAAA,EACnB,IAAI,EAAE;oCACL,QAAQ,EAAEA,aAAK,SAAS,EAAC,8DAA8D,EAAA,QAAA,EAAE,MAAM,CAAC,IAAI,EAAA,CAAO;oCAC3G,KAAK,EAAE,MAAM,CAAC,KAAK;oCACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oCACzB,SAAS,EAAE,YAAY,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK,GAAGA,GAAA,CAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAG,IAAI;AAC5E,iCAAA,EAAA,CACA,EAAA,EARoB,CAAA,gBAAA,EAAmB,MAAM,CAAC,KAAK,CAAA,CAAE,CASrC,CACnB,CAAC,EAAA,CACmB,CAAA,EAAA,CACR,EAAA,CACE,EAAA,CACL,CACd;AACF;;ACnDA,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAoB,KAAI;AAC5E,IAAA,QACCA,GAAA,CAAC,iBAAiB,EAAA,EACjB,OAAO,EAAA,IAAA,EACP,SAAS,EAAE,EAAE,CACZ,6IAA6I,EAC7I,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,GAAG,EAAE,CAC7D,EACD,OAAO,EAAE,IAAI,CAAC,KAAK,EACnB,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAA,QAAA,EAExDC,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wCAAwC,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,EAAA,CAAO,EACzEA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,IAAI,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,CACpB,EAAA,CACa;AAEtB;;ACjBA,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAoB,KAAI;IAC1E,QACCA,IAAC,eAAe,EAAA,EAAA,QAAA,EACfA,IAAC,aAAa,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAA,CAAI,EAAA,CAC5D;AAEpB;;ACPA,MAAM,SAAS,GAAG,CAAC,EAAC,KAAK,EAAiB,KAAI;AAC7C,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ;IAE3C,QACCA,IAAC,YAAY,EAAA,EAAC,SAAS,EAAC,KAAK,YAC5BA,GAAA,CAAC,mBAAmB,cACnBA,GAAA,CAAC,WAAW,cACV,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACnB,oBAAA,QACCA,GAAA,CAAC,WAAW,EAAA,EAEX,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,EAH7B,CAAA,kBAAA,EAAqB,IAAI,CAAC,IAAI,CAAA,CAAE,CAIpC;AAEJ,gBAAA,CAAC,CAAC,EAAA,CACW,EAAA,CACO,EAAA,CACR;AAEjB;;ACpBA,MAAM,qBAAqB,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAA8B,KAAI;IAC9F,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE;IAE5C,MAAM,MAAM,GAAG,MAAc;QAC5B,OAAO,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;AACnD,IAAA,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAK;AAChC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,aAAa,EAAE;AAC3B,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,IAAC,WAAW,EAAA,EAAkB,OAAO,EAAA,IAAA,EAAC,WAAW,EAAE,MAAM,EAAE,EAAA,QAAA,EAC1DC,KAAC,eAAe,EAAA,EAAA,QAAA,EAAA,CACfD,GAAA,CAAC,kBAAkB,IAAC,OAAO,EAAA,IAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACxDC,IAAA,CAAC,iBAAiB,EAAA,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,MAAM,mBAAmB,EAAE,EAAA,QAAA,EAAA,CACtG,IAAI,CAAC,IAAI,EACVD,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzBA,GAAA,CAAC,YAAY,IAAC,SAAS,EAAC,yFAAyF,EAAA,CAAG,IACjG,EAAA,CACA,EACrBA,GAAA,CAAC,kBAAkB,cAClBA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACb,IAAI,CAAC;AACL,kCAAE,GAAG,CAAC,CAAC,OAAO,MACbA,GAAA,CAAC,kBAAkB,cAClBA,GAAA,CAAC,oBAAoB,EAAA,EAAC,OAAO,QAAC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAA,eAAA,EAAiB,OAAO,CAAC,QAAQ,EAAA,QAAA,EAClGA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,EAAE,CACZ,oDAAoD,EACpD,aAAa,KAAK,OAAO,CAAC,IAAI,GAAG,mBAAmB,GAAG,EAAE,CACzD,EAAA,QAAA,EAEDA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,KAAK,EAAA,CAAQ,EAAA,CACvB,EAAA,CACgB,IAVC,OAAO,CAAC,KAAK,CAWjB,CACrB,CAAC,EAAA,CACa,EAAA,CACG,CAAA,EAAA,CACJ,IA5BD,IAAI,CAAC,KAAK,CA6Bd,EAAA,CACD;AAEhB;;AC5CA,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAA2B,KAAI;IAC9F,QACCA,IAAC,eAAe,EAAA,EAAA,QAAA,EACfC,KAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACZD,IAAC,mBAAmB,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BA,GAAA,CAAC,iBAAiB,EAAA,EACjB,OAAO,QACP,SAAS,EAAE,EAAE,CACZ,6IAA6I,EAC7I,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,GAAG,EAAE,CAC7D,EACD,OAAO,EAAE,IAAI,CAAC,KAAK,EAAA,QAAA,EAEnBC,yBACE,IAAI,CAAC,IAAI,EACVD,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,IAAI,CAAC,KAAK,GAAQ,EACxBA,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,IAChC,EAAA,CACa,EAAA,CACC,EACtBA,GAAA,CAAC,mBAAmB,IAAC,SAAS,EAAE,kBAAkB,IAAI,IAAI,GAAG,CAAA,UAAA,CAAY,EAAE,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,UAAU,EAAE,CAAC,EAAA,QAAA,EACjH,IAAI,CAAC;AACL,0BAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MACpBC,KAAC,gBAAgB,EAAA,EAEhB,SAAS,EAAE,EAAE,CACZ,wEAAwE,EACxE,aAAa,KAAK,OAAO,CAAC,IAAI,GAAG,mBAAmB,GAAG,EAAE,CACzD,EACD,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAA,QAAA,EAAA,CAE1BD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,YAAE,OAAO,CAAC,KAAK,EAAA,CAAO,EAC5DA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAAE,OAAO,CAAC,WAAW,GAAO,CAAA,EAAA,EATrE,CAAA,EAAG,KAAK,CAAA,CAAE,CAUG,CACnB,CAAC,GACkB,CAAA,EAAA,CACR,EAAA,CACE;AAEpB;;ACrDO,MAAM,kBAAkB,GAAG;AACjC,IAAA,WAAW,EAAE,aAAa;;AAE1B,IAAA,QAAQ,EAAE,UAAU;;;ACSrB,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAe,KAAI;AACzC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ;AAE3C,IAAA,QACCA,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACZA,GAAA,CAAC,mBAAmB,EAAA,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACV,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACnB,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;wBACrB,IAAI,IAAI,CAAC,WAAW,KAAK,kBAAkB,CAAC,WAAW,IAAI,QAAQ,EAAE;AACpE,4BAAA,QACCA,GAAA,CAAC,qBAAqB,EAAA,EAErB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAA,EAH5B,CAAA,4BAAA,EAA+B,IAAI,CAAC,IAAI,CAAA,CAAE,CAI9C;wBAEJ;;wBAGA,IAAI,IAAI,CAAC,WAAW,KAAK,kBAAkB,CAAC,QAAQ,EAAE;AACrD,4BAAA,QACCA,GAAA,CAAC,kBAAkB,EAAA,EAElB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EACjC,IAAI,EAAE,CAAC,EAAA,EAJF,CAAA,yBAAA,EAA4B,IAAI,CAAC,IAAI,CAAA,CAAE,CAK3C;wBAEJ;oBACD;AACA,oBAAA,QACCA,GAAA,CAAC,WAAW,EAAA,EAEX,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,EAH7B,CAAA,kBAAA,EAAqB,IAAI,CAAC,IAAI,CAAA,CAAE,CAIpC;AAEJ,gBAAA,CAAC,CAAC,EAAA,CACW,EAAA,CACO,EAAA,CACR;AAEjB;;AC/CA,MAAM,OAAO,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAe,KAAI;IACrF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvD,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE;IAEjC,MAAM,YAAY,GAAG,MAAK;QACzB,eAAe,CAAC,IAAI,CAAC;QACrB,UAAU,CAAC,MAAK;AACf,YAAA,cAAc,EAAE;QACjB,CAAC,EAAE,IAAI,CAAC;AACT,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EACXA,GAAA,CAAC,eAAe,EAAA,EAAA,QAAA,EACfC,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACZD,GAAA,CAAC,mBAAmB,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC3BA,GAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,sFAAsF,EAAA,QAAA,EAC5HA,GAAA,CAAC,mBAAmB,EAAA,EACnB,IAAI,EAAE;AACL,oCAAA,QAAQ,GACPC,IAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,8BAA8B,EAAA,QAAA,EAAA,CAC/CD,GAAA,CAAC,WAAW,EAAA,EAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAA,CAAI,EACjDA,IAAC,cAAc,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAAE,YAAY,EAAA,CAAkB,IAC/F,CACT;oCACD,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ;oCAC5C,QAAQ,EAAE,YAAY,GAAG,EAAE,GAAG,SAAS;AACvC,oCAAA,SAAS,EAAE,YAAY,IACtBA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,2CAA2C,EAAA,CAAG,KAEhFA,IAAC,MAAM,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,GAAG,CACxD;AACD,iCAAA,EAAA,CACA,EAAA,CACiB,EAAA,CACC,EACtBC,IAAA,CAAC,mBAAmB,EAAA,EAAC,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,EAAA,QAAA,EAAA,CACnHD,IAAC,iBAAiB,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAC7CC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uDAAuD,EAAA,QAAA,EAAA,CACrEA,IAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CACrCD,GAAA,CAAC,WAAW,EAAA,EAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAA,CAAI,EACjDA,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAAE,YAAY,EAAA,CAAkB,CAAA,EAAA,CAC/F,EACTC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAAA,CAC3DD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAQ,EAC1DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAE,SAAS,GAAQ,CAAA,EAAA,CAChD,CAAA,EAAA,CACD,EAAA,CACa,EACpBA,GAAA,CAAC,gBAAgB,EAAA,EAAC,SAAS,EAAC,gCAAgC,EAAC,OAAO,EAAE,MAAM,YAAY,EAAE,EAAA,QAAA,EACzFC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uDAAuD,EAAA,QAAA,EAAA,CACrED,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAEA,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAO,EAAA,SAAA,CAAA,EAAA,CAEjF,EAAA,CACY,CAAA,EAAA,CACE,CAAA,EAAA,CACR,EAAA,CACE,EAAA,CACL;AAEhB;;ACjEA,MAAM,MAAM,GAAG,CAAC,EACf,YAAY,EACZ,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACsG,KAAI;AAClH,IAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,QAAQ,EAAE;AACxC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAgB,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtD,SAAS,CAAC,MAAK;AACd,QAAA,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE;AACzF,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,SAAS,GAAG,CAAC,IAAY,KAAI;QAClC,QAAQ,CAAC,IAAI,CAAC;AACf,IAAA,CAAC;AAED,IAAA,MAAM,OAAO,GAAG,CAAC,KAAa,KAAI;QACjC,IAAI,IAAI,GAAG,EAAE;AAEb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAChC,YAAA,IAAI,IAAI,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,EAAE;QAC9B;AAEA,QAAA,OAAO,IAAI;AACZ,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,KAAI;AACxC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1D,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,KAAI;AACxC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AACnG,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,IAAY,KAAI;AAClC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE;AACZ,YAAA,OAAO,IAAI;QACZ;QAEA,OAAO,MAAM,EAAE,KAAK;AACrB,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,KAAa,KAAI;AAClC,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;AACzC,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;QAEzC,IAAI,WAAW,EAAE;YAChB,OAAO,WAAW,CAAC,KAAK;QACzB;QAEA,OAAO,WAAW,EAAE,KAAK;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,KAAa,KAAI;QAC9C,OAAOA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAkB;AAC1D,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,KAAa,KAAI;AAC5D,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;QAEzC,OAAO,WAAW,EAAE,WAAW,IAC9B,oBAAoB,CAAC,KAAK,CAAC,KAE3BA,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAE,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAClF,KAAK,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAA,CAChC,CACjB;AACF,IAAA,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAK;QAClC,MAAM,eAAe,GAAkB,EAAE;QAEzC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAChC,YAAA,eAAe,CAAC,IAAI,CACnBA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EACb,IAAI,KAAK,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAA,EADhE,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,CAE9B,CACjB;AACD,YAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACtB,gBAAA,eAAe,CAAC,IAAI,CAACA,GAAA,CAAC,mBAAmB,EAAA,EAAuC,SAAS,EAAC,UAAU,IAArD,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAE,CAAyB,CAAC;YACzG;AACD,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,eAAe;AACvB,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAK;AAC/B,QAAA,MAAM,WAAW,GAAG,sBAAsB,EAAE;QAC5C,MAAM,aAAa,GAAG,iBAAiB,EAAE,gBAAgB,IAAI,kBAAkB,CAAC,gBAAgB;QAChG,MAAM,YAAY,GAAG,CAAC,KAAa,KAAiC,KAAK,IAAI,WAAW;AACxF,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,MAAM;AAClG,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC;AACzB,IAAA,CAAC;AAED,IAAA,QACCC,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,mDAAmD,EAAA,QAAA,EAAA,CACpEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oDAAoD,EAAA,QAAA,EAAA,CAClEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oCAAoC,EAAA,QAAA,EAAA,CAClDD,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,KAAK,GAAG,EAClCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,KAAK,EAAA,QAAA,EACnBA,GAAA,CAAC,UAAU,cACVA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EAAE,qBAAqB,EAAE,EAAA,CAAkB,EAAA,CAC9C,EAAA,CACR,IACD,EAENA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,IAC9C,EACLA,GAAA,CAAC,UAAU,EAAA,EAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAA,CAAI,CAAA,EAAA,CACxE;AAEX;;AC3GA,MAAM,cAAc,GAAkC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAI;IACxI,MAAM,UAAU,GAAG,MAAK;AACvB,QAAA,IAAI,YAAY,IAAI,KAAK,EAAE;AAC1B,YAAA,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA,EAAG,KAAK,CAAA,EAAG,MAAM,IAAI,EAAE,CAAA,CAAE,CAAC;AACxD,YAAA,KAAK,CAAC;AACL,gBAAA,KAAK,EAAE,CAAA,CAAA,EAAI,KAAK,GAAG,MAAM,IAAI,EAAE,CAAA,2CAAA,CAA6C;AAC5E,gBAAA,OAAO,EAAE,SAAS;AAClB,aAAA,CAAC;QACH;AACD,IAAA,CAAC;AAED,IAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAA,QAAA,EAC1CA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAE,EAAE,CACZ,8BAA8B,EAC9B,YAAY,GAAG,gEAAgE,GAAG,KAAK,CACvF,EAAA,QAAA,EAEDC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,aACxBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC7DD,eAAO,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAE,KAAK,GAAS,EACvD,QAAQ,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,GAAA,EAAA,CAAQ,IACtD,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+BAA+B,YAC5C,SAAS,GAAGA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,uBAAuB,EAAA,CAAG,GAAGA,aAAK,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAE,KAAK,GAAO,EAAA,CAC9G,EACL,MAAM,KACNA,aAAK,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAC5C,SAAS,GAAGA,GAAA,CAAC,QAAQ,IAAC,SAAS,EAAC,uBAAuB,EAAA,CAAG,GAAGA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,YAAE,MAAM,EAAA,CAAO,GAC/G,CACN,EACDA,aACC,SAAS,EAAE,EAAE,CACZ,6EAA6E,EAC7E,YAAY,IAAI,yBAAyB,CACzC,EAAA,QAAA,EAEDA,IAAC,eAAe,EAAA,EAAA,QAAA,EACfC,KAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACPD,IAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBA,GAAA,CAAC,MAAM,EAAA,EACN,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,YAAY,IAAI,gBAAgB,CAAC,EAC3D,OAAO,EAAE,UAAU,EAAA,QAAA,EAEnBA,GAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GACV,EAAA,CACO,EACjBA,IAAC,cAAc,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAwB,IAC9B,EAAA,CACO,EAAA,CACb,IACD,EAAA,CACD,EAAA,CACD;AAER;;ACzEA,MAAM,QAAQ,GAAG,MAAK;IACrB,QACCA,aAAK,SAAS,EAAC,8GAA8G,EAAA,QAAA,EAC5HC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2DAA2D,aACzEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EAAA,CACjDD,aAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,KAAA,EAAA,CAAU,EAClDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,8CAA0B,CAAA,EAAA,CAC5D,EACNA,aAAK,SAAS,EAAC,sDAAsD,EAAA,QAAA,EAAA,6HAAA,EAAA,CAE/D,EACNA,aAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAC1CC,IAAA,CAAC,MAAM,EAAA,EACN,OAAO,EAAE,MAAK;AACb,4BAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;AAC3B,wBAAA,CAAC,EACD,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAE1BD,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,qBAAA,CAAA,EAAA,CAEL,EAAA,CACJ,CAAA,EAAA,CACD,EAAA,CACD;AAER;;AC5BM,SAAU,QAAQ,CAAC,GAAW,EAAA;IACnC,MAAM,WAAW,GAAG,wEAAwE;AAC5F,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B;;ACHA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;AAChC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;;AAE7B,EAAE,IAAY,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,CAAC;;AAEzD,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU;;AAEzB,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AAC/C,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7B,IAAI;AACJ,EAAE,CAAC,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,EAAE;;AAEF,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;AAClC,EAAE,CAAC,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE;AACF;;;;;;;","x_google_ignoreList":[26,27,28,29,30,31,32,33,34,35,106]}