{"version":3,"sources":["../../../../src/components/atoms/Button/Button.tsx"],"names":["cva","forwardRef","jsx","twMerge","useFormContext"],"mappings":";;;;;;;;AAWA,MAAM,cAAA,GAAiBA,0BAAA;AAAA,EACrB,wMAAA;AAAA,EAEA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,QAAA,EAAU,EAAA;AAAA,QACV,OAAA,EACE,mFAAA;AAAA,QACF,OAAA,EAAS,yDAAA;AAAA,QACT,OAAA,EAAS,yDAAA;AAAA,QACT,WAAA,EAAa,uDAAA;AAAA,QACb,IAAA,EAAM,mDAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,8BAAA;AAAA,QACJ,EAAA,EAAI,gCAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEO,MAAM,MAAA,GAASC,gBAAA,CAGpB,CAAC,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACjE,EAAA,uBACEC,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,sBAAQ,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC9D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,IAAA,IAAQ;AAAA;AAAA,GACX;AAEJ,CAAC;AAEM,MAAM,UAAA,GAAa,CAAC,KAAA,KAA0C;AACnE,EAAA,MAAM;AAAA,IACJ,SAAA,EAAW,EAAE,OAAA,EAAS,OAAA;AAAQ,MAC5BC,4BAAA,EAAe;AACnB,EAAA,uBAAOF,cAAA,CAAC,UAAQ,GAAG,KAAA,EAAO,UAAU,CAAC,OAAA,IAAW,CAAC,OAAA,EAAS,CAAA;AAC5D;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"Button.cjs","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type { PropsWithChildren } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { forwardRef } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\n\nexport type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n  VariantProps<typeof buttonVariants> & {\n    text?: string;\n  };\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center transition-colors text-font-primary relative overflow-hidden \\\n  cursor-pointer disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-70\",\n  {\n    variants: {\n      variant: {\n        unstyled: \"\",\n        default:\n          \"bg-neutral-0 border enabled:active:bg-neutral-100 border-border text-font-primary\",\n        primary: \"bg-primary enabled:active:bg-primary-600 text-neutral-0\",\n        success: \"bg-success enabled:active:bg-success-400 text-neutral-0\",\n        destructive: \"bg-danger enabled:active:bg-danger-600 text-neutral-0\",\n        info: \"bg-info enabled:active:bg-info-600 text-neutral-0\",\n        warning: \"bg-warning enabled:active:bg-warning-600 text-neutral-0\",\n      },\n      size: {\n        sm: \"h-10 px-3 text-sm rounded-sm\",\n        md: \"h-12 px-4 text-base rounded-md\",\n        lg: \"h-14 px-6 text-lg rounded-lg\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"md\",\n    },\n  }\n);\n\nexport const Button = forwardRef<\n  HTMLButtonElement,\n  PropsWithChildren<ButtonProps>\n>(({ variant, text, size, children, className, ...props }, ref) => {\n  return (\n    <button\n      ref={ref}\n      className={twMerge(buttonVariants({ variant, size }), className)}\n      {...props}\n    >\n      {text || children}\n    </button>\n  );\n});\n\nexport const FormButton = (props: PropsWithChildren<ButtonProps>) => {\n  const {\n    formState: { isDirty, isValid },\n  } = useFormContext();\n  return <Button {...props} disabled={!isValid || !isDirty} />;\n};\n\nButton.displayName = \"Button\";\n"]}