fix(sidebar): synchronize collapsed rail motion

This commit is contained in:
_Kerman
2026-08-12 22:54:38 +08:00
parent 7c4c118456
commit de97ea0ba8
16 changed files with 157 additions and 30 deletions
@@ -240,11 +240,13 @@
/* Rail variant (own .rail class from the wide owner prop — the region never
reads the shell's class names): the two icon controls stack as 36x36
circles matching the shell's rail rhythm. */
circles matching the shell's rail rhythm. Both use the rail's shared base
left anchor so the outer shell can translate the whole region uniformly. */
.rail .sectionHeader {
gap: 0;
padding-left: 0;
margin-bottom: 12px;
justify-content: flex-start;
}
.rail .headerActions {
@@ -3,11 +3,11 @@
* `sidebar.workspaces` hole: section header (title + view options + add
* workspace), search, the grouped tree or flat list, and the workspace
* dialogs. Wide state renders the full browser; rail state renders the two
* region icons (search / add workspace), each requesting shell expansion
* through the owner share. Adding is the header button's one action, so it
* raises the directory flow with no menu in between; the flow and its error
* dialog live in WorkspacePicker (same package — direct composition, no slot
* between them).
* region icons (search / add workspace) as 36px controls on the shell's shared
* rail entry path, each requesting expansion through the owner share. Adding is the header
* button's one action, so it raises the directory flow with no menu in
* between; the flow and its error dialog live in WorkspacePicker (same
* package — direct composition, no slot between them).
*/
import { useEffect, useMemo, useRef, useState } from 'react'
import clsx from 'clsx'