import type { HTMLAttributes, ReactNode } from "react";
export type PanelProps = HTMLAttributes & {
/** HTML tag to render (defaults to section) */
as?: "article" | "section" | "div" | "aside" | "main";
children: ReactNode;
/** Accessible label for screen readers */
"aria-label"?: string;
/** Reference to another element that describes this panel */
"aria-describedby"?: string;
/** Identifies this panel as a landmark region */
role?: "region" | "article" | "complementary" | "main";
};
/**
* Panel component for grouping related content with proper semantics.
*
* Renders a styled container with semantic HTML and accessibility support.
* Use this to create visually distinct sections of your interface.
*
* @example
* // Default section
*
* Section Title
* Section content...
*
*
* @example
* // With accessibility
*
* {results}
*
*/
export function Panel({ as: Tag = "section", children, className = "", role, ...props }: PanelProps) {
const { "aria-label": ariaLabel, "aria-describedby": ariaDescribedby, ...restProps } = props;
return (
{children}
);
}