route-search-component
Version:
A lightweight, framework-agnostic web component for searchable route navigation with keyboard shortcuts
55 lines (47 loc) • 1.18 kB
TypeScript
interface Route {
label: string;
path: string;
}
interface RouteSearchConfig {
routes: Route[];
baseUrl?: string;
shortcutKey?: string;
placeholder?: string;
title?: string;
subtitle?: string;
}
declare class RouteSearchComponent extends HTMLElement {
constructor();
// Public methods
openDialogPublic(): void;
closeDialogPublic(): void;
updateRoutes(newRoutes: Route[]): void;
getRoutes(): Route[];
isDialogOpen(): boolean;
// Attributes
setAttribute(name: 'routes', value: string): void;
setAttribute(name: 'config', value: string): void;
getAttribute(name: 'routes'): string | null;
getAttribute(name: 'config'): string | null;
}
declare global {
interface HTMLElementTagNameMap {
'global-route-search': RouteSearchComponent;
'route-search': RouteSearchComponent;
}
namespace JSX {
interface IntrinsicElements {
'global-route-search': {
routes?: string;
config?: string;
ref?: any;
};
'route-search': {
routes?: string;
config?: string;
ref?: any;
};
}
}
}
export { type Route, RouteSearchComponent, type RouteSearchConfig };