Commit Graph
1603 Commits
Author SHA1 Message Date
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
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
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 BrownandClaude 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 BrownandClaude 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 BrownandClaude 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
NetterSilverandClaude Opus 5.5 7b34dbab00 Keep library links working when the project folder is moved or cloned (#2132)
Fixes #2122

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 01:48:30 +01:00
Trevor BrownandClaude Sonnet 5.5 3d22c606a7 M10: Tailwind mobile merge keeps a max-width both frames share (#2272) (#2296)
inspect.code {language: "tailwind", mobile} dropped every mobile max-width and put the desktop one behind lg:, so a fixed-size layer that is the same size on both frames (a 48 x 48 badge) stretched to the full width below 1024 px. A mobile max-width that equals the desktop one is now kept as a plain class, with no lg: copy. A differing max-width still goes fluid on mobile with the desktop cap behind lg:.

Tests: the issue's two frames (a 1440 and a 390 page, each with a 48 x 48 badge) keep max-w-[48px] unprefixed, and a page-wide banner still gets its lg: cap only. The slashed-names test gave the CTAs frame the same 342 px on both frames, which the new rule rightly keeps, so its desktop frame is now 600 px wide. docs/mcp.md notes the rule.


Model-Effort: Opus 5.5 drove; Fable 5.2 queued; Opus 5.5 briefed; Sonnet 5.5 wrote at medium

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 01:44:17 +01:00
NetterSilverandClaude Haiku 5.5 04a6c76a9b Return an error for non-numeric miterLimit, cornerSmoothing and paragraph props (#2303)
Found while testing crates/engine/src/cmd/props.rs:660 (also :710, :984, :985)

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
2026-11-13 01:42:52 +01:00
Trevor BrownandClaude Opus 5.5 477f004400 Merge upstream/main into fix/mirror-sharp-point-2110
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 19:39:01 -05:00
Trevor BrownandClaude Sonnet 5.5 4e9b414cc7 M6: tests for where a list starts counting, through the issue's own steps (#2273)
The engine test now follows the issue: a list typed at 5, saved as .fig and opened, split by Backspace at the start of "b". The REST fixture is a top-level list, the junk sweep reaches the new loop through a listed text layer, and the document crate tests the new rule for nested, bullet, plain and over-deep levels. ParaList gets its doc comment back, and the revision row names the item written with 0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Fable 5.2 queued; Opus 5.5 briefed; Sonnet 5.5 wrote at medium
2026-11-12 05:56:47 -05:00
Trevor BrownandClaude Sonnet 5.5 bb480bdfad M6: .fig import: a numbered list keeps its start only where it starts counting (#2273)
Figma writes a list's start on every line of the list (measured in Figma's web app, 2026-11-12, from a saved .fig: a list started at 5 has listStartOffset 4 on all its lines, and the item split off by Backspace is written with 0). The import kept every line's value, so after a split the items after it restarted at the old start instead of 1.

The import now keeps a start only on the item where a numbered list starts counting, and gives every item that goes on counting 0, for .fig and REST listStartOffsets alike. The rule is one function in the document model, list_item_starts_counting, which the layout's list numbering now uses too. The export is unchanged and its re-import now equals what went in.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Model-Effort: Opus 5.5 drove; Fable 5.2 queued; Opus 5.5 briefed; Sonnet 5.5 wrote at medium
2026-11-12 05:25:35 -05:00
Trevor BrownandClaude Sonnet 5.5 3d781caa92 Merge remote-tracking branch '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 05:00:10 -05:00
Trevor BrownandClaude Sonnet 5.5 57b885f8d5 M12: Boards: a sticky's text-size menu (Small 16 to Huge 96), remembered for new stickies
Measured in FigJam's web app on 2026-11-12: a sticky's own toolbar has a text-size menu (Small 16, Medium 24, Large 40, Extra large 64, Huge 96), a fresh sticky is Small = 16 (the 18 of 2026-11-09 did not reproduce), the note grows taller at Huge and shrinks back, a size chosen with two stickies selected sets both, and the sticky tool remembers the last size.

STICKY_TEXT_SIZE is 16 and STICKY_SIZES holds the table. board.setStyle {fontSize} sizes stickies' notes and sets the sticky tool's size (BoardTool.sticky_size); board.sticky takes the tool's size or a fontSize (1 to 1000). The contextual bar shows a size menu (the current name or number, a check on the current entry) when only stickies carry text; shapes keep S/M/L/XL. Docs: boards-parity rows, revision history and status line.

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 02:04:58 -05:00
bflatastic 12b293efe5 Merge main into #2200 2026-11-12 14:04:50 +07:00
bflatastic 23db6dbddb Merge main into #2192 2026-11-12 13:14:43 +07:00
bflatastic 39b7c54766 Merge main into #2200 2026-11-12 13:13:38 +07:00
bflatastic d656417b02 Merge main into #2192 2026-11-12 12:57:51 +07:00
bflatastic 0bfb944d4d Merge main into #2200 2026-11-12 12:56:45 +07:00
bflatastic b6b9b2995f Merge main into #2224 2026-11-12 12:56:12 +07:00
bflatastic 007f495e89 Merge main into #2192 2026-11-12 12:41:50 +07:00
bflatastic 50d2d63090 Merge main into #2200 2026-11-12 12:40:43 +07:00
bflatastic 77fcc564a3 Merge main into #2224 2026-11-12 12:40:10 +07:00
bflatastic 997e022ecf Merge main into #2121 2026-11-12 12:39:36 +07:00
bflatastic 80f4f36290 Merge main into #2192 2026-11-12 12:26:15 +07:00
bflatastic 8cb527bd21 Merge main into #2200 2026-11-12 12:25:09 +07:00
bflatastic 5549c4cc2e Merge main into #2224 2026-11-12 12:24:36 +07:00
bflatastic 09a128525a Merge main into #2241 2026-11-12 12:24:03 +07:00
bflatastic 7f0e94508d Merge main into #2121 2026-11-12 12:23:30 +07:00
bflatastic a6f98591d3 Merge main into #2147 2026-11-12 12:22:57 +07:00
bflatastic 405c0939ca Merge main into #2192 2026-11-12 12:10:34 +07:00
bflatastic 8e04a4ab10 Merge main into #2200 2026-11-12 12:09:15 +07:00
bflatastic 04c7856d1b Merge main into #2224 2026-11-12 12:08:42 +07:00
bflatastic 24e0cd5d7c Merge main into #2241 2026-11-12 12:08:09 +07:00
bflatastic 05c666add5 Merge main into #2096 2026-11-12 12:07:36 +07:00
bflatastic 2d5729e7ee Merge main into #2121 2026-11-12 12:06:52 +07:00
bflatastic b742d7464b Merge main into #2147 2026-11-12 12:05:53 +07:00
bflatastic 477b75a753 Merge main into #2224 2026-11-12 11:41:20 +07:00
bflatastic 3cd2b85819 Merge main into #2241 2026-11-12 11:40:47 +07:00
bflatastic e892788a62 Merge main into #2147 2026-11-12 11:39:02 +07:00
bflatastic 4e0a2e2a35 Merge main into #2200 2026-11-12 11:34:51 +07:00
bflatastic 30cf2c9200 Merge main into #2096 2026-11-12 11:34:17 +07:00
bflatastic ae6e6231c6 Merge main into #2121 2026-11-12 11:33:43 +07:00
bflatastic 7d860329a2 Merge main into #2244 2026-11-12 11:30:59 +07:00
bflatastic a7cb701705 Merge main into #2192 2026-11-12 11:29:18 +07:00
BFlat 9fd0bb6918 Merge pull request #2175 from TrevorBrown-dev/fix/table-resize-2172
M12: a board table's height change goes into its rows (#2172)
2026-11-12 11:25:27 +07:00
bflatastic 6bbd92856c Merge main into #2224 2026-11-12 11:24:51 +07:00
bflatastic 16bf97d538 Merge main into #2241 2026-11-12 11:24:18 +07:00
bflatastic 68b261a76b Merge main into #2147 2026-11-12 11:23:43 +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