diff --git a/.taurignore b/.taurignore
index 669df74..74cd7c0 100644
--- a/.taurignore
+++ b/.taurignore
@@ -1,2 +1,3 @@
/*
!/src-tauri
+!/shared
diff --git a/Cargo.lock b/Cargo.lock
index 78eb858..c0ef9a3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -859,6 +859,12 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "convert-base"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e56a404f2112d00ba80a516b60ca3744ef6bd776baa14126eb7d7c11b42cac8a"
+
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -1538,9 +1544,9 @@ dependencies = [
[[package]]
name = "futures"
-version = "0.3.30"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
dependencies = [
"futures-channel",
"futures-core",
@@ -1568,9 +1574,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
[[package]]
name = "futures-executor"
-version = "0.3.30"
+version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
dependencies = [
"futures-core",
"futures-task",
@@ -4124,6 +4130,9 @@ dependencies = [
name = "shared"
version = "0.1.0"
dependencies = [
+ "convert-base",
+ "futures-util",
+ "moonlight",
"wellen",
]
@@ -5038,9 +5047,9 @@ dependencies = [
[[package]]
name = "tray-icon"
-version = "0.14.2"
+version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b27516dfcfa22a9faaf192283a122bfbede38c1e59ef194e3c4db6549b419c0"
+checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60"
dependencies = [
"cocoa",
"core-graphics",
diff --git a/Cargo.toml b/Cargo.toml
index f7fe8b2..5ab2fb1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,11 +16,12 @@ readme = "../README.md"
publish = false
[workspace.dependencies]
-shared = { path = "./shared" }
# wellen = { version = "0.9.9", features = ["serde1"] }
# wellen = { path = "../wellen/wellen", features = ["serde1"] }
wellen = { git = "https://github.com/MartinKavik/wellen", features = ["serde1"], branch = "new_pub_types" }
# moon = { path = "../../crates/moon" }
# zoon = { path = "../../crates/zoon" }
+# moonlight = { path = "../../crates/zoon" }
zoon = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" }
moon = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" }
+moonlight = { git = "https://github.com/MoonZoon/MoonZoon", rev = "fc73b0d90bf39be72e70fdcab4f319ea5b8e6cfc" }
diff --git a/Makefile.toml b/Makefile.toml
index 6f1c212..236fb15 100644
--- a/Makefile.toml
+++ b/Makefile.toml
@@ -38,6 +38,15 @@ run_task = { fork = true, parallel = true, name = [
"watch_tauri_glue",
]}
+[tasks.start_browser_release]
+description = "Run without Tauri in the browser & watch Typescript and Rust in the release mode"
+dependencies = ["store_current_process_id"]
+run_task = { fork = true, parallel = true, name = [
+ "mzoon_start_release_with_cleanup",
+ "watch_pixi_canvas",
+ "watch_tauri_glue",
+]}
+
[tasks.bundle]
description = "Compile in the release mode and create installation packages"
dependencies = ["tauri_build", "show_release_paths"]
@@ -100,6 +109,11 @@ description = "Run `mzoon start`"
extend = "mzoon"
args = ["start"]
+[tasks.mzoon_start_release]
+description = "Run `mzoon start --release`"
+extend = "mzoon"
+args = ["start", "--release"]
+
[tasks.tauri_dev_with_cleanup]
description = "Run forked `tauri dev` with cleanup"
run_task = { fork = true, cleanup_task = "kill_watchers", name = ["tauri_dev"] }
@@ -108,6 +122,10 @@ run_task = { fork = true, cleanup_task = "kill_watchers", name = ["tauri_dev"] }
description = "Run forked `mzoon start` with cleanup"
run_task = { fork = true, cleanup_task = "kill_watchers", name = ["mzoon_start"] }
+[tasks.mzoon_start_release_with_cleanup]
+description = "Run forked `mzoon start` with cleanup"
+run_task = { fork = true, cleanup_task = "kill_watchers", name = ["mzoon_start_release"] }
+
[tasks.kill_watchers]
description = "Kill the cargo-make/makers process and all its children / forked processes"
script_runner = "@duckscript"
diff --git a/MoonZoon.toml b/MoonZoon.toml
index 3e0c013..d53ee41 100644
--- a/MoonZoon.toml
+++ b/MoonZoon.toml
@@ -15,8 +15,10 @@ origins = ["*"]
frontend = [
"public",
"frontend/Cargo.toml",
- "frontend/typescript/bundles",
"frontend/src",
+ "frontend/typescript/bundles",
+ "shared/Cargo.toml",
+ "shared/src",
]
backend = [
"backend/Cargo.toml",
diff --git a/README.md b/README.md
index d702e3e..158b34d 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,23 @@
---
-
+
+ Browser (Firefox)
-
+
+ Desktop, miller columns and tree
+
+
+
+
+ Zoom, pan and basic number formats
+
+
+
+
+ Zoom and all formats
---
@@ -22,7 +34,7 @@
___
-### Start:
+### Start the desktop version:
1. `makers start`
@@ -39,21 +51,34 @@ Troubleshooting:
---
-### Start in the browser:
+### Production build of the desktop version:
+
+1. `makers bundle`
+2. Runnable executable is in `target/release`
+3. Installable bundles specific for the platform are in `target/release/bundle`
+
+---
+
+### Start in a browser:
1. `makers start_browser`
2. Ctrl + Click the server URL mentioned in the terminal log
---
+### Start in a browser in the release mode:
+
+1. `makers start_browser_release`
+2. Ctrl + Click the server URL mentioned in the terminal log
+
+---
+
### Steps before pushing:
1. `makers format`
----
-### Production build:
-1. `makers bundle`
-2. Runnable executable is in `target/release`
-3. Installable bundles specific for the platform are in `target/release/bundle`
+### Test files
+
+See the folder `test_files`.
diff --git a/docs/video_zoom_formatting.gif b/docs/video_zoom_formatting.gif
new file mode 100644
index 0000000..0ade85f
Binary files /dev/null and b/docs/video_zoom_formatting.gif differ
diff --git a/docs/video_zoom_formatting_simple.gif b/docs/video_zoom_formatting_simple.gif
new file mode 100644
index 0000000..6df92e1
Binary files /dev/null and b/docs/video_zoom_formatting_simple.gif differ
diff --git a/frontend/Cargo.toml b/frontend/Cargo.toml
index 9d27365..930650e 100644
--- a/frontend/Cargo.toml
+++ b/frontend/Cargo.toml
@@ -11,8 +11,8 @@ publish.workspace = true
wasm-bindgen-test = "0.3.19"
[dependencies]
-shared.workspace = true
zoon.workspace = true
wellen.workspace = true
+shared = { path = "../shared", features = ["frontend"] }
web-sys = { version = "*", features = ["FileSystemFileHandle"] }
gloo-file = { version = "0.3.0", features = ["futures"] }
diff --git a/frontend/src/controls_panel.rs b/frontend/src/controls_panel.rs
index b92e0e1..69fff23 100644
--- a/frontend/src/controls_panel.rs
+++ b/frontend/src/controls_panel.rs
@@ -1,5 +1,4 @@
-use crate::{platform, HierarchyAndTimeTable, Layout};
-use futures_util::join;
+use crate::{platform, Layout};
use std::cell::Cell;
use std::mem;
use std::ops::Not;
@@ -35,7 +34,7 @@ struct ScopeForUI {
#[derive(Clone)]
pub struct ControlsPanel {
selected_scope_ref: Mutable