// CRITICAL: must be first — patches LitElement before any component is loaded. import '@lit-labs/ssr-client/lit-element-hydrate-support.js'; // Client runtime: router outlet and link custom elements. import '@beatzball/litro/runtime/LitroOutlet.js'; import '@beatzball/litro/runtime/LitroLink.js'; // Shoelace components (tree-shaken — only what the template uses) import '@shoelace-style/shoelace/dist/components/button/button.js'; import '@shoelace-style/shoelace/dist/components/icon/icon.js'; import '@shoelace-style/shoelace/dist/components/badge/badge.js'; import '@shoelace-style/shoelace/dist/components/copy-button/copy-button.js'; import '@shoelace-style/shoelace/dist/components/details/details.js'; import '@shoelace-style/shoelace/dist/components/tab-group/tab-group.js'; import '@shoelace-style/shoelace/dist/components/tab/tab.js'; import '@shoelace-style/shoelace/dist/components/tab-panel/tab-panel.js'; import { setBasePath } from '@shoelace-style/shoelace/dist/utilities/base-path.js'; // Point Shoelace's icon loader at the served assets directory setBasePath('/shoelace/'); // Routes generated by the page scanner before each vite build. import { routes } from './routes.generated.js'; document.addEventListener('DOMContentLoaded', () => { const outlet = document.querySelector('litro-outlet') as (Element & { routes: unknown }) | null; if (outlet) { outlet.routes = routes; } else { console.warn('[litro] not found — router will not start.'); } });