@thebasenet/ui 0.1.3 → 0.1.4
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/dist/brand/index.d.ts +15 -15
- package/dist/brand/index.js +158 -18
- package/dist/brand/index.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +158 -18
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +158 -18
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/globals.css +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../mnt/GitHub/tcn-ui/src/brand/BrandLogo.tsx","../../mnt/GitHub/tcn-ui/src/brand/BrandIcon.tsx","../../mnt/GitHub/tcn-ui/src/brand/LogoIcon.tsx","../../mnt/GitHub/tcn-ui/src/utils/cn.ts","../../mnt/GitHub/tcn-ui/src/components/loader.tsx","../../mnt/GitHub/tcn-ui/src/components/page-loader.tsx","../../mnt/GitHub/tcn-ui/src/ui/typography.tsx","../../mnt/GitHub/tcn-ui/src/components/empty-state.tsx","../../mnt/GitHub/tcn-ui/src/ui/skeleton.tsx","../../mnt/GitHub/tcn-ui/src/components/loading-state.tsx","../../mnt/GitHub/tcn-ui/src/components/error-state.tsx","../../mnt/GitHub/tcn-ui/src/ui/dialog.tsx","../../mnt/GitHub/tcn-ui/src/ui/drawer.tsx","../../mnt/GitHub/tcn-ui/src/components/custom-modal.tsx","../../mnt/GitHub/tcn-ui/src/ui/button.tsx","../../mnt/GitHub/tcn-ui/src/components/back-button.tsx","../../mnt/GitHub/tcn-ui/src/components/theme-switcher.tsx","../../mnt/GitHub/tcn-ui/src/components/profile-image.tsx","../../mnt/GitHub/tcn-ui/src/ui/input.tsx","../../mnt/GitHub/tcn-ui/src/ui/label.tsx","../../mnt/GitHub/tcn-ui/src/components/country-selector.tsx"],"names":["jsx","Link","jsxs","Image","DrawerPrimitive","CalendarIcon","React","useState","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-namespace */\n// @ts-nocheck\nimport Link from \"next/link\";\nimport React from \"react\";\n\nexport interface BrandLogoProps {\n width?: string | number;\n height?: string | number;\n /** href for the wrapping link. Defaults to \"/\" */\n link?: string;\n className?: string;\n}\n\n/**\n * The Circular Net full wordmark (SVG).\n *\n * Requires `next/link` — use inside a Next.js app.\n *\n * Font: Coolvetica is loaded via @font-face in @thebasenet/ui/styles/globals.css\n * (or styles/fonts.css). Make sure that stylesheet is imported in your app's\n * globals.css for the text to render correctly.\n */\nconst BrandLogo: React.FC<BrandLogoProps> = ({\n width,\n height,\n link,\n className,\n}) => {\n return (\n <Link className={`inline-block ${className ?? \"\"}`} href={link || \"/\"}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n width={width || \"150\"}\n height={height || \"70\"}\n style={{\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n }}\n viewBox=\"0 0 4606.47 1711.22\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <defs />\n <style type=\"text/css\">{`\n .fil1 {fill:#2F61C4}\n .fil0 {fill:#3B3A3A}\n .fil2 {fill:#4CBC13}\n .fnt1 {font-weight:normal;font-size:431.52px;font-family:'coolvetica','Coolvetica Rg',sans-serif}\n .fnt0 {font-weight:normal;font-size:872.5px;font-family:'coolvetica','Coolvetica Rg',sans-serif}\n `}</style>\n <g id=\"Layer_x0020_1\">\n <metadata id=\"CorelCorpID_0Corel-Layer\" />\n <g id=\"_2066693523904\">\n <g>\n <text x={1937.5} y={1009.24} className=\"fil0 fnt0 \">{\"Circular \"}</text>\n <text x={1937.49} y={1689.88} className=\"fil0 fnt0\">{\"Net\"}</text>\n <text x={1937.49} y={299.99} className=\"fil0 fnt1\">{\"The \"}</text>\n </g>\n <path className=\"fil1\" d=\"M126.14 0c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15zm-64.12 764.65c-31.4,0 -56.86,-25.45 -56.86,-56.85l0 -235.52c0,-31.4 25.46,-56.86 56.86,-56.86 194.36,0 353.37,-159.02 353.37,-353.39l0 -0.03c0,-31.4 25.46,-56.85 56.86,-56.85l235.56 0c31.4,0 56.85,25.46 56.85,56.85 0,386.46 -316.19,702.64 -702.64,702.64z\" fill=\"#2F61C4\" />\n <path className=\"fil2\" d=\"M472.24 1706.08l235.58 0c31.4,0 56.84,-25.44 56.84,-56.84l0 -0.04c0,-386.45 -316.2,-702.66 -702.66,-702.66 -31.4,0 -56.84,25.46 -56.84,56.85l0 235.57c0,31.4 25.45,56.85 56.84,56.85l0.03 0c194.36,0 353.36,159.02 353.36,353.37l0 0.05c0,31.4 25.45,56.84 56.84,56.84zm-346.1 -247.14c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2ABC13\" />\n <path className=\"fil1\" d=\"M1295.81 1649.2c0,-194.36 159.03,-353.39 353.39,-353.39 31.4,0 56.84,-25.45 56.84,-56.85l0 -235.57c0,-31.4 -25.44,-56.85 -56.84,-56.85l-0.03 0c-386.44,0 -702.62,316.19 -702.62,702.63l0 0.06c0,31.4 25.44,56.84 56.84,56.84l235.58 0c31.39,0 56.84,-25.44 56.84,-56.84l0 -0.04zm289.26 -190.27c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2F61C4\" />\n <path className=\"fil2\" d=\"M1649.19 415.43c-194.37,0 -353.38,-159.02 -353.38,-353.37l0 -0.05c0,-31.4 -25.45,-56.85 -56.86,-56.85l-235.54 0c-31.4,0 -56.86,25.46 -56.86,56.85 0,386.46 316.19,702.64 702.64,702.64 31.39,0 56.85,-25.45 56.85,-56.85l0 -235.51c0,-31.4 -25.46,-56.86 -56.85,-56.86zm-64.12 -415.43c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\" fill=\"#2ABC13\" />\n </g>\n </g>\n </svg>\n </Link>\n );\n};\n\nexport default BrandLogo;\n","// @ts-nocheck\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport React from \"react\";\n\nexport interface BrandIconProps {\n /** Size in px for both width and height. Defaults to 80. */\n size?: number;\n /** href for the wrapping link. Defaults to \"/\" */\n link?: string;\n className?: string;\n}\n\n/**\n * The Circular Net icon (image-based).\n * Requires `next/image` and `next/link` — use inside a Next.js app.\n * Make sure `/icon.png` exists in your app's `public/` folder.\n */\nconst BrandIcon: React.FC<BrandIconProps> = ({ size = 80, link, className }) => {\n return (\n <Link className={`inline-block ${className ?? \"\"}`} href={link || \"/\"}>\n <Image\n src=\"/icon.png\"\n alt=\"The Circular Net\"\n width={size}\n height={size}\n />\n </Link>\n );\n};\n\nexport default BrandIcon;\n","import React from \"react\";\n\nexport interface LogoIconProps {\n /** Colour of the strokes. Defaults to TCN green (#4cbc13). */\n color?: string;\n /** Width and height in px. Defaults to 365. */\n size?: number;\n className?: string;\n}\n\n/**\n * The Circular Net logo mark — outlined / stroke-only variant.\n * Pure SVG with zero framework dependencies.\n */\nconst LogoIcon: React.FC<LogoIconProps> = ({\n color = \"#4cbc13\",\n size = 365,\n className,\n}) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 365 365\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M100.73 1.19794H150.975C157.617 1.19795 163.001 6.58414 163.001 13.2243C163.001 95.5997 95.6028 162.995 13.2295 162.995H13.1299V162.996C6.53349 162.942 1.20119 157.58 1.20117 150.971V100.736C1.20117 94.0938 6.58726 88.7078 13.2295 88.7077C54.7411 88.7077 88.7021 54.7439 88.7021 13.2302V13.2243C88.7021 6.58204 94.0882 1.19794 100.73 1.19794Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M13.2256 201.997C95.6009 201.998 163.001 269.4 163.001 351.773V351.782C163.001 358.424 157.619 363.805 150.977 363.805H100.77L100.768 363.803H100.727C94.0865 363.803 88.7023 358.422 88.7021 351.78V351.769C88.7021 310.259 54.7431 276.296 13.2314 276.296H13.2256C6.58544 276.296 1.20117 270.912 1.20117 264.27V214.024C1.20117 207.384 6.58333 201.997 13.2256 201.997Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M351.761 201.997H351.768C358.41 201.997 363.791 207.381 363.791 214.024V264.27C363.791 270.912 358.41 276.296 351.768 276.296C310.58 276.296 276.822 309.733 276.297 350.801L276.291 351.771V351.78C276.291 358.422 270.907 363.803 264.267 363.803H214.019C207.376 363.803 201.994 358.422 201.994 351.78V351.767C201.994 269.396 269.39 201.998 351.761 201.997Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M214.022 1.25079H264.263C270.879 1.25088 276.24 6.61178 276.24 13.2264V13.2371C276.24 54.7742 310.224 88.7596 351.766 88.7596C358.378 88.7597 363.741 94.1235 363.741 100.738V150.971C363.741 157.586 358.378 162.947 351.766 162.947C269.42 162.947 202.045 95.5742 202.045 13.2264C202.045 6.61389 207.408 1.25086 214.022 1.25079Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n </svg>\n );\n};\n\nexport default LogoIcon;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\ntype LoaderProps = {\n size?: number | string;\n color?: string;\n variant?: \"primary\" | \"secondary\";\n className?: string;\n};\n\nconst Loader: React.FC<LoaderProps> = ({\n size = 25,\n color = \"#4cbc13\",\n variant = \"primary\",\n className,\n}) => {\n const borderColor = color\n ? `border-t-[#4cbc13]`\n : variant === \"primary\"\n ? \"border-t-white border-green-700\"\n : \"border-t-green-500 border-neutral-300\";\n\n const style = {\n width: typeof size === \"number\" ? `${size}px` : size,\n height: typeof size === \"number\" ? `${size}px` : size,\n };\n\n return (\n <span\n className={cn(\n \"z-40 border-3 rounded-full animate-spin block\",\n borderColor,\n className\n )}\n style={style}\n />\n );\n};\n\nexport { Loader };\n","import React from \"react\";\nimport { Loader } from \"./loader\";\nimport BrandLogo from \"../brand/BrandLogo\";\n\ninterface PageLoaderProps {\n message?: string;\n}\n\nfunction PageLoader({ message }: PageLoaderProps) {\n return (\n <div className=\"min-h-[100vh] w-full flex items-center justify-center bg-gray-100 dark:bg-gray-900\">\n <div className=\"flex flex-col items-center space-y-2.5\">\n <BrandLogo width={110} />\n <Loader size={32} />\n {message && (\n <p className=\"text-base max-w-lg text-gray-600 dark:text-gray-300\">\n {message}\n </p>\n )}\n </div>\n </div>\n );\n}\n\nexport { PageLoader };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface HeadingProps extends React.InputHTMLAttributes<HTMLHeadingElement> {\n children?: React.ReactNode;\n}\n\nconst Heading1 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h1 className={cn(\"text-3xl font-[700] font-onest text-black dark:text-white\", className)} ref={ref} {...props}>\n {children}\n </h1>\n )\n);\nHeading1.displayName = \"Heading1\";\n\nconst Heading2 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h2 className={cn(\"text-[26px] font-[600] font-onest text-black dark:text-neutral-100\", className)} ref={ref} {...props}>\n {children}\n </h2>\n )\n);\nHeading2.displayName = \"Heading2\";\n\nconst Heading3 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h3 className={cn(\"text-2xl font-semibold font-onest text-neutral-900 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h3>\n )\n);\nHeading3.displayName = \"Heading3\";\n\nconst Heading4 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h4 className={cn(\"text-[22px] font-semibold text-neutral-800 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h4>\n )\n);\nHeading4.displayName = \"Heading4\";\n\nconst Heading5 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h5 className={cn(\"text-lg font-semibold text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h5>\n )\n);\nHeading5.displayName = \"Heading5\";\n\nconst Heading6 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h6 className={cn(\"text-base font-[500] text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h6>\n )\n);\nHeading6.displayName = \"Heading6\";\n\nexport interface BodyProps extends React.InputHTMLAttributes<HTMLParagraphElement> {\n children?: React.ReactNode;\n}\n\nconst Body1 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-[18px] text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody1.displayName = \"Body1\";\n\nconst Body2 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-base text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody2.displayName = \"Body2\";\n\nconst Body3 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-sm lg:leading-[22px] text-neutral-600 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody3.displayName = \"Body3\";\n\nexport { Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Body1, Body2, Body3 };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport { Body2 } from \"../ui/typography\";\nimport { cn } from \"../utils/cn\";\n\ninterface EmptyStateProps {\n title?: string;\n message?: string;\n imageSrc?: string;\n size?: number;\n component?: React.ReactNode;\n className?: string;\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({\n imageSrc,\n size = 200,\n title = \"No Data Found!\",\n message = \"Check back later to see more content.\",\n component,\n className = \"min-h-[60vh]\",\n icon,\n}) => {\n return (\n <div className={cn(\"flex items-center justify-center\", className)}>\n <div className=\"text-center\">\n {icon && <div className=\"mb-4\">{icon}</div>}\n {imageSrc && (\n <Image\n src={imageSrc}\n alt=\"Empty State\"\n width={size}\n height={size}\n className=\"mx-auto mb-4\"\n />\n )}\n <h1 className=\"text-[1.325rem] md:text-[1.45rem] text-black font-onest font-semibold\">\n {title}\n </h1>\n <Body2 className=\"max-w-xs text-[#646464]\">{message}</Body2>\n {component && <div className=\"mt-2.5\">{component}</div>}\n </div>\n </div>\n );\n};\n\nexport { EmptyState };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { Skeleton } from \"../ui/skeleton\";\n\ninterface LoadingStateProps {\n /** Number of skeleton rows to render */\n rows?: number;\n /** Show a circular skeleton avatar before each row */\n showAvatar?: boolean;\n className?: string;\n rowClassName?: string;\n}\n\nconst LoadingState: React.FC<LoadingStateProps> = ({\n rows = 5,\n showAvatar = false,\n className,\n rowClassName,\n}) => {\n return (\n <div\n className={cn(\"min-h-[60vh] flex items-center justify-center\", className)}\n >\n <div className=\"w-full max-w-md space-y-3 px-4\">\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} className={cn(\"flex items-center gap-3\", rowClassName)}>\n {showAvatar && (\n <Skeleton className=\"size-10 shrink-0 rounded-full\" />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-3/4 rounded\" />\n <Skeleton className=\"h-3 w-1/2 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport { LoadingState };\n","import React from \"react\";\n\ninterface ErrorStateProps {\n title?: string;\n message?: string;\n onRetry?: () => void;\n}\n\nconst ErrorState: React.FC<ErrorStateProps> = ({\n title = \"Error Fetching Data\",\n message = \"An error occurred\",\n onRetry,\n}) => {\n return (\n <div className=\"min-h-[60vh] flex items-center justify-center\">\n <div className=\"text-center\">\n <h3 className=\"text-[1.45rem] font-onest font-[600] text-primary-500\">\n {title}\n </h3>\n <p className=\"text-[#646464] font-golosText font-[500] text-[.9rem] line-clamp-3\">\n {message}\n </p>\n {onRetry && (\n <button\n onClick={onRetry}\n className=\"rounded-md h-[2.75rem] min-w-[7rem] px-6 bg-primary-500 text-white text-[.9rem] font-onest font-[600] mt-5\"\n >\n Refetch\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport { ErrorState };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & { showCloseButton?: boolean }) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)} {...props} />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)} {...props} />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(\"text-lg leading-none font-semibold\", className)} {...props} />\n );\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n );\n}\n\nexport {\n Dialog, DialogClose, DialogContent, DialogDescription,\n DialogFooter, DialogHeader, DialogOverlay, DialogPortal,\n DialogTitle, DialogTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../utils/cn\";\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\n \"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b\",\n \"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto my-2.5 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"drawer-footer\" className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)} {...props} />;\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return <DrawerPrimitive.Title data-slot=\"drawer-title\" className={cn(\"text-foreground font-semibold\", className)} {...props} />;\n}\n\nfunction DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return <DrawerPrimitive.Description data-slot=\"drawer-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />;\n}\n\nexport {\n Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose,\n DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription,\n};\n","\"use client\";\n\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { Calendar as CalendarIcon } from \"iconsax-react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogDescription,\n} from \"../ui/dialog\";\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n DrawerDescription,\n DrawerClose,\n} from \"../ui/drawer\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// useIsMobile — inline hook (no external dependency)\n// ---------------------------------------------------------------------------\nconst MOBILE_BREAKPOINT = 768;\n\nfunction useIsMobile(): boolean {\n const [isMobile, setIsMobile] = useState<boolean | undefined>(undefined);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => setIsMobile(mql.matches);\n mql.addEventListener(\"change\", onChange);\n setIsMobile(mql.matches);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal props\n// ---------------------------------------------------------------------------\nexport interface CustomModalProps {\n title: string;\n children: ReactNode | ((closeModal: () => void) => ReactNode);\n\n trigger?: ReactNode;\n triggerAsChild?: boolean;\n description?: string;\n\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n className?: string;\n contentClassName?: string;\n\n showModalHeader?: boolean;\n showModalDescription?: boolean;\n /** Override the default icon shown in the modal header */\n customIcon?: ReactNode;\n\n footer?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal component\n// ---------------------------------------------------------------------------\nconst CustomModal: React.FC<CustomModalProps> = ({\n title,\n children,\n description,\n trigger,\n triggerAsChild = false,\n open,\n onOpenChange,\n className,\n contentClassName,\n showModalHeader = true,\n showModalDescription = false,\n customIcon,\n footer,\n}) => {\n const isMobile = useIsMobile();\n\n // Controlled vs uncontrolled\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = open !== undefined;\n const dialogOpen = isControlled ? open : internalOpen;\n\n const closeModal = () => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n };\n\n const handleOpenChange = (newOpen: boolean) => {\n if (isControlled) {\n onOpenChange?.(newOpen);\n } else {\n setInternalOpen(newOpen);\n }\n };\n\n // ── Mobile: Drawer ──────────────────────────────────────────────────────\n if (isMobile) {\n return (\n <Drawer open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DrawerTrigger asChild={triggerAsChild}>{trigger}</DrawerTrigger>\n )}\n <DrawerContent\n className={cn(\n \"w-full max-h-[95vh] overflow-hidden rounded-t-xl px-0 pb-6 space-y-4\",\n className\n )}\n >\n {showModalHeader ? (\n <DrawerHeader className=\"flex flex-row items-center justify-between px-4 py-0 md:px-8\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-11 shrink-0 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ? (\n customIcon\n ) : (\n <CalendarIcon\n size={20}\n color=\"currentColor\"\n className=\"text-primary-600\"\n />\n )}\n </div>\n\n <div>\n <DrawerTitle className=\"text-[20px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DrawerTitle>\n <DrawerDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DrawerDescription>\n </div>\n </div>\n\n <DrawerClose asChild>\n <button className=\"size-10 shrink-0 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\">\n <HugeiconsIcon\n icon={Cancel01Icon}\n color=\"currentColor\"\n size={20}\n />\n </button>\n </DrawerClose>\n </DrawerHeader>\n ) : (\n <DrawerTitle className=\"hidden\">{title}</DrawerTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // ── Desktop: Dialog ──────────────────────────────────────────────────────\n return (\n <Dialog open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogTrigger asChild={triggerAsChild}>{trigger}</DialogTrigger>\n )}\n <DialogContent\n className={cn(\n \"w-full max-w-2xl min-h-64 max-h-[80vh] overflow-hidden rounded-xl px-0\",\n className\n )}\n showCloseButton={false}\n >\n {showModalHeader ? (\n <DialogHeader className=\"flex flex-row items-center justify-between px-4 md:px-8 h-14\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-12 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ? (\n customIcon\n ) : (\n <CalendarIcon\n size={26}\n color=\"currentColor\"\n className=\"text-primary-600\"\n />\n )}\n </div>\n\n <div>\n <DialogTitle className=\"text-[22px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DialogTitle>\n <DialogDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DialogDescription>\n </div>\n </div>\n\n <button\n onClick={closeModal}\n className=\"size-10 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\"\n >\n <HugeiconsIcon\n icon={Cancel01Icon}\n color=\"currentColor\"\n size={20}\n />\n </button>\n </DialogHeader>\n ) : (\n <DialogTitle className=\"hidden\">{title}</DialogTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { CustomModal, useIsMobile };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-90 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-primary-500 text-primary-foreground shadow-xs hover:bg-primary-700\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border border-primary-500 text-primary-500 bg-background shadow-xs hover:bg-primary-50/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary: \"bg-primary-50 text-primary-500 shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-primary-50/50 text-primary-500\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-12 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-12 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp data-slot=\"button\" className={cn(buttonVariants({ variant, size, className }))} {...props} />\n );\n}\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport React from \"react\";\nimport { Button } from \"../ui/button\";\n\ntype BackButtonProps = {\n onClick?: () => void;\n};\n\nconst BackButton = ({ onClick }: BackButtonProps) => {\n return (\n <Button\n onClick={onClick || (() => window.history.back())}\n variant=\"default\"\n className=\"text-[15px] font-medium font-onest min-w-[9rem] h-12\"\n >\n Go Back\n </Button>\n );\n};\n\nexport { BackButton };\n","// @ts-nocheck\n\"use client\";\n\nimport React from \"react\";\nimport { useTheme } from \"next-themes\";\nimport { Sun1, Moon } from \"iconsax-react\";\nimport { Button } from \"../ui/button\";\n\ninterface ThemeSwitcherProps {\n variant?: \"default\" | \"outline\" | \"ghost\" | \"secondary\";\n size?: \"default\" | \"sm\" | \"lg\" | \"icon\";\n className?: string;\n}\n\nconst ThemeSwitcher = ({\n variant = \"ghost\",\n size = \"lg\",\n className = \"\",\n}: ThemeSwitcherProps) => {\n const { setTheme, resolvedTheme } = useTheme();\n const [mounted, setMounted] = React.useState(false);\n\n // Only render after mounting to avoid hydration mismatch\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n const toggleTheme = () => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n if (!mounted) {\n return (\n <Button variant={variant} size={size} className={className}>\n <Sun1 size={18} />\n </Button>\n );\n }\n\n const isDark = resolvedTheme === \"dark\";\n\n return (\n <Button\n variant={variant}\n size={size}\n className={`${className} relative`}\n onClick={toggleTheme}\n >\n {isDark ? (\n <Sun1 size={24} color=\"#4cbc13\" />\n ) : (\n <Moon size={24} color=\"#4cbc13\" />\n )}\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n );\n};\n\nexport { ThemeSwitcher };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { User } from \"iconsax-react\";\nimport { cn } from \"../utils/cn\";\n\ntype ProfileImageProps = {\n /** Render the avatar wrapped in a next/link */\n asLink?: boolean;\n /** Avatar diameter in px */\n size?: number;\n className?: string;\n /** Full URL to the profile picture */\n profilePicUrl?: string;\n /** Show a verified badge indicator */\n isVerified?: boolean;\n /** Show an online presence indicator */\n isOnline?: boolean;\n isOverflowHidden?: boolean;\n /** href for the link when asLink=true (defaults to \"/profile/{userId}\") */\n link?: string;\n /** Used for the image alt text */\n userName?: string;\n /** Used to build the default link (/profile/{userId}) */\n userId?: string;\n};\n\nconst ProfileImage = ({\n asLink = false,\n size = 40,\n profilePicUrl,\n isVerified = false,\n isOnline = false,\n isOverflowHidden = true,\n className = \"\",\n link,\n userName = \"User\",\n userId,\n}: ProfileImageProps) => {\n const ImageComponent = profilePicUrl ? (\n <Image\n src={profilePicUrl}\n alt={userName}\n fill\n priority\n sizes={`${size}px`}\n className=\"rounded-full object-cover h-full w-full\"\n />\n ) : (\n <User\n size={size ? size / 2 : 20}\n color=\"#4cbc13\"\n className=\"text-gray-500\"\n />\n );\n\n const ProfileContent = (\n <div\n className=\"relative w-full h-full flex items-center justify-center\"\n style={{ width: size, height: size }}\n >\n {ImageComponent}\n\n {/* Verified badge */}\n {isVerified && (\n <div\n className=\"absolute -top-0.5 -right-0.5 bg-primary-500 border-2 border-white rounded-full\"\n style={{ width: 14, height: 14 }}\n />\n )}\n\n {/* Online indicator */}\n {isOnline && (\n <div\n className=\"absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full\"\n style={{\n width: size * 0.25,\n height: size * 0.25,\n minWidth: \"10px\",\n minHeight: \"10px\",\n }}\n />\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n \"relative rounded-full flex items-center justify-center\",\n profilePicUrl ? \"bg-primary-50\" : \"bg-neutral-50\",\n isOverflowHidden && \"overflow-hidden\",\n className\n )}\n style={{ height: size, width: size }}\n >\n {asLink ? (\n <Link\n href={link || (userId ? `/profile/${userId}` : \"#\")}\n className=\"block w-full h-full\"\n >\n {ProfileContent}\n </Link>\n ) : (\n <div>{ProfileContent}</div>\n )}\n </div>\n );\n};\n\nexport { ProfileImage };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-neutral-200/70 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-neutral-100/60 flex h-12 w-full min-w-0 rounded-md border-[1px] bg-transparent px-3 py-1 text-base transition-[color,box-shadow] outline-none file:hidden disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-base cursor-pointer font-golos\",\n \"focus-visible:border-primary-600\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils/cn\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-[14px] leading-none font-normal font-onest text-neutral-400 pl-1 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","\"use client\";\n\nimport React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { ChevronDown, Check, Search } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\nimport { Label } from \"../ui/label\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// Country type — consumers provide their own data\n// ---------------------------------------------------------------------------\nexport interface Country {\n countryCode: string;\n countryName: string;\n /** Optional — phone dial code, e.g. \"+1\" */\n dialCode?: string;\n /** Optional — emoji flag */\n flag?: string;\n}\n\nexport interface CountrySelectorProps {\n /** Array of country objects to display */\n countries: Country[];\n value?: string;\n onChange?: (countryCode: string) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setValue?: (field: string, value: any) => void;\n fieldName?: string;\n placeholder?: string;\n error?: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nconst CountrySelector: React.FC<CountrySelectorProps> = ({\n countries: rawCountries,\n value,\n onChange,\n setValue,\n fieldName = \"\",\n placeholder = \"Select a country\",\n error,\n label = \"Country\",\n required = false,\n disabled = false,\n className = \"\",\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedCountry, setSelectedCountry] = useState<Country | null>(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // Deduplicate by countryCode\n const countries = useMemo(() => {\n const unique = rawCountries.filter(\n (c, idx, self) =>\n idx === self.findIndex((x) => x.countryCode === c.countryCode)\n );\n if (!searchTerm.trim()) return unique;\n return unique.filter((c) =>\n c.countryName.toLowerCase().includes(searchTerm.toLowerCase())\n );\n }, [rawCountries, searchTerm]);\n\n // Sync external value\n useEffect(() => {\n if (value) {\n const found = countries.find((c) => c.countryCode === value);\n setSelectedCountry(found || null);\n }\n }, [value, countries]);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n // Small delay to prevent immediate close on mobile\n const timer = setTimeout(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }, 0);\n return () => {\n clearTimeout(timer);\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n const handleCountrySelect = (country: Country) => {\n setSelectedCountry(country);\n if (setValue && fieldName) setValue(fieldName, country.countryCode);\n onChange?.(country.countryCode);\n setSearchTerm(\"\");\n setIsOpen(false);\n };\n\n return (\n <div className={cn(\"relative w-full\", className)} ref={ref}>\n {label && (\n <Label htmlFor={fieldName} className=\"mb-2 block text-sm font-medium\">\n {label}\n {required && <span className=\"text-red-500 ml-1\">*</span>}\n </Label>\n )}\n\n <div className=\"relative\">\n <Button\n type=\"button\"\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={isOpen}\n disabled={disabled}\n className=\"w-full justify-between h-11 font-normal\"\n onClick={() => {\n if (disabled) return;\n setIsOpen((prev) => !prev);\n if (isOpen) setSearchTerm(\"\");\n }}\n >\n {selectedCountry ? (\n <span className=\"truncate text-black\">\n {selectedCountry.flag\n ? `${selectedCountry.flag} ${selectedCountry.countryName}`\n : selectedCountry.countryName}\n </span>\n ) : (\n <span className=\"text-neutral-200/70\">{placeholder}</span>\n )}\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n\n {isOpen && (\n <div className=\"absolute z-50 w-full mt-1 bg-white border border-gray-200 rounded-md shadow-lg max-h-72 overflow-hidden\">\n {/* Search */}\n <div className=\"relative border-b\">\n <Search className=\"absolute left-4 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\n <Input\n type=\"text\"\n placeholder=\"Search countries...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"pl-10 h-11\"\n autoFocus\n />\n </div>\n\n {/* List */}\n <div className=\"overflow-y-auto max-h-60\">\n {countries.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-gray-500\">\n No countries found\n </div>\n ) : (\n countries.map((country, index) => (\n <div\n key={`${country.countryCode}-${index}`}\n className=\"relative flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-100 transition-colors\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleCountrySelect(country);\n }}\n >\n <span className=\"text-sm\">\n {country.flag\n ? `${country.flag} ${country.countryName}`\n : country.countryName}\n </span>\n {selectedCountry?.countryCode === country.countryCode && (\n <Check className=\"h-4 w-4 text-primary-500\" />\n )}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\n </div>\n );\n};\n\nexport { CountrySelector };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../mnt/GitHub/tcn-ui/src/brand/BrandLogo.tsx","../../mnt/GitHub/tcn-ui/src/brand/BrandIcon.tsx","../../mnt/GitHub/tcn-ui/src/brand/LogoIcon.tsx","../../mnt/GitHub/tcn-ui/src/utils/cn.ts","../../mnt/GitHub/tcn-ui/src/components/loader.tsx","../../mnt/GitHub/tcn-ui/src/components/page-loader.tsx","../../mnt/GitHub/tcn-ui/src/ui/typography.tsx","../../mnt/GitHub/tcn-ui/src/components/empty-state.tsx","../../mnt/GitHub/tcn-ui/src/ui/skeleton.tsx","../../mnt/GitHub/tcn-ui/src/components/loading-state.tsx","../../mnt/GitHub/tcn-ui/src/components/error-state.tsx","../../mnt/GitHub/tcn-ui/src/ui/dialog.tsx","../../mnt/GitHub/tcn-ui/src/ui/drawer.tsx","../../mnt/GitHub/tcn-ui/src/components/custom-modal.tsx","../../mnt/GitHub/tcn-ui/src/ui/button.tsx","../../mnt/GitHub/tcn-ui/src/components/back-button.tsx","../../mnt/GitHub/tcn-ui/src/components/theme-switcher.tsx","../../mnt/GitHub/tcn-ui/src/components/profile-image.tsx","../../mnt/GitHub/tcn-ui/src/ui/input.tsx","../../mnt/GitHub/tcn-ui/src/ui/label.tsx","../../mnt/GitHub/tcn-ui/src/components/country-selector.tsx"],"names":["jsx","Link","jsxs","Image","DrawerPrimitive","CalendarIcon","React","useState","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-namespace */\n// @ts-nocheck\nimport Link from \"next/link\";\nimport React from \"react\";\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n font: React.SVGProps<SVGElement>;\n fontFace: React.SVGProps<SVGElement>;\n fontFaceSrc: React.SVGProps<SVGElement>;\n fontFaceName: React.SVGProps<SVGElement>;\n missingGlyph: React.SVGProps<SVGElement>;\n glyph: React.SVGProps<SVGElement>;\n }\n }\n}\n\nconst BrandLogo: React.FC<\n React.SVGProps<SVGSVGElement> & {\n width?: string | number;\n height?: string | number;\n link?: string;\n }\n> = ({ width, height, link }) => {\n return (\n <Link className=\"inline-block\" href={link || \"/\"}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlSpace=\"preserve\"\n width={width || \"150\"}\n height={height || \"70\"}\n style={{\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n // imageRendering: \"optimizeQuality\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n }}\n viewBox=\"0 0 4606.47 1711.22\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <defs>\n <font\n id=\"FontID0\"\n horizAdvX={642}\n fontVariant=\"normal\"\n style={{\n fillRule: \"nonzero\",\n }}\n fontStyle=\"normal\"\n fontWeight={400}\n >\n <fontFace fontFamily=\"Coolvetica Rg\">\n <fontFaceSrc>\n <fontFaceName name=\"CoolveticaRg-Regular\" />\n </fontFaceSrc>\n </fontFace>\n <missingGlyph>\n <path d=\"M0 0z\" />\n </missingGlyph>\n <glyph\n unicode=\"C\"\n horizAdvX={612}\n d=\"M469 228c-19.0006,-82.9999 -68.9996,-129.999 -150.999,-129.999 -108.001,0 -162.002,86.9997 -162.002,233.999 0,145 54.0005,234.001 169.001,234.001 66.0001,0 124.999,-45.0004 144,-120.001l138.999 0c-12.9999,134.001 -118,240.001 -284,240.001 -190.001,0 -308.999,-137 -308.999,-362.001 0,-228 132.999,-347 307,-347 153.999,0 258,99.9997 285.999,251l-138.999 0z\"\n />\n <glyph\n unicode=\"N\"\n horizAdvX={590}\n d=\"M563.999 0l0 664.001 -129.999 0 0 -427.001 -264 427.001 -146.999 0 0 -664.001 128.999 0 0 445.999 284.001 -445.999 127.999 0z\"\n />\n <glyph\n unicode=\"T\"\n horizAdvX={554}\n d=\"M342.999 0l0 548 201.003 0 0 115.999 -540 0 0 -115.999 199.998 0 0 -548 139 0z\"\n />\n <glyph\n unicode=\"a\"\n horizAdvX={485}\n d=\"M324 186.999c-1.00038,-57.9987 -50.9994,-106.999 -118,-106.999 -41.0006,0 -63.0006,18.0002 -63.0006,54.9992 0,42.001 24.0008,63.0006 98.0006,77.0009 47.9999,9.00009 71.0003,15.9994 84.0003,28.9994l-1.00038 -54.0005zm131 -186.999l0 311c0,124 -53.9988,194 -210,194 -158,0 -214,-71.0003 -216,-173.001l121.001 0c5.99894,44.0001 29.9997,73.0011 89.0005,73.0011 50.9994,0 82.9999,-19.0006 82.9999,-51.0011 0,-33.9996 -18.0002,-46.9995 -82.9999,-55.9996 -131.001,-18.0002 -226.001,-33.9996 -226.001,-176 0,-80.0004 51.9998,-135 164.001,-135 66.0001,0 118,23.0004 149,57 0.998709,-15.0007 3.99985,-32.0005 7.99971,-44.0001l120.999 0z\"\n />\n <glyph\n unicode=\"c\"\n horizAdvX={480}\n d=\"M338 177.999c-5.00023,-52.9985 -45.0004,-81.9995 -95.9998,-81.9995 -51.0011,0 -95.9998,51.9998 -95.9998,159 0,106.999 44.9988,141.999 99.9997,141.999 49.0003,0 85.9993,-29.9997 93.0003,-80.9991l131 0c-7.99971,116.001 -94.9994,189 -223,189 -138.001,0 -230.001,-77.0009 -230.001,-252.999 0,-176 92,-265.001 226.001,-265.001 118.999,0 211.999,76.9993 225.999,190.999l-131 0z\"\n />\n <glyph\n unicode=\"e\"\n horizAdvX={502}\n d=\"M149 294c5.00023,67.9992 47.9999,107.999 99.9997,107.999 51.0011,0 99.001,-35 101,-107.999l-201 0zm335.001 -81.9995c0,194.999 -80.0004,293 -231.001,293 -150.999,0 -237.999,-98.0006 -237.999,-250 0,-178.001 81.9995,-268 245.998,-268 105.002,0 186.001,57 216,158l-133.999 0c-9.00009,-33.9996 -46.0008,-55.0009 -88.0001,-55.0009 -64.001,0 -106,48.0016 -110,122.001l339 0z\"\n />\n <glyph\n unicode=\"h\"\n horizAdvX={503}\n d=\"M472 0l0 348.002c0,97.9983 -70.0022,156.998 -171.001,156.998 -66.0008,0 -126.001,-32.9987 -145,-77.0004l0 244 -129.999 0 0 -671.998 129.999 0 0 282.001c0,66.0008 35.9989,119.997 101.002,119.997 58.9992,0 83.9985,-22.9969 83.9985,-96.9971l0 -305.001 131 0z\"\n />\n <glyph\n unicode=\"i\"\n horizAdvX={191}\n d=\"M159 0l0 492 -130.001 0 0 -492 130.001 0zm0 550.999l0 121.001 -130.001 0 0 -121.001 130.001 0z\"\n />\n <glyph\n unicode=\"l\"\n horizAdvX={185}\n d=\"M155.999 0l0 672 -129.999 0 0 -672 129.999 0z\"\n />\n <glyph\n unicode=\"r\"\n horizAdvX={321}\n d=\"M155.999 0l0 256.001c0,79 39.0015,119 119,119 12.0012,0 24.0008,-1.00038 36.0003,-3.00114l0 133.001 -16.9998 0c-53.0001,0 -103.001,-6.00062 -146,-72.0007l0 59.0008 -122 0 0 -492 129.999 0z\"\n />\n <glyph\n unicode=\"t\"\n horizAdvX={453}\n d=\"M304.999 195.999c0,-60.9998 -23.9991,-95.9998 -75.9989,-95.9998 -53.0001,0 -75.0002,36.0003 -75.0002,98.0006l0 202 272 0 0 92 -272 0 0 133.001 -128 0 0 -440.001c0,-106 57,-198 201,-198 139.001,0 199.001,93.0003 199.001,197l0 140 -121.001 0 0 -128z\"\n />\n <glyph\n unicode=\"u\"\n horizAdvX={500}\n d=\"M469 0l0 492 -129.001 0 0 -284c0,-65.0014 -35,-112.001 -100.998,-112.001 -55.0009,0 -83.0015,29.9997 -83.0015,92l0 304.001 -129.999 0 0 -324c0,-108.001 68.9996,-181 167,-181 67.9992,0 119,25.9999 153,81.9995l0 -68.9996 123 0z\"\n />\n </font>\n <style type=\"text/css\" />\n </defs>\n <style type=\"text/css\">\n {`\n @font-face { font-family:\"Coolvetica\";font-variant:normal;font-style:normal;font-weight:normal;src:url(\"#FontID0\") format(svg)}\n .fil1 {fill:#2F61C4}\n .fil0 {fill:#3B3A3A}\n .fil2 {fill:#4CBC13}\n .fnt1 {font-weight:normal;font-size:431.52px;font-family:'Coolvetica'}\n .fnt0 {font-weight:normal;font-size:872.5px;font-family:'Coolvetica'}\n `}\n </style>\n <g id=\"Layer_x0020_1\">\n <metadata id=\"CorelCorpID_0Corel-Layer\" />\n <g id=\"_2066693523904\">\n <g>\n <text x={1937.5} y={1009.24} className=\"fil0 fnt0 \">\n {\"Circular \"}\n </text>\n <text x={1937.49} y={1689.88} className=\"fil0 fnt0\">\n {\"Net\"}\n </text>\n <text x={1937.49} y={299.99} className=\"fil0 fnt1\">\n {\"The \"}\n </text>\n </g>\n <path\n className=\"fil1\"\n d=\"M126.14 0c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15zm-64.12 764.65c-31.4,0 -56.86,-25.45 -56.86,-56.85l0 -235.52c0,-31.4 25.46,-56.86 56.86,-56.86 194.36,0 353.37,-159.02 353.37,-353.39l0 -0.03c0,-31.4 25.46,-56.85 56.86,-56.85l235.56 0c31.4,0 56.85,25.46 56.85,56.85 0,386.46 -316.19,702.64 -702.64,702.64z\"\n fill=\"#2F61C4\"\n />\n <path\n className=\"fil2\"\n d=\"M472.24 1706.08l235.58 0c31.4,0 56.84,-25.44 56.84,-56.84l0 -0.04c0,-386.45 -316.2,-702.66 -702.66,-702.66 -31.4,0 -56.84,25.46 -56.84,56.85l0 235.57c0,31.4 25.45,56.85 56.84,56.85l0.03 0c194.36,0 353.36,159.02 353.36,353.37l0 0.05c0,31.4 25.45,56.84 56.84,56.84zm-346.1 -247.14c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\"\n fill=\"#2ABC13\"\n />\n <path\n className=\"fil1\"\n d=\"M1295.81 1649.2c0,-194.36 159.03,-353.39 353.39,-353.39 31.4,0 56.84,-25.45 56.84,-56.85l0 -235.57c0,-31.4 -25.44,-56.85 -56.84,-56.85l-0.03 0c-386.44,0 -702.62,316.19 -702.62,702.63l0 0.06c0,31.4 25.44,56.84 56.84,56.84l235.58 0c31.39,0 56.84,-25.44 56.84,-56.84l0 -0.04zm289.26 -190.27c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\"\n fill=\"#2F61C4\"\n />\n <path\n className=\"fil2\"\n d=\"M1649.19 415.43c-194.37,0 -353.38,-159.02 -353.38,-353.37l0 -0.05c0,-31.4 -25.45,-56.85 -56.86,-56.85l-235.54 0c-31.4,0 -56.86,25.46 -56.86,56.85 0,386.46 316.19,702.64 702.64,702.64 31.39,0 56.85,-25.45 56.85,-56.85l0 -235.51c0,-31.4 -25.46,-56.86 -56.85,-56.86zm-64.12 -415.43c69.68,0 126.15,56.47 126.15,126.15 0,69.67 -56.47,126.14 -126.15,126.14 -69.67,0 -126.14,-56.47 -126.14,-126.14 0,-69.68 56.47,-126.15 126.14,-126.15z\"\n fill=\"#2ABC13\"\n />\n </g>\n </g>\n </svg>\n </Link>\n );\n};\n\nexport default BrandLogo;\n","// @ts-nocheck\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport React from \"react\";\n\nexport interface BrandIconProps {\n /** Size in px for both width and height. Defaults to 80. */\n size?: number;\n /** href for the wrapping link. Defaults to \"/\" */\n link?: string;\n className?: string;\n}\n\n/**\n * The Circular Net icon (image-based).\n * Requires `next/image` and `next/link` — use inside a Next.js app.\n * Make sure `/icon.png` exists in your app's `public/` folder.\n */\nconst BrandIcon: React.FC<BrandIconProps> = ({ size = 80, link, className }) => {\n return (\n <Link className={`inline-block ${className ?? \"\"}`} href={link || \"/\"}>\n <Image\n src=\"/icon.png\"\n alt=\"The Circular Net\"\n width={size}\n height={size}\n />\n </Link>\n );\n};\n\nexport default BrandIcon;\n","import React from \"react\";\n\nexport interface LogoIconProps {\n /** Colour of the strokes. Defaults to TCN green (#4cbc13). */\n color?: string;\n /** Width and height in px. Defaults to 365. */\n size?: number;\n className?: string;\n}\n\n/**\n * The Circular Net logo mark — outlined / stroke-only variant.\n * Pure SVG with zero framework dependencies.\n */\nconst LogoIcon: React.FC<LogoIconProps> = ({\n color = \"#4cbc13\",\n size = 365,\n className,\n}) => {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 365 365\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M100.73 1.19794H150.975C157.617 1.19795 163.001 6.58414 163.001 13.2243C163.001 95.5997 95.6028 162.995 13.2295 162.995H13.1299V162.996C6.53349 162.942 1.20119 157.58 1.20117 150.971V100.736C1.20117 94.0938 6.58726 88.7078 13.2295 88.7077C54.7411 88.7077 88.7021 54.7439 88.7021 13.2302V13.2243C88.7021 6.58204 94.0882 1.19794 100.73 1.19794Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M13.2256 201.997C95.6009 201.998 163.001 269.4 163.001 351.773V351.782C163.001 358.424 157.619 363.805 150.977 363.805H100.77L100.768 363.803H100.727C94.0865 363.803 88.7023 358.422 88.7021 351.78V351.769C88.7021 310.259 54.7431 276.296 13.2314 276.296H13.2256C6.58544 276.296 1.20117 270.912 1.20117 264.27V214.024C1.20117 207.384 6.58333 201.997 13.2256 201.997Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M351.761 201.997H351.768C358.41 201.997 363.791 207.381 363.791 214.024V264.27C363.791 270.912 358.41 276.296 351.768 276.296C310.58 276.296 276.822 309.733 276.297 350.801L276.291 351.771V351.78C276.291 358.422 270.907 363.803 264.267 363.803H214.019C207.376 363.803 201.994 358.422 201.994 351.78V351.767C201.994 269.396 269.39 201.998 351.761 201.997Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n <path\n d=\"M214.022 1.25079H264.263C270.879 1.25088 276.24 6.61178 276.24 13.2264V13.2371C276.24 54.7742 310.224 88.7596 351.766 88.7596C358.378 88.7597 363.741 94.1235 363.741 100.738V150.971C363.741 157.586 358.378 162.947 351.766 162.947C269.42 162.947 202.045 95.5742 202.045 13.2264C202.045 6.61389 207.408 1.25086 214.022 1.25079Z\"\n stroke={color}\n strokeWidth=\"10\"\n />\n </svg>\n );\n};\n\nexport default LogoIcon;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\ntype LoaderProps = {\n size?: number | string;\n color?: string;\n variant?: \"primary\" | \"secondary\";\n className?: string;\n};\n\nconst Loader: React.FC<LoaderProps> = ({\n size = 25,\n color = \"#4cbc13\",\n variant = \"primary\",\n className,\n}) => {\n const borderColor = color\n ? `border-t-[#4cbc13]`\n : variant === \"primary\"\n ? \"border-t-white border-green-700\"\n : \"border-t-green-500 border-neutral-300\";\n\n const style = {\n width: typeof size === \"number\" ? `${size}px` : size,\n height: typeof size === \"number\" ? `${size}px` : size,\n };\n\n return (\n <span\n className={cn(\n \"z-40 border-3 rounded-full animate-spin block\",\n borderColor,\n className\n )}\n style={style}\n />\n );\n};\n\nexport { Loader };\n","import React from \"react\";\nimport { Loader } from \"./loader\";\nimport BrandLogo from \"../brand/BrandLogo\";\n\ninterface PageLoaderProps {\n message?: string;\n}\n\nfunction PageLoader({ message }: PageLoaderProps) {\n return (\n <div className=\"min-h-[100vh] w-full flex items-center justify-center bg-gray-100 dark:bg-gray-900\">\n <div className=\"flex flex-col items-center space-y-2.5\">\n <BrandLogo width={110} />\n <Loader size={32} />\n {message && (\n <p className=\"text-base max-w-lg text-gray-600 dark:text-gray-300\">\n {message}\n </p>\n )}\n </div>\n </div>\n );\n}\n\nexport { PageLoader };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface HeadingProps extends React.InputHTMLAttributes<HTMLHeadingElement> {\n children?: React.ReactNode;\n}\n\nconst Heading1 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h1 className={cn(\"text-3xl font-[700] font-onest text-black dark:text-white\", className)} ref={ref} {...props}>\n {children}\n </h1>\n )\n);\nHeading1.displayName = \"Heading1\";\n\nconst Heading2 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h2 className={cn(\"text-[26px] font-[600] font-onest text-black dark:text-neutral-100\", className)} ref={ref} {...props}>\n {children}\n </h2>\n )\n);\nHeading2.displayName = \"Heading2\";\n\nconst Heading3 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h3 className={cn(\"text-2xl font-semibold font-onest text-neutral-900 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h3>\n )\n);\nHeading3.displayName = \"Heading3\";\n\nconst Heading4 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h4 className={cn(\"text-[22px] font-semibold text-neutral-800 dark:text-neutral-200\", className)} ref={ref} {...props}>\n {children}\n </h4>\n )\n);\nHeading4.displayName = \"Heading4\";\n\nconst Heading5 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h5 className={cn(\"text-lg font-semibold text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h5>\n )\n);\nHeading5.displayName = \"Heading5\";\n\nconst Heading6 = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, children, ...props }, ref) => (\n <h6 className={cn(\"text-base font-[500] text-black dark:text-neutral-300\", className)} ref={ref} {...props}>\n {children}\n </h6>\n )\n);\nHeading6.displayName = \"Heading6\";\n\nexport interface BodyProps extends React.InputHTMLAttributes<HTMLParagraphElement> {\n children?: React.ReactNode;\n}\n\nconst Body1 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-[18px] text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody1.displayName = \"Body1\";\n\nconst Body2 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-base text-neutral-700 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody2.displayName = \"Body2\";\n\nconst Body3 = React.forwardRef<HTMLParagraphElement, BodyProps>(\n ({ className, children, ...props }, ref) => (\n <p className={cn(\"text-sm lg:leading-[22px] text-neutral-600 dark:text-neutral-400 font-golos\", className)} ref={ref} {...props}>\n {children}\n </p>\n )\n);\nBody3.displayName = \"Body3\";\n\nexport { Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Body1, Body2, Body3 };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport { Body2 } from \"../ui/typography\";\nimport { cn } from \"../utils/cn\";\n\ninterface EmptyStateProps {\n title?: string;\n message?: string;\n imageSrc?: string;\n size?: number;\n component?: React.ReactNode;\n className?: string;\n icon?: React.ReactNode;\n}\n\nconst EmptyState: React.FC<EmptyStateProps> = ({\n imageSrc,\n size = 200,\n title = \"No Data Found!\",\n message = \"Check back later to see more content.\",\n component,\n className = \"min-h-[60vh]\",\n icon,\n}) => {\n return (\n <div className={cn(\"flex items-center justify-center\", className)}>\n <div className=\"text-center\">\n {icon && <div className=\"mb-4\">{icon}</div>}\n {imageSrc && (\n <Image\n src={imageSrc}\n alt=\"Empty State\"\n width={size}\n height={size}\n className=\"mx-auto mb-4\"\n />\n )}\n <h1 className=\"text-[1.325rem] md:text-[1.45rem] text-black font-onest font-semibold\">\n {title}\n </h1>\n <Body2 className=\"max-w-xs text-[#646464]\">{message}</Body2>\n {component && <div className=\"mt-2.5\">{component}</div>}\n </div>\n </div>\n );\n};\n\nexport { EmptyState };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-accent animate-pulse rounded-md\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","import React from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { Skeleton } from \"../ui/skeleton\";\n\ninterface LoadingStateProps {\n /** Number of skeleton rows to render */\n rows?: number;\n /** Show a circular skeleton avatar before each row */\n showAvatar?: boolean;\n className?: string;\n rowClassName?: string;\n}\n\nconst LoadingState: React.FC<LoadingStateProps> = ({\n rows = 5,\n showAvatar = false,\n className,\n rowClassName,\n}) => {\n return (\n <div\n className={cn(\"min-h-[60vh] flex items-center justify-center\", className)}\n >\n <div className=\"w-full max-w-md space-y-3 px-4\">\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} className={cn(\"flex items-center gap-3\", rowClassName)}>\n {showAvatar && (\n <Skeleton className=\"size-10 shrink-0 rounded-full\" />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-3/4 rounded\" />\n <Skeleton className=\"h-3 w-1/2 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport { LoadingState };\n","import React from \"react\";\n\ninterface ErrorStateProps {\n title?: string;\n message?: string;\n onRetry?: () => void;\n}\n\nconst ErrorState: React.FC<ErrorStateProps> = ({\n title = \"Error Fetching Data\",\n message = \"An error occurred\",\n onRetry,\n}) => {\n return (\n <div className=\"min-h-[60vh] flex items-center justify-center\">\n <div className=\"text-center\">\n <h3 className=\"text-[1.45rem] font-onest font-[600] text-primary-500\">\n {title}\n </h3>\n <p className=\"text-[#646464] font-golosText font-[500] text-[.9rem] line-clamp-3\">\n {message}\n </p>\n {onRetry && (\n <button\n onClick={onRetry}\n className=\"rounded-md h-[2.75rem] min-w-[7rem] px-6 bg-primary-500 text-white text-[.9rem] font-onest font-[600] mt-5\"\n >\n Refetch\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport { ErrorState };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & { showCloseButton?: boolean }) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)} {...props} />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)} {...props} />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(\"text-lg leading-none font-semibold\", className)} {...props} />\n );\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n );\n}\n\nexport {\n Dialog, DialogClose, DialogContent, DialogDescription,\n DialogFooter, DialogHeader, DialogOverlay, DialogPortal,\n DialogTitle, DialogTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"../utils/cn\";\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\n \"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b\",\n \"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto my-2.5 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"drawer-footer\" className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)} {...props} />;\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return <DrawerPrimitive.Title data-slot=\"drawer-title\" className={cn(\"text-foreground font-semibold\", className)} {...props} />;\n}\n\nfunction DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return <DrawerPrimitive.Description data-slot=\"drawer-description\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />;\n}\n\nexport {\n Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose,\n DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription,\n};\n","\"use client\";\n\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { Calendar as CalendarIcon } from \"iconsax-react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogDescription,\n} from \"../ui/dialog\";\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n DrawerDescription,\n DrawerClose,\n} from \"../ui/drawer\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// useIsMobile — inline hook (no external dependency)\n// ---------------------------------------------------------------------------\nconst MOBILE_BREAKPOINT = 768;\n\nfunction useIsMobile(): boolean {\n const [isMobile, setIsMobile] = useState<boolean | undefined>(undefined);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => setIsMobile(mql.matches);\n mql.addEventListener(\"change\", onChange);\n setIsMobile(mql.matches);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal props\n// ---------------------------------------------------------------------------\nexport interface CustomModalProps {\n title: string;\n children: ReactNode | ((closeModal: () => void) => ReactNode);\n\n trigger?: ReactNode;\n triggerAsChild?: boolean;\n description?: string;\n\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n className?: string;\n contentClassName?: string;\n\n showModalHeader?: boolean;\n showModalDescription?: boolean;\n /** Override the default icon shown in the modal header */\n customIcon?: ReactNode;\n\n footer?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// CustomModal component\n// ---------------------------------------------------------------------------\nconst CustomModal: React.FC<CustomModalProps> = ({\n title,\n children,\n description,\n trigger,\n triggerAsChild = false,\n open,\n onOpenChange,\n className,\n contentClassName,\n showModalHeader = true,\n showModalDescription = false,\n customIcon,\n footer,\n}) => {\n const isMobile = useIsMobile();\n\n // Controlled vs uncontrolled\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = open !== undefined;\n const dialogOpen = isControlled ? open : internalOpen;\n\n const closeModal = () => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n };\n\n const handleOpenChange = (newOpen: boolean) => {\n if (isControlled) {\n onOpenChange?.(newOpen);\n } else {\n setInternalOpen(newOpen);\n }\n };\n\n // ── Mobile: Drawer ──────────────────────────────────────────────────────\n if (isMobile) {\n return (\n <Drawer open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DrawerTrigger asChild={triggerAsChild}>{trigger}</DrawerTrigger>\n )}\n <DrawerContent\n className={cn(\n \"w-full max-h-[95vh] overflow-hidden rounded-t-xl px-0 pb-6 space-y-4\",\n className\n )}\n >\n {showModalHeader ? (\n <DrawerHeader className=\"flex flex-row items-center justify-between px-4 py-0 md:px-8\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-11 shrink-0 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ? (\n customIcon\n ) : (\n <CalendarIcon\n size={20}\n color=\"currentColor\"\n className=\"text-primary-600\"\n />\n )}\n </div>\n\n <div>\n <DrawerTitle className=\"text-[20px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DrawerTitle>\n <DrawerDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DrawerDescription>\n </div>\n </div>\n\n <DrawerClose asChild>\n <button className=\"size-10 shrink-0 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\">\n <HugeiconsIcon\n icon={Cancel01Icon}\n color=\"currentColor\"\n size={20}\n />\n </button>\n </DrawerClose>\n </DrawerHeader>\n ) : (\n <DrawerTitle className=\"hidden\">{title}</DrawerTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DrawerContent>\n </Drawer>\n );\n }\n\n // ── Desktop: Dialog ──────────────────────────────────────────────────────\n return (\n <Dialog open={dialogOpen} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogTrigger asChild={triggerAsChild}>{trigger}</DialogTrigger>\n )}\n <DialogContent\n className={cn(\n \"w-full max-w-2xl min-h-64 max-h-[80vh] overflow-hidden rounded-xl px-0\",\n className\n )}\n showCloseButton={false}\n >\n {showModalHeader ? (\n <DialogHeader className=\"flex flex-row items-center justify-between px-4 md:px-8 h-14\">\n <div className=\"flex items-center gap-x-3\">\n <div className=\"size-12 rounded-full bg-primary-50 flex items-center justify-center\">\n {customIcon ? (\n customIcon\n ) : (\n <CalendarIcon\n size={26}\n color=\"currentColor\"\n className=\"text-primary-600\"\n />\n )}\n </div>\n\n <div>\n <DialogTitle className=\"text-[22px] font-semibold text-primary-600 font-onest line-clamp-1\">\n {title}\n </DialogTitle>\n <DialogDescription\n className={\n showModalDescription ? \"-mt-0.5 text-left\" : \"hidden\"\n }\n >\n {description || \"Modal description\"}\n </DialogDescription>\n </div>\n </div>\n\n <button\n onClick={closeModal}\n className=\"size-10 rounded-full text-neutral-400 hover:bg-primary-50 hover:text-primary-600 transition-colors cursor-pointer flex items-center justify-center outline-none\"\n >\n <HugeiconsIcon\n icon={Cancel01Icon}\n color=\"currentColor\"\n size={20}\n />\n </button>\n </DialogHeader>\n ) : (\n <DialogTitle className=\"hidden\">{title}</DialogTitle>\n )}\n\n {typeof children === \"function\" ? (\n children(closeModal)\n ) : (\n <div\n className={cn(\n \"max-h-[70vh] overflow-y-auto px-4 md:px-8 pb-4 no-scrollbar\",\n contentClassName\n )}\n >\n {children}\n </div>\n )}\n\n {footer}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { CustomModal, useIsMobile };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils/cn\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-90 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-primary-500 text-primary-foreground shadow-xs hover:bg-primary-700\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border border-primary-500 text-primary-500 bg-background shadow-xs hover:bg-primary-50/50 dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary: \"bg-primary-50 text-primary-500 shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-primary-50/50 text-primary-500\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-12 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-12 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp data-slot=\"button\" className={cn(buttonVariants({ variant, size, className }))} {...props} />\n );\n}\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport React from \"react\";\nimport { Button } from \"../ui/button\";\n\ntype BackButtonProps = {\n onClick?: () => void;\n};\n\nconst BackButton = ({ onClick }: BackButtonProps) => {\n return (\n <Button\n onClick={onClick || (() => window.history.back())}\n variant=\"default\"\n className=\"text-[15px] font-medium font-onest min-w-[9rem] h-12\"\n >\n Go Back\n </Button>\n );\n};\n\nexport { BackButton };\n","// @ts-nocheck\n\"use client\";\n\nimport React from \"react\";\nimport { useTheme } from \"next-themes\";\nimport { Sun1, Moon } from \"iconsax-react\";\nimport { Button } from \"../ui/button\";\n\ninterface ThemeSwitcherProps {\n variant?: \"default\" | \"outline\" | \"ghost\" | \"secondary\";\n size?: \"default\" | \"sm\" | \"lg\" | \"icon\";\n className?: string;\n}\n\nconst ThemeSwitcher = ({\n variant = \"ghost\",\n size = \"lg\",\n className = \"\",\n}: ThemeSwitcherProps) => {\n const { setTheme, resolvedTheme } = useTheme();\n const [mounted, setMounted] = React.useState(false);\n\n // Only render after mounting to avoid hydration mismatch\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n const toggleTheme = () => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\");\n };\n\n if (!mounted) {\n return (\n <Button variant={variant} size={size} className={className}>\n <Sun1 size={18} />\n </Button>\n );\n }\n\n const isDark = resolvedTheme === \"dark\";\n\n return (\n <Button\n variant={variant}\n size={size}\n className={`${className} relative`}\n onClick={toggleTheme}\n >\n {isDark ? (\n <Sun1 size={24} color=\"#4cbc13\" />\n ) : (\n <Moon size={24} color=\"#4cbc13\" />\n )}\n <span className=\"sr-only\">Toggle theme</span>\n </Button>\n );\n};\n\nexport { ThemeSwitcher };\n","// @ts-nocheck\nimport React from \"react\";\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport { User } from \"iconsax-react\";\nimport { cn } from \"../utils/cn\";\n\ntype ProfileImageProps = {\n /** Render the avatar wrapped in a next/link */\n asLink?: boolean;\n /** Avatar diameter in px */\n size?: number;\n className?: string;\n /** Full URL to the profile picture */\n profilePicUrl?: string;\n /** Show a verified badge indicator */\n isVerified?: boolean;\n /** Show an online presence indicator */\n isOnline?: boolean;\n isOverflowHidden?: boolean;\n /** href for the link when asLink=true (defaults to \"/profile/{userId}\") */\n link?: string;\n /** Used for the image alt text */\n userName?: string;\n /** Used to build the default link (/profile/{userId}) */\n userId?: string;\n};\n\nconst ProfileImage = ({\n asLink = false,\n size = 40,\n profilePicUrl,\n isVerified = false,\n isOnline = false,\n isOverflowHidden = true,\n className = \"\",\n link,\n userName = \"User\",\n userId,\n}: ProfileImageProps) => {\n const ImageComponent = profilePicUrl ? (\n <Image\n src={profilePicUrl}\n alt={userName}\n fill\n priority\n sizes={`${size}px`}\n className=\"rounded-full object-cover h-full w-full\"\n />\n ) : (\n <User\n size={size ? size / 2 : 20}\n color=\"#4cbc13\"\n className=\"text-gray-500\"\n />\n );\n\n const ProfileContent = (\n <div\n className=\"relative w-full h-full flex items-center justify-center\"\n style={{ width: size, height: size }}\n >\n {ImageComponent}\n\n {/* Verified badge */}\n {isVerified && (\n <div\n className=\"absolute -top-0.5 -right-0.5 bg-primary-500 border-2 border-white rounded-full\"\n style={{ width: 14, height: 14 }}\n />\n )}\n\n {/* Online indicator */}\n {isOnline && (\n <div\n className=\"absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full\"\n style={{\n width: size * 0.25,\n height: size * 0.25,\n minWidth: \"10px\",\n minHeight: \"10px\",\n }}\n />\n )}\n </div>\n );\n\n return (\n <div\n className={cn(\n \"relative rounded-full flex items-center justify-center\",\n profilePicUrl ? \"bg-primary-50\" : \"bg-neutral-50\",\n isOverflowHidden && \"overflow-hidden\",\n className\n )}\n style={{ height: size, width: size }}\n >\n {asLink ? (\n <Link\n href={link || (userId ? `/profile/${userId}` : \"#\")}\n className=\"block w-full h-full\"\n >\n {ProfileContent}\n </Link>\n ) : (\n <div>{ProfileContent}</div>\n )}\n </div>\n );\n};\n\nexport { ProfileImage };\n","import * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-neutral-200/70 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-neutral-100/60 flex h-12 w-full min-w-0 rounded-md border-[1px] bg-transparent px-3 py-1 text-base transition-[color,box-shadow] outline-none file:hidden disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-base cursor-pointer font-golos\",\n \"focus-visible:border-primary-600\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils/cn\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-[14px] leading-none font-normal font-onest text-neutral-400 pl-1 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","\"use client\";\n\nimport React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { ChevronDown, Check, Search } from \"lucide-react\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\nimport { Label } from \"../ui/label\";\nimport { cn } from \"../utils/cn\";\n\n// ---------------------------------------------------------------------------\n// Country type — consumers provide their own data\n// ---------------------------------------------------------------------------\nexport interface Country {\n countryCode: string;\n countryName: string;\n /** Optional — phone dial code, e.g. \"+1\" */\n dialCode?: string;\n /** Optional — emoji flag */\n flag?: string;\n}\n\nexport interface CountrySelectorProps {\n /** Array of country objects to display */\n countries: Country[];\n value?: string;\n onChange?: (countryCode: string) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setValue?: (field: string, value: any) => void;\n fieldName?: string;\n placeholder?: string;\n error?: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nconst CountrySelector: React.FC<CountrySelectorProps> = ({\n countries: rawCountries,\n value,\n onChange,\n setValue,\n fieldName = \"\",\n placeholder = \"Select a country\",\n error,\n label = \"Country\",\n required = false,\n disabled = false,\n className = \"\",\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedCountry, setSelectedCountry] = useState<Country | null>(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // Deduplicate by countryCode\n const countries = useMemo(() => {\n const unique = rawCountries.filter(\n (c, idx, self) =>\n idx === self.findIndex((x) => x.countryCode === c.countryCode)\n );\n if (!searchTerm.trim()) return unique;\n return unique.filter((c) =>\n c.countryName.toLowerCase().includes(searchTerm.toLowerCase())\n );\n }, [rawCountries, searchTerm]);\n\n // Sync external value\n useEffect(() => {\n if (value) {\n const found = countries.find((c) => c.countryCode === value);\n setSelectedCountry(found || null);\n }\n }, [value, countries]);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setIsOpen(false);\n }\n };\n // Small delay to prevent immediate close on mobile\n const timer = setTimeout(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }, 0);\n return () => {\n clearTimeout(timer);\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen]);\n\n const handleCountrySelect = (country: Country) => {\n setSelectedCountry(country);\n if (setValue && fieldName) setValue(fieldName, country.countryCode);\n onChange?.(country.countryCode);\n setSearchTerm(\"\");\n setIsOpen(false);\n };\n\n return (\n <div className={cn(\"relative w-full\", className)} ref={ref}>\n {label && (\n <Label htmlFor={fieldName} className=\"mb-2 block text-sm font-medium\">\n {label}\n {required && <span className=\"text-red-500 ml-1\">*</span>}\n </Label>\n )}\n\n <div className=\"relative\">\n <Button\n type=\"button\"\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={isOpen}\n disabled={disabled}\n className=\"w-full justify-between h-11 font-normal\"\n onClick={() => {\n if (disabled) return;\n setIsOpen((prev) => !prev);\n if (isOpen) setSearchTerm(\"\");\n }}\n >\n {selectedCountry ? (\n <span className=\"truncate text-black\">\n {selectedCountry.flag\n ? `${selectedCountry.flag} ${selectedCountry.countryName}`\n : selectedCountry.countryName}\n </span>\n ) : (\n <span className=\"text-neutral-200/70\">{placeholder}</span>\n )}\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n\n {isOpen && (\n <div className=\"absolute z-50 w-full mt-1 bg-white border border-gray-200 rounded-md shadow-lg max-h-72 overflow-hidden\">\n {/* Search */}\n <div className=\"relative border-b\">\n <Search className=\"absolute left-4 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\n <Input\n type=\"text\"\n placeholder=\"Search countries...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"pl-10 h-11\"\n autoFocus\n />\n </div>\n\n {/* List */}\n <div className=\"overflow-y-auto max-h-60\">\n {countries.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-gray-500\">\n No countries found\n </div>\n ) : (\n countries.map((country, index) => (\n <div\n key={`${country.countryCode}-${index}`}\n className=\"relative flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-gray-100 transition-colors\"\n onMouseDown={(e) => {\n e.preventDefault();\n handleCountrySelect(country);\n }}\n >\n <span className=\"text-sm\">\n {country.flag\n ? `${country.flag} ${country.countryName}`\n : country.countryName}\n </span>\n {selectedCountry?.countryCode === country.countryCode && (\n <Check className=\"h-4 w-4 text-primary-500\" />\n )}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n\n {error && <p className=\"mt-1 text-sm text-red-500\">{error}</p>}\n </div>\n );\n};\n\nexport { CountrySelector };\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { accent, brand, colors, fontFamily, fontSize, fontWeight, neutral, primary, radius, secondary, typography } from './tokens/index.js';
|
|
2
|
-
export { BrandIcon, BrandIconProps, BrandLogo,
|
|
2
|
+
export { BrandIcon, BrandIconProps, BrandLogo, LogoIcon, LogoIconProps } from './brand/index.js';
|
|
3
3
|
export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Body1, Body2, Body3, BodyProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, HeadingProps, Input, Label, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, PasswordInput2, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Skeleton, Slider, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonGroupVariants, buttonVariants, toggleVariants, useFormField } from './ui/index.js';
|
|
4
4
|
export { BackButton, Country, CountrySelector, CountrySelectorProps, CustomModal, CustomModalProps, EmptyState, ErrorState, Loader, LoadingState, PageLoader, ProfileImage, ThemeSwitcher, useIsMobile } from './components/index.js';
|
|
5
5
|
export { cn } from './utils/cn.js';
|