mirror of
https://github.com/storytold/figcraft.git
synced 2026-10-30 05:16:56 -06:00
main split `codegen.rs` into `dev/codegen.rs` (the shell: `CodeLang`, `code_for`, `Ctx`, the shared helpers) and one module per native target (`css`, `html`, `swift`, `compose`, `arkui`), and added Vue and ArkUI from other PRs. Flutter arrives as the tenth target, in its own module: `dev/codegen/flutter.rs`, wired from `codegen.rs` (`CodeLang::Flutter`, `dart` as an alias, rem left to the web targets), with `flutter_definition` / `flutter_type` / `flutter_default` beside main's `arkui_definition`. Every language list in the tree is a union of the two sides now: the `inspect.code` and `inspect.componentCode` specs, `codeConnect` (parse, import line, expression, template, path checks, messages), the playground CSS/HTML assets, the 21 UI catalogues (main added eight after this branch: bn, fi, it, ka, nl, pl, th, vi, each with Flutter in its own conjunction) and the docs. Flutter is an extra code target; nothing main gained is dropped. The reviewer's absolute-child bug (#1382-1403: a child that ignores its auto layout parent fell through to `Place::Flow`) is fixed in `flutter_children`: flow and absolute children are split, the absolute ones go in a `Stack` around the Row/Column at the parent's own box (so their offsets stay the parent's and the padding moves onto the line instead of insetting them), the line fills that Stack (`Positioned.fill`, so `Expanded` still has a bounded width), and only flow children now decide `CrossAxisAlignment.stretch` and `Expanded` — the absolute child no longer joins the line's spacing or loses its offsets. `flutter_lifts_a_child_that_ignores_its_auto_layout_parent_out_of_the_line` covers both kinds of child in one auto-layout frame: a 50×20 flow child and a 30×30 absolute one asking for `fill` on both axes, in a parent with 4 pt padding. It checks the offset, that the absolute child is out of the Row, that no `Expanded`/stretch comes from it, and that the padding insets the line only. ROADMAP and dev-mode-parity keep main's header (2026-10-26) and take this branch's history row in date order (2026-10-16). `cargo test`: engine 1391 pass, ui-egui 814 + 8 + 1 pass; fmt and clippy clean. The one engine failure, `board_tables_tests::a_double_click…`, fails the same way on a pristine `origin/main` here: this sandbox has no `craft-fonts` checkout, so its text doesn't wrap and the row can't grow.