#pragma once
// mode_enable — enablement predicate behind the bank_panel bottom toolbar's four Item/Track x
// Arrange/Design tag buttons. A tag button sends the selection to a TARGET mode; it's live only
// when its target differs from the currently active mode (you tag INTO the mode you're not in).

#include <string>

namespace reasampler::ui {

// A tag button's TARGET mode. The Item/Track axis is orthogonal to enablement (both buttons for
// a target enable/disable together), so it isn't modelled here — the shell carries it per button.
enum class TagTarget {
    Arrange,
    Design,
};

// True iff a button targeting `target` should be live, given the active mode id `activeModeId`
// (ViewModeModel::activeModeId(), i.e. kArrangeModeId / kDesignModeId). An unrecognized active id
// leaves every button live (fail-open — never silently disable a reachable action).
bool tagButtonEnabled(const std::string& activeModeId, TagTarget target);

} // namespace reasampler::ui
