Secondary Nav

The second-level navigation rail that sits between the main app sidebar and the page content. Composition primitives (SecondaryNav, SecondaryNavHeader, SecondaryNavContent, SecondaryNavGroup, SecondaryNavItem, SecondaryNavFooter) that standardise the chat-threads, competitive-intelligence, and settings rails. Items are polymorphic: pass href for a real route (Link), otherwise they render a button.

Fixed sub-page links

Static, grouped links with a mono uppercase section header — the settings pattern. Active state is owned by the caller (usually pathname === href).

Dynamic list with icons, trailing accessory & hover actions

Leading icon, an always-visible trailing accessory (count/dot/spinner), and hover-revealed actions rendered as an absolutely-positioned sibling so the row stays a single interactive element. A group's optional action sits next to its label.

Full rail with header, scrollable content & footer

The complete shell: a pinned SecondaryNavHeader, a scrollable SecondaryNavContent, and a pinned SecondaryNavFooter. Wrap it in a PanelSidebar, a sticky aside, or a SidebarSheet depending on the surface — the rail itself stays container-agnostic.