import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react"; import { createPortal } from "react-dom"; import { Check, ChevronDown, Copy, Loader2, X, type LucideIcon } from "lucide-react"; import { cn } from "../lib/cn.ts"; import { useT } from "../lib/i18n.ts"; /* ---------- Button ---------- */ type ButtonProps = React.ButtonHTMLAttributes & { variant?: "primary" | "gradient" | "secondary" | "ghost" | "danger"; size?: "sm" | "md" | "lg" | "icon"; }; export function Button({ variant = "primary", size = "md", className, ...props }: ButtonProps) { return (