{"version":3,"file":"button.mjs","sources":["../../../../src/lib/nextGenComponents/components/ui/button.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { TooltipContentProps } from '@radix-ui/react-tooltip'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport React from 'react'\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'\nimport { cn } from '@/lib/utils'\n\nconst buttonVariants = cva(\n  'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:cursor-not-allowed disabled:border disabled:bg-white disabled:text-igz-gray disabled:[&_svg]:text-igz-secondary [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n  {\n    variants: {\n      variant: {\n        default:\n          'bg-primary text-primary-foreground hover:bg-primary/90 min-w-[100px] disabled:border-primary',\n        destructive:\n          'bg-destructive text-destructive-foreground hover:bg-destructive/90 disabled:border-destructive',\n        outline:\n          'border border-input bg-background hover:bg-accent hover:text-accent-foreground disabled:border-background',\n        secondary:\n          'border border-solid border-[#ccc] bg-secondary text-secondary-foreground hover:bg-[#483F561F] min-w-[50px] disabled:border-secondary',\n        ghost: 'hover:bg-accent hover:text-accent-foreground disabled:border-transparent',\n        link: 'text-igz-primary underline-offset-4 hover:underline disabled:border-transparent',\n        rounded:\n          'rounded-full hover:bg-igz-gray-light [&_svg]:size-[16px] transition-bg duration-300 ease-in-out disabled:border-igz-gray-light'\n      },\n      size: {\n        default: 'h-10 px-4 py-3',\n        sm: 'h-9 px-4 py-2.5',\n        lg: 'h-11 rounded-md px-8',\n        icon: 'h-10 w-10 p-0 m-0'\n      }\n    },\n    defaultVariants: {\n      variant: 'default',\n      size: 'default'\n    }\n  }\n)\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants>,\n    Omit<TooltipContentProps, keyof React.ButtonHTMLAttributes<HTMLButtonElement>> {\n  asChild?: boolean\n  tooltip?: string\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  (\n    { className, variant, size, tooltip = '', side = 'top', asChild = false, disabled, ...props },\n    ref\n  ) => {\n    const Comp = asChild ? Slot : 'button'\n    const buttonEl = (\n      <Comp\n        className={cn(\n          buttonVariants({ variant, size, className }),\n          tooltip && disabled && 'disabled:pointer-events-auto'\n        )}\n        disabled={disabled}\n        ref={ref}\n        {...props}\n      />\n    )\n\n    if (!tooltip) return buttonEl\n\n    return (\n      <Tooltip>\n        <TooltipTrigger asChild>{buttonEl}</TooltipTrigger>\n        <TooltipContent side={side}>{tooltip}</TooltipContent>\n      </Tooltip>\n    )\n  }\n)\nButton.displayName = 'Button'\n\nexport { Button }\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","tooltip","side","asChild","disabled","props","ref","buttonEl","jsx","Slot","cn","Tooltip","TooltipTrigger","TooltipContent"],"mappings":";;;;;;AAQA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAUMC,IAASC,EAAM;AAAA,EACnB,CACE,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,SAAAC,IAAU,IAAI,MAAAC,IAAO,OAAO,SAAAC,IAAU,IAAO,UAAAC,GAAU,GAAGC,EAAA,GACtFC,MACG;AAEH,UAAMC,IACJ,gBAAAC;AAAA,MAFWL,IAAUM,IAAO;AAAA,MAE3B;AAAA,QACC,WAAWC;AAAA,UACThB,EAAe,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAF,GAAW;AAAA,UAC3CG,KAAWG,KAAY;AAAA,QAAA;AAAA,QAEzB,UAAAA;AAAA,QACA,KAAAE;AAAA,QACC,GAAGD;AAAA,MAAA;AAAA,IAAA;AAIR,WAAKJ,sBAGFU,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAA,EAAe,SAAO,IAAE,UAAAL,GAAS;AAAA,MAClC,gBAAAC,EAACK,GAAA,EAAe,MAAAX,GAAa,UAAAD,EAAA,CAAQ;AAAA,IAAA,GACvC,IANmBM;AAAA,EAQvB;AACF;AACAX,EAAO,cAAc;"}