UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

57 lines (56 loc) 2.61 kB
import { jsx, jsxs } from "react/jsx-runtime"; import { Slot } from "@radix-ui/react-slot"; import { cva } from "class-variance-authority"; import { forwardRef } from "react"; import Spinner_mjs_default from "../common/Spinner.mjs"; import external_clsx_default from "clsx"; import { twMerge } from "tailwind-merge"; const buttonVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-normal transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background", { variants: { variant: { default: "bg-nextadmin-brand-default text-nextadmin-brand-inverted hover:bg-nextadmin-brand-emphasis", destructive: "bg-red-600 dark:bg-red-400 text-nextadmin-brand-inverted dark:text-dark-nextadmin-brand-inverted hover:bg-red-700 dark:hover:bg-red-500", destructiveOutline: "text-red-600 dark:text-red-400 hover:bg-red-100 bg-transparent", outline: "border border-input hover:bg-accent hover:text-accent-foreground", secondary: "bg-neutral-700 text-white hover:bg-neutral-600", ghost: "hover:bg-nextadmin-brand-muted hover:text-nextadmin-content-emphasis dark:hover:bg-dark-nextadmin-brand-muted/20 dark:hover:text-dark-nextadmin-brand-inverted text-nextadmin-brand-color dark:text-dark-nextadmin-brand-muted", link: "underline-offset-4 hover:underline text-black" }, size: { default: "h-10 py-2 px-4", sm: "h-9 px-3 rounded-md", lg: "h-11 px-8 rounded-md" }, icon: { true: "!px-2", false: "" } }, defaultVariants: { variant: "default", size: "default" } }); const Button_Button = /*#__PURE__*/ forwardRef(({ className, variant, size, asChild = false, children, loading, disabled, icon, ...props }, ref)=>{ const Comp = asChild ? Slot : "button"; return /*#__PURE__*/ jsxs(Comp, { ref: ref, disabled: loading || disabled, ...props, className: twMerge(external_clsx_default(buttonVariants({ variant, size, className, icon }))), children: [ loading && /*#__PURE__*/ jsx(Spinner_mjs_default, { className: "mr-2 inline h-4 w-4" }), children ] }); }); Button_Button.displayName = "Button"; const Button = Button_Button; export { Button_Button as Button, buttonVariants, Button as default };