A refused trash hover withdraws the trash's own promise — the fall-through holds only keepable ones

Gap #12 ruled into 04 ▸ the trash-drop bullet: the refusal fall-through's
honest reading (the column declines to be a target, it does not cancel
the held drag) covers only promises the refusal leaves keepable — lane
shadows keep drawing and an ⌥-copy lands where they are. A standing
proposal naming the trash itself is the promise the refusal just broke,
so it withdraws: the drag goes proposal-less over the column, release
with no proposal cancels in agreement with the empty picture, and
lifting ⌥ re-asks at the same address. Implementation filed on the
Implementation board.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
2026-08-06 20:48:45 -04:00
parent 531ca2c595
commit e1ffe71e5b
8 changed files with 76 additions and 21 deletions
+13 -4
View File
@@ -113,8 +113,8 @@ enum Accommodations {
}
/// A **translucent wash** a tint laid over whatever happens to be behind it, and the shape
/// every non-material translucency on the board takes: the trash column's plate and hatched
/// header, and the drag shadow's fill.
/// every non-material translucency on the board takes: every lane's plate, the trash column's
/// plate and hatched header, and the drag shadow's fill.
///
/// These are not glass, and the distinction matters enough to keep two types: a material samples
/// and blurs its backdrop, a wash simply composites at an alpha. But they fail the same way for
@@ -136,8 +136,17 @@ enum Accommodations {
}
}
/// The trash column's plate the quietest of the three, since the header above it carries the
/// column's identity.
/// Every lane's resting plate (03-board-ui.md § Styling Capabilities the standard chrome's
/// middle step, the pathfinder's lane surface carried over). Translucent so a board-chosen
/// colour shows through it, which is what keeps `BoardTextInk`'s premise true for the header
/// text sitting on it.
static func lanePlateWash(reduceTransparency: Bool) -> Wash {
reduceTransparency ? .opaque : .translucent(opacity: 0.35)
}
/// The trash column's plate the same figure as an ordinary lane's, kept as its own knob
/// because the trash answers to its own rendering spec (03-board-ui.md § Trash Rendering),
/// and the quietest of its treatments: the hatched header above carries the column's identity.
static func trashPlateWash(reduceTransparency: Bool) -> Wash {
reduceTransparency ? .opaque : .translucent(opacity: 0.35)
}