@6thbridge/hexa 0.0.55 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-lint.log +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/output.css +24 -2
- package/package.json +1 -1
- package/.turbo/turbo-build.log +0 -32
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/tooltip/index.tsx","../src/utils/index.ts","../src/components/label/FormLabel.tsx","../src/components/label/index.tsx","../src/components/loader/index.tsx","../src/components/button/index.tsx","../src/components/input/index.tsx","../src/components/form/ErrorMessage.tsx","../src/components/form/FormDescription.tsx","../src/components/password-input/index.tsx","../src/components/password-input/icons/Eye.tsx","../src/components/password-input/icons/EyeOff.tsx","../src/components/password-input/icons/Check.tsx","../src/components/password-input/icons/Fail.tsx","../src/components/textarea/index.tsx","../src/components/searcheable/index.tsx","../src/components/command/index.tsx","../src/components/dialog/index.tsx","../src/components/dialog/icon/CloseIcon.tsx","../src/components/popover/index.tsx","../src/components/scroll-area/index.tsx","../src/components/country/data.ts","../src/components/phone-input/index.tsx","../src/components/phone-input/Flag.tsx","../src/components/country/index.tsx","../src/components/select/index.tsx","../src/components/otp/index.tsx","../src/components/banner/index.tsx","../src/components/copyable-label/index.tsx","../src/components/debounced-input/index.tsx","../src/components/dev-banner/index.tsx","../src/components/drawer/index.tsx","../src/components/drawer/icon/CloseIcon.tsx","../src/hooks/useWindowSize.ts","../src/components/locale-selctor/icons/Check.tsx","../src/components/locale-selctor/icons/EnglishFlag.tsx","../src/components/locale-selctor/icons/FrenchFlag.tsx","../src/components/locale-selctor/icons/UpDownIcon.tsx","../src/components/locale-selctor/index.tsx","../src/components/sidebar/index.tsx","../src/components/sidebar/business/components/Content.tsx","../src/components/sidebar/business/components/Trigger.tsx","../src/components/sidebar/business/BusinessBar.tsx","../src/components/sidebar/NavItems.tsx","../src/components/sidebar/components/OpenSidebarIcon.tsx","../src/components/sidebar/components/ClosedSidebarIcon.tsx","../src/components/sidebar/components/SidebarToggle.tsx","../src/components/status/index.tsx","../src/components/table/index.tsx","../src/components/table/pagination/index.tsx","../src/components/table/pagination/utils.tsx","../src/components/table/TableBody.tsx","../src/components/table/ToolBar.tsx","../src/components/permission/context.tsx","../src/components/permission/hook.ts","../src/components/permission/index.tsx","../src/actions/amount.action.ts","../src/actions/date.action.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./actions/amount.action\";\nexport * from \"./actions/date.action\";\n\nexport { cn } from \"./utils\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"@/src/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst TooltipRoot = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 2, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-md border border-transparent bg-gray-50 px-3 py-1.5 text-base font-semibold text-bold text-black/40 shadow-xl- 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 [box-shadow:3px_4px_11px_0px_#0000001A,13px_16px_21px_0px_#00000017,29px_36px_28px_0px_#0000000D,52px_65px_33px_0px_#00000003,82px_101px_36px_0px_#00000000]\",\n className,\n )}\n {...props}\n >\n {props.children}\n {/* <TooltipPrimitive.Arrow className=\"!fill-gray-50 w-6\" /> */}\n </TooltipPrimitive.Content>\n));\n\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport type TooltipPropsType = {\n trigger: React.ReactNode;\n children: React.ReactNode;\n contentClassName?: string;\n triggerClassName?: string;\n asChild?: boolean;\n side?: TooltipPrimitive.TooltipContentProps[\"side\"];\n sideOffset?: number;\n align?: TooltipPrimitive.TooltipContentProps[\"align\"];\n alignOffset?: number;\n delayDuration?: number;\n hasArrow?: boolean;\n arrowClassName?: string;\n};\n\nconst Tooltip = ({\n trigger,\n children,\n contentClassName,\n triggerClassName,\n asChild = true,\n side,\n sideOffset,\n align,\n alignOffset,\n delayDuration = 100,\n hasArrow = true,\n arrowClassName,\n ...props\n}: TooltipPropsType &\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>) => {\n return (\n <TooltipProvider>\n <TooltipRoot delayDuration={delayDuration} {...props}>\n <div className=\"flex justify-center items-center\">\n <TooltipTrigger asChild={asChild} className={triggerClassName}>\n {trigger}\n </TooltipTrigger>\n <TooltipContent\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={contentClassName}\n >\n {children}\n {hasArrow && (\n <TooltipPrimitive.Arrow\n className={cn(\"fill-white\", arrowClassName)}\n />\n )}\n </TooltipContent>\n </div>\n </TooltipRoot>\n </TooltipProvider>\n );\n};\nTooltip.displayName = \"Tooltip\";\n\nexport {\n Tooltip,\n TooltipProvider,\n TooltipRoot,\n TooltipTrigger,\n TooltipContent,\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Status =\n | string\n | \"unpaid\"\n | \"partial-payment\"\n | \"active\"\n | \"paid\"\n | \"inactive\"\n | \"in-progress\"\n | \"failed\"\n | \"abandoned\"\n | \"success\";\n\ntype Variant = \"success\" | \"failed\" | \"pending\" | \"abandoned\";\ntype StatusVariantMap = Record<Status, Variant>;\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function areObjectsEqual<T extends object>(obj1: T, obj2: T): boolean {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = obj1[key as keyof T];\n const val2 = obj2[key as keyof T];\n\n if (\n typeof val1 === \"object\" &&\n val1 !== null &&\n typeof val2 === \"object\" &&\n val2 !== null\n ) {\n if (!areObjectsEqual(val1, val2)) {\n return false;\n }\n } else if (val1 !== val2) {\n return false;\n }\n }\n\n return true;\n}\n\nconst defaultStatusGroups: StatusVariantMap = {\n unpaid: \"pending\",\n \"partial-payment\": \"pending\",\n active: \"success\",\n paid: \"success\",\n inactive: \"abandoned\",\n \"in-progress\": \"pending\",\n failed: \"failed\",\n abandoned: \"abandoned\",\n success: \"success\",\n};\n\nexport const getStatusVariant = (\n status: Status,\n customGroups?: Partial<StatusVariantMap>,\n): Variant => {\n const mergedGroups = { ...defaultStatusGroups, ...customGroups };\n return mergedGroups[status] || \"pending\";\n};\n","import React from \"react\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Label } from \".\";\nimport { cn } from \"@/src/utils\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & {\n showAsterisk?: boolean;\n error?: string;\n formItemId?: string;\n }\n>(({ className, children, showAsterisk, error, ...props }, ref) => {\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-red-500\", className)}\n // htmlFor={formItemId}\n {...props}\n >\n {showAsterisk ? (\n <p>\n {children}\n <span className=\"text-red-500\">*</span>\n </p>\n ) : (\n children\n )}\n </Label>\n );\n});\n\nFormLabel.displayName = \"FormLabel\";\n\nexport { FormLabel };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","type Colours = \"primary\" | \"secondary\";\n\nexport const Loader = ({\n size = 16,\n colour = \"primary\",\n}: {\n size?: number;\n colour?: Colours;\n}) => {\n return (\n <svg\n className=\"animate-spin\"\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <circle cx=\"10\" cy=\"10\" r=\"9.25\" stroke=\"transparent\" strokeWidth=\"1.5\" />\n <path\n d=\"M10 0.595792C10 0.266746 10.267 -0.00185055 10.5954 0.0177417C11.9786 0.100242 13.3318 0.469461 14.5682 1.1044C15.9816 1.83021 17.2016 2.88235 18.1273 4.17366C19.0531 5.46496 19.6578 6.95826 19.8913 8.52984C20.1249 10.1014 19.9807 11.706 19.4705 13.2108C18.9604 14.7155 18.0991 16.077 16.9579 17.1825C15.8167 18.288 14.4285 19.1056 12.9084 19.5677C11.3882 20.0298 9.77982 20.123 8.21646 19.8397C6.84883 19.5918 5.55009 19.0619 4.40196 18.2863C4.12931 18.1021 4.08072 17.7265 4.28083 17.4653C4.48094 17.2041 4.85388 17.1564 5.12801 17.3384C6.12474 18.0001 7.24768 18.4531 8.42898 18.6672C9.80606 18.9168 11.2228 18.8347 12.5618 18.4276C13.9008 18.0206 15.1236 17.3004 16.1288 16.3266C17.134 15.3528 17.8927 14.1536 18.342 12.8282C18.7914 11.5027 18.9185 10.0893 18.7127 8.70502C18.507 7.32071 17.9743 6.00535 17.1589 4.86792C16.3435 3.73048 15.2688 2.80371 14.0238 2.16439C12.9559 1.61596 11.789 1.29259 10.5954 1.21173C10.2671 1.18949 10 0.92484 10 0.595792Z\"\n fill={colour === \"primary\" ? \"#ffffff\" : \"currentColor\"}\n className=\"rounded\"\n />\n </svg>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\nimport { Loader } from \"../loader\";\nimport { ButtonHTMLAttributes } from \"react\";\nimport { DetailedHTMLProps } from \"react\";\n\nconst buttonVariants = cva(\n \"overflow-hidden isolate inline-flex h-fit items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background dark:ring-offset-transparent transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:!pointer-events-none\",\n {\n variants: {\n variant: {\n primary:\n \"border-primary-main bg-primary-main hover:bg-primary-main/70 disabled:bg-primary-main/70 text-white font-bold\",\n danger:\n \"border-red-600 bg-red-600 hover:bg-red-600/70 disabled:bg-red-600/70 text-white font-bold\",\n neutral:\n \"!border-0 bg-transparent text-primary-main hover:opacity-80 disabled:opacity-60\",\n outlined:\n \"border border-primary-main text-primary-main hover:opacity-80 disabled:opacity-60\",\n \"danger-outlined\":\n \"border border-red-600 text-red-600 hover:opacity-80 disabled:opacity-60\",\n \"light-outlined\":\n \"border-white text-white hover:opacity-80 disabled:opacity-60\",\n \"dark-text\":\n \"border-transparent bg-transparent hover:bg-opacity-70 disabled:bg-opacity-70 text-black font-medium\",\n light:\n \"border-white bg-white hover:bg-opacity-70 disabled:bg-opacity-70 text-primary-main font-semibold\",\n },\n size: {\n // lg: \"h-15 px-8 items-center\",\n // sm: \"h-10 px-3.5 items-center text-sm\",\n default:\n \"py-[0.625rem] px-[1.5rem] text-[0.875rem] leading-[1.25rem] font-medium rounded-lg\",\n sm: \"py-[0.375rem] px-[1rem] leading-[1rem] font-normal text-sm rounded-lg\",\n lg: \"py-[0.75rem] px-[1.5rem] text-[1rem] leading-[1.5rem] font-medium rounded-lg\",\n md: \"py-[0.625rem] px-[1.5rem] text-[0.875rem] leading-[1.25rem] font-medium rounded-lg\",\n \"icon-sm\":\n \"h-[1.75rem] w-[1.75rem] flex justify-center items-center font-medium rounded-lg\",\n icon: \"h-[2.5rem] w-[2.75rem] flex justify-center items-center font-medium rounded-lg\",\n \"icon-lg\":\n \"h-[3rem] w-[3rem] flex justify-center items-center font-medium rounded-lg\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n // extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n extends DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n isLoading?: boolean;\n leftNode?: React.ReactNode;\n rightNode?: React.ReactNode;\n LoaderSize?: number;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"primary\",\n size,\n asChild = false,\n isLoading = false,\n leftNode,\n rightNode,\n LoaderSize,\n // ref,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : \"button\";\n\n const { children, disabled, ...rest } = props;\n const reference = React.useRef<HTMLButtonElement>(null);\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className }))}\n ref={reference || ref}\n disabled={disabled || isLoading}\n {...rest}\n children={\n <div className=\"flex font-medium justify-center items-center gap-2\">\n {/* {leftNode}\n {children}\n {rightNode}\n {isLoading && <Loader />} */}\n\n {isLoading ? (\n <>\n <span className=\"mx-auto\">\n <Loader size={LoaderSize} colour=\"secondary\" />\n </span>\n </>\n ) : (\n <>\n {leftNode}\n {children}\n {rightNode}\n </>\n )}\n </div>\n }\n />\n );\n },\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\nimport { FormDescription } from \"../form/FormDescription\";\n\nexport const inputVariants = cva(\n \"!p-0 flex h-full w-full !border-transparent !bg-transparent text-base focus-visible:bg-transparent focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n status: {\n default: \"placeholder:text-[#C4C4C4] dark:placeholder:text-[#9299A2]\",\n error: \"placeholder:text-red-500 text-red-500\",\n loading: \"placeholder:text-[#C4C4C4] dark:placeholder:text-[#9299A2]\",\n prefilled: \"\",\n neutral: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport interface BaseInnerInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {}\n\nconst BaseInnerInput = React.forwardRef<HTMLInputElement, BaseInnerInputProps>(\n ({ className, status, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputVariants({ status }), className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nBaseInnerInput.displayName = \"BaseInnerInput\";\n\nexport const inputContainerVariants = cva(\n \"flex relative h-10 w-full rounded-[4px] dark:!bg-transparent border transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:disabled:!border-[#9299A2]\",\n {\n variants: {\n status: {\n default:\n \"border-[#DEDEDE] bg-white text-[#191919] dark:!bg-transparent caret-text-primary focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-500 bg-red-50 border-red-500 dark:!bg-status-error-bg-dark text-red-500 focus-within:bg-red-50 focus-within:border-red-500\",\n loading: \"\",\n prefilled:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport const sideVariants = cva(\n \"top-0 flex justify-center items-center h-full min-w-[50px] max-w-[100px] dark:!bg-transparent transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:disabled:!border-[#9299A2]\",\n {\n variants: {\n side: {\n left: \"left-0 rounded-l-[8px] border-r\",\n right: \"right-0 rounded-r-[8px] border-l\",\n },\n status: {\n default:\n \"border-[#DEDEDE] bg-white text-[#191919] dark:!bg-transparent caret-primary-main focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-500 bg-red-50 border-red-500 dark:!bg-red-50 text-red-500 focus-within:bg-red-50 focus-within:border-red-500\",\n loading: \"\",\n prefilled:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral: \"bg-transparent border-0 caret-[#DEDEDE] !px-0\",\n },\n },\n defaultVariants: {\n status: \"default\",\n side: \"left\",\n },\n },\n);\n\nexport interface InputProps\n extends BaseInnerInputProps,\n VariantProps<typeof inputContainerVariants> {\n isLoading?: boolean;\n error?: string;\n leftNode?: React.ReactNode;\n rightNode?: React.ReactNode;\n sideNodeClassName?: string;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n status = \"default\",\n disabled,\n error,\n isLoading,\n sideNodeClassName,\n showAsterisk,\n label,\n description,\n ...props\n },\n ref,\n ) => {\n let containerStatus: VariantProps<typeof inputContainerVariants>[\"status\"] =\n status;\n\n if (error) containerStatus = \"error\";\n if (isLoading) containerStatus = \"loading\";\n if (disabled) containerStatus = \"prefilled\";\n\n return (\n <div className=\"relative space-y-1 w-full\">\n {label && (\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n )}\n <div\n className={cn(\n inputContainerVariants({ status: containerStatus }),\n props.leftNode ? \"pl-0\" : \"\",\n props.rightNode ? \"pr-0\" : \"\",\n className,\n )}\n >\n {props.leftNode ? (\n <div\n className={cn(\n sideVariants({\n status: containerStatus,\n side: \"left\",\n }),\n sideNodeClassName,\n )}\n >\n {props.leftNode}\n </div>\n ) : null}\n <BaseInnerInput\n ref={ref}\n disabled={isLoading || disabled}\n className={cn({\n \"!pl-3\": props.leftNode && status !== \"neutral\",\n \"!pr-3\": props.rightNode && status !== \"neutral\",\n })}\n {...props}\n />\n {props.rightNode ? (\n <div\n className={cn(\n sideVariants({\n status: containerStatus,\n side: \"right\",\n }),\n sideNodeClassName,\n )}\n >\n {props.rightNode}\n </div>\n ) : null}\n </div>\n {description && (\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n )}\n <ErrorMessage error={error} />\n </div>\n );\n },\n);\n\n// const Input = ({\n// className,\n// status = \"default\",\n// disabled,\n// error,\n// isLoading,\n// sideNodeClassName,\n// showAsterisk,\n// label,\n// description,\n// ref,\n// ...props\n// }: InputProps) => {\n// let containerStatus: VariantProps<typeof inputContainerVariants>[\"status\"] =\n// status;\n\n// if (error) containerStatus = \"error\";\n// if (isLoading) containerStatus = \"loading\";\n// if (disabled) containerStatus = \"prefilled\";\n\n// return (\n// <div className=\"relative space-y-1 w-full\">\n// {label && (\n// <FormLabel showAsterisk={showAsterisk} error={error}>\n// {label}\n// </FormLabel>\n// )}\n// <div\n// className={cn(\n// inputContainerVariants({ status: containerStatus }),\n// props.leftNode ? \"pl-0\" : \"\",\n// props.rightNode ? \"pr-0\" : \"\",\n// className,\n// )}\n// >\n// {props.leftNode ? (\n// <div\n// className={cn(\n// sideVariants({\n// status: containerStatus,\n// side: \"left\",\n// }),\n// sideNodeClassName,\n// )}\n// >\n// {props.leftNode}\n// </div>\n// ) : null}\n// <BaseInnerInput\n// ref={ref}\n// disabled={isLoading || disabled}\n// className={cn({\n// \"!pl-3\": props.leftNode && status !== \"neutral\",\n// \"!pr-3\": props.rightNode && status !== \"neutral\",\n// })}\n// {...props}\n// />\n// {props.rightNode ? (\n// <div\n// className={cn(\n// sideVariants({\n// status: containerStatus,\n// side: \"right\",\n// }),\n// sideNodeClassName,\n// )}\n// >\n// {props.rightNode}\n// </div>\n// ) : null}\n// </div>\n// {description && (\n// <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n// {description}\n// </FormDescription>\n// )}\n// <ErrorMessage error={error} />\n// </div>\n// );\n// };\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","import { cn } from \"@/src/utils\";\nimport React from \"react\";\n\nconst ErrorMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement> & {\n error?: string;\n }\n>(({ className, children, error, ...props }, ref) => {\n const body = error ?? children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n className={cn(\"text-xs font-normal text-[#F04248]\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nErrorMessage.displayName = \"ErrorMessage\";\n\nexport { ErrorMessage };\n","import { cn } from \"@/src/utils\";\nimport React from \"react\";\n\nconst FormDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"text-sm text-[#8E98A8\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nexport { FormDescription };\n","import { useMemo, useState } from \"react\";\nimport { Eye } from \"./icons/Eye\";\nimport { EyeOff } from \"./icons/EyeOff\";\nimport { Input, InputProps } from \"../input\";\nimport { cn } from \"@/src/utils\";\nimport { Check } from \"./icons/Check\";\nimport { Fail } from \"./icons/Fail\";\n\nconst validationOptions = [\n {\n label: \"Uppercase\",\n key: \"uppercase\",\n RegExp: /[A-Z]/,\n validated: false,\n },\n {\n label: \"Lowercase\",\n key: \"lowercase\",\n RegExp: /[a-z]/,\n validated: false,\n },\n {\n label: \"Number\",\n key: \"number\",\n RegExp: /\\d/,\n validated: false,\n },\n {\n label: \"8 Characters\",\n key: \"eight-chars\",\n RegExp: /.{8}/,\n validated: false,\n },\n];\n\ntype PasswordInputProps = InputProps & {\n /**\n * onValidate(validated: boolean, value: string) => void\n * args - validated: this is boolean value that indicated that all validation options were met\n * args - value: this is the string input value\n */\n onValidate?: (validated: boolean, value: string) => void;\n disableValidation?: boolean;\n};\nconst PasswordInput = ({\n onValidate,\n onChange,\n disableValidation,\n ...props\n}: PasswordInputProps) => {\n const [passwordVisible, setPasswordVisible] = useState(false);\n const [validatedValues, setValidatedValues] = useState(validationOptions);\n\n const validatePassword = (value: string) => {\n return validationOptions.map((option) => ({\n ...option,\n validated: option.RegExp.test(value),\n }));\n };\n\n const checkPasswordStrength = (value: string) => {\n const validatedOptions = validatePassword(value);\n const allValidated = validatedOptions.every((option) => option.validated);\n\n setValidatedValues(validatedOptions);\n\n return allValidated;\n };\n\n const handlePaswordInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n e,\n ) => {\n if (onChange) onChange(e);\n\n if (disableValidation) return;\n\n const value = e?.target?.value;\n const validated = checkPasswordStrength(value);\n\n if (onValidate) onValidate(validated, value);\n };\n\n const ValidateComp = useMemo(() => {\n return (\n <div className=\"flex items-center gap-2\">\n {validatedValues?.map((value) => (\n <div\n className={cn(\"text-xs flex items-center gap-0.5\", {\n \"text-[#62C554]\": value?.validated,\n \"text-[#8E98A8]\": !value?.validated,\n })}\n key={value?.key}\n >\n <span className=\"\">{value?.validated ? <Check /> : <Fail />}</span>\n <span className=\"\">{value?.label}</span>\n </div>\n ))}\n </div>\n );\n }, [validatedValues]);\n\n return (\n <Input\n sideNodeClassName=\"!border-l-0\"\n rightNode={\n passwordVisible ? (\n <button\n type=\"button\"\n onClick={() => setPasswordVisible((val) => !val)}\n >\n <Eye />\n </button>\n ) : (\n <button\n type=\"button\"\n onClick={() => setPasswordVisible((val) => !val)}\n >\n <EyeOff />\n </button>\n )\n }\n type={passwordVisible ? \"text\" : \"password\"}\n onChange={handlePaswordInputChange}\n description={!disableValidation && ValidateComp}\n {...props}\n />\n );\n};\n\nPasswordInput.displayName = \"PasswordInput\";\n\nexport { PasswordInput };\n","export const Eye = () => {\n return (\n <svg\n width=\"18\"\n height=\"14\"\n viewBox=\"0 0 18 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.54639 7.26103C1.48389 7.09264 1.48389 6.90741 1.54639 6.73903C2.15517 5.26292 3.18853 4.00081 4.51547 3.1127C5.84241 2.22459 7.40317 1.75049 8.99989 1.75049C10.5966 1.75049 12.1574 2.22459 13.4843 3.1127C14.8113 4.00081 15.8446 5.26292 16.4534 6.73903C16.5159 6.90741 16.5159 7.09264 16.4534 7.26103C15.8446 8.73713 14.8113 9.99925 13.4843 10.8874C12.1574 11.7755 10.5966 12.2496 8.99989 12.2496C7.40317 12.2496 5.84241 11.7755 4.51547 10.8874C3.18853 9.99925 2.15517 8.73713 1.54639 7.26103Z\"\n stroke=\"#8E98A8\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9 9.25C10.2426 9.25 11.25 8.24264 11.25 7C11.25 5.75736 10.2426 4.75 9 4.75C7.75736 4.75 6.75 5.75736 6.75 7C6.75 8.24264 7.75736 9.25 9 9.25Z\"\n stroke=\"#8E98A8\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","export const EyeOff = () => {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.08759 12.69C3.26171 11.9072 2.61006 10.9591 2.17509 9.90752C2.10081 9.73454 2.0625 9.54826 2.0625 9.36001C2.0625 9.17177 2.10081 8.98549 2.17509 8.81252C2.75274 7.4073 3.72095 6.19704 4.96509 5.32502C6.14597 4.4998 7.55989 4.07405 9.00009 4.11002C10.0363 4.084 11.064 4.30239 12.0001 4.74752M13.9201 6.03752C14.7415 6.81964 15.3904 7.76486 15.8251 8.81252C15.8994 8.98549 15.9377 9.17177 15.9377 9.36001C15.9377 9.54826 15.8994 9.73454 15.8251 9.90752C15.2474 11.3127 14.2792 12.523 13.0351 13.395C11.8542 14.2202 10.4403 14.646 9.00009 14.61C7.9639 14.636 6.93616 14.4176 6.00009 13.9725\"\n stroke=\"#8E98A8\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6.5325 10.2375C6.42732 9.95694 6.37395 9.65962 6.375 9.36C6.375 8.66381 6.65156 7.99613 7.14384 7.50384C7.63613 7.01156 8.30381 6.735 9 6.735C9.3 6.7335 9.597 6.7875 9.8775 6.8925M11.4675 8.4825C11.5725 8.763 11.6265 9.06 11.625 9.36C11.625 10.0562 11.3484 10.7239 10.8562 11.2162C10.3639 11.7084 9.69619 11.985 9 11.985C8.70038 11.986 8.40306 11.9327 8.1225 11.8275M2.25 15L14.25 3\"\n stroke=\"#8E98A8\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","export const Check = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.89802 2.93408L9.70202 3.49808L6.21602 8.52608H5.41202L3.46802 5.80208L4.27202 5.05208L5.81402 6.49208L8.89802 2.93408Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n","export const Fail = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.37891 8.62142L6.00041 5.99992L8.62191 8.62142M8.62191 3.37842L5.99991 5.99992L3.37891 3.37842\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { inputContainerVariants } from \"../input\";\nimport { DetailedHTMLProps } from \"react\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst textareaContainerVariants = cva(\n \"flex relative min-h-[80px] w-full rounded-[8px] border transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n status: {\n default:\n \"border-[#D7D7D7] dark:border-[#676767] bg-white text-[#191919] dark:!bg-transparent caret-primary-main focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-status-error-fill bg-status-error-bg border-status-error-fill dark:!bg-status-error-bg-dark text-status-error-fill focus-within:bg-status-error-bg focus-within:border-status-error-fill\",\n loading: \"placeholder:text-[#C4C4C4]\",\n prefilled:\n \"resize-none bg-[#F6F6F6] border-[#D7D7D7] dark:!bg-transparent caret-[#D7D7D7] focus-within:bg-[#F6F6F6] focus-within:border-[#D7D7D7] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport interface TextareaProps\n extends DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n >,\n VariantProps<typeof inputContainerVariants> {\n isLoading?: boolean;\n error?: string;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n}\n\nconst Textarea = ({\n className,\n status = \"default\",\n disabled,\n error,\n isLoading,\n showAsterisk,\n label,\n description,\n ...props\n}: TextareaProps) => {\n let containerStatus: VariantProps<\n typeof textareaContainerVariants\n >[\"status\"] = status;\n\n if (error) containerStatus = \"error\";\n if (isLoading) containerStatus = \"loading\";\n if (disabled) containerStatus = \"prefilled\";\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <textarea\n className={cn(\n \"min-h-[80px]\",\n inputContainerVariants({ status: containerStatus }),\n className,\n )}\n disabled={isLoading || disabled}\n {...props}\n />\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","(\"use client\");\n\nimport * as React from \"react\";\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\nimport { cn } from \"@/src/utils\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { VariantProps } from \"class-variance-authority\";\nimport { inputContainerVariants } from \"../input\";\n\ntype SearchableDataType = {\n value: string;\n label: string;\n} & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any; // Allows for additional properties\n};\n\ninterface SearchableProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n options: SearchableDataType[] | [];\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface SearchableTriggerProps\n extends VariantProps<typeof inputContainerVariants> {\n disabled?: boolean;\n placeholder?: string;\n value?: string;\n className?: string;\n}\n\nconst SearchableTrigger = ({\n className,\n value,\n placeholder = \"\",\n status,\n disabled,\n}: SearchableTriggerProps) => {\n return (\n <PopoverTrigger asChild disabled={disabled}>\n <button\n disabled={disabled}\n className={cn(\n inputContainerVariants({ status }),\n \"[&>span]:justify-start [&>span]:items-center gap-2 flex h-12 w-full items-center justify-between goup\",\n value ? \"\" : \"text-[#79818C]\",\n className,\n )}\n >\n {value ?? placeholder ?? \"Select options...\"}\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n className=\" data-[state=open]:goup-rotate-180\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverTrigger>\n );\n};\n\nconst Searchable = ({\n options = [],\n value,\n onChange,\n containerClassName,\n placeholder,\n disabled,\n loading,\n optionComponent,\n children,\n modal = false,\n hideSearch,\n className,\n inputValue,\n onValueChange,\n onInputValueChange,\n}: SearchableProps) => {\n const [open, setOpen] = React.useState(false);\n\n const triggerRef = React.useRef<HTMLDivElement | null>(null);\n\n const [width, setWidth] = React.useState<number | undefined>(undefined);\n\n React.useLayoutEffect(() => {\n if (triggerRef.current) {\n setWidth(triggerRef.current.clientWidth);\n }\n }, [triggerRef.current]);\n\n return (\n <PopoverRoot modal={modal} open={open} onOpenChange={setOpen}>\n <div className={cn(\"w-full\", className)} ref={triggerRef}>\n {children}\n </div>\n <PopoverContent\n portal={!modal}\n className=\"p-0 min-w-[200px]\"\n style={{ width }}\n >\n <Command\n className={cn(\"relative max-h-[270px]\", {\n \"mt-2\": !hideSearch,\n })}\n >\n {!hideSearch && (\n <CommandInput\n loading={loading}\n placeholder={placeholder ?? \"Search options...\"}\n onValueChange={onInputValueChange}\n value={inputValue}\n CommandInputContainerClassName=\"mx-2 border rounded-md border-[#DEDEDE]\"\n />\n )}\n <ScrollArea\n viewPortClassName=\"max-h-[225px]\"\n className={cn(\n \"w-full px-0 h-full overflow-y-auto\",\n containerClassName,\n )}\n >\n <CommandList>\n {!hideSearch && <CommandEmpty>No result found.</CommandEmpty>}\n <CommandGroup className=\"w-full\">\n {options?.map((option) => (\n <CommandItem\n defaultValue={value?.label}\n key={option.value}\n value={option.label}\n disabled={disabled}\n onSelect={() => {\n onChange(option);\n setOpen(false);\n onValueChange?.(option?.value);\n }}\n >\n {!optionComponent ? option.label : optionComponent(option)}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </ScrollArea>\n </Command>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nexport { Searchable, SearchableTrigger };\n\nexport type { SearchableProps, SearchableTriggerProps, SearchableDataType };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"@/src/utils\";\nimport { Dialog, DialogContent } from \"@/src/components/dialog\";\nimport { Loader } from \"../loader\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {\n trigger?: React.ReactNode;\n}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props} trigger={props?.trigger ?? <></>}>\n <DialogContent className=\"overflow-hidden p-0\">\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\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\ninterface CommandInputProps\n extends React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> {\n CommandInputContainerClassName?: string;\n loading?: boolean;\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n CommandInputProps\n>(({ className, CommandInputContainerClassName, loading, ...props }, ref) => (\n <div\n className={cn(\n \"flex items-center border-0 px-3 gap-2\",\n CommandInputContainerClassName,\n )}\n cmdk-input-wrapper=\"\"\n >\n {loading ? (\n <Loader size={16} colour=\"secondary\" />\n ) : (\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n )}\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n disabled={loading}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\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\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative text=[#222222] 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-primary-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\n\nimport { cn } from \"@/src/utils\";\nimport { CloseIcon } from \"./icon/CloseIcon\";\n\nconst DialogRoot = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n hideCloseButton?: boolean;\n }\n>(({ className, hideCloseButton, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-transparent bg-white 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%] rounded-lg max-h-[95%] overflow-y-auto\",\n className,\n )}\n {...props}\n >\n {children}\n {!hideCloseButton && (\n <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\">\n <CloseIcon />\n\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col space-y-1.5 text-left\", className)}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-row justify-end sm:space-x-2\", className)}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-gray-500\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport type DialogPropsType = {\n trigger?: React.ReactNode;\n children: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n footer?: React.ReactNode;\n hideCloseButton?: boolean;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n asChild?: boolean;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n onInteractOutside?: (e: Event) => void;\n onPointerDownOutside?: (e: Event) => void;\n onEscapeKeyDown?: (e: KeyboardEvent) => void;\n};\n\nconst Dialog = ({\n trigger = undefined,\n children,\n open,\n onOpenChange,\n hideCloseButton,\n footer,\n title,\n description,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n asChild = true,\n onOpenAutoFocus,\n onCloseAutoFocus,\n onEscapeKeyDown,\n onInteractOutside,\n onPointerDownOutside,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> &\n DialogPropsType) => {\n return (\n <DialogRoot {...props} open={open} onOpenChange={onOpenChange}>\n <DialogTrigger asChild={asChild}>{trigger}</DialogTrigger>\n <DialogPortal>\n <DialogContent\n className={contentClassName}\n hideCloseButton={hideCloseButton}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onInteractOutside={onInteractOutside}\n >\n {title || description ? (\n <DialogHeader className={headerClassName}>\n {title && (\n <DialogTitle className={titleClassName}>{title}</DialogTitle>\n )}\n {description && (\n <DialogDescription className={descriptionClassName}>\n {description}\n </DialogDescription>\n )}\n </DialogHeader>\n ) : (\n <></>\n )}\n {children}\n {footer && (\n <DialogFooter className={footerClassName}>{footer}</DialogFooter>\n )}\n </DialogContent>\n </DialogPortal>\n </DialogRoot>\n );\n};\nDialog.displayName = DialogPrimitive.Dialog.displayName;\n\nexport { Dialog, DialogRoot, DialogContent };\n","export const CloseIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/src/utils\";\n\nconst PopoverRoot = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n portal?: boolean;\n }\n>(\n (\n { className, align = \"center\", sideOffset = 4, portal = true, ...props },\n ref,\n ) =>\n portal ? (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"pointer-events-auto z-50 w-72 rounded-md border border-transparent bg-white p-4 text-[#191919] 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\",\n className,\n )}\n onOpenAutoFocus={props.onOpenAutoFocus}\n onCloseAutoFocus={props.onCloseAutoFocus}\n {...props}\n />\n </PopoverPrimitive.Portal>\n ) : (\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"pointer-events-auto z-50 w-72 rounded-md border border-transparent bg-white p-4 text-[#191919] 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\",\n className,\n )}\n onOpenAutoFocus={props.onOpenAutoFocus}\n onCloseAutoFocus={props.onCloseAutoFocus}\n {...props}\n />\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport type PopoverPropsType = {\n trigger: React.ReactNode;\n children: React.ReactNode;\n contentClassName?: string;\n triggerClassName?: string;\n asChild?: boolean;\n align?: PopoverPrimitive.PopoverContentProps[\"align\"];\n side?: PopoverPrimitive.PopoverContentProps[\"side\"];\n alignOffset?: number | undefined;\n sideOffset?: number | undefined;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n portal?: boolean;\n};\n\nconst Popover = ({\n trigger,\n children,\n open,\n onOpenChange,\n contentClassName,\n asChild = true,\n align,\n side,\n alignOffset,\n triggerClassName,\n sideOffset,\n onOpenAutoFocus,\n onCloseAutoFocus,\n portal = true,\n ...props\n}: React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root> &\n PopoverPropsType) => {\n return (\n <PopoverRoot {...props} open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild={asChild} className={triggerClassName}>\n {trigger}\n </PopoverTrigger>\n <PopoverContent\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n side={side}\n align={align}\n className={contentClassName}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n portal={portal}\n >\n {children}\n </PopoverContent>\n </PopoverRoot>\n );\n};\nPopover.displayName = PopoverPrimitive.Root.displayName;\n\nexport { Popover, PopoverRoot, PopoverTrigger, PopoverContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/src/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {\n viewPortClassName?: string;\n }\n>(({ className, viewPortClassName, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n className={cn(\"h-full w-full rounded-[inherit]\", viewPortClassName)}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-[#959595] transition hover:bg-[#808080]\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","export const countryData = [\n {\n countryCode: \"GLOBAL\",\n countryName: \"Global\",\n currency: \"Dollars\",\n currencyCode: \"USD\",\n internetCountryCode: \"GLOBAL\",\n },\n {\n countryName: \"Benin\",\n countryCode: \"+229\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"BJ\",\n },\n {\n countryName: \"Burkina Faso\",\n countryCode: \"+226\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"BF\",\n },\n {\n countryName: \"Cameroon\",\n countryCode: \"+237\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CM\",\n },\n {\n countryName: \"Chad\",\n countryCode: \"+235\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"TD\",\n },\n {\n countryName: \"DR Congo\",\n countryCode: \"+243\",\n currency: \"Congolese franc\",\n currencyCode: \"CDF\",\n currencyIcon: \"FC\",\n internetCountryCode: \"CD\",\n },\n {\n countryName: \"Eswatini\",\n countryCode: \"+268\",\n currency: \"Swazi lilangeni\",\n currencyCode: \"SZL\",\n currencyIcon: \"L\",\n internetCountryCode: \"SZ\",\n },\n {\n countryName: \"Gabon\",\n countryCode: \"+241\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"GA\",\n },\n {\n countryName: \"Ghana\",\n countryCode: \"+233\",\n currency: \"Ghanaian cedi\",\n currencyCode: \"GHS\",\n currencyIcon: \"₵\",\n internetCountryCode: \"GH\",\n },\n {\n countryName: \"Guinea\",\n countryCode: \"+224\",\n currency: \"Guinean franc\",\n currencyCode: \"GNF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"GN\",\n },\n {\n countryName: \"Ivory Coast\",\n countryCode: \"+225\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CI\",\n },\n {\n countryName: \"Kenya\",\n countryCode: \"+254\",\n currency: \"Kenyan shilling\",\n currencyCode: \"KES\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"KE\",\n },\n {\n countryName: \"Lesotho\",\n countryCode: \"+266\",\n currency: \"Lesotho loti\",\n currencyCode: \"LSL\",\n currencyIcon: \"L\",\n internetCountryCode: \"LS\",\n },\n {\n countryName: \"Liberia\",\n countryCode: \"+231\",\n currency: \"Liberian dollar\",\n currencyCode: \"LRD\",\n currencyIcon: \"$\",\n internetCountryCode: \"LR\",\n },\n {\n countryName: \"Madagascar\",\n countryCode: \"+261\",\n currency: \"Malagasy ariary\",\n currencyCode: \"MGA\",\n currencyIcon: \"Ar\",\n internetCountryCode: \"MG\",\n },\n {\n countryName: \"Malawi\",\n countryCode: \"+265\",\n currency: \"Malawian kwacha\",\n currencyCode: \"MWK\",\n currencyIcon: \"MK\",\n internetCountryCode: \"MW\",\n },\n {\n countryName: \"Mali\",\n countryCode: \"+223\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"ML\",\n },\n {\n countryName: \"Mozambique\",\n countryCode: \"+258\",\n currency: \"Mozambican metical\",\n currencyCode: \"MZN\",\n currencyIcon: \"MT\",\n internetCountryCode: \"MZ\",\n },\n {\n countryName: \"Namibia\",\n countryCode: \"+264\",\n currency: \"Namibian dollar\",\n currencyCode: \"NAD\",\n currencyIcon: \"$\",\n internetCountryCode: \"NA\",\n },\n {\n countryName: \"Niger\",\n countryCode: \"+227\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"NE\",\n },\n {\n countryName: \"Nigeria\",\n countryCode: \"+234\",\n currency: \"Nigerian naira\",\n currencyCode: \"NGN\",\n currencyIcon: \"₦\",\n internetCountryCode: \"NG\",\n },\n {\n countryName: \"Republic of the Congo\",\n countryCode: \"+242\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CG\",\n },\n {\n countryName: \"Rwanda\",\n countryCode: \"+250\",\n currency: \"Rwandan franc\",\n currencyCode: \"RWF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"RW\",\n },\n {\n countryName: \"Senegal\",\n countryCode: \"+221\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"SN\",\n },\n {\n countryName: \"Seychelles\",\n countryCode: \"+248\",\n currency: \"Seychellois rupee\",\n currencyCode: \"SCR\",\n currencyIcon: \"₨\",\n internetCountryCode: \"SC\",\n },\n {\n countryName: \"South Africa\",\n countryCode: \"+27\",\n currency: \"South African rand\",\n currencyCode: \"ZAR\",\n currencyIcon: \"R\",\n internetCountryCode: \"ZA\",\n },\n {\n countryName: \"South Sudan\",\n countryCode: \"+211\",\n currency: \"South Sudanese pound\",\n currencyCode: \"SSP\",\n currencyIcon: \"£\",\n internetCountryCode: \"SS\",\n },\n {\n countryName: \"Tanzania\",\n countryCode: \"+255\",\n currency: \"Tanzanian shilling\",\n currencyCode: \"TZS\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"TZ\",\n },\n {\n countryName: \"Togo\",\n countryCode: \"+228\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"TG\",\n },\n {\n countryName: \"Uganda\",\n countryCode: \"+256\",\n currency: \"Ugandan shilling\",\n currencyCode: \"UGX\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"UG\",\n },\n {\n countryName: \"Zambia\",\n countryCode: \"+260\",\n currency: \"Zambian kwacha\",\n currencyCode: \"ZMW\",\n currencyIcon: \"ZK\",\n internetCountryCode: \"ZM\",\n },\n];\n\nexport const getCountryDataMap = () => {\n const frequency = {} as Record<string, string>;\n\n countryData?.forEach((country) => {\n frequency[country?.internetCountryCode] = country?.countryName;\n });\n\n return frequency;\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport * as RPNInput from \"react-phone-number-input\";\n\nimport flags from \"react-phone-number-input/flags\";\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command\";\nimport { Input, InputProps, inputContainerVariants } from \"../input\";\nimport { PopoverRoot, PopoverContent, PopoverTrigger } from \"../popover\";\n\nimport { cn } from \"@/src/utils\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { VariantProps } from \"class-variance-authority\";\nimport FlatGlobeIcon from \"./Flag\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\nexport type PhoneInputValue = RPNInput.Value;\n\nexport type PhoneInputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"value\"\n> &\n Omit<RPNInput.Props<typeof RPNInput.default>, \"onChange\"> & {\n onChange?: (value: RPNInput.Value) => void;\n } & {\n status?: VariantProps<typeof inputContainerVariants>[\"status\"];\n defaultCountry?: RPNInput.Country;\n modal?: boolean;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n };\n\nconst PhoneInput: React.ForwardRefExoticComponent<PhoneInputProps> =\n React.forwardRef<React.ElementRef<typeof RPNInput.default>, PhoneInputProps>(\n (\n {\n className,\n onChange,\n defaultCountry = \"NG\",\n modal,\n showAsterisk,\n label,\n description,\n error,\n ...props\n },\n ref,\n ) => {\n /**\n * did this so I can pass the status prop to the country\n * select so I can change the appearance based on the status\n */\n const CountrySelectWrapper = (innerProps: CountrySelectProps) => {\n return (\n <CountrySelect {...innerProps} status={props.status} modal={modal} />\n );\n };\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <RPNInput.default\n ref={ref}\n className={cn(\"flex\", className)}\n flagComponent={FlagComponent}\n countrySelectComponent={CountrySelectWrapper}\n inputComponent={InputComponent}\n defaultCountry={defaultCountry}\n /**\n * Handles the onChange event.\n *\n * react-phone-number-input might trigger the onChange event as undefined\n * when a valid phone number is not entered. To prevent this,\n * the value is coerced to an empty string.\n *\n * @param {E164Number | undefined} value - The entered value\n */\n onChange={(value) => {\n if (onChange) {\n onChange?.(value as RPNInput.Value);\n }\n }}\n {...props}\n />\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n },\n );\nPhoneInput.displayName = \"PhoneInput\";\n\nconst InputComponent = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n className={cn(\"!rounded-s-none h-10\", className)}\n {...props}\n ref={ref}\n />\n );\n },\n);\nInputComponent.displayName = \"InputComponent\";\n\ntype CountrySelectOption = { label: string; value: RPNInput.Country };\n\ntype CountrySelectProps = {\n disabled?: boolean;\n modal?: boolean;\n value: RPNInput.Country;\n onChange: (value: RPNInput.Country) => void;\n options: CountrySelectOption[];\n status?: VariantProps<typeof inputContainerVariants>[\"status\"];\n};\n\nconst CountrySelect = ({\n disabled,\n value,\n onChange,\n options,\n status,\n modal,\n}: CountrySelectProps) => {\n const handleSelect = React.useCallback(\n (country: RPNInput.Country) => {\n onChange(country);\n },\n [onChange],\n );\n\n return (\n <PopoverRoot modal={modal}>\n <PopoverTrigger disabled={disabled}>\n <div\n className={cn(\n inputContainerVariants({ status }),\n \"transition justify-center items-center disabled:text-base-500 flex gap-3 h-10 rounded-e-none border-e-0 pl-2 pr-2\",\n )}\n >\n <FlagComponent country={value} countryName={value} />\n <svg\n className={cn(\n \"mr-0.5 h-4 w-4 opacity-50\",\n disabled ? \"hidden\" : \"opacity-100\",\n )}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"#959595\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </PopoverTrigger>\n <PopoverContent portal={!modal} className=\"w-[200px] md:w-[300px] p-0\">\n <Command>\n <CommandList>\n <ScrollArea className=\"h-72\">\n <CommandInput placeholder=\"Search country...\" />\n <CommandEmpty>No country found.</CommandEmpty>\n <CommandGroup>\n {options\n .filter((x) => x.value)\n .map((option) => (\n <CommandItem\n className=\"gap-2\"\n key={`${option.value}-${option.label}`}\n onSelect={() => handleSelect(option.value)}\n >\n <FlagComponent\n country={option.value}\n countryName={option.label}\n />\n <span className=\"flex-1 text-sm\">{option.label}</span>\n {option.value && (\n <span className=\"text-[#191919]/50 text-sm dark:text-white\">\n {`+${RPNInput.getCountryCallingCode(option.value)}`}\n </span>\n )}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n \"ml-auto\",\n option.value === value ? \"opacity-100\" : \"opacity-0\",\n )}\n >\n <path\n d=\"M4 8.00008L6.66353 10.6636L12 5.33655\"\n stroke=\"#959595\"\n strokeWidth=\"1.06667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </CommandItem>\n ))}\n </CommandGroup>\n </ScrollArea>\n </CommandList>\n </Command>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\ntype FlagComponentProps = RPNInput.FlagProps & {\n className?: string;\n};\n\nconst FlagComponent = ({\n country,\n countryName,\n className,\n}: FlagComponentProps) => {\n const Flag = flags[country];\n\n if (country === (\"GLOBAL\" as unknown))\n return (\n <span\n className={cn(\n \"bg-white/20 flex h-4 w-6 overflow-hidden rounded-sm\",\n className,\n )}\n >\n <FlatGlobeIcon className=\"w-full h-[90%]\" />\n </span>\n );\n\n return (\n <span\n className={cn(\n \"bg-white/20 flex h-4 w-6 overflow-hidden rounded-sm\",\n className,\n )}\n >\n {Flag && <Flag title={countryName} />}\n </span>\n );\n};\nFlagComponent.displayName = \"FlagComponent\";\n\nexport { PhoneInput, FlagComponent };\n","// import React from 'react'\n\n// export const Flag = () => {\n// return (\n// <div>Flag</div>\n// )\n// }\n\nimport type React from \"react\";\n\nconst FlatGlobeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n {...props}\n >\n <rect width=\"32\" height=\"32\" fill=\"#60A5FA\" /> {/* Ocean color */}\n {/* Continents */}\n <path\n d=\"M3 10L7 8L10 9L13 8L16 10L19 9L22 11L25 10L28 12V15L26 17L28 19L27 22L29 24L27 26L24 25L21 26L18 24L15 25L12 23L9 24L6 22L4 23L2 21V18L4 16L3 13L5 11L3 10Z\"\n fill=\"#34D399\"\n />\n {/* Antarctica */}\n <rect x=\"2\" y=\"28\" width=\"28\" height=\"3\" fill=\"#D1D5DB\" />\n {/* Grid lines */}\n <path\n d=\"M0 16H32M8 0V32M16 0V32M24 0V32\"\n stroke=\"#2563EB\"\n strokeWidth=\"0.5\"\n vectorEffect=\"non-scaling-stroke\"\n />\n {/* Equator */}\n <path\n d=\"M0 16H32\"\n stroke=\"#2563EB\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n );\n};\n\nexport default FlatGlobeIcon;\n","import { inputContainerVariants } from \"../input\";\nimport { Searchable, SearchableDataType } from \"../searcheable\";\nimport { VariantProps } from \"class-variance-authority\";\nimport { countryData, getCountryDataMap } from \"./data\";\nimport { PopoverTrigger } from \"../popover\";\nimport { cn } from \"@/src/utils\";\nimport { FlagComponent } from \"../phone-input\";\nimport { Country as CountryCode } from \"react-phone-number-input\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\ntype CountryPropsStatus = VariantProps<typeof inputContainerVariants>[\"status\"];\n\ninterface CountryProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n status?: CountryPropsStatus;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n}\n\ninterface CountryTriggerProps\n extends VariantProps<typeof inputContainerVariants> {\n disabled?: boolean;\n placeholder?: string;\n value?: string;\n className?: string;\n}\n\nconst countryMap = getCountryDataMap();\n\nconst CountryTrigger = ({\n className,\n value,\n placeholder = \"\",\n status,\n disabled,\n}: CountryTriggerProps) => {\n return (\n <PopoverTrigger asChild disabled={disabled}>\n <button\n disabled={disabled}\n className={cn(\n inputContainerVariants({ status }),\n \"[&>span]:justify-start [&>span]:items-center gap-2 flex w-full items-center justify-between goup\",\n value ? \"\" : \"text-[#79818C]\",\n className,\n )}\n >\n {value ? (\n <div className=\"flex gap-2 items-center\">\n <FlagComponent\n country={value as CountryCode}\n countryName={value}\n className=\"ml-1 !w-6 h-5\"\n />\n <span className=\"\"> {countryMap[value]}</span>\n </div>\n ) : (\n (placeholder ?? \"Select options...\")\n )}\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n className=\" data-[state=open]:goup-rotate-180\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverTrigger>\n );\n};\n\nconst Country = ({\n hideSearch = true,\n showAsterisk,\n label,\n description,\n error,\n ...props\n}: CountryProps) => {\n const options = countryData?.map((country) => ({\n value: country?.internetCountryCode,\n label: country?.countryName,\n ...country,\n }));\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <Searchable\n options={options}\n hideSearch={hideSearch}\n optionComponent={(arg) => {\n return (\n <div className=\"w-full flex items-center gap-2\">\n <FlagComponent\n country={arg?.internetCountryCode}\n countryName={arg?.label}\n className=\"ml-2 !w-6 !h-5\"\n />\n <span className=\"flex-1 text-sm\">{arg?.label}</span>\n </div>\n );\n }}\n {...props}\n >\n <CountryTrigger\n value={props?.value?.value}\n status={props?.status}\n placeholder={props?.placeholder ?? \" Select Country\"}\n />\n </Searchable>\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nexport { Country };\nexport type { CountryProps };\n\n//Todo -\n// dataSource - array of countries\n// availableCountries - countries to be filtered by countryCode\n","import { ErrorMessage } from \"../form/ErrorMessage\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { inputContainerVariants } from \"../input\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport {\n Searchable,\n SearchableDataType,\n SearchableTrigger,\n} from \"../searcheable\";\nimport { VariantProps } from \"class-variance-authority\";\n\ntype SelectPropsStatus = VariantProps<typeof inputContainerVariants>[\"status\"];\n\ninterface SelectProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n options: SearchableDataType[];\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n status?: SelectPropsStatus;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n}\n\nconst Select = ({\n showAsterisk,\n label,\n description,\n error,\n hideSearch = true,\n status,\n ...props\n}: SelectProps) => {\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <Searchable\n hideSearch={hideSearch}\n {...props}\n containerClassName=\"h-full\"\n >\n <SearchableTrigger\n disabled={props?.disabled}\n placeholder={props?.placeholder ?? \"Select\"}\n status={status}\n value={props?.value?.label ?? props?.value?.value}\n />\n </Searchable>\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nexport { Select };\nexport type { SelectProps };\n\n//Todo\n// onchange value\n","import OtpInput, { OTPInputProps as InputProps } from \"react-otp-input\";\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { useMemo } from \"react\";\n\nconst otpInputVariants = cva(\n \"transition cursor-default placeholder:text-black dark:placeholder:text-white rounded-lg !h-14 !w-14 border aspect-square text-base font-semibold tracking-normal outline-none placeholder:text-sm placeholder:font-normal text-black focus:bg-white\",\n {\n variants: {\n status: {\n default:\n \"border-gray-300 dark:border-[#d4d4d4] focus:border-gray-400 focus-visible:!ring-offset-gray-200 focus:ring-offset-gray-200 !ring-gray-200 !focus-visible:ring-1 bg-white dark:!bg-transparent dark:focus-visible:!ring-0 dark:focus-within:!bg-transparent dark:text-white dark:focus-within:border-[#9299A2] dark:border-[#676767] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-600 bg-red-50 border-red-600 text-red-600 focus-within:bg-red-50 focus-within:border-red-600\",\n loading: \"placeholder:text-[#C4C4C4]\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\ntype DefailtInputProps = Omit<InputProps, \"renderInput\">;\n\nexport type OTPInputProps = DefailtInputProps &\n VariantProps<typeof otpInputVariants> & {};\n\nexport const OTPInput = ({\n numInputs = 4,\n inputStyle,\n containerStyle,\n placeholder = \"-\",\n status,\n ...props\n}: OTPInputProps) => {\n const placeholderValue = useMemo(() => {\n if (placeholder) return placeholder;\n\n const numInputArr = new Array<string>(numInputs).fill(\"\");\n const result = numInputArr.reduce((accumulator, currentValue) => {\n return (accumulator += currentValue);\n }, \"\");\n\n return result;\n }, [numInputs, placeholder]);\n\n return (\n <OtpInput\n numInputs={numInputs}\n placeholder={placeholderValue}\n containerStyle={cn(\"w-full\", containerStyle)}\n inputStyle={cn(otpInputVariants({ status }), inputStyle)}\n renderInput={(props) => <input {...props} />}\n {...props}\n />\n );\n};\n","import { useState, useEffect } from \"react\";\n\ninterface BannerTypes {\n type?: \"gray\" | \"info\" | \"warning\" | \"success\" | \"danger\";\n}\n\ninterface BannerProps extends BannerTypes {\n title?: React.ReactNode;\n description?: React.ReactNode;\n showIcon?: boolean;\n showCloseButton?: boolean;\n bottomNode?: React.ReactNode;\n sideNode?: React.ReactNode;\n open: boolean;\n onClose?: () => void;\n}\n\nconst Icon = ({ type }: BannerTypes) => {\n if (type === \"gray\") {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 0C4.49 0 0 4.49 0 10C0 15.51 4.49 20 10 20C15.51 20 20 15.51 20 10C20 4.49 15.51 0 10 0ZM14.78 7.7L9.11 13.37C8.97 13.51 8.78 13.59 8.58 13.59C8.38 13.59 8.19 13.51 8.05 13.37L5.22 10.54C4.93 10.25 4.93 9.77 5.22 9.48C5.51 9.19 5.99 9.19 6.28 9.48L8.58 11.78L13.72 6.64C14.01 6.35 14.49 6.35 14.78 6.64C15.07 6.93 15.07 7.4 14.78 7.7Z\"\n fill=\"#79818C\"\n />\n </svg>\n );\n } else if (type === \"info\") {\n return (\n <svg\n stroke=\"#70B6F6\"\n fill=\"#70B6F6\"\n stroke-width=\"0\"\n viewBox=\"0 0 16 16\"\n height=\"24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2\"></path>\n </svg>\n );\n } else if (type === \"warning\") {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.99984 1.66663C5.40817 1.66663 1.6665 5.40829 1.6665 9.99996C1.6665 14.5916 5.40817 18.3333 9.99984 18.3333C14.5915 18.3333 18.3332 14.5916 18.3332 9.99996C18.3332 5.40829 14.5915 1.66663 9.99984 1.66663ZM9.37484 6.66663C9.37484 6.32496 9.65817 6.04163 9.99984 6.04163C10.3415 6.04163 10.6248 6.32496 10.6248 6.66663V10.8333C10.6248 11.175 10.3415 11.4583 9.99984 11.4583C9.65817 11.4583 9.37484 11.175 9.37484 10.8333V6.66663ZM10.7665 13.65C10.7248 13.7583 10.6665 13.8416 10.5915 13.925C10.5082 14 10.4165 14.0583 10.3165 14.1C10.2165 14.1416 10.1082 14.1666 9.99984 14.1666C9.8915 14.1666 9.78317 14.1416 9.68317 14.1C9.58317 14.0583 9.4915 14 9.40817 13.925C9.33317 13.8416 9.27484 13.7583 9.23317 13.65C9.1915 13.55 9.1665 13.4416 9.1665 13.3333C9.1665 13.225 9.1915 13.1166 9.23317 13.0166C9.27484 12.9166 9.33317 12.825 9.40817 12.7416C9.4915 12.6666 9.58317 12.6083 9.68317 12.5666C9.88317 12.4833 10.1165 12.4833 10.3165 12.5666C10.4165 12.6083 10.5082 12.6666 10.5915 12.7416C10.6665 12.825 10.7248 12.9166 10.7665 13.0166C10.8082 13.1166 10.8332 13.225 10.8332 13.3333C10.8332 13.4416 10.8082 13.55 10.7665 13.65Z\"\n fill=\"#FFC700\"\n />\n </svg>\n );\n } else if (type === \"success\") {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 2C6.49 2 2 6.49 2 12C2 17.51 6.49 22 12 22C17.51 22 22 17.51 22 12C22 6.49 17.51 2 12 2ZM16.78 9.7L11.11 15.37C10.97 15.51 10.78 15.59 10.58 15.59C10.38 15.59 10.19 15.51 10.05 15.37L7.22 12.54C6.93 12.25 6.93 11.77 7.22 11.48C7.51 11.19 7.99 11.19 8.28 11.48L10.58 13.78L15.72 8.64C16.01 8.35 16.49 8.35 16.78 8.64C17.07 8.93 17.07 9.4 16.78 9.7Z\"\n fill=\"#00D488\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.99984 1.66663C5.40817 1.66663 1.6665 5.40829 1.6665 9.99996C1.6665 14.5916 5.40817 18.3333 9.99984 18.3333C14.5915 18.3333 18.3332 14.5916 18.3332 9.99996C18.3332 5.40829 14.5915 1.66663 9.99984 1.66663ZM9.37484 6.66663C9.37484 6.32496 9.65817 6.04163 9.99984 6.04163C10.3415 6.04163 10.6248 6.32496 10.6248 6.66663V10.8333C10.6248 11.175 10.3415 11.4583 9.99984 11.4583C9.65817 11.4583 9.37484 11.175 9.37484 10.8333V6.66663ZM10.7665 13.65C10.7248 13.7583 10.6665 13.8416 10.5915 13.925C10.5082 14 10.4165 14.0583 10.3165 14.1C10.2165 14.1416 10.1082 14.1666 9.99984 14.1666C9.8915 14.1666 9.78317 14.1416 9.68317 14.1C9.58317 14.0583 9.4915 14 9.40817 13.925C9.33317 13.8416 9.27484 13.7583 9.23317 13.65C9.1915 13.55 9.1665 13.4416 9.1665 13.3333C9.1665 13.225 9.1915 13.1166 9.23317 13.0166C9.27484 12.9166 9.33317 12.825 9.40817 12.7416C9.4915 12.6666 9.58317 12.6083 9.68317 12.5666C9.88317 12.4833 10.1165 12.4833 10.3165 12.5666C10.4165 12.6083 10.5082 12.6666 10.5915 12.7416C10.6665 12.825 10.7248 12.9166 10.7665 13.0166C10.8082 13.1166 10.8332 13.225 10.8332 13.3333C10.8332 13.4416 10.8082 13.55 10.7665 13.65Z\"\n fill=\"#F04248\"\n />\n </svg>\n );\n }\n};\n\nexport const Banner = ({\n type = \"info\",\n title,\n description,\n open,\n showCloseButton,\n bottomNode,\n sideNode,\n onClose,\n showIcon = true,\n}: BannerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(open);\n\n useEffect(() => {\n setIsOpen(open);\n }, [open]);\n\n let bgColor = \"\";\n let stripeColor = \"\";\n switch (type) {\n case \"gray\":\n bgColor = \"#eeeef0\";\n stripeColor = \"#79818c\";\n break;\n case \"info\":\n bgColor = \"#ebf5fd\";\n stripeColor = \"#70B6F6\";\n break;\n case \"warning\":\n bgColor = \"#fff8df\";\n stripeColor = \"#ffc700\";\n break;\n case \"success\":\n bgColor = \"#e0f9f0\";\n stripeColor = \"#49e0aa\";\n break;\n case \"danger\":\n bgColor = \"#fde8e9\";\n stripeColor = \"#f3777c\";\n break;\n default:\n bgColor = \"#eeeef0\";\n stripeColor = \"#79818c\";\n break;\n }\n\n function handleClose() {\n setIsOpen(false);\n if (onClose) {\n onClose();\n }\n }\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <div\n className=\"w-full shadow-lg transform flex items-center rounded-md\"\n style={{\n background: bgColor || \"#ebf5fd\",\n }}\n >\n <div\n className=\"flex-none absolute rounded-l-[2px] rounded-l-4px h-[4px] w-full top-0\"\n style={{\n background: stripeColor || \"#70B6F6\",\n }}\n />\n\n <div className=\"w-full gap-3 h-full flex flex-row justify-between px-4 md:px-4 py-3 md:py-4\">\n <div className=\"flex flex-row gap-2.5 items-start w-full h-full\">\n {showIcon && (\n <div className=\"h-full flex justify-end\">\n <Icon type={type} />\n </div>\n )}\n\n <div className=\"w-full gap-3 h-full flex flex-col md:flex-row items-start justify-between\">\n <div className=\"flex-1 gap-3 h-full flex flex-col items-start justify-between\">\n {(title || description) && (\n <div>\n {title && (\n <div className=\"text-sm font-bold text-[#191919]\">\n {title}\n </div>\n )}\n {description && (\n <div className=\"text-sm font-normal text-[#5D5D5D] mt-1\">\n {description}\n </div>\n )}\n </div>\n )}\n\n {bottomNode}\n </div>\n {sideNode}\n </div>\n </div>\n\n {showCloseButton && (\n <div className=\"w-1/10 h-full flex flex-col justify-start items-center\">\n <button onClick={handleClose}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.3335 3.33337L12.6662 12.6661\"\n stroke=\"#191919\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M3.33429 12.6661L12.667 3.33337\"\n stroke=\"#191919\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { Copy, CheckIcon } from \"lucide-react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { cn } from \"@/src/utils\";\n\ninterface CopyableLabelProps {\n text: string;\n textToCopy?: string; //this is coppied to the clipboard if passed as a prop instead of the text prop passed else defaults to the text prop\n onCopy?: () => void;\n iconsPosition?: \"left\" | \"right\";\n clampText?: boolean;\n textClassName?: string;\n}\n\nconst CopyableLabel: React.FC<CopyableLabelProps> = ({\n text,\n textToCopy,\n onCopy,\n iconsPosition = \"right\",\n clampText = true,\n textClassName,\n}) => {\n const [copied, setCopied] = useState(false);\n\n const copyToClipboard = () => {\n navigator.clipboard.writeText(textToCopy ?? text).then(() => {\n setCopied(true);\n onCopy?.();\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n const Icon = copied ? CheckIcon : Copy;\n\n return (\n <div className=\"flex items-center space-x-2 cursor-pointer text-[#717171] bg-gray-100 w-fit max-w-full rounded-md p-1 px-2\">\n {iconsPosition === \"left\" && (\n <AnimatedIcon Icon={Icon} onClick={copyToClipboard} copied={copied} />\n )}\n <span\n className={cn({ \"truncate max-w-[100px]\": clampText }, textClassName)}\n >\n {text}\n </span>\n {iconsPosition === \"right\" && (\n <AnimatedIcon Icon={Icon} onClick={copyToClipboard} copied={copied} />\n )}\n </div>\n );\n};\n\nconst AnimatedIcon: React.FC<{\n Icon: React.ElementType;\n onClick: () => void;\n copied: boolean;\n}> = ({ Icon, onClick, copied }) => (\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={copied ? \"check\" : \"copy\"}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n transition={{ duration: 0.2 }}\n onClick={onClick}\n >\n <Icon\n className={`w-5 h-5 ${copied ? \"text-green-500\" : \"text-gray-500 hover:text-gray-700 transition\"}`}\n />\n </motion.div>\n </AnimatePresence>\n);\n\nexport { CopyableLabel };\n","import React, { ChangeEvent, useEffect, useState } from \"react\";\nimport { BaseInnerInputProps, Input } from \"../input\";\nimport { cn } from \"@/src/utils\";\nimport { Search } from \"lucide-react\";\n\ntype DebouncedInputProps = {\n value?: string;\n\n onChange: (e: string) => void;\n debounce?: number;\n addon?: React.ReactNode;\n} & Omit<BaseInnerInputProps, \"onChange\" | \"size\">;\n\nexport const DebouncedInput = ({\n value: initialValue,\n onChange,\n debounce = 500,\n addon,\n ...props\n}: DebouncedInputProps) => {\n const [value, setValue] = useState<string>(initialValue ?? \"\");\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) =>\n setValue(event.target.value);\n\n useEffect(() => {\n if (!initialValue) return;\n setValue(initialValue);\n }, [initialValue]);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n onChange(value);\n }, debounce);\n\n return () => clearTimeout(timeout);\n }, [value, debounce, onChange]);\n\n return (\n <Input\n leftNode={\n (addon as React.ReactElement) ?? (\n <Search className=\" w-4 h-4 text-gray-400\" />\n )\n }\n sideNodeClassName=\"bg-transparent !pr-0 !w-4 border-0 !min-w-[40px]\"\n {...props}\n className={cn(\n \"!pl-0 py-1 border-[.5px] border-[#E9EBF8] rounded-xl text-sm w-full h-8 focus:outline-none focus:placeholder:hidden focus:!ring-2 !focus:ring-primary-main bg-[#F5F8FF] focus-within:!bg-transparent placeholder:text-xs\",\n props?.className,\n )}\n onChange={handleInputChange}\n value={value}\n />\n );\n};\n","import { useEffect } from \"react\";\nimport { X } from \"lucide-react\";\n\ntype Props = {\n environment: \"staging\" | \"sandbox\" | \"production\";\n branch: string;\n version: string;\n deployTime: string;\n onClose: () => void;\n showBanner: boolean;\n initDefault: () => void;\n removeFromStorage: () => void;\n syncLocalStorageToState: () => void;\n};\nexport const DevBanner = (props: Props) => {\n const {\n environment,\n branch,\n version,\n deployTime,\n showBanner,\n onClose,\n initDefault,\n removeFromStorage,\n syncLocalStorageToState,\n } = props;\n\n const currentEnv = environment || process.env.NEXT_PUBLIC_NODE_ENV;\n\n // Early return must happen before any hooks\n if (currentEnv !== \"staging\" && currentEnv !== \"sandbox\") {\n return null;\n }\n\n useEffect(() => {\n // Sync localstorage value to showBanner state\n syncLocalStorageToState();\n }, [syncLocalStorageToState]);\n\n useEffect(() => {\n let interval: NodeJS.Timeout;\n\n if (currentEnv === \"staging\" || currentEnv === \"sandbox\") {\n interval = setInterval(\n () => {\n removeFromStorage();\n initDefault();\n },\n 5 * 60 * 1000, // 5 minutes in milliseconds\n );\n }\n\n return () => {\n if (interval) {\n clearInterval(interval);\n }\n };\n }, [\n showBanner,\n environment,\n onClose,\n removeFromStorage,\n initDefault,\n currentEnv,\n ]);\n\n if (!showBanner) return null;\n\n return (\n <div className=\"w-fit p-4 border shadow-md bg-white rounded-md z-[99999] absolute top-2 right-2 min-w-96\">\n <button onClick={onClose} className=\"absolute top-2 right-2\">\n <X />\n </button>\n <div className=\"space-y-2 text-sm\">\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Environment:</span>\n <span className=\"text-blue-600 capitalize\">{currentEnv}</span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Branch:</span>\n <span className=\"text-green-600 capitalize\">\n {branch || process.env.NEXT_PUBLIC_DEPLOY_BRANCH}\n </span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Version:</span>\n <span className=\"text-purple-600\">\n {version || process.env.NEXT_PUBLIC_DEPLOY_VERSION}\n </span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Deploy Time:</span>\n <span className=\"text-orange-600\">\n {deployTime || process.env.NEXT_PUBLIC_DEPLOY_TIME}\n </span>\n </div>\n </div>\n </div>\n );\n};\n","// import React from 'react'\n\n// export const Drawer = () => {\n// return (\n// <div>Drawer</div>\n// )\n// }\n\n\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\nimport { DialogCloseProps } from \"@radix-ui/react-dialog\";\nimport { CloseIcon } from \"./icon/CloseIcon\";\nimport { useWindowSize } from \"@/src/hooks/useWindowSize\";\n\ntype DrawerRootType = React.ComponentProps<typeof DrawerPrimitive.Root>;\n\nconst DrawerRoot = ({\n shouldScaleBackground = true,\n ...props\n}: DrawerRootType) => (\n <DrawerPrimitive.Root\n direction=\"right\"\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\n\nDrawerRoot.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerClose: React.ForwardRefExoticComponent<\n DialogCloseProps & React.RefAttributes<HTMLButtonElement>\n> = DrawerPrimitive.Close;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-40 bg-black/75 !m-0 !p-0 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\n\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerVariants = cva(\n \"fixed focus-visible:outline-0 z-50 gap-4 bg-white shadow-lg dark:bg-[#2B2B2B] dark:text-white transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 dark:border-none\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top rounded-b-lg\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom rounded-t-lg\",\n left: \"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-[512px] \",\n right:\n \"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-[512px]\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>,\n VariantProps<typeof DrawerVariants> {}\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n SheetContentProps & {\n hideCloseButton?: boolean;\n }\n>(({ side = \"right\", hideCloseButton, className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(DrawerVariants({ side }), className)}\n {...props}\n >\n <button className=\"bg-gray-300 block md:!hidden mx-auto mt-4 md:!mt-0 h-1.5 w-[80px] rounded-full opacity-70 transition-opacity hover:opacity-100 relative\" />\n {children}\n {!hideCloseButton && (\n <DrawerPrimitive.Close className=\"absolute right-2 top-3 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-secondary\">\n <CloseIcon />\n\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\n\nDrawerContent.displayName = DrawerPrimitive.Content.displayName;\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"text-lg flex flex-col border-b border-b-gray-200 space-y-1 text-left w-full p-3\",\n className,\n )}\n {...props}\n />\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row m-auto right-0 left-0 p-3 sm:space-x-2 border-t border-t-[#EDEDED] dark:border-t-[#242424] w-full\",\n className,\n )}\n {...props}\n />\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-xl font-semibold text-[#191919] dark:text-white\",\n className,\n )}\n {...props}\n />\n));\n\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-xs text-[#5d5c5c] dark:text-white\", className)}\n {...props}\n />\n));\n\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport type DrawerPropsType = {\n trigger?: React.ReactNode;\n children: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n footer?: React.ReactNode;\n hideCloseButton?: boolean;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n asChild?: boolean;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n};\n\nconst Drawer = ({\n trigger = undefined,\n children,\n open = undefined,\n onOpenChange = undefined,\n hideCloseButton,\n footer,\n title,\n description,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n asChild = true,\n onOpenAutoFocus,\n onCloseAutoFocus,\n}: Omit<DrawerRootType, \"value\"> & DrawerPropsType) => {\n const { width } = useWindowSize();\n const direction = width < 768 ? \"bottom\" : \"right\";\n\n return (\n <DrawerRoot open={open} onOpenChange={onOpenChange} direction={direction}>\n <DrawerTrigger className=\"cursor-pointer\" asChild={asChild}>\n {trigger}\n </DrawerTrigger>\n <DrawerContent\n className={cn(\n \"flex flex-col gap-0 justify-start items-start max-h-[90vh] md:max-h-full w-full !max-w-md\",\n contentClassName,\n )}\n side={direction}\n hideCloseButton={hideCloseButton}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n >\n {title || description ? (\n <DrawerHeader className={headerClassName}>\n {title && (\n <DrawerTitle className={titleClassName}>{title}</DrawerTitle>\n )}\n {description && (\n <DrawerDescription className={descriptionClassName}>\n {description}\n </DrawerDescription>\n )}\n </DrawerHeader>\n ) : (\n <></>\n )}\n\n <div\n className={cn(\n \"flex w-full overflow-y-auto flex-col justify-start items-start p-4 flex-1 h-[30px]\",\n )}\n >\n {children}\n </div>\n\n {footer && (\n <DrawerFooter className={footerClassName}>{footer}</DrawerFooter>\n )}\n </DrawerContent>\n </DrawerRoot>\n );\n};\n\nexport { Drawer, DrawerRoot, DrawerClose };\n","export const CloseIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n};\n","import { useState, useEffect } from \"react\";\n\ntype WindowSize = {\n width: number;\n height: number;\n};\n\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n handleResize();\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowSize;\n}\n","export const Check = () => {\n return (\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n className=\"h-5 w-5\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\nexport const EnglishFlag = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n viewBox=\"0 0 60 30\"\n className=\"w-full max-w-md h-auto\"\n aria-label=\"Union Jack - Flag of the United Kingdom\"\n {...props}\n >\n {/* Blue background */}\n <rect width=\"60\" height=\"30\" fill=\"#00247D\" />\n\n {/* White diagonal crosses */}\n <path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#FFFFFF\" strokeWidth=\"6\" />\n\n {/* Red diagonal crosses */}\n <path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#CF142B\" strokeWidth=\"4\" />\n\n {/* White cross */}\n <path d=\"M30,0 L30,30 M0,15 L60,15\" stroke=\"#FFFFFF\" strokeWidth=\"10\" />\n\n {/* Red cross */}\n <path d=\"M30,0 L30,30 M0,15 L60,15\" stroke=\"#CF142B\" strokeWidth=\"6\" />\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\nexport const FrenchFlag = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n viewBox=\"0 0 60 40\"\n className=\"w-full max-w-md h-auto\"\n aria-label=\"Tricolore - Flag of France\"\n {...props}\n >\n {/* Blue stripe */}\n <rect x=\"0\" y=\"0\" width=\"20\" height=\"40\" fill=\"#002395\" />\n\n {/* White stripe */}\n <rect x=\"20\" y=\"0\" width=\"20\" height=\"40\" fill=\"#FFFFFF\" />\n\n {/* Red stripe */}\n <rect x=\"40\" y=\"0\" width=\"20\" height=\"40\" fill=\"#ED2939\" />\n </svg>\n );\n};\n","export const UpDownIcon = () => {\n return (\n <svg\n width=\"20\"\n height=\"18\"\n viewBox=\"0 0 8 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.50257 12.9395L3.68439 14.7576L1.86621 12.9395\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M5.50257 5.06055L3.68439 3.24237L1.86621 5.06055\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\nimport { Check } from \"./icons/Check\";\nimport { EnglishFlag } from \"./icons/EnglishFlag\";\nimport { FrenchFlag } from \"./icons/FrenchFlag\";\nimport { UpDownIcon } from \"./icons/UpDownIcon\";\nimport { PopoverClose } from \"@radix-ui/react-popover\";\n\nconst localeListOptons = [\n {\n key: \"en\",\n label: \"English\",\n },\n {\n key: \"fr\",\n label: \"French\",\n },\n];\n\ntype LocaleOption = {\n key: string;\n label: string;\n};\n\nconst LocaleIcon = ({ locale }: { locale?: string }) => {\n if (locale === \"fr\") return <FrenchFlag width={10} />;\n return <EnglishFlag width={10} />;\n};\n\nconst LocaleTrigger = ({ locale }: { locale?: string }) => {\n return (\n <div className=\"px-2 py-1 \">\n <div className=\"flex items-center gap-2.5\">\n <LocaleIcon locale={locale} />{\" \"}\n <span className=\"uppercase\">{locale}</span>\n <UpDownIcon />\n </div>\n </div>\n );\n};\n\nexport const LocaleSelector = ({\n locale = \"en\",\n onChange,\n locales = localeListOptons,\n}: {\n locale?: string;\n onChange?: (locale: string) => void;\n locales?: LocaleOption[];\n}) => {\n return (\n <PopoverRoot>\n <div className=\"flex items-center gap-2 px-2 py-1 rounded-lg shadow border-[0.5px] border-gray-50/50 text-current bg-white/10 \">\n <PopoverTrigger className={\"!p-0 !bg-transparent \"}>\n <LocaleTrigger locale={locale} />\n </PopoverTrigger>\n </div>\n <PopoverContent\n side=\"bottom\"\n className=\"p-0 max-w-max rounded-md overflow-hidden mx-auto mt-2\"\n >\n <div>\n {locales?.map((_locale) => (\n <PopoverClose\n type=\"button\"\n key={_locale?.key}\n className={cn(\n \"flex items-center gap-3 px-3 py-1 text-sm hover:bg-blue-50 w-full transition-all\",\n { \"bg-blue-100\": locale && locale === _locale?.key },\n )}\n onClick={() => onChange?.(_locale?.key)}\n >\n {_locale?.label} {locale && locale === _locale?.key && <Check />}\n </PopoverClose>\n ))}\n </div>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n","import { useMemo, useRef, useState } from \"react\";\nimport { BusinessBar } from \"./business/BusinessBar\";\nimport { SidebarProps } from \"./utils/types\";\nimport { NavItems } from \"./NavItems\";\nimport { cn } from \"@/src/utils\";\nimport { X } from \"lucide-react\";\nimport { OpenSidebarIcon } from \"./components/OpenSidebarIcon\";\nimport { ClosedSidebarIcon } from \"./components/ClosedSidebarIcon\";\nimport { SidebarToggle } from \"./components/SidebarToggle\";\n\nexport const Sidebar = ({\n isSidebarCollapsed,\n onToggleSideBar,\n isMobile,\n links,\n businessProps,\n currentPath,\n onNavigate,\n appConfig,\n collapseType: propCollapseType,\n onLogoutClick,\n openSidebarIcon = <OpenSidebarIcon />,\n closedSidebarIcon = <ClosedSidebarIcon />,\n nodeAfterSideBarLogo,\n}: SidebarProps) => {\n const collapseType = useMemo(() => {\n if (isMobile) return \"hidden\";\n\n return propCollapseType || (isMobile ? \"hidden\" : \"icons\");\n }, [isMobile, propCollapseType]);\n\n const [showBusiness, setShowBusiness] = useState(false);\n const isIconsOnly = collapseType === \"icons\" && isSidebarCollapsed;\n const sideBarRef = useRef(null);\n const {\n businessList,\n activeBusiness,\n toggleAddBusinessDrawer,\n handleSetActiveBusiness,\n } = businessProps;\n\n const toggleShowBusiness = () => setShowBusiness((prev) => !prev);\n\n const handleSwitchBusiness = (clientId: string) => {\n handleSetActiveBusiness?.(clientId);\n toggleShowBusiness();\n };\n\n const sideBarLogo = useMemo(() => {\n if (collapseType === \"hidden\") {\n return openSidebarIcon;\n }\n\n return isSidebarCollapsed ? closedSidebarIcon : openSidebarIcon;\n }, [isSidebarCollapsed, openSidebarIcon, closedSidebarIcon, collapseType]);\n\n const showBackdrop =\n isMobile && collapseType === \"hidden\" && isSidebarCollapsed;\n\n return (\n <>\n {showBackdrop && (\n <div\n className=\"fixed inset-0 z-40 bg-black bg-opacity-40 transition-all animate-in fade-in-15\"\n onClick={() => onToggleSideBar(false)}\n />\n )}\n\n <div\n className={cn(\"relative flex flex-row-reverse h-full\", {\n \"fixed inset-0 z-50 pointer-events-none\": showBackdrop,\n })}\n >\n {collapseType === \"icons\" && (\n <SidebarToggle\n isSidebarCollapsed={isSidebarCollapsed}\n onToggleSideBar={onToggleSideBar}\n />\n )}\n\n <aside\n id=\"sidebar_menu\"\n ref={sideBarRef}\n className={cn(\n \"relative pt-4 h-full max-h-screen bg-[#FBFBFB] overflow-hidden flex-col flex transition-all duration-300 w-64 gap-y-14\",\n {\n \"!fixed\": collapseType === \"hidden\",\n \"w-[311px]\": isSidebarCollapsed && collapseType !== \"icons\",\n \"w-[75px]\": isSidebarCollapsed && collapseType === \"icons\",\n \"w-0 lg:w-0 pointer-events-none\":\n !isSidebarCollapsed && collapseType === \"hidden\",\n \"pointer-events-auto\":\n isSidebarCollapsed && collapseType === \"hidden\",\n \"left-0 top-0\": isMobile && collapseType === \"hidden\",\n \"-translate-x-full\":\n !isSidebarCollapsed && isMobile && collapseType !== \"hidden\",\n \"translate-x-0\":\n isSidebarCollapsed && isMobile && collapseType === \"hidden\",\n },\n )}\n >\n <div\n className={cn(\n \"flex items-center -ml-2 py-2 justify-center w-full\",\n {\n \"justify-between px-2\": isMobile,\n },\n )}\n >\n {sideBarLogo}\n\n {collapseType === \"hidden\" && (\n <div\n onClick={() => onToggleSideBar(false)}\n className=\"flex items-center gap-2 text-3xl cursor-pointer\"\n >\n <X size={24} className=\"text-black hover:opacity-60\" />\n </div>\n )}\n </div>\n\n {nodeAfterSideBarLogo}\n\n <div className=\"flex-1 overflow-y-auto px-3 h-full max-h-[calc(100vh-200px)]\">\n <NavItems\n isIconsOnly={isIconsOnly}\n collapseType={collapseType}\n currentPath={currentPath}\n isSidebarCollapsed={isSidebarCollapsed}\n links={links}\n onNavigate={onNavigate}\n onToggleSideBar={onToggleSideBar}\n appConfig={appConfig}\n isMobile={isMobile}\n />\n </div>\n\n <div className=\"absolute bottom-5 w-full\">\n <BusinessBar\n activeBusiness={activeBusiness}\n handleSwitchBusiness={handleSwitchBusiness}\n showBusiness={showBusiness}\n toggleAddBusinessDrawer={toggleAddBusinessDrawer}\n toggleShowBusiness={toggleShowBusiness}\n businesses={businessList || []}\n iconOnly={collapseType === \"icons\" ? isSidebarCollapsed : false}\n onLogoutClick={onLogoutClick}\n isMobile={isMobile}\n />\n </div>\n </aside>\n </div>\n </>\n );\n};\n","import { AnimatePresence, motion } from \"framer-motion\";\nimport { ChangeEvent, useMemo, useState } from \"react\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { FiLogOut } from \"react-icons/fi\";\nimport { BsPlus } from \"react-icons/bs\";\nimport { cn } from \"@/src/utils\";\nimport { BusinessType } from \"@/src/utils/types\";\nimport { Input } from \"@/src/components/input\";\nimport { BusinessBarTrigger } from \"./Trigger\";\nimport { ChevronUp } from \"lucide-react\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n businesses?: BusinessType[];\n toggleAddBusinessDrawer: () => void;\n handleSwitchBusiness: (_: string) => void;\n onLogoutClick: () => void;\n};\n\nconst businessPopUpVariants = {\n hidden: { y: \"-12px\", opacity: 0 },\n visible: {\n y: \"0\",\n opacity: 1,\n transition: {\n type: \"spring\",\n damping: 25,\n stiffness: 500,\n },\n },\n exit: {\n y: \"-12px\",\n opacity: 0,\n transition: {\n type: \"spring\",\n damping: 25,\n stiffness: 500,\n },\n },\n};\n\nexport const BusinessBarContent = ({\n activeBusiness,\n toggleAddBusinessDrawer,\n businesses = [],\n handleSwitchBusiness,\n onLogoutClick,\n}: BusinessBarProps) => {\n const [searchText, setSearchText] = useState(\"\");\n const searchedBusinesses = useMemo(() => {\n const text = searchText.toLowerCase();\n return (businesses || []).filter((b) =>\n b.name?.toLowerCase().startsWith(text),\n );\n }, [businesses, searchText]);\n\n const onSearchChange = (e: ChangeEvent<HTMLInputElement>) =>\n setSearchText(e.target.value);\n\n return (\n <AnimatePresence initial={false}>\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"exit\"\n variants={businessPopUpVariants}\n >\n <div className=\"w-72 bg-white border rounded-xl shadow-md overflow-hidden p-3\">\n <BusinessBarTrigger\n activeBusiness={activeBusiness}\n rightNode={<div className=\"h-3 w-3 bg-[#62C554] rounded-full\" />}\n className=\"bg-[#FAFAFA] border-none p-3\"\n />\n\n <div className=\"mt-3\">\n <Input\n label=\"Search Account\"\n leftNode={<ChevronUp className=\"h-4 w-4 text-gray-500\" />}\n value={searchText}\n onChange={onSearchChange}\n placeholder=\"Search Account\"\n className=\"text-sm\"\n />\n </div>\n\n <ul className=\"max-h-48 overflow-y-auto mt-2 px-1 space-y-2\">\n {searchedBusinesses.map((b) => (\n <BusinessBarTrigger\n key={b.clientId}\n onTriggerClick={() => handleSwitchBusiness(b?.clientId || \"\")}\n activeBusiness={b}\n rightNode={\n activeBusiness.clientId === b.clientId ? (\n <HiCheck className=\"text-primary-600\" size={18} />\n ) : undefined\n }\n className={cn(\"bg-white border-none \", {\n \"bg-[#FAFAFA]\": activeBusiness.clientId === b.clientId,\n })}\n />\n ))}\n </ul>\n\n <div className=\"py-2 \">\n <button\n onClick={toggleAddBusinessDrawer}\n className=\"w-full flex items-center justify-start gap-2 text-sm text-[#0033C7] border-[#BECFFF] border-[0.5px] rounded-lg py-2 px-3 hover:bg-primary-accent transition \"\n >\n <BsPlus size={18} className=\"text-primary-main\" /> Add Account\n </button>\n </div>\n\n <div className=\"bg-[#FAFAFA] px-3 py-2 -m-3 mt-4\">\n <button\n className=\"w-full flex items-center gap-2 text-sm text-black hover:text-gray-700 transition p-2 hover:bg-primary-accent\"\n onClick={() => onLogoutClick?.()}\n >\n <FiLogOut size={16} /> Log Out\n </button>\n </div>\n </div>\n </motion.div>\n </AnimatePresence>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { BusinessType } from \"@/src/utils/types\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n iconOnly?: boolean;\n onTriggerClick?: () => void;\n className?: string;\n rightNode?: React.ReactNode;\n};\n\nexport const BusinessBarTrigger = ({\n activeBusiness,\n onTriggerClick,\n iconOnly = false,\n className,\n rightNode,\n}: BusinessBarProps) => {\n return (\n <div\n id=\"sidemenu_business_bar\"\n role=\"button\"\n onClick={onTriggerClick ? onTriggerClick : undefined}\n className={cn(\n \"relative flex w-full items-center rounded-lg text-black bg-white\",\n {\n \"border-[.5px] border-[#E9EBF8] py-1 px-2\": !iconOnly,\n \"hover:bg-primary-accent transition-all duration-150 cursor-pointer \":\n !!onTriggerClick,\n },\n className,\n )}\n >\n <section\n className={cn(\n \"flex items-center justify-center bg-[#E9EBF8] text-primary-main rounded-md mr-3 text-xl font-medium\",\n {\n \"w-10 h-10\": !iconOnly,\n \"w-full h-10 mr-0\": iconOnly,\n },\n )}\n >\n {activeBusiness?.name?.charAt(0) || \"M\"}\n </section>\n\n {!iconOnly && (\n <section className=\" flex-1 flex justify-between items-center relative text-black truncate w-full -space-y-1 tracking-wide\">\n <div className=\"flex-1\">\n <h2 className=\"text-base truncate capitalize font-medium\">\n {activeBusiness?.name}\n </h2>\n <p className=\"text-sm text-[#A5A5A5] flex items-center\">\n {activeBusiness?.email}\n </p>\n </div>\n {rightNode}\n </section>\n )}\n </div>\n );\n};\n","import { BusinessType } from \"@/src/utils/types\";\nimport { BusinessBarContent } from \"./components/Content\";\nimport { BusinessBarTrigger } from \"./components/Trigger\";\nimport { Popover } from \"../../popover\";\nimport { cn } from \"@/src/utils\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n businesses?: BusinessType[];\n showBusiness: boolean;\n toggleAddBusinessDrawer: () => void;\n toggleShowBusiness: () => void;\n handleSwitchBusiness: (_: string) => void;\n iconOnly?: boolean;\n onLogoutClick: () => void;\n isMobile: boolean;\n};\n\nexport const BusinessBar = ({\n activeBusiness,\n toggleAddBusinessDrawer,\n toggleShowBusiness,\n businesses = [],\n handleSwitchBusiness,\n iconOnly = false,\n onLogoutClick,\n isMobile,\n}: BusinessBarProps) => {\n return (\n <div className=\"px-4 relative mb-0 \">\n <Popover\n side={isMobile ? \"top\" : \"right\"}\n align=\"end\"\n contentClassName=\"!bg-transparent !shadow-none !p-0\"\n trigger={\n <div className=\"flex items-center w-full\">\n <BusinessBarTrigger\n activeBusiness={activeBusiness}\n onTriggerClick={toggleShowBusiness}\n iconOnly={iconOnly}\n rightNode={<Icon className=\"stroke-gray-500\" />}\n />\n </div>\n }\n >\n <BusinessBarContent\n activeBusiness={activeBusiness}\n handleSwitchBusiness={handleSwitchBusiness}\n toggleAddBusinessDrawer={toggleAddBusinessDrawer}\n businesses={businesses}\n onLogoutClick={onLogoutClick}\n />\n </Popover>\n </div>\n );\n};\n\nconst Icon = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\n \"lucide lucide-chevrons-up-down-icon lucide-chevrons-up-down\",\n className,\n )}\n >\n <path d=\"M7 22l5 5 5-5\" />\n <path d=\"M7 4l5-5 5 5\" />\n </svg>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useEffect, useState } from \"react\";\nimport { FiChevronRight } from \"react-icons/fi\";\nimport { LinksType, SidebarProps } from \"./utils/types\";\nimport { Tooltip } from \"../tooltip\";\n\ntype Props = {\n isIconsOnly: boolean;\n isMobile: boolean;\n} & Pick<\n SidebarProps,\n | \"isSidebarCollapsed\"\n | \"onToggleSideBar\"\n | \"onNavigate\"\n | \"currentPath\"\n | \"collapseType\"\n | \"links\"\n | \"appConfig\"\n>;\n\nconst accordionItemVariants = {\n hidden: { opacity: 0, height: 0 },\n visible: {\n opacity: 1,\n height: \"auto\",\n transition: {\n duration: 0.3,\n },\n },\n};\n\nexport const NavItems = ({\n isIconsOnly,\n isSidebarCollapsed,\n onToggleSideBar,\n currentPath,\n onNavigate,\n collapseType,\n links,\n appConfig,\n isMobile,\n}: Props) => {\n const [expandedMenus, setExpandedMenus] = useState<Record<string, boolean>>(\n {},\n );\n const toggleAccordion = (linkId: string) => {\n setExpandedMenus((prev) => ({\n ...prev,\n [linkId]: !prev[linkId],\n }));\n };\n\n const handleMenuLink = (link: LinksType) => {\n const hasChildren = !!link?.children?.length;\n if (hasChildren) {\n if (isIconsOnly) {\n onToggleSideBar(!isSidebarCollapsed);\n setExpandedMenus((prev) => ({\n ...prev,\n [link.id]: true,\n }));\n } else {\n toggleAccordion(link.id);\n }\n return;\n }\n onNavigate(`/${link.to}`);\n };\n\n const getActiveMenu = (link: LinksType): boolean => {\n const hasChildren = !!link?.children?.length;\n if (hasChildren) {\n return (link.children || []).some((l) => currentPath === l.to);\n }\n return currentPath === link.to;\n };\n\n useEffect(() => {\n if (isSidebarCollapsed) {\n const expanded: Record<string, boolean> = {};\n links.forEach((link) => {\n if (link.children && link.children.length > 0) {\n // If any child matches the current path, expand this menu\n if (link.children.some((child) => currentPath === child.to)) {\n expanded[link.id] = true;\n }\n }\n });\n setExpandedMenus((prev) => ({\n ...prev,\n ...expanded,\n }));\n }\n }, [isSidebarCollapsed, links, currentPath]);\n\n return (\n <ul className=\"w-[90%] space-y-2.5\">\n {links.map((link, idx) => {\n if (link.isHidden) return null;\n if (appConfig?.hiddenRoutes?.includes(link.key ?? \"\")) return null;\n\n const active = getActiveMenu(link);\n const hasChildren = !!link?.children?.length;\n const isExpanded = expandedMenus[link.id];\n\n const menuItem = (\n <div\n className=\"mb-1 relative flex flex-col justify-center items-center\"\n key={idx}\n onClick={() => handleMenuLink(link)}\n >\n {active &&\n !isMobile &&\n (isIconsOnly || !hasChildren || !isExpanded) && (\n <div className=\"absolute bg-primary-main w-2 h-4 rounded-r-full -translate-y-1/2 top-1/2 left-0\" />\n )}\n\n <li\n key={link.to}\n id={link.id}\n className={cn(\n \"cursor-pointer transition text-base duration-300 w-full text-[#00000066] font-medium rounded-md mx-auto max-w-full ml-4 p-2\",\n {\n \"bg-[#F6F8FF] text-primary-main\":\n active && (!isExpanded || !isSidebarCollapsed),\n },\n {\n \"hover:bg-gray-100\":\n !active &&\n (collapseType !== \"icons\" || !isSidebarCollapsed),\n },\n {\n \"bg-white text-primary-main\": active,\n },\n {\n \"flex justify-center text-primary-main\":\n isIconsOnly && active,\n \"flex justify-center\": isIconsOnly && !active,\n },\n )}\n >\n <div\n className={cn(\"flex items-center w-full\", {\n \"justify-center\": isIconsOnly,\n })}\n >\n <Tooltip\n key={idx}\n trigger={\n <span className=\"w-6\" onClick={() => handleMenuLink(link)}>\n {link.icon}\n </span>\n }\n side=\"right\"\n hasArrow\n open={!isIconsOnly ? false : undefined}\n >\n {link.name}\n </Tooltip>\n {(collapseType !== \"icons\" || !isSidebarCollapsed) && (\n <>\n <span className=\"px-3\">{link.name}</span>\n {hasChildren && (\n <span\n className=\"ml-auto transition-transform duration-300\"\n style={{\n transform: isExpanded\n ? \"rotate(90deg)\"\n : \"rotate(0deg)\",\n }}\n >\n <FiChevronRight size={18} />\n </span>\n )}\n </>\n )}\n </div>\n </li>\n\n {hasChildren &&\n (collapseType !== \"icons\" || !isSidebarCollapsed) && (\n <AnimatePresence>\n {isExpanded && (\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n variants={accordionItemVariants}\n className=\"overflow-hidden w-full\"\n >\n <ul className=\" mt-1 relative \">\n {link.children?.map((childLink) => {\n if (childLink.isHidden) return null;\n const childActive = currentPath === childLink.to;\n return (\n <div\n id={childLink.id}\n className={cn(\"relative pl-12 bg-blue-100- mt-4\")}\n >\n <li\n className={cn(\n \"cursor-pointer transition text-base duration-300 px-3 w-full text-black font-medium opacity-40 rounded-md\",\n {\n \"bg-transparent opacity-100 text-primary-main\":\n childActive,\n },\n {\n \"hover:text-primary-main\": !childActive,\n },\n )}\n onClick={() => onNavigate(`/${childLink.to}`)}\n >\n {childLink.name}\n {childActive && (\n <>\n {!isMobile && (\n <div className=\"absolute bg-primary-main w-2 h-4 rounded-r-full -translate-y-1/2 top-1/2 left-0\" />\n )}\n <div\n id=\"vertical-bar-child\"\n className=\"h-4 w-0.5 bg-primary-main absolute left-[30px] z-10 -translate-y-1/2 top-1/2 rounded-t-full rounded-b-full \"\n />\n </>\n )}\n </li>\n </div>\n );\n })}\n <div\n id=\"vertical-bar\"\n className=\"bg-white rounded-t-full rounded-b-full h-full w-[4px] absolute left-[29px] top-0\"\n />\n </ul>\n </motion.div>\n )}\n </AnimatePresence>\n )}\n </div>\n );\n\n return menuItem;\n })}\n </ul>\n );\n};\n","export const OpenSidebarIcon = () => {\n return (\n <svg\n width=\"100%\"\n height={40}\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"Layer_1\"\n data-name=\"Layer 1\"\n viewBox=\"0 0 1565.51 377.21\"\n >\n <g>\n <path\n fill=\"#0231C5\"\n d=\"m277.49,86.74v85.18l-.41,6.31v.21c-.72,5.8-2.38,11.28-4.86,16.35-1.45,3-3.21,5.9-5.28,8.49-1.55,2.07-3.42,4.04-5.28,5.9-1.66,1.55-3.42,3.11-5.28,4.45-1.66,1.24-3.42,2.38-5.28,3.42-1.76.93-3.52,1.76-5.28,2.59-1.24.52-2.48.93-3.83,1.35l-1.45.52-5.28,1.76-5.28,1.76-5.28,1.76-5.28,1.76-10.56,3.52-.52.21v19.15l-.41.1-3.62,1.14-.83.21-2.79.93-2.48.83-1.14.31-3.62,1.14-.62.21-3,.93-2.28.72-1.35.41-3.62,1.14-.41.1-.52.21h-.21v-37.26c0-1.55.31-3,.72-4.45.1-.31.21-.62.41-.93.83-1.86,2.07-3.52,3.62-4.86.41-.31.83-.72,1.35-1.04.72-.52,1.45-.83,2.28-1.24.21-.1.52-.21.72-.31l.21-.1,2.17-.72.62-.21,3.62-1.14,1.14-.41,5.28-1.76.83-.31,3.62-1.14.93-.31,5.28-1.76,5.28-1.76,5.28-1.76,5.28-1.76,3.83-1.24c.52-.1.93-.31,1.45-.52,1.97-.72,3.73-1.76,5.28-2.9,2.07-1.45,3.83-3.21,5.28-5.18,3.21-4.14,5.07-9.42,5.07-14.9v-85.08c0-5.59-1.76-10.76-5.07-15.01-1.45-1.86-3.11-3.52-5.07-4.97q-.1-.1-.21-.1c-1.66-1.24-3.42-2.17-5.28-2.9-1.76-.72-3.52-1.14-5.28-1.45-1.76-.31-3.52-.31-5.28-.21-1.76.1-3.52.41-5.28.93-.21.1-.52.1-.72.21l-4.55,1.45-5.28,1.66-5.28,1.76-5.69,1.55-5.28,1.76-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.76-5.69,1.66-5.28,1.76-3.83,1.24c-.52.21-1.04.31-1.55.52-1.86.72-3.73,1.76-5.28,2.9-2.07,1.45-3.83,3.21-5.28,5.18-3.21,4.24-5.07,9.42-5.07,15.01v33.33c0,3.93.83,7.25,2.07,10.04.1.31.21.52.41.83-.1.1-.31.1-.41.21-.83.41-1.55.72-2.28,1.24-.41.21-.83.52-1.35.72-1.24.72-2.48,1.55-3.62,2.38-.1.1-.31.21-.41.31-1.14.83-2.17,1.66-3.21,2.48-.72.62-1.45,1.24-2.07,1.97-.52.52-1.04.93-1.55,1.45-1.24,1.35-2.48,2.69-3.62,4.14-.1.1-.1.21-.21.31-.72.93-1.35,1.76-1.97,2.69-.52-.72-1.04-1.55-1.45-2.28-.72-1.14-1.35-2.28-1.86-3.52-.62-1.24-1.14-2.59-1.66-3.83-2.38-6-3.62-12.42-3.62-18.94v-33.64c0-8.07,1.86-15.94,5.28-22.77,1.45-3,3.21-5.9,5.28-8.49,1.55-2.07,3.42-4.04,5.28-5.9,1.66-1.55,3.42-3.11,5.28-4.45,1.66-1.24,3.42-2.38,5.28-3.42,1.66-.93,3.42-1.76,5.28-2.59,1.35-.52,2.59-1.04,3.93-1.45l1.35-.41,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.8-1.66,5.28-1.76,5.28-1.66,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,1.76-.52c1.14-.41,2.38-.72,3.62-1.04,1.76-.41,3.52-.83,5.28-1.04,1.76-.21,3.52-.41,5.28-.41,1.76-.1,3.52,0,5.28.1,1.76.1,3.52.31,5.28.62,1.76.31,3.52.72,5.28,1.24,1.76.52,3.62,1.14,5.28,1.86,1.76.72,3.62,1.66,5.28,2.59,1.86,1.04,3.62,2.17,5.28,3.42h.1c1.86,1.35,3.62,2.79,5.28,4.45,1.97,1.76,3.73,3.73,5.28,5.8,2.07,2.69,3.83,5.49,5.28,8.49,3.73,7.14,5.59,14.9,5.59,23.08Z\"\n ></path>\n <path\n fill=\"#0231C5\"\n d=\"m184.03,136.63v28.05l-.72.21-1.97.62-3.31,1.04-.21.1-3.62,1.14-1.45.52-2.17.72-.52.1h0l-2.17.72-1.86.62-1.76.52-3.52,1.14h-.1l-3.62,1.14-1.66.52-1.97.62-3.31,1.04-.21.1-3.62,1.14-1.45.52-2.17.72-.52.1-2.69.83-.41.1-3.62,1.14-1.24.41-2.38.72-2.9.93-.62.21-3.62,1.14-1.04.31-1.97.62-.62.21-2.79.93-.83.31-3,.93c-.21.1-.41.1-.62.21-.31.1-.62.21-.83.31-.93.41-1.86.83-2.79,1.35-.83.41-1.76.93-2.59,1.55-.31.21-.72.52-1.04.83-1.35,1.04-2.48,2.17-3.62,3.52-.21.21-.41.52-.62.83-1.14,1.55-2.17,3.21-3,5.07-1.35,3.11-2.07,6.42-2.07,9.94v82.39c0,2.59.72,5.07,2.07,7.14.83,1.35,2.07,2.59,3.42,3.62q.1.1.21.1c1.14.83,2.28,1.45,3.62,1.76,1.14.41,2.38.62,3.62.62,1.14,0,2.38-.1,3.62-.41.31-.1.62-.21.93-.31l2.59-.83,3.62-1.14,3.62-1.14,3.62-1.14,3.62-1.14,1.66-.52c.62-.21,1.24-.52,1.86-.83,1.35-.52,2.48-1.24,3.62-2.17,1.35-1.04,2.59-2.28,3.62-3.73,2.07-2.9,3.21-6.52,3.21-10.25v-58.48l.31-.1,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.66-.52,3.62-1.14h.1l3.52-1.14,1.76-.52,1.86-.62,3.42-1.14.21-.1,1.14-.41v67.07c0,2.48-.21,5.07-.62,7.45-.21.93-.31,1.76-.52,2.69-.83,3.52-1.97,6.83-3.62,9.94-1.04,2.07-2.28,4.04-3.62,6-1.14,1.55-2.28,3-3.62,4.45-1.14,1.24-2.38,2.38-3.62,3.42-1.14,1.04-2.38,1.86-3.62,2.79-1.14.83-2.38,1.55-3.62,2.28-1.14.62-2.38,1.24-3.62,1.76-.1,0-.21.1-.31.21-1.04.41-2.17.83-3.21,1.24-.31.1-.62.21-.93.31l-2.69.83-7.25,2.28-3.62,1.14-3.62,1.14-1.66.52c-.62.21-1.24.41-1.86.52-1.24.31-2.38.62-3.62.83-1.24.21-2.38.41-3.62.41-1.14.1-2.17.1-3.21.1h-.31c-1.24,0-2.38-.1-3.62-.21-1.24-.1-2.38-.31-3.62-.52s-2.38-.52-3.62-.93c-.72-.21-1.35-.41-2.07-.62-.52-.21-1.04-.41-1.55-.62-1.24-.52-2.38-1.04-3.62-1.66s-2.48-1.35-3.62-2.17c-.52-.31-1.04-.72-1.55-1.04-.72-.52-1.35-1.04-2.07-1.66-1.24-1.04-2.48-2.17-3.62-3.42-1.35-1.35-2.59-2.9-3.62-4.45-1.45-1.97-2.59-4.04-3.62-6.21-2.38-5.18-3.62-10.87-3.62-16.77v-82.39c0-6.62,1.24-13.04,3.62-18.94.52-1.35,1.04-2.59,1.66-3.83s1.24-2.38,1.86-3.52c.41-.83.93-1.55,1.45-2.28.62-.93,1.24-1.86,1.97-2.69,0-.1.1-.21.21-.21,1.14-1.45,2.28-2.79,3.62-4.14.52-.52.93-1.04,1.55-1.45.72-.72,1.35-1.24,2.07-1.86,1.04-.83,2.07-1.76,3.21-2.48.1-.1.31-.21.41-.31,1.14-.83,2.38-1.66,3.62-2.28.41-.21.83-.52,1.35-.72.72-.41,1.55-.83,2.28-1.24.1-.1.21-.1.41-.21.83-.41,1.76-.83,2.59-1.14.21-.1.41-.21.62-.21,1.04-.41,2.17-.83,3.21-1.14l.31-.1,1.04-.31,2.59-.83,2.79-.93.83-.31,3.62-1.14.83-.31,2.79-.83.62-.21,1.97-.62,1.04-.31,3.62-1.14.62-.21,2.9-.93,2.38-.72,1.24-.41,3.62-1.14.41-.1,2.69-.83.52-.1,2.17-.72,1.45-.41,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.66-.52,3.62-1.14h.1l3.52-1.14,1.76-.52,1.86-.62,2.17-.72h0l.52-.1,2.17-.72,1.45-.52,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.04-.41Z\"\n ></path>\n </g>\n <path\n fill=\"#000000\"\n d=\"m433.57,86.41c18.92,0,34.54,6.21,46.87,18.62,12.32,12.41,18.49,28.16,18.49,47.26s-6.16,34.85-18.49,47.26c-12.33,12.41-27.95,18.62-46.87,18.62h-35.41v50.51h-42.18V86.41h77.59Zm-6.51,97.38c8.5,0,15.49-2.95,20.96-8.85,5.47-5.9,8.2-13.45,8.2-22.65s-2.73-16.75-8.2-22.65c-5.47-5.9-12.46-8.85-20.96-8.85h-28.9v63.01h28.9Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m568.18,272.05c-18.23,0-32.63-6.16-43.22-18.49-10.59-12.32-15.88-28.21-15.88-47.65s5.47-34.89,16.4-47.39c10.94-12.5,25.34-18.75,43.22-18.75,8.85,0,16.75,1.91,23.69,5.73,6.94,3.82,12.15,9.03,15.62,15.62v-17.96h39.58v125.5h-39.58v-17.7c-3.47,6.25-8.81,11.33-16.01,15.23-7.2,3.91-15.15,5.86-23.82,5.86Zm11.46-33.07c9.54,0,16.92-3.12,22.13-9.37,5.21-6.25,7.81-14.15,7.81-23.69s-2.6-17.18-7.81-23.43c-5.21-6.25-12.59-9.37-22.13-9.37-9.03,0-16.27,3.04-21.74,9.11-5.47,6.08-8.2,13.97-8.2,23.69s2.73,17.66,8.2,23.82c5.47,6.16,12.71,9.24,21.74,9.24Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m765.53,143.17h39.84v121.59c0,19.44-5.99,34.54-17.97,45.3-11.29,9.72-26.65,14.58-46.08,14.58s-35.76-4.34-46.34-13.02c-10.24-8.68-15.45-19.7-15.62-33.07h40.1c.87,11.28,8.16,16.92,21.87,16.92,16.14,0,24.21-9.37,24.21-28.12v-19.53c-7.29,13.89-20.57,20.83-39.84,20.83-15.45,0-27.04-4.69-34.76-14.06-7.73-9.37-11.59-22.22-11.59-38.53v-72.9h39.83v66.91c0,18.05,7.38,27.08,22.13,27.08,7.81,0,13.8-2.82,17.97-8.46,4.17-5.64,6.25-13.41,6.25-23.3v-62.23Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m839.47,268.66V86.41h111.44v35.41h-69.26v49.21h69.26v34.63h-69.26v63.01h-42.18Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1090.07,253.82c-12.59,12.5-29.47,18.75-50.64,18.75s-38.1-6.25-50.77-18.75c-12.67-12.5-19.01-28.47-19.01-47.91s6.33-35.36,19.01-47.78c12.67-12.41,29.59-18.62,50.77-18.62s38.05,6.21,50.64,18.62c12.58,12.41,18.88,28.34,18.88,47.78s-6.29,35.41-18.88,47.91Zm-50.64-15.1c9.2,0,16.49-3.03,21.87-9.11,5.38-6.07,8.07-13.97,8.07-23.69s-2.69-17.61-8.07-23.69c-5.38-6.07-12.67-9.11-21.87-9.11s-16.71,3.04-22,9.11c-5.3,6.08-7.94,13.97-7.94,23.69s2.64,17.62,7.94,23.69c5.29,6.08,12.63,9.11,22,9.11Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1131.86,268.66v-125.5h39.84v18.23c7.46-14.41,21-21.61,40.62-21.61,30.55,0,45.82,17.1,45.82,51.29v77.59h-40.1v-64.57c0-10.76-1.69-18.57-5.08-23.43-3.39-4.86-9.07-7.29-17.05-7.29-16.14,0-24.21,9.89-24.21,29.68v65.61h-39.84Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1353.43,237.68c5.55,0,10.15-.26,13.8-.78v31.76c-7.64,1.39-16.49,2.08-26.56,2.08-4.52,0-8.51-.26-11.98-.78-3.47-.52-7.38-1.69-11.72-3.52-4.34-1.82-7.9-4.3-10.68-7.42-2.78-3.13-5.17-7.64-7.16-13.54-2-5.9-2.99-12.84-2.99-20.83v-49.99h-19.79v-31.5h19.79v-37.23h39.84v37.23h28.38v31.5h-28.38v41.66c0,8.51,1.47,14.19,4.43,17.05,2.95,2.86,7.29,4.3,13.02,4.3Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1513.55,199.4c0,5.21-.35,11.02-1.04,17.44h-92.69c.35,8.16,3.12,14.49,8.33,19.01,5.21,4.52,12.24,6.77,21.09,6.77,12.15,0,19.96-3.91,23.43-11.72h39.05c-1.91,12.33-8.64,22.35-20.18,30.07-11.55,7.72-25.65,11.59-42.31,11.59-21.35,0-38.19-5.9-50.51-17.7-12.33-11.8-18.49-28.12-18.49-48.95s6.16-36.67,18.49-48.56c12.32-11.89,28.73-17.83,49.21-17.83s35.23,5.56,47.39,16.66c12.15,11.11,18.23,25.52,18.23,43.22Zm-93.73-7.29h54.42c-.18-8.33-2.52-14.75-7.03-19.27-4.52-4.51-11.02-6.77-19.53-6.77s-15.23,2.39-20.18,7.16c-4.95,4.78-7.51,11.07-7.68,18.88Z\"\n ></path>\n </svg>\n );\n};\n","export const ClosedSidebarIcon = () => {\n return (\n <svg\n width=\"100%\"\n height=\"32\"\n viewBox=\"0 0 20 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"pl-5\"\n >\n <path\n d=\"M19.686 5.71949V15.1448L19.6467 15.8434V15.8548V15.8663C19.5779 16.5076 19.4207 17.1146 19.1848 17.6758C19.0472 18.0079 18.8801 18.3286 18.6836 18.6149C18.5361 18.8439 18.3592 19.0615 18.1823 19.2677C18.025 19.4394 17.858 19.6112 17.6811 19.7601C17.5238 19.8975 17.3567 20.0235 17.1798 20.138C17.0127 20.2411 16.8456 20.3327 16.6786 20.4243C16.5606 20.4816 16.4427 20.5274 16.3149 20.5732L16.1773 20.6305L15.6761 20.8252L15.1748 21.0199L14.6736 21.2146L14.1723 21.4093L13.1698 21.7986L13.1207 21.8215V23.9402L13.0814 23.9517L12.7374 24.0777L12.6587 24.1006L12.3934 24.2036L12.1575 24.2953L12.0494 24.3296L11.7054 24.4556L11.6464 24.4785L11.3614 24.5816L11.1452 24.6617L11.0174 24.7075L10.6734 24.8335L10.6341 24.845L10.5849 24.8679H10.5653V20.745C10.5653 20.5732 10.5948 20.4129 10.6341 20.2526C10.6439 20.2182 10.6537 20.1838 10.6734 20.1495C10.752 19.9433 10.87 19.7601 11.0174 19.6112C11.0567 19.5769 11.096 19.5311 11.1452 19.4967C11.214 19.4394 11.2828 19.4051 11.3614 19.3593C11.381 19.3478 11.4105 19.3364 11.4302 19.3249L11.4498 19.3135L11.6562 19.2333L11.7152 19.2104L12.0592 19.0844L12.1673 19.0386L12.6686 18.8439L12.7472 18.8096L13.0912 18.6836L13.1796 18.6492L13.6809 18.4545L14.1821 18.2598L14.6834 18.0652L15.1846 17.8705L15.5483 17.733C15.5974 17.7216 15.6367 17.6987 15.6859 17.6758C15.8726 17.5956 16.0397 17.4811 16.1871 17.3551C16.3837 17.1948 16.5508 17.0001 16.6884 16.7825C16.9931 16.3244 17.17 15.7403 17.17 15.1333V5.71949C17.17 5.10106 17.0029 4.52844 16.6884 4.05889C16.5508 3.85275 16.3935 3.66951 16.2068 3.50917C16.197 3.49772 16.197 3.49772 16.1871 3.49772C16.0299 3.36029 15.8628 3.25722 15.6859 3.17705C15.5188 3.09689 15.3517 3.05108 15.1846 3.01672C15.0176 2.98236 14.8505 2.98236 14.6834 2.99382C14.5163 3.00527 14.3492 3.03963 14.1821 3.09689C14.1625 3.10834 14.133 3.10834 14.1133 3.11979L13.6809 3.28013L13.1796 3.46336L12.6784 3.65806L12.1378 3.82984L11.6366 4.02453L11.1353 4.20777L10.6341 4.40246L10.1328 4.5857L9.63159 4.76894L9.13034 4.96363L8.62909 5.14687L8.12784 5.3301L7.62659 5.52479L7.12534 5.70803L6.6241 5.90272L6.12285 6.08596L5.6216 6.28065L5.08103 6.46389L4.57979 6.65858L4.21614 6.79601C4.16699 6.81891 4.11785 6.83037 4.06871 6.85327C3.8918 6.93344 3.71489 7.04796 3.56746 7.17394C3.37089 7.33427 3.20381 7.52896 3.06621 7.74656C2.76153 8.2161 2.58462 8.78872 2.58462 9.40715V13.0948C2.58462 13.53 2.66325 13.8965 2.78119 14.2057C2.79102 14.2401 2.80085 14.263 2.8205 14.2973C2.81067 14.3088 2.79102 14.3088 2.78119 14.3202C2.70256 14.366 2.63376 14.4004 2.56496 14.4577C2.52565 14.4806 2.48634 14.5149 2.43719 14.5378C2.31925 14.618 2.20131 14.7096 2.0932 14.8012C2.08337 14.8127 2.06371 14.8241 2.05389 14.8356C1.94577 14.9272 1.84749 15.0188 1.74921 15.1104C1.68041 15.1792 1.61161 15.2479 1.55264 15.328C1.5035 15.3853 1.45435 15.4311 1.40521 15.4884C1.28727 15.6373 1.16933 15.7861 1.06122 15.9465C1.05139 15.9579 1.05139 15.9694 1.04156 15.9808C0.972761 16.0839 0.913791 16.1755 0.85482 16.2786C0.805678 16.1984 0.756536 16.1068 0.717223 16.0266C0.648424 15.9007 0.589453 15.7747 0.540311 15.6373C0.481341 15.4998 0.432199 15.3509 0.383057 15.2135C0.157004 14.5493 0.0390625 13.8392 0.0390625 13.1177V9.3957C0.0390625 8.50241 0.215974 7.63203 0.540311 6.87618C0.677909 6.54406 0.844992 6.22339 1.04156 5.93708C1.18899 5.70803 1.3659 5.49044 1.54281 5.28429C1.70006 5.11251 1.86715 4.94072 2.04406 4.79184C2.20131 4.65441 2.3684 4.52844 2.54531 4.41391C2.70256 4.31084 2.86964 4.21922 3.04656 4.1276C3.17432 4.07034 3.29227 4.01308 3.42003 3.96727L3.5478 3.92146L4.04905 3.73822L4.5503 3.54353L5.05155 3.36029L5.5528 3.1656L6.05405 2.98236L6.5553 2.78767L7.05654 2.60444L7.55779 2.40974L8.10818 2.22651L8.60943 2.03182L9.11068 1.84858L9.61193 1.66534L10.1132 1.47065L10.6144 1.28741L11.1157 1.09272L11.6169 0.909482L12.1182 0.714792L12.6194 0.531554L13.1207 0.336863L13.2878 0.279601C13.3959 0.233791 13.5138 0.199434 13.6317 0.165077C13.7988 0.119268 13.9659 0.073458 14.133 0.0505533C14.3001 0.0276485 14.4672 0.00474375 14.6342 0.00474375C14.8013 -0.00670864 14.9684 0.00474368 15.1355 0.0161961C15.3026 0.0276485 15.4697 0.0505533 15.6367 0.0849104C15.8038 0.119268 15.9709 0.165077 16.138 0.222339C16.3051 0.279601 16.482 0.348315 16.6392 0.428482C16.8063 0.508649 16.9832 0.61172 17.1405 0.714792C17.3174 0.829315 17.4845 0.955292 17.6417 1.09272C17.6417 1.09272 17.6417 1.09272 17.6516 1.09272C17.8285 1.2416 17.9956 1.40193 18.1528 1.58517C18.3396 1.77986 18.5066 1.99746 18.6541 2.22651C18.8506 2.52427 19.0177 2.83348 19.1553 3.1656C19.5091 3.95582 19.686 4.81475 19.686 5.71949Z\"\n fill=\"#0231C5\"\n />\n <path\n d=\"M10.8112 9.92822V13.0846L10.7425 13.1079L10.5557 13.1778L10.2412 13.2943L10.2215 13.3059L9.87755 13.434L9.73995 13.4923L9.53356 13.5738L9.48441 13.5855L9.27802 13.667L9.10111 13.7369L8.93402 13.7951L8.59986 13.9232H8.59003L8.24604 14.0514L8.08878 14.1096L7.90204 14.1795L7.58753 14.2959L7.56787 14.3076L7.22388 14.4357L7.08628 14.4939L6.87989 14.5755L6.83074 14.5871L6.57521 14.6803L6.53589 14.692L6.1919 14.8201L6.07396 14.8667L5.8479 14.9482L5.57271 15.053L5.51374 15.0763L5.16974 15.2044L5.07146 15.2394L4.88472 15.3093L4.82575 15.3326L4.56038 15.4374L4.48175 15.4723L4.19673 15.5771C4.17707 15.5888 4.15742 15.5888 4.13776 15.6004C4.10827 15.6121 4.07879 15.6237 4.05913 15.6354C3.97068 15.682 3.88222 15.7286 3.79377 15.7868C3.71514 15.8334 3.62668 15.8916 3.54806 15.9615C3.51857 15.9848 3.47926 16.0197 3.44977 16.0547C3.322 16.1712 3.21389 16.2993 3.10578 16.4507C3.08612 16.474 3.06646 16.5089 3.04681 16.5439C2.93869 16.7186 2.84041 16.9049 2.76178 17.1146C2.63401 17.464 2.56521 17.8367 2.56521 18.2327V27.5039C2.56521 27.7951 2.63401 28.0747 2.76178 28.3076C2.84041 28.459 2.95835 28.5988 3.08612 28.7153C3.09595 28.7269 3.09595 28.7269 3.10578 28.7269C3.21389 28.8201 3.322 28.89 3.44977 28.9249C3.55788 28.9715 3.67582 28.9948 3.79377 28.9948C3.90188 28.9948 4.01982 28.9831 4.13776 28.9482C4.16725 28.9366 4.19673 28.9249 4.22622 28.9133L4.47193 28.8201L4.81592 28.692L5.15991 28.5638L5.50391 28.4357L5.8479 28.3076L6.00516 28.2494C6.06413 28.2261 6.1231 28.1911 6.18207 28.1562C6.30984 28.098 6.41795 28.0164 6.52606 27.9116C6.65383 27.7951 6.77177 27.6554 6.87006 27.4923C7.06663 27.1662 7.17474 26.7585 7.17474 26.3392V19.7585L7.20422 19.7469L7.54822 19.6187L7.56787 19.6071L7.88238 19.4906L8.06912 19.4207L8.22638 19.3625L8.57037 19.2344H8.5802L8.91437 19.1063L9.08145 19.048L9.25836 18.9781L9.5827 18.85L9.60236 18.8384L9.71047 18.7918V26.3392C9.71047 26.6188 9.69081 26.9099 9.6515 27.1778C9.63184 27.2826 9.62201 27.3758 9.60236 27.4806C9.52373 27.8767 9.41562 28.2494 9.25836 28.5988C9.16008 28.8317 9.04214 29.053 8.91437 29.2743C8.80625 29.449 8.69814 29.6121 8.57037 29.7752C8.46226 29.9149 8.34432 30.043 8.22638 30.1595C8.11827 30.276 8.00032 30.3692 7.88238 30.474C7.77427 30.5672 7.65633 30.6487 7.53839 30.7302C7.43028 30.8001 7.31234 30.87 7.19439 30.9282C7.18457 30.9282 7.17474 30.9399 7.16491 30.9515C7.06663 30.9981 6.95851 31.0447 6.86023 31.0913C6.83074 31.1029 6.80126 31.1146 6.77177 31.1262L6.51624 31.2194L5.82825 31.4757L5.48425 31.6038L5.14026 31.7319L4.983 31.7901C4.92403 31.8134 4.86506 31.8367 4.80609 31.8484C4.68815 31.8833 4.58004 31.9183 4.4621 31.9415C4.34416 31.9648 4.23604 31.9881 4.1181 31.9881C4.00999 31.9998 3.91171 31.9998 3.81342 31.9998H3.78394C3.666 31.9998 3.55788 31.9881 3.43994 31.9765C3.322 31.9648 3.21389 31.9415 3.09595 31.9183C2.97801 31.895 2.8699 31.86 2.75195 31.8134C2.68316 31.7901 2.62419 31.7668 2.55539 31.7435C2.50624 31.7203 2.4571 31.697 2.40796 31.6737C2.29002 31.6154 2.18191 31.5572 2.06397 31.4873C1.94602 31.4174 1.82808 31.3359 1.71997 31.2427C1.67083 31.2078 1.62169 31.1612 1.57255 31.1262C1.50375 31.068 1.44478 31.0098 1.37598 30.9399C1.25804 30.8234 1.1401 30.6953 1.03198 30.5555C0.904214 30.4041 0.786273 30.2294 0.687989 30.0547C0.550391 29.8334 0.442278 29.6004 0.343994 29.3559C0.117941 28.7735 0 28.1329 0 27.469V18.1978C0 17.4524 0.117941 16.7302 0.343994 16.0663C0.393136 15.9149 0.442278 15.7751 0.501249 15.6354C0.560219 15.4956 0.61919 15.3675 0.67816 15.2394C0.717474 15.1462 0.766616 15.0647 0.815758 14.9831C0.874728 14.8783 0.933699 14.7735 1.0025 14.6803C1.0025 14.6687 1.01233 14.657 1.02215 14.657C1.13027 14.494 1.23838 14.3425 1.36615 14.1911C1.41529 14.1329 1.4546 14.0746 1.51358 14.0281C1.58237 13.9465 1.64134 13.8883 1.71014 13.8184C1.80843 13.7252 1.90671 13.6204 2.01482 13.5389C2.02465 13.5272 2.04431 13.5156 2.05414 13.5039C2.16225 13.4108 2.28019 13.3176 2.39813 13.2477C2.43745 13.2244 2.47676 13.1895 2.5259 13.1662C2.5947 13.1196 2.67333 13.073 2.74213 13.0264C2.75195 13.0147 2.76178 13.0147 2.78144 13.0031C2.86007 12.9565 2.94852 12.9099 3.02715 12.875C3.04681 12.8633 3.06646 12.8517 3.08612 12.8517C3.1844 12.8051 3.29252 12.7585 3.3908 12.7236L3.42029 12.7119L3.51857 12.677L3.76428 12.5838L4.02965 12.479L4.10828 12.444L4.45227 12.3159L4.5309 12.281L4.79626 12.1878L4.85523 12.1645L5.04197 12.0946L5.14026 12.0597L5.48425 11.9316L5.54322 11.9083L5.81842 11.8034L6.04447 11.7219L6.16241 11.6753L6.50641 11.5472L6.54572 11.5355L6.80126 11.4424L6.8504 11.4307L7.0568 11.3492L7.19439 11.3026L7.53839 11.1745L7.55805 11.1628L7.87256 11.0464L8.0593 10.9765L8.21655 10.9182L8.56054 10.7901H8.57037L8.90454 10.662L9.07162 10.6038L9.24853 10.5339L9.45493 10.4523L9.50407 10.4407L9.71047 10.3592L9.84807 10.3009L10.1921 10.1728L10.2117 10.1612L10.5262 10.0447L10.713 9.97481L10.8112 9.92822Z\"\n fill=\"#0231C5\"\n />\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\ntype SidebarToggleProps = {\n onToggleSideBar: (isOpen: boolean) => void;\n isSidebarCollapsed: boolean;\n};\n\nexport const SidebarToggle = ({\n onToggleSideBar,\n isSidebarCollapsed,\n}: SidebarToggleProps) => {\n return (\n <button\n onClick={() => onToggleSideBar(!isSidebarCollapsed)}\n className=\"w-6 h-12 bg-[#EEF2FF] rounded-tr-md [clip-path:polygon(0%_0%,100%_0%,100%_60%,0%_100%,0%_100%)] mt-5 flex justify-center items-center\"\n >\n <ToggleIcon className=\"mb-3\" />\n </button>\n );\n};\n\nconst ToggleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n width=\"20\"\n height=\"15\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n color=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M4.52669 6.50008C4.25055 6.50008 4.02669 6.72394 4.02669 7.00008C4.02669 7.27622 4.25055 7.50008 4.52669 7.50008H5.48958C5.76573 7.50008 5.98958 7.27622 5.98958 7.00008C5.98958 6.72394 5.76573 6.50008 5.48958 6.50008H4.52669Z\"\n fill=\"#878989\"\n />\n <path\n d=\"M4.02669 8.66675C4.02669 8.39061 4.25055 8.16675 4.52669 8.16675H5.48958C5.76573 8.16675 5.98958 8.39061 5.98958 8.66675C5.98958 8.94289 5.76573 9.16675 5.48958 9.16675H4.52669C4.25055 9.16675 4.02669 8.94289 4.02669 8.66675Z\"\n fill=\"#878989\"\n />\n <path\n d=\"M4.52669 9.83342C4.25055 9.83342 4.02669 10.0573 4.02669 10.3334C4.02669 10.6096 4.25055 10.8334 4.52669 10.8334H5.48958C5.76573 10.8334 5.98958 10.6096 5.98958 10.3334C5.98958 10.0573 5.76573 9.83342 5.48958 9.83342H4.52669Z\"\n fill=\"#878989\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.68166 5.07676C2.5 5.43328 2.5 5.89999 2.5 6.83341V13.1667C2.5 14.1002 2.5 14.5669 2.68166 14.9234C2.84144 15.237 3.09641 15.492 3.41002 15.6518C3.76654 15.8334 4.23325 15.8334 5.16667 15.8334H14.8333C15.7668 15.8334 16.2335 15.8334 16.59 15.6518C16.9036 15.492 17.1586 15.237 17.3183 14.9234C17.5 14.5669 17.5 14.1002 17.5 13.1667V6.83341C17.5 5.89999 17.5 5.43328 17.3183 5.07676C17.1586 4.76316 16.9036 4.50819 16.59 4.3484C16.2335 4.16675 15.7668 4.16675 14.8333 4.16675H5.16667C4.23325 4.16675 3.76654 4.16675 3.41002 4.3484C3.09641 4.50819 2.84144 4.76316 2.68166 5.07676ZM14.8333 5.16675H7.66667L7.66667 14.8334H14.8333C15.3165 14.8334 15.6188 14.8326 15.8466 14.814C16.0626 14.7964 16.1222 14.7678 16.136 14.7608C16.2614 14.6968 16.3634 14.5949 16.4273 14.4694C16.4344 14.4556 16.463 14.3961 16.4806 14.18C16.4992 13.9522 16.5 13.65 16.5 13.1667V6.83341C16.5 6.3502 16.4992 6.04794 16.4806 5.82018C16.463 5.6041 16.4344 5.54455 16.4273 5.53075C16.3634 5.40531 16.2614 5.30333 16.136 5.23941C16.1222 5.23238 16.0626 5.20379 15.8466 5.18613C15.6188 5.16753 15.3165 5.16675 14.8333 5.16675ZM5.16667 5.16675H6.66667L6.66667 14.8334H5.16667C4.68346 14.8334 4.38119 14.8326 4.15344 14.814C3.93736 14.7964 3.8778 14.7678 3.86401 14.7608C3.73856 14.6968 3.63658 14.5949 3.57266 14.4694C3.56564 14.4556 3.53704 14.3961 3.51939 14.18C3.50078 13.9522 3.5 13.65 3.5 13.1667V6.83341C3.5 6.3502 3.50078 6.04794 3.51939 5.82018C3.53704 5.6041 3.56563 5.54455 3.57266 5.53075C3.63658 5.40531 3.73856 5.30333 3.86401 5.23941C3.8778 5.23238 3.93736 5.20379 4.15344 5.18613C4.38119 5.16753 4.68346 5.16675 5.16667 5.16675Z\"\n fill=\"#878989\"\n />\n </svg>\n);\n","import { cn } from \"@/src/utils\";\n\ntype Variant = \"success\" | \"failed\" | \"pending\" | \"abandoned\";\n\nexport const Status = ({\n status,\n variant,\n className,\n}: {\n status: string;\n variant: Variant;\n className?: string;\n}) => {\n return (\n <div>\n <div\n className={cn(\n \"order-first max-w-max flex-none rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset ring-current sm:order-none text-[14px] capitalize\",\n {\n \"bg-green-500/20 text-green-500\": variant === \"success\",\n },\n {\n \"bg-gray-500/20 text-white\": variant === \"abandoned\",\n },\n {\n \"bg-red-500/20 text-red-500\": variant === \"failed\",\n },\n {\n \"bg-yellow-500/20 text-yellow-500\": variant === \"pending\",\n },\n className,\n )}\n >\n <p>{status.replace(\"-\", \" \")}</p>\n </div>\n </div>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { Table as ReactTable, Row, RowData } from \"@tanstack/react-table\";\nimport { Loader } from \"lucide-react\";\nimport { ReactNode } from \"react\";\nimport { Pagination, PaginationProps } from \"./pagination\";\nimport { TableBody } from \"./TableBody\";\nimport { PageDataToolbar } from \"./ToolBar\";\n\nexport type TableSearchProps = {\n enabled: boolean;\n debounceRate?: number;\n onSearch?: (query: string) => void;\n};\n\nexport type TableDownloadProps = {\n enabled: boolean;\n buttonId?: string;\n onDownload?: () => void;\n buttonText?: string;\n};\nexport type TablePaginationProps = {\n enabled: boolean;\n} & PaginationProps;\n\ntype TableProps<T extends RowData> = {\n ExtraNode?: ReactNode;\n FilterMenu?: ReactNode;\n buttonClassName?: string;\n download?: TableDownloadProps;\n id?: string;\n isLoading?: boolean;\n isMobile?: boolean;\n isRefetching?: boolean;\n onExport?: () => void;\n onRefetch?: () => void;\n onRowClick?: (row: Row<T>) => void;\n pagination?: TablePaginationProps;\n search?: TableSearchProps;\n table: ReactTable<T>;\n};\n\nexport const Table = <T extends RowData>({\n table,\n isMobile = false,\n onRowClick,\n id,\n onRefetch,\n isRefetching,\n FilterMenu,\n ExtraNode,\n //deprecated: onExport - use download\n onExport,\n search = {\n enabled: false,\n debounceRate: 700,\n },\n download = {\n enabled: false,\n buttonId: \"download_button\",\n buttonText: \"Export\",\n },\n isLoading,\n pagination,\n}: TableProps<T>) => {\n return (\n <div className={cn(\"relative w-full rounded-b border-0 overflow-x-auto\")}>\n <PageDataToolbar\n onRefetch={onRefetch}\n search={search}\n FilterMenu={FilterMenu}\n ExtraNode={ExtraNode}\n onExport={onExport}\n download={download}\n isRefetching={isRefetching}\n />\n\n <main className=\"w-full overflow-x-auto mt-5\">\n {isLoading ? (\n <div className=\"py-10 flex flex-col justify-center w-full items-center space-x-2\">\n <Loader size={20} className=\"animate-spin\" />\n <p className=\"mt-3 text-center text-gray-600 text-sm opacity-70 animate-pulse\">\n Loading...\n </p>\n </div>\n ) : table.getRowModel().rows.length < 1 ? (\n <div className=\"py-10 flex flex-col justify-center w-full items-center\">\n <p className=\"text-center text-gray-600 text-sm opacity-70\">\n No data available\n </p>\n </div>\n ) : (\n <div className=\"flex flex-col gap-2\">\n <TableBody\n table={table}\n isMobile={isMobile}\n onRowClick={onRowClick}\n id={id}\n />\n </div>\n )}\n </main>\n\n {!isLoading &&\n pagination?.enabled &&\n table.getRowModel().rows.length > 0 && (\n <Pagination\n {...pagination}\n currentPage={pagination?.currentPage ?? 1}\n totalPages={\n pagination?.totalPages ??\n Math.ceil(\n (pagination?.totalItems ?? 0) /\n Math.max(pagination?.itemsPerPage ?? 1, 1),\n ) ??\n 1\n }\n onPageChange={(page) => pagination?.onPageChange?.(page)}\n />\n )}\n </div>\n );\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\nimport { renderPageNumbers } from \"./utils\";\n\nexport type PaginationProps = {\n currentPage?: number;\n totalPages?: number;\n onPageChange?: (page: number) => void;\n totalItems?: number;\n itemsPerPage?: number;\n};\n\n/**\n * Pagination component for displaying pagination controls.\n * @param {number} currentPage - The current page number.\n * @param {number} totalPages - The total number of pages.\n * @param {function} onPageChange - Callback function to handle page change.\n * @param {number | undefined} itemsPerPage - The number of items per page.\n */\nexport const Pagination = ({\n currentPage = 1,\n totalPages = 1,\n onPageChange,\n itemsPerPage = 0,\n totalItems = 0,\n}: PaginationProps) => {\n const handlePageClick = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n onPageChange?.(page);\n }\n };\n const visibleRangeStart =\n itemsPerPage === 0 ? 1 : itemsPerPage * (currentPage - 1) + 1;\n const visibleRangeEnd =\n currentPage === totalPages\n ? totalItems\n : Math.min(visibleRangeStart + itemsPerPage - 1, totalItems);\n return (\n <div className=\"flex items-center justify-between border-t border-gray-200 px-4 py-3 sm:px-6 w-full flex-wrap gap-y-10 sm:gap-y-0\">\n {totalItems && (\n <section className=\"text-[#717171] text-[12px]\">\n <p className=\"\">\n Showing {visibleRangeStart} - {visibleRangeEnd} of {totalItems}\n </p>\n </section>\n )}\n <div className=\"flex items-center justify-center sm:justify-end \">\n <nav className=\" inline-flex gap-x-1 sm:gap-x-[10px] items-center\">\n <button\n onClick={() => handlePageClick(currentPage - 1)}\n disabled={currentPage === 1}\n className=\"text-xs text-[#222222] hover:bg-primary-main/10 disabled:text-[#D9D9D9] disabled:cursor-not-allowed sm:flex hidden\"\n >\n <ChevronLeftIcon className=\"size-5\" />\n </button>\n {renderPageNumbers({ currentPage, totalPages, handlePageClick })}\n <button\n onClick={() => handlePageClick(currentPage + 1)}\n disabled={currentPage === totalPages}\n className=\"text-xs text-[#222222] hover:bg-primary-main/10 disabled:text-[#D9D9D9] disabled:cursor-not-allowed sm:flex hidden\"\n >\n <ChevronRightIcon className=\"size-5\" />\n </button>\n </nav>\n </div>\n </div>\n );\n};\n","type RenderPageNumbersProps = {\n totalPages: number;\n currentPage: number;\n handlePageClick: (page: number) => void;\n};\n\nconst PageButton = ({\n page,\n currentPage,\n onClick,\n}: {\n page: number | string;\n currentPage: number;\n onClick?: () => void;\n}) => {\n if (typeof page === \"string\") {\n return (\n <span className=\"px-3 py-1 sm:px-4 sm:py-2 text-xs sm:text-sm font-semibold text-gray-500\">\n {page}\n </span>\n );\n }\n\n return (\n <button\n onClick={onClick}\n className={`p-1 w-8 h-8 text-xs sm:text-sm rounded-full ${\n page === currentPage\n ? \"bg-primary-main text-white\"\n : \"text-[#717171] hover:bg-primary-main/10\"\n }`}\n >\n {page}\n </button>\n );\n};\n\nexport const renderPageNumbers = ({\n totalPages,\n currentPage,\n handlePageClick,\n}: RenderPageNumbersProps) => {\n const maxVisiblePages = 3;\n\n const getWindowBounds = () => {\n const halfWindow = Math.floor(maxVisiblePages / 2);\n let start = Math.max(1, currentPage - halfWindow);\n let end = Math.min(totalPages, start + maxVisiblePages - 1);\n\n if (end > totalPages) {\n start = Math.max(1, totalPages - maxVisiblePages + 1);\n end = totalPages;\n }\n\n return { start, end };\n };\n\n const { start, end } = getWindowBounds();\n const pages: (number | string)[] = [];\n\n if (start > 1) pages.push(1);\n if (start > 2) pages.push(\"...\");\n pages.push(...Array.from({ length: end - start + 1 }, (_, i) => start + i));\n if (end < totalPages - 1) pages.push(\"...\");\n if (end < totalPages) pages.push(totalPages);\n\n return pages.map((page, idx) => (\n <PageButton\n key={idx}\n page={page}\n currentPage={currentPage}\n onClick={\n typeof page === \"number\" ? () => handlePageClick(page) : undefined\n }\n />\n ));\n};\n","import {\n flexRender,\n Row,\n RowData,\n Table as ReactTable,\n} from \"@tanstack/react-table\";\nimport { cn } from \"@/src/utils\";\n\ntype TableBodyProps<T extends RowData> = {\n table: ReactTable<T>;\n isMobile: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onRowClick?: (row: Row<any>) => void;\n id?: string;\n};\n\nexport const TableBody = <T extends RowData>({\n table,\n isMobile,\n onRowClick,\n id,\n}: TableBodyProps<T>) => {\n return (\n <div className={cn(\"relative w-full rounded-b border-0\", {})}>\n <table id={id ?? \"table\"} className=\"w-full overflow-x-scroll\">\n <thead>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n className={cn(\n \" rounded text-[#717171] border-b- bg-[#FCFCFC]\",\n {},\n )}\n key={headerGroup.id}\n >\n {headerGroup.headers.map((header) => (\n <th\n className=\"relative py-3 text-base whitespace-nowrap pl-2.5 text-left font-normal capitalize\"\n colSpan={header.colSpan}\n key={header.id}\n style={{\n width: header.getSize(),\n }}\n >\n {header.isPlaceholder ? null : (\n <div\n className={cn(\"flex items-center\", {\n \"cursor-pointer select-none\":\n header.column.getCanSort(),\n })}\n onClick={header.column.getToggleSortingHandler()}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </div>\n )}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n <tbody className=\" pl-2.5\">\n {table?.getFilteredRowModel().rows.map((row) => (\n <tr\n className={cn(\n \"first-letter border-b border-zinc-100\",\n {\n \"hover:bg-gray-50\": !isMobile,\n },\n {\n \"hover:bg-gray-50 hover:cursor-pointer\": onRowClick,\n },\n )}\n key={row.id}\n onClick={() => (onRowClick ? onRowClick(row) : {})}\n >\n {row.getVisibleCells().map((cell) => (\n <td\n className={cn(\"\", {\n // block: false,\n })}\n key={cell.id}\n >\n <div\n className={cn(\"\", {\n \"w-max p-4 pl-2.5 text-black text-sm\": true,\n })}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { Download, ListFilter, RotateCw } from \"lucide-react\";\nimport { ReactNode } from \"react\";\nimport { Button, buttonVariants } from \"../button\";\nimport { DebouncedInput } from \"../debounced-input\";\nimport { Popover } from \"../popover\";\nimport { TableDownloadProps, TableSearchProps } from \"./index\";\n\ntype PageDataToolbarProps = {\n onRefetch?: () => void;\n search?: TableSearchProps;\n FilterMenu?: ReactNode;\n ExtraNode?: ReactNode;\n onExport?: () => void;\n download?: TableDownloadProps;\n isRefetching?: boolean;\n};\n\nexport const PageDataToolbar = ({\n onRefetch,\n search,\n FilterMenu,\n ExtraNode,\n onExport,\n download,\n isRefetching,\n}: PageDataToolbarProps) => {\n const handleSearch = (query: string) => {\n search?.onSearch?.(query);\n };\n\n const handleRefetch = () => {\n try {\n onRefetch?.();\n } catch (e) {\n console.error(\"Error while refetching data\", e);\n }\n };\n\n return (\n <>\n {(onRefetch ||\n search?.enabled ||\n FilterMenu ||\n ExtraNode ||\n onExport) && (\n <div className=\"w-full flex flex-col sm:!flex-row justify-between items-start sm:items-center bg-white p-2 gap-2\">\n <div className=\"flex flex-1 flex-col sm:flex-row items-center gap-2 justify-start\">\n <div className=\" w-full flex gap-x-3\">\n {search?.enabled && (\n <section className=\"sm:w-56\">\n <DebouncedInput\n type=\"text\"\n placeholder=\"Enter search here...\"\n className=\"h-9\"\n onChange={handleSearch}\n debounce={search?.debounceRate}\n />\n </section>\n )}\n <div className=\" flex gap-2\">\n {onRefetch && (\n <Button\n onClick={handleRefetch}\n title=\"Refetch Data\"\n disabled={isRefetching}\n variant=\"outlined\"\n className=\"!border-[#DEDEDE] !text-gray-800 !px-[10px] !py-[8px] \"\n size={\"sm\"}\n >\n <RotateCw\n className={cn(\"w-4 h-4\", {\n \"animate-spin\": isRefetching,\n })}\n size={5}\n />\n </Button>\n )}\n\n {FilterMenu && (\n <Popover\n trigger={\n <button\n title=\"Filter\"\n className={cn(\n \"!border-[#DEDEDE] !text-gray-800 !px-[10px] !py-[8px]\",\n buttonVariants({\n variant: \"outlined\",\n size: \"sm\",\n }),\n )}\n >\n <ListFilter className=\"w-4 h-4\" size={5} />\n </button>\n }\n >\n {FilterMenu}\n </Popover>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex items-start flex-col gap-2 justify-center\">\n <section className=\"flex flex-col-reverse sm:flex-row gap-2\">\n <div className=\"flex gap-2\">\n {ExtraNode && ExtraNode}\n\n {onExport && (\n <Button variant=\"primary\" onClick={onExport} size={\"sm\"}>\n Export\n </Button>\n )}\n {download?.enabled && (\n <Button\n variant=\"primary\"\n leftNode={<Download className=\"w-4 h-5\" size={5} />}\n onClick={download?.onDownload}\n id={download.buttonId}\n size={\"sm\"}\n >\n {download?.buttonText}\n </Button>\n )}\n </div>\n </section>\n </div>\n </div>\n )}\n </>\n );\n};\n","import { createContext, ReactNode, useMemo } from \"react\";\nimport { ResourcePermissions } from \"@/src/components/permission/types\";\n\nexport const PermissionsContext = createContext<\n ResourcePermissions | undefined\n>(undefined);\n\nexport const PermissionsProvider = ({\n permissions,\n children,\n}: {\n permissions: ResourcePermissions;\n children: ReactNode;\n}) => {\n const value = useMemo(() => permissions, [permissions]);\n return (\n <PermissionsContext.Provider value={value}>\n {children}\n </PermissionsContext.Provider>\n );\n};\n","import { useCallback, useContext, useMemo } from \"react\";\nimport { PermissionsContext } from \"./context\";\n\nexport const usePermissions = () => {\n const permissions = useContext(PermissionsContext);\n return permissions;\n};\n\nexport const useHasPermission = (permission: {\n resource?: string;\n action?: string;\n}) => {\n const permissions = usePermissions();\n\n const validatePermission = useCallback(\n (permission: { resource?: string; action?: string }) => {\n if (!permissions || !permission) return true;\n\n const hasAdminAccess = permissions.some(\n (p) => p.resource === \"all\" && p.action === \"administrator\",\n );\n\n if (hasAdminAccess) return true;\n\n const { resource, action } = permission;\n const matchingPermissions = permissions.filter(\n (p) => p.resource === resource,\n );\n const hasExactMatch = matchingPermissions.some(\n (p) => p.action === action,\n );\n if (hasExactMatch) return true;\n if (action === \"read\") {\n return matchingPermissions.some((p) => p.action === \"write\");\n }\n return false;\n },\n [permission],\n );\n\n const hasPermission = useMemo(\n () => validatePermission(permission),\n [permissions, permission],\n );\n\n return { hasPermission, validatePermission };\n};\n","import { useHasPermission } from \"./hook\";\nimport { ResourcePermissionProps } from \"./types\";\n\nexport const HasResourcePermission = ({\n permission,\n children,\n}: ResourcePermissionProps) => {\n const { hasPermission } = useHasPermission(permission || {});\n\n if (!permission) return <>{children}</>;\n\n return <>{hasPermission ? children : null}</>;\n};\n","export const CurrencySymbolMap: Record<string, string> = {\n USD: \"$\",\n CAD: \"CA$\",\n EUR: \"€\",\n AED: \"AED\",\n AFN: \"Af\",\n ALL: \"ALL\",\n AMD: \"AMD\",\n ARS: \"AR$\",\n AUD: \"AU$\",\n AZN: \"man.\",\n BAM: \"KM\",\n BDT: \"Tk\",\n BGN: \"BGN\",\n BHD: \"BD\",\n BIF: \"FBu\",\n BND: \"BN$\",\n BOB: \"Bs\",\n BRL: \"R$\",\n BWP: \"BWP\",\n BYN: \"Br\",\n BZD: \"BZ$\",\n CDF: \"CDF\",\n CHF: \"CHF\",\n CLP: \"CL$\",\n CNY: \"CN¥\",\n COP: \"CO$\",\n CRC: \"₡\",\n CVE: \"CV$\",\n CZK: \"Kč\",\n DJF: \"Fdj\",\n DKK: \"Dkr\",\n DOP: \"RD$\",\n DZD: \"DA\",\n EEK: \"Ekr\",\n EGP: \"EGP\",\n ERN: \"Nfk\",\n ETB: \"Br\",\n GBP: \"£\",\n GEL: \"GEL\",\n GHS: \"GH₵\",\n GNF: \"FG\",\n GTQ: \"GTQ\",\n HKD: \"HK$\",\n HNL: \"HNL\",\n HRK: \"kn\",\n HUF: \"Ft\",\n IDR: \"Rp\",\n ILS: \"₪\",\n INR: \"₹\",\n IQD: \"IQD\",\n IRR: \"IRR\",\n ISK: \"Ikr\",\n JMD: \"J$\",\n JOD: \"JD\",\n JPY: \"¥\",\n KES: \"Ksh\",\n KHR: \"KHR\",\n KMF: \"CF\",\n KRW: \"₩\",\n KWD: \"KD\",\n KZT: \"KZT\",\n LBP: \"L.L.\",\n LKR: \"SLRs\",\n LTL: \"Lt\",\n LVL: \"Ls\",\n LYD: \"LD\",\n MAD: \"MAD\",\n MDL: \"MDL\",\n MGA: \"MGA\",\n MKD: \"MKD\",\n MMK: \"MMK\",\n MOP: \"MOP$\",\n MUR: \"MURs\",\n MXN: \"MX$\",\n MYR: \"RM\",\n MZN: \"MTn\",\n NAD: \"N$\",\n NGN: \"₦\",\n NIO: \"C$\",\n NOK: \"Nkr\",\n NPR: \"NPRs\",\n NZD: \"NZ$\",\n OMR: \"OMR\",\n PAB: \"B/.\",\n PEN: \"S/.\",\n PHP: \"₱\",\n PKR: \"PKRs\",\n PLN: \"zł\",\n PYG: \"₲\",\n QAR: \"QR\",\n RON: \"RON\",\n RSD: \"din.\",\n RUB: \"RUB\",\n RWF: \"RWF\",\n SAR: \"SR\",\n SDG: \"SDG\",\n SEK: \"Skr\",\n SGD: \"S$\",\n SOS: \"Ssh\",\n SYP: \"SY£\",\n THB: \"฿\",\n TND: \"DT\",\n TOP: \"T$\",\n TRY: \"TL\",\n TTD: \"TT$\",\n TWD: \"NT$\",\n TZS: \"TSh\",\n UAH: \"₴\",\n UGX: \"USh\",\n UYU: \"$U\",\n UZS: \"UZS\",\n VEF: \"Bs.F.\",\n VND: \"₫\",\n XAF: \"F CFA\",\n XOF: \"CFA\",\n YER: \"YR\",\n ZAR: \"R\",\n ZMK: \"ZK\",\n ZWL: \"ZWL$\",\n};\nexport interface FormatCurrencyOptions {\n convertToMajorCurrency?: boolean;\n locale?: string;\n}\nexport class AmountAction {\n static getCurrencyLocaleMap(currency: string): string {\n const localeMap: Record<string, string> = {\n XOF: \"fr\",\n XAF: \"fr\",\n };\n return localeMap[currency] || \"en\";\n }\n static koboToNaira(amount: number | string) {\n return +amount / 100;\n }\n\n static nairaToKobo(amount: number | string) {\n return +amount * 100;\n }\n\n static getCurrencySymbol(currency: string): string {\n return CurrencySymbolMap[currency] || currency;\n }\n\n static formatAmountAndCurrency = (\n currency: string,\n value: number | string,\n options: FormatCurrencyOptions,\n ) => {\n const formatted = new Intl.NumberFormat(\n options?.locale || this.getCurrencyLocaleMap(currency),\n {\n maximumFractionDigits: 3,\n style: \"currency\",\n currency: currency,\n currencyDisplay: \"symbol\",\n },\n )\n .format(\n options?.convertToMajorCurrency\n ? this.koboToNaira(Number(value))\n : Number(value),\n )\n .replace(/^(\\D+)/, \"$1 \")\n .replace(\" \", \" \")\n .replace(/\\s+/, \"\");\n\n // Now replace the currency code with the desired symbol from the map\n const customSymbol = CurrencySymbolMap[currency] || currency;\n\n // Replace the currency code with our custom symbol\n return formatted.replace(currency, customSymbol);\n };\n}\n","// import dayjs from \"dayjs\";\nimport dayjs from \"dayjs\";\nexport class DateAction {\n static getDateLibrary(): dayjs.Dayjs {\n return dayjs();\n }\n static formatTimestampToDate(timestamp: number, dateFormat?: string) {\n return dayjs\n .unix(timestamp)\n .format(dateFormat || \"ddd, MMM, YYYY | HH:mm:ss\");\n }\n\n static formatDateToTimestamp(date: string) {\n return dayjs(date).unix();\n }\n}\n\n// console.log(\"Date\", dayjs().format(\"DD, MMM, YYYY | HH:mm:ss\"));\n"],"mappings":"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ACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,4BACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,gBACV,aAAc,MACd,aAAc,SACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,gBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,cACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,eACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,aACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,OACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,aACb,YAAa,OACb,SAAU,qBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,iBACV,aAAc,MACd,aAAc,SACd,oBAAqB,IACvB,EACA,CACE,YAAa,wBACb,YAAa,OACb,SAAU,4BACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,gBACV,a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","names":["index_exports","__export","AmountAction","Banner","Button","CopyableLabel","Country","CurrencySymbolMap","DateAction","DebouncedInput","DevBanner","Dialog","Drawer","DrawerClose","DrawerRoot","FlagComponent","FormLabel","HasResourcePermission","Input","Loader","LocaleSelector","OTPInput","PageDataToolbar","Pagination","PasswordInput","PermissionsContext","PermissionsProvider","PhoneInput","Popover","PopoverContent","PopoverRoot","PopoverTrigger","Select","Sidebar","Status","Table","Textarea","Tooltip","TooltipContent","TooltipProvider","TooltipRoot","TooltipTrigger","buttonVariants","cn","useHasPermission","usePermissions","__toCommonJS","React","TooltipPrimitive","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","TooltipProvider","TooltipRoot","TooltipTrigger","TooltipContent","className","sideOffset","props","ref","cn","Tooltip","trigger","children","contentClassName","triggerClassName","asChild","side","align","alignOffset","delayDuration","hasArrow","arrowClassName","import_react","React","LabelPrimitive","import_class_variance_authority","import_jsx_runtime","labelVariants","Label","className","props","ref","cn","import_jsx_runtime","FormLabel","React","className","children","showAsterisk","error","props","ref","Label","cn","import_jsx_runtime","Loader","size","colour","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","isLoading","leftNode","rightNode","LoaderSize","props","ref","Component","children","disabled","rest","reference","cn","Loader","React","import_class_variance_authority","import_react","import_jsx_runtime","ErrorMessage","React","className","children","error","props","ref","body","cn","import_react","import_jsx_runtime","FormDescription","React","className","props","ref","cn","import_jsx_runtime","inputVariants","BaseInnerInput","className","status","type","props","ref","cn","inputContainerVariants","sideVariants","Input","disabled","error","isLoading","sideNodeClassName","showAsterisk","label","description","containerStatus","FormLabel","FormDescription","ErrorMessage","import_react","import_jsx_runtime","Eye","import_jsx_runtime","EyeOff","import_jsx_runtime","Check","import_jsx_runtime","Fail","import_jsx_runtime","validationOptions","PasswordInput","onValidate","onChange","disableValidation","props","passwordVisible","setPasswordVisible","validatedValues","setValidatedValues","validatePassword","value","option","checkPasswordStrength","validatedOptions","allValidated","handlePaswordInputChange","e","validated","ValidateComp","cn","Check","Fail","Input","val","Eye","EyeOff","import_class_variance_authority","import_jsx_runtime","textareaContainerVariants","Textarea","className","status","disabled","error","isLoading","showAsterisk","label","description","props","containerStatus","FormLabel","cn","inputContainerVariants","FormDescription","ErrorMessage","React","React","import_cmdk","import_lucide_react","React","DialogPrimitive","import_jsx_runtime","CloseIcon","import_jsx_runtime","DialogRoot","DialogTrigger","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","hideCloseButton","children","CloseIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Dialog","trigger","open","onOpenChange","footer","title","description","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","asChild","onOpenAutoFocus","onCloseAutoFocus","onEscapeKeyDown","onInteractOutside","onPointerDownOutside","import_jsx_runtime","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","CommandInputContainerClassName","loading","props","ref","cn","Loader","CommandPrimitive","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","import_jsx_runtime","PopoverRoot","PopoverTrigger","PopoverContent","className","align","sideOffset","portal","props","ref","cn","Popover","trigger","children","open","onOpenChange","contentClassName","asChild","side","alignOffset","triggerClassName","onOpenAutoFocus","onCloseAutoFocus","React","ScrollAreaPrimitive","import_jsx_runtime","ScrollArea","className","viewPortClassName","children","props","ref","cn","ScrollBar","orientation","import_jsx_runtime","SearchableTrigger","className","value","placeholder","status","disabled","PopoverTrigger","cn","inputContainerVariants","Searchable","options","onChange","containerClassName","loading","optionComponent","children","modal","hideSearch","inputValue","onValueChange","onInputValueChange","open","setOpen","triggerRef","width","setWidth","PopoverRoot","PopoverContent","Command","CommandInput","ScrollArea","CommandList","CommandEmpty","CommandGroup","option","CommandItem","countryData","getCountryDataMap","frequency","country","React","RPNInput","import_flags","import_jsx_runtime","FlatGlobeIcon","props","Flag_default","import_jsx_runtime","PhoneInput","className","onChange","defaultCountry","modal","showAsterisk","label","description","error","props","ref","CountrySelectWrapper","innerProps","CountrySelect","FormLabel","cn","FlagComponent","InputComponent","value","FormDescription","ErrorMessage","Input","disabled","options","status","handleSelect","country","PopoverRoot","PopoverTrigger","inputContainerVariants","PopoverContent","Command","CommandList","ScrollArea","CommandInput","CommandEmpty","CommandGroup","x","option","CommandItem","countryName","Flag","flags","Flag_default","import_jsx_runtime","countryMap","getCountryDataMap","CountryTrigger","className","value","placeholder","status","disabled","PopoverTrigger","cn","inputContainerVariants","FlagComponent","Country","hideSearch","showAsterisk","label","description","error","props","options","countryData","country","FormLabel","Searchable","arg","FormDescription","ErrorMessage","import_jsx_runtime","Select","showAsterisk","label","description","error","hideSearch","status","props","FormLabel","Searchable","SearchableTrigger","FormDescription","ErrorMessage","import_react_otp_input","import_class_variance_authority","import_react","import_jsx_runtime","otpInputVariants","OTPInput","numInputs","inputStyle","containerStyle","placeholder","status","props","placeholderValue","accumulator","currentValue","OtpInput","cn","import_react","import_jsx_runtime","Icon","type","Banner","title","description","open","showCloseButton","bottomNode","sideNode","onClose","showIcon","isOpen","setIsOpen","bgColor","stripeColor","handleClose","import_react","import_lucide_react","import_framer_motion","import_jsx_runtime","CopyableLabel","text","textToCopy","onCopy","iconsPosition","clampText","textClassName","copied","setCopied","copyToClipboard","Icon","AnimatedIcon","cn","onClick","import_react","import_lucide_react","import_jsx_runtime","DebouncedInput","initialValue","onChange","debounce","addon","props","value","setValue","handleInputChange","event","timeout","Input","cn","import_react","import_lucide_react","import_jsx_runtime","DevBanner","props","environment","branch","version","deployTime","showBanner","onClose","initDefault","removeFromStorage","syncLocalStorageToState","currentEnv","interval","React","import_vaul","import_class_variance_authority","import_jsx_runtime","CloseIcon","import_react","useWindowSize","windowSize","setWindowSize","handleResize","import_jsx_runtime","DrawerRoot","shouldScaleBackground","props","DrawerPrimitive","DrawerTrigger","DrawerClose","DrawerPortal","DrawerOverlay","className","ref","cn","DrawerVariants","DrawerContent","side","hideCloseButton","children","CloseIcon","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","Drawer","trigger","open","onOpenChange","footer","title","description","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","asChild","onOpenAutoFocus","onCloseAutoFocus","width","useWindowSize","direction","import_jsx_runtime","Check","import_jsx_runtime","EnglishFlag","props","import_jsx_runtime","FrenchFlag","props","import_jsx_runtime","UpDownIcon","import_react_popover","import_jsx_runtime","localeListOptons","LocaleIcon","locale","FrenchFlag","EnglishFlag","LocaleTrigger","UpDownIcon","LocaleSelector","onChange","locales","PopoverRoot","PopoverTrigger","PopoverContent","_locale","cn","Check","import_react","import_framer_motion","import_react","import_hi","import_fi","import_bs","import_jsx_runtime","BusinessBarTrigger","activeBusiness","onTriggerClick","iconOnly","className","rightNode","cn","import_lucide_react","import_jsx_runtime","businessPopUpVariants","BusinessBarContent","activeBusiness","toggleAddBusinessDrawer","businesses","handleSwitchBusiness","onLogoutClick","searchText","setSearchText","searchedBusinesses","text","b","onSearchChange","e","BusinessBarTrigger","Input","cn","import_jsx_runtime","BusinessBar","activeBusiness","toggleAddBusinessDrawer","toggleShowBusiness","businesses","handleSwitchBusiness","iconOnly","onLogoutClick","isMobile","Popover","BusinessBarTrigger","Icon","BusinessBarContent","className","cn","import_framer_motion","import_react","import_fi","import_jsx_runtime","accordionItemVariants","NavItems","isIconsOnly","isSidebarCollapsed","onToggleSideBar","currentPath","onNavigate","collapseType","links","appConfig","isMobile","expandedMenus","setExpandedMenus","toggleAccordion","linkId","prev","handleMenuLink","link","getActiveMenu","l","expanded","child","idx","active","hasChildren","isExpanded","cn","Tooltip","childLink","childActive","import_lucide_react","import_jsx_runtime","OpenSidebarIcon","import_jsx_runtime","ClosedSidebarIcon","import_jsx_runtime","SidebarToggle","onToggleSideBar","isSidebarCollapsed","ToggleIcon","props","import_jsx_runtime","Sidebar","isSidebarCollapsed","onToggleSideBar","isMobile","links","businessProps","currentPath","onNavigate","appConfig","propCollapseType","onLogoutClick","openSidebarIcon","OpenSidebarIcon","closedSidebarIcon","ClosedSidebarIcon","nodeAfterSideBarLogo","collapseType","showBusiness","setShowBusiness","isIconsOnly","sideBarRef","businessList","activeBusiness","toggleAddBusinessDrawer","handleSetActiveBusiness","toggleShowBusiness","prev","handleSwitchBusiness","clientId","sideBarLogo","showBackdrop","cn","SidebarToggle","NavItems","BusinessBar","import_jsx_runtime","Status","status","variant","className","cn","import_lucide_react","import_lucide_react","import_jsx_runtime","PageButton","page","currentPage","onClick","renderPageNumbers","totalPages","handlePageClick","getWindowBounds","halfWindow","start","end","pages","_","i","idx","import_jsx_runtime","Pagination","currentPage","totalPages","onPageChange","itemsPerPage","totalItems","handlePageClick","page","visibleRangeStart","visibleRangeEnd","renderPageNumbers","import_react_table","import_jsx_runtime","TableBody","table","isMobile","onRowClick","id","cn","headerGroup","header","row","cell","import_lucide_react","import_jsx_runtime","PageDataToolbar","onRefetch","search","FilterMenu","ExtraNode","onExport","download","isRefetching","handleSearch","query","handleRefetch","e","DebouncedInput","Button","cn","Popover","buttonVariants","import_jsx_runtime","Table","table","isMobile","onRowClick","id","onRefetch","isRefetching","FilterMenu","ExtraNode","onExport","search","download","isLoading","pagination","cn","PageDataToolbar","TableBody","Pagination","page","import_react","import_jsx_runtime","PermissionsContext","PermissionsProvider","permissions","children","value","import_react","usePermissions","PermissionsContext","useHasPermission","permission","permissions","validatePermission","resource","action","matchingPermissions","import_jsx_runtime","HasResourcePermission","permission","children","hasPermission","useHasPermission","CurrencySymbolMap","_AmountAction","currency","amount","__publicField","value","options","formatted","customSymbol","AmountAction","import_dayjs","DateAction","dayjs","timestamp","dateFormat","date"]}
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/tooltip/index.tsx","../src/utils/index.ts","../src/components/label/FormLabel.tsx","../src/components/label/index.tsx","../src/components/loader/index.tsx","../src/components/button/index.tsx","../src/components/input/index.tsx","../src/components/form/ErrorMessage.tsx","../src/components/form/FormDescription.tsx","../src/components/password-input/index.tsx","../src/components/password-input/icons/Eye.tsx","../src/components/password-input/icons/EyeOff.tsx","../src/components/password-input/icons/Check.tsx","../src/components/password-input/icons/Fail.tsx","../src/components/textarea/index.tsx","../src/components/searcheable/index.tsx","../src/components/command/index.tsx","../src/components/dialog/index.tsx","../src/components/dialog/icon/CloseIcon.tsx","../src/components/popover/index.tsx","../src/components/scroll-area/index.tsx","../src/components/country/data.ts","../src/components/phone-input/index.tsx","../src/components/phone-input/Flag.tsx","../src/components/country/index.tsx","../src/components/select/index.tsx","../src/components/otp/index.tsx","../src/components/banner/index.tsx","../src/components/copyable-label/index.tsx","../src/components/debounced-input/index.tsx","../src/components/dev-banner/index.tsx","../src/components/drawer/index.tsx","../src/components/drawer/icon/CloseIcon.tsx","../src/hooks/useWindowSize.ts","../src/components/locale-selctor/icons/Check.tsx","../src/components/locale-selctor/icons/EnglishFlag.tsx","../src/components/locale-selctor/icons/FrenchFlag.tsx","../src/components/locale-selctor/icons/UpDownIcon.tsx","../src/components/locale-selctor/index.tsx","../src/components/sidebar/index.tsx","../src/components/sidebar/business/components/Content.tsx","../src/components/sidebar/business/components/Trigger.tsx","../src/components/sidebar/business/BusinessBar.tsx","../src/components/sidebar/NavItems.tsx","../src/components/sidebar/components/OpenSidebarIcon.tsx","../src/components/sidebar/components/ClosedSidebarIcon.tsx","../src/components/sidebar/components/SidebarToggle.tsx","../src/components/status/index.tsx","../src/components/table/index.tsx","../src/components/table/pagination/index.tsx","../src/components/table/pagination/utils.tsx","../src/components/table/TableBody.tsx","../src/components/table/ToolBar.tsx","../src/components/permission/context.tsx","../src/components/permission/hook.ts","../src/components/permission/index.tsx","../src/actions/amount.action.ts","../src/actions/date.action.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./actions/amount.action\";\nexport * from \"./actions/date.action\";\n\nexport { cn } from \"./utils\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"@/src/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst TooltipRoot = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 2, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-md border border-transparent bg-gray-50 px-3 py-1.5 text-base font-semibold text-bold text-black/40 shadow-xl- 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 [box-shadow:3px_4px_11px_0px_#0000001A,13px_16px_21px_0px_#00000017,29px_36px_28px_0px_#0000000D,52px_65px_33px_0px_#00000003,82px_101px_36px_0px_#00000000]\",\n className,\n )}\n {...props}\n >\n {props.children}\n {/* <TooltipPrimitive.Arrow className=\"!fill-gray-50 w-6\" /> */}\n </TooltipPrimitive.Content>\n));\n\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport type TooltipPropsType = {\n trigger: React.ReactNode;\n children: React.ReactNode;\n contentClassName?: string;\n triggerClassName?: string;\n asChild?: boolean;\n side?: TooltipPrimitive.TooltipContentProps[\"side\"];\n sideOffset?: number;\n align?: TooltipPrimitive.TooltipContentProps[\"align\"];\n alignOffset?: number;\n delayDuration?: number;\n hasArrow?: boolean;\n arrowClassName?: string;\n};\n\nconst Tooltip = ({\n trigger,\n children,\n contentClassName,\n triggerClassName,\n asChild = true,\n side,\n sideOffset,\n align,\n alignOffset,\n delayDuration = 100,\n hasArrow = true,\n arrowClassName,\n ...props\n}: TooltipPropsType &\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>) => {\n return (\n <TooltipProvider>\n <TooltipRoot delayDuration={delayDuration} {...props}>\n <div className=\"flex justify-center items-center\">\n <TooltipTrigger asChild={asChild} className={triggerClassName}>\n {trigger}\n </TooltipTrigger>\n <TooltipContent\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={contentClassName}\n >\n {children}\n {hasArrow && (\n <TooltipPrimitive.Arrow\n className={cn(\"fill-white\", arrowClassName)}\n />\n )}\n </TooltipContent>\n </div>\n </TooltipRoot>\n </TooltipProvider>\n );\n};\nTooltip.displayName = \"Tooltip\";\n\nexport {\n Tooltip,\n TooltipProvider,\n TooltipRoot,\n TooltipTrigger,\n TooltipContent,\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Status =\n | string\n | \"unpaid\"\n | \"partial-payment\"\n | \"active\"\n | \"paid\"\n | \"inactive\"\n | \"in-progress\"\n | \"failed\"\n | \"abandoned\"\n | \"success\";\n\ntype Variant = \"success\" | \"failed\" | \"pending\" | \"abandoned\";\ntype StatusVariantMap = Record<Status, Variant>;\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function areObjectsEqual<T extends object>(obj1: T, obj2: T): boolean {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = obj1[key as keyof T];\n const val2 = obj2[key as keyof T];\n\n if (\n typeof val1 === \"object\" &&\n val1 !== null &&\n typeof val2 === \"object\" &&\n val2 !== null\n ) {\n if (!areObjectsEqual(val1, val2)) {\n return false;\n }\n } else if (val1 !== val2) {\n return false;\n }\n }\n\n return true;\n}\n\nconst defaultStatusGroups: StatusVariantMap = {\n unpaid: \"pending\",\n \"partial-payment\": \"pending\",\n active: \"success\",\n paid: \"success\",\n inactive: \"abandoned\",\n \"in-progress\": \"pending\",\n failed: \"failed\",\n abandoned: \"abandoned\",\n success: \"success\",\n};\n\nexport const getStatusVariant = (\n status: Status,\n customGroups?: Partial<StatusVariantMap>,\n): Variant => {\n const mergedGroups = { ...defaultStatusGroups, ...customGroups };\n return mergedGroups[status] || \"pending\";\n};\n","import React from \"react\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Label } from \".\";\nimport { cn } from \"@/src/utils\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & {\n showAsterisk?: boolean;\n error?: string;\n formItemId?: string;\n }\n>(({ className, children, showAsterisk, error, ...props }, ref) => {\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-red-500\", className)}\n // htmlFor={formItemId}\n {...props}\n >\n {showAsterisk ? (\n <p>\n {children}\n <span className=\"text-red-500\">*</span>\n </p>\n ) : (\n children\n )}\n </Label>\n );\n});\n\nFormLabel.displayName = \"FormLabel\";\n\nexport { FormLabel };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","type Colours = \"primary\" | \"secondary\";\n\nexport const Loader = ({\n size = 16,\n colour = \"primary\",\n}: {\n size?: number;\n colour?: Colours;\n}) => {\n return (\n <svg\n className=\"animate-spin\"\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <circle cx=\"10\" cy=\"10\" r=\"9.25\" stroke=\"transparent\" strokeWidth=\"1.5\" />\n <path\n d=\"M10 0.595792C10 0.266746 10.267 -0.00185055 10.5954 0.0177417C11.9786 0.100242 13.3318 0.469461 14.5682 1.1044C15.9816 1.83021 17.2016 2.88235 18.1273 4.17366C19.0531 5.46496 19.6578 6.95826 19.8913 8.52984C20.1249 10.1014 19.9807 11.706 19.4705 13.2108C18.9604 14.7155 18.0991 16.077 16.9579 17.1825C15.8167 18.288 14.4285 19.1056 12.9084 19.5677C11.3882 20.0298 9.77982 20.123 8.21646 19.8397C6.84883 19.5918 5.55009 19.0619 4.40196 18.2863C4.12931 18.1021 4.08072 17.7265 4.28083 17.4653C4.48094 17.2041 4.85388 17.1564 5.12801 17.3384C6.12474 18.0001 7.24768 18.4531 8.42898 18.6672C9.80606 18.9168 11.2228 18.8347 12.5618 18.4276C13.9008 18.0206 15.1236 17.3004 16.1288 16.3266C17.134 15.3528 17.8927 14.1536 18.342 12.8282C18.7914 11.5027 18.9185 10.0893 18.7127 8.70502C18.507 7.32071 17.9743 6.00535 17.1589 4.86792C16.3435 3.73048 15.2688 2.80371 14.0238 2.16439C12.9559 1.61596 11.789 1.29259 10.5954 1.21173C10.2671 1.18949 10 0.92484 10 0.595792Z\"\n fill={colour === \"primary\" ? \"#ffffff\" : \"currentColor\"}\n className=\"rounded\"\n />\n </svg>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\nimport { Loader } from \"../loader\";\nimport { ButtonHTMLAttributes } from \"react\";\nimport { DetailedHTMLProps } from \"react\";\n\nconst buttonVariants = cva(\n \"overflow-hidden isolate inline-flex h-fit items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background dark:ring-offset-transparent transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:!pointer-events-none\",\n {\n variants: {\n variant: {\n primary:\n \"border-primary-main bg-primary-main hover:bg-primary-main/70 disabled:bg-primary-main/70 text-white font-bold\",\n danger:\n \"border-red-600 bg-red-600 hover:bg-red-600/70 disabled:bg-red-600/70 text-white font-bold\",\n neutral:\n \"!border-0 bg-transparent text-primary-main hover:opacity-80 disabled:opacity-60\",\n outlined:\n \"border border-primary-main text-primary-main hover:opacity-80 disabled:opacity-60\",\n \"danger-outlined\":\n \"border border-red-600 text-red-600 hover:opacity-80 disabled:opacity-60\",\n \"light-outlined\":\n \"border-white text-white hover:opacity-80 disabled:opacity-60\",\n \"dark-text\":\n \"border-transparent bg-transparent hover:bg-opacity-70 disabled:bg-opacity-70 text-black font-medium\",\n light:\n \"border-white bg-white hover:bg-opacity-70 disabled:bg-opacity-70 text-primary-main font-semibold\",\n },\n size: {\n // lg: \"h-15 px-8 items-center\",\n // sm: \"h-10 px-3.5 items-center text-sm\",\n default:\n \"py-[0.625rem] px-[1.5rem] text-[0.875rem] leading-[1.25rem] font-medium rounded-lg\",\n sm: \"py-[0.375rem] px-[1rem] leading-[1rem] font-normal text-sm rounded-lg\",\n lg: \"py-[0.75rem] px-[1.5rem] text-[1rem] leading-[1.5rem] font-medium rounded-lg\",\n md: \"py-[0.625rem] px-[1.5rem] text-[0.875rem] leading-[1.25rem] font-medium rounded-lg\",\n \"icon-sm\":\n \"h-[1.75rem] w-[1.75rem] flex justify-center items-center font-medium rounded-lg\",\n icon: \"h-[2.5rem] w-[2.75rem] flex justify-center items-center font-medium rounded-lg\",\n \"icon-lg\":\n \"h-[3rem] w-[3rem] flex justify-center items-center font-medium rounded-lg\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n // extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n extends DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n isLoading?: boolean;\n leftNode?: React.ReactNode;\n rightNode?: React.ReactNode;\n LoaderSize?: number;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"primary\",\n size,\n asChild = false,\n isLoading = false,\n leftNode,\n rightNode,\n LoaderSize,\n // ref,\n ...props\n },\n ref,\n ) => {\n const Component = asChild ? Slot : \"button\";\n\n const { children, disabled, ...rest } = props;\n const reference = React.useRef<HTMLButtonElement>(null);\n\n return (\n <Component\n className={cn(buttonVariants({ variant, size, className }))}\n ref={reference || ref}\n disabled={disabled || isLoading}\n {...rest}\n children={\n <div className=\"flex font-medium justify-center items-center gap-2\">\n {/* {leftNode}\n {children}\n {rightNode}\n {isLoading && <Loader />} */}\n\n {isLoading ? (\n <>\n <span className=\"mx-auto\">\n <Loader size={LoaderSize} colour=\"secondary\" />\n </span>\n </>\n ) : (\n <>\n {leftNode}\n {children}\n {rightNode}\n </>\n )}\n </div>\n }\n />\n );\n },\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\nimport { FormDescription } from \"../form/FormDescription\";\n\nexport const inputVariants = cva(\n \"!p-0 flex h-full w-full !border-transparent !bg-transparent text-base focus-visible:bg-transparent focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n status: {\n default: \"placeholder:text-[#C4C4C4] dark:placeholder:text-[#9299A2]\",\n error: \"placeholder:text-red-500 text-red-500\",\n loading: \"placeholder:text-[#C4C4C4] dark:placeholder:text-[#9299A2]\",\n prefilled: \"\",\n neutral: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport interface BaseInnerInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {}\n\nconst BaseInnerInput = React.forwardRef<HTMLInputElement, BaseInnerInputProps>(\n ({ className, status, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputVariants({ status }), className)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nBaseInnerInput.displayName = \"BaseInnerInput\";\n\nexport const inputContainerVariants = cva(\n \"flex relative h-10 w-full rounded-[4px] dark:!bg-transparent border transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:disabled:!border-[#9299A2]\",\n {\n variants: {\n status: {\n default:\n \"border-[#DEDEDE] bg-white text-[#191919] dark:!bg-transparent caret-text-primary focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-500 bg-red-50 border-red-500 dark:!bg-status-error-bg-dark text-red-500 focus-within:bg-red-50 focus-within:border-red-500\",\n loading: \"\",\n prefilled:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport const sideVariants = cva(\n \"top-0 flex justify-center items-center h-full min-w-[50px] max-w-[100px] dark:!bg-transparent transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:disabled:!border-[#9299A2]\",\n {\n variants: {\n side: {\n left: \"left-0 rounded-l-[8px] border-r\",\n right: \"right-0 rounded-r-[8px] border-l\",\n },\n status: {\n default:\n \"border-[#DEDEDE] bg-white text-[#191919] dark:!bg-transparent caret-primary-main focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-500 bg-red-50 border-red-500 dark:!bg-red-50 text-red-500 focus-within:bg-red-50 focus-within:border-red-500\",\n loading: \"\",\n prefilled:\n \"bg-[#F6F6F6] border-[#DEDEDE] dark:!bg-transparent caret-[#DEDEDE] focus-within:bg-[#F6F6F6] focus-within:border-[#DEDEDE] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral: \"bg-transparent border-0 caret-[#DEDEDE] !px-0\",\n },\n },\n defaultVariants: {\n status: \"default\",\n side: \"left\",\n },\n },\n);\n\nexport interface InputProps\n extends BaseInnerInputProps,\n VariantProps<typeof inputContainerVariants> {\n isLoading?: boolean;\n error?: string;\n leftNode?: React.ReactNode;\n rightNode?: React.ReactNode;\n sideNodeClassName?: string;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n status = \"default\",\n disabled,\n error,\n isLoading,\n sideNodeClassName,\n showAsterisk,\n label,\n description,\n ...props\n },\n ref,\n ) => {\n let containerStatus: VariantProps<typeof inputContainerVariants>[\"status\"] =\n status;\n\n if (error) containerStatus = \"error\";\n if (isLoading) containerStatus = \"loading\";\n if (disabled) containerStatus = \"prefilled\";\n\n return (\n <div className=\"relative space-y-1 w-full\">\n {label && (\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n )}\n <div\n className={cn(\n inputContainerVariants({ status: containerStatus }),\n props.leftNode ? \"pl-0\" : \"\",\n props.rightNode ? \"pr-0\" : \"\",\n className,\n )}\n >\n {props.leftNode ? (\n <div\n className={cn(\n sideVariants({\n status: containerStatus,\n side: \"left\",\n }),\n sideNodeClassName,\n )}\n >\n {props.leftNode}\n </div>\n ) : null}\n <BaseInnerInput\n ref={ref}\n disabled={isLoading || disabled}\n className={cn({\n \"!pl-3\": props.leftNode && status !== \"neutral\",\n \"!pr-3\": props.rightNode && status !== \"neutral\",\n })}\n {...props}\n />\n {props.rightNode ? (\n <div\n className={cn(\n sideVariants({\n status: containerStatus,\n side: \"right\",\n }),\n sideNodeClassName,\n )}\n >\n {props.rightNode}\n </div>\n ) : null}\n </div>\n {description && (\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n )}\n <ErrorMessage error={error} />\n </div>\n );\n },\n);\n\n// const Input = ({\n// className,\n// status = \"default\",\n// disabled,\n// error,\n// isLoading,\n// sideNodeClassName,\n// showAsterisk,\n// label,\n// description,\n// ref,\n// ...props\n// }: InputProps) => {\n// let containerStatus: VariantProps<typeof inputContainerVariants>[\"status\"] =\n// status;\n\n// if (error) containerStatus = \"error\";\n// if (isLoading) containerStatus = \"loading\";\n// if (disabled) containerStatus = \"prefilled\";\n\n// return (\n// <div className=\"relative space-y-1 w-full\">\n// {label && (\n// <FormLabel showAsterisk={showAsterisk} error={error}>\n// {label}\n// </FormLabel>\n// )}\n// <div\n// className={cn(\n// inputContainerVariants({ status: containerStatus }),\n// props.leftNode ? \"pl-0\" : \"\",\n// props.rightNode ? \"pr-0\" : \"\",\n// className,\n// )}\n// >\n// {props.leftNode ? (\n// <div\n// className={cn(\n// sideVariants({\n// status: containerStatus,\n// side: \"left\",\n// }),\n// sideNodeClassName,\n// )}\n// >\n// {props.leftNode}\n// </div>\n// ) : null}\n// <BaseInnerInput\n// ref={ref}\n// disabled={isLoading || disabled}\n// className={cn({\n// \"!pl-3\": props.leftNode && status !== \"neutral\",\n// \"!pr-3\": props.rightNode && status !== \"neutral\",\n// })}\n// {...props}\n// />\n// {props.rightNode ? (\n// <div\n// className={cn(\n// sideVariants({\n// status: containerStatus,\n// side: \"right\",\n// }),\n// sideNodeClassName,\n// )}\n// >\n// {props.rightNode}\n// </div>\n// ) : null}\n// </div>\n// {description && (\n// <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n// {description}\n// </FormDescription>\n// )}\n// <ErrorMessage error={error} />\n// </div>\n// );\n// };\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","import { cn } from \"@/src/utils\";\nimport React from \"react\";\n\nconst ErrorMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement> & {\n error?: string;\n }\n>(({ className, children, error, ...props }, ref) => {\n const body = error ?? children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n className={cn(\"text-xs font-normal text-[#F04248]\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nErrorMessage.displayName = \"ErrorMessage\";\n\nexport { ErrorMessage };\n","import { cn } from \"@/src/utils\";\nimport React from \"react\";\n\nconst FormDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"text-sm text-[#8E98A8\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nexport { FormDescription };\n","import { useMemo, useState } from \"react\";\nimport { Eye } from \"./icons/Eye\";\nimport { EyeOff } from \"./icons/EyeOff\";\nimport { Input, InputProps } from \"../input\";\nimport { cn } from \"@/src/utils\";\nimport { Check } from \"./icons/Check\";\nimport { Fail } from \"./icons/Fail\";\n\nconst validationOptions = [\n {\n label: \"Uppercase\",\n key: \"uppercase\",\n RegExp: /[A-Z]/,\n validated: false,\n },\n {\n label: \"Lowercase\",\n key: \"lowercase\",\n RegExp: /[a-z]/,\n validated: false,\n },\n {\n label: \"Number\",\n key: \"number\",\n RegExp: /\\d/,\n validated: false,\n },\n {\n label: \"8 Characters\",\n key: \"eight-chars\",\n RegExp: /.{8}/,\n validated: false,\n },\n];\n\ntype PasswordInputProps = InputProps & {\n /**\n * onValidate(validated: boolean, value: string) => void\n * args - validated: this is boolean value that indicated that all validation options were met\n * args - value: this is the string input value\n */\n onValidate?: (validated: boolean, value: string) => void;\n disableValidation?: boolean;\n};\nconst PasswordInput = ({\n onValidate,\n onChange,\n disableValidation,\n ...props\n}: PasswordInputProps) => {\n const [passwordVisible, setPasswordVisible] = useState(false);\n const [validatedValues, setValidatedValues] = useState(validationOptions);\n\n const validatePassword = (value: string) => {\n return validationOptions.map((option) => ({\n ...option,\n validated: option.RegExp.test(value),\n }));\n };\n\n const checkPasswordStrength = (value: string) => {\n const validatedOptions = validatePassword(value);\n const allValidated = validatedOptions.every((option) => option.validated);\n\n setValidatedValues(validatedOptions);\n\n return allValidated;\n };\n\n const handlePaswordInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n e,\n ) => {\n if (onChange) onChange(e);\n\n if (disableValidation) return;\n\n const value = e?.target?.value;\n const validated = checkPasswordStrength(value);\n\n if (onValidate) onValidate(validated, value);\n };\n\n const ValidateComp = useMemo(() => {\n return (\n <div className=\"flex items-center gap-2\">\n {validatedValues?.map((value) => (\n <div\n className={cn(\"text-xs flex items-center gap-0.5\", {\n \"text-[#62C554]\": value?.validated,\n \"text-[#8E98A8]\": !value?.validated,\n })}\n key={value?.key}\n >\n <span className=\"\">{value?.validated ? <Check /> : <Fail />}</span>\n <span className=\"\">{value?.label}</span>\n </div>\n ))}\n </div>\n );\n }, [validatedValues]);\n\n return (\n <Input\n sideNodeClassName=\"!border-l-0\"\n rightNode={\n passwordVisible ? (\n <button\n type=\"button\"\n onClick={() => setPasswordVisible((val) => !val)}\n >\n <Eye />\n </button>\n ) : (\n <button\n type=\"button\"\n onClick={() => setPasswordVisible((val) => !val)}\n >\n <EyeOff />\n </button>\n )\n }\n type={passwordVisible ? \"text\" : \"password\"}\n onChange={handlePaswordInputChange}\n description={!disableValidation && ValidateComp}\n {...props}\n />\n );\n};\n\nPasswordInput.displayName = \"PasswordInput\";\n\nexport { PasswordInput };\n","export const Eye = () => {\n return (\n <svg\n width=\"18\"\n height=\"14\"\n viewBox=\"0 0 18 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.54639 7.26103C1.48389 7.09264 1.48389 6.90741 1.54639 6.73903C2.15517 5.26292 3.18853 4.00081 4.51547 3.1127C5.84241 2.22459 7.40317 1.75049 8.99989 1.75049C10.5966 1.75049 12.1574 2.22459 13.4843 3.1127C14.8113 4.00081 15.8446 5.26292 16.4534 6.73903C16.5159 6.90741 16.5159 7.09264 16.4534 7.26103C15.8446 8.73713 14.8113 9.99925 13.4843 10.8874C12.1574 11.7755 10.5966 12.2496 8.99989 12.2496C7.40317 12.2496 5.84241 11.7755 4.51547 10.8874C3.18853 9.99925 2.15517 8.73713 1.54639 7.26103Z\"\n stroke=\"#8E98A8\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M9 9.25C10.2426 9.25 11.25 8.24264 11.25 7C11.25 5.75736 10.2426 4.75 9 4.75C7.75736 4.75 6.75 5.75736 6.75 7C6.75 8.24264 7.75736 9.25 9 9.25Z\"\n stroke=\"#8E98A8\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","export const EyeOff = () => {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.08759 12.69C3.26171 11.9072 2.61006 10.9591 2.17509 9.90752C2.10081 9.73454 2.0625 9.54826 2.0625 9.36001C2.0625 9.17177 2.10081 8.98549 2.17509 8.81252C2.75274 7.4073 3.72095 6.19704 4.96509 5.32502C6.14597 4.4998 7.55989 4.07405 9.00009 4.11002C10.0363 4.084 11.064 4.30239 12.0001 4.74752M13.9201 6.03752C14.7415 6.81964 15.3904 7.76486 15.8251 8.81252C15.8994 8.98549 15.9377 9.17177 15.9377 9.36001C15.9377 9.54826 15.8994 9.73454 15.8251 9.90752C15.2474 11.3127 14.2792 12.523 13.0351 13.395C11.8542 14.2202 10.4403 14.646 9.00009 14.61C7.9639 14.636 6.93616 14.4176 6.00009 13.9725\"\n stroke=\"#8E98A8\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6.5325 10.2375C6.42732 9.95694 6.37395 9.65962 6.375 9.36C6.375 8.66381 6.65156 7.99613 7.14384 7.50384C7.63613 7.01156 8.30381 6.735 9 6.735C9.3 6.7335 9.597 6.7875 9.8775 6.8925M11.4675 8.4825C11.5725 8.763 11.6265 9.06 11.625 9.36C11.625 10.0562 11.3484 10.7239 10.8562 11.2162C10.3639 11.7084 9.69619 11.985 9 11.985C8.70038 11.986 8.40306 11.9327 8.1225 11.8275M2.25 15L14.25 3\"\n stroke=\"#8E98A8\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","export const Check = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.89802 2.93408L9.70202 3.49808L6.21602 8.52608H5.41202L3.46802 5.80208L4.27202 5.05208L5.81402 6.49208L8.89802 2.93408Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n","export const Fail = () => {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.37891 8.62142L6.00041 5.99992L8.62191 8.62142M8.62191 3.37842L5.99991 5.99992L3.37891 3.37842\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { inputContainerVariants } from \"../input\";\nimport { DetailedHTMLProps } from \"react\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst textareaContainerVariants = cva(\n \"flex relative min-h-[80px] w-full rounded-[8px] border transition px-3 py-2 text-base placeholder:text-[#79818C] focus-within:outline-0 focus-within:ring-0 focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n status: {\n default:\n \"border-[#D7D7D7] dark:border-[#676767] bg-white text-[#191919] dark:!bg-transparent caret-primary-main focus-within:bg-white dark:focus-within:!bg-transparent dark:text-white focus-within:border-primary-main dark:focus-within:border-[#9299A2] dark:border-[#9299A2] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-status-error-fill bg-status-error-bg border-status-error-fill dark:!bg-status-error-bg-dark text-status-error-fill focus-within:bg-status-error-bg focus-within:border-status-error-fill\",\n loading: \"placeholder:text-[#C4C4C4]\",\n prefilled:\n \"resize-none bg-[#F6F6F6] border-[#D7D7D7] dark:!bg-transparent caret-[#D7D7D7] focus-within:bg-[#F6F6F6] focus-within:border-[#D7D7D7] dark:!border-[#9299A2] dark:focus-within:border-[#9299A2]\",\n neutral: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\nexport interface TextareaProps\n extends DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n >,\n VariantProps<typeof inputContainerVariants> {\n isLoading?: boolean;\n error?: string;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n}\n\nconst Textarea = ({\n className,\n status = \"default\",\n disabled,\n error,\n isLoading,\n showAsterisk,\n label,\n description,\n ...props\n}: TextareaProps) => {\n let containerStatus: VariantProps<\n typeof textareaContainerVariants\n >[\"status\"] = status;\n\n if (error) containerStatus = \"error\";\n if (isLoading) containerStatus = \"loading\";\n if (disabled) containerStatus = \"prefilled\";\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <textarea\n className={cn(\n \"min-h-[80px]\",\n inputContainerVariants({ status: containerStatus }),\n className,\n )}\n disabled={isLoading || disabled}\n {...props}\n />\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","(\"use client\");\n\nimport * as React from \"react\";\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\nimport { cn } from \"@/src/utils\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { VariantProps } from \"class-variance-authority\";\nimport { inputContainerVariants } from \"../input\";\n\ntype SearchableDataType = {\n value: string;\n label: string;\n} & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any; // Allows for additional properties\n};\n\ninterface SearchableProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n options: SearchableDataType[] | [];\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n onValueChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface SearchableTriggerProps\n extends VariantProps<typeof inputContainerVariants> {\n disabled?: boolean;\n placeholder?: string;\n value?: string;\n className?: string;\n}\n\nconst SearchableTrigger = ({\n className,\n value,\n placeholder = \"\",\n status,\n disabled,\n}: SearchableTriggerProps) => {\n return (\n <PopoverTrigger asChild disabled={disabled}>\n <button\n disabled={disabled}\n className={cn(\n inputContainerVariants({ status }),\n \"[&>span]:justify-start [&>span]:items-center gap-2 flex h-12 w-full items-center justify-between goup\",\n value ? \"\" : \"text-[#79818C]\",\n className,\n )}\n >\n {value ?? placeholder ?? \"Select options...\"}\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n className=\" data-[state=open]:goup-rotate-180\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverTrigger>\n );\n};\n\nconst Searchable = ({\n options = [],\n value,\n onChange,\n containerClassName,\n placeholder,\n disabled,\n loading,\n optionComponent,\n children,\n modal = false,\n hideSearch,\n className,\n inputValue,\n onValueChange,\n onInputValueChange,\n}: SearchableProps) => {\n const [open, setOpen] = React.useState(false);\n\n const triggerRef = React.useRef<HTMLDivElement | null>(null);\n\n const [width, setWidth] = React.useState<number | undefined>(undefined);\n\n React.useLayoutEffect(() => {\n if (triggerRef.current) {\n setWidth(triggerRef.current.clientWidth);\n }\n }, [triggerRef.current]);\n\n return (\n <PopoverRoot modal={modal} open={open} onOpenChange={setOpen}>\n <div className={cn(\"w-full\", className)} ref={triggerRef}>\n {children}\n </div>\n <PopoverContent\n portal={!modal}\n className=\"p-0 min-w-[200px]\"\n style={{ width }}\n >\n <Command\n className={cn(\"relative max-h-[270px]\", {\n \"mt-2\": !hideSearch,\n })}\n >\n {!hideSearch && (\n <CommandInput\n loading={loading}\n placeholder={placeholder ?? \"Search options...\"}\n onValueChange={onInputValueChange}\n value={inputValue}\n CommandInputContainerClassName=\"mx-2 border rounded-md border-[#DEDEDE]\"\n />\n )}\n <ScrollArea\n viewPortClassName=\"max-h-[225px]\"\n className={cn(\n \"w-full px-0 h-full overflow-y-auto\",\n containerClassName,\n )}\n >\n <CommandList>\n {!hideSearch && <CommandEmpty>No result found.</CommandEmpty>}\n <CommandGroup className=\"w-full\">\n {options?.map((option) => (\n <CommandItem\n defaultValue={value?.label}\n key={option.value}\n value={option.label}\n disabled={disabled}\n onSelect={() => {\n onChange(option);\n setOpen(false);\n onValueChange?.(option?.value);\n }}\n >\n {!optionComponent ? option.label : optionComponent(option)}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </ScrollArea>\n </Command>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nexport { Searchable, SearchableTrigger };\n\nexport type { SearchableProps, SearchableTriggerProps, SearchableDataType };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"@/src/utils\";\nimport { Dialog, DialogContent } from \"@/src/components/dialog\";\nimport { Loader } from \"../loader\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {\n trigger?: React.ReactNode;\n}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props} trigger={props?.trigger ?? <></>}>\n <DialogContent className=\"overflow-hidden p-0\">\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\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\ninterface CommandInputProps\n extends React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> {\n CommandInputContainerClassName?: string;\n loading?: boolean;\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n CommandInputProps\n>(({ className, CommandInputContainerClassName, loading, ...props }, ref) => (\n <div\n className={cn(\n \"flex items-center border-0 px-3 gap-2\",\n CommandInputContainerClassName,\n )}\n cmdk-input-wrapper=\"\"\n >\n {loading ? (\n <Loader size={16} colour=\"secondary\" />\n ) : (\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n )}\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n disabled={loading}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\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\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative text=[#222222] 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-primary-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\n\nimport { cn } from \"@/src/utils\";\nimport { CloseIcon } from \"./icon/CloseIcon\";\n\nconst DialogRoot = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n hideCloseButton?: boolean;\n }\n>(({ className, hideCloseButton, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-transparent bg-white 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%] rounded-lg max-h-[95%] overflow-y-auto\",\n className,\n )}\n {...props}\n >\n {children}\n {!hideCloseButton && (\n <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\">\n <CloseIcon />\n\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col space-y-1.5 text-left\", className)}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-row justify-end sm:space-x-2\", className)}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-gray-500\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport type DialogPropsType = {\n trigger?: React.ReactNode;\n children: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n footer?: React.ReactNode;\n hideCloseButton?: boolean;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n asChild?: boolean;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n onInteractOutside?: (e: Event) => void;\n onPointerDownOutside?: (e: Event) => void;\n onEscapeKeyDown?: (e: KeyboardEvent) => void;\n};\n\nconst Dialog = ({\n trigger = undefined,\n children,\n open,\n onOpenChange,\n hideCloseButton,\n footer,\n title,\n description,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n asChild = true,\n onOpenAutoFocus,\n onCloseAutoFocus,\n onEscapeKeyDown,\n onInteractOutside,\n onPointerDownOutside,\n ...props\n}: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> &\n DialogPropsType) => {\n return (\n <DialogRoot {...props} open={open} onOpenChange={onOpenChange}>\n <DialogTrigger asChild={asChild}>{trigger}</DialogTrigger>\n <DialogPortal>\n <DialogContent\n className={contentClassName}\n hideCloseButton={hideCloseButton}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onInteractOutside={onInteractOutside}\n >\n {title || description ? (\n <DialogHeader className={headerClassName}>\n {title && (\n <DialogTitle className={titleClassName}>{title}</DialogTitle>\n )}\n {description && (\n <DialogDescription className={descriptionClassName}>\n {description}\n </DialogDescription>\n )}\n </DialogHeader>\n ) : (\n <></>\n )}\n {children}\n {footer && (\n <DialogFooter className={footerClassName}>{footer}</DialogFooter>\n )}\n </DialogContent>\n </DialogPortal>\n </DialogRoot>\n );\n};\nDialog.displayName = DialogPrimitive.Dialog.displayName;\n\nexport { Dialog, DialogRoot, DialogContent };\n","export const CloseIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from \"@/src/utils\";\n\nconst PopoverRoot = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n portal?: boolean;\n }\n>(\n (\n { className, align = \"center\", sideOffset = 4, portal = true, ...props },\n ref,\n ) =>\n portal ? (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"pointer-events-auto z-50 w-72 rounded-md border border-transparent bg-white p-4 text-[#191919] 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\",\n className,\n )}\n onOpenAutoFocus={props.onOpenAutoFocus}\n onCloseAutoFocus={props.onCloseAutoFocus}\n {...props}\n />\n </PopoverPrimitive.Portal>\n ) : (\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"pointer-events-auto z-50 w-72 rounded-md border border-transparent bg-white p-4 text-[#191919] 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\",\n className,\n )}\n onOpenAutoFocus={props.onOpenAutoFocus}\n onCloseAutoFocus={props.onCloseAutoFocus}\n {...props}\n />\n ),\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport type PopoverPropsType = {\n trigger: React.ReactNode;\n children: React.ReactNode;\n contentClassName?: string;\n triggerClassName?: string;\n asChild?: boolean;\n align?: PopoverPrimitive.PopoverContentProps[\"align\"];\n side?: PopoverPrimitive.PopoverContentProps[\"side\"];\n alignOffset?: number | undefined;\n sideOffset?: number | undefined;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n portal?: boolean;\n};\n\nconst Popover = ({\n trigger,\n children,\n open,\n onOpenChange,\n contentClassName,\n asChild = true,\n align,\n side,\n alignOffset,\n triggerClassName,\n sideOffset,\n onOpenAutoFocus,\n onCloseAutoFocus,\n portal = true,\n ...props\n}: React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root> &\n PopoverPropsType) => {\n return (\n <PopoverRoot {...props} open={open} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild={asChild} className={triggerClassName}>\n {trigger}\n </PopoverTrigger>\n <PopoverContent\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n side={side}\n align={align}\n className={contentClassName}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n portal={portal}\n >\n {children}\n </PopoverContent>\n </PopoverRoot>\n );\n};\nPopover.displayName = PopoverPrimitive.Root.displayName;\n\nexport { Popover, PopoverRoot, PopoverTrigger, PopoverContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/src/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {\n viewPortClassName?: string;\n }\n>(({ className, viewPortClassName, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n className={cn(\"h-full w-full rounded-[inherit]\", viewPortClassName)}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-[#959595] transition hover:bg-[#808080]\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","export const countryData = [\n {\n countryCode: \"GLOBAL\",\n countryName: \"Global\",\n currency: \"Dollars\",\n currencyCode: \"USD\",\n internetCountryCode: \"GLOBAL\",\n },\n {\n countryName: \"Benin\",\n countryCode: \"+229\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"BJ\",\n },\n {\n countryName: \"Burkina Faso\",\n countryCode: \"+226\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"BF\",\n },\n {\n countryName: \"Cameroon\",\n countryCode: \"+237\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CM\",\n },\n {\n countryName: \"Chad\",\n countryCode: \"+235\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"TD\",\n },\n {\n countryName: \"DR Congo\",\n countryCode: \"+243\",\n currency: \"Congolese franc\",\n currencyCode: \"CDF\",\n currencyIcon: \"FC\",\n internetCountryCode: \"CD\",\n },\n {\n countryName: \"Eswatini\",\n countryCode: \"+268\",\n currency: \"Swazi lilangeni\",\n currencyCode: \"SZL\",\n currencyIcon: \"L\",\n internetCountryCode: \"SZ\",\n },\n {\n countryName: \"Gabon\",\n countryCode: \"+241\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"GA\",\n },\n {\n countryName: \"Ghana\",\n countryCode: \"+233\",\n currency: \"Ghanaian cedi\",\n currencyCode: \"GHS\",\n currencyIcon: \"₵\",\n internetCountryCode: \"GH\",\n },\n {\n countryName: \"Guinea\",\n countryCode: \"+224\",\n currency: \"Guinean franc\",\n currencyCode: \"GNF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"GN\",\n },\n {\n countryName: \"Ivory Coast\",\n countryCode: \"+225\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CI\",\n },\n {\n countryName: \"Kenya\",\n countryCode: \"+254\",\n currency: \"Kenyan shilling\",\n currencyCode: \"KES\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"KE\",\n },\n {\n countryName: \"Lesotho\",\n countryCode: \"+266\",\n currency: \"Lesotho loti\",\n currencyCode: \"LSL\",\n currencyIcon: \"L\",\n internetCountryCode: \"LS\",\n },\n {\n countryName: \"Liberia\",\n countryCode: \"+231\",\n currency: \"Liberian dollar\",\n currencyCode: \"LRD\",\n currencyIcon: \"$\",\n internetCountryCode: \"LR\",\n },\n {\n countryName: \"Madagascar\",\n countryCode: \"+261\",\n currency: \"Malagasy ariary\",\n currencyCode: \"MGA\",\n currencyIcon: \"Ar\",\n internetCountryCode: \"MG\",\n },\n {\n countryName: \"Malawi\",\n countryCode: \"+265\",\n currency: \"Malawian kwacha\",\n currencyCode: \"MWK\",\n currencyIcon: \"MK\",\n internetCountryCode: \"MW\",\n },\n {\n countryName: \"Mali\",\n countryCode: \"+223\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"ML\",\n },\n {\n countryName: \"Mozambique\",\n countryCode: \"+258\",\n currency: \"Mozambican metical\",\n currencyCode: \"MZN\",\n currencyIcon: \"MT\",\n internetCountryCode: \"MZ\",\n },\n {\n countryName: \"Namibia\",\n countryCode: \"+264\",\n currency: \"Namibian dollar\",\n currencyCode: \"NAD\",\n currencyIcon: \"$\",\n internetCountryCode: \"NA\",\n },\n {\n countryName: \"Niger\",\n countryCode: \"+227\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"NE\",\n },\n {\n countryName: \"Nigeria\",\n countryCode: \"+234\",\n currency: \"Nigerian naira\",\n currencyCode: \"NGN\",\n currencyIcon: \"₦\",\n internetCountryCode: \"NG\",\n },\n {\n countryName: \"Republic of the Congo\",\n countryCode: \"+242\",\n currency: \"Central African CFA franc\",\n currencyCode: \"XAF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"CG\",\n },\n {\n countryName: \"Rwanda\",\n countryCode: \"+250\",\n currency: \"Rwandan franc\",\n currencyCode: \"RWF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"RW\",\n },\n {\n countryName: \"Senegal\",\n countryCode: \"+221\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"SN\",\n },\n {\n countryName: \"Seychelles\",\n countryCode: \"+248\",\n currency: \"Seychellois rupee\",\n currencyCode: \"SCR\",\n currencyIcon: \"₨\",\n internetCountryCode: \"SC\",\n },\n {\n countryName: \"South Africa\",\n countryCode: \"+27\",\n currency: \"South African rand\",\n currencyCode: \"ZAR\",\n currencyIcon: \"R\",\n internetCountryCode: \"ZA\",\n },\n {\n countryName: \"South Sudan\",\n countryCode: \"+211\",\n currency: \"South Sudanese pound\",\n currencyCode: \"SSP\",\n currencyIcon: \"£\",\n internetCountryCode: \"SS\",\n },\n {\n countryName: \"Tanzania\",\n countryCode: \"+255\",\n currency: \"Tanzanian shilling\",\n currencyCode: \"TZS\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"TZ\",\n },\n {\n countryName: \"Togo\",\n countryCode: \"+228\",\n currency: \"West African CFA franc\",\n currencyCode: \"XOF\",\n currencyIcon: \"Fr\",\n internetCountryCode: \"TG\",\n },\n {\n countryName: \"Uganda\",\n countryCode: \"+256\",\n currency: \"Ugandan shilling\",\n currencyCode: \"UGX\",\n currencyIcon: \"Sh\",\n internetCountryCode: \"UG\",\n },\n {\n countryName: \"Zambia\",\n countryCode: \"+260\",\n currency: \"Zambian kwacha\",\n currencyCode: \"ZMW\",\n currencyIcon: \"ZK\",\n internetCountryCode: \"ZM\",\n },\n];\n\nexport const getCountryDataMap = () => {\n const frequency = {} as Record<string, string>;\n\n countryData?.forEach((country) => {\n frequency[country?.internetCountryCode] = country?.countryName;\n });\n\n return frequency;\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport * as RPNInput from \"react-phone-number-input\";\n\nimport flags from \"react-phone-number-input/flags\";\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command\";\nimport { Input, InputProps, inputContainerVariants } from \"../input\";\nimport { PopoverRoot, PopoverContent, PopoverTrigger } from \"../popover\";\n\nimport { cn } from \"@/src/utils\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { VariantProps } from \"class-variance-authority\";\nimport FlatGlobeIcon from \"./Flag\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\nexport type PhoneInputValue = RPNInput.Value;\n\nexport type PhoneInputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"value\"\n> &\n Omit<RPNInput.Props<typeof RPNInput.default>, \"onChange\"> & {\n onChange?: (value: RPNInput.Value) => void;\n } & {\n status?: VariantProps<typeof inputContainerVariants>[\"status\"];\n defaultCountry?: RPNInput.Country;\n modal?: boolean;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n };\n\nconst PhoneInput: React.ForwardRefExoticComponent<PhoneInputProps> =\n React.forwardRef<React.ElementRef<typeof RPNInput.default>, PhoneInputProps>(\n (\n {\n className,\n onChange,\n defaultCountry = \"NG\",\n modal,\n showAsterisk,\n label,\n description,\n error,\n ...props\n },\n ref,\n ) => {\n /**\n * did this so I can pass the status prop to the country\n * select so I can change the appearance based on the status\n */\n const CountrySelectWrapper = (innerProps: CountrySelectProps) => {\n return (\n <CountrySelect {...innerProps} status={props.status} modal={modal} />\n );\n };\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <RPNInput.default\n ref={ref}\n className={cn(\"flex\", className)}\n flagComponent={FlagComponent}\n countrySelectComponent={CountrySelectWrapper}\n inputComponent={InputComponent}\n defaultCountry={defaultCountry}\n /**\n * Handles the onChange event.\n *\n * react-phone-number-input might trigger the onChange event as undefined\n * when a valid phone number is not entered. To prevent this,\n * the value is coerced to an empty string.\n *\n * @param {E164Number | undefined} value - The entered value\n */\n onChange={(value) => {\n if (onChange) {\n onChange?.(value as RPNInput.Value);\n }\n }}\n {...props}\n />\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n },\n );\nPhoneInput.displayName = \"PhoneInput\";\n\nconst InputComponent = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n className={cn(\"!rounded-s-none h-10\", className)}\n {...props}\n ref={ref}\n />\n );\n },\n);\nInputComponent.displayName = \"InputComponent\";\n\ntype CountrySelectOption = { label: string; value: RPNInput.Country };\n\ntype CountrySelectProps = {\n disabled?: boolean;\n modal?: boolean;\n value: RPNInput.Country;\n onChange: (value: RPNInput.Country) => void;\n options: CountrySelectOption[];\n status?: VariantProps<typeof inputContainerVariants>[\"status\"];\n};\n\nconst CountrySelect = ({\n disabled,\n value,\n onChange,\n options,\n status,\n modal,\n}: CountrySelectProps) => {\n const handleSelect = React.useCallback(\n (country: RPNInput.Country) => {\n onChange(country);\n },\n [onChange],\n );\n\n return (\n <PopoverRoot modal={modal}>\n <PopoverTrigger disabled={disabled}>\n <div\n className={cn(\n inputContainerVariants({ status }),\n \"transition justify-center items-center disabled:text-base-500 flex gap-3 h-10 rounded-e-none border-e-0 pl-2 pr-2\",\n )}\n >\n <FlagComponent country={value} countryName={value} />\n <svg\n className={cn(\n \"mr-0.5 h-4 w-4 opacity-50\",\n disabled ? \"hidden\" : \"opacity-100\",\n )}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"#959595\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </PopoverTrigger>\n <PopoverContent portal={!modal} className=\"w-[200px] md:w-[300px] p-0\">\n <Command>\n <CommandList>\n <ScrollArea className=\"h-72\">\n <CommandInput placeholder=\"Search country...\" />\n <CommandEmpty>No country found.</CommandEmpty>\n <CommandGroup>\n {options\n .filter((x) => x.value)\n .map((option) => (\n <CommandItem\n className=\"gap-2\"\n key={`${option.value}-${option.label}`}\n onSelect={() => handleSelect(option.value)}\n >\n <FlagComponent\n country={option.value}\n countryName={option.label}\n />\n <span className=\"flex-1 text-sm\">{option.label}</span>\n {option.value && (\n <span className=\"text-[#191919]/50 text-sm dark:text-white\">\n {`+${RPNInput.getCountryCallingCode(option.value)}`}\n </span>\n )}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n \"ml-auto\",\n option.value === value ? \"opacity-100\" : \"opacity-0\",\n )}\n >\n <path\n d=\"M4 8.00008L6.66353 10.6636L12 5.33655\"\n stroke=\"#959595\"\n strokeWidth=\"1.06667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </CommandItem>\n ))}\n </CommandGroup>\n </ScrollArea>\n </CommandList>\n </Command>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\ntype FlagComponentProps = RPNInput.FlagProps & {\n className?: string;\n};\n\nconst FlagComponent = ({\n country,\n countryName,\n className,\n}: FlagComponentProps) => {\n const Flag = flags[country];\n\n if (country === (\"GLOBAL\" as unknown))\n return (\n <span\n className={cn(\n \"bg-white/20 flex h-4 w-6 overflow-hidden rounded-sm\",\n className,\n )}\n >\n <FlatGlobeIcon className=\"w-full h-[90%]\" />\n </span>\n );\n\n return (\n <span\n className={cn(\n \"bg-white/20 flex h-4 w-6 overflow-hidden rounded-sm\",\n className,\n )}\n >\n {Flag && <Flag title={countryName} />}\n </span>\n );\n};\nFlagComponent.displayName = \"FlagComponent\";\n\nexport { PhoneInput, FlagComponent };\n","// import React from 'react'\n\n// export const Flag = () => {\n// return (\n// <div>Flag</div>\n// )\n// }\n\nimport type React from \"react\";\n\nconst FlatGlobeIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n {...props}\n >\n <rect width=\"32\" height=\"32\" fill=\"#60A5FA\" /> {/* Ocean color */}\n {/* Continents */}\n <path\n d=\"M3 10L7 8L10 9L13 8L16 10L19 9L22 11L25 10L28 12V15L26 17L28 19L27 22L29 24L27 26L24 25L21 26L18 24L15 25L12 23L9 24L6 22L4 23L2 21V18L4 16L3 13L5 11L3 10Z\"\n fill=\"#34D399\"\n />\n {/* Antarctica */}\n <rect x=\"2\" y=\"28\" width=\"28\" height=\"3\" fill=\"#D1D5DB\" />\n {/* Grid lines */}\n <path\n d=\"M0 16H32M8 0V32M16 0V32M24 0V32\"\n stroke=\"#2563EB\"\n strokeWidth=\"0.5\"\n vectorEffect=\"non-scaling-stroke\"\n />\n {/* Equator */}\n <path\n d=\"M0 16H32\"\n stroke=\"#2563EB\"\n strokeWidth=\"1\"\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n );\n};\n\nexport default FlatGlobeIcon;\n","import { inputContainerVariants } from \"../input\";\nimport { Searchable, SearchableDataType } from \"../searcheable\";\nimport { VariantProps } from \"class-variance-authority\";\nimport { countryData, getCountryDataMap } from \"./data\";\nimport { PopoverTrigger } from \"../popover\";\nimport { cn } from \"@/src/utils\";\nimport { FlagComponent } from \"../phone-input\";\nimport { Country as CountryCode } from \"react-phone-number-input\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { ErrorMessage } from \"../form/ErrorMessage\";\n\ntype CountryPropsStatus = VariantProps<typeof inputContainerVariants>[\"status\"];\n\ninterface CountryProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n status?: CountryPropsStatus;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n}\n\ninterface CountryTriggerProps\n extends VariantProps<typeof inputContainerVariants> {\n disabled?: boolean;\n placeholder?: string;\n value?: string;\n className?: string;\n}\n\nconst countryMap = getCountryDataMap();\n\nconst CountryTrigger = ({\n className,\n value,\n placeholder = \"\",\n status,\n disabled,\n}: CountryTriggerProps) => {\n return (\n <PopoverTrigger asChild disabled={disabled}>\n <button\n disabled={disabled}\n className={cn(\n inputContainerVariants({ status }),\n \"[&>span]:justify-start [&>span]:items-center gap-2 flex w-full items-center justify-between goup\",\n value ? \"\" : \"text-[#79818C]\",\n className,\n )}\n >\n {value ? (\n <div className=\"flex gap-2 items-center\">\n <FlagComponent\n country={value as CountryCode}\n countryName={value}\n className=\"ml-1 !w-6 h-5\"\n />\n <span className=\"\"> {countryMap[value]}</span>\n </div>\n ) : (\n (placeholder ?? \"Select options...\")\n )}\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n className=\" data-[state=open]:goup-rotate-180\"\n >\n <path\n d=\"M16.5999 7.45825L11.1666 12.8916C10.5249 13.5333 9.4749 13.5333 8.83324 12.8916L3.3999 7.45825\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeMiterlimit=\"10\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverTrigger>\n );\n};\n\nconst Country = ({\n hideSearch = true,\n showAsterisk,\n label,\n description,\n error,\n ...props\n}: CountryProps) => {\n const options = countryData?.map((country) => ({\n value: country?.internetCountryCode,\n label: country?.countryName,\n ...country,\n }));\n\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <Searchable\n options={options}\n hideSearch={hideSearch}\n optionComponent={(arg) => {\n return (\n <div className=\"w-full flex items-center gap-2\">\n <FlagComponent\n country={arg?.internetCountryCode}\n countryName={arg?.label}\n className=\"ml-2 !w-6 !h-5\"\n />\n <span className=\"flex-1 text-sm\">{arg?.label}</span>\n </div>\n );\n }}\n {...props}\n >\n <CountryTrigger\n value={props?.value?.value}\n status={props?.status}\n placeholder={props?.placeholder ?? \" Select Country\"}\n />\n </Searchable>\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nexport { Country };\nexport type { CountryProps };\n\n//Todo -\n// dataSource - array of countries\n// availableCountries - countries to be filtered by countryCode\n","import { ErrorMessage } from \"../form/ErrorMessage\";\nimport { FormDescription } from \"../form/FormDescription\";\nimport { inputContainerVariants } from \"../input\";\nimport { FormLabel } from \"../label/FormLabel\";\nimport {\n Searchable,\n SearchableDataType,\n SearchableTrigger,\n} from \"../searcheable\";\nimport { VariantProps } from \"class-variance-authority\";\n\ntype SelectPropsStatus = VariantProps<typeof inputContainerVariants>[\"status\"];\n\ninterface SelectProps {\n modal?: boolean;\n hideSearch?: boolean;\n loading?: boolean;\n inputValue?: string;\n onInputValueChange?: (arg: string) => void;\n disabled?: boolean;\n placeholder?: string;\n value?: SearchableDataType;\n options: SearchableDataType[];\n optionComponent?: (arg: SearchableDataType) => React.ReactNode;\n className?: string;\n containerClassName?: string;\n onChange: (value: SearchableDataType) => void;\n status?: SelectPropsStatus;\n label?: string;\n showAsterisk?: boolean;\n description?: React.ReactNode;\n error?: string;\n}\n\nconst Select = ({\n showAsterisk,\n label,\n description,\n error,\n hideSearch = true,\n status,\n ...props\n}: SelectProps) => {\n return (\n <div className=\"relative space-y-1\">\n <FormLabel showAsterisk={showAsterisk} error={error}>\n {label}\n </FormLabel>\n <Searchable\n hideSearch={hideSearch}\n {...props}\n containerClassName=\"h-full\"\n >\n <SearchableTrigger\n disabled={props?.disabled}\n placeholder={props?.placeholder ?? \"Select\"}\n status={status}\n value={props?.value?.label ?? props?.value?.value}\n />\n </Searchable>\n <FormDescription className=\"text-gray-400 text-sm !font-normal\">\n {description}\n </FormDescription>\n <ErrorMessage error={error} />\n </div>\n );\n};\n\nexport { Select };\nexport type { SelectProps };\n\n//Todo\n// onchange value\n","import OtpInput, { OTPInputProps as InputProps } from \"react-otp-input\";\nimport { cn } from \"@/src/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { useMemo } from \"react\";\n\nconst otpInputVariants = cva(\n \"transition cursor-default placeholder:text-black dark:placeholder:text-white rounded-lg !h-14 !w-14 border aspect-square text-base font-semibold tracking-normal outline-none placeholder:text-sm placeholder:font-normal text-black focus:bg-white\",\n {\n variants: {\n status: {\n default:\n \"border-gray-300 dark:border-[#d4d4d4] focus:border-gray-400 focus-visible:!ring-offset-gray-200 focus:ring-offset-gray-200 !ring-gray-200 !focus-visible:ring-1 bg-white dark:!bg-transparent dark:focus-visible:!ring-0 dark:focus-within:!bg-transparent dark:text-white dark:focus-within:border-[#9299A2] dark:border-[#676767] dark:disabled:!border-[#9299A2]\",\n error:\n \"placeholder:text-red-600 bg-red-50 border-red-600 text-red-600 focus-within:bg-red-50 focus-within:border-red-600\",\n loading: \"placeholder:text-[#C4C4C4]\",\n },\n },\n defaultVariants: {\n status: \"default\",\n },\n },\n);\n\ntype DefailtInputProps = Omit<InputProps, \"renderInput\">;\n\nexport type OTPInputProps = DefailtInputProps &\n VariantProps<typeof otpInputVariants> & {};\n\nexport const OTPInput = ({\n numInputs = 4,\n inputStyle,\n containerStyle,\n placeholder = \"-\",\n status,\n ...props\n}: OTPInputProps) => {\n const placeholderValue = useMemo(() => {\n if (placeholder) return placeholder;\n\n const numInputArr = new Array<string>(numInputs).fill(\"\");\n const result = numInputArr.reduce((accumulator, currentValue) => {\n return (accumulator += currentValue);\n }, \"\");\n\n return result;\n }, [numInputs, placeholder]);\n\n return (\n <OtpInput\n numInputs={numInputs}\n placeholder={placeholderValue}\n containerStyle={cn(\"w-full\", containerStyle)}\n inputStyle={cn(otpInputVariants({ status }), inputStyle)}\n renderInput={(props) => <input {...props} />}\n {...props}\n />\n );\n};\n","import { useState, useEffect } from \"react\";\n\ninterface BannerTypes {\n type?: \"gray\" | \"info\" | \"warning\" | \"success\" | \"danger\";\n}\n\ninterface BannerProps extends BannerTypes {\n title?: React.ReactNode;\n description?: React.ReactNode;\n showIcon?: boolean;\n showCloseButton?: boolean;\n bottomNode?: React.ReactNode;\n sideNode?: React.ReactNode;\n open: boolean;\n onClose?: () => void;\n}\n\nconst Icon = ({ type }: BannerTypes) => {\n if (type === \"gray\") {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 0C4.49 0 0 4.49 0 10C0 15.51 4.49 20 10 20C15.51 20 20 15.51 20 10C20 4.49 15.51 0 10 0ZM14.78 7.7L9.11 13.37C8.97 13.51 8.78 13.59 8.58 13.59C8.38 13.59 8.19 13.51 8.05 13.37L5.22 10.54C4.93 10.25 4.93 9.77 5.22 9.48C5.51 9.19 5.99 9.19 6.28 9.48L8.58 11.78L13.72 6.64C14.01 6.35 14.49 6.35 14.78 6.64C15.07 6.93 15.07 7.4 14.78 7.7Z\"\n fill=\"#79818C\"\n />\n </svg>\n );\n } else if (type === \"info\") {\n return (\n <svg\n stroke=\"#70B6F6\"\n fill=\"#70B6F6\"\n stroke-width=\"0\"\n viewBox=\"0 0 16 16\"\n height=\"24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2\"></path>\n </svg>\n );\n } else if (type === \"warning\") {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.99984 1.66663C5.40817 1.66663 1.6665 5.40829 1.6665 9.99996C1.6665 14.5916 5.40817 18.3333 9.99984 18.3333C14.5915 18.3333 18.3332 14.5916 18.3332 9.99996C18.3332 5.40829 14.5915 1.66663 9.99984 1.66663ZM9.37484 6.66663C9.37484 6.32496 9.65817 6.04163 9.99984 6.04163C10.3415 6.04163 10.6248 6.32496 10.6248 6.66663V10.8333C10.6248 11.175 10.3415 11.4583 9.99984 11.4583C9.65817 11.4583 9.37484 11.175 9.37484 10.8333V6.66663ZM10.7665 13.65C10.7248 13.7583 10.6665 13.8416 10.5915 13.925C10.5082 14 10.4165 14.0583 10.3165 14.1C10.2165 14.1416 10.1082 14.1666 9.99984 14.1666C9.8915 14.1666 9.78317 14.1416 9.68317 14.1C9.58317 14.0583 9.4915 14 9.40817 13.925C9.33317 13.8416 9.27484 13.7583 9.23317 13.65C9.1915 13.55 9.1665 13.4416 9.1665 13.3333C9.1665 13.225 9.1915 13.1166 9.23317 13.0166C9.27484 12.9166 9.33317 12.825 9.40817 12.7416C9.4915 12.6666 9.58317 12.6083 9.68317 12.5666C9.88317 12.4833 10.1165 12.4833 10.3165 12.5666C10.4165 12.6083 10.5082 12.6666 10.5915 12.7416C10.6665 12.825 10.7248 12.9166 10.7665 13.0166C10.8082 13.1166 10.8332 13.225 10.8332 13.3333C10.8332 13.4416 10.8082 13.55 10.7665 13.65Z\"\n fill=\"#FFC700\"\n />\n </svg>\n );\n } else if (type === \"success\") {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 2C6.49 2 2 6.49 2 12C2 17.51 6.49 22 12 22C17.51 22 22 17.51 22 12C22 6.49 17.51 2 12 2ZM16.78 9.7L11.11 15.37C10.97 15.51 10.78 15.59 10.58 15.59C10.38 15.59 10.19 15.51 10.05 15.37L7.22 12.54C6.93 12.25 6.93 11.77 7.22 11.48C7.51 11.19 7.99 11.19 8.28 11.48L10.58 13.78L15.72 8.64C16.01 8.35 16.49 8.35 16.78 8.64C17.07 8.93 17.07 9.4 16.78 9.7Z\"\n fill=\"#00D488\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.99984 1.66663C5.40817 1.66663 1.6665 5.40829 1.6665 9.99996C1.6665 14.5916 5.40817 18.3333 9.99984 18.3333C14.5915 18.3333 18.3332 14.5916 18.3332 9.99996C18.3332 5.40829 14.5915 1.66663 9.99984 1.66663ZM9.37484 6.66663C9.37484 6.32496 9.65817 6.04163 9.99984 6.04163C10.3415 6.04163 10.6248 6.32496 10.6248 6.66663V10.8333C10.6248 11.175 10.3415 11.4583 9.99984 11.4583C9.65817 11.4583 9.37484 11.175 9.37484 10.8333V6.66663ZM10.7665 13.65C10.7248 13.7583 10.6665 13.8416 10.5915 13.925C10.5082 14 10.4165 14.0583 10.3165 14.1C10.2165 14.1416 10.1082 14.1666 9.99984 14.1666C9.8915 14.1666 9.78317 14.1416 9.68317 14.1C9.58317 14.0583 9.4915 14 9.40817 13.925C9.33317 13.8416 9.27484 13.7583 9.23317 13.65C9.1915 13.55 9.1665 13.4416 9.1665 13.3333C9.1665 13.225 9.1915 13.1166 9.23317 13.0166C9.27484 12.9166 9.33317 12.825 9.40817 12.7416C9.4915 12.6666 9.58317 12.6083 9.68317 12.5666C9.88317 12.4833 10.1165 12.4833 10.3165 12.5666C10.4165 12.6083 10.5082 12.6666 10.5915 12.7416C10.6665 12.825 10.7248 12.9166 10.7665 13.0166C10.8082 13.1166 10.8332 13.225 10.8332 13.3333C10.8332 13.4416 10.8082 13.55 10.7665 13.65Z\"\n fill=\"#F04248\"\n />\n </svg>\n );\n }\n};\n\nexport const Banner = ({\n type = \"info\",\n title,\n description,\n open,\n showCloseButton,\n bottomNode,\n sideNode,\n onClose,\n showIcon = true,\n}: BannerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(open);\n\n useEffect(() => {\n setIsOpen(open);\n }, [open]);\n\n let bgColor = \"\";\n let stripeColor = \"\";\n switch (type) {\n case \"gray\":\n bgColor = \"#eeeef0\";\n stripeColor = \"#79818c\";\n break;\n case \"info\":\n bgColor = \"#ebf5fd\";\n stripeColor = \"#70B6F6\";\n break;\n case \"warning\":\n bgColor = \"#fff8df\";\n stripeColor = \"#ffc700\";\n break;\n case \"success\":\n bgColor = \"#e0f9f0\";\n stripeColor = \"#49e0aa\";\n break;\n case \"danger\":\n bgColor = \"#fde8e9\";\n stripeColor = \"#f3777c\";\n break;\n default:\n bgColor = \"#eeeef0\";\n stripeColor = \"#79818c\";\n break;\n }\n\n function handleClose() {\n setIsOpen(false);\n if (onClose) {\n onClose();\n }\n }\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <div\n className=\"w-full shadow-lg transform flex items-center rounded-md\"\n style={{\n background: bgColor || \"#ebf5fd\",\n }}\n >\n <div\n className=\"flex-none absolute rounded-l-[2px] rounded-l-4px h-[4px] w-full top-0\"\n style={{\n background: stripeColor || \"#70B6F6\",\n }}\n />\n\n <div className=\"w-full gap-3 h-full flex flex-row justify-between px-4 md:px-4 py-3 md:py-4\">\n <div className=\"flex flex-row gap-2.5 items-start w-full h-full\">\n {showIcon && (\n <div className=\"h-full flex justify-end\">\n <Icon type={type} />\n </div>\n )}\n\n <div className=\"w-full gap-3 h-full flex flex-col md:flex-row items-start justify-between\">\n <div className=\"flex-1 gap-3 h-full flex flex-col items-start justify-between\">\n {(title || description) && (\n <div>\n {title && (\n <div className=\"text-sm font-bold text-[#191919]\">\n {title}\n </div>\n )}\n {description && (\n <div className=\"text-sm font-normal text-[#5D5D5D] mt-1\">\n {description}\n </div>\n )}\n </div>\n )}\n\n {bottomNode}\n </div>\n {sideNode}\n </div>\n </div>\n\n {showCloseButton && (\n <div className=\"w-1/10 h-full flex flex-col justify-start items-center\">\n <button onClick={handleClose}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.3335 3.33337L12.6662 12.6661\"\n stroke=\"#191919\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M3.33429 12.6661L12.667 3.33337\"\n stroke=\"#191919\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import { useState } from \"react\";\nimport { Copy, CheckIcon } from \"lucide-react\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { cn } from \"@/src/utils\";\n\ninterface CopyableLabelProps {\n text: string;\n textToCopy?: string; //this is coppied to the clipboard if passed as a prop instead of the text prop passed else defaults to the text prop\n onCopy?: () => void;\n iconsPosition?: \"left\" | \"right\";\n clampText?: boolean;\n textClassName?: string;\n}\n\nconst CopyableLabel: React.FC<CopyableLabelProps> = ({\n text,\n textToCopy,\n onCopy,\n iconsPosition = \"right\",\n clampText = true,\n textClassName,\n}) => {\n const [copied, setCopied] = useState(false);\n\n const copyToClipboard = () => {\n navigator.clipboard.writeText(textToCopy ?? text).then(() => {\n setCopied(true);\n onCopy?.();\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n const Icon = copied ? CheckIcon : Copy;\n\n return (\n <div className=\"flex items-center space-x-2 cursor-pointer text-[#717171] bg-gray-100 w-fit max-w-full rounded-md p-1 px-2\">\n {iconsPosition === \"left\" && (\n <AnimatedIcon Icon={Icon} onClick={copyToClipboard} copied={copied} />\n )}\n <span\n className={cn({ \"truncate max-w-[100px]\": clampText }, textClassName)}\n >\n {text}\n </span>\n {iconsPosition === \"right\" && (\n <AnimatedIcon Icon={Icon} onClick={copyToClipboard} copied={copied} />\n )}\n </div>\n );\n};\n\nconst AnimatedIcon: React.FC<{\n Icon: React.ElementType;\n onClick: () => void;\n copied: boolean;\n}> = ({ Icon, onClick, copied }) => (\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={copied ? \"check\" : \"copy\"}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n transition={{ duration: 0.2 }}\n onClick={onClick}\n >\n <Icon\n className={`w-5 h-5 ${copied ? \"text-green-500\" : \"text-gray-500 hover:text-gray-700 transition\"}`}\n />\n </motion.div>\n </AnimatePresence>\n);\n\nexport { CopyableLabel };\n","import React, { ChangeEvent, useEffect, useState } from \"react\";\nimport { BaseInnerInputProps, Input } from \"../input\";\nimport { cn } from \"@/src/utils\";\nimport { Search } from \"lucide-react\";\n\ntype DebouncedInputProps = {\n value?: string;\n\n onChange: (e: string) => void;\n debounce?: number;\n addon?: React.ReactNode;\n} & Omit<BaseInnerInputProps, \"onChange\" | \"size\">;\n\nexport const DebouncedInput = ({\n value: initialValue,\n onChange,\n debounce = 500,\n addon,\n ...props\n}: DebouncedInputProps) => {\n const [value, setValue] = useState<string>(initialValue ?? \"\");\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) =>\n setValue(event.target.value);\n\n useEffect(() => {\n if (!initialValue) return;\n setValue(initialValue);\n }, [initialValue]);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n onChange(value);\n }, debounce);\n\n return () => clearTimeout(timeout);\n }, [value, debounce, onChange]);\n\n return (\n <Input\n leftNode={\n (addon as React.ReactElement) ?? (\n <Search className=\" w-4 h-4 text-gray-400\" />\n )\n }\n sideNodeClassName=\"bg-transparent !pr-0 !w-4 border-0 !min-w-[40px]\"\n {...props}\n className={cn(\n \"!pl-0 py-1 border-[.5px] border-[#E9EBF8] rounded-xl text-sm w-full h-8 focus:outline-none focus:placeholder:hidden focus:!ring-2 !focus:ring-primary-main bg-[#F5F8FF] focus-within:!bg-transparent placeholder:text-xs\",\n props?.className,\n )}\n onChange={handleInputChange}\n value={value}\n />\n );\n};\n","import { useEffect } from \"react\";\nimport { X } from \"lucide-react\";\n\ntype Props = {\n environment: \"staging\" | \"sandbox\" | \"production\";\n branch: string;\n version: string;\n deployTime: string;\n onClose: () => void;\n showBanner: boolean;\n initDefault: () => void;\n removeFromStorage: () => void;\n syncLocalStorageToState: () => void;\n};\nexport const DevBanner = (props: Props) => {\n const {\n environment,\n branch,\n version,\n deployTime,\n showBanner,\n onClose,\n initDefault,\n removeFromStorage,\n syncLocalStorageToState,\n } = props;\n\n const currentEnv = environment || process.env.NEXT_PUBLIC_NODE_ENV;\n\n // Early return must happen before any hooks\n if (currentEnv !== \"staging\" && currentEnv !== \"sandbox\") {\n return null;\n }\n\n useEffect(() => {\n // Sync localstorage value to showBanner state\n syncLocalStorageToState();\n }, [syncLocalStorageToState]);\n\n useEffect(() => {\n let interval: NodeJS.Timeout;\n\n if (currentEnv === \"staging\" || currentEnv === \"sandbox\") {\n interval = setInterval(\n () => {\n removeFromStorage();\n initDefault();\n },\n 5 * 60 * 1000, // 5 minutes in milliseconds\n );\n }\n\n return () => {\n if (interval) {\n clearInterval(interval);\n }\n };\n }, [\n showBanner,\n environment,\n onClose,\n removeFromStorage,\n initDefault,\n currentEnv,\n ]);\n\n if (!showBanner) return null;\n\n return (\n <div className=\"w-fit p-4 border shadow-md bg-white rounded-md z-[99999] absolute top-2 right-2 min-w-96\">\n <button onClick={onClose} className=\"absolute top-2 right-2\">\n <X />\n </button>\n <div className=\"space-y-2 text-sm\">\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Environment:</span>\n <span className=\"text-blue-600 capitalize\">{currentEnv}</span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Branch:</span>\n <span className=\"text-green-600 capitalize\">\n {branch || process.env.NEXT_PUBLIC_DEPLOY_BRANCH}\n </span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Version:</span>\n <span className=\"text-purple-600\">\n {version || process.env.NEXT_PUBLIC_DEPLOY_VERSION}\n </span>\n </div>\n <div className=\"flex gap-2\">\n <span className=\"font-medium\">Deploy Time:</span>\n <span className=\"text-orange-600\">\n {deployTime || process.env.NEXT_PUBLIC_DEPLOY_TIME}\n </span>\n </div>\n </div>\n </div>\n );\n};\n","// import React from 'react'\n\n// export const Drawer = () => {\n// return (\n// <div>Drawer</div>\n// )\n// }\n\n\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/src/utils\";\nimport { DialogCloseProps } from \"@radix-ui/react-dialog\";\nimport { CloseIcon } from \"./icon/CloseIcon\";\nimport { useWindowSize } from \"@/src/hooks/useWindowSize\";\n\ntype DrawerRootType = React.ComponentProps<typeof DrawerPrimitive.Root>;\n\nconst DrawerRoot = ({\n shouldScaleBackground = true,\n ...props\n}: DrawerRootType) => (\n <DrawerPrimitive.Root\n direction=\"right\"\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\n\nDrawerRoot.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerClose: React.ForwardRefExoticComponent<\n DialogCloseProps & React.RefAttributes<HTMLButtonElement>\n> = DrawerPrimitive.Close;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-40 bg-black/75 !m-0 !p-0 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\n\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerVariants = cva(\n \"fixed focus-visible:outline-0 z-50 gap-4 bg-white shadow-lg dark:bg-[#2B2B2B] dark:text-white transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 dark:border-none !select-text\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top rounded-b-lg\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom rounded-t-lg\",\n left: \"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-[512px] \",\n right:\n \"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-[512px]\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>,\n VariantProps<typeof DrawerVariants> {}\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n SheetContentProps & {\n hideCloseButton?: boolean;\n }\n>(({ side = \"right\", hideCloseButton, className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(DrawerVariants({ side }), className)}\n {...props}\n >\n <button className=\"bg-gray-300 block md:!hidden mx-auto mt-4 md:!mt-0 h-1.5 w-[80px] rounded-full opacity-70 transition-opacity hover:opacity-100 relative\" />\n {children}\n {!hideCloseButton && (\n <DrawerPrimitive.Close className=\"absolute right-2 top-3 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-secondary\">\n <CloseIcon />\n\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\n\nDrawerContent.displayName = DrawerPrimitive.Content.displayName;\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"text-lg flex flex-col border-b border-b-gray-200 space-y-1 text-left w-full p-3\",\n className,\n )}\n {...props}\n />\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row m-auto right-0 left-0 p-3 sm:space-x-2 border-t border-t-[#EDEDED] dark:border-t-[#242424] w-full\",\n className,\n )}\n {...props}\n />\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-xl font-semibold text-[#191919] dark:text-white\",\n className,\n )}\n {...props}\n />\n));\n\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-xs text-[#5d5c5c] dark:text-white\", className)}\n {...props}\n />\n));\n\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport type DrawerPropsType = {\n trigger?: React.ReactNode;\n children: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n footer?: React.ReactNode;\n hideCloseButton?: boolean;\n contentClassName?: string;\n headerClassName?: string;\n titleClassName?: string;\n descriptionClassName?: string;\n footerClassName?: string;\n asChild?: boolean;\n onOpenAutoFocus?: (e: Event) => void;\n onCloseAutoFocus?: (e: Event) => void;\n};\n\nconst Drawer = ({\n trigger = undefined,\n children,\n open = undefined,\n onOpenChange = undefined,\n hideCloseButton,\n footer,\n title,\n description,\n contentClassName,\n headerClassName,\n titleClassName,\n descriptionClassName,\n footerClassName,\n asChild = true,\n onOpenAutoFocus,\n onCloseAutoFocus,\n}: Omit<DrawerRootType, \"value\"> & DrawerPropsType) => {\n const { width } = useWindowSize();\n const direction = width < 768 ? \"bottom\" : \"right\";\n\n return (\n <DrawerRoot open={open} onOpenChange={onOpenChange} direction={direction}>\n <DrawerTrigger className=\"cursor-pointer\" asChild={asChild}>\n {trigger}\n </DrawerTrigger>\n <DrawerContent\n className={cn(\n \"flex flex-col gap-0 justify-start items-start max-h-[90vh] md:max-h-full w-full !max-w-md\",\n contentClassName,\n )}\n side={direction}\n hideCloseButton={hideCloseButton}\n onOpenAutoFocus={onOpenAutoFocus}\n onCloseAutoFocus={onCloseAutoFocus}\n >\n {title || description ? (\n <DrawerHeader className={headerClassName}>\n {title && (\n <DrawerTitle className={titleClassName}>{title}</DrawerTitle>\n )}\n {description && (\n <DrawerDescription className={descriptionClassName}>\n {description}\n </DrawerDescription>\n )}\n </DrawerHeader>\n ) : (\n <></>\n )}\n\n <div\n className={cn(\n \"flex w-full overflow-y-auto flex-col justify-start items-start p-4 flex-1 h-[30px]\",\n )}\n >\n {children}\n </div>\n\n {footer && (\n <DrawerFooter className={footerClassName}>{footer}</DrawerFooter>\n )}\n </DrawerContent>\n </DrawerRoot>\n );\n};\n\nexport { Drawer, DrawerRoot, DrawerClose };\n","export const CloseIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"lucide lucide-x\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n};\n","import { useState, useEffect } from \"react\";\n\ntype WindowSize = {\n width: number;\n height: number;\n};\n\nexport function useWindowSize(): WindowSize {\n const [windowSize, setWindowSize] = useState<WindowSize>({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n handleResize();\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowSize;\n}\n","export const Check = () => {\n return (\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n strokeWidth=\"0\"\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n className=\"h-5 w-5\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\nexport const EnglishFlag = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n viewBox=\"0 0 60 30\"\n className=\"w-full max-w-md h-auto\"\n aria-label=\"Union Jack - Flag of the United Kingdom\"\n {...props}\n >\n {/* Blue background */}\n <rect width=\"60\" height=\"30\" fill=\"#00247D\" />\n\n {/* White diagonal crosses */}\n <path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#FFFFFF\" strokeWidth=\"6\" />\n\n {/* Red diagonal crosses */}\n <path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#CF142B\" strokeWidth=\"4\" />\n\n {/* White cross */}\n <path d=\"M30,0 L30,30 M0,15 L60,15\" stroke=\"#FFFFFF\" strokeWidth=\"10\" />\n\n {/* Red cross */}\n <path d=\"M30,0 L30,30 M0,15 L60,15\" stroke=\"#CF142B\" strokeWidth=\"6\" />\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\nexport const FrenchFlag = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n viewBox=\"0 0 60 40\"\n className=\"w-full max-w-md h-auto\"\n aria-label=\"Tricolore - Flag of France\"\n {...props}\n >\n {/* Blue stripe */}\n <rect x=\"0\" y=\"0\" width=\"20\" height=\"40\" fill=\"#002395\" />\n\n {/* White stripe */}\n <rect x=\"20\" y=\"0\" width=\"20\" height=\"40\" fill=\"#FFFFFF\" />\n\n {/* Red stripe */}\n <rect x=\"40\" y=\"0\" width=\"20\" height=\"40\" fill=\"#ED2939\" />\n </svg>\n );\n};\n","export const UpDownIcon = () => {\n return (\n <svg\n width=\"20\"\n height=\"18\"\n viewBox=\"0 0 8 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.50257 12.9395L3.68439 14.7576L1.86621 12.9395\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M5.50257 5.06055L3.68439 3.24237L1.86621 5.06055\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { PopoverContent, PopoverRoot, PopoverTrigger } from \"../popover\";\nimport { Check } from \"./icons/Check\";\nimport { EnglishFlag } from \"./icons/EnglishFlag\";\nimport { FrenchFlag } from \"./icons/FrenchFlag\";\nimport { UpDownIcon } from \"./icons/UpDownIcon\";\nimport { PopoverClose } from \"@radix-ui/react-popover\";\n\nconst localeListOptons = [\n {\n key: \"en\",\n label: \"English\",\n },\n {\n key: \"fr\",\n label: \"French\",\n },\n];\n\ntype LocaleOption = {\n key: string;\n label: string;\n};\n\nconst LocaleIcon = ({ locale }: { locale?: string }) => {\n if (locale === \"fr\") return <FrenchFlag width={10} />;\n return <EnglishFlag width={10} />;\n};\n\nconst LocaleTrigger = ({ locale }: { locale?: string }) => {\n return (\n <div className=\"px-2 py-1 \">\n <div className=\"flex items-center gap-2.5\">\n <LocaleIcon locale={locale} />{\" \"}\n <span className=\"uppercase\">{locale}</span>\n <UpDownIcon />\n </div>\n </div>\n );\n};\n\nexport const LocaleSelector = ({\n locale = \"en\",\n onChange,\n locales = localeListOptons,\n}: {\n locale?: string;\n onChange?: (locale: string) => void;\n locales?: LocaleOption[];\n}) => {\n return (\n <PopoverRoot>\n <div className=\"flex items-center gap-2 px-2 py-1 rounded-lg shadow border-[0.5px] border-gray-50/50 text-current bg-white/10 \">\n <PopoverTrigger className={\"!p-0 !bg-transparent \"}>\n <LocaleTrigger locale={locale} />\n </PopoverTrigger>\n </div>\n <PopoverContent\n side=\"bottom\"\n className=\"p-0 max-w-max rounded-md overflow-hidden mx-auto mt-2\"\n >\n <div>\n {locales?.map((_locale) => (\n <PopoverClose\n type=\"button\"\n key={_locale?.key}\n className={cn(\n \"flex items-center gap-3 px-3 py-1 text-sm hover:bg-blue-50 w-full transition-all\",\n { \"bg-blue-100\": locale && locale === _locale?.key },\n )}\n onClick={() => onChange?.(_locale?.key)}\n >\n {_locale?.label} {locale && locale === _locale?.key && <Check />}\n </PopoverClose>\n ))}\n </div>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n","import { useMemo, useRef, useState } from \"react\";\nimport { BusinessBar } from \"./business/BusinessBar\";\nimport { SidebarProps } from \"./utils/types\";\nimport { NavItems } from \"./NavItems\";\nimport { cn } from \"@/src/utils\";\nimport { X } from \"lucide-react\";\nimport { OpenSidebarIcon } from \"./components/OpenSidebarIcon\";\nimport { ClosedSidebarIcon } from \"./components/ClosedSidebarIcon\";\nimport { SidebarToggle } from \"./components/SidebarToggle\";\n\nexport const Sidebar = ({\n isSidebarCollapsed,\n onToggleSideBar,\n isMobile,\n links,\n businessProps,\n currentPath,\n onNavigate,\n appConfig,\n collapseType: propCollapseType,\n onLogoutClick,\n openSidebarIcon = <OpenSidebarIcon />,\n closedSidebarIcon = <ClosedSidebarIcon />,\n nodeAfterSideBarLogo,\n}: SidebarProps) => {\n const collapseType = useMemo(() => {\n if (isMobile) return \"hidden\";\n\n return propCollapseType || (isMobile ? \"hidden\" : \"icons\");\n }, [isMobile, propCollapseType]);\n\n const [isBusinessShown, setIsBusinessShown] = useState(false);\n const isIconsOnly = collapseType === \"icons\" && isSidebarCollapsed;\n const sideBarRef = useRef(null);\n const {\n businessList,\n activeBusiness,\n toggleAddBusinessDrawer,\n handleSetActiveBusiness,\n } = businessProps;\n\n const toggleShowBusiness = (isBusinessShown: boolean) =>\n setIsBusinessShown(isBusinessShown);\n\n const handleSwitchBusiness = (clientId: string) => {\n handleSetActiveBusiness?.(clientId);\n toggleShowBusiness(false);\n };\n\n const sideBarLogo = useMemo(() => {\n if (collapseType === \"hidden\") {\n return openSidebarIcon;\n }\n\n return isSidebarCollapsed ? closedSidebarIcon : openSidebarIcon;\n }, [isSidebarCollapsed, openSidebarIcon, closedSidebarIcon, collapseType]);\n\n const showBackdrop =\n isMobile && collapseType === \"hidden\" && isSidebarCollapsed;\n\n return (\n <>\n {showBackdrop && (\n <div\n className=\"fixed inset-0 z-40 bg-black bg-opacity-40 transition-all animate-in fade-in-15\"\n onClick={() => onToggleSideBar(false)}\n />\n )}\n\n <div\n className={cn(\"relative flex flex-row-reverse h-full\", {\n \"fixed inset-0 z-50 pointer-events-none\": showBackdrop,\n })}\n >\n {collapseType === \"icons\" && (\n <SidebarToggle\n isSidebarCollapsed={isSidebarCollapsed}\n onToggleSideBar={onToggleSideBar}\n />\n )}\n\n <aside\n id=\"sidebar_menu\"\n ref={sideBarRef}\n className={cn(\n \"relative pt-4 h-full max-h-screen bg-[#FBFBFB] overflow-hidden flex-col flex transition-all duration-300 w-64 gap-y-14\",\n {\n \"!fixed\": collapseType === \"hidden\",\n \"w-[311px]\": isSidebarCollapsed && collapseType !== \"icons\",\n \"w-[75px]\": isSidebarCollapsed && collapseType === \"icons\",\n \"w-[270px]\": !isSidebarCollapsed && collapseType === \"icons\",\n \"w-0 lg:w-0 pointer-events-none\":\n !isSidebarCollapsed && collapseType === \"hidden\",\n \"pointer-events-auto\":\n isSidebarCollapsed && collapseType === \"hidden\",\n \"left-0 top-0\": isMobile && collapseType === \"hidden\",\n \"-translate-x-full\":\n !isSidebarCollapsed && isMobile && collapseType !== \"hidden\",\n \"translate-x-0\":\n isSidebarCollapsed && isMobile && collapseType === \"hidden\",\n },\n )}\n >\n <div\n className={cn(\"flex items-center py-2 justify-center w-full\", {\n \"justify-between px-2\": isMobile,\n })}\n >\n <section\n className={cn({\n \"ml-2\": isMobile,\n \"-ml-16\": !isSidebarCollapsed,\n })}\n >\n {sideBarLogo}\n </section>\n\n {collapseType === \"hidden\" && (\n <div\n onClick={() => onToggleSideBar(false)}\n className=\"flex items-center gap-2 text-3xl cursor-pointer\"\n >\n <X size={24} className=\"text-black hover:opacity-60\" />\n </div>\n )}\n </div>\n\n {nodeAfterSideBarLogo}\n\n <div className=\"flex-1 overflow-y-auto px-0 h-full max-h-[calc(100vh-200px)]\">\n <NavItems\n isIconsOnly={isIconsOnly}\n collapseType={collapseType}\n currentPath={currentPath}\n isSidebarCollapsed={isSidebarCollapsed}\n links={links}\n onNavigate={onNavigate}\n onToggleSideBar={onToggleSideBar}\n appConfig={appConfig}\n isMobile={isMobile}\n />\n </div>\n\n <div className=\"absolute bottom-5 w-full\">\n <BusinessBar\n activeBusiness={activeBusiness}\n handleSwitchBusiness={handleSwitchBusiness}\n isBusinessShown={isBusinessShown}\n toggleAddBusinessDrawer={toggleAddBusinessDrawer}\n toggleShowBusiness={toggleShowBusiness}\n businesses={businessList || []}\n iconOnly={collapseType === \"icons\" ? isSidebarCollapsed : false}\n onLogoutClick={onLogoutClick}\n isMobile={isMobile}\n onToggleSideBar={onToggleSideBar}\n collapseType={collapseType}\n />\n </div>\n </aside>\n </div>\n </>\n );\n};\n","import { AnimatePresence, motion } from \"framer-motion\";\nimport { ChangeEvent, useMemo, useState } from \"react\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { FiLogOut } from \"react-icons/fi\";\nimport { BsPlus } from \"react-icons/bs\";\nimport { cn } from \"@/src/utils\";\nimport { BusinessType } from \"@/src/utils/types\";\nimport { Input } from \"@/src/components/input\";\nimport { BusinessBarTrigger } from \"./Trigger\";\nimport { ChevronUp } from \"lucide-react\";\nimport { SidebarProps } from \"../../utils/types\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n businesses?: BusinessType[];\n toggleAddBusinessDrawer: () => void;\n handleSwitchBusiness: (_: string) => void;\n onLogoutClick: () => void;\n toggleShowBusiness: (_: boolean) => void;\n} & Pick<SidebarProps, \"onToggleSideBar\" | \"isMobile\" | \"collapseType\">;\n\nconst businessPopUpVariants = {\n hidden: { y: \"-12px\", opacity: 0 },\n visible: {\n y: \"0\",\n opacity: 1,\n transition: {\n type: \"spring\",\n damping: 25,\n stiffness: 500,\n },\n },\n exit: {\n y: \"-12px\",\n opacity: 0,\n transition: {\n type: \"spring\",\n damping: 25,\n stiffness: 500,\n },\n },\n};\n\nexport const BusinessBarContent = ({\n activeBusiness,\n toggleAddBusinessDrawer,\n businesses = [],\n handleSwitchBusiness,\n onLogoutClick,\n onToggleSideBar,\n toggleShowBusiness,\n isMobile,\n collapseType,\n}: BusinessBarProps) => {\n const [searchText, setSearchText] = useState(\"\");\n const searchedBusinesses = useMemo(() => {\n const text = searchText.toLowerCase();\n return (businesses || []).filter((b) =>\n b.name?.toLowerCase().startsWith(text),\n );\n }, [businesses, searchText]);\n const hiddenCollapseType = collapseType === \"hidden\" || isMobile;\n\n const onSearchChange = (e: ChangeEvent<HTMLInputElement>) =>\n setSearchText(e.target.value);\n\n const onBusinessClick = (clientId?: string) => {\n handleSwitchBusiness(clientId || \"\");\n if (hiddenCollapseType) {\n onToggleSideBar(false);\n }\n setSearchText(\"\");\n };\n const onToggleAddBusinessDrawer = () => {\n toggleAddBusinessDrawer();\n toggleShowBusiness(false);\n if (hiddenCollapseType) {\n onToggleSideBar(false);\n }\n setSearchText(\"\");\n };\n const onHandleLogoutClick = () => {\n onLogoutClick?.();\n toggleShowBusiness(false);\n if (hiddenCollapseType) {\n onToggleSideBar(false);\n }\n setSearchText(\"\");\n };\n return (\n <AnimatePresence initial={false}>\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"exit\"\n variants={businessPopUpVariants}\n >\n <div className=\"w-72 bg-white border rounded-xl shadow-md overflow-hidden p-3\">\n <BusinessBarTrigger\n activeBusiness={activeBusiness}\n rightNode={<div className=\"h-3 w-3 bg-[#62C554] rounded-full\" />}\n className=\"bg-[#FAFAFA] border-none p-3\"\n />\n\n <div className=\"mt-3\">\n <Input\n label=\"Search Account\"\n leftNode={<ChevronUp className=\"h-4 w-4 text-gray-500\" />}\n value={searchText}\n onChange={onSearchChange}\n placeholder=\"Search Account\"\n className=\"text-sm\"\n />\n </div>\n\n <ul className=\"max-h-48 overflow-y-auto mt-2 px-1 space-y-2\">\n {searchedBusinesses.map((b) => (\n <BusinessBarTrigger\n key={b.clientId}\n onTriggerClick={() => onBusinessClick(b?.clientId)}\n activeBusiness={b}\n rightNode={\n activeBusiness.clientId === b.clientId ? (\n <HiCheck className=\"text-primary-600\" size={18} />\n ) : undefined\n }\n className={cn(\"bg-white border-none \", {\n \"bg-[#FAFAFA]\": activeBusiness.clientId === b.clientId,\n })}\n />\n ))}\n </ul>\n\n <div className=\"py-2 \">\n <button\n onClick={onToggleAddBusinessDrawer}\n className=\"w-full flex items-center justify-start gap-2 text-sm text-[#0033C7] border-[#BECFFF] border-[0.5px] rounded-lg py-2 px-3 hover:bg-primary-accent transition \"\n >\n <BsPlus size={18} className=\"text-primary-main\" /> Add Account\n </button>\n </div>\n\n <div className=\"bg-[#FAFAFA] px-3 py-2 -m-3 mt-4\">\n <button\n className=\"w-full flex items-center gap-2 text-sm text-black hover:text-gray-700 transition p-2 hover:bg-primary-accent\"\n onClick={onHandleLogoutClick}\n >\n <FiLogOut size={16} /> Log Out\n </button>\n </div>\n </div>\n </motion.div>\n </AnimatePresence>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { BusinessType } from \"@/src/utils/types\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n iconOnly?: boolean;\n onTriggerClick?: () => void;\n className?: string;\n rightNode?: React.ReactNode;\n};\n\nexport const BusinessBarTrigger = ({\n activeBusiness,\n onTriggerClick,\n iconOnly = false,\n className,\n rightNode,\n}: BusinessBarProps) => {\n return (\n <div\n id=\"sidemenu_business_bar\"\n role=\"button\"\n onClick={onTriggerClick ? onTriggerClick : undefined}\n className={cn(\n \"relative flex w-full items-center rounded-lg text-black bg-white\",\n {\n \"border-[.5px] border-[#E9EBF8] py-1 px-2\": !iconOnly,\n \"hover:bg-primary-accent transition-all duration-150 cursor-pointer \":\n !!onTriggerClick,\n },\n className,\n )}\n >\n <section\n className={cn(\n \"flex items-center justify-center bg-[#E9EBF8] text-primary-main rounded-md mr-3 text-xl font-medium\",\n {\n \"w-10 h-10\": !iconOnly,\n \"w-full h-10 mr-0\": iconOnly,\n },\n )}\n >\n {activeBusiness?.name?.charAt(0) || \"M\"}\n </section>\n\n {!iconOnly && (\n <section className=\" flex-1 flex justify-between items-center relative text-black w-full -space-y-1 tracking-wide\">\n <div className=\"flex-1\">\n <h2 className=\"text-base truncate capitalize font-medium w-full max-w-[150px]\">\n {activeBusiness?.name}\n </h2>\n <p className=\"text-sm text-[#A5A5A5] flex items-center truncate w-full max-w-[150px]\">\n {activeBusiness?.email}\n </p>\n </div>\n {rightNode}\n </section>\n )}\n </div>\n );\n};\n","import { BusinessType } from \"@/src/utils/types\";\nimport { BusinessBarContent } from \"./components/Content\";\nimport { BusinessBarTrigger } from \"./components/Trigger\";\nimport { Popover } from \"../../popover\";\nimport { cn } from \"@/src/utils\";\nimport { SidebarProps } from \"../utils/types\";\n\ntype BusinessBarProps = {\n activeBusiness: BusinessType;\n businesses?: BusinessType[];\n isBusinessShown: boolean;\n toggleAddBusinessDrawer: () => void;\n toggleShowBusiness: (v: boolean) => void;\n handleSwitchBusiness: (_: string) => void;\n iconOnly?: boolean;\n onLogoutClick: () => void;\n isMobile: boolean;\n} & Pick<SidebarProps, \"onToggleSideBar\" | \"isMobile\" | \"collapseType\">;\n\nexport const BusinessBar = ({\n activeBusiness,\n toggleAddBusinessDrawer,\n toggleShowBusiness,\n businesses = [],\n handleSwitchBusiness,\n iconOnly = false,\n onLogoutClick,\n isMobile,\n onToggleSideBar,\n isBusinessShown,\n collapseType,\n}: BusinessBarProps) => {\n return (\n <div className=\"px-4 relative mb-0 \">\n <Popover\n side={isMobile ? \"top\" : \"right\"}\n open={isBusinessShown}\n onOpenChange={toggleShowBusiness}\n align=\"end\"\n contentClassName=\"!bg-transparent !shadow-none !p-0\"\n trigger={\n <div className=\"flex items-center w-full\">\n <BusinessBarTrigger\n activeBusiness={activeBusiness}\n onTriggerClick={() => toggleShowBusiness(true)}\n iconOnly={iconOnly}\n rightNode={<Icon className=\"stroke-gray-500\" />}\n />\n </div>\n }\n >\n <BusinessBarContent\n activeBusiness={activeBusiness}\n handleSwitchBusiness={handleSwitchBusiness}\n toggleAddBusinessDrawer={toggleAddBusinessDrawer}\n businesses={businesses}\n onLogoutClick={onLogoutClick}\n onToggleSideBar={onToggleSideBar}\n toggleShowBusiness={toggleShowBusiness}\n collapseType={collapseType}\n isMobile={isMobile}\n />\n </Popover>\n </div>\n );\n};\n\nconst Icon = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\n \"lucide lucide-chevrons-up-down-icon lucide-chevrons-up-down\",\n className,\n )}\n >\n <path d=\"M7 22l5 5 5-5\" />\n <path d=\"M7 4l5-5 5 5\" />\n </svg>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { useEffect, useState } from \"react\";\nimport { FiChevronRight } from \"react-icons/fi\";\nimport { LinksType, SidebarProps } from \"./utils/types\";\nimport { Tooltip } from \"../tooltip\";\n\ntype Props = {\n isIconsOnly: boolean;\n isMobile: boolean;\n} & Pick<\n SidebarProps,\n | \"isSidebarCollapsed\"\n | \"onToggleSideBar\"\n | \"onNavigate\"\n | \"currentPath\"\n | \"collapseType\"\n | \"links\"\n | \"appConfig\"\n>;\n\nconst accordionItemVariants = {\n hidden: { opacity: 0, height: 0 },\n visible: {\n opacity: 1,\n height: \"auto\",\n transition: {\n duration: 0.3,\n },\n },\n};\n\nexport const NavItems = ({\n isIconsOnly,\n isSidebarCollapsed,\n onToggleSideBar,\n currentPath,\n onNavigate,\n collapseType,\n links,\n appConfig,\n isMobile,\n}: Props) => {\n const [expandedMenus, setExpandedMenus] = useState<Record<string, boolean>>(\n {},\n );\n const toggleAccordion = (linkId: string) => {\n setExpandedMenus((prev) => ({\n ...prev,\n [linkId]: !prev[linkId],\n }));\n };\n\n const handleMenuLink = (link: LinksType) => {\n const hasChildren = !!link?.children?.length;\n if (hasChildren) {\n if (isIconsOnly) {\n onToggleSideBar(!isSidebarCollapsed);\n setExpandedMenus((prev) => ({\n ...prev,\n [link.id]: true,\n }));\n } else {\n toggleAccordion(link.id);\n }\n return;\n }\n onNavigate(`/${link.to}`);\n };\n\n const getActiveMenu = (link: LinksType): boolean => {\n const hasChildren = !!link?.children?.length;\n if (hasChildren) {\n return (link.children || []).some((l) => currentPath === l.to);\n }\n return currentPath === link.to;\n };\n\n useEffect(() => {\n if (isSidebarCollapsed) {\n const expanded: Record<string, boolean> = {};\n links.forEach((link) => {\n if (link.children && link.children.length > 0) {\n // If any child matches the current path, expand this menu\n if (link.children.some((child) => currentPath === child.to)) {\n expanded[link.id] = true;\n }\n }\n });\n setExpandedMenus((prev) => ({\n ...prev,\n ...expanded,\n }));\n }\n }, [isSidebarCollapsed, links, currentPath]);\n\n return (\n <ul className=\"w-[90%] space-y-2.5\">\n {links.map((link, idx) => {\n if (link.isHidden) return null;\n if (appConfig?.hiddenRoutes?.includes(link.key ?? \"\")) return null;\n\n const active = getActiveMenu(link);\n const hasChildren = !!link?.children?.length;\n const isExpanded = expandedMenus[link.id];\n\n const menuItem = (\n <div\n className=\"mb-1 relative flex flex-col justify-center items-center\"\n key={idx}\n onClick={() => handleMenuLink(link)}\n >\n {active &&\n !isMobile &&\n (isIconsOnly || !hasChildren || !isExpanded) && (\n <div className=\"absolute bg-primary-main w-2 h-4 rounded-r-full -translate-y-1/2 top-1/2 left-0\" />\n )}\n\n <li\n key={link.to}\n id={link.id}\n className={cn(\n \"cursor-pointer transition text-base duration-300 w-full text-[#00000066] font-medium rounded-md mx-auto max-w-full ml-4 p-2\",\n {\n \"bg-[#F6F8FF] text-primary-main \":\n active && (!isExpanded || !isSidebarCollapsed),\n },\n {\n \"hover:bg-gray-100\":\n !active &&\n (collapseType !== \"icons\" || !isSidebarCollapsed),\n },\n {\n \"bg-white text-primary-main\": active,\n },\n {\n \"flex justify-center text-primary-main !px-0 max-w-[70%]\":\n isIconsOnly && active,\n \"flex justify-center !px-0 max-w-[70%]\":\n isIconsOnly && !active,\n },\n )}\n >\n <div\n className={cn(\"flex items-center w-full\", {\n \"justify-center\": isIconsOnly,\n })}\n >\n <Tooltip\n key={idx}\n trigger={\n <span className=\"w-6\" onClick={() => handleMenuLink(link)}>\n {link.icon}\n </span>\n }\n side=\"right\"\n hasArrow\n open={!isIconsOnly ? false : undefined}\n >\n {link.name}\n </Tooltip>\n {(collapseType !== \"icons\" || !isSidebarCollapsed) && (\n <>\n <span className=\"px-3 text-nowrap\">{link.name}</span>\n {hasChildren && (\n <span\n className=\"ml-auto transition-transform duration-300\"\n style={{\n transform: isExpanded\n ? \"rotate(90deg)\"\n : \"rotate(0deg)\",\n }}\n >\n <FiChevronRight size={18} />\n </span>\n )}\n </>\n )}\n </div>\n </li>\n\n {hasChildren &&\n (collapseType !== \"icons\" || !isSidebarCollapsed) && (\n <AnimatePresence>\n {isExpanded && (\n <motion.div\n initial=\"hidden\"\n animate=\"visible\"\n exit=\"hidden\"\n variants={accordionItemVariants}\n className=\"overflow-hidden w-full\"\n >\n <ul className=\" mt-1 relative \">\n {link.children?.map((childLink) => {\n if (childLink.isHidden) return null;\n const childActive = currentPath === childLink.to;\n return (\n <div\n id={childLink.id}\n className={cn(\"relative pl-12 bg-blue-100- mt-4\")}\n >\n <li\n className={cn(\n \"cursor-pointer transition text-base duration-300 px-3 w-full text-black font-medium opacity-40 rounded-md text-nowrap\",\n {\n \"bg-transparent opacity-100 text-primary-main\":\n childActive,\n },\n {\n \"hover:text-primary-main\": !childActive,\n },\n )}\n onClick={() => onNavigate(`/${childLink.to}`)}\n >\n {childLink.name}\n {childActive && (\n <>\n {!isMobile && (\n <div className=\"absolute bg-primary-main w-2 h-4 rounded-r-full -translate-y-1/2 top-1/2 left-0\" />\n )}\n <div\n id=\"vertical-bar-child\"\n className=\"h-4 w-0.5 bg-primary-main absolute left-[30px] z-10 -translate-y-1/2 top-1/2 rounded-t-full rounded-b-full \"\n />\n </>\n )}\n </li>\n </div>\n );\n })}\n <div\n id=\"vertical-bar\"\n className=\"bg-white rounded-t-full rounded-b-full h-full w-[4px] absolute left-[29px] top-0\"\n />\n </ul>\n </motion.div>\n )}\n </AnimatePresence>\n )}\n </div>\n );\n\n return menuItem;\n })}\n </ul>\n );\n};\n","export const OpenSidebarIcon = () => {\n return (\n <svg\n width=\"100%\"\n height={40}\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"Layer_1\"\n data-name=\"Layer 1\"\n viewBox=\"0 0 1565.51 377.21\"\n >\n <g>\n <path\n fill=\"#0231C5\"\n d=\"m277.49,86.74v85.18l-.41,6.31v.21c-.72,5.8-2.38,11.28-4.86,16.35-1.45,3-3.21,5.9-5.28,8.49-1.55,2.07-3.42,4.04-5.28,5.9-1.66,1.55-3.42,3.11-5.28,4.45-1.66,1.24-3.42,2.38-5.28,3.42-1.76.93-3.52,1.76-5.28,2.59-1.24.52-2.48.93-3.83,1.35l-1.45.52-5.28,1.76-5.28,1.76-5.28,1.76-5.28,1.76-10.56,3.52-.52.21v19.15l-.41.1-3.62,1.14-.83.21-2.79.93-2.48.83-1.14.31-3.62,1.14-.62.21-3,.93-2.28.72-1.35.41-3.62,1.14-.41.1-.52.21h-.21v-37.26c0-1.55.31-3,.72-4.45.1-.31.21-.62.41-.93.83-1.86,2.07-3.52,3.62-4.86.41-.31.83-.72,1.35-1.04.72-.52,1.45-.83,2.28-1.24.21-.1.52-.21.72-.31l.21-.1,2.17-.72.62-.21,3.62-1.14,1.14-.41,5.28-1.76.83-.31,3.62-1.14.93-.31,5.28-1.76,5.28-1.76,5.28-1.76,5.28-1.76,3.83-1.24c.52-.1.93-.31,1.45-.52,1.97-.72,3.73-1.76,5.28-2.9,2.07-1.45,3.83-3.21,5.28-5.18,3.21-4.14,5.07-9.42,5.07-14.9v-85.08c0-5.59-1.76-10.76-5.07-15.01-1.45-1.86-3.11-3.52-5.07-4.97q-.1-.1-.21-.1c-1.66-1.24-3.42-2.17-5.28-2.9-1.76-.72-3.52-1.14-5.28-1.45-1.76-.31-3.52-.31-5.28-.21-1.76.1-3.52.41-5.28.93-.21.1-.52.1-.72.21l-4.55,1.45-5.28,1.66-5.28,1.76-5.69,1.55-5.28,1.76-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.76-5.28,1.66-5.28,1.76-5.69,1.66-5.28,1.76-3.83,1.24c-.52.21-1.04.31-1.55.52-1.86.72-3.73,1.76-5.28,2.9-2.07,1.45-3.83,3.21-5.28,5.18-3.21,4.24-5.07,9.42-5.07,15.01v33.33c0,3.93.83,7.25,2.07,10.04.1.31.21.52.41.83-.1.1-.31.1-.41.21-.83.41-1.55.72-2.28,1.24-.41.21-.83.52-1.35.72-1.24.72-2.48,1.55-3.62,2.38-.1.1-.31.21-.41.31-1.14.83-2.17,1.66-3.21,2.48-.72.62-1.45,1.24-2.07,1.97-.52.52-1.04.93-1.55,1.45-1.24,1.35-2.48,2.69-3.62,4.14-.1.1-.1.21-.21.31-.72.93-1.35,1.76-1.97,2.69-.52-.72-1.04-1.55-1.45-2.28-.72-1.14-1.35-2.28-1.86-3.52-.62-1.24-1.14-2.59-1.66-3.83-2.38-6-3.62-12.42-3.62-18.94v-33.64c0-8.07,1.86-15.94,5.28-22.77,1.45-3,3.21-5.9,5.28-8.49,1.55-2.07,3.42-4.04,5.28-5.9,1.66-1.55,3.42-3.11,5.28-4.45,1.66-1.24,3.42-2.38,5.28-3.42,1.66-.93,3.42-1.76,5.28-2.59,1.35-.52,2.59-1.04,3.93-1.45l1.35-.41,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.8-1.66,5.28-1.76,5.28-1.66,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,5.28-1.66,5.28-1.76,1.76-.52c1.14-.41,2.38-.72,3.62-1.04,1.76-.41,3.52-.83,5.28-1.04,1.76-.21,3.52-.41,5.28-.41,1.76-.1,3.52,0,5.28.1,1.76.1,3.52.31,5.28.62,1.76.31,3.52.72,5.28,1.24,1.76.52,3.62,1.14,5.28,1.86,1.76.72,3.62,1.66,5.28,2.59,1.86,1.04,3.62,2.17,5.28,3.42h.1c1.86,1.35,3.62,2.79,5.28,4.45,1.97,1.76,3.73,3.73,5.28,5.8,2.07,2.69,3.83,5.49,5.28,8.49,3.73,7.14,5.59,14.9,5.59,23.08Z\"\n ></path>\n <path\n fill=\"#0231C5\"\n d=\"m184.03,136.63v28.05l-.72.21-1.97.62-3.31,1.04-.21.1-3.62,1.14-1.45.52-2.17.72-.52.1h0l-2.17.72-1.86.62-1.76.52-3.52,1.14h-.1l-3.62,1.14-1.66.52-1.97.62-3.31,1.04-.21.1-3.62,1.14-1.45.52-2.17.72-.52.1-2.69.83-.41.1-3.62,1.14-1.24.41-2.38.72-2.9.93-.62.21-3.62,1.14-1.04.31-1.97.62-.62.21-2.79.93-.83.31-3,.93c-.21.1-.41.1-.62.21-.31.1-.62.21-.83.31-.93.41-1.86.83-2.79,1.35-.83.41-1.76.93-2.59,1.55-.31.21-.72.52-1.04.83-1.35,1.04-2.48,2.17-3.62,3.52-.21.21-.41.52-.62.83-1.14,1.55-2.17,3.21-3,5.07-1.35,3.11-2.07,6.42-2.07,9.94v82.39c0,2.59.72,5.07,2.07,7.14.83,1.35,2.07,2.59,3.42,3.62q.1.1.21.1c1.14.83,2.28,1.45,3.62,1.76,1.14.41,2.38.62,3.62.62,1.14,0,2.38-.1,3.62-.41.31-.1.62-.21.93-.31l2.59-.83,3.62-1.14,3.62-1.14,3.62-1.14,3.62-1.14,1.66-.52c.62-.21,1.24-.52,1.86-.83,1.35-.52,2.48-1.24,3.62-2.17,1.35-1.04,2.59-2.28,3.62-3.73,2.07-2.9,3.21-6.52,3.21-10.25v-58.48l.31-.1,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.66-.52,3.62-1.14h.1l3.52-1.14,1.76-.52,1.86-.62,3.42-1.14.21-.1,1.14-.41v67.07c0,2.48-.21,5.07-.62,7.45-.21.93-.31,1.76-.52,2.69-.83,3.52-1.97,6.83-3.62,9.94-1.04,2.07-2.28,4.04-3.62,6-1.14,1.55-2.28,3-3.62,4.45-1.14,1.24-2.38,2.38-3.62,3.42-1.14,1.04-2.38,1.86-3.62,2.79-1.14.83-2.38,1.55-3.62,2.28-1.14.62-2.38,1.24-3.62,1.76-.1,0-.21.1-.31.21-1.04.41-2.17.83-3.21,1.24-.31.1-.62.21-.93.31l-2.69.83-7.25,2.28-3.62,1.14-3.62,1.14-1.66.52c-.62.21-1.24.41-1.86.52-1.24.31-2.38.62-3.62.83-1.24.21-2.38.41-3.62.41-1.14.1-2.17.1-3.21.1h-.31c-1.24,0-2.38-.1-3.62-.21-1.24-.1-2.38-.31-3.62-.52s-2.38-.52-3.62-.93c-.72-.21-1.35-.41-2.07-.62-.52-.21-1.04-.41-1.55-.62-1.24-.52-2.38-1.04-3.62-1.66s-2.48-1.35-3.62-2.17c-.52-.31-1.04-.72-1.55-1.04-.72-.52-1.35-1.04-2.07-1.66-1.24-1.04-2.48-2.17-3.62-3.42-1.35-1.35-2.59-2.9-3.62-4.45-1.45-1.97-2.59-4.04-3.62-6.21-2.38-5.18-3.62-10.87-3.62-16.77v-82.39c0-6.62,1.24-13.04,3.62-18.94.52-1.35,1.04-2.59,1.66-3.83s1.24-2.38,1.86-3.52c.41-.83.93-1.55,1.45-2.28.62-.93,1.24-1.86,1.97-2.69,0-.1.1-.21.21-.21,1.14-1.45,2.28-2.79,3.62-4.14.52-.52.93-1.04,1.55-1.45.72-.72,1.35-1.24,2.07-1.86,1.04-.83,2.07-1.76,3.21-2.48.1-.1.31-.21.41-.31,1.14-.83,2.38-1.66,3.62-2.28.41-.21.83-.52,1.35-.72.72-.41,1.55-.83,2.28-1.24.1-.1.21-.1.41-.21.83-.41,1.76-.83,2.59-1.14.21-.1.41-.21.62-.21,1.04-.41,2.17-.83,3.21-1.14l.31-.1,1.04-.31,2.59-.83,2.79-.93.83-.31,3.62-1.14.83-.31,2.79-.83.62-.21,1.97-.62,1.04-.31,3.62-1.14.62-.21,2.9-.93,2.38-.72,1.24-.41,3.62-1.14.41-.1,2.69-.83.52-.1,2.17-.72,1.45-.41,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.66-.52,3.62-1.14h.1l3.52-1.14,1.76-.52,1.86-.62,2.17-.72h0l.52-.1,2.17-.72,1.45-.52,3.62-1.14.21-.1,3.31-1.04,1.97-.62,1.04-.41Z\"\n ></path>\n </g>\n <path\n fill=\"#000000\"\n d=\"m433.57,86.41c18.92,0,34.54,6.21,46.87,18.62,12.32,12.41,18.49,28.16,18.49,47.26s-6.16,34.85-18.49,47.26c-12.33,12.41-27.95,18.62-46.87,18.62h-35.41v50.51h-42.18V86.41h77.59Zm-6.51,97.38c8.5,0,15.49-2.95,20.96-8.85,5.47-5.9,8.2-13.45,8.2-22.65s-2.73-16.75-8.2-22.65c-5.47-5.9-12.46-8.85-20.96-8.85h-28.9v63.01h28.9Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m568.18,272.05c-18.23,0-32.63-6.16-43.22-18.49-10.59-12.32-15.88-28.21-15.88-47.65s5.47-34.89,16.4-47.39c10.94-12.5,25.34-18.75,43.22-18.75,8.85,0,16.75,1.91,23.69,5.73,6.94,3.82,12.15,9.03,15.62,15.62v-17.96h39.58v125.5h-39.58v-17.7c-3.47,6.25-8.81,11.33-16.01,15.23-7.2,3.91-15.15,5.86-23.82,5.86Zm11.46-33.07c9.54,0,16.92-3.12,22.13-9.37,5.21-6.25,7.81-14.15,7.81-23.69s-2.6-17.18-7.81-23.43c-5.21-6.25-12.59-9.37-22.13-9.37-9.03,0-16.27,3.04-21.74,9.11-5.47,6.08-8.2,13.97-8.2,23.69s2.73,17.66,8.2,23.82c5.47,6.16,12.71,9.24,21.74,9.24Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m765.53,143.17h39.84v121.59c0,19.44-5.99,34.54-17.97,45.3-11.29,9.72-26.65,14.58-46.08,14.58s-35.76-4.34-46.34-13.02c-10.24-8.68-15.45-19.7-15.62-33.07h40.1c.87,11.28,8.16,16.92,21.87,16.92,16.14,0,24.21-9.37,24.21-28.12v-19.53c-7.29,13.89-20.57,20.83-39.84,20.83-15.45,0-27.04-4.69-34.76-14.06-7.73-9.37-11.59-22.22-11.59-38.53v-72.9h39.83v66.91c0,18.05,7.38,27.08,22.13,27.08,7.81,0,13.8-2.82,17.97-8.46,4.17-5.64,6.25-13.41,6.25-23.3v-62.23Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m839.47,268.66V86.41h111.44v35.41h-69.26v49.21h69.26v34.63h-69.26v63.01h-42.18Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1090.07,253.82c-12.59,12.5-29.47,18.75-50.64,18.75s-38.1-6.25-50.77-18.75c-12.67-12.5-19.01-28.47-19.01-47.91s6.33-35.36,19.01-47.78c12.67-12.41,29.59-18.62,50.77-18.62s38.05,6.21,50.64,18.62c12.58,12.41,18.88,28.34,18.88,47.78s-6.29,35.41-18.88,47.91Zm-50.64-15.1c9.2,0,16.49-3.03,21.87-9.11,5.38-6.07,8.07-13.97,8.07-23.69s-2.69-17.61-8.07-23.69c-5.38-6.07-12.67-9.11-21.87-9.11s-16.71,3.04-22,9.11c-5.3,6.08-7.94,13.97-7.94,23.69s2.64,17.62,7.94,23.69c5.29,6.08,12.63,9.11,22,9.11Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1131.86,268.66v-125.5h39.84v18.23c7.46-14.41,21-21.61,40.62-21.61,30.55,0,45.82,17.1,45.82,51.29v77.59h-40.1v-64.57c0-10.76-1.69-18.57-5.08-23.43-3.39-4.86-9.07-7.29-17.05-7.29-16.14,0-24.21,9.89-24.21,29.68v65.61h-39.84Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1353.43,237.68c5.55,0,10.15-.26,13.8-.78v31.76c-7.64,1.39-16.49,2.08-26.56,2.08-4.52,0-8.51-.26-11.98-.78-3.47-.52-7.38-1.69-11.72-3.52-4.34-1.82-7.9-4.3-10.68-7.42-2.78-3.13-5.17-7.64-7.16-13.54-2-5.9-2.99-12.84-2.99-20.83v-49.99h-19.79v-31.5h19.79v-37.23h39.84v37.23h28.38v31.5h-28.38v41.66c0,8.51,1.47,14.19,4.43,17.05,2.95,2.86,7.29,4.3,13.02,4.3Z\"\n ></path>\n <path\n fill=\"#000000\"\n d=\"m1513.55,199.4c0,5.21-.35,11.02-1.04,17.44h-92.69c.35,8.16,3.12,14.49,8.33,19.01,5.21,4.52,12.24,6.77,21.09,6.77,12.15,0,19.96-3.91,23.43-11.72h39.05c-1.91,12.33-8.64,22.35-20.18,30.07-11.55,7.72-25.65,11.59-42.31,11.59-21.35,0-38.19-5.9-50.51-17.7-12.33-11.8-18.49-28.12-18.49-48.95s6.16-36.67,18.49-48.56c12.32-11.89,28.73-17.83,49.21-17.83s35.23,5.56,47.39,16.66c12.15,11.11,18.23,25.52,18.23,43.22Zm-93.73-7.29h54.42c-.18-8.33-2.52-14.75-7.03-19.27-4.52-4.51-11.02-6.77-19.53-6.77s-15.23,2.39-20.18,7.16c-4.95,4.78-7.51,11.07-7.68,18.88Z\"\n ></path>\n </svg>\n );\n};\n","export const ClosedSidebarIcon = () => {\n return (\n <svg\n width=\"100%\"\n height=\"32\"\n viewBox=\"0 0 20 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"pl-5\"\n >\n <path\n d=\"M19.686 5.71949V15.1448L19.6467 15.8434V15.8548V15.8663C19.5779 16.5076 19.4207 17.1146 19.1848 17.6758C19.0472 18.0079 18.8801 18.3286 18.6836 18.6149C18.5361 18.8439 18.3592 19.0615 18.1823 19.2677C18.025 19.4394 17.858 19.6112 17.6811 19.7601C17.5238 19.8975 17.3567 20.0235 17.1798 20.138C17.0127 20.2411 16.8456 20.3327 16.6786 20.4243C16.5606 20.4816 16.4427 20.5274 16.3149 20.5732L16.1773 20.6305L15.6761 20.8252L15.1748 21.0199L14.6736 21.2146L14.1723 21.4093L13.1698 21.7986L13.1207 21.8215V23.9402L13.0814 23.9517L12.7374 24.0777L12.6587 24.1006L12.3934 24.2036L12.1575 24.2953L12.0494 24.3296L11.7054 24.4556L11.6464 24.4785L11.3614 24.5816L11.1452 24.6617L11.0174 24.7075L10.6734 24.8335L10.6341 24.845L10.5849 24.8679H10.5653V20.745C10.5653 20.5732 10.5948 20.4129 10.6341 20.2526C10.6439 20.2182 10.6537 20.1838 10.6734 20.1495C10.752 19.9433 10.87 19.7601 11.0174 19.6112C11.0567 19.5769 11.096 19.5311 11.1452 19.4967C11.214 19.4394 11.2828 19.4051 11.3614 19.3593C11.381 19.3478 11.4105 19.3364 11.4302 19.3249L11.4498 19.3135L11.6562 19.2333L11.7152 19.2104L12.0592 19.0844L12.1673 19.0386L12.6686 18.8439L12.7472 18.8096L13.0912 18.6836L13.1796 18.6492L13.6809 18.4545L14.1821 18.2598L14.6834 18.0652L15.1846 17.8705L15.5483 17.733C15.5974 17.7216 15.6367 17.6987 15.6859 17.6758C15.8726 17.5956 16.0397 17.4811 16.1871 17.3551C16.3837 17.1948 16.5508 17.0001 16.6884 16.7825C16.9931 16.3244 17.17 15.7403 17.17 15.1333V5.71949C17.17 5.10106 17.0029 4.52844 16.6884 4.05889C16.5508 3.85275 16.3935 3.66951 16.2068 3.50917C16.197 3.49772 16.197 3.49772 16.1871 3.49772C16.0299 3.36029 15.8628 3.25722 15.6859 3.17705C15.5188 3.09689 15.3517 3.05108 15.1846 3.01672C15.0176 2.98236 14.8505 2.98236 14.6834 2.99382C14.5163 3.00527 14.3492 3.03963 14.1821 3.09689C14.1625 3.10834 14.133 3.10834 14.1133 3.11979L13.6809 3.28013L13.1796 3.46336L12.6784 3.65806L12.1378 3.82984L11.6366 4.02453L11.1353 4.20777L10.6341 4.40246L10.1328 4.5857L9.63159 4.76894L9.13034 4.96363L8.62909 5.14687L8.12784 5.3301L7.62659 5.52479L7.12534 5.70803L6.6241 5.90272L6.12285 6.08596L5.6216 6.28065L5.08103 6.46389L4.57979 6.65858L4.21614 6.79601C4.16699 6.81891 4.11785 6.83037 4.06871 6.85327C3.8918 6.93344 3.71489 7.04796 3.56746 7.17394C3.37089 7.33427 3.20381 7.52896 3.06621 7.74656C2.76153 8.2161 2.58462 8.78872 2.58462 9.40715V13.0948C2.58462 13.53 2.66325 13.8965 2.78119 14.2057C2.79102 14.2401 2.80085 14.263 2.8205 14.2973C2.81067 14.3088 2.79102 14.3088 2.78119 14.3202C2.70256 14.366 2.63376 14.4004 2.56496 14.4577C2.52565 14.4806 2.48634 14.5149 2.43719 14.5378C2.31925 14.618 2.20131 14.7096 2.0932 14.8012C2.08337 14.8127 2.06371 14.8241 2.05389 14.8356C1.94577 14.9272 1.84749 15.0188 1.74921 15.1104C1.68041 15.1792 1.61161 15.2479 1.55264 15.328C1.5035 15.3853 1.45435 15.4311 1.40521 15.4884C1.28727 15.6373 1.16933 15.7861 1.06122 15.9465C1.05139 15.9579 1.05139 15.9694 1.04156 15.9808C0.972761 16.0839 0.913791 16.1755 0.85482 16.2786C0.805678 16.1984 0.756536 16.1068 0.717223 16.0266C0.648424 15.9007 0.589453 15.7747 0.540311 15.6373C0.481341 15.4998 0.432199 15.3509 0.383057 15.2135C0.157004 14.5493 0.0390625 13.8392 0.0390625 13.1177V9.3957C0.0390625 8.50241 0.215974 7.63203 0.540311 6.87618C0.677909 6.54406 0.844992 6.22339 1.04156 5.93708C1.18899 5.70803 1.3659 5.49044 1.54281 5.28429C1.70006 5.11251 1.86715 4.94072 2.04406 4.79184C2.20131 4.65441 2.3684 4.52844 2.54531 4.41391C2.70256 4.31084 2.86964 4.21922 3.04656 4.1276C3.17432 4.07034 3.29227 4.01308 3.42003 3.96727L3.5478 3.92146L4.04905 3.73822L4.5503 3.54353L5.05155 3.36029L5.5528 3.1656L6.05405 2.98236L6.5553 2.78767L7.05654 2.60444L7.55779 2.40974L8.10818 2.22651L8.60943 2.03182L9.11068 1.84858L9.61193 1.66534L10.1132 1.47065L10.6144 1.28741L11.1157 1.09272L11.6169 0.909482L12.1182 0.714792L12.6194 0.531554L13.1207 0.336863L13.2878 0.279601C13.3959 0.233791 13.5138 0.199434 13.6317 0.165077C13.7988 0.119268 13.9659 0.073458 14.133 0.0505533C14.3001 0.0276485 14.4672 0.00474375 14.6342 0.00474375C14.8013 -0.00670864 14.9684 0.00474368 15.1355 0.0161961C15.3026 0.0276485 15.4697 0.0505533 15.6367 0.0849104C15.8038 0.119268 15.9709 0.165077 16.138 0.222339C16.3051 0.279601 16.482 0.348315 16.6392 0.428482C16.8063 0.508649 16.9832 0.61172 17.1405 0.714792C17.3174 0.829315 17.4845 0.955292 17.6417 1.09272C17.6417 1.09272 17.6417 1.09272 17.6516 1.09272C17.8285 1.2416 17.9956 1.40193 18.1528 1.58517C18.3396 1.77986 18.5066 1.99746 18.6541 2.22651C18.8506 2.52427 19.0177 2.83348 19.1553 3.1656C19.5091 3.95582 19.686 4.81475 19.686 5.71949Z\"\n fill=\"#0231C5\"\n />\n <path\n d=\"M10.8112 9.92822V13.0846L10.7425 13.1079L10.5557 13.1778L10.2412 13.2943L10.2215 13.3059L9.87755 13.434L9.73995 13.4923L9.53356 13.5738L9.48441 13.5855L9.27802 13.667L9.10111 13.7369L8.93402 13.7951L8.59986 13.9232H8.59003L8.24604 14.0514L8.08878 14.1096L7.90204 14.1795L7.58753 14.2959L7.56787 14.3076L7.22388 14.4357L7.08628 14.4939L6.87989 14.5755L6.83074 14.5871L6.57521 14.6803L6.53589 14.692L6.1919 14.8201L6.07396 14.8667L5.8479 14.9482L5.57271 15.053L5.51374 15.0763L5.16974 15.2044L5.07146 15.2394L4.88472 15.3093L4.82575 15.3326L4.56038 15.4374L4.48175 15.4723L4.19673 15.5771C4.17707 15.5888 4.15742 15.5888 4.13776 15.6004C4.10827 15.6121 4.07879 15.6237 4.05913 15.6354C3.97068 15.682 3.88222 15.7286 3.79377 15.7868C3.71514 15.8334 3.62668 15.8916 3.54806 15.9615C3.51857 15.9848 3.47926 16.0197 3.44977 16.0547C3.322 16.1712 3.21389 16.2993 3.10578 16.4507C3.08612 16.474 3.06646 16.5089 3.04681 16.5439C2.93869 16.7186 2.84041 16.9049 2.76178 17.1146C2.63401 17.464 2.56521 17.8367 2.56521 18.2327V27.5039C2.56521 27.7951 2.63401 28.0747 2.76178 28.3076C2.84041 28.459 2.95835 28.5988 3.08612 28.7153C3.09595 28.7269 3.09595 28.7269 3.10578 28.7269C3.21389 28.8201 3.322 28.89 3.44977 28.9249C3.55788 28.9715 3.67582 28.9948 3.79377 28.9948C3.90188 28.9948 4.01982 28.9831 4.13776 28.9482C4.16725 28.9366 4.19673 28.9249 4.22622 28.9133L4.47193 28.8201L4.81592 28.692L5.15991 28.5638L5.50391 28.4357L5.8479 28.3076L6.00516 28.2494C6.06413 28.2261 6.1231 28.1911 6.18207 28.1562C6.30984 28.098 6.41795 28.0164 6.52606 27.9116C6.65383 27.7951 6.77177 27.6554 6.87006 27.4923C7.06663 27.1662 7.17474 26.7585 7.17474 26.3392V19.7585L7.20422 19.7469L7.54822 19.6187L7.56787 19.6071L7.88238 19.4906L8.06912 19.4207L8.22638 19.3625L8.57037 19.2344H8.5802L8.91437 19.1063L9.08145 19.048L9.25836 18.9781L9.5827 18.85L9.60236 18.8384L9.71047 18.7918V26.3392C9.71047 26.6188 9.69081 26.9099 9.6515 27.1778C9.63184 27.2826 9.62201 27.3758 9.60236 27.4806C9.52373 27.8767 9.41562 28.2494 9.25836 28.5988C9.16008 28.8317 9.04214 29.053 8.91437 29.2743C8.80625 29.449 8.69814 29.6121 8.57037 29.7752C8.46226 29.9149 8.34432 30.043 8.22638 30.1595C8.11827 30.276 8.00032 30.3692 7.88238 30.474C7.77427 30.5672 7.65633 30.6487 7.53839 30.7302C7.43028 30.8001 7.31234 30.87 7.19439 30.9282C7.18457 30.9282 7.17474 30.9399 7.16491 30.9515C7.06663 30.9981 6.95851 31.0447 6.86023 31.0913C6.83074 31.1029 6.80126 31.1146 6.77177 31.1262L6.51624 31.2194L5.82825 31.4757L5.48425 31.6038L5.14026 31.7319L4.983 31.7901C4.92403 31.8134 4.86506 31.8367 4.80609 31.8484C4.68815 31.8833 4.58004 31.9183 4.4621 31.9415C4.34416 31.9648 4.23604 31.9881 4.1181 31.9881C4.00999 31.9998 3.91171 31.9998 3.81342 31.9998H3.78394C3.666 31.9998 3.55788 31.9881 3.43994 31.9765C3.322 31.9648 3.21389 31.9415 3.09595 31.9183C2.97801 31.895 2.8699 31.86 2.75195 31.8134C2.68316 31.7901 2.62419 31.7668 2.55539 31.7435C2.50624 31.7203 2.4571 31.697 2.40796 31.6737C2.29002 31.6154 2.18191 31.5572 2.06397 31.4873C1.94602 31.4174 1.82808 31.3359 1.71997 31.2427C1.67083 31.2078 1.62169 31.1612 1.57255 31.1262C1.50375 31.068 1.44478 31.0098 1.37598 30.9399C1.25804 30.8234 1.1401 30.6953 1.03198 30.5555C0.904214 30.4041 0.786273 30.2294 0.687989 30.0547C0.550391 29.8334 0.442278 29.6004 0.343994 29.3559C0.117941 28.7735 0 28.1329 0 27.469V18.1978C0 17.4524 0.117941 16.7302 0.343994 16.0663C0.393136 15.9149 0.442278 15.7751 0.501249 15.6354C0.560219 15.4956 0.61919 15.3675 0.67816 15.2394C0.717474 15.1462 0.766616 15.0647 0.815758 14.9831C0.874728 14.8783 0.933699 14.7735 1.0025 14.6803C1.0025 14.6687 1.01233 14.657 1.02215 14.657C1.13027 14.494 1.23838 14.3425 1.36615 14.1911C1.41529 14.1329 1.4546 14.0746 1.51358 14.0281C1.58237 13.9465 1.64134 13.8883 1.71014 13.8184C1.80843 13.7252 1.90671 13.6204 2.01482 13.5389C2.02465 13.5272 2.04431 13.5156 2.05414 13.5039C2.16225 13.4108 2.28019 13.3176 2.39813 13.2477C2.43745 13.2244 2.47676 13.1895 2.5259 13.1662C2.5947 13.1196 2.67333 13.073 2.74213 13.0264C2.75195 13.0147 2.76178 13.0147 2.78144 13.0031C2.86007 12.9565 2.94852 12.9099 3.02715 12.875C3.04681 12.8633 3.06646 12.8517 3.08612 12.8517C3.1844 12.8051 3.29252 12.7585 3.3908 12.7236L3.42029 12.7119L3.51857 12.677L3.76428 12.5838L4.02965 12.479L4.10828 12.444L4.45227 12.3159L4.5309 12.281L4.79626 12.1878L4.85523 12.1645L5.04197 12.0946L5.14026 12.0597L5.48425 11.9316L5.54322 11.9083L5.81842 11.8034L6.04447 11.7219L6.16241 11.6753L6.50641 11.5472L6.54572 11.5355L6.80126 11.4424L6.8504 11.4307L7.0568 11.3492L7.19439 11.3026L7.53839 11.1745L7.55805 11.1628L7.87256 11.0464L8.0593 10.9765L8.21655 10.9182L8.56054 10.7901H8.57037L8.90454 10.662L9.07162 10.6038L9.24853 10.5339L9.45493 10.4523L9.50407 10.4407L9.71047 10.3592L9.84807 10.3009L10.1921 10.1728L10.2117 10.1612L10.5262 10.0447L10.713 9.97481L10.8112 9.92822Z\"\n fill=\"#0231C5\"\n />\n </svg>\n );\n};\n","import { SVGProps } from \"react\";\n\ntype SidebarToggleProps = {\n onToggleSideBar: (isOpen: boolean) => void;\n isSidebarCollapsed: boolean;\n};\n\nexport const SidebarToggle = ({\n onToggleSideBar,\n isSidebarCollapsed,\n}: SidebarToggleProps) => {\n return (\n <button\n onClick={() => onToggleSideBar(!isSidebarCollapsed)}\n className=\"w-6 h-12 bg-[#EEF2FF] rounded-tr-md [clip-path:polygon(0%_0%,100%_0%,100%_60%,0%_100%,0%_100%)] mt-5 flex justify-center items-center\"\n >\n <ToggleIcon className=\"mb-3\" />\n </button>\n );\n};\n\nconst ToggleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n width=\"20\"\n height=\"15\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n color=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M4.52669 6.50008C4.25055 6.50008 4.02669 6.72394 4.02669 7.00008C4.02669 7.27622 4.25055 7.50008 4.52669 7.50008H5.48958C5.76573 7.50008 5.98958 7.27622 5.98958 7.00008C5.98958 6.72394 5.76573 6.50008 5.48958 6.50008H4.52669Z\"\n fill=\"#878989\"\n />\n <path\n d=\"M4.02669 8.66675C4.02669 8.39061 4.25055 8.16675 4.52669 8.16675H5.48958C5.76573 8.16675 5.98958 8.39061 5.98958 8.66675C5.98958 8.94289 5.76573 9.16675 5.48958 9.16675H4.52669C4.25055 9.16675 4.02669 8.94289 4.02669 8.66675Z\"\n fill=\"#878989\"\n />\n <path\n d=\"M4.52669 9.83342C4.25055 9.83342 4.02669 10.0573 4.02669 10.3334C4.02669 10.6096 4.25055 10.8334 4.52669 10.8334H5.48958C5.76573 10.8334 5.98958 10.6096 5.98958 10.3334C5.98958 10.0573 5.76573 9.83342 5.48958 9.83342H4.52669Z\"\n fill=\"#878989\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.68166 5.07676C2.5 5.43328 2.5 5.89999 2.5 6.83341V13.1667C2.5 14.1002 2.5 14.5669 2.68166 14.9234C2.84144 15.237 3.09641 15.492 3.41002 15.6518C3.76654 15.8334 4.23325 15.8334 5.16667 15.8334H14.8333C15.7668 15.8334 16.2335 15.8334 16.59 15.6518C16.9036 15.492 17.1586 15.237 17.3183 14.9234C17.5 14.5669 17.5 14.1002 17.5 13.1667V6.83341C17.5 5.89999 17.5 5.43328 17.3183 5.07676C17.1586 4.76316 16.9036 4.50819 16.59 4.3484C16.2335 4.16675 15.7668 4.16675 14.8333 4.16675H5.16667C4.23325 4.16675 3.76654 4.16675 3.41002 4.3484C3.09641 4.50819 2.84144 4.76316 2.68166 5.07676ZM14.8333 5.16675H7.66667L7.66667 14.8334H14.8333C15.3165 14.8334 15.6188 14.8326 15.8466 14.814C16.0626 14.7964 16.1222 14.7678 16.136 14.7608C16.2614 14.6968 16.3634 14.5949 16.4273 14.4694C16.4344 14.4556 16.463 14.3961 16.4806 14.18C16.4992 13.9522 16.5 13.65 16.5 13.1667V6.83341C16.5 6.3502 16.4992 6.04794 16.4806 5.82018C16.463 5.6041 16.4344 5.54455 16.4273 5.53075C16.3634 5.40531 16.2614 5.30333 16.136 5.23941C16.1222 5.23238 16.0626 5.20379 15.8466 5.18613C15.6188 5.16753 15.3165 5.16675 14.8333 5.16675ZM5.16667 5.16675H6.66667L6.66667 14.8334H5.16667C4.68346 14.8334 4.38119 14.8326 4.15344 14.814C3.93736 14.7964 3.8778 14.7678 3.86401 14.7608C3.73856 14.6968 3.63658 14.5949 3.57266 14.4694C3.56564 14.4556 3.53704 14.3961 3.51939 14.18C3.50078 13.9522 3.5 13.65 3.5 13.1667V6.83341C3.5 6.3502 3.50078 6.04794 3.51939 5.82018C3.53704 5.6041 3.56563 5.54455 3.57266 5.53075C3.63658 5.40531 3.73856 5.30333 3.86401 5.23941C3.8778 5.23238 3.93736 5.20379 4.15344 5.18613C4.38119 5.16753 4.68346 5.16675 5.16667 5.16675Z\"\n fill=\"#878989\"\n />\n </svg>\n);\n","import { cn } from \"@/src/utils\";\n\ntype Variant = \"success\" | \"failed\" | \"pending\" | \"abandoned\";\n\nexport const Status = ({\n status,\n variant,\n className,\n}: {\n status: string;\n variant: Variant;\n className?: string;\n}) => {\n return (\n <div>\n <div\n className={cn(\n \"order-first max-w-max flex-none rounded-full px-2 py-1 text-xs font-medium ring-1 ring-inset ring-current sm:order-none text-[14px] capitalize\",\n {\n \"bg-green-500/20 text-green-500\": variant === \"success\",\n },\n {\n \"bg-gray-500/20 text-white\": variant === \"abandoned\",\n },\n {\n \"bg-red-500/20 text-red-500\": variant === \"failed\",\n },\n {\n \"bg-yellow-500/20 text-yellow-500\": variant === \"pending\",\n },\n className,\n )}\n >\n <p>{status.replace(\"-\", \" \")}</p>\n </div>\n </div>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { Table as ReactTable, Row, RowData } from \"@tanstack/react-table\";\nimport { Loader } from \"lucide-react\";\nimport { ReactNode } from \"react\";\nimport { Pagination, PaginationProps } from \"./pagination\";\nimport { TableBody } from \"./TableBody\";\nimport { PageDataToolbar } from \"./ToolBar\";\n\nexport type TableSearchProps = {\n enabled: boolean;\n debounceRate?: number;\n onSearch?: (query: string) => void;\n};\n\nexport type TableDownloadProps = {\n enabled: boolean;\n buttonId?: string;\n onDownload?: () => void;\n buttonText?: string;\n};\nexport type TablePaginationProps = {\n enabled: boolean;\n} & PaginationProps;\n\ntype TableProps<T extends RowData> = {\n ExtraNode?: ReactNode;\n FilterMenu?: ReactNode;\n buttonClassName?: string;\n download?: TableDownloadProps;\n id?: string;\n isLoading?: boolean;\n isMobile?: boolean;\n isRefetching?: boolean;\n onExport?: () => void;\n onRefetch?: () => void;\n onRowClick?: (row: Row<T>) => void;\n pagination?: TablePaginationProps;\n search?: TableSearchProps;\n table: ReactTable<T>;\n};\n\nexport const Table = <T extends RowData>({\n table,\n isMobile = false,\n onRowClick,\n id,\n onRefetch,\n isRefetching,\n FilterMenu,\n ExtraNode,\n //deprecated: onExport - use download\n onExport,\n search = {\n enabled: false,\n debounceRate: 700,\n },\n download = {\n enabled: false,\n buttonId: \"download_button\",\n buttonText: \"Export\",\n },\n isLoading,\n pagination,\n}: TableProps<T>) => {\n return (\n <div className={cn(\"relative w-full rounded-b border-0 overflow-x-auto\")}>\n <PageDataToolbar\n onRefetch={onRefetch}\n search={search}\n FilterMenu={FilterMenu}\n ExtraNode={ExtraNode}\n onExport={onExport}\n download={download}\n isRefetching={isRefetching}\n />\n\n <main className=\"w-full overflow-x-auto mt-5\">\n {isLoading ? (\n <div className=\"py-10 flex flex-col justify-center w-full items-center space-x-2\">\n <Loader size={20} className=\"animate-spin\" />\n <p className=\"mt-3 text-center text-gray-600 text-sm opacity-70 animate-pulse\">\n Loading...\n </p>\n </div>\n ) : table.getRowModel().rows.length < 1 ? (\n <div className=\"py-10 flex flex-col justify-center w-full items-center\">\n <p className=\"text-center text-gray-600 text-sm opacity-70\">\n No data available\n </p>\n </div>\n ) : (\n <div className=\"flex flex-col gap-2\">\n <TableBody\n table={table}\n isMobile={isMobile}\n onRowClick={onRowClick}\n id={id}\n />\n </div>\n )}\n </main>\n\n {!isLoading &&\n pagination?.enabled &&\n table.getRowModel().rows.length > 0 && (\n <Pagination\n {...pagination}\n currentPage={pagination?.currentPage ?? 1}\n totalPages={\n pagination?.totalPages ??\n Math.ceil(\n (pagination?.totalItems ?? 0) /\n Math.max(pagination?.itemsPerPage ?? 1, 1),\n ) ??\n 1\n }\n onPageChange={(page) => pagination?.onPageChange?.(page)}\n />\n )}\n </div>\n );\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\nimport { renderPageNumbers } from \"./utils\";\n\nexport type PaginationProps = {\n currentPage?: number;\n totalPages?: number;\n onPageChange?: (page: number) => void;\n totalItems?: number;\n itemsPerPage?: number;\n};\n\n/**\n * Pagination component for displaying pagination controls.\n * @param {number} currentPage - The current page number.\n * @param {number} totalPages - The total number of pages.\n * @param {function} onPageChange - Callback function to handle page change.\n * @param {number | undefined} itemsPerPage - The number of items per page.\n */\nexport const Pagination = ({\n currentPage = 1,\n totalPages = 1,\n onPageChange,\n itemsPerPage = 0,\n totalItems = 0,\n}: PaginationProps) => {\n const handlePageClick = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n onPageChange?.(page);\n }\n };\n const visibleRangeStart =\n itemsPerPage === 0 ? 1 : itemsPerPage * (currentPage - 1) + 1;\n const visibleRangeEnd =\n currentPage === totalPages\n ? totalItems\n : Math.min(visibleRangeStart + itemsPerPage - 1, totalItems);\n return (\n <div className=\"flex items-center justify-between border-t border-gray-200 px-4 py-3 sm:px-6 w-full flex-wrap gap-y-10 sm:gap-y-0\">\n {totalItems && (\n <section className=\"text-[#717171] text-[12px]\">\n <p className=\"\">\n Showing {visibleRangeStart} - {visibleRangeEnd} of {totalItems}\n </p>\n </section>\n )}\n <div className=\"flex items-center justify-center sm:justify-end \">\n <nav className=\" inline-flex gap-x-1 sm:gap-x-[10px] items-center\">\n <button\n onClick={() => handlePageClick(currentPage - 1)}\n disabled={currentPage === 1}\n className=\"text-xs text-[#222222] hover:bg-primary-main/10 disabled:text-[#D9D9D9] disabled:cursor-not-allowed sm:flex hidden\"\n >\n <ChevronLeftIcon className=\"size-5\" />\n </button>\n {renderPageNumbers({ currentPage, totalPages, handlePageClick })}\n <button\n onClick={() => handlePageClick(currentPage + 1)}\n disabled={currentPage === totalPages}\n className=\"text-xs text-[#222222] hover:bg-primary-main/10 disabled:text-[#D9D9D9] disabled:cursor-not-allowed sm:flex hidden\"\n >\n <ChevronRightIcon className=\"size-5\" />\n </button>\n </nav>\n </div>\n </div>\n );\n};\n","type RenderPageNumbersProps = {\n totalPages: number;\n currentPage: number;\n handlePageClick: (page: number) => void;\n};\n\nconst PageButton = ({\n page,\n currentPage,\n onClick,\n}: {\n page: number | string;\n currentPage: number;\n onClick?: () => void;\n}) => {\n if (typeof page === \"string\") {\n return (\n <span className=\"px-3 py-1 sm:px-4 sm:py-2 text-xs sm:text-sm font-semibold text-gray-500\">\n {page}\n </span>\n );\n }\n\n return (\n <button\n onClick={onClick}\n className={`p-1 w-8 h-8 text-xs sm:text-sm rounded-full ${\n page === currentPage\n ? \"bg-primary-main text-white\"\n : \"text-[#717171] hover:bg-primary-main/10\"\n }`}\n >\n {page}\n </button>\n );\n};\n\nexport const renderPageNumbers = ({\n totalPages,\n currentPage,\n handlePageClick,\n}: RenderPageNumbersProps) => {\n const maxVisiblePages = 3;\n\n const getWindowBounds = () => {\n const halfWindow = Math.floor(maxVisiblePages / 2);\n let start = Math.max(1, currentPage - halfWindow);\n let end = Math.min(totalPages, start + maxVisiblePages - 1);\n\n if (end > totalPages) {\n start = Math.max(1, totalPages - maxVisiblePages + 1);\n end = totalPages;\n }\n\n return { start, end };\n };\n\n const { start, end } = getWindowBounds();\n const pages: (number | string)[] = [];\n\n if (start > 1) pages.push(1);\n if (start > 2) pages.push(\"...\");\n pages.push(...Array.from({ length: end - start + 1 }, (_, i) => start + i));\n if (end < totalPages - 1) pages.push(\"...\");\n if (end < totalPages) pages.push(totalPages);\n\n return pages.map((page, idx) => (\n <PageButton\n key={idx}\n page={page}\n currentPage={currentPage}\n onClick={\n typeof page === \"number\" ? () => handlePageClick(page) : undefined\n }\n />\n ));\n};\n","import {\n flexRender,\n Row,\n RowData,\n Table as ReactTable,\n} from \"@tanstack/react-table\";\nimport { cn } from \"@/src/utils\";\n\ntype TableBodyProps<T extends RowData> = {\n table: ReactTable<T>;\n isMobile: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onRowClick?: (row: Row<any>) => void;\n id?: string;\n};\n\nexport const TableBody = <T extends RowData>({\n table,\n isMobile,\n onRowClick,\n id,\n}: TableBodyProps<T>) => {\n return (\n <div className={cn(\"relative w-full rounded-b border-0\", {})}>\n <table id={id ?? \"table\"} className=\"w-full overflow-x-scroll\">\n <thead>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n className={cn(\n \" rounded text-[#717171] border-b- bg-[#FCFCFC]\",\n {},\n )}\n key={headerGroup.id}\n >\n {headerGroup.headers.map((header) => (\n <th\n className=\"relative py-3 text-base whitespace-nowrap pl-2.5 text-left font-normal capitalize\"\n colSpan={header.colSpan}\n key={header.id}\n style={{\n width: header.getSize(),\n }}\n >\n {header.isPlaceholder ? null : (\n <div\n className={cn(\"flex items-center\", {\n \"cursor-pointer select-none\":\n header.column.getCanSort(),\n })}\n onClick={header.column.getToggleSortingHandler()}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </div>\n )}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n <tbody className=\" pl-2.5\">\n {table?.getFilteredRowModel().rows.map((row) => (\n <tr\n className={cn(\n \"first-letter border-b border-zinc-100\",\n {\n \"hover:bg-gray-50\": !isMobile,\n },\n {\n \"hover:bg-gray-50 hover:cursor-pointer\": onRowClick,\n },\n )}\n key={row.id}\n onClick={() => (onRowClick ? onRowClick(row) : {})}\n >\n {row.getVisibleCells().map((cell) => (\n <td\n className={cn(\"\", {\n // block: false,\n })}\n key={cell.id}\n >\n <div\n className={cn(\"\", {\n \"w-max p-4 pl-2.5 text-black text-sm\": true,\n })}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n};\n","import { cn } from \"@/src/utils\";\nimport { Download, ListFilter, RotateCw } from \"lucide-react\";\nimport { ReactNode } from \"react\";\nimport { Button, buttonVariants } from \"../button\";\nimport { DebouncedInput } from \"../debounced-input\";\nimport { Popover } from \"../popover\";\nimport { TableDownloadProps, TableSearchProps } from \"./index\";\n\ntype PageDataToolbarProps = {\n onRefetch?: () => void;\n search?: TableSearchProps;\n FilterMenu?: ReactNode;\n ExtraNode?: ReactNode;\n onExport?: () => void;\n download?: TableDownloadProps;\n isRefetching?: boolean;\n};\n\nexport const PageDataToolbar = ({\n onRefetch,\n search,\n FilterMenu,\n ExtraNode,\n onExport,\n download,\n isRefetching,\n}: PageDataToolbarProps) => {\n const handleSearch = (query: string) => {\n search?.onSearch?.(query);\n };\n\n const handleRefetch = () => {\n try {\n onRefetch?.();\n } catch (e) {\n console.error(\"Error while refetching data\", e);\n }\n };\n\n return (\n <>\n {(onRefetch ||\n search?.enabled ||\n FilterMenu ||\n ExtraNode ||\n onExport) && (\n <div className=\"w-full flex flex-col sm:!flex-row justify-between items-start sm:items-center bg-white p-2 gap-2\">\n <div className=\"flex flex-1 flex-col sm:flex-row items-center gap-2 justify-start\">\n <div className=\" w-full flex gap-x-3\">\n {search?.enabled && (\n <section className=\"sm:w-56\">\n <DebouncedInput\n type=\"text\"\n placeholder=\"Enter search here...\"\n className=\"h-9\"\n onChange={handleSearch}\n debounce={search?.debounceRate}\n />\n </section>\n )}\n <div className=\" flex gap-2\">\n {onRefetch && (\n <Button\n onClick={handleRefetch}\n title=\"Refetch Data\"\n disabled={isRefetching}\n variant=\"outlined\"\n className=\"!border-[#DEDEDE] !text-gray-800 !px-[10px] !py-[8px] \"\n size={\"sm\"}\n >\n <RotateCw\n className={cn(\"w-4 h-4\", {\n \"animate-spin\": isRefetching,\n })}\n size={5}\n />\n </Button>\n )}\n\n {FilterMenu && (\n <Popover\n trigger={\n <button\n title=\"Filter\"\n className={cn(\n \"!border-[#DEDEDE] !text-gray-800 !px-[10px] !py-[8px]\",\n buttonVariants({\n variant: \"outlined\",\n size: \"sm\",\n }),\n )}\n >\n <ListFilter className=\"w-4 h-4\" size={5} />\n </button>\n }\n >\n {FilterMenu}\n </Popover>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex items-start flex-col gap-2 justify-center\">\n <section className=\"flex flex-col-reverse sm:flex-row gap-2\">\n <div className=\"flex gap-2\">\n {ExtraNode && ExtraNode}\n\n {onExport && (\n <Button variant=\"primary\" onClick={onExport} size={\"sm\"}>\n Export\n </Button>\n )}\n {download?.enabled && (\n <Button\n variant=\"primary\"\n leftNode={<Download className=\"w-4 h-5\" size={5} />}\n onClick={download?.onDownload}\n id={download.buttonId}\n size={\"sm\"}\n >\n {download?.buttonText}\n </Button>\n )}\n </div>\n </section>\n </div>\n </div>\n )}\n </>\n );\n};\n","import { createContext, ReactNode, useMemo } from \"react\";\nimport { ResourcePermissions } from \"@/src/components/permission/types\";\n\nexport const PermissionsContext = createContext<\n ResourcePermissions | undefined\n>(undefined);\n\nexport const PermissionsProvider = ({\n permissions,\n children,\n}: {\n permissions: ResourcePermissions;\n children: ReactNode;\n}) => {\n const value = useMemo(() => permissions, [permissions]);\n return (\n <PermissionsContext.Provider value={value}>\n {children}\n </PermissionsContext.Provider>\n );\n};\n","import { useCallback, useContext, useMemo } from \"react\";\nimport { PermissionsContext } from \"./context\";\n\nexport const usePermissions = () => {\n const permissions = useContext(PermissionsContext);\n return permissions;\n};\n\nexport const useHasPermission = (permission: {\n resource?: string;\n action?: string;\n}) => {\n const permissions = usePermissions();\n\n const validatePermission = useCallback(\n (permission: { resource?: string; action?: string }) => {\n if (!permissions || !permission) return true;\n\n const hasAdminAccess = permissions.some(\n (p) => p.resource === \"all\" && p.action === \"administrator\",\n );\n\n if (hasAdminAccess) return true;\n\n const { resource, action } = permission;\n const matchingPermissions = permissions.filter(\n (p) => p.resource === resource,\n );\n const hasExactMatch = matchingPermissions.some(\n (p) => p.action === action,\n );\n if (hasExactMatch) return true;\n if (action === \"read\") {\n return matchingPermissions.some((p) => p.action === \"write\");\n }\n return false;\n },\n [permission],\n );\n\n const hasPermission = useMemo(\n () => validatePermission(permission),\n [permissions, permission],\n );\n\n return { hasPermission, validatePermission };\n};\n","import { useHasPermission } from \"./hook\";\nimport { ResourcePermissionProps } from \"./types\";\n\nexport const HasResourcePermission = ({\n permission,\n children,\n}: ResourcePermissionProps) => {\n const { hasPermission } = useHasPermission(permission || {});\n\n if (!permission) return <>{children}</>;\n\n return <>{hasPermission ? children : null}</>;\n};\n","export const CurrencySymbolMap: Record<string, string> = {\n USD: \"$\",\n CAD: \"CA$\",\n EUR: \"€\",\n AED: \"AED\",\n AFN: \"Af\",\n ALL: \"ALL\",\n AMD: \"AMD\",\n ARS: \"AR$\",\n AUD: \"AU$\",\n AZN: \"man.\",\n BAM: \"KM\",\n BDT: \"Tk\",\n BGN: \"BGN\",\n BHD: \"BD\",\n BIF: \"FBu\",\n BND: \"BN$\",\n BOB: \"Bs\",\n BRL: \"R$\",\n BWP: \"BWP\",\n BYN: \"Br\",\n BZD: \"BZ$\",\n CDF: \"CDF\",\n CHF: \"CHF\",\n CLP: \"CL$\",\n CNY: \"CN¥\",\n COP: \"CO$\",\n CRC: \"₡\",\n CVE: \"CV$\",\n CZK: \"Kč\",\n DJF: \"Fdj\",\n DKK: \"Dkr\",\n DOP: \"RD$\",\n DZD: \"DA\",\n EEK: \"Ekr\",\n EGP: \"EGP\",\n ERN: \"Nfk\",\n ETB: \"Br\",\n GBP: \"£\",\n GEL: \"GEL\",\n GHS: \"GH₵\",\n GNF: \"FG\",\n GTQ: \"GTQ\",\n HKD: \"HK$\",\n HNL: \"HNL\",\n HRK: \"kn\",\n HUF: \"Ft\",\n IDR: \"Rp\",\n ILS: \"₪\",\n INR: \"₹\",\n IQD: \"IQD\",\n IRR: \"IRR\",\n ISK: \"Ikr\",\n JMD: \"J$\",\n JOD: \"JD\",\n JPY: \"¥\",\n KES: \"Ksh\",\n KHR: \"KHR\",\n KMF: \"CF\",\n KRW: \"₩\",\n KWD: \"KD\",\n KZT: \"KZT\",\n LBP: \"L.L.\",\n LKR: \"SLRs\",\n LTL: \"Lt\",\n LVL: \"Ls\",\n LYD: \"LD\",\n MAD: \"MAD\",\n MDL: \"MDL\",\n MGA: \"MGA\",\n MKD: \"MKD\",\n MMK: \"MMK\",\n MOP: \"MOP$\",\n MUR: \"MURs\",\n MXN: \"MX$\",\n MYR: \"RM\",\n MZN: \"MTn\",\n NAD: \"N$\",\n NGN: \"₦\",\n NIO: \"C$\",\n NOK: \"Nkr\",\n NPR: \"NPRs\",\n NZD: \"NZ$\",\n OMR: \"OMR\",\n PAB: \"B/.\",\n PEN: \"S/.\",\n PHP: \"₱\",\n PKR: \"PKRs\",\n PLN: \"zł\",\n PYG: \"₲\",\n QAR: \"QR\",\n RON: \"RON\",\n RSD: \"din.\",\n RUB: \"RUB\",\n RWF: \"RWF\",\n SAR: \"SR\",\n SDG: \"SDG\",\n SEK: \"Skr\",\n SGD: \"S$\",\n SOS: \"Ssh\",\n SYP: \"SY£\",\n THB: \"฿\",\n TND: \"DT\",\n TOP: \"T$\",\n TRY: \"TL\",\n TTD: \"TT$\",\n TWD: \"NT$\",\n TZS: \"TSh\",\n UAH: \"₴\",\n UGX: \"USh\",\n UYU: \"$U\",\n UZS: \"UZS\",\n VEF: \"Bs.F.\",\n VND: \"₫\",\n XAF: \"F CFA\",\n XOF: \"CFA\",\n YER: \"YR\",\n ZAR: \"R\",\n ZMK: \"ZK\",\n ZWL: \"ZWL$\",\n};\nexport interface FormatCurrencyOptions {\n convertToMajorCurrency?: boolean;\n locale?: string;\n}\nexport class AmountAction {\n static getCurrencyLocaleMap(currency: string): string {\n const localeMap: Record<string, string> = {\n XOF: \"fr\",\n XAF: \"fr\",\n };\n return localeMap[currency] || \"en\";\n }\n static koboToNaira(amount: number | string) {\n return +amount / 100;\n }\n\n static nairaToKobo(amount: number | string) {\n return +amount * 100;\n }\n\n static getCurrencySymbol(currency: string): string {\n return CurrencySymbolMap[currency] || currency;\n }\n\n static formatAmountAndCurrency = (\n currency: string,\n value: number | string,\n options: FormatCurrencyOptions,\n ) => {\n const formatted = new Intl.NumberFormat(\n options?.locale || this.getCurrencyLocaleMap(currency),\n {\n maximumFractionDigits: 3,\n style: \"currency\",\n currency: currency,\n currencyDisplay: \"symbol\",\n },\n )\n .format(\n options?.convertToMajorCurrency\n ? this.koboToNaira(Number(value))\n : Number(value),\n )\n .replace(/^(\\D+)/, \"$1 \")\n .replace(\" \", \" \")\n .replace(/\\s+/, \"\");\n\n // Now replace the currency code with the desired symbol from the map\n const customSymbol = CurrencySymbolMap[currency] || currency;\n\n // Replace the currency code with our custom symbol\n return formatted.replace(currency, customSymbol);\n };\n}\n","// import dayjs from \"dayjs\";\nimport dayjs from \"dayjs\";\nexport class DateAction {\n static getDateLibrary(): dayjs.Dayjs {\n return dayjs();\n }\n static formatTimestampToDate(timestamp: number, dateFormat?: string) {\n return dayjs\n .unix(timestamp)\n .format(dateFormat || \"ddd, MMM, YYYY | HH:mm:ss\");\n }\n\n static formatDateToTimestamp(date: string) {\n return dayjs(date).unix();\n }\n}\n\n// console.log(\"Date\", dayjs().format(\"DD, MMM, YYYY | HH:mm:ss\"));\n"],"mappings":"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ACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,4BACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,gBACV,aAAc,MACd,aAAc,SACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,gBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,cACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,eACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,aACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,OACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,aACb,YAAa,OACb,SAAU,qBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,kBACV,aAAc,MACd,aAAc,IACd,oBAAqB,IACvB,EACA,CACE,YAAa,QACb,YAAa,OACb,SAAU,yBACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,UACb,YAAa,OACb,SAAU,iBACV,aAAc,MACd,aAAc,SACd,oBAAqB,IACvB,EACA,CACE,YAAa,wBACb,YAAa,OACb,SAAU,4BACV,aAAc,MACd,aAAc,KACd,oBAAqB,IACvB,EACA,CACE,YAAa,SACb,YAAa,OACb,SAAU,gBACV,a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","names":["index_exports","__export","AmountAction","Banner","Button","CopyableLabel","Country","CurrencySymbolMap","DateAction","DebouncedInput","DevBanner","Dialog","Drawer","DrawerClose","DrawerRoot","FlagComponent","FormLabel","HasResourcePermission","Input","Loader","LocaleSelector","OTPInput","PageDataToolbar","Pagination","PasswordInput","PermissionsContext","PermissionsProvider","PhoneInput","Popover","PopoverContent","PopoverRoot","PopoverTrigger","Select","Sidebar","Status","Table","Textarea","Tooltip","TooltipContent","TooltipProvider","TooltipRoot","TooltipTrigger","buttonVariants","cn","useHasPermission","usePermissions","__toCommonJS","React","TooltipPrimitive","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","TooltipProvider","TooltipRoot","TooltipTrigger","TooltipContent","className","sideOffset","props","ref","cn","Tooltip","trigger","children","contentClassName","triggerClassName","asChild","side","align","alignOffset","delayDuration","hasArrow","arrowClassName","import_react","React","LabelPrimitive","import_class_variance_authority","import_jsx_runtime","labelVariants","Label","className","props","ref","cn","import_jsx_runtime","FormLabel","React","className","children","showAsterisk","error","props","ref","Label","cn","import_jsx_runtime","Loader","size","colour","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","buttonVariants","Button","className","variant","size","asChild","isLoading","leftNode","rightNode","LoaderSize","props","ref","Component","children","disabled","rest","reference","cn","Loader","React","import_class_variance_authority","import_react","import_jsx_runtime","ErrorMessage","React","className","children","error","props","ref","body","cn","import_react","import_jsx_runtime","FormDescription","React","className","props","ref","cn","import_jsx_runtime","inputVariants","BaseInnerInput","className","status","type","props","ref","cn","inputContainerVariants","sideVariants","Input","disabled","error","isLoading","sideNodeClassName","showAsterisk","label","description","containerStatus","FormLabel","FormDescription","ErrorMessage","import_react","import_jsx_runtime","Eye","import_jsx_runtime","EyeOff","import_jsx_runtime","Check","import_jsx_runtime","Fail","import_jsx_runtime","validationOptions","PasswordInput","onValidate","onChange","disableValidation","props","passwordVisible","setPasswordVisible","validatedValues","setValidatedValues","validatePassword","value","option","checkPasswordStrength","validatedOptions","allValidated","handlePaswordInputChange","e","validated","ValidateComp","cn","Check","Fail","Input","val","Eye","EyeOff","import_class_variance_authority","import_jsx_runtime","textareaContainerVariants","Textarea","className","status","disabled","error","isLoading","showAsterisk","label","description","props","containerStatus","FormLabel","cn","inputContainerVariants","FormDescription","ErrorMessage","React","React","import_cmdk","import_lucide_react","React","DialogPrimitive","import_jsx_runtime","CloseIcon","import_jsx_runtime","DialogRoot","DialogTrigger","DialogPortal","DialogOverlay","className","props","ref","cn","DialogContent","hideCloseButton","children","CloseIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Dialog","trigger","open","onOpenChange","footer","title","description","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","asChild","onOpenAutoFocus","onCloseAutoFocus","onEscapeKeyDown","onInteractOutside","onPointerDownOutside","import_jsx_runtime","Command","className","props","ref","CommandPrimitive","cn","CommandInput","className","CommandInputContainerClassName","loading","props","ref","cn","Loader","CommandPrimitive","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut","React","PopoverPrimitive","import_jsx_runtime","PopoverRoot","PopoverTrigger","PopoverContent","className","align","sideOffset","portal","props","ref","cn","Popover","trigger","children","open","onOpenChange","contentClassName","asChild","side","alignOffset","triggerClassName","onOpenAutoFocus","onCloseAutoFocus","React","ScrollAreaPrimitive","import_jsx_runtime","ScrollArea","className","viewPortClassName","children","props","ref","cn","ScrollBar","orientation","import_jsx_runtime","SearchableTrigger","className","value","placeholder","status","disabled","PopoverTrigger","cn","inputContainerVariants","Searchable","options","onChange","containerClassName","loading","optionComponent","children","modal","hideSearch","inputValue","onValueChange","onInputValueChange","open","setOpen","triggerRef","width","setWidth","PopoverRoot","PopoverContent","Command","CommandInput","ScrollArea","CommandList","CommandEmpty","CommandGroup","option","CommandItem","countryData","getCountryDataMap","frequency","country","React","RPNInput","import_flags","import_jsx_runtime","FlatGlobeIcon","props","Flag_default","import_jsx_runtime","PhoneInput","className","onChange","defaultCountry","modal","showAsterisk","label","description","error","props","ref","CountrySelectWrapper","innerProps","CountrySelect","FormLabel","cn","FlagComponent","InputComponent","value","FormDescription","ErrorMessage","Input","disabled","options","status","handleSelect","country","PopoverRoot","PopoverTrigger","inputContainerVariants","PopoverContent","Command","CommandList","ScrollArea","CommandInput","CommandEmpty","CommandGroup","x","option","CommandItem","countryName","Flag","flags","Flag_default","import_jsx_runtime","countryMap","getCountryDataMap","CountryTrigger","className","value","placeholder","status","disabled","PopoverTrigger","cn","inputContainerVariants","FlagComponent","Country","hideSearch","showAsterisk","label","description","error","props","options","countryData","country","FormLabel","Searchable","arg","FormDescription","ErrorMessage","import_jsx_runtime","Select","showAsterisk","label","description","error","hideSearch","status","props","FormLabel","Searchable","SearchableTrigger","FormDescription","ErrorMessage","import_react_otp_input","import_class_variance_authority","import_react","import_jsx_runtime","otpInputVariants","OTPInput","numInputs","inputStyle","containerStyle","placeholder","status","props","placeholderValue","accumulator","currentValue","OtpInput","cn","import_react","import_jsx_runtime","Icon","type","Banner","title","description","open","showCloseButton","bottomNode","sideNode","onClose","showIcon","isOpen","setIsOpen","bgColor","stripeColor","handleClose","import_react","import_lucide_react","import_framer_motion","import_jsx_runtime","CopyableLabel","text","textToCopy","onCopy","iconsPosition","clampText","textClassName","copied","setCopied","copyToClipboard","Icon","AnimatedIcon","cn","onClick","import_react","import_lucide_react","import_jsx_runtime","DebouncedInput","initialValue","onChange","debounce","addon","props","value","setValue","handleInputChange","event","timeout","Input","cn","import_react","import_lucide_react","import_jsx_runtime","DevBanner","props","environment","branch","version","deployTime","showBanner","onClose","initDefault","removeFromStorage","syncLocalStorageToState","currentEnv","interval","React","import_vaul","import_class_variance_authority","import_jsx_runtime","CloseIcon","import_react","useWindowSize","windowSize","setWindowSize","handleResize","import_jsx_runtime","DrawerRoot","shouldScaleBackground","props","DrawerPrimitive","DrawerTrigger","DrawerClose","DrawerPortal","DrawerOverlay","className","ref","cn","DrawerVariants","DrawerContent","side","hideCloseButton","children","CloseIcon","DrawerHeader","DrawerFooter","DrawerTitle","DrawerDescription","Drawer","trigger","open","onOpenChange","footer","title","description","contentClassName","headerClassName","titleClassName","descriptionClassName","footerClassName","asChild","onOpenAutoFocus","onCloseAutoFocus","width","useWindowSize","direction","import_jsx_runtime","Check","import_jsx_runtime","EnglishFlag","props","import_jsx_runtime","FrenchFlag","props","import_jsx_runtime","UpDownIcon","import_react_popover","import_jsx_runtime","localeListOptons","LocaleIcon","locale","FrenchFlag","EnglishFlag","LocaleTrigger","UpDownIcon","LocaleSelector","onChange","locales","PopoverRoot","PopoverTrigger","PopoverContent","_locale","cn","Check","import_react","import_framer_motion","import_react","import_hi","import_fi","import_bs","import_jsx_runtime","BusinessBarTrigger","activeBusiness","onTriggerClick","iconOnly","className","rightNode","cn","import_lucide_react","import_jsx_runtime","businessPopUpVariants","BusinessBarContent","activeBusiness","toggleAddBusinessDrawer","businesses","handleSwitchBusiness","onLogoutClick","onToggleSideBar","toggleShowBusiness","isMobile","collapseType","searchText","setSearchText","searchedBusinesses","text","b","hiddenCollapseType","onSearchChange","e","onBusinessClick","clientId","onToggleAddBusinessDrawer","onHandleLogoutClick","BusinessBarTrigger","Input","cn","import_jsx_runtime","BusinessBar","activeBusiness","toggleAddBusinessDrawer","toggleShowBusiness","businesses","handleSwitchBusiness","iconOnly","onLogoutClick","isMobile","onToggleSideBar","isBusinessShown","collapseType","Popover","BusinessBarTrigger","Icon","BusinessBarContent","className","cn","import_framer_motion","import_react","import_fi","import_jsx_runtime","accordionItemVariants","NavItems","isIconsOnly","isSidebarCollapsed","onToggleSideBar","currentPath","onNavigate","collapseType","links","appConfig","isMobile","expandedMenus","setExpandedMenus","toggleAccordion","linkId","prev","handleMenuLink","link","getActiveMenu","l","expanded","child","idx","active","hasChildren","isExpanded","cn","Tooltip","childLink","childActive","import_lucide_react","import_jsx_runtime","OpenSidebarIcon","import_jsx_runtime","ClosedSidebarIcon","import_jsx_runtime","SidebarToggle","onToggleSideBar","isSidebarCollapsed","ToggleIcon","props","import_jsx_runtime","Sidebar","isSidebarCollapsed","onToggleSideBar","isMobile","links","businessProps","currentPath","onNavigate","appConfig","propCollapseType","onLogoutClick","openSidebarIcon","OpenSidebarIcon","closedSidebarIcon","ClosedSidebarIcon","nodeAfterSideBarLogo","collapseType","isBusinessShown","setIsBusinessShown","isIconsOnly","sideBarRef","businessList","activeBusiness","toggleAddBusinessDrawer","handleSetActiveBusiness","toggleShowBusiness","handleSwitchBusiness","clientId","sideBarLogo","showBackdrop","cn","SidebarToggle","NavItems","BusinessBar","import_jsx_runtime","Status","status","variant","className","cn","import_lucide_react","import_lucide_react","import_jsx_runtime","PageButton","page","currentPage","onClick","renderPageNumbers","totalPages","handlePageClick","getWindowBounds","halfWindow","start","end","pages","_","i","idx","import_jsx_runtime","Pagination","currentPage","totalPages","onPageChange","itemsPerPage","totalItems","handlePageClick","page","visibleRangeStart","visibleRangeEnd","renderPageNumbers","import_react_table","import_jsx_runtime","TableBody","table","isMobile","onRowClick","id","cn","headerGroup","header","row","cell","import_lucide_react","import_jsx_runtime","PageDataToolbar","onRefetch","search","FilterMenu","ExtraNode","onExport","download","isRefetching","handleSearch","query","handleRefetch","e","DebouncedInput","Button","cn","Popover","buttonVariants","import_jsx_runtime","Table","table","isMobile","onRowClick","id","onRefetch","isRefetching","FilterMenu","ExtraNode","onExport","search","download","isLoading","pagination","cn","PageDataToolbar","TableBody","Pagination","page","import_react","import_jsx_runtime","PermissionsContext","PermissionsProvider","permissions","children","value","import_react","usePermissions","PermissionsContext","useHasPermission","permission","permissions","validatePermission","resource","action","matchingPermissions","import_jsx_runtime","HasResourcePermission","permission","children","hasPermission","useHasPermission","CurrencySymbolMap","_AmountAction","currency","amount","__publicField","value","options","formatted","customSymbol","AmountAction","import_dayjs","DateAction","dayjs","timestamp","dateFormat","date"]}
|