Commit Graph
314 Commits
Author SHA1 Message Date
bflatastic 3cd2b85819 Merge main into #2241 2026-11-12 11:40:47 +07:00
BFlat 8e033c0258 Merge pull request #2203 from ljkx/fill-row-copy
M1: a click highlights a fill, stroke or effect row, and Cmd/Ctrl+C and Cmd/Ctrl+V copy and paste it (#1494)
2026-11-12 11:37:50 +07:00
bflatastic 16bf97d538 Merge main into #2241 2026-11-12 11:24:18 +07:00
BFlat a49817259d Merge pull request #2106 from TrevorBrown-dev/fix/arrow-pan-step-measured
View: the arrow keys pan 64 px, 320 with Shift, as measured in Figma
2026-11-12 11:22:17 +07:00
bflatastic 20bea05bac Merge main into #2203 2026-11-12 11:21:48 +07:00
BFlat 46467fb536 Merge pull request #2093 from TrevorBrown-dev/fix/submenu-opens-without-delay
Menus: a submenu opens as soon as its row is hovered, as measured in Figma
2026-11-12 11:20:15 +07:00
bflatastic b11cbe7c90 Merge main into #2241 2026-11-12 11:11:31 +07:00
bflatastic 7ecb6f1c03 Merge main into #2094 2026-11-12 11:07:19 +07:00
bflatastic ea7f7a7145 Merge main into #2106 2026-11-12 11:07:09 +07:00
BFlat cd6c14e231 Merge pull request #2229 from TrevorBrown-dev/fix/header-icon-size-2227
M10: Design panel: section header icons draw at the panel's icon size (#2227)
2026-11-12 11:04:07 +07:00
bflatastic 4f9496dbcb Merge main into #2203 2026-11-12 11:02:59 +07:00
bflatastic 3c0505def6 Merge main into #2094 2026-11-12 10:50:07 +07:00
bflatastic 2161c92f5d Merge main into #2229 2026-11-12 10:48:56 +07:00
bflatastic 19a7db95b4 Merge main into #2203 2026-11-12 10:46:40 +07:00
bflatastic 74d301b97b Merge main into #2093 2026-11-12 10:29:06 +07:00
bflatastic 7901713555 Merge main into #2106 2026-11-12 10:07:38 +07:00
bflatastic 1dc88e0a82 Merge main into #2241 2026-11-12 10:06:08 +07:00
bflatastic 4565ed9686 Merge main into #2143 2026-11-12 10:06:02 +07:00
bflatastic b5c6fa3efb Merge main into #2241 2026-11-12 10:01:26 +07:00
bflatastic 17104743b4 Merge main into #2143 2026-11-12 09:52:05 +07:00
bflatastic 0ff08f96a6 Merge main into #2106 2026-11-12 09:49:45 +07:00
bflatastic fb58711ea6 Merge main into #2276 2026-11-12 09:49:19 +07:00
bflatastic c1bd18f1f9 Merge main into #2276 2026-11-12 09:31:46 +07:00
bflatastic b640fbc114 Docs: describe the property highlight in our own words 2026-11-12 09:27:39 +07:00
bflatastic 190b8b4c80 Merge main into #2094 2026-11-12 09:27:04 +07:00
bflatastic 1a4824e9e9 Merge main into #2143 2026-11-12 09:23:31 +07:00
bflatastic 654eb205f4 Wrap style: describe the three levels in our own words 2026-11-12 09:21:49 +07:00
bflatastic eddddb6e3c Merge main into #2105 2026-11-12 09:20:27 +07:00
bflatastic 2c1c3c974a Merge main into #2106 2026-11-12 09:19:47 +07:00
BFlat 0fd45a2eb2 Merge pull request #2107 from TrevorBrown-dev/fix/escape-deselects-measured
Selection: Escape clears the selection instead of stepping out to the parent, as in Figma
2026-11-12 09:18:27 +07:00
Trevor BrownandClaude Opus 5.5 4904306056 Merge upstream/main into fix/submenu-opens-without-delay
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:55:46 -05:00
Trevor BrownandClaude Opus 5.5 b25858550b Merge upstream/main into feat/wrap-style-paragraph-and-style-1827
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:55:44 -05:00
Trevor BrownandClaude Opus 5.5 7d6274d6be Merge upstream/main into feat/vector-edit-clipboard-1875
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:55:32 -05:00
Trevor BrownandClaude Opus 5.5 4a9006fc29 Merge upstream/main into fix/arrow-pan-step-measured
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:55:29 -05:00
Trevor BrownandClaude Opus 5.5 0da027292e Merge upstream/main into fix/escape-deselects-measured
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:55:27 -05:00
Trevor BrownandClaude Opus 5.5 d5eec3ec6e Merge upstream/main into feat/annotation-tool-1840
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:49:22 -05:00
Trevor BrownandClaude Opus 5.5 3a4b6f0e1f Merge upstream/main into feat/scale-tool-focus-2146
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 17:49:15 -05:00
Trevor BrownandClaude Sonnet 5.5 604c78466c M5: marquee: a drag from inside a frame takes it whole when it takes another top-level frame, as re-measured
In top-level mode the frame the drag started in is now selected whole (re-measure 2: [F1, F2], R1 not selected); with no other frame taken only the touched shapes are. Test 9 uses the re-measure's literal marquees; docs reworded and docs/mcp.md rewrapped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Fable 5.1 briefed; Sonnet 5.5 wrote at medium
2026-11-11 17:40:52 -05:00
Trevor BrownandClaude Sonnet 5.5 cb52621414 M5: marquee selection follows Figma's measured rules (gap 4)
A plain marquee now selects each top-level layer it touches: a partly covered frame or section gives the layers in it the marquee touches, an enclosed one is selected itself, an empty frame on touch, a rotated shape by its outline. A drag from inside a frame never selects that frame and also takes the top-level layers it touches outside it. Once the marquee selects a frame whole, no frame opens and a partly covered frame comes whole. Measured in Figma's web app, 2026-11-11.

Flipped existing assertions: marquee_selects_what_it_touches, cmd_marquee_selects_nested_layers, a_box_selects_like_a_marquee. Tests: marquee_behaviour_tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Fable 5.1 briefed; Sonnet 5.5 wrote at medium
2026-11-11 17:13:26 -05:00
24cf70329b M5: Locked layers follow Figma's rules: no nudge, a locked parent's children stay locked (#1560) (#2219)
* M5: Locked layers follow Figma's rules: no nudge, a locked parent's children stay locked (#1560)

Pins Figma's locked-layer behaviour (measured in Figma's web app, 2026-11-10; help center "Lock and unlock layers") in a new lock_behaviour_tests suite. Fixes the divergences: transform.nudge and transform.nudgeSize skip locked layers, object.toggleLock without a value counts a child of a locked parent as locked (so it never locks the child on its own), and the Layers panel padlock on such a child is inert.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Fable 5.1 briefed; Sonnet 5.5 wrote at medium

* Layers panel: a padlock sweep skips the children of a locked layer (#1560)

A padlock drag sweep no longer collects rows with `locked_above`, so
dragging across a locked frame's children leaves their own flags alone
and draws no swept value on them. An eye sweep is unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Opus 5.5 briefed; Sonnet 5.5 wrote at medium

* M5: Lock/Unlock leaves a locked layer's child alone in a mixed selection (#1560)

With a locked frame's child and an unlocked layer selected, Lock/Unlock set both own flags, so
the child stayed locked once the frame was unlocked. With no explicit `locked` value, the command
now skips a layer whose parent is locked, as its padlock does; an explicit value (scripts) still
sets it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove and wrote

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: FredApps <FredApps@users.noreply.github.com>
2026-11-11 21:06:56 +01:00
Trevor BrownandClaude Opus 5.5 fa4883ad3a M8: UI parity doc: the main menu row after the merge with #2220
The merge spliced this branch's submenu sentence into the middle of
main's row. The row is main's again, with the measured first-frame
sentence in place of the old 0.15 s one and #2220's overflow sentence
kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 12:38:33 -05:00
ljkx 452ee9b74a Merge remote-tracking branch 'origin/main' into fill-row-copy 2026-11-11 17:58:31 +01:00
Trevor BrownandClaude Opus 5.5 7effcfc3e9 Merge upstream/main into feat/wrap-style-paragraph-and-style-1827
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:56 -05:00
Trevor BrownandClaude Opus 5.5 607a196e35 Merge upstream/main into feat/annotation-tool-1840
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:56 -05:00
Trevor BrownandClaude Opus 5.5 cf17c66a13 Merge upstream/main into feat/scale-tool-focus-2146
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:49 -05:00
Trevor BrownandClaude Opus 5.5 a1cb5309f4 Merge upstream/main into feat/vector-edit-clipboard-1875
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:44 -05:00
Trevor BrownandClaude Opus 5.5 74d7cff672 Merge upstream/main into fix/arrow-pan-step-measured
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:41 -05:00
Trevor BrownandClaude Opus 5.5 e829590fdf Merge upstream/main into fix/escape-deselects-measured
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:38 -05:00
Trevor BrownandClaude Opus 5.5 986f6d0a4c Merge upstream/main into fix/header-icon-size-2227
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:30 -05:00
Trevor BrownandClaude Opus 5.5 a85bd83bc7 Merge upstream/main into fix/submenu-opens-without-delay
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:39:25 -05:00