featherbit UI
    Preparing search index...

    Interface InsertOptions

    Options accepted by TemplateTokenState.insert.

    interface InsertOptions {
        insertAtCaretWhenNoToken?: boolean;
    }
    Index
    insertAtCaretWhenNoToken?: boolean

    When true and there is no in-progress token (open is false at the moment insert runs), insert insertText at the field's bare caret instead of splicing over tokenStart. Added for the template-editor modal (Task 2): its suggestion panel is always populated — filtered rows while a token is active, every suggestion otherwise, for browsing — and clicking a row in that browsing state must behave as if the user had typed the token right there, not silently reuse whatever tokenStart was left over from the last time a token was active (which could point at a stale, unrelated position, or 0 on a modal that just opened and never had one). Extending insert with an explicit opt-in flag (rather than, say, having the caller reset tokenStart itself, which the hook doesn't expose, or duplicating insert's splice/caret/ pendingCaret logic in the modal) keeps the one splice implementation as the single source of truth for both call sites. No effect when a token is active (open true) — that path is unchanged from Task 1.