#pragma once
// panel_bank_ops — bank-CRUD-UX + selection-read seam of the bank panel. The
// promptless verbs themselves live in shell/bank_ops (bankOp* + persistBankOp);
// this TU is the panel's thin prompt/confirm/repaint skin over them, plus the
// popup menus that drive them. `bank_actions` is the sibling skin.

#include <string>
#include <vector>

namespace reasampler {

// Via GetUserInputs. Returns false (leaving `out` untouched) on cancel or empty
// entry. Return separator is overridden to \x1f so any printable name round-trips.
bool promptBankName(const char* title, const char* caption, const std::string& initial,
                    std::string& out);

// Ids in bank (insertion) order, not grid indices. Empty when nothing is selected.
// Pair with bankPanelSelectedSourceBankId() to know which bank these belong to.
std::vector<std::string> bankPanelSelectedSampleIds();

// The displayed bank of the region the user last interacted with — the SOURCE
// bank for a move/copy. Returns the pool id as a safe default.
std::string bankPanelSelectedSourceBankId();

}  // namespace reasampler
