import type { TemplateResult } from 'lit'; /** A single tab in a {@link renderTablist} strip. */ export interface TablistItem { id: T; label: string; } /** * Shared styling for every horizontal tab strip in the library (natal chart * views, transits, kundli styles). Keeping one rule set means the tabs look * identical everywhere and theme through the same --roxy-* tokens. */ export declare const tablistStyles: import("lit").CSSResult; /** * Render a WAI-ARIA tablist. The host component owns the active-tab state; this * helper draws the buttons, wires click plus Left/Right arrow navigation with a * roving tabindex, and moves focus to the newly selected tab. Pair with * {@link tablistStyles}. * * Pass `controls: true` when each tab governs a sibling * `
` so the buttons advertise * `aria-controls`. Omit it for tablists that swap a single rendered view in * place with no separate panel element (the kundli style switch). * * @example * ```ts * renderTablist({ * items: [{ id: 'wheel', label: 'Wheel' }, { id: 'grid', label: 'Aspect grid' }], * active: this.view, * onSelect: (v) => { this.view = v; }, * label: 'Natal chart views', * idPrefix: 'natal', * controls: true, * }) * ``` */ export declare function renderTablist(opts: { items: ReadonlyArray>; active: T; onSelect: (id: T) => void; label: string; idPrefix: string; controls?: boolean; }): TemplateResult; //# sourceMappingURL=tablist.d.ts.map