{# Navigable outline (issue #87): a read-only INERT list for JS-off / pre-hydration, shared by the review workbench transcript and the read-only run transcript so the two fallbacks can never drift. Grounded entity mentions carry their segment time and quote but are NOT jump links here: seeking needs the island, and a link that only works with JS would be a broken promise. The island root REPLACES this markup on its first render (createRoot, not hydrateRoot). Skipped entirely when the feature is gated off, so it never nags a persistent panel onto a transcript page. #} {% macro outline_fallback(outline) %} {% if outline and (outline.available or not outline.gated) %}

Outline

{% if not outline.available %}

No outline was generated for this transcript.

{% else %} {% if outline.assetStale %}

This outline was built from an earlier version of the transcript, so the quoted text may have changed. Regenerate it for an up-to-date outline.

{% endif %} {% set dropped = outline.diagnostics.droppedUnlocatable + outline.diagnostics.droppedOutOfRun + outline.diagnostics.droppedUnresolved %} {% if outline.mentions %}

Read-only list. Jumping to a moment needs JavaScript.

{% elif dropped > 0 %}

{{ dropped }} mention{{ "" if dropped == 1 else "s" }} from an earlier version of the transcript could not be matched to the current text, so none are shown.

{% else %}

No people, organizations, or products were found in this transcript.

{% endif %} {% if outline.context.summary or outline.context.topics %}

Summary and topics are context only. They are not linked to specific moments.

{% if outline.context.summary %}

{{ outline.context.summary }}

{% endif %} {% if outline.context.topics %}{% endif %}
{% endif %} {% if outline.mentions and dropped > 0 %}

{{ dropped }} mention{{ "" if dropped == 1 else "s" }} could not be matched to the current transcript and {{ "is" if dropped == 1 else "are" }} not shown.

{% endif %} {% endif %}
{% endif %} {% endmacro %}