atomos_next_genesis 0.0.3-alpha
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/README.md +464 -0
- package/dist/index.cjs +2500 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +2698 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +534 -0
- package/dist/index.d.ts +534 -0
- package/dist/index.js +2464 -0
- package/dist/index.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../app/index.ts","../app/components/Accordian.tsx","../app/utils/utils.tsx","../app/components/Avatar.tsx","../app/components/AvatarGroup.tsx","../app/components/Breadcrumb.tsx","../app/components/Button.tsx","../app/components/Checkbox.tsx","../app/components/Chip.tsx","../app/components/CircularProgress.tsx","../app/components/Divider.tsx","../app/components/Dropdown.tsx","../app/components/Input.tsx","../app/components/Label.tsx","../app/components/Tooltip.tsx","../app/components/DropdownWithIcon.tsx","../app/components/FileUpload.tsx","../app/components/GlobalNavigation.tsx","../app/components/HelperText.tsx","../app/components/ListItem.tsx","../app/components/Loading.tsx","../app/components/Modal.tsx","../app/components/MenuItem.tsx","../app/components/Notice.tsx","../app/components/Pagination.tsx","../app/components/Progress.tsx","../app/components/Radio.tsx","../app/components/Sidebar.tsx","../app/components/Slider.tsx","../app/components/Skeleton.tsx","../app/components/Stepper.tsx","../app/components/TableComponents.tsx","../app/components/Tabs.tsx","../app/components/Textarea.tsx","../app/components/Toggle.tsx"],"sourcesContent":["import './globals.css';\nexport * from \"./components/index\"","\"use client\";\nimport React, { useState } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { RiArrowDownSLine } from \"@remixicon/react\";\n\ntype AccordionProps = {\n type?: \"single\" | \"multiple\";\n collapsible?: boolean;\n className?: string;\n children: React.ReactNode;\n};\n\nexport default function Accordion({\n type = \"single\",\n collapsible = true,\n className,\n children,\n}: AccordionProps) {\n const [openItems, setOpenItems] = useState<string[]>([]);\n\n const handleToggle = (value: string) => {\n if (type === \"single\") {\n setOpenItems((prev) =>\n prev.includes(value) ? (collapsible ? [] : prev) : [value]\n );\n } else {\n setOpenItems((prev) =>\n prev.includes(value)\n ? prev.filter((item) => item !== value)\n : [...prev, value]\n );\n }\n };\n\n return (\n <div className={className}>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(\n child as React.ReactElement<{\n openItems: string[];\n handleToggle: (value: string) => void;\n }>,\n {\n openItems,\n handleToggle,\n }\n );\n }\n return child;\n })}\n </div>\n );\n}\n\ntype AccordionItemProps = {\n value: string;\n disabled?: boolean;\n openItems?: string[];\n handleToggle?: (value: string) => void;\n children: React.ReactNode;\n className?: string;\n};\n\nexport function AccordionItem({\n value,\n disabled = false,\n openItems,\n handleToggle,\n children,\n className,\n}: AccordionItemProps) {\n const isOpen = openItems?.includes(value);\n\n const toggle = () => {\n if (!disabled && handleToggle) {\n handleToggle(value);\n }\n };\n\n return (\n <div\n className={cn(\n \"bg-white hover:bg-gray-50 rounded-lg shadow transition-all duration-300 ease-in-out\",\n disabled\n ? \"opacity-50 pointer-events-none select-none\"\n : \"cursor-pointer\",\n isOpen ? \"border border-gray-300\" : \"border\",\n className\n )}\n >\n <div\n className=\"font-semibold transition-all duration-300 ease-in-out\"\n onClick={toggle}\n >\n {children && Array.isArray(children) ? (\n <>\n {React.cloneElement(children[0] as React.ReactElement, { isOpen })}\n <div\n className={cn(\n \"grid transition-all duration-300 ease-in-out\",\n isOpen\n ? \"grid-rows-[1fr] opacity-100\"\n : \"grid-rows-[0fr] opacity-0\"\n )}\n >\n <div className=\"overflow-hidden\">\n <div className={cn(\"\")}>{children[1]}</div>\n </div>\n </div>\n </>\n ) : (\n children\n )}\n </div>\n </div>\n );\n}\n\ntype AccordionTriggerProps = {\n isOpen?: boolean;\n children: React.ReactNode;\n};\n\nexport function AccordionTrigger({ isOpen, children }: AccordionTriggerProps) {\n return (\n <div className=\"flex p-3.5 justify-between items-center text-sm font-semibold transition-all delay-150 ease-in\">\n {children}\n <span\n className={cn(\n \"transition-transform duration-300 transform\",\n isOpen ? \"rotate-180\" : \"rotate-0\"\n )}\n >\n <RiArrowDownSLine size={18} />\n </span>\n </div>\n );\n}\n\ntype AccordionContentProps = {\n isOpen?: boolean;\n children: React.ReactNode;\n};\n\nexport function AccordionContent({ isOpen, children }: AccordionContentProps) {\n return (\n <div\n className={cn(\n \"w-full font-normal px-3.5 pb-3.5 text-sm overflow-hidden transition-all duration-500 ease-in\",\n !isOpen ? \"max-h-full opacity-100\" : \"max-h-0 opacity-0\"\n )}\n >\n {children}\n </div>\n );\n}\n","import clsx, { ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport const cn = (...classes: ClassValue[]) => twMerge(clsx(...classes));\n","import Image from \"next/image\";\nimport React, { forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface BaseProps {\n type: \"image\" | \"icon\" | \"text\";\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n onClick?: () => void;\n rounded?: boolean;\n border?: boolean;\n borderColor?: string;\n borderWidth?: string;\n radius?: string;\n disabled?: boolean;\n statusIcon?: JSX.Element;\n statusPosition?: \"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\";\n}\n\nexport interface ImageProps extends BaseProps {\n type: \"image\";\n src: string;\n alt?: string;\n}\n\nexport interface IconProps extends BaseProps {\n type: \"icon\";\n icon: JSX.Element;\n}\n\nexport interface TextProps extends BaseProps {\n type: \"text\";\n text: string;\n}\n\ntype AvatarProps = ImageProps | IconProps | TextProps;\n\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>((props, ref) => {\n const {\n type,\n size = \"md\",\n className,\n onClick,\n rounded,\n border,\n borderColor,\n borderWidth,\n radius,\n disabled,\n statusIcon,\n statusPosition = \"bottom-right\",\n } = props;\n\n const sizes = {\n sm: \"w-8 h-8\",\n md: \"w-12 h-12\",\n lg: \"w-16 h-16\",\n };\n\n const displayText =\n type === \"text\" && props.text\n ? props.text.length === 2\n ? props.text.toUpperCase()\n : props.text\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase())\n .join(\"\")\n .slice(0, 2)\n : \"\";\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative -z-10 \",\n rounded && \"rounded-full\",\n border && \"border border-gray-200\",\n disabled && \"opacity-50 pointer-events-none select-none\"\n )}\n style={{\n borderColor: borderColor,\n borderWidth: borderWidth,\n borderRadius: radius,\n }}\n >\n {type === \"image\" && (\n <div\n className={cn(\n \"relative -z-10 flex items-center justify-center\",\n sizes[size],\n className\n )}\n onClick={onClick}\n >\n <Image\n fill\n className={cn(rounded && \"rounded-full\", \"object-cover\")}\n src={(props as ImageProps).src}\n alt={(props as ImageProps).alt || \"\"}\n />\n </div>\n )}\n {type === \"icon\" && (\n <div\n className={cn(\n \"flex items-center justify-center\",\n rounded && \"rounded-full\",\n className,\n sizes[size]\n )}\n onClick={onClick}\n >\n {(props as IconProps).icon}\n </div>\n )}\n {type === \"text\" && (\n <p\n onClick={onClick}\n className={cn(\n \"flex items-center justify-center text-sm font-medium text-gray-700\",\n rounded && \"rounded-full\",\n className,\n sizes[size],\n size === \"sm\" && \"text-xs\",\n size === \"lg\" && \"text-xl\",\n size === \"md\" && \"text-base\"\n )}\n >\n {displayText}\n </p>\n )}\n {statusIcon && (\n <span\n className={cn(\n \"absolute w-2 h-2\",\n // small\n statusPosition === \"bottom-left\" &&\n size === \"sm\" &&\n type === \"image\" &&\n \"bottom-0\",\n statusPosition === \"top-left\" &&\n size === \"sm\" &&\n type === \"image\" &&\n \"top-0 -left-1.5\",\n statusPosition === \"bottom-right\" &&\n size === \"sm\" &&\n type === \"image\" &&\n \"bottom-0.5 right-0.5\",\n statusPosition === \"top-right\" &&\n size === \"sm\" &&\n type === \"image\" &&\n \"-top-[1.1px] right-0\",\n // sm text and icon\n statusPosition === \"bottom-left\" &&\n size === \"sm\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-0\",\n statusPosition === \"top-left\" &&\n size === \"sm\" &&\n (type === \"text\" || type === \"icon\") &&\n \"-top-1 left-0\",\n statusPosition === \"bottom-right\" &&\n size === \"sm\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-0 right-1.5\",\n statusPosition === \"top-right\" &&\n size === \"sm\" &&\n (type === \"text\" || type === \"icon\") &&\n \"top-0 right-0.5\",\n // medium\n statusPosition === \"bottom-left\" &&\n size === \"md\" &&\n type === \"image\" &&\n \"bottom-1\",\n statusPosition === \"top-left\" &&\n size === \"md\" &&\n type === \"image\" &&\n \"-top-1 left-0.5\",\n statusPosition === \"bottom-right\" &&\n size === \"md\" &&\n type === \"image\" &&\n \"bottom-1 right-2\",\n statusPosition === \"top-right\" &&\n size === \"md\" &&\n type === \"image\" &&\n \"top-0 right-1\",\n // medium text and icon\n statusPosition === \"bottom-left\" &&\n size === \"md\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-1\",\n statusPosition === \"top-left\" &&\n size === \"md\" &&\n (type === \"text\" || type === \"icon\") &&\n \"-top-1 left-1\",\n statusPosition === \"bottom-right\" &&\n size === \"md\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-1 right-2\",\n statusPosition === \"top-right\" &&\n size === \"md\" &&\n (type === \"text\" || type === \"icon\") &&\n \"top-0 right-1.5\",\n // large\n statusPosition === \"bottom-left\" &&\n size === \"lg\" &&\n type === \"image\" &&\n \"bottom-2 left-0\",\n statusPosition === \"top-left\" &&\n size === \"lg\" &&\n type === \"image\" &&\n \"top-0 left-0.5\",\n statusPosition === \"bottom-right\" &&\n size === \"lg\" &&\n type === \"image\" &&\n \"bottom-2.5 right-2\",\n statusPosition === \"top-right\" &&\n size === \"lg\" &&\n type === \"image\" &&\n \"top-0 right-2\",\n // large text and icon\n statusPosition === \"bottom-left\" &&\n size === \"lg\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-1.5 left-1.5\",\n statusPosition === \"top-left\" &&\n size === \"lg\" &&\n (type === \"text\" || type === \"icon\") &&\n \"top-0 left-1\",\n statusPosition === \"bottom-right\" &&\n size === \"lg\" &&\n (type === \"text\" || type === \"icon\") &&\n \"bottom-2 right-2.5\",\n statusPosition === \"top-right\" &&\n size === \"lg\" &&\n (type === \"text\" || type === \"icon\") &&\n \"top-0 right-2.5\"\n )}\n >\n {statusIcon}\n </span>\n )}\n </div>\n );\n});\n\nAvatar.displayName = \"Avatar\";\n\nexport default Avatar;\n","// AvatarGroup.tsx\nimport React, { forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport Avatar, { ImageProps, IconProps, TextProps } from \"./Avatar\";\n\ntype AvatarItemProps =\n | Omit<ImageProps, \"size\">\n | Omit<IconProps, \"size\">\n | Omit<TextProps, \"size\">;\n\ninterface AvatarGroupProps {\n avatars: AvatarItemProps[];\n size?: \"sm\" | \"md\" | \"lg\";\n max?: number;\n className?: string;\n}\n\nconst AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ avatars, size = \"md\", max, className }, ref) => {\n const displayAvatars = max ? avatars.slice(0, max) : avatars;\n const remainingCount = max ? avatars.length - max : 0;\n\n return (\n <div\n ref={ref}\n className={cn(\"flex -space-x-6 rtl:space-x-reverse\", className)}\n >\n {displayAvatars.map((avatar, index) => (\n <div\n className=\"hover:-translate-x-3 transition-all duration-200\"\n key={index}\n >\n <Avatar {...avatar} size={size} />\n </div>\n ))}\n {remainingCount > 0 && (\n <div>\n <Avatar\n type=\"text\"\n text={`+${remainingCount}`}\n size={size}\n rounded\n className=\"bg-gray-100\"\n />\n </div>\n )}\n </div>\n );\n }\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n\nexport default AvatarGroup;\n","// \"use client\"\n// import React, { ReactNode } from \"react\";\n// import { usePathname } from \"next/navigation\";\n// import Link from \"next/link\";\n\n// type BreadCrumbProps = {\n// homeElement: ReactNode;\n// separator: ReactNode;\n// containerClasses?: string;\n// listClasses?: string;\n// activeClasses?: string;\n// capitalizeLinks?: boolean;\n// };\n\n// const Breadcrumb = ({\n// homeElement,\n// separator,\n// containerClasses,\n// listClasses,\n// activeClasses,\n// capitalizeLinks,\n// }: BreadCrumbProps) => {\n// const paths = usePathname();\n// const pathNames = paths?.split(\"/\")?.filter((path) => path);\n\n// return (\n// <div>\n// <ul className={containerClasses}>\n// <li className={listClasses}>\n// <Link href={\"/\"}>{homeElement}</Link>\n// </li>\n// {pathNames?.length > 0 && separator}\n// {pathNames?.map((link, index) => {\n// let href = `/${pathNames?.slice(0, index + 1)?.join(\"/\")}`;\n// let itemClasses =\n// paths === href ? `${listClasses} ${activeClasses}` : listClasses;\n// let itemLink = capitalizeLinks\n// ? link[0]?.toUpperCase() + link?.slice(1, link?.length)\n// : link;\n// return (\n// <React.Fragment key={index}>\n// <li className={itemClasses}>\n// <Link href={href}>{itemLink}</Link>\n// </li>\n// {pathNames?.length !== index + 1 && separator}\n// </React.Fragment>\n// );\n// })}\n// </ul>\n// </div>\n// );\n// };\n\n// export default Breadcrumb;\n\nimport React from 'react';\n\ntype BreadcrumbsProps = {\n children: React.ReactNode;\n separator?: React.ReactNode;\n 'aria-label': string;\n containerClasses?: string;\n};\n\nconst Breadcrumbs = ({\n children,\n separator = '/',\n 'aria-label': ariaLabel,\n containerClasses\n}: BreadcrumbsProps) => {\n const items = React.Children.toArray(children).map((child, index) => {\n const isLast = index === React.Children.count(children) - 1;\n return (\n <span key={index} className='flex items-center text-text-xs text-gray-700 font-semibold'>\n {child}\n {!isLast && <span className='mx-[6px]'>{separator}</span>}\n </span>\n );\n });\n\n return (\n <nav aria-label={ariaLabel} className={`flex items-center text-text-xs text-gray-700 font-semibold ${containerClasses}`}>\n {items}\n </nav>\n );\n};\n\nexport default Breadcrumbs;\n","import React, { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\n\ninterface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n children?: ReactNode;\n startIcon?: JSX.Element;\n endIcon?: JSX.Element;\n disabled?: boolean;\n fullWidth?: boolean;\n}\n\nconst buttonVariants = cva(\n \"rounded-lg disabled:select-none font-semibold cursor-pointer transition-colors duration-300 ease-in-out\",\n {\n variants: {\n variant: {\n filled:\n \"bg-primary-600 text-white active:bg-primary-900 active:border-primary-900 hover:bg-primary-700 hover:border-primary-700 border border-primary-600 disabled:opacity-[30%] disabled:pointer-events-none\",\n outlined:\n \"border border-primary-600 bg-white disabled:opacity-[30%] disabled:pointer-events-none text-primary-600 hover:bg-primary-100 active:bg-primary-200 active:border-primary-700\",\n },\n intent: {\n primary:\n \"bg-primary-600 border-primary-600 active:bg-primary-900 active:border-primary-900 hover:bg-primary-700 hover:border-primary-700\",\n success:\n \"bg-success-600 border-success-600 active:bg-success-900 active:border-success-900 hover:bg-success-700 hover:border-success-700\",\n error:\n \"bg-error-700 border-error-700 active:bg-error-900 active:border-error-900 hover:bg-error-800 hover:border-error-800\",\n warning:\n \"bg-warning-600 border-warning-600 active:bg-warning-900 active:border-warning-900 hover:bg-warning-700 hover:border-warning-700\",\n default:\n \"bg-gray-600 border-gray-600 active:bg-gray-900 active:border-gray-900 hover:bg-gray-700 hover:border-gray-700\",\n \"primary-outlined\":\n \"border-primary-600 text-primary-600 hover:bg-primary-100 active:bg-primary-200 active:border-primary-700\",\n \"success-outlined\":\n \"border-success-600 text-success-600 hover:bg-success-50 hover:border-success-700 hover:text-success-700 active:bg-success-100 active:text-success-900 active:border-success-900\",\n \"error-outlined\":\n \"border-error-700 text-error-700 hover:bg-error-100 hover:border-error-700 hover:text-error-700 active:bg-error-200 active:text-error-700 active:border-error-800\",\n \"warning-outlined\":\n \"border-warning-500 text-warning-500 hover:bg-warning-50 hover:border-warning-600 hover:text-warning-600 active:bg-warning-100 active:text-warning-700 active:border-warning-700\",\n \"default-outlined\":\n \"border-gray-700 text-gray-700 hover:bg-gray-100 hover:border-gray-700 hover:text-gray-700 active:bg-gray-300 active:text-gray-800 active:border-gray-800\",\n },\n size: {\n sm: \"text-sm px-3.5 py-2\",\n md: \"text-sm px-4 py-2.5\",\n lg: \"text-base px-[18px] py-2.5\",\n },\n },\n defaultVariants: {\n variant: \"filled\",\n size: \"md\",\n },\n }\n);\n\nconst Button = ({\n children,\n className,\n variant,\n intent,\n fullWidth = false,\n startIcon,\n disabled,\n endIcon,\n size,\n ...props\n}: ButtonProps) => {\n return (\n <button\n {...props}\n disabled={disabled}\n className={cn(\n fullWidth && \"w-full\",\n buttonVariants({ intent, className, variant, size }),\n \"flex items-center text-center justify-center gap-2\"\n )}\n >\n {startIcon}\n {children}\n {endIcon}\n </button>\n );\n};\n\nexport default Button;\n","import React, { HTMLAttributes, forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\n\ninterface CheckboxProps\n extends Omit<HTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof checkboxVariant> {\n size?: \"sm\" | \"lg\";\n disabled?: boolean;\n checked?: boolean;\n children?: never;\n}\n\nconst checkboxVariant = cva(\n \"peer relative cursor-pointer appearance-none rounded-[4px] border border-gray-300 transition-all checked:border-primary-600 checked:bg-primary-50 hover:bg-primary-50 disabled:opacity-30 disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"h-3 w-3\",\n lg: \"h-3.5 w-3.5\",\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n }\n);\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ disabled, checked, size, className, children, ...props }, ref) => {\n return (\n <div className=\"inline-flex relative items-center\">\n <input\n type=\"checkbox\"\n ref={ref}\n {...props}\n disabled={disabled}\n checked={checked}\n className={cn(checkboxVariant({ className, size }))}\n />\n <span className=\"absolute text-primary-600 transition-opacity opacity-0 pointer-events-none top-2/4 left-2/4 -translate-y-2/4 -translate-x-2/4 peer-checked:opacity-100\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"w-2.5 h-2.5\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\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 </span>\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport default Checkbox;\n","import React, { ReactNode, HTMLAttributes } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\n\nconst chipVariants = cva(\n \"rounded-full capitalize flex items-center w-fit gap-2\",\n {\n variants: {\n intent: {\n default: \"bg-gray-50 text-gray-600\",\n success: \"bg-success-50 text-success-600\",\n warning: \"bg-warning-50 text-warning-500\",\n error: \"bg-error-50 text-error-600\",\n primary: \"bg-primary-100 text-primary-700\",\n bluegray: \"bg-bluegray-100 text-bluegray-500\",\n bluelight: \"bg-bluelight-100 text-bluelight-600\",\n violet: \"bg-violet-50 text-violet-700\",\n indigo: \"bg-indigo-100 text-indigo-700\",\n purple: \"bg-purple-50 text-purple-700\",\n pink: \"bg-pink-25 text-pink-700\",\n rose: \"bg-rose-50 text-rose-600\",\n orange: \"bg-orange-50 text-orange-600\",\n },\n size: {\n sm: \"text-xs px-2 py-0.5\",\n md: \"text-sm px-2.5 py-0.5\",\n lg: \"text-sm px-3 py-1\",\n },\n },\n defaultVariants: {\n intent: \"default\",\n size: \"md\",\n },\n }\n);\n\nconst dotColorVariants: Record<string, string> = {\n default: \"bg-gray-600\",\n success: \"bg-success-600\",\n warning: \"bg-warning-600\",\n error: \"bg-error-600\",\n primary: \"bg-primary-600\",\n bluegray: \"bg-bluegray-500\",\n bluelight: \"bg-bluelight-600\",\n violet: \"bg-violet-700\",\n indigo: \"bg-indigo-700\",\n purple: \"bg-purple-700\",\n pink: \"bg-pink-700\",\n rose: \"bg-rose-600\",\n orange: \"bg-orange-600\",\n};\n\ninterface ChipProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof chipVariants> {\n children: ReactNode;\n dot?: boolean;\n dotColor?: string;\n}\n\nconst Chip = ({\n children,\n className,\n size,\n intent = \"default\",\n dot,\n dotColor,\n}: ChipProps) => {\n const resolvedIntent = intent ?? \"default\";\n\n return (\n <div className={cn(chipVariants({ intent: resolvedIntent, size }), className)}>\n {dot && (\n <span\n className={cn(\n \"w-1.5 h-1.5 rounded-full\",\n dotColor || dotColorVariants[resolvedIntent] || \"bg-primary-600\" // Default fallback\n )}\n ></span>\n )}\n <span>{children}</span>\n </div>\n );\n};\n\nexport default Chip;\n","import { FC } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface CircularProgressBarProps {\n strokeWidth?: number;\n size?: number;\n percentage: number;\n text?: string;\n textClassName?: string;\n}\n\nconst CircularProgressBar = ({\n percentage,\n size = 160,\n strokeWidth = 8,\n text,\n textClassName,\n}: CircularProgressBarProps) => {\n const radius = (size - strokeWidth) / 2;\n const viewBox = `0 0 ${size} ${size}`;\n const dashArray = radius * Math.PI * 2;\n const dashOffset = dashArray - (dashArray * (percentage || 0)) / 100;\n\n return (\n <svg width={size} height={size} viewBox={viewBox}>\n <circle\n className=\"fill-none stroke-gray-200\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n strokeWidth={`${strokeWidth}px`}\n />\n <circle\n className=\"fill-none stroke-primary-600 transition-all delay-200 ease-in\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n strokeLinecap=\"round\"\n strokeWidth={`${strokeWidth}px`}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{\n strokeDasharray: dashArray,\n strokeDashoffset: dashOffset,\n }}\n />\n <text\n x=\"50%\"\n y=\"50%\"\n dy=\".3em\"\n textAnchor=\"middle\"\n fill=\"currentColor\"\n className={cn(textClassName)}\n >\n {text}\n </text>\n </svg>\n );\n};\n\nexport default CircularProgressBar;\n","import React from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface DividerProps {\n width?: string;\n height?: string;\n position?: \"horizontal\" | \"vertical\";\n className?: string;\n}\n\nconst Divider = ({\n width,\n height,\n position = \"horizontal\",\n className,\n}: DividerProps) => {\n return (\n <div\n style={{\n width: width,\n height: height,\n }}\n className={cn(\n `bg-gray-200`,\n position === \"horizontal\" ? \"w-full h-[1px]\" : \"w-[1px] h-full\",\n className\n )}\n ></div>\n );\n};\n\nexport default Divider;\n","\"use client\";\nimport React, {\n useEffect,\n useState,\n useMemo,\n useCallback,\n forwardRef,\n useRef,\n useImperativeHandle,\n} from \"react\";\nimport {\n RiArrowDownSLine,\n RiSearchLine,\n RiErrorWarningLine,\n} from \"@remixicon/react\";\nimport { cn } from \"../utils/utils\";\nimport Input from \"./Input\";\nimport Label from \"./Label\";\nimport Checkbox from \"./Checkbox\";\nimport Tooltip from \"./Tooltip\";\n\ntype Option = {\n label: string;\n value: string;\n info?: string;\n addInfo?: string;\n tooltipContent?: string;\n};\n\ninterface MenuItemProps {\n label?: string;\n value: string;\n children?: React.ReactNode;\n}\n\ninterface DropdownProps {\n icon?: JSX.Element;\n options: Option[];\n selected?: Option[];\n setSelected?: React.Dispatch<React.SetStateAction<Option[]>>;\n onApply?: () => void;\n onReset?: () => void;\n dropdownText?: string;\n search?: boolean;\n multiple?: boolean;\n renderItem?: (option: Option) => React.ReactNode;\n children?: React.ReactNode;\n position?: \"top\" | \"bottom\";\n info?: string | number;\n addInfo?: string | number;\n tooltipContent?: string;\n width?: string;\n dropDownTooltip?: boolean | undefined;\n dropdownFooter?: boolean | undefined;\n disabled?: boolean;\n}\n\nconst defaultRenderItem = (option: Option) => {\n return <MenuItem label={option.label} value={option.value} />;\n};\n\nconst Dropdown = forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n options,\n selected,\n setSelected,\n search = false,\n multiple = false,\n dropdownText = \"Select\",\n renderItem = defaultRenderItem,\n children,\n icon,\n position = \"top\",\n width,\n info,\n dropDownTooltip = false,\n dropdownFooter = false,\n onApply,\n disabled = false,\n onReset,\n },\n ref\n ) => {\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [filteredOptions, setFilteredOptions] = useState<Option[]>(\n options || []\n );\n\n const [dropdownMenu, setDropdownMenu] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useImperativeHandle(ref, () => dropdownRef.current!);\n\n useEffect(() => {\n if (options) {\n setFilteredOptions(options);\n }\n }, [options]);\n\n const memoizedFilteredOptions = useMemo(() => {\n if (!search) return filteredOptions;\n return filteredOptions.filter((option) =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n );\n }, [search, searchQuery, filteredOptions]);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value);\n },\n []\n );\n\n const toggleOption = useCallback(\n (option: Option) => {\n if (multiple && setSelected) {\n setSelected((prevSelected) =>\n prevSelected.some((item) => item.value === option.value)\n ? prevSelected.filter((item) => item.value !== option.value)\n : [...prevSelected, option]\n );\n } else if (setSelected) {\n setSelected([option]);\n setDropdownMenu(false);\n }\n },\n [multiple, setSelected]\n );\n\n const handleCheckboxChange = useCallback(\n (option: Option) => {\n if (multiple && setSelected) {\n setSelected((prevSelected) =>\n prevSelected.some((item) => item.value === option.value)\n ? prevSelected.filter((item) => item.value !== option.value)\n : [...prevSelected, option]\n );\n } else if (setSelected) {\n setSelected([option]);\n }\n },\n [multiple, setSelected]\n );\n\n const handleSelectAll = () => {\n if (selected?.length === filteredOptions.length) {\n setSelected?.([]);\n } else {\n setSelected?.(filteredOptions);\n }\n };\n\n const handleReset = () => {\n if (onReset) {\n onReset();\n }\n setSelected?.([]);\n setDropdownMenu(false);\n };\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setDropdownMenu(false);\n }\n };\n\n // width adjustment\n\n return (\n <div\n ref={dropdownRef}\n // className={cn(\"relative\", !width && \"w-full\")}\n className={cn(\n \"relative \",\n !width && \"w-full\",\n disabled && \"cursor-not-allowed opacity-50\"\n )}\n style={{\n width: width,\n }}\n >\n <div\n // onClick={() => setDropdownMenu((prev) => !prev)}\n onClick={() => !disabled && setDropdownMenu((prev) => !prev)}\n className={cn(\n \"hover:bg-gray-50 py-2 px-[14px] rounded-lg flex justify-between items-center text-gray-900 bg-gray-25 text-text-sm cursor-pointer\",\n dropdownMenu ? \"border border-gray-800\" : \"border border-gray-200\",\n disabled && \"bg-gray-300 hover:bg-gray-300 cursor-not-allowed\"\n )}\n >\n <section\n className={cn(\n \"flex items-center gap-2 text-ellipsis overflow-hidden\"\n )}\n >\n {icon && <span>{icon}</span>}\n <p className=\"line-clamp-1 w-full\">\n {multiple\n ? (selected?.length ?? 0) > 0\n ? `${selected?.length} Selected`\n : dropdownText\n : selected?.[0]?.label\n ? selected?.[0]?.label\n : dropdownText}\n </p>\n </section>\n <RiArrowDownSLine size={18} />\n </div>\n <ul\n className={cn(\n \"max-h-0 opacity-0 overflow-hidden shadow-sm mt-1 rounded absolute text-[16px] bg-white z-[1000] w-full transition-all duration-75 delay-100 ease-in\",\n position === \"top\" ? \"top-10\" : \"bottom-10\",\n dropdownMenu &&\n \"max-h-[320px] opacity-[1] transition-all ease-in duration-150\"\n )}\n >\n {search && (\n <Input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n className=\"rounded rounded-b-none text-gray-800 bg-white w-full h-[35px] pl-3\"\n endIcon={<RiSearchLine size={18} />}\n />\n )}\n {multiple && (\n <section className=\"py-[6px] px-[14px] flex justify-between items-center\">\n <p\n onClick={handleSelectAll}\n className=\"text-text-sm hover:text-primary-700 text-primary-600 cursor-pointer\"\n >\n Select all\n </p>\n <button\n className=\"text-text-sm text-warning-500 hover:text-warning-600\"\n onClick={handleReset}\n >\n Reset\n </button>\n </section>\n )}\n <section className=\"max-h-[200px] transition-all duration-75 delay-100 ease-in-out overflow-y-scroll\">\n {options\n ? memoizedFilteredOptions.map((option, i) => (\n <React.Fragment key={i}>\n {multiple ? (\n <Label\n className=\"has-[:checked]:bg-primary-50 has-[:checked]:border-primary-600 hover:bg-gray-50 flex flex-col py-[6px] px-[14px] cursor-pointer border-l-4 border-transparent\"\n htmlFor={`checkbox-${option.value}`}\n key={i}\n >\n <section className=\"flex items-center justify-between gap-2 w-full\">\n <div className=\"flex gap-2\">\n <Checkbox\n id={`checkbox-${option.value}`}\n checked={\n selected?.some(\n (item) => item.value === option.value\n ) ?? false\n }\n onChange={() => handleCheckboxChange(option)}\n />\n <div className=\"flex items-center gap-1\">\n <span>{renderItem(option)}</span>\n {dropDownTooltip && (\n <DropdownTooltip\n tooltipContent={option?.tooltipContent}\n />\n )}\n </div>\n </div>\n <span className=\"text-gray-500\">{option?.info}</span>\n </section>\n <span className=\"pt-[2px] text-text-sm text-gray-500\">\n {option?.addInfo}\n </span>\n </Label>\n ) : (\n <Label\n key={i}\n className={cn(\n \"flex justify-between py-[6px] px-[14px] hover:bg-gray-50 gap-2 items-center border-l-4 border-transparent cursor-pointer\",\n {\n \"bg-primary-50 border-primary-600\":\n selected && selected[0]?.value === option.value,\n }\n )}\n onClick={() => toggleOption(option)}\n >\n <div className=\"flex items-center gap-1\">\n <span>{renderItem(option)}</span>\n {dropDownTooltip && (\n <DropdownTooltip\n tooltipContent={option?.tooltipContent}\n />\n )}\n </div>\n <span className=\"text-gray-500\">{info}</span>\n </Label>\n )}\n </React.Fragment>\n ))\n : children}\n </section>\n {dropdownFooter && (\n <DropdownFooter\n setDropdownMenu={setDropdownMenu}\n onApply={onApply}\n />\n )}\n </ul>\n </div>\n );\n }\n);\n\nexport const MenuItem: React.FC<MenuItemProps> = ({ label, children }) => {\n return <p className=\"break-all\">{label || children}</p>;\n};\n\ninterface DropdownTooltipProps {\n tooltipContent?: string | undefined;\n}\n\nconst DropdownTooltip: React.FC<DropdownTooltipProps> = ({\n tooltipContent,\n}) => {\n const content = tooltipContent || \"\";\n return content ? (\n <Tooltip position=\"right\" content={content}>\n <RiErrorWarningLine color=\"#98A2B3\" size={14} />\n </Tooltip>\n ) : null;\n};\n\ninterface DropdownFooterProps {\n onApply?: (() => void) | undefined;\n setDropdownMenu?: any;\n}\n\nexport const DropdownFooter: React.FC<DropdownFooterProps> = ({\n // onReset,\n onApply,\n setDropdownMenu,\n}) => {\n return (\n <div className=\"flex justify-end border-t border-gray-200 px-[14px] py-[8px] text-text-sm\">\n <button\n className=\"text-primary-600 hover:text-primary-700\"\n onClick={() => {\n if (onApply) {\n onApply();\n }\n setDropdownMenu(false);\n }}\n >\n Apply\n </button>\n </div>\n );\n};\n\nDropdown.displayName = \"Dropdown\";\n\nexport default Dropdown;\n","import React, { InputHTMLAttributes, forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface InputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n size?: \"sm\" | \"lg\";\n startIcon?: JSX.Element;\n endIcon?: JSX.Element;\n disabled?: boolean;\n type:\n | \"text\"\n | \"url\"\n | \"email\"\n | \"password\"\n | \"number\"\n | \"tel\"\n | \"search\"\n | \"time\";\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({ size, startIcon, endIcon, className, type, disabled, ...props }, ref) => {\n return (\n <div\n className={cn(\n \"group flex items-center gap-2 p-3.5 border border-gray-200 rounded-lg bg-white shadow-xs hover:bg-gray-50 hover:border-gray-300 focus-within:border-gray-800 focus-within:bg-gray-25 focus-within:hover:bg-gray-50 focus-within:hover:border-gray-800 has-[:disabled]:opacity-30 has-[:disabled]:bg-gray-300 has-[:disabled]:select-none has-[:disabled]:pointer-events-none\",\n size === \"sm\"\n ? \"w-[320px] h-10\"\n : size === \"lg\"\n ? \"w-[313px] h-11\"\n : \"w-full h-10\",\n className\n )}\n >\n <span\n className={cn(\n startIcon\n ? \"group-hover:text-gray-600 group-focus-within:text-gray-600\"\n : \"hidden\",\n disabled === true && \"text-gray-900\"\n )}\n >\n {startIcon}\n </span>\n <input\n {...props}\n ref={ref}\n disabled={disabled}\n type={type}\n className={cn(\n \"w-full text-sm focus:outline-none bg-transparent disabled:text-gray-900 placeholder:text-gray-500 group-hover:placeholder:text-gray-500\",\n size\n )}\n />\n <span\n className={cn(\n endIcon\n ? \"group-hover:text-gray-600 group-focus-within:text-gray-600\"\n : \"hidden\",\n disabled === true && \"text-gray-900\"\n )}\n >\n {endIcon}\n </span>\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n","import { cva, VariantProps } from \"class-variance-authority\";\nimport React, { LabelHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface LabelProps\n extends LabelHTMLAttributes<HTMLLabelElement>,\n VariantProps<typeof labelVariants> {\n htmlFor?: string;\n children: ReactNode;\n required?: boolean;\n disabled?:boolean;\n}\n\nconst labelVariants = cva(\"flex item-start\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst Label = ({\n children,\n htmlFor,\n size,\n required,\n disabled,\n className,\n ...props\n}: LabelProps) => {\n return (\n <label\n htmlFor={htmlFor}\n className={cn(\"cursor-pointer\",labelVariants({ className, size }),disabled === true ? \"opacity-30 select-none\":\"opacity-100\")}\n {...props}\n >\n {children}\n <span className={cn(required === true ? \"block text-red-500\":\"hidden\")}>*</span>\n </label>\n );\n};\n\nexport default Label;\n","import { VariantProps, cva } from \"class-variance-authority\";\nimport { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport React from \"react\";\n\nconst tooltipVariants = cva(\n \"bg-white shadow-lg rounded-lg absolute hidden group-hover:block p-3 z-10 max-w-[328px] w-max whitespace-normal opacity-0 group-hover:opacity-100 transform transition-all duration-1000 ease-in-out group-hover:delay-[2000ms]\",\n {\n variants: {\n position: {\n top: \"bottom-[calc(100%+0px)] group-hover:translate-y-0 delay-1000 translate-y-[-10px]\",\n right:\n \"top-1/2 -translate-y-1/2 left-[calc(100%+0px)] group-hover:translate-x-0 translate-x-[-10px]\",\n bottom:\n \"top-[calc(100%+0px)] group-hover:translate-y-0 translate-y-[10px]\",\n left: \"top-1/2 -translate-y-1/2 right-[calc(100%+0px)] group-hover:translate-x-0 translate-x-[10px]\",\n },\n },\n }\n);\n\ninterface TooltipProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"content\">,\n VariantProps<typeof tooltipVariants> {\n children: ReactNode;\n position: \"top\" | \"right\" | \"bottom\" | \"left\";\n content: JSX.Element | string;\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({\n position,\n content,\n children,\n className,\n ...props\n}) => {\n return (\n <div {...props} className=\"relative cursor-pointer text-sm group\">\n <div>{children}</div>\n <span className={cn(tooltipVariants({ position }), className)}>\n {content}\n </span>\n </div>\n );\n};\n\nexport default Tooltip;\n","\"use client\";\nimport React, {\n useEffect,\n useState,\n useMemo,\n forwardRef,\n useCallback,\n useRef,\n useImperativeHandle,\n} from \"react\";\nimport { RiErrorWarningLine, RiSearchLine } from \"@remixicon/react\";\nimport { cn } from \"../utils/utils\";\nimport Input from \"./Input\";\nimport Label from \"./Label\";\nimport Checkbox from \"./Checkbox\";\nimport Tooltip from \"./Tooltip\";\n\ntype Option = {\n label: string;\n value: string;\n info?: string;\n addInfo?: string;\n tooltipContent?: string;\n};\n\ninterface MenuItemProps {\n label?: string;\n value: string;\n children?: React.ReactNode;\n}\n\ninterface DropdownFooterProps {\n // onReset?: () => void;\n onApply?: (() => void) | undefined;\n setDropdownMenu?: any;\n}\n\ninterface DropdownProps {\n options: Option[];\n selected?: Option[];\n setSelected?: React.Dispatch<React.SetStateAction<Option[]>>;\n onApply?: () => void;\n onReset?: () => void;\n search?: boolean;\n multiple?: boolean;\n renderItem?: (option: Option) => React.ReactNode;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n dropdownMenu?: boolean;\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\n setDropdownMenu?: (value: boolean) => void;\n info?: string | number;\n addInfo?: string | number;\n tooltipContent?: string;\n width?: string;\n dropDownTooltip?: boolean | undefined;\n dropdownFooter?: boolean;\n disabled?: boolean;\n}\n\nconst defaultRenderItem = (option: Option) => {\n return <MenuItem label={option.label} value={option.value} />;\n};\n\nconst DropdownWithIcon = forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n options,\n selected = [],\n setSelected,\n search = false,\n multiple = false,\n renderItem = defaultRenderItem,\n children,\n trigger,\n // dropdownMenu = false,\n position = \"top\",\n // setDropdownMenu = () => {},\n width,\n info,\n dropDownTooltip = false,\n dropdownFooter = false,\n onApply,\n disabled = false,\n onReset,\n },\n ref\n ) => {\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const localDropdownRef = useRef<HTMLDivElement>(null);\n const [dropdownMenu, setDropdownMenu] = useState(false);\n\n useImperativeHandle(ref, () => localDropdownRef.current!);\n\n const memoizedFilteredOptions = useMemo(() => {\n if (!search) return options;\n return options?.filter(\n (option) =>\n typeof option?.label === \"string\" &&\n option?.label?.toLowerCase()?.includes(searchQuery?.toLowerCase())\n );\n }, [search, searchQuery, options]);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e?.target?.value);\n },\n []\n );\n\n const toggleOption = useCallback(\n (option: Option) => {\n if (multiple && setSelected) {\n setSelected((prevSelected) =>\n prevSelected?.some((item) => item?.value === option?.value)\n ? prevSelected?.filter((item) => item?.value !== option?.value)\n : [...prevSelected, option]\n );\n } else if (setSelected) {\n setSelected([option]);\n setDropdownMenu(false);\n }\n },\n [multiple, setSelected, setDropdownMenu]\n );\n\n const handleCheckboxChange = useCallback(\n (option: Option) => {\n if (multiple && setSelected) {\n setSelected((prevSelected) =>\n prevSelected?.some((item) => item?.value === option?.value)\n ? prevSelected?.filter((item) => item?.value !== option?.value)\n : [...prevSelected, option]\n );\n } else if (setSelected) {\n setSelected([option]);\n }\n },\n [multiple, setSelected]\n );\n\n const handleSelectAll = () => {\n if (selected?.length === options?.length) {\n setSelected?.([]);\n } else {\n setSelected?.(options);\n }\n };\n\n const handleReset = () => {\n if (onReset) {\n onReset();\n }\n setSelected?.([]);\n setDropdownMenu(false);\n };\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n localDropdownRef?.current &&\n !localDropdownRef?.current?.contains(event?.target as Node)\n ) {\n setDropdownMenu(false);\n }\n };\n\n document?.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document?.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [setDropdownMenu]);\n\n return (\n <div\n ref={localDropdownRef}\n className={cn(\n \"relative\",\n !width && \"w-full\",\n disabled && \"cursor-not-allowed opacity-50\"\n )}\n style={{\n width: width,\n }}\n >\n {/* <div onClick={() => setDropdownMenu(!dropdownMenu)}>{trigger}</div> */}\n <div onClick={() => !disabled && setDropdownMenu((prev) => !prev)}>\n {trigger}\n </div>\n <ul\n className={cn(\n \"max-h-0 opacity-0 overflow-hidden shadow-sm mt-1 rounded absolute text-[16px] bg-white z-[1000] w-full transition-all duration-75 delay-100 ease-in\",\n position === \"top\"\n ? \"top-10\"\n : position === \"bottom\"\n ? \"bottom-10\"\n : position === \"left\"\n ? \"left-0\"\n : position === \"right\"\n ? \"right-[90%]\"\n : \"top-10\",\n dropdownMenu &&\n \"max-h-[320px] opacity-[1] transition-all ease-in duration-150\"\n )}\n style={{\n width: width,\n minWidth: \"200px\",\n top: \"calc(100% + 4px)\",\n }}\n >\n {search && (\n <Input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n className=\"rounded rounded-b-none text-gray-800 bg-white w-full h-[35px] pl-3\"\n endIcon={<RiSearchLine size={18} />}\n />\n )}\n {multiple && (\n <section className=\"py-[6px] px-[14px] flex justify-between items-center\">\n <p\n onClick={handleSelectAll}\n className=\"text-text-sm hover:text-primary-700 text-primary-600 cursor-pointer\"\n >\n Select all\n </p>\n <button\n className=\"text-text-sm text-warning-500 hover:text-warning-600\"\n onClick={handleReset}\n >\n Reset\n </button>\n </section>\n )}\n <section className=\"max-h-[200px] z-[1000] transition-all duration-75 delay-100 ease-in-out overflow-y-scroll\">\n {options\n ? memoizedFilteredOptions?.map((option, i) => (\n <React.Fragment key={i}>\n {multiple ? (\n <Label\n className=\"has-[:checked]:bg-primary-50 has-[:checked]:border-primary-600 hover:bg-gray-50 flex flex-col py-[6px] px-[14px] break-words cursor-pointer border-l-4 border-transparent\"\n htmlFor={`checkbox-${option?.value}`}\n key={i}\n >\n <section className=\"flex items-center justify-between gap-2 w-full\">\n <div className=\"flex gap-2\">\n <Checkbox\n id={`checkbox-${option?.value}`}\n checked={selected?.some(\n (item) => item?.value === option?.value\n )}\n onChange={() => handleCheckboxChange(option)}\n />\n <div className=\"flex items-center gap-1\">\n <div className=\"break-words\">\n {renderItem(option)}\n </div>\n {dropDownTooltip && (\n <DropdownTooltip\n tooltipContent={option?.tooltipContent}\n />\n )}\n </div>\n </div>\n <span className=\"text-gray-500\">{option?.info}</span>\n </section>\n <span className=\"pt-[2px] text-text-sm text-gray-500\">\n {option?.addInfo}\n </span>\n </Label>\n ) : (\n <Label\n key={i}\n className={cn(\n \"flex justify-between py-[6px] px-[14px] hover:bg-gray-50 gap-2 items-center border-l-4 border-transparent cursor-pointer\",\n {\n \"bg-primary-50 border-primary-600\":\n selected && selected[0]?.value === option?.value,\n }\n )}\n onClick={() => toggleOption(option)}\n >\n <div className=\"flex items-center gap-1\">\n <span>{renderItem(option)}</span>\n {dropDownTooltip && (\n <DropdownTooltip\n tooltipContent={option?.tooltipContent}\n />\n )}\n </div>\n <span className=\"text-gray-500\">{info}</span>\n </Label>\n )}\n </React.Fragment>\n ))\n : children}\n </section>\n {dropdownFooter && <DropdownFooter onApply={onApply} />}\n </ul>\n </div>\n );\n }\n);\n\nexport const MenuItem: React.FC<MenuItemProps> = ({ label, children }) => {\n return <p className=\"break-all\">{label || children}</p>;\n};\n\ninterface DropdownTooltipProps {\n tooltipContent?: string | undefined;\n}\n\nconst DropdownTooltip: React.FC<DropdownTooltipProps> = ({\n tooltipContent,\n}) => {\n return tooltipContent ? (\n <Tooltip position=\"right\" content={tooltipContent}>\n <RiErrorWarningLine color=\"#98A2B3\" size={14} />\n </Tooltip>\n ) : null;\n};\n\nconst DropdownFooter: React.FC<DropdownFooterProps> = ({\n onApply,\n setDropdownMenu,\n}) => {\n return (\n <div className=\"flex justify-between border-t border-gray-200 px-[14px] py-[8px] text-text-sm\">\n <button\n className=\"text-primary-600 hover:text-primary-700\"\n onClick={() => {\n if (onApply) {\n onApply();\n }\n setDropdownMenu(false);\n }}\n >\n Apply\n </button>\n </div>\n );\n};\n\nDropdownWithIcon.displayName = \"DropdownWithIcon\";\n\nexport default DropdownWithIcon;\n","import React, { forwardRef } from \"react\";\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\nimport {\n RiFileLine,\n RiUpload2Line,\n RiDeleteBinLine,\n RiMusic2Line,\n RiVideoLine,\n RiImageLine,\n RiFileExcel2Line,\n RiFileWord2Line,\n RiFilePpt2Line,\n RiFileZipLine,\n RiFilePdf2Line,\n} from \"@remixicon/react\";\n\nimport { cn } from \"../utils/utils\";\nimport Label from \"./Label\";\n\nexport interface FileUploadProps extends InputHTMLAttributes<HTMLInputElement> {\n id: string;\n selectedFile?: File[];\n setSelectedFile?: (files: File[]) => void;\n children?: ReactNode;\n onDelete?: () => void;\n title?: string;\n disabled?: boolean;\n}\n\nconst getIconForMimeType = (file: File) => {\n const fileName = typeof file === \"string\" ? file : file.name;\n const extension = fileName.split(\".\").pop()?.toLowerCase();\n\n let iconComponent: JSX.Element;\n switch (extension) {\n case \"jpg\":\n case \"jpeg\":\n case \"png\":\n case \"gif\":\n case \"svg\":\n case \"webp\":\n iconComponent = (\n <RiImageLine className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"mp3\":\n case \"wav\":\n case \"ogg\":\n iconComponent = (\n <RiMusic2Line className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"mp4\":\n case \"avi\":\n case \"mkv\":\n iconComponent = (\n <RiVideoLine className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"xls\":\n case \"xlsx\":\n case \"csv\":\n case \"txt\":\n case \"ods\":\n iconComponent = (\n <RiFileExcel2Line className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"doc\":\n case \"docx\":\n case \"odt\":\n case \"xml\":\n iconComponent = (\n <RiFileWord2Line className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"pptx\":\n case \"pptm\":\n case \"xps\":\n case \"ppsx\":\n iconComponent = (\n <RiFilePpt2Line className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"rar\":\n case \"zip\":\n iconComponent = (\n <RiFileZipLine className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n case \"pdf\":\n iconComponent = (\n <RiFilePdf2Line className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n default:\n // Return generic file icon\n iconComponent = (\n <RiFileLine className=\"text-primary-600 bg-primary-100 border-4 border-primary-50 w-8 h-8 p-1 rounded-full\" />\n );\n break;\n }\n return iconComponent;\n};\n\nconst FileUpload = forwardRef<HTMLInputElement, FileUploadProps>(\n (\n {\n selectedFile,\n onChange,\n multiple,\n onDelete,\n children,\n disabled,\n title,\n id,\n className,\n accept,\n ...props\n },\n ref\n ) => {\n return (\n <div className=\"flex flex-col gap-2 \">\n <input\n type=\"file\"\n {...props}\n accept={accept}\n id={id}\n onChange={onChange}\n multiple={multiple}\n disabled={disabled}\n hidden\n ref={ref}\n />\n <Label\n htmlFor={id}\n disabled={disabled}\n className={cn(\n \"w-full h-[126px] border-2 border-dashed border-gray-200 hover:bg-gray-200 cursor-pointer rounded-lg px-6 py-4 flex flex-col items-center gap-2\",\n disabled && \"pointer-events-none\",\n className\n )}\n >\n <div className=\"w-10 h-10 border-[6px] border-gray-50 bg-gray-200 rounded-full p-1 flex justify-center items-center\">\n <RiUpload2Line className=\"w-5 h-5\" />\n </div>\n <p className=\"text-center text-sm text-gray-600\">\n <span className=\"text-primary-600 font-semibold\">\n Click to upload\n </span>{\" \"}\n <br /> {title}\n </p>\n </Label>\n <div className=\"flex flex-col gap-2\">\n {selectedFile?.map((file, index) => (\n <div\n key={index}\n className=\"p-4 border border-gray-200 rounded-lg flex items-center justify-between gap-5\"\n >\n <div className=\"flex items-center gap-2 w-full\">\n {getIconForMimeType(file)}\n <div className=\"flex flex-col gap-1 w-full\">\n <p className=\"text-sm line-clamp-2 break-all\">\n {typeof file === \"string\" ? file : file.name}{\" \"}\n </p>\n <div className=\"w-full\">{children}</div>\n </div>\n </div>\n <RiDeleteBinLine\n onClick={onDelete}\n className=\"text-gray-500 w-5 h-5 cursor-pointer\"\n />\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\n\nFileUpload.displayName = \"FileUpload\";\n\nexport default FileUpload;\n","\"use client\";\nimport React, { useEffect, useRef, forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface GlobalNavigationProps {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n className?: string;\n children: React.ReactNode;\n trigger: JSX.Element;\n postion?: \"bottom-left\" | \"bottom-right\" | \"top-left\" | \"top-right\";\n}\n\nconst GlobalNavigation = forwardRef<HTMLDivElement, GlobalNavigationProps>(\n (\n {\n isOpen,\n setIsOpen,\n trigger,\n children,\n className,\n postion = \"bottom-right\",\n },\n ref\n ) => {\n const popoverRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n popoverRef.current &&\n !popoverRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () =>\n document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n return (\n <div className=\"relative w-max\" ref={ref}>\n <div\n className=\"cursor-pointer\"\n ref={popoverRef}\n onClick={() => setIsOpen(!isOpen)}\n >\n {trigger}\n </div>\n {isOpen && (\n <div\n className={cn(\n \"absolute z-10 bg-white rounded-lg shadow-sm border min-w-[200px] p-4 transition-all duration-300 ease-in-out\",\n postion === \"bottom-left\" && \"left-0 top-4/4\",\n postion === \"bottom-right\" && \"top-4/4 right-0\",\n postion === \"top-left\" && \"bottom-[57px] left-0\",\n postion === \"top-right\" && \"bottom-[57px] right-0\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n );\n }\n);\n\nGlobalNavigation.displayName = \"GlobalNavigation\";\n\nexport default GlobalNavigation;\n","import React, { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface HelperTextProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n size?: \"sm\" | \"lg\";\n error?: boolean;\n}\n\nconst HelperText = ({ children, className, size, error }: HelperTextProps) => {\n return (\n <span\n className={cn(\n \"text-gray-500\",\n error && \"text-error-500\",\n className,\n size === \"sm\" ? \"text-xs\" : \"text-sm\"\n )}\n >\n {children}\n </span>\n );\n};\n\nexport default HelperText;\n","import Link from \"next/link\";\nimport React from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface BaseProps {\n className?: string;\n children?: React.ReactNode;\n title: string;\n as?: \"link\" | \"button\";\n icon?: React.ReactNode;\n}\n\ntype LinkProps = BaseProps & {\n as: \"link\";\n href: string;\n onClick?: never;\n className?: string;\n};\n\ntype ButtonProps = BaseProps & {\n as: \"button\";\n href?: never;\n onClick?: () => void;\n className?: string;\n};\n\ntype ListItemProps = LinkProps | ButtonProps;\n\nconst ListItem = React.forwardRef<\n HTMLAnchorElement | HTMLButtonElement,\n ListItemProps\n>(({ className, title, href, onClick, as = \"link\", icon }, ref) => {\n if (as === \"button\") {\n return (\n <button\n className={cn(\n \"px-4 py-[8px] w-full text-left flex items-center gap-2\",\n className\n )}\n onClick={onClick}\n ref={ref as React.Ref<HTMLButtonElement>}\n >\n <h1>{title}</h1>\n {icon && <span>{icon}</span>}\n </button>\n );\n }\n\n return (\n <Link\n href={href ?? \"\"}\n passHref\n className={cn(\"px-4 py-[8px] w-full flex items-center gap-2\", className)}\n ref={ref as React.Ref<HTMLAnchorElement>}\n >\n <h1>{title}</h1>\n {icon && <p>{icon}</p>}\n </Link>\n );\n});\n\nListItem.displayName = \"ListItem\";\n\nexport default ListItem;\n","import React from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface LoadingProps {\n width?: string;\n height?: string;\n loaderColor?: string;\n variant?: \"light\" | \"heavy\";\n}\n\nconst Loading = ({ width, height, loaderColor, variant }: LoadingProps) => {\n return (\n <div\n className={cn(\n \"animate-spin-slow border-primary-600 border-t-gray-200/50 rounded-full\",\n variant === \"light\" ? \"border-2\" : \"border-4\"\n )}\n style={{\n width: width,\n height: height,\n borderColor: loaderColor,\n borderTopColor: \"rgb(234 236 240 / 0.5)\",\n }}\n ></div>\n );\n};\n\nexport default Loading;\n","\"use client\";\nimport React, { ReactNode, useEffect } from \"react\";\nimport { RiCloseLine } from \"@remixicon/react\";\n\ninterface ModalProps {\n children?: ReactNode;\n showModal?: boolean;\n closeModal?: boolean;\n setShowModal: (value: boolean) => void;\n closeOnOutsideClick?: boolean;\n className?: string;\n}\n\nexport default function Modal({\n children,\n showModal,\n setShowModal,\n closeModal = true,\n closeOnOutsideClick = true,\n className = \"\", \n}: ModalProps) {\n useEffect(() => {\n if (showModal) {\n document.body.style.overflow = \"hidden\"; \n } else {\n document.body.style.overflow = \"auto\"; \n }\n\n return () => {\n document.body.style.overflow = \"auto\"; \n };\n }, [showModal]);\n\n const handleClickOutside = (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget && closeOnOutsideClick) {\n setShowModal(false);\n }\n };\n\n return (\n <>\n {showModal && (\n <div\n onClick={handleClickOutside}\n className=\"w-full h-full bg-backdrop bg-blend-overlay fixed top-0 bottom-0 left-0 right-0 flex justify-center items-center z-[1000000] overflow-hidden\"\n >\n <div\n className={`relative bg-white shadow-boxShadow rounded-xl p-[18px] transition-all duration-150 fade-in-grow w-[50%] mx-4 ${className}`}\n >\n <div>{children}</div>\n {closeModal && (\n <div\n className=\"absolute top-4 ml-5 right-5 z-10 shadow-backdrop rounded-full text-primary cursor-pointer hover:bg-primaryLight\"\n onClick={() => setShowModal(false)}\n >\n <RiCloseLine size={24} />\n </div>\n )}\n </div>\n </div>\n )}\n </>\n );\n}\n\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { RiArrowDownSLine, RiArrowUpSLine } from \"@remixicon/react\";\n\ninterface MenuDropdownProps {\n trigger: JSX.Element;\n children: React.ReactNode;\n width?: string;\n className?: string;\n}\n\nexport default function MenuDropdown({\n trigger,\n children,\n width = \"250px\",\n className,\n}: MenuDropdownProps) {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n return (\n <div className={\"relative w-full\"} ref={dropdownRef}>\n <div\n className=\"cursor-pointer\"\n onClick={() => setIsOpen(!isOpen)}\n aria-label=\"Open menu\"\n >\n {trigger}\n </div>\n {isOpen && (\n <div\n style={{ width }}\n className={cn(\n \"border border-gray-200 rounded-lg absolute left-0 mt-1 z-[100000] w-full bg-white shadow-sm\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n );\n}\n\ninterface MenuSubItemProps {\n label: string;\n onClick?: () => void;\n disabled?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const MenuSubItem: React.FC<MenuSubItemProps> = ({\n label,\n onClick,\n disabled,\n children,\n className = \"\",\n}) => (\n <button\n className={cn(\n \"w-full text-left p-4 text-sm border-y-[0.5px] last:border-y first:rounded-t hover:bg-primary-50 hover:rounded\",\n disabled ? \"opacity-50 cursor-not-allowed\" : \"\",\n className\n )}\n onClick={onClick}\n disabled={disabled}\n >\n {label}\n {children && <>{children}</>}\n </button>\n);\n\ninterface MenuItemProps {\n content: React.ReactNode;\n children: React.ReactNode;\n label?: string;\n className?: string;\n sectionClassName?: string;\n menuClassName?: string;\n}\n\nexport const MenuItem: React.FC<MenuItemProps> = ({\n content,\n children,\n className = \"\",\n sectionClassName = \"\",\n menuClassName = \"\",\n}) => {\n const [isSubOpen, setIsSubOpen] = useState(false);\n\n return (\n <div className={cn(\"relative\", className)}>\n <section\n onClick={() => setIsSubOpen(!isSubOpen)}\n className={cn(\n \"cursor-pointer hover:bg-primary-50 p-4 flex text-sm border-y-[0.5px] justify-between items-center gap-1 w-full text-left\",\n sectionClassName\n )}\n >\n {content}\n {isSubOpen ? (\n <RiArrowUpSLine size={20} />\n ) : (\n <RiArrowDownSLine size={20} />\n )}\n </section>\n {isSubOpen && (\n <div className={cn(\" border-primary-100 bg-gray-50\", menuClassName)}>\n {children}\n </div>\n )}\n </div>\n );\n};\n","import { VariantProps, cva } from \"class-variance-authority\";\nimport { HTMLAttributes, ReactNode } from \"react\";\nimport React from \"react\";\nimport { cn } from \"../utils/utils\";\nimport {\n RiAlertFill,\n RiCloseLine,\n RiErrorWarningLine,\n RiQuestionLine,\n RiThumbUpLine,\n RiShieldCheckLine,\n} from \"@remixicon/react\";\n\ninterface VariantIconProps {\n variant: \"success\" | \"warning\" | \"info\" | \"error\" | \"default\";\n}\n\nconst VariantIcon = ({ variant }: VariantIconProps) => {\n switch (variant) {\n case \"success\":\n return (\n <span>\n <RiThumbUpLine size={20} color=\"#039855\" />\n </span>\n );\n case \"warning\":\n return (\n <span>\n <RiQuestionLine color=\"#F79009\" size={20} />\n </span>\n );\n case \"info\":\n return (\n <span>\n <RiErrorWarningLine color=\"#1570EF\" size={20} />\n </span>\n );\n case \"error\":\n return (\n <span>\n <RiAlertFill color=\"#F04438\" size={20} />\n </span>\n );\n default:\n return (\n <span>\n <RiShieldCheckLine color=\"#475467\" size={20} />\n </span>\n );\n }\n};\n\ninterface NoticeProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof noticeVariants> {\n children?: ReactNode;\n noticeTitle?: string;\n variant: \"success\" | \"warning\" | \"info\" | \"error\" | \"default\";\n position?: \"top\" | \"bottom\";\n showIcon?: boolean;\n open: boolean;\n setOpen: (value: boolean) => void;\n}\n\nconst noticeVariants = cva(\"p-4 w-fit rounded-[6px]\", {\n variants: {\n variant: {\n success: \"bg-success-25 border border-success-600\",\n warning: \"bg-warning-25 border border-warning-600\",\n info: \"bg-primary-25 border border-primary-600\",\n error: \"bg-error-25 border border-error-600\",\n default: \"bg-gray-25 border border-gray-600\",\n },\n position: {\n top: \"top-4 transition-all duration-700 m-auto left-0 right-0\",\n bottom: \"bottom-4 transition-all duration-700 right-4\",\n },\n },\n});\n\nconst Notice = ({\n children,\n variant,\n position,\n noticeTitle,\n open,\n setOpen,\n showIcon = true,\n}: NoticeProps) => {\n const handleClose = () => setOpen(false);\n return (\n <>\n {open && (\n <div\n className={cn(\n noticeVariants({ variant, position }),\n `fixed z-10`,\n position === \"top\" && open && `animate-slide-in-top`,\n position === \"bottom\" && open && `animate-slide-in-right`\n )}\n >\n <div className=\"relative\">\n {showIcon ? (\n noticeTitle == \"\" ? (\n <div className=\"flex items-start\">\n <VariantIcon variant={variant} />\n <span className=\"ml-2 mr-8 text-text-sm\">{children}</span>\n <span onClick={handleClose}>\n <RiCloseLine size={20} />\n </span>\n </div>\n ) : (\n <div className=\"\">\n <section className=\"flex items-start\">\n <VariantIcon variant={variant} />\n <div className=\"ml-2 mr-8 -mt-[3px]\">\n <span className=\"font-bold text-gray-800 mb-1\">\n {noticeTitle}\n </span>\n <p className=\"text-text-sm text-gray-700\">{children}</p>\n </div>\n </section>\n <span\n className={cn(\"absolute top-0 right-0 cursor-pointer\")}\n onClick={handleClose}\n >\n <RiCloseLine size={20} />\n </span>\n </div>\n )\n ) : (\n <div className=\"mr-8\">\n <section className=\"flex items-center\">\n <p className=\"font-bold text-gray-800 mb-1\">{noticeTitle}</p>\n </section>\n <span\n className={cn(\"absolute top-0 right-0 cursor-pointer\")}\n onClick={handleClose}\n >\n <RiCloseLine size={20} />\n </span>\n <p className=\"text-text-sm\">{children}</p>\n </div>\n )}\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default Notice;\n","\"use client\";\nimport React, { useState } from \"react\";\nimport Button from \"./Button\";\nimport {\n RiArrowLeftLine,\n RiArrowRightLine,\n RiArrowDownSLine,\n RiArrowUpSLine,\n} from \"@remixicon/react\";\nimport { cn } from \"../utils/utils\";\n\ntype TablePaginationProps = {\n count: number;\n page: number;\n rowsPerPage: number;\n rowsPerPageOptions: (number | { label: string; value: number })[];\n onPageChange: (newPage: number) => void;\n onRowsPerPageChange: (newRowsPerPage: number) => void;\n className?: string;\n};\n\nconst Pagination: React.FC<TablePaginationProps> = ({\n count,\n page,\n rowsPerPage,\n rowsPerPageOptions,\n onPageChange,\n onRowsPerPageChange,\n className,\n}) => {\n const totalPages = Math.ceil(count / rowsPerPage);\n\n const handlePrevPageClick = () => {\n onPageChange(page - 1);\n };\n\n const handleNextPageClick = () => {\n onPageChange(page + 1);\n };\n const [showOptions, setShowOptions] = useState(false);\n\n const handleOptionClick = (\n option: number | { label: string; value: number }\n ) => {\n if (typeof option === \"number\") {\n onRowsPerPageChange(option);\n } else {\n onRowsPerPageChange(option.value);\n }\n setShowOptions(false);\n };\n\n return (\n <div\n className={cn(\n \"border border-gray-200 px-6 py-4 flex justify-between items-center w-full\",\n className\n )}\n >\n <section className=\"flex gap-1.5 items-center\">\n <span className=\"text-gray-800 text-text-sm font-medium\">\n Items per page\n </span>\n <div className=\"relative z-[100]\">\n <div\n className=\"border border-gray-600 w-[88px] rounded text-sm px-1.5 py-1 cursor-pointer flex items-center justify-between gap-1 text-gray-600\"\n onClick={() => setShowOptions(!showOptions)}\n >\n {rowsPerPage}{\" \"}\n {!showOptions ? (\n <RiArrowDownSLine size={14} />\n ) : (\n <RiArrowUpSLine size={14} />\n )}\n </div>\n {showOptions && (\n <div className=\"absolute top-full left-0 shadow bg-white rounded-md text-sm mt-1 z-50\">\n {rowsPerPageOptions?.map((option, index) => (\n <div\n key={index}\n className=\"px-2 py-1.5 w-[88px] text-gray-800 cursor-pointer hover:bg-gray-100\"\n onClick={() => handleOptionClick(option)}\n >\n {typeof option === \"number\" ? option : option.label}\n </div>\n ))}\n </div>\n )}\n </div>\n </section>\n <section className=\"flex items-center gap-2 font-medium\">\n <div className=\"flex items-center gap-2 text-gray-800 text-text-sm\">\n <span>page</span>\n <select\n value={page + 1}\n onChange={(e) => onPageChange(parseInt(e.target.value, 10) - 1)}\n className=\"bg-gray-25 text-gray-500 px-3.5 py-1 border border-gray-200 rounded-md text-sm focus:outline-none focus:border-gray-600\"\n >\n {totalPages > 0 &&\n [...Array(totalPages)].map((_, index) => (\n <option key={index + 1} value={index + 1}>\n {index + 1}\n </option>\n ))}\n </select>\n <span>of {totalPages > 0 ? totalPages : 0}</span>\n </div>\n\n <div className=\"flex items-center\">\n <Button\n variant=\"outlined\"\n intent=\"default-outlined\"\n startIcon={<RiArrowLeftLine size={20} />}\n onClick={handlePrevPageClick}\n disabled={page === 0}\n className=\"rounded-none h-8 rounded-l-lg\"\n />\n <Button\n variant=\"outlined\"\n intent=\"default-outlined\"\n startIcon={<RiArrowRightLine size={20} />}\n onClick={handleNextPageClick}\n disabled={page === totalPages - 1}\n className=\"rounded-none h-8 rounded-r-lg\"\n />\n </div>\n </section>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\nimport { cn } from \"../utils/utils\";\n\nexport type ProgressBarProps = {\n progress: number;\n progressText?: string;\n progressColor: string;\n progressTextPosition?: \"top\" | \"bottom\" | \"left\" | \"right\";\n};\n\nconst ProgressBar = ({\n progress,\n progressText = \"\",\n progressColor,\n progressTextPosition,\n}: ProgressBarProps) => {\n const _progress = Math?.min(Math?.max(0, progress), 100);\n return (\n <div\n className={cn(\n \"rounded\",\n progressTextPosition === \"right\"\n ? \"flex items-center gap-1\"\n : progressTextPosition === \"left\"\n ? \"flex items-center gap-1\"\n : \"\"\n )}\n >\n <span\n className={cn(\n \"text-gray-700 text-text-sm\",\n progressTextPosition === \"left\"\n ? \"inline-block\"\n : progressTextPosition === \"top\"\n ? \"flex justify-end\"\n : \"hidden\"\n )}\n >\n {progressText}\n </span>\n <div\n className=\"w-full h-2 rounded bg-gray-200\"\n role=\"progressbar\"\n aria-valuenow={_progress}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <div\n className={`${progressColor} h-full transition-all delay-1000 duration-700 rounded ease-in`}\n style={{ width: `${_progress}%` }}\n ></div>\n </div>\n <span\n className={cn(\n \"text-gray-700 text-text-sm\",\n progressTextPosition === \"bottom\"\n ? \"flex justify-end\"\n : progressTextPosition === \"top\"\n ? \"hidden\"\n : progressTextPosition === \"right\"\n ? \"flex justify-end\"\n : \"hidden\"\n )}\n >\n {progressText}\n </span>\n </div>\n );\n};\n\nexport default ProgressBar;\n","import React, { InputHTMLAttributes, forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\n\ninterface RadioProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof radioVariants> {\n size?: \"sm\" | \"lg\";\n disabled?: boolean;\n checked?: boolean;\n children?: never;\n}\n\nconst radioVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"h-3 w-3\",\n lg: \"h-4 w-4\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n});\n\nconst Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ size, disabled, checked, className, children, ...props }, ref) => {\n return (\n <div className=\"relative inline-flex items-center cursor-pointer\">\n <input\n {...props}\n ref={ref}\n checked={checked}\n disabled={disabled}\n type=\"radio\"\n className={cn(\n \"peer relative cursor-pointer appearance-none rounded-full border border-gray-300 hover:border-primary-600 hover:bg-primary-50 transition-all checked:border-primary-600 checked:bg-primary-50 disabled:opacity-30 disabled:pointer-events-none\",\n radioVariants({ size, className })\n )}\n />\n <span\n className={cn(\n \"absolute transition-opacity opacity-0 ease-in-out pointer-events-none top-2/4 left-2/4 -translate-y-2/4 -translate-x-2/4 peer-checked:opacity-100 h-1.5 w-1.5 bg-primary-600 rounded-full duration-300\",\n size == \"sm\" && \"h-[4.5px] w-[4.5px]\"\n )}\n ></span>\n </div>\n );\n }\n);\n\nRadio.displayName = \"Radio\";\nexport default Radio;\n","\"use client\";\nimport React, { ReactNode } from \"react\";\nimport Link from \"next/link\";\nimport { cn } from \"../utils/utils\";\nimport { usePathname } from \"next/navigation\";\nimport Divider from \"@/app/components/Divider\";\n\ninterface SidebarProps {\n children: React.ReactNode;\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n scroll?: boolean;\n navItems?: {\n label: string;\n items: {\n label: string;\n href: string;\n icon?: React.ReactElement;\n }[];\n }[];\n}\n\ninterface SidebarHeaderProps {\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n children: ReactNode;\n}\n\ninterface SidebarMenuProps {\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n scroll?: boolean;\n navItems?: {\n label: string;\n items: {\n label: string;\n href: string;\n icon?: React.ReactElement;\n }[];\n }[];\n}\n\ninterface FooterProps {\n children: React.ReactNode;\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n navItems?: {\n label: string;\n items: {\n label: string;\n href: string;\n icon?: React.ReactElement;\n }[];\n }[];\n}\n\n// Sidebar component\nconst Sidebar: React.FC<SidebarProps> & {\n Header: React.FC<SidebarHeaderProps>;\n Menu: React.FC<SidebarMenuProps>;\n Footer: React.FC<FooterProps>;\n} = ({ children, collapsed, setCollapsed }) => {\n return (\n <div\n onMouseEnter={() => setCollapsed(true)}\n onMouseLeave={() => setCollapsed(false)}\n className={cn(\n \"border border-gray-200 shadow-sm relative flex flex-col min-h-screen transition-all duration-300 ease-in-out cursor-pointer\",\n !collapsed ? \"w-[80px] py-[21px] px-[17px]\" : \"w-[308px] py-[22px] px-6\"\n )}\n >\n <div className=\"\">{children}</div>\n </div>\n );\n};\n\n// SidebarHeader component\nconst SidebarHeader: React.FC<SidebarHeaderProps> = ({\n collapsed,\n setCollapsed,\n children,\n}) => {\n return (\n <div\n className={cn({\n \"z-20\": true,\n })}\n >\n <div className=\"flex justify-between items-center mb-4\">\n <span className=\"whitespace-nowrap\">{children}</span>\n {/* {collapsed && (\n <button\n className={cn({\n \"grid place-content-center\": true,\n \"hover:bg-gray-100 \": true,\n \"rounded-full\": true,\n })}\n onClick={() => setCollapsed(!collapsed)}\n >\n <RiArrowLeftSLine color=\"#101828\" />\n </button>\n )} */}\n </div>\n </div>\n );\n};\n\n// SidebarMenu component\nconst SidebarMenu: React.FC<SidebarMenuProps> = ({\n collapsed,\n navItems,\n scroll = false,\n}) => {\n const currentPath = usePathname();\n\n return (\n <nav className={`max-h-[60vh] ${scroll && \"overflow-y-auto customScroll\"}`}>\n <ul className=\"my-2 flex flex-col gap-2 items-stretch\">\n {navItems?.map((parentItem, parentIndex) => (\n <li\n key={parentIndex}\n className=\"flex flex-col gap-3 mb-1 whitespace-nowrap overflow-hidden\"\n >\n <p\n className={cn({\n \"text-[14px] text-gray-500\": true,\n \"w-[37px] text-ellipsis text-white whitespace-nowrap overflow-hidden\":\n !collapsed,\n })}\n >\n {parentItem.label}\n </p>\n\n {\n <ul>\n {parentItem?.items.map((item, index) => (\n <li key={index}>\n <Link\n className={cn({\n \"hover:bg-gray-100 px-3 py-2 flex items-center mb-[6px] cursor-pointer rounded-md transition-colors duration-300 font-semibold whitespace-nowrap overflow-hidden\":\n true,\n \"text-white bg-primary-600\": currentPath === item?.href,\n \"text-gray-700\": currentPath !== item?.href,\n \"hover:bg-primary-600\": currentPath === item?.href,\n })}\n href={item.href}\n passHref\n >\n <div\n className={`flex items-center gap-2 whitespace-nowrap`}\n >\n <span className=\"text-text-sm\"> {item.icon}</span>\n <span className={cn(!collapsed ? \"opacity-0\" : \"\")}>\n {item.label}\n </span>\n </div>\n </Link>\n </li>\n ))}\n </ul>\n }\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n\n// Footer component\nconst Footer: React.FC<FooterProps> = ({\n children,\n setCollapsed,\n collapsed,\n navItems,\n}) => {\n const currentPath = usePathname();\n return (\n <div\n className={cn({\n \"absolute bottom-0 max-h-[230px] overflow-auto bg-white z-10 py-3 w-[85%]\":\n true,\n \"w-[55%]\": !collapsed,\n })}\n onClick={() => setCollapsed(true)}\n >\n {collapsed && (\n <div className=\"shadow-md\">\n <Divider />\n </div>\n )}\n {navItems && navItems.length > 0 && (\n <nav className=\"flex-grow w-full\">\n <ul className=\"my-2 flex flex-col gap-2 items-stretch\">\n {navItems?.map((parentItem, parentIndex) => (\n <li\n key={parentIndex}\n className=\"flex flex-col gap-3 mb-1 whitespace-nowrap overflow-hidden\"\n >\n <p\n className={cn({\n \"text-[14px] text-gray-500\": true,\n \"w-[37px] text-ellipsis text-white whitespace-nowrap overflow-hidden\":\n !collapsed,\n })}\n >\n {parentItem.label}\n </p>\n {\n <ul>\n {parentItem?.items?.map((item, index) => (\n <li key={index}>\n <Link\n className={cn({\n \"hover:bg-gray-100 px-3 py-2 flex items-center mb-[6px] cursor-pointer rounded-md transition-colors duration-300 font-semibold whitespace-nowrap overflow-hidden\":\n true,\n \"text-white bg-primary-600\":\n currentPath === item?.href,\n \"text-gray-700\": currentPath !== item?.href,\n \"hover:bg-primary-600\": currentPath === item?.href,\n })}\n href={item.href}\n passHref\n >\n <div\n className={`flex items-center gap-2 whitespace-nowrap`}\n >\n <span className=\"text-text-sm\"> {item.icon}</span>\n <span className={cn(!collapsed ? \"opacity-0\" : \"\")}>\n {item.label}\n </span>\n </div>\n </Link>\n </li>\n ))}\n </ul>\n }\n </li>\n ))}\n </ul>\n </nav>\n )}\n {children}\n </div>\n );\n};\n\nSidebar.Header = SidebarHeader;\nSidebar.Menu = SidebarMenu;\nSidebar.Footer = Footer;\n\nexport default Sidebar;\n","import React, { forwardRef, type InputHTMLAttributes } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n value: number;\n min?: number;\n max?: number;\n size?: \"sm\" | \"lg\";\n}\n\nconst Slider = forwardRef<HTMLInputElement, SliderProps>(\n ({ value, min = 0, max = 100, size = \"sm\", ...props }, ref) => {\n const progress = ((value - min) / (max - min)) * 100;\n return (\n <>\n <input\n ref={ref}\n type=\"range\"\n min={min}\n max={max}\n value={value}\n {...props}\n className={cn(\n \"slider w-full rounded-full appearance-none bg-gray-300 h-4 cursor-pointer focus:outline-none\",\n size === \"sm\" ? \"h-1.5\" : \"h-4\"\n )}\n style={{\n background: `linear-gradient(to right, var(--primary-300) ${progress}%, var(--gray-300) ${progress}%)`,\n }}\n />\n </>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n","import React from \"react\";\n\ninterface SkeletonProps {\n width?: string | number;\n height?: string | number;\n circle?: boolean;\n}\n\nconst Skeleton: React.FC<SkeletonProps> = ({\n width = '100%',\n height = '100%',\n circle = false,\n}) => {\n const style: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n borderRadius: circle ? '50%' : undefined,\n };\n\n return <span className={`skeleton rounded-lg ${circle ? 'circle' : ''}`} style={style}></span>;\n};\n\nexport default Skeleton;\n","\"use client\";\nimport React, { useRef } from \"react\";\nimport { RiCheckLine } from \"@remixicon/react\";\nimport { cn } from \"../utils/utils\";\n\ninterface StepConfig {\n name: string;\n helperName?: string;\n Component: React.ComponentType<any>;\n}\n\ninterface CheckoutStepperProps {\n stepsConfig: StepConfig[];\n currentStep: number;\n setCurrentStep: (step: number) => void;\n isComplete: boolean;\n setIsComplete: (complete: boolean) => void;\n position?: string;\n}\n\nconst Stepper = ({\n stepsConfig,\n currentStep,\n setCurrentStep,\n isComplete,\n setIsComplete,\n position = \"horizontal\",\n}: CheckoutStepperProps) => {\n const stepRef = useRef<(HTMLDivElement | null)[]>([]);\n\n if (!stepsConfig.length) {\n return null;\n }\n\n const ActiveComponent = stepsConfig[currentStep - 1]?.Component;\n\n return (\n <div className={cn(position !== \"horizontal\" && \"flex\")}>\n <div\n className={cn(\n \"relative\",\n position === \"horizontal\"\n ? \"flex justify-between items-start\"\n : \"flex flex-col\"\n )}\n >\n {stepsConfig.map((step, index) => (\n <div\n key={index}\n ref={(el: any) => (stepRef.current[index] = el)}\n className={`w-full ${\n position === \"horizontal\"\n ? \"flex gap-4 flex-col\"\n : \"flex gap-6 justify-start\"\n } ${currentStep > index + 1 || isComplete ? \"complete\" : \"\"} ${\n currentStep === index + 1 ? \"\" : \"\"\n }`}\n >\n <div\n className={cn(\n \"\",\n position === \"horizontal\"\n ? \"flex items-center\"\n : \"flex flex-col\"\n )}\n >\n <div\n className={`w-[20px] h-[20px] rounded-full bg-gray-100 flex justify-center items-center ${\n currentStep === index + 1\n ? \"border border-primary-600\"\n : \"border border-gray-200\"\n } ${\n currentStep > index + 1 || isComplete\n ? \"bg-primary-600 border-none\"\n : \"\"\n }`}\n >\n {currentStep === index + 1 && !isComplete && (\n <span className=\"w-[10px] h-[10px] rounded-full bg-primary-600\"></span>\n )}\n {(currentStep > index + 1 || isComplete) && (\n <span>\n <RiCheckLine size={12} color=\"#fff\" />\n </span>\n )}\n </div>\n {index !== stepsConfig.length - 1 && (\n <div\n className={cn(\n \"mx-auto rounded-lg bg-gray-200\",\n position === \"horizontal\"\n ? \"w-[80%] h-1\"\n : \"h-[100px] w-1 my-2\"\n )}\n >\n <p\n className={cn(\n \"h-full rounded-lg \",\n currentStep > index + 1 ? \"bg-primary-600\" : \"\"\n )}\n ></p>\n </div>\n )}\n </div>\n\n {/* step name */}\n <div\n className={cn(\n \"whitespace-nowrap\",\n position === \"vertical\" || step?.helperName ? \"-mt-1\" : \"\"\n )}\n >\n <span className=\"text-gray-400 text-text-xs\">\n {step?.helperName}\n </span>\n <p>{step?.name}</p>\n </div>\n </div>\n ))}\n </div>\n\n {ActiveComponent && <ActiveComponent />}\n </div>\n );\n};\n\nexport default Stepper;\n","import React, {\n HTMLAttributes,\n ReactNode,\n TableHTMLAttributes,\n TdHTMLAttributes,\n ThHTMLAttributes,\n} from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface TableProps extends TableHTMLAttributes<HTMLTableElement> {\n children?: ReactNode;\n dense?: boolean;\n}\n\ninterface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {\n children?: ReactNode;\n}\n\ninterface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {\n children?: ReactNode;\n indent?: boolean;\n}\n\ninterface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElement> {\n children?: ReactNode;\n icon?: JSX.Element;\n sticky?: boolean;\n left?: string;\n stickyIcon?: JSX.Element;\n shadow?: boolean;\n}\n\ninterface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n children?: ReactNode;\n icon?: JSX.Element;\n sticky?: boolean;\n left?: string;\n shadow?: boolean;\n}\n\nexport const Table = ({ children, className, dense, ...props }: TableProps) => {\n return (\n <table\n {...props}\n className={cn(\n dense && \"group/dense\",\n \"bg-white text-left w-full border\",\n className\n )}\n >\n {children}\n </table>\n );\n};\n\nexport const TableHead = ({\n children,\n className,\n ...props\n}: TableHeadProps) => {\n return (\n <thead\n {...props}\n className={cn(\"bg-gray-50 border border-gray-200\", className)}\n >\n {children}\n </thead>\n );\n};\n\nexport const TableBody = ({\n children,\n className,\n ...props\n}: TableHeadProps) => {\n return (\n <tbody {...props} className={cn(className)}>\n {children}\n </tbody>\n );\n};\n\nexport const TableRow = ({\n children,\n className,\n indent,\n ...props\n}: TableRowProps) => {\n return (\n <tr\n {...props}\n className={cn(\n \"border border-gray-200 hover:bg-gray-50\",\n indent && \"group/indent border-none\",\n className\n )}\n >\n {children}\n </tr>\n );\n};\n\nexport const TableHeadCell = ({\n children,\n className,\n icon,\n sticky,\n shadow,\n left,\n ...props\n}: TableHeadCellProps) => {\n return (\n <th\n {...props}\n className={cn(\n \"px-6 py-3 text-left group-has-[th]/dense:py-2\",\n sticky && `sticky bg-gray-50`,\n sticky && shadow && \"shadow-table\",\n left,\n className\n )}\n style={{\n left: left,\n }}\n >\n <div className=\"flex items-center gap-1\">\n <span className=\"font-medium text-xs\">{children}</span>\n {icon && (\n <span\n className={\n \"hover:bg-gray-200 w-5 h-5 flex items-center justify-center p-1 rounded focus:bg-gray-300 active:bg-gray-300\"\n }\n >\n {icon}\n </span>\n )}\n </div>\n </th>\n );\n};\n\nexport const TableDataCell = ({\n children,\n className,\n icon,\n sticky,\n shadow,\n left,\n ...props\n}: TableCellProps) => {\n return (\n <td\n {...props}\n className={cn(\n \"px-6 py-4 text-sm font-medium group-has-[td]/dense:py-2 first:group-has-[td]/indent:pl-[60px]\",\n sticky && `sticky bg-white`,\n sticky && shadow && \"shadow-table\",\n left,\n className\n )}\n style={{\n left: left,\n }}\n >\n <span className=\"font-medium text-sm\">{children}</span>\n {icon && (\n <span\n className={\n \"hover:bg-gray-200 w-5 h-5 flex items-center justify-center p-1 rounded focus:bg-gray-300 active:bg-gray-300\"\n }\n >\n {icon}\n </span>\n )}\n </td>\n );\n};\n\nexport default Table;\n","import React from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface TabItem {\n label: string;\n value: string;\n}\n\ninterface TabsContainerProps {\n value: string;\n children: React.ReactNode;\n className?: string;\n}\n\ninterface TabListProps extends Partial<TabItem> {\n onChange: (value: string) => void;\n ariaLabel?: string;\n children: React.ReactNode;\n box?: boolean;\n className?: string;\n}\n\ninterface TabProps extends TabItem {\n onChange: (value: string) => void;\n box?: boolean;\n content?: React.ReactNode;\n selectedTabValue: string;\n icon?: JSX.Element;\n className?: string;\n}\n\ninterface TabPanelProps {\n value: string;\n currentValue: string;\n children: React.ReactNode;\n className?: string;\n}\n\nexport const TabsContainer: React.FC<TabsContainerProps> = ({\n children,\n className,\n}) => {\n return <div className={className}>{children}</div>;\n};\n\nexport const TabList: React.FC<TabListProps> = ({\n onChange,\n ariaLabel,\n children,\n box = false,\n className,\n}) => {\n const handleTabChange = (value: string) => {\n onChange(value);\n };\n\n return (\n <div\n className={cn(\n \"flex items-center\",\n box\n ? \"bg-gray-50 rounded-lg border border-gray-200\"\n : \"border-b border-gray-200\",\n className\n )}\n role=\"tablist\"\n aria-label={ariaLabel}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child as React.ReactElement<TabProps>, {\n onChange: handleTabChange,\n box,\n });\n }\n return null;\n })}\n </div>\n );\n};\n\nexport const Tab: React.FC<TabProps> = ({\n label,\n value,\n onChange,\n icon,\n content,\n box = false,\n selectedTabValue,\n className,\n}) => {\n const handleClick = () => {\n onChange(value);\n };\n\n const isSelected = value === selectedTabValue;\n\n return (\n <button\n role=\"tab\"\n className={cn(\n \"flex items-center gap-2 px-4 py-3 text-text-sm font-medium cursor-pointer hover:bg-gray-100 hover:rounded-t transition-all ease-linear duration-200 delay-75\",\n isSelected && !box\n ? \"text-primary-600 border-b-2 border-primary-600\"\n : \"border-b-2 border-transparent text-gray-700\",\n isSelected && box ? \"bg-white hover:bg-white shadow-md\" : \"\",\n box ? \"m-1 rounded-lg hover:rounded-lg\" : \"m-0\",\n className\n )}\n onClick={handleClick}\n >\n {icon} {label} {content}\n </button>\n );\n};\n\nexport const TabPanel: React.FC<TabPanelProps> = ({\n value,\n currentValue,\n children,\n className,\n}) => {\n return value === currentValue ? (\n <div className={className}>{children}</div>\n ) : null;\n};\n\nexport default TabsContainer;\n","import React, {\n forwardRef,\n type ReactNode,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface TextareaProps\n extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, \"size\"> {\n size?: \"sm\" | \"lg\";\n disabled?: boolean;\n rows?: number;\n cols?: number;\n children?: ReactNode;\n}\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ size, className, rows, cols, disabled, children, ...props }, ref) => {\n return (\n <textarea\n {...props}\n ref={ref}\n disabled={disabled}\n rows={rows}\n cols={cols}\n className={cn(\n \"group flex items-center gap-2 border border-gray-200 rounded-lg bg-gray-50 shadow-xs hover:bg-gray-50 hover:border-gray-300 text-sm focus-within:border-gray-800 focus-within:bg-gray-25 focus-within:hover:bg-gray-50 focus-within:hover:border-gray-800 outline-none disabled:bg-gray-300 disabled:select-none disabled:pointer-events-none disabled:opacity-30 placeholder:text-gray-500 hover:placeholder:text-gray-500\",\n size === \"sm\" ? \"py-2.5 px-3.5\" : \"p-2.5\",\n className,\n size\n )}\n >\n {children}\n </textarea>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport default Textarea;\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport React, { type InputHTMLAttributes, forwardRef } from \"react\";\nimport { cn } from \"../utils/utils\";\n\ninterface ToggleProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof toggleVariants> {\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n children?: never;\n}\n\nconst toggleVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"w-5 h-3 after:w-2 after:h-2\",\n md: \"w-9 h-5 after:w-4 after:h-4\",\n lg: \"w-11 h-6 after:w-5 after:h-5\",\n },\n intent: {\n primary: \"peer-checked:bg-primary-600\",\n success: \"peer-checked:bg-success-500\",\n },\n },\n defaultVariants: {\n size: \"md\",\n intent: \"primary\",\n },\n});\n\nconst Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n ({ size, className, intent, disabled, children, ...props }, ref) => {\n return (\n <label\n className={cn(\n \"inline-flex items-center cursor-pointer\",\n disabled && \"opacity-30 pointer-events-none\"\n )}\n >\n <input\n type=\"checkbox\"\n disabled={disabled}\n ref={ref}\n {...props}\n className=\"sr-only flex justify-center peer\"\n />\n <span\n className={cn(\n \"relative w-11 h-7 bg-gray-300 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all\",\n toggleVariants({\n intent,\n className,\n size,\n })\n )}\n >\n {children}\n </span>\n </label>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n\nexport default Toggle;\n"],"mappings":"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","names":["MenuItem","clsx","import_react","React","import_react","React","Image","import_react","React","import_react","React","import_react","React","import_react","import_class_variance_authority","React","import_react","import_class_variance_authority","React","import_react","React","import_react","import_react","React","import_class_variance_authority","import_react","React","import_class_variance_authority","import_react","React","React","_a","import_react","defaultRenderItem","React","MenuItem","DropdownTooltip","DropdownFooter","import_react","React","import_react","React","import_react","React","import_react","React","Link","import_react","React","import_react","React","import_react","import_react","React","MenuItem","import_class_variance_authority","import_react","import_react","React","import_react","import_react","React","import_react","React","import_react","import_class_variance_authority","React","import_react","import_link","React","Link","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_class_variance_authority","import_react","React"]}
|