export type ProductActionBarSelectionFilter = { /** Whether the "show only selected" filter is active. */ checked: boolean; /** Fired when the user toggles the filter. */ onCheckedChange: (checked: boolean) => void; /** Translated label rendered next to the toggle, e.g. "Show only selected". */ label: React.ReactNode; }; export type ProductActionBarProps = { /** Checkbox state. `"indeterminate"` shows a dash. */ selected: boolean | "indeterminate"; /** Fired when the checkbox half is toggled. */ onSelectedChange: (checked: boolean | "indeterminate") => void; /** Accessible label for the checkbox half, e.g. "Select all products". */ checkboxLabel: string; /** Click handler for the pull-down caret half — opens a select-all/deselect-all menu. */ onMenuClick: () => void; /** Accessible label for the pull-down caret half, e.g. "Open selection options". */ menuLabel: string; /** Open state of the caret's menu, reflected as `aria-expanded` on the caret. */ menuExpanded?: boolean; /** Translated selection count, e.g. "1 of 24 selected". */ selectionLabel: React.ReactNode; /** * Action buttons rendered next to the selection label. Typically two * `