From 91ae2b3cc936c5f6436d45fa951e892200d2a11a Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 1 Oct 2026 10:39:15 -0400 Subject: [PATCH] M0: engine, tools, egui UI, desktop app, CLI, sample document, docs Engine with command registry (~100 commands), tool hosting with one-step undo per gesture, InDesign-style egui frontend (app bar, Control panel, Tools panel, rulers, guides, frame edges, ports/threads, Properties/Pages/ Layers dock, panels, dialogs), JSON control channel, headless CLI renderer, generated sample magazine, README/AGENTS/ROADMAP/ASSETS. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 29 + ASSETS.md | 32 + CLAUDE.md | 29 + Cargo.lock | 3492 ++++++++++++++++++++++- Cargo.toml | 6 +- NOTICE | 13 + README.md | 100 +- ROADMAP.md | 35 + apps/designcraft-cli/Cargo.toml | 19 + apps/designcraft-cli/src/main.rs | 113 + apps/designcraft/Cargo.toml | 21 + apps/designcraft/src/control_server.rs | 62 + apps/designcraft/src/main.rs | 135 + crates/color/src/swatch.rs | 25 +- crates/compose/src/breaker.rs | 48 +- crates/compose/src/hyphen.rs | 17 +- crates/compose/src/lib.rs | 58 +- crates/compose/src/shape.rs | 17 +- crates/compose/src/tests.rs | 37 +- crates/doc/src/attrs.rs | 16 +- crates/doc/src/build.rs | 8 +- crates/doc/src/lib.rs | 2 +- crates/doc/src/page.rs | 8 +- crates/doc/src/story.rs | 9 +- crates/doc/src/tests.rs | 9 +- crates/engine/Cargo.toml | 22 + crates/engine/src/cmd/edit.rs | 163 ++ crates/engine/src/cmd/file.rs | 258 ++ crates/engine/src/cmd/inspect.rs | 95 + crates/engine/src/cmd/layout.rs | 260 ++ crates/engine/src/cmd/mod.rs | 176 ++ crates/engine/src/cmd/object.rs | 725 +++++ crates/engine/src/cmd/style.rs | 278 ++ crates/engine/src/cmd/text.rs | 469 +++ crates/engine/src/lib.rs | 252 ++ crates/engine/src/sample.rs | 355 +++ crates/engine/src/tests.rs | 106 + crates/engine/src/tooling.rs | 166 ++ crates/render/src/lib.rs | 57 +- crates/tools/src/catalog.rs | 22 +- crates/tools/src/frame.rs | 133 + crates/tools/src/layout.rs | 3 +- crates/tools/src/lib.rs | 27 +- crates/tools/src/nav.rs | 61 + crates/tools/src/select.rs | 304 ++ crates/tools/src/tests.rs | 58 + crates/tools/src/text.rs | 117 + crates/ui-egui/Cargo.toml | 23 + crates/ui-egui/src/canvas.rs | 831 ++++++ crates/ui-egui/src/chrome.rs | 527 ++++ crates/ui-egui/src/control.rs | 348 +++ crates/ui-egui/src/dialogs.rs | 269 ++ crates/ui-egui/src/dock.rs | 126 + crates/ui-egui/src/icons.rs | 451 +++ crates/ui-egui/src/lib.rs | 419 +++ crates/ui-egui/src/menus.rs | 538 ++++ crates/ui-egui/src/panels/layers.rs | 73 + crates/ui-egui/src/panels/mod.rs | 178 ++ crates/ui-egui/src/panels/pages.rs | 166 ++ crates/ui-egui/src/panels/properties.rs | 596 ++++ crates/ui-egui/src/panels/styles.rs | 64 + crates/ui-egui/src/panels/swatches.rs | 97 + crates/ui-egui/src/theme.rs | 243 ++ crates/ui-egui/src/toolbar.rs | 212 ++ crates/ui-egui/src/widgets.rs | 156 + docs/control-protocol.md | 29 + docs/images/page-2.png | Bin 0 -> 209249 bytes docs/images/page-3.png | Bin 0 -> 319474 bytes docs/images/page-cover.png | Bin 0 -> 251955 bytes docs/images/ui-spread.png | Bin 0 -> 555126 bytes docs/images/ui-typing.png | Bin 0 -> 170459 bytes xtask/src/assets.rs | 2 + xtask/src/layers.rs | 2 +- 73 files changed, 13710 insertions(+), 87 deletions(-) create mode 100644 AGENTS.md create mode 100644 ASSETS.md create mode 100644 CLAUDE.md create mode 100644 NOTICE create mode 100644 ROADMAP.md create mode 100644 apps/designcraft-cli/Cargo.toml create mode 100644 apps/designcraft-cli/src/main.rs create mode 100644 apps/designcraft/Cargo.toml create mode 100644 apps/designcraft/src/control_server.rs create mode 100644 apps/designcraft/src/main.rs create mode 100644 crates/engine/Cargo.toml create mode 100644 crates/engine/src/cmd/edit.rs create mode 100644 crates/engine/src/cmd/file.rs create mode 100644 crates/engine/src/cmd/inspect.rs create mode 100644 crates/engine/src/cmd/layout.rs create mode 100644 crates/engine/src/cmd/mod.rs create mode 100644 crates/engine/src/cmd/object.rs create mode 100644 crates/engine/src/cmd/style.rs create mode 100644 crates/engine/src/cmd/text.rs create mode 100644 crates/engine/src/lib.rs create mode 100644 crates/engine/src/sample.rs create mode 100644 crates/engine/src/tests.rs create mode 100644 crates/engine/src/tooling.rs create mode 100644 crates/tools/src/frame.rs create mode 100644 crates/tools/src/nav.rs create mode 100644 crates/tools/src/select.rs create mode 100644 crates/tools/src/tests.rs create mode 100644 crates/tools/src/text.rs create mode 100644 crates/ui-egui/Cargo.toml create mode 100644 crates/ui-egui/src/canvas.rs create mode 100644 crates/ui-egui/src/chrome.rs create mode 100644 crates/ui-egui/src/control.rs create mode 100644 crates/ui-egui/src/dialogs.rs create mode 100644 crates/ui-egui/src/dock.rs create mode 100644 crates/ui-egui/src/icons.rs create mode 100644 crates/ui-egui/src/lib.rs create mode 100644 crates/ui-egui/src/menus.rs create mode 100644 crates/ui-egui/src/panels/layers.rs create mode 100644 crates/ui-egui/src/panels/mod.rs create mode 100644 crates/ui-egui/src/panels/pages.rs create mode 100644 crates/ui-egui/src/panels/properties.rs create mode 100644 crates/ui-egui/src/panels/styles.rs create mode 100644 crates/ui-egui/src/panels/swatches.rs create mode 100644 crates/ui-egui/src/theme.rs create mode 100644 crates/ui-egui/src/toolbar.rs create mode 100644 crates/ui-egui/src/widgets.rs create mode 100644 docs/control-protocol.md create mode 100644 docs/images/page-2.png create mode 100644 docs/images/page-3.png create mode 100644 docs/images/page-cover.png create mode 100644 docs/images/ui-spread.png create mode 100644 docs/images/ui-typing.png diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..6856b808 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,29 @@ +# DesignCraft — instructions for agents + +DesignCraft is a clean-room, open-source, Rust-native page-layout application targeting Adobe InDesign parity — and superiority (speed, openness, agent control). It runs natively on macOS, Windows and Linux, and on the web via WASM. Siblings with the same conventions: `../drawcraft` (Illustrator-class), `../photocraft` (Photoshop), `../printcraft` (Acrobat), `../filmcraft` (Premiere), `../lightcraft` (Lightroom). + +## Start every session here +1. Read `plan/STATUS.md` (current milestone, next task), then the task in `plan/execution-plan.md` and the relevant `plan/architecture.md` section. Behaviour reference: `plan/indesign/*.md` (`11-observed-ui.md` holds measured observations of the running app). +2. Follow the autonomous operation protocol (`plan/execution-plan.md` §7). Don't stop to ask unless §7 lists the decision as the user's. + +`plan/` is gitignored (local only). + +## Non-negotiables +- **Clean-room.** InDesign is installed on the dev machine and may be *observed* black-box: run it, use its UI with synthetic documents, take screenshots (by window id) stored only under `plan/indesign/screenshots/` (never committed). Never read, disassemble or copy anything inside the InDesign bundle (names/listings only), never copy Adobe icons, artwork, presets or wording beyond feature names, never commit files produced by InDesign. Never copy GPL/AGPL/LGPL code (Scribus, LibreOffice, Ghostscript…). +- **Assets:** no Adobe iconography or images — ever. Every asset is original / OSI / CC0 / redistributable CC and has a row in `ASSETS.md` (`cargo xtask assets` enforces it). Prefer art generated in code. +- **Everything is a command.** User-visible behaviour = a command in `crates/engine/src/cmd/*` (id, label, menu path, shortcut, params doc, `enabled`, `run`) + tests. Tools emit commands (Begin/Preview/Commit). UI-only commands live in `crates/ui-egui/src/menus.rs` (`UI_COMMANDS`). The control channel and MCP reach all of them. +- **Layering** is enforced by `cargo xtask layers`. Nothing below L6 depends on egui/eframe/winit/rfd. The UI crate is swappable. +- **The UI is thin**: panels read engine state and act through `app.run(id, params)`. Colours come from `theme::Tokens`. +- **Rust only** (no handwritten JS/TS). **Never break wasm** (`cargo xtask wasm`). +- **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, assets, layers, wasm). One task id per commit (`M2.1: type tool caret navigation`). + +## Running and looking at the app +- `cargo run --release -p designcraft -- --sample --control 7979` (sample magazine + control channel). +- Drive it: JSON lines on `127.0.0.1:7979`, e.g. `{"id":1,"method":"engine.execute","params":{"command":"frame.create","params":{"rect":[36,36,300,200],"content":"text"}}}` then `{"id":2,"method":"ui.screenshot","params":{"path":"/tmp/shot.png"}}`. Methods: `crates/ui-egui/src/control.rs`, docs: `docs/control-protocol.md`. +- **For UI work, look at the result** (take `ui.screenshot`, read the PNG) and compare with `plan/indesign/02-ui-ux.md` / `11-observed-ui.md`. If no frame is presented (screen locked) use `ui.render` or `designcraft-cli run --sample --all-pages DIR`. +- Headless: `designcraft-cli run --sample --cmd 'frame.create={"rect":[0,0,100,100]}' --export out.png`. +- Shell gotcha: `mv`/`cp` are aliased interactive here — use `/bin/mv -f` / `/bin/cp -f`. +- Parallel agents: separate `CARGO_TARGET_DIR` per agent; edit only the crates you own; delete your target dir when done (disk). + +## Roadmap +`ROADMAP.md` (committed) tracks status, milestones and estimates. Update it whenever a milestone task lands. diff --git a/ASSETS.md b/ASSETS.md new file mode 100644 index 00000000..b9152602 --- /dev/null +++ b/ASSETS.md @@ -0,0 +1,32 @@ +# Asset attribution + +Every non-code asset in this repository (fonts, images, example art, presets) is listed here with its author, source and licence. `cargo xtask assets` (part of `cargo xtask ci`) fails if an asset file is missing from this table. + +**Policy (mandatory):** DesignCraft contains **no Adobe iconography, images, artwork, presets, swatch libraries or ICC profiles**. Every asset is original work by DesignCraft contributors or third-party material under an open licence (OSI open source, public domain / CC0, or Creative Commons that allows redistribution). Screenshots of Adobe software are never committed. + +Generated-in-code art is original and has no file to list: the UI icon set (`crates/ui-egui/src/icons.rs`), default swatches, and the sample magazine's imagery (`crates/engine/src/sample.rs`). + +| Asset | Author | Source | Licence | Notes | +|---|---|---|---|---| +| `assets/fonts/Inter-Medium.ttf` | Rasmus Andersson / The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (`assets/fonts/OFL-Inter.txt`) | Open-source typeface | +| `assets/fonts/Inter-Regular.ttf` | Rasmus Andersson / The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (`assets/fonts/OFL-Inter.txt`) | Open-source typeface | +| `assets/fonts/Inter-SemiBold.ttf` | Rasmus Andersson / The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (`assets/fonts/OFL-Inter.txt`) | Open-source typeface | +| `assets/fonts/JetBrainsMono-Regular.ttf` | The JetBrains Mono Project Authors | https://github.com/JetBrains/JetBrainsMono | OFL-1.1 (`assets/fonts/OFL-JetBrainsMono.txt`) | Open-source typeface | +| `assets/fonts/OFL-Inter.txt` | (licence text) | upstream project | — | | +| `assets/fonts/OFL-JetBrainsMono.txt` | (licence text) | upstream project | — | | +| `assets/fonts/OFL-SourceSans3.txt` | (licence text) | upstream project | — | | +| `assets/fonts/OFL-SourceSerif4.txt` | (licence text) | upstream project | — | | +| `assets/fonts/SourceSans3-Bold.ttf` | Paul D. Hunt / Adobe (released as open source) | https://github.com/adobe-fonts/source-sans | OFL-1.1 (`assets/fonts/OFL-SourceSans3.txt`) | Open-source typeface | +| `assets/fonts/SourceSans3-It.ttf` | Paul D. Hunt / Adobe (released as open source) | https://github.com/adobe-fonts/source-sans | OFL-1.1 (`assets/fonts/OFL-SourceSans3.txt`) | Open-source typeface | +| `assets/fonts/SourceSans3-Regular.ttf` | Paul D. Hunt / Adobe (released as open source) | https://github.com/adobe-fonts/source-sans | OFL-1.1 (`assets/fonts/OFL-SourceSans3.txt`) | Open-source typeface | +| `assets/fonts/SourceSans3-Semibold.ttf` | Paul D. Hunt / Adobe (released as open source) | https://github.com/adobe-fonts/source-sans | OFL-1.1 (`assets/fonts/OFL-SourceSans3.txt`) | Open-source typeface | +| `assets/fonts/SourceSerif4-Bold.ttf` | Frank Grießhammer / Adobe (released as open source) | https://github.com/adobe-fonts/source-serif | OFL-1.1 (`assets/fonts/OFL-SourceSerif4.txt`) | Open-source typeface | +| `assets/fonts/SourceSerif4-BoldIt.ttf` | Frank Grießhammer / Adobe (released as open source) | https://github.com/adobe-fonts/source-serif | OFL-1.1 (`assets/fonts/OFL-SourceSerif4.txt`) | Open-source typeface | +| `assets/fonts/SourceSerif4-It.ttf` | Frank Grießhammer / Adobe (released as open source) | https://github.com/adobe-fonts/source-serif | OFL-1.1 (`assets/fonts/OFL-SourceSerif4.txt`) | Open-source typeface | +| `assets/fonts/SourceSerif4-Regular.ttf` | Frank Grießhammer / Adobe (released as open source) | https://github.com/adobe-fonts/source-serif | OFL-1.1 (`assets/fonts/OFL-SourceSerif4.txt`) | Open-source typeface | +| `assets/fonts/SourceSerif4-Semibold.ttf` | Frank Grießhammer / Adobe (released as open source) | https://github.com/adobe-fonts/source-serif | OFL-1.1 (`assets/fonts/OFL-SourceSerif4.txt`) | Open-source typeface | +| `docs/images/page-2.png` | DesignCraft contributors | screenshot/render of DesignCraft itself (sample document generated in code) | MIT OR Apache-2.0 | Original; no Adobe UI | +| `docs/images/page-3.png` | DesignCraft contributors | screenshot/render of DesignCraft itself (sample document generated in code) | MIT OR Apache-2.0 | Original; no Adobe UI | +| `docs/images/page-cover.png` | DesignCraft contributors | screenshot/render of DesignCraft itself (sample document generated in code) | MIT OR Apache-2.0 | Original; no Adobe UI | +| `docs/images/ui-spread.png` | DesignCraft contributors | screenshot/render of DesignCraft itself (sample document generated in code) | MIT OR Apache-2.0 | Original; no Adobe UI | +| `docs/images/ui-typing.png` | DesignCraft contributors | screenshot/render of DesignCraft itself (sample document generated in code) | MIT OR Apache-2.0 | Original; no Adobe UI | diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..6856b808 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,29 @@ +# DesignCraft — instructions for agents + +DesignCraft is a clean-room, open-source, Rust-native page-layout application targeting Adobe InDesign parity — and superiority (speed, openness, agent control). It runs natively on macOS, Windows and Linux, and on the web via WASM. Siblings with the same conventions: `../drawcraft` (Illustrator-class), `../photocraft` (Photoshop), `../printcraft` (Acrobat), `../filmcraft` (Premiere), `../lightcraft` (Lightroom). + +## Start every session here +1. Read `plan/STATUS.md` (current milestone, next task), then the task in `plan/execution-plan.md` and the relevant `plan/architecture.md` section. Behaviour reference: `plan/indesign/*.md` (`11-observed-ui.md` holds measured observations of the running app). +2. Follow the autonomous operation protocol (`plan/execution-plan.md` §7). Don't stop to ask unless §7 lists the decision as the user's. + +`plan/` is gitignored (local only). + +## Non-negotiables +- **Clean-room.** InDesign is installed on the dev machine and may be *observed* black-box: run it, use its UI with synthetic documents, take screenshots (by window id) stored only under `plan/indesign/screenshots/` (never committed). Never read, disassemble or copy anything inside the InDesign bundle (names/listings only), never copy Adobe icons, artwork, presets or wording beyond feature names, never commit files produced by InDesign. Never copy GPL/AGPL/LGPL code (Scribus, LibreOffice, Ghostscript…). +- **Assets:** no Adobe iconography or images — ever. Every asset is original / OSI / CC0 / redistributable CC and has a row in `ASSETS.md` (`cargo xtask assets` enforces it). Prefer art generated in code. +- **Everything is a command.** User-visible behaviour = a command in `crates/engine/src/cmd/*` (id, label, menu path, shortcut, params doc, `enabled`, `run`) + tests. Tools emit commands (Begin/Preview/Commit). UI-only commands live in `crates/ui-egui/src/menus.rs` (`UI_COMMANDS`). The control channel and MCP reach all of them. +- **Layering** is enforced by `cargo xtask layers`. Nothing below L6 depends on egui/eframe/winit/rfd. The UI crate is swappable. +- **The UI is thin**: panels read engine state and act through `app.run(id, params)`. Colours come from `theme::Tokens`. +- **Rust only** (no handwritten JS/TS). **Never break wasm** (`cargo xtask wasm`). +- **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, assets, layers, wasm). One task id per commit (`M2.1: type tool caret navigation`). + +## Running and looking at the app +- `cargo run --release -p designcraft -- --sample --control 7979` (sample magazine + control channel). +- Drive it: JSON lines on `127.0.0.1:7979`, e.g. `{"id":1,"method":"engine.execute","params":{"command":"frame.create","params":{"rect":[36,36,300,200],"content":"text"}}}` then `{"id":2,"method":"ui.screenshot","params":{"path":"/tmp/shot.png"}}`. Methods: `crates/ui-egui/src/control.rs`, docs: `docs/control-protocol.md`. +- **For UI work, look at the result** (take `ui.screenshot`, read the PNG) and compare with `plan/indesign/02-ui-ux.md` / `11-observed-ui.md`. If no frame is presented (screen locked) use `ui.render` or `designcraft-cli run --sample --all-pages DIR`. +- Headless: `designcraft-cli run --sample --cmd 'frame.create={"rect":[0,0,100,100]}' --export out.png`. +- Shell gotcha: `mv`/`cp` are aliased interactive here — use `/bin/mv -f` / `/bin/cp -f`. +- Parallel agents: separate `CARGO_TARGET_DIR` per agent; edit only the crates you own; delete your target dir when done (disk). + +## Roadmap +`ROADMAP.md` (committed) tracks status, milestones and estimates. Update it whenever a milestone task lands. diff --git a/Cargo.lock b/Cargo.lock index 6c42baa6..d373ce94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,18 +2,393 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "accesskit" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b7f7f85a7e5f68090000ed7622545829afd484d210358702ae4cb97dd0c320" +dependencies = [ + "uuid", +] + +[[package]] +name = "accesskit_atspi_common" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8c61bee90b42a772d39d06a740207dc71a4e780004ace1db8d99fb1baaa954" +dependencies = [ + "accesskit", + "accesskit_consumer 0.36.0", + "atspi-common", + "phf", + "serde", + "zvariant", +] + +[[package]] +name = "accesskit_consumer" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53cf47daed85312e763fbf85ceca136e0d7abc68e0a7e12abe11f48172bc3b10" +dependencies = [ + "accesskit", + "hashbrown 0.16.1", +] + +[[package]] +name = "accesskit_consumer" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e0d7e25d06f4dc21d1774d67146e9e80d6789216cbd4d1e88185b0095dba60" +dependencies = [ + "accesskit", + "hashbrown 0.16.1", +] + +[[package]] +name = "accesskit_consumer" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" +dependencies = [ + "accesskit", + "hashbrown 0.16.1", +] + +[[package]] +name = "accesskit_macos" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" +dependencies = [ + "accesskit", + "accesskit_consumer 0.38.0", + "hashbrown 0.16.1", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "accesskit_unix" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b016ca8db0ea0ea2ceff29a9d6240391492d960716aa471967c00e8cc8cb197c" +dependencies = [ + "accesskit", + "accesskit_atspi_common", + "async-channel", + "async-executor", + "async-task", + "atspi", + "futures-lite", + "futures-util", + "serde", + "zbus", +] + +[[package]] +name = "accesskit_windows" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff7009f1a532e917d66970a1e80c965140c6cfbbabbdde3d64e5431e6c78e21" +dependencies = [ + "accesskit", + "accesskit_consumer 0.35.0", + "hashbrown 0.16.1", + "static_assertions", + "windows", + "windows-core", +] + +[[package]] +name = "accesskit_winit" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe9a94394896352cc4660ca2288bd4ef883d83238853c038b44070c8f134313" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "raw-window-handle", + "winit", +] + [[package]] name = "adler2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-activity" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" +dependencies = [ + "android-properties", + "bitflags 2.13.2", + "cc", + "jni", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", + "thiserror 2.0.21", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "arboard" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" +dependencies = [ + "clipboard-win", + "image", + "log", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "parking_lot", + "percent-encoding", + "windows-sys 0.60.2", + "x11rb", +] + [[package]] name = "arrayvec" version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "ash" +version = "0.38.0+1.3.281" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" +dependencies = [ + "libloading", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 1.1.5", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix 1.1.5", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 1.1.5", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "atspi" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77886257be21c9cd89a4ae7e64860c6f0eefca799bb79127913052bd0eefb3d" +dependencies = [ + "atspi-common", + "atspi-proxies", +] + +[[package]] +name = "atspi-common" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c5617155740c98003016429ad13fe43ce7a77b007479350a9f8bf95a29f63d" +dependencies = [ + "enumflags2", + "serde", + "static_assertions", + "zbus", + "zbus-lockstep", + "zbus-lockstep-macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "atspi-proxies" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2230e48787ed3eb4088996eab66a32ca20c0b67bbd4fd6cdfe79f04f1f04c9fc" +dependencies = [ + "atspi-common", + "serde", + "zbus", +] + [[package]] name = "autocfg" version = "1.5.1" @@ -26,7 +401,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", +] + +[[package]] +name = "bit-set" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2f926cc3060f09db9ebc5b52823d85268d24bb917e472c0c4bea35780a7d" +dependencies = [ + "bit-vec 0.9.1", ] [[package]] @@ -35,12 +419,61 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2 0.6.4", +] + +[[package]] +name = "blocking" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + [[package]] name = "bytemuck" version = "1.25.2" @@ -67,12 +500,116 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "calloop" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +dependencies = [ + "bitflags 2.13.2", + "log", + "polling", + "rustix 0.38.44", + "slab", + "thiserror 1.0.69", +] + +[[package]] +name = "calloop" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" +dependencies = [ + "bitflags 2.13.2", + "polling", + "rustix 1.1.5", + "slab", + "tracing", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop 0.13.0", + "rustix 0.38.44", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" +dependencies = [ + "calloop 0.14.4", + "rustix 1.1.5", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cc" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f360145194ee8e21db5ee7f3fcd4fe52210864c75c985dae33218202c8bbe040" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "clipboard-win" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +dependencies = [ + "error-code", +] + +[[package]] +name = "codespan-reporting" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" +dependencies = [ + "serde", + "termcolor", + "unicode-width", +] + [[package]] name = "color" version = "0.3.3" @@ -88,6 +625,65 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "combine" +version = "4.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + [[package]] name = "crc32fast" version = "1.5.2" @@ -137,6 +733,35 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "cursor-icon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" + +[[package]] +name = "designcraft" +version = "0.1.0" +dependencies = [ + "designcraft-engine", + "designcraft-ui-egui", + "eframe", + "egui", + "log", + "rfd", + "serde_json", +] + +[[package]] +name = "designcraft-cli" +version = "0.1.0" +dependencies = [ + "designcraft-doc", + "designcraft-engine", + "designcraft-render", + "serde_json", +] + [[package]] name = "designcraft-color" version = "0.1.0" @@ -146,7 +771,7 @@ dependencies = [ "proptest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.21", ] [[package]] @@ -170,14 +795,31 @@ dependencies = [ "proptest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.21", +] + +[[package]] +name = "designcraft-engine" +version = "0.1.0" +dependencies = [ + "designcraft-color", + "designcraft-compose", + "designcraft-doc", + "designcraft-fonts", + "designcraft-geom", + "designcraft-render", + "designcraft-tools", + "log", + "serde", + "serde_json", + "thiserror 2.0.21", ] [[package]] name = "designcraft-fonts" version = "0.1.0" dependencies = [ - "harfrust", + "harfrust 0.13.3", "kurbo", "log", "skrifa 0.47.0", @@ -191,7 +833,7 @@ dependencies = [ "proptest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.21", ] [[package]] @@ -205,8 +847,206 @@ dependencies = [ "designcraft-geom", "image", "log", - "vello_common", - "vello_cpu", + "vello_common 0.2.0", + "vello_cpu 0.2.0", +] + +[[package]] +name = "designcraft-tools" +version = "0.1.0" +dependencies = [ + "designcraft-color", + "designcraft-compose", + "designcraft-doc", + "designcraft-geom", + "serde", + "serde_json", +] + +[[package]] +name = "designcraft-ui-egui" +version = "0.1.0" +dependencies = [ + "designcraft-color", + "designcraft-compose", + "designcraft-doc", + "designcraft-engine", + "designcraft-fonts", + "designcraft-geom", + "designcraft-render", + "designcraft-tools", + "egui", + "log", + "serde", + "serde_json", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.2", + "block2 0.6.2", + "libc", + "objc2 0.6.4", +] + +[[package]] +name = "dlib" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" +dependencies = [ + "libloading", +] + +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" + +[[package]] +name = "ecolor" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34" +dependencies = [ + "bytemuck", + "emath", +] + +[[package]] +name = "eframe" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ad41fac6e3149abb4866e93df37dbd33baa95db525c3368c944584e95a5dc2" +dependencies = [ + "ahash", + "bytemuck", + "document-features", + "egui", + "egui-wgpu", + "egui-winit", + "egui_glow", + "glutin", + "glutin-winit", + "image", + "js-sys", + "log", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-foundation 0.3.2", + "parking_lot", + "percent-encoding", + "pollster 1.0.1", + "profiling", + "raw-window-handle", + "static_assertions", + "wasm-bindgen", + "web-sys", + "web-time", + "wgpu", + "windows-sys 0.61.2", + "winit", +] + +[[package]] +name = "egui" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc938cc27cd911415e1e4d151bc56ff9df063d8db081374e87aeb805ea74b2ba" +dependencies = [ + "accesskit", + "ahash", + "bitflags 2.13.2", + "emath", + "epaint", + "itertools", + "log", + "nohash-hasher", + "profiling", + "smallvec", + "unicode-segmentation", + "web-sys", +] + +[[package]] +name = "egui-wgpu" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cef1f6d1bba40b09a4d0d62cb822b81030922cfbf65c5373398c3a3caafc5bd" +dependencies = [ + "ahash", + "bytemuck", + "document-features", + "egui", + "epaint", + "log", + "profiling", + "thiserror 2.0.21", + "type-map", + "web-time", + "wgpu", + "winit", +] + +[[package]] +name = "egui-winit" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98466000559d66ba4db786a30448b01483946add4188e7f10f522a27b4fb89cc" +dependencies = [ + "accesskit_winit", + "arboard", + "bytemuck", + "egui", + "log", + "objc2 0.6.4", + "objc2-foundation 0.3.2", + "objc2-ui-kit 0.3.2", + "profiling", + "raw-window-handle", + "smithay-clipboard", + "web-time", + "winit", +] + +[[package]] +name = "egui_glow" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "606ed4167daf341e5753d703285c4c1d562324b2c07aa8f405cd7d066fe58f3b" +dependencies = [ + "bytemuck", + "egui", + "glow", + "log", + "profiling", + "winit", ] [[package]] @@ -215,6 +1055,79 @@ version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" +[[package]] +name = "emath" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "epaint" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0ec0308dc23130fc1a7d4623a8534c2ed069c6dc84e258ee4f3de99615aa1a3" +dependencies = [ + "ahash", + "bytemuck", + "ecolor", + "emath", + "epaint_default_fonts", + "font-types", + "harfrust 0.12.0", + "log", + "nohash-hasher", + "parking_lot", + "profiling", + "self_cell", + "skrifa 0.44.0", + "smallvec", + "unicode-general-category", + "unicode-segmentation", + "vello_cpu 0.1.0", +] + +[[package]] +name = "epaint_default_fonts" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773fa9c96dd0dbef887e39d0ed6177f141cce4d68e6041df77570aa3702dfa13" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + [[package]] name = "errno" version = "0.3.14" @@ -222,9 +1135,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", ] +[[package]] +name = "error-code" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" + [[package]] name = "euclid" version = "0.22.14" @@ -234,6 +1153,26 @@ dependencies = [ "num-traits", ] +[[package]] +name = "event-listener" +version = "5.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" +dependencies = [ + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "fastrand" version = "2.5.0" @@ -261,6 +1200,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693" +[[package]] +name = "find-msvc-tools" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" + [[package]] name = "flate2" version = "1.1.10" @@ -293,6 +1238,98 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" + +[[package]] +name = "futures-io" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "futures-task" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" + +[[package]] +name = "futures-util" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix 1.1.5", + "windows-link", +] + [[package]] name = "getrandom" version = "0.3.4" @@ -326,6 +1363,33 @@ dependencies = [ "weezl", ] +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glifo" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed4a1bb24121291d27230c1b1b44e07d6a9b28cefdb32fe1581dfb84e14f940a" +dependencies = [ + "bytemuck", + "foldhash", + "hashbrown 0.17.1", + "log", + "peniko", + "skrifa 0.44.0", + "smallvec", + "vello_common 0.1.0", +] + [[package]] name = "glifo" version = "0.3.0" @@ -334,13 +1398,105 @@ checksum = "282a26c1e23de04bdab3e34a21b6f877a479b96737792516b9b8b8f69b6661be" dependencies = [ "bytemuck", "foldhash", - "hashbrown", + "hashbrown 0.17.1", "log", "peniko", "png", "skrifa 0.44.0", "smallvec", - "vello_common", + "vello_common 0.2.0", +] + +[[package]] +name = "glow" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29038e1c483364cc6bb3cf78feee1816002e127c331a1eec55a4d202b9e1adb5" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12124de845cacfebedff80e877bb37b5b75c34c5a4c89e47e1cdd67fb6041325" +dependencies = [ + "bitflags 2.13.2", + "cfg_aliases", + "cgl", + "dispatch2", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "libloading", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "once_cell", + "raw-window-handle", + "wayland-sys", + "windows-sys 0.52.0", + "x11-dl", +] + +[[package]] +name = "glutin-winit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" +dependencies = [ + "cfg_aliases", + "glutin", + "raw-window-handle", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" +dependencies = [ + "gl_generator", + "windows-sys 0.52.0", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" +dependencies = [ + "gl_generator", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "gpu-allocator" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" +dependencies = [ + "ash", + "hashbrown 0.16.1", + "log", + "presser", + "thiserror 2.0.21", + "windows", ] [[package]] @@ -360,22 +1516,46 @@ checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "num-traits", "zerocopy", ] +[[package]] +name = "harfrust" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9" +dependencies = [ + "bitflags 2.13.2", + "bytemuck", + "read-fonts 0.41.0", + "smallvec", +] + [[package]] name = "harfrust" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "948d0741125ba89cd3e1c23e5642415b6ade7e1d29d67ba25fb925b533e989d6" dependencies = [ - "bitflags", + "bitflags 2.13.2", "bytemuck", "once_cell", "read-fonts 0.43.3", "smallvec", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "hashbrown" version = "0.17.1" @@ -385,6 +1565,18 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hermit-abi" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "image" version = "0.25.10" @@ -414,12 +1606,127 @@ dependencies = [ "quick-error 2.0.1", ] +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.21", + "walkdir", + "windows-link", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.119", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom 0.4.3", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" +dependencies = [ + "libc", + "libloading", + "pkg-config", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + [[package]] name = "kurbo" version = "0.13.1" @@ -439,18 +1746,67 @@ version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "libredox" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61ff90caf6077a803a240f62fdbe88645a890bbca49ef8174c3cb0404362171d" +dependencies = [ + "bitflags 2.13.2", + "libc", + "plain", + "redox_syscall 0.9.4", +] + [[package]] name = "linebender_resource_handle" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + [[package]] name = "linux-raw-sys" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.34" @@ -463,6 +1819,24 @@ version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" +[[package]] +name = "memmap2" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -493,6 +1867,80 @@ dependencies = [ "pxfm", ] +[[package]] +name = "naga" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" +dependencies = [ + "arrayvec", + "bit-set 0.10.0", + "bitflags 2.13.2", + "cfg-if", + "cfg_aliases", + "codespan-reporting", + "half", + "hashbrown 0.17.1", + "indexmap", + "libm", + "log", + "naga-types", + "num-traits", + "once_cell", + "rustc-hash 1.1.0", + "spirv", + "thiserror 2.0.21", + "unicode-ident", +] + +[[package]] +name = "naga-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" +dependencies = [ + "hashbrown 0.17.1", + "indexmap", + "rustc-hash 1.1.0", + "thiserror 2.0.21", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.2", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "num-traits" version = "0.2.19" @@ -500,6 +1948,340 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "libc", + "objc2 0.5.2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.2", + "block2 0.6.2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.2", + "dispatch2", + "objc2 0.6.4", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.13.2", + "dispatch2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal 0.2.2", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-contacts", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "dispatch", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.2", + "block2 0.6.2", + "objc2 0.6.4", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.2", + "objc2 0.6.4", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-metal" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" +dependencies = [ + "bitflags 2.13.2", + "block2 0.6.2", + "objc2 0.6.4", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "objc2-metal 0.3.2", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation 0.2.2", + "objc2-link-presentation", + "objc2-quartz-core 0.2.2", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-foundation 0.3.2", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.13.2", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation 0.2.2", ] [[package]] @@ -508,6 +2290,16 @@ version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" +[[package]] +name = "orbclient" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" +dependencies = [ + "libc", + "libredox", +] + [[package]] name = "ordered-channel" version = "1.2.0" @@ -517,6 +2309,54 @@ dependencies = [ "crossbeam-channel", ] +[[package]] +name = "ordered-float" +version = "5.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c9e0d9b23589f26070720bac724174bfec1083e82f7854cdd0267518343c0" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.18", + "smallvec", + "windows-link", +] + [[package]] name = "peniko" version = "0.6.1" @@ -530,19 +2370,143 @@ dependencies = [ "smallvec", ] +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "png" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags", + "bitflags 2.13.2", "crc32fast", "fdeflate", "flate2", "miniz_oxide 0.8.9", ] +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 1.1.5", + "windows-sys 0.61.2", +] + +[[package]] +name = "pollster" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" + +[[package]] +name = "pollster" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6355899e1c9462875b6757c79f3caa011a1fdae12bbb1a2e72dd1f234f8336" + [[package]] name = "polycool" version = "0.4.0" @@ -552,6 +2516,21 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -561,6 +2540,21 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "presser" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + [[package]] name = "proc-macro2" version = "1.0.107" @@ -570,15 +2564,21 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" + [[package]] name = "proptest" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ - "bit-set", - "bit-vec", - "bitflags", + "bit-set 0.8.0", + "bit-vec 0.8.0", + "bitflags 2.13.2", "num-traits", "rand", "rand_chacha", @@ -607,6 +2607,15 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.47" @@ -666,6 +2675,30 @@ dependencies = [ "rand_core", ] +[[package]] +name = "range-alloc" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08" + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "raw-window-metal" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40d213455a5f1dc59214213c7330e074ddf8114c9a42411eb890c767357ce135" +dependencies = [ + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", +] + [[package]] name = "rayon" version = "1.12.0" @@ -719,25 +2752,125 @@ dependencies = [ "once_cell", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.2", +] + +[[package]] +name = "redox_syscall" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" +dependencies = [ + "bitflags 2.13.2", +] + [[package]] name = "regex-syntax" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" +[[package]] +name = "renderdoc-sys" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" + +[[package]] +name = "rfd" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20dafead71c16a34e1ff357ddefc8afc11e7d51d6d2b9fbd07eaa48e3e540220" +dependencies = [ + "block2 0.6.2", + "dispatch2", + "js-sys", + "libc", + "log", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "percent-encoding", + "pollster 0.4.0", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.13.2", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + [[package]] name = "rustix" version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ - "bitflags", + "bitflags 2.13.2", "errno", "libc", - "linux-raw-sys", - "windows-sys", + "linux-raw-sys 0.12.1", + "windows-sys 0.61.2", ] +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + [[package]] name = "rusty-fork" version = "0.3.1" @@ -750,6 +2883,39 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "self_cell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab42ca02749e120097e328d91d415325bdf43b1c72c4c8badf37375fe40a813" + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + [[package]] name = "serde" version = "1.0.229" @@ -793,12 +2959,61 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde_repr" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.6", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + [[package]] name = "simd-adler32" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" + [[package]] name = "skrifa" version = "0.44.0" @@ -819,6 +3034,21 @@ dependencies = [ "read-fonts 0.44.0", ] +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slotmap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "1.16.2" @@ -828,6 +3058,93 @@ dependencies = [ "serde", ] +[[package]] +name = "smithay-client-toolkit" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +dependencies = [ + "bitflags 2.13.2", + "calloop 0.13.0", + "calloop-wayland-source 0.3.0", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 0.38.44", + "thiserror 1.0.69", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" +dependencies = [ + "bitflags 2.13.2", + "calloop 0.14.4", + "calloop-wayland-source 0.4.1", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 1.1.5", + "thiserror 2.0.21", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-experimental", + "wayland-protocols-misc", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-clipboard" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71704c03f739f7745053bde45fa203a46c58d25bc5c4efba1d9a60e9dba81226" +dependencies = [ + "libc", + "smithay-client-toolkit 0.20.0", + "wayland-backend", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "spirv" +version = "0.4.0+sdk-1.4.341.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" +dependencies = [ + "bitflags 2.13.2", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "syn" version = "2.0.119" @@ -859,8 +3176,26 @@ dependencies = [ "fastrand", "getrandom 0.4.3", "once_cell", - "rustix", - "windows-sys", + "rustix 1.1.5", + "windows-sys 0.61.2", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", ] [[package]] @@ -869,7 +3204,18 @@ version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.21", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", ] [[package]] @@ -906,18 +3252,153 @@ dependencies = [ "zune-jpeg", ] +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "pin-project-lite", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.15+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "type-map" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90" +dependencies = [ + "rustc-hash 2.1.3", +] + +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + [[package]] name = "unarray" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicode-general-category" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f" + [[package]] name = "unicode-ident" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "vello_common" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e9aed918117e8152c9eddfd8362d73c465c23f26c44786aa331707b8a64fa2" +dependencies = [ + "bytemuck", + "fearless_simd", + "guillotiere", + "log", + "peniko", + "smallvec", + "thiserror 2.0.21", +] + [[package]] name = "vello_common" version = "0.2.0" @@ -931,7 +3412,19 @@ dependencies = [ "peniko", "png", "smallvec", - "thiserror", + "thiserror 2.0.21", +] + +[[package]] +name = "vello_cpu" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac7349e1f55f6b801c7c277958df4ea53e7f20f21e8014910ad888b2ecda93ea" +dependencies = [ + "bytemuck", + "glifo 0.2.0", + "hashbrown 0.17.1", + "vello_common 0.1.0", ] [[package]] @@ -942,15 +3435,21 @@ checksum = "ace506ca414548966fcf3c283be94eb1cad8254de488791ee698bf438b0890a9" dependencies = [ "bytemuck", "crossbeam-channel", - "glifo", - "hashbrown", + "glifo 0.3.0", + "hashbrown 0.17.1", "ordered-channel", "png", "rayon", "thread_local", - "vello_common", + "vello_common 0.2.0", ] +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -960,6 +3459,16 @@ dependencies = [ "libc", ] +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasip2" version = "1.0.4+wasi-0.2.12" @@ -969,18 +3478,543 @@ dependencies = [ "wit-bindgen", ] +[[package]] +name = "wasm-bindgen" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbab34de2d982e9b48e18d216d04c4a6f641066ff19ffb699980f591ee3610e" +dependencies = [ + "js-sys", + "tokio", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 3.0.6", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.129" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wayland-backend" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.5", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" +dependencies = [ + "bitflags 2.13.2", + "rustix 1.1.5", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.13.2", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" +dependencies = [ + "rustix 1.1.5", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-experimental" +version = "20250721.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-misc" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88261b9deccee56594c11a3460c462c41f58d148598fe70ad77070126a68aba4" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "weezl" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wgpu" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" +dependencies = [ + "arrayvec", + "bitflags 2.13.2", + "bytemuck", + "cfg-if", + "cfg_aliases", + "document-features", + "hashbrown 0.17.1", + "js-sys", + "log", + "naga", + "parking_lot", + "portable-atomic", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" +dependencies = [ + "arrayvec", + "bit-set 0.10.0", + "bit-vec 0.9.1", + "bitflags 2.13.2", + "bytemuck", + "cfg_aliases", + "document-features", + "hashbrown 0.17.1", + "indexmap", + "log", + "naga", + "naga-types", + "once_cell", + "parking_lot", + "portable-atomic", + "profiling", + "raw-window-handle", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 2.0.21", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-wasm", + "wgpu-core-deps-windows-linux-android", + "wgpu-hal", + "wgpu-naga-bridge", + "wgpu-types", +] + +[[package]] +name = "wgpu-core-deps-apple" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98b86cf4abf524a902dd35f18ca6a3f08fc2ae9847c8f10b48e30491b1f0b86" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-wasm" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d260ca2ca8adc654f513a869bf3cac0b47f5b8d3f87803d6942015f8de597aae" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-hal" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set 0.10.0", + "bitflags 2.13.2", + "block2 0.6.2", + "bytemuck", + "cfg-if", + "cfg_aliases", + "glow", + "glutin_wgl_sys", + "gpu-allocator", + "hashbrown 0.17.1", + "js-sys", + "khronos-egl", + "libc", + "libloading", + "log", + "naga", + "naga-types", + "ndk-sys", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "objc2-metal 0.3.2", + "objc2-quartz-core 0.3.2", + "once_cell", + "ordered-float", + "parking_lot", + "portable-atomic", + "portable-atomic-util", + "profiling", + "range-alloc", + "raw-window-handle", + "raw-window-metal", + "renderdoc-sys", + "smallvec", + "static_assertions", + "thiserror 2.0.21", + "wasm-bindgen", + "wayland-sys", + "web-sys", + "wgpu-naga-bridge", + "wgpu-types", + "windows", + "windows-core", + "windows-result", +] + +[[package]] +name = "wgpu-naga-bridge" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" +dependencies = [ + "naga", + "wgpu-types", +] + +[[package]] +name = "wgpu-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" +dependencies = [ + "bitflags 2.13.2", + "bytemuck", + "js-sys", + "log", + "naga-types", + "raw-window-handle", + "static_assertions", + "web-sys", +] + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core", + "windows-link", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -990,12 +4024,273 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winit" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6755fa58a9f8350bd1e472d4c3fcc25f824ec358933bba33306d0b63df5978d" +dependencies = [ + "ahash", + "android-activity", + "atomic-waker", + "bitflags 2.13.2", + "block2 0.5.1", + "bytemuck", + "calloop 0.13.0", + "cfg_aliases", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2", + "ndk", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", + "objc2-ui-kit 0.2.2", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", + "rustix 0.38.44", + "smithay-client-toolkit 0.19.2", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading", + "once_cell", + "rustix 1.1.5", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + +[[package]] +name = "xcursor" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" + +[[package]] +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.13.2", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "xml-rs" +version = "0.8.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" + [[package]] name = "xtask" version = "0.1.0" @@ -1003,6 +4298,112 @@ dependencies = [ "serde_json", ] +[[package]] +name = "zbus" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db4be7c075cb421e4b7ee645541604239bd243ba7c357511f4ff3a74b555907" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix 1.1.5", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus-lockstep" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998de05217a084b7578728a9443d04ea4cd80f2a0839b8d78770b76ccd45863" +dependencies = [ + "zbus_xml", + "zvariant", +] + +[[package]] +name = "zbus-lockstep-macros" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "zbus-lockstep", + "zbus_xml", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990635d09ade6df1868f72f8cac69a876a90981e8bd3c40b1be413f8dc88f40" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 3.0.6", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bf88b4a3ff53e883001e0e0115b297a9d53c31b9c1edd2bfdd853e3428624e" +dependencies = [ + "serde", + "winnow", + "zvariant", +] + +[[package]] +name = "zbus_xml" +version = "5.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1586c021a01ca0a9216dcd874e546382e156a5cbab5fab6cb5f10087e22682a" +dependencies = [ + "serde", + "winnow", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zcheapstr" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1afec51604565183aeb5c54c20aeab286120d4e4460f7f76e3e8bb8c0d99473" +dependencies = [ + "serde", +] + [[package]] name = "zerocopy" version = "0.8.59" @@ -1049,3 +4450,44 @@ checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ "zune-core", ] + +[[package]] +name = "zvariant" +version = "5.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1d34c27cc6cdd1f458427519dd6b8612f7b7e3f7b9a0b2355d041dda9869147" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow", + "zcheapstr", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "864155e69b4352db0c7f374917bf45d1e0c8d17659c8b3dbf9795f3673f8c497" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 3.0.6", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad0294361a320b694a328460dc73add56c306150f5cb6bfafc44446120008a3" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 3.0.6", + "winnow", +] diff --git a/Cargo.toml b/Cargo.toml index b3a041bf..50220d79 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace] resolver = "3" -members = ["crates/*", "xtask"] -default-members = ["crates/*", "xtask"] +members = ["crates/*", "apps/*", "xtask"] +default-members = ["crates/*", "apps/*", "xtask"] [workspace.package] version = "0.1.0" @@ -61,6 +61,8 @@ unsafe_code = "deny" [workspace.lints.clippy] dbg_macro = "warn" todo = "warn" +too_many_arguments = "allow" +type_complexity = "allow" [profile.dev.package."*"] opt-level = 2 diff --git a/NOTICE b/NOTICE new file mode 100644 index 00000000..1bf862a4 --- /dev/null +++ b/NOTICE @@ -0,0 +1,13 @@ +DesignCraft +Copyright the DesignCraft contributors. Licensed under MIT OR Apache-2.0. + +This product bundles third-party material under the following licences. Per-file attribution +(author, source, licence) for every asset is in ASSETS.md. No Adobe icons, images or artwork are included. + +- Source Sans 3 and Source Serif 4 (assets/fonts/Source*) — SIL Open Font License 1.1. See assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt. +- Inter (assets/fonts/Inter-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-Inter.txt. +- JetBrains Mono (assets/fonts/JetBrainsMono-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-JetBrainsMono.txt. +- All UI icons are drawn in code (crates/ui-egui/src/icons.rs) and are original work, MIT OR Apache-2.0. + +Rust dependencies (vello_cpu, kurbo, skrifa, harfrust, image, egui, eframe, …) are permissively +licensed (MIT/Apache-2.0/BSD/ISC/Zlib) and fetched through crates.io. diff --git a/README.md b/README.md index 4e5d8a3a..79cb6a35 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,98 @@ -DesignCraft -============ +

DesignCraft

-By ArtCraft +

+ Page layout and publishing, rebuilt in pure Rust.
+ A fast, open-source, clean-room take on the Adobe InDesign workflow — native on macOS, Windows and Linux, and in the browser via WebAssembly.
+ By the ArtCraft team. +

+ +

+ DesignCraft showing a magazine spread: a threaded three-column story is selected with its in/out ports and thread line, the Control panel shows its position in picas and the Properties panel its text frame options +
Quarterly — Spring Issue: threaded three-column body text, a wrapped pull quote, parent-page folios, all set by DesignCraft's own paragraph composer. +

+ + + + + + + +
Magazine cover with a generated dusk landscape and a large serif headline

Cover: full-bleed graphic frame, display type

Feature opener with kicker, headline, deck, photo, caption and two-column justified text

Styles: kicker rule, headline, deck, justified body

Three-column page with text wrapping around a shaded pull quote

Threading, columns and text wrap

+ +Every page above was laid out by DesignCraft from code (`crates/engine/src/sample.rs`) and exported by its own renderer — try it with `File → New → Sample Document` or `--sample`. + +### Why DesignCraft + +- **Familiar.** InDesign's layout, tools, menus, panels and shortcuts: spreads and parent pages, frames and threaded stories, the Control panel, paragraph and character styles, swatches, text wrap… you already know how to use it. +- **Beautiful type.** A Knuth–Plass paragraph composer (plus single-line), hyphenation, justification, columns, baseline grid, keeps, tabs, rules and shading — and identical line breaks on screen and in export. +- **Fast.** Multithreaded SIMD rendering (vello_cpu), copy-on-write documents with O(1) undo snapshots, cached composition. +- **Open.** A documented native format, and IDML / PDF / PNG interchange on the roadmap — no subscription, no licence server, no telemetry. +- **Agent-native.** Every menu item, tool gesture, panel control and dialog is drivable over a JSON control channel and an **MCP server**, so Claude and other agents can lay out and edit documents like a designer. +- **Everywhere.** One Rust codebase for desktop and the web. + +## Quick start + +```sh +cargo run --release -p designcraft # desktop app (start screen) +cargo run --release -p designcraft -- --sample # open the sample magazine +cargo run --release -p designcraft -- --sample --control 7979 # + JSON control channel +cargo run --release -p designcraft-cli -- run --sample --all-pages out/ # headless: render every page to PNG +cargo run --release -p designcraft-cli -- commands # list every command +cargo xtask ci # fmt, clippy, tests, assets, layering, wasm +``` + +Drive a running app: send JSON lines to `127.0.0.1:7979` — see [`docs/control-protocol.md`](docs/control-protocol.md). + +## Architecture + +An engine-first Cargo workspace with enforced layering (`cargo xtask layers`); the egui frontend is a separate crate, so the UI can be swapped without touching the engine. + +| Layer | Crates | +|---|---| +| L0 | `geom` (paths, units & measurement parsing, corner options) · `color` (CMYK/RGB/Lab, swatches, tints, gradients) | +| L1 | `doc` (spreads, pages, parents, layers, frames, stories, styles) · `fonts` (font DB, shaping, outlines) | +| L2 | `compose` (the text engine) | +| L3 | `render` (vello_cpu) | +| L4 | `tools` (pointer events → commands + overlays) | +| L5 | `engine` (session, history, command registry) | +| L6 | `ui-egui` (InDesign-style UI, control channel) | +| L7 | `apps/designcraft`, `apps/designcraft-cli` | + +Status and milestones: **[ROADMAP.md](ROADMAP.md)**. Contributor and agent rules (clean-room, asset policy, quality gates): [`AGENTS.md`](AGENTS.md). Every bundled asset is listed with its licence in [`ASSETS.md`](ASSETS.md). + +## Crafting Apps + +Open-source, pure-Rust, clean-room creative tools — each engine-first, cross-platform, WASM-ready and fully agent-drivable. + + + + + + + + + + + + + + + + + + + + + + + + + + +
PhotoCraftLayered raster image editor in the spirit of Photoshop — high-bit-depth pipeline, adjustment layers, brushes, PSD round-trip.
DrawCraftVector illustration in the spirit of Illustrator — Pen, Pathfinder, live effects, type, SVG/PDF.
DesignCraftPage layout in the spirit of InDesign — spreads, threaded stories, styles, a Knuth–Plass composer. (you are here)
FilmCraftNon-linear video editor in the spirit of Premiere Pro — timeline editing, effects, and export.
LightCraftPhoto library and non-destructive raw developer in the spirit of Lightroom — local-first catalog, wide-gamut float pipeline.
PrintCraftPDF viewer and editor in the spirit of Acrobat — rendering, forms, annotations, and document tools.
+ +## License + +MIT OR Apache-2.0. Bundled fonts are OFL; all icons are drawn in code and are original. Per-asset attribution: [`ASSETS.md`](ASSETS.md) (see also [`NOTICE`](NOTICE)). + +DesignCraft is an independent project and is not affiliated with or endorsed by Adobe. "Adobe", "InDesign", "Illustrator", "Photoshop", "Premiere Pro", "Lightroom" and "Acrobat" are trademarks of Adobe Inc., used here only to describe compatibility and workflow familiarity. diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 00000000..14206957 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,35 @@ +# DesignCraft roadmap + +DesignCraft aims at full Adobe InDesign parity — and to be better: faster, open (documented JSON format + IDML), scriptable by agents (MCP), and available on the web. + +## Status (2026-10-01) + +**Working today** +- Document model: facing/non-facing spreads, parent pages with page-number markers, sections, layers, frames (text / graphic / unassigned), threaded stories, paragraph/character/object styles with based-on, swatches (process/spot/tints/gradients), corner options, text wrap, drop shadow, opacity/blend. +- Text engine: Knuth–Plass paragraph composer and single-line composer, hyphenation, justification, columns, threading across frames and spreads, tabs, bullets/numbering, rules, shading, baseline grid, first-baseline options, vertical justification, wrap exclusions, overset detection, caret/hit testing. +- Rendering: vello_cpu (SIMD, multithreaded) — pages, items, images with mip levels, gradients, composed text. +- UI (egui): application bar + menus, Control panel (object and text modes), Tools panel with flyouts, document tabs, rulers, pasteboard, guides (margins, columns, bleed, baseline grid), frame edges, selection handles, text ports and threads, Properties / Pages / Layers dock, Swatches, Styles, Character, Paragraph, Stroke, Text Wrap panels, New Document dialog, ⌘K palette, 4 brightness themes. +- Tools: Selection (click, marquee, move, Alt-duplicate, resize handles), Direct Selection (basic), Type (draw frame, click caret, select, type), Rectangle/Ellipse/Polygon (+ frame variants), Line, Hand, Zoom. +- ~100 commands, all reachable through the JSON control channel; headless CLI rendering to PNG. + +**Next (in order):** MCP server · PDF export (krilla, PDF/X-4) · IDML import/export · native format as zip · web build · Pen tool & Direct Selection anchors · Story Editor · Find/Change (+GREP) · tables · Liang hyphenation · smart guides · Links panel + relink · Preflight · TOC/index/footnotes · EPUB. + +## Milestones + +| # | Milestone | State | +|---|---|---| +| M0 | Skeleton + vertical slice | ✅ | +| M1 | Selection, transform, layers, pages, MCP | in progress | +| M2 | Type I (Type tool, threading, Character/Paragraph, composer) | in progress | +| M3 | Styles (nested/GREP, bullets, keeps, span columns) | started | +| M4 | Color & effects | started | +| M5 | Graphics & links | started | +| M6 | Files & export (native, IDML, PDF, PNG/JPEG) | next | +| M7 | Long documents (sections, TOC, index, footnotes, books) | | +| M8 | Tables | | +| M9 | Performance (MT composition, tiles) | | +| M10 | Find/Change, spelling, Preflight | | +| M11 | Layout power features (liquid/alternate layouts, data merge) | | +| M12 | Interactive & digital (EPUB, HTML, interactive PDF) | | +| M13 | Automation (scripts, batch) | | +| M14 | 1.0 polish & packaging | | diff --git a/apps/designcraft-cli/Cargo.toml b/apps/designcraft-cli/Cargo.toml new file mode 100644 index 00000000..51b78bb2 --- /dev/null +++ b/apps/designcraft-cli/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "designcraft-cli" +version.workspace = true +edition.workspace = true +license.workspace = true +publish = false + +[lints] +workspace = true + +[[bin]] +name = "designcraft-cli" +path = "src/main.rs" + +[dependencies] +designcraft-engine = { workspace = true } +designcraft-render = { workspace = true } +designcraft-doc = { workspace = true } +serde_json = { workspace = true } diff --git a/apps/designcraft-cli/src/main.rs b/apps/designcraft-cli/src/main.rs new file mode 100644 index 00000000..03977eed --- /dev/null +++ b/apps/designcraft-cli/src/main.rs @@ -0,0 +1,113 @@ +//! Headless DesignCraft. +//! +//! ```text +//! designcraft-cli run [--in FILE | --sample] [--cmd ID[=JSON]]... [--page N] [--scale S] [--export OUT.png|.jpg|.designcraft] [--all-pages DIR] +//! designcraft-cli commands # list every command (JSON) +//! designcraft-cli mcp [--connect PORT] # MCP server over stdio +//! ``` +use std::process::ExitCode; + +use designcraft_engine::Session; +use serde_json::{Value, json}; + +fn main() -> ExitCode { + let args: Vec = std::env::args().skip(1).collect(); + match args.first().map(String::as_str) { + Some("run") => report(run(&args[1..])), + Some("commands") => { + let s = Session::new(); + println!("{}", serde_json::to_string_pretty(&s.commands()).unwrap_or_default()); + ExitCode::SUCCESS + } + Some("mcp") => report(mcp(&args[1..])), + _ => { + eprintln!( + "usage: designcraft-cli run [--in FILE | --sample] [--cmd ID[=JSON]]... [--page N] [--scale S] [--export OUT] [--all-pages DIR]\n designcraft-cli commands\n designcraft-cli mcp [--connect PORT]" + ); + ExitCode::FAILURE + } + } +} + +fn report(r: Result<(), String>) -> ExitCode { + match r { + Ok(()) => ExitCode::SUCCESS, + Err(e) => { + eprintln!("designcraft-cli: {e}"); + ExitCode::FAILURE + } + } +} + +fn mcp(_args: &[String]) -> Result<(), String> { + Err("the MCP server lands with the designcraft-mcp crate".into()) +} + +fn run(args: &[String]) -> Result<(), String> { + let mut s = Session::new(); + let mut page = 0usize; + let mut scale = 1.0f64; + let mut it = args.iter(); + let mut opened = false; + while let Some(a) = it.next() { + let mut val = || it.next().cloned().ok_or_else(|| format!("{a} needs a value")); + match a.as_str() { + "--in" => { + let p = val()?; + s.execute("file.open", &json!({"path": p})).map_err(|e| e.to_string())?; + opened = true; + } + "--sample" => { + s.execute("file.newSample", &json!({})).map_err(|e| e.to_string())?; + opened = true; + } + "--cmd" => { + if !opened { + s.execute("file.new", &json!({})).map_err(|e| e.to_string())?; + opened = true; + } + let c = val()?; + let (id, p) = c.split_once('=').unwrap_or((&c, "{}")); + let p: Value = serde_json::from_str(p).map_err(|e| format!("--cmd {id}: {e}"))?; + let r = s.execute(id, &p).map_err(|e| e.to_string())?; + if !r.is_null() { + println!("{}", serde_json::to_string(&r).unwrap_or_default()); + } + } + "--page" => page = val()?.parse().map_err(|_| "bad --page")?, + "--scale" => scale = val()?.parse().map_err(|_| "bad --scale")?, + "--export" => { + let out = val()?; + export(&mut s, &out, page, scale)?; + } + "--all-pages" => { + let dir = val()?; + let n = s.doc().map_err(|e| e.to_string())?.doc.page_count(); + std::fs::create_dir_all(&dir).map_err(|e| e.to_string())?; + for p in 0..n { + export(&mut s, &format!("{dir}/page-{:03}.png", p + 1), p, scale)?; + } + } + other => return Err(format!("unknown option {other}")), + } + } + Ok(()) +} + +fn export(s: &mut Session, out: &str, page: usize, scale: f64) -> Result<(), String> { + if out.ends_with(".designcraft") { + s.execute("file.saveAs", &json!({"path": out})).map_err(|e| e.to_string())?; + eprintln!("saved {out}"); + return Ok(()); + } + let st = s.doc().map_err(|e| e.to_string())?; + let mut r = designcraft_render::Renderer::new(); + let t = std::time::Instant::now(); + let img = r + .render_page(&st.doc, &s.cache, page, scale, true, &designcraft_render::RenderOptions { printing_only: true, ..Default::default() }) + .ok_or("no such page")?; + let bytes = if out.ends_with(".jpg") || out.ends_with(".jpeg") { img.to_jpeg(90) } else { img.to_png() }; + std::fs::write(out, bytes).map_err(|e| format!("{out}: {e}"))?; + eprintln!("wrote {out} ({}×{}, {:.1} ms, {} glyphs)", img.width, img.height, t.elapsed().as_secs_f64() * 1000.0, r.stats.glyphs); + Ok(()) +} diff --git a/apps/designcraft/Cargo.toml b/apps/designcraft/Cargo.toml new file mode 100644 index 00000000..12f455e7 --- /dev/null +++ b/apps/designcraft/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "designcraft" +version.workspace = true +edition.workspace = true +license.workspace = true +publish = false +default-run = "designcraft" + +[lints] +workspace = true + +[dependencies] +designcraft-engine = { workspace = true } +designcraft-ui-egui = { workspace = true } +eframe = { workspace = true, features = ["default_fonts", "wgpu", "accesskit", "wayland", "x11"] } +egui = { workspace = true } +serde_json = { workspace = true } +log = { workspace = true } + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +rfd = { workspace = true } diff --git a/apps/designcraft/src/control_server.rs b/apps/designcraft/src/control_server.rs new file mode 100644 index 00000000..aa4688d5 --- /dev/null +++ b/apps/designcraft/src/control_server.rs @@ -0,0 +1,62 @@ +//! Loopback JSON-lines control server: one request per line, one reply per line. +//! This is the transport the MCP server (`designcraft mcp --connect`) wraps. + +use std::io::{BufRead, BufReader, Write}; +use std::net::{TcpListener, TcpStream}; +use std::sync::mpsc::{Receiver, Sender, channel}; +use std::time::Duration; + +use designcraft_ui_egui::ControlRequest; +use serde_json::{Value, json}; + +pub fn start(port: u16, ctx: egui::Context) -> Receiver { + let (tx, rx) = channel::(); + let listener = match TcpListener::bind(("127.0.0.1", port)) { + Ok(l) => l, + Err(e) => { + eprintln!("designcraft: control server failed to bind 127.0.0.1:{port}: {e}"); + return rx; + } + }; + eprintln!("designcraft: control server listening on 127.0.0.1:{port}"); + std::thread::spawn(move || { + for stream in listener.incoming().flatten() { + let tx = tx.clone(); + let ctx = ctx.clone(); + std::thread::spawn(move || serve(stream, tx, ctx)); + } + }); + rx +} + +fn serve(stream: TcpStream, tx: Sender, ctx: egui::Context) { + let Ok(read) = stream.try_clone() else { return }; + let mut out = stream; + for line in BufReader::new(read).lines() { + let Ok(line) = line else { break }; + if line.trim().is_empty() { + continue; + } + let reply = match serde_json::from_str::(&line) { + Ok(msg) => { + let id = msg.get("id").cloned().unwrap_or(Value::Null); + let method = msg.get("method").and_then(Value::as_str).unwrap_or("").to_string(); + let params = msg.get("params").cloned().unwrap_or(json!({})); + let (req, rrx) = ControlRequest::new(method, params); + if tx.send(req).is_err() { + break; + } + ctx.request_repaint(); + let mut r = rrx.recv_timeout(Duration::from_secs(60)).unwrap_or_else(|_| json!({"ok": false, "error": "timeout"})); + if let Some(o) = r.as_object_mut() { + o.insert("id".into(), id); + } + r + } + Err(e) => json!({"ok": false, "error": format!("bad JSON: {e}")}), + }; + if writeln!(out, "{reply}").is_err() { + break; + } + } +} diff --git a/apps/designcraft/src/main.rs b/apps/designcraft/src/main.rs new file mode 100644 index 00000000..e1c2508f --- /dev/null +++ b/apps/designcraft/src/main.rs @@ -0,0 +1,135 @@ +//! DesignCraft desktop app. +//! +//! Usage: `designcraft [--control ] [--sample] [files…]` +//! +//! `--control ` (or `DESIGNCRAFT_CONTROL_PORT`) starts a localhost JSON-lines control server: +//! `{"id":1,"method":"ui.inspect","params":{}}` → `{"id":1,"ok":true,"result":…}`. +//! See `designcraft_ui_egui::control` for the methods. + +mod control_server; + +use designcraft_engine::Session; +use designcraft_ui_egui::{DesignApp, Services}; + +struct App(DesignApp); + +impl eframe::App for App { + fn logic(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { + self.0.logic(ctx); + } + fn raw_input_hook(&mut self, _ctx: &egui::Context, raw: &mut egui::RawInput) { + self.0.raw_input_hook(raw); + } + fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut eframe::Frame) { + self.0.ui(ui); + } + fn on_exit(&mut self) { + save_prefs(&self.0); + } +} + +fn prefs_path() -> Option { + let base = if cfg!(target_os = "macos") { + std::env::var_os("HOME").map(|h| std::path::PathBuf::from(h).join("Library/Application Support/DesignCraft")) + } else if cfg!(windows) { + std::env::var_os("APPDATA").map(|a| std::path::PathBuf::from(a).join("DesignCraft")) + } else { + std::env::var_os("XDG_CONFIG_HOME") + .map(std::path::PathBuf::from) + .or_else(|| std::env::var_os("HOME").map(|h| std::path::PathBuf::from(h).join(".config"))) + .map(|c| c.join("designcraft")) + }; + base.map(|b| b.join("ui.json")) +} + +fn load_prefs(app: &mut DesignApp) { + if std::env::var_os("DESIGNCRAFT_NO_PREFS").is_some() { + return; + } + if let Some(p) = prefs_path() + && let Ok(bytes) = std::fs::read(&p) + && let Ok(ui) = serde_json::from_slice::(&bytes) + { + app.ui = ui; + } +} + +fn save_prefs(app: &DesignApp) { + if std::env::var_os("DESIGNCRAFT_NO_PREFS").is_some() { + return; + } + if let Some(p) = prefs_path() { + let _ = std::fs::create_dir_all(p.parent().unwrap_or(std::path::Path::new("."))); + if let Ok(bytes) = serde_json::to_vec_pretty(&app.ui) { + let _ = std::fs::write(p, bytes); + } + } +} + +fn services() -> Services { + Services { + pick_open: Some(Box::new(|purpose: &str| { + let d = rfd::FileDialog::new(); + let d = if purpose == "place" { + d.add_filter("Graphics", &["png", "jpg", "jpeg", "gif", "webp", "tif", "tiff"]) + } else { + d.add_filter("DesignCraft", &["designcraft"]) + }; + d.pick_file().map(|p| p.to_string_lossy().to_string()) + })), + pick_save: Some(Box::new(|name: &str| rfd::FileDialog::new().set_file_name(name).save_file().map(|p| p.to_string_lossy().to_string()))), + read: Some(Box::new(|p: &str| std::fs::read(p).map_err(|e| e.to_string()))), + write: Some(Box::new(|p: &str, b: &[u8]| std::fs::write(p, b).map_err(|e| e.to_string()))), + } +} + +fn main() -> eframe::Result { + let mut control_port: Option = std::env::var("DESIGNCRAFT_CONTROL_PORT").ok().and_then(|p| p.parse().ok()); + let mut files = Vec::new(); + let mut sample = false; + let mut args = std::env::args().skip(1); + while let Some(a) = args.next() { + match a.as_str() { + "--control" => control_port = args.next().and_then(|p| p.parse().ok()), + "--sample" => sample = true, + "--version" => { + println!("designcraft {}", env!("CARGO_PKG_VERSION")); + return Ok(()); + } + _ => files.push(a), + } + } + let options = eframe::NativeOptions { + viewport: egui::ViewportBuilder::default() + .with_title("DesignCraft") + .with_inner_size([1440.0, 900.0]) + .with_min_inner_size([900.0, 560.0]) + .with_drag_and_drop(true) + .with_fullsize_content_view(true) + .with_titlebar_shown(false) + .with_title_shown(false), + ..Default::default() + }; + eframe::run_native( + "DesignCraft", + options, + Box::new(move |cc| { + let mut app = DesignApp::new(Session::new(), services()); + load_prefs(&mut app); + app.integrated_titlebar = cfg!(target_os = "macos"); + if let Some(port) = control_port { + let rx = control_server::start(port, cc.egui_ctx.clone()); + app = app.with_control(rx); + } + if sample { + let _ = app.run("file.newSample", serde_json::json!({})); + } + for f in files { + if let Err(e) = app.run("file.open", serde_json::json!({"path": f})) { + eprintln!("designcraft: {f}: {e}"); + } + } + Ok(Box::new(App(app))) + }), + ) +} diff --git a/crates/color/src/swatch.rs b/crates/color/src/swatch.rs index 7ac198cd..e0b32b1f 100644 --- a/crates/color/src/swatch.rs +++ b/crates/color/src/swatch.rs @@ -25,12 +25,22 @@ pub enum ColorType { #[serde(tag = "kind", rename_all = "camelCase")] pub enum SwatchValue { None, - Paper { color: Color }, + Paper { + color: Color, + }, Registration, - Color { color: Color, color_type: ColorType }, + Color { + color: Color, + color_type: ColorType, + }, /// A tint (0..=1) of another colour swatch. - Tint { base: String, tint: f32 }, - Gradient { gradient: Gradient }, + Tint { + base: String, + tint: f32, + }, + Gradient { + gradient: Gradient, + }, } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -147,7 +157,12 @@ mod tests { #[test] fn resolves_tints_and_specials() { let mut s = default_swatches(); - s.push(Swatch { name: "Half cyan".into(), value: SwatchValue::Tint { base: "C=100 M=0 Y=0 K=0".into(), tint: 0.5 }, locked: false, named: true }); + s.push(Swatch { + name: "Half cyan".into(), + value: SwatchValue::Tint { base: "C=100 M=0 Y=0 K=0".into(), tint: 0.5 }, + locked: false, + named: true, + }); assert_eq!(resolve(&s, NONE, 1.0), None); assert_eq!(resolve(&s, PAPER, 1.0), Some(Color::WHITE)); assert_eq!(resolve(&s, BLACK, 0.4), Some(Color::cmyk(0.0, 0.0, 0.0, 0.4))); diff --git a/crates/compose/src/breaker.rs b/crates/compose/src/breaker.rs index 87074862..35392a2a 100644 --- a/crates/compose/src/breaker.rs +++ b/crates/compose/src/breaker.rs @@ -33,10 +33,20 @@ pub struct Spacing { #[derive(Clone, Copy, Debug)] enum Item { /// Unbreakable width (a glyph). - Box { w: f64 }, + Box { + w: f64, + }, /// Space glyph `g`. - Glue { w: f64, st: f64, sh: f64 }, - Penalty { w: f64, p: f64, flagged: bool }, + Glue { + w: f64, + st: f64, + sh: f64, + }, + Penalty { + w: f64, + p: f64, + flagged: bool, + }, } const INF: f64 = 10000.0; @@ -54,10 +64,8 @@ fn items(glyphs: &[Glyph], hyph_after: &[bool], sp: &Spacing) -> (Vec, Vec let n = glyphs.len(); for (i, g) in glyphs.iter().enumerate() { if is_forced(g.ch) { - if !sp.justify || true { - it.push(Item::Glue { w: 0.0, st: INF, sh: 0.0 }); - ig.push(i); - } + it.push(Item::Glue { w: 0.0, st: INF, sh: 0.0 }); + ig.push(i); it.push(Item::Penalty { w: 0.0, p: -INF, flagged: false }); ig.push(i + 1); continue; @@ -139,7 +147,15 @@ pub fn knuth_plass(glyphs: &[Glyph], hyph_after: &[bool], sp: &Spacing, width: & } #[allow(clippy::too_many_arguments)] -fn kp_pass(items: &[Item], ig: &[usize], glyphs: &[Glyph], sp: &Spacing, width: &dyn Fn(usize) -> f64, tol: f64, emergency: bool) -> Option> { +fn kp_pass( + items: &[Item], + ig: &[usize], + glyphs: &[Glyph], + sp: &Spacing, + width: &dyn Fn(usize) -> f64, + tol: f64, + emergency: bool, +) -> Option> { let m = items.len(); // Prefix sums (before item i). let mut sw = vec![0.0; m + 1]; @@ -155,7 +171,8 @@ fn kp_pass(items: &[Item], ig: &[usize], glyphs: &[Glyph], sp: &Spacing, width: sy[i + 1] = sy[i] + y; sz[i + 1] = sz[i] + z; } - let mut arena: Vec = vec![Node { pos: 0, line: 0, fitness: 1, tw: 0.0, ty: 0.0, tz: 0.0, demerits: 0.0, prev: None, hyphens: 0, flagged: false }]; + let mut arena: Vec = + vec![Node { pos: 0, line: 0, fitness: 1, tw: 0.0, ty: 0.0, tz: 0.0, demerits: 0.0, prev: None, hyphens: 0, flagged: false }]; let mut active: Vec = vec![0]; for b in 0..m { let (is_break, pw, pp, flagged) = match items[b] { @@ -188,10 +205,16 @@ fn kp_pass(items: &[Item], ig: &[usize], glyphs: &[Glyph], sp: &Spacing, width: } else { last_removed = Some((a, r)); } - if r >= -1.0 && r <= tol || (forced && r >= -1.0) { + if r >= -1.0 && (r <= tol || forced) { let bad = (100.0 * r.abs().powi(3)).min(INF); let lp = 10.0 + bad; - let mut d = if pp >= 0.0 { lp * lp + pp * pp } else if pp > -INF { lp * lp - pp * pp } else { lp * lp }; + let mut d = if pp >= 0.0 { + lp * lp + pp * pp + } else if pp > -INF { + lp * lp - pp * pp + } else { + lp * lp + }; if flagged && n.flagged { d += 3000.0; } @@ -260,6 +283,9 @@ fn kp_pass(items: &[Item], ig: &[usize], glyphs: &[Glyph], sp: &Spacing, width: } } if active.is_empty() { + if std::env::var_os("DC_KP_DEBUG").is_some() { + eprintln!("kp tol {tol}: no active nodes at item {b}/{m} (glyph {})", ig[b]); + } return None; } } diff --git a/crates/compose/src/hyphen.rs b/crates/compose/src/hyphen.rs index ddb6e0ca..29afcc33 100644 --- a/crates/compose/src/hyphen.rs +++ b/crates/compose/src/hyphen.rs @@ -36,6 +36,9 @@ fn onset_pair(a: char, b: char) -> bool { } /// Common English suffixes that form their own syllable (break before them). +/// Common English prefixes (break after them). +const PREFIXES: &[&str] = &["re", "de", "pre", "un", "dis", "con", "com", "inter", "over", "under", "trans", "sub", "super", "anti", "auto"]; + const SUFFIXES: &[&str] = &["tion", "sion", "ment", "ness", "less", "ful", "able", "ible", "ing", "ly"]; /// Allowed hyphenation points in `word` as char indices (a hyphen goes before that char). @@ -61,14 +64,23 @@ pub fn hyphen_points(word: &str, lim: &Limits) -> Vec { let sl = s.chars().count(); n - i == sl && lower.ends_with(s) && v[..i].iter().any(|x| *x) }); + let prefix_at = PREFIXES.iter().any(|p| p.chars().count() == i && lower.starts_with(p) && n - i >= 4 && c[i..].iter().any(|x| is_vowel(*x))); let ok = suffix_at + || prefix_at || if v[i - 1] && !v[i] { (i + 1 < n && v[i + 1]) || (i + 2 < n && onset_pair(c[i], c[i + 1]) && v[i + 2]) } else if !v[i - 1] && !v[i] { - i >= 2 && v[i - 2] && i + 1 < n && v[i + 1] && !onset_pair(c[i - 1], c[i]) && c[i - 1] != c[i] || (c[i - 1] == c[i] && i >= 2 && v[i - 2]) + i >= 2 && v[i - 2] && i + 1 < n && v[i + 1] && !onset_pair(c[i - 1], c[i]) && c[i - 1] != c[i] + || (c[i - 1] == c[i] && i >= 2 && v[i - 2]) } else { false }; + // Both parts need a sounded vowel: a trailing silent `e`, `ed` or `es` doesn't count + // ("strai-ned" is wrong, "re-strained" is right). + let right: String = c[i..].iter().collect::().to_lowercase(); + let right_core = right.strip_suffix("ed").or_else(|| right.strip_suffix("es")).or_else(|| right.strip_suffix('e')).unwrap_or(&right); + let sounded = right_core.chars().any(is_vowel) && right_core.len() > 1; + let ok = ok && sounded && v[..i].iter().any(|x| *x); if ok && !out.contains(&i) { out.push(i); } @@ -104,6 +116,9 @@ mod tests { assert_eq!(h("typography"), "ty-po-gra-phy"); assert!(h("composition").contains("com-")); assert_eq!(h("cat"), "cat"); + assert!(!h("restrained").contains("-ned"), "{}", h("restrained")); + assert!(!h("changed").contains('-')); + assert!(h("restrained").starts_with("re-"), "{}", h("restrained")); assert_eq!(h("NASA"), "NASA"); } diff --git a/crates/compose/src/lib.rs b/crates/compose/src/lib.rs index ac6224e8..5b5cbafa 100644 --- a/crates/compose/src/lib.rs +++ b/crates/compose/src/lib.rs @@ -365,7 +365,7 @@ pub fn compose(doc: &Document, story: &Story, frames: &[FrameSpec], opts: &Compo } } } - let fits = baseline + desc <= col.y1 + 0.01 || (cur.last_baseline.is_none() && baseline <= col.y1 && false); + let fits = baseline + desc <= col.y1 + 0.01; if !fits { // Next column / frame; re-break the rest of the paragraph there. g0 = s; @@ -428,12 +428,23 @@ pub fn compose(doc: &Document, story: &Story, frames: &[FrameSpec], opts: &Compo let r = &pp.rule_above; let y = bl - asc - r.offset; let col = ft.lines.iter().rev().find(|l| l.para == pi).map(|l| (l.x0, l.x1)).unwrap_or((0.0, 0.0)); - ft.decos.push(Deco { rect: Rect::new(col.0 + r.left_indent, y - r.weight, col.1 - r.right_indent, y), color: r.color.clone(), tint: r.tint }); + ft.decos.push(Deco { + rect: Rect::new(col.0 + r.left_indent, y - r.weight, col.1 - r.right_indent, y), + color: r.color.clone(), + tint: r.tint, + }); } if pp.shading_on { let lines: Vec<&Line> = ft.lines.iter().filter(|l| l.para == pi).collect(); if let (Some(a), Some(z)) = (lines.first(), lines.last()) { - ft.decos.insert(0, Deco { rect: Rect::new(a.x0, a.baseline - a.ascent, a.x1, z.baseline + z.descent), color: pp.shading_color.clone(), tint: pp.shading_tint }); + ft.decos.insert( + 0, + Deco { + rect: Rect::new(a.x0, a.baseline - a.ascent, a.x1, z.baseline + z.descent), + color: pp.shading_color.clone(), + tint: pp.shading_tint, + }, + ); } } } @@ -521,7 +532,15 @@ impl Cursor { } } -fn line_metrics(line: &[Glyph], all: &[Glyph], s: usize, base_leading: f64, base_size: f64, db: &FontDb, base: &designcraft_doc::CharProps) -> (f64, f64, f64) { +fn line_metrics( + line: &[Glyph], + all: &[Glyph], + s: usize, + base_leading: f64, + base_size: f64, + db: &FontDb, + base: &designcraft_doc::CharProps, +) -> (f64, f64, f64) { let _ = db; let src: &[Glyph] = if line.is_empty() { all.get(s..(s + 1).min(all.len())).unwrap_or(&[]) } else { line }; if src.is_empty() { @@ -735,11 +754,36 @@ fn layout_line( } fn place(g: &Glyph, x: f64) -> PlacedGlyph { - let visible = !(g.ch == '\t' || g.ch == '\n' || breaker::is_forced(g.ch) || g.ch == story::INDENT_HERE || g.ch == story::RIGHT_INDENT_TAB || g.ch == shape::SOFT_HYPHEN); - PlacedGlyph { face: g.face.clone(), gid: g.gid, x: x + g.dx, y: -g.shift + g.dy, adv: g.adv, sx: g.sx, sy: g.sy, style: g.style, byte: g.byte, len: g.len, visible } + let visible = !(g.ch == '\t' + || g.ch == '\n' + || breaker::is_forced(g.ch) + || g.ch == story::INDENT_HERE + || g.ch == story::RIGHT_INDENT_TAB + || g.ch == shape::SOFT_HYPHEN); + PlacedGlyph { + face: g.face.clone(), + gid: g.gid, + x: x + g.dx, + y: -g.shift + g.dy, + adv: g.adv, + sx: g.sx, + sy: g.sy, + style: g.style, + byte: g.byte, + len: g.len, + visible, + } } -fn prepend_label(db: &FontDb, glyphs: &mut Vec, label: &str, at: usize, base: &designcraft_doc::CharProps, pp: &ParaProps, table: &mut StyleTable<'_>) { +fn prepend_label( + db: &FontDb, + glyphs: &mut Vec, + label: &str, + at: usize, + base: &designcraft_doc::CharProps, + pp: &ParaProps, + table: &mut StyleTable<'_>, +) { // Shape the label as a tiny standalone story so it uses the paragraph's base character style. let mut tmp = Story::new(StoryId(0)); tmp.insert(0, label); diff --git a/crates/compose/src/shape.rs b/crates/compose/src/shape.rs index 9f36ad02..90c55d52 100644 --- a/crates/compose/src/shape.rs +++ b/crates/compose/src/shape.rs @@ -152,7 +152,16 @@ fn is_mark(c: char) -> bool { } #[allow(clippy::too_many_arguments)] -fn shape_run(db: &FontDb, text: &str, range: std::ops::Range, p: &CharProps, auto_leading: f64, style: u32, sub: &SubstCtx, out: &mut Vec) { +fn shape_run( + db: &FontDb, + text: &str, + range: std::ops::Range, + p: &CharProps, + auto_leading: f64, + style: u32, + sub: &SubstCtx, + out: &mut Vec, +) { let primary = db.face(&p.font_family, &p.font_style); // Split into segments: font coverage changes and special characters (markers, tabs, breaks). let mut seg_start = range.start; @@ -201,7 +210,11 @@ fn shape_run(db: &FontDb, text: &str, range: std::ops::Range, p: &CharPro continue; } let covered = c.is_whitespace() || c.is_control() || c == SOFT_HYPHEN || primary.covers(c); - let face = if covered || is_mark(c) { if is_mark(c) { seg_face.clone() } else { primary.clone() } } else { db.fallback_for(c, primary.id()).unwrap_or_else(|| primary.clone()) }; + let face = if covered || is_mark(c) { + if is_mark(c) { seg_face.clone() } else { primary.clone() } + } else { + db.fallback_for(c, primary.id()).unwrap_or_else(|| primary.clone()) + }; if face.id() != seg_face.id() { flush(seg_start, i, &seg_face, out); seg_start = i; diff --git a/crates/compose/src/tests.rs b/crates/compose/src/tests.rs index 05d7dc06..4981ce04 100644 --- a/crates/compose/src/tests.rs +++ b/crates/compose/src/tests.rs @@ -134,7 +134,8 @@ fn wrap_pushes_text_aside() { let (mut d, sid, _) = doc_with(&[LOREM; 2].join(" "), Rect::new(0.0, 0.0, 300.0, 800.0), ParaAttrs::default()); let lid = d.default_layer(); let id = ItemId(d.alloc()); - let mut it = designcraft_doc::Item::new(id, lid, designcraft_doc::Shape::Rectangle, designcraft_geom::shapes::rectangle(Rect::new(0.0, 0.0, 120.0, 60.0))); + let mut it = + designcraft_doc::Item::new(id, lid, designcraft_doc::Shape::Rectangle, designcraft_geom::shapes::rectangle(Rect::new(0.0, 0.0, 120.0, 60.0))); it.wrap.mode = WrapMode::BoundingBox; it.wrap.offsets = [0.0, 0.0, 6.0, 6.0]; d.insert_item(SpreadRef::Doc(0), it, None).unwrap(); @@ -150,7 +151,11 @@ fn paragraph_composer_is_no_worse_than_greedy() { // Sum of squared slack over lines (excluding last) should not exceed the greedy result. let measure = 180.0; let mk = |c: designcraft_doc::Composer| { - let (d, sid, _) = doc_with(&[LOREM; 2].join(" "), Rect::new(0.0, 0.0, measure, 4000.0), ParaAttrs { composer: Some(c), hyphenate: Some(false), ..Default::default() }); + let (d, sid, _) = doc_with( + &[LOREM; 2].join(" "), + Rect::new(0.0, 0.0, measure, 4000.0), + ParaAttrs { composer: Some(c), hyphenate: Some(false), ..Default::default() }, + ); let cs = compose_story(&d, sid, &ComposeOptions::default()); let lines = all_lines(&cs); let n = lines.len(); @@ -163,10 +168,34 @@ fn paragraph_composer_is_no_worse_than_greedy() { #[test] fn tabs_align_to_stops() { - let mut pa = ParaAttrs::default(); - pa.tabs = Some(vec![designcraft_doc::TabStop { position: 100.0, align: TabAlign::Right, leader: String::new(), align_on: String::new() }]); + let pa = ParaAttrs { + tabs: Some(vec![designcraft_doc::TabStop { position: 100.0, align: TabAlign::Right, leader: String::new(), align_on: String::new() }]), + ..Default::default() + }; let (d, sid, _) = doc_with("Name\t42", Rect::new(0.0, 0.0, 300.0, 100.0), pa); let cs = compose_story(&d, sid, &ComposeOptions::default()); let l = &cs.frames[0].lines[0]; assert!((l.end_x - 100.0).abs() < 0.5, "{}", l.end_x); } + +#[test] +fn justified_narrow_column_has_no_extreme_lines() { + let text = "Color holds it all together. A restrained palette of two or three swatches, applied consistently to headlines, rules and backgrounds, gives a publication its voice. Spot inks, tints and gradients are all just named swatches, so a single change ripples through every page."; + let para = ParaAttrs { align: Some(Align::LeftJustified), first_line_indent: Some(12.0), hyph_min_word: Some(6), ..Default::default() }; + let mut d = Document::new(&NewDocument::default()); + let lid = d.default_layer(); + let (_, sid) = + d.add_text_frame(SpreadRef::Doc(0), Rect::new(0.0, 0.0, 170.67, 2000.0), lid, text, ParaFormat { para, ..Default::default() }).unwrap(); + d.story_mut(sid).unwrap().format_chars(0..text.len(), |f| f.over.size = Some(9.75)); + let cs = compose_story(&d, sid, &ComposeOptions::default()); + let mut worst = 0.0f64; + for l in all_lines(&cs) { + let s: String = d.story(sid).unwrap().text[l.range.clone()].to_string(); + eprintln!("{:5.2} {}", l.spacing, s); + if !l.last_in_para { + worst = worst.max(l.spacing); + } + } + // Regression bound; tighter once dictionary hyphenation lands (plan: Moby PD word list). + assert!(worst < 8.0, "loose line ratio {worst}"); +} diff --git a/crates/doc/src/attrs.rs b/crates/doc/src/attrs.rs index 4749aa07..4dab9e45 100644 --- a/crates/doc/src/attrs.rs +++ b/crates/doc/src/attrs.rs @@ -320,7 +320,21 @@ fn roman(mut n: u32) -> String { if n == 0 { return "0".into(); } - let t = [(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"), (50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I")]; + let t = [ + (1000, "M"), + (900, "CM"), + (500, "D"), + (400, "CD"), + (100, "C"), + (90, "XC"), + (50, "L"), + (40, "XL"), + (10, "X"), + (9, "IX"), + (5, "V"), + (4, "IV"), + (1, "I"), + ]; let mut s = String::new(); for (v, r) in t { while n >= v { diff --git a/crates/doc/src/build.rs b/crates/doc/src/build.rs index 846ea25e..91988eb3 100644 --- a/crates/doc/src/build.rs +++ b/crates/doc/src/build.rs @@ -182,7 +182,13 @@ impl Document { pages[1].side = PageSide::Right; } let id = SpreadId(self.alloc()); - let mut sp = Spread { id, pages, items: vec![], parent: Some(ParentInfo { prefix: prefix.into(), name: name.into(), based_on: None }), allow_shuffle: true }; + let mut sp = Spread { + id, + pages, + items: vec![], + parent: Some(ParentInfo { prefix: prefix.into(), name: name.into(), based_on: None }), + allow_shuffle: true, + }; sp.relayout(); self.parents.push(Arc::new(sp)); id diff --git a/crates/doc/src/lib.rs b/crates/doc/src/lib.rs index def4d380..1bc22820 100644 --- a/crates/doc/src/lib.rs +++ b/crates/doc/src/lib.rs @@ -24,7 +24,7 @@ use std::sync::Arc; pub use attrs::*; pub use designcraft_color as color; pub use designcraft_geom as geom; -pub use edit::{ItemLoc, ItemPath, SpreadRef}; +pub use edit::{ItemLoc, ItemPath, SpreadRef, item_hit as edit_hit}; pub use ids::*; pub use item::*; pub use page::*; diff --git a/crates/doc/src/page.rs b/crates/doc/src/page.rs index 3855104c..4dcf9ec9 100644 --- a/crates/doc/src/page.rs +++ b/crates/doc/src/page.rs @@ -253,7 +253,13 @@ mod tests { #[test] fn spread_spine_and_hit() { - let s = Spread { id: SpreadId(1), pages: vec![page(PageSide::Left, 0.0), page(PageSide::Right, 612.0)], items: vec![], parent: None, allow_shuffle: true }; + let s = Spread { + id: SpreadId(1), + pages: vec![page(PageSide::Left, 0.0), page(PageSide::Right, 612.0)], + items: vec![], + parent: None, + allow_shuffle: true, + }; assert_eq!(s.spine_x(), 612.0); assert_eq!(s.page_at_x(700.0), Some(1)); assert_eq!(s.page_at_x(-50.0), Some(0)); diff --git a/crates/doc/src/story.rs b/crates/doc/src/story.rs index de79ad82..976bf5ad 100644 --- a/crates/doc/src/story.rs +++ b/crates/doc/src/story.rs @@ -85,7 +85,14 @@ pub struct Story { impl Story { pub fn new(id: StoryId) -> Self { - Story { id, text: String::new(), paras: vec![ParaFormat::default()], chars: vec![CharRun { len: 0, format: CharFormat::default() }], frames: vec![], rev: 0 } + Story { + id, + text: String::new(), + paras: vec![ParaFormat::default()], + chars: vec![CharRun { len: 0, format: CharFormat::default() }], + frames: vec![], + rev: 0, + } } pub fn with_text(id: StoryId, text: &str, para: ParaFormat) -> Self { diff --git a/crates/doc/src/tests.rs b/crates/doc/src/tests.rs index d07804d9..c4c7a466 100644 --- a/crates/doc/src/tests.rs +++ b/crates/doc/src/tests.rs @@ -67,7 +67,14 @@ fn hit_testing_respects_layers() { fn page_names_follow_sections() { let mut d = Document::new(&NewDocument { pages: 6, ..Default::default() }); assert_eq!(d.page_name(0), "1"); - d.sections.push(Section { start: 2, start_number: Some(1), style: NumberStyle::LowerRoman, prefix: "A-".into(), marker: String::new(), include_prefix: true }); + d.sections.push(Section { + start: 2, + start_number: Some(1), + style: NumberStyle::LowerRoman, + prefix: "A-".into(), + marker: String::new(), + include_prefix: true, + }); assert_eq!(d.page_name(1), "2"); assert_eq!(d.page_name(2), "A-i"); assert_eq!(d.page_name(4), "A-iii"); diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml new file mode 100644 index 00000000..5d9e5ec5 --- /dev/null +++ b/crates/engine/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "designcraft-engine" +version.workspace = true +edition.workspace = true +license.workspace = true +description = "DesignCraft engine: session, documents, history, selection, command registry, tool hosting" + +[lints] +workspace = true + +[dependencies] +designcraft-geom = { workspace = true } +designcraft-color = { workspace = true } +designcraft-doc = { workspace = true } +designcraft-fonts = { workspace = true } +designcraft-compose = { workspace = true } +designcraft-render = { workspace = true } +designcraft-tools = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +thiserror = { workspace = true } +log = { workspace = true } diff --git a/crates/engine/src/cmd/edit.rs b/crates/engine/src/cmd/edit.rs new file mode 100644 index 00000000..b8d456d2 --- /dev/null +++ b/crates/engine/src/cmd/edit.rs @@ -0,0 +1,163 @@ +//! Edit menu: undo/redo, selection, clear, clipboard. + +use std::sync::Arc; + +use designcraft_doc::{ItemId, Selection, SpreadRef}; +use serde_json::{Value, json}; + +use super::{CommandSpec, bool_or, cmd, has_doc, has_selection, ids_param, ok}; +use crate::{HistoryEntry, Result, Session}; + +fn can_undo(s: &Session) -> std::result::Result<(), String> { + s.active().filter(|d| !d.history.undo.is_empty()).map(|_| ()).ok_or_else(|| "nothing to undo".into()) +} +fn can_redo(s: &Session) -> std::result::Result<(), String> { + s.active().filter(|d| !d.history.redo.is_empty()).map(|_| ()).ok_or_else(|| "nothing to redo".into()) +} +fn has_clip(s: &Session) -> std::result::Result<(), String> { + has_doc(s)?; + if s.clipboard.is_some() { Ok(()) } else { Err("clipboard is empty".into()) } +} + +pub fn specs() -> Vec { + vec![ + cmd!(noundo "edit.undo", "Undo", ["Edit"], Some("Cmd+Z"), "{}", can_undo, |s, _| { + let st = s.doc_mut()?; + let e = st.history.undo.pop().expect("checked"); + st.history.redo.push(HistoryEntry { label: e.label.clone(), doc: st.doc.clone(), selection: st.selection.clone() }); + st.doc = e.doc; + st.selection = e.selection; + st.revision += 1; + Ok(json!({"undone": e.label})) + }), + cmd!(noundo "edit.redo", "Redo", ["Edit"], Some("Cmd+Shift+Z"), "{}", can_redo, |s, _| { + let st = s.doc_mut()?; + let e = st.history.redo.pop().expect("checked"); + st.history.undo.push(HistoryEntry { label: e.label.clone(), doc: st.doc.clone(), selection: st.selection.clone() }); + st.doc = e.doc; + st.selection = e.selection; + st.revision += 1; + Ok(json!({"redone": e.label})) + }), + cmd!(noundo "selection.set", "Select", [], None, "{ids: [id], add?: bool, content?: bool}", has_doc, |s, p| { + let ids = ids_param(p, "ids").unwrap_or_default(); + let add = bool_or(p, "add", false); + let content = bool_or(p, "content", false); + let st = s.doc_mut()?; + let ids: Vec = ids.into_iter().filter(|i| st.doc.item(*i).is_some()).collect(); + if add { + for i in ids { + if !st.selection.items.contains(&i) { + st.selection.items.push(i); + } + } + } else { + st.selection = Selection { items: ids, content, ..Default::default() }; + } + st.selection.text = None; + st.revision += 1; + ok() + }), + cmd!(noundo "selection.toggle", "Toggle Selection", [], None, "{id}", has_doc, |s, p| { + let id = super::id_param(p, "id").ok_or_else(|| super::bad("selection.toggle", "missing id"))?; + let st = s.doc_mut()?; + st.selection.text = None; + if let Some(i) = st.selection.items.iter().position(|x| *x == id) { + st.selection.items.remove(i); + } else { + st.selection.items.push(id); + } + st.revision += 1; + ok() + }), + cmd!(noundo "edit.selectAll", "Select All", ["Edit"], Some("Cmd+A"), "{} — all items on the active spreads, or all text in the story", has_doc, |s, _| { + let st = s.doc_mut()?; + if let Some(t) = st.selection.text { + let len = st.doc.story(t.story).map(|x| x.len()).unwrap_or(0); + st.selection.text = Some(designcraft_doc::TextSel { anchor: 0, focus: len, ..t }); + } else { + let mut ids = Vec::new(); + let parents = st.editing_parents; + let refs: Vec = st.doc.spread_refs().filter(|r| matches!(r, SpreadRef::Parent(_)) == parents).collect(); + for r in refs { + if let Some(sp) = st.doc.spread(r) { + for it in &sp.items { + let locked = it.locked || st.doc.layer(it.layer).is_some_and(|l| l.locked || !l.visible); + if !locked && !it.hidden { + ids.push(it.id); + } + } + } + } + st.selection = Selection::items(ids); + } + st.revision += 1; + ok() + }), + cmd!(noundo "edit.deselectAll", "Deselect All", ["Edit"], Some("Cmd+Shift+A"), "{}", has_doc, |s, _| { + let st = s.doc_mut()?; + st.selection = Selection::default(); + st.revision += 1; + ok() + }), + cmd!("edit.clear", "Clear", ["Edit"], Some("Delete"), "{ids?} — delete selected items (or the selected text)", has_doc, |s, p| { + if s.doc()?.selection.text.is_some() && p.get("ids").is_none() { + return super::text::delete_selection(s); + } + let ids = super::targets(s, p)?; + s.edit(|d, sel| { + for id in &ids { + let _ = d.remove_item(*id); + } + *sel = Selection::default(); + Ok(json!({"deleted": ids.len()})) + }) + }), + cmd!(noundo "edit.copy", "Copy", ["Edit"], Some("Cmd+C"), "{}", has_selection, |s, _| { + s.clipboard = Some(Arc::new(clip_doc(s)?)); + ok() + }), + cmd!("edit.cut", "Cut", ["Edit"], Some("Cmd+X"), "{}", has_selection, |s, p| { + s.clipboard = Some(Arc::new(clip_doc(s)?)); + s.execute("edit.clear", p) + }), + cmd!("edit.paste", "Paste", ["Edit"], Some("Cmd+V"), "{inPlace?: bool}", has_clip, |s, p| { + let clip = s.clipboard.clone().expect("checked"); + let off = if bool_or(p, "inPlace", false) { 0.0 } else { 12.0 }; + let ids: Vec = clip.spreads.first().map(|sp| sp.items.iter().map(|i| i.id).collect()).unwrap_or_default(); + s.edit(|d, sel| { + let new = super::object::duplicate_from(d, &clip, &ids, SpreadRef::Doc(0), designcraft_geom::Vec2::new(off, off))?; + *sel = Selection::items(new.clone()); + Ok(json!({"ids": new.iter().map(|i| i.0).collect::>()})) + }) + }), + cmd!("edit.pasteInPlace", "Paste in Place", ["Edit"], Some("Cmd+Alt+Shift+V"), "{}", has_clip, |s, _| s + .execute("edit.paste", &json!({"inPlace": true}))), + cmd!("edit.duplicate", "Duplicate", ["Edit"], Some("Cmd+Alt+Shift+D"), "{}", has_selection, |s, _| s + .execute("transform.move", &json!({"dx": 12.0, "dy": 12.0, "copy": true}))), + ] +} + +/// A document holding copies of the selected items (and their stories) on spread 0. +fn clip_doc(s: &Session) -> Result { + let st = s.doc()?; + let mut d = (*st.doc).clone(); + let keep: Vec = st.selection.items.clone(); + // Gather the selected items (keep their spread coordinates) into spread 0. + let mut items = Vec::new(); + for id in &keep { + if let Some(it) = st.doc.item(*id) { + items.push(Arc::new(it.clone())); + } + } + for sp in d.spreads.iter_mut() { + Arc::make_mut(sp).items.clear(); + } + if let Some(sp) = d.spreads.first_mut() { + Arc::make_mut(sp).items = items; + } + Ok(d) +} + +#[allow(dead_code)] +fn _unused(_: Value) {} diff --git a/crates/engine/src/cmd/file.rs b/crates/engine/src/cmd/file.rs new file mode 100644 index 00000000..4c0f87e3 --- /dev/null +++ b/crates/engine/src/cmd/file.rs @@ -0,0 +1,258 @@ +//! File menu: new, open, save, place, export, close. + +use std::sync::Arc; + +use designcraft_doc::build::{NewDocument, PRESETS}; +use designcraft_doc::{Asset, AssetId, Content, Document, Graphic, Item, ItemId, Selection, Shape}; +use designcraft_geom::{Affine, Rect, shapes}; +use serde_json::{Value, json}; + +use super::{CommandSpec, always, bad, cmd, f64_or, has_doc, ok, str_param}; +use crate::{DocState, EngineError, Result, Session}; + +pub fn specs() -> Vec { + vec![ + cmd!(noundo "file.new", "Document…", ["File", "New"], Some("Cmd+N"), + "{preset?: \"Letter\"|\"A4\"|…, width?, height?, pages?, facingPages?, columns?, gutter?, margins?: number|{top,bottom,inside,outside}, bleed?, title?}", + always, file_new), + cmd!(noundo "file.newSample", "Sample Document", ["Help"], None, "{} — a multi-page magazine sample", always, file_sample), + cmd!(query "file.presets", "Document Presets", [], None, "{}", always, |_, _| Ok(serde_json::to_value(PRESETS).unwrap_or_default())), + cmd!(noundo "file.open", "Open…", ["File"], Some("Cmd+O"), "{path} — .designcraft (JSON)", always, file_open), + cmd!(noundo "file.openBytes", "Open Bytes", [], None, "{name, base64}", always, file_open_bytes), + cmd!(noundo "file.save", "Save", ["File"], Some("Cmd+S"), "{path?}", has_doc, file_save), + cmd!(noundo "file.saveAs", "Save As…", ["File"], Some("Cmd+Shift+S"), "{path}", has_doc, file_save), + cmd!(query "file.serialize", "Serialize", [], None, "{} → {json}", has_doc, |s, _| Ok(json!({"json": String::from_utf8_lossy(&to_bytes(&s.doc()?.doc)).to_string()}))), + cmd!(noundo "file.close", "Close", ["File"], Some("Cmd+W"), "{index?}", has_doc, |s, p| { + let i = p.get("index").and_then(Value::as_u64).map(|v| v as usize).or(s.active_index()).unwrap_or(0); + s.close_document(i); + ok() + }), + cmd!(noundo "file.activate", "Activate Document", [], None, "{index}", has_doc, |s, p| { + s.set_active(p.get("index").and_then(Value::as_u64).unwrap_or(0) as usize); + ok() + }), + cmd!( + "file.place", + "Place…", + ["File"], + Some("Cmd+D"), + "{path?|base64?, name?, frame?: id (place into), spread?, x?, y?, width?} — places an image; into the selected empty frame if any", + has_doc, + file_place + ), + ] +} + +pub fn to_bytes(d: &Document) -> Vec { + // Assets are embedded as base64 alongside the JSON document. + let mut v = serde_json::to_value(d).unwrap_or_default(); + let assets: serde_json::Map = d.assets.iter().map(|(k, a)| (k.0.to_string(), Value::from(base64_encode(&a.data)))).collect(); + v["assetData"] = Value::Object(assets); + v["format"] = json!({"name": "designcraft", "version": 1}); + serde_json::to_vec(&v).unwrap_or_default() +} + +pub fn from_bytes(b: &[u8]) -> Result { + let v: Value = serde_json::from_slice(b).map_err(|e| EngineError::Other(format!("not a DesignCraft document: {e}")))?; + let mut d: Document = serde_json::from_value(v.clone()).map_err(|e| EngineError::Other(format!("bad document: {e}")))?; + if let Some(data) = v.get("assetData").and_then(Value::as_object) { + for (k, s) in data { + if let (Ok(id), Some(s)) = (k.parse::(), s.as_str()) + && let Some(a) = d.assets.get_mut(&AssetId(id)) + { + Arc::make_mut(a).data = Arc::new(base64_decode(s)); + } + } + } + d.check()?; + Ok(d) +} + +fn file_new(s: &mut Session, p: &Value) -> Result { + let mut nd = match str_param(p, "preset") { + Some(name) => NewDocument::from_preset(name).ok_or_else(|| bad("file.new", format!("unknown preset `{name}`")))?, + None => NewDocument::default(), + }; + nd.width = f64_or(p, "width", nd.width); + nd.height = f64_or(p, "height", nd.height); + nd.pages = p.get("pages").and_then(Value::as_u64).map(|v| v as usize).unwrap_or(nd.pages).clamp(1, 9999); + nd.facing_pages = p.get("facingPages").and_then(Value::as_bool).unwrap_or(nd.facing_pages); + nd.columns = p.get("columns").and_then(Value::as_u64).map(|v| v as u32).unwrap_or(nd.columns); + nd.gutter = f64_or(p, "gutter", nd.gutter); + nd.primary_text_frame = p.get("primaryTextFrame").and_then(Value::as_bool).unwrap_or(false); + match p.get("margins") { + Some(Value::Number(n)) => nd.margins = designcraft_doc::Margins::uniform(n.as_f64().unwrap_or(36.0)), + Some(v @ Value::Object(_)) => { + if let Ok(m) = serde_json::from_value(v.clone()) { + nd.margins = m; + } + } + _ => {} + } + if let Some(b) = p.get("bleed").and_then(Value::as_f64) { + nd.bleed = [b; 4]; + } + s.untitled += 1; + nd.title = str_param(p, "title").map(str::to_string).unwrap_or_else(|| format!("Untitled-{}", s.untitled)); + if nd.width <= 0.0 || nd.height <= 0.0 || nd.width > 15552.0 || nd.height > 15552.0 { + return Err(bad("file.new", "page size out of range (0 < size ≤ 216 in)")); + } + let d = Document::new(&nd); + let i = s.add_document(DocState::new(d, None)); + Ok(json!({"index": i})) +} + +fn file_sample(s: &mut Session, _p: &Value) -> Result { + let d = crate::sample::magazine(); + let i = s.add_document(DocState::new(d, None)); + Ok(json!({"index": i})) +} + +fn file_open(s: &mut Session, p: &Value) -> Result { + let path = str_param(p, "path").ok_or_else(|| bad("file.open", "missing `path`"))?; + #[cfg(not(target_arch = "wasm32"))] + { + let bytes = std::fs::read(path).map_err(|e| EngineError::Other(format!("{path}: {e}")))?; + let d = from_bytes(&bytes)?; + let i = s.add_document(DocState::new(d, Some(path.to_string()))); + Ok(json!({"index": i})) + } + #[cfg(target_arch = "wasm32")] + { + let _ = (s, path); + Err(EngineError::Other("use file.openBytes on the web".into())) + } +} + +fn file_open_bytes(s: &mut Session, p: &Value) -> Result { + let b = base64_decode(str_param(p, "base64").unwrap_or("")); + let mut d = from_bytes(&b)?; + if let Some(n) = str_param(p, "name") { + d.title = n.to_string(); + } + let i = s.add_document(DocState::new(d, None)); + Ok(json!({"index": i})) +} + +fn file_save(s: &mut Session, p: &Value) -> Result { + let st = s.doc_mut()?; + let path = str_param(p, "path") + .map(str::to_string) + .or_else(|| st.path.clone()) + .ok_or_else(|| bad("file.save", "missing `path` (document has never been saved)"))?; + let bytes = to_bytes(&st.doc); + #[cfg(not(target_arch = "wasm32"))] + std::fs::write(&path, &bytes).map_err(|e| EngineError::Other(format!("{path}: {e}")))?; + st.path = Some(path.clone()); + st.saved_revision = st.revision; + st.saved_doc = st.doc.clone(); + Ok(json!({"path": path, "bytes": bytes.len()})) +} + +fn file_place(s: &mut Session, p: &Value) -> Result { + let (bytes, name, link) = if let Some(b) = str_param(p, "base64") { + (base64_decode(b), str_param(p, "name").unwrap_or("image").to_string(), None) + } else if let Some(path) = str_param(p, "path") { + #[cfg(not(target_arch = "wasm32"))] + let b = std::fs::read(path).map_err(|e| EngineError::Other(format!("{path}: {e}")))?; + #[cfg(target_arch = "wasm32")] + let b: Vec = vec![]; + let name = std::path::Path::new(path).file_name().map(|n| n.to_string_lossy().to_string()).unwrap_or_else(|| path.into()); + (b, name, Some(path.to_string())) + } else { + s.ui_requests.push(crate::UiRequest::Pick { purpose: "place".into(), params: json!({}) }); + return ok(); + }; + let (pw, ph) = designcraft_render::image_size(&bytes).ok_or_else(|| bad("file.place", "unsupported or corrupt image"))?; + // 72 ppi by default unless the file says otherwise; scale so it fits the page when huge. + let (nw, nh) = (pw as f64, ph as f64); + let target_frame = super::id_param(p, "frame").or_else(|| { + let st = s.active()?; + st.selection.items.iter().copied().find(|i| st.doc.item(*i).is_some_and(|it| matches!(it.content, Content::Unassigned | Content::Graphic(_)))) + }); + let spread = super::spread_param(p, "spread"); + let lid = s.doc()?.active_layer; + let px = p.get("x").and_then(Value::as_f64); + let py = p.get("y").and_then(Value::as_f64); + let want_w = p.get("width").and_then(Value::as_f64); + s.edit(|d, sel| { + let aid = AssetId(d.alloc()); + let mime = designcraft_render::image_mime(&bytes).to_string(); + d.assets.insert(aid, Arc::new(Asset { id: aid, name, mime, link, data: Arc::new(bytes), pixels: Some((pw, ph)) })); + let (w, h) = match want_w { + Some(w) => (w, w * nh / nw), + None => { + let page_w = d.settings.page_width * 0.6; + if nw > page_w { (page_w, page_w * nh / nw) } else { (nw, nh) } + } + }; + let id = if let Some(fid) = target_frame { + let it = d.item_mut(fid).ok_or(designcraft_doc::DocError::NoItem(fid))?; + let r = it.inner_bounds(); + // Fill frame proportionally. + let k = (r.width() / nw).max(r.height() / nh); + let (gw, gh) = (nw * k, nh * k); + it.content = Content::Graphic(Graphic { + asset: aid, + size: (nw, nh), + xf: Affine::translate((r.x0 + (r.width() - gw) / 2.0, r.y0 + (r.height() - gh) / 2.0)) * Affine::scale(k), + auto_fit: designcraft_doc::Fitting::FillProportionally, + }); + fid + } else { + let sp = d.spread(spread).ok_or_else(|| bad("file.place", "no such spread"))?; + let pr = sp.pages.first().map(|pg| pg.margin_rect()).unwrap_or(Rect::new(36.0, 36.0, 300.0, 300.0)); + let (x, y) = (px.unwrap_or(pr.x0), py.unwrap_or(pr.y0)); + let id = ItemId(d.alloc()); + let mut it = Item::new(id, lid, Shape::Rectangle, shapes::rectangle(Rect::new(x, y, x + w, y + h))); + it.object_style = d.styles.default_graphic_frame.clone(); + it.content = Content::Graphic(Graphic { + asset: aid, + size: (nw, nh), + xf: Affine::translate((x, y)) * Affine::scale(w / nw), + auto_fit: Default::default(), + }); + d.insert_item(spread, it, None)?; + id + }; + *sel = Selection::items(vec![id]); + Ok(json!({"id": id.0, "asset": aid.0})) + }) +} + +const B64: &[u8; 64] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +pub fn base64_encode(data: &[u8]) -> String { + let mut out = String::with_capacity(data.len().div_ceil(3) * 4); + for c in data.chunks(3) { + let n = (c[0] as u32) << 16 | (*c.get(1).unwrap_or(&0) as u32) << 8 | *c.get(2).unwrap_or(&0) as u32; + out.push(B64[(n >> 18) as usize & 63] as char); + out.push(B64[(n >> 12) as usize & 63] as char); + out.push(if c.len() > 1 { B64[(n >> 6) as usize & 63] as char } else { '=' }); + out.push(if c.len() > 2 { B64[n as usize & 63] as char } else { '=' }); + } + out +} + +pub fn base64_decode(s: &str) -> Vec { + let mut out = Vec::with_capacity(s.len() * 3 / 4); + let mut buf = 0u32; + let mut bits = 0; + for b in s.bytes() { + let v = match b { + b'A'..=b'Z' => b - b'A', + b'a'..=b'z' => b - b'a' + 26, + b'0'..=b'9' => b - b'0' + 52, + b'+' | b'-' => 62, + b'/' | b'_' => 63, + _ => continue, + } as u32; + buf = buf << 6 | v; + bits += 6; + if bits >= 8 { + bits -= 8; + out.push((buf >> bits) as u8); + } + } + out +} diff --git a/crates/engine/src/cmd/inspect.rs b/crates/engine/src/cmd/inspect.rs new file mode 100644 index 00000000..f208ce2c --- /dev/null +++ b/crates/engine/src/cmd/inspect.rs @@ -0,0 +1,95 @@ +//! Queries for agents and UIs: document structure, items, pages. + +use designcraft_doc::{Content, Item}; +use serde_json::{Value, json}; + +use super::{CommandSpec, always, cmd, has_doc}; +use crate::{Result, Session}; + +pub fn specs() -> Vec { + vec![ + cmd!(query "document.inspect", "Inspect Document", [], None, "{} → pages, spreads, items, stories (with overset), styles, swatches, selection", has_doc, inspect), + cmd!(query "document.list", "List Documents", [], None, "{}", always, |s, _| { + Ok(json!(s.documents().iter().enumerate().map(|(i, d)| json!({"index": i, "title": d.title(), "dirty": d.is_dirty(), "active": Some(i) == s.active_index()})).collect::>())) + }), + cmd!(noundo "tool.select", "Select Tool", [], None, "{tool: selection|directSelection|type|rectangleFrame|…}", always, |s, p| { + let t = p.get("tool").and_then(Value::as_str).unwrap_or("selection"); + if designcraft_tools::tool_info(t).is_none() { + return Err(super::bad("tool.select", format!("unknown tool `{t}`"))); + } + s.set_tool(t); + Ok(json!({"tool": s.tool_id()})) + }), + cmd!(query "tool.list", "List Tools", [], None, "{}", always, |_, _| Ok(serde_json::to_value(designcraft_tools::TOOL_GROUPS).unwrap_or_default())), + cmd!(query "document.history", "History", [], None, "{}", has_doc, |s, _| { + let st = s.doc()?; + Ok(json!({"undo": st.history.undo.iter().map(|e| &e.label).collect::>(), "redo": st.history.redo.iter().map(|e| &e.label).collect::>()})) + }), + ] +} + +fn item_json(it: &Item) -> Value { + let b = it.bounds(); + let mut v = json!({ + "id": it.id.0, "name": it.name, "kind": it.default_label(), "layer": it.layer.0, + "bounds": [b.x0, b.y0, b.x1, b.y1], "fill": it.fill.swatch, "stroke": {"swatch": it.stroke.swatch, "weight": it.stroke.weight}, + "locked": it.locked, "hidden": it.hidden, + }); + match &it.content { + Content::Text(t) => { + v["story"] = json!(t.story.0); + v["columns"] = json!(t.options.columns); + } + Content::Graphic(g) => v["asset"] = json!(g.asset.0), + Content::Group { items } => v["children"] = Value::Array(items.iter().map(|c| item_json(c)).collect()), + Content::Unassigned => {} + } + v +} + +fn inspect(s: &mut Session, _p: &Value) -> Result { + let st = s.doc()?; + let d = &st.doc; + let spreads: Vec = d + .spreads + .iter() + .enumerate() + .map(|(si, sp)| { + json!({ + "index": si, + "pages": sp.pages.iter().enumerate().map(|(pi, p)| { + let abs = d.first_page_of_spread(si) + pi; + json!({"index": abs, "name": d.page_name(abs), "bounds": [p.x, 0.0, p.x + p.width, p.height], "side": p.side, + "parent": p.parent.and_then(|pid| d.parents.iter().find(|x| x.id == pid)).and_then(|x| x.parent.as_ref()).map(|i| i.label()), + "margins": p.margins, "columns": p.columns.count}) + }).collect::>(), + "items": sp.items.iter().map(|i| item_json(i)).collect::>(), + }) + }) + .collect(); + let stories: Vec = d + .stories + .values() + .map(|story| { + let cs = s.cache.get(d, story.id, None); + let preview: String = story.text.chars().take(80).collect(); + json!({"id": story.id.0, "frames": story.frames.iter().map(|f| f.0).collect::>(), "length": story.len(), "paragraphs": story.paras.len(), + "overset": cs.overset_at.is_some(), "lines": cs.line_count(), "preview": preview}) + }) + .collect(); + Ok(json!({ + "title": st.title(), "path": st.path, "dirty": st.is_dirty(), "pageCount": d.page_count(), + "settings": {"pageWidth": d.settings.page_width, "pageHeight": d.settings.page_height, "facingPages": d.settings.facing_pages, "intent": d.settings.intent}, + "spreads": spreads, + "parents": d.parents.iter().map(|p| json!({"id": p.id.0, "label": p.parent.as_ref().map(|i| i.label()), "items": p.items.len()})).collect::>(), + "layers": d.layers, + "stories": stories, + "paragraphStyles": d.styles.paragraph.iter().map(|p| &p.name).collect::>(), + "characterStyles": d.styles.character.iter().map(|p| &p.name).collect::>(), + "swatches": d.swatches.iter().map(|w| &w.name).collect::>(), + "selection": st.selection, + "activeLayer": st.active_layer.0, + "tool": s.tool_id(), + "canUndo": !st.history.undo.is_empty(), + })) +} diff --git a/crates/engine/src/cmd/layout.rs b/crates/engine/src/cmd/layout.rs new file mode 100644 index 00000000..1c689fca --- /dev/null +++ b/crates/engine/src/cmd/layout.rs @@ -0,0 +1,260 @@ +//! Layout menu and Pages/Layers panels: pages, spreads, parents, margins & columns, layers. + +use designcraft_doc::{LAYER_COLORS, Layer, LayerId, Margins, SpreadId}; +use serde_json::{Value, json}; + +use super::{CommandSpec, bad, cmd, has_doc, ok, str_param}; +use crate::Result; + +pub fn specs() -> Vec { + vec![ + cmd!( + "layout.pages.insert", + "Insert Pages…", + ["Layout", "Pages"], + Some("Cmd+Shift+P"), + "{count?: 1, after?: page index (default: last), parent?: \"A\"|null}", + has_doc, + |s, p| { + let count = p.get("count").and_then(Value::as_u64).unwrap_or(1).clamp(1, 9999) as usize; + let st = s.doc()?; + let n = st.doc.page_count(); + let after = p.get("after").and_then(Value::as_u64).map(|v| v as usize).unwrap_or(n - 1); + let parent = parent_ref(&st.doc, p.get("parent")).unwrap_or_else(|| st.doc.parents.first().map(|x| x.id)); + s.edit(|d, _| { + let ids = d.insert_pages(Some(after), count, parent)?; + Ok(json!({"pages": ids.len(), "total": d.page_count()})) + }) + } + ), + cmd!("layout.pages.delete", "Delete Pages", ["Layout", "Pages"], None, "{pages: [index]}", has_doc, |s, p| { + let pages: Vec = p + .get("pages") + .and_then(Value::as_array) + .map(|a| a.iter().filter_map(Value::as_u64).map(|v| v as usize).collect()) + .unwrap_or_default(); + s.edit(|d, sel| { + d.delete_pages(&pages)?; + sel.items.retain(|i| d.item(*i).is_some()); + sel.text = sel.text.filter(|t| d.story(t.story).is_some()); + ok() + }) + }), + cmd!("layout.pages.move", "Move Pages…", ["Layout", "Pages"], None, "{from, to}", has_doc, |s, p| { + let from = p.get("from").and_then(Value::as_u64).ok_or_else(|| bad("layout.pages.move", "missing from"))? as usize; + let to = p.get("to").and_then(Value::as_u64).ok_or_else(|| bad("layout.pages.move", "missing to"))? as usize; + s.edit(|d, _| { + d.move_page(from, to)?; + ok() + }) + }), + cmd!("layout.pages.duplicateSpread", "Duplicate Spread", ["Layout", "Pages"], None, "{spread}", has_doc, |s, p| { + let si = p.get("spread").and_then(Value::as_u64).unwrap_or(0) as usize; + s.edit(|d, _| { + let sp = d.spreads.get(si).cloned().ok_or_else(|| bad("layout.pages.duplicateSpread", "no such spread"))?; + let after = d.first_page_of_spread(si) + sp.pages.len() - 1; + let parent = sp.pages.first().and_then(|p| p.parent); + d.insert_pages(Some(after), sp.pages.len(), parent)?; + // Copy items onto the new spread(s) at the same positions. + let src = d.clone(); + let ids: Vec<_> = sp.items.iter().map(|i| i.id).collect(); + let (nsi, _) = d.page_loc(after + 1).ok_or_else(|| bad("layout.pages.duplicateSpread", "insert failed"))?; + super::object::duplicate_from(d, &src, &ids, designcraft_doc::SpreadRef::Doc(nsi), designcraft_geom::Vec2::ZERO)?; + ok() + }) + }), + cmd!( + "layout.pages.applyParent", + "Apply Parent to Pages…", + ["Layout", "Pages"], + None, + "{pages: [index], parent: \"A\"|null}", + has_doc, + |s, p| { + let pages: Vec = p + .get("pages") + .and_then(Value::as_array) + .map(|a| a.iter().filter_map(Value::as_u64).map(|v| v as usize).collect()) + .unwrap_or_default(); + let parent = parent_ref(&s.doc()?.doc, p.get("parent")).unwrap_or(None); + s.edit(|d, _| { + d.apply_parent(&pages, parent)?; + ok() + }) + } + ), + cmd!("layout.parents.new", "New Parent…", ["Layout", "Pages"], None, "{prefix?, name?: \"Parent\"}", has_doc, |s, p| { + let name = str_param(p, "name").unwrap_or("Parent").to_string(); + s.edit(|d, _| { + let prefix = str_param(p, "prefix").map(str::to_string).unwrap_or_else(|| d.next_parent_prefix()); + let m = d.page(0).map(|p| (p.columns.count, p.columns.gutter, p.margins)).unwrap_or((1, 12.0, Margins::uniform(36.0))); + let id = d.add_parent(&prefix, &name, m.0, m.1, m.2); + Ok(json!({"id": id.0, "prefix": prefix})) + }) + }), + cmd!(noundo "layout.parents.edit", "Edit Parents", [], None, "{on: bool} — show parent spreads on the canvas", has_doc, |s, p| { + let st = s.doc_mut()?; + st.editing_parents = p.get("on").and_then(Value::as_bool).unwrap_or(!st.editing_parents); + st.selection = Default::default(); + st.revision += 1; + ok() + }), + cmd!( + "layout.marginsAndColumns", + "Margins and Columns…", + ["Layout"], + None, + "{pages?: [index] (default all), margins?: number|{top,bottom,inside,outside}, columns?, gutter?}", + has_doc, + |s, p| { + let pages: Option> = + p.get("pages").and_then(Value::as_array).map(|a| a.iter().filter_map(Value::as_u64).map(|v| v as usize).collect()); + let p = p.clone(); + s.edit(|d, _| { + let all: Vec = pages.clone().unwrap_or_else(|| (0..d.page_count()).collect()); + for abs in all { + let Some((si, pi)) = d.page_loc(abs) else { continue }; + let pg = &mut std::sync::Arc::make_mut(&mut d.spreads[si]).pages[pi]; + match p.get("margins") { + Some(Value::Number(n)) => pg.margins = Margins::uniform(n.as_f64().unwrap_or(36.0)), + Some(v @ Value::Object(_)) => { + if let Ok(m) = serde_json::from_value(v.clone()) { + pg.margins = m; + } + } + _ => {} + } + if let Some(c) = p.get("columns").and_then(Value::as_u64) { + pg.columns.count = (c as u32).clamp(1, 216); + } + if let Some(g) = p.get("gutter").and_then(Value::as_f64) { + pg.columns.gutter = g.max(0.0); + } + } + ok() + }) + } + ), + cmd!( + "layout.documentSetup", + "Document Setup…", + ["File"], + Some("Cmd+Alt+P"), + "{width?, height?, facingPages?, bleed?: number}", + has_doc, + |s, p| { + let p = p.clone(); + s.edit(|d, _| { + if let Some(f) = p.get("facingPages").and_then(Value::as_bool) { + d.settings.facing_pages = f; + } + if let Some(b) = p.get("bleed").and_then(Value::as_f64) { + d.settings.bleed = [b; 4]; + } + let w = p.get("width").and_then(Value::as_f64); + let h = p.get("height").and_then(Value::as_f64); + if w.is_some() || h.is_some() { + d.settings.page_width = w.unwrap_or(d.settings.page_width); + d.settings.page_height = h.unwrap_or(d.settings.page_height); + for sp in d.spreads.iter_mut().chain(d.parents.iter_mut()) { + let sp = std::sync::Arc::make_mut(sp); + for pg in &mut sp.pages { + pg.width = d.settings.page_width; + pg.height = d.settings.page_height; + } + sp.relayout(); + } + } + d.repaginate(); + ok() + }) + } + ), + cmd!("layer.new", "New Layer…", [], None, "{name?}", has_doc, |s, p| { + let name = str_param(p, "name").map(str::to_string); + let r = s.edit(|d, _| { + let id = LayerId(d.alloc()); + let n = d.layers.len(); + let name = name.clone().unwrap_or_else(|| format!("Layer {}", n + 1)); + d.layers.insert( + 0, + Layer { + id, + name, + color: LAYER_COLORS[n % LAYER_COLORS.len()].1, + visible: true, + locked: false, + printable: true, + show_guides: true, + suppress_wrap_when_hidden: false, + }, + ); + Ok(id) + })?; + s.doc_mut()?.active_layer = r; + Ok(json!({"id": r.0})) + }), + cmd!("layer.set", "Layer Options…", [], None, "{id, name?, visible?, locked?, printable?, color?: [r,g,b]}", has_doc, |s, p| { + let id = LayerId(p.get("id").and_then(Value::as_u64).unwrap_or(0)); + let p = p.clone(); + s.edit(|d, _| { + let l = d.layer_mut(id).ok_or_else(|| bad("layer.set", "no such layer"))?; + if let Some(v) = p.get("name").and_then(Value::as_str) { + l.name = v.into(); + } + if let Some(v) = p.get("visible").and_then(Value::as_bool) { + l.visible = v; + } + if let Some(v) = p.get("locked").and_then(Value::as_bool) { + l.locked = v; + } + if let Some(v) = p.get("printable").and_then(Value::as_bool) { + l.printable = v; + } + if let Some(c) = p.get("color").and_then(|c| serde_json::from_value(c.clone()).ok()) { + l.color = c; + } + ok() + }) + }), + cmd!("layer.delete", "Delete Layer", [], None, "{id}", has_doc, |s, p| { + let id = LayerId(p.get("id").and_then(Value::as_u64).unwrap_or(0)); + s.edit(|d, sel| { + if d.layers.len() < 2 { + return Err(bad("layer.delete", "a document needs at least one layer")); + } + let doomed: Vec<_> = + d.spreads.iter().chain(d.parents.iter()).flat_map(|sp| sp.items.iter().filter(|i| i.layer == id).map(|i| i.id)).collect(); + for i in doomed { + let _ = d.remove_item(i); + } + d.layers.retain(|l| l.id != id); + *sel = Default::default(); + ok() + }) + }), + cmd!(noundo "layer.activate", "Set Active Layer", [], None, "{id}", has_doc, |s, p| { + let id = LayerId(p.get("id").and_then(Value::as_u64).unwrap_or(0)); + let st = s.doc_mut()?; + if st.doc.layer(id).is_none() { + return Err(bad("layer.activate", "no such layer")); + } + st.active_layer = id; + st.revision += 1; + ok() + }), + ] +} + +/// `"A"` → that parent's id; `null` → Some(None) (= [None]); missing → None (use default). +fn parent_ref(d: &designcraft_doc::Document, v: Option<&Value>) -> Option> { + match v? { + Value::Null => Some(None), + Value::String(s) if s == "[None]" => Some(None), + Value::String(s) => Some(d.parents.iter().find(|p| p.parent.as_ref().is_some_and(|i| i.prefix == *s || i.label() == *s)).map(|p| p.id)), + _ => None, + } +} + +#[allow(dead_code)] +fn _r(_: Result<()>) {} diff --git a/crates/engine/src/cmd/mod.rs b/crates/engine/src/cmd/mod.rs new file mode 100644 index 00000000..a95f2882 --- /dev/null +++ b/crates/engine/src/cmd/mod.rs @@ -0,0 +1,176 @@ +//! The command registry. Ids follow InDesign's menu structure. + +mod edit; +mod file; +mod inspect; +mod layout; +mod object; +mod style; +pub mod text; + +use designcraft_doc::{ItemId, SpreadRef}; +use designcraft_geom::{Point, Rect}; +use serde::Serialize; +use serde_json::Value; + +use crate::{EngineError, Result, Session}; + +pub type Run = fn(&mut Session, &Value) -> Result; +pub type Enabled = fn(&Session) -> std::result::Result<(), String>; + +pub struct CommandSpec { + pub id: &'static str, + pub label: &'static str, + /// Menu placement, e.g. `["Object", "Arrange"]`. Empty = not in menus. + pub menu: &'static [&'static str], + pub shortcut: Option<&'static str>, + pub params: &'static str, + pub enabled: Enabled, + pub run: Run, + pub journal: bool, + /// Record an undo step when the document changes. + pub undoable: bool, +} + +#[derive(Clone, Debug, Serialize)] +pub struct CommandInfo { + pub id: &'static str, + pub label: &'static str, + pub menu: Vec<&'static str>, + pub shortcut: Option<&'static str>, + pub params: &'static str, + pub enabled: bool, + #[serde(skip_serializing_if = "Option::is_none")] + pub disabled_reason: Option, +} + +impl CommandSpec { + pub fn info(&self, s: &Session) -> CommandInfo { + let e = (self.enabled)(s); + CommandInfo { + id: self.id, + label: self.label, + menu: self.menu.to_vec(), + shortcut: self.shortcut, + params: self.params, + enabled: e.is_ok(), + disabled_reason: e.err(), + } + } +} + +pub fn always(_: &Session) -> std::result::Result<(), String> { + Ok(()) +} +pub fn has_doc(s: &Session) -> std::result::Result<(), String> { + s.active().map(|_| ()).ok_or_else(|| "no document open".into()) +} +pub fn has_selection(s: &Session) -> std::result::Result<(), String> { + has_doc(s)?; + if s.active().is_some_and(|d| !d.selection.items.is_empty()) { Ok(()) } else { Err("nothing selected".into()) } +} +pub fn has_text(s: &Session) -> std::result::Result<(), String> { + has_doc(s)?; + if s.active().is_some_and(|d| d.selection.text.is_some()) { Ok(()) } else { Err("no text insertion point".into()) } +} +pub fn has_text_or_frames(s: &Session) -> std::result::Result<(), String> { + has_doc(s)?; + if s.active().is_some_and(|d| d.selection.text.is_some() || d.selection.items.iter().any(|i| d.doc.item(*i).is_some_and(|x| x.is_text_frame()))) { + Ok(()) + } else { + Err("select text or a text frame".into()) + } +} + +macro_rules! cmd { + ($id:literal, $label:literal, [$($m:literal),*], $sc:expr, $params:literal, $en:expr, $run:expr) => { + $crate::cmd::CommandSpec { id: $id, label: $label, menu: &[$($m),*], shortcut: $sc, params: $params, enabled: $en, run: $run, journal: true, undoable: true } + }; + (query $id:literal, $label:literal, [$($m:literal),*], $sc:expr, $params:literal, $en:expr, $run:expr) => { + $crate::cmd::CommandSpec { id: $id, label: $label, menu: &[$($m),*], shortcut: $sc, params: $params, enabled: $en, run: $run, journal: false, undoable: false } + }; + (noundo $id:literal, $label:literal, [$($m:literal),*], $sc:expr, $params:literal, $en:expr, $run:expr) => { + $crate::cmd::CommandSpec { id: $id, label: $label, menu: &[$($m),*], shortcut: $sc, params: $params, enabled: $en, run: $run, journal: true, undoable: false } + }; +} +pub(crate) use cmd; + +pub fn command_specs() -> &'static [CommandSpec] { + static SPECS: std::sync::OnceLock> = std::sync::OnceLock::new(); + SPECS.get_or_init(|| { + let mut v = Vec::new(); + v.extend(file::specs()); + v.extend(edit::specs()); + v.extend(object::specs()); + v.extend(text::specs()); + v.extend(style::specs()); + v.extend(layout::specs()); + v.extend(inspect::specs()); + v + }) +} + +pub fn find_command(id: &str) -> Option<&'static CommandSpec> { + command_specs().iter().find(|c| c.id == id) +} + +// ---------- param helpers ---------- + +pub(crate) fn bad(cmd: &str, msg: impl Into) -> EngineError { + EngineError::BadParams { cmd: cmd.into(), msg: msg.into() } +} +pub(crate) fn f64_or(p: &Value, key: &str, default: f64) -> f64 { + p.get(key).and_then(Value::as_f64).unwrap_or(default) +} +pub(crate) fn bool_or(p: &Value, key: &str, default: bool) -> bool { + p.get(key).and_then(Value::as_bool).unwrap_or(default) +} +pub(crate) fn str_param<'a>(p: &'a Value, key: &str) -> Option<&'a str> { + p.get(key).and_then(Value::as_str) +} +pub(crate) fn id_param(p: &Value, key: &str) -> Option { + p.get(key).and_then(Value::as_u64).map(ItemId) +} +pub(crate) fn ids_param(p: &Value, key: &str) -> Option> { + p.get(key).and_then(Value::as_array).map(|a| a.iter().filter_map(Value::as_u64).map(ItemId).collect()) +} +pub(crate) fn point_param(p: &Value, key: &str) -> Option { + let a = p.get(key)?.as_array()?; + Some(Point::new(a.first()?.as_f64()?, a.get(1)?.as_f64()?)) +} +pub(crate) fn rect_param(p: &Value, key: &str) -> Option { + let a = p.get(key)?.as_array()?; + let f = |i: usize| a.get(i).and_then(Value::as_f64); + Some(Rect::new(f(0)?, f(1)?, f(2)?, f(3)?)) +} +/// `{"kind":"doc","index":0}`, `0` or absent (= spread 0). +pub(crate) fn spread_param(p: &Value, key: &str) -> SpreadRef { + match p.get(key) { + Some(Value::Number(n)) => SpreadRef::Doc(n.as_u64().unwrap_or(0) as usize), + Some(v) => serde_json::from_value(v.clone()).unwrap_or(SpreadRef::Doc(0)), + None => SpreadRef::Doc(0), + } +} + +/// Targets: `ids` / `id` params or the selection. +pub(crate) fn targets(s: &Session, p: &Value) -> Result> { + if let Some(ids) = ids_param(p, "ids") { + return Ok(ids); + } + if let Some(id) = id_param(p, "id") { + return Ok(vec![id]); + } + Ok(s.doc()?.selection.items.clone()) +} + +pub(crate) fn ok() -> Result { + Ok(Value::Null) +} + +pub fn file_bytes(d: &designcraft_doc::Document) -> Vec { + file::to_bytes(d) +} +pub fn file_from(b: &[u8]) -> Result { + file::from_bytes(b) +} +pub use file::{base64_decode, base64_encode}; diff --git a/crates/engine/src/cmd/object.rs b/crates/engine/src/cmd/object.rs new file mode 100644 index 00000000..e1253f61 --- /dev/null +++ b/crates/engine/src/cmd/object.rs @@ -0,0 +1,725 @@ +//! Object creation and the Object menu: frames, lines, transforms, arrange, group, lock/hide, +//! fill/stroke, content type, Text Frame Options, corners, fitting, text wrap. + +use std::collections::HashMap; +use std::sync::Arc; + +use designcraft_doc::{ + Content, Document, Fill, Item, ItemId, ParaFormat, Selection, Shape, SpreadRef, Story, StoryId, Stroke, TextFrame, TextFrameOptions, TextSel, +}; +use designcraft_geom::{Affine, Point, Rect, Vec2, shapes}; +use serde_json::{Value, json}; + +use super::{CommandSpec, bad, bool_or, cmd, f64_or, has_doc, has_selection, ok, point_param, rect_param, spread_param, str_param, targets}; +use crate::{Result, Session}; + +pub fn specs() -> Vec { + vec![ + cmd!( + "frame.create", + "Create Frame", + [], + None, + "{spread?, rect: [x0,y0,x1,y1] (spread coords), shape?: rectangle|ellipse|polygon, content?: graphic|text|unassigned, sides?: 6, text?: string, caret?: bool}", + has_doc, + frame_create + ), + cmd!("line.create", "Create Line", [], None, "{spread?, a: [x,y], b: [x,y]}", has_doc, line_create), + cmd!("transform.move", "Move", ["Object", "Transform"], None, "{dx, dy, copy?: bool, ids?, toSpread?}", has_selection, transform_move), + cmd!("transform.resize", "Resize", [], None, "{from: rect, to: rect, content?: bool (scale content), ids?}", has_selection, transform_resize), + cmd!("transform.rotate", "Rotate", ["Object", "Transform"], None, "{angle (degrees, CCW), ids?}", has_selection, transform_rotate), + cmd!("transform.flip", "Flip", ["Object", "Transform"], None, "{axis: horizontal|vertical, ids?}", has_selection, |s, p| { + let h = str_param(p, "axis") != Some("vertical"); + apply_about_center(s, p, if h { Affine::scale_non_uniform(-1.0, 1.0) } else { Affine::scale_non_uniform(1.0, -1.0) }) + }), + cmd!( + "transform.set", + "Transform Panel", + [], + None, + "{x?, y?, width?, height?, ref?: 0..8} — reference-point based geometry", + has_selection, + transform_set + ), + cmd!("object.arrange", "Arrange", ["Object", "Arrange"], None, "{to: front|forward|backward|back}", has_selection, arrange), + cmd!("object.bringToFront", "Bring to Front", ["Object", "Arrange"], Some("Cmd+Shift+]"), "{}", has_selection, |s, _| s + .execute("object.arrange", &json!({"to": "front"}))), + cmd!("object.bringForward", "Bring Forward", ["Object", "Arrange"], Some("Cmd+]"), "{}", has_selection, |s, _| s + .execute("object.arrange", &json!({"to": "forward"}))), + cmd!("object.sendBackward", "Send Backward", ["Object", "Arrange"], Some("Cmd+["), "{}", has_selection, |s, _| s + .execute("object.arrange", &json!({"to": "backward"}))), + cmd!("object.sendToBack", "Send to Back", ["Object", "Arrange"], Some("Cmd+Shift+["), "{}", has_selection, |s, _| s + .execute("object.arrange", &json!({"to": "back"}))), + cmd!("object.group", "Group", ["Object"], Some("Cmd+G"), "{ids?}", has_selection, group), + cmd!("object.ungroup", "Ungroup", ["Object"], Some("Cmd+Shift+G"), "{ids?}", has_selection, ungroup), + cmd!("object.lock", "Lock", ["Object"], Some("Cmd+L"), "{ids?}", has_selection, |s, p| set_flag(s, p, |i| i.locked = true, true)), + cmd!("object.unlockAll", "Unlock All on Spread", ["Object"], Some("Cmd+Alt+L"), "{}", has_doc, |s, _| all_flag(s, |i| i.locked = false)), + cmd!("object.hide", "Hide", ["Object"], Some("Cmd+3"), "{ids?}", has_selection, |s, p| set_flag(s, p, |i| i.hidden = true, true)), + cmd!("object.showAll", "Show All on Spread", ["Object"], Some("Cmd+Alt+3"), "{}", has_doc, |s, _| all_flag(s, |i| i.hidden = false)), + cmd!("object.fill", "Fill", [], None, "{swatch, tint?: 0..1, ids?}", has_selection, |s, p| { + let sw = str_param(p, "swatch").ok_or_else(|| bad("object.fill", "missing swatch"))?.to_string(); + let tint = f64_or(p, "tint", 1.0) as f32; + set_flag(s, p, move |i| i.fill = Fill { swatch: sw.clone(), tint, ..i.fill.clone() }, false) + }), + cmd!( + "object.stroke", + "Stroke", + [], + None, + "{swatch?, tint?, weight?, align?: center|inside|outside, type?: {kind:…}, cap?, join?, ids?}", + has_selection, + |s, p| { + let p2 = p.clone(); + set_flag( + s, + p, + move |i| { + let mut st = if i.stroke.is_none() && p2.get("swatch").is_none() { Stroke::default() } else { i.stroke.clone() }; + if let Some(v) = p2.get("swatch").and_then(Value::as_str) { + st.swatch = v.into(); + } + if let Some(v) = p2.get("tint").and_then(Value::as_f64) { + st.tint = v as f32; + } + if let Some(v) = p2.get("weight").and_then(Value::as_f64) { + st.weight = v.max(0.0); + } + for (k, apply) in [("align", 0), ("type", 1), ("cap", 2), ("join", 3), ("start", 4), ("end", 5)] { + if let Some(v) = p2.get(k).cloned() { + let _ = match apply { + 0 => serde_json::from_value(v).map(|x| st.align = x), + 1 => serde_json::from_value(v).map(|x| st.kind = x), + 2 => serde_json::from_value(v).map(|x| st.cap = x), + 3 => serde_json::from_value(v).map(|x| st.join = x), + 4 => serde_json::from_value(v).map(|x| st.start = x), + _ => serde_json::from_value(v).map(|x| st.end = x), + }; + } + } + i.stroke = st; + }, + false, + ) + } + ), + cmd!("object.opacity", "Opacity", [], None, "{opacity: 0..1, blend?: normal|multiply|…, ids?}", has_selection, |s, p| { + let o = f64_or(p, "opacity", 1.0).clamp(0.0, 1.0) as f32; + let blend = p.get("blend").and_then(|b| serde_json::from_value(b.clone()).ok()); + set_flag( + s, + p, + move |i| { + i.opacity = o; + if let Some(b) = blend { + i.blend = b; + } + }, + false, + ) + }), + cmd!( + "object.dropShadow", + "Drop Shadow", + ["Object", "Effects"], + Some("Cmd+Alt+M"), + "{on?: bool, distance?, angle?, opacity?, size?, ids?}", + has_selection, + |s, p| { + let p2 = p.clone(); + set_flag( + s, + p, + move |i| { + let ds = &mut i.effects.drop_shadow; + ds.on = p2.get("on").and_then(Value::as_bool).unwrap_or(!ds.on); + ds.distance = f64_or(&p2, "distance", ds.distance); + ds.angle = f64_or(&p2, "angle", ds.angle); + ds.opacity = f64_or(&p2, "opacity", ds.opacity as f64) as f32; + ds.size = f64_or(&p2, "size", ds.size); + }, + false, + ) + } + ), + cmd!("object.content", "Content", ["Object", "Content"], None, "{type: graphic|text|unassigned, ids?}", has_selection, content_type), + cmd!( + "object.textFrameOptions", + "Text Frame Options…", + ["Object"], + Some("Cmd+B"), + "{columns?, gutter?, inset?: number|[t,l,b,r], verticalJustification?: top|center|bottom|justify, firstBaseline?, autoSize?, ignoreWrap?, balanceColumns?, ids?}", + has_selection, + text_frame_options + ), + cmd!( + "object.cornerOptions", + "Corner Options…", + ["Object"], + None, + "{shape: none|rounded|inverseRounded|inset|bevel|fancy, size, ids?}", + has_selection, + |s, p| { + let shape = + p.get("shape").and_then(|v| serde_json::from_value(v.clone()).ok()).unwrap_or(designcraft_geom::corners::CornerShape::Rounded); + let size = f64_or(p, "size", 12.0); + set_flag(s, p, move |i| i.corners = designcraft_geom::corners::CornerOptions::uniform(shape, size), false) + } + ), + cmd!( + "object.textWrap", + "Text Wrap", + ["Window"], + Some("Cmd+Alt+W"), + "{mode: none|boundingBox|contour|jumpObject|jumpToNextColumn, offset?: number|[t,l,b,r], ids?}", + has_selection, + |s, p| { + let mode = p.get("mode").and_then(|v| serde_json::from_value(v.clone()).ok()).unwrap_or(designcraft_doc::WrapMode::BoundingBox); + let off = match p.get("offset") { + Some(Value::Number(n)) => Some([n.as_f64().unwrap_or(0.0); 4]), + Some(v) => serde_json::from_value(v.clone()).ok(), + None => None, + }; + set_flag( + s, + p, + move |i| { + i.wrap.mode = mode; + if let Some(o) = off { + i.wrap.offsets = o; + } + }, + false, + ) + } + ), + cmd!( + "object.fit", + "Fitting", + ["Object", "Fitting"], + None, + "{mode: fillProportionally|fitProportionally|fitContentToFrame|centerContent|fitFrameToContent, ids?}", + has_selection, + fit + ), + cmd!("object.rename", "Rename", [], None, "{id, name}", has_doc, |s, p| { + let name = str_param(p, "name").unwrap_or("").to_string(); + set_flag(s, p, move |i| i.name = name.clone(), false) + }), + cmd!("object.setLayer", "Move to Layer", [], None, "{layer, ids?}", has_selection, |s, p| { + let l = designcraft_doc::LayerId(p.get("layer").and_then(Value::as_u64).unwrap_or(0)); + set_flag(s, p, move |i| i.layer = l, false) + }), + ] +} + +fn frame_create(s: &mut Session, p: &Value) -> Result { + let rect = rect_param(p, "rect").ok_or_else(|| bad("frame.create", "missing rect"))?; + let shape = str_param(p, "shape").unwrap_or("rectangle"); + let content = str_param(p, "content").unwrap_or("graphic"); + let sr = spread_param(p, "spread"); + let lid = s.doc()?.active_layer; + let text = str_param(p, "text").unwrap_or("").to_string(); + let caret = bool_or(p, "caret", content == "text"); + let sides = p.get("sides").and_then(Value::as_u64).unwrap_or(6).clamp(3, 100) as u32; + let rect = Rect::new(rect.x0, rect.y0, rect.x1.max(rect.x0 + 0.5), rect.y1.max(rect.y0 + 0.5)); + s.edit(|d, sel| { + if d.spread(sr).is_none() { + return Err(bad("frame.create", "no such spread")); + } + let (path, sh) = match shape { + "ellipse" | "oval" => (shapes::ellipse(rect), Shape::Oval), + "polygon" => (polygon_in(rect, sides), Shape::Polygon), + _ => (shapes::rectangle(rect), Shape::Rectangle), + }; + if content == "text" { + let (id, sid) = d.add_text_frame(sr, rect, lid, &text, ParaFormat { style: d.styles.default_paragraph.clone(), ..Default::default() })?; + if let Some(it) = d.item_mut(id) { + it.path = path; + it.shape = sh; + } + *sel = if caret { + Selection::text(TextSel { story: sid, anchor: text.len(), focus: text.len(), frame: Some(id) }) + } else { + Selection::items(vec![id]) + }; + return Ok(json!({"id": id.0, "story": sid.0})); + } + let id = ItemId(d.alloc()); + let mut it = Item::new(id, lid, sh, path); + if content == "graphic" { + it.object_style = d.styles.default_graphic_frame.clone(); + } else { + // Shapes drawn with Rectangle/Ellipse/Polygon get the default 1 pt black stroke. + it.stroke = Stroke::default(); + } + d.insert_item(sr, it, None)?; + *sel = Selection::items(vec![id]); + Ok(json!({"id": id.0})) + }) +} + +fn polygon_in(r: Rect, sides: u32) -> designcraft_geom::PathData { + let c = r.center(); + let mut p = shapes::polygon(Point::ZERO, 1.0, sides, 0.0); + // Fit the unit polygon's bounds to the rect. + if let Some(b) = p.bounds() { + let a = Affine::translate(c.to_vec2()) + * Affine::scale_non_uniform(r.width() / b.width().max(1e-9), r.height() / b.height().max(1e-9)) + * Affine::translate(-b.center().to_vec2()); + p.transform(a); + } + p +} + +fn line_create(s: &mut Session, p: &Value) -> Result { + let a = point_param(p, "a").ok_or_else(|| bad("line.create", "missing a"))?; + let b = point_param(p, "b").ok_or_else(|| bad("line.create", "missing b"))?; + let sr = spread_param(p, "spread"); + let lid = s.doc()?.active_layer; + s.edit(|d, sel| { + let id = ItemId(d.alloc()); + let mut it = Item::new(id, lid, Shape::GraphicLine, shapes::line(a, b)); + it.stroke = Stroke::default(); + d.insert_item(sr, it, None)?; + *sel = Selection::items(vec![id]); + Ok(json!({"id": id.0})) + }) +} + +/// Deep-copy items `ids` from `src` into `dst` spread `to` (fresh ids; text frames get story copies). +pub fn duplicate_from(dst: &mut Document, src: &Document, ids: &[ItemId], to: SpreadRef, off: Vec2) -> Result> { + let mut out = Vec::new(); + let mut story_map: HashMap = HashMap::new(); + for id in ids { + let Some(it) = src.item(*id) else { continue }; + let mut copy = it.clone(); + copy.xf = Affine::translate(off) * copy.xf; + renumber(dst, src, &mut copy, &mut story_map); + if dst.layer(copy.layer).is_none() { + copy.layer = dst.default_layer(); + } + let nid = copy.id; + dst.insert_item(to, copy, None)?; + out.push(nid); + } + Ok(out) +} + +fn renumber(dst: &mut Document, src: &Document, it: &mut Item, stories: &mut HashMap) { + it.id = ItemId(dst.alloc()); + let my_id = it.id; + match &mut it.content { + Content::Text(tf) => { + let new_sid = match stories.get(&tf.story) { + Some(n) => *n, + None => { + let n = StoryId(dst.alloc()); + let mut st = src.story(tf.story).cloned().unwrap_or_else(|| Story::new(n)); + st.id = n; + st.frames.clear(); + dst.stories.insert(n, Arc::new(st)); + stories.insert(tf.story, n); + n + } + }; + tf.story = new_sid; + if let Some(st) = dst.story_mut(new_sid) { + st.frames.push(my_id); + } + } + Content::Graphic(g) => { + if let Some(a) = src.assets.get(&g.asset) + && !dst.assets.contains_key(&g.asset) + { + dst.assets.insert(g.asset, a.clone()); + } + } + Content::Group { items } => { + for c in items.iter_mut() { + renumber(dst, src, Arc::make_mut(c), stories); + } + } + Content::Unassigned => {} + } +} + +fn transform_move(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let (dx, dy) = (f64_or(p, "dx", 0.0), f64_or(p, "dy", 0.0)); + let copy = bool_or(p, "copy", false); + let to: Option = p.get("toSpread").and_then(|v| serde_json::from_value(v.clone()).ok()); + s.edit(|d, sel| { + let ids = if copy { + let src = d.clone(); + let mut new = Vec::new(); + for id in &ids { + let sr = d.find(*id).map(|l| l.spread).unwrap_or(SpreadRef::Doc(0)); + new.extend(duplicate_from(d, &src, &[*id], to.unwrap_or(sr), Vec2::ZERO)?); + } + *sel = Selection::items(new.clone()); + new + } else { + ids + }; + for id in &ids { + if let Some(target) = to + && !copy + && let Some(loc) = d.find(*id) + && loc.spread != target + && loc.path.len() == 1 + { + let it = d.remove_item_keep_story(*id)?; + d.insert_item(target, it, None)?; + } + let it = d.item_mut(*id).ok_or(designcraft_doc::DocError::NoItem(*id))?; + if it.locked { + continue; + } + it.xf = Affine::translate((dx, dy)) * it.xf; + } + Ok(json!({"moved": ids.len()})) + }) +} + +fn transform_resize(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let from = rect_param(p, "from").ok_or_else(|| bad("transform.resize", "missing from"))?; + let to = rect_param(p, "to").ok_or_else(|| bad("transform.resize", "missing to"))?; + let scale_content = bool_or(p, "content", false); + if from.width().abs() < 1e-9 || from.height().abs() < 1e-9 { + return Err(bad("transform.resize", "degenerate source rect")); + } + let sx = to.width() / from.width(); + let sy = to.height() / from.height(); + let sx = if sx.abs() < 1e-3 { 1e-3f64.copysign(sx) } else { sx }; + let sy = if sy.abs() < 1e-3 { 1e-3f64.copysign(sy) } else { sy }; + let m = Affine::translate((to.x0, to.y0)) * Affine::scale_non_uniform(sx, sy) * Affine::translate((-from.x0, -from.y0)); + s.edit(|d, _| { + for id in &ids { + let it = d.item_mut(*id).ok_or(designcraft_doc::DocError::NoItem(*id))?; + if it.locked { + continue; + } + if scale_content || matches!(it.content, Content::Group { .. }) { + it.xf = m * it.xf; + } else { + // Resize the frame's path (in inner space); content keeps its size (InDesign's default). + let inner = it.xf.inverse() * m * it.xf; + it.path.transform(inner); + } + } + Ok(json!({"resized": ids.len()})) + }) +} + +fn apply_about_center(s: &mut Session, p: &Value, a: Affine) -> Result { + let ids = targets(s, p)?; + s.edit(|d, _| { + let mut b: Option = None; + for id in &ids { + if let Some(it) = d.item(*id) { + b = Some(b.map_or(it.bounds(), |r| r.union(it.bounds()))); + } + } + let c = b.unwrap_or(Rect::ZERO).center(); + let m = Affine::translate(c.to_vec2()) * a * Affine::translate(-c.to_vec2()); + for id in &ids { + if let Some(it) = d.item_mut(*id) { + it.xf = m * it.xf; + } + } + ok() + }) +} + +fn transform_rotate(s: &mut Session, p: &Value) -> Result { + let a = f64_or(p, "angle", 0.0); + apply_about_center(s, p, Affine::rotate(-a.to_radians())) +} + +fn transform_set(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let rf = p.get("ref").and_then(Value::as_u64).unwrap_or(0) as usize; + s.edit(|d, _| { + let mut b: Option = None; + for id in &ids { + if let Some(it) = d.item(*id) { + b = Some(b.map_or(it.bounds(), |r| r.union(it.bounds()))); + } + } + let Some(from) = b else { return ok() }; + let w = f64_or(p, "width", from.width()).max(0.01); + let h = f64_or(p, "height", from.height()).max(0.01); + let anchor = designcraft_geom::reference_point(from, rf); + // New rect keeping the reference point fixed, then moved so the ref point lands on x/y. + let fx = [0.0, 0.5, 1.0][rf % 3]; + let fy = [0.0, 0.5, 1.0][(rf / 3).min(2)]; + let mut to = Rect::new(anchor.x - fx * w, anchor.y - fy * h, anchor.x - fx * w + w, anchor.y - fy * h + h); + // x/y are the reference point position relative to the page origin of the first page in the spread. + let page_x = ids + .first() + .and_then(|i| d.find(*i)) + .and_then(|l| { + d.spread(l.spread).map(|sp| { + let pi = sp.page_at_x(from.center().x).unwrap_or(0); + sp.pages[pi].x + }) + }) + .unwrap_or(0.0); + if let Some(x) = p.get("x").and_then(Value::as_f64) { + to = to + Vec2::new(x + page_x - anchor.x, 0.0); + } + if let Some(y) = p.get("y").and_then(Value::as_f64) { + to = to + Vec2::new(0.0, y - anchor.y); + } + let m = Affine::translate((to.x0, to.y0)) + * Affine::scale_non_uniform(to.width() / from.width().max(1e-9), to.height() / from.height().max(1e-9)) + * Affine::translate((-from.x0, -from.y0)); + for id in &ids { + if let Some(it) = d.item_mut(*id) { + if matches!(it.content, Content::Group { .. }) { + it.xf = m * it.xf; + } else { + let inner = it.xf.inverse() * m * it.xf; + it.path.transform(inner); + } + } + } + ok() + }) +} + +fn arrange(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let to = str_param(p, "to").unwrap_or("front").to_string(); + s.edit(|d, _| { + for id in &ids { + let Some(loc) = d.find(*id) else { continue }; + if loc.path.len() != 1 { + continue; + } + let sp = d.spread_mut(loc.spread).expect("found"); + let i = loc.path[0]; + let n = sp.items.len(); + let it = sp.items.remove(i); + let j = match to.as_str() { + "front" => n - 1, + "back" => 0, + "forward" => (i + 1).min(n - 1), + _ => i.saturating_sub(1), + }; + sp.items.insert(j, it); + } + ok() + }) +} + +fn group(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + if ids.len() < 2 { + return Err(bad("object.group", "select at least two objects")); + } + s.edit(|d, sel| { + let sr = d.find(ids[0]).map(|l| l.spread).ok_or(designcraft_doc::DocError::NoItem(ids[0]))?; + // Keep stacking order: collect in z-order. + let order: Vec = d.spread(sr).map(|sp| sp.items.iter().map(|i| i.id).filter(|i| ids.contains(i)).collect()).unwrap_or_default(); + let front = d.spread(sr).and_then(|sp| sp.items.iter().position(|i| Some(&i.id) == order.last())).unwrap_or(0); + let layer = d.item(order[0]).map(|i| i.layer).unwrap_or_default(); + let mut kids = Vec::new(); + for id in &order { + kids.push(d.remove_item_keep_story(*id)?); + } + let gid = ItemId(d.alloc()); + let mut g = Item::new(gid, layer, Shape::Group, designcraft_geom::PathData::default()); + g.content = Content::Group { items: kids.into_iter().map(Arc::new).collect() }; + let at = front + 1 - order.len(); + d.insert_item(sr, g, Some(at))?; + *sel = Selection::items(vec![gid]); + Ok(json!({"id": gid.0})) + }) +} + +fn ungroup(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + s.edit(|d, sel| { + let mut out = Vec::new(); + for id in &ids { + let Some(loc) = d.find(*id) else { continue }; + let Some(g) = d.item(*id).cloned() else { continue }; + let Content::Group { items } = &g.content else { continue }; + if loc.path.len() != 1 { + continue; + } + let sp = d.spread_mut(loc.spread).expect("found"); + sp.items.remove(loc.path[0]); + for (k, c) in items.iter().enumerate() { + let mut c = (**c).clone(); + c.xf = g.xf * c.xf; + out.push(c.id); + sp.items.insert(loc.path[0] + k, Arc::new(c)); + } + } + *sel = Selection::items(out); + ok() + }) +} + +fn set_flag(s: &mut Session, p: &Value, f: impl Fn(&mut Item), deselect: bool) -> Result { + let ids = targets(s, p)?; + s.edit(|d, sel| { + for id in &ids { + if let Some(it) = d.item_mut(*id) { + f(it); + } + } + if deselect { + *sel = Selection::default(); + } + Ok(json!({"changed": ids.len()})) + }) +} + +fn all_flag(s: &mut Session, f: impl Fn(&mut Item)) -> Result { + s.edit(|d, _| { + for i in 0..d.spreads.len() { + let sp = Arc::make_mut(&mut d.spreads[i]); + for it in &mut sp.items { + f(Arc::make_mut(it)); + } + } + ok() + }) +} + +fn content_type(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let t = str_param(p, "type").unwrap_or("unassigned").to_string(); + s.edit(|d, _| { + for id in &ids { + let cur = d.item(*id).map(|i| i.content.clone()); + match (t.as_str(), cur) { + ("text", Some(Content::Unassigned | Content::Graphic(_))) => { + let sid = StoryId(d.alloc()); + let mut st = Story::new(sid); + st.frames.push(*id); + d.stories.insert(sid, Arc::new(st)); + if let Some(it) = d.item_mut(*id) { + it.content = Content::Text(TextFrame { story: sid, options: TextFrameOptions::default() }); + } + } + ("graphic" | "unassigned", Some(Content::Text(tf))) => { + let empty = d.story(tf.story).map(|s| s.frames.len() == 1).unwrap_or(true); + if let Some(st) = d.story_mut(tf.story) { + st.frames.retain(|f| f != id); + } + if empty { + d.stories.remove(&tf.story); + } + if let Some(it) = d.item_mut(*id) { + it.content = Content::Unassigned; + } + } + ("graphic" | "unassigned", Some(Content::Graphic(_))) if t == "unassigned" => { + if let Some(it) = d.item_mut(*id) { + it.content = Content::Unassigned; + } + } + _ => {} + } + } + ok() + }) +} + +fn text_frame_options(s: &mut Session, p: &Value) -> Result { + let st = s.doc()?; + let mut ids = targets(s, p)?; + if ids.is_empty() + && let Some(t) = st.selection.text + { + ids = st.doc.story(t.story).map(|s| s.frames.clone()).unwrap_or_default(); + } + let p = p.clone(); + s.edit(|d, _| { + for id in &ids { + let Some(tf) = d.item_mut(*id).and_then(Item::text_frame_mut) else { continue }; + let o = &mut tf.options; + if let Some(v) = p.get("columns").and_then(Value::as_u64) { + o.columns = (v as u32).clamp(1, 40); + } + if let Some(v) = p.get("gutter").and_then(Value::as_f64) { + o.gutter = v.max(0.0); + } + match p.get("inset") { + Some(Value::Number(n)) => o.inset = [n.as_f64().unwrap_or(0.0); 4], + Some(v @ Value::Array(_)) => { + if let Ok(a) = serde_json::from_value(v.clone()) { + o.inset = a; + } + } + _ => {} + } + for (k, which) in [("verticalJustification", 0), ("firstBaseline", 1), ("autoSize", 2), ("columnsKind", 3)] { + if let Some(v) = p.get(k).cloned() { + let _ = match which { + 0 => serde_json::from_value(v).map(|x| o.vertical_justification = x), + 1 => serde_json::from_value(v).map(|x| o.first_baseline = x), + 2 => serde_json::from_value(v).map(|x| o.auto_size = x), + _ => serde_json::from_value(v).map(|x| o.columns_kind = x), + }; + } + } + if let Some(v) = p.get("ignoreWrap").and_then(Value::as_bool) { + o.ignore_wrap = v; + } + if let Some(v) = p.get("balanceColumns").and_then(Value::as_bool) { + o.balance_columns = v; + } + if let Some(v) = p.get("columnRule").and_then(Value::as_bool) { + o.column_rule = v; + } + } + Ok(json!({"changed": ids.len()})) + }) +} + +fn fit(s: &mut Session, p: &Value) -> Result { + let ids = targets(s, p)?; + let mode = str_param(p, "mode").unwrap_or("fitProportionally").to_string(); + s.edit(|d, _| { + for id in &ids { + let Some(it) = d.item_mut(*id) else { continue }; + let r = it.inner_bounds(); + let Content::Graphic(g) = &mut it.content else { continue }; + let (nw, nh) = g.size; + let cur = g.xf.transform_rect_bbox(Rect::new(0.0, 0.0, nw, nh)); + match mode.as_str() { + "fillProportionally" | "fitProportionally" => { + let k = if mode == "fillProportionally" { (r.width() / nw).max(r.height() / nh) } else { (r.width() / nw).min(r.height() / nh) }; + g.xf = Affine::translate((r.x0 + (r.width() - nw * k) / 2.0, r.y0 + (r.height() - nh * k) / 2.0)) * Affine::scale(k); + } + "fitContentToFrame" => g.xf = Affine::translate((r.x0, r.y0)) * Affine::scale_non_uniform(r.width() / nw, r.height() / nh), + "centerContent" => g.xf = Affine::translate(r.center() - cur.center()) * g.xf, + "fitFrameToContent" => it.path = shapes::rectangle(cur), + _ => return Err(bad("object.fit", format!("unknown mode `{mode}`"))), + } + } + ok() + }) +} + +trait RemoveKeep { + fn remove_item_keep_story(&mut self, id: ItemId) -> Result; +} + +/// Detach an item without touching story threads (moving between spreads, grouping). +impl RemoveKeep for Document { + fn remove_item_keep_story(&mut self, id: ItemId) -> Result { + let loc = self.find(id).ok_or(designcraft_doc::DocError::NoItem(id))?; + if loc.path.len() != 1 { + return Err(bad("object", "nested items can't be detached")); + } + let sp = self.spread_mut(loc.spread).expect("found"); + Ok(Arc::unwrap_or_clone(sp.items.remove(loc.path[0]))) + } +} diff --git a/crates/engine/src/cmd/style.rs b/crates/engine/src/cmd/style.rs new file mode 100644 index 00000000..21b12d2a --- /dev/null +++ b/crates/engine/src/cmd/style.rs @@ -0,0 +1,278 @@ +//! Paragraph / character styles and swatches. + +use designcraft_color::{Swatch, SwatchValue}; +use designcraft_doc::{CharAttrs, CharacterStyle, ParaAttrs, ParagraphStyle, Styles}; +use serde_json::{Value, json}; + +use super::{CommandSpec, bad, cmd, has_doc, has_text_or_frames, ok, str_param}; +use crate::{Result, Session}; + +pub fn specs() -> Vec { + vec![ + cmd!("style.paragraph.apply", "Apply Paragraph Style", [], None, "{name, clearOverrides?: bool}", has_text_or_frames, apply_para), + cmd!("style.character.apply", "Apply Character Style", [], None, "{name}", has_text_or_frames, apply_char), + cmd!( + "style.paragraph.create", + "New Paragraph Style…", + [], + None, + "{name, basedOn?, nextStyle?, para?: {…}, chars?: {…}, fromSelection?: bool}", + has_doc, + create_para + ), + cmd!( + "style.paragraph.edit", + "Paragraph Style Options…", + [], + None, + "{name, rename?, basedOn?, nextStyle?, para?: {…}, chars?: {…}}", + has_doc, + edit_para + ), + cmd!("style.paragraph.delete", "Delete Paragraph Style", [], None, "{name, replaceWith?}", has_doc, delete_para), + cmd!("style.character.create", "New Character Style…", [], None, "{name, basedOn?, chars?: {…}}", has_doc, create_char), + cmd!("style.character.edit", "Character Style Options…", [], None, "{name, rename?, basedOn?, chars?}", has_doc, edit_char), + cmd!(query "style.list", "List Styles", [], None, "{} → paragraph and character style names", has_doc, |s, _| { + let st = s.doc()?; + Ok(json!({ + "paragraph": st.doc.styles.paragraph.iter().map(|p| &p.name).collect::>(), + "character": st.doc.styles.character.iter().map(|p| &p.name).collect::>(), + "object": st.doc.styles.object.iter().map(|p| &p.name).collect::>(), + })) + }), + cmd!( + "swatch.create", + "New Color Swatch…", + [], + None, + "{name?, color: \"#rrggbb\"|{c,m,y,k}(0..100)|[r,g,b], spot?: bool}", + has_doc, + create_swatch + ), + cmd!("swatch.delete", "Delete Swatch", [], None, "{name}", has_doc, |s, p| { + let name = str_param(p, "name").unwrap_or("").to_string(); + s.edit(|d, _| { + if d.swatch(&name).is_some_and(|w| w.locked) { + return Err(bad("swatch.delete", "special swatches can't be deleted")); + } + d.swatches.retain(|w| w.name != name); + ok() + }) + }), + ] +} + +fn attrs(v: Option<&Value>, set: impl Fn(&mut T, &str, &Value) -> std::result::Result<(), String>) -> Result { + let mut a = T::default(); + if let Some(o) = v.and_then(Value::as_object) { + for (k, v) in o { + set(&mut a, k, v).map_err(|e| bad("style", e))?; + } + } + Ok(a) +} + +fn apply_para(s: &mut Session, p: &Value) -> Result { + let name = str_param(p, "name").ok_or_else(|| bad("style.paragraph.apply", "missing name"))?.to_string(); + let clear = p.get("clearOverrides").and_then(Value::as_bool).unwrap_or(false); + if s.doc()?.doc.styles.para(&name).is_none() { + return Err(bad("style.paragraph.apply", format!("no paragraph style `{name}`"))); + } + let targets = super::text::format_targets_pub(s); + s.edit(|d, _| { + for (sid, r) in &targets { + if let Some(st) = d.story_mut(*sid) { + st.format_paras(r.clone(), |f| { + f.style = name.clone(); + if clear { + f.para = ParaAttrs::default(); + f.chars = CharAttrs::default(); + } + }); + if clear { + let (a, b) = (st.para_ranges()[st.para_at(r.start)].start, st.para_ranges()[st.para_at(r.end)].end); + st.format_chars(a..b, |f| f.over = CharAttrs::default()); + } + } + } + ok() + }) +} + +fn apply_char(s: &mut Session, p: &Value) -> Result { + let name = str_param(p, "name").ok_or_else(|| bad("style.character.apply", "missing name"))?.to_string(); + if s.doc()?.doc.styles.char_style(&name).is_none() { + return Err(bad("style.character.apply", format!("no character style `{name}`"))); + } + let targets = super::text::format_targets_pub(s); + s.edit(|d, _| { + for (sid, r) in &targets { + if let Some(st) = d.story_mut(*sid) { + st.format_chars(r.clone(), |f| f.style = name.clone()); + } + } + ok() + }) +} + +fn create_para(s: &mut Session, p: &Value) -> Result { + let base = str_param(p, "name").unwrap_or("Paragraph Style 1").to_string(); + let mut para: ParaAttrs = attrs(p.get("para"), |a: &mut ParaAttrs, k, v| a.set_json(k, v))?; + let mut chars: CharAttrs = attrs(p.get("chars"), |a: &mut CharAttrs, k, v| a.set_json(k, v))?; + if p.get("fromSelection").and_then(Value::as_bool).unwrap_or(false) + && let Ok(cur) = s.execute("type.selectionAttrs", &json!({})) + && !cur.is_null() + { + if let Ok(pp) = serde_json::from_value::(cur["para"].clone()) { + let mut full = ParaProps_to_attrs(&pp); + full.merge(¶); + para = full; + } + if let Ok(cp) = serde_json::from_value::(cur["chars"].clone()) { + let mut full = CharProps_to_attrs(&cp); + full.merge(&chars); + chars = full; + } + } + let based_on = str_param(p, "basedOn").map(str::to_string); + let next = str_param(p, "nextStyle").map(str::to_string); + s.edit(|d, _| { + let name = Styles::unique_name(|n| d.styles.para(n).is_some(), &base); + if let Some(b) = &based_on + && d.styles.para(b).is_none() + { + return Err(bad("style.paragraph.create", format!("no style `{b}`"))); + } + d.styles_mut().paragraph.push(ParagraphStyle { name: name.clone(), based_on, next_style: next, para, chars, shortcut: String::new() }); + Ok(json!({"name": name})) + }) +} + +#[allow(non_snake_case)] +fn ParaProps_to_attrs(p: &designcraft_doc::ParaProps) -> ParaAttrs { + designcraft_doc::ParaProps::common([p]) +} +#[allow(non_snake_case)] +fn CharProps_to_attrs(p: &designcraft_doc::CharProps) -> CharAttrs { + designcraft_doc::CharProps::common([p]) +} + +fn edit_para(s: &mut Session, p: &Value) -> Result { + let name = str_param(p, "name").ok_or_else(|| bad("style.paragraph.edit", "missing name"))?.to_string(); + let para: ParaAttrs = attrs(p.get("para"), |a: &mut ParaAttrs, k, v| a.set_json(k, v))?; + let chars: CharAttrs = attrs(p.get("chars"), |a: &mut CharAttrs, k, v| a.set_json(k, v))?; + let rename = str_param(p, "rename").map(str::to_string); + let based = p.get("basedOn").cloned(); + s.edit(|d, _| { + if let Some(Value::String(b)) = &based + && d.styles.para_based_on_cycles(&name, b) + { + return Err(bad("style.paragraph.edit", "based-on would create a cycle")); + } + let st = d.styles_mut().para_mut(&name).ok_or_else(|| bad("style.paragraph.edit", format!("no style `{name}`")))?; + st.para.merge(¶); + st.chars.merge(&chars); + match based { + Some(Value::String(b)) => st.based_on = Some(b), + Some(Value::Null) => st.based_on = None, + _ => {} + } + if let Some(n) = rename.clone() { + st.name = n.clone(); + for sid in d.stories.keys().copied().collect::>() { + if let Some(story) = d.story_mut(sid) { + for f in &mut story.paras { + if f.style == name { + f.style = n.clone(); + } + } + } + } + } + ok() + }) +} + +fn delete_para(s: &mut Session, p: &Value) -> Result { + let name = str_param(p, "name").unwrap_or("").to_string(); + let repl = str_param(p, "replaceWith").unwrap_or(designcraft_doc::BASIC_PARAGRAPH).to_string(); + if name.starts_with('[') { + return Err(bad("style.paragraph.delete", "built-in styles can't be deleted")); + } + s.edit(|d, _| { + d.styles_mut().paragraph.retain(|x| x.name != name); + for sid in d.stories.keys().copied().collect::>() { + if let Some(story) = d.story_mut(sid) { + for f in &mut story.paras { + if f.style == name { + f.style = repl.clone(); + } + } + } + } + ok() + }) +} + +fn create_char(s: &mut Session, p: &Value) -> Result { + let base = str_param(p, "name").unwrap_or("Character Style 1").to_string(); + let chars: CharAttrs = attrs(p.get("chars"), |a: &mut CharAttrs, k, v| a.set_json(k, v))?; + let based_on = str_param(p, "basedOn").map(str::to_string); + s.edit(|d, _| { + let name = Styles::unique_name(|n| d.styles.char_style(n).is_some(), &base); + d.styles_mut().character.push(CharacterStyle { name: name.clone(), based_on, chars, shortcut: String::new() }); + Ok(json!({"name": name})) + }) +} + +fn edit_char(s: &mut Session, p: &Value) -> Result { + let name = str_param(p, "name").ok_or_else(|| bad("style.character.edit", "missing name"))?.to_string(); + let chars: CharAttrs = attrs(p.get("chars"), |a: &mut CharAttrs, k, v| a.set_json(k, v))?; + s.edit(|d, _| { + let st = d.styles_mut().char_style_mut(&name).ok_or_else(|| bad("style.character.edit", "no such style"))?; + st.chars.merge(&chars); + ok() + }) +} + +fn create_swatch(s: &mut Session, p: &Value) -> Result { + let c = p.get("color").ok_or_else(|| bad("swatch.create", "missing color"))?; + let color = parse_color(c).ok_or_else(|| bad("swatch.create", "bad color"))?; + let spot = p.get("spot").and_then(Value::as_bool).unwrap_or(false); + let name = str_param(p, "name").map(str::to_string).unwrap_or_else(|| match color { + designcraft_color::Color::Cmyk { c, m, y, k } => designcraft_color::swatch::cmyk_name(c, m, y, k), + other => { + let [r, g, b] = other.to_rgb(); + format!("R={} G={} B={}", (r * 255.0).round(), (g * 255.0).round(), (b * 255.0).round()) + } + }); + s.edit(|d, _| { + let name = Styles::unique_name(|n| d.swatch(n).is_some(), &name); + d.swatches.push(Swatch { + name: name.clone(), + value: SwatchValue::Color { + color, + color_type: if spot { designcraft_color::ColorType::Spot } else { designcraft_color::ColorType::Process }, + }, + locked: false, + named: true, + }); + Ok(json!({"name": name})) + }) +} + +pub fn parse_color(v: &Value) -> Option { + use designcraft_color::Color; + match v { + Value::String(s) => Color::from_hex(s), + Value::Array(a) if a.len() >= 3 => { + let f = |i: usize| a[i].as_f64().map(|x| if x > 1.0 { x / 255.0 } else { x } as f32); + Some(Color::rgb(f(0)?, f(1)?, f(2)?)) + } + Value::Object(o) => { + let g = |k: &str| o.get(k).and_then(Value::as_f64).map(|x| if x > 1.0 { x / 100.0 } else { x } as f32); + Some(Color::cmyk(g("c")?, g("m")?, g("y")?, g("k")?)) + } + _ => None, + } +} diff --git a/crates/engine/src/cmd/text.rs b/crates/engine/src/cmd/text.rs new file mode 100644 index 00000000..3f685cec --- /dev/null +++ b/crates/engine/src/cmd/text.rs @@ -0,0 +1,469 @@ +//! Text editing (Type tool) and character/paragraph formatting. + +use designcraft_compose as compose; +use designcraft_doc::{CharAttrs, Content, ItemId, ParaAttrs, Selection, StoryId, TextSel}; +use designcraft_geom::Point; +use serde_json::{Value, json}; + +use super::{CommandSpec, bad, bool_or, cmd, has_doc, has_text, has_text_or_frames, id_param, ok, point_param, str_param}; +use crate::{Result, Session}; + +pub fn specs() -> Vec { + vec![ + cmd!(noundo "text.placeCaret", "Place Caret", [], None, "{frame, point: [x,y] (spread coords)} — converts empty frames to text frames", has_doc, |s, p| place(s, p, false)), + cmd!(noundo "text.extendTo", "Extend Text Selection", [], None, "{frame, point}", has_doc, |s, p| place(s, p, true)), + cmd!(noundo "text.selectWord", "Select Word", [], None, "{frame, point}", has_doc, |s, p| { + place(s, p, false)?; + let st = s.doc_mut()?; + let Some(t) = st.selection.text else { return ok() }; + let text = &st.doc.story(t.story).map(|x| x.text.clone()).unwrap_or_default(); + let (a, b) = word_bounds(text, t.focus); + st.selection.text = Some(TextSel { anchor: a, focus: b, ..t }); + ok() + }), + cmd!(noundo "text.select", "Select Text", [], None, "{story, anchor, focus}", has_doc, |s, p| { + let sid = StoryId(p.get("story").and_then(Value::as_u64).unwrap_or(0)); + let st = s.doc_mut()?; + let len = st.doc.story(sid).ok_or_else(|| bad("text.select", "no such story"))?.len(); + let a = (p.get("anchor").and_then(Value::as_u64).unwrap_or(0) as usize).min(len); + let f = (p.get("focus").and_then(Value::as_u64).map(|v| v as usize).unwrap_or(a)).min(len); + st.selection = Selection::text(TextSel { story: sid, anchor: a, focus: f, frame: None }); + st.revision += 1; + ok() + }), + cmd!("text.insert", "Type", [], None, "{text} — replaces the selected text", has_text, insert), + cmd!("text.delete", "Delete Text", [], None, "{forward?: bool, word?: bool}", has_text, delete), + cmd!(noundo "text.move", "Move Caret", [], None, "{dir: left|right|up|down|lineStart|lineEnd|storyStart|storyEnd, extend?, word?}", has_text, move_caret), + cmd!(noundo "text.exitToFrame", "Select Frame", [], None, "{}", has_doc, |s, _| { + let st = s.doc_mut()?; + if let Some(t) = st.selection.text.take() { + let f = t.frame.or_else(|| st.doc.story(t.story).and_then(|x| x.frames.first().copied())); + st.selection.items = f.into_iter().collect(); + } + st.revision += 1; + ok() + }), + cmd!("story.setText", "Set Story Text", [], None, "{story, text} — replace a story's whole text", has_doc, |s, p| { + let sid = StoryId(p.get("story").and_then(Value::as_u64).ok_or_else(|| bad("story.setText", "missing story"))?); + let text = str_param(p, "text").unwrap_or("").to_string(); + s.edit(|d, sel| { + d.set_story_text(sid, &text)?; + if let Some(t) = sel.text.as_mut().filter(|t| t.story == sid) { + t.anchor = t.anchor.min(text.len()); + t.focus = t.focus.min(text.len()); + } + ok() + }) + }), + cmd!(query "story.get", "Get Story", [], None, "{story? | frame?} → text, frames, paragraphs, overset", has_doc, |s, p| { + let st = s.doc()?; + let sid = story_of(s, p).ok_or_else(|| bad("story.get", "no story"))?; + let cs = s.cache.get(&st.doc, sid, None); + let mut v = st.doc.story_summary(sid).unwrap_or_default(); + v["overset"] = json!(cs.overset_at); + v["lines"] = json!(cs.line_count()); + Ok(v) + }), + cmd!("type.fillWithPlaceholder", "Fill with Placeholder Text", ["Type"], None, "{frame?}", has_text_or_frames, fill_placeholder), + cmd!( + "type.char", + "Character Formatting", + [], + None, + "{attrs: {fontFamily?, fontStyle?, size?, leading?: {kind:auto}|{kind:points,value}, tracking?, kerning?, hScale?, vScale?, baselineShift?, fill?, capitalization?, underline?, …}}", + has_text_or_frames, + |s, p| format_chars(s, p.get("attrs").unwrap_or(p)) + ), + cmd!( + "type.para", + "Paragraph Formatting", + [], + None, + "{attrs: {align?, leftIndent?, firstLineIndent?, spaceBefore?, spaceAfter?, dropCapLines?, hyphenate?, composer?, tabs?, …}}", + has_text_or_frames, + |s, p| format_paras(s, p.get("attrs").unwrap_or(p)) + ), + cmd!("type.align", "Align", [], None, "{align: left|center|right|leftJustified|…}", has_text_or_frames, |s, p| { + format_paras(s, &json!({"align": p.get("align").cloned().unwrap_or(json!("left"))})) + }), + cmd!("type.alignLeft", "Align Left", [], Some("Cmd+Shift+L"), "{}", has_text_or_frames, |s, _| format_paras(s, &json!({"align": "left"}))), + cmd!("type.alignCenter", "Align Center", [], Some("Cmd+Shift+C"), "{}", has_text_or_frames, |s, _| format_paras( + s, + &json!({"align": "center"}) + )), + cmd!("type.alignRight", "Align Right", [], Some("Cmd+Shift+R"), "{}", has_text_or_frames, |s, _| format_paras(s, &json!({"align": "right"}))), + cmd!("type.justify", "Justify Left", [], Some("Cmd+Shift+J"), "{}", has_text_or_frames, |s, _| format_paras( + s, + &json!({"align": "leftJustified"}) + )), + cmd!("type.bold", "Bold", [], Some("Cmd+Shift+B"), "{}", has_text_or_frames, |s, _| format_chars(s, &json!({"fontStyle": "Bold"}))), + cmd!("type.italic", "Italic", [], Some("Cmd+Shift+I"), "{}", has_text_or_frames, |s, _| format_chars(s, &json!({"fontStyle": "Italic"}))), + cmd!("type.underline", "Underline", [], Some("Cmd+Shift+U"), "{}", has_text_or_frames, |s, _| format_chars(s, &json!({"underline": true}))), + cmd!("type.allCaps", "All Caps", [], Some("Cmd+Shift+K"), "{}", has_text_or_frames, |s, _| format_chars( + s, + &json!({"capitalization": "allCaps"}) + )), + cmd!("type.sizeUp", "Increase Point Size", [], Some("Cmd+Shift+."), "{}", has_text_or_frames, |s, _| step_size(s, 2.0)), + cmd!("type.sizeDown", "Decrease Point Size", [], Some("Cmd+Shift+,"), "{}", has_text_or_frames, |s, _| step_size(s, -2.0)), + cmd!(query "type.selectionAttrs", "Selection Attributes", [], None, "{} → resolved character/paragraph attributes at the text selection", has_doc, selection_attrs), + ] +} + +fn story_of(s: &Session, p: &Value) -> Option { + let st = s.active()?; + if let Some(v) = p.get("story").and_then(Value::as_u64) { + return Some(StoryId(v)); + } + let frame = id_param(p, "frame").or_else(|| st.selection.items.first().copied()); + if let Some(f) = frame { + return st.doc.item(f).and_then(|i| i.text_frame()).map(|t| t.story); + } + st.selection.text.map(|t| t.story) +} + +/// Story byte at spread point `pt` in text frame `frame`. +fn hit_byte(s: &Session, frame: ItemId, pt: Point) -> Option<(StoryId, usize)> { + let st = s.active()?; + let loc = st.doc.find(frame)?; + let it = st.doc.item_at(&loc)?; + let sid = it.text_frame()?.story; + let xf = st.doc.parent_xf(&loc) * it.xf; + let inner = xf.inverse() * pt; + let cs = s.cache.get(&st.doc, sid, None); + let fi = cs.frames.iter().position(|f| f.frame == frame)?; + let b = compose::hit(&cs, fi, inner).unwrap_or(0); + Some((sid, b)) +} + +fn place(s: &mut Session, p: &Value, extend: bool) -> Result { + let frame = id_param(p, "frame").ok_or_else(|| bad("text.placeCaret", "missing frame"))?; + let pt = point_param(p, "point").unwrap_or(Point::ZERO); + // Empty frames become text frames. + let needs_convert = s.doc()?.doc.item(frame).is_some_and(|i| matches!(i.content, Content::Unassigned)); + if needs_convert { + s.execute("object.content", &json!({"ids": [frame.0], "type": "text"}))?; + } + let (sid, b) = hit_byte(s, frame, pt).ok_or_else(|| bad("text.placeCaret", "not a text frame"))?; + let st = s.doc_mut()?; + let t = match (extend, st.selection.text) { + (true, Some(t)) if t.story == sid => TextSel { focus: b, frame: Some(frame), ..t }, + _ => TextSel { story: sid, anchor: b, focus: b, frame: Some(frame) }, + }; + st.selection = Selection::text(t); + st.revision += 1; + Ok(json!({"story": sid.0, "pos": b})) +} + +fn insert(s: &mut Session, p: &Value) -> Result { + let text = str_param(p, "text").unwrap_or("").to_string(); + let text = if s.prefs.typographers_quotes { smart_quotes(s, &text) } else { text }; + s.edit(|d, sel| { + let t = sel.text.ok_or_else(|| bad("text.insert", "no insertion point"))?; + let st = d.story_mut(t.story).ok_or(designcraft_doc::DocError::NoStory(t.story))?; + let r = t.range(); + let r = r.start.min(st.len())..r.end.min(st.len()); + st.replace(r.clone(), &text); + let pos = r.start + text.len(); + sel.text = Some(TextSel { anchor: pos, focus: pos, ..t }); + Ok(json!({"pos": pos})) + }) +} + +fn smart_quotes(s: &Session, text: &str) -> String { + if !text.contains(['"', '\'']) { + return text.to_string(); + } + let prev = s + .active() + .and_then(|st| { + let t = st.selection.text?; + let story = st.doc.story(t.story)?; + story.text[..t.range().start.min(story.len())].chars().last() + }) + .unwrap_or(' '); + let mut out = String::with_capacity(text.len()); + let mut last = prev; + for c in text.chars() { + let open = last.is_whitespace() || matches!(last, '(' | '[' | '{' | '\u{2014}' | '\u{2013}'); + let r = match c { + '"' => { + if open { + '\u{201C}' + } else { + '\u{201D}' + } + } + '\'' => { + if open { + '\u{2018}' + } else { + '\u{2019}' + } + } + c => c, + }; + out.push(r); + last = c; + } + out +} + +pub(crate) fn delete_selection(s: &mut Session) -> Result { + s.edit(|d, sel| { + let t = sel.text.ok_or_else(|| bad("text.delete", "no text"))?; + let r = t.range(); + if let Some(st) = d.story_mut(t.story) { + st.delete(r.clone()); + } + sel.text = Some(TextSel { anchor: r.start, focus: r.start, ..t }); + ok() + }) +} + +fn delete(s: &mut Session, p: &Value) -> Result { + let forward = bool_or(p, "forward", false); + let word = bool_or(p, "word", false); + s.edit(|d, sel| { + let t = sel.text.ok_or_else(|| bad("text.delete", "no text"))?; + let st = d.story_mut(t.story).ok_or(designcraft_doc::DocError::NoStory(t.story))?; + let r = t.range(); + let r = if !r.is_empty() { + r + } else if forward { + let end = if word { next_word(&st.text, r.start) } else { next_char(&st.text, r.start) }; + r.start..end + } else { + let start = if word { prev_word(&st.text, r.start) } else { prev_char(&st.text, r.start) }; + start..r.start + }; + st.delete(r.clone()); + sel.text = Some(TextSel { anchor: r.start, focus: r.start, ..t }); + ok() + }) +} + +pub fn next_char(s: &str, i: usize) -> usize { + s[i.min(s.len())..].chars().next().map(|c| i + c.len_utf8()).unwrap_or(s.len()) +} +pub fn prev_char(s: &str, i: usize) -> usize { + s[..i.min(s.len())].chars().next_back().map(|c| i - c.len_utf8()).unwrap_or(0) +} +fn is_word(c: char) -> bool { + c.is_alphanumeric() || c == '\'' || c == '’' +} +pub fn next_word(s: &str, i: usize) -> usize { + let mut j = i; + let mut seen = false; + for (k, c) in s[i..].char_indices() { + if is_word(c) { + seen = true; + } else if seen { + return i + k; + } + j = i + k + c.len_utf8(); + } + j +} +pub fn prev_word(s: &str, i: usize) -> usize { + let mut seen = false; + for (k, c) in s[..i].char_indices().rev() { + if is_word(c) { + seen = true; + } else if seen { + return k + c.len_utf8(); + } + } + 0 +} +fn word_bounds(s: &str, i: usize) -> (usize, usize) { + let a = s[..i.min(s.len())].char_indices().rev().take_while(|(_, c)| is_word(*c)).last().map(|(k, _)| k).unwrap_or(i); + let b = s[i.min(s.len())..].char_indices().find(|(_, c)| !is_word(*c)).map(|(k, _)| i + k).unwrap_or(s.len()); + (a, b) +} + +fn move_caret(s: &mut Session, p: &Value) -> Result { + let dir = str_param(p, "dir").unwrap_or("right").to_string(); + let extend = bool_or(p, "extend", false); + let word = bool_or(p, "word", false); + let st = s.doc()?; + let t = st.selection.text.ok_or_else(|| bad("text.move", "no caret"))?; + let story = st.doc.story(t.story).ok_or(designcraft_doc::DocError::NoStory(t.story))?; + let text = story.text.clone(); + let cs = s.cache.get(&st.doc, t.story, None); + let pos = t.focus.min(text.len()); + let collapse_to = |left: bool| if left { t.range().start } else { t.range().end }; + let new = match dir.as_str() { + "left" if !extend && !t.is_caret() => collapse_to(true), + "right" if !extend && !t.is_caret() => collapse_to(false), + "left" => { + if word { + prev_word(&text, pos) + } else { + prev_char(&text, pos) + } + } + "right" => { + if word { + next_word(&text, pos) + } else { + next_char(&text, pos) + } + } + "up" | "down" => vertical(&cs, pos, dir == "up").unwrap_or(pos), + "lineStart" => line_of(&cs, pos).map(|l| l.0).unwrap_or(0), + "lineEnd" => line_of(&cs, pos).map(|l| l.1).unwrap_or(text.len()), + "storyStart" => 0, + "storyEnd" => text.len(), + other => return Err(bad("text.move", format!("unknown dir `{other}`"))), + }; + let stm = s.doc_mut()?; + stm.selection.text = Some(if extend { TextSel { focus: new, ..t } } else { TextSel { anchor: new, focus: new, ..t } }); + stm.revision += 1; + Ok(json!({"pos": new})) +} + +fn line_of(cs: &compose::ComposedStory, pos: usize) -> Option<(usize, usize)> { + cs.frames.iter().flat_map(|f| f.lines.iter()).find(|l| pos >= l.range.start && pos <= l.range.end).map(|l| (l.range.start, l.range.end)) +} + +fn vertical(cs: &compose::ComposedStory, pos: usize, up: bool) -> Option { + let (fi, x, baseline, _, _) = compose::caret(cs, pos)?; + let lines: Vec<(usize, &compose::Line)> = cs.frames.iter().enumerate().flat_map(|(i, f)| f.lines.iter().map(move |l| (i, l))).collect(); + let cur = lines.iter().position(|(i, l)| *i == fi && (l.baseline - baseline).abs() < 0.01 && pos >= l.range.start && pos <= l.range.end)?; + let target = if up { cur.checked_sub(1)? } else { cur + 1 }; + let (tf, tl) = lines.get(target)?; + compose::hit(cs, *tf, Point::new(x, tl.baseline - 1.0)) +} + +/// Ranges and stories a formatting command applies to: the text selection, or whole stories of +/// the selected text frames. +fn format_targets(s: &Session) -> Vec<(StoryId, std::ops::Range)> { + let Some(st) = s.active() else { return vec![] }; + if let Some(t) = st.selection.text { + return vec![(t.story, t.range())]; + } + let mut v = Vec::new(); + for id in &st.selection.items { + if let Some(tf) = st.doc.item(*id).and_then(|i| i.text_frame()) { + let len = st.doc.story(tf.story).map(|x| x.len()).unwrap_or(0); + if !v.iter().any(|(s, _)| *s == tf.story) { + v.push((tf.story, 0..len)); + } + } + } + v +} + +pub(crate) fn format_chars(s: &mut Session, attrs: &Value) -> Result { + let mut a = CharAttrs::default(); + if let Some(o) = attrs.as_object() { + for (k, v) in o { + a.set_json(k, v).map_err(|e| bad("type.char", e))?; + } + } + let targets = format_targets(s); + s.edit(|d, _| { + for (sid, r) in &targets { + let Some(st) = d.story_mut(*sid) else { continue }; + if r.is_empty() { + // Caret: change the typing format (the empty run at the caret). + let pos = r.start; + if st.is_empty() { + st.chars[0].format.over.merge(&a); + st.rev += 1; + } else { + let _ = pos; + } + continue; + } + st.format_chars(r.clone(), |f| f.over.merge(&a)); + } + ok() + }) +} + +pub(crate) fn format_paras(s: &mut Session, attrs: &Value) -> Result { + let mut a = ParaAttrs::default(); + if let Some(o) = attrs.as_object() { + for (k, v) in o { + a.set_json(k, v).map_err(|e| bad("type.para", e))?; + } + } + let targets = format_targets(s); + s.edit(|d, _| { + for (sid, r) in &targets { + if let Some(st) = d.story_mut(*sid) { + st.format_paras(r.clone(), |p| p.para.merge(&a)); + } + } + ok() + }) +} + +fn step_size(s: &mut Session, delta: f64) -> Result { + let cur = selection_attrs(s, &json!({}))?; + let size = cur["chars"]["size"].as_f64().unwrap_or(12.0); + format_chars(s, &json!({"size": (size + delta).clamp(0.1, 1296.0)})) +} + +fn selection_attrs(s: &mut Session, _p: &Value) -> Result { + let st = s.doc()?; + let targets = format_targets(s); + let Some((sid, r)) = targets.first().cloned() else { return Ok(Value::Null) }; + let story = st.doc.story(sid).ok_or(designcraft_doc::DocError::NoStory(sid))?; + let pi = story.para_at(r.start); + let pf = &story.paras[pi]; + let (pp, base) = st.doc.styles.resolve_para(pf); + let cf = if r.is_empty() { story.char_format_at(r.start) } else { story.format_after(r.start) }; + let cp = st.doc.styles.resolve_char(&base, cf); + Ok(json!({"story": sid.0, "paragraphStyle": pf.style, "characterStyle": cf.style, "para": pp, "chars": cp, + "paraOverrides": pf.para.count(), "charOverrides": cf.over.count()})) +} + +/// Our own filler text (not Adobe's). +pub const PLACEHOLDER: &str = "Ovid ellum quisque arcet velut tempora sint, ne veriora pareant laudemque fieri. Lorem novum strata ponet amicos, \ +et tamen uti ferrum caelo tempus mollit. Quisque sinat oppida retro, nec tenuere longas animi semper vias. \ +Sic erat, ut nostris ceperunt pectora verbis, mitescunt flamma solidos campos venti. Moventur iam nubes, aequora pontus, \ +dum sidera fulgent tacito per inane meatu. Arbore sub magna ludunt pueri, linquunt aurea litora fluctus. \ +Iamque tibi rursus ponet nova carmina vates, et longas umbras quaerit sub tegmine fagi. Omnia mutantur, nihil interit."; + +fn fill_placeholder(s: &mut Session, p: &Value) -> Result { + let st = s.doc()?; + let frame = id_param(p, "frame").or_else(|| st.selection.items.first().copied()).or_else(|| st.selection.text.and_then(|t| t.frame)); + let sid = match frame.and_then(|f| st.doc.item(f)).and_then(|i| i.text_frame()) { + Some(t) => t.story, + None => { + if let Some(f) = frame { + s.execute("object.content", &json!({"ids": [f.0], "type": "text"}))?; + } + story_of(s, p).ok_or_else(|| bad("type.fillWithPlaceholder", "select a text frame"))? + } + }; + // Fill until overset: repeat the filler sentences. + let mut text = String::new(); + let sentences: Vec<&str> = PLACEHOLDER.split_inclusive(". ").collect(); + let doc = s.doc()?.doc.clone(); + let mut d2 = (*doc).clone(); + for i in 0..400 { + text.push_str(sentences[i % sentences.len()]); + if i % 3 == 2 { + d2.set_story_text(sid, &text)?; + let cs = compose::compose_story(&d2, sid, &compose::ComposeOptions::default()); + if cs.is_overset() { + // Trim to the last sentence that fits. + let cut = cs.overset_at.unwrap_or(text.len()); + let keep = text[..cut.min(text.len())].rfind(". ").map(|k| k + 1).unwrap_or(cut); + text.truncate(keep); + break; + } + } + } + s.edit(|d, _| { + d.set_story_text(sid, text.trim_end())?; + ok() + }) +} + +pub(crate) fn format_targets_pub(s: &Session) -> Vec<(StoryId, std::ops::Range)> { + format_targets(s) +} diff --git a/crates/engine/src/lib.rs b/crates/engine/src/lib.rs new file mode 100644 index 00000000..88c923a6 --- /dev/null +++ b/crates/engine/src/lib.rs @@ -0,0 +1,252 @@ +//! The DesignCraft engine façade. +//! +//! Every user-visible action is a command with a stable id (`frame.create`, `text.insert`, +//! `layout.pages.insert`…) and JSON parameters. The egui UI, the CLI, the control channel and MCP +//! all go through [`Session::execute`]. Tools (pointer gestures) are hosted here and reduce to +//! commands, so every gesture is journaled and replayable. +#![forbid(unsafe_code)] + +pub mod cmd; +pub mod sample; +mod tooling; + +use std::sync::Arc; + +use designcraft_compose::Cache; +use designcraft_doc::{Document, LayerId, Selection}; +use serde_json::Value; + +pub use cmd::{CommandInfo, CommandSpec, command_specs, find_command}; +pub use designcraft_compose as compose; +pub use designcraft_doc as doc; +pub use designcraft_tools as tools; +pub use tooling::{UiRequest, ViewInfo}; + +#[derive(Debug, thiserror::Error)] +pub enum EngineError { + #[error("unknown command `{0}`")] + UnknownCommand(String), + #[error("command `{0}` is not available right now: {1}")] + Disabled(String, String), + #[error("invalid parameters for `{cmd}`: {msg}")] + BadParams { cmd: String, msg: String }, + #[error("no active document")] + NoDocument, + #[error("{0}")] + Other(String), +} + +impl From for EngineError { + fn from(e: designcraft_doc::DocError) -> Self { + EngineError::Other(e.to_string()) + } +} + +pub type Result = std::result::Result; + +#[derive(Clone, Debug)] +pub struct HistoryEntry { + pub label: String, + pub doc: Arc, + pub selection: Selection, +} + +#[derive(Clone, Debug, Default)] +pub struct History { + pub undo: Vec, + pub redo: Vec, + pub limit: usize, +} + +#[derive(Clone, Debug)] +pub struct Interaction { + pub label: String, + pub doc: Arc, + pub selection: Selection, + pub preview: Option<(String, Value)>, +} + +#[derive(Clone, Debug)] +pub struct DocState { + pub doc: Arc, + pub selection: Selection, + pub history: History, + pub path: Option, + pub revision: u64, + pub saved_revision: u64, + /// The document as last saved (dirty = the current document is a different allocation). + pub saved_doc: Arc, + pub active_layer: LayerId, + pub interaction: Option, + /// Editing parent spreads (Pages panel double-click on a parent). + pub editing_parents: bool, + pub uid: u64, +} + +static NEXT_UID: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(1); + +impl DocState { + pub fn new(doc: Document, path: Option) -> Self { + let active_layer = doc.default_layer(); + let doc = Arc::new(doc); + DocState { + saved_doc: doc.clone(), + doc, + selection: Selection::default(), + history: History { limit: 1000, ..Default::default() }, + path, + revision: 1, + saved_revision: 1, + active_layer, + interaction: None, + editing_parents: false, + uid: NEXT_UID.fetch_add(1, std::sync::atomic::Ordering::Relaxed), + } + } + pub fn is_dirty(&self) -> bool { + !Arc::ptr_eq(&self.doc, &self.saved_doc) + } + pub fn title(&self) -> String { + self.path + .as_deref() + .and_then(|p| std::path::Path::new(p).file_name()) + .map(|n| n.to_string_lossy().to_string()) + .unwrap_or_else(|| self.doc.title.clone()) + } +} + +/// Preferences that the engine needs (UI keeps its own). +#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] +#[serde(default, rename_all = "camelCase")] +pub struct Prefs { + pub keyboard_increment: f64, + pub show_hidden_characters: bool, + pub typographers_quotes: bool, +} + +impl Default for Prefs { + fn default() -> Self { + Prefs { keyboard_increment: 1.0, show_hidden_characters: false, typographers_quotes: true } + } +} + +pub struct Session { + docs: Vec, + active: Option, + pub prefs: Prefs, + pub cache: Arc, + pub(crate) tool: Box, + pub journal: Vec<(String, Value)>, + pub clipboard: Option>, + /// Requests for the UI (dialogs, view changes) produced by tools/commands. + pub ui_requests: Vec, + pub(crate) untitled: u32, +} + +impl Default for Session { + fn default() -> Self { + Self::new() + } +} + +impl Session { + pub fn new() -> Self { + Session { + docs: vec![], + active: None, + prefs: Prefs::default(), + cache: Arc::new(Cache::new()), + tool: designcraft_tools::create("selection"), + journal: vec![], + clipboard: None, + ui_requests: vec![], + untitled: 0, + } + } + + pub fn documents(&self) -> &[DocState] { + &self.docs + } + pub fn active_index(&self) -> Option { + self.active + } + pub fn active(&self) -> Option<&DocState> { + self.active.and_then(|i| self.docs.get(i)) + } + pub fn active_mut(&mut self) -> Option<&mut DocState> { + self.active.and_then(|i| self.docs.get_mut(i)) + } + pub fn doc(&self) -> Result<&DocState> { + self.active().ok_or(EngineError::NoDocument) + } + pub fn doc_mut(&mut self) -> Result<&mut DocState> { + self.active_mut().ok_or(EngineError::NoDocument) + } + pub fn set_active(&mut self, i: usize) { + if i < self.docs.len() { + self.active = Some(i); + } + } + pub fn add_document(&mut self, d: DocState) -> usize { + self.docs.push(d); + self.active = Some(self.docs.len() - 1); + self.docs.len() - 1 + } + pub fn close_document(&mut self, i: usize) { + if i < self.docs.len() { + self.docs.remove(i); + self.active = if self.docs.is_empty() { None } else { Some(i.min(self.docs.len() - 1)) }; + } + } + + /// Run a command by id. Edits push one undo step (unless inside an interaction). + pub fn execute(&mut self, id: &str, params: &Value) -> Result { + let spec = find_command(id).ok_or_else(|| EngineError::UnknownCommand(id.into()))?; + (spec.enabled)(self).map_err(|e| EngineError::Disabled(id.into(), e))?; + let before = self.active().map(|d| (d.uid, d.doc.clone())); + let r = (spec.run)(self, params)?; + // Record undo if the document changed (and we're not previewing an interaction). + if let (Some((uid, old)), Some(st)) = (before, self.active_mut()) + && st.uid == uid + && !Arc::ptr_eq(&old, &st.doc) + && st.interaction.is_none() + && spec.undoable + { + let entry = HistoryEntry { label: spec.label.to_string(), doc: old, selection: st.selection.clone() }; + push_undo(st, entry); + } + if spec.journal { + self.journal.push((id.to_string(), params.clone())); + } + Ok(r) + } + + pub fn commands(&self) -> Vec { + command_specs().iter().map(|c| c.info(self)).collect() + } + + /// Mutate the active document (copy-on-write) and bump the revision. + pub fn edit(&mut self, f: impl FnOnce(&mut Document, &mut Selection) -> Result) -> Result { + let st = self.doc_mut()?; + let mut doc = (*st.doc).clone(); + let mut sel = st.selection.clone(); + let r = f(&mut doc, &mut sel)?; + st.doc = Arc::new(doc); + st.selection = sel; + st.revision += 1; + Ok(r) + } +} + +fn push_undo(st: &mut DocState, e: HistoryEntry) { + st.history.undo.push(e); + st.history.redo.clear(); + if st.history.undo.len() > st.history.limit.max(1) { + st.history.undo.remove(0); + } +} + +pub(crate) use push_undo as record_undo; + +#[cfg(test)] +mod tests; diff --git a/crates/engine/src/sample.rs b/crates/engine/src/sample.rs new file mode 100644 index 00000000..c9637a2d --- /dev/null +++ b/crates/engine/src/sample.rs @@ -0,0 +1,355 @@ +//! A sample magazine document (original text; imagery generated in code) used for the welcome +//! screen, screenshots and tests. + +use std::sync::Arc; + +use designcraft_color::{Color, Gradient, GradientKind, GradientStop, Swatch, SwatchValue}; +use designcraft_doc::build::NewDocument; +use designcraft_doc::{ + Align, Asset, AssetId, CharAttrs, CharFormat, CharacterStyle, Content, Document, Fill, FirstBaseline, Graphic, Item, ItemId, Leading, Margins, + ParaAttrs, ParaFormat, ParagraphStyle, Rule, Shape, SpreadRef, Stroke, VerticalJustification, WrapMode, story, +}; +use designcraft_geom::{Affine, Rect, shapes}; + +const BODY: &str = "Every page begins as an empty field of possibility. The grid arrives first: margins that frame the reading area, columns that set the rhythm, and a baseline grid that keeps every line in step from one column to the next. Good layout is quiet. It lets the reader move through a story without noticing the machinery that carries them.\n\ +Typography does the heavy lifting. A paragraph composer weighs every possible line break at once, trading a slightly loose line here for a much better one three lines later. The result is an even texture of type, free of rivers and ragged gaps, where hyphens appear only when they truly help.\n\ +Images give a spread its pulse. A strong photograph bleeds off the edge of the page, while smaller pictures sit inside the grid and let the text wrap around them. Captions, pull quotes and running heads add layers that a careful reader can explore at their own pace.\n\ +Color holds it all together. A restrained palette of two or three swatches, applied consistently to headlines, rules and backgrounds, gives a publication its voice. Spot inks, tints and gradients are all just named swatches, so a single change ripples through every page.\n\ +Behind the scenes, styles are the secret to working fast. Paragraph styles define the voice of each element, character styles pick out emphasis, and object styles keep frames consistent. Change a style once and the whole document follows, from the cover to the very last page.\n\ +And when the layout is done, the document must travel: to a printer as a press-ready PDF with bleed and crop marks, to a colleague as an open interchange file, or to a screen as a crisp image. A layout tool earns its keep by making every one of those journeys effortless."; + +/// Procedural "photograph": a dusk sky with a sun and layered hills. +fn art_png(w: u32, h: u32, hue: f32) -> Vec { + let mut px = Vec::with_capacity((w * h * 4) as usize); + let sun = (w as f32 * 0.68, h as f32 * 0.42, h as f32 * 0.16); + for y in 0..h { + for x in 0..w { + let fy = y as f32 / h as f32; + let fx = x as f32 / w as f32; + // Sky gradient. + let top = [0.10 + hue * 0.2, 0.12, 0.32 + hue * 0.1]; + let mid = [0.95, 0.45 + hue * 0.2, 0.30]; + let t = (fy / 0.62).min(1.0); + let mut c = [top[0] + (mid[0] - top[0]) * t, top[1] + (mid[1] - top[1]) * t, top[2] + (mid[2] - top[2]) * t]; + // Sun glow. + let d = ((x as f32 - sun.0).powi(2) + (y as f32 - sun.1).powi(2)).sqrt(); + if d < sun.2 { + c = [1.0, 0.86, 0.55]; + } else { + let g = (1.0 - (d - sun.2) / (h as f32 * 0.5)).max(0.0).powi(2) * 0.5; + c = [c[0] + g, c[1] + g * 0.7, c[2] + g * 0.3]; + } + // Hills. + for (k, (amp, base, col)) in + [(0.05, 0.62, [0.32, 0.16, 0.30]), (0.07, 0.72, [0.20, 0.10, 0.22]), (0.04, 0.84, [0.10, 0.06, 0.14])].iter().enumerate() + { + let hill = base + amp * ((fx * (5.0 + k as f32 * 3.0) + k as f32).sin() + 0.5 * (fx * 13.0 + hue * 4.0).sin()); + if fy > hill { + c = *col; + } + } + for v in c { + px.push((v.clamp(0.0, 1.0) * 255.0) as u8); + } + px.push(255); + } + } + let r = designcraft_render::Rendered { width: w, height: h, pixels: px }; + r.to_png() +} + +fn para_style(name: &str, based: Option<&str>, para: ParaAttrs, chars: CharAttrs) -> ParagraphStyle { + ParagraphStyle { name: name.into(), based_on: based.map(Into::into), next_style: None, para, chars, shortcut: String::new() } +} + +fn image(d: &mut Document, name: &str, w: u32, h: u32, hue: f32) -> AssetId { + let id = AssetId(d.alloc()); + let data = art_png(w, h, hue); + d.assets.insert(id, Arc::new(Asset { id, name: name.into(), mime: "image/png".into(), link: None, data: Arc::new(data), pixels: Some((w, h)) })); + id +} + +fn graphic_frame(d: &mut Document, sr: SpreadRef, r: Rect, asset: AssetId, px: (u32, u32)) -> ItemId { + let id = ItemId(d.alloc()); + let lid = d.default_layer(); + let mut it = Item::new(id, lid, Shape::Rectangle, shapes::rectangle(r)); + let (nw, nh) = (px.0 as f64, px.1 as f64); + let k = (r.width() / nw).max(r.height() / nh); + it.content = Content::Graphic(Graphic { + asset, + size: (nw, nh), + xf: Affine::translate((r.x0 + (r.width() - nw * k) / 2.0, r.y0 + (r.height() - nh * k) / 2.0)) * Affine::scale(k), + auto_fit: designcraft_doc::Fitting::FillProportionally, + }); + it.object_style = designcraft_doc::BASIC_GRAPHICS_FRAME.into(); + d.insert_item(sr, it, None).expect("spread"); + id +} + +fn text(d: &mut Document, sr: SpreadRef, r: Rect, t: &str, style: &str) -> (ItemId, designcraft_doc::StoryId) { + let lid = d.default_layer(); + d.add_text_frame(sr, r, lid, t, ParaFormat { style: style.into(), ..Default::default() }).expect("spread") +} + +pub fn magazine() -> Document { + let mut d = Document::new(&NewDocument { + title: "Quarterly — Spring Issue".into(), + pages: 4, + margins: Margins { top: 54.0, bottom: 54.0, inside: 54.0, outside: 42.0 }, + columns: 3, + gutter: 14.0, + bleed: [9.0; 4], + ..Default::default() + }); + d.title = "Quarterly — Spring Issue".into(); + // Swatches. + d.swatches.push(Swatch::color("Ink Plum", Color::cmyk(0.62, 0.95, 0.30, 0.25))); + d.swatches.push(Swatch::color("Sunset", Color::cmyk(0.0, 0.62, 0.78, 0.0))); + d.swatches.push(Swatch::color("Paper Warm", Color::cmyk(0.0, 0.03, 0.08, 0.0))); + d.swatches.push(Swatch { + name: "Dusk Gradient".into(), + value: SwatchValue::Gradient { + gradient: Gradient { + kind: GradientKind::Linear, + stops: vec![ + GradientStop { offset: 0.0, color: Color::cmyk(0.62, 0.95, 0.30, 0.25), opacity: 1.0, midpoint: 0.5 }, + GradientStop { offset: 1.0, color: Color::cmyk(0.0, 0.62, 0.78, 0.0), opacity: 1.0, midpoint: 0.5 }, + ], + }, + }, + locked: false, + named: true, + }); + // Styles. + let serif = |style: &str, size: f64| CharAttrs { + font_family: Some("Source Serif 4".into()), + font_style: Some(style.into()), + size: Some(size), + ..Default::default() + }; + let sans = |style: &str, size: f64| CharAttrs { + font_family: Some("Source Sans 3".into()), + font_style: Some(style.into()), + size: Some(size), + ..Default::default() + }; + { + let st = d.styles_mut(); + st.paragraph.push(para_style( + "Body", + Some(story::BASIC_PARAGRAPH), + ParaAttrs { align: Some(Align::LeftJustified), first_line_indent: Some(12.0), hyph_min_word: Some(6), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(13.5)), ..serif("Regular", 9.75) }, + )); + st.paragraph.push(para_style( + "Body First", + Some("Body"), + ParaAttrs { first_line_indent: Some(0.0), ..Default::default() }, + CharAttrs::default(), + )); + st.paragraph.push(para_style( + "Headline", + None, + ParaAttrs { align: Some(Align::Left), space_after: Some(10.0), hyphenate: Some(false), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(46.0)), tracking: Some(-20.0), fill: Some("Ink Plum".into()), ..serif("Bold", 46.0) }, + )); + st.paragraph.push(para_style( + "Deck", + None, + ParaAttrs { space_after: Some(14.0), hyphenate: Some(false), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(19.0)), fill: Some("[Black]".into()), fill_tint: Some(0.75), ..serif("Italic", 14.0) }, + )); + st.paragraph.push(para_style( + "Kicker", + None, + ParaAttrs { + space_after: Some(6.0), + rule_below: Some(Rule { on: true, weight: 1.5, color: "Sunset".into(), offset: 5.0, column_width: false, ..Default::default() }), + ..Default::default() + }, + CharAttrs { + tracking: Some(160.0), + capitalization: Some(designcraft_doc::Capitalization::AllCaps), + fill: Some("Sunset".into()), + ..sans("Semibold", 9.0) + }, + )); + st.paragraph.push(para_style( + "Pull Quote", + None, + ParaAttrs { align: Some(Align::Left), hyphenate: Some(false), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(24.0)), fill: Some("Ink Plum".into()), ..serif("Italic", 19.0) }, + )); + st.paragraph.push(para_style( + "Caption", + None, + ParaAttrs::default(), + CharAttrs { leading: Some(Leading::Points(10.5)), fill_tint: Some(0.7), ..sans("Regular", 7.5) }, + )); + st.paragraph.push(para_style("Folio", None, ParaAttrs::default(), CharAttrs { tracking: Some(60.0), ..sans("Semibold", 7.5) })); + st.paragraph.push(para_style( + "Cover Title", + None, + ParaAttrs { align: Some(Align::Left), hyphenate: Some(false), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(88.0)), tracking: Some(-30.0), fill: Some("[Paper]".into()), ..serif("Bold", 96.0) }, + )); + st.paragraph.push(para_style( + "Cover Deck", + None, + ParaAttrs { hyphenate: Some(false), ..Default::default() }, + CharAttrs { leading: Some(Leading::Points(22.0)), fill: Some("[Paper]".into()), ..serif("Italic", 17.0) }, + )); + st.character.push(CharacterStyle { + name: "Emphasis".into(), + based_on: None, + chars: CharAttrs { font_style: Some("Italic".into()), ..Default::default() }, + shortcut: String::new(), + }); + st.character.push(CharacterStyle { + name: "Accent".into(), + based_on: None, + chars: CharAttrs { fill: Some("Sunset".into()), font_style: Some("Semibold".into()), ..Default::default() }, + shortcut: String::new(), + }); + } + let (w, h) = (612.0, 792.0); + // Parent A: folio and running head. + let pa = SpreadRef::Parent(0); + { + let (_, s) = text(&mut d, pa, Rect::new(42.0, 750.0, 300.0, 762.0), &format!("{} · QUARTERLY", story::PAGE_NUMBER), "Folio"); + let _ = s; + let (_, _) = text(&mut d, pa, Rect::new(w + 312.0, 750.0, w + w - 42.0, 762.0), &format!("SPRING ISSUE · {}", story::PAGE_NUMBER), "Folio"); + if let Some(st) = d.story_mut(designcraft_doc::StoryId(d.next_id - 1)) { + st.format_paras(0..0, |p| p.para.align = Some(Align::Right)); + } + let lid = d.default_layer(); + for x in [42.0, w + 42.0] { + let id = ItemId(d.alloc()); + let mut l = Item::new(id, lid, Shape::GraphicLine, shapes::line((x, 742.0).into(), (x + w - 96.0, 742.0).into())); + l.stroke = Stroke { weight: 0.5, swatch: "[Black]".into(), tint: 0.4, ..Stroke::default() }; + d.insert_item(pa, l, None).expect("parent"); + } + } + // Page 1: cover (spread 0, single right page, no parent). + let _ = d.apply_parent(&[0], None); + let cover_art = image(&mut d, "dusk-cover.png", 1224, 1584, 0.0); + graphic_frame(&mut d, SpreadRef::Doc(0), Rect::new(-9.0, -9.0, w + 9.0, h + 9.0), cover_art, (1224, 1584)); + let (_, _) = text(&mut d, SpreadRef::Doc(0), Rect::new(42.0, 60.0, 570.0, 120.0), "THE SPRING ISSUE · NO. 01", "Kicker"); + if let Some(st) = d.stories.values().last().map(|s| s.id) + && let Some(st) = d.story_mut(st) + { + st.format_chars(0..st.len(), |f| f.over.fill = Some("[Paper]".into())); + } + let (_, cs) = text(&mut d, SpreadRef::Doc(0), Rect::new(42.0, 450.0, 570.0, 690.0), "The Quiet\nArt of Layout", "Cover Title"); + let _ = cs; + text( + &mut d, + SpreadRef::Doc(0), + Rect::new(42.0, 700.0, 420.0, 760.0), + "Grids, type and color: how great pages are made — and the tools that make them.", + "Cover Deck", + ); + + // Spread 1 (pages 2–3). + let s1 = SpreadRef::Doc(1); + let lx = 42.0; // left page outside margin + text(&mut d, s1, Rect::new(lx, 54.0, w - 54.0, 70.0), "Feature · Design", "Kicker"); + let (_, hs) = text(&mut d, s1, Rect::new(lx, 80.0, w - 54.0, 190.0), "Notes on the Grid", "Headline"); + let _ = hs; + text( + &mut d, + s1, + Rect::new(lx, 182.0, w - 120.0, 240.0), + "A good layout is invisible. Here is what is going on underneath the page — from the baseline grid to the paragraph composer.", + "Deck", + ); + let art2 = image(&mut d, "hills.png", 1200, 760, 0.6); + let pic = graphic_frame(&mut d, s1, Rect::new(lx, 252.0, w - 54.0, 252.0 + 300.0), art2, (1200, 760)); + let _ = pic; + text( + &mut d, + s1, + Rect::new(lx, 558.0, w - 54.0, 572.0), + "Evening light over layered hills — generated entirely in code for this sample.", + "Caption", + ); + // Body: threaded through 2 columns on the left page and 3 columns on the right page. + let (f1, body) = text(&mut d, s1, Rect::new(lx, 584.0, w - 54.0, 738.0), BODY, "Body"); + if let Some(it) = d.item_mut(f1).and_then(Item::text_frame_mut) { + it.options.columns = 2; + it.options.gutter = 14.0; + } + let (f2, _) = text(&mut d, s1, Rect::new(w + 54.0, 54.0, 2.0 * w - 42.0, 708.0), "", "Body"); + if let Some(it) = d.item_mut(f2).and_then(Item::text_frame_mut) { + it.options.columns = 3; + it.options.gutter = 14.0; + } + d.thread(f1, f2).expect("thread"); + // First paragraph: Body First + accent lead-in. + if let Some(st) = d.story_mut(body) { + st.paras[0].style = "Body First".into(); + st.format_chars(0..20, |f| *f = CharFormat { style: "Accent".into(), over: Default::default() }); + // Repeat the body text so it flows across the spread. + let more = format!("\n{BODY}\n{BODY}"); + let end = st.len(); + st.insert(end, &more); + } + // Pull quote with shading, wrapped. + let (pq, pqs) = text( + &mut d, + s1, + Rect::new(w + 54.0 + 178.0, 300.0, 2.0 * w - 42.0, 420.0), + "“The best layouts disappear. What remains is the story.”", + "Pull Quote", + ); + if let Some(it) = d.item_mut(pq) { + it.fill = Fill::swatch("Paper Warm"); + it.wrap.mode = WrapMode::BoundingBox; + it.wrap.offsets = [10.0, 10.0, 10.0, 10.0]; + if let Some(tf) = it.text_frame_mut() { + tf.options.inset = [14.0, 14.0, 14.0, 14.0]; + tf.options.vertical_justification = VerticalJustification::Center; + tf.options.first_baseline = FirstBaseline::Ascent; + } + } + let _ = pqs; + // A sunset-gradient accent bar. + let lid = d.default_layer(); + let id = ItemId(d.alloc()); + let mut bar = Item::new(id, lid, Shape::Rectangle, shapes::rectangle(Rect::new(w + 54.0, 600.0 + 120.0, 2.0 * w - 42.0, 600.0 + 126.0))); + bar.fill = Fill { swatch: "Dusk Gradient".into(), ..Fill::none() }; + d.insert_item(s1, bar, None).expect("spread"); + + // Page 4: color page. + let s2 = SpreadRef::Doc(2); + let id = ItemId(d.alloc()); + let mut bg = Item::new(id, lid, Shape::Rectangle, shapes::rectangle(Rect::new(-9.0, -9.0, w + 9.0, 396.0))); + bg.fill = Fill::swatch("Ink Plum"); + d.insert_item(s2, bg, None).expect("spread"); + let (_, k) = text(&mut d, s2, Rect::new(42.0, 80.0, 400.0, 100.0), "Coming next", "Kicker"); + let _ = k; + let (t4, _) = text(&mut d, s2, Rect::new(42.0, 110.0, 560.0, 330.0), "Color, Ink & Paper", "Cover Title"); + if let Some(sid) = d.item(t4).and_then(|i| i.text_frame()).map(|t| t.story) + && let Some(st) = d.story_mut(sid) + { + st.format_chars(0..st.len(), |f| f.over.size = Some(64.0)); + st.format_chars(0..st.len(), |f| f.over.leading = Some(Leading::Points(64.0))); + } + for (i, sw) in ["Ink Plum", "Sunset", "C=100 M=0 Y=0 K=0", "Paper Warm"].iter().enumerate() { + let id = ItemId(d.alloc()); + let x = 42.0 + i as f64 * 132.0; + let mut c = Item::new(id, lid, Shape::Oval, shapes::ellipse(Rect::new(x, 440.0, x + 116.0, 556.0))); + c.fill = Fill::swatch(sw); + if *sw == "Paper Warm" { + c.stroke = Stroke { weight: 0.5, ..Stroke::default() }; + } + d.insert_item(s2, c, None).expect("spread"); + text(&mut d, s2, Rect::new(x, 566.0, x + 116.0, 580.0), sw, "Caption"); + } + let (f4, _) = text(&mut d, s2, Rect::new(42.0, 610.0, 570.0, 730.0), &BODY[..BODY.find('\n').unwrap_or(BODY.len())], "Body First"); + if let Some(it) = d.item_mut(f4).and_then(Item::text_frame_mut) { + it.options.columns = 2; + } + debug_assert!(d.check().is_ok(), "{:?}", d.check()); + d +} diff --git a/crates/engine/src/tests.rs b/crates/engine/src/tests.rs new file mode 100644 index 00000000..736b73ab --- /dev/null +++ b/crates/engine/src/tests.rs @@ -0,0 +1,106 @@ +use serde_json::json; + +use super::*; + +fn session() -> Session { + let mut s = Session::new(); + s.execute("file.new", &json!({"pages": 2})).unwrap(); + s +} + +#[test] +fn create_frame_type_and_undo() { + let mut s = session(); + let r = s.execute("frame.create", &json!({"rect": [36, 36, 300, 200], "content": "text"})).unwrap(); + let sid = r["story"].as_u64().unwrap(); + s.execute("text.insert", &json!({"text": "Hello, world"})).unwrap(); + let st = s.execute("story.get", &json!({"story": sid})).unwrap(); + assert_eq!(st["text"], "Hello, world"); + s.execute("text.delete", &json!({})).unwrap(); + assert_eq!(s.execute("story.get", &json!({"story": sid})).unwrap()["text"], "Hello, worl"); + s.execute("edit.undo", &json!({})).unwrap(); + assert_eq!(s.execute("story.get", &json!({"story": sid})).unwrap()["text"], "Hello, world"); + s.execute("edit.undo", &json!({})).unwrap(); + s.execute("edit.undo", &json!({})).unwrap(); + assert!(s.doc().unwrap().doc.stories.is_empty()); +} + +#[test] +fn smart_quotes_and_formatting() { + let mut s = session(); + s.execute("frame.create", &json!({"rect": [36, 36, 300, 200], "content": "text"})).unwrap(); + s.execute("text.insert", &json!({"text": "\"hi\" it's"})).unwrap(); + let t = s.execute("document.inspect", &json!({})).unwrap(); + let sid = t["stories"][0]["id"].as_u64().unwrap(); + assert_eq!(s.execute("story.get", &json!({"story": sid})).unwrap()["text"], "\u{201C}hi\u{201D} it\u{2019}s"); + s.execute("text.select", &json!({"story": sid, "anchor": 0, "focus": 4})).unwrap(); + s.execute("type.char", &json!({"attrs": {"size": 24, "fontStyle": "Bold"}})).unwrap(); + let a = s.execute("type.selectionAttrs", &json!({})).unwrap(); + assert_eq!(a["chars"]["size"], 24.0); + s.execute("type.para", &json!({"attrs": {"align": "center"}})).unwrap(); + assert_eq!(s.execute("type.selectionAttrs", &json!({})).unwrap()["para"]["align"], "center"); +} + +#[test] +fn tool_gesture_creates_one_undo_step() { + let mut s = session(); + s.set_tool("rectangle"); + let v = ViewInfo { zoom: 1.0 }; + use designcraft_tools::{PointerEvent, PointerKind}; + s.pointer(&PointerEvent::new(PointerKind::Down, 10.0, 10.0), v).unwrap(); + for i in 1..10 { + s.pointer(&PointerEvent::new(PointerKind::Drag, 10.0 + i as f64 * 10.0, 10.0 + i as f64 * 5.0), v).unwrap(); + } + s.pointer(&PointerEvent::new(PointerKind::Up, 100.0, 55.0), v).unwrap(); + let st = s.doc().unwrap(); + assert_eq!(st.history.undo.len(), 1); + assert_eq!(st.doc.spreads[0].items.len(), 1); + assert_eq!(st.doc.spreads[0].items[0].bounds(), designcraft_geom::Rect::new(10.0, 10.0, 100.0, 55.0)); + // Move with the selection tool. + s.set_tool("selection"); + s.pointer(&PointerEvent::new(PointerKind::Down, 50.0, 30.0), v).unwrap(); + s.pointer(&PointerEvent::new(PointerKind::Drag, 70.0, 30.0), v).unwrap(); + s.pointer(&PointerEvent::new(PointerKind::Drag, 80.0, 40.0), v).unwrap(); + s.pointer(&PointerEvent::new(PointerKind::Up, 80.0, 40.0), v).unwrap(); + let st = s.doc().unwrap(); + assert_eq!(st.history.undo.len(), 2); + assert_eq!(st.doc.spreads[0].items[0].bounds().x0, 40.0); +} + +#[test] +fn pages_and_layers() { + let mut s = session(); + s.execute("layout.pages.insert", &json!({"count": 3})).unwrap(); + assert_eq!(s.doc().unwrap().doc.page_count(), 5); + s.execute("layout.pages.delete", &json!({"pages": [0]})).unwrap(); + assert_eq!(s.doc().unwrap().doc.page_count(), 4); + s.execute("layer.new", &json!({"name": "Text"})).unwrap(); + assert_eq!(s.doc().unwrap().doc.layers[0].name, "Text"); +} + +#[test] +fn sample_document_is_valid_and_composes() { + let mut s = Session::new(); + s.execute("file.newSample", &json!({})).unwrap(); + let st = s.doc().unwrap(); + st.doc.check().unwrap(); + assert_eq!(st.doc.page_count(), 4); + let i = s.execute("document.inspect", &json!({})).unwrap(); + assert!(i["stories"].as_array().unwrap().len() >= 8); + // Save/load round trip. + let bytes = cmd::file_bytes(&s.doc().unwrap().doc); + let back = cmd::file_from(&bytes).unwrap(); + assert_eq!(back.page_count(), 4); + assert_eq!(back.assets.len(), s.doc().unwrap().doc.assets.len()); + assert!(back.assets.values().all(|a| !a.data.is_empty())); +} + +#[test] +fn every_command_has_metadata() { + let mut ids = std::collections::HashSet::new(); + for c in command_specs() { + assert!(ids.insert(c.id), "duplicate command {}", c.id); + assert!(!c.label.is_empty() && !c.params.is_empty(), "{}", c.id); + } + assert!(command_specs().len() > 60); +} diff --git a/crates/engine/src/tooling.rs b/crates/engine/src/tooling.rs new file mode 100644 index 00000000..68efc6db --- /dev/null +++ b/crates/engine/src/tooling.rs @@ -0,0 +1,166 @@ +//! Tool hosting: the active tool receives pointer/key events and its actions are executed here. + +use std::sync::Arc; + +use designcraft_tools::{Action, CanvasLayout, Cursor, Mods, Overlay, PointerEvent, ToolContext, ToolKey}; +use serde::Serialize; +use serde_json::Value; + +use crate::{EngineError, HistoryEntry, Interaction, Result, Session, record_undo}; + +/// Something the UI should do in response to a tool or command. +#[derive(Clone, Debug, PartialEq, Serialize)] +#[serde(tag = "kind", rename_all = "camelCase")] +pub enum UiRequest { + Dialog { + id: String, + params: Value, + }, + View { + params: Value, + }, + /// Open a file picker for the given purpose (`place`, `open`, `saveAs`, `export`). + Pick { + purpose: String, + params: Value, + }, +} + +/// View information the UI passes with pointer events. +#[derive(Clone, Copy, Debug, Default, Serialize)] +pub struct ViewInfo { + /// Screen pixels per point. + pub zoom: f64, +} + +impl Session { + pub fn tool_id(&self) -> &'static str { + self.tool.id() + } + + pub fn set_tool(&mut self, id: &str) { + if self.tool.id() == id { + return; + } + self.tool = designcraft_tools::create(id); + // Leaving the Type tool keeps the text frame selected. + if id != "type" + && let Some(st) = self.active_mut() + && let Some(t) = st.selection.text.take() + && let Some(f) = t.frame.or_else(|| st.doc.story(t.story).and_then(|s| s.frames.first().copied())) + { + st.selection.items = vec![f]; + } + } + + pub fn layout(&self) -> CanvasLayout { + match self.active() { + Some(st) => CanvasLayout::new(&st.doc, st.editing_parents), + None => CanvasLayout::default(), + } + } + + fn with_ctx(&mut self, view: ViewInfo, f: impl FnOnce(&mut dyn designcraft_tools::Tool, &ToolContext) -> T) -> Option { + let st = self.active()?; + let doc = st.doc.clone(); + let sel = st.selection.clone(); + let layer = st.active_layer; + let layout = CanvasLayout::new(&doc, st.editing_parents); + let cache = self.cache.clone(); + let cx = ToolContext { doc: &doc, selection: &sel, cache: &cache, layout: &layout, zoom: view.zoom.max(1e-6), layer, snap: true }; + Some(f(self.tool.as_mut(), &cx)) + } + + pub fn pointer(&mut self, ev: &PointerEvent, view: ViewInfo) -> Result<()> { + let actions = self.with_ctx(view, |t, cx| t.pointer(cx, ev)).unwrap_or_default(); + self.run_actions(actions) + } + + pub fn tool_key(&mut self, key: ToolKey, mods: Mods, view: ViewInfo) -> Result { + let actions = self.with_ctx(view, |t, cx| t.key(cx, key, mods)).unwrap_or_default(); + let handled = !actions.is_empty(); + self.run_actions(actions)?; + Ok(handled) + } + + pub fn overlays(&mut self, view: ViewInfo) -> Vec { + self.with_ctx(view, |t, cx| t.overlays(cx)).unwrap_or_default() + } + + pub fn cursor(&mut self, p: designcraft_geom::Point, mods: Mods, view: ViewInfo) -> Cursor { + self.with_ctx(view, |t, cx| t.cursor(cx, p, mods)).unwrap_or_default() + } + + pub fn tool_busy(&self) -> bool { + self.tool.busy() + } + + pub fn wants_text(&mut self) -> bool { + self.with_ctx(ViewInfo { zoom: 1.0 }, |t, cx| t.wants_text(cx)).unwrap_or(false) + } + + pub fn run_actions(&mut self, actions: Vec) -> Result<()> { + for a in actions { + match a { + Action::Begin(label) => self.begin_interaction(&label)?, + Action::Preview(cmd, p) => self.preview(&cmd, p)?, + Action::Commit => self.commit_interaction()?, + Action::Cancel => self.cancel_interaction(), + Action::Exec(cmd, p) => { + self.execute(&cmd, &p)?; + } + Action::Dialog(id, params) => self.ui_requests.push(UiRequest::Dialog { id, params }), + Action::SwitchTool(id) => self.set_tool(&id), + Action::View(params) => self.ui_requests.push(UiRequest::View { params }), + } + } + Ok(()) + } + + pub fn begin_interaction(&mut self, label: &str) -> Result<()> { + let st = self.doc_mut()?; + st.interaction = Some(Interaction { label: label.into(), doc: st.doc.clone(), selection: st.selection.clone(), preview: None }); + Ok(()) + } + + /// Apply `cmd` on top of the interaction's snapshot (replacing the previous preview). + pub fn preview(&mut self, cmd: &str, params: Value) -> Result<()> { + let st = self.doc_mut()?; + let Some(it) = st.interaction.clone() else { return Err(EngineError::Other("no interaction".into())) }; + st.doc = it.doc.clone(); + st.selection = it.selection.clone(); + let r = self.execute(cmd, ¶ms); + if let Some(st) = self.active_mut() + && let Some(i) = st.interaction.as_mut() + { + i.preview = Some((cmd.to_string(), params)); + } + // Journal only the committed result. + if r.is_ok() { + self.journal.pop(); + } + r.map(|_| ()) + } + + pub fn commit_interaction(&mut self) -> Result<()> { + let st = self.doc_mut()?; + let Some(it) = st.interaction.take() else { return Ok(()) }; + if !Arc::ptr_eq(&it.doc, &st.doc) { + record_undo(st, HistoryEntry { label: it.label, doc: it.doc, selection: it.selection }); + } + if let Some((c, p)) = it.preview { + self.journal.push((c, p)); + } + Ok(()) + } + + pub fn cancel_interaction(&mut self) { + if let Some(st) = self.active_mut() + && let Some(it) = st.interaction.take() + { + st.doc = it.doc; + st.selection = it.selection; + st.revision += 1; + } + } +} diff --git a/crates/render/src/lib.rs b/crates/render/src/lib.rs index d4b6f364..7dacf57b 100644 --- a/crates/render/src/lib.rs +++ b/crates/render/src/lib.rs @@ -159,7 +159,16 @@ impl Renderer { } /// Render the given spreads into a `width`×`height` image with `view` (canvas → pixels). - pub fn render(&mut self, doc: &Document, cache: &Cache, spreads: &[Placed], width: u32, height: u32, view: Affine, opts: &RenderOptions) -> Rendered { + pub fn render( + &mut self, + doc: &Document, + cache: &Cache, + spreads: &[Placed], + width: u32, + height: u32, + view: Affine, + opts: &RenderOptions, + ) -> Rendered { let start = now(); let w = width.clamp(1, u16::MAX as u32) as u16; let h = height.clamp(1, u16::MAX as u32) as u16; @@ -232,8 +241,13 @@ impl Renderer { } ctx.set_transform(f.view); ctx.set_paint(color_of(&paper, 1.0)); - for p in &sp.pages { - ctx.fill_rect(&p.bounds()); + // One rect for equal-height spreads avoids an anti-aliasing seam at the spine. + if sp.pages.windows(2).all(|w| w[0].height == w[1].height) { + ctx.fill_rect(&sp.bounds()); + } else { + for p in &sp.pages { + ctx.fill_rect(&p.bounds()); + } } } // Layers back to front; within each layer parent items first (document spreads only). @@ -381,7 +395,8 @@ impl Renderer { ctx.pop_layer(); } StrokeAlign::Outside if closed => { - let outline = kurbo::stroke(bp.iter(), &kurbo::Stroke { width: st.weight * 2.0, ..stroke }, &kurbo::StrokeOpts::default(), 0.05 * f.px); + let outline = + kurbo::stroke(bp.iter(), &kurbo::Stroke { width: st.weight * 2.0, ..stroke }, &kurbo::StrokeOpts::default(), 0.05 * f.px); let mut p = outline; // Remove the interior: even-odd with the path itself. for el in bp.elements() { @@ -430,7 +445,10 @@ impl Renderer { ctx.set_transform(f.view * xf * g.xf); let sx = g.size.0 / pm.width().max(1) as f64; let sy = g.size.1 / pm.height().max(1) as f64; - ctx.set_paint(vello_cpu::Image { image: vello_cpu::ImageSource::Pixmap(pm), sampler: peniko::ImageSampler::default().with_quality(peniko::ImageQuality::Medium) }); + ctx.set_paint(vello_cpu::Image { + image: vello_cpu::ImageSource::Pixmap(pm), + sampler: peniko::ImageSampler::default().with_quality(peniko::ImageQuality::Medium), + }); ctx.set_paint_transform(Affine::scale_non_uniform(sx, sy)); ctx.fill_rect(&rect); ctx.reset_paint_transform(); @@ -468,10 +486,12 @@ impl Renderer { if style.underline || style.strikethrough { let w = style.size / 14.0; if style.underline { - lines_deco.push((g.style, kurbo::Rect::new(g.x, l.baseline + style.size * 0.12, g.x + g.adv, l.baseline + style.size * 0.12 + w))); + lines_deco + .push((g.style, kurbo::Rect::new(g.x, l.baseline + style.size * 0.12, g.x + g.adv, l.baseline + style.size * 0.12 + w))); } if style.strikethrough { - lines_deco.push((g.style, kurbo::Rect::new(g.x, l.baseline - style.size * 0.3, g.x + g.adv, l.baseline - style.size * 0.3 + w))); + lines_deco + .push((g.style, kurbo::Rect::new(g.x, l.baseline - style.size * 0.3, g.x + g.adv, l.baseline - style.size * 0.3 + w))); } } let outline = db.outline(&g.face, g.gid); @@ -642,6 +662,23 @@ fn now() -> u64 { 0 } +/// Pixel size of an encoded image without decoding it fully. +pub fn image_size(bytes: &[u8]) -> Option<(u32, u32)> { + image::ImageReader::new(std::io::Cursor::new(bytes)).with_guessed_format().ok()?.into_dimensions().ok() +} + +/// MIME type guess for encoded image bytes. +pub fn image_mime(bytes: &[u8]) -> &'static str { + match image::guess_format(bytes) { + Ok(image::ImageFormat::Png) => "image/png", + Ok(image::ImageFormat::Jpeg) => "image/jpeg", + Ok(image::ImageFormat::Gif) => "image/gif", + Ok(image::ImageFormat::WebP) => "image/webp", + Ok(image::ImageFormat::Tiff) => "image/tiff", + _ => "application/octet-stream", + } +} + #[cfg(test)] mod tests { use super::*; @@ -652,9 +689,11 @@ mod tests { fn renders_page_with_text_and_fill() { let mut d = Document::new(&NewDocument::default()); let lid = d.default_layer(); - let (fid, _) = d.add_text_frame(SpreadRef::Doc(0), Rect::new(36.0, 36.0, 576.0, 300.0), lid, "Hello DesignCraft", ParaFormat::default()).unwrap(); + let (fid, _) = + d.add_text_frame(SpreadRef::Doc(0), Rect::new(36.0, 36.0, 576.0, 300.0), lid, "Hello DesignCraft", ParaFormat::default()).unwrap(); let id = designcraft_doc::ItemId(d.alloc()); - let mut box_ = Item::new(id, lid, designcraft_doc::Shape::Rectangle, designcraft_geom::shapes::rectangle(Rect::new(36.0, 400.0, 136.0, 500.0))); + let mut box_ = + Item::new(id, lid, designcraft_doc::Shape::Rectangle, designcraft_geom::shapes::rectangle(Rect::new(36.0, 400.0, 136.0, 500.0))); box_.fill = Fill::swatch("C=100 M=0 Y=0 K=0"); d.insert_item(SpreadRef::Doc(0), box_, None).unwrap(); let cache = Cache::new(); diff --git a/crates/tools/src/catalog.rs b/crates/tools/src/catalog.rs index 7d145244..6b153f06 100644 --- a/crates/tools/src/catalog.rs +++ b/crates/tools/src/catalog.rs @@ -21,7 +21,10 @@ pub const TOOL_GROUPS: &[&[ToolInfo]] = &[ &[t("directSelection", "Direct Selection Tool", Some("A"), "tool-direct")], &[t("page", "Page Tool", Some("Shift+P"), "tool-page")], &[t("gap", "Gap Tool", Some("U"), "tool-gap")], - &[t("contentCollector", "Content Collector Tool", Some("B"), "tool-collector"), t("contentPlacer", "Content Placer Tool", Some("B"), "tool-placer")], + &[ + t("contentCollector", "Content Collector Tool", Some("B"), "tool-collector"), + t("contentPlacer", "Content Placer Tool", Some("B"), "tool-placer"), + ], &[], &[ t("type", "Type Tool", Some("T"), "tool-type"), @@ -36,13 +39,21 @@ pub const TOOL_GROUPS: &[&[ToolInfo]] = &[ t("deleteAnchor", "Delete Anchor Point Tool", Some("-"), "tool-pen-delete"), t("convertDirection", "Convert Direction Point Tool", Some("Shift+C"), "tool-anchor"), ], - &[t("pencil", "Pencil Tool", Some("N"), "tool-pencil"), t("smooth", "Smooth Tool", None, "tool-smooth"), t("erase", "Erase Tool", None, "tool-erase")], + &[ + t("pencil", "Pencil Tool", Some("N"), "tool-pencil"), + t("smooth", "Smooth Tool", None, "tool-smooth"), + t("erase", "Erase Tool", None, "tool-erase"), + ], &[ t("rectangleFrame", "Rectangle Frame Tool", Some("F"), "tool-rect-frame"), t("ellipseFrame", "Ellipse Frame Tool", None, "tool-ellipse-frame"), t("polygonFrame", "Polygon Frame Tool", None, "tool-polygon-frame"), ], - &[t("rectangle", "Rectangle Tool", Some("M"), "tool-rect"), t("ellipse", "Ellipse Tool", Some("L"), "tool-ellipse"), t("polygon", "Polygon Tool", None, "tool-polygon")], + &[ + t("rectangle", "Rectangle Tool", Some("M"), "tool-rect"), + t("ellipse", "Ellipse Tool", Some("L"), "tool-ellipse"), + t("polygon", "Polygon Tool", None, "tool-polygon"), + ], &[t("scissors", "Scissors Tool", Some("C"), "tool-scissors")], &[ t("freeTransform", "Free Transform Tool", Some("E"), "tool-free-transform"), @@ -50,7 +61,10 @@ pub const TOOL_GROUPS: &[&[ToolInfo]] = &[ t("scale", "Scale Tool", Some("S"), "tool-scale"), t("shear", "Shear Tool", Some("O"), "tool-shear"), ], - &[t("gradientSwatch", "Gradient Swatch Tool", Some("G"), "tool-gradient"), t("gradientFeather", "Gradient Feather Tool", Some("Shift+G"), "tool-gradient-feather")], + &[ + t("gradientSwatch", "Gradient Swatch Tool", Some("G"), "tool-gradient"), + t("gradientFeather", "Gradient Feather Tool", Some("Shift+G"), "tool-gradient-feather"), + ], &[t("note", "Note Tool", None, "tool-note")], &[ t("colorTheme", "Color Theme Tool", Some("Shift+I"), "tool-color-theme"), diff --git a/crates/tools/src/frame.rs b/crates/tools/src/frame.rs new file mode 100644 index 00000000..3066fa36 --- /dev/null +++ b/crates/tools/src/frame.rs @@ -0,0 +1,133 @@ +//! Frame and shape tools (Rectangle/Ellipse/Polygon Frame, Rectangle/Ellipse/Polygon, Line). +//! Drag to draw (Shift = square/45°, Alt = from centre); click opens the size dialog. + +use designcraft_geom::{Point, Rect}; +use serde_json::json; + +use crate::{Action, Cursor, Mods, Overlay, PointerEvent, PointerKind, Tool, ToolContext, rect_json, spread_json}; + +pub struct FrameTool { + id: &'static str, + start: Option, + cur: Point, + active: bool, +} + +impl FrameTool { + pub fn new(id: &str) -> Self { + let id = crate::tool_info(id).map(|t| t.id).unwrap_or("rectangleFrame"); + Self { id, start: None, cur: Point::ZERO, active: false } + } + fn kind(&self) -> (&'static str, &'static str) { + match self.id { + "rectangleFrame" => ("rectangle", "graphic"), + "ellipseFrame" => ("ellipse", "graphic"), + "polygonFrame" => ("polygon", "graphic"), + "rectangle" => ("rectangle", "unassigned"), + "ellipse" => ("ellipse", "unassigned"), + "polygon" => ("polygon", "unassigned"), + _ => ("line", "unassigned"), + } + } +} + +pub fn drag_rect(a: Point, b: Point, m: Mods) -> Rect { + let (mut dx, mut dy) = (b.x - a.x, b.y - a.y); + if m.shift { + let s = dx.abs().max(dy.abs()); + dx = s * dx.signum(); + dy = s * dy.signum(); + } + if m.alt { + Rect::new(a.x - dx.abs(), a.y - dy.abs(), a.x + dx.abs(), a.y + dy.abs()) + } else { + Rect::from_points(a, Point::new(a.x + dx, a.y + dy)) + } +} + +impl Tool for FrameTool { + fn id(&self) -> &'static str { + self.id + } + + fn pointer(&mut self, cx: &ToolContext, ev: &PointerEvent) -> Vec { + let (shape, content) = self.kind(); + match ev.kind { + PointerKind::Down => { + self.start = Some(ev.pos); + self.cur = ev.pos; + self.active = false; + vec![] + } + PointerKind::Drag => { + let Some(a) = self.start else { return vec![] }; + self.cur = ev.pos; + if !self.active && (ev.pos - a).hypot() < cx.tol(3.0) { + return vec![]; + } + let Some((sr, sa)) = cx.layout.spread_at(a) else { return vec![] }; + let off = cx.layout.offset(sr); + let mut out = vec![]; + if !self.active { + self.active = true; + out.push(Action::Begin(format!( + "Create {}", + crate::tool_info(self.id).map(|t| t.label.trim_end_matches(" Tool")).unwrap_or("Frame") + ))); + } + if shape == "line" { + let mut b = ev.pos - off; + if ev.mods.shift { + let v = b - sa; + let v = designcraft_geom::constrain_angle(v, 45.0); + b = sa + v; + } + out.push(Action::Preview("line.create".into(), json!({"spread": spread_json(sr), "a": [sa.x, sa.y], "b": [b.x, b.y]}))); + } else { + let r = drag_rect(sa, ev.pos - off, ev.mods); + out.push(Action::Preview( + "frame.create".into(), + json!({"spread": spread_json(sr), "shape": shape, "content": content, "rect": rect_json(r)}), + )); + } + out + } + PointerKind::Up => { + let was = self.active; + self.active = false; + let start = self.start.take(); + if was { + return vec![Action::Commit]; + } + // Click: size dialog. + if let Some(a) = start + && let Some((sr, sa)) = cx.layout.spread_at(a) + { + return vec![Action::Dialog( + "frameSize".into(), + json!({"spread": spread_json(sr), "shape": shape, "content": content, "x": sa.x, "y": sa.y, "width": 72.0, "height": 72.0}), + )]; + } + vec![] + } + _ => vec![], + } + } + + fn overlays(&self, cx: &ToolContext) -> Vec { + if let (true, Some(a)) = (self.active, self.start) { + let r = Rect::from_points(a, self.cur); + let _ = cx; + return vec![Overlay::Measure { p: self.cur, text: format!("W: {:.0} pt H: {:.0} pt", r.width(), r.height()) }]; + } + vec![] + } + + fn cursor(&self, _cx: &ToolContext, _p: Point, _m: Mods) -> Cursor { + Cursor::Crosshair + } + + fn busy(&self) -> bool { + self.active + } +} diff --git a/crates/tools/src/layout.rs b/crates/tools/src/layout.rs index 3d433c8f..c75d34ea 100644 --- a/crates/tools/src/layout.rs +++ b/crates/tools/src/layout.rs @@ -27,7 +27,8 @@ pub const SPREAD_GAP: f64 = 72.0; impl CanvasLayout { /// Layout of the document spreads (or the parent spreads when `parents` is true). pub fn new(doc: &Document, parents: bool) -> Self { - let list: Vec = if parents { (0..doc.parents.len()).map(SpreadRef::Parent).collect() } else { (0..doc.spreads.len()).map(SpreadRef::Doc).collect() }; + let list: Vec = + if parents { (0..doc.parents.len()).map(SpreadRef::Parent).collect() } else { (0..doc.spreads.len()).map(SpreadRef::Doc).collect() }; let mut slots = Vec::with_capacity(list.len()); let mut y = 0.0; let mut pb: Option = None; diff --git a/crates/tools/src/lib.rs b/crates/tools/src/lib.rs index af8c0b1d..65386d67 100644 --- a/crates/tools/src/lib.rs +++ b/crates/tools/src/lib.rs @@ -12,7 +12,7 @@ pub mod catalog; mod frame; pub mod layout; mod nav; -mod select; +pub mod select; mod text; use designcraft_compose::Cache; @@ -160,12 +160,27 @@ impl ToolContext<'_> { pub enum Overlay { Marquee(Rect), /// Preview outline of a frame being drawn. - Path { path: BezPath, color: [u8; 3], dashed: bool }, - Line { a: Point, b: Point, color: [u8; 3], dashed: bool }, + Path { + path: BezPath, + color: [u8; 3], + dashed: bool, + }, + Line { + a: Point, + b: Point, + color: [u8; 3], + dashed: bool, + }, /// Measurement pill near the cursor. - Measure { p: Point, text: String }, + Measure { + p: Point, + text: String, + }, /// Smart guide line in the smart-guide colour. - Guide { a: Point, b: Point }, + Guide { + a: Point, + b: Point, + }, } #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] @@ -220,7 +235,7 @@ pub fn create(id: &str) -> Box { "rectangleFrame" | "ellipseFrame" | "polygonFrame" | "rectangle" | "ellipse" | "polygon" | "line" => Box::new(frame::FrameTool::new(id)), "type" => Box::new(text::TypeTool::default()), "hand" => Box::new(nav::HandTool::default()), - "zoom" => Box::new(nav::ZoomTool::default()), + "zoom" => Box::new(nav::ZoomTool), other => Box::new(NoopTool(tool_info(other).map(|t| t.id).unwrap_or("selection"))), } } diff --git a/crates/tools/src/nav.rs b/crates/tools/src/nav.rs new file mode 100644 index 00000000..b0cc9590 --- /dev/null +++ b/crates/tools/src/nav.rs @@ -0,0 +1,61 @@ +//! Hand (H) and Zoom (Z) tools. + +use designcraft_geom::Point; +use serde_json::json; + +use crate::{Action, Cursor, Mods, PointerEvent, PointerKind, Tool, ToolContext}; + +#[derive(Default)] +pub struct HandTool { + last: Option, +} + +impl Tool for HandTool { + fn id(&self) -> &'static str { + "hand" + } + fn pointer(&mut self, cx: &ToolContext, ev: &PointerEvent) -> Vec { + match ev.kind { + PointerKind::Down => { + self.last = Some(ev.pos); + vec![] + } + PointerKind::Drag => { + // Canvas positions shift as we pan, so convert the delta to screen pixels once. + let Some(l) = self.last else { return vec![] }; + let d = (ev.pos - l) * cx.zoom; + vec![Action::View(json!({"pan": [d.x, d.y]}))] + } + PointerKind::Up => { + self.last = None; + vec![] + } + _ => vec![], + } + } + fn cursor(&self, _cx: &ToolContext, _p: Point, _m: Mods) -> Cursor { + if self.last.is_some() { Cursor::HandGrab } else { Cursor::Hand } + } + fn busy(&self) -> bool { + self.last.is_some() + } +} + +#[derive(Default)] +pub struct ZoomTool; + +impl Tool for ZoomTool { + fn id(&self) -> &'static str { + "zoom" + } + fn pointer(&mut self, _cx: &ToolContext, ev: &PointerEvent) -> Vec { + if ev.kind == PointerKind::Up { + let f = if ev.mods.alt { 0.5 } else { 2.0 }; + return vec![Action::View(json!({"zoomAt": [ev.pos.x, ev.pos.y], "factor": f}))]; + } + vec![] + } + fn cursor(&self, _cx: &ToolContext, _p: Point, m: Mods) -> Cursor { + if m.alt { Cursor::ZoomOut } else { Cursor::ZoomIn } + } +} diff --git a/crates/tools/src/select.rs b/crates/tools/src/select.rs new file mode 100644 index 00000000..4fa2642e --- /dev/null +++ b/crates/tools/src/select.rs @@ -0,0 +1,304 @@ +//! Selection tool (V) and Direct Selection tool (A). +//! +//! Click selects the frontmost item (Shift toggles), drag moves (Alt duplicates, Shift constrains), +//! the 8 bounding-box handles resize (Shift keeps proportions, Alt from centre, Cmd scales content), +//! empty-canvas drags make a marquee, double-clicking a text frame switches to the Type tool. + +use designcraft_doc::SpreadRef; +use designcraft_geom::{Point, Rect, Vec2}; +use serde_json::{Value, json}; + +use crate::{Action, Cursor, Mods, Overlay, PointerEvent, PointerKind, Tool, ToolContext, ToolKey, rect_json, spread_json}; + +#[derive(Clone, Debug)] +enum Drag { + None, + Pending { start: Point, hit: bool }, + Move { start: Point, origin_spread: SpreadRef }, + Resize { handle: usize, start: Point, from: Rect, spread: SpreadRef }, + Marquee { start: Point, cur: Point }, +} + +pub struct SelectionTool { + direct: bool, + drag: Drag, + hover_handle: Option, +} + +impl SelectionTool { + pub fn new(direct: bool) -> Self { + Self { direct, drag: Drag::None, hover_handle: None } + } +} + +/// Handle positions (canvas) of a rect: 0 TL, 1 T, 2 TR, 3 R, 4 BR, 5 B, 6 BL, 7 L. +pub fn handles(r: Rect) -> [Point; 8] { + let c = r.center(); + [ + Point::new(r.x0, r.y0), + Point::new(c.x, r.y0), + Point::new(r.x1, r.y0), + Point::new(r.x1, c.y), + Point::new(r.x1, r.y1), + Point::new(c.x, r.y1), + Point::new(r.x0, r.y1), + Point::new(r.x0, c.y), + ] +} + +fn handle_at(cx: &ToolContext, p: Point) -> Option { + let b = cx.selection_bounds()?; + let tol = cx.tol(5.0); + handles(b).iter().position(|h| (h.x - p.x).abs() <= tol && (h.y - p.y).abs() <= tol) +} + +/// New rect when dragging `handle` of `from` to `p`. +pub fn resize_rect(from: Rect, handle: usize, p: Point, m: Mods) -> Rect { + let (mut x0, mut y0, mut x1, mut y1) = (from.x0, from.y0, from.x1, from.y1); + match handle { + 0 => { + x0 = p.x; + y0 = p.y; + } + 1 => y0 = p.y, + 2 => { + x1 = p.x; + y0 = p.y; + } + 3 => x1 = p.x, + 4 => { + x1 = p.x; + y1 = p.y; + } + 5 => y1 = p.y, + 6 => { + x0 = p.x; + y1 = p.y; + } + _ => x0 = p.x, + } + if m.shift && from.width() > 1e-9 && from.height() > 1e-9 { + let sx = (x1 - x0) / from.width(); + let sy = (y1 - y0) / from.height(); + let s = if matches!(handle, 1 | 5) { + sy + } else if matches!(handle, 3 | 7) || sx.abs() > sy.abs() { + sx + } else { + sy + }; + let (w, h) = (from.width() * s, from.height() * s); + match handle { + 0 => { + x0 = x1 - w; + y0 = y1 - h; + } + 2 => { + x1 = x0 + w; + y0 = y1 - h; + } + 3..=5 => { + x1 = x0 + w; + y1 = y0 + h; + } + 6 | 7 => { + x0 = x1 - w; + y1 = y0 + h; + } + _ => { + x0 = x1 - w; + y0 = y1 - h; + } + } + } + if m.alt { + let c = from.center(); + let (hw, hh) = ((x1 - x0) / 2.0, (y1 - y0) / 2.0); + let (hw, hh) = match handle { + 1 | 5 => (from.width() / 2.0, (if handle == 1 { c.y - y0 } else { y1 - c.y })), + 3 | 7 => ((if handle == 7 { c.x - x0 } else { x1 - c.x }), from.height() / 2.0), + _ => (hw.abs().max((c.x - x0).abs()).max((x1 - c.x).abs()), hh.abs().max((c.y - y0).abs()).max((y1 - c.y).abs())), + }; + return Rect::new(c.x - hw, c.y - hh, c.x + hw, c.y + hh); + } + Rect::new(x0, y0, x1, y1) +} + +impl Tool for SelectionTool { + fn id(&self) -> &'static str { + if self.direct { "directSelection" } else { "selection" } + } + + fn pointer(&mut self, cx: &ToolContext, ev: &PointerEvent) -> Vec { + let p = ev.pos; + match ev.kind { + PointerKind::Move => { + self.hover_handle = handle_at(cx, p); + vec![] + } + PointerKind::Down => { + if let Some(h) = handle_at(cx, p).filter(|_| !self.direct) + && let (Some(b), Some(first)) = (cx.selection_bounds(), cx.selection.items.first()) + && let Some(loc) = cx.doc.find(*first) + { + let off = cx.layout.offset(loc.spread); + self.drag = Drag::Resize { handle: h, start: p, from: b - off, spread: loc.spread }; + return vec![Action::Begin("Resize".into())]; + } + match cx.hit(p) { + Some((sr, id)) => { + let id = if self.direct { id } else { cx.doc.top_level_of(id).unwrap_or(id) }; + let mut out = vec![]; + if ev.mods.shift { + out.push(Action::Exec("selection.toggle".into(), json!({"id": id.0}))); + } else if !cx.selection.contains(id) { + out.push(Action::Exec("selection.set".into(), json!({"ids": [id.0], "content": self.direct}))); + } + self.drag = Drag::Pending { start: p, hit: true }; + let _ = sr; + out + } + None => { + self.drag = Drag::Pending { start: p, hit: false }; + if ev.mods.shift { vec![] } else { vec![Action::Exec("selection.set".into(), json!({"ids": []}))] } + } + } + } + PointerKind::Drag => match self.drag.clone() { + Drag::Pending { start, hit } => { + if (p - start).hypot() < cx.tol(3.0) { + return vec![]; + } + if hit && !cx.selection.items.is_empty() { + let sr = cx.selection.items.first().and_then(|i| cx.doc.find(*i)).map(|l| l.spread).unwrap_or(SpreadRef::Doc(0)); + self.drag = Drag::Move { start, origin_spread: sr }; + let label = if ev.mods.alt { "Duplicate" } else { "Move" }; + let mut v = vec![Action::Begin(label.into())]; + v.extend(self.pointer(cx, ev)); + v + } else { + self.drag = Drag::Marquee { start, cur: p }; + vec![] + } + } + Drag::Move { start, origin_spread } => { + let mut d: Vec2 = p - start; + if ev.mods.shift { + if d.x.abs() > d.y.abs() { + d.y = 0.0; + } else { + d.x = 0.0; + } + } + // Dragging to another spread moves the items there. + let target = cx.layout.spread_at(p).map(|(s, _)| s).unwrap_or(origin_spread); + let mut params = json!({"dx": d.x, "dy": d.y, "copy": ev.mods.alt}); + if target != origin_spread { + let off = cx.layout.offset(target) - cx.layout.offset(origin_spread); + params = json!({"dx": d.x - off.x, "dy": d.y - off.y, "copy": ev.mods.alt, "toSpread": spread_json(target)}); + } + vec![Action::Preview("transform.move".into(), params)] + } + Drag::Resize { handle, start, from, spread } => { + let off = cx.layout.offset(spread); + let to = resize_rect(from, handle, p - off, ev.mods); + let _ = start; + vec![Action::Preview("transform.resize".into(), json!({"from": rect_json(from), "to": rect_json(to), "content": ev.mods.cmd}))] + } + Drag::Marquee { start, .. } => { + self.drag = Drag::Marquee { start, cur: p }; + vec![] + } + Drag::None => vec![], + }, + PointerKind::Up => { + let d = std::mem::replace(&mut self.drag, Drag::None); + match d { + Drag::Move { .. } | Drag::Resize { .. } => vec![Action::Commit], + Drag::Marquee { start, cur } => { + let r = Rect::from_points(start, cur); + // Items whose bounds intersect the marquee. + let mut ids: Vec = Vec::new(); + for slot in &cx.layout.slots { + let Some(sp) = cx.doc.spread(slot.spread) else { continue }; + for it in &sp.items { + let b = it.bounds() + slot.offset; + let locked = it.locked || cx.doc.layer(it.layer).is_some_and(|l| l.locked || !l.visible); + if !locked && !it.hidden && b.x0 < r.x1 && b.x1 > r.x0 && b.y0 < r.y1 && b.y1 > r.y0 { + ids.push(Value::from(it.id.0)); + } + } + } + vec![Action::Exec("selection.set".into(), json!({"ids": ids, "add": ev.mods.shift}))] + } + _ => vec![], + } + } + PointerKind::DoubleClick => { + if let Some((_, id)) = cx.hit(p) + && cx.doc.item(id).is_some_and(|i| i.is_text_frame()) + { + let (sr, sp) = cx.layout.spread_at(p).unwrap_or((SpreadRef::Doc(0), p)); + let _ = sr; + return vec![ + Action::SwitchTool("type".into()), + Action::Exec("text.placeCaret".into(), json!({"frame": id.0, "point": [sp.x, sp.y]})), + ]; + } + vec![] + } + } + } + + fn key(&mut self, cx: &ToolContext, key: ToolKey, mods: Mods) -> Vec { + let inc = cx.doc.settings.keyboard_increment * if mods.shift { 10.0 } else { 1.0 }; + let mv = |dx: f64, dy: f64| vec![Action::Exec("transform.move".into(), json!({"dx": dx, "dy": dy, "copy": mods.alt}))]; + if cx.selection.items.is_empty() { + return vec![]; + } + match key { + ToolKey::Left => mv(-inc, 0.0), + ToolKey::Right => mv(inc, 0.0), + ToolKey::Up => mv(0.0, -inc), + ToolKey::Down => mv(0.0, inc), + ToolKey::Delete | ToolKey::Backspace => vec![Action::Exec("edit.clear".into(), json!({}))], + ToolKey::Escape => vec![Action::Exec("selection.set".into(), json!({"ids": []}))], + _ => vec![], + } + } + + fn overlays(&self, _cx: &ToolContext) -> Vec { + match &self.drag { + Drag::Marquee { start, cur } => vec![Overlay::Marquee(Rect::from_points(*start, *cur))], + _ => vec![], + } + } + + fn cursor(&self, cx: &ToolContext, p: Point, _m: Mods) -> Cursor { + if self.direct { + return Cursor::ArrowHollow; + } + match self.drag { + Drag::Move { .. } => return Cursor::Move, + Drag::Resize { handle, .. } => return handle_cursor(handle), + _ => {} + } + match handle_at(cx, p) { + Some(h) => handle_cursor(h), + None => Cursor::Arrow, + } + } + + fn busy(&self) -> bool { + !matches!(self.drag, Drag::None) + } +} + +fn handle_cursor(h: usize) -> Cursor { + match h { + 0 | 4 => Cursor::ResizeNwSe, + 2 | 6 => Cursor::ResizeNeSw, + 1 | 5 => Cursor::ResizeV, + _ => Cursor::ResizeH, + } +} diff --git a/crates/tools/src/tests.rs b/crates/tools/src/tests.rs new file mode 100644 index 00000000..1526c4cc --- /dev/null +++ b/crates/tools/src/tests.rs @@ -0,0 +1,58 @@ +use designcraft_compose::Cache; +use designcraft_doc::build::NewDocument; +use designcraft_doc::{Document, ParaFormat, Selection, SpreadRef}; +use designcraft_geom::Rect; + +use super::*; + +fn ctx<'a>(d: &'a Document, s: &'a Selection, c: &'a Cache, l: &'a CanvasLayout) -> ToolContext<'a> { + ToolContext { doc: d, selection: s, cache: c, layout: l, zoom: 1.0, layer: d.default_layer(), snap: false } +} + +#[test] +fn frame_tool_drag_emits_begin_preview_commit() { + let d = Document::new(&NewDocument::default()); + let (s, c, l) = (Selection::default(), Cache::new(), CanvasLayout::new(&d, false)); + let cx = ctx(&d, &s, &c, &l); + let mut t = create("rectangleFrame"); + assert!(t.pointer(&cx, &PointerEvent::new(PointerKind::Down, 10.0, 10.0)).is_empty()); + let a = t.pointer(&cx, &PointerEvent::new(PointerKind::Drag, 110.0, 60.0)); + assert!(matches!(&a[0], Action::Begin(_))); + match &a[1] { + Action::Preview(cmd, p) => { + assert_eq!(cmd, "frame.create"); + assert_eq!(p["rect"], serde_json::json!([10.0, 10.0, 110.0, 60.0])); + assert_eq!(p["content"], "graphic"); + } + other => panic!("{other:?}"), + } + assert_eq!(t.pointer(&cx, &PointerEvent::new(PointerKind::Up, 110.0, 60.0)), vec![Action::Commit]); +} + +#[test] +fn selection_click_and_marquee() { + let mut d = Document::new(&NewDocument::default()); + let lid = d.default_layer(); + let (fid, _) = d.add_text_frame(SpreadRef::Doc(0), Rect::new(100.0, 100.0, 200.0, 200.0), lid, "x", ParaFormat::default()).unwrap(); + let (s, c, l) = (Selection::default(), Cache::new(), CanvasLayout::new(&d, false)); + let cx = ctx(&d, &s, &c, &l); + let mut t = create("selection"); + let a = t.pointer(&cx, &PointerEvent::new(PointerKind::Down, 150.0, 150.0)); + assert_eq!(a, vec![Action::Exec("selection.set".into(), serde_json::json!({"ids": [fid.0], "content": false}))]); + t.pointer(&cx, &PointerEvent::new(PointerKind::Up, 150.0, 150.0)); + // Marquee from empty space. + t.pointer(&cx, &PointerEvent::new(PointerKind::Down, 20.0, 20.0)); + t.pointer(&cx, &PointerEvent::new(PointerKind::Drag, 300.0, 300.0)); + let a = t.pointer(&cx, &PointerEvent::new(PointerKind::Up, 300.0, 300.0)); + assert_eq!(a, vec![Action::Exec("selection.set".into(), serde_json::json!({"ids": [fid.0], "add": false}))]); +} + +#[test] +fn resize_rect_modifiers() { + let r = Rect::new(0.0, 0.0, 100.0, 50.0); + assert_eq!(select::resize_rect(r, 4, designcraft_geom::Point::new(200.0, 80.0), Mods::default()), Rect::new(0.0, 0.0, 200.0, 80.0)); + let p = select::resize_rect(r, 4, designcraft_geom::Point::new(200.0, 60.0), Mods { shift: true, ..Default::default() }); + assert_eq!(p, Rect::new(0.0, 0.0, 200.0, 100.0)); + let c = select::resize_rect(r, 3, designcraft_geom::Point::new(150.0, 25.0), Mods { alt: true, ..Default::default() }); + assert_eq!(c, Rect::new(-50.0, 0.0, 150.0, 50.0)); +} diff --git a/crates/tools/src/text.rs b/crates/tools/src/text.rs new file mode 100644 index 00000000..4de65bc0 --- /dev/null +++ b/crates/tools/src/text.rs @@ -0,0 +1,117 @@ +//! Type tool (T): click in a frame to place the caret, drag in a frame to select text, drag on +//! empty canvas to draw a new text frame. Keys move the caret / delete; typing goes through +//! `text.insert` (sent by the UI as text input). + +use designcraft_geom::Point; +use serde_json::json; + +use crate::{Action, Cursor, Mods, PointerEvent, PointerKind, Tool, ToolContext, ToolKey, frame::drag_rect, rect_json, spread_json}; + +#[derive(Default)] +pub struct TypeTool { + start: Option, + selecting: Option, + drawing: bool, +} + +impl Tool for TypeTool { + fn id(&self) -> &'static str { + "type" + } + + fn pointer(&mut self, cx: &ToolContext, ev: &PointerEvent) -> Vec { + match ev.kind { + PointerKind::Down | PointerKind::DoubleClick => { + self.start = Some(ev.pos); + self.drawing = false; + self.selecting = None; + if let Some((_, id)) = cx.hit(ev.pos) + && let Some(it) = cx.doc.item(id) + && !matches!(it.content, designcraft_doc::Content::Graphic(_) | designcraft_doc::Content::Group { .. }) + { + let sp = cx.layout.spread_at(ev.pos).map(|(_, p)| p).unwrap_or(ev.pos); + self.selecting = Some(id.0); + let cmd = if ev.kind == PointerKind::DoubleClick { + "text.selectWord" + } else if ev.mods.shift { + "text.extendTo" + } else { + "text.placeCaret" + }; + return vec![Action::Exec(cmd.into(), json!({"frame": id.0, "point": [sp.x, sp.y]}))]; + } + vec![] + } + PointerKind::Drag => { + let Some(a) = self.start else { return vec![] }; + if let Some(fid) = self.selecting { + let sp = cx.layout.spread_at(ev.pos).map(|(_, p)| p).unwrap_or(ev.pos); + return vec![Action::Exec("text.extendTo".into(), json!({"frame": fid, "point": [sp.x, sp.y]}))]; + } + if (ev.pos - a).hypot() < cx.tol(3.0) && !self.drawing { + return vec![]; + } + let Some((sr, sa)) = cx.layout.spread_at(a) else { return vec![] }; + let off = cx.layout.offset(sr); + let r = drag_rect(sa, ev.pos - off, ev.mods); + let mut out = vec![]; + if !self.drawing { + self.drawing = true; + out.push(Action::Begin("Create Text Frame".into())); + } + out.push(Action::Preview( + "frame.create".into(), + json!({"spread": spread_json(sr), "shape": "rectangle", "content": "text", "rect": rect_json(r), "caret": true}), + )); + out + } + PointerKind::Up => { + self.start = None; + self.selecting = None; + if std::mem::take(&mut self.drawing) { + return vec![Action::Commit]; + } + vec![] + } + PointerKind::Move => vec![], + } + } + + fn key(&mut self, cx: &ToolContext, key: ToolKey, mods: Mods) -> Vec { + if cx.selection.text.is_none() { + return vec![]; + } + let mv = |dir: &str| { + vec![Action::Exec("text.move".into(), json!({"dir": dir, "extend": mods.shift, "word": mods.alt || mods.ctrl, "far": mods.cmd}))] + }; + match key { + ToolKey::Left => mv("left"), + ToolKey::Right => mv("right"), + ToolKey::Up => mv("up"), + ToolKey::Down => mv("down"), + ToolKey::Home => mv("lineStart"), + ToolKey::End => mv("lineEnd"), + ToolKey::Backspace => vec![Action::Exec("text.delete".into(), json!({"forward": false, "word": mods.alt}))], + ToolKey::Delete => vec![Action::Exec("text.delete".into(), json!({"forward": true, "word": mods.alt}))], + ToolKey::Enter => vec![Action::Exec("text.insert".into(), json!({"text": if mods.shift { "\u{2028}" } else { "\n" }}))], + ToolKey::Tab => vec![Action::Exec("text.insert".into(), json!({"text": "\t"}))], + ToolKey::Escape => vec![Action::SwitchTool("selection".into()), Action::Exec("text.exitToFrame".into(), json!({}))], + _ => vec![], + } + } + + fn cursor(&self, cx: &ToolContext, p: Point, _m: Mods) -> Cursor { + match cx.hit(p) { + Some((_, id)) if cx.doc.item(id).is_some_and(|i| i.is_text_frame()) => Cursor::Text, + _ => Cursor::Text, + } + } + + fn busy(&self) -> bool { + self.drawing + } + + fn wants_text(&self, cx: &ToolContext) -> bool { + cx.selection.text.is_some() + } +} diff --git a/crates/ui-egui/Cargo.toml b/crates/ui-egui/Cargo.toml new file mode 100644 index 00000000..3cb2c374 --- /dev/null +++ b/crates/ui-egui/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "designcraft-ui-egui" +version.workspace = true +edition.workspace = true +license.workspace = true +description = "DesignCraft egui frontend (InDesign-style UI); swappable — nothing below depends on it" + +[lints] +workspace = true + +[dependencies] +designcraft-geom = { workspace = true } +designcraft-color = { workspace = true } +designcraft-doc = { workspace = true } +designcraft-fonts = { workspace = true } +designcraft-compose = { workspace = true } +designcraft-render = { workspace = true } +designcraft-tools = { workspace = true } +designcraft-engine = { workspace = true } +egui = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +log = { workspace = true } diff --git a/crates/ui-egui/src/canvas.rs b/crates/ui-egui/src/canvas.rs new file mode 100644 index 00000000..b9693f4a --- /dev/null +++ b/crates/ui-egui/src/canvas.rs @@ -0,0 +1,831 @@ +//! The document canvas: pasteboard, spreads (rendered by `designcraft-render`), guides, frame edges, +//! selection, text ports and threads, the text caret, rulers, and pointer/keyboard input. + +use designcraft_compose as compose; +use designcraft_doc::{Content, Document, Item, PageSide, SpreadRef}; +use designcraft_engine::doc::Selection; +use designcraft_geom::{Affine, Point, Rect as DRect, Vec2 as DVec2}; +use designcraft_tools::{CanvasLayout, Cursor, Mods, Overlay, PointerEvent, PointerKind, ToolKey}; +use egui::{Color32, Pos2, Rect, Sense, Stroke, StrokeKind, pos2, vec2}; +use serde_json::{Value, json}; + +use crate::{DesignApp, ScreenMode, View, theme::Tokens}; + +pub const RULER: f32 = 17.0; + +/// Canvas ↔ screen transform. +#[derive(Clone, Copy, Debug)] +pub struct Xf { + pub min: Pos2, + pub origin: Point, + pub zoom: f64, +} + +impl Xf { + pub fn new(rect: Rect, v: &View) -> Self { + Xf { min: rect.min, origin: v.origin, zoom: v.zoom } + } + pub fn to_screen(&self, p: Point) -> Pos2 { + pos2(self.min.x + ((p.x - self.origin.x) * self.zoom) as f32, self.min.y + ((p.y - self.origin.y) * self.zoom) as f32) + } + pub fn to_canvas(&self, p: Pos2) -> Point { + Point::new(self.origin.x + (p.x - self.min.x) as f64 / self.zoom, self.origin.y + (p.y - self.min.y) as f64 / self.zoom) + } + pub fn rect(&self, r: DRect) -> Rect { + Rect::from_two_pos(self.to_screen(Point::new(r.x0, r.y0)), self.to_screen(Point::new(r.x1, r.y1))) + } + /// Canvas → screen affine (for vello rendering: pixels = points × ppp). + pub fn affine(&self, ppp: f64, area_min: Pos2) -> Affine { + let dx = (self.min.x - area_min.x) as f64; + let dy = (self.min.y - area_min.y) as f64; + Affine::scale(ppp) * Affine::translate((dx, dy)) * Affine::scale(self.zoom) * Affine::translate((-self.origin.x, -self.origin.y)) + } +} + +fn c32(c: [u8; 3]) -> Color32 { + Color32::from_rgb(c[0], c[1], c[2]) +} + +/// Fit the current spread (or page) in the canvas. +pub fn fit(app: &mut DesignApp, rect: Rect, what: &str) { + let Some(st) = app.session.active() else { return }; + let layout = CanvasLayout::new(&st.doc, st.editing_parents); + let cur = current_slot(app, &layout).unwrap_or(0); + let Some(slot) = layout.slots.get(cur) else { return }; + let mut b = slot.bounds; + if what == "page" + && let Some(sp) = st.doc.spread(slot.spread) + { + let center = app.view().map(|v| v.origin.x + rect.width() as f64 / 2.0 / v.zoom).unwrap_or(0.0); + let pi = sp.page_at_x(center - slot.offset.x).unwrap_or(0); + b = sp.pages[pi].bounds() + slot.offset; + } + if what == "all" { + b = layout.slots.iter().map(|s| s.bounds).reduce(|a, b| a.union(b)).unwrap_or(b); + } + let pad = 40.0; + let zoom = ((rect.width() as f64 - 2.0 * pad) / b.width()).min((rect.height() as f64 - 2.0 * pad) / b.height()).clamp(0.05, 40.0); + let origin = Point::new(b.center().x - rect.width() as f64 / 2.0 / zoom, b.center().y - rect.height() as f64 / 2.0 / zoom); + if let Some(v) = app.view_mut() { + *v = View { zoom, origin, fitted: true }; + } +} + +/// Index of the slot nearest the view centre. +pub fn current_slot(app: &DesignApp, layout: &CanvasLayout) -> Option { + let v = app.view()?; + let r = app.canvas_rect?; + let c = Point::new(v.origin.x + r.width() as f64 / 2.0 / v.zoom, v.origin.y + r.height() as f64 / 2.0 / v.zoom); + layout + .slots + .iter() + .enumerate() + .min_by(|a, b| { + let da = (a.1.bounds.center().y - c.y).abs(); + let db = (b.1.bounds.center().y - c.y).abs(); + da.total_cmp(&db) + }) + .map(|(i, _)| i) +} + +/// Absolute page index under the view centre. +pub fn current_page(app: &DesignApp) -> Option { + let st = app.session.active()?; + let layout = CanvasLayout::new(&st.doc, st.editing_parents); + let i = current_slot(app, &layout)?; + let slot = layout.slots.get(i)?; + let SpreadRef::Doc(si) = slot.spread else { return Some(0) }; + let v = app.view()?; + let r = app.canvas_rect?; + let cx = v.origin.x + r.width() as f64 / 2.0 / v.zoom - slot.offset.x; + let pi = st.doc.spreads[si].page_at_x(cx).unwrap_or(0); + Some(st.doc.first_page_of_spread(si) + pi) +} + +/// Scroll so absolute page `abs` is centred (keeps zoom). +pub fn go_to_page(app: &mut DesignApp, abs: usize) { + let Some(st) = app.session.active() else { return }; + let layout = CanvasLayout::new(&st.doc, false); + let Some(pr) = layout.page_rect(&st.doc, abs) else { return }; + let Some(rect) = app.canvas_rect else { return }; + if let Some(v) = app.view_mut() { + v.origin = Point::new(pr.center().x - rect.width() as f64 / 2.0 / v.zoom, pr.center().y - rect.height() as f64 / 2.0 / v.zoom); + } +} + +pub fn zoom_at(app: &mut DesignApp, screen: Pos2, factor: f64) { + let Some(rect) = app.canvas_rect else { return }; + let Some(v) = app.view_mut() else { return }; + let xf = Xf::new(rect, v); + let c = xf.to_canvas(screen); + let nz = (v.zoom * factor).clamp(0.05, 40.0); + v.zoom = nz; + v.origin = Point::new(c.x - (screen.x - rect.min.x) as f64 / nz, c.y - (screen.y - rect.min.y) as f64 / nz); +} + +pub fn set_zoom(app: &mut DesignApp, z: f64) { + let Some(rect) = app.canvas_rect else { return }; + let cur = app.view().map(|v| v.zoom).unwrap_or(1.0); + zoom_at(app, rect.center(), z / cur); +} + +pub fn apply_view_request(app: &mut DesignApp, p: &Value) { + if let Some(d) = p.get("pan").and_then(Value::as_array) { + let (dx, dy) = (d.first().and_then(Value::as_f64).unwrap_or(0.0), d.get(1).and_then(Value::as_f64).unwrap_or(0.0)); + if let Some(v) = app.view_mut() { + v.origin = Point::new(v.origin.x - dx / v.zoom, v.origin.y - dy / v.zoom); + } + } + if let (Some(a), Some(rect)) = (p.get("zoomAt").and_then(Value::as_array), app.canvas_rect) + && let Some(v) = app.view() + { + let c = Point::new(a[0].as_f64().unwrap_or(0.0), a[1].as_f64().unwrap_or(0.0)); + let xf = Xf::new(rect, v); + let s = xf.to_screen(c); + zoom_at(app, s, p.get("factor").and_then(Value::as_f64).unwrap_or(2.0)); + } +} + +fn mods(i: &egui::InputState, space: bool) -> Mods { + Mods { shift: i.modifiers.shift, alt: i.modifiers.alt, cmd: i.modifiers.command, ctrl: i.modifiers.ctrl, space } +} + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let full = ui.available_rect_before_wrap(); + let rulers = app.ui.rulers && app.ui.screen_mode != ScreenMode::Presentation; + let rect = if rulers { Rect::from_min_max(full.min + vec2(RULER, RULER), full.max) } else { full }; + app.canvas_rect = Some(rect); + let resp = ui.allocate_rect(full, Sense::click_and_drag()); + if !app.view().is_some_and(|v| v.fitted) { + fit(app, rect, "spread"); + } + handle_input(app, ui, &resp, rect); + let Some(st) = app.session.active() else { return }; + let v = *app.view().expect("view"); + let xf = Xf::new(rect, &v); + let doc = st.doc.clone(); + let layout = CanvasLayout::new(&doc, st.editing_parents); + let painter = ui.painter_at(rect); + let preview = matches!(app.ui.screen_mode, ScreenMode::Preview | ScreenMode::Presentation); + let bg = if app.ui.screen_mode == ScreenMode::Presentation { Color32::BLACK } else { t.pasteboard }; + painter.rect_filled(rect, 0.0, bg); + // Page shadows. + for slot in &layout.slots { + let r = xf.rect(slot.bounds); + painter.rect_filled(r.translate(vec2(3.0, 3.0)), 0.0, Color32::from_black_alpha(110)); + } + // Rendered content. + render_texture(app, ui.ctx(), rect, &xf, &layout, preview); + if let Some(tex) = &app.canvas.texture { + let uv = Rect::from_min_max(pos2(0.0, 0.0), pos2(1.0, 1.0)); + if preview { + // Preview: only page areas (trim) show content. + for slot in &layout.slots { + let r = xf.rect(slot.bounds); + let ruv = Rect::from_min_max( + pos2((r.min.x - rect.min.x) / rect.width(), (r.min.y - rect.min.y) / rect.height()), + pos2((r.max.x - rect.min.x) / rect.width(), (r.max.y - rect.min.y) / rect.height()), + ); + painter.with_clip_rect(r.intersect(rect)).image(tex.id(), r, ruv, Color32::WHITE); + } + } else { + painter.image(tex.id(), rect, uv, Color32::WHITE); + } + } + if !preview { + draw_guides(app, &painter, &xf, &doc, &layout, &t); + draw_frames(app, &painter, &xf, &doc, &layout); + } + draw_selection(app, &painter, &xf, &doc, &layout); + draw_tool_overlays(app, &painter, &xf); + if rulers { + draw_rulers(app, ui, full, rect, &xf, &doc, &layout, &t); + } + // Cursor. + if let Some(p) = resp.hover_pos().filter(|p| rect.contains(*p)) { + let space = ui.input(|i| i.key_down(egui::Key::Space)) && !app.session.wants_text(); + let c = if space { Cursor::Hand } else { app.session.cursor(xf.to_canvas(p), ui.input(|i| mods(i, false)), app.view_info()) }; + ui.ctx().set_cursor_icon(cursor_icon(c)); + } +} + +fn cursor_icon(c: Cursor) -> egui::CursorIcon { + use egui::CursorIcon as C; + match c { + Cursor::Arrow | Cursor::ArrowHollow => C::Default, + Cursor::Move => C::Move, + Cursor::Crosshair => C::Crosshair, + Cursor::ResizeH => C::ResizeHorizontal, + Cursor::ResizeV => C::ResizeVertical, + Cursor::ResizeNwSe => C::ResizeNwSe, + Cursor::ResizeNeSw => C::ResizeNeSw, + Cursor::Rotate => C::Alias, + Cursor::Pen => C::Crosshair, + Cursor::Text => C::Text, + Cursor::Hand => C::Grab, + Cursor::HandGrab => C::Grabbing, + Cursor::ZoomIn => C::ZoomIn, + Cursor::ZoomOut => C::ZoomOut, + Cursor::Eyedropper => C::Crosshair, + Cursor::LoadedText | Cursor::LoadedGraphic => C::Copy, + Cursor::NotAllowed => C::NotAllowed, + } +} + +fn render_texture(app: &mut DesignApp, ctx: &egui::Context, rect: Rect, xf: &Xf, layout: &CanvasLayout, preview: bool) { + let Some(st) = app.session.active() else { return }; + let ppp = ctx.pixels_per_point() as f64; + let w = (rect.width() as f64 * ppp).round().max(1.0) as u32; + let h = (rect.height() as f64 * ppp).round().max(1.0) as u32; + let doc_ptr = std::sync::Arc::as_ptr(&st.doc) as u64; + let key = (st.uid, doc_ptr, xf.zoom.to_bits(), xf.origin.x.to_bits() ^ xf.origin.y.to_bits().rotate_left(17), st.revision, w, h, preview as u8); + if app.canvas.key == Some(key) && app.canvas.texture.is_some() { + return; + } + let t0 = crate::now_ms(); + let placed: Vec = + layout.slots.iter().map(|s| designcraft_render::Placed { spread: s.spread, offset: s.offset }).collect(); + let view = xf.affine(ppp, rect.min); + let opts = designcraft_render::RenderOptions { printing_only: preview, greek_below_px: 3.0 * ppp, ..Default::default() }; + let img = app.canvas.renderer.render(&st.doc, &app.session.cache, &placed, w, h, view, &opts); + let ci = egui::ColorImage::from_rgba_premultiplied([w as usize, h as usize], &img.pixels); + match &mut app.canvas.texture { + Some(tex) => tex.set(ci, egui::TextureOptions::LINEAR), + None => app.canvas.texture = Some(ctx.load_texture("canvas", ci, egui::TextureOptions::LINEAR)), + } + app.canvas.key = Some(key); + app.perf.render_ms = crate::now_ms() - t0; +} + +fn dashed(painter: &egui::Painter, a: Pos2, b: Pos2, stroke: Stroke, dash: f32, gap: f32) { + painter.extend(egui::Shape::dashed_line(&[a, b], stroke, dash, gap)); +} + +fn draw_guides(app: &DesignApp, painter: &egui::Painter, xf: &Xf, doc: &Document, layout: &CanvasLayout, t: &Tokens) { + let s = &doc.settings; + for slot in &layout.slots { + let Some(sp) = doc.spread(slot.spread) else { continue }; + let off = slot.offset; + // Bleed: one rectangle around the spread (inside bleed only applies at the spread's outer edges). + let b = s.bleed; + if app.ui.guides && b.iter().any(|v| *v > 0.0) && !sp.pages.is_empty() { + let first = &sp.pages[0]; + let last = &sp.pages[sp.pages.len() - 1]; + let l = if first.side == PageSide::Left { b[3] } else { b[2] }; + let r = if last.side == PageSide::Right || last.side == PageSide::Single { b[3] } else { b[2] }; + let sb = sp.bounds() + off; + let br = DRect::new(sb.x0 - l, sb.y0 - b[0], sb.x1 + r, sb.y1 + b[1]); + painter.rect_stroke(xf.rect(br), 0.0, Stroke::new(1.0, c32(s.bleed_color)), StrokeKind::Middle); + } + for p in &sp.pages { + let pr = p.bounds() + off; + if !app.ui.guides { + continue; + } + // Baseline grid. + if app.ui.baseline_grid && xf.zoom >= s.baseline_grid.view_threshold { + let g = &s.baseline_grid; + let mut y = g.start; + while y < p.height { + let a = xf.to_screen(Point::new(pr.x0, pr.y0 + y)); + let bb = xf.to_screen(Point::new(pr.x1, pr.y0 + y)); + painter.line_segment([a, bb], Stroke::new(1.0, c32(g.color).gamma_multiply(0.8))); + y += g.increment.max(1.0); + } + } + // Margins (magenta) and columns (violet). + let m = p.margin_rect() + off; + painter.rect_stroke(xf.rect(m), 0.0, Stroke::new(1.0, c32(s.margin_color)), StrokeKind::Middle); + let cols = p.column_rects(); + if cols.len() > 1 { + for (i, c) in cols.iter().enumerate() { + let c = *c + off; + let col = Stroke::new(1.0, c32(s.column_color)); + if i > 0 { + painter.line_segment([xf.to_screen(Point::new(c.x0, c.y0)), xf.to_screen(Point::new(c.x0, c.y1))], col); + } + if i + 1 < cols.len() { + painter.line_segment([xf.to_screen(Point::new(c.x1, c.y0)), xf.to_screen(Point::new(c.x1, c.y1))], col); + } + } + } + for g in &p.guides { + let (a, bb) = match g.orientation { + designcraft_doc::Orientation::Horizontal => (Point::new(pr.x0, g.position + off.y), Point::new(pr.x1, g.position + off.y)), + designcraft_doc::Orientation::Vertical => (Point::new(g.position + off.x, pr.y0), Point::new(g.position + off.x, pr.y1)), + }; + painter.line_segment([xf.to_screen(a), xf.to_screen(bb)], Stroke::new(1.0, Color32::from_rgb(74, 227, 255))); + } + } + } + let _ = t; +} + +/// Spread-space → canvas transform for an item at `loc`. +fn item_canvas_xf(doc: &Document, layout: &CanvasLayout, id: designcraft_doc::ItemId) -> Option<(Affine, &'static str)> { + let loc = doc.find(id)?; + let off = layout.offset(loc.spread); + Some((Affine::translate(off) * doc.parent_xf(&loc), "")) +} + +fn path_screen(it: &Item, xf: &Xf, a: Affine) -> Vec> { + let bp = it.path.to_bezpath(); + let full = a * it.xf; + let mut out = Vec::new(); + let mut cur: Vec = Vec::new(); + designcraft_geom::kurbo::flatten(&bp, 0.25 / xf.zoom.max(0.01), |el| { + use designcraft_geom::PathEl::*; + match el { + MoveTo(p) => { + if cur.len() > 1 { + out.push(std::mem::take(&mut cur)); + } + cur.clear(); + cur.push(xf.to_screen(full * p)); + } + LineTo(p) => cur.push(xf.to_screen(full * p)), + ClosePath => { + if let Some(f) = cur.first().copied() { + cur.push(f); + } + } + _ => {} + } + }); + if cur.len() > 1 { + out.push(cur); + } + out +} + +fn draw_frames(app: &DesignApp, painter: &egui::Painter, xf: &Xf, doc: &Document, layout: &CanvasLayout) { + if !app.ui.frame_edges { + return; + } + for slot in &layout.slots { + let Some(sp) = doc.spread(slot.spread) else { continue }; + let a = Affine::translate(slot.offset); + // Parent items on document pages: dotted edges. + if let SpreadRef::Doc(si) = slot.spread { + let first = doc.first_page_of_spread(si); + for (pi, page) in sp.pages.iter().enumerate() { + let Some((ppi, ppg)) = doc.parent_page_for(first + pi) else { continue }; + let parent = &doc.parents[ppi]; + let dx = page.x - parent.pages[ppg].x; + for it in &parent.items { + if parent.pages.len() > 1 && parent.page_at_x(it.bounds().center().x) != Some(ppg) { + continue; + } + let col = doc.layer(it.layer).map(|l| c32(l.color)).unwrap_or(Color32::LIGHT_BLUE); + for poly in path_screen(it, xf, a * Affine::translate((dx, 0.0))) { + for w in poly.windows(2) { + dashed(painter, w[0], w[1], Stroke::new(1.0, col.gamma_multiply(0.8)), 2.0, 2.0); + } + } + } + } + } + for it in &sp.items { + draw_item_edges(painter, xf, doc, it, a); + } + } +} + +fn draw_item_edges(painter: &egui::Painter, xf: &Xf, doc: &Document, it: &Item, a: Affine) { + if it.hidden || doc.layer(it.layer).is_some_and(|l| !l.visible) { + return; + } + let col = doc.layer(it.layer).map(|l| c32(l.color)).unwrap_or(Color32::LIGHT_BLUE); + if let Content::Group { items } = &it.content { + for c in items { + draw_item_edges(painter, xf, doc, c, a * it.xf); + } + return; + } + // Frames without a stroke show their edge; shapes with strokes are visible already. + let show = it.stroke.is_none() || matches!(it.content, Content::Text(_) | Content::Graphic(_)); + if show { + for poly in path_screen(it, xf, a) { + painter.add(egui::Shape::line(poly, Stroke::new(1.0, col.gamma_multiply(0.75)))); + } + } + // Empty graphic frame: the X. + if it.object_style == designcraft_doc::BASIC_GRAPHICS_FRAME && matches!(it.content, Content::Unassigned) { + let r = it.inner_bounds(); + let m = a * it.xf; + let p = |x: f64, y: f64| xf.to_screen(m * Point::new(x, y)); + painter.line_segment([p(r.x0, r.y0), p(r.x1, r.y1)], Stroke::new(1.0, col.gamma_multiply(0.75))); + painter.line_segment([p(r.x1, r.y0), p(r.x0, r.y1)], Stroke::new(1.0, col.gamma_multiply(0.75))); + } +} + +fn layer_color(doc: &Document, it: &Item) -> Color32 { + doc.layer(it.layer).map(|l| c32(l.color)).unwrap_or(Color32::from_rgb(79, 153, 255)) +} + +fn draw_selection(app: &DesignApp, painter: &egui::Painter, xf: &Xf, doc: &Document, layout: &CanvasLayout) { + let Some(st) = app.session.active() else { return }; + let sel: &Selection = &st.selection; + // Text selection / caret. + if let Some(ts) = sel.text { + draw_text_selection(app, painter, xf, doc, layout, ts); + } + let mut union: Option = None; + let mut color = Color32::from_rgb(79, 153, 255); + for id in &sel.items { + let (Some(it), Some((a, _))) = (doc.item(*id), item_canvas_xf(doc, layout, *id)) else { continue }; + color = layer_color(doc, it); + for poly in path_screen(it, xf, a) { + painter.add(egui::Shape::line(poly, Stroke::new(1.0, color))); + } + let b = xf.rect(a.transform_rect_bbox(it.bounds())); + union = Some(union.map_or(b, |u| u.union(b))); + // Text frame ports. + if let Content::Text(tf) = &it.content { + draw_ports(app, painter, xf, doc, layout, it, tf.story, a, color); + } + if let Content::Graphic(g) = &it.content + && sel.content + { + let gb = xf.rect((a * it.xf).transform_rect_bbox(g.xf.transform_rect_bbox(DRect::new(0.0, 0.0, g.size.0, g.size.1)))); + painter.rect_stroke(gb, 0.0, Stroke::new(1.0, Color32::from_rgb(196, 111, 43)), StrokeKind::Middle); + } + } + if let Some(u) = union + && sel.text.is_none() + { + if sel.items.len() > 1 { + painter.rect_stroke(u, 0.0, Stroke::new(1.0, color), StrokeKind::Middle); + } + let hs = 6.0; + for h in designcraft_tools::select::handles(DRect::new(u.min.x as f64, u.min.y as f64, u.max.x as f64, u.max.y as f64)) { + let r = Rect::from_center_size(pos2(h.x as f32, h.y as f32), vec2(hs, hs)); + painter.rect_filled(r, 0.0, Color32::WHITE); + painter.rect_stroke(r, 0.0, Stroke::new(1.0, color), StrokeKind::Inside); + } + // Content grabber on graphic frames. + if sel.items.len() == 1 && doc.item(sel.items[0]).is_some_and(|i| matches!(i.content, Content::Graphic(_))) { + painter.circle_stroke(u.center(), 8.0, Stroke::new(1.5, Color32::from_white_alpha(170))); + painter.circle_stroke(u.center(), 4.0, Stroke::new(1.5, Color32::from_white_alpha(170))); + } + } + // Threads. + if app.ui.text_threads || sel.items.iter().any(|i| doc.item(*i).is_some_and(|x| x.is_text_frame())) { + for id in &sel.items { + let Some(sid) = doc.item(*id).and_then(|i| i.text_frame()).map(|t| t.story) else { continue }; + let Some(story) = doc.story(sid) else { continue }; + for w in story.frames.windows(2) { + let (Some(a), Some(b)) = (port_pos(doc, layout, w[0], true), port_pos(doc, layout, w[1], false)) else { continue }; + let col = doc.item(w[0]).map(|i| layer_color(doc, i)).unwrap_or(color); + painter.line_segment([xf.to_screen(a), xf.to_screen(b)], Stroke::new(1.0, col)); + } + } + } +} + +/// Port location (canvas): out port at bottom-right, in port at top-left. +fn port_pos(doc: &Document, layout: &CanvasLayout, id: designcraft_doc::ItemId, out: bool) -> Option { + let it = doc.item(id)?; + let (a, _) = item_canvas_xf(doc, layout, id)?; + let r = it.inner_bounds(); + let p = if out { Point::new(r.x1 - 10.0, r.y1) } else { Point::new(r.x0 + 10.0, r.y0) }; + Some(a * it.xf * p) +} + +#[allow(clippy::too_many_arguments)] +fn draw_ports( + app: &DesignApp, + painter: &egui::Painter, + xf: &Xf, + doc: &Document, + layout: &CanvasLayout, + it: &Item, + sid: designcraft_doc::StoryId, + a: Affine, + color: Color32, +) { + let Some(story) = doc.story(sid) else { return }; + let pos = story.frames.iter().position(|f| *f == it.id).unwrap_or(0); + let is_last = pos + 1 == story.frames.len(); + let cs = app.session.cache.get(doc, sid, None); + let overset = is_last && cs.is_overset(); + let s = 8.0; + let _ = layout; + let r = it.inner_bounds(); + let m = a * it.xf; + let inp = xf.to_screen(m * Point::new(r.x0 + 12.0, r.y0)); + let outp = xf.to_screen(m * Point::new(r.x1 - 12.0, r.y1)); + for (c, has_link, is_out) in [(inp, pos > 0, false), (outp, !is_last, true)] { + let pr = Rect::from_center_size(c, vec2(s, s)); + painter.rect_filled(pr, 0.0, Color32::WHITE); + painter.rect_stroke(pr, 0.0, Stroke::new(1.0, color), StrokeKind::Inside); + if is_out && overset { + let red = Color32::from_rgb(230, 20, 20); + painter.line_segment([c - vec2(2.5, 0.0), c + vec2(2.5, 0.0)], Stroke::new(1.5, red)); + painter.line_segment([c - vec2(0.0, 2.5), c + vec2(0.0, 2.5)], Stroke::new(1.5, red)); + } else if has_link { + painter.add(egui::Shape::convex_polygon(vec![c + vec2(-2.0, -2.5), c + vec2(2.5, 0.0), c + vec2(-2.0, 2.5)], color, Stroke::NONE)); + } + } +} + +fn draw_text_selection(app: &DesignApp, painter: &egui::Painter, xf: &Xf, doc: &Document, layout: &CanvasLayout, ts: designcraft_doc::TextSel) { + let cs = app.session.cache.get(doc, ts.story, None); + let range = ts.range(); + for ft in &cs.frames { + let Some((a, _)) = item_canvas_xf(doc, layout, ft.frame) else { continue }; + let Some(it) = doc.item(ft.frame) else { continue }; + let m = a * it.xf; + // Show the frame edge while typing. + for poly in path_screen(it, xf, a) { + painter.add(egui::Shape::line(poly, Stroke::new(1.0, layer_color(doc, it).gamma_multiply(0.6)))); + } + if !range.is_empty() { + for l in &ft.lines { + let s = range.start.max(l.range.start); + let e = range.end.min(l.range.end); + if s > e || (s == e && !(l.range.end < range.end && e == l.range.end)) { + continue; + } + let x0 = caret_x(l, s); + let x1 = if e == l.range.end && range.end > l.range.end { l.end_x.max(x0 + 3.0) } else { caret_x(l, e) }; + let q = [ + xf.to_screen(m * Point::new(x0, l.baseline - l.ascent)), + xf.to_screen(m * Point::new(x1, l.baseline - l.ascent)), + xf.to_screen(m * Point::new(x1, l.baseline + l.descent)), + xf.to_screen(m * Point::new(x0, l.baseline + l.descent)), + ]; + painter.add(egui::Shape::convex_polygon(q.to_vec(), Color32::from_rgba_unmultiplied(80, 140, 255, 110), Stroke::NONE)); + } + } + } + if ts.is_caret() + && let Some((fi, x, bl, asc, desc)) = compose::caret(&cs, ts.focus) + && let Some(ft) = cs.frames.get(fi) + && let (Some((a, _)), Some(it)) = (item_canvas_xf(doc, layout, ft.frame), doc.item(ft.frame)) + { + let m = a * it.xf; + let blink = (painter.ctx().input(|i| i.time) * 1.6) as i64 % 2 == 0; + if blink { + let p0 = xf.to_screen(m * Point::new(x, bl - asc)); + let p1 = xf.to_screen(m * Point::new(x, bl + desc)); + painter.line_segment([p0, p1], Stroke::new(1.0, Color32::BLACK)); + } + painter.ctx().request_repaint_after(std::time::Duration::from_millis(330)); + } +} + +fn caret_x(l: &compose::Line, pos: usize) -> f64 { + for g in &l.glyphs { + if g.len > 0 && pos >= g.byte && pos < g.byte + g.len { + return g.x + g.adv * (pos - g.byte) as f64 / g.len as f64; + } + if g.len > 0 && g.byte >= pos { + return g.x; + } + } + l.end_x +} + +fn draw_tool_overlays(app: &mut DesignApp, painter: &egui::Painter, xf: &Xf) { + let ov = app.session.overlays(app.view_info()); + for o in ov { + match o { + Overlay::Marquee(r) => { + let r = xf.rect(r); + painter.rect_filled(r, 0.0, Color32::from_rgba_unmultiplied(80, 140, 255, 30)); + for (a, b) in [ + (r.left_top(), r.right_top()), + (r.right_top(), r.right_bottom()), + (r.right_bottom(), r.left_bottom()), + (r.left_bottom(), r.left_top()), + ] { + dashed(painter, a, b, Stroke::new(1.0, Color32::from_gray(200)), 3.0, 3.0); + } + } + Overlay::Measure { p, text } => { + let s = xf.to_screen(p) + vec2(14.0, 14.0); + let g = painter.layout_no_wrap(text, egui::FontId::proportional(11.0), Color32::WHITE); + let r = Rect::from_min_size(s, g.size() + vec2(10.0, 6.0)); + painter.rect_filled(r, 3.0, Color32::from_rgba_unmultiplied(70, 70, 70, 230)); + painter.galley(r.min + vec2(5.0, 3.0), g, Color32::WHITE); + } + Overlay::Line { a, b, color, dashed: d } => { + let st = Stroke::new(1.0, c32(color)); + if d { + dashed(painter, xf.to_screen(a), xf.to_screen(b), st, 3.0, 3.0); + } else { + painter.line_segment([xf.to_screen(a), xf.to_screen(b)], st); + } + } + Overlay::Guide { a, b } => { + painter.line_segment([xf.to_screen(a), xf.to_screen(b)], Stroke::new(1.0, Color32::from_rgb(0, 200, 83))); + } + Overlay::Path { .. } => {} + } + } +} + +#[allow(clippy::too_many_arguments)] +fn draw_rulers(app: &DesignApp, ui: &egui::Ui, full: Rect, rect: Rect, xf: &Xf, doc: &Document, layout: &CanvasLayout, t: &Tokens) { + let painter = ui.painter_at(full); + let top = Rect::from_min_max(pos2(rect.min.x, full.min.y), pos2(full.max.x, rect.min.y)); + let left = Rect::from_min_max(pos2(full.min.x, rect.min.y), pos2(rect.min.x, full.max.y)); + painter.rect_filled(top, 0.0, t.ruler); + painter.rect_filled(left, 0.0, t.ruler); + painter.rect_filled(Rect::from_min_max(full.min, rect.min), 0.0, t.ruler); + painter.line_segment([pos2(rect.min.x, rect.min.y - 0.5), pos2(full.max.x, rect.min.y - 0.5)], Stroke::new(1.0, t.divider)); + painter.line_segment([pos2(rect.min.x - 0.5, rect.min.y), pos2(rect.min.x - 0.5, full.max.y)], Stroke::new(1.0, t.divider)); + // Zero-point crosshair box. + let zc = Rect::from_min_max(full.min, rect.min).center(); + painter.line_segment([zc - vec2(4.0, 0.0), zc + vec2(4.0, 0.0)], Stroke::new(1.0, t.ruler_tick)); + painter.line_segment([zc - vec2(0.0, 4.0), zc + vec2(0.0, 4.0)], Stroke::new(1.0, t.ruler_tick)); + // Origin: top-left of the current spread's first page. + let Some(i) = current_slot(app, layout) else { return }; + let slot = &layout.slots[i]; + let origin = Point::new(slot.bounds.x0, slot.bounds.y0); + let unit = doc.settings.horizontal_units; + let (major, sub) = unit.ruler_ticks(xf.zoom); + let font = egui::FontId::proportional(9.0); + let tick = Stroke::new(1.0, t.ruler_tick); + // Horizontal. + let c0 = xf.to_canvas(top.min).x - origin.x; + let c1 = xf.to_canvas(pos2(top.max.x, 0.0)).x - origin.x; + let mut k = (c0 / major).floor() as i64; + while (k as f64) * major <= c1 { + let x0 = k as f64 * major; + for s in 0..sub { + let x = x0 + major * s as f64 / sub as f64; + let sx = xf.to_screen(Point::new(origin.x + x, 0.0)).x; + let len = if s == 0 { + RULER + } else if sub % 2 == 0 && s == sub / 2 { + 7.0 + } else { + 4.0 + }; + painter.line_segment([pos2(sx, top.max.y - len), pos2(sx, top.max.y)], tick); + if s == 0 { + let v = unit.from_pt(x); + painter.text(pos2(sx + 2.0, top.min.y + 1.0), egui::Align2::LEFT_TOP, fmt_tick(v), font.clone(), t.ruler_tick); + } + } + k += 1; + } + // Vertical. + let c0 = xf.to_canvas(pos2(0.0, left.min.y)).y - origin.y; + let c1 = xf.to_canvas(pos2(0.0, left.max.y)).y - origin.y; + let mut k = (c0 / major).floor() as i64; + while (k as f64) * major <= c1 { + let y0 = k as f64 * major; + for s in 0..sub { + let y = y0 + major * s as f64 / sub as f64; + let sy = xf.to_screen(Point::new(0.0, origin.y + y)).y; + let len = if s == 0 { + RULER + } else if sub % 2 == 0 && s == sub / 2 { + 7.0 + } else { + 4.0 + }; + painter.line_segment([pos2(left.max.x - len, sy), pos2(left.max.x, sy)], tick); + if s == 0 { + // Stacked digits like InDesign's vertical ruler. + let label = fmt_tick(unit.from_pt(y)); + for (j, ch) in label.chars().enumerate() { + painter.text(pos2(left.min.x + 3.0, sy + 2.0 + j as f32 * 8.5), egui::Align2::LEFT_TOP, ch, font.clone(), t.ruler_tick); + } + } + } + k += 1; + } + // Pointer position markers. + if let Some(p) = ui.ctx().pointer_hover_pos().filter(|p| rect.contains(*p)) { + let m = Stroke::new(1.0, t.text_dim); + dashed(&painter, pos2(p.x, top.min.y), pos2(p.x, top.max.y), m, 1.5, 1.5); + dashed(&painter, pos2(left.min.x, p.y), pos2(left.max.x, p.y), m, 1.5, 1.5); + } +} + +fn fmt_tick(v: f64) -> String { + let r = v.round(); + if (v - r).abs() < 1e-6 { format!("{}", r as i64) } else { format!("{v:.1}") } +} + +fn handle_input(app: &mut DesignApp, ui: &mut egui::Ui, resp: &egui::Response, rect: Rect) { + let Some(v) = app.view().copied() else { return }; + let xf = Xf::new(rect, &v); + let wants_text = app.session.wants_text(); + let space = ui.input(|i| i.key_down(egui::Key::Space)) && !wants_text && !ui.ctx().egui_wants_keyboard_input(); + // Scroll / zoom. + if resp.hovered() { + let (scroll, zoom_delta, m, hover) = ui.input(|i| (i.smooth_scroll_delta, i.zoom_delta(), i.modifiers, i.pointer.hover_pos())); + if let Some(hp) = hover { + if zoom_delta != 1.0 { + zoom_at(app, hp, zoom_delta as f64); + } else if m.command && scroll.y != 0.0 { + zoom_at(app, hp, (1.0 + scroll.y as f64 * 0.003).clamp(0.5, 2.0)); + } else if scroll != egui::Vec2::ZERO + && let Some(v) = app.view_mut() + { + v.origin = Point::new(v.origin.x - scroll.x as f64 / v.zoom, v.origin.y - scroll.y as f64 / v.zoom); + } + } + } + // Space-drag = hand. + if space && resp.dragged() { + let d = resp.drag_delta(); + if let Some(v) = app.view_mut() { + v.origin = Point::new(v.origin.x - d.x as f64 / v.zoom, v.origin.y - d.y as f64 / v.zoom); + } + return; + } + let m = ui.input(|i| mods(i, space)); + let vi = app.view_info(); + let pos = |p: Pos2| xf.to_canvas(p); + let mut events: Vec = Vec::new(); + let down_id = egui::Id::new("canvas_pointer_down"); + let mut down: bool = ui.data(|d| d.get_temp(down_id)).unwrap_or(false); + let (pressed, released, origin, latest, dbl) = ui.input(|i| { + ( + i.pointer.primary_pressed(), + i.pointer.primary_released(), + i.pointer.press_origin(), + i.pointer.latest_pos(), + i.pointer.button_double_clicked(egui::PointerButton::Primary), + ) + }); + if pressed + && !space + && let Some(o) = origin.filter(|o| rect.contains(*o) && resp.hovered()) + { + events.push(PointerEvent { kind: if dbl { PointerKind::DoubleClick } else { PointerKind::Down }, pos: pos(o), mods: m }); + down = true; + } + if down + && resp.dragged() + && resp.drag_delta() != egui::Vec2::ZERO + && let Some(p) = latest + { + events.push(PointerEvent { kind: PointerKind::Drag, pos: pos(p), mods: m }); + } + if down && released { + let p = latest.unwrap_or(rect.center()); + events.push(PointerEvent { kind: PointerKind::Up, pos: pos(p), mods: m }); + down = false; + } else if !down && let Some(p) = resp.hover_pos() { + events.push(PointerEvent { kind: PointerKind::Move, pos: pos(p), mods: m }); + } + ui.data_mut(|d| d.insert_temp(down_id, down)); + for e in events { + if let Err(err) = app.session.pointer(&e, vi) { + app.status(err.to_string()); + } + } + app.after_engine(); + if resp.clicked() || resp.drag_started() { + resp.request_focus(); + } + // Keyboard for the active tool. + if ui.ctx().egui_wants_keyboard_input() && !resp.has_focus() { + return; + } + let evs = ui.input(|i| i.events.clone()); + for e in evs { + match e { + egui::Event::Text(t) if wants_text => { + let _ = app.run("text.insert", json!({"text": t})); + } + egui::Event::Paste(t) if wants_text => { + let _ = app.run("text.insert", json!({"text": t})); + } + egui::Event::Key { key, pressed: true, modifiers, .. } => { + let k = match key { + egui::Key::ArrowLeft => Some(ToolKey::Left), + egui::Key::ArrowRight => Some(ToolKey::Right), + egui::Key::ArrowUp => Some(ToolKey::Up), + egui::Key::ArrowDown => Some(ToolKey::Down), + egui::Key::Enter => Some(ToolKey::Enter), + egui::Key::Escape => Some(ToolKey::Escape), + egui::Key::Backspace => Some(ToolKey::Backspace), + egui::Key::Delete => Some(ToolKey::Delete), + egui::Key::Tab => Some(ToolKey::Tab), + egui::Key::Home => Some(ToolKey::Home), + egui::Key::End => Some(ToolKey::End), + _ => None, + }; + if let Some(k) = k { + let m = Mods { shift: modifiers.shift, alt: modifiers.alt, cmd: modifiers.command, ctrl: modifiers.ctrl, space: false }; + let handled = app.session.tool_key(k, m, vi).unwrap_or(false); + if !handled && k == ToolKey::Escape { + let _ = app.run("edit.deselectAll", json!({})); + } + app.after_engine(); + } + } + _ => {} + } + } + let _ = DVec2::ZERO; +} diff --git a/crates/ui-egui/src/chrome.rs b/crates/ui-egui/src/chrome.rs new file mode 100644 index 00000000..bd1728e5 --- /dev/null +++ b/crates/ui-egui/src/chrome.rs @@ -0,0 +1,527 @@ +//! Window chrome: application bar (with menus), Control panel, document tabs, status bar, start screen. + +use designcraft_doc::{Align, Content}; +use designcraft_geom::Unit; +use egui::{Color32, Sense, Stroke, vec2}; +use serde_json::json; + +use crate::panels::{self, SelInfo}; +use crate::theme::{Tokens, semibold}; +use crate::widgets::{caption, measure, number}; +use crate::{DesignApp, ScreenMode, icons}; + +pub fn app_bar(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let left = if app.integrated_titlebar { 78 } else { 8 }; + egui::Panel::top("app_bar") + .exact_size(36.0) + .frame(egui::Frame::NONE.fill(t.app_bar).inner_margin(egui::Margin { left, right: 10, top: 0, bottom: 0 })) + .show(ui, |ui| { + ui.horizontal_centered(|ui| { + // Brand mark: our own "Dc" tile. + let (r, _) = ui.allocate_exact_size(vec2(24.0, 24.0), Sense::hover()); + ui.painter().rect_filled(r, 5.0, Color32::from_rgb(214, 44, 104)); + ui.painter().text(r.center(), egui::Align2::CENTER_CENTER, "Dc", semibold(12.5), Color32::WHITE); + ui.add_space(4.0); + if icons::button(ui, "home", 24.0, app.session.active().is_none(), "Home").clicked() { + app.session_home(); + } + ui.add_space(4.0); + ui.style_mut().visuals.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT; + ui.style_mut().visuals.widgets.inactive.bg_stroke = Stroke::NONE; + ui.style_mut().visuals.widgets.hovered.bg_stroke = Stroke::NONE; + ui.style_mut().spacing.button_padding = vec2(7.0, 3.0); + crate::menus::menu_bar(app, ui); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + ui.add_space(4.0); + icons::button(ui, "search", 22.0, false, "Search"); + ui.menu_button(egui::RichText::new("Essentials ▾").color(t.text), |ui| { + for w in ["Essentials", "Advanced", "Book", "Digital Publishing", "Printing and Proofing", "Typography"] { + if ui.button(w).clicked() { + ui.close(); + } + } + }); + if ui + .add(egui::Button::new(egui::RichText::new("Share").color(Color32::WHITE)).fill(t.accent_strong).corner_radius(12.0)) + .clicked() + { + app.status("Sharing is not part of DesignCraft — export a PDF or package instead."); + } + ui.add_space(8.0); + // Screen mode. + let mode = app.ui.screen_mode; + for (m, icon, tip) in [(ScreenMode::Preview, "screen-preview", "Preview (W)"), (ScreenMode::Normal, "screen-normal", "Normal")] { + if icons::button(ui, icon, 22.0, mode == m, tip).clicked() { + app.ui.screen_mode = m; + } + } + ui.add_space(6.0); + // Zoom dropdown. + let z = app.view().map(|v| v.zoom).unwrap_or(1.0); + ui.menu_button(egui::RichText::new(format!("{:.0}% ▾", z * 100.0)).color(t.text), |ui| { + for p in [0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 4.0] { + if ui.button(format!("{:.0}%", p * 100.0)).clicked() { + let _ = app.run("view.zoom", json!({"zoom": p})); + ui.close(); + } + } + }); + }); + }); + }); +} + +impl DesignApp { + fn session_home(&mut self) { + self.ui.status = "Home".into(); + } +} + +fn vsep(ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let (r, _) = ui.allocate_exact_size(vec2(9.0, 46.0), Sense::hover()); + ui.painter().line_segment([r.center_top() + vec2(0.0, 4.0), r.center_bottom() - vec2(0.0, 4.0)], Stroke::new(1.0, t.divider)); +} + +/// Two-row context-sensitive Control panel. +pub fn control_bar(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + egui::Panel::top("control_bar") + .exact_size(64.0) + .frame( + egui::Frame::NONE.fill(t.panel).inner_margin(egui::Margin { left: 8, right: 8, top: 5, bottom: 3 }).stroke(Stroke::new(1.0, t.divider)), + ) + .show(ui, |ui| { + ui.horizontal(|ui| { + let text_mode = app.session.tool_id() == "type" || app.session.active().is_some_and(|d| d.selection.text.is_some()); + if text_mode { + control_text(app, ui); + } else { + control_object(app, ui); + } + }); + }); +} + +fn control_object(app: &mut DesignApp, ui: &mut egui::Ui) { + let units = app.session.active().map(|d| d.doc.settings.horizontal_units).unwrap_or(Unit::Picas); + let info = panels::sel_info(app); + // Reference point proxy. + let (r, _) = ui.allocate_exact_size(vec2(30.0, 44.0), Sense::hover()); + let t = Tokens::get(ui.ctx()); + icons::paint(ui.painter(), egui::Rect::from_center_size(r.center(), vec2(26.0, 26.0)), "ref-point", t.icon); + ui.painter().rect_filled(egui::Rect::from_center_size(r.center() + vec2(-7.8, -7.8), vec2(4.0, 4.0)), 0.0, t.text_strong); + let (x, y, w, h) = match &info { + Some(SelInfo { page_rect, .. }) => (Some(page_rect.x0), Some(page_rect.y0), Some(page_rect.width()), Some(page_rect.height())), + None => (None, None, None, None), + }; + egui::Grid::new("ctl_xywh").num_columns(4).spacing(vec2(4.0, 4.0)).show(ui, |ui| { + caption(ui, "X:"); + if let Some(v) = measure(ui, "cx", x, units, 64.0) { + let _ = app.run("transform.set", json!({"x": v})); + } + caption(ui, "W:"); + if let Some(v) = measure(ui, "cw", w, units, 64.0) { + let _ = app.run("transform.set", json!({"width": v})); + } + ui.end_row(); + caption(ui, "Y:"); + if let Some(v) = measure(ui, "cy", y, units, 64.0) { + let _ = app.run("transform.set", json!({"y": v})); + } + caption(ui, "H:"); + if let Some(v) = measure(ui, "ch", h, units, 64.0) { + let _ = app.run("transform.set", json!({"height": v})); + } + ui.end_row(); + }); + vsep(ui); + // Rotate / flip. + ui.vertical(|ui| { + ui.horizontal(|ui| { + if icons::button(ui, "tool-rotate", 20.0, false, "Rotate 90° Counterclockwise").clicked() { + let _ = app.run("transform.rotate", json!({"angle": 90})); + } + if ui.small_button("⇋").on_hover_text("Flip Horizontal").clicked() { + let _ = app.run("transform.flip", json!({"axis": "horizontal"})); + } + }); + ui.horizontal(|ui| { + if ui.small_button("↻").on_hover_text("Rotate 90° Clockwise").clicked() { + let _ = app.run("transform.rotate", json!({"angle": -90})); + } + if ui.small_button("⇵").on_hover_text("Flip Vertical").clicked() { + let _ = app.run("transform.flip", json!({"axis": "vertical"})); + } + }); + }); + vsep(ui); + // Fill / stroke. + ui.vertical(|ui| { + ui.horizontal(|ui| { + caption(ui, "Fill"); + panels::swatch_picker(app, ui, "ctlfill", info.as_ref().map(|i| i.fill.clone()), |app, name| { + let _ = app.run("object.fill", json!({"swatch": name})); + }); + }); + ui.horizontal(|ui| { + caption(ui, "Stroke"); + panels::swatch_picker(app, ui, "ctlstroke", info.as_ref().map(|i| i.stroke.clone()), |app, name| { + let _ = app.run("object.stroke", json!({"swatch": name})); + }); + if let Some(v) = number(ui, "csw", info.as_ref().map(|i| i.stroke_weight), " pt", 46.0, 3) { + let _ = app.run("object.stroke", json!({"weight": v})); + } + }); + }); + vsep(ui); + // Opacity, fx. + ui.vertical(|ui| { + ui.horizontal(|ui| { + caption(ui, "Opacity"); + if let Some(v) = number(ui, "cop", info.as_ref().map(|i| i.opacity * 100.0), "%", 42.0, 0) { + let _ = app.run("object.opacity", json!({"opacity": v / 100.0})); + } + }); + ui.horizontal(|ui| { + if icons::button(ui, "panel-effects", 20.0, info.as_ref().is_some_and(|i| i.shadow), "Drop Shadow").clicked() { + let _ = app.run("object.dropShadow", json!({})); + } + }); + }); + vsep(ui); + // Fitting. + ui.vertical(|ui| { + ui.horizontal(|ui| { + for (icon, mode, tip) in [ + ("fit-fill", "fillProportionally", "Fill Frame Proportionally"), + ("fit-prop", "fitProportionally", "Fit Content Proportionally"), + ("fit-content", "fitContentToFrame", "Fit Content to Frame"), + ] { + if icons::button(ui, icon, 20.0, false, tip).clicked() { + let _ = app.run("object.fit", json!({"mode": mode})); + } + } + }); + ui.horizontal(|ui| { + for (icon, mode, tip) in [("fit-frame", "fitFrameToContent", "Fit Frame to Content"), ("fit-center", "centerContent", "Center Content")] { + if icons::button(ui, icon, 20.0, false, tip).clicked() { + let _ = app.run("object.fit", json!({"mode": mode})); + } + } + }); + }); + vsep(ui); + // Text wrap. + ui.vertical(|ui| { + ui.horizontal(|ui| { + for (icon, mode, tip) in [ + ("wrap-none", "none", "No Text Wrap"), + ("wrap-bbox", "boundingBox", "Wrap Around Bounding Box"), + ("wrap-contour", "contour", "Wrap Around Object Shape"), + ] { + let on = info.as_ref().is_some_and(|i| i.wrap == mode); + if icons::button(ui, icon, 20.0, on, tip).clicked() { + let _ = app.run("object.textWrap", json!({"mode": mode})); + } + } + }); + ui.horizontal(|ui| { + for (icon, mode, tip) in [("wrap-jump", "jumpObject", "Jump Object"), ("wrap-next", "jumpToNextColumn", "Jump to Next Column")] { + let on = info.as_ref().is_some_and(|i| i.wrap == mode); + if icons::button(ui, icon, 20.0, on, tip).clicked() { + let _ = app.run("object.textWrap", json!({"mode": mode})); + } + } + }); + }); + if let Some(i) = &info + && let Some(cols) = i.columns + { + vsep(ui); + ui.vertical(|ui| { + caption(ui, "Columns"); + if let Some(v) = number(ui, "ccols", Some(cols as f64), "", 36.0, 0) { + let _ = app.run("object.textFrameOptions", json!({"columns": v.max(1.0) as u64})); + } + }); + } +} + +fn control_text(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let attrs = panels::text_attrs(app); + let chars = attrs.as_ref().map(|a| a["chars"].clone()).unwrap_or_default(); + let para = attrs.as_ref().map(|a| a["para"].clone()).unwrap_or_default(); + ui.vertical(|ui| { + ui.horizontal(|ui| { + ui.label(egui::RichText::new("A").font(semibold(15.0)).color(t.text_strong)); + }); + ui.horizontal(|ui| { + ui.label(egui::RichText::new("¶").font(semibold(15.0)).color(t.text_dim)); + }); + }); + vsep(ui); + ui.vertical(|ui| { + let fam = chars["fontFamily"].as_str().unwrap_or("").to_string(); + let sty = chars["fontStyle"].as_str().unwrap_or("").to_string(); + panels::font_family_picker(app, ui, &fam, 170.0); + panels::font_style_picker(app, ui, &fam, &sty, 170.0); + }); + vsep(ui); + egui::Grid::new("ctl_char").num_columns(4).spacing(vec2(4.0, 3.0)).show(ui, |ui| { + caption(ui, "𝐓"); + if let Some(v) = number(ui, "csize", chars["size"].as_f64(), " pt", 54.0, 2) { + let _ = app.run("type.char", json!({"attrs": {"size": v}})); + } + caption(ui, "VA"); + if let Some(v) = number(ui, "ctrack", chars["tracking"].as_f64(), "", 48.0, 0) { + let _ = app.run("type.char", json!({"attrs": {"tracking": v}})); + } + ui.end_row(); + caption(ui, "Ā"); + let lead = match chars["leading"]["kind"].as_str() { + Some("points") => chars["leading"]["value"].as_f64(), + _ => chars["size"].as_f64().map(|s| s * para["autoLeading"].as_f64().unwrap_or(1.2)), + }; + if let Some(v) = number(ui, "clead", lead, " pt", 54.0, 2) { + let _ = app.run("type.char", json!({"attrs": {"leading": {"kind": "points", "value": v}}})); + } + caption(ui, "IT"); + if let Some(v) = number(ui, "chs", chars["hScale"].as_f64().map(|v| v * 100.0), "%", 48.0, 0) { + let _ = app.run("type.char", json!({"attrs": {"hScale": v / 100.0}})); + } + ui.end_row(); + }); + vsep(ui); + ui.vertical(|ui| { + let cur: Align = serde_json::from_value(para["align"].clone()).unwrap_or_default(); + ui.horizontal(|ui| { + for (a, icon) in [(Align::Left, "align-left"), (Align::Center, "align-center"), (Align::Right, "align-right")] { + if icons::button(ui, icon, 20.0, cur == a, a.label()).clicked() { + let _ = app.run("type.para", json!({"attrs": {"align": a}})); + } + } + }); + ui.horizontal(|ui| { + for (a, icon) in [(Align::LeftJustified, "align-justify"), (Align::FullyJustified, "align-justify-all")] { + if icons::button(ui, icon, 20.0, cur == a, a.label()).clicked() { + let _ = app.run("type.para", json!({"attrs": {"align": a}})); + } + } + }); + }); + vsep(ui); + let units = app.session.active().map(|d| d.doc.settings.horizontal_units).unwrap_or(Unit::Picas); + egui::Grid::new("ctl_para").num_columns(4).spacing(vec2(4.0, 3.0)).show(ui, |ui| { + caption(ui, "→|"); + if let Some(v) = measure(ui, "cli", para["leftIndent"].as_f64(), units, 54.0) { + let _ = app.run("type.para", json!({"attrs": {"leftIndent": v}})); + } + caption(ui, "↑¶"); + if let Some(v) = measure(ui, "csb", para["spaceBefore"].as_f64(), units, 54.0) { + let _ = app.run("type.para", json!({"attrs": {"spaceBefore": v}})); + } + ui.end_row(); + caption(ui, "→¶"); + if let Some(v) = measure(ui, "cfi", para["firstLineIndent"].as_f64(), units, 54.0) { + let _ = app.run("type.para", json!({"attrs": {"firstLineIndent": v}})); + } + caption(ui, "↓¶"); + if let Some(v) = measure(ui, "csa", para["spaceAfter"].as_f64(), units, 54.0) { + let _ = app.run("type.para", json!({"attrs": {"spaceAfter": v}})); + } + ui.end_row(); + }); + vsep(ui); + ui.vertical(|ui| { + let ps = attrs.as_ref().and_then(|a| a["paragraphStyle"].as_str()).unwrap_or("").to_string(); + let ov = attrs.as_ref().and_then(|a| a["paraOverrides"].as_u64()).unwrap_or(0) + + attrs.as_ref().and_then(|a| a["charOverrides"].as_u64()).unwrap_or(0); + panels::para_style_picker(app, ui, &ps, ov > 0, 170.0); + let hy = para["hyphenate"].as_bool().unwrap_or(true); + let mut h = hy; + if ui.checkbox(&mut h, "Hyphenate").changed() { + let _ = app.run("type.para", json!({"attrs": {"hyphenate": h}})); + } + }); +} + +pub fn doc_tabs(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let (bar, _) = ui.allocate_exact_size(vec2(ui.available_width(), 26.0), Sense::hover()); + ui.painter().rect_filled(bar, 0.0, t.panel_darker); + let mut x = bar.min.x; + let active = app.session.active_index(); + let zoom = app.view().map(|v| v.zoom).unwrap_or(1.0); + let mut activate = None; + let mut close = None; + let titles: Vec<(String, bool)> = app.session.documents().iter().map(|d| (d.title(), d.is_dirty())).collect(); + for (i, (title, dirty)) in titles.iter().enumerate() { + let is_active = Some(i) == active; + let label = if is_active { + format!("{}{} @ {:.0}%", if *dirty { "*" } else { "" }, title, zoom * 100.0) + } else { + format!("{}{}", if *dirty { "*" } else { "" }, title) + }; + let galley = ui.painter().layout_no_wrap(label, egui::FontId::proportional(12.0), if is_active { t.text_strong } else { t.text_dim }); + let w = galley.size().x + 44.0; + let r = egui::Rect::from_min_size(egui::pos2(x, bar.min.y), vec2(w, 26.0)); + let resp = ui.interact(r, ui.id().with(("doctab", i)), Sense::click()); + ui.painter().rect_filled(r, 0.0, if is_active { t.pasteboard } else { t.tab_inactive }); + if is_active { + ui.painter().line_segment([r.left_top(), r.right_top()], Stroke::new(2.0, t.accent)); + } + let cr = egui::Rect::from_center_size(egui::pos2(r.min.x + 13.0, r.center().y), vec2(14.0, 14.0)); + let cresp = ui.interact(cr, ui.id().with(("docclose", i)), Sense::click()); + ui.painter().text( + cr.center(), + egui::Align2::CENTER_CENTER, + "×", + egui::FontId::proportional(14.0), + if cresp.hovered() { t.text_strong } else { t.text_dim }, + ); + ui.painter().galley(egui::pos2(r.min.x + 26.0, r.center().y - galley.size().y / 2.0), galley, Color32::WHITE); + ui.painter().line_segment([r.right_top(), r.right_bottom()], Stroke::new(1.0, t.divider)); + if cresp.clicked() { + close = Some(i); + } else if resp.clicked() { + activate = Some(i); + } + x += w; + } + if let Some(i) = close { + let _ = app.run("file.close", json!({"index": i})); + } else if let Some(i) = activate { + let _ = app.run("file.activate", json!({"index": i})); + } +} + +pub fn status_bar(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + egui::Panel::bottom("status_bar") + .exact_size(24.0) + .frame(egui::Frame::NONE.fill(t.panel_darker).inner_margin(egui::Margin::symmetric(8, 0))) + .show(ui, |ui| { + ui.horizontal_centered(|ui| { + if app.session.active().is_none() { + ui.label(egui::RichText::new(&app.ui.status).size(11.5).color(t.text_dim)); + return; + } + let z = app.view().map(|v| v.zoom).unwrap_or(1.0); + ui.label(egui::RichText::new(format!("{:.0}%", z * 100.0)).size(11.5)); + ui.add_space(8.0); + let n = app.session.active().map(|d| d.doc.page_count()).unwrap_or(1); + let cur = crate::canvas::current_page(app).unwrap_or(0); + if icons::button(ui, "first", 16.0, false, "First Spread").clicked() { + crate::canvas::go_to_page(app, 0); + } + if icons::button(ui, "prev", 16.0, false, "Previous Spread").clicked() { + crate::canvas::go_to_page(app, cur.saturating_sub(1)); + } + let name = app.session.active().map(|d| d.doc.page_name(cur)).unwrap_or_default(); + ui.menu_button(egui::RichText::new(format!(" {name} ▾ ")).size(11.5), |ui| { + let names: Vec = app.session.active().map(|d| (0..n).map(|i| d.doc.page_name(i)).collect()).unwrap_or_default(); + egui::ScrollArea::vertical().max_height(300.0).show(ui, |ui| { + for (i, nm) in names.iter().enumerate() { + if ui.button(nm).clicked() { + crate::canvas::go_to_page(app, i); + ui.close(); + } + } + }); + }); + if icons::button(ui, "next", 16.0, false, "Next Spread").clicked() { + crate::canvas::go_to_page(app, (cur + 1).min(n - 1)); + } + if icons::button(ui, "last", 16.0, false, "Last Spread").clicked() { + crate::canvas::go_to_page(app, n - 1); + } + ui.add_space(14.0); + // Preflight indicator: overset text is an error. + let errors = panels::preflight_errors(app); + let (r, _) = ui.allocate_exact_size(vec2(10.0, 10.0), Sense::hover()); + ui.painter().circle_filled( + r.center(), + 4.5, + if errors == 0 { Color32::from_rgb(60, 190, 90) } else { Color32::from_rgb(230, 50, 50) }, + ); + ui.label( + egui::RichText::new(if errors == 0 { + "No errors".to_string() + } else { + format!("{errors} error{}", if errors == 1 { "" } else { "s" }) + }) + .size(11.5), + ); + ui.add_space(14.0); + ui.label(egui::RichText::new(&app.ui.status).size(11.5).color(t.text_dim)); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + ui.label( + egui::RichText::new(format!("{:.1} ms render · {:.0} fps", app.perf.render_ms, app.perf.fps)) + .size(10.5) + .color(t.text_disabled), + ); + }); + }); + }); +} + +pub fn start_screen(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let r = ui.available_rect_before_wrap(); + ui.painter().rect_filled(r, 0.0, t.panel_darker); + ui.scope_builder(egui::UiBuilder::new().max_rect(r.shrink(48.0)), |ui| { + ui.label(egui::RichText::new("Welcome to DesignCraft").font(semibold(28.0)).color(t.text_strong)); + ui.label(egui::RichText::new("Page layout for print and screen — fast, open and scriptable.").size(15.0).color(t.text_dim)); + ui.add_space(24.0); + ui.horizontal(|ui| { + if ui + .add( + egui::Button::new(egui::RichText::new(" New file ").size(14.0).color(Color32::WHITE)) + .fill(t.accent_strong) + .corner_radius(16.0) + .min_size(vec2(0.0, 32.0)), + ) + .clicked() + { + let _ = app.run("app.newDocumentDialog", json!({})); + } + if ui.add(egui::Button::new(egui::RichText::new(" Open ").size(14.0)).corner_radius(16.0).min_size(vec2(0.0, 32.0))).clicked() { + let _ = app.run("app.openDialog", json!({})); + } + if ui + .add(egui::Button::new(egui::RichText::new(" Open sample magazine ").size(14.0)).corner_radius(16.0).min_size(vec2(0.0, 32.0))) + .clicked() + { + let _ = app.run("file.newSample", json!({})); + } + }); + ui.add_space(28.0); + ui.label(egui::RichText::new("Start a new document").font(semibold(15.0)).color(t.text_strong)); + ui.add_space(8.0); + ui.horizontal_wrapped(|ui| { + for p in designcraft_doc::build::PRESETS.iter().take(10) { + let (cr, resp) = ui.allocate_exact_size(vec2(120.0, 150.0), Sense::click()); + let hov = resp.hovered(); + ui.painter().rect_filled(cr, 6.0, if hov { t.hover } else { t.panel }); + let k = (80.0 / p.width.max(p.height)) as f32; + let pr = egui::Rect::from_center_size(cr.center() - vec2(0.0, 14.0), vec2(p.width as f32 * k, p.height as f32 * k)); + ui.painter().rect_filled(pr, 0.0, Color32::from_gray(245)); + ui.painter().text(egui::pos2(cr.center().x, cr.max.y - 26.0), egui::Align2::CENTER_CENTER, p.name, semibold(12.0), t.text_strong); + ui.painter().text( + egui::pos2(cr.center().x, cr.max.y - 11.0), + egui::Align2::CENTER_CENTER, + format!("{} × {}", designcraft_geom::format_measure(p.width, p.units), designcraft_geom::format_measure(p.height, p.units)), + egui::FontId::proportional(10.0), + t.text_dim, + ); + if resp.clicked() { + let _ = app.run("file.new", json!({"preset": p.name})); + } + } + }); + }); + let _ = Content::Unassigned; +} diff --git a/crates/ui-egui/src/control.rs b/crates/ui-egui/src/control.rs new file mode 100644 index 00000000..1d5975d1 --- /dev/null +++ b/crates/ui-egui/src/control.rs @@ -0,0 +1,348 @@ +//! Programmatic control of the running app (agents, tests, MCP). +//! +//! Methods (JSON-lines over the host's transport): +//! - `engine.execute {command, params}` / `ui.menu.invoke {command|id, params}`: run any command +//! - `engine.commands`: engine + UI commands with enablement +//! - `document.inspect`: document summary; `ui.inspect`: UI state +//! - `ui.menu.list`: flattened menu tree +//! - `ui.tool.select {tool}`, `ui.tool.list` +//! - `ui.pointer {events:[{kind: down|drag|up|move|doubleclick, x, y, space?: "doc"|"screen"}], mods?}`: +//! drive the active tool through the same path as the mouse +//! - `ui.key {key, shift?, alt?, cmd?}` / `ui.text {text}`: synthetic keyboard input +//! - `ui.move {x, y}` / `ui.click {x, y, button?, count?, shift?…}` / `ui.drag {x, y, toX, toY, steps?}`: +//! real egui pointer input in screen points (reaches every widget: panels, flyouts, dialogs) +//! - `ui.set {brightness?, panel?, dockTab?, rulers?, outline?, …}` +//! - `ui.dialog.set {field, value}` / `ui.dialog.confirm` / `ui.dialog.cancel` +//! - `ui.resize {width, height}`, `ui.focus`, `ui.screenshot {path?}` +//! - `ui.render {path?, scale?}`: render the active artboard headlessly (PNG) +//! - `app.open {path}` / `app.save {path?}` / `app.export {path, page?, scale?}` (PNG) / `app.quit` + +use std::sync::mpsc::Sender; + +use designcraft_tools::{Mods, PointerEvent, PointerKind}; +use serde_json::{Value, json}; + +use crate::DesignApp; +use crate::canvas::Xf; +use crate::menus; + +pub type ControlResponse = Value; + +pub struct ControlRequest { + pub method: String, + pub params: Value, + pub reply: Sender, +} + +impl ControlRequest { + pub fn new(method: impl Into, params: Value) -> (Self, std::sync::mpsc::Receiver) { + let (tx, rx) = std::sync::mpsc::channel(); + (Self { method: method.into(), params, reply: tx }, rx) + } +} + +pub enum Outcome { + Done(Value), + Screenshot { path: Option }, +} + +fn ok(v: Value) -> Outcome { + Outcome::Done(json!({"ok": true, "result": v})) +} +fn err(e: impl std::fmt::Display) -> Outcome { + Outcome::Done(json!({"ok": false, "error": e.to_string()})) +} +fn wrap(r: Result) -> Outcome { + match r { + Ok(v) => ok(v), + Err(e) => err(e), + } +} + +pub fn all_commands(app: &DesignApp) -> Value { + let mut v: Vec = app.session.commands().into_iter().map(|c| serde_json::to_value(c).unwrap_or_default()).collect(); + for (id, label, sc, params) in crate::menus::UI_COMMANDS { + v.push(json!({"id": id, "label": label, "shortcut": sc, "params": params, "enabled": crate::menus::enabled(app, id), "ui": true})); + } + Value::Array(v) +} + +pub fn inspect(app: &DesignApp, ctx: &egui::Context) -> Value { + let r = ctx.content_rect(); + json!({ + "tool": app.session.tool_id(), + "ui": serde_json::to_value(&app.ui).unwrap_or_default(), + "view": app.view().map(|v| serde_json::to_value(v).unwrap_or_default()), + "canvasRect": app.canvas_rect.map(|c| json!([c.left(), c.top(), c.width(), c.height()])), + "window": [r.width(), r.height()], + "documents": app.session.documents().iter().map(|d| json!({"title": d.title(), "dirty": d.is_dirty()})).collect::>(), + "currentPage": crate::canvas::current_page(app), + "dialog": app.ui.dialog.as_ref().map(|d| serde_json::to_value(d).unwrap_or_default()), + "activeDocument": app.session.active_index(), + "perf": {"frameMs": app.perf.frame_ms, "renderMs": app.perf.render_ms, "fps": app.perf.fps}, + }) +} + +fn key_from(name: &str) -> Option { + egui::Key::from_name(name).or(match name.to_ascii_lowercase().as_str() { + "enter" | "return" => Some(egui::Key::Enter), + "esc" | "escape" => Some(egui::Key::Escape), + "delete" => Some(egui::Key::Delete), + "backspace" => Some(egui::Key::Backspace), + "left" => Some(egui::Key::ArrowLeft), + "right" => Some(egui::Key::ArrowRight), + "up" => Some(egui::Key::ArrowUp), + "down" => Some(egui::Key::ArrowDown), + "space" => Some(egui::Key::Space), + "tab" => Some(egui::Key::Tab), + _ => None, + }) +} + +pub fn handle(app: &mut DesignApp, ctx: &egui::Context, req: &ControlRequest) -> Outcome { + let p = &req.params; + let s = |k: &str| p.get(k).and_then(Value::as_str); + match req.method.as_str() { + "engine.execute" | "ui.menu.invoke" | "command" => { + let Some(id) = s("command").or(s("id")) else { return err("missing `command`") }; + let params = p.get("params").cloned().unwrap_or(json!({})); + let params = if params.is_null() { json!({}) } else { params }; + wrap(app.run(id, params)) + } + "engine.commands" => ok(all_commands(app)), + "document.inspect" => wrap(app.run("document.inspect", json!({}))), + "ui.inspect" => ok(inspect(app, ctx)), + "ui.menu.list" => ok(serde_json::to_value(menus::MENUS).unwrap_or_default()), + "ui.tool.select" => wrap(app.run("tool.select", json!({"tool": s("tool").unwrap_or("")}))), + "ui.tool.list" => ok(serde_json::to_value(designcraft_tools::TOOL_GROUPS).unwrap_or_default()), + "ui.pointer" => { + let Some(events) = p.get("events").and_then(Value::as_array) else { return err("missing `events`") }; + let base_mods: Mods = p.get("mods").and_then(|m| serde_json::from_value(m.clone()).ok()).unwrap_or_default(); + let view = app.view_info(); + let xf = app.canvas_rect.zip(app.view().copied()).map(|(rect, v)| Xf::new(rect, &v)); + for e in events { + let kind = match e.get("kind").and_then(Value::as_str).unwrap_or("") { + "down" => PointerKind::Down, + "drag" => PointerKind::Drag, + "up" => PointerKind::Up, + "move" => PointerKind::Move, + "doubleclick" | "dblclick" => PointerKind::DoubleClick, + other => return err(format!("unknown pointer kind `{other}`")), + }; + let x = e.get("x").and_then(Value::as_f64).unwrap_or(0.0); + let y = e.get("y").and_then(Value::as_f64).unwrap_or(0.0); + let pos = if e.get("space").and_then(Value::as_str) == Some("screen") { + match xf { + Some(xf) => xf.to_canvas(egui::pos2(x as f32, y as f32)), + None => return err("no canvas yet"), + } + } else { + designcraft_geom::Point::new(x, y) + }; + let mods = e.get("mods").and_then(|m| serde_json::from_value(m.clone()).ok()).unwrap_or(base_mods); + if let Err(e) = app.session.pointer(&PointerEvent { kind, pos, mods }, view) { + return err(e); + } + app.after_engine(); + } + ctx.request_repaint(); + wrap(app.run("document.inspect", json!({})).map(|d| json!({"selection": d["selection"], "tool": app.session.tool_id()}))) + } + "ui.key" => { + let Some(k) = s("key").and_then(key_from) else { return err("unknown or missing `key`") }; + let b = |n: &str| p.get(n).and_then(Value::as_bool).unwrap_or(false); + let m = egui::Modifiers { + alt: b("alt"), + ctrl: b("ctrl"), + shift: b("shift"), + mac_cmd: b("cmd") && cfg!(target_os = "macos"), + command: b("cmd"), + }; + app.synthetic.push(egui::Event::Key { key: k, physical_key: None, pressed: true, repeat: false, modifiers: m }); + app.synthetic.push(egui::Event::Key { key: k, physical_key: None, pressed: false, repeat: false, modifiers: m }); + if let Some(t) = s("text") { + app.synthetic.push(egui::Event::Text(t.to_string())); + } + ctx.request_repaint(); + ok(Value::Null) + } + "ui.move" => { + let pos = egui::pos2(p.get("x").and_then(Value::as_f64).unwrap_or(0.0) as f32, p.get("y").and_then(Value::as_f64).unwrap_or(0.0) as f32); + app.synthetic.push(egui::Event::PointerMoved(pos)); + ctx.request_repaint(); + ok(Value::Null) + } + "ui.click" | "ui.drag" => { + // Screen-space (egui points) pointer input through egui itself: reaches every widget. + let f = |k: &str| p.get(k).and_then(Value::as_f64).unwrap_or(0.0) as f32; + let button = match s("button") { + Some("right") | Some("secondary") => egui::PointerButton::Secondary, + _ => egui::PointerButton::Primary, + }; + let b = |n: &str| p.get(n).and_then(Value::as_bool).unwrap_or(false); + let modifiers = egui::Modifiers { + alt: b("alt"), + ctrl: b("ctrl"), + shift: b("shift"), + mac_cmd: b("cmd") && cfg!(target_os = "macos"), + command: b("cmd"), + }; + let a = egui::pos2(f("x"), f("y")); + let end = if req.method == "ui.drag" { egui::pos2(f("toX"), f("toY")) } else { a }; + app.synthetic.push(egui::Event::PointerMoved(a)); + app.synthetic.push(egui::Event::PointerButton { pos: a, button, pressed: true, modifiers }); + if req.method == "ui.drag" { + let steps = p.get("steps").and_then(Value::as_u64).unwrap_or(8).max(1); + for i in 1..=steps { + let t = i as f32 / steps as f32; + app.synthetic.push(egui::Event::PointerMoved(a + (end - a) * t)); + } + } + app.synthetic.push(egui::Event::PointerButton { pos: end, button, pressed: false, modifiers }); + let count = p.get("count").and_then(Value::as_u64).unwrap_or(1); + for _ in 1..count { + app.synthetic.push(egui::Event::PointerButton { pos: end, button, pressed: true, modifiers }); + app.synthetic.push(egui::Event::PointerButton { pos: end, button, pressed: false, modifiers }); + } + ctx.request_repaint(); + ok(Value::Null) + } + "ui.text" => { + app.synthetic.push(egui::Event::Text(s("text").unwrap_or("").to_string())); + ctx.request_repaint(); + ok(Value::Null) + } + "ui.set" => { + let mut r = Ok(Value::Null); + if let Some(b) = s("brightness") { + r = app.run("window.brightness", json!({"brightness": b})); + } + if let Some(pn) = s("panel") { + r = app.run("window.panel", json!({"panel": pn})); + } + if let Some(st) = s("status") { + app.ui.status = st.to_string(); + } + for (k, flag) in [ + ("rulers", "view.rulers"), + ("frameEdges", "view.frameEdges"), + ("guides", "view.guides"), + ("baselineGrid", "view.baselineGrid"), + ("textThreads", "view.textThreads"), + ] { + if let Some(want) = p.get(k).and_then(Value::as_bool) { + let cur = match k { + "rulers" => app.ui.rulers, + "frameEdges" => app.ui.frame_edges, + "guides" => app.ui.guides, + "baselineGrid" => app.ui.baseline_grid, + _ => app.ui.text_threads, + }; + if cur != want { + r = app.run(flag, json!({})); + } + } + } + if let Some(m) = s("screenMode") { + r = app.run("view.screenMode", json!({"mode": m})); + } + if let Some(z) = p.get("zoom").and_then(Value::as_f64) { + r = app.run("view.zoom", json!({"zoom": z})); + } + if let Some(pg) = p.get("page").and_then(Value::as_u64) { + crate::canvas::go_to_page(app, (pg as usize).saturating_sub(1)); + } + if let Some(f) = s("fit") { + r = app.run(if f == "page" { "view.fitPage" } else { "view.fitSpread" }, json!({})); + } + if let Some(v) = p.get("controlBar").and_then(Value::as_bool) { + app.ui.control_bar = v; + } + if p.get("closePanel").is_some() { + app.ui.open_panel = None; + } + if let Some(v) = p.get("dockExpanded").and_then(Value::as_bool) { + app.ui.dock_expanded = v; + } + wrap(r) + } + "ui.dialog.set" => match app.ui.dialog.as_mut() { + Some(d) => { + let Some(f) = s("field") else { return err("missing `field`") }; + d.fields.insert(f.to_string(), p.get("value").cloned().unwrap_or(Value::Null)); + ok(serde_json::to_value(&*d).unwrap_or_default()) + } + None => err("no dialog open"), + }, + "ui.dialog.confirm" => wrap(crate::dialogs::confirm(app)), + "ui.dialog.cancel" => { + app.ui.dialog = None; + ok(Value::Null) + } + "ui.resize" => { + let w = p.get("width").and_then(Value::as_f64).unwrap_or(1440.0) as f32; + let h = p.get("height").and_then(Value::as_f64).unwrap_or(900.0) as f32; + ctx.send_viewport_cmd(egui::ViewportCommand::InnerSize(egui::vec2(w, h))); + ok(Value::Null) + } + "ui.focus" => { + ctx.send_viewport_cmd(egui::ViewportCommand::Focus); + ok(Value::Null) + } + "ui.screenshot" => { + if p.get("focus").and_then(Value::as_bool).unwrap_or(true) { + ctx.send_viewport_cmd(egui::ViewportCommand::Focus); + } + ctx.request_repaint(); + Outcome::Screenshot { path: s("path").map(str::to_string) } + } + "ui.render" => { + let Some(st) = app.session.active() else { return err("no document") }; + let page = p.get("page").and_then(Value::as_u64).map(|v| v as usize).or_else(|| crate::canvas::current_page(app)).unwrap_or(0); + let scale = p.get("scale").and_then(Value::as_f64).unwrap_or(1.0); + let Some(img) = app.canvas.renderer.render_page( + &st.doc, + &app.session.cache, + page, + scale, + p.get("bleed").and_then(Value::as_bool).unwrap_or(false), + &designcraft_render::RenderOptions { printing_only: true, ..Default::default() }, + ) else { + return err("no such page"); + }; + let png = img.to_png(); + match s("path") { + Some(path) => match app.services.write.as_mut() { + Some(w) => wrap(w(path, &png).map(|_| json!({"path": path, "width": img.width, "height": img.height}))), + None => err("no writer"), + }, + None => ok(json!({"width": img.width, "height": img.height, "pngBase64": designcraft_engine::cmd::base64_encode(&png)})), + } + } + "app.open" => wrap(app.run("file.open", json!({"path": s("path")}))), + "app.save" => wrap(app.run("file.save", json!({"path": s("path")}))), + "app.export" => wrap(app.run("app.exportPng", json!({"path": s("path"), "page": p.get("page"), "scale": p.get("scale")}))), + "app.quit" => { + ctx.send_viewport_cmd(egui::ViewportCommand::Close); + ok(Value::Null) + } + other => err(format!("unknown method `{other}`")), + } +} + +pub fn save_screenshot(app: &mut DesignApp, image: &egui::ColorImage, path: Option<&str>) -> Value { + let [w, h] = image.size; + let Some(path) = path else { + return json!({"ok": true, "result": {"width": w, "height": h}}); + }; + let rgba: Vec = image.pixels.iter().flat_map(|c| c.to_array()).collect(); + let img = designcraft_render::Rendered { width: w as u32, height: h as u32, pixels: rgba }; + let png = img.to_png(); + match app.services.write.as_mut() { + Some(wr) => match wr(path, &png) { + Ok(()) => json!({"ok": true, "result": {"path": path, "width": w, "height": h}}), + Err(e) => json!({"ok": false, "error": e}), + }, + None => json!({"ok": false, "error": "no writer configured"}), + } +} diff --git a/crates/ui-egui/src/dialogs.rs b/crates/ui-egui/src/dialogs.rs new file mode 100644 index 00000000..b8f6abf1 --- /dev/null +++ b/crates/ui-egui/src/dialogs.rs @@ -0,0 +1,269 @@ +//! Modal dialogs. Each dialog keeps its fields in a JSON map so the control channel can set them +//! (`ui.dialog.set {field, value}`) and confirm them (`ui.dialog.confirm`) like a user would. + +use designcraft_geom::{Unit, format_measure, units::parse_measure}; +use serde::Serialize; +use serde_json::{Map, Value, json}; + +use crate::DesignApp; +use crate::theme::semibold; + +#[derive(Clone, Debug, Serialize)] +pub struct Dialog { + pub id: String, + pub fields: Map, +} + +impl Dialog { + pub fn new(id: &str, params: Value) -> Self { + let mut fields = match params { + Value::Object(m) => m, + _ => Map::new(), + }; + let defaults = match id { + "newDocument" => { + json!({"preset": "Letter", "width": "51p0", "height": "66p0", "pages": 1, "facingPages": true, "columns": 1, "gutter": "1p0", + "marginTop": "3p0", "marginBottom": "3p0", "marginInside": "3p0", "marginOutside": "3p0", "bleed": "0p0", "primaryTextFrame": false}) + } + "goToPage" => json!({"page": 1}), + "textFrameOptions" => json!({"columns": 1, "gutter": "1p0", "inset": "0p0", "verticalJustification": "top"}), + "documentSetup" => json!({}), + _ => json!({}), + }; + if let Value::Object(d) = defaults { + for (k, v) in d { + fields.entry(k).or_insert(v); + } + } + if id == "frameSize" { + for k in ["width", "height"] { + if let Some(v) = fields.get(k).and_then(Value::as_f64) { + fields.insert(k.into(), json!(format_measure(v, Unit::Picas))); + } + } + } + Dialog { id: id.into(), fields } + } + fn s(&self, k: &str) -> String { + match self.fields.get(k) { + Some(Value::String(s)) => s.clone(), + Some(v) => v.to_string(), + None => String::new(), + } + } + fn m(&self, k: &str) -> Option { + match self.fields.get(k) { + Some(Value::Number(n)) => n.as_f64(), + Some(Value::String(s)) => parse_measure(s, Unit::Picas).ok(), + _ => None, + } + } + fn b(&self, k: &str) -> bool { + self.fields.get(k).and_then(Value::as_bool).unwrap_or(false) + } + fn n(&self, k: &str) -> Option { + match self.fields.get(k) { + Some(Value::Number(n)) => n.as_f64(), + Some(Value::String(s)) => s.trim().parse().ok(), + _ => None, + } + } +} + +fn text_field(ui: &mut egui::Ui, d: &mut Dialog, key: &str, w: f32) { + let mut s = d.s(key); + if ui.add(egui::TextEdit::singleline(&mut s).desired_width(w)).changed() { + d.fields.insert(key.into(), Value::String(s)); + } +} + +fn check(ui: &mut egui::Ui, d: &mut Dialog, key: &str, label: &str) { + let mut b = d.b(key); + if ui.checkbox(&mut b, label).changed() { + d.fields.insert(key.into(), Value::Bool(b)); + } +} + +pub fn show(app: &mut DesignApp, ctx: &egui::Context) { + let Some(mut d) = app.ui.dialog.clone() else { return }; + let mut result: Option = None; + let title = match d.id.as_str() { + "newDocument" => "New Document", + "frameSize" => "Rectangle", + "goToPage" => "Go to Page", + "textFrameOptions" => "Text Frame Options", + "documentSetup" => "Document Setup", + _ => "Dialog", + }; + egui::Modal::new(egui::Id::new("dialog")).show(ctx, |ui| { + ui.set_min_width(380.0); + ui.label(egui::RichText::new(title).font(semibold(16.0))); + ui.add_space(10.0); + match d.id.as_str() { + "newDocument" => { + ui.horizontal(|ui| { + ui.label("Preset"); + let cur = d.s("preset"); + egui::ComboBox::from_id_salt("preset").selected_text(&cur).width(180.0).show_ui(ui, |ui| { + for p in designcraft_doc::build::PRESETS { + if ui.selectable_label(cur == p.name, p.name).clicked() { + d.fields.insert("preset".into(), json!(p.name)); + d.fields.insert("width".into(), json!(format_measure(p.width, p.units))); + d.fields.insert("height".into(), json!(format_measure(p.height, p.units))); + d.fields.insert("facingPages".into(), json!(p.intent == designcraft_doc::Intent::Print)); + } + } + }); + }); + egui::Grid::new("nd").num_columns(4).spacing([8.0, 6.0]).show(ui, |ui| { + ui.label("Width"); + text_field(ui, &mut d, "width", 80.0); + ui.label("Height"); + text_field(ui, &mut d, "height", 80.0); + ui.end_row(); + ui.label("Pages"); + text_field(ui, &mut d, "pages", 80.0); + ui.label(""); + check(ui, &mut d, "facingPages", "Facing Pages"); + ui.end_row(); + ui.label("Columns"); + text_field(ui, &mut d, "columns", 80.0); + ui.label("Gutter"); + text_field(ui, &mut d, "gutter", 80.0); + ui.end_row(); + ui.label("Top"); + text_field(ui, &mut d, "marginTop", 80.0); + ui.label("Bottom"); + text_field(ui, &mut d, "marginBottom", 80.0); + ui.end_row(); + ui.label("Inside"); + text_field(ui, &mut d, "marginInside", 80.0); + ui.label("Outside"); + text_field(ui, &mut d, "marginOutside", 80.0); + ui.end_row(); + ui.label("Bleed"); + text_field(ui, &mut d, "bleed", 80.0); + ui.label(""); + check(ui, &mut d, "primaryTextFrame", "Primary Text Frame"); + ui.end_row(); + }); + } + "frameSize" => { + egui::Grid::new("fs").num_columns(2).spacing([8.0, 6.0]).show(ui, |ui| { + ui.label("Width"); + text_field(ui, &mut d, "width", 90.0); + ui.end_row(); + ui.label("Height"); + text_field(ui, &mut d, "height", 90.0); + ui.end_row(); + }); + } + "goToPage" => { + ui.horizontal(|ui| { + ui.label("Page"); + text_field(ui, &mut d, "page", 80.0); + }); + } + "textFrameOptions" => { + egui::Grid::new("tfo").num_columns(2).spacing([8.0, 6.0]).show(ui, |ui| { + ui.label("Number of columns"); + text_field(ui, &mut d, "columns", 80.0); + ui.end_row(); + ui.label("Gutter"); + text_field(ui, &mut d, "gutter", 80.0); + ui.end_row(); + ui.label("Inset spacing"); + text_field(ui, &mut d, "inset", 80.0); + ui.end_row(); + ui.label("Vertical justification"); + let cur = d.s("verticalJustification"); + egui::ComboBox::from_id_salt("vj").selected_text(&cur).show_ui(ui, |ui| { + for v in ["top", "center", "bottom", "justify"] { + if ui.selectable_label(cur == v, v).clicked() { + d.fields.insert("verticalJustification".into(), json!(v)); + } + } + }); + ui.end_row(); + }); + } + "documentSetup" => { + let st = app.session.active(); + let (w, h) = st.map(|s| (s.doc.settings.page_width, s.doc.settings.page_height)).unwrap_or((612.0, 792.0)); + d.fields.entry("width".to_string()).or_insert(json!(format_measure(w, Unit::Picas))); + d.fields.entry("height".to_string()).or_insert(json!(format_measure(h, Unit::Picas))); + egui::Grid::new("ds").num_columns(2).spacing([8.0, 6.0]).show(ui, |ui| { + ui.label("Width"); + text_field(ui, &mut d, "width", 90.0); + ui.end_row(); + ui.label("Height"); + text_field(ui, &mut d, "height", 90.0); + ui.end_row(); + }); + } + _ => {} + } + ui.add_space(12.0); + ui.horizontal(|ui| { + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + if ui + .add( + egui::Button::new(egui::RichText::new(" OK ").color(egui::Color32::WHITE)) + .fill(crate::theme::Tokens::get(ui.ctx()).accent_strong), + ) + .clicked() + || ui.input(|i| i.key_pressed(egui::Key::Enter)) + { + result = Some(true); + } + if ui.button("Cancel").clicked() || ui.input(|i| i.key_pressed(egui::Key::Escape)) { + result = Some(false); + } + }); + }); + }); + app.ui.dialog = Some(d); + match result { + Some(true) => { + let _ = confirm(app); + } + Some(false) => app.ui.dialog = None, + None => {} + } +} + +/// Apply the open dialog. +pub fn confirm(app: &mut DesignApp) -> Result { + let Some(d) = app.ui.dialog.take() else { return Err("no dialog open".into()) }; + match d.id.as_str() { + "newDocument" => { + let margins = json!({"top": d.m("marginTop").unwrap_or(36.0), "bottom": d.m("marginBottom").unwrap_or(36.0), "inside": d.m("marginInside").unwrap_or(36.0), "outside": d.m("marginOutside").unwrap_or(36.0)}); + app.run( + "file.new", + json!({"width": d.m("width"), "height": d.m("height"), "pages": d.n("pages").unwrap_or(1.0) as u64, "facingPages": d.b("facingPages"), + "columns": d.n("columns").unwrap_or(1.0) as u64, "gutter": d.m("gutter").unwrap_or(12.0), "margins": margins, "bleed": d.m("bleed").unwrap_or(0.0), + "primaryTextFrame": d.b("primaryTextFrame")}), + ) + } + "frameSize" => { + let x = d.fields.get("x").and_then(Value::as_f64).unwrap_or(0.0); + let y = d.fields.get("y").and_then(Value::as_f64).unwrap_or(0.0); + let w = d.m("width").unwrap_or(72.0); + let h = d.m("height").unwrap_or(72.0); + app.run( + "frame.create", + json!({"spread": d.fields.get("spread").cloned().unwrap_or(json!(0)), "shape": d.s("shape"), "content": d.s("content"), "rect": [x, y, x + w, y + h]}), + ) + } + "goToPage" => { + crate::canvas::go_to_page(app, (d.n("page").unwrap_or(1.0) as usize).saturating_sub(1)); + Ok(Value::Null) + } + "textFrameOptions" => app.run( + "object.textFrameOptions", + json!({"columns": d.n("columns").unwrap_or(1.0) as u64, "gutter": d.m("gutter").unwrap_or(12.0), "inset": d.m("inset").unwrap_or(0.0), "verticalJustification": d.s("verticalJustification")}), + ), + "documentSetup" => app.run("layout.documentSetup", json!({"width": d.m("width"), "height": d.m("height")})), + other => Err(format!("unknown dialog {other}")), + } +} diff --git a/crates/ui-egui/src/dock.rs b/crates/ui-egui/src/dock.rs new file mode 100644 index 00000000..70a997c5 --- /dev/null +++ b/crates/ui-egui/src/dock.rs @@ -0,0 +1,126 @@ +//! The right dock: an expanded panel group (Properties · Pages · Layers) and a collapsed icon +//! column whose panels open as flyouts beside the dock. + +use egui::{Sense, Stroke, vec2}; + +use crate::theme::{Tokens, semibold}; +use crate::{DesignApp, icons, panels}; + +/// (id, label, icon) of the tabs in the expanded group. +pub const DOCK_TABS: &[(&str, &str, &str)] = + &[("properties", "Properties", "panel-properties"), ("pages", "Pages", "panel-pages"), ("layers", "Layers", "panel-layers")]; + +/// Panels in the collapsed icon column. +pub const ICON_PANELS: &[(&str, &str, &str)] = &[ + ("stroke", "Stroke", "panel-stroke"), + ("swatches", "Swatches", "panel-swatches"), + ("color", "Color", "panel-color"), + ("paragraphStyles", "Paragraph Styles", "panel-pstyles"), + ("characterStyles", "Character Styles", "panel-cstyles"), + ("character", "Character", "panel-character"), + ("paragraph", "Paragraph", "panel-paragraph"), + ("textWrap", "Text Wrap", "panel-wrap"), + ("align", "Align", "panel-align"), + ("links", "Links", "panel-links"), + ("info", "Info", "panel-info"), +]; + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + // Collapsed icon column (rightmost). + egui::Panel::right("icon_column") + .exact_size(40.0) + .resizable(false) + .frame(egui::Frame::NONE.fill(t.panel_darker).stroke(Stroke::new(1.0, t.divider))) + .show(ui, |ui| { + ui.add_space(6.0); + ui.vertical_centered(|ui| { + for (id, label, icon) in ICON_PANELS { + let open = app.ui.open_panel.as_deref() == Some(*id); + if icons::button(ui, icon, 30.0, open, label).clicked() { + app.ui.open_panel = if open { None } else { Some(id.to_string()) }; + } + ui.add_space(1.0); + } + }); + }); + if !app.ui.dock_expanded { + return; + } + egui::Panel::right("dock") + .default_size(280.0) + .size_range(240.0..=420.0) + .resizable(true) + .frame(egui::Frame::NONE.fill(t.panel).stroke(Stroke::new(1.0, t.divider))) + .show(ui, |ui| { + // Tab strip. + let (strip, _) = ui.allocate_exact_size(vec2(ui.available_width(), 28.0), Sense::hover()); + ui.painter().rect_filled(strip, 0.0, t.panel_darker); + let mut x = strip.min.x; + for (id, label, _) in DOCK_TABS { + let active = app.ui.dock_tab == *id; + let g = ui.painter().layout_no_wrap(label.to_string(), semibold(12.0), if active { t.text_strong } else { t.text_dim }); + let w = g.size().x + 22.0; + let r = egui::Rect::from_min_size(egui::pos2(x, strip.min.y), vec2(w, 28.0)); + if active { + ui.painter().rect_filled(r, 0.0, t.panel); + } + ui.painter().galley(egui::pos2(r.min.x + 11.0, r.center().y - g.size().y / 2.0), g, egui::Color32::WHITE); + if ui.interact(r, ui.id().with(("docktab", *id)), Sense::click()).clicked() { + app.ui.dock_tab = id.to_string(); + } + x += w; + } + let menu_r = egui::Rect::from_min_size(egui::pos2(strip.max.x - 26.0, strip.min.y + 4.0), vec2(20.0, 20.0)); + icons::paint(ui.painter(), menu_r, "menu", t.icon); + egui::Frame::NONE.inner_margin(egui::Margin { left: 10, right: 10, top: 6, bottom: 6 }).show(ui, |ui| { + egui::ScrollArea::vertical().auto_shrink([false, false]).show(ui, |ui| match app.ui.dock_tab.as_str() { + "pages" => panels::pages::show(app, ui), + "layers" => panels::layers::show(app, ui), + _ => panels::properties::show(app, ui), + }); + }); + }); +} + +/// A panel opened from the icon column, shown as a floating flyout next to the dock. +pub fn flyout(app: &mut DesignApp, ctx: &egui::Context) { + let Some(id) = app.ui.open_panel.clone() else { return }; + let t = Tokens::get(ctx); + let label = ICON_PANELS.iter().find(|p| p.0 == id).map(|p| p.1).unwrap_or("Panel"); + let screen = ctx.content_rect(); + let dock_w = if app.ui.dock_expanded { ctx.memory(|m| m.area_rect(egui::Id::new("dock")).map(|r| r.width())).unwrap_or(280.0) } else { 0.0 }; + let pos = egui::pos2(screen.max.x - 40.0 - dock_w - 262.0, 130.0); + let mut open = true; + egui::Area::new(egui::Id::new("panel_flyout")).order(egui::Order::Foreground).fixed_pos(pos).show(ctx, |ui| { + egui::Frame::popup(ui.style()).fill(t.panel).inner_margin(egui::Margin::same(0)).show(ui, |ui| { + ui.set_width(256.0); + let (strip, _) = ui.allocate_exact_size(vec2(256.0, 26.0), Sense::hover()); + ui.painter().rect_filled(strip, 0.0, t.panel_darker); + ui.painter().text(strip.min + vec2(10.0, 13.0), egui::Align2::LEFT_CENTER, label, semibold(12.0), t.text_strong); + let close = egui::Rect::from_min_size(egui::pos2(strip.max.x - 22.0, strip.min.y + 4.0), vec2(18.0, 18.0)); + if ui.interact(close, ui.id().with("flyclose"), Sense::click()).clicked() { + open = false; + } + ui.painter().text(close.center(), egui::Align2::CENTER_CENTER, "×", egui::FontId::proportional(15.0), t.text_dim); + egui::Frame::NONE.inner_margin(egui::Margin::same(10)).show(ui, |ui| { + egui::ScrollArea::vertical().max_height(screen.height() - 220.0).show(ui, |ui| match id.as_str() { + "swatches" => panels::swatches::show(app, ui), + "paragraphStyles" => panels::styles::paragraph(app, ui), + "characterStyles" => panels::styles::character(app, ui), + "stroke" => panels::properties::stroke_panel(app, ui), + "character" => panels::properties::character_panel(app, ui), + "paragraph" => panels::properties::paragraph_panel(app, ui), + "textWrap" => panels::properties::wrap_panel(app, ui), + "align" => panels::properties::align_panel(app, ui), + "color" => panels::swatches::color_panel(app, ui), + "links" => panels::properties::links_panel(app, ui), + _ => panels::properties::info_panel(app, ui), + }); + }); + }); + }); + if !open { + app.ui.open_panel = None; + } +} diff --git a/crates/ui-egui/src/icons.rs b/crates/ui-egui/src/icons.rs new file mode 100644 index 00000000..4e8470be --- /dev/null +++ b/crates/ui-egui/src/icons.rs @@ -0,0 +1,451 @@ +//! DesignCraft's icon set, drawn in code (original artwork; no external icon assets). +//! +//! Icons are designed on a 20×20 grid and scaled to the target rect. + +use egui::{Color32, Painter, Pos2, Rect, Shape, Stroke, pos2, vec2}; + +struct Pen<'a> { + p: &'a Painter, + r: Rect, + c: Color32, + w: f32, +} + +impl Pen<'_> { + fn pt(&self, x: f32, y: f32) -> Pos2 { + let s = self.r.width().min(self.r.height()) / 20.0; + let o = self.r.center() - vec2(10.0 * s, 10.0 * s); + pos2(o.x + x * s, o.y + y * s) + } + fn s(&self) -> f32 { + self.r.width().min(self.r.height()) / 20.0 + } + fn line(&self, pts: &[(f32, f32)]) { + let v: Vec = pts.iter().map(|&(x, y)| self.pt(x, y)).collect(); + self.p.add(Shape::line(v, Stroke::new(self.w * self.s(), self.c))); + } + fn closed(&self, pts: &[(f32, f32)]) { + let v: Vec = pts.iter().map(|&(x, y)| self.pt(x, y)).collect(); + self.p.add(Shape::closed_line(v, Stroke::new(self.w * self.s(), self.c))); + } + fn fill(&self, pts: &[(f32, f32)]) { + let v: Vec = pts.iter().map(|&(x, y)| self.pt(x, y)).collect(); + self.p.add(Shape::convex_polygon(v, self.c, Stroke::NONE)); + } + fn rect(&self, x0: f32, y0: f32, x1: f32, y1: f32) { + self.p.rect_stroke( + Rect::from_min_max(self.pt(x0, y0), self.pt(x1, y1)), + 0.0, + Stroke::new(self.w * self.s(), self.c), + egui::StrokeKind::Middle, + ); + } + fn frect(&self, x0: f32, y0: f32, x1: f32, y1: f32) { + self.p.rect_filled(Rect::from_min_max(self.pt(x0, y0), self.pt(x1, y1)), 0.0, self.c); + } + fn circle(&self, x: f32, y: f32, r: f32) { + self.p.circle_stroke(self.pt(x, y), r * self.s(), Stroke::new(self.w * self.s(), self.c)); + } + fn fcircle(&self, x: f32, y: f32, r: f32) { + self.p.circle_filled(self.pt(x, y), r * self.s(), self.c); + } + fn ellipse(&self, cx: f32, cy: f32, rx: f32, ry: f32) { + let n = 32; + let pts: Vec<(f32, f32)> = (0..n) + .map(|i| { + let a = i as f32 / n as f32 * std::f32::consts::TAU; + (cx + rx * a.cos(), cy + ry * a.sin()) + }) + .collect(); + self.closed(&pts); + } + fn text(&self, x: f32, y: f32, t: &str, size: f32) { + self.p.text(self.pt(x, y), egui::Align2::CENTER_CENTER, t, crate::theme::semibold(size * self.s()), self.c); + } +} + +fn arrow(pen: &Pen, hollow: bool) { + let pts = [(5.0, 2.5), (5.0, 16.0), (8.4, 12.8), (10.8, 18.0), (13.0, 17.0), (10.6, 11.9), (15.0, 11.6)]; + if hollow { + pen.closed(&pts); + } else { + let v: Vec = pts.iter().map(|&(x, y)| pen.pt(x, y)).collect(); + pen.p.add(Shape::Path(egui::epaint::PathShape { points: v, closed: true, fill: pen.c, stroke: egui::epaint::PathStroke::NONE })); + } +} + +/// Paint icon `name` into `r`. +pub fn paint(p: &Painter, r: Rect, name: &str, c: Color32) { + let mut pen = Pen { p, r, c, w: 1.3 }; + match name { + "tool-selection" => arrow(&pen, false), + "tool-direct" => arrow(&pen, true), + "tool-page" => { + pen.closed(&[(5.0, 3.0), (12.0, 3.0), (15.0, 6.0), (15.0, 17.0), (5.0, 17.0)]); + pen.line(&[(12.0, 3.0), (12.0, 6.0), (15.0, 6.0)]); + pen.line(&[(2.0, 17.0), (2.0, 3.0)]); + } + "tool-gap" => { + pen.rect(2.0, 4.0, 7.0, 16.0); + pen.rect(13.0, 4.0, 18.0, 16.0); + pen.line(&[(8.5, 10.0), (11.5, 10.0)]); + pen.line(&[(9.5, 8.5), (8.0, 10.0), (9.5, 11.5)]); + pen.line(&[(10.5, 8.5), (12.0, 10.0), (10.5, 11.5)]); + } + "tool-collector" | "tool-placer" => { + pen.rect(3.0, 6.0, 17.0, 16.0); + pen.line(&[(10.0, 2.0), (10.0, 11.0)]); + pen.line(&[(7.0, 8.0), (10.0, 11.0), (13.0, 8.0)]); + } + "tool-type" => { + pen.line(&[(4.0, 4.0), (16.0, 4.0)]); + pen.line(&[(10.0, 4.0), (10.0, 17.0)]); + pen.line(&[(7.5, 17.0), (12.5, 17.0)]); + pen.line(&[(4.0, 4.0), (4.0, 6.0)]); + pen.line(&[(16.0, 4.0), (16.0, 6.0)]); + } + "tool-type-path" | "tool-type-vertical" => { + pen.line(&[(3.0, 15.0), (7.0, 11.0), (13.0, 14.0), (17.0, 9.0)]); + pen.line(&[(6.0, 3.0), (14.0, 3.0)]); + pen.line(&[(10.0, 3.0), (10.0, 10.0)]); + } + "tool-line" => pen.line(&[(4.0, 16.0), (16.0, 4.0)]), + "tool-pen" | "tool-pen-add" | "tool-pen-delete" | "tool-anchor" => { + pen.closed(&[(10.0, 2.5), (14.5, 11.0), (12.0, 15.0), (8.0, 15.0), (5.5, 11.0)]); + pen.line(&[(10.0, 2.5), (10.0, 9.5)]); + pen.fcircle(10.0, 10.5, 1.1); + pen.line(&[(8.0, 15.0), (8.0, 18.0), (12.0, 18.0), (12.0, 15.0)]); + if name == "tool-pen-add" { + pen.line(&[(15.0, 3.0), (19.0, 3.0)]); + pen.line(&[(17.0, 1.0), (17.0, 5.0)]); + } else if name == "tool-pen-delete" { + pen.line(&[(15.0, 3.0), (19.0, 3.0)]); + } + } + "tool-pencil" | "tool-smooth" | "tool-erase" => { + pen.closed(&[(4.0, 16.0), (5.0, 12.0), (14.0, 3.0), (17.0, 6.0), (8.0, 15.0)]); + pen.line(&[(12.0, 5.0), (15.0, 8.0)]); + } + "tool-rect-frame" | "tool-ellipse-frame" | "tool-polygon-frame" => { + if name == "tool-ellipse-frame" { + pen.ellipse(10.0, 10.0, 7.0, 6.0); + } else if name == "tool-polygon-frame" { + pen.closed(&[(10.0, 3.0), (17.0, 8.0), (14.5, 16.5), (5.5, 16.5), (3.0, 8.0)]); + } else { + pen.rect(3.0, 4.0, 17.0, 16.0); + } + pen.w = 1.0; + pen.line(&[(5.0, 6.0), (15.0, 14.0)]); + pen.line(&[(15.0, 6.0), (5.0, 14.0)]); + } + "tool-rect" => pen.rect(3.0, 4.0, 17.0, 16.0), + "tool-ellipse" => pen.ellipse(10.0, 10.0, 7.0, 6.0), + "tool-polygon" => pen.closed(&[(10.0, 3.0), (17.0, 8.0), (14.5, 16.5), (5.5, 16.5), (3.0, 8.0)]), + "tool-scissors" => { + pen.circle(6.0, 14.5, 2.5); + pen.circle(14.0, 14.5, 2.5); + pen.line(&[(7.5, 12.5), (14.0, 3.0)]); + pen.line(&[(12.5, 12.5), (6.0, 3.0)]); + } + "tool-free-transform" | "tool-scale" | "tool-shear" => { + pen.rect(4.0, 4.0, 13.0, 13.0); + pen.frect(2.8, 2.8, 5.2, 5.2); + pen.frect(11.8, 11.8, 14.2, 14.2); + pen.line(&[(14.0, 14.0), (18.0, 18.0)]); + pen.line(&[(15.0, 18.0), (18.0, 18.0), (18.0, 15.0)]); + } + "tool-rotate" => { + let pts: Vec<(f32, f32)> = (0..24) + .map(|i| { + let a = (i as f32 / 23.0) * 4.6 - 0.6; + (10.0 + 6.5 * a.cos(), 10.0 - 6.5 * a.sin()) + }) + .collect(); + pen.line(&pts); + pen.line(&[(13.0, 4.0), (15.5, 6.0), (16.5, 2.8)]); + } + "tool-gradient" | "tool-gradient-feather" => { + for i in 0..6 { + let a = 30 + i * 35; + let pc = Pen { p, r, c: c.gamma_multiply(a as f32 / 255.0 * 1.2), w: 1.0 }; + pc.frect(3.0 + i as f32 * 2.33, 4.0, 3.0 + (i + 1) as f32 * 2.33, 16.0); + } + pen.rect(3.0, 4.0, 17.0, 16.0); + } + "tool-note" => { + pen.closed(&[(4.0, 3.0), (16.0, 3.0), (16.0, 13.0), (11.0, 17.0), (4.0, 17.0)]); + pen.line(&[(7.0, 7.0), (13.0, 7.0)]); + pen.line(&[(7.0, 10.0), (13.0, 10.0)]); + } + "tool-color-theme" | "tool-eyedropper" => { + pen.closed(&[(3.0, 17.0), (3.5, 14.5), (11.0, 7.0), (13.0, 9.0), (5.5, 16.5)]); + pen.line(&[(11.0, 5.0), (15.0, 9.0)]); + pen.closed(&[(12.5, 6.5), (15.0, 3.0), (17.0, 5.0), (13.5, 7.5)]); + } + "tool-measure" => { + pen.closed(&[(2.0, 13.0), (13.0, 2.0), (18.0, 7.0), (7.0, 18.0)]); + for k in 0..4 { + let t = 4.0 + k as f32 * 2.5; + pen.line(&[(t, 13.0 - (t - 2.0)), (t + 1.5, 13.0 - (t - 2.0) + 1.5)]); + } + } + "tool-hand" => { + pen.line(&[(6.0, 11.0), (6.0, 5.0)]); + pen.line(&[(8.5, 10.0), (8.5, 3.5)]); + pen.line(&[(11.0, 10.0), (11.0, 4.0)]); + pen.line(&[(13.5, 10.5), (13.5, 6.0)]); + pen.line(&[(6.0, 11.0), (4.0, 9.0), (3.0, 10.0), (6.5, 16.5), (13.5, 17.5), (15.0, 13.0), (13.5, 10.5)]); + } + "tool-zoom" => { + pen.circle(8.5, 8.5, 5.5); + pen.w = 2.0; + pen.line(&[(12.5, 12.5), (17.5, 17.5)]); + } + // ---- panel icons + "panel-properties" => { + pen.line(&[(3.0, 5.0), (17.0, 5.0)]); + pen.line(&[(3.0, 10.0), (17.0, 10.0)]); + pen.line(&[(3.0, 15.0), (17.0, 15.0)]); + pen.fcircle(7.0, 5.0, 1.6); + pen.fcircle(13.0, 10.0, 1.6); + pen.fcircle(9.0, 15.0, 1.6); + } + "panel-pages" => { + pen.rect(3.0, 3.0, 9.0, 11.0); + pen.rect(11.0, 3.0, 17.0, 11.0); + pen.rect(7.0, 13.0, 13.0, 18.0); + } + "panel-layers" => { + pen.closed(&[(10.0, 3.0), (18.0, 7.0), (10.0, 11.0), (2.0, 7.0)]); + pen.line(&[(2.0, 10.5), (10.0, 14.5), (18.0, 10.5)]); + pen.line(&[(2.0, 14.0), (10.0, 18.0), (18.0, 14.0)]); + } + "panel-links" => { + pen.closed(&[ + (3.0, 10.0), + (6.0, 7.0), + (10.0, 7.0), + (10.0, 9.0), + (6.5, 9.0), + (5.0, 10.0), + (6.5, 11.0), + (10.0, 11.0), + (10.0, 13.0), + (6.0, 13.0), + ]); + pen.closed(&[(17.0, 10.0), (14.0, 7.0), (10.0, 7.0)]); + pen.line(&[(8.0, 10.0), (12.0, 10.0)]); + pen.line(&[(17.0, 10.0), (14.0, 13.0), (10.0, 13.0)]); + } + "panel-stroke" => { + pen.w = 0.8; + pen.line(&[(3.0, 5.0), (17.0, 5.0)]); + pen.w = 1.6; + pen.line(&[(3.0, 9.5), (17.0, 9.5)]); + pen.w = 2.8; + pen.line(&[(3.0, 15.0), (17.0, 15.0)]); + } + "panel-swatches" => { + pen.frect(3.0, 3.0, 9.0, 9.0); + pen.rect(11.0, 3.0, 17.0, 9.0); + pen.rect(3.0, 11.0, 9.0, 17.0); + pen.frect(11.0, 11.0, 17.0, 17.0); + } + "panel-color" => { + pen.circle(7.5, 8.0, 4.5); + pen.circle(12.5, 8.0, 4.5); + pen.circle(10.0, 12.5, 4.5); + } + "panel-gradient" => { + for i in 0..7 { + let pc = Pen { p, r, c: c.gamma_multiply(0.15 + i as f32 * 0.14), w: 1.0 }; + pc.frect(3.0 + i as f32 * 2.0, 5.0, 5.0 + i as f32 * 2.0, 15.0); + } + } + "panel-effects" => pen.text(10.0, 10.0, "fx", 11.0), + "panel-character" => pen.text(10.0, 10.5, "A", 15.0), + "panel-paragraph" => pen.text(10.0, 10.5, "¶", 15.0), + "panel-pstyles" => { + pen.text(8.0, 10.0, "¶", 13.0); + pen.line(&[(13.0, 6.0), (18.0, 6.0)]); + pen.line(&[(13.0, 10.0), (18.0, 10.0)]); + pen.line(&[(13.0, 14.0), (18.0, 14.0)]); + } + "panel-cstyles" => { + pen.text(8.0, 10.0, "A", 13.0); + pen.line(&[(13.0, 6.0), (18.0, 6.0)]); + pen.line(&[(13.0, 10.0), (18.0, 10.0)]); + pen.line(&[(13.0, 14.0), (18.0, 14.0)]); + } + "panel-wrap" => { + pen.frect(7.0, 7.0, 13.0, 13.0); + for y in [3.0, 17.0] { + pen.line(&[(3.0, y), (17.0, y)]); + } + pen.line(&[(3.0, 10.0), (5.0, 10.0)]); + pen.line(&[(15.0, 10.0), (17.0, 10.0)]); + } + "panel-align" => { + pen.line(&[(3.0, 3.0), (3.0, 17.0)]); + pen.frect(5.0, 5.0, 15.0, 9.0); + pen.frect(5.0, 11.0, 11.0, 15.0); + } + "panel-transform" => { + pen.rect(4.0, 4.0, 16.0, 16.0); + for (x, y) in [(4.0, 4.0), (16.0, 4.0), (4.0, 16.0), (16.0, 16.0), (10.0, 10.0)] { + pen.fcircle(x, y, 1.4); + } + } + "panel-info" => { + pen.circle(10.0, 10.0, 7.0); + pen.text(10.0, 10.5, "i", 11.0); + } + "panel-preflight" => { + pen.circle(10.0, 10.0, 7.0); + pen.line(&[(6.5, 10.0), (9.0, 12.5), (13.5, 7.5)]); + } + "panel-text-frame" => { + pen.rect(3.0, 4.0, 17.0, 16.0); + pen.text(10.0, 10.0, "T", 9.0); + } + // ---- small UI glyphs + "chevron-down" => pen.line(&[(6.0, 8.0), (10.0, 12.0), (14.0, 8.0)]), + "chevron-right" => pen.line(&[(8.0, 6.0), (12.0, 10.0), (8.0, 14.0)]), + "chevron-left" => pen.line(&[(12.0, 6.0), (8.0, 10.0), (12.0, 14.0)]), + "double-chevron-left" => { + pen.line(&[(10.0, 6.0), (6.0, 10.0), (10.0, 14.0)]); + pen.line(&[(15.0, 6.0), (11.0, 10.0), (15.0, 14.0)]); + } + "double-chevron-right" => { + pen.line(&[(5.0, 6.0), (9.0, 10.0), (5.0, 14.0)]); + pen.line(&[(10.0, 6.0), (14.0, 10.0), (10.0, 14.0)]); + } + "first" => { + pen.line(&[(5.0, 5.0), (5.0, 15.0)]); + pen.fill(&[(15.0, 5.0), (15.0, 15.0), (7.0, 10.0)]); + } + "prev" => pen.fill(&[(13.0, 5.0), (13.0, 15.0), (6.0, 10.0)]), + "next" => pen.fill(&[(7.0, 5.0), (7.0, 15.0), (14.0, 10.0)]), + "last" => { + pen.line(&[(15.0, 5.0), (15.0, 15.0)]); + pen.fill(&[(5.0, 5.0), (5.0, 15.0), (13.0, 10.0)]); + } + "eye" => { + pen.closed(&[(2.0, 10.0), (6.0, 6.0), (10.0, 5.0), (14.0, 6.0), (18.0, 10.0), (14.0, 14.0), (10.0, 15.0), (6.0, 14.0)]); + pen.fcircle(10.0, 10.0, 2.5); + } + "lock" => { + pen.frect(5.0, 9.0, 15.0, 17.0); + pen.line(&[(7.0, 9.0), (7.0, 6.0), (8.5, 4.0), (11.5, 4.0), (13.0, 6.0), (13.0, 9.0)]); + } + "plus" => { + pen.line(&[(10.0, 4.0), (10.0, 16.0)]); + pen.line(&[(4.0, 10.0), (16.0, 10.0)]); + } + "trash" => { + pen.line(&[(4.0, 5.0), (16.0, 5.0)]); + pen.closed(&[(5.5, 5.0), (6.5, 17.0), (13.5, 17.0), (14.5, 5.0)]); + pen.line(&[(8.0, 5.0), (8.5, 3.0), (11.5, 3.0), (12.0, 5.0)]); + } + "menu" => { + for y in [6.0, 10.0, 14.0] { + pen.line(&[(4.0, y), (16.0, y)]); + } + } + "home" => { + pen.closed(&[(3.0, 9.0), (10.0, 3.0), (17.0, 9.0), (17.0, 17.0), (3.0, 17.0)]); + pen.rect(8.0, 11.0, 12.0, 17.0); + } + "search" => { + pen.circle(8.5, 8.5, 5.0); + pen.line(&[(12.5, 12.5), (17.0, 17.0)]); + } + "share" => { + pen.line(&[(10.0, 3.0), (10.0, 13.0)]); + pen.line(&[(6.5, 6.5), (10.0, 3.0), (13.5, 6.5)]); + pen.line(&[(5.0, 10.0), (4.0, 10.0), (4.0, 17.0), (16.0, 17.0), (16.0, 10.0), (15.0, 10.0)]); + } + "screen-normal" => pen.rect(3.0, 4.0, 17.0, 16.0), + "screen-preview" => { + pen.rect(3.0, 4.0, 17.0, 16.0); + pen.frect(6.0, 7.0, 14.0, 13.0); + } + "align-left" | "align-center" | "align-right" | "align-justify" | "align-justify-all" => { + let rows = [(3.0, 14.0), (3.0, 17.0), (3.0, 12.0), (3.0, 16.0)]; + for (i, (a, b)) in rows.iter().enumerate() { + let y = 4.5 + i as f32 * 3.7; + let w = b - a; + let (x0, x1) = match name { + "align-center" => (10.0 - w / 2.0, 10.0 + w / 2.0), + "align-right" => (17.0 - w, 17.0), + "align-justify" if i < 3 => (3.0, 17.0), + "align-justify-all" => (3.0, 17.0), + _ => (*a, *b), + }; + pen.line(&[(x0, y), (x1, y)]); + } + } + "ref-point" => { + for i in 0..9 { + let (x, y) = (4.0 + (i % 3) as f32 * 6.0, 4.0 + (i / 3) as f32 * 6.0); + pen.rect(x - 1.2, y - 1.2, x + 1.2, y + 1.2); + } + } + "fill-proxy" => pen.frect(3.0, 3.0, 13.0, 13.0), + "swap" => { + pen.line(&[(5.0, 15.0), (5.0, 8.0), (8.0, 5.0), (15.0, 5.0)]); + pen.line(&[(12.5, 2.5), (15.0, 5.0), (12.5, 7.5)]); + pen.line(&[(2.5, 12.5), (5.0, 15.0), (7.5, 12.5)]); + } + "none" => { + pen.rect(3.0, 3.0, 17.0, 17.0); + pen.p.line_segment([pen.pt(3.0, 17.0), pen.pt(17.0, 3.0)], Stroke::new(1.6 * pen.s(), Color32::from_rgb(230, 40, 40))); + } + "fit-fill" | "fit-content" | "fit-frame" | "fit-center" | "fit-prop" => { + pen.rect(3.0, 5.0, 17.0, 15.0); + match name { + "fit-fill" => pen.frect(5.0, 3.0, 15.0, 17.0), + "fit-prop" => pen.frect(7.0, 6.5, 13.0, 13.5), + "fit-content" => pen.frect(4.5, 6.5, 15.5, 13.5), + "fit-center" => pen.fcircle(10.0, 10.0, 2.0), + _ => pen.rect(5.0, 7.0, 15.0, 13.0), + } + } + "wrap-none" | "wrap-bbox" | "wrap-contour" | "wrap-jump" | "wrap-next" => { + match name { + "wrap-contour" => { + pen.ellipse(10.0, 10.0, 4.0, 4.0); + } + _ => pen.frect(7.5, 7.5, 12.5, 12.5), + } + for y in [3.0, 5.5, 14.5, 17.0] { + pen.line(&[(3.0, y), (17.0, y)]); + } + match name { + "wrap-none" => pen.line(&[(3.0, 10.0), (17.0, 10.0)]), + "wrap-bbox" | "wrap-contour" => { + pen.line(&[(3.0, 10.0), (5.5, 10.0)]); + pen.line(&[(14.5, 10.0), (17.0, 10.0)]); + } + _ => {} + } + } + _ => { + pen.rect(4.0, 4.0, 16.0, 16.0); + } + } +} + +/// An icon-sized clickable button. Returns the response. +pub fn button(ui: &mut egui::Ui, name: &str, size: f32, selected: bool, tip: &str) -> egui::Response { + let t = crate::theme::Tokens::get(ui.ctx()); + let (r, resp) = ui.allocate_exact_size(vec2(size, size), egui::Sense::click()); + if selected { + ui.painter().rect_filled(r, 3.0, t.tool_active); + } else if resp.hovered() { + ui.painter().rect_filled(r, 3.0, t.hover); + } + let pad = size * 0.16; + paint(ui.painter(), r.shrink(pad), name, if selected { t.text_strong } else { t.icon }); + if tip.is_empty() { resp } else { resp.on_hover_text(tip) } +} diff --git a/crates/ui-egui/src/lib.rs b/crates/ui-egui/src/lib.rs new file mode 100644 index 00000000..bec685bb --- /dev/null +++ b/crates/ui-egui/src/lib.rs @@ -0,0 +1,419 @@ +//! DesignCraft's egui frontend: an InDesign-style UI over `designcraft-engine`. +//! +//! The UI is thin: every action goes through [`DesignApp::run`], which dispatches UI commands +//! (view/window) here and everything else to the engine. Menus, shortcuts, the ⌘K palette and +//! the control channel ([`control`]) share that entry point. +#![forbid(unsafe_code)] + +pub mod canvas; +pub mod chrome; +pub mod control; +pub mod dialogs; +pub mod dock; +pub mod icons; +pub mod menus; +pub mod panels; +pub mod theme; +pub mod toolbar; +pub mod widgets; + +use std::collections::HashMap; +use std::sync::mpsc::{Receiver, Sender}; + +use designcraft_engine::{Session, UiRequest, ViewInfo}; +use designcraft_geom::{Point, Unit}; +use serde::{Deserialize, Serialize}; +use serde_json::{Value, json}; + +pub use control::{ControlRequest, ControlResponse}; + +pub type ReadFn = Box Result, String>>; +pub type WriteFn = Box Result<(), String>>; +pub type PickFn = Box Option>; + +/// Platform services injected by the host (desktop or web). +#[derive(Default)] +pub struct Services { + /// Open-file dialog for a purpose (`open`, `place`) → path. + pub pick_open: Option, + /// Save dialog with a suggested name → path. + pub pick_save: Option, + pub read: Option, + pub write: Option, +} + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub enum ScreenMode { + #[default] + Normal, + Preview, + Bleed, + Slug, + Presentation, +} + +/// Persisted UI state. +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(default, rename_all = "camelCase")] +pub struct UiState { + pub brightness: theme::Brightness, + pub screen_mode: ScreenMode, + pub frame_edges: bool, + pub rulers: bool, + pub guides: bool, + pub baseline_grid: bool, + pub document_grid: bool, + pub text_threads: bool, + pub hidden_characters: bool, + pub control_bar: bool, + pub tools_double_column: bool, + /// Expanded right-dock panel group tab. + pub dock_tab: String, + /// Panel opened from the collapsed icon column (flyout). + pub open_panel: Option, + pub dock_expanded: bool, + pub units: Unit, + #[serde(skip)] + pub status: String, + #[serde(skip)] + pub dialog: Option, + #[serde(skip)] + pub palette: Option, + #[serde(skip)] + pub flyout: Option, +} + +impl Default for UiState { + fn default() -> Self { + UiState { + brightness: theme::Brightness::Dark, + screen_mode: ScreenMode::Normal, + frame_edges: true, + rulers: true, + guides: true, + baseline_grid: false, + document_grid: false, + text_threads: false, + hidden_characters: false, + control_bar: true, + tools_double_column: false, + dock_tab: "properties".into(), + open_panel: None, + dock_expanded: true, + units: Unit::Picas, + status: String::new(), + dialog: None, + palette: None, + flyout: None, + } + } +} + +/// Per-document view: zoom (screen points per document point) and the canvas point at the +/// top-left of the canvas area. +#[derive(Clone, Copy, Debug, PartialEq, Serialize)] +pub struct View { + pub zoom: f64, + pub origin: Point, + pub fitted: bool, +} + +impl Default for View { + fn default() -> Self { + View { zoom: 0.5, origin: Point::new(-100.0, -100.0), fitted: false } + } +} + +pub struct CanvasCache { + pub renderer: designcraft_render::Renderer, + pub texture: Option, + pub key: Option<(u64, u64, u64, u64, u64, u32, u32, u8)>, + pub last_ms: f64, +} + +#[derive(Default, Clone, Copy, Debug, Serialize)] +pub struct Perf { + pub frame_ms: f64, + pub render_ms: f64, + pub fps: f64, +} + +pub struct DesignApp { + pub session: Session, + pub ui: UiState, + pub services: Services, + pub views: HashMap, + pub canvas: CanvasCache, + pub canvas_rect: Option, + pub perf: Perf, + pub synthetic: Vec, + control_rx: Option>, + pending_shots: Vec<(u64, Option, Sender, f64)>, + queued_shots: Vec<(u64, f64, u32)>, + shot_token: u64, + styled: bool, + pub restyle: bool, + fonts_ready: bool, + pub integrated_titlebar: bool, + last_time: f64, +} + +impl DesignApp { + pub fn new(session: Session, services: Services) -> Self { + let mut renderer = designcraft_render::Renderer::new(); + renderer.threads = designcraft_render::default_threads(); + DesignApp { + session, + ui: UiState::default(), + services, + views: HashMap::new(), + canvas: CanvasCache { renderer, texture: None, key: None, last_ms: 0.0 }, + canvas_rect: None, + perf: Perf::default(), + synthetic: vec![], + control_rx: None, + pending_shots: vec![], + queued_shots: vec![], + shot_token: 0, + styled: false, + restyle: false, + fonts_ready: false, + integrated_titlebar: false, + last_time: 0.0, + } + } + + pub fn with_control(mut self, rx: Receiver) -> Self { + self.control_rx = Some(rx); + self + } + + pub fn view(&self) -> Option<&View> { + let uid = self.session.active()?.uid; + self.views.get(&uid) + } + pub fn view_mut(&mut self) -> Option<&mut View> { + let uid = self.session.active()?.uid; + Some(self.views.entry(uid).or_default()) + } + pub fn view_info(&self) -> ViewInfo { + ViewInfo { zoom: self.view().map(|v| v.zoom).unwrap_or(1.0) } + } + + pub fn status(&mut self, s: impl Into) { + self.ui.status = s.into(); + } + + /// THE entry point for every action (menus, shortcuts, palette, panels, control channel). + pub fn run(&mut self, id: &str, params: Value) -> Result { + if let Some(r) = menus::run_ui(self, id, ¶ms) { + return r; + } + let r = self.session.execute(id, ¶ms).map_err(|e| e.to_string()); + self.after_engine(); + if let Err(e) = &r { + self.status(e.clone()); + } + r + } + + /// Handle requests produced by tools/commands (dialogs, view changes, file pickers). + pub fn after_engine(&mut self) { + let reqs = std::mem::take(&mut self.session.ui_requests); + for r in reqs { + match r { + UiRequest::Dialog { id, params } => self.ui.dialog = Some(dialogs::Dialog::new(&id, params)), + UiRequest::View { params } => canvas::apply_view_request(self, ¶ms), + UiRequest::Pick { purpose, params } => { + let _ = params; + if let Some(path) = self.services.pick_open.as_mut().and_then(|f| f(&purpose)) { + let cmd = if purpose == "place" { "file.place" } else { "file.open" }; + let _ = self.run(cmd, json!({"path": path})); + } + } + } + } + // New documents get a fitted view. + if let Some(st) = self.session.active() { + let uid = st.uid; + self.views.entry(uid).or_default(); + } + } + + pub fn select_tool(&mut self, id: &str) { + let _ = self.run("tool.select", json!({"tool": id})); + self.ui.flyout = None; + } + + /// Per-frame logic before layout. + pub fn logic(&mut self, ctx: &egui::Context) { + if !self.styled { + theme::install_fonts(ctx); + self.styled = true; + self.restyle = true; + } else { + self.fonts_ready = true; + } + if self.restyle { + theme::apply(ctx, &theme::Tokens::for_brightness(self.ui.brightness)); + self.restyle = false; + } + let now = ctx.input(|i| i.time); + let dt = now - self.last_time; + if dt > 0.0 { + self.perf.fps = self.perf.fps * 0.9 + (1.0 / dt).min(240.0) * 0.1; + } + self.last_time = now; + self.drain_control(ctx); + if !self.synthetic.is_empty() { + ctx.request_repaint(); + } + self.collect_screenshots(ctx); + self.issue_screenshots(ctx); + if self.fonts_ready { + menus::shortcuts(self, ctx); + } + #[cfg(not(target_arch = "wasm32"))] + for f in ctx.input(|i| i.raw.dropped_files.clone()) { + { + let p = f.path().to_string_lossy().to_string(); + if p.is_empty() { + continue; + } + let cmd = if p.ends_with(".designcraft") { "file.open" } else { "file.place" }; + let _ = self.run(cmd, json!({"path": p})); + } + } + } + + /// Inject synthetic events (one pointer event per frame). + pub fn raw_input_hook(&mut self, raw: &mut egui::RawInput) { + if self.synthetic.is_empty() { + return; + } + let n = match self.synthetic[0] { + egui::Event::PointerMoved(_) | egui::Event::PointerButton { .. } => 1, + _ => self.synthetic.iter().position(|e| matches!(e, egui::Event::Key { pressed: false, .. })).map_or(self.synthetic.len(), |i| i + 1), + }; + if let Some(egui::Event::PointerMoved(p) | egui::Event::PointerButton { pos: p, .. }) = self.synthetic.first() { + raw.events.push(egui::Event::PointerMoved(*p)); + } + raw.events.extend(self.synthetic.drain(..n)); + } + + /// Lay out the whole window. + pub fn ui(&mut self, ui: &mut egui::Ui) { + let ctx = ui.ctx().clone(); + if !self.fonts_ready { + ctx.request_repaint(); + return; + } + let t0 = now_ms(); + let t = theme::Tokens::get(&ctx); + let presenting = self.ui.screen_mode == ScreenMode::Presentation; + if !presenting { + chrome::app_bar(self, ui); + if self.ui.control_bar && self.session.active().is_some() { + chrome::control_bar(self, ui); + } + chrome::status_bar(self, ui); + toolbar::show(self, ui); + dock::show(self, ui); + } + egui::CentralPanel::default().frame(egui::Frame::NONE.fill(t.pasteboard)).show(ui, |ui| { + if self.session.active().is_none() { + chrome::start_screen(self, ui); + return; + } + if !presenting { + chrome::doc_tabs(self, ui); + } + canvas::show(self, ui); + }); + dock::flyout(self, &ctx); + dialogs::show(self, &ctx); + menus::palette(self, &ctx); + self.perf.frame_ms = now_ms() - t0; + } + + fn drain_control(&mut self, ctx: &egui::Context) { + let Some(rx) = self.control_rx.take() else { return }; + while let Ok(req) = rx.try_recv() { + let reply = req.reply.clone(); + match control::handle(self, ctx, &req) { + control::Outcome::Done(v) => { + let _ = reply.send(v); + } + control::Outcome::Screenshot { path } => { + self.shot_token += 1; + let token = self.shot_token; + self.queued_shots.push((token, now_ms() + 120.0, 0)); + self.pending_shots.push((token, path, reply, now_ms() + 8000.0)); + } + } + } + self.control_rx = Some(rx); + } + + fn issue_screenshots(&mut self, ctx: &egui::Context) { + let now = now_ms(); + self.queued_shots.retain_mut(|(token, at, frames)| { + *frames += 1; + if now >= *at && *frames >= 3 { + ctx.send_viewport_cmd(egui::ViewportCommand::Screenshot(egui::UserData::new(*token))); + false + } else { + true + } + }); + if !self.queued_shots.is_empty() || !self.pending_shots.is_empty() { + ctx.request_repaint_after(std::time::Duration::from_millis(16)); + } + } + + fn collect_screenshots(&mut self, ctx: &egui::Context) { + if self.pending_shots.is_empty() { + return; + } + let events: Vec<_> = ctx.input(|i| { + i.raw + .events + .iter() + .filter_map(|e| match e { + egui::Event::Screenshot { user_data, image, .. } => { + let token = user_data.data.as_ref().and_then(|d| d.downcast_ref::()).copied()?; + Some((token, image.clone())) + } + _ => None, + }) + .collect() + }); + for (token, image) in events { + if let Some(i) = self.pending_shots.iter().position(|(t, ..)| *t == token) { + let (_, path, reply, _) = self.pending_shots.remove(i); + let _ = reply.send(control::save_screenshot(self, &image, path.as_deref())); + } + } + let now = now_ms(); + self.pending_shots.retain(|(_, _, reply, deadline)| { + if now < *deadline { + return true; + } + let _ = reply.send(json!({"ok": false, "error": "no frame was presented (screen locked or window hidden); use ui.render"})); + false + }); + } +} + +pub fn now_ms() -> f64 { + #[cfg(not(target_arch = "wasm32"))] + { + use std::time::{SystemTime, UNIX_EPOCH}; + SystemTime::now().duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64() * 1000.0).unwrap_or(0.0) + } + #[cfg(target_arch = "wasm32")] + { + 0.0 + } +} diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs new file mode 100644 index 00000000..e78678a3 --- /dev/null +++ b/crates/ui-egui/src/menus.rs @@ -0,0 +1,538 @@ +//! The menu bar tree (InDesign order), UI-only commands, keyboard shortcuts and the ⌘K palette. + +use serde_json::{Value, json}; + +use crate::{DesignApp, ScreenMode}; + +/// UI commands: (id, label, shortcut, params). +pub const UI_COMMANDS: &[(&str, &str, Option<&str>, &str)] = &[ + ("app.newDocumentDialog", "New Document…", Some("Cmd+N"), "{}"), + ("app.openDialog", "Open…", Some("Cmd+O"), "{}"), + ("app.placeDialog", "Place…", Some("Cmd+D"), "{}"), + ("app.saveDialog", "Save As…", Some("Cmd+Shift+S"), "{}"), + ("app.save", "Save", Some("Cmd+S"), "{}"), + ("app.exportPng", "Export Page as PNG…", Some("Cmd+E"), "{}"), + ("app.palette", "Command Palette…", Some("Cmd+K"), "{}"), + ("view.zoomIn", "Zoom In", Some("Cmd+="), "{}"), + ("view.zoomOut", "Zoom Out", Some("Cmd+-"), "{}"), + ("view.fitPage", "Fit Page in Window", Some("Cmd+0"), "{}"), + ("view.fitSpread", "Fit Spread in Window", Some("Cmd+Alt+0"), "{}"), + ("view.actualSize", "Actual Size", Some("Cmd+1"), "{}"), + ("view.entirePasteboard", "Entire Pasteboard", Some("Cmd+Alt+Shift+0"), "{}"), + ("view.zoom", "Zoom To", None, "{zoom: 1.0 = 100%}"), + ("view.screenMode", "Screen Mode", None, "{mode: normal|preview|bleed|slug|presentation}"), + ("view.togglePreview", "Toggle Normal/Preview", Some("W"), "{}"), + ("view.frameEdges", "Show/Hide Frame Edges", Some("Cmd+H"), "{}"), + ("view.rulers", "Show/Hide Rulers", Some("Cmd+R"), "{}"), + ("view.guides", "Show/Hide Guides", Some("Cmd+;"), "{}"), + ("view.baselineGrid", "Show/Hide Baseline Grid", Some("Cmd+Alt+'"), "{}"), + ("view.textThreads", "Show/Hide Text Threads", Some("Cmd+Alt+Y"), "{}"), + ("view.hiddenCharacters", "Show/Hide Hidden Characters", Some("Cmd+Alt+I"), "{}"), + ("view.goToPage", "Go to Page…", Some("Cmd+J"), "{page}"), + ( + "window.panel", + "Show Panel", + None, + "{panel: properties|pages|layers|swatches|paragraphStyles|characterStyles|stroke|character|paragraph|textWrap|links}", + ), + ("window.controlBar", "Control", Some("Cmd+Alt+6"), "{}"), + ("window.toolsDoubleColumn", "Tools: Double Column", None, "{}"), + ("window.brightness", "Interface Color Theme", None, "{brightness: dark|mediumDark|mediumLight|light}"), +]; + +/// Menu bar: (menu, entries). Entries: `cmd:`, `ui:`, `-` separator, `>Submenu` … `<`. +pub const MENUS: &[(&str, &[&str])] = &[ + ( + "File", + &[ + "ui:app.newDocumentDialog", + "ui:app.openDialog", + "-", + "cmd:file.close", + "ui:app.save", + "ui:app.saveDialog", + "-", + "ui:app.placeDialog", + "-", + "ui:app.exportPng", + "-", + "cmd:layout.documentSetup", + ], + ), + ( + "Edit", + &[ + "cmd:edit.undo", + "cmd:edit.redo", + "-", + "cmd:edit.cut", + "cmd:edit.copy", + "cmd:edit.paste", + "cmd:edit.pasteInPlace", + "cmd:edit.clear", + "-", + "cmd:edit.duplicate", + "-", + "cmd:edit.selectAll", + "cmd:edit.deselectAll", + "-", + "ui:app.palette", + ], + ), + ("Layout", &[">Pages", "cmd:layout.pages.insert", "cmd:layout.parents.new", "<", "cmd:layout.marginsAndColumns", "-", "ui:view.goToPage"]), + ( + "Type", + &[ + "cmd:type.fillWithPlaceholder", + "-", + "cmd:type.alignLeft", + "cmd:type.alignCenter", + "cmd:type.alignRight", + "cmd:type.justify", + "-", + "cmd:type.bold", + "cmd:type.italic", + "cmd:type.underline", + "cmd:type.allCaps", + "-", + "cmd:type.sizeUp", + "cmd:type.sizeDown", + "-", + "ui:view.hiddenCharacters", + ], + ), + ( + "Object", + &[ + ">Transform", + "cmd:transform.flip", + "<", + ">Arrange", + "cmd:object.bringToFront", + "cmd:object.bringForward", + "cmd:object.sendBackward", + "cmd:object.sendToBack", + "<", + "-", + "cmd:object.group", + "cmd:object.ungroup", + "cmd:object.lock", + "cmd:object.unlockAll", + "cmd:object.hide", + "cmd:object.showAll", + "-", + "cmd:object.textFrameOptions", + "cmd:object.cornerOptions", + "-", + ">Effects", + "cmd:object.dropShadow", + "<", + ], + ), + ("Table", &[]), + ( + "View", + &[ + "ui:view.zoomIn", + "ui:view.zoomOut", + "ui:view.fitPage", + "ui:view.fitSpread", + "ui:view.actualSize", + "ui:view.entirePasteboard", + "-", + "ui:view.togglePreview", + "-", + "ui:view.rulers", + "ui:view.frameEdges", + "ui:view.textThreads", + "ui:view.hiddenCharacters", + "-", + "ui:view.guides", + "ui:view.baselineGrid", + ], + ), + ("Window", &["ui:window.controlBar", "ui:window.toolsDoubleColumn", "-", "ui:window.panel", "-", "ui:window.brightness"]), + ("Help", &["cmd:file.newSample"]), +]; + +pub fn ui_label(id: &str) -> Option<(&'static str, Option<&'static str>)> { + UI_COMMANDS.iter().find(|c| c.0 == id).map(|c| (c.1, c.2)) +} + +/// Run a UI command; `None` if `id` isn't one. +pub fn run_ui(app: &mut DesignApp, id: &str, p: &Value) -> Option> { + let rect = app.canvas_rect; + let flag = |b: &mut bool| { + *b = !*b; + Ok(json!(*b)) + }; + Some(match id { + "app.newDocumentDialog" => { + app.ui.dialog = Some(crate::dialogs::Dialog::new("newDocument", json!({}))); + Ok(Value::Null) + } + "app.openDialog" => { + if let Some(path) = app.services.pick_open.as_mut().and_then(|f| f("open")) { + return Some(app.run("file.open", json!({"path": path}))); + } + Ok(Value::Null) + } + "app.placeDialog" => { + if let Some(path) = app.services.pick_open.as_mut().and_then(|f| f("place")) { + return Some(app.run("file.place", json!({"path": path}))); + } + Ok(Value::Null) + } + "app.save" => { + if app.session.active().is_some_and(|d| d.path.is_some()) { + return Some(app.run("file.save", json!({}))); + } + return run_ui(app, "app.saveDialog", p); + } + "app.saveDialog" => { + let name = app.session.active().map(|d| format!("{}.designcraft", d.doc.title)).unwrap_or_default(); + if let Some(path) = app.services.pick_save.as_mut().and_then(|f| f(&name)) { + return Some(app.run("file.saveAs", json!({"path": path}))); + } + Ok(Value::Null) + } + "app.exportPng" => export_png(app, p), + "app.palette" => { + app.ui.palette = Some(String::new()); + Ok(Value::Null) + } + "view.zoomIn" | "view.zoomOut" => { + if let Some(r) = rect { + crate::canvas::zoom_at(app, r.center(), if id == "view.zoomIn" { 1.5 } else { 1.0 / 1.5 }); + } + Ok(Value::Null) + } + "view.fitPage" | "view.fitSpread" | "view.entirePasteboard" => { + if let Some(r) = rect { + crate::canvas::fit( + app, + r, + if id == "view.fitPage" { + "page" + } else if id == "view.fitSpread" { + "spread" + } else { + "all" + }, + ); + } + Ok(Value::Null) + } + "view.actualSize" => { + crate::canvas::set_zoom(app, 1.0); + Ok(Value::Null) + } + "view.zoom" => { + crate::canvas::set_zoom(app, p.get("zoom").and_then(Value::as_f64).unwrap_or(1.0)); + Ok(Value::Null) + } + "view.screenMode" => { + app.ui.screen_mode = match p.get("mode").and_then(Value::as_str).unwrap_or("normal") { + "preview" => ScreenMode::Preview, + "bleed" => ScreenMode::Bleed, + "slug" => ScreenMode::Slug, + "presentation" => ScreenMode::Presentation, + _ => ScreenMode::Normal, + }; + Ok(Value::Null) + } + "view.togglePreview" => { + app.ui.screen_mode = if app.ui.screen_mode == ScreenMode::Normal { ScreenMode::Preview } else { ScreenMode::Normal }; + Ok(Value::Null) + } + "view.frameEdges" => flag(&mut app.ui.frame_edges), + "view.rulers" => flag(&mut app.ui.rulers), + "view.guides" => flag(&mut app.ui.guides), + "view.baselineGrid" => flag(&mut app.ui.baseline_grid), + "view.textThreads" => flag(&mut app.ui.text_threads), + "view.hiddenCharacters" => flag(&mut app.ui.hidden_characters), + "view.goToPage" => { + match p.get("page").and_then(Value::as_u64) { + Some(n) => crate::canvas::go_to_page(app, (n as usize).saturating_sub(1)), + None => app.ui.dialog = Some(crate::dialogs::Dialog::new("goToPage", json!({}))), + } + Ok(Value::Null) + } + "window.panel" => { + let panel = p.get("panel").and_then(Value::as_str).unwrap_or("properties").to_string(); + if crate::dock::DOCK_TABS.iter().any(|(id, _, _)| *id == panel) { + app.ui.dock_tab = panel; + app.ui.dock_expanded = true; + app.ui.open_panel = None; + } else { + app.ui.open_panel = if app.ui.open_panel.as_deref() == Some(panel.as_str()) { None } else { Some(panel) }; + } + Ok(Value::Null) + } + "window.controlBar" => flag(&mut app.ui.control_bar), + "window.toolsDoubleColumn" => flag(&mut app.ui.tools_double_column), + "window.brightness" => { + let b = p.get("brightness").and_then(Value::as_str).and_then(crate::theme::Brightness::parse).unwrap_or(crate::theme::Brightness::Dark); + app.ui.brightness = b; + app.restyle = true; + Ok(Value::Null) + } + _ => return None, + }) +} + +fn export_png(app: &mut DesignApp, p: &Value) -> Result { + let st = app.session.active().ok_or("no document")?; + let page = p.get("page").and_then(Value::as_u64).map(|v| v as usize).or_else(|| crate::canvas::current_page(app)).unwrap_or(0); + let scale = p.get("scale").and_then(Value::as_f64).unwrap_or(2.0); + let mut r = designcraft_render::Renderer::new(); + let img = r + .render_page( + &st.doc, + &app.session.cache, + page, + scale, + false, + &designcraft_render::RenderOptions { printing_only: true, ..Default::default() }, + ) + .ok_or("no such page")?; + let png = img.to_png(); + let path = match p.get("path").and_then(Value::as_str) { + Some(s) => Some(s.to_string()), + None => { + let name = format!("{}-p{}.png", st.doc.title, page + 1); + app.services.pick_save.as_mut().and_then(|f| f(&name)) + } + }; + let Some(path) = path else { return Ok(Value::Null) }; + match app.services.write.as_mut() { + Some(w) => w(&path, &png).map(|_| json!({"path": path, "width": img.width, "height": img.height})), + None => Err("no writer".into()), + } +} + +/// Is a command enabled (for menu greying)? +pub fn enabled(app: &DesignApp, id: &str) -> bool { + match designcraft_engine::find_command(id) { + Some(c) => (c.enabled)(&app.session).is_ok(), + None => true, + } +} + +fn shortcut_text(sc: &str) -> String { + let mac = cfg!(target_os = "macos"); + sc.split('+') + .map(|k| match k { + "Cmd" => if mac { "⌘" } else { "Ctrl+" }.to_string(), + "Shift" => if mac { "⇧" } else { "Shift+" }.to_string(), + "Alt" => if mac { "⌥" } else { "Alt+" }.to_string(), + k => k.to_string(), + }) + .collect() +} + +/// The menu bar contents (inside the app bar). +pub fn menu_bar(app: &mut DesignApp, ui: &mut egui::Ui) { + for (menu, entries) in MENUS { + ui.menu_button(*menu, |ui| { + ui.set_min_width(240.0); + menu_entries(app, ui, entries); + }); + } +} + +fn menu_entries(app: &mut DesignApp, ui: &mut egui::Ui, entries: &[&str]) { + let mut i = 0; + while i < entries.len() { + let e = entries[i]; + i += 1; + if e == "-" { + ui.separator(); + continue; + } + if let Some(name) = e.strip_prefix('>') { + let start = i; + while i < entries.len() && entries[i] != "<" { + i += 1; + } + let sub = &entries[start..i]; + i += 1; + ui.menu_button(name, |ui| menu_entries(app, ui, sub)); + continue; + } + if e == "ui:window.panel" { + ui.menu_button("Panels", |ui| { + for (id, label, _) in crate::dock::DOCK_TABS.iter().chain(crate::dock::ICON_PANELS) { + if ui.button(*label).clicked() { + let _ = app.run("window.panel", json!({"panel": id})); + ui.close(); + } + } + }); + continue; + } + if e == "ui:window.brightness" { + ui.menu_button("Interface Color Theme", |ui| { + for b in crate::theme::Brightness::ALL { + if ui.radio(app.ui.brightness == b, b.label()).clicked() { + let _ = app.run("window.brightness", json!({"brightness": b.id()})); + ui.close(); + } + } + }); + continue; + } + let (kind, id) = e.split_once(':').unwrap_or(("cmd", e)); + let (label, sc, en) = if kind == "ui" { + let (l, sc) = ui_label(id).unwrap_or((id, None)); + (l.to_string(), sc, app.session.active().is_some() || id.starts_with("app.") || id.starts_with("window.")) + } else { + match designcraft_engine::find_command(id) { + Some(c) => (c.label.to_string(), c.shortcut, enabled(app, id)), + None => (id.to_string(), None, false), + } + }; + let checked = match id { + "view.rulers" => Some(app.ui.rulers), + "view.frameEdges" => Some(app.ui.frame_edges), + "view.guides" => Some(app.ui.guides), + "view.baselineGrid" => Some(app.ui.baseline_grid), + "view.textThreads" => Some(app.ui.text_threads), + "view.hiddenCharacters" => Some(app.ui.hidden_characters), + "window.controlBar" => Some(app.ui.control_bar), + _ => None, + }; + let text = match checked { + Some(true) => format!("✓ {label}"), + Some(false) => format!(" {label}"), + None => label, + }; + let mut b = egui::Button::new(text); + if let Some(sc) = sc { + b = b.shortcut_text(shortcut_text(sc)); + } + if ui.add_enabled(en, b).clicked() { + let _ = app.run(id, json!({})); + ui.close(); + } + } +} + +fn parse_shortcut(sc: &str) -> Option<(egui::Modifiers, egui::Key)> { + let mut m = egui::Modifiers::NONE; + let mut key = None; + for part in sc.split('+').filter(|s| !s.is_empty()) { + match part { + "Cmd" => m.command = true, + "Shift" => m.shift = true, + "Alt" => m.alt = true, + "Ctrl" => m.ctrl = true, + "=" => key = Some(egui::Key::Equals), + "-" => key = Some(egui::Key::Minus), + "[" => key = Some(egui::Key::OpenBracket), + "]" => key = Some(egui::Key::CloseBracket), + ";" => key = Some(egui::Key::Semicolon), + "'" => key = Some(egui::Key::Quote), + "," => key = Some(egui::Key::Comma), + "." => key = Some(egui::Key::Period), + "\\" => key = Some(egui::Key::Backslash), + "Delete" => key = Some(egui::Key::Delete), + k => key = egui::Key::from_name(k), + } + } + if sc.ends_with("+-") || sc == "-" { + key = Some(egui::Key::Minus); + } + key.map(|k| (m, k)) +} + +/// Global keyboard shortcuts: menu commands and single-key tool shortcuts. +pub fn shortcuts(app: &mut DesignApp, ctx: &egui::Context) { + if ctx.egui_wants_keyboard_input() || app.ui.dialog.is_some() || app.ui.palette.is_some() { + return; + } + let typing = app.session.wants_text(); + let events = ctx.input(|i| i.events.clone()); + for e in events { + let egui::Event::Key { key, pressed: true, modifiers, repeat: false, .. } = e else { continue }; + // Command shortcuts. + let mut fired = None; + let all = designcraft_engine::command_specs() + .iter() + .filter_map(|c| c.shortcut.map(|s| (c.id, s))) + .chain(UI_COMMANDS.iter().filter_map(|c| c.2.map(|s| (c.0, s)))); + for (id, sc) in all { + if let Some((m, k)) = parse_shortcut(sc) + && k == key + && m.command == modifiers.command + && m.shift == modifiers.shift + && m.alt == modifiers.alt + && (m.command || m.alt || !typing) + && !(id == "edit.clear" && typing) + { + // Single-key shortcuts (W) only when not typing. + if !m.command && !m.alt && !m.shift && typing { + continue; + } + if id == "edit.clear" { + continue; // Delete is handled by the active tool. + } + fired = Some(id); + break; + } + } + if let Some(id) = fired { + let _ = app.run(id, json!({})); + continue; + } + // Tool shortcuts (single keys, Shift+key). + if !typing && !modifiers.command && !modifiers.alt { + let name = key.name(); + let sc = if modifiers.shift { format!("Shift+{name}") } else { name.to_string() }; + if let Some(tool) = designcraft_tools::tool_for_shortcut(&sc) { + app.select_tool(tool); + } else if key == egui::Key::Escape && app.session.tool_id() != "selection" && !app.session.tool_busy() { + app.select_tool("selection"); + } + } + } +} + +/// ⌘K command palette. +pub fn palette(app: &mut DesignApp, ctx: &egui::Context) { + let Some(mut q) = app.ui.palette.clone() else { return }; + let mut close = false; + let mut run: Option = None; + egui::Modal::new(egui::Id::new("palette")).show(ctx, |ui| { + ui.set_width(480.0); + let r = ui.add(egui::TextEdit::singleline(&mut q).hint_text("Search commands…").desired_width(f32::INFINITY)); + r.request_focus(); + let ql = q.to_lowercase(); + let mut items: Vec<(String, String, Option<&str>)> = designcraft_engine::command_specs() + .iter() + .filter(|c| !c.menu.is_empty() || c.shortcut.is_some()) + .map(|c| (c.id.to_string(), c.label.to_string(), c.shortcut)) + .chain(UI_COMMANDS.iter().map(|c| (c.0.to_string(), c.1.to_string(), c.2))) + .filter(|(id, l, _)| ql.is_empty() || l.to_lowercase().contains(&ql) || id.to_lowercase().contains(&ql)) + .collect(); + items.truncate(14); + egui::ScrollArea::vertical().max_height(340.0).show(ui, |ui| { + for (i, (id, l, sc)) in items.iter().enumerate() { + let mut b = egui::Button::new(l.as_str()).frame(false); + if let Some(sc) = sc { + b = b.shortcut_text(shortcut_text(sc)); + } + if ui.add_sized([460.0, 22.0], b).clicked() || (i == 0 && ui.input(|i| i.key_pressed(egui::Key::Enter))) { + run = Some(id.clone()); + } + } + }); + if ui.input(|i| i.key_pressed(egui::Key::Escape)) { + close = true; + } + }); + app.ui.palette = if close || run.is_some() { None } else { Some(q) }; + if let Some(id) = run { + let _ = app.run(&id, json!({})); + } +} diff --git a/crates/ui-egui/src/panels/layers.rs b/crates/ui-egui/src/panels/layers.rs new file mode 100644 index 00000000..afc8f623 --- /dev/null +++ b/crates/ui-egui/src/panels/layers.rs @@ -0,0 +1,73 @@ +//! Layers panel. + +use egui::{Color32, Sense, Stroke, StrokeKind, vec2}; +use serde_json::json; + +use crate::theme::Tokens; +use crate::{DesignApp, icons}; + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let Some(st) = app.session.active() else { return }; + let doc = st.doc.clone(); + let active = st.active_layer; + let sel_layers: Vec<_> = st.selection.items.iter().filter_map(|i| doc.item(*i).map(|it| it.layer)).collect(); + for l in &doc.layers { + let (row, resp) = ui.allocate_exact_size(vec2(ui.available_width(), 26.0), Sense::click()); + if l.id == active { + ui.painter().rect_filled(row, 0.0, t.row_selected); + } else if resp.hovered() { + ui.painter().rect_filled(row, 0.0, t.hover); + } + let eye = egui::Rect::from_min_size(row.min + vec2(2.0, 4.0), vec2(18.0, 18.0)); + let lock = egui::Rect::from_min_size(row.min + vec2(24.0, 4.0), vec2(18.0, 18.0)); + if l.visible { + icons::paint(ui.painter(), eye, "eye", t.icon); + } + if l.locked { + icons::paint(ui.painter(), lock, "lock", t.icon); + } + ui.painter().rect_stroke(lock.expand(1.0), 0.0, Stroke::new(1.0, t.divider), StrokeKind::Inside); + let chip = egui::Rect::from_min_size(row.min + vec2(48.0, 8.0), vec2(4.0, 10.0)); + ui.painter().rect_filled(chip, 0.0, Color32::from_rgb(l.color[0], l.color[1], l.color[2])); + ui.painter().text(row.min + vec2(58.0, 13.0), egui::Align2::LEFT_CENTER, &l.name, egui::FontId::proportional(12.5), t.text); + // Selection square in the layer colour. + if sel_layers.contains(&l.id) { + let sq = egui::Rect::from_center_size(egui::pos2(row.max.x - 12.0, row.center().y), vec2(7.0, 7.0)); + ui.painter().rect_filled(sq, 0.0, Color32::from_rgb(l.color[0], l.color[1], l.color[2])); + } + let eye_r = ui.interact(eye, ui.id().with(("eye", l.id.0)), Sense::click()); + let lock_r = ui.interact(lock, ui.id().with(("lock", l.id.0)), Sense::click()); + if eye_r.clicked() { + let _ = app.run("layer.set", json!({"id": l.id.0, "visible": !l.visible})); + } else if lock_r.clicked() { + let _ = app.run("layer.set", json!({"id": l.id.0, "locked": !l.locked})); + } else if resp.clicked() { + let _ = app.run("layer.activate", json!({"id": l.id.0})); + } + resp.context_menu(|ui| { + if ui.button("Delete Layer").clicked() { + let _ = app.run("layer.delete", json!({"id": l.id.0})); + ui.close(); + } + if ui.button("Move Selection Here").clicked() { + let _ = app.run("object.setLayer", json!({"layer": l.id.0})); + ui.close(); + } + }); + } + ui.add_space(6.0); + ui.horizontal(|ui| { + ui.label( + egui::RichText::new(format!("{} Layer{}", doc.layers.len(), if doc.layers.len() == 1 { "" } else { "s" })).size(11.0).color(t.text_dim), + ); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + if icons::button(ui, "trash", 20.0, false, "Delete Layer").clicked() { + let _ = app.run("layer.delete", json!({"id": active.0})); + } + if icons::button(ui, "plus", 20.0, false, "Create New Layer").clicked() { + let _ = app.run("layer.new", json!({})); + } + }); + }); +} diff --git a/crates/ui-egui/src/panels/mod.rs b/crates/ui-egui/src/panels/mod.rs new file mode 100644 index 00000000..5f20e4ab --- /dev/null +++ b/crates/ui-egui/src/panels/mod.rs @@ -0,0 +1,178 @@ +//! Panels and shared panel helpers. + +pub mod layers; +pub mod pages; +pub mod properties; +pub mod styles; +pub mod swatches; + +use designcraft_doc::{Content, StrokeAlign, WrapMode}; +use designcraft_geom::Rect; +use egui::vec2; +use serde_json::{Value, json}; + +use crate::DesignApp; +use crate::theme::Tokens; + +/// Summary of the current object selection (for the Control panel and Properties). +#[derive(Clone, Debug)] +pub struct SelInfo { + /// Bounds relative to the page the selection is on. + pub page_rect: Rect, + pub count: usize, + pub fill: String, + pub stroke: String, + pub stroke_weight: f64, + pub stroke_align: StrokeAlign, + pub opacity: f64, + pub shadow: bool, + pub wrap: &'static str, + pub columns: Option, + pub kind: &'static str, + pub is_graphic: bool, + pub is_text: bool, +} + +pub fn sel_info(app: &DesignApp) -> Option { + let st = app.session.active()?; + if st.selection.items.is_empty() { + return None; + } + let d = &st.doc; + let mut b: Option = None; + for id in &st.selection.items { + let it = d.item(*id)?; + b = Some(b.map_or(it.bounds(), |r| r.union(it.bounds()))); + } + let b = b?; + let first = d.item(st.selection.items[0])?; + let loc = d.find(first.id)?; + let sp = d.spread(loc.spread)?; + let pi = sp.page_at_x(b.center().x).unwrap_or(0); + let px = sp.pages.get(pi).map(|p| p.x).unwrap_or(0.0); + let wrap = match first.wrap.mode { + WrapMode::None => "none", + WrapMode::BoundingBox => "boundingBox", + WrapMode::Contour => "contour", + WrapMode::JumpObject => "jumpObject", + WrapMode::JumpToNextColumn => "jumpToNextColumn", + }; + Some(SelInfo { + page_rect: Rect::new(b.x0 - px, b.y0, b.x1 - px, b.y1), + count: st.selection.items.len(), + fill: first.fill.swatch.clone(), + stroke: first.stroke.swatch.clone(), + stroke_weight: first.stroke.weight, + stroke_align: first.stroke.align, + opacity: first.opacity as f64, + shadow: first.effects.drop_shadow.on, + wrap, + columns: first.text_frame().map(|t| t.options.columns), + kind: first.default_label(), + is_graphic: matches!(first.content, Content::Graphic(_)), + is_text: first.is_text_frame(), + }) +} + +/// Resolved attributes at the text selection (or the selected text frames). +pub fn text_attrs(app: &mut DesignApp) -> Option { + let v = app.session.execute("type.selectionAttrs", &json!({})).ok()?; + if v.is_null() { None } else { Some(serde_json::to_value(v).ok()?) } +} + +/// Count preflight errors: overset stories (more checks land with the Preflight panel). +pub fn preflight_errors(app: &DesignApp) -> usize { + let Some(st) = app.session.active() else { return 0 }; + st.doc.stories.keys().filter(|sid| app.session.cache.get(&st.doc, **sid, None).is_overset()).count() +} + +/// A swatch dropdown showing a chip and name; `on_pick` gets the chosen swatch name. +pub fn swatch_picker(app: &mut DesignApp, ui: &mut egui::Ui, id: &str, current: Option, on_pick: impl FnOnce(&mut DesignApp, String)) { + let Some(doc) = app.session.active().map(|d| d.doc.clone()) else { return }; + let cur = current.unwrap_or_default(); + let (c, g) = crate::widgets::swatch_colors(&doc, &cur, 1.0); + let mut picked = None; + ui.push_id(id, |ui| { + let (r, resp) = ui.allocate_exact_size(vec2(30.0, 18.0), egui::Sense::click()); + crate::widgets::paint_chip( + ui.painter(), + egui::Rect::from_min_size(r.min, vec2(18.0, 18.0)), + if cur.is_empty() { Some(egui::Color32::GRAY) } else { c }, + g, + ); + crate::icons::paint( + ui.painter(), + egui::Rect::from_min_size(r.min + vec2(18.0, 3.0), vec2(12.0, 12.0)), + "chevron-down", + Tokens::get(ui.ctx()).icon, + ); + egui::Popup::menu(&resp).show(|ui| { + ui.set_min_width(200.0); + egui::ScrollArea::vertical().max_height(320.0).show(ui, |ui| { + for sw in &doc.swatches { + let (c, g) = crate::widgets::swatch_colors(&doc, &sw.name, 1.0); + let row = ui.horizontal(|ui| { + let (cr, _) = ui.allocate_exact_size(vec2(14.0, 14.0), egui::Sense::hover()); + crate::widgets::paint_chip(ui.painter(), cr, c, g); + ui.add(egui::Button::new(&sw.name).frame(false).selected(sw.name == cur)) + }); + if row.inner.clicked() { + picked = Some(sw.name.clone()); + ui.close(); + } + } + }); + }); + }); + if let Some(p) = picked { + on_pick(app, p); + } +} + +pub fn font_family_picker(app: &mut DesignApp, ui: &mut egui::Ui, current: &str, width: f32) { + let fams = designcraft_fonts::FontDb::global().families(); + let mut pick = None; + egui::ComboBox::from_id_salt("font_family").selected_text(if current.is_empty() { "—" } else { current }).width(width).show_ui(ui, |ui| { + for f in &fams { + if ui.selectable_label(f == current, f).clicked() { + pick = Some(f.clone()); + } + } + }); + if let Some(f) = pick { + let styles = designcraft_fonts::FontDb::global().styles(&f); + let style = if styles.iter().any(|s| s == "Regular") { "Regular".to_string() } else { styles.first().cloned().unwrap_or_default() }; + let _ = app.run("type.char", json!({"attrs": {"fontFamily": f, "fontStyle": style}})); + } +} + +pub fn font_style_picker(app: &mut DesignApp, ui: &mut egui::Ui, family: &str, current: &str, width: f32) { + let styles = designcraft_fonts::FontDb::global().styles(family); + let mut pick = None; + egui::ComboBox::from_id_salt("font_style").selected_text(if current.is_empty() { "—" } else { current }).width(width).show_ui(ui, |ui| { + for s in &styles { + if ui.selectable_label(s == current, s).clicked() { + pick = Some(s.clone()); + } + } + }); + if let Some(s) = pick { + let _ = app.run("type.char", json!({"attrs": {"fontStyle": s}})); + } +} + +pub fn para_style_picker(app: &mut DesignApp, ui: &mut egui::Ui, current: &str, overridden: bool, width: f32) { + let names: Vec = app.session.active().map(|d| d.doc.styles.paragraph.iter().map(|p| p.name.clone()).collect()).unwrap_or_default(); + let mut pick = None; + let label = if overridden { format!("{current}+") } else { current.to_string() }; + egui::ComboBox::from_id_salt("para_style").selected_text(label).width(width).show_ui(ui, |ui| { + for n in names.iter().filter(|n| *n != designcraft_doc::NO_PARA_STYLE) { + if ui.selectable_label(n == current, n).clicked() { + pick = Some(n.clone()); + } + } + }); + if let Some(n) = pick { + let _ = app.run("style.paragraph.apply", json!({"name": n, "clearOverrides": false})); + } +} diff --git a/crates/ui-egui/src/panels/pages.rs b/crates/ui-egui/src/panels/pages.rs new file mode 100644 index 00000000..2afade0c --- /dev/null +++ b/crates/ui-egui/src/panels/pages.rs @@ -0,0 +1,166 @@ +//! Pages panel: parents at the top, document spreads with live thumbnails below. + +use std::collections::HashMap; +use std::sync::Mutex; + +use designcraft_doc::SpreadRef; +use egui::{Color32, Sense, Stroke, StrokeKind, vec2}; +use serde_json::json; + +use crate::theme::{Tokens, semibold}; +use crate::{DesignApp, icons}; + +type ThumbKey = (u64, u64, usize); + +static THUMBS: Mutex>> = Mutex::new(None); + +fn thumb(app: &mut DesignApp, ctx: &egui::Context, abs: usize, h: f32) -> Option { + let st = app.session.active()?; + let key = (st.uid, st.revision, abs); + let mut g = THUMBS.lock().unwrap_or_else(|e| e.into_inner()); + let map = g.get_or_insert_with(HashMap::new); + if let Some(t) = map.get(&key) { + return Some(t.clone()); + } + let page = st.doc.page(abs)?; + let scale = (h as f64 * ctx.pixels_per_point() as f64) / page.height; + let mut r = designcraft_render::Renderer::new(); + r.threads = 0; + let img = r.render_page( + &st.doc, + &app.session.cache, + abs, + scale, + false, + &designcraft_render::RenderOptions { printing_only: true, ..Default::default() }, + )?; + let ci = egui::ColorImage::from_rgba_premultiplied([img.width as usize, img.height as usize], &img.pixels); + let tex = ctx.load_texture(format!("thumb{abs}"), ci, egui::TextureOptions::LINEAR); + // Drop thumbnails of older revisions. + let (uid, rev) = (st.uid, st.revision); + map.retain(|k, _| !(k.0 == uid && k.1 != rev)); + map.insert(key, tex.clone()); + Some(tex) +} + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let Some(st) = app.session.active() else { return }; + let doc = st.doc.clone(); + let editing_parents = st.editing_parents; + // Parents. + ui.label(egui::RichText::new("Parents").font(semibold(11.5)).color(t.text_dim)); + ui.horizontal_wrapped(|ui| { + let none = ui.add(egui::Button::new("[None]").frame(false)); + if none.clicked() { + let _ = app.run("layout.parents.edit", json!({"on": false})); + } + for p in &doc.parents { + let label = p.parent.as_ref().map(|i| i.label()).unwrap_or_default(); + let resp = + ui.add(egui::Button::new(egui::RichText::new(&label).color(if editing_parents { t.text_strong } else { t.text })).frame(false)); + if resp.double_clicked() || resp.clicked() { + let _ = app.run("layout.parents.edit", json!({"on": true})); + app.views.clear(); + } + } + }); + let r = ui.available_rect_before_wrap(); + ui.painter().line_segment([egui::pos2(r.min.x, r.min.y + 2.0), egui::pos2(r.max.x, r.min.y + 2.0)], Stroke::new(1.0, t.divider)); + ui.add_space(8.0); + let cur = crate::canvas::current_page(app).unwrap_or(0); + let th = 76.0; + let center = ui.available_width() / 2.0; + for (si, sp) in doc.spreads.iter().enumerate() { + let first = doc.first_page_of_spread(si); + let scale = th / doc.settings.page_height.max(1.0) as f32; + // Pages relative to the spine. + let spine = sp.spine_x() as f32; + let (row, _) = ui.allocate_exact_size(vec2(ui.available_width(), th + 22.0), Sense::hover()); + for (pi, p) in sp.pages.iter().enumerate() { + let abs = first + pi; + let x0 = row.min.x + center + (p.x as f32 - spine) * scale; + let pr = egui::Rect::from_min_size(egui::pos2(x0, row.min.y + 2.0), vec2(p.width as f32 * scale, p.height as f32 * scale)); + let resp = ui.interact(pr, ui.id().with(("page", abs)), Sense::click()); + if let Some(tex) = thumb(app, ui.ctx(), abs, th) { + ui.painter().image(tex.id(), pr, egui::Rect::from_min_max(egui::pos2(0.0, 0.0), egui::pos2(1.0, 1.0)), Color32::WHITE); + } else { + ui.painter().rect_filled(pr, 0.0, Color32::WHITE); + } + let selected = abs == cur && !editing_parents; + ui.painter().rect_stroke( + pr, + 0.0, + Stroke::new(if selected { 2.0 } else { 1.0 }, if selected { t.accent } else { t.divider }), + StrokeKind::Outside, + ); + // Parent prefix in the top corner. + if let Some(pid) = p.parent + && let Some(pp) = doc.parents.iter().find(|x| x.id == pid) + { + let prefix = pp.parent.as_ref().map(|i| i.prefix.clone()).unwrap_or_default(); + let corner = + if p.side == designcraft_doc::PageSide::Left { pr.left_top() + vec2(3.0, 2.0) } else { pr.right_top() + vec2(-9.0, 2.0) }; + ui.painter().text(corner, egui::Align2::LEFT_TOP, prefix, egui::FontId::proportional(9.0), Color32::from_gray(90)); + } + if resp.clicked() || resp.double_clicked() { + if editing_parents { + let _ = app.run("layout.parents.edit", json!({"on": false})); + app.views.clear(); + } + crate::canvas::go_to_page(app, abs); + } + resp.context_menu(|ui| { + if ui.button("Insert Page After").clicked() { + let _ = app.run("layout.pages.insert", json!({"after": abs, "count": 1})); + ui.close(); + } + if ui.button("Delete Page").clicked() { + let _ = app.run("layout.pages.delete", json!({"pages": [abs]})); + ui.close(); + } + if ui.button("Duplicate Spread").clicked() { + let _ = app.run("layout.pages.duplicateSpread", json!({"spread": si})); + ui.close(); + } + ui.menu_button("Apply Parent", |ui| { + if ui.button("[None]").clicked() { + let _ = app.run("layout.pages.applyParent", json!({"pages": [abs], "parent": null})); + ui.close(); + } + for pp in &doc.parents { + let l = pp.parent.as_ref().map(|i| i.label()).unwrap_or_default(); + if ui.button(&l).clicked() { + let _ = + app.run("layout.pages.applyParent", json!({"pages": [abs], "parent": pp.parent.as_ref().map(|i| i.prefix.clone())})); + ui.close(); + } + } + }); + }); + } + // Page numbers under the spread. + let names: Vec = (0..sp.pages.len()).map(|i| doc.page_name(first + i)).collect(); + let label = if names.len() > 1 { format!("{}–{}", names[0], names[names.len() - 1]) } else { names[0].clone() }; + ui.painter().text( + egui::pos2(row.min.x + center, row.max.y - 8.0), + egui::Align2::CENTER_CENTER, + label, + egui::FontId::proportional(11.0), + t.text_dim, + ); + let _ = SpreadRef::Doc(si); + } + ui.add_space(6.0); + ui.horizontal(|ui| { + ui.label(egui::RichText::new(format!("{} Pages in {} Spreads", doc.page_count(), doc.spreads.len())).size(11.0).color(t.text_dim)); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + if icons::button(ui, "trash", 20.0, false, "Delete Page").clicked() { + let _ = app.run("layout.pages.delete", json!({"pages": [cur]})); + } + if icons::button(ui, "plus", 20.0, false, "Insert Page").clicked() { + let _ = app.run("layout.pages.insert", json!({"after": cur, "count": 1})); + } + }); + }); +} diff --git a/crates/ui-egui/src/panels/properties.rs b/crates/ui-egui/src/panels/properties.rs new file mode 100644 index 00000000..0094e2a4 --- /dev/null +++ b/crates/ui-egui/src/panels/properties.rs @@ -0,0 +1,596 @@ +//! The Properties panel (context-sensitive) and small single-purpose panels (Stroke, Character, +//! Paragraph, Text Wrap, Align, Links, Info). + +use designcraft_doc::Align; +use designcraft_geom::Unit; +use egui::vec2; +use serde_json::json; + +use super::{SelInfo, sel_info, text_attrs}; +use crate::theme::Tokens; +use crate::widgets::{caption, divider, measure, number, section}; +use crate::{DesignApp, icons}; + +fn units(app: &DesignApp) -> Unit { + app.session.active().map(|d| d.doc.settings.horizontal_units).unwrap_or(Unit::Picas) +} + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let Some(st) = app.session.active() else { + ui.label(egui::RichText::new("No document open").color(t.text_dim)); + return; + }; + let has_text = st.selection.text.is_some(); + let info = sel_info(app); + if has_text { + ui.label(egui::RichText::new("Text").color(t.text_dim)); + character_panel(app, ui); + divider(ui); + paragraph_panel(app, ui); + divider(ui); + if section(ui, "Text Frame", false) { + text_frame_section(app, ui); + } + return; + } + match info { + Some(i) => { + let kind = if i.count > 1 { format!("{} objects", i.count) } else { i.kind.trim_matches(['<', '>']).to_string() }; + ui.label(egui::RichText::new(capitalize(&kind)).color(t.text_dim)); + if section(ui, "Transform", true) { + transform_section(app, ui, &i); + } + divider(ui); + if section(ui, "Appearance", true) { + appearance_section(app, ui, &i); + } + divider(ui); + if i.count > 1 && section(ui, "Align", true) { + align_panel(app, ui); + divider(ui); + } + if i.is_text { + if section(ui, "Text Frame", true) { + text_frame_section(app, ui); + } + divider(ui); + } + if i.is_graphic { + if section(ui, "Frame Fitting", true) { + ui.horizontal(|ui| { + for (icon, mode, tip) in [ + ("fit-fill", "fillProportionally", "Fill Frame Proportionally"), + ("fit-prop", "fitProportionally", "Fit Content Proportionally"), + ("fit-content", "fitContentToFrame", "Fit Content to Frame"), + ("fit-frame", "fitFrameToContent", "Fit Frame to Content"), + ("fit-center", "centerContent", "Center Content"), + ] { + if icons::button(ui, icon, 24.0, false, tip).clicked() { + let _ = app.run("object.fit", json!({"mode": mode})); + } + } + }); + } + divider(ui); + } + if section(ui, "Text Wrap", false) { + wrap_panel(app, ui); + } + divider(ui); + if section(ui, "Quick Actions", true) { + ui.horizontal_wrapped(|ui| { + for (label, cmd) in [ + ("Group", "object.group"), + ("Ungroup", "object.ungroup"), + ("Lock", "object.lock"), + ("Bring to Front", "object.bringToFront"), + ("Send to Back", "object.sendToBack"), + ] { + if ui.button(label).clicked() { + let _ = app.run(cmd, json!({})); + } + } + if i.is_text && ui.button("Fill with Placeholder Text").clicked() { + let _ = app.run("type.fillWithPlaceholder", json!({})); + } + }); + } + } + None => document_section(app, ui), + } +} + +fn capitalize(s: &str) -> String { + let mut c = s.chars(); + match c.next() { + Some(f) => f.to_uppercase().collect::() + c.as_str(), + None => String::new(), + } +} + +fn document_section(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let u = units(app); + let Some(st) = app.session.active() else { return }; + let d = st.doc.clone(); + ui.label(egui::RichText::new("Document").color(t.text_dim)); + if section(ui, "Document", true) { + egui::Grid::new("docgrid").num_columns(4).spacing(vec2(6.0, 4.0)).show(ui, |ui| { + caption(ui, "W"); + if let Some(v) = measure(ui, "dw", Some(d.settings.page_width), u, 70.0) { + let _ = app.run("layout.documentSetup", json!({"width": v})); + } + caption(ui, "H"); + if let Some(v) = measure(ui, "dh", Some(d.settings.page_height), u, 70.0) { + let _ = app.run("layout.documentSetup", json!({"height": v})); + } + ui.end_row(); + caption(ui, "Pages"); + ui.label(d.page_count().to_string()); + caption(ui, ""); + let mut facing = d.settings.facing_pages; + if ui.checkbox(&mut facing, "Facing").changed() { + let _ = app.run("layout.documentSetup", json!({"facingPages": facing})); + } + ui.end_row(); + }); + if ui.button("Document Setup…").clicked() { + app.ui.dialog = Some(crate::dialogs::Dialog::new("documentSetup", json!({}))); + } + } + divider(ui); + if section(ui, "Margins", true) { + let p = d.page(crate::canvas::current_page(app).unwrap_or(0)).cloned(); + if let Some(p) = p { + egui::Grid::new("margins").num_columns(4).spacing(vec2(6.0, 4.0)).show(ui, |ui| { + for (row, (a, av, b, bv)) in + [("Top", p.margins.top, "Bottom", p.margins.bottom), ("Inside", p.margins.inside, "Outside", p.margins.outside)] + .into_iter() + .enumerate() + { + caption(ui, a); + if let Some(v) = measure(ui, &format!("m{row}a"), Some(av), u, 64.0) { + let mut m = p.margins; + if row == 0 { + m.top = v + } else { + m.inside = v + } + let _ = app.run("layout.marginsAndColumns", json!({"margins": m})); + } + caption(ui, b); + if let Some(v) = measure(ui, &format!("m{row}b"), Some(bv), u, 64.0) { + let mut m = p.margins; + if row == 0 { + m.bottom = v + } else { + m.outside = v + } + let _ = app.run("layout.marginsAndColumns", json!({"margins": m})); + } + ui.end_row(); + } + }); + ui.horizontal(|ui| { + caption(ui, "Columns"); + if let Some(v) = number(ui, "cols", Some(p.columns.count as f64), "", 36.0, 0) { + let _ = app.run("layout.marginsAndColumns", json!({"columns": v.max(1.0) as u64})); + } + caption(ui, "Gutter"); + if let Some(v) = measure(ui, "gut", Some(p.columns.gutter), u, 56.0) { + let _ = app.run("layout.marginsAndColumns", json!({"gutter": v})); + } + }); + } + } + divider(ui); + if section(ui, "Rulers & Grids", true) { + ui.horizontal(|ui| { + ui.checkbox(&mut app.ui.rulers, "Rulers"); + ui.checkbox(&mut app.ui.baseline_grid, "Baseline grid"); + }); + } + divider(ui); + if section(ui, "Guides", true) { + ui.horizontal(|ui| { + ui.checkbox(&mut app.ui.guides, "Guides"); + ui.checkbox(&mut app.ui.frame_edges, "Frame edges"); + }); + } + divider(ui); + if section(ui, "Quick Actions", true) { + ui.horizontal_wrapped(|ui| { + if ui.button("Insert Page").clicked() { + let _ = app.run("layout.pages.insert", json!({"count": 1})); + } + if ui.button("Place…").clicked() { + let _ = app.run("app.placeDialog", json!({})); + } + if ui.button("Export PNG…").clicked() { + let _ = app.run("app.exportPng", json!({})); + } + }); + } +} + +fn transform_section(app: &mut DesignApp, ui: &mut egui::Ui, i: &SelInfo) { + let u = units(app); + egui::Grid::new("xf").num_columns(4).spacing(vec2(6.0, 4.0)).show(ui, |ui| { + caption(ui, "X"); + if let Some(v) = measure(ui, "px", Some(i.page_rect.x0), u, 70.0) { + let _ = app.run("transform.set", json!({"x": v})); + } + caption(ui, "W"); + if let Some(v) = measure(ui, "pw", Some(i.page_rect.width()), u, 70.0) { + let _ = app.run("transform.set", json!({"width": v})); + } + ui.end_row(); + caption(ui, "Y"); + if let Some(v) = measure(ui, "py", Some(i.page_rect.y0), u, 70.0) { + let _ = app.run("transform.set", json!({"y": v})); + } + caption(ui, "H"); + if let Some(v) = measure(ui, "ph", Some(i.page_rect.height()), u, 70.0) { + let _ = app.run("transform.set", json!({"height": v})); + } + ui.end_row(); + }); + ui.horizontal(|ui| { + caption(ui, "Rotate"); + if let Some(v) = number(ui, "rot", Some(0.0), "°", 46.0, 1) { + let _ = app.run("transform.rotate", json!({"angle": v})); + } + if ui.small_button("⇋").on_hover_text("Flip Horizontal").clicked() { + let _ = app.run("transform.flip", json!({"axis": "horizontal"})); + } + if ui.small_button("⇵").on_hover_text("Flip Vertical").clicked() { + let _ = app.run("transform.flip", json!({"axis": "vertical"})); + } + }); +} + +fn appearance_section(app: &mut DesignApp, ui: &mut egui::Ui, i: &SelInfo) { + ui.horizontal(|ui| { + caption(ui, "Fill "); + super::swatch_picker(app, ui, "pfill", Some(i.fill.clone()), |app, n| { + let _ = app.run("object.fill", json!({"swatch": n})); + }); + ui.label(&i.fill); + }); + ui.horizontal(|ui| { + caption(ui, "Stroke"); + super::swatch_picker(app, ui, "pstroke", Some(i.stroke.clone()), |app, n| { + let _ = app.run("object.stroke", json!({"swatch": n})); + }); + if let Some(v) = number(ui, "psw", Some(i.stroke_weight), " pt", 50.0, 3) { + let _ = app.run("object.stroke", json!({"weight": v})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Opacity"); + let mut o = (i.opacity * 100.0) as f32; + if ui.add(egui::Slider::new(&mut o, 0.0..=100.0).suffix("%").integer()).drag_stopped() { + let _ = app.run("object.opacity", json!({"opacity": o / 100.0})); + } + }); + ui.horizontal(|ui| { + let mut on = i.shadow; + if ui.checkbox(&mut on, "Drop shadow").changed() { + let _ = app.run("object.dropShadow", json!({"on": on})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Corners"); + for (label, shape) in [("None", "none"), ("Rounded", "rounded"), ("Bevel", "bevel"), ("Inset", "inset")] { + if ui.small_button(label).clicked() { + let _ = app.run("object.cornerOptions", json!({"shape": shape, "size": 12.0})); + } + } + }); +} + +fn text_frame_section(app: &mut DesignApp, ui: &mut egui::Ui) { + let u = units(app); + let Some(st) = app.session.active() else { return }; + let fid = st.selection.items.first().copied().or_else(|| st.selection.text.and_then(|t| t.frame)); + let Some(opts) = fid.and_then(|f| st.doc.item(f)).and_then(|i| i.text_frame()).map(|t| t.options.clone()) else { return }; + ui.horizontal(|ui| { + caption(ui, "Columns"); + if let Some(v) = number(ui, "tfc", Some(opts.columns as f64), "", 36.0, 0) { + let _ = app.run("object.textFrameOptions", json!({"columns": v.max(1.0) as u64})); + } + caption(ui, "Gutter"); + if let Some(v) = measure(ui, "tfg", Some(opts.gutter), u, 56.0) { + let _ = app.run("object.textFrameOptions", json!({"gutter": v})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Inset"); + if let Some(v) = measure(ui, "tfi", Some(opts.inset[0]), u, 56.0) { + let _ = app.run("object.textFrameOptions", json!({"inset": v})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Align"); + for (label, vj) in [("Top", "top"), ("Center", "center"), ("Bottom", "bottom"), ("Justify", "justify")] { + let on = serde_json::to_value(opts.vertical_justification).ok().and_then(|v| v.as_str().map(|s| s == vj)).unwrap_or(false); + if ui.selectable_label(on, label).clicked() { + let _ = app.run("object.textFrameOptions", json!({"verticalJustification": vj})); + } + } + }); + if ui.button("Text Frame Options…").clicked() { + app.ui.dialog = Some(crate::dialogs::Dialog::new("textFrameOptions", json!({}))); + } +} + +pub fn character_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let Some(a) = text_attrs(app) else { + ui.label("Select text or a text frame."); + return; + }; + let c = a["chars"].clone(); + let fam = c["fontFamily"].as_str().unwrap_or("").to_string(); + let sty = c["fontStyle"].as_str().unwrap_or("").to_string(); + ui.label(egui::RichText::new("Character").strong()); + super::font_family_picker(app, ui, &fam, 220.0); + super::font_style_picker(app, ui, &fam, &sty, 220.0); + egui::Grid::new("chargrid").num_columns(4).spacing(vec2(6.0, 4.0)).show(ui, |ui| { + caption(ui, "Size"); + if let Some(v) = number(ui, "pcs", c["size"].as_f64(), " pt", 60.0, 2) { + let _ = app.run("type.char", json!({"attrs": {"size": v}})); + } + caption(ui, "Leading"); + let auto = c["leading"]["kind"].as_str() != Some("points"); + let lv = if auto { c["size"].as_f64().map(|s| s * a["para"]["autoLeading"].as_f64().unwrap_or(1.2)) } else { c["leading"]["value"].as_f64() }; + if let Some(v) = number(ui, "pcl", lv, if auto { " (auto)" } else { " pt" }, 70.0, 2) { + let _ = app.run("type.char", json!({"attrs": {"leading": {"kind": "points", "value": v}}})); + } + ui.end_row(); + caption(ui, "Tracking"); + if let Some(v) = number(ui, "pct", c["tracking"].as_f64(), "", 60.0, 0) { + let _ = app.run("type.char", json!({"attrs": {"tracking": v}})); + } + caption(ui, "Baseline"); + if let Some(v) = number(ui, "pcb", c["baselineShift"].as_f64(), " pt", 70.0, 2) { + let _ = app.run("type.char", json!({"attrs": {"baselineShift": v}})); + } + ui.end_row(); + }); + ui.horizontal(|ui| { + caption(ui, "Color"); + super::swatch_picker(app, ui, "tfill", c["fill"].as_str().map(str::to_string), |app, n| { + let _ = app.run("type.char", json!({"attrs": {"fill": n}})); + }); + ui.label(c["fill"].as_str().unwrap_or("")); + }); + ui.horizontal(|ui| { + let caps = c["capitalization"].as_str() == Some("allCaps"); + if ui.selectable_label(caps, "TT").on_hover_text("All Caps").clicked() { + let _ = app.run("type.char", json!({"attrs": {"capitalization": if caps { "normal" } else { "allCaps" }}})); + } + let ul = c["underline"].as_bool().unwrap_or(false); + if ui.selectable_label(ul, "U").on_hover_text("Underline").clicked() { + let _ = app.run("type.char", json!({"attrs": {"underline": !ul}})); + } + let st = c["strikethrough"].as_bool().unwrap_or(false); + if ui.selectable_label(st, "S").on_hover_text("Strikethrough").clicked() { + let _ = app.run("type.char", json!({"attrs": {"strikethrough": !st}})); + } + let sup = c["position"].as_str() == Some("superscript"); + if ui.selectable_label(sup, "T¹").on_hover_text("Superscript").clicked() { + let _ = app.run("type.char", json!({"attrs": {"position": if sup { "normal" } else { "superscript" }}})); + } + }); +} + +pub fn paragraph_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let Some(a) = text_attrs(app) else { + ui.label("Select text or a text frame."); + return; + }; + let u = units(app); + let p = a["para"].clone(); + ui.label(egui::RichText::new("Paragraph").strong()); + let cur: Align = serde_json::from_value(p["align"].clone()).unwrap_or_default(); + ui.horizontal(|ui| { + for (al, icon) in [ + (Align::Left, "align-left"), + (Align::Center, "align-center"), + (Align::Right, "align-right"), + (Align::LeftJustified, "align-justify"), + (Align::FullyJustified, "align-justify-all"), + ] { + if icons::button(ui, icon, 24.0, cur == al, al.label()).clicked() { + let _ = app.run("type.para", json!({"attrs": {"align": al}})); + } + } + }); + egui::Grid::new("paragrid").num_columns(4).spacing(vec2(6.0, 4.0)).show(ui, |ui| { + for (row, ((la, ka), (lb, kb))) in [ + (("Left", "leftIndent"), ("Right", "rightIndent")), + (("First", "firstLineIndent"), ("Last", "lastLineIndent")), + (("Before", "spaceBefore"), ("After", "spaceAfter")), + ] + .into_iter() + .enumerate() + { + caption(ui, la); + if let Some(v) = measure(ui, &format!("pp{row}a"), p[ka].as_f64(), u, 64.0) { + let _ = app.run("type.para", json!({"attrs": {ka: v}})); + } + caption(ui, lb); + if let Some(v) = measure(ui, &format!("pp{row}b"), p[kb].as_f64(), u, 64.0) { + let _ = app.run("type.para", json!({"attrs": {kb: v}})); + } + ui.end_row(); + } + }); + ui.horizontal(|ui| { + let mut h = p["hyphenate"].as_bool().unwrap_or(true); + if ui.checkbox(&mut h, "Hyphenate").changed() { + let _ = app.run("type.para", json!({"attrs": {"hyphenate": h}})); + } + let mut grid = p["gridAlign"].as_str() == Some("allLines"); + if ui.checkbox(&mut grid, "Align to baseline grid").changed() { + let _ = app.run("type.para", json!({"attrs": {"gridAlign": if grid { "allLines" } else { "none" }}})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Composer"); + let single = p["composer"].as_str() == Some("singleLine"); + if ui.selectable_label(!single, "Paragraph").clicked() { + let _ = app.run("type.para", json!({"attrs": {"composer": "paragraph"}})); + } + if ui.selectable_label(single, "Single-line").clicked() { + let _ = app.run("type.para", json!({"attrs": {"composer": "singleLine"}})); + } + }); + let ps = a["paragraphStyle"].as_str().unwrap_or("").to_string(); + let ov = a["paraOverrides"].as_u64().unwrap_or(0) + a["charOverrides"].as_u64().unwrap_or(0); + ui.horizontal(|ui| { + caption(ui, "Style"); + super::para_style_picker(app, ui, &ps, ov > 0, 190.0); + }); +} + +pub fn stroke_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let Some(i) = sel_info(app) else { + ui.label("Select an object."); + return; + }; + ui.horizontal(|ui| { + caption(ui, "Weight"); + if let Some(v) = number(ui, "sw", Some(i.stroke_weight), " pt", 60.0, 3) { + let _ = app.run("object.stroke", json!({"weight": v})); + } + }); + ui.horizontal(|ui| { + caption(ui, "Align Stroke"); + for (label, a) in [("Center", "center"), ("Inside", "inside"), ("Outside", "outside")] { + let on = serde_json::to_value(i.stroke_align).ok().and_then(|v| v.as_str().map(|s| s == a)).unwrap_or(false); + if ui.selectable_label(on, label).clicked() { + let _ = app.run("object.stroke", json!({"align": a})); + } + } + }); + ui.horizontal(|ui| { + caption(ui, "Type"); + for (label, ty) in [ + ("Solid", json!({"kind": "solid"})), + ("Dashed", json!({"kind": "dashed", "pattern": [12.0, 4.0]})), + ("Dotted", json!({"kind": "dotted"})), + ] { + if ui.small_button(label).clicked() { + let _ = app.run("object.stroke", json!({"type": ty})); + } + } + }); + ui.horizontal(|ui| { + caption(ui, "Color"); + super::swatch_picker(app, ui, "spick", Some(i.stroke.clone()), |app, n| { + let _ = app.run("object.stroke", json!({"swatch": n})); + }); + }); +} + +pub fn wrap_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let info = sel_info(app); + ui.horizontal(|ui| { + for (icon, mode, tip) in [ + ("wrap-none", "none", "No Text Wrap"), + ("wrap-bbox", "boundingBox", "Wrap Around Bounding Box"), + ("wrap-contour", "contour", "Wrap Around Object Shape"), + ("wrap-jump", "jumpObject", "Jump Object"), + ("wrap-next", "jumpToNextColumn", "Jump to Next Column"), + ] { + let on = info.as_ref().is_some_and(|i| i.wrap == mode); + if icons::button(ui, icon, 26.0, on, tip).clicked() { + let _ = app.run("object.textWrap", json!({"mode": mode})); + } + } + }); + let u = units(app); + ui.horizontal(|ui| { + caption(ui, "Offset"); + if let Some(v) = measure(ui, "wo", Some(0.0), u, 60.0) { + let _ = app.run("object.textWrap", json!({"mode": info.as_ref().map(|i| i.wrap).unwrap_or("boundingBox"), "offset": v})); + } + }); +} + +pub fn align_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + ui.horizontal(|ui| { + for (edge, tip) in [ + ("left", "Align left edges"), + ("hcenter", "Align horizontal centers"), + ("right", "Align right edges"), + ("top", "Align top edges"), + ("vcenter", "Align vertical centers"), + ("bottom", "Align bottom edges"), + ] { + if ui + .small_button(match edge { + "left" => "⇤", + "hcenter" => "↔", + "right" => "⇥", + "top" => "⤒", + "vcenter" => "↕", + _ => "⤓", + }) + .on_hover_text(tip) + .clicked() + { + let _ = app.run("object.align", json!({"edge": edge})); + } + } + }); + ui.horizontal(|ui| { + if ui.small_button("Distribute ↔").clicked() { + let _ = app.run("object.distribute", json!({"axis": "horizontal"})); + } + if ui.small_button("Distribute ↕").clicked() { + let _ = app.run("object.distribute", json!({"axis": "vertical"})); + } + }); +} + +pub fn links_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let Some(st) = app.session.active() else { return }; + let t = Tokens::get(ui.ctx()); + let assets: Vec<(String, Option<(u32, u32)>, bool)> = st.doc.assets.values().map(|a| (a.name.clone(), a.pixels, a.link.is_some())).collect(); + if assets.is_empty() { + ui.label(egui::RichText::new("No placed graphics.").color(t.text_dim)); + } + for (name, px, linked) in assets { + ui.horizontal(|ui| { + ui.label(&name); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + ui.label(egui::RichText::new(if linked { "Linked" } else { "Embedded" }).color(t.text_dim).size(11.0)); + if let Some((w, h)) = px { + ui.label(egui::RichText::new(format!("{w}×{h}")).color(t.text_dim).size(11.0)); + } + }); + }); + } +} + +pub fn info_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let u = units(app); + let t = Tokens::get(ui.ctx()); + match sel_info(app) { + Some(i) => { + let f = |v: f64| designcraft_geom::format_measure(v, u); + ui.label(format!("X: {} Y: {}", f(i.page_rect.x0), f(i.page_rect.y0))); + ui.label(format!("W: {} H: {}", f(i.page_rect.width()), f(i.page_rect.height()))); + ui.label(format!("Fill: {} Stroke: {}", i.fill, i.stroke)); + } + None => { + if let Some(st) = app.session.active() { + ui.label(format!("{} pages · {} stories · {} items", st.doc.page_count(), st.doc.stories.len(), st.doc.all_items().len())); + } + } + } + ui.label(egui::RichText::new(format!("Render {:.1} ms", app.perf.render_ms)).color(t.text_dim)); +} diff --git a/crates/ui-egui/src/panels/styles.rs b/crates/ui-egui/src/panels/styles.rs new file mode 100644 index 00000000..fac997c9 --- /dev/null +++ b/crates/ui-egui/src/panels/styles.rs @@ -0,0 +1,64 @@ +//! Paragraph Styles and Character Styles panels. + +use egui::{Sense, vec2}; +use serde_json::json; + +use crate::theme::Tokens; +use crate::{DesignApp, icons}; + +fn list(app: &mut DesignApp, ui: &mut egui::Ui, para: bool) { + let t = Tokens::get(ui.ctx()); + let Some(st) = app.session.active() else { return }; + let names: Vec = if para { + st.doc.styles.paragraph.iter().map(|s| s.name.clone()).collect() + } else { + st.doc.styles.character.iter().map(|s| s.name.clone()).collect() + }; + let attrs = super::text_attrs(app); + let current = attrs.as_ref().and_then(|a| a[if para { "paragraphStyle" } else { "characterStyle" }].as_str().map(str::to_string)); + let overrides = attrs.as_ref().map(|a| a[if para { "paraOverrides" } else { "charOverrides" }].as_u64().unwrap_or(0)).unwrap_or(0); + ui.label( + egui::RichText::new(match ¤t { + Some(c) => format!("{c}{}", if overrides > 0 { "+" } else { "" }), + None => "No text selected".into(), + }) + .size(11.0) + .color(t.text_dim), + ); + for n in &names { + if para && n == designcraft_doc::NO_PARA_STYLE { + continue; + } + let (row, resp) = ui.allocate_exact_size(vec2(ui.available_width(), 22.0), Sense::click()); + if current.as_deref() == Some(n.as_str()) { + ui.painter().rect_filled(row, 0.0, t.row_selected); + } else if resp.hovered() { + ui.painter().rect_filled(row, 0.0, t.hover); + } + ui.painter().text(row.min + vec2(8.0, 11.0), egui::Align2::LEFT_CENTER, n, egui::FontId::proportional(12.5), t.text); + if resp.clicked() { + let cmd = if para { "style.paragraph.apply" } else { "style.character.apply" }; + let clear = ui.input(|i| i.modifiers.alt); + let _ = app.run(cmd, json!({"name": n, "clearOverrides": clear})); + } + } + ui.add_space(6.0); + ui.horizontal(|ui| { + ui.label(egui::RichText::new("⌥-click clears overrides").size(10.5).color(t.text_disabled)); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + if icons::button(ui, "plus", 20.0, false, "Create New Style from Selection").clicked() { + let cmd = if para { "style.paragraph.create" } else { "style.character.create" }; + let base = if para { "Paragraph Style 1" } else { "Character Style 1" }; + let _ = app.run(cmd, json!({"name": base, "fromSelection": true})); + } + }); + }); +} + +pub fn paragraph(app: &mut DesignApp, ui: &mut egui::Ui) { + list(app, ui, true); +} + +pub fn character(app: &mut DesignApp, ui: &mut egui::Ui) { + list(app, ui, false); +} diff --git a/crates/ui-egui/src/panels/swatches.rs b/crates/ui-egui/src/panels/swatches.rs new file mode 100644 index 00000000..4b5c9e30 --- /dev/null +++ b/crates/ui-egui/src/panels/swatches.rs @@ -0,0 +1,97 @@ +//! Swatches and Color panels. + +use designcraft_color::{ColorType, SwatchValue}; +use egui::{Sense, vec2}; +use serde_json::json; + +use crate::theme::Tokens; +use crate::{DesignApp, icons}; + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let Some(st) = app.session.active() else { return }; + let doc = st.doc.clone(); + let text = st.selection.text.is_some(); + let fill_cur = super::sel_info(app).map(|i| i.fill); + ui.horizontal(|ui| { + ui.label(egui::RichText::new(if text { "Applies to text" } else { "Applies to fill" }).size(11.0).color(t.text_dim)); + }); + for sw in &doc.swatches { + let (row, resp) = ui.allocate_exact_size(vec2(ui.available_width(), 22.0), Sense::click()); + if fill_cur.as_deref() == Some(sw.name.as_str()) { + ui.painter().rect_filled(row, 0.0, t.row_selected); + } else if resp.hovered() { + ui.painter().rect_filled(row, 0.0, t.hover); + } + let (c, g) = crate::widgets::swatch_colors(&doc, &sw.name, 1.0); + let chip = egui::Rect::from_min_size(row.min + vec2(4.0, 3.0), vec2(16.0, 16.0)); + crate::widgets::paint_chip(ui.painter(), chip, c, g); + ui.painter().text(row.min + vec2(28.0, 11.0), egui::Align2::LEFT_CENTER, &sw.name, egui::FontId::proportional(12.5), t.text); + // Type indicators: spot dot / process square, colour mode. + let kind = match &sw.value { + SwatchValue::Color { color, color_type } => { + let m = match color { + designcraft_color::Color::Cmyk { .. } => "CMYK", + designcraft_color::Color::Rgb { .. } => "RGB", + designcraft_color::Color::Gray { .. } => "Gray", + }; + format!("{}{}", if *color_type == ColorType::Spot { "● " } else { "" }, m) + } + SwatchValue::Gradient { .. } => "Gradient".into(), + SwatchValue::Tint { tint, .. } => format!("{:.0}%", tint * 100.0), + _ => String::new(), + }; + if sw.locked { + icons::paint( + ui.painter(), + egui::Rect::from_min_size(egui::pos2(row.max.x - 64.0, row.min.y + 4.0), vec2(13.0, 13.0)), + "lock", + t.text_dim, + ); + } + ui.painter().text(row.right_center() - vec2(6.0, 0.0), egui::Align2::RIGHT_CENTER, kind, egui::FontId::proportional(10.5), t.text_dim); + if resp.clicked() { + let r = if text { app.run("type.char", json!({"attrs": {"fill": sw.name}})) } else { app.run("object.fill", json!({"swatch": sw.name})) }; + let _ = r; + } + if resp.secondary_clicked() { + let _ = app.run("object.stroke", json!({"swatch": sw.name})); + } + } + ui.add_space(6.0); + ui.horizontal(|ui| { + ui.label(egui::RichText::new("Right-click applies to stroke").size(10.5).color(t.text_disabled)); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + if icons::button(ui, "plus", 20.0, false, "New Swatch").clicked() { + let _ = app.run("swatch.create", json!({"color": {"c": 0, "m": 50, "y": 100, "k": 0}})); + } + }); + }); +} + +pub fn color_panel(app: &mut DesignApp, ui: &mut egui::Ui) { + let Some(i) = super::sel_info(app) else { + ui.label("Select an object to edit its fill."); + return; + }; + let Some(doc) = app.session.active().map(|d| d.doc.clone()) else { return }; + let Some(c) = doc.resolve_color(&i.fill, 1.0) else { + ui.label(format!("Fill: {}", i.fill)); + return; + }; + let [mut cc, mut m, mut y, mut k] = c.to_cmyk(); + let mut changed = false; + for (label, v) in [("C", &mut cc), ("M", &mut m), ("Y", &mut y), ("K", &mut k)] { + ui.horizontal(|ui| { + ui.label(label); + let mut p = *v * 100.0; + if ui.add(egui::Slider::new(&mut p, 0.0..=100.0).suffix("%").integer()).drag_stopped() { + *v = p / 100.0; + changed = true; + } + }); + } + if changed && let Ok(r) = app.run("swatch.create", json!({"color": {"c": cc * 100.0, "m": m * 100.0, "y": y * 100.0, "k": k * 100.0}})) { + let _ = app.run("object.fill", json!({"swatch": r["name"]})); + } +} diff --git a/crates/ui-egui/src/theme.rs b/crates/ui-egui/src/theme.rs new file mode 100644 index 00000000..a819b273 --- /dev/null +++ b/crates/ui-egui/src/theme.rs @@ -0,0 +1,243 @@ +//! Design tokens (InDesign's four interface brightness levels), fonts and egui style. + +use std::sync::Arc; + +use egui::{Color32, CornerRadius, FontData, FontDefinitions, FontFamily, FontId, Stroke, TextStyle, Visuals}; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +pub enum Brightness { + #[default] + Dark, + MediumDark, + MediumLight, + Light, +} + +impl Brightness { + pub const ALL: [Brightness; 4] = [Brightness::Dark, Brightness::MediumDark, Brightness::MediumLight, Brightness::Light]; + pub fn label(self) -> &'static str { + match self { + Brightness::Dark => "Dark", + Brightness::MediumDark => "Medium Dark", + Brightness::MediumLight => "Medium Light", + Brightness::Light => "Light", + } + } + pub fn id(self) -> &'static str { + match self { + Brightness::Dark => "dark", + Brightness::MediumDark => "mediumDark", + Brightness::MediumLight => "mediumLight", + Brightness::Light => "light", + } + } + pub fn parse(s: &str) -> Option { + Self::ALL.into_iter().find(|b| b.id().eq_ignore_ascii_case(s) || b.label().eq_ignore_ascii_case(s)) + } +} + +/// Every colour the UI uses. Widgets never hard-code colours. +#[derive(Clone, Copy, Debug)] +pub struct Tokens { + pub dark: bool, + pub app_bar: Color32, + pub panel: Color32, + pub panel_darker: Color32, + pub input: Color32, + pub input_border: Color32, + pub divider: Color32, + pub text: Color32, + pub text_strong: Color32, + pub text_dim: Color32, + pub text_disabled: Color32, + pub icon: Color32, + pub hover: Color32, + pub tool_active: Color32, + pub accent: Color32, + pub accent_strong: Color32, + pub row_selected: Color32, + pub pasteboard: Color32, + pub ruler: Color32, + pub ruler_tick: Color32, + pub tab_inactive: Color32, + pub button: Color32, + pub radius: u8, +} + +fn hex(s: u32) -> Color32 { + Color32::from_rgb((s >> 16) as u8, (s >> 8) as u8, s as u8) +} + +impl Tokens { + pub fn for_brightness(b: Brightness) -> Self { + let dark = Tokens { + dark: true, + app_bar: hex(0x262626), + panel: hex(0x323232), + panel_darker: hex(0x282828), + input: hex(0x1f1f1f), + input_border: hex(0x4a4a4a), + divider: hex(0x1e1e1e), + text: hex(0xd8d8d8), + text_strong: hex(0xf2f2f2), + text_dim: hex(0xa3a3a3), + text_disabled: hex(0x6a6a6a), + icon: hex(0xc8c8c8), + hover: hex(0x424242), + tool_active: hex(0x1b1b1b), + accent: hex(0x378ef0), + accent_strong: hex(0x1473e6), + row_selected: hex(0x2d4f7c), + pasteboard: hex(0x232323), + ruler: hex(0x2e2e2e), + ruler_tick: hex(0x9a9a9a), + tab_inactive: hex(0x262626), + button: hex(0x404040), + radius: 3, + }; + match b { + Brightness::Dark => dark, + Brightness::MediumDark => Tokens { + app_bar: hex(0x404040), + panel: hex(0x535353), + panel_darker: hex(0x454545), + input: hex(0x3d3d3d), + input_border: hex(0x6a6a6a), + divider: hex(0x3a3a3a), + text: hex(0xe6e6e6), + text_dim: hex(0xbcbcbc), + hover: hex(0x626262), + tool_active: hex(0x353535), + row_selected: hex(0x4a6a92), + pasteboard: hex(0x4a4a4a), + ruler: hex(0x4c4c4c), + tab_inactive: hex(0x454545), + button: hex(0x606060), + ..dark + }, + Brightness::MediumLight => Tokens { + dark: false, + app_bar: hex(0xa8a8a8), + panel: hex(0xb8b8b8), + panel_darker: hex(0xaaaaaa), + input: hex(0xd6d6d6), + input_border: hex(0x8c8c8c), + divider: hex(0x9c9c9c), + text: hex(0x1e1e1e), + text_strong: hex(0x000000), + text_dim: hex(0x3c3c3c), + text_disabled: hex(0x7a7a7a), + icon: hex(0x2a2a2a), + hover: hex(0xc8c8c8), + tool_active: hex(0x9a9a9a), + row_selected: hex(0x8eb2e0), + pasteboard: hex(0xa0a0a0), + ruler: hex(0xc0c0c0), + ruler_tick: hex(0x3a3a3a), + tab_inactive: hex(0xa6a6a6), + button: hex(0xcbcbcb), + ..dark + }, + Brightness::Light => Tokens { + dark: false, + app_bar: hex(0xe4e4e4), + panel: hex(0xf0f0f0), + panel_darker: hex(0xe2e2e2), + input: hex(0xffffff), + input_border: hex(0xb4b4b4), + divider: hex(0xd0d0d0), + text: hex(0x1e1e1e), + text_strong: hex(0x000000), + text_dim: hex(0x555555), + text_disabled: hex(0x9a9a9a), + icon: hex(0x2c2c2c), + hover: hex(0xdddddd), + tool_active: hex(0xcfcfcf), + row_selected: hex(0xc4dbf7), + pasteboard: hex(0xd4d4d4), + ruler: hex(0xf2f2f2), + ruler_tick: hex(0x4a4a4a), + tab_inactive: hex(0xdcdcdc), + button: hex(0xe6e6e6), + ..dark + }, + } + } +} + +pub fn install_fonts(ctx: &egui::Context) { + let mut fonts = FontDefinitions::default(); + let add = |fonts: &mut FontDefinitions, name: &str, data: &'static [u8]| { + fonts.font_data.insert(name.into(), Arc::new(FontData::from_static(data))); + }; + add(&mut fonts, "ui", include_bytes!("../../../assets/fonts/SourceSans3-Regular.ttf")); + add(&mut fonts, "ui-semibold", include_bytes!("../../../assets/fonts/SourceSans3-Semibold.ttf")); + add(&mut fonts, "mono", include_bytes!("../../../assets/fonts/JetBrainsMono-Regular.ttf")); + fonts.families.entry(FontFamily::Proportional).or_default().insert(0, "ui".into()); + fonts.families.entry(FontFamily::Monospace).or_default().insert(0, "mono".into()); + fonts.families.insert(FontFamily::Name("semibold".into()), vec!["ui-semibold".into(), "ui".into()]); + ctx.set_fonts(fonts); +} + +pub fn semibold(size: f32) -> FontId { + FontId::new(size, FontFamily::Name("semibold".into())) +} + +pub fn apply(ctx: &egui::Context, t: &Tokens) { + ctx.data_mut(|d| d.insert_temp(egui::Id::NULL, *t)); + let text_styles: std::collections::BTreeMap = [ + (TextStyle::Small, FontId::proportional(10.5)), + (TextStyle::Body, FontId::proportional(12.5)), + (TextStyle::Button, FontId::proportional(12.5)), + (TextStyle::Heading, FontId::new(15.0, FontFamily::Name("semibold".into()))), + (TextStyle::Monospace, FontId::monospace(11.5)), + ] + .into(); + let mut v = if t.dark { Visuals::dark() } else { Visuals::light() }; + let r = CornerRadius::same(t.radius); + v.panel_fill = t.panel; + v.window_fill = t.panel; + v.extreme_bg_color = t.input; + v.faint_bg_color = t.panel_darker; + v.window_stroke = Stroke::new(1.0, t.divider); + v.window_corner_radius = CornerRadius::same(4); + v.menu_corner_radius = CornerRadius::same(4); + v.selection.bg_fill = t.accent_strong; + v.selection.stroke = Stroke::new(1.0, t.text_strong); + v.hyperlink_color = t.accent; + v.override_text_color = Some(t.text); + for (w, fill) in [ + (&mut v.widgets.noninteractive, t.panel), + (&mut v.widgets.inactive, t.button), + (&mut v.widgets.hovered, t.hover), + (&mut v.widgets.active, t.tool_active), + (&mut v.widgets.open, t.hover), + ] { + w.bg_fill = fill; + w.weak_bg_fill = fill; + w.corner_radius = r; + w.fg_stroke = Stroke::new(1.0, t.text); + } + v.widgets.noninteractive.bg_stroke = Stroke::new(1.0, t.divider); + v.widgets.inactive.bg_stroke = Stroke::new(1.0, t.input_border); + v.widgets.hovered.bg_stroke = Stroke::new(1.0, t.input_border); + v.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT; + v.popup_shadow = egui::epaint::Shadow { offset: [0, 4], blur: 12, spread: 0, color: Color32::from_black_alpha(90) }; + ctx.set_visuals(v); + ctx.global_style_mut(|s| { + s.text_styles = text_styles.clone(); + s.spacing.item_spacing = egui::vec2(6.0, 4.0); + s.spacing.button_padding = egui::vec2(6.0, 2.0); + s.spacing.interact_size = egui::vec2(20.0, 20.0); + s.spacing.menu_margin = egui::Margin::same(4); + s.animation_time = 0.06; + }); +} + +impl Tokens { + /// Tokens stored by [`apply`]. + pub fn get(ctx: &egui::Context) -> Tokens { + ctx.data(|d| d.get_temp::(egui::Id::NULL)).unwrap_or_else(|| Tokens::for_brightness(Brightness::Dark)) + } +} diff --git a/crates/ui-egui/src/toolbar.rs b/crates/ui-egui/src/toolbar.rs new file mode 100644 index 00000000..3d08bdd8 --- /dev/null +++ b/crates/ui-egui/src/toolbar.rs @@ -0,0 +1,212 @@ +//! The Tools panel (left): single or double column, tool groups with flyouts, fill/stroke proxy, +//! screen mode buttons. + +use designcraft_tools::TOOL_GROUPS; +use egui::{Color32, Sense, Stroke, StrokeKind, vec2}; +use serde_json::json; + +use crate::theme::Tokens; +use crate::{DesignApp, icons}; + +const BTN: f32 = 26.0; + +pub fn show(app: &mut DesignApp, ui: &mut egui::Ui) { + let t = Tokens::get(ui.ctx()); + let cols = if app.ui.tools_double_column { 2 } else { 1 }; + let width = 10.0 + BTN * cols as f32 + 4.0 * (cols as f32 - 1.0) + 10.0; + egui::Panel::left("tools").exact_size(width).resizable(false).frame(egui::Frame::NONE.fill(t.panel).stroke(Stroke::new(1.0, t.divider))).show( + ui, + |ui| { + ui.spacing_mut().item_spacing.y = 1.0; + ui.add_space(3.0); + // Collapse chevrons. + ui.horizontal(|ui| { + ui.add_space(width / 2.0 - 8.0); + if icons::button(ui, if cols == 1 { "double-chevron-right" } else { "double-chevron-left" }, 16.0, false, "Toggle double column") + .clicked() + { + app.ui.tools_double_column = !app.ui.tools_double_column; + } + }); + ui.add_space(2.0); + let current = app.session.tool_id(); + let mut chosen: Option<&'static str> = None; + let mut row_items = Vec::new(); + for (gi, g) in TOOL_GROUPS.iter().enumerate() { + if g.is_empty() { + row_items.push(None); + continue; + } + row_items.push(Some(gi)); + } + let mut i = 0; + while i < row_items.len() { + match row_items[i] { + None => { + let r = ui.available_rect_before_wrap(); + ui.painter().line_segment( + [egui::pos2(r.min.x + 6.0, r.min.y + 2.0), egui::pos2(r.max.x - 6.0, r.min.y + 2.0)], + Stroke::new(1.0, t.divider), + ); + ui.add_space(5.0); + i += 1; + } + Some(_) => { + ui.horizontal(|ui| { + ui.add_space(10.0); + ui.spacing_mut().item_spacing.x = 4.0; + for _ in 0..cols { + let Some(Some(gi)) = row_items.get(i).copied() else { break }; + let g = TOOL_GROUPS[gi]; + let shown = g.iter().find(|tl| tl.id == current).unwrap_or(&g[0]); + let active = g.iter().any(|tl| tl.id == current); + let tip = match shown.shortcut { + Some(s) => format!("{} ({s})", shown.label), + None => shown.label.to_string(), + }; + let resp = icons::button(ui, shown.icon, BTN, active, &tip); + if g.len() > 1 { + // Flyout triangle. + let r = resp.rect; + let p = r.right_bottom() - vec2(3.0, 3.0); + ui.painter().add(egui::Shape::convex_polygon( + vec![p, p - vec2(4.0, 0.0), p - vec2(0.0, 4.0)], + t.icon, + Stroke::NONE, + )); + } + if resp.clicked() { + chosen = Some(shown.id); + } + if g.len() > 1 + && (resp.secondary_clicked() + || resp.long_touched() + || (resp.is_pointer_button_down_on() + && ui.input(|i| i.pointer.press_start_time().is_some_and(|s| i.time - s > 0.35)))) + { + app.ui.flyout = Some(gi); + } + if app.ui.flyout == Some(gi) { + let pos = resp.rect.right_top() + vec2(4.0, 0.0); + egui::Area::new(egui::Id::new(("flyout", gi))).order(egui::Order::Foreground).fixed_pos(pos).show( + ui.ctx(), + |ui| { + egui::Frame::popup(ui.style()).show(ui, |ui| { + for tl in g { + ui.horizontal(|ui| { + let (r, row) = ui.allocate_exact_size(vec2(210.0, 24.0), Sense::click()); + if row.hovered() { + ui.painter().rect_filled(r, 2.0, t.hover); + } + icons::paint( + ui.painter(), + egui::Rect::from_min_size(r.min + vec2(4.0, 3.0), vec2(18.0, 18.0)), + tl.icon, + t.icon, + ); + if tl.id == current { + ui.painter().circle_filled(r.min + vec2(-2.0, 12.0), 2.0, t.accent); + } + ui.painter().text( + r.min + vec2(28.0, 12.0), + egui::Align2::LEFT_CENTER, + tl.label, + egui::FontId::proportional(12.5), + t.text, + ); + if let Some(sc) = tl.shortcut { + ui.painter().text( + r.right_center() - vec2(6.0, 0.0), + egui::Align2::RIGHT_CENTER, + sc, + egui::FontId::proportional(11.5), + t.text_dim, + ); + } + if row.clicked() { + chosen = Some(tl.id); + } + }); + } + }); + }, + ); + } + i += 1; + if matches!(row_items.get(i), Some(None) | None) { + break; + } + } + }); + } + } + } + if let Some(id) = chosen { + app.select_tool(id); + } + if app.ui.flyout.is_some() && ui.input(|i| i.pointer.any_click()) && chosen.is_none() && !ui.ctx().is_pointer_over_egui() { + app.ui.flyout = None; + } + ui.add_space(8.0); + fill_stroke_proxy(app, ui, width); + }, + ); +} + +/// Fill/stroke proxy squares with default/swap, and apply color / gradient / none. +fn fill_stroke_proxy(app: &mut DesignApp, ui: &mut egui::Ui, width: f32) { + let t = Tokens::get(ui.ctx()); + let info = crate::panels::sel_info(app); + let doc = app.session.active().map(|d| d.doc.clone()); + let (r, _) = ui.allocate_exact_size(vec2(width, 40.0), Sense::hover()); + let base = egui::pos2(r.center().x - 15.0, r.min.y + 4.0); + let fill_r = egui::Rect::from_min_size(base, vec2(20.0, 20.0)); + let stroke_r = egui::Rect::from_min_size(base + vec2(10.0, 10.0), vec2(20.0, 20.0)); + let (fc, fg) = match (&doc, &info) { + (Some(d), Some(i)) => crate::widgets::swatch_colors(d, &i.fill, 1.0), + _ => (None, None), + }; + let (sc, _) = match (&doc, &info) { + (Some(d), Some(i)) => crate::widgets::swatch_colors(d, &i.stroke, 1.0), + _ => (Some(Color32::BLACK), None), + }; + let p = ui.painter(); + // Stroke square (ring) behind, fill square in front. + match sc { + Some(c) => { + p.rect_filled(stroke_r, 0.0, c); + p.rect_filled(stroke_r.shrink(5.0), 0.0, t.panel); + } + None => crate::widgets::paint_chip(p, stroke_r, None, None), + } + p.rect_stroke(stroke_r, 0.0, Stroke::new(1.0, t.input_border), StrokeKind::Inside); + crate::widgets::paint_chip(p, fill_r, fc, fg); + p.rect_stroke(fill_r, 0.0, Stroke::new(1.0, t.input_border), StrokeKind::Inside); + let resp = ui.interact(r, ui.id().with("proxy_swap"), Sense::click()); + if resp.double_clicked() { + let _ = app.run("window.panel", json!({"panel": "swatches"})); + } + ui.horizontal(|ui| { + ui.add_space((width - 3.0 * 18.0 - 8.0) / 2.0); + ui.spacing_mut().item_spacing.x = 4.0; + for (icon, tip, sw) in + [("fill-proxy", "Apply Color (,)", "[Black]"), ("panel-gradient", "Apply Gradient (.)", ""), ("none", "Apply None (/)", "[None]")] + { + if icons::button(ui, icon, 18.0, false, tip).clicked() && !sw.is_empty() { + let _ = app.run("object.fill", json!({"swatch": sw})); + } + } + }); + ui.add_space(6.0); + ui.horizontal(|ui| { + ui.add_space((width - 2.0 * 22.0 - 4.0) / 2.0); + ui.spacing_mut().item_spacing.x = 4.0; + for (m, icon, tip) in + [(crate::ScreenMode::Normal, "screen-normal", "Normal (W)"), (crate::ScreenMode::Preview, "screen-preview", "Preview (W)")] + { + if icons::button(ui, icon, 22.0, app.ui.screen_mode == m, tip).clicked() { + app.ui.screen_mode = m; + } + } + }); +} diff --git a/crates/ui-egui/src/widgets.rs b/crates/ui-egui/src/widgets.rs new file mode 100644 index 00000000..ae694950 --- /dev/null +++ b/crates/ui-egui/src/widgets.rs @@ -0,0 +1,156 @@ +//! Small InDesign-style widgets: measurement fields with units and arithmetic, labelled +//! fields, swatch chips, section headers. + +use designcraft_geom::Unit; +use designcraft_geom::units::{format_measure_prec, parse_measure}; +use egui::{Color32, Response, Sense, Stroke, StrokeKind, Ui, vec2}; + +use crate::theme::Tokens; + +/// A measurement field: shows `value` (points) in `unit`; on Enter/focus loss parses any unit and +/// arithmetic. Returns the new value in points when edited. +pub fn measure(ui: &mut Ui, id: &str, value: Option, unit: Unit, width: f32) -> Option { + let t = Tokens::get(ui.ctx()); + let key = ui.id().with(id); + let mut buf: String = + ui.data(|d| d.get_temp::(key)).unwrap_or_else(|| value.map(|v| format_measure_prec(v, unit, 3)).unwrap_or_default()); + let r = ui.add_sized( + [width, 19.0], + egui::TextEdit::singleline(&mut buf).font(egui::FontId::proportional(12.0)).background_color(t.input).margin(egui::Margin::symmetric(4, 1)), + ); + let mut out = None; + if r.has_focus() { + ui.data_mut(|d| d.insert_temp(key, buf.clone())); + } + if r.lost_focus() { + if let Ok(v) = parse_measure(&buf, unit) + && value.is_none_or(|old| (old - v).abs() > 1e-9) + { + out = Some(v); + } + ui.data_mut(|d| d.remove::(key)); + } else if !r.has_focus() { + ui.data_mut(|d| d.remove::(key)); + } + out +} + +/// A plain number field (percent, degrees, counts). +pub fn number(ui: &mut Ui, id: &str, value: Option, suffix: &str, width: f32, decimals: usize) -> Option { + let t = Tokens::get(ui.ctx()); + let key = ui.id().with(id); + let show = |v: f64| { + let s = format!("{v:.decimals$}"); + let s = if s.contains('.') { s.trim_end_matches('0').trim_end_matches('.').to_string() } else { s }; + format!("{s}{suffix}") + }; + let mut buf: String = ui.data(|d| d.get_temp::(key)).unwrap_or_else(|| value.map(show).unwrap_or_default()); + let r = ui.add_sized( + [width, 19.0], + egui::TextEdit::singleline(&mut buf).font(egui::FontId::proportional(12.0)).background_color(t.input).margin(egui::Margin::symmetric(4, 1)), + ); + let mut out = None; + if r.has_focus() { + ui.data_mut(|d| d.insert_temp(key, buf.clone())); + } + if r.lost_focus() { + let cleaned: String = buf.chars().filter(|c| c.is_ascii_digit() || matches!(c, '.' | '-')).collect(); + if let Ok(v) = cleaned.parse::() + && value.is_none_or(|old| (old - v).abs() > 1e-9) + { + out = Some(v); + } + ui.data_mut(|d| d.remove::(key)); + } else if !r.has_focus() { + ui.data_mut(|d| d.remove::(key)); + } + out +} + +/// A small dim label (field captions like `X:` or `W:`). +pub fn caption(ui: &mut Ui, s: &str) { + let t = Tokens::get(ui.ctx()); + ui.label(egui::RichText::new(s).size(11.5).color(t.text_dim)); +} + +/// Panel section header with a disclosure triangle. Returns open state. +pub fn section(ui: &mut Ui, title: &str, default_open: bool) -> bool { + let t = Tokens::get(ui.ctx()); + let id = ui.id().with(("section", title)); + let mut open = ui.data(|d| d.get_temp::(id)).unwrap_or(default_open); + ui.add_space(4.0); + let (r, resp) = ui.allocate_exact_size(vec2(ui.available_width(), 20.0), Sense::click()); + if resp.clicked() { + open = !open; + ui.data_mut(|d| d.insert_temp(id, open)); + } + let p = ui.painter(); + crate::icons::paint( + p, + egui::Rect::from_min_size(r.min + vec2(0.0, 3.0), vec2(14.0, 14.0)), + if open { "chevron-down" } else { "chevron-right" }, + t.text_dim, + ); + p.text(r.min + vec2(17.0, 10.0), egui::Align2::LEFT_CENTER, title, crate::theme::semibold(12.0), t.text_strong); + open +} + +pub fn divider(ui: &mut Ui) { + let t = Tokens::get(ui.ctx()); + let r = ui.available_rect_before_wrap(); + ui.painter().line_segment([egui::pos2(r.min.x, r.min.y + 2.0), egui::pos2(r.max.x, r.min.y + 2.0)], Stroke::new(1.0, t.divider)); + ui.add_space(5.0); +} + +/// A swatch chip (colour square, [None] slash, gradient ramp). +pub fn swatch_chip(ui: &mut Ui, size: f32, color: Option, gradient: Option<(Color32, Color32)>) -> Response { + let t = Tokens::get(ui.ctx()); + let (r, resp) = ui.allocate_exact_size(vec2(size, size), Sense::click()); + paint_chip(ui.painter(), r, color, gradient); + ui.painter().rect_stroke(r, 0.0, Stroke::new(1.0, t.input_border), StrokeKind::Inside); + resp +} + +pub fn paint_chip(p: &egui::Painter, r: egui::Rect, color: Option, gradient: Option<(Color32, Color32)>) { + match (color, gradient) { + (_, Some((a, b))) => { + let n = 12; + for i in 0..n { + let f = i as f32 / (n - 1) as f32; + let c = Color32::from_rgb( + (a.r() as f32 * (1.0 - f) + b.r() as f32 * f) as u8, + (a.g() as f32 * (1.0 - f) + b.g() as f32 * f) as u8, + (a.b() as f32 * (1.0 - f) + b.b() as f32 * f) as u8, + ); + let x0 = r.min.x + r.width() * i as f32 / n as f32; + p.rect_filled(egui::Rect::from_min_max(egui::pos2(x0, r.min.y), egui::pos2(x0 + r.width() / n as f32 + 0.5, r.max.y)), 0.0, c); + } + } + (Some(c), None) => { + p.rect_filled(r, 0.0, c); + } + (None, None) => { + p.rect_filled(r, 0.0, Color32::WHITE); + p.line_segment([r.left_bottom(), r.right_top()], Stroke::new(1.5, Color32::from_rgb(230, 30, 30))); + } + } +} + +/// Resolve a swatch to a display colour (and gradient end colours). +pub fn swatch_colors(doc: &designcraft_doc::Document, name: &str, tint: f32) -> (Option, Option<(Color32, Color32)>) { + let conv = |c: designcraft_color::Color| { + let [r, g, b, _] = c.to_rgba8(1.0); + Color32::from_rgb(r, g, b) + }; + if let Some(g) = designcraft_color::swatch::resolve_gradient(&doc.swatches, name) + && let (Some(a), Some(b)) = (g.stops.first(), g.stops.last()) + { + return (None, Some((conv(a.color), conv(b.color)))); + } + (doc.resolve_color(name, tint).map(conv), None) +} + +/// An icon toggle button (selected = darker well). +pub fn icon_toggle(ui: &mut Ui, icon: &str, on: bool, tip: &str) -> Response { + crate::icons::button(ui, icon, 22.0, on, tip) +} diff --git a/docs/control-protocol.md b/docs/control-protocol.md new file mode 100644 index 00000000..68f58361 --- /dev/null +++ b/docs/control-protocol.md @@ -0,0 +1,29 @@ +# Control protocol + +Start the app with `--control ` (or `DESIGNCRAFT_CONTROL_PORT`). The server listens on +`127.0.0.1` only and speaks JSON lines: one request object per line, one reply per line. + +```json +{"id": 1, "method": "engine.execute", "params": {"command": "frame.create", "params": {"rect": [36, 36, 300, 200], "content": "text"}}} +{"id": 1, "ok": true, "result": {"id": 10, "story": 11}} +``` + +| Method | Params | What it does | +|---|---|---| +| `engine.execute` / `ui.menu.invoke` | `{command, params}` | Run any engine or UI command (see `engine.commands`) | +| `engine.commands` | — | Every command: id, label, menu path, shortcut, params doc, enabled | +| `document.inspect` | — | Pages, spreads, items, stories (overset), styles, swatches, selection | +| `ui.inspect` | — | Tool, UI state, view (zoom/origin), canvas rect, perf | +| `ui.menu.list` / `ui.tool.list` | — | Menu tree / Tools panel groups | +| `ui.tool.select` | `{tool}` | Select a tool (`selection`, `type`, `rectangleFrame`, …) | +| `ui.pointer` | `{events:[{kind: down\|drag\|up\|move\|doubleclick, x, y, space?: "screen"\|"canvas"}], mods?}` | Drive the active tool through the same code path as the mouse | +| `ui.key` / `ui.text` | `{key, shift?, alt?, cmd?}` / `{text}` | Synthetic keyboard input (typing into a text frame) | +| `ui.move` / `ui.click` / `ui.drag` | screen points | Real egui pointer input — reaches every widget, menu and panel | +| `ui.set` | `{brightness?, panel?, rulers?, guides?, frameEdges?, baselineGrid?, textThreads?, screenMode?, zoom?, page?, fit?}` | UI state | +| `ui.dialog.set` / `ui.dialog.confirm` / `ui.dialog.cancel` | `{field, value}` | Fill and confirm the open dialog | +| `ui.resize`, `ui.focus` | | Window control | +| `ui.screenshot` | `{path?}` | PNG of the whole window | +| `ui.render` | `{path?, page?, scale?, bleed?}` | Render a page headlessly (PNG; base64 if no path) | +| `app.open` / `app.save` / `app.export` / `app.quit` | | Files | + +The MCP server (`designcraft-cli mcp`) wraps the same methods for Claude and other agents. diff --git a/docs/images/page-2.png b/docs/images/page-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a35414e078cad4618e5cd5e10f92fd6a727564 GIT binary patch literal 209249 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

Gb)_a6vE%vBhvMGGio_Rw!;$0+t; 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 literal 0 HcmV?d00001 diff --git a/docs/images/page-3.png b/docs/images/page-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8d3fd9b3268d806321efdb4c2a1b32feec0ed0e5 GIT binary patch literal 319474 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�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

yQ&e+~jG$Mj)Ld?wuI(whgY$YbfsKEEEKrl*SxJ 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Μ;6%Ix6R=xm0; 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%0A(Mm#G9K-{97{e4M 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

hPL8tJWWPHp-jKxAhe@qm3sQE7)Y=KBm+R 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

Zo?l%#1OusB3kze;XQYQ$Bl~1sR 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 KMJt63zyBY@C-Pzd literal 0 HcmV?d00001 diff --git a/docs/images/ui-spread.png b/docs/images/ui-spread.png new file mode 100644 index 0000000000000000000000000000000000000000..123b540183d16aee20a41fb56509f70bdb829647 GIT binary patch literal 555126 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 Z&bKQsnte)2*qVik4 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

s1( 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 HXJ$C)cJ7tahKrW8Kn+0Y_$w2VRPgr0zg%WB`< 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

D^>l??DyLDVeCp&)b-EjTq-Mo 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 uxS!3$NX$$sD;q+=>eF$iI5oy}<8NpSC3}+uY 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

PCpv4hK`~rzwS8{YuxIL2- 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ν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 Pfj