import { getUser, clearToken } from '../../lib/auth.mjs'; const BREADCRUMBS = { '/': ['Dashboard'], '/work-orders': ['Work Orders'], '/work-orders/new': ['Work Orders', 'New'], '/registry/people': ['Resources', 'People'], '/registry/vehicles': ['Resources', 'Vehicles'], '/registry/equipment': ['Resources', 'Equipment'], '/registry/materials': ['Resources', 'Materials'], '/reports': ['Reports'], '/users': ['Admin', 'Users'], '/settings': ['Admin', 'Settings'], }; class AppTopbar extends HTMLElement { #menuOpen = false; connectedCallback() { this.#render(); window.addEventListener('hashchange', () => this.#render()); document.addEventListener('click', e => { if (!this.contains(e.target) && this.#menuOpen) { this.#menuOpen = false; this.#render(); } }); } #render() { const user = getUser(); const path = decodeURIComponent(location.hash.slice(1)) || '/'; const crumb = BREADCRUMBS[path] || [path.split('/').filter(Boolean).map(s => s.replace(/-/g, ' ')).join(' › ')]; const initials = (user?.displayName || user?.username || 'U') .split(' ').map(w => w[0]).join('').slice(0, 2).toUpperCase(); this.innerHTML = `