ivt
Version:
Ivt Components Library
1 lines • 4.74 kB
Source Map (JSON)
{"version":3,"file":"button-Co_1yLv6.mjs","sources":["../../src/components/ui/button/button.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 cursor-pointer\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n\t\t\t\tdestructive: \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n\t\t\t\tsecondary: \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n\t\t\t\tselection: \"border border-input bg-accent text-accent-foreground hover:bg-accent/80\",\n\t\t\t\tupload: \"bg-accent text-primary hover:bg-accent/80\",\n\t\t\t\tghost: \"hover:bg-body\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t\ttable: \"text-inherit\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-9 px-4 py-2\",\n\t\t\t\tsm: \"h-8 rounded-md px-3\",\n\t\t\t\tlg: \"h-10 rounded-md px-8\",\n\t\t\t\ticon: \"h-9 w-9\",\n\t\t\t\tnormal: \"h-fit\",\n\t\t\t\t\"icon-sm\": \"size-8\",\n\t\t\t\t\"icon-lg\": \"size-10\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nexport interface ButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tVariantProps<typeof buttonVariants> {\n\tasChild?: boolean;\n\tisAction?: boolean;\n\tsubtle?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t(\n\t\t{ className, variant, size, asChild = false, isAction = false, subtle = false, ...props },\n\t\tref,\n\t) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\n\t\tconst subtleStyles = (variant?: ButtonProps[\"variant\"]) => {\n\t\t\tswitch (variant) {\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"bg-accent text-primary hover:bg-accent/80\";\n\t\t\t\tcase \"destructive\":\n\t\t\t\t\treturn \"bg-destructive-foreground text-destructive hover:bg-destructive-foreground/80\";\n\t\t\t\tcase \"outline\":\n\t\t\t\t\treturn \"bg-accent text-accent-foreground hover:bg-accent/80\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"\";\n\t\t\t}\n\t\t};\n\n\t\tconst finalSubtleStyles = subtle ? subtleStyles(variant) : \"\";\n\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tclassName={cn(\n\t\t\t\t\tisAction && \"min-w-20\",\n\t\t\t\t\tbuttonVariants({ variant, size }),\n\t\t\t\t\tfinalSubtleStyles,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","variants","variant","default","destructive","outline","secondary","selection","upload","ghost","link","table","size","sm","lg","icon","normal","defaultVariants","Button","React","forwardRef","className","asChild","isAction","subtle","props","ref","Comp","Slot","subtleStyles","finalSubtleStyles","cn","displayName"],"mappings":";;;;;AAMA,MAAMA,cAAAA,GAAiBC,IACtB,0PAAA,EACA;IACCC,QAAAA,EAAU;QACTC,OAAAA,EAAS;YACRC,OAAAA,EAAS,+DAAA;YACTC,WAAAA,EAAa,8EAAA;YACbC,OAAAA,EACC,0FAAA;YACDC,SAAAA,EAAW,wEAAA;YACXC,SAAAA,EAAW,yEAAA;YACXC,MAAAA,EAAQ,2CAAA;YACRC,KAAAA,EAAO,eAAA;YACPC,IAAAA,EAAM,iDAAA;YACNC,KAAAA,EAAO;AACR,SAAA;QACAC,IAAAA,EAAM;YACLT,OAAAA,EAAS,eAAA;YACTU,EAAAA,EAAI,qBAAA;YACJC,EAAAA,EAAI,sBAAA;YACJC,IAAAA,EAAM,SAAA;YACNC,MAAAA,EAAQ,OAAA;YACR,SAAA,EAAW,QAAA;YACX,SAAA,EAAW;AACZ;AACD,KAAA;IACAC,eAAAA,EAAiB;QAChBf,OAAAA,EAAS,SAAA;QACTU,IAAAA,EAAM;AACP;AACD,CAAA;AAWD,MAAMM,MAAAA,iBAASC,MAAMC,UAAU,CAC9B,CACC,EAAEC,SAAS,EAAEnB,OAAO,EAAEU,IAAI,EAAEU,OAAAA,GAAU,KAAK,EAAEC,QAAAA,GAAW,KAAK,EAAEC,SAAS,KAAK,EAAE,GAAGC,KAAAA,EAAO,EACzFC,GAAAA,GAAAA;IAEA,MAAMC,IAAAA,GAAOL,UAAUM,IAAAA,GAAO,QAAA;AAE9B,IAAA,MAAMC,eAAe,CAAC3B,OAAAA,GAAAA;QACrB,OAAQA,OAAAA;YACP,KAAK,SAAA;gBACJ,OAAO,2CAAA;YACR,KAAK,aAAA;gBACJ,OAAO,+EAAA;YACR,KAAK,SAAA;gBACJ,OAAO,qDAAA;AACR,YAAA;gBACC,OAAO,EAAA;AACT;AACD,IAAA,CAAA;IAEA,MAAM4B,iBAAAA,GAAoBN,MAAAA,GAASK,YAAAA,CAAa3B,OAAAA,CAAAA,GAAW,EAAA;AAE3D,IAAA,qBACC,KAAA,CAAA,aAAA,CAACyB,IAAAA,EAAAA;QACAN,SAAAA,EAAWU,EAAAA,CACVR,QAAAA,IAAY,UAAA,EACZxB,cAAAA,CAAe;AAAEG,YAAAA,OAAAA;AAASU,YAAAA;AAAK,SAAA,CAAA,EAC/BkB,iBAAAA,EACAT,SAAAA,CAAAA;QAEDK,GAAAA,EAAKA,GAAAA;AACJ,QAAA,GAAGD;;AAGP,CAAA;AAEDP,MAAAA,CAAOc,WAAW,GAAG,QAAA;;;;"}