A card window toolbar control shows and hides the trailing sidebar — View ▸ Show Sidebar joins Edit Body, Raw Source and Add Attachment
The card window's trailing attributes sidebar has always been unconditional since m6; this adds View ▸ Show Sidebar (a checkmark toggle, ShowComments' shape) and a matching toolbar item on the customizable card toolbar (NSToolbar/WindowToolbarController), a fourth default beside Edit Body, Raw Source and Add Attachment. sidebar.right for the trailing pane; one shared animated write path (AppPreferences.setShowCardSidebar) both faces call, structural-voice reflow with a trailing slide-and-fade transition (Motion.cardSidebarTransition), Reduce Motion respected throughout. CardWindowMetrics.minimumSize gains a sidebar: Bool = true parameter so a hidden sidebar shrinks the window's floor, composing with the existing commentsColumn parameter. The toolbar item's read/write are injectable closures (defaulted to the real UserDefaults-backed pair) so its plumbing is testable without touching the developer's own preferences domain. WindowToolbarController's observation tracking only sees @Observable reads, so a small HostedWindowController.revalidateToolbar() plus an onChange nudge keeps the toolbar button's on-state in step with the View-menu row's write. Scope held narrowly to visibility, per the card: no sidebar section reordering, no action-moving. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -182,6 +182,19 @@ enum Motion {
|
||||
transientSearchAppearance(reduced: reduced).transition
|
||||
}
|
||||
|
||||
/// The card window's attributes sidebar, arriving or leaving — View ▸ Show Sidebar's one visible
|
||||
/// consequence (05-card-window.md ▸ Composition ▸ The attributes sidebar). Slides from the
|
||||
/// trailing edge, where the sidebar itself sits — `transientSearchAppearance`'s own reasoning
|
||||
/// (the surface arrives from the edge it lives on) applied to this one's edge instead of the
|
||||
/// toolbar's.
|
||||
static func cardSidebarAppearance(reduced: Bool) -> Appearance {
|
||||
reduced ? .crossfade : .slideAndFade(from: .trailing)
|
||||
}
|
||||
|
||||
static func cardSidebarTransition(reduced: Bool) -> AnyTransition {
|
||||
cardSidebarAppearance(reduced: reduced).transition
|
||||
}
|
||||
|
||||
// MARK: - The AppKit face
|
||||
|
||||
/// The lane-resize window animation's duration, for `NSAnimationContext` — which takes a number
|
||||
|
||||
Reference in New Issue
Block a user