From b3992496991740689660a061986c4465ebea6e7c Mon Sep 17 00:00:00 2001 From: marc2332 Date: Sun, 1 Sep 2024 09:46:03 +0200 Subject: [PATCH] fix: Fix git checkout --- Cargo.lock | 810 +++++++++++++++++++++++++++++---- Cargo.toml | 5 +- public/tailwind.css | 2 +- src/components/guide_card.rs | 8 +- src/components/guide_grid.rs | 10 +- src/components/layout.rs | 8 +- src/components/navigation.rs | 20 +- src/components/project_card.rs | 62 ++- src/components/project_grid.rs | 10 +- src/guides.rs | 2 +- src/main.rs | 8 +- src/our_projects.rs | 2 +- src/routes/guides.rs | 10 +- src/routes/home.rs | 8 +- src/routes/not_found.rs | 8 +- src/routes/our_projects.rs | 10 +- 16 files changed, 793 insertions(+), 190 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62f1810..bad88cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,27 +29,28 @@ dependencies = [ ] [[package]] -name = "anyhow" -version = "1.0.75" +name = "ahash" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] [[package]] -name = "anymap2" -version = "0.13.0" +name = "allocator-api2" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] -name = "async-channel" -version = "1.9.0" +name = "anymap2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] +checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" [[package]] name = "async-channel" @@ -58,7 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", + "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -70,7 +71,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 4.0.0", + "event-listener", "event-listener-strategy", "pin-project-lite", ] @@ -155,7 +156,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.1", + "async-channel", "async-lock", "async-task", "fastrand", @@ -177,6 +178,38 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "cc" version = "1.0.83" @@ -186,12 +219,48 @@ dependencies = [ "libc", ] +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", +] + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + [[package]] name = "concurrent-queue" version = "2.4.0" @@ -211,12 +280,41 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constcat" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -242,6 +340,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "darling" version = "0.20.3" @@ -276,18 +380,47 @@ dependencies = [ "syn", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.3", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dioxus" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9e3b0725e520250bf23213f996d241cca29cea4360a9bf08a44e0033f8e569" +checksum = "b8e7fe217b50d43b27528b0f24c89b411f742a3e7564d1cfbf85253f967954db" dependencies = [ + "dioxus-config-macro", "dioxus-core", "dioxus-core-macro", + "dioxus-fullstack", "dioxus-hooks", "dioxus-hot-reload", "dioxus-html", - "dioxus-rsx", + "dioxus-router", + "dioxus-signals", + "dioxus-web", +] + +[[package]] +name = "dioxus-cli-config" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dffc452ed91af6ef772b0d9a5899573f6785314e97c533733ec55413c01df3" +dependencies = [ + "once_cell", + "serde", + "serde_json", + "tracing", ] [[package]] @@ -298,37 +431,47 @@ dependencies = [ "dioxus", "dioxus-logger", "dioxus-router", - "dioxus-web", "dry-mods", "log", "reqwest", ] +[[package]] +name = "dioxus-config-macro" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb1a1aa34cc04c1f7fcbb7a10791ba773cc02d834fe3ec1fe05647699f3b101f" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "dioxus-core" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f33186615b2e90bceab24a195b3cfad4e0b4d91a33ec44a94845876bfb25c13" +checksum = "3730d2459ab66951cedf10b09eb84141a6eda7f403c28057cbe010495be156b7" dependencies = [ - "bumpalo", "futures-channel", "futures-util", + "generational-box", "longest-increasing-subsequence", "rustc-hash", "serde", "slab", - "smallbox", + "slotmap", "tracing", + "tracing-subscriber", ] [[package]] name = "dioxus-core-macro" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21afaccb28587aed0ba98856335912f5ce7052c0aafa74b213829a3b8bfd2345" +checksum = "0d9c0dfe0e6a46626fa716c4aa1d2ccb273441337909cfeacad5bb6fcfb947d2" dependencies = [ "constcat", - "dioxus-core", + "convert_case", "dioxus-rsx", "prettyplease", "proc-macro2", @@ -342,15 +485,41 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ea539174bb236e0e7dc9c12b19b88eae3cb574dedbd0252a2d43ea7e6de13e2" +[[package]] +name = "dioxus-fullstack" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b80f0ac18166302341164e681322e0385131c08a11c3cc1c51ee8df799ab0d3d" +dependencies = [ + "async-trait", + "base64", + "bytes", + "ciborium", + "dioxus-hot-reload", + "dioxus-lib", + "dioxus-web", + "dioxus_server_macro", + "futures-util", + "once_cell", + "serde", + "serde_json", + "server_fn", + "tracing", + "web-sys", +] + [[package]] name = "dioxus-hooks" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb23ce82df4fb13e9ddaa01d1469f1f32d683dd4636204bd0a0eaf434b65946" +checksum = "fa8f9c661eea82295219d25555d5c0b597e74186b029038ceb5e3700ccbd4380" dependencies = [ "dioxus-core", "dioxus-debug-cell", + "dioxus-signals", "futures-channel", + "futures-util", + "generational-box", "slab", "thiserror", "tracing", @@ -358,9 +527,9 @@ dependencies = [ [[package]] name = "dioxus-hot-reload" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d8c9e89e866a6b84b8ad696f0ff2f6f6563d2235eb99acc6952f19e516cc09" +checksum = "77d01246cb1b93437fb0bbd0dd11cfc66342d86b4311819e76654f2017ce1473" dependencies = [ "dioxus-core", "dioxus-html", @@ -372,37 +541,68 @@ dependencies = [ [[package]] name = "dioxus-html" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "828a42a2d70688a2412a8538c8b5a5eceadf68f682f899dc4455a0169db39dfd" +checksum = "f01a0826f179adad6ea8d6586746e8edde0c602cc86f4eb8e5df7a3b204c4018" dependencies = [ - "async-channel 1.9.0", "async-trait", "dioxus-core", + "dioxus-html-internal-macro", "enumset", "euclid", + "futures-channel", + "generational-box", "keyboard-types", "serde", "serde-value", "serde_json", "serde_repr", + "tracing", "wasm-bindgen", "web-sys", ] +[[package]] +name = "dioxus-html-internal-macro" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b96f35a608d0ab8f4ca6f66ce1828354e4ebd41580b12454f490221a11da93c" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dioxus-interpreter-js" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a3115cf9f550a9af88de615c21a15a72dee44230602087dd7b0c5d01f46c37" +checksum = "351fad098c657d14f3ac2900362d2b86e83c22c4c620a404839e1ab628f3395b" dependencies = [ "js-sys", + "md5", "sledgehammer_bindgen", "sledgehammer_utils", "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", ] +[[package]] +name = "dioxus-lib" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd39b2c41dd1915dcb91d914ea72d8b646f1f8995aaeff82816b862ec586ecd" +dependencies = [ + "dioxus-core", + "dioxus-core-macro", + "dioxus-hooks", + "dioxus-html", + "dioxus-rsx", + "dioxus-signals", +] + [[package]] name = "dioxus-logger" version = "0.4.1" @@ -415,18 +615,16 @@ dependencies = [ [[package]] name = "dioxus-router" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25785196405afb2a6ef1b76400d06af88fdf1f8d0315779136465afcddea39a6" +checksum = "c235c5dbeb528c0c2b0424763da812e7500df69b82eddac54db6f4975e065c5f" dependencies = [ - "anyhow", - "dioxus", + "dioxus-cli-config", + "dioxus-lib", "dioxus-router-macro", - "futures-util", "gloo", - "gloo-utils", + "gloo-utils 0.1.7", "js-sys", - "thiserror", "tracing", "url", "urlencoding", @@ -436,9 +634,9 @@ dependencies = [ [[package]] name = "dioxus-router-macro" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c7bc30b74ce1082cf7d501ce50c5c1f0629b0c35966bca854e3e9a1d8d4f64" +checksum = "2e7cd1c5137ba361f2150cdea6b3bc9ddda7b1af84b22c9ee6b5499bf43e1381" dependencies = [ "proc-macro2", "quote", @@ -448,23 +646,41 @@ dependencies = [ [[package]] name = "dioxus-rsx" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c974133c7c95497a486d587e40449927711430b308134b9cd374b8d35eceafb3" +checksum = "15c400bc8a779107d8f3a67b14375db07dbd2bc31163bf085a8e9097f36f7179" dependencies = [ "dioxus-core", + "internment", + "krates", "proc-macro2", "quote", "syn", + "tracing", +] + +[[package]] +name = "dioxus-signals" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3e224cd3d3713f159f0199fc088c292a0f4adb94996b48120157f6a8f8342d" +dependencies = [ + "dioxus-core", + "futures-channel", + "futures-util", + "generational-box", + "once_cell", + "parking_lot", + "rustc-hash", + "tracing", ] [[package]] name = "dioxus-web" -version = "0.4.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fafaff75f50035078c2da45441ee61472fd0f335fa15b05170165eaf3479f0df" +checksum = "e0855ac81fcc9252a0863930a7a7cbb2504fc1b6efe893489c8d0e23aaeb2cb9" dependencies = [ - "async-channel 1.9.0", "async-trait", "console_error_panic_hook", "dioxus-core", @@ -472,6 +688,7 @@ dependencies = [ "dioxus-interpreter-js", "futures-channel", "futures-util", + "generational-box", "js-sys", "rustc-hash", "serde", @@ -483,6 +700,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "dioxus_server_macro" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5ef2cad17001c1155f019cb69adbacd620644566d78a77d0778807bb106a337" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "server_fn_macro", + "syn", +] + [[package]] name = "dry-mods" version = "0.1.5" @@ -545,12 +775,6 @@ dependencies = [ "serde", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "4.0.0" @@ -568,7 +792,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener", "pin-project-lite", ] @@ -578,6 +802,12 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "fnv" version = "1.0.7" @@ -608,6 +838,21 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.29" @@ -615,6 +860,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -623,6 +869,17 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.29" @@ -668,14 +925,27 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ + "futures-channel", "futures-core", + "futures-io", "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", "slab", ] +[[package]] +name = "generational-box" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557cf2cbacd0504c6bf8c29f52f8071e0de1d9783346713dc6121d7fa1e5d0e0" +dependencies = [ + "parking_lot", +] + [[package]] name = "getrandom" version = "0.2.11" @@ -704,11 +974,11 @@ dependencies = [ "gloo-events", "gloo-file", "gloo-history", - "gloo-net", + "gloo-net 0.3.1", "gloo-render", "gloo-storage", "gloo-timers", - "gloo-utils", + "gloo-utils 0.1.7", "gloo-worker", ] @@ -718,7 +988,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b7ce3c05debe147233596904981848862b068862e9ec3e34be446077190d3f" dependencies = [ - "gloo-utils", + "gloo-utils 0.1.7", "js-sys", "serde", "wasm-bindgen", @@ -764,7 +1034,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85725d90bf0ed47063b3930ef28e863658a7905989e9929a8708aab74a1d5e7f" dependencies = [ "gloo-events", - "gloo-utils", + "gloo-utils 0.1.7", "serde", "serde-wasm-bindgen", "serde_urlencoded", @@ -782,8 +1052,29 @@ dependencies = [ "futures-channel", "futures-core", "futures-sink", - "gloo-utils", - "http", + "gloo-utils 0.1.7", + "http 0.2.11", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.2.0", + "http 1.1.0", "js-sys", "pin-project", "serde", @@ -810,7 +1101,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d6ab60bf5dbfd6f0ed1f7843da31b41010515c745735c970e821945ca91e480" dependencies = [ - "gloo-utils", + "gloo-utils 0.1.7", "js-sys", "serde", "serde_json", @@ -842,6 +1133,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gloo-worker" version = "0.2.1" @@ -851,7 +1155,7 @@ dependencies = [ "anymap2", "bincode", "gloo-console", - "gloo-utils", + "gloo-utils 0.1.7", "js-sys", "serde", "wasm-bindgen", @@ -870,7 +1174,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.11", "indexmap", "slab", "tokio", @@ -878,13 +1182,23 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.7", ] [[package]] @@ -892,6 +1206,10 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] [[package]] name = "http" @@ -904,6 +1222,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -911,7 +1240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.11", "pin-project-lite", ] @@ -938,7 +1267,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.11", "http-body", "httparse", "httpdate", @@ -990,6 +1319,16 @@ dependencies = [ "hashbrown 0.14.3", ] +[[package]] +name = "internment" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e8e537b529b8674e97e9fb82c10ff168a290ac3867a0295f112061ffbca1ef" +dependencies = [ + "hashbrown 0.14.3", + "parking_lot", +] + [[package]] name = "interprocess-docfix" version = "1.2.2" @@ -1030,9 +1369,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -1048,6 +1387,19 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "krates" +version = "0.16.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcb3baf2360eb25ad31f0ada3add63927ada6db457791979b82ac199f835cb9" +dependencies = [ + "cargo-platform", + "cargo_metadata", + "cfg-expr", + "petgraph", + "semver", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1097,6 +1449,12 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + [[package]] name = "memchr" version = "2.6.4" @@ -1147,6 +1505,16 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-traits" version = "0.2.17" @@ -1224,18 +1592,57 @@ dependencies = [ "num-traits", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.0", +] + [[package]] name = "percent-encoding" version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + [[package]] name = "pin-project" version = "1.1.3" @@ -1297,18 +1704,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -1322,6 +1729,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.4.1", +] + [[package]] name = "reqwest" version = "0.11.22" @@ -1334,7 +1750,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.11", "http-body", "hyper", "hyper-tls", @@ -1443,12 +1859,24 @@ name = "semver" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +dependencies = [ + "futures-core", +] [[package]] name = "serde" -version = "1.0.193" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] @@ -1476,9 +1904,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", @@ -1496,6 +1924,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_qs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" +dependencies = [ + "percent-encoding", + "serde", + "thiserror", +] + [[package]] name = "serde_repr" version = "0.1.17" @@ -1519,6 +1958,67 @@ dependencies = [ "serde", ] +[[package]] +name = "server_fn" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "024b400db1aca5bd4188714f7bbbf7a2e1962b9a12a80b2a21e937e509086963" +dependencies = [ + "bytes", + "const_format", + "dashmap", + "futures", + "gloo-net 0.6.0", + "http 1.1.0", + "js-sys", + "once_cell", + "send_wrapper", + "serde", + "serde_json", + "serde_qs", + "server_fn_macro_default", + "thiserror", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "xxhash-rust", +] + +[[package]] +name = "server_fn_macro" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf0e6f71fc924df36e87f27dfbd447f0bedd092d365db3a5396878256d9f00c" +dependencies = [ + "const_format", + "convert_case", + "proc-macro2", + "quote", + "syn", + "xxhash-rust", +] + +[[package]] +name = "server_fn_macro_default" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556e4fd51eb9ee3e7d9fb0febec6cef486dcbc8f7f427591dfcfebee1abe1ad4" +dependencies = [ + "server_fn_macro", + "syn", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "slab" version = "0.4.9" @@ -1530,9 +2030,19 @@ dependencies = [ [[package]] name = "sledgehammer_bindgen" -version = "0.2.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0bc2cf26c12673eee8674b19d56cec04e9b815704c71298eafac61f131f99d7" +checksum = "fcfaf791ff02f48f3518ce825d32cf419c13a43c1d8b1232f74ac89f339c46d2" +dependencies = [ + "sledgehammer_bindgen_macro", + "wasm-bindgen", +] + +[[package]] +name = "sledgehammer_bindgen_macro" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc90d3e8623d29a664cd8dba5078b600dd203444f00b9739f744e4c6e7aeaf2" dependencies = [ "quote", "syn", @@ -1550,10 +2060,20 @@ dependencies = [ ] [[package]] -name = "smallbox" -version = "0.8.2" +name = "slotmap" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92359f97e6b417da4328a970cf04a044db104fbd57f7d72cb7ff665bb8806af" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "serde", + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" @@ -1586,9 +2106,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -1624,7 +2144,7 @@ checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys 0.48.0", ] @@ -1649,6 +2169,16 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -1744,6 +2274,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] [[package]] @@ -1779,6 +2335,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +[[package]] +name = "unicode-xid" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" + [[package]] name = "url" version = "2.5.0" @@ -1796,6 +2358,12 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1825,19 +2393,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", @@ -1850,9 +2419,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -1862,9 +2431,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1872,9 +2441,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", @@ -1885,9 +2454,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] [[package]] name = "web-sys" @@ -2062,3 +2644,29 @@ dependencies = [ "cfg-if", "windows-sys 0.48.0", ] + +[[package]] +name = "xxhash-rust" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml index 0ec7f4f..8f87810 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,9 +6,8 @@ edition = "2021" build = "build.rs" [dependencies] -dioxus-web = { version = "0.4" } -dioxus = { version = "0.4" } -dioxus-router = { version = "0.4.1", features = ["web"] } +dioxus = { version = "0.5", features = ["web"] } +dioxus-router = { version = "0.5", features = ["web"] } log = "0.4.19" dioxus-logger = "0.4.1" console_error_panic_hook = "0.1.7" diff --git a/public/tailwind.css b/public/tailwind.css index 21914be..a4f0c2c 100644 --- a/public/tailwind.css +++ b/public/tailwind.css @@ -1 +1 @@ -/*! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.static{position:static}.sticky{position:sticky}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.w-2\/3{width:66.666667%}.w-full{width:100%}.grow{flex-grow:1}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.rounded-md{border-radius:.375rem}.border-2{border-width:2px}.border-blue-2{--tw-border-opacity:1;border-color:rgb(33 33 37/var(--tw-border-opacity))}.bg-blue-1{--tw-bg-opacity:1;background-color:rgb(45 45 55/var(--tw-bg-opacity))}.bg-blue-2{--tw-bg-opacity:1;background-color:rgb(33 33 37/var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-4{padding-left:1rem;padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-30{transition-delay:30ms}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}body{background-color:#212125}.hover\:border-transparent:hover{border-color:#0000}.hover\:bg-blue-2:hover{--tw-bg-opacity:1;background-color:rgb(33 33 37/var(--tw-bg-opacity))}@media (min-width:768px){.md\:rounded-full{border-radius:9999px}}@media (min-width:1024px){.lg\:w-9\/12{width:75%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_th\]\:pr-4 th{padding-right:1rem} \ No newline at end of file +/*! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.static{position:static}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.flex{display:flex}.table{display:table}.grid{display:grid}.w-2\/3{width:66.666667%}.w-full{width:100%}.grow{flex-grow:1}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.rounded-md{border-radius:.375rem}.border-2{border-width:2px}.border-blue-2{--tw-border-opacity:1;border-color:rgb(33 33 37/var(--tw-border-opacity))}.bg-blue-1{--tw-bg-opacity:1;background-color:rgb(45 45 55/var(--tw-bg-opacity))}.bg-blue-2{--tw-bg-opacity:1;background-color:rgb(33 33 37/var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-4{padding-left:1rem;padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-30{transition-delay:30ms}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}body{background-color:#212125}.hover\:border-transparent:hover{border-color:#0000}.hover\:bg-blue-2:hover{--tw-bg-opacity:1;background-color:rgb(33 33 37/var(--tw-bg-opacity))}@media (min-width:768px){.md\:rounded-full{border-radius:9999px}}@media (min-width:1024px){.lg\:w-9\/12{width:75%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_th\]\:pr-4 th{padding-right:1rem} \ No newline at end of file diff --git a/src/components/guide_card.rs b/src/components/guide_card.rs index a0be5ba..aed50e8 100644 --- a/src/components/guide_card.rs +++ b/src/components/guide_card.rs @@ -4,9 +4,9 @@ use dioxus_router::prelude::*; use crate::models::Guide; #[allow(non_snake_case)] -#[inline_props] -pub fn GuideCard<'a>(cx: Scope, guide: &'a Guide) -> Element { - render! { +#[component] +pub fn GuideCard(guide: &'static Guide) -> Element { + rsx!( div { class: "text-white p-4 bg-blue-1 rounded-md", table { class: "text-left [&_th]:pr-4", tr { @@ -25,5 +25,5 @@ pub fn GuideCard<'a>(cx: Scope, guide: &'a Guide) -> Element { } } } - } + ) } \ No newline at end of file diff --git a/src/components/guide_grid.rs b/src/components/guide_grid.rs index 682da89..2cf259f 100644 --- a/src/components/guide_grid.rs +++ b/src/components/guide_grid.rs @@ -3,13 +3,13 @@ use crate::models::Guide; use crate::components::GuideCard; #[allow(non_snake_case)] -#[inline_props] -pub fn GuideGrid<'a>(cx: Scope, guides: &'a [Guide]) -> Element { - render! { +#[component] +pub fn GuideGrid(guides: &'static [Guide]) -> Element { + rsx!( div { class: "grid grid-cols-1 lg:grid-cols-2 gap-4", for guide in guides { - GuideCard { key: "{guide.name}", guide: guide } + GuideCard { key: "{guide.name}", guide } } } - } + ) } \ No newline at end of file diff --git a/src/components/layout.rs b/src/components/layout.rs index a40ba98..fa5fb33 100644 --- a/src/components/layout.rs +++ b/src/components/layout.rs @@ -4,13 +4,13 @@ use crate::Route; use crate::components::Navigation; #[allow(non_snake_case)] -#[inline_props] -pub fn Layout(cx: Scope) -> Element { - render! { +#[component] +pub fn Layout() -> Element { + rsx!( header { class: "w-full p-8 flex flex-col", span { class: "mx-auto text-white pb-8", "D I O X U S - C O M M U N I T Y" } Navigation {} } main { class: "w-full p-8 pt-0 flex flex-col", Outlet:: {} } - } + ) } \ No newline at end of file diff --git a/src/components/navigation.rs b/src/components/navigation.rs index 4f61d18..e094d50 100644 --- a/src/components/navigation.rs +++ b/src/components/navigation.rs @@ -3,36 +3,34 @@ use dioxus::prelude::*; use dioxus_router::prelude::*; use crate::Route; -#[derive(Props)] -struct NavigationLinkProps<'a> { - pub label: &'a str, +#[derive(Props, Clone, PartialEq)] +struct NavigationLinkProps { + pub label: String, /// Same as the corresponding [`LinkProps`](https://docs.rs/dioxus-router/latest/dioxus_router/components/struct.LinkProps.html) property. #[props(into)] pub to: IntoRoutable, } #[allow(non_snake_case)] -fn NavigationLink<'a>(cx: Scope<'a, NavigationLinkProps<'static>>) -> Element<'a> { - let NavigationLinkProps { to, label } = cx.props; - - render! { +fn NavigationLink(NavigationLinkProps { to, label }: NavigationLinkProps) -> Element { + rsx!( Link { active_class: "bg-blue-2", class: "p-1 px-4 justify-center grow flex text-white hover:border-transparent hover:bg-blue-2 border-2 border-blue-2 rounded-md md:rounded-full transition ease-in-out delay-30", to: to.clone(), "{label}" } - } + ) } #[allow(non_snake_case)] -pub fn Navigation(cx: Scope) -> Element { - render! { +pub fn Navigation() -> Element { + rsx!( nav { class: "mx-auto p-2 flex flex-wrap bg-blue-1 rounded-md md:rounded-full gap-2", NavigationLink { to: Route::Home {}, label: "Home" } NavigationLink { to: "https://github.com/dioxus-community", label: "GitHub" } NavigationLink { to: Route::OurProjects {}, label: "Our projects" } NavigationLink { to: Route::Guides {}, label: "Guides" } } - } + ) } \ No newline at end of file diff --git a/src/components/project_card.rs b/src/components/project_card.rs index 531bf55..b622f5c 100644 --- a/src/components/project_card.rs +++ b/src/components/project_card.rs @@ -12,9 +12,9 @@ const STARGAZERS_PROPERTY_PATTERN: &str = "\"stargazers_count\":"; /// - `insert_stars` - Will insert GitHub stars if the project has a `None` `star_count` property and a `Some(_)` `repository_url` property. /// If the repository URL is not a GitHub repository, this will fail. #[allow(non_snake_case)] -#[inline_props] -pub fn ProjectCard<'a>(cx: Scope, project: &'a Project<'a>, insert_stars: bool) -> Element { - render! { +#[component] +pub fn ProjectCard(project: &'static Project<'static>, insert_stars: bool) -> Element { + rsx!( div { class: "text-white p-4 bg-blue-1 rounded-md", table { class: "text-left [&_th]:pr-4", tr { @@ -26,49 +26,41 @@ pub fn ProjectCard<'a>(cx: Scope, project: &'a Project<'a>, insert_stars: bool) td { "{project.status}" } } if let Some(description) = &project.description { - rsx! { - tr { - th { "📜 Description" } - td { "{description}" } - } + tr { + th { "📜 Description" } + td { "{description}" } } } if let Some(repository_url) = &project.repository_url { - rsx! { - tr { - th { "💾 Repository" } - td { Link { class: "underline", to: "{repository_url}", "{repository_url}" } } - } + tr { + th { "💾 Repository" } + td { Link { class: "underline", to: "{repository_url}", "{repository_url}" } } } } if let Some(website) = &project.website { if !website.is_empty() { - rsx! { - tr { - th { "🌐 Website" } - td { Link { class: "underline", to: "{website}", "{website}" } } - } + tr { + th { "🌐 Website" } + td { Link { class: "underline", to: "{website}", "{website}" } } } - } else { - rsx! { "" } } } - Stars { project: project, insert_stars: *insert_stars } + Stars { project, insert_stars } } } - } + ) } #[allow(non_snake_case)] -#[inline_props] -fn Stars<'a>(cx: Scope, project: &'a Project<'a>, insert_stars: bool) -> Element { +#[component] +fn Stars(project: &'static Project<'static>, insert_stars: bool) -> Element { if let Some(star_count) = project.star_count { - return render! { + return rsx!( tr { th { "⭐ Stars" } td { "{star_count}" } } - }; + ); } let empty_star_row = rsx! { @@ -79,28 +71,32 @@ fn Stars<'a>(cx: Scope, project: &'a Project<'a>, insert_stars: bool) -> Element }; if !insert_stars { - return cx.render(empty_star_row); + return empty_star_row; }; let Some(repository_url) = &project.repository_url else { - return cx.render(empty_star_row); + return empty_star_row; }; - let fetched_stars = use_future(cx, &repository_url.to_string(), fetch_star_count); + let fetched_stars = use_resource(use_reactive(&repository_url.to_owned(), |repository_url| { + fetch_star_count(repository_url.as_ref().to_owned()) + })); + + let fetched_stars = &*fetched_stars.read(); - match fetched_stars.value() { - Some(Ok(star_count)) => render! { + match fetched_stars { + Some(Ok(star_count)) => rsx!( tr { th { "⭐ Stars" } td { "{star_count}" } } - }, + ), Some(Err(e)) => { log::error!("couldn't fetch stars from repository \"{repository_url}\". Error: {e}"); None } - None => cx.render(empty_star_row), + None => empty_star_row } } diff --git a/src/components/project_grid.rs b/src/components/project_grid.rs index 194176d..eaf5cdb 100644 --- a/src/components/project_grid.rs +++ b/src/components/project_grid.rs @@ -3,13 +3,13 @@ use crate::models::Project; use crate::components::ProjectCard; #[allow(non_snake_case)] -#[inline_props] -pub fn ProjectGrid<'a>(cx: Scope, projects: &'a [Project<'a>], insert_stars: bool) -> Element { - render! { +#[component] +pub fn ProjectGrid(projects: &'static [Project<'static>], insert_stars: bool) -> Element { + rsx!( div { class: "grid grid-cols-1 lg:grid-cols-2 gap-4", for project in projects { - ProjectCard { key: "{project.name}", project: project, insert_stars: *insert_stars } + ProjectCard { key: "{project.name}", project, insert_stars } } } - } + ) } \ No newline at end of file diff --git a/src/guides.rs b/src/guides.rs index 4e0fe0a..5b56c14 100644 --- a/src/guides.rs +++ b/src/guides.rs @@ -21,7 +21,7 @@ macro_rules! book_guide { }; } -pub const GUIDES: [Guide; 1] = [book_guide! { +pub const GUIDES: &'static [Guide] = &[book_guide! { title: "Learning Rust by making a website", name: "learning-rust-by-making-a-website", description: "Description", diff --git a/src/main.rs b/src/main.rs index c8cdf90..2ae9a9b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,12 +24,14 @@ fn main() { console_error_panic_hook::set_once(); log::info!("starting app"); - dioxus_web::launch(App); + launch(App); } #[allow(non_snake_case)] -fn App(cx: Scope) -> Element { - render! { Router:: {} } +fn App() -> Element { + rsx! ( + Router:: {} + ) } #[derive(Clone, Routable)] diff --git a/src/our_projects.rs b/src/our_projects.rs index 43e6d22..094d624 100644 --- a/src/our_projects.rs +++ b/src/our_projects.rs @@ -47,7 +47,7 @@ macro_rules! our_project { }; } -pub const OUR_PROJECTS: [Project<'static>; 4] = [ +pub const OUR_PROJECTS: &'static [Project<'static>] = &[ our_project! { name: "Dioxus Redux", description: "State management", diff --git a/src/routes/guides.rs b/src/routes/guides.rs index c2b8bff..ec20c1f 100644 --- a/src/routes/guides.rs +++ b/src/routes/guides.rs @@ -4,14 +4,14 @@ use crate::GUIDES; use crate::components::{GuideGrid}; #[allow(non_snake_case)] -#[inline_props] -pub fn Guides(cx: Scope) -> Element { - render! { +#[component] +pub fn Guides() -> Element { + rsx!( div { class: "text-white", p { class: "w-2/3 text-center mx-auto pb-4", "A list of some guides that will help you in your Dioxus journey!" } - div { class: "mx-auto lg:w-9/12", GuideGrid { guides: &GUIDES } } + div { class: "mx-auto lg:w-9/12", GuideGrid { guides: GUIDES } } } - } + ) } \ No newline at end of file diff --git a/src/routes/home.rs b/src/routes/home.rs index a0b4ff6..9e68986 100644 --- a/src/routes/home.rs +++ b/src/routes/home.rs @@ -1,9 +1,9 @@ use dioxus::prelude::*; #[allow(non_snake_case)] -#[inline_props] -pub fn Home(cx: Scope) -> Element { - render! { +#[component] +pub fn Home() -> Element { + rsx!( div { class: "flex justify-center items-center ", div { img { class: "mx-auto my-8", width: "200", src: "logo.svg" } @@ -13,5 +13,5 @@ pub fn Home(cx: Scope) -> Element { } } } - } + ) } \ No newline at end of file diff --git a/src/routes/not_found.rs b/src/routes/not_found.rs index 3453d27..dd91f3b 100644 --- a/src/routes/not_found.rs +++ b/src/routes/not_found.rs @@ -4,13 +4,13 @@ use crate::Route; #[allow(non_snake_case)] #[allow(unused_variables)] -#[inline_props] -pub fn NotFound(cx: Scope, segments: Vec) -> Element { - render! { +#[component] +pub fn NotFound(segments: Vec) -> Element { + rsx!( p { class: "mx-auto w-2/3 text-white text-center", "😕 We couldn't find that route. How about going back " Link { class: "underline", to: Route::Home {}, "home" } "?" } - } + ) } \ No newline at end of file diff --git a/src/routes/our_projects.rs b/src/routes/our_projects.rs index 1f5463f..2e06c55 100644 --- a/src/routes/our_projects.rs +++ b/src/routes/our_projects.rs @@ -4,9 +4,9 @@ use crate::OUR_PROJECTS; use crate::components::ProjectGrid; #[allow(non_snake_case)] -#[inline_props] -pub fn OurProjects(cx: Scope) -> Element { - render! { +#[component] +pub fn OurProjects() -> Element { + rsx!( div { class: "text-white", p { class: "w-2/3 text-center mx-auto pb-4", "A list of all our projects. If you want to add your project to our organization, let us know at the Dioxus " @@ -20,7 +20,7 @@ pub fn OurProjects(cx: Scope) -> Element { } "." } - div { class: "mx-auto lg:w-9/12", ProjectGrid { projects: &OUR_PROJECTS, insert_stars: true } } + div { class: "mx-auto lg:w-9/12", ProjectGrid { projects: OUR_PROJECTS, insert_stars: true } } } - } + ) } \ No newline at end of file