bflatastic
62c5f8c17a
Merge main into #2335
2026-11-14 00:59:04 +07:00
bflatastic
4f38875087
Merge main into #2335
2026-11-14 00:42:26 +07:00
bflatastic
e581dcba99
Merge main into #2298
2026-11-14 00:40:14 +07:00
Trevor Brown and Claude Opus 5.5
02b6280a75
Merge upstream/main into fix/align-auto-layout-child
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-13 12:36:32 -05:00
Trevor Brown and Claude Opus 5.5
33e611d82a
Merge upstream/main into fix/crop-from-picker-2307
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-13 12:36:23 -05:00
bflatastic
7fe1e67cf2
Merge main into #2291
2026-11-14 00:19:03 +07:00
bflatastic
66974c94b8
Merge main into #2335
2026-11-14 00:05:53 +07:00
bflatastic
43f56a6dd3
Merge main into #2298
2026-11-14 00:03:42 +07:00
bflatastic
c138c26ccc
Merge main into #2291
2026-11-14 00:03:09 +07:00
bflatastic
0bf58651bf
Merge main into #2285
2026-11-14 00:02:36 +07:00
BFlat
ec18cc67cb
Merge pull request #2320 from TrevorBrown-dev/fix/native-code-every-fill-2271
...
M10: SwiftUI, Compose and Flutter code export writes every colour and gradient fill, in paint order (#2271 )
2026-11-14 00:00:13 +07:00
bflatastic
0475ceec26
Merge main into #2335
2026-11-13 23:45:42 +07:00
bflatastic
cae4a71c0c
Merge main into #2308
2026-11-13 23:43:29 +07:00
bflatastic
8ab984c258
Merge main into #2298
2026-11-13 23:42:55 +07:00
bflatastic
35aa524f8a
Merge main into #2291
2026-11-13 23:42:21 +07:00
bflatastic
4ad2c52b28
Merge main into #2285
2026-11-13 23:41:48 +07:00
bflatastic
aef88e0197
Merge main into #2320
2026-11-13 23:39:40 +07:00
bflatastic
8932347ef8
Merge main into #2139
2026-11-13 23:23:44 +07:00
bflatastic
e1647fba6a
Merge main into #2139
2026-11-13 23:04:53 +07:00
bflatastic
953383fff8
Merge main into #2331
2026-11-13 22:54:24 +07:00
BFlat
c56d5d22ad
Merge pull request #2327 from TrevorBrown-dev/fix/mind-map-parent-default
...
M12: a mind map in a section or frame without a place starts at the view's centre
2026-11-13 22:51:44 +07:00
BFlat
1f7e6e0482
Merge pull request #2321 from TrevorBrown-dev/fix/flutter-space-distribution-spacing
...
M10: Flutter code writes no spacing beside a space distribution
2026-11-13 22:48:28 +07:00
bflatastic
71e063de9f
Merge main into #2139
2026-11-13 22:47:03 +07:00
BFlat
1448a91a54
Merge pull request #2086 from TrevorBrown-dev/fix/snap-threshold-measured
...
Smart guides: objects snap within 4.5 screen pixels, as measured in Figma
2026-11-13 22:45:56 +07:00
BFlat
ec524f6cd3
Merge pull request #2315 from TrevorBrown-dev/fix/css-layered-background-2271
...
M10: CSS code export writes several fills as one layered background, top first, as Figma does (#2271 )
2026-11-13 22:44:32 +07:00
BFlat
ce7de19097
Merge pull request #2294 from TrevorBrown-dev/fix/fig-list-start-2273
...
M6: .fig import: a numbered list keeps its start only where it starts counting (#2273 )
2026-11-13 22:41:46 +07:00
Trevor Brown and Claude Sonnet 5.5
e335ce7b73
Merge upstream/main into feat/select-layer-locked-1560
...
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
2026-11-13 10:39:59 -05:00
Trevor Brown and Claude Sonnet 5.5
794a940aa1
Merge upstream/main into fix/align-auto-layout-child
...
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
2026-11-13 10:39:45 -05:00
BFlat
ebc0260017
Merge pull request #2289 from TrevorBrown-dev/feat/sticky-size-menu
...
M12: Boards: a sticky's text-size menu (Small 16 to Huge 96), remembered for new stickies
2026-11-13 22:39:41 +07:00
Trevor Brown and Claude Sonnet 5.5
cdef36b543
Merge upstream/main into feat/polygon-count-handle
...
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
2026-11-13 10:39:31 -05:00
Trevor Brown and Claude Sonnet 5.5
95c909a9f6
Merge upstream/main into fix/crop-from-picker-2307
...
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
2026-11-13 10:38:19 -05:00
bflatastic
ae2e4799d7
Merge main into #2285
2026-11-13 22:35:39 +07:00
bflatastic
83a0177310
Merge main into #2139
2026-11-13 22:29:54 +07:00
bflatastic
91d2caf9df
Merge main into #2086
2026-11-13 22:29:18 +07:00
BFlat
6fb76233ec
Merge pull request #2087 from TrevorBrown-dev/feat/variables-duplicate-group-2084
...
Variables: Duplicate group copies a group's variables as "<name> 2" in one undo step
2026-11-13 22:27:09 +07:00
Trevor Brown and Claude Opus 5.5
bdf6ff9223
M8: after Crop is chosen in the image fill's menu, a drag on the image crops it, and no internal gesture message shows ( #2307 )
...
With the colour picker open on an image fill in Crop mode, a press on the layer closed the picker, and closing it committed the drag as a plain move: the whole layer moved instead of the picture inside it. The picker now treats a crop drag as its own control, as it does the open gradient's handles (#1852 ), so the press doesn't close it and the drag moves the crop.
A drag whose gesture something else committed under the held button went on calling the engine's preview, whose "no gesture in progress" error reached the canvas as a message. That error is now its own EngineError::NoGesture, which the canvas drops: the drag it belonged to is over, and it says nothing to the user.
Tests: crop_image_tests::crop_from_the_colour_picker_then_a_drag_on_the_image_moves_the_crop_not_the_layer (failed before: the crop didn't move) and a_drag_whose_gesture_was_committed_under_the_button_shows_no_message (failed before: "no gesture in progress").
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Model-Effort: Opus 5.5 drove and finished; Sonnet 5.5 wrote at medium (cut off by an API error)
2026-11-13 05:38:36 -05:00
Denis Gomes and Claude Opus 5.5
c74bcd0b0e
M1: Paste over selection puts the copies just above the selected layer
...
Shift+Cmd/Ctrl+V pasted into the selected layer's parent at its top-left,
but appended the copies, so they went to the top of the parent's layers
whatever was selected. In an auto layout frame that put them at the end of
the flow, away from the layer they were pasted over.
They now go just above the selected layer, in the copied order: in the
Layers panel the row above it, in an auto layout frame the item after it.
A section pasted over a layer in a frame still goes on the page, on top
of its layers, as before. Paste to replace already kept the replaced
layer's place.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-13 01:41:48 -05:00
Trevor Brown and Claude Sonnet 5.5
e0e57dd42a
M12: a mind map in a section or frame without a place is centred on the view
...
board.mindMap's default x and y came from the view's centre, which is on the page, but x and y are the root's place in its parent: under a section at (1000, 500) the map landed 1000 right and 500 down of the view's centre. The default now takes the centre through the parent's inverse world transform (a parent that can't be inverted gives a non-finite centre, which the coordinate check refuses). Explicit x and y stay parent-local. Tests: two in board_mindmap_tests (a section; a frame turned 30 degrees, with a given place carried through the frame).
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
2026-11-13 00:45:11 -05:00
Trevor Brown and Claude Opus 5.5
3be1a6a60b
Merge upstream/main into feat/select-layer-locked-1560
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 22:19:23 -05:00
Trevor Brown and Claude Opus 5.5
7d94fa78e9
Merge upstream/main into fix/mirror-sharp-point-2110
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 22:06:21 -05:00
Trevor Brown and Claude Opus 5.5
be49412330
Merge upstream/main into fix/align-auto-layout-child
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 22:02:21 -05:00
Trevor Brown and Claude Opus 5.5
1106b44ad3
Merge upstream/main into feat/scale-origin-centre
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 21:44:28 -05:00
Trevor Brown
0342b97574
Merge remote-tracking branch 'upstream/main' into fix/flutter-space-distribution-spacing
2026-11-12 21:28:29 -05:00
Trevor Brown and Claude Opus 5.5
38c68e6714
Merge upstream/main into fix/fig-list-start-2273
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 21:17:54 -05:00
Trevor Brown
a16321603c
Merge remote-tracking branch 'upstream/main' into fix/native-code-every-fill-2271
2026-11-12 21:12:28 -05:00
Trevor Brown and Claude Sonnet 5.5
a62435bb11
Merge remote-tracking branch 'upstream/main' into fix/css-layered-background-2271
...
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
2026-11-12 20:53:31 -05:00
Trevor Brown and Claude Sonnet 5.5
197af01629
Merge upstream/main into fix/snap-threshold-measured
...
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
2026-11-12 20:42:00 -05:00
Trevor Brown and Claude Sonnet 5.5
7057fbf3a5
Merge upstream/main into feat/variables-duplicate-group-2084
...
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
2026-11-12 20:41:57 -05:00
Trevor Brown and Claude Sonnet 5.5
e4ef6a62a7
Merge upstream/main into feat/zoom-selection-margin
...
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
2026-11-12 20:41:24 -05:00
Trevor Brown and Claude Opus 5.5
b90504a7dc
Merge upstream/main into feat/polygon-count-handle
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-12 20:40:53 -05:00