You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
05bdf78: SectionedSettings' contentHeight is now a true flex layout instead of pad-only: the item list window shrinks to make room for the selected item's description, which is wrapped in full (never truncated, no ellipsis) and bottom-anchored just above the hint line, while blank padding between the list and the description keeps the content at exactly the configured number of lines. This replaces the rejected fixedDescriptionLines truncation approach, which has been removed. SettingsDetailEditor gains a matching contentHeight option: in list mode the field window shrinks for the bottom-anchored, fully wrapped description, and its other modes (text editing, choice selector, empty state) pad to the fixed height so the panel never changes size. registerSettingsCommand accepts a new contentHeight option (default 20) wired to the settings body, replacing its previously hardcoded layout values. When contentHeight is unset, both components render exactly as before.
7e0ec5f: Add a contentHeight option to SectionedSettings: the rendered body is held at exactly the given number of lines, so the panel height stays stable across tabs and cursor moves (same goal as the Wizard's minContentHeight option). registerSettingsCommand passes a contentHeight of 20 by default, so the settings panel no longer jumps in height when switching tabs. See the flex-content-height-layout changeset for the layout details.
7e60ea4: Unframed submenu components: FuzzySelector, FuzzyMultiSelector, ArrayEditor, and PathArrayEditor no longer wrap their output in a bordered Panel — they render a plain styled title line followed by the body at full width, so they sit cleanly inside the registerSettingsCommand panel's own border instead of drawing a nested box. The internal renderSettingsPanel helper was removed (no replacement API; the old bordered layout has no supported opt-in). Each component now implements getShortcuts(): string | undefined (the SettingsSubmenuComponent contract), returning the shortcuts for its current internal mode (list vs add/edit input for the array editors, search vs no-matches for FuzzySelector), and accepts a hideHint option (default false) that suppresses its own shortcut footer when a host panel renders the single controls line — pass hideHint: ctx.hideHint from the submenu factory. For FuzzyMultiSelector, which already had a public showHints option (default true), hideHint takes precedence and wins over showHints when both are set.
5d259ea: Unified shortcut line: the settings panel from registerSettingsCommand now renders exactly one controls line at any time, always below the separator. Submenu components can implement getShortcuts(): string | undefined (new SettingsSubmenuComponent contract) to expose the shortcuts they currently respond to; while a submenu is open, the panel's controls line shows those instead of the default Enter/Space change · Ctrl+S save · Esc close (falling back to the default when the submenu exposes none). SectionedSettings gains getActiveSubmenuShortcuts() and forwards its hideHint option through the submenu factory context (SettingsSubmenuContext.hideHint). SettingsDetailEditor implements getShortcuts() per mode (list / text editing / enum choice / confirm / empty state, delegating to nested submenus) and accepts a new hideHint option that suppresses its own hint footer lines while keeping the fixed contentHeight layout — pass hideHint: ctx.hideHint when hosting it from registerSettingsCommand. Esc semantics stay accurate (with a submenu open, Esc backs out of the submenu), and Ctrl+S still saves from any depth.