bflatastic
24eec5d6bb
Merge main into #620
2026-10-17 13:59:02 +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
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
01daf92fc3
M1: show an import report after opening a file
...
Opening or importing a .fig or REST JSON file, or an SVG that has notes,
from the app (File > Open or Import, a recent file, a drop, a paste, the
system's open event) now shows an Import report window with the
document's name, its page, layer and image counts and the compatibility
notes the importer collected, instead of leaving them only in the command
result. Commands sent over the control channel or MCP never open it.
file.open and file.import return the counts as `summary`; ui.inspect
reports the open report as `importReport`. The fixed notes the importers
emit are translated (German and Spanish) and shown with a capital first
letter; other notes, such as SVG's, show as written. The report goes
away with its document. Escape or Close dismisses it.
2026-10-16 02:18:50 +02: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
Losminek and Claude Opus 5.5
49a2c643c6
i18n: add Czech (cs) UI catalog as a draft
...
Adds crates/ui-egui/locales/cs.toml with all 2165 entries (ui, commands,
menu), marked "draft — needs native review" and kept out of COMPLETE.
Plurals use one/other only; the other form is worded count-neutral so it
reads correctly for 2-4 as well. Lists cs in the pref.language help text,
adds a cs_CZ.UTF-8 detection test and updates the localization docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-15 07:01:27 +02:00