{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "adminlte-button", "title": "AdminLTE Button", "description": "Button with 6 color variants (primary/success/danger/warning/info/default), flat style, social media variants, and 4 sizes.", "dependencies": [ "lucide-react" ], "registryDependencies": [ "https://raw.githubusercontent.com/dnachavez/adminlte-next/master/public/r/adminlte-theme.json" ], "files": [ { "path": "registry/new-york/adminlte-button/ui/adminlte-button.tsx", "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/registry/new-york/adminlte-theme/lib/cn\"\n\ntype ButtonVariant =\n | \"default\"\n | \"primary\"\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"danger\"\n | \"link\"\n\ntype ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\"\n\ntype SocialVariant =\n | \"facebook\"\n | \"twitter\"\n | \"google\"\n | \"linkedin\"\n | \"instagram\"\n | \"flickr\"\n | \"tumblr\"\n | \"vk\"\n | \"github\"\n | \"bitbucket\"\n | \"dropbox\"\n\nconst variantStyles: Record = {\n default:\n \"bg-[#f4f4f4] border-[#ddd] text-[#444] hover:bg-[#e7e7e7] hover:border-[#ccc]\",\n primary:\n \"bg-[#3c8dbc] border-[#367fa9] text-white hover:bg-[#367fa9] hover:border-[#204d74]\",\n success:\n \"bg-[#00a65a] border-[#008d4c] text-white hover:bg-[#008d4c] hover:border-[#00632f]\",\n info: \"bg-[#00c0ef] border-[#00acd6] text-white hover:bg-[#00acd6] hover:border-[#0086a5]\",\n warning:\n \"bg-[#f39c12] border-[#e08e0b] text-white hover:bg-[#e08e0b] hover:border-[#b6770a]\",\n danger:\n \"bg-[#dd4b39] border-[#d73925] text-white hover:bg-[#d73925] hover:border-[#b52c1e]\",\n link: \"bg-transparent border-transparent text-[#3c8dbc] hover:text-[#296282] hover:underline\",\n}\n\nconst flatVariantStyles: Record = {\n default:\n \"bg-[#f4f4f4] border-[#ddd] text-[#444] hover:bg-[#e7e7e7] rounded-none\",\n primary:\n \"bg-[#3c8dbc] border-[#3c8dbc] text-white hover:bg-[#367fa9] rounded-none\",\n success:\n \"bg-[#00a65a] border-[#00a65a] text-white hover:bg-[#008d4c] rounded-none\",\n info: \"bg-[#00c0ef] border-[#00c0ef] text-white hover:bg-[#00acd6] rounded-none\",\n warning:\n \"bg-[#f39c12] border-[#f39c12] text-white hover:bg-[#e08e0b] rounded-none\",\n danger:\n \"bg-[#dd4b39] border-[#dd4b39] text-white hover:bg-[#d73925] rounded-none\",\n link: \"bg-transparent border-transparent text-[#3c8dbc] hover:text-[#296282] hover:underline rounded-none\",\n}\n\nconst sizeStyles: Record = {\n xs: \"px-[5px] py-[1px] text-[12px] leading-[1.5]\",\n sm: \"px-[10px] py-[5px] text-[12px] leading-[1.5]\",\n md: \"px-[12px] py-[6px] text-[14px] leading-[1.42857]\",\n lg: \"px-[16px] py-[10px] text-[18px] leading-[1.33333]\",\n}\n\nconst socialStyles: Record = {\n facebook: \"bg-[#3b5998] text-white hover:bg-[#2d4373]\",\n twitter: \"bg-[#55acee] text-white hover:bg-[#2795e9]\",\n google: \"bg-[#dd4b39] text-white hover:bg-[#c23321]\",\n linkedin: \"bg-[#007bb6] text-white hover:bg-[#005983]\",\n instagram: \"bg-[#3f729b] text-white hover:bg-[#305777]\",\n flickr: \"bg-[#ff0084] text-white hover:bg-[#cc006a]\",\n tumblr: \"bg-[#2c4762] text-white hover:bg-[#1c2e3f]\",\n vk: \"bg-[#587ea3] text-white hover:bg-[#466482]\",\n github: \"bg-[#444] text-white hover:bg-[#2b2b2b]\",\n bitbucket: \"bg-[#205081] text-white hover:bg-[#163758]\",\n dropbox: \"bg-[#1087dd] text-white hover:bg-[#0d6aad]\",\n}\n\ninterface AdminLTEButtonProps\n extends React.ButtonHTMLAttributes {\n variant?: ButtonVariant\n size?: ButtonSize\n flat?: boolean\n block?: boolean\n social?: SocialVariant\n icon?: React.ReactNode\n loading?: boolean\n}\n\nconst AdminLTEButton = React.forwardRef(\n (\n {\n className,\n variant = \"default\",\n size = \"md\",\n flat = false,\n block = false,\n social,\n icon,\n loading = false,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const baseStyles =\n \"inline-block font-normal text-center whitespace-nowrap align-middle touch-manipulation cursor-pointer border border-solid select-none transition-colors duration-150 focus:outline-none\"\n\n const styles = social\n ? socialStyles[social]\n : flat\n ? flatVariantStyles[variant]\n : variantStyles[variant]\n\n return (\n \n {loading && (\n \n )}\n {icon && {icon}}\n {children}\n \n )\n }\n)\nAdminLTEButton.displayName = \"AdminLTEButton\"\n\nexport { AdminLTEButton }\nexport type { AdminLTEButtonProps, ButtonVariant, ButtonSize, SocialVariant }\n", "type": "registry:ui" } ], "type": "registry:ui" }