{# Joist beam mark as an inline SVG favicon; themes with the browser chrome. #} {# The diagram's label boxes are sized to the text Mermaid measures, with no slack, so a face arriving after that measurement repaints wider glyphs into boxes sized for the fallback and clips the last character. The client waits for this face before measuring; the hint starts the fetch with the document instead of when the stylesheet is parsed, so that wait is usually over before it begins. crossorigin is required even same-origin, or the preload is not reused. #} {# Optional custom-theme overrides, generated from JOIST["theme"]. Linked after the base sheet so its variables win, and only when a theme is configured (a default install makes no extra request). Same-origin, CSP-safe. #} {% if has_custom_theme %} {% endif %} {# Mermaid as a global (UMD). Self-hosted from the package by default (no CDN); JOIST["diagram"]["mermaid_url"] opts into a CDN. #}
joist
{# Focus is a combobox rather than a select so it can be searched by substring on a large schema. Keyboard and screen-reader behaviour is implemented in focus-combobox.js to the ARIA combobox-with-listbox pattern. #}
{# A polite live region: notices (cache unavailable, no tables match, schema failed to load) are injected here, and a status message nobody announces is not a status message (WCAG 4.1.3). #}
{# A title attribute is a tooltip, not a name: assistive technology is not required to expose it, so the slider needs a real label (WCAG 4.1.2). aria-label keeps the control visually unchanged. #} 100%
{# The shared popover: a table menu, a column list, an enum list or the export menu. A non-modal dialog, so its content is a named surface instead of text floating outside every landmark; the client names it from the heading it is about to render. #}