Cargo.lock | 688 ++++++++++++++- Cargo.toml | 3 + crates/canvas/Cargo.toml | 6 +- crates/canvas/assets/backgrounds/hearts.svg | 16 +- crates/canvas/assets/backgrounds/pushpins-corner.svg | 2 +- crates/canvas/assets/fonts/Arimo-Italic.ttf | Bin 0 -> 543196 bytes crates/canvas/assets/fonts/Arimo-OFL.txt | 93 ++ crates/canvas/assets/fonts/Arimo.ttf | Bin 0 -> 496268 bytes crates/canvas/assets/fonts/Carlito-Bold.ttf | Bin 0 -> 682468 bytes crates/canvas/assets/fonts/Carlito-BoldItalic.ttf | Bin 0 -> 808508 bytes crates/canvas/assets/fonts/Carlito-Italic.ttf | Bin 0 -> 615236 bytes crates/canvas/assets/fonts/Carlito-OFL.txt | 94 ++ crates/canvas/assets/fonts/Carlito-Regular.ttf | Bin 0 -> 628032 bytes crates/canvas/assets/fonts/Cousine-Bold.ttf | Bin 0 -> 298048 bytes crates/canvas/assets/fonts/Cousine-BoldItalic.ttf | Bin 0 -> 308292 bytes crates/canvas/assets/fonts/Cousine-Italic.ttf | Bin 0 -> 306880 bytes crates/canvas/assets/fonts/Cousine-OFL.txt | 93 ++ crates/canvas/assets/fonts/Cousine-Regular.ttf | Bin 0 -> 296856 bytes crates/canvas/assets/fonts/Tinos-Bold.ttf | Bin 0 -> 597880 bytes crates/canvas/assets/fonts/Tinos-BoldItalic.ttf | Bin 0 -> 578976 bytes crates/canvas/assets/fonts/Tinos-Italic.ttf | Bin 0 -> 565016 bytes crates/canvas/assets/fonts/Tinos-OFL.txt | 93 ++ crates/canvas/assets/fonts/Tinos-Regular.ttf | Bin 0 -> 521588 bytes crates/canvas/src/document.rs | 34 +- crates/canvas/src/editor.rs | 178 +++- crates/canvas/src/editor/evidence.rs | 5 +- crates/canvas/src/editor/format.rs | 4 +- crates/canvas/src/editor/ops.rs | 21 + crates/canvas/src/gpu/mod.rs | 63 ++ crates/canvas/src/gpu/page.rs | 138 ++- crates/canvas/src/gpu/page/background.rs | 881 ++++++++++++------- crates/canvas/src/interaction/accessibility.rs | 2 + crates/canvas/src/interaction/mod.rs | 212 +++-- crates/canvas/src/interaction/scroll.rs | 34 +- crates/canvas/src/interaction/tests.rs | 152 +++- crates/canvas/src/layout.rs | 169 +++- crates/canvas/src/lib.rs | 1 + crates/canvas/src/outline.rs | 11 +- crates/canvas/src/template.rs | 644 ++++++++++++++ crates/canvas/tests/ops_differential.rs | 233 +++-- crates/canvas/tests/reopen.rs | 33 +- crates/canvas/tests/structural_roundtrip.rs | 39 +- crates/draw/src/edit.rs | 584 ++++++++++--- crates/draw/src/render.rs | 42 +- crates/draw/src/render/text.rs | 9 +- crates/snowbound/Cargo.toml | 15 +- crates/snowbound/assets/icons/chevron-up.svg | 3 + crates/snowbound/assets/icons/conflict.svg | 3 + crates/snowbound/assets/icons/new-page.svg | 3 - crates/snowbound/assets/icons/notebook.svg | 3 + crates/snowbound/assets/icons/plus.svg | 3 + crates/snowbound/assets/icons/section-group.svg | 3 + crates/snowbound/assets/icons/window-maximize.svg | 3 + crates/snowbound/assets/icons/window-minimize.svg | 3 + crates/snowbound/assets/icons/window-restore.svg | 3 + crates/snowbound/linux/README.md | 46 + crates/snowbound/linux/install.sh | 22 + crates/snowbound/linux/package.sh | 57 ++ crates/snowbound/linux/snowbound.desktop | 10 + crates/snowbound/src/art.rs | 6 +- crates/snowbound/src/conflict_render.rs | 264 ++++++ crates/snowbound/src/library.rs | 179 ++++ crates/snowbound/src/linux.rs | 610 +++++++++++++ crates/snowbound/src/macos.rs | 200 ++++- crates/snowbound/src/main.rs | 1496 +++++++++++++++++++++++--------- crates/snowbound/src/manage.rs | 386 ++++++++ crates/snowbound/src/menus.rs | 234 +++++ crates/snowbound/src/screenshot.rs | 123 +++ crates/snowbound/src/settings.rs | 109 +++ crates/snowbound/src/sidebar.rs | 739 ++++++++++++++++ crates/snowbound/src/templates.rs | 450 ++++++++++ crates/ui/Cargo.toml | 1 + crates/ui/examples/popups.rs | 8 +- crates/ui/src/lib.rs | 100 +-- crates/ui/src/list.rs | 367 +------- crates/ui/src/popup.rs | 121 ++- crates/ui/src/shell.rs | 12 +- crates/ui/src/tests.rs | 431 ++++++--- crates/ui/src/text.rs | 36 +- crates/ui/src/theme.rs | 24 +- crates/ui/src/widgets.rs | 16 +- docs/sample-notebook/Personal/Garden.one | Bin 0 -> 181224 bytes docs/sample-notebook/Personal/Home.one | Bin 0 -> 17104 bytes docs/sample-notebook/Personal/Journal.one | Bin 0 -> 17376 bytes docs/sample-notebook/Personal/Kitchen.one | Bin 0 -> 22488 bytes docs/sample-notebook/Personal/Open Notebook.onetoc2 | Bin 0 -> 5856 bytes docs/sample-notebook/Personal/Reading.one | Bin 0 -> 16792 bytes docs/sample-notebook/Personal/Trips.one | Bin 0 -> 17336 bytes docs/screenshot-dark.png | Bin 0 -> 637462 bytes docs/screenshot-light.png | Bin 0 -> 591094 bytes fuzz/fuzz_targets/canvas_editor.rs | 1 + fuzz/fuzz_targets/commit.rs | 76 +- fuzz/fuzz_targets/edit_text.rs | 38 +- fuzz/fuzz_targets/insert.rs | 63 +- fuzz/fuzz_targets/offline_page.rs | 4 + fuzz/fuzz_targets/paragraph.rs | 93 +- fuzz/fuzz_targets/protected_write.rs | 101 ++- fuzz/fuzz_targets/tree.rs | 2 + fuzz/fuzz_targets/write_scalar.rs | 84 +- readme.md | 8 +- 100 files changed, 9214 insertions(+), 1922 deletions(-)