import type { MessageRenderer } from "@mariozechner/pi-web-ui"; import { registerMessageRenderer } from "@mariozechner/pi-web-ui"; import { html } from "lit"; // ============================================================================ // NAVIGATION MESSAGE TYPE // ============================================================================ export interface NavigationMessage { role: "navigation"; url: string; title: string; favicon?: string; tabIndex?: number; } // Extend CustomMessages interface via declaration merging declare module "@mariozechner/pi-web-ui" { interface CustomMessages { navigation: NavigationMessage; } } // ============================================================================ // RENDERER // ============================================================================ const navigationRenderer: MessageRenderer = { render: (nav) => { return html`
`; }, }; // ============================================================================ // REGISTER // ============================================================================ export function registerNavigationRenderer() { registerMessageRenderer("navigation", navigationRenderer); } // ============================================================================ // HELPER // ============================================================================ export function createNavigationMessage( url: string, title: string, favicon?: string, tabIndex?: number, ): NavigationMessage { return { role: "navigation", url, title, favicon, tabIndex, }; }