import { ButtonHTMLAttributes, forwardRef } from "react";
import { cn } from "@/utils/cn";
import "./button.css";
interface Props extends ButtonHTMLAttributes {
variant?: "primary" | "secondary";
size?: "default" | "large";
disabled?: boolean;
loadingLabel?: string;
isLoading?: boolean;
}
const Button = forwardRef(
(
{
variant = "secondary",
size = "large",
disabled,
isLoading = false,
loadingLabel = "Loading…",
...attrs
},
ref,
) => {
const isNonInteractive = Boolean(disabled || isLoading);
// Focus ring adapts to light/dark variants
const focusRing =
variant === "primary"
? "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-white"
: "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-black";
return (
);
},
);
Button.displayName = "Button";
export default Button;