import type { ReactNode } from "react"; interface SidebarGroupProps { label: string; icon?: ReactNode; /** 펼침 상태 — 상태 소유는 소비처(feature)다. 이 컴포넌트는 비제어 프레젠테이션이다. */ isExpanded: boolean; onToggle: () => void; /** 자식 SidebarLink들(isNested로 들여쓰기). */ children: ReactNode; } /** * 사이드바 그룹 헤딩 — 자식 내비게이션 항목(SidebarLink)을 펼침/접힘으로 묶는다. * 상태를 갖지 않는 프레젠테이션 컴포넌트로, IconButton·SidebarLink와 동일한 관례로 * 'use client'를 붙이지 않는다: onToggle을 받아 {isExpanded &&
{children}
} ); } /** * 펼침/접힘 표시용 셰브론(오른쪽 화살표 — 펼치면 90도 회전해 아래를 향한다). 그룹 헤딩 * 전용 장식 요소라 이 파일 안에 둔다. * * ⚠️ 손으로 그린 마지막 아이콘이다. 디자인시스템에 같은 그림(`FoxCaretRightIcon`)이 있지만, * 회전(`rotate-90`)과 크기(`size-4`)를 Tailwind 클래스에 기대고 있어 그 두 개를 실재하는 * CSS로 옮기기 전에는 바꿔도 나아지지 않는다 — components/ui 전체 리스타일과 함께 처리한다. */ function ChevronIcon({ className }: { className?: string }) { return ( ); }