import { Slot, Slottable } from "@radix-ui/react-slot"; import { forwardRef, useState } from "react"; import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { buttonVariants } from "./button.variants"; import { cn } from "../lib/cn"; import type { VariantProps } from "../lib/cva"; import type { ButtonLikeElementProps } from "../lib/contracts"; import { createDataAttributes, createSlot } from "../lib/contracts"; export type ButtonProps = Omit< ButtonLikeElementProps, "onDrag" | "onDragEnd" | "onDragStart" > & VariantProps; function Spinner() { return (