Flexible, multi-variant button component supporting standard buttons, links, split-icon layouts, and loading states via a unified `Button` interface. ## Key Components - **`buttonVariants`** — CVA variant map defining styles for `variant` (`accent`, `outline`, `transparent`, `destructive`, `warning`), `size` (`default`, `small`, `small-legacy`, `compact`, `icon`, `icon-sm`), `fullWidth`, and `noPaddingX`. - **`splitShellVariants` / `splitSlotVariants`** — CVA helpers for the split-icon layout, where a vertical divider separates main content from a trailing icon area within a single click target. - **`Spinner`** — Internal SVG spinner rendered absolutely during `loading` state, preserving button dimensions. - **`Button`** — Primary export. A `forwardRef` component that auto-selects rendering strategy: `` (`asChild`), `` (`href` / `linkProps`), split layout (`splitIcon`), or a plain ` // Link button with split icon // Icon-only ghost button // Render as child (asChild) ``` **Source:** [`button.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/button.tsx)