Commit Graph
2184 Commits
Author SHA1 Message Date
BFlat 9fdd226509 Merge pull request #664 from phonedu/feat/vue-code-target
M6: a Vue code target (single-file components)
2026-10-27 00:48:53 +07:00
BFlat b6fc2fd1ab Merge pull request #1152 from ricardoavilesfoto-collab/pr/fig-export-for-figma
.fig export: files Figma imports, with component set properties
2026-10-27 00:35:31 +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
bflatastic b3016f7089 Merge main into #1152 2026-10-27 00:14:07 +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 e8656be10e Merge pull request #824 from youngeuibae/page-api
web: window.figcraft, the control channel for the page
2026-10-27 00:13:31 +07:00
BFlat 5890784fe2 Merge pull request #1369 from mojtabajafarzadeh/fix/share-key-and-large-file-publish
follow-up: server publish timeout, key-to-server binding, and "Go to main component" in the context menu
2026-10-27 00:13:25 +07:00
BFlat 4b000eeddf Merge pull request #1371 from denisg0mes/crisp-magnified-images
M7: show a magnified image's pixels on the canvas
2026-10-27 00:13:20 +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
BFlat adea3a5550 Merge pull request #1053 from Silvertree2010/fix/h1274-title-case-leaves-a-word-lowerca
Capitalise title-case word after an opening apostrophe
2026-10-27 00:13:01 +07:00
BFlat 4392fe50d3 Merge pull request #1373 from Ridzzz0Alam/fix/1338-instance-swap-scroll
fix: Issue #1338 an instance-swap property's default menu scrolls
2026-10-27 00:11:16 +07:00
bflatastic 15c6834114 Merge main into #1384 2026-10-27 00:10:34 +07:00
BFlat 58718d9a09 Merge pull request #959 from Silvertree2010/fix/h1129-saving-a-document-with-a-nan-num
Save NaN or infinite numbers as 0 so the file reopens
2026-10-27 00:09:53 +07:00
BFlat 23963491b3 Merge pull request #1378 from muamerETS/fix/open-issues
M4: truncated text fills its last line, keeps truncating when resized, and auto height takes max lines (#1375, #1376, #1377)
2026-10-27 00:09:39 +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 0e8c1a0437 #1372: restore the blank line after the ROADMAP status line 2026-10-26 23:10:17 +07:00
bflatastic 1f1c8624c9 #824: window.figcraft is opt-in: installed only with a ?control query entry 2026-10-26 23:10:04 +07:00
bflatastic b87cc3ab47 #824: a request carries main's request gate (state), not the old cancelled flag 2026-10-26 23:06:38 +07:00
bflatastic 4c101fa549 #959: the test is named for what it checks: non-finite numbers are saved as zero 2026-10-26 23:05:53 +07:00
bflatastic 8186c4da3f #1369: Go to main component replaces Create component only when every selected layer is an instance 2026-10-26 23:05:40 +07:00
bflatastic 35108cf8dc #1369: the server key field shows a key only for the server it was typed for 2026-10-26 23:05:39 +07:00
bflatastic d3db02de9a #1378: max lines only while truncation is ENDING, with a REST test for auto height with truncation off 2026-10-26 23:04:38 +07:00
bflatastic 153250fedf Merge main into #1152 2026-10-26 23:00:18 +07:00
bflatastic 5a9b509074 Merge main into #1366 2026-10-26 22:57:27 +07:00
bflatastic e6e4e9ab8a Merge main into #1053 2026-10-26 22:57:25 +07:00
bflatastic b90749b377 Merge main into #1133 2026-10-26 22:57:23 +07:00
bflatastic d5e3e68158 Merge main into #1372 2026-10-26 22:57:22 +07:00
bflatastic b9fc8f5113 Merge main into #824 2026-10-26 22:57:20 +07:00
bflatastic debf300211 Merge main into #959 2026-10-26 22:57:18 +07:00
bflatastic 089b0d8a04 Merge main into #1373 2026-10-26 22:57:17 +07:00
bflatastic 1427221d61 Merge main into #1369 2026-10-26 22:57:15 +07:00
bflatastic 2458de74f2 Merge main into #1371 2026-10-26 22:57:14 +07:00
bflatastic 66e0e0c629 Merge main into #1384 2026-10-26 22:57:13 +07:00
bflatastic 372727c571 Merge main into #1378 2026-10-26 22:57:12 +07:00
bflatastic badf1f5904 Merge main into #1374 2026-10-26 22:57:11 +07:00
BFlat 6ea44e936f Merge pull request #966 from arksky1/codex/korean-support-20261021
Add Korean support
2026-10-26 22:38:50 +07:00
BFlat 90f9697a0e Merge pull request #1309 from denisg0mes/macos-font-manager-fonts
M7: find fonts that macOS font managers activate outside the font folders
2026-10-26 22:33:42 +07:00
bflatastic 420e704eee #966: one Templates entry, and the drop hint names .sketch, as main's catalogs do 2026-10-26 22:25:10 +07:00
bflatastic e4a78279c0 Merge main into #966 2026-10-26 22:20:32 +07:00
bflatastic f89f656d16 #1309: the font-manager path test runs on Unix only (its paths aren't absolute on Windows) 2026-10-26 22:19:46 +07:00
bflatastic 0ef1156f1f Merge main into #1309 2026-10-26 22:17:30 +07:00
Muamer MustaficandCursor 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 MustaficandCursor 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 MustaficandCursor 398c5404f5 M4: a truncated last line's char range covers the chars it takes from the next line (#1375)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-26 13:27:25 +01:00
Muamer MustaficandCursor 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