aiongg
13855cfabe
refactor(engine): move cmd/file.rs staging_write_tests to file/staging_write_tests.rs
2026-10-26 20:17:48 +00:00
aiongg
47c807f209
refactor(engine): move cmd/file.rs rest_import_tests to file/rest_import_tests.rs
2026-10-26 20:17:48 +00:00
aiongg
f0f1c2003d
refactor(engine): move cmd/file.rs tab_order_tests to file/tab_order_tests.rs
2026-10-26 20:17:48 +00:00
aiongg
1e9e0a4e75
refactor(engine): split session.rs into session/
2026-10-26 20:17:48 +00:00
aiongg
c4bd0dd542
refactor(engine): move Session state, prefs, errors and methods out of lib.rs
2026-10-26 20:17:48 +00:00
aiongg
0b9fcb7f4e
refactor(engine): split cmd/component.rs into component/
2026-10-26 20:17:48 +00:00
aiongg
cea90cf935
refactor(engine): split cmd/edit.rs into edit/
2026-10-26 20:17:48 +00:00
aiongg
688eeccc7a
refactor(engine): split boards/board.rs into board/
2026-10-26 20:17:48 +00:00
aiongg
ad4ba1ae9b
refactor(engine): split dev/codegen.rs into codegen/
2026-10-26 20:17:48 +00:00
aiongg
c631450b0c
refactor(engine): split sharing/live.rs into live/
2026-10-26 20:17:48 +00:00
aiongg
0bc49705bd
refactor(engine): split assets/components.rs into components/
2026-10-26 20:17:48 +00:00
aiongg
2e7790b58b
refactor(engine): split canvas/tools.rs into tools/
2026-10-26 20:17:48 +00:00
aiongg
e1b0ea2c1d
refactor(engine): move batch, params, inspect, file_access, doc_urls to automation/
2026-10-26 20:17:48 +00:00
aiongg
2cf15106e1
refactor(engine): move datafill, textfit, templates, synthetic, synthetic_ds to content/
2026-10-26 20:17:48 +00:00
aiongg
53b04cc784
refactor(engine): move plugins, plugin_directory, widgets to extensions/
2026-10-26 20:17:48 +00:00
aiongg
fa8e917ede
refactor(engine): move collab, live, online, branches, invite_links, background to sharing/
2026-10-26 20:17:48 +00:00
aiongg
9452ec1ada
refactor(engine): move annotations, code_connect, codegen, component_codegen, tailwind, devcompare, devinspect, dev_measurements, dev_resources to dev/
2026-10-26 20:17:48 +00:00
aiongg
e466f4a03a
refactor(engine): move components, library, library_server, library_swap, style_vars, playground, token_roles to assets/
2026-10-26 20:17:48 +00:00
aiongg
a587d964c9
refactor(engine): move selection_colors, selection_reorder, selection_spacing, rename to selection/
2026-10-26 20:17:47 +00:00
aiongg
094b01e501
refactor(engine): move tools, snap, distance, guides, drop, arc_handles, shape_handles, rotation_origin, al_keys, booleans, shapebuilder, textedit, textpreview, vectoredit to canvas/
2026-10-26 20:17:47 +00:00
aiongg
5d1b826f7a
refactor(engine): move board, board_table, board_templates to boards/
2026-10-26 20:17:47 +00:00
aiongg
a3179236f3
refactor(engine): move textedit.rs inline tests to crates/engine/src/textedit/tests.rs
2026-10-26 20:17:47 +00:00
aiongg
71524803d1
refactor(engine): move crates/engine/src/templates/mod.rs to crates/engine/src/templates.rs
2026-10-26 20:17:47 +00:00
aiongg
d853eee820
refactor(engine): move crates/engine/src/cmd/mod.rs to crates/engine/src/cmd.rs
2026-10-26 20:17:47 +00:00
BFlat
cac54fd552
Merge pull request #840 from StrajnarFilip/feat/vector-drawable-export
...
M6: export as Android Vector Drawable (XML)
2026-10-27 01:06:21 +07:00
BFlat
740cc2a2c6
Merge pull request #726 from ijashuzain/feat/variables-dart-export
...
M6: export variables as Dart constants for Flutter
2026-10-27 00:53:10 +07:00
BFlat
29c89f7d5b
Merge pull request #650 from JimKnoxx/overlay-anchor-trigger
...
M5: overlay positions relative to the layer that opens them
2026-10-27 00:49:52 +07:00
bflatastic
2aae395310
Merge main into #840
2026-10-27 00:31:32 +07:00
bflatastic
fd0f4d8b60
Merge main into #664
...
Main's class_name takes the node kind (#1372 ); Vue's slot names pass slot.
2026-10-27 00:30:42 +07:00
BFlat
83c7940293
Merge pull request #1384 from muamerETS/fix/1370-drag-unfilled-selection
...
M1: a selected unfilled shape drags over a filled layer stacked below it (#1370 )
2026-10-27 00:25:59 +07:00
BFlat
7cb369db8c
Merge pull request #1372 from lileeei/1235-transliterate-class-names
...
Transliterate non-ASCII layer names into code-export class names
2026-10-27 00:23:36 +07:00
BFlat
8583588839
Merge pull request #1366 from Silvertree2010/fix/h2716-px-to-rem-conversion-rounds-to-2
...
Keep full precision when converting px to rem in code export
2026-10-27 00:13:42 +07:00
BFlat
ad9abe7ce6
Merge pull request #1133 from g1obalworlds/fix-batch-rollback-closed-tabs
...
engine: restore tabs closed inside a failed command group
2026-10-27 00:13:37 +07:00
BFlat
dd5b5c0dc0
Merge pull request #1374 from Ridzzz0Alam/fix/1330-save-disk-changes
...
fix: Issue #1330 Save no longer overwrites changes another app made to the open file
2026-10-27 00:13:15 +07:00
bflatastic
632f2cef4b
Merge main into #840
...
# Conflicts:
# docs/roadmap.md
2026-10-27 00:12:27 +07:00
bflatastic
15c6834114
Merge main into #1384
2026-10-27 00:10:34 +07:00
bflatastic
56ed786e0e
#726 : reuse codegen's kotlin_color for Dart colours
2026-10-26 23:54:09 +07:00
bflatastic
5a5175cc7e
#726 : write Dart numbers at full precision
2026-10-26 23:54:08 +07:00
bflatastic
a683e51045
#726 : Dart names never shadow Dart types (classes and constants)
2026-10-26 23:54:08 +07:00
bflatastic
8653597c3d
#664 : Vue layer trees import connected components in <script setup>
2026-10-26 23:53:30 +07:00
bflatastic
4176400e09
Merge main into #664
...
# Conflicts:
# crates/engine/src/code_connect.rs
# crates/engine/src/codegen.rs
# crates/engine/src/component_codegen.rs
# crates/engine/src/lib.rs
# crates/engine/src/playground.rs
# crates/ui-egui/locales/bn.toml
# crates/ui-egui/locales/cs.toml
# crates/ui-egui/locales/de.toml
# crates/ui-egui/locales/en.toml
# crates/ui-egui/locales/es.toml
# crates/ui-egui/locales/fi.toml
# crates/ui-egui/locales/fr.toml
# crates/ui-egui/locales/id.toml
# crates/ui-egui/locales/ja.toml
# crates/ui-egui/locales/ka.toml
# crates/ui-egui/locales/ko.toml
# crates/ui-egui/locales/nl.toml
# crates/ui-egui/locales/pl.toml
# crates/ui-egui/locales/pt-BR.toml
# crates/ui-egui/locales/ru.toml
# crates/ui-egui/locales/sv.toml
# crates/ui-egui/locales/tr.toml
# crates/ui-egui/locales/zh-Hans.toml
# crates/ui-egui/src/dev_mode.rs
# docs/dev-mode-parity.md
# docs/gaps.md
# docs/mcp.md
# docs/target-app-parity.md
2026-10-26 23:52:51 +07:00
bflatastic
6145409859
Merge main into #726
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/variables_io.rs
# crates/engine/src/variables_io_tests.rs
# docs/components-parity.md
# docs/mcp.md
2026-10-26 23:28:15 +07:00
bflatastic
de826e14cf
Merge main into #650
...
# Conflicts:
# crates/ui-egui/locales/es.toml
# crates/ui-egui/locales/pl.toml
# docs/prototyping-parity.md
2026-10-26 23:24:22 +07:00
bflatastic
e469cc8135
Merge main into #840
...
# Conflicts:
# apps/figcraft-cli/src/files.rs
# apps/figcraft-cli/src/main.rs
# crates/engine/src/cmd/file.rs
# crates/engine/src/lib.rs
# crates/ui-egui/locales/en.toml
# crates/ui-egui/locales/es.toml
# crates/ui-egui/src/export_panel.rs
# crates/ui-egui/src/export_preview_tests.rs
# docs/file-format-parity.md
# docs/mcp.md
# docs/roadmap.md
# docs/ui-parity.md
2026-10-26 23:23:07 +07:00
bflatastic
5a9b509074
Merge main into #1366
2026-10-26 22:57:27 +07:00
bflatastic
b90749b377
Merge main into #1133
2026-10-26 22:57:23 +07:00
Muamer Mustafic and Cursor
45326b3b1a
M1: a layer in the gap between selected layers still takes the press ( #1370 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-26 14:13:36 +01:00
Muamer Mustafic and Cursor
2136ec20b1
M1: a selected unfilled shape drags over a filled layer stacked below it ( #1370 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-26 14:02:23 +01:00
Muamer Mustafic and Cursor
b6d3e002df
M4: truncated text fills its last line, keeps truncating when resized, and auto height takes max lines ( #1375 , #1376 , #1377 )
...
- The last line shown runs on into the word wrapped after it, so the ellipsis
fills the line ("Lorem consec…") instead of following the last whole word.
- An explicit height (node.set, transform.resize, a resize handle, fixed
sizing) on truncating text keeps it truncating (TextData::fix_size).
- Max lines on auto-height text hugs up to that many lines and ends in an
ellipsis; text.maxLines keeps auto height, Type settings show it as
truncating, .fig export writes textTruncation and import keeps auto height.
- node.get reports maxLines; text.fit measures every line.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-26 13:14:51 +01:00
Ridzzz0Alam
0d7d9ebd00
M1: stamp the file before reading it, so a change made during the read isn't missed ( #1330 )
...
Open and Revert to saved recorded the file's size and modification time after reading it: a change written in between would be stamped as already loaded and a later save would replace it. Taking the stamp first makes such a change refuse the next save instead (CodeRabbit on #1374 ).
2026-10-26 11:46:23 +01:00