// Outline / Model / Requirements sections, each independently collapsible. // The whole rail can also collapse to a 36px vertical strip. // Ported from docs/design-source/socrata/project/editor-shell.jsx (LeftRail). "use client"; import { useState } from "react"; import type { FixtureData } from "../../lib/fixtures/aristotle"; interface LeftRailProps { data: FixtureData; focusBlockId: string | null; setFocusBlockId: (id: string | null) => void; } export function LeftRail({ data, focusBlockId, setFocusBlockId }: LeftRailProps) { const [collapsed, setCollapsed] = useState(false); const [open, setOpen] = useState({ outline: true, model: true, requirements: true }); const toggle = (k: keyof typeof open) => setOpen(s => ({ ...s, [k]: !s[k] })); if (collapsed) { return ( ); } return ( ); }