export type { TabItem } from './createTabs.svelte'; /** * SvTabs - a WAI-ARIA tabs widget with roving tabindex + arrow-key navigation, * four `tabPosition`s (top / bottom / left / right) and optional closable tabs. * Parity: Smart `smart-tabs`. Controlled via `value` + `onChange`; the active * panel is rendered through the `panel` snippet. * * Behavior (roving focus, activation, close, ARIA) lives in the headless * `createTabs` core; this component is one styled renderer over it. */ import type { Snippet } from 'svelte'; import { type EditorDir } from './editor-contract'; import { type TabItem } from './createTabs.svelte'; type Props = { tabs: ReadonlyArray; value?: string; onChange?: (id: string) => void; /** Fired when a closable tab's x (or Delete key) closes it. */ onClose?: (id: string) => void; /** Where the tab strip sits. Default 'top'. */ tabPosition?: 'top' | 'bottom' | 'left' | 'right'; /** @deprecated use `tabPosition`. horizontal -> top, vertical -> left. */ orientation?: 'horizontal' | 'vertical'; /** 'line' underline (default) or 'pill' segmented look. */ variant?: 'line' | 'pill'; /** Activate on focus (automatic) vs. on Enter/Space (manual). Default automatic. */ activation?: 'automatic' | 'manual'; panel?: Snippet<[string]>; ariaLabel?: string; /** Text direction (rtl mirrors layout + flips horizontal arrow keys). */ dir?: EditorDir; /** Allow dragging tabs to reorder; emits the new id order via onReorder. */ reorderable?: boolean; onReorder?: (orderedIds: string[]) => void; }; declare const SvTabs: import("svelte").Component; type SvTabs = ReturnType; export default SvTabs;