"use client" import * as React from "react" import { cn } from "../../lib/utils" import { BadgeCount } from "../ui/badge" import { Button } from "../ui/button" import { Kbd, KbdGroup } from "../ui/kbd" import { Shortcut } from "../ui/dropdown-menu" import { Tooltip, TooltipContent, TooltipTrigger, } from "../ui/tooltip" export interface BulkSelectionBarProps { selected: Set rows: TData[] onClear: () => void /** Custom actions; when omitted, Export + Delete placeholders render. */ actionsSlot?: (selected: Set, rows: TData[]) => React.ReactNode /** Default Export chord (e.g. `⌘⌥E`). Used only when `actionsSlot` is omitted. */ exportShortcut?: string /** Default Delete chord (e.g. `⌘⌥⌫`). Used only when `actionsSlot` is omitted. */ deleteShortcut?: string className?: string } /** * Selection chrome for DataTable — count chip, action slot, clear. * Parent owns sticky / in-flow placement (HubTable sticky foot vs card footer). */ export function BulkSelectionBar({ selected, rows, onClear, actionsSlot, exportShortcut = "⌘⌥E", deleteShortcut = "⌘⌥⌫", className, }: BulkSelectionBarProps) { return ( {/* Everything below inherits the slab's ink rather than naming a colour, so it follows the surface when the theme flips it. Pinning these to `brand-foreground` made the label, dividers, and Clear button vanish the moment the band stopped being brand-coloured. */}