import * as React from "react"; import { Button as KumoButton, LinkButton as KumoLinkButton, type ButtonProps as KumoButtonProps, type LinkButtonProps as KumoLinkButtonProps, } from "@cloudflare/kumo/components/button"; import { cn } from "@/lib/utils"; type ButtonVariant = "default" | "secondary" | "outline" | "ghost" | "destructive"; type ButtonSize = "default" | "sm" | "lg" | "icon"; const variantMap: Record = { default: "primary", secondary: "secondary", outline: "outline", ghost: "ghost", destructive: "destructive", }; const sizeMap: Record = { default: "base", sm: "sm", lg: "lg", icon: "base", }; export type ButtonProps = Omit & { variant?: ButtonVariant; size?: ButtonSize; }; export type LinkButtonProps = Omit & { variant?: ButtonVariant; size?: Exclude; }; export const Button = React.forwardRef(function Button( { className, variant = "default", size = "default", ...props }, ref, ): React.ReactElement { const kumoProps = { className: cn("teatea-button", `teatea-button-${variant}`, className), ref, shape: size === "icon" ? "square" : "base", size: sizeMap[size], variant: variantMap[variant], ...props, } as KumoButtonProps & React.RefAttributes; return ( ); }); export const LinkButton = React.forwardRef(function LinkButton( { className, variant = "default", size = "default", ...props }, ref, ): React.ReactElement { return ( ); });