import type { HTMLAttributes, ReactNode } from "react"; import { cn } from "./cn.js"; import { SortableList } from "./DragDrop.js"; import { Icon } from "./Icon.js"; export interface AdminNavigationContext { id: string; label: string; description?: string; groupLabel?: string; icon?: ReactNode; active?: boolean; onSelect?: () => void; onToggle?: () => void; } export interface AdminNavigationItem { id: string; label: string; icon?: ReactNode; sortable?: boolean; } export interface AdminNavigationPanelProps extends Omit, "title"> { eyebrow?: string; title: ReactNode; contexts?: AdminNavigationContext[]; headerActions?: ReactNode; contextSlot?: ReactNode; items: AdminNavigationItem[]; activeId?: string; footer?: ReactNode; closeLabel?: string; navigationLabel?: string; onClose: () => void; onItemChange: (id: string) => void; onItemsReorder?: (ids: string[]) => void; } export function AdminNavigationPanel({ eyebrow = "NODE.DC", title, contexts = [], headerActions, contextSlot, items, activeId, footer, closeLabel = "Закрыть администрирование", navigationLabel = "Разделы администрирования", onClose, onItemChange, onItemsReorder, className, ...props }: AdminNavigationPanelProps) { return ( ); }