The board's symbol takes a tint — a 4×2 colour row under the picker's glyphs, and the glyph itself moves into the titlebar
iconColor stops being hand-written-only (user-ruled, superseding 03's "schema yes, control no"): it rides StyleCommand.apply → applyStyle as the third styled dimension — per-dimension no-op skip, one bracket, one history step, ExpectedField.iconColor for staleness. The SymbolPicker grows an opt-in colour row (leading None plus seven Palette.foregrounds hues, None removes the key); the board popover is its one caller. The window-title widget now draws the board's resolved glyph in that tint beside the name. Doc realignment filed on the Redesign board (Minor). Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -367,8 +367,10 @@ extension BoardStore {
|
||||
///
|
||||
/// `.remove` is spelled as `nil`, which is the after-value the None well leaves: the key is gone,
|
||||
/// and the item renders the level's default (03-board-ui.md § Styling ▸ Controls).
|
||||
static func styledFields(background: StyleChange, icon: StyleChange) -> [ExpectedField] {
|
||||
field(background, as: ExpectedField.background) + field(icon, as: ExpectedField.icon)
|
||||
static func styledFields(background: StyleChange, icon: StyleChange, iconColor: StyleChange) -> [ExpectedField] {
|
||||
field(background, as: ExpectedField.background)
|
||||
+ field(icon, as: ExpectedField.icon)
|
||||
+ field(iconColor, as: ExpectedField.iconColor)
|
||||
}
|
||||
|
||||
/// The same dimensions, holding the values the *inverse* restores — what the redo half validates
|
||||
@@ -381,7 +383,9 @@ extension BoardStore {
|
||||
background: StyleChange,
|
||||
priorBackground: FieldValue<String>,
|
||||
icon: StyleChange,
|
||||
priorIcon: FieldValue<String>
|
||||
priorIcon: FieldValue<String>,
|
||||
iconColor: StyleChange,
|
||||
priorIconColor: FieldValue<String>
|
||||
) -> [ExpectedField] {
|
||||
var fields: [ExpectedField] = []
|
||||
if background != .keep {
|
||||
@@ -390,6 +394,9 @@ extension BoardStore {
|
||||
if icon != .keep {
|
||||
fields.append(.icon(priorIcon.value))
|
||||
}
|
||||
if iconColor != .keep {
|
||||
fields.append(.iconColor(priorIconColor.value))
|
||||
}
|
||||
return fields
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user