import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';

/**
 * SidebarDrillIn — stacked navigation pattern for deep, focused sections
 * (Settings, Admin, Workspace config). Lives INSIDE `<SidebarContent>` and
 * swaps the content area in place when `open` flips.
 *
 * Why this exists (vs. `SecondaryPanel`):
 *  - `SecondaryPanel` keeps the primary nav visible beside a scope strip —
 *    right for hub-scoped catalogs (Library) where the user is *scoping*.
 *  - `SidebarDrillIn` replaces the primary nav with the section's own nav —
 *    right for deep sections where the user is *going into* the section
 *    (Settings → Profile / Organization / Billing / …).
 *
 * URL drives state: parents pass `open` based on a route match (e.g.
 * `pathname.startsWith("/settings")`). There is no transient drill stack —
 * navigating away from the section root exits the drill-in automatically.
 *
 * Layout:
 *  - Wrapping `<div>` is `relative` + `overflow-x-hidden` so off-screen
 *    panes are clipped instead of triggering horizontal scroll on the
 *    enclosing `<SidebarContent>`.
 *  - Base pane renders in normal flow (so the closed state matches the
 *    pre-drill layout exactly).
 *  - Drilled-in pane is `absolute inset-0` so it overlays without
 *    affecting flex sizing while closed.
 *  - Both panes are mounted at all times so the slide is animatable; the
 *    inactive pane is `aria-hidden` + `inert` (React 19) so it disappears
 *    from the accessibility tree and the tab order entirely while hidden.
 *
 * Animation: 120 ms `transition-transform`, wrapped in `motion-safe:` so
 * `prefers-reduced-motion` users get an instant swap.
 *
 * Accessibility:
 *  - `[← Back]` row is a real `<button>` (via `SidebarMenuButton`) with
 *    `aria-label="Back to main navigation"`, so screen readers always
 *    announce the exit affordance even when the visible label is short.
 *  - Section title is rendered with `SidebarGroupLabel` so it sits in the
 *    same heading slot as primary-nav section labels — no new landmark.
 *  - On open, focus moves to the back button so keyboard users land in
 *    the new context with the exit affordance pre-focused.
 *
 * The parent decides:
 *  - Where Back goes (`onBack`) — typically a workspace home like
 *    `/dashboard`. Re-entry happens via the originating nav row.
 *  - What keyboard shortcuts trigger Back. Render `<Shortcut keys="…">`
 *    siblings in the drilled-in branch of your tree (Esc, Cmd/Ctrl+[ are
 *    the conventional pair).
 *  - Whether the workspace switcher (or any other primary-sidebar chrome)
 *    is hidden while drilled in.
 */
interface SidebarDrillInProps {
    /** Whether the drilled-in pane is visible. Drive from URL match. */
    open: boolean;
    /** Section heading, e.g. "Settings". */
    sectionTitle: string;
    /** Click handler for the back row + any sibling `<Shortcut>` bindings. */
    onBack: () => void;
    /**
     * Base nav content rendered while `open === false` (and as the
     * underlying pane during the slide animation).
     */
    baseContent: React.ReactNode;
    /**
     * Drilled-in nav content — typically a `SidebarGroup` containing the
     * section's `NavLink` rows. Sits below the auto-rendered back row and
     * section heading.
     */
    children: React.ReactNode;
    /** Optional class for the outer wrapper. */
    className?: string;
}
declare function SidebarDrillIn({ open, sectionTitle, onBack, baseContent, children, className, }: SidebarDrillInProps): react_jsx_runtime.JSX.Element;

export { SidebarDrillIn, type SidebarDrillInProps };
