import { ButtonCommonProps, IconColors, Refable, type Styleable } from "@trackunit/react-components"; import { IconName } from "@trackunit/ui-icons"; import { ReactNode } from "react"; export interface ButtonCellProps extends ButtonCommonProps, Refable, Styleable { /** * The content to display inside the button, typically the action text. */ children: ReactNode; /** * Optional icon name to display before the button text. */ iconName?: IconName; /** * Color of the icon when iconName is provided. * * @default "primary" */ iconColor?: IconColors; } /** * The `` component renders an interactive button within a table cell. * Uses a ghost-neutral variant by default for subtle inline actions. * Commonly used for quick actions on individual rows without opening a menu. * * ### When to use * - Provide a single quick action directly in a table cell * - When the action is contextual and specific to that row's data * - For inline edit, view details, or quick status change actions * * ### When not to use * - For multiple actions per row - use `RowActions` instead * - For primary page-level actions - use regular `Button` component * - For navigation links - use `LinkCell` or `IdentityCell` with link prop * * @example Basic usage * ```tsx * import { ButtonCell } from "@trackunit/react-table-base-components"; * import { createColumnHelper } from "@tanstack/react-table"; * * const columnHelper = createColumnHelper(); * * const columns = [ * columnHelper.display({ * id: "action", * header: "Action", * cell: ({ row }) => ( * handleView(row.original.id)}> * View Details * * ), * }), * ]; * ``` * @example With icon * ```tsx * import { ButtonCell } from "@trackunit/react-table-base-components"; * * // Edit action with icon * handleEdit(assetId)} * > * Edit * * * // Download action * handleDownload(reportId)} * > * Download * * ``` * @example Different button states * ```tsx * import { ButtonCell } from "@trackunit/react-table-base-components"; * * // Disabled state * {}}> * Unavailable * * * // Loading state * {}}> * Processing * * ``` * @param {ButtonCellProps} props - The props for the ButtonCell component * @returns {ReactElement} ButtonCell component */ export declare const ButtonCell: ({ children, className, "data-testid": dataTestId, iconColor, iconName, style, variant, ...rest }: ButtonCellProps) => import("react/jsx-runtime").JSX.Element;