The Variables and Properties nodes listed their picked rows in the
inspector, but unlike Start, End and struct rows they could not be
reordered. The drag dots also sat right on the edge of the row and
touched the kind mark.
- buildPickedPortSection gathers each row with its warning line as one
block and hands the blocks to sortBlocks. A move reorders the ports
on the node and is one undo step. Properties uses the same section
and gains the same reordering.
- Grip draws the dots 3 px in from the left edge and moves the kind
mark 3 px clear of them (DOTS_PAD). The column keeps its width, so
the name fields do not shift. Rows without dots are unchanged.
Tests:
- block-drag, reorder, variable-choices: 3 files, 13 tests, all green.
block-drag now expects the mark 11 px in with dots, 0 without.
- e2e 23 on melektaus-atx: ALL PASSED, 32 checks (+3 for dragging vy
before vx and undoing it). It ran before the padding change, which
touches no checks there.
- The gate did not run before this commit.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After #310 rows could be dragged by their mark, but nothing said which
marks take a drag, and the pointer on one changed nothing but the
cursor.
- A mark that drags is now a Grip: the same widget wrapped, the same
size, so the value column stays where it was. Once sortBlocks takes
it, it carries six faint dots at its left edge.
- Marks that cannot drag stay plain: the variables of a placed object
and the fields of a typed struct show no dots.
- With the pointer on a grip its dots light up and the whole block that
would move is washed in the accent colour, a struct with its fields.
While the block is carried the wash gives way to the dimming, and the
grip stays lit.
- While a block is carried the other grips let the pointer pass: no
lit dots, no wash. Every grip of the column shows grabbing instead of
grab until the drop.
- The wash first used controlHover like list rows. In the inspector it
is darker than the panel and vanished next to the dark fields, so it
became the accent at 15 percent, the colour of the drop line.
- __gm.inspectorMark also reports the dots: none, idle or lit.
Tests:
- Gate on melektaus-atx: 236 files, 3576 tests (+4 in
block-drag.test.ts, one of them a drag passing over another grip).
- e2e 22: 40 checks (+1, sum 1740). 22f-iii reads idle dots, moves the
mouse onto the mark and reads them lit.
- Two counter-checks bite: no wash on hover fails 1 test, grips never
made grabbable fail 3. A third: hover ignoring the drag fails 1.
- Screenshots of a lit single row and a lit struct block looked at.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>