import { __, sprintf } from '../../../lib/i18n'; export type BulkActionOption = { value: string; label: string }; export type BulkActionsBarProps = { /** When true (e.g. sample data), bulk UI is disabled. */ disabled?: boolean; selectedCount: number; value: string; onChange: (value: string) => void; onApply: () => void; applyBusy?: boolean; /** Trash tab: only permanent delete is offered (ignored when `customOptions` is set). */ trashMode: boolean; /** Pro / custom lists: replaces WP post bulk options. */ customOptions?: BulkActionOption[]; /** `id`/`htmlFor` for the select (avoid duplicate ids when multiple bars exist). */ selectId?: string; }; /** * WordPress-style bulk row for entity lists (select + Apply). */ export function BulkActionsBar({ disabled, selectedCount, value, onChange, onApply, applyBusy = false, trashMode, customOptions, selectId = 'sikshya-bulk', }: BulkActionsBarProps) { const blocked = disabled || applyBusy; const canApply = !blocked && selectedCount > 0 && value !== ''; const useCustom = Array.isArray(customOptions) && customOptions.length > 0; return (