import "@fontsource-variable/geist"; import "@fontsource-variable/geist-mono"; import "./style.css"; import { components } from "./components"; import { REPO } from "./data"; import { home } from "./home"; import { icon } from "./icons"; import { onSound, setSound, soundOn } from "./iso/marimba"; import { menu } from "./menu"; import { search } from "./search"; import { mode, setMode } from "./theme"; const bar = document.getElementById("bar")!; const main = document.getElementById("main")!; let leave = () => {}; function render(): void { leave(); const path = location.pathname.split("/").filter(Boolean); const onDocs = path[0] === "components"; const nav = bar.querySelector('[data-nav="components"]')!; if (onDocs) nav.setAttribute("aria-current", "page"); else nav.removeAttribute("aria-current"); if (onDocs) leave = components(main, path.slice(1)); else if (path.length === 0) leave = home(main); else { console.error(`site: no page at ${location.pathname}`); leave = components(main, path); } scrollTo(0, 0); } export function go(path: string): void { if (path === location.pathname) return; history.pushState(null, "", path); render(); } bar.innerHTML = ` Ely
`; document.getElementById("foot")!.innerHTML = ` MIT or Apache-2.0 Source Built on GPUI Fonts: Geist and Geist Mono (OFL) Icons: Reicon (MIT), based on Solar Icons by 480 Design (CC BY 4.0)`; const modeButton = bar.querySelector