21 lines
609 B
TypeScript
21 lines
609 B
TypeScript
import * as React from "react";
|
||
|
||
export interface IconButtonProps {
|
||
/** A 16–18px stroke icon element. */
|
||
children?: React.ReactNode;
|
||
size?: "sm" | "md";
|
||
variant?: "ghost" | "solid";
|
||
/** Persistent pressed/selected state (e.g. active view toggle). */
|
||
active?: boolean;
|
||
disabled?: boolean;
|
||
/** Tooltip + aria-label — always provide one. */
|
||
title?: string;
|
||
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
||
style?: React.CSSProperties;
|
||
}
|
||
|
||
/**
|
||
* Square icon-only button for dense row actions and toolbars.
|
||
*/
|
||
export function IconButton(props: IconButtonProps): JSX.Element;
|