{"version":3,"sources":["../../registry/default/ui/input.tsx","../../lib/utils.ts"],"names":["input_exports","__export","FileInput","Input","__toCommonJS","React","import_lucide_react","import_clsx","import_tailwind_merge","cn","inputs","import_jsx_runtime","wrapperClassName","className","type","props","ref","showPassword","setShowPassword","togglePasswordVisibility","children","htmlFor"],"mappings":";;;;;;;0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,UAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAuB,sBACvBC,EAAoC,wBCFpC,IAAAC,EAAsC,gBACtCC,EAAwB,0BAEjB,SAASC,KAAMC,EAAsB,CAC1C,SAAO,cAAQ,QAAKA,CAAM,CAAC,CAC7B,CDaI,IAAAC,EAAA,6BATER,EAAc,aAGlB,CAAC,CAAE,iBAAAS,EAAkB,UAAAC,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAGC,IAAQ,CAC1D,GAAM,CAACC,EAAcC,CAAe,EAAU,WAAS,EAAK,EAEtDC,EAA2B,IAAMD,EAAgB,CAACD,CAAY,EAEpE,SACE,QAAC,OAAI,UAAW,YAAYL,GAAoB,EAAE,GAChD,oBAAC,SACC,KAAME,IAAS,WAAcG,EAAe,OAAS,WAAcH,EACnE,UAAWL,EACT,+VACAI,CACF,EACA,IAAKG,EACJ,GAAGD,EACN,EACCD,IAAS,eACR,OAAC,OAAI,UAAU,iFACZ,SAAAG,KACC,OAAC,WAAQ,UAAU,UAAU,QAASE,EAA0B,KAEhE,OAAC,cACC,UAAU,UACV,QAASA,EACX,EAEJ,GAEJ,CAEJ,CAAC,EACDhB,EAAM,YAAc,QAEpB,IAAMD,EAAkB,aAGtB,CAAC,CAAE,UAAAW,EAAW,KAAAC,EAAM,SAAAM,EAAU,QAAAC,EAAS,GAAGN,CAAM,EAAGC,OAEjD,QAAC,OAAI,UAAU,WACZ,UAAAI,KACD,OAAC,SACC,UAAWX,EACT,+VACAI,EACA,QACF,EACA,IAAKG,EACJ,GAAGD,EACJ,GAAIM,EACJ,KAAK,OACP,GACF,CAEH,EACDnB,EAAU,YAAc","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { EyeIcon, EyeOffIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface InputProps\n  extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<\n  HTMLInputElement,\n  InputProps & { wrapperClassName?: string }\n>(({ wrapperClassName, className, type, ...props }, ref) => {\n  const [showPassword, setShowPassword] = React.useState(false)\n\n  const togglePasswordVisibility = () => setShowPassword(!showPassword)\n\n  return (\n    <div className={`relative ${wrapperClassName || \"\"}`}>\n      <input\n        type={type === \"password\" ? (showPassword ? \"text\" : \"password\") : type}\n        className={cn(\n          \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n          className\n        )}\n        ref={ref}\n        {...props}\n      />\n      {type === \"password\" && (\n        <div className=\"absolute inset-y-0 right-0 flex cursor-pointer items-center pr-3 text-gray-400\">\n          {showPassword ? (\n            <EyeIcon className=\"h-4 w-4\" onClick={togglePasswordVisibility} />\n          ) : (\n            <EyeOffIcon\n              className=\"h-4 w-4\"\n              onClick={togglePasswordVisibility}\n            />\n          )}\n        </div>\n      )}\n    </div>\n  )\n})\nInput.displayName = \"Input\"\n\nconst FileInput = React.forwardRef<\n  HTMLInputElement,\n  InputProps & React.PropsWithChildren & { htmlFor: string }\n>(({ className, type, children, htmlFor, ...props }, ref) => {\n  return (\n    <div className=\"relative\">\n      {children}\n      <input\n        className={cn(\n          \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n          className,\n          \"hidden\"\n        )}\n        ref={ref}\n        {...props}\n        id={htmlFor}\n        type=\"file\"\n      />\n    </div>\n  )\n})\nFileInput.displayName = \"FileInput\"\n\nexport { Input, FileInput }\n","import * as React from \"react\"\nimport { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n\nexport function formatDate(input: string | number): string {\n  const date = new Date(input)\n  return date.toLocaleDateString(\"en-US\", {\n    month: \"long\",\n    day: \"numeric\",\n    year: \"numeric\",\n  })\n}\n\nexport function absoluteUrl(path: string) {\n  return `${process.env.NEXT_PUBLIC_APP_URL}${path}`\n}\n"]}