• Build the calendar settings view model in a single pass: every calendar as a dropdown row (with the active one flagged), and the non-builtin calendars as the deletable imported list.

    Parameters

    • calendars: Iterable<[string, CalendarRegEntry]>

      The registry entries as [id, registration] pairs.

    • activeId: string

      The id of the active calendar.

    • localize: (key: string) => string

      Resolves a label localization key to its display string.

    Returns CalendarViewModel

    The dropdown rows and the imported-calendar rows.