export interface TableAction { key: string label: string disabled?: boolean loading?: boolean run: () => unknown } // Callers supply only permitted actions; disabled actions retain their place. export function splitTableActions(actions: readonly TableAction[]) { return actions.length > 3 ? { visible: actions.slice(0, 2), overflow: actions.slice(2) } : { visible: actions, overflow: [] } } export function runTableAction(action: TableAction) { if (!action.disabled && !action.loading) return action.run() }