function parse(hash) {
const raw = (hash || '').replace(/^#/, '') || '/';
const [pathPart, queryPart] = raw.split('?');
const segments = pathPart.split('/').filter(Boolean);
const query = Object.fromEntries(new URLSearchParams(queryPart || ''));
return { path: pathPart || '/', segments, query };
}
let _route = $state(parse(typeof window !== 'undefined' ? window.location.hash : '/'));
if (typeof window !== 'undefined') {
window.addEventListener('hashchange', () => {
_route = parse(window.location.hash);
});
}
export function getRoute() {
return _route;
}
export function navigate(path) {
window.location.hash = path;
}
export const router = {
get current() {
return _route;
}
};