diff --git a/Cargo.lock b/Cargo.lock index 1acaef031c..755d682a9d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -441,9 +441,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.59" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" dependencies = [ "unicode-ident", ] diff --git a/src/package_manager.rs b/src/package_manager.rs index 14c5c0690d..77700ac177 100644 --- a/src/package_manager.rs +++ b/src/package_manager.rs @@ -79,6 +79,7 @@ impl PackageManager { PackageManager::Cargo => &[ Template::Vanilla, Template::Yew, + Template::Dominator, Template::Leptos, Template::Sycamore, ], @@ -102,6 +103,7 @@ impl PackageManager { PackageManager::Cargo => &[ Template::Vanilla, Template::Yew, + Template::Dominator, Template::Leptos, Template::Sycamore, ], diff --git a/src/template.rs b/src/template.rs index dda38ed9e6..eb94598104 100644 --- a/src/template.rs +++ b/src/template.rs @@ -48,6 +48,7 @@ pub enum Template { Solid, SolidTs, Yew, + Dominator, Leptos, Sycamore, Angular, @@ -75,6 +76,7 @@ impl Display for Template { Template::Solid => write!(f, "solid"), Template::SolidTs => write!(f, "solid-ts"), Template::Yew => write!(f, "yew"), + Template::Dominator => write!(f, "dominator"), Template::Leptos => write!(f, "leptos"), Template::Sycamore => write!(f, "sycamore"), Template::Angular => write!(f, "angular"), @@ -99,6 +101,7 @@ impl FromStr for Template { "solid" => Ok(Template::Solid), "solid-ts" => Ok(Template::SolidTs), "yew" => Ok(Template::Yew), + "dominator" => Ok(Template::Dominator), "leptos" => Ok(Template::Leptos), "sycamore" => Ok(Template::Sycamore), "angular" => Ok(Template::Angular), @@ -125,6 +128,7 @@ impl Template { Template::React => "React - (https://reactjs.org/)", Template::Solid => "Solid - (https://www.solidjs.com/)", Template::Yew => "Yew - (https://yew.rs/)", + Template::Dominator => "Dominator - (https://github.com/Pauan/rust-dominator)", Template::Leptos => "Leptos - (https://github.com/leptos-rs/leptos)", Template::Sycamore => "Sycamore - (https://sycamore-rs.netlify.app/)", Template::Angular => "Angular - (https://angular.io/)", @@ -147,6 +151,7 @@ impl<'a> Template { Template::Solid, Template::SolidTs, Template::Yew, + Template::Dominator, Template::Leptos, Template::Sycamore, Template::Angular, @@ -217,23 +222,23 @@ impl<'a> Template { | Template::Angular | Template::Preact | Template::PreactTs => PackageManager::NODE, - Template::Yew | Template::Leptos | Template::Sycamore => &[PackageManager::Cargo], + Template::Yew | Template::Dominator | Template::Leptos | Template::Sycamore => &[PackageManager::Cargo], } } pub const fn needs_trunk(&self) -> bool { - matches!(self, Template::Sycamore | Template::Yew | Template::Leptos) + matches!(self, Template::Sycamore | Template::Yew | Template::Dominator | Template::Leptos) } pub const fn needs_tauri_cli(&self) -> bool { matches!( self, - Template::Sycamore | Template::Yew | Template::Leptos | Template::Vanilla + Template::Sycamore | Template::Yew | Template::Dominator | Template::Leptos | Template::Vanilla ) } pub const fn needs_wasm32_target(&self) -> bool { - matches!(self, Template::Sycamore | Template::Yew | Template::Leptos) + matches!(self, Template::Sycamore | Template::Yew | Template::Dominator | Template::Leptos) } pub fn render( diff --git a/templates/template-dominator/.taurignore b/templates/template-dominator/.taurignore new file mode 100644 index 0000000000..1ebdc6dc60 --- /dev/null +++ b/templates/template-dominator/.taurignore @@ -0,0 +1,3 @@ +/src +/public +/Cargo.toml \ No newline at end of file diff --git a/templates/template-dominator/Cargo.toml.lte b/templates/template-dominator/Cargo.toml.lte new file mode 100644 index 0000000000..ccea5aece4 --- /dev/null +++ b/templates/template-dominator/Cargo.toml.lte @@ -0,0 +1,63 @@ +[package] +name = "{% package_name %}-ui" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib"] + +# Enable a small amount of optimization in debug mode +[profile.dev] +opt-level = 1 + +# Enable high optimizations for dependencies, but not for our code: +[profile.dev.package."*"] +opt-level = 3 + +[dependencies] +wasm-bindgen = "0.2.84" +js-sys = "0.3.61" +wasm-bindgen-futures= "0.4.34" +gloo-events = "0.1.2" +gloo-timers = { version = "0.2.6", features = ["futures"] } +gloo-net = "0.2.6" +wasm-logger = { version = "0.2.0", optional = true } +serde-wasm-bindgen = "0.5.0" +serde = "1.0.159" +serde_json = "1.0.95" +anyhow = "1.0.70" +cfg-if = "1.0.0" +log = "0.4.17" +console_error_panic_hook = { version = "0.1.7", optional = true } +futures = "0.3.28" +dominator = "0.5.32" +futures-signals = "0.3.32" +once_cell = "1.17.1" +dominator_helpers = "0.7.2" +rand = "0.8.5" +getrandom = { version = "0.2.8", features = ["js"] } +ed25519-dalek = {version = "2.0.0-rc.3", features = ["serde", "rand_core"]} +hex = "0.4.3" + +[dependencies.web-sys] +version = "0.3.61" +features = [ + "console", + "MouseEvent", + "Document", + "Element", + "HtmlAnchorElement", + "HtmlElement", + "HtmlButtonElement", + "HtmlImageElement", + "Node", + "Window", + "Performance", + "HtmlFormElement", +] +[features] +default = [] +dev = ["wasm-logger", "console_error_panic_hook"] + +[workspace] +members = ["src-tauri"] \ No newline at end of file diff --git a/templates/template-dominator/README.md b/templates/template-dominator/README.md new file mode 100644 index 0000000000..acae2c414f --- /dev/null +++ b/templates/template-dominator/README.md @@ -0,0 +1,7 @@ +# Tauri + Dominator + +This template should help get you started developing with Tauri and Dominator. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer). \ No newline at end of file diff --git a/templates/template-dominator/Trunk.toml.lte b/templates/template-dominator/Trunk.toml.lte new file mode 100644 index 0000000000..76b8947224 --- /dev/null +++ b/templates/template-dominator/Trunk.toml.lte @@ -0,0 +1,11 @@ +[build] +target = "./index.html" + +[watch] +ignore = ["./src-tauri"] + +[serve] +address = "{% if mobile %}0.0.0.0{% else %}127.0.0.1{% endif %}" +port = 1420 +open = false{% if mobile %} +ws_protocol = "ws"{% endif %} \ No newline at end of file diff --git a/templates/template-dominator/_cta_manifest_ b/templates/template-dominator/_cta_manifest_ new file mode 100644 index 0000000000..0677494ddc --- /dev/null +++ b/templates/template-dominator/_cta_manifest_ @@ -0,0 +1,10 @@ +# Copyright 2019-2022 Tauri Programme within The Commons Conservancy +# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: MIT +devPath = http://localhost:1420 +distDir = ../dist +withGlobalTauri = true + +[files] +tauri.svg = public/tauri.svg +styles.css = styles.css diff --git a/templates/template-dominator/index.html b/templates/template-dominator/index.html new file mode 100644 index 0000000000..fadb1a6fb6 --- /dev/null +++ b/templates/template-dominator/index.html @@ -0,0 +1,10 @@ + + +
+ +