bflatastic
3353d2d5d3
#647 : edit.pasteDesignLayers, named neutrally; design data capped at 256 MB before decoding, data accepts wrapped or unpadded base64
2026-10-17 14:34:57 +07:00
bflatastic
92714667f6
Merge main into #647
2026-10-17 14:27:33 +07:00
BFlat
40c744da10
M1: convert frames to sections and sections to frames ( #719 ) ( #721 )
...
Frames on the page or in a section convert to sections (object.convertToSection) and sections back to frames (object.convertToFrame), in place, one undo step each, from the canvas context menu; nested frames, instances, main components and sections holding sections are refused.
2026-10-17 13:03:49 +07:00
JimKnoxx and Claude Opus 5.5
ab10e37d43
M1: paste layers copied in Figma
...
Figma puts copied layers in the clipboard's HTML as a base64 .fig canvas
between (figma) markers. edit.pasteFromFigma reads it with the .fig import,
turns the layers into the session clipboard and pastes them as edit.paste
does (selected frame, in place or view centre), with the import's warnings.
The desktop app reads the clipboard's HTML (arboard) and Paste prefers a
Figma copy; the browser's paste event carries plain text only.
Tested on copies written by our own .fig export; not yet on real copies.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-16 08:20:49 +02:00
BFlat
9c2d61f6ae
Merge pull request #601 from Skyfuller1303/feat/drop-to-open
...
M7: drop files anywhere to open them
2026-10-16 07:41:02 +07:00
Skyfuller1303
1f6010e07c
M7: open dropped files that have no file on disk
...
A home-screen drop that carries only bytes queued file.open with data and name, which file.open rejected because it requires a path. file.open now also takes base64 data with a name and opens it as a new document without a save path.
2026-10-16 00:22:14 +02:00
NetterSilver and Claude Haiku 5.5
90d7521840
Reject negative or fractional index in file.close
...
Found while testing crates/engine/src/cmd/file.rs:1283
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-16 00:19:49 +02:00
bflatastic
891f0acb3c
Merge branch 'rb-560' into batch/t6
2026-10-16 02:36:56 +07:00
bflatastic
d60a27b675
Merge main into #554 : one id map for the copy, and #562 's flows, prototype and guides follow it
...
page.duplicate copies every layer with duplicate_all_into (navigation between
copied frames points at the copies) and builds the old-to-new list for flows
from that copy, instead of copying each layer separately.
2026-10-16 02:34:54 +07:00
bflatastic
db8bf6ba33
Merge main into #560 ; normalise the replacement where findReplace reads it
...
Main's case-insensitive replace loop (from an earlier PR) took the place of the
loop this change edited, so the replacement text is normalised once, where
the parameter is read.
2026-10-16 02:31:34 +07:00
bflatastic
c4c88900c4
Merge branch 'pr-563' into batch/t5
2026-10-16 01:36:10 +07:00
bflatastic
aadaa2d975
Merge branch 'pr-562' into batch/t5
2026-10-16 01:36:09 +07:00
bflatastic
580eee3572
Merge branch 'pr-561' into batch/t5
2026-10-16 01:36:08 +07:00
bflatastic
07130947f9
Merge branch 'pr-517' into batch/t5
2026-10-16 01:35:45 +07:00
bflatastic
16e26b69ff
Merge branch 'pr-516' into batch/t5
2026-10-16 01:35:44 +07:00
bflatastic
b1760ff098
Merge branch 'pr-497' into batch/t5
2026-10-16 01:35:30 +07:00
bflatastic
991cb604c2
Merge branch 'pr-493' into batch/t5
2026-10-16 01:35:23 +07:00
MarekSpodBiedry
843b00b22f
text: scripted text stores CRLF, CR, U+2028 and U+2029 as LF like the editor ( #427 )
2026-10-15 17:20:58 +02:00
MarekSpodBiedry
85d97a831c
Keep flows, prototype settings and guides when duplicating a page ( #417 )
2026-10-15 17:19:38 +02:00
MarekSpodBiedry
3062c6c4d6
Keep the selected guide selected when an earlier guide is removed ( #418 )
2026-10-15 17:18:38 +02:00
MarekSpodBiedry
fdf397d7dc
Refuse to create a variable collection with a name that is already taken ( #416 )
2026-10-15 17:17:44 +02:00
NetterSilver and Claude Haiku 5.5
a4f4869443
Point duplicated page navigation at the copied frames
...
Fixes #419
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 17:10:00 +02:00
bflatastic
7a9e9de38c
Merge #305 : M1: save files automatically ( #296 ) (@AganzeFelicite)
...
# Conflicts:
# crates/ui-egui/src/idle_tests.rs
# docs/mcp.md
2026-10-15 19:53:52 +07:00
bflatastic
5a10623414
Merge #469 : i18n: Czech (cs) UI catalog (draft) (@Losminek)
...
# Conflicts:
# contributors/people.toml
# crates/engine/src/cmd/view.rs
# docs/mcp.md
# docs/translating.md
2026-10-15 19:34:05 +07:00
bflatastic
f3e6b00e1a
Merge #310 : engine: refuse page.move for node ids that are not pages (@midasmatterhorn)
2026-10-15 19:33:02 +07:00
bflatastic
58e33f8fbb
Merge #361 : Make edit.findReplace replace case-insensitive matches (@Silvertree2010)
2026-10-15 19:32:55 +07:00
bflatastic
8de536960e
Merge main and the community batch into #469
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# docs/localization-parity.md
# docs/roadmap.md
2026-10-15 19:03:31 +07:00
bflatastic
68e130aae6
Merge main and the community batch into #310
...
# Conflicts:
# crates/engine/src/panels_behaviour_tests.rs
2026-10-15 18:56:41 +07:00
bflatastic
a95f95ae37
#361 : a replacement that only changes the case replaces every occurrence; the text's chars are collected once
2026-10-15 18:54:50 +07:00
bflatastic
6215cae877
Merge main and the community batch into #361
...
# Conflicts:
# crates/engine/src/cmd/edit.rs
2026-10-15 18:52:02 +07:00
NetterSilver and Claude Haiku 5.5
7d6a3ce137
Skip divider rows in Next page and Previous page
...
Fixes #413
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 11:49:53 +00:00
NetterSilver and Claude Haiku 5.5
ac7c91fc9c
Reject layer IDs as targets of page.rename, delete and setBackground
...
Fixes #414
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 13:44:17 +02:00
bflatastic
65c9352c5c
Merge main and the community batch into #257
...
# Conflicts:
# ROADMAP.md
# contributors/people.toml
# docs/localization-parity.md
# docs/roadmap.md
2026-10-15 18:13:34 +07:00
bflatastic
8616f3d1c5
#305 : save a file from a snapshot encoded elsewhere
...
FileSnapshot takes what saving writes, encodes it (thumbnail and all) on any
thread, and writes it back as of the snapshot: edits since stay unsaved, and
bytes from before another save never overwrite the newer file.
2026-10-15 18:11:52 +07:00
bflatastic
bebe509a25
Merge main and the community batch into #305
...
# Conflicts:
# ROADMAP.md
# docs/roadmap.md
2026-10-15 17:58:14 +07:00
bflatastic
3c52dad774
Merge #353 : engine: long digit strings no longer overflow object.opacityKeys (@midasmatterhorn)
2026-10-15 17:54:23 +07:00
bflatastic
5a57388b8d
Merge #344 : doc: name counters stop at u64::MAX instead of overflowing (@midasmatterhorn)
2026-10-15 17:54:21 +07:00
bflatastic
022821211f
Merge #358 : Replace every occurrence in edit.findReplace when replacement contains find (@Silvertree2010)
2026-10-15 17:53:06 +07:00
bflatastic
03716da731
Merge #384 : Reject negative or fractional index in effect.set, export.update and export.remove (@Silvertree2010)
2026-10-15 17:53:04 +07:00
bflatastic
2420791015
Merge #475 : Refuse negative or fractional indexes in page.select and doc.switch (@Silvertree2010)
2026-10-15 17:53:02 +07:00
bflatastic
8ae567c06b
Merge #254 : fix(engine): read the documented gradient shorthand on every route ( #252 ) (@pcastro93)
2026-10-15 17:53:00 +07:00
bflatastic
a25952dc60
Merge #284 : fix(format): exclusive unique staging files for atomic save/export (@notdezzi)
2026-10-15 17:52:58 +07:00
NetterSilver and Claude Haiku 5.5
8e56820168
Fix variable.update scopes: null not resetting to all supported
...
Fixes #443
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-15 10:14:49 +00:00
NetterSilver and Claude Haiku 5.5
dee13aefc5
Keep hidden export roots from enlarging the exported image
...
Fixes #447
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 11:48:39 +02:00
bflatastic
8c8c00fcba
Merge #283 : fix(engine): Alt-drag copies snap to their original; Cmd+D repeats the step ( #256 ) (@Nael-Nathanael)
2026-10-15 15:09:41 +07:00
bflatastic
f4a7b39731
Merge #444 : Fix Send to back leaving layers above siblings across frames (@Silvertree2010)
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-15 15:08:45 +07:00
bflatastic
f9b7dcf9d1
Merge #276 : fix(ui): disable alignment when the selection can't be aligned ( #256 ) (@Nael-Nathanael)
2026-10-15 15:08:11 +07:00
bflatastic
36c6cf6bd2
Merge #311 : fix(pages): inherit the current page background when adding pages (M1) (@tylerjenningsw)
...
# Conflicts:
# ROADMAP.md
2026-10-15 15:08:00 +07:00
bflatastic
4ac1d80fe8
Merge #386 : Outline stroke on every selected layer, not just the first (@Silvertree2010)
2026-10-15 15:07:19 +07:00
NetterSilver and Claude Haiku 5.5
7f2f8ee09a
Refuse negative or fractional indexes in page.select and doc.switch
...
Found while testing crates/engine/src/cmd/page.rs:50
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 08:02:06 +02:00