import clsx from "clsx"; import Link from "next/link"; type Variant = "solid" | "line"; /* * Matches site/'s .btn--solid and .btn--line exactly, including the neutral * border on the secondary variant. site/ does not have an accent-outlined * button and this app should not invent one. */ export function buttonClass(variant: Variant = "solid", disabled = false, className?: string) { return clsx( "inline-flex items-center gap-2 rounded border px-4 py-2.5 text-[0.94rem] font-semibold", "transition-[filter,border-color] duration-150 hover:brightness-110", variant === "solid" ? "border-accent bg-accent text-accent-ink" : "border-rule bg-panel text-ink hover:border-ink-3", disabled && "cursor-not-allowed border-rule bg-panel text-ink-3 hover:brightness-100", className, ); } type Props = React.ButtonHTMLAttributes & { variant?: Variant }; export function Button({ variant = "solid", className, ...rest }: Props) { return