import { ReactNode } from 'react';
interface CollapsiblePanelProps {
/** Header content before the chevron — e.g. a count pill or a protocol badge. */
trigger: ReactNode;
/** Content revealed inside the animated panel. */
children: ReactNode;
/** Starts expanded. Defaults to false. */
defaultExpanded?: boolean;
/** Forces the panel open once true (e.g. search navigated here) — never forces it closed, so a later `false` doesn't collapse something the user opened themselves. */
forceExpanded?: boolean;
/** Id of an external heading that labels the toggle button (e.g. an `
` above it), when there is one. */
ariaLabelledBy?: string;
/** Extra classes on the outer bordered container. */
className?: string;
}
/**
* The expand/collapse accordion pattern shared by Authorization sections
* (Server, Operation) and Bindings: a toggle button with a `trigger` badge
* and chevron, and a `grid-rows-[0fr]/[1fr]` animated panel beneath it. Owns
* the ARIA wiring (`aria-expanded`/`aria-controls`) and the "force open on
* search navigation" glue that was duplicated identically across all three.
*/
export default function CollapsiblePanel({ trigger, children, defaultExpanded, forceExpanded, ariaLabelledBy, className, }: CollapsiblePanelProps): import("react").JSX.Element;
export {};