{# ================================================================================ Track Navigation Sidebar (Kida-Native) ================================================================================ Left rail for tracks/single.html: the ordered section list for the current track plus links to sibling tracks. Reuses the pre-computed `track_item_pages` map that single.html builds (so we never call get_page twice for the same slug); falls back to get_page when included standalone. Expected context (set by tracks/single.html before include): track_id — resolved id of the current track current_track — the track dict (or none) track_item_pages — {slug: page} map for current_track.items (optional) DOM contract (consumed by waves #141 CSS / #142 JS): nav.chirp-theme-track-sidebar[data-bengal="track-nav"][data-track-id] .chirp-theme-track-sidebar__list .chirp-theme-track-sidebar__item a.chirp-theme-track-sidebar__link[href="#track-section-{n}"] [data-track-target="#track-section-{n}"] .chirp-theme-track-sidebar__number (badge) USAGE: {% include 'partials/track-sidebar.html' %} ================================================================================ #} {% from "chirpui/badge.html" import badge %} {% from "chirpui/card.html" import card %} {% from "chirpui/list.html" import list_group, list_item %} {% let _track_id = track_id if (track_id is defined and track_id) else (params?.track_id ?? page?.slug ?? '') %} {% let _all_tracks = site?.data?.tracks ?? {} %} {% let _current_track = current_track if (current_track is defined and current_track) else (_all_tracks[_track_id] if (_track_id and _track_id in _all_tracks) else none) %} {% let _track_items = _current_track?.items ?? [] %}