import { forwardRef } from "react"; import type { ButtonHTMLAttributes, ReactNode, RefAttributes } from "react"; import clsx from "clsx"; import { Loader2 } from "lucide-react"; import { FocusSafeButton } from "./FocusSafeButton"; import { buttonClass, isLinkVariant, type ButtonSize, type ButtonVariant } from "./buttonStyles"; // The ONE action-button primitive: a labelled action (Save, Cancel, Subscribe, Delete, "Show all"). // docs/DESIGN.md decides its look (A1 shape, B1 ladder, B3 state layers); this file is where that // holds. The app's other button families have their own primitives beside it: `IconButton` (a glyph // with no text), `Pressable` (a card, row or tile whose content is the control), `Chip` and // `FilterChipGroup` (filters), `SegmentedToggle`, `DragHandle`. A hand-rolled `