diff --git a/Cargo.lock b/Cargo.lock index 3a4b3f6..36bf601 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + [[package]] name = "ab_glyph" version = "0.2.20" @@ -18,6 +24,70 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +[[package]] +name = "accesskit" +version = "0.11.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" + +[[package]] +name = "accesskit_consumer" +version = "0.15.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" +dependencies = [ + "accesskit", +] + +[[package]] +name = "accesskit_macos" +version = "0.7.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", + "once_cell", +] + +[[package]] +name = "accesskit_unix" +version = "0.4.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" +dependencies = [ + "accesskit", + "accesskit_consumer", + "async-channel", + "atspi", + "futures-lite", + "log", + "serde", + "zbus", +] + +[[package]] +name = "accesskit_windows" +version = "0.14.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" +dependencies = [ + "accesskit", + "accesskit_consumer", + "arrayvec 0.7.2", + "once_cell", + "paste", + "windows", +] + +[[package]] +name = "accesskit_winit" +version = "0.13.0" +source = "git+https://github.com/wash2/accesskit.git?tag=v0.11.0#2dee3df0a525d727df9f54ae71cfe8b47d7c2751" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "winit 0.27.2", +] + [[package]] name = "addr2line" version = "0.19.0" @@ -44,6 +114,32 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -53,6 +149,18 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" + +[[package]] +name = "apply" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9" + [[package]] name = "approx" version = "0.5.1" @@ -86,7 +194,17 @@ version = "0.37.2+1.3.238" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28bf19c1f0a470be5fbf7522a308a05df06610252c5bcf5143e1b23f629a9a03" dependencies = [ - "libloading", + "libloading 0.7.4", +] + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener", + "futures-core", ] [[package]] @@ -185,18 +303,78 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.14", +] + [[package]] name = "async-task" version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.14", +] + [[package]] name = "atomic-waker" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" +[[package]] +name = "atomicwrites" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1163d9d7c51de51a2b79d6df5e8888d11e9df17c752ce4a285fb6ca1580734e" +dependencies = [ + "rustix", + "tempfile", + "windows-sys 0.48.0", +] + +[[package]] +name = "atspi" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa" +dependencies = [ + "async-recursion", + "async-trait", + "atspi-macros", + "enumflags2", + "futures-lite", + "serde", + "tracing", + "zbus", + "zbus_names", +] + +[[package]] +name = "atspi-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -218,6 +396,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.0" @@ -251,12 +435,46 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" + [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-sys" +version = "0.1.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + [[package]] name = "blocking" version = "1.3.1" @@ -335,6 +553,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "clipboard-win" version = "4.5.0" @@ -373,7 +597,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921" dependencies = [ "thiserror", - "x11rb", + "x11rb 0.9.0", ] [[package]] @@ -391,7 +615,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -407,7 +631,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", @@ -475,7 +699,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types 0.3.2", @@ -488,7 +712,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "foreign-types 0.3.2", "libc", @@ -506,15 +730,73 @@ dependencies = [ "libc", ] +[[package]] +name = "cosmic-config" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "atomicwrites", + "cosmic-config-derive", + "dirs 5.0.1", + "iced_futures 0.6.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "notify", + "ron", + "serde", +] + +[[package]] +name = "cosmic-config-derive" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "cosmic-text" +version = "0.8.0" +source = "git+https://github.com/hecrj/cosmic-text.git?rev=b85d6a4f2376f8a8a7dadc0f8bcb89d4db10a1c9#b85d6a4f2376f8a8a7dadc0f8bcb89d4db10a1c9" +dependencies = [ + "fontdb", + "libm", + "log", + "ouroboros 0.15.6", + "rangemap", + "rustybuzz", + "swash", + "sys-locale", + "unicode-bidi", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", +] + +[[package]] +name = "cosmic-theme" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "anyhow", + "cosmic-config", + "csscolorparser", + "directories", + "lazy_static", + "palette", + "ron", + "serde", +] + [[package]] name = "cosmic-time" version = "0.2.0" dependencies = [ - "iced", - "iced_core", - "iced_futures", + "iced 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_futures 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", - "iced_style", + "iced_style 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libcosmic", ] [[package]] @@ -522,10 +804,19 @@ name = "counter" version = "0.1.0" dependencies = [ "cosmic-time", - "iced", + "iced 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", ] +[[package]] +name = "cpufeatures" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.3.2" @@ -607,31 +898,81 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csscolorparser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" +dependencies = [ + "phf", + "serde", +] + [[package]] name = "cty" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" +[[package]] +name = "cursor-icon" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740bb192a8e2d1350119916954f4409ee7f62f149b536911eeb78ba5a20526bf" + [[package]] name = "d3d12" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" dependencies = [ - "bitflags", - "libloading", + "bitflags 1.3.2", + "libloading 0.7.4", "winapi", ] +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] + [[package]] name = "darling" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.9.3", + "syn 1.0.109", ] [[package]] @@ -644,7 +985,18 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core 0.10.2", + "quote", "syn 1.0.109", ] @@ -654,51 +1006,146 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core", + "darling_core 0.13.4", "quote", "syn 1.0.109", ] [[package]] -name = "dispatch" +name = "data-url" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" [[package]] -name = "dlib" -version = "0.5.0" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "libloading", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "downcast-rs" -version = "1.2.0" +name = "derive_setters" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "f1cf41b4580a37cca5ef2ada2cc43cf5d6be3983f4522e83010d67ab6925e84b" +dependencies = [ + "darling 0.10.2", + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] -name = "dwrote" -version = "0.11.0" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "lazy_static", - "libc", - "serde", - "serde_derive", - "winapi", - "wio", + "block-buffer", + "crypto-common", ] [[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +name = "directories" +version = "4.0.1" +source = "git+https://github.com/edfloreshz/directories-rs#6a6d83d853a35ee3273034215c4defaf61286fe5" +dependencies = [ + "anyhow", + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" +dependencies = [ + "libloading 0.7.4", +] + +[[package]] +name = "dlv-list" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dwrote" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" +dependencies = [ + "lazy_static", + "libc", + "serde", + "serde_derive", + "winapi", + "wio", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "encase" @@ -741,6 +1188,38 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum-repr" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad30c9c0fa1aaf1ae5010dab11f1117b15d35faf62cda4bbbc53b9987950f18" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enumflags2" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.14", +] + [[package]] name = "errno" version = "0.3.1" @@ -772,6 +1251,16 @@ dependencies = [ "str-buf", ] +[[package]] +name = "etagere" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6301151a318f367f392c31395beb1cfba5ccd9abc44d1db0db3a4b27b9601c89" +dependencies = [ + "euclid", + "svg_fmt", +] + [[package]] name = "euclid" version = "0.22.9" @@ -831,6 +1320,18 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "filetime" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.16", + "windows-sys 0.48.0", +] + [[package]] name = "find-crate" version = "0.6.3" @@ -850,6 +1351,15 @@ dependencies = [ "miniz_oxide 0.6.2", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "flume" version = "0.10.14" @@ -869,6 +1379,28 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "fontconfig-parser" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ab2e12762761366dcb876ab8b6e0cfa4797ddcd890575919f008b5ba655672a" +dependencies = [ + "roxmltree", +] + +[[package]] +name = "fontdb" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237ff9f0813bbfc9de836016472e0c9ae7802f174a51594607e5f4ff334cb2f5" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2", + "slotmap", + "ttf-parser", +] + [[package]] name = "foreign-types" version = "0.3.2" @@ -920,13 +1452,36 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fraction" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3027ae1df8d41b4bed2241c8fdad4acc1e7af60c8e17743534b545e77182d678" +dependencies = [ + "lazy_static", + "num", +] + +[[package]] +name = "freedesktop-icons" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e61ac115df4632b592d36b71fda3c259f4c8061c70b7fa429bac145890e880" +dependencies = [ + "dirs 4.0.0", + "once_cell", + "rust-ini", + "thiserror", + "xdg", +] + [[package]] name = "freetype-rs" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "freetype-sys", "libc", ] @@ -942,6 +1497,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "futures" version = "0.3.28" @@ -1056,6 +1620,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "gethostname" version = "0.2.3" @@ -1188,13 +1762,24 @@ dependencies = [ "xi-unicode", ] +[[package]] +name = "glyphon" +version = "0.2.0" +source = "git+https://github.com/hecrj/glyphon.git?rev=f145067d292082abdd1f2b2481812d4a52c394ec#f145067d292082abdd1f2b2481812d4a52c394ec" +dependencies = [ + "cosmic-text", + "etagere", + "lru", + "wgpu 0.16.1", +] + [[package]] name = "gpu-alloc" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gpu-alloc-types", ] @@ -1204,7 +1789,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1226,9 +1811,9 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -1237,7 +1822,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -1284,7 +1869,16 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", ] [[package]] @@ -1293,12 +1887,27 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90601c6189668c7345fc53842cb3f3a3d872203d523be1b3cb44a36a3e62fb85" dependencies = [ - "bitflags", + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror", + "widestring 0.5.1", + "winapi", +] + +[[package]] +name = "hassle-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", "com-rs", "libc", - "libloading", + "libloading 0.7.4", "thiserror", - "widestring", + "widestring 1.0.2", "winapi", ] @@ -1317,12 +1926,27 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "hexf-parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "http" version = "0.2.9" @@ -1400,26 +2024,67 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbddf356d01e9d41cd394a9d04d62bfd89650a30f12fda5839cabb8c4591c88" dependencies = [ - "iced_core", - "iced_futures", + "iced_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_futures 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_glow", - "iced_graphics", + "iced_graphics 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", - "iced_wgpu", - "iced_winit", + "iced_wgpu 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_winit 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "image", + "thiserror", +] + +[[package]] +name = "iced" +version = "0.9.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "iced_accessibility", + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_futures 0.6.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_renderer", + "iced_sctk", + "iced_widget", + "iced_winit 0.9.1 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", "image", "thiserror", ] +[[package]] +name = "iced_accessibility" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "accesskit", + "accesskit_unix", + "accesskit_winit", +] + [[package]] name = "iced_core" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11e1942e28dedee756cc27e67e7a838cdc1e59fb6bf9627ec9f709ab3b135782" dependencies = [ - "bitflags", + "bitflags 1.3.2", + "instant", + "palette", +] + +[[package]] +name = "iced_core" +version = "0.9.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "bitflags 1.3.2", + "iced_accessibility", "instant", + "log", "palette", + "smithay-client-toolkit 0.17.0", + "thiserror", + "twox-hash", ] [[package]] @@ -1436,6 +2101,19 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "iced_futures" +version = "0.6.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "futures", + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "log", + "tokio", + "wasm-bindgen-futures", + "wasm-timer", +] + [[package]] name = "iced_glow" version = "0.8.0" @@ -1447,7 +2125,7 @@ dependencies = [ "glow 0.11.2", "glow_glyph", "glyph_brush", - "iced_graphics", + "iced_graphics 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", "log", ] @@ -1458,16 +2136,33 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "338a6aff7db906537074ad0fe8b720cfdb9512cdfea43c628c76bd1cf50fdcc0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytemuck", "glam", "iced_native", - "iced_style", + "iced_style 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "image", + "kamadak-exif", + "log", + "raw-window-handle 0.5.2", + "thiserror", +] + +[[package]] +name = "iced_graphics" +version = "0.8.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "glam", + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", "image", "kamadak-exif", "log", "raw-window-handle 0.5.2", "thiserror", + "tiny-skia 0.9.1", ] [[package]] @@ -1476,9 +2171,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b3dd42731b43f1ee0a028af35abefbb756956d093552d0f92f678628e6384fe" dependencies = [ - "iced_core", - "iced_futures", - "iced_style", + "iced_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_futures 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_style 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits", "thiserror", "twox-hash", @@ -1486,52 +2181,181 @@ dependencies = [ ] [[package]] -name = "iced_style" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e37333dc2991201140302cd0d4cea051bd37ca3671d5008ec85df86d232ff30" +name = "iced_renderer" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" dependencies = [ - "iced_core", - "once_cell", - "palette", + "iced_graphics 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_tiny_skia", + "iced_wgpu 0.10.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "raw-window-handle 0.5.2", + "thiserror", ] [[package]] -name = "iced_wgpu" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478803c56061f567ce5ddf223b20d11d3c118cc46bb0d0552370dc65cdc4cb9c" +name = "iced_runtime" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" dependencies = [ - "bitflags", + "iced_accessibility", + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_futures 0.6.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "smithay-client-toolkit 0.17.0", + "thiserror", +] + +[[package]] +name = "iced_sctk" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "enum-repr", + "float-cmp", + "futures", + "iced_accessibility", + "iced_futures 0.6.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_graphics 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_runtime", + "iced_style 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "itertools", + "log", + "raw-window-handle 0.5.2", + "smithay-client-toolkit 0.17.0", + "smithay-clipboard", + "thiserror", + "wayland-backend", +] + +[[package]] +name = "iced_style" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e37333dc2991201140302cd0d4cea051bd37ca3671d5008ec85df86d232ff30" +dependencies = [ + "iced_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell", + "palette", +] + +[[package]] +name = "iced_style" +version = "0.8.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "once_cell", + "palette", +] + +[[package]] +name = "iced_tiny_skia" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "bytemuck", + "cosmic-text", + "iced_graphics 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "kurbo", + "log", + "raw-window-handle 0.5.2", + "resvg", + "rustc-hash", + "softbuffer", + "tiny-skia 0.9.1", + "twox-hash", +] + +[[package]] +name = "iced_wgpu" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478803c56061f567ce5ddf223b20d11d3c118cc46bb0d0552370dc65cdc4cb9c" +dependencies = [ + "bitflags 1.3.2", "bytemuck", "encase", "futures", "glam", "glyph_brush", "guillotiere", - "iced_graphics", + "iced_graphics 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", "log", "raw-window-handle 0.5.2", - "wgpu", + "wgpu 0.15.1", "wgpu_glyph", ] +[[package]] +name = "iced_wgpu" +version = "0.10.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "encase", + "futures", + "glam", + "glyphon", + "guillotiere", + "iced_graphics 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "log", + "once_cell", + "raw-window-handle 0.5.2", + "resvg", + "rustc-hash", + "twox-hash", + "wgpu 0.16.1", +] + +[[package]] +name = "iced_widget" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "iced_accessibility", + "iced_renderer", + "iced_runtime", + "iced_style 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "num-traits", + "ouroboros 0.13.0", + "smithay-client-toolkit 0.17.0", + "thiserror", + "unicode-segmentation", +] + [[package]] name = "iced_winit" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a59ea3a85149a6a1f9e92b6c740ce90f04e5c7d848cfd05742336863fceb955" dependencies = [ - "iced_futures", - "iced_graphics", + "iced_futures 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "iced_graphics 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", "log", "thiserror", "web-sys", "winapi", "window_clipboard", - "winit", + "winit 0.27.5", +] + +[[package]] +name = "iced_winit" +version = "0.9.1" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "iced_accessibility", + "iced_graphics 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_runtime", + "iced_style 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "log", + "thiserror", + "web-sys", + "winapi", + "window_clipboard", + "winit 0.27.2", ] [[package]] @@ -1569,6 +2393,12 @@ dependencies = [ "tiff", ] +[[package]] +name = "imagesize" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b72ad49b554c1728b1e83254a1b1565aea4161e28dabbfa171fc15fe62299caf" + [[package]] name = "indexmap" version = "1.9.3" @@ -1576,7 +2406,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", ] [[package]] @@ -1608,6 +2458,15 @@ version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.6" @@ -1654,10 +2513,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" dependencies = [ "libc", - "libloading", + "libloading 0.7.4", "pkg-config", ] +[[package]] +name = "kqueue" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "kurbo" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" +dependencies = [ + "arrayvec 0.7.2", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1676,6 +2564,35 @@ version = "0.2.141" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" +[[package]] +name = "libcosmic" +version = "0.1.0" +source = "git+https://github.com/pop-os/libcosmic/?rev=5765053#5765053ad70d7b0fded56fe9e9c73649509a03ae" +dependencies = [ + "apply", + "cosmic-config", + "cosmic-theme", + "derive_setters", + "fraction", + "freedesktop-icons", + "iced 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_accessibility", + "iced_core 0.9.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_futures 0.6.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_renderer", + "iced_runtime", + "iced_sctk", + "iced_style 0.8.0 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "iced_tiny_skia", + "iced_widget", + "iced_winit 0.9.1 (git+https://github.com/pop-os/libcosmic/?rev=5765053)", + "lazy_static", + "palette", + "slotmap", + "smithay-client-toolkit 0.17.0", + "tokio", +] + [[package]] name = "libloading" version = "0.7.4" @@ -1686,6 +2603,22 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -1717,6 +2650,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "lru" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -1750,6 +2692,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -1765,7 +2716,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-graphics-types", "foreign-types 0.3.2", @@ -1829,7 +2780,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5" dependencies = [ "bit-set", - "bitflags", + "bitflags 1.3.2", + "codespan-reporting", + "hexf-parse", + "indexmap", + "log", + "num-traits", + "rustc-hash", + "spirv", + "termcolor", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "naga" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80cd00bd6180a8790f1c020ed258a46b8d73dd5bd6af104a238c9d71f806938e" +dependencies = [ + "bit-set", + "bitflags 1.3.2", "codespan-reporting", "hexf-parse", "indexmap", @@ -1857,7 +2828,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum", @@ -1893,7 +2864,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" dependencies = [ - "darling", + "darling 0.13.4", "proc-macro-crate", "proc-macro2", "quote", @@ -1915,7 +2886,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cc", "cfg-if", "libc", @@ -1928,7 +2899,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -1941,12 +2912,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", + "pin-utils", + "static_assertions", +] + [[package]] name = "nom" version = "7.1.3" @@ -1957,6 +2942,58 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "notify" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d9ba6c734de18ca27c8cef5cd7058aa4ac9f63596131e4c7e41e579319032a2" +dependencies = [ + "bitflags 1.3.2", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "mio", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1967,6 +3004,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.1" @@ -1974,6 +3022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", + "num-bigint", "num-integer", "num-traits", ] @@ -2039,6 +3088,32 @@ dependencies = [ "objc_id", ] +[[package]] +name = "objc-sys" +version = "0.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3.patch-leaks.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2072,6 +3147,12 @@ version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-float" version = "3.6.0" @@ -2082,24 +3163,92 @@ dependencies = [ ] [[package]] -name = "owned_ttf_parser" -version = "0.18.1" +name = "ordered-multimap" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228" +checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" dependencies = [ - "ttf-parser", + "dlv-list", + "hashbrown 0.12.3", ] [[package]] -name = "palette" -version = "0.6.1" +name = "ordered-stream" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9cd68f7112581033f157e56c77ac4a5538ec5836a2e39284e65bd7d7275e49" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" dependencies = [ - "approx", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "ouroboros" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f357ef82d1b4db66fbed0b8d542cbd3c22d0bf5b393b3c257b9ba4568e70c9c3" +dependencies = [ + "aliasable", + "ouroboros_macro 0.13.0", + "stable_deref_trait", +] + +[[package]] +name = "ouroboros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" +dependencies = [ + "aliasable", + "ouroboros_macro 0.15.6", +] + +[[package]] +name = "ouroboros_macro" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44a0b52c2cbaef7dffa5fec1a43274afe8bd2a644fa9fc50a9ef4ff0269b1257" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "palette" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9cd68f7112581033f157e56c77ac4a5538ec5836a2e39284e65bd7d7275e49" +dependencies = [ + "approx", "num-traits", "palette_derive", "phf", + "serde", ] [[package]] @@ -2150,7 +3299,7 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] @@ -2163,11 +3312,17 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.45.0", ] +[[package]] +name = "paste" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" + [[package]] name = "percent-encoding" version = "2.2.0" @@ -2216,6 +3371,12 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + [[package]] name = "pin-project" version = "1.0.12" @@ -2260,7 +3421,7 @@ version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", @@ -2272,7 +3433,7 @@ name = "pokedex" version = "0.1.0" dependencies = [ "cosmic-time", - "iced", + "iced 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", "rand 0.7.3", "reqwest", @@ -2287,7 +3448,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4be1c66a6add46bff50935c313dae30a5030cf8385c5206e8a95e9e9def974aa" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", @@ -2301,7 +3462,7 @@ name = "pong" version = "0.1.0" dependencies = [ "cosmic-time", - "iced", + "iced 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "iced_native", "once_cell", "rand 0.8.5", @@ -2323,6 +3484,30 @@ dependencies = [ "toml_edit", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" version = "1.0.56" @@ -2347,6 +3532,15 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "quick-xml" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.26" @@ -2433,6 +3627,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" +[[package]] +name = "rangemap" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9283c6b06096b47afc7109834fdedab891175bb5241ee5d4f7d2546549f263" + [[package]] name = "raw-window-handle" version = "0.3.4" @@ -2480,28 +3680,77 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rctree" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" + [[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.9", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", ] +[[package]] +name = "regex-syntax" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" + [[package]] name = "renderdoc-sys" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" +[[package]] +name = "renderdoc-sys" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" + [[package]] name = "reqwest" version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" dependencies = [ - "base64", + "base64 0.21.0", "bytes", "encoding_rs", "futures-core", @@ -2534,6 +3783,33 @@ dependencies = [ "winreg", ] +[[package]] +name = "resvg" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142e83d8ae8c8c639f304698a5567b229ba65caba867bf4387bbc0ae158827cf" +dependencies = [ + "gif", + "jpeg-decoder", + "log", + "pico-args", + "png", + "rgb", + "svgfilters", + "svgtypes", + "tiny-skia 0.9.1", + "usvg", +] + +[[package]] +name = "rgb" +version = "0.8.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" +dependencies = [ + "bytemuck", +] + [[package]] name = "ring" version = "0.16.20" @@ -2549,6 +3825,49 @@ dependencies = [ "winapi", ] +[[package]] +name = "ron" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +dependencies = [ + "base64 0.13.1", + "bitflags 1.3.2", + "serde", +] + +[[package]] +name = "rosvgtree" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad747e7384940e7bf33b15ba433b7bad9f44c0c6d5287a67c2cb22cd1743d497" +dependencies = [ + "log", + "roxmltree", + "simplecss", + "siphasher", + "svgtypes", +] + +[[package]] +name = "roxmltree" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "rust-ini" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" +dependencies = [ + "cfg-if", + "ordered-multimap", +] + [[package]] name = "rustc-demangle" version = "0.1.22" @@ -2567,7 +3886,7 @@ version = "0.37.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -2593,7 +3912,24 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.0", +] + +[[package]] +name = "rustybuzz" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "libm", + "smallvec", + "ttf-parser", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-general-category", + "unicode-script", ] [[package]] @@ -2611,6 +3947,15 @@ dependencies = [ "bytemuck", ] +[[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" @@ -2641,8 +3986,8 @@ checksum = "61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339" dependencies = [ "crossfont", "log", - "smithay-client-toolkit", - "tiny-skia", + "smithay-client-toolkit 0.16.0", + "tiny-skia 0.7.0", ] [[package]] @@ -2676,6 +4021,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.14", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2709,6 +4065,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "signal-hook" version = "0.3.15" @@ -2734,6 +4101,15 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" +[[package]] +name = "simplecss" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" +dependencies = [ + "log", +] + [[package]] name = "siphasher" version = "0.3.10" @@ -2770,7 +4146,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" dependencies = [ - "bitflags", + "bitflags 1.3.2", "calloop", "dlib", "lazy_static", @@ -2778,9 +4154,33 @@ dependencies = [ "memmap2", "nix 0.24.3", "pkg-config", - "wayland-client", - "wayland-cursor", - "wayland-protocols", + "wayland-client 0.29.5", + "wayland-cursor 0.29.5", + "wayland-protocols 0.29.5", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.17.0" +source = "git+https://github.com/pop-os/client-toolkit?tag=themed-pointer#fd15dd954bc5f0c78d079aeda7b11194a682bbff" +dependencies = [ + "bitflags 1.3.2", + "calloop", + "cursor-icon", + "dlib", + "lazy_static", + "log", + "memmap2", + "nix 0.26.2", + "pkg-config", + "thiserror", + "wayland-backend", + "wayland-client 0.30.2", + "wayland-cursor 0.30.0", + "wayland-protocols 0.30.0", + "wayland-protocols-wlr", + "wayland-scanner 0.30.0", + "xkbcommon", ] [[package]] @@ -2789,8 +4189,8 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" dependencies = [ - "smithay-client-toolkit", - "wayland-client", + "smithay-client-toolkit 0.16.0", + "wayland-client 0.29.5", ] [[package]] @@ -2820,6 +4220,33 @@ dependencies = [ "winapi", ] +[[package]] +name = "softbuffer" +version = "0.2.0" +source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-2.0-old#ece901a9f60dc89ca740dc3bd11f3c909e801723" +dependencies = [ + "bytemuck", + "cfg_aliases", + "cocoa", + "core-graphics", + "fastrand", + "foreign-types 0.3.2", + "log", + "nix 0.26.2", + "objc", + "raw-window-handle 0.5.2", + "redox_syscall 0.3.5", + "thiserror", + "wasm-bindgen", + "wayland-backend", + "wayland-client 0.30.2", + "wayland-sys 0.30.1", + "web-sys", + "windows-sys 0.42.0", + "x11-dl", + "x11rb 0.11.1", +] + [[package]] name = "spin" version = "0.5.2" @@ -2841,10 +4268,16 @@ version = "0.2.0+1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" dependencies = [ - "bitflags", + "bitflags 1.3.2", "num-traits", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -2856,7 +4289,7 @@ name = "stopwatch" version = "0.1.0" dependencies = [ "cosmic-time", - "iced", + "iced 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell", ] @@ -2866,6 +4299,21 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" +dependencies = [ + "float-cmp", +] + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + [[package]] name = "strsim" version = "0.10.0" @@ -2879,29 +4327,82 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" [[package]] -name = "syn" -version = "1.0.109" +name = "svgfilters" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "639abcebc15fdc2df179f37d6f5463d660c1c79cd552c12343a4600827a04bce" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "float-cmp", + "rgb", ] [[package]] -name = "syn" -version = "2.0.14" +name = "svgtypes" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf316d5356ed6847742d036f8a39c3b8435cac10bd528a4bd461928a6ab34d5" +checksum = "ed4b0611e7f3277f68c0fa18e385d9e2d26923691379690039548f867cef02a7" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "kurbo", + "siphasher", ] [[package]] -name = "termcolor" +name = "swash" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f" +dependencies = [ + "yazi", + "zeno", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf316d5356ed6847742d036f8a39c3b8435cac10bd528a4bd461928a6ab34d5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sys-locale" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea0b9eefabb91675082b41eb94c3ecd91af7656caee3fb4961a07c0ec8c7ca6f" +dependencies = [ + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "tempfile" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.45.0", +] + +[[package]] +name = "termcolor" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" @@ -2952,7 +4453,22 @@ dependencies = [ "cfg-if", "png", "safe_arch", - "tiny-skia-path", + "tiny-skia-path 0.7.0", +] + +[[package]] +name = "tiny-skia" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2986c82f77818c7b9144c70818fdde98db15308e329ae2f7204d767808fd3c" +dependencies = [ + "arrayref", + "arrayvec 0.7.2", + "bytemuck", + "cfg-if", + "log", + "png", + "tiny-skia-path 0.9.0", ] [[package]] @@ -2965,6 +4481,17 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "tiny-skia-path" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7acb0ccda1ac91084353a56d0b69b0e29c311fd809d2088b1ed2f9ae1841c47" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3061,9 +4588,21 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.14", +] + [[package]] name = "tracing-core" version = "0.1.30" @@ -3096,18 +4635,62 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "uds_windows" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +dependencies = [ + "tempfile", + "winapi", +] + [[package]] name = "unicode-bidi" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +[[package]] +name = "unicode-bidi-mirroring" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" + +[[package]] +name = "unicode-ccc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" + +[[package]] +name = "unicode-general-category" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7" + [[package]] name = "unicode-ident" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +[[package]] +name = "unicode-linebreak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137" +dependencies = [ + "hashbrown 0.12.3", + "regex", +] + [[package]] name = "unicode-normalization" version = "0.1.22" @@ -3117,12 +4700,24 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-script" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" + [[package]] name = "unicode-segmentation" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +[[package]] +name = "unicode-vo" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" + [[package]] name = "unicode-width" version = "0.1.10" @@ -3152,6 +4747,66 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "usvg" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b44e14b7678bcc5947b397991432d0c4e02a103958a0ed5e1b9b961ddd08b21" +dependencies = [ + "base64 0.21.0", + "log", + "pico-args", + "usvg-parser", + "usvg-text-layout", + "usvg-tree", + "xmlwriter", +] + +[[package]] +name = "usvg-parser" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90c8251d965c2882a636ffcc054340b1f13a6bce68779cb5b2084d8ffc2535be" +dependencies = [ + "data-url", + "flate2", + "imagesize", + "kurbo", + "log", + "rosvgtree", + "strict-num", + "svgtypes", + "usvg-tree", +] + +[[package]] +name = "usvg-text-layout" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4fed019d1af07bfe0f3bac13d120d7b51bc65b38cb24809cf4ed0b8b631138" +dependencies = [ + "fontdb", + "kurbo", + "log", + "rustybuzz", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "usvg-tree", +] + +[[package]] +name = "usvg-tree" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7371265c467cdae0ccc3655e2e3f310c695fb9f717c0d25187bf3b333f7b5159" +dependencies = [ + "kurbo", + "rctree", + "strict-num", + "svgtypes", +] + [[package]] name = "vec_map" version = "0.8.2" @@ -3170,6 +4825,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.0" @@ -3273,20 +4938,48 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wayland-backend" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8" +dependencies = [ + "cc", + "downcast-rs", + "io-lifetimes", + "nix 0.26.2", + "scoped-tls", + "smallvec", + "wayland-sys 0.30.1", +] + [[package]] name = "wayland-client" version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" dependencies = [ - "bitflags", + "bitflags 1.3.2", "downcast-rs", "libc", "nix 0.24.3", "scoped-tls", "wayland-commons", - "wayland-scanner", - "wayland-sys", + "wayland-scanner 0.29.5", + "wayland-sys 0.29.5", +] + +[[package]] +name = "wayland-client" +version = "0.30.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8" +dependencies = [ + "bitflags 1.3.2", + "calloop", + "nix 0.26.2", + "wayland-backend", + "wayland-scanner 0.30.0", ] [[package]] @@ -3298,7 +4991,7 @@ dependencies = [ "nix 0.24.3", "once_cell", "smallvec", - "wayland-sys", + "wayland-sys 0.29.5", ] [[package]] @@ -3308,7 +5001,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" dependencies = [ "nix 0.24.3", - "wayland-client", + "wayland-client 0.29.5", + "xcursor", +] + +[[package]] +name = "wayland-cursor" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d0c3a0d5b4b688b07b0442362d3ed6bf04724fcc16cd69ab6285b90dbc487aa" +dependencies = [ + "nix 0.26.2", + "wayland-client 0.30.2", "xcursor", ] @@ -3318,10 +5022,35 @@ version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ - "bitflags", - "wayland-client", + "bitflags 1.3.2", + "wayland-client 0.29.5", "wayland-commons", - "wayland-scanner", + "wayland-scanner 0.29.5", +] + +[[package]] +name = "wayland-protocols" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fefbeb8a360abe67ab7c2efe1d297a1a50ee011f5460791bc18870c26bb84e2" +dependencies = [ + "bitflags 1.3.2", + "wayland-backend", + "wayland-client 0.30.2", + "wayland-scanner 0.30.0", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce991093320e4a6a525876e6b629ab24da25f9baef0c2e0080ad173ec89588a" +dependencies = [ + "bitflags 1.3.2", + "wayland-backend", + "wayland-client 0.30.2", + "wayland-protocols 0.30.0", + "wayland-scanner 0.30.0", ] [[package]] @@ -3335,6 +5064,17 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "wayland-scanner" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4834c14b3edf1d9986c83ca79b1e7e3afbe9874c7c144702f6467063259ce45d" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + [[package]] name = "wayland-sys" version = "0.29.5" @@ -3346,6 +5086,18 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "wayland-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" +dependencies = [ + "dlib", + "lazy_static", + "log", + "pkg-config", +] + [[package]] name = "web-sys" version = "0.3.61" @@ -3391,7 +5143,7 @@ dependencies = [ "cfg-if", "js-sys", "log", - "naga", + "naga 0.11.0", "parking_lot 0.12.1", "profiling", "raw-window-handle 0.5.2", @@ -3400,9 +5152,33 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 0.15.1", + "wgpu-hal 0.15.4", + "wgpu-types 0.15.2", +] + +[[package]] +name = "wgpu" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3059ea4ddec41ca14f356833e2af65e7e38c0a8f91273867ed526fb9bafcca95" +dependencies = [ + "arrayvec 0.7.2", + "cfg-if", + "js-sys", + "log", + "naga 0.12.2", + "parking_lot 0.11.2", + "profiling", + "raw-window-handle 0.5.2", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core 0.16.1", + "wgpu-hal 0.16.0", + "wgpu-types 0.16.0", ] [[package]] @@ -3413,19 +5189,42 @@ checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff" dependencies = [ "arrayvec 0.7.2", "bit-vec", - "bitflags", + "bitflags 1.3.2", "codespan-reporting", "fxhash", "log", - "naga", + "naga 0.11.0", "parking_lot 0.12.1", "profiling", "raw-window-handle 0.5.2", "smallvec", "thiserror", "web-sys", - "wgpu-hal", - "wgpu-types", + "wgpu-hal 0.15.4", + "wgpu-types 0.15.2", +] + +[[package]] +name = "wgpu-core" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2" +dependencies = [ + "arrayvec 0.7.2", + "bit-vec", + "bitflags 2.3.1", + "codespan-reporting", + "log", + "naga 0.12.2", + "parking_lot 0.11.2", + "profiling", + "raw-window-handle 0.5.2", + "rustc-hash", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal 0.16.0", + "wgpu-types 0.16.0", ] [[package]] @@ -3438,7 +5237,7 @@ dependencies = [ "arrayvec 0.7.2", "ash", "bit-set", - "bitflags", + "bitflags 1.3.2", "block", "core-graphics-types", "d3d12", @@ -3448,25 +5247,67 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hassle-rs", + "hassle-rs 0.9.0", "js-sys", "khronos-egl", "libc", - "libloading", + "libloading 0.7.4", "log", "metal", - "naga", + "naga 0.11.0", "objc", "parking_lot 0.12.1", "profiling", "range-alloc", "raw-window-handle 0.5.2", - "renderdoc-sys", + "renderdoc-sys 0.7.1", + "smallvec", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types 0.15.2", + "winapi", +] + +[[package]] +name = "wgpu-hal" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41af2ea7d87bd41ad0a37146252d5f7c26490209f47f544b2ee3b3ff34c7732e" +dependencies = [ + "android_system_properties", + "arrayvec 0.7.2", + "ash", + "bit-set", + "bitflags 2.3.1", + "block", + "core-graphics-types", + "d3d12", + "foreign-types 0.3.2", + "glow 0.12.1", + "gpu-alloc", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs 0.10.0", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.0", + "log", + "metal", + "naga 0.12.2", + "objc", + "parking_lot 0.11.2", + "profiling", + "range-alloc", + "raw-window-handle 0.5.2", + "renderdoc-sys 1.0.0", + "rustc-hash", "smallvec", "thiserror", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 0.16.0", "winapi", ] @@ -3476,7 +5317,18 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32444e121b0bd00cb02c0de32fde457a9491bd44e03e7a5db6df9b1da2f6f110" dependencies = [ - "bitflags", + "bitflags 1.3.2", + "js-sys", + "web-sys", +] + +[[package]] +name = "wgpu-types" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd33a976130f03dcdcd39b3810c0c3fc05daf86f0aaf867db14bfb7c4a9a32b" +dependencies = [ + "bitflags 2.3.1", "js-sys", "web-sys", ] @@ -3490,7 +5342,7 @@ dependencies = [ "bytemuck", "glyph_brush", "log", - "wgpu", + "wgpu 0.15.1", ] [[package]] @@ -3499,6 +5351,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +[[package]] +name = "widestring" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" + [[package]] name = "winapi" version = "0.3.9" @@ -3559,9 +5417,33 @@ version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" dependencies = [ + "windows-implement", + "windows-interface", "windows-targets 0.42.2", ] +[[package]] +name = "windows-implement" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-interface" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -3575,6 +5457,21 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -3737,13 +5634,45 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winit" +version = "0.27.2" +source = "git+https://github.com/pop-os/winit.git?branch=iced#d35712bba65eb1dad8f6f546af49b96fdad9467e" +dependencies = [ + "bitflags 1.3.2", + "cocoa", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio", + "ndk", + "ndk-glue", + "objc", + "once_cell", + "parking_lot 0.12.1", + "percent-encoding", + "raw-window-handle 0.4.3", + "raw-window-handle 0.5.2", + "sctk-adwaita", + "smithay-client-toolkit 0.16.0", + "wasm-bindgen", + "wayland-client 0.29.5", + "wayland-protocols 0.29.5", + "web-sys", + "windows-sys 0.36.1", + "x11-dl", +] + [[package]] name = "winit" version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cocoa", "core-foundation", "core-graphics", @@ -3761,10 +5690,10 @@ dependencies = [ "raw-window-handle 0.4.3", "raw-window-handle 0.5.2", "sctk-adwaita", - "smithay-client-toolkit", + "smithay-client-toolkit 0.16.0", "wasm-bindgen", - "wayland-client", - "wayland-protocols", + "wayland-client 0.29.5", + "wayland-protocols 0.29.5", "web-sys", "windows-sys 0.36.1", "x11-dl", @@ -3820,6 +5749,31 @@ dependencies = [ "winapi-wsapoll", ] +[[package]] +name = "x11rb" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf3c79412dd91bae7a7366b8ad1565a85e35dd049affc3a6a2c549e97419617" +dependencies = [ + "gethostname", + "libc", + "libloading 0.7.4", + "nix 0.25.1", + "once_cell", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1513b141123073ce54d5bb1d33f801f17508fbd61e02060b1214e96d39c56" +dependencies = [ + "nix 0.25.1", +] + [[package]] name = "xcursor" version = "0.3.4" @@ -3829,18 +5783,137 @@ dependencies = [ "nom", ] +[[package]] +name = "xdg" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688597db5a750e9cad4511cb94729a078e274308099a0382b5b8203bbc767fee" +dependencies = [ + "home", +] + +[[package]] +name = "xdg-home" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +dependencies = [ + "nix 0.26.2", + "winapi", +] + [[package]] name = "xi-unicode" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" +[[package]] +name = "xkbcommon" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbee136714379ab22da0280207fdb7f47e0bb940adea97731b65598b8c7a92e" +dependencies = [ + "libc", + "memmap2", +] + [[package]] name = "xml-rs" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + +[[package]] +name = "yazi" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" + +[[package]] +name = "zbus" +version = "3.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c3d77c9966c28321f1907f0b6c5a5561189d1f7311eea6d94180c6be9daab29" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "byteorder", + "derivative", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.26.2", + "once_cell", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e341d12edaff644e539ccbbf7f161601294c9a84ed3d7e015da33155b435af" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "winnow", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82441e6033be0a741157a72951a3e4957d519698f3a824439cc131c5ba77ac2a" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zeno" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c110ba09c9b3a43edd4803d570df0da2414fed6e822e22b976a4e3ef50860701" + [[package]] name = "zune-inflate" version = "0.2.53" @@ -3849,3 +5922,41 @@ checksum = "440a08fd59c6442e4b846ea9b10386c38307eae728b216e1ab2c305d1c9daaf8" dependencies = [ "simd-adler32", ] + +[[package]] +name = "zvariant" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622cc473f10cef1b0d73b7b34a266be30ebdcfaea40ec297dd8cbda088f9f93c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d9c1b57352c25b778257c661f3c4744b7cefb7fc09dd46909a153cce7773da2" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/Cargo.toml b/Cargo.toml index dece18f..21170eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,14 +10,19 @@ documentation = "https://docs.rs/cosmic-time" keywords = ["gui", "animation", "interface", "widgets", "iced"] categories = ["gui"] +[features] +default = ["iced", "iced_native", "iced_futures", "iced_core", "iced_style"] +libcosmic = ["dep:libcosmic"] + [workspace] members = [ "examples/*", ] [dependencies] -iced = { version = "0.9.0", features = [ "tokio" ] } -iced_native = "0.10.1" -iced_futures = "0.6.0" -iced_core = "0.9.0" -iced_style = "0.8.0" +iced = { version = "0.9.0", features = [ "tokio" ], optional = true } +iced_native = { version = "0.10.1", optional = true } +iced_futures = { version = "0.6.0", optional = true } +iced_core = { version = "0.9.0", optional = true } +iced_style = { version = "0.8.0", optional = true } +libcosmic = { git = "https://github.com/pop-os/libcosmic/", rev = "5765053", features = [ "tokio", "wayland" ], optional = true } diff --git a/src/keyframes.rs b/src/keyframes.rs index d6e77c3..2acdff9 100644 --- a/src/keyframes.rs +++ b/src/keyframes.rs @@ -9,6 +9,9 @@ mod space; mod style_button; mod style_container; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget, Length}; +#[cfg(not(feature = "libcosmic"))] use iced_native::{widget, Length}; pub use button::Button; diff --git a/src/keyframes/button.rs b/src/keyframes/button.rs index 44d51e3..11d88f4 100644 --- a/src/keyframes/button.rs +++ b/src/keyframes/button.rs @@ -1,4 +1,12 @@ -use iced_native::{widget, Element, Length, Padding}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget::Id as IcedId, Element, Length, Padding, Renderer as IcedRenderer}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{ + widget, widget::Id as IcedId, Element, Length, Padding, Renderer as IcedRenderer, +}; use crate::keyframes::{as_f32, get_length, Repeat}; use crate::timeline::Frame; @@ -6,19 +14,19 @@ use crate::{Ease, Linear, MovementType}; /// A Button's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -38,14 +46,14 @@ impl Id { content: impl Into>, ) -> widget::Button<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::button::StyleSheet, { Button::as_widget(self, timeline, content) } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -147,10 +155,10 @@ impl Button { content: impl Into>, ) -> widget::Button<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::button::StyleSheet, { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); widget::Button::new(content) .width(get_length(&id, timeline, 0, Length::Shrink)) diff --git a/src/keyframes/column.rs b/src/keyframes/column.rs index e84ce17..58dddc5 100644 --- a/src/keyframes/column.rs +++ b/src/keyframes/column.rs @@ -1,4 +1,12 @@ -use iced_native::{widget, Length, Padding, Pixels}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget::Id as IcedId, Length, Padding, Pixels, Renderer as IcedRenderer}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{ + widget, widget::Id as IcedId, Length, Padding, Pixels, Renderer as IcedRenderer, +}; use crate::keyframes::{as_f32, get_length, Repeat}; use crate::timeline::Frame; @@ -6,19 +14,19 @@ use crate::{Ease, Linear, MovementType}; /// A Column's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -37,14 +45,14 @@ impl Id { timeline: &crate::Timeline, ) -> widget::Column<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { Column::as_widget(self, timeline) } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -148,10 +156,10 @@ impl Column { timeline: &crate::Timeline, ) -> widget::Column<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); widget::Column::new() .spacing(timeline.get(&id, 0).map(|m| m.value).unwrap_or(0.)) diff --git a/src/keyframes/container.rs b/src/keyframes/container.rs index 5e47ece..135e61a 100644 --- a/src/keyframes/container.rs +++ b/src/keyframes/container.rs @@ -1,4 +1,14 @@ -use iced_native::{widget, Element, Length, Padding, Pixels}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{ + widget::Id as IcedId, Element, Length, Padding, Pixels, Renderer as IcedRenderer, +}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{ + widget, widget::Id as IcedId, Element, Length, Padding, Pixels, Renderer as IcedRenderer, +}; use crate::keyframes::{as_f32, get_length, Repeat}; use crate::timeline::Frame; @@ -6,19 +16,19 @@ use crate::{Ease, Linear, MovementType}; /// A Container's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -38,14 +48,14 @@ impl Id { content: impl Into>, ) -> widget::Container<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { Container::as_widget(self, timeline, content) } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -153,10 +163,10 @@ impl Container { content: impl Into>, ) -> widget::Container<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); widget::Container::new(content) .width(get_length(&id, timeline, 0, Length::Shrink)) diff --git a/src/keyframes/row.rs b/src/keyframes/row.rs index 337e87f..adfae35 100644 --- a/src/keyframes/row.rs +++ b/src/keyframes/row.rs @@ -1,4 +1,12 @@ -use iced_native::{widget, Length, Padding, Pixels}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget::Id as IcedId, Length, Padding, Pixels, Renderer as IcedRenderer}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{ + widget, widget::Id as IcedId, Length, Padding, Pixels, Renderer as IcedRenderer, +}; use crate::keyframes::{as_f32, get_length, Repeat}; use crate::timeline::Frame; @@ -6,19 +14,19 @@ use crate::{Ease, Linear, MovementType}; /// A Row's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -37,14 +45,14 @@ impl Id { timeline: &crate::Timeline, ) -> widget::Row<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { Row::as_widget(self, timeline) } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -148,10 +156,10 @@ impl Row { timeline: &crate::Timeline, ) -> widget::Row<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); widget::Row::new() .spacing(timeline.get(&id, 0).map(|m| m.value).unwrap_or(0.)) diff --git a/src/keyframes/space.rs b/src/keyframes/space.rs index de6c793..d0ac9cc 100644 --- a/src/keyframes/space.rs +++ b/src/keyframes/space.rs @@ -1,4 +1,10 @@ -use iced_native::{widget, Length}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget::Id as IcedId, Length}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{widget, widget::Id as IcedId, Length}; use crate::keyframes::{as_f32, get_length, Repeat}; use crate::timeline::Frame; @@ -6,19 +12,19 @@ use crate::{Ease, Linear, MovementType}; /// A Space's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -37,7 +43,7 @@ impl Id { } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -131,7 +137,7 @@ impl Space { } pub fn as_widget(id: Id, timeline: &crate::Timeline) -> widget::Space { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); widget::Space::new( get_length(&id, timeline, 0, Length::Shrink), diff --git a/src/keyframes/style_button.rs b/src/keyframes/style_button.rs index 5a77d1d..8ae46b3 100644 --- a/src/keyframes/style_button.rs +++ b/src/keyframes/style_button.rs @@ -1,4 +1,12 @@ -use iced_native::{widget, Element, Length, Padding}; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{widget, Element, Length, Padding, Renderer as IcedRenderer}; +#[cfg(feature = "libcosmic")] +#[cfg(feature = "libcosmic")] +use cosmic::iced_style::button::StyleSheet; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{widget, Element, Length, Padding, Renderer as IcedRenderer}; +#[cfg(not(feature = "libcosmic"))] use iced_style::button::StyleSheet; use crate::keyframes::{as_f32, get_length, Repeat}; @@ -7,7 +15,7 @@ use crate::{Ease, Linear, MovementType}; /// A Button's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(widget::Id); impl Id { /// Creates a custom [`Id`]. @@ -40,8 +48,8 @@ impl Id { content: impl Into>, ) -> crate::widget::Button<'a, Message, Renderer> where - Renderer: iced_native::Renderer, - Renderer::Theme: widget::button::StyleSheet, + Renderer: IcedRenderer, + Renderer::Theme: StyleSheet, { StyleButton::as_widget(self, style, timeline, content) } @@ -155,8 +163,8 @@ impl StyleButton { content: impl Into>, ) -> crate::widget::Button<'a, Message, Renderer> where - Renderer: iced_native::Renderer, - Renderer::Theme: widget::button::StyleSheet, + Renderer: IcedRenderer, + Renderer::Theme: StyleSheet, { let id: widget::Id = id.into(); diff --git a/src/keyframes/style_container.rs b/src/keyframes/style_container.rs index 862970b..7f64f0f 100644 --- a/src/keyframes/style_container.rs +++ b/src/keyframes/style_container.rs @@ -1,4 +1,17 @@ -use iced_native::{widget, Element, Length, Padding, Pixels}; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{ + widget::Id as IcedId, Element, Length, Padding, Pixels, Renderer as IcedRenderer, +}; +#[cfg(feature = "libcosmic")] +use cosmic::iced_style::container::StyleSheet; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{ + widget, widget::Id as IcedId, Element, Length, Padding, Pixels, Renderer as IcedRenderer, +}; +#[cfg(not(feature = "libcosmic"))] use iced_style::container::StyleSheet; use crate::keyframes::{as_f32, get_length, Repeat}; @@ -7,19 +20,19 @@ use crate::{Ease, Linear, MovementType}; /// A StyleContainer's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`crate::chain!`] macro @@ -40,14 +53,14 @@ impl Id { content: impl Into>, ) -> crate::widget::Container<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { StyleContainer::as_widget(self, style, timeline, content) } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -161,10 +174,10 @@ impl StyleContainer { content: impl Into>, ) -> crate::widget::Container<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: IcedRenderer, Renderer::Theme: widget::container::StyleSheet, { - let id: widget::Id = id.into(); + let id: IcedId = id.into(); let container = crate::widget::Container::new(content) .width(get_length(&id, timeline, 0, Length::Shrink)) diff --git a/src/keyframes/toggler.rs b/src/keyframes/toggler.rs index f8a3325..c21e841 100644 --- a/src/keyframes/toggler.rs +++ b/src/keyframes/toggler.rs @@ -1,4 +1,10 @@ -use iced_native::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced::widget; +#[cfg(feature = "libcosmic")] +use cosmic::iced_core::{text, widget::Id as IcedId, Renderer as IcedRenderer}; + +#[cfg(not(feature = "libcosmic"))] +use iced_native::{text, widget, widget::Id as IcedId, Renderer as IcedRenderer}; use crate::keyframes::Repeat; use crate::timeline::Frame; @@ -6,19 +12,19 @@ use crate::{Ease, Linear, MovementType}; /// A Toggler's animation Id. Used for linking animation built in `update()` with widget output in `view()` #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct Id(iced_native::widget::Id); +pub struct Id(IcedId); impl Id { /// Creates a custom [`Id`]. pub fn new(id: impl Into>) -> Self { - Self(widget::Id::new(id)) + Self(IcedId::new(id)) } /// Creates a unique [`Id`]. /// /// This function produces a different [`Id`] every time it is called. pub fn unique() -> Self { - Self(widget::Id::unique()) + Self(IcedId::unique()) } /// Used by [`chain!`] macro @@ -32,7 +38,7 @@ impl Id { } } -impl From for widget::Id { +impl From for IcedId { fn from(id: Id) -> Self { id.0 } @@ -130,7 +136,7 @@ impl Toggler { f: F, ) -> crate::widget::Toggler<'a, Message, Renderer> where - Renderer: iced_native::Renderer + iced_native::text::Renderer, + Renderer: IcedRenderer + text::Renderer, Renderer::Theme: widget::toggler::StyleSheet, F: 'a + Fn(Chain, bool) -> Message, { diff --git a/src/lib.rs b/src/lib.rs index bef94c8..f27c13c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -142,6 +142,9 @@ pub use crate::keyframes::{ }; pub use crate::timeline::{Chain, Timeline}; +#[cfg(feature = "libcosmic")] +pub use cosmic::iced::time::{Duration, Instant}; +#[cfg(not(feature = "libcosmic"))] pub use iced::time::{Duration, Instant}; const PI: f32 = std::f32::consts::PI; diff --git a/src/timeline.rs b/src/timeline.rs index 018447d..182267c 100644 --- a/src/timeline.rs +++ b/src/timeline.rs @@ -1,9 +1,23 @@ -use iced_futures::subscription::Subscription; -use iced_native::widget; +#[cfg(feature = "libcosmic")] +mod imports { + pub use cosmic::iced::time::{Duration, Instant}; + pub use cosmic::iced_core::{ + event::{self, Event}, + widget, Hasher, + }; + pub use cosmic::iced_futures::subscription::Subscription; +} +#[cfg(not(feature = "libcosmic"))] +mod imports { + pub use iced::time::{Duration, Instant}; + pub use iced_futures::subscription::Subscription; + pub use iced_native::{event, widget, Event, Hasher}; +} + +use imports::{widget, Duration, Instant, Subscription}; use std::cmp::Ordering; use std::collections::HashMap; -use std::time::{Duration, Instant}; use crate::keyframes::Repeat; use crate::{lerp, Ease, MovementType, Tween}; @@ -532,6 +546,7 @@ impl Timeline { /// Efficiently request redraws for animations. /// Automatically checks if animations are in a state where redraws arn't necessary. + #[cfg(not(feature = "libcosmic"))] pub fn as_subscription( &self, ) -> Subscription @@ -548,6 +563,23 @@ impl Timeline { Subscription::none() } } + + /// Efficiently request redraws for animations. + /// Automatically checks if animations are in a state where redraws arn't necessary. + #[cfg(feature = "libcosmic")] + pub fn as_subscription(&self) -> Subscription { + let now = self.now; + if now.is_some() + && self.tracks.values().any(|track| { + (track.0.repeat == Repeat::Forever && track.0.pause.is_playing()) + || (track.0.end >= now.unwrap() && track.0.pause.is_playing()) + }) + { + cosmic::iced_runtime::window::frames() + } else { + Subscription::none() + } + } } // Used for animations that loop. diff --git a/src/widget.rs b/src/widget.rs index da9ba85..bb5aedc 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -1,10 +1,31 @@ #![allow(clippy::too_many_arguments)] + +#[cfg(feature = "libcosmic")] +pub mod cosmic_button; +#[cfg(feature = "libcosmic")] +pub mod cosmic_container; +#[cfg(feature = "libcosmic")] +pub mod cosmic_toggler; + +#[cfg(feature = "libcosmic")] +pub use cosmic_button::Button; +#[cfg(feature = "libcosmic")] +pub use cosmic_container::Container; +#[cfg(feature = "libcosmic")] +pub use cosmic_toggler::Toggler; + +#[cfg(not(feature = "libcosmic"))] pub mod button; +#[cfg(not(feature = "libcosmic"))] pub mod container; +#[cfg(not(feature = "libcosmic"))] pub mod toggler; +#[cfg(not(feature = "libcosmic"))] pub use button::Button; +#[cfg(not(feature = "libcosmic"))] pub use container::Container; +#[cfg(not(feature = "libcosmic"))] pub use toggler::Toggler; /// A convenience type to optimize style-able widgets, diff --git a/src/widget/cosmic_button.rs b/src/widget/cosmic_button.rs new file mode 100644 index 0000000..4a43a81 --- /dev/null +++ b/src/widget/cosmic_button.rs @@ -0,0 +1,738 @@ +//! Allow your users to perform actions by pressing a button. +//! +//! A [`Button`] has some local [`State`]. +use cosmic::iced_runtime::core::widget::Id; +use cosmic::iced_runtime::{keyboard, Command}; +use std::borrow::Cow; + +use crate::widget::StyleType; +use cosmic::iced_core::event::{self, Event}; +use cosmic::iced_core::layout; +use cosmic::iced_core::mouse; +use cosmic::iced_core::overlay; +use cosmic::iced_core::renderer; +use cosmic::iced_core::touch; +use cosmic::iced_core::widget::tree::{self, Tree}; +use cosmic::iced_core::widget::Operation; +use cosmic::iced_core::{ + color, Background, Clipboard, Color, Element, Layout, Length, Padding, Point, Rectangle, Shell, + Vector, Widget, +}; +use cosmic::iced_renderer::core::widget::{operation, OperationOutputWrapper}; + +pub use cosmic::iced_style::button::{Appearance, StyleSheet}; + +/// A generic widget that produces a message when pressed. +/// +/// ```no_run +/// # type Button<'a, Message> = +/// # iced_widget::Button<'a, Message, cosmic::iced_widget::renderer::Renderer>; +/// # +/// #[derive(Clone)] +/// enum Message { +/// ButtonPressed, +/// } +/// +/// let button = Button::new("Press me!").on_press(Message::ButtonPressed); +/// ``` +/// +/// If a [`Button::on_press`] handler is not set, the resulting [`Button`] will +/// be disabled: +/// +/// ``` +/// # type Button<'a, Message> = +/// # cosmic::iced_widget::Button<'a, Message, cosmic::iced_widget::renderer::Renderer>; +/// # +/// #[derive(Clone)] +/// enum Message { +/// ButtonPressed, +/// } +/// +/// fn disabled_button<'a>() -> Button<'a, Message> { +/// Button::new("I'm disabled!") +/// } +/// +/// fn enabled_button<'a>() -> Button<'a, Message> { +/// disabled_button().on_press(Message::ButtonPressed) +/// } +/// ``` +#[allow(missing_debug_implementations)] +pub struct Button<'a, Message, Renderer = cosmic::iced::Renderer> +where + Renderer: cosmic::iced_core::Renderer, + Renderer::Theme: StyleSheet, +{ + id: Id, + #[cfg(feature = "a11y")] + name: Option>, + #[cfg(feature = "a11y")] + description: Option>, + #[cfg(feature = "a11y")] + label: Option>, + content: Element<'a, Message, Renderer>, + on_press: Option, + width: Length, + height: Length, + padding: Padding, + style: StyleType<::Style>, +} + +impl<'a, Message, Renderer> Button<'a, Message, Renderer> +where + Renderer: cosmic::iced_core::Renderer, + Renderer::Theme: StyleSheet, +{ + /// Creates a new [`Button`] with the given content. + pub fn new(content: impl Into>) -> Self { + Button { + id: Id::unique(), + #[cfg(feature = "a11y")] + name: None, + #[cfg(feature = "a11y")] + description: None, + #[cfg(feature = "a11y")] + label: None, + content: content.into(), + on_press: None, + width: Length::Shrink, + height: Length::Shrink, + padding: Padding::new(5.0), + style: StyleType::Static(::Style::default()), + } + } + + /// Sets the width of the [`Button`]. + pub fn width(mut self, width: impl Into) -> Self { + self.width = width.into(); + self + } + + /// Sets the height of the [`Button`]. + pub fn height(mut self, height: impl Into) -> Self { + self.height = height.into(); + self + } + + /// Sets the [`Padding`] of the [`Button`]. + pub fn padding>(mut self, padding: P) -> Self { + self.padding = padding.into(); + self + } + + /// Sets the message that will be produced when the [`Button`] is pressed. + /// + /// Unless `on_press` is called, the [`Button`] will be disabled. + pub fn on_press(mut self, msg: Message) -> Self { + self.on_press = Some(msg); + self + } + + /// Sets the style variant of this [`Button`]. + pub fn style(mut self, style: ::Style) -> Self { + self.style = StyleType::Static(style); + self + } + + /// Sets the animatable style variant of this [`Button`]. + pub fn blend_style( + mut self, + style1: ::Style, + style2: ::Style, + percent: f32, + ) -> Self { + self.style = StyleType::Blend(style1, style2, percent); + self + } + + /// Sets the [`Id`] of the [`Button`]. + pub fn id(mut self, id: Id) -> Self { + self.id = id; + self + } + + #[cfg(feature = "a11y")] + /// Sets the name of the [`Button`]. + pub fn name(mut self, name: impl Into>) -> Self { + self.name = Some(name.into()); + self + } + + #[cfg(feature = "a11y")] + /// Sets the description of the [`Button`]. + pub fn description_widget(mut self, description: &T) -> Self { + self.description = Some(iced_accessibility::Description::Id( + description.description(), + )); + self + } + + #[cfg(feature = "a11y")] + /// Sets the description of the [`Button`]. + pub fn description(mut self, description: impl Into>) -> Self { + self.description = Some(iced_accessibility::Description::Text(description.into())); + self + } + + #[cfg(feature = "a11y")] + /// Sets the label of the [`Button`]. + pub fn label(mut self, label: &dyn iced_accessibility::Labels) -> Self { + self.label = Some(label.label().into_iter().map(|l| l.into()).collect()); + self + } +} + +impl<'a, Message, Renderer> Widget for Button<'a, Message, Renderer> +where + Message: 'a + Clone, + Renderer: 'a + cosmic::iced_core::Renderer, + Renderer::Theme: StyleSheet, +{ + fn tag(&self) -> tree::Tag { + tree::Tag::of::() + } + + fn state(&self) -> tree::State { + tree::State::new(State::new()) + } + + fn children(&self) -> Vec { + vec![Tree::new(&self.content)] + } + + fn diff(&mut self, tree: &mut Tree) { + tree.diff_children(std::slice::from_mut(&mut self.content)) + } + + fn width(&self) -> Length { + self.width + } + + fn height(&self) -> Length { + self.height + } + + fn layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node { + layout( + renderer, + limits, + self.width, + self.height, + self.padding, + |renderer, limits| self.content.as_widget().layout(renderer, limits), + ) + } + + fn operate( + &self, + tree: &mut Tree, + layout: Layout<'_>, + renderer: &Renderer, + operation: &mut dyn Operation>, + ) { + operation.container(None, &mut |operation| { + self.content.as_widget().operate( + &mut tree.children[0], + layout.children().next().unwrap(), + renderer, + operation, + ); + }); + let state = tree.state.downcast_mut::(); + operation.focusable(state, Some(&self.id)); + } + + fn on_event( + &mut self, + tree: &mut Tree, + event: Event, + layout: Layout<'_>, + cursor_position: Point, + renderer: &Renderer, + clipboard: &mut dyn Clipboard, + shell: &mut Shell<'_, Message>, + ) -> event::Status { + if let event::Status::Captured = self.content.as_widget_mut().on_event( + &mut tree.children[0], + event.clone(), + layout.children().next().unwrap(), + cursor_position, + renderer, + clipboard, + shell, + ) { + return event::Status::Captured; + } + + update( + self.id.clone(), + event, + layout, + cursor_position, + shell, + &self.on_press, + || tree.state.downcast_mut::(), + ) + } + + fn draw( + &self, + tree: &Tree, + renderer: &mut Renderer, + theme: &Renderer::Theme, + _style: &renderer::Style, + layout: Layout<'_>, + cursor_position: Point, + _viewport: &Rectangle, + ) { + let bounds = layout.bounds(); + let content_layout = layout.children().next().unwrap(); + + let styling = draw( + renderer, + bounds, + cursor_position, + self.on_press.is_some(), + theme, + &self.style, + || tree.state.downcast_ref::(), + ); + + self.content.as_widget().draw( + &tree.children[0], + renderer, + theme, + &renderer::Style { + text_color: styling.text_color, + }, + content_layout, + cursor_position, + &bounds, + ); + } + + fn mouse_interaction( + &self, + _tree: &Tree, + layout: Layout<'_>, + cursor_position: Point, + _viewport: &Rectangle, + _renderer: &Renderer, + ) -> mouse::Interaction { + mouse_interaction(layout, cursor_position, self.on_press.is_some()) + } + + fn overlay<'b>( + &'b mut self, + tree: &'b mut Tree, + layout: Layout<'_>, + renderer: &Renderer, + ) -> Option> { + self.content.as_widget_mut().overlay( + &mut tree.children[0], + layout.children().next().unwrap(), + renderer, + ) + } + + #[cfg(feature = "a11y")] + /// get the a11y nodes for the widget + fn a11y_nodes( + &self, + layout: Layout<'_>, + state: &Tree, + p: Point, + ) -> iced_accessibility::A11yTree { + use iced_accessibility::{ + accesskit::{Action, DefaultActionVerb, NodeBuilder, NodeId, Rect, Role}, + A11yNode, A11yTree, + }; + + let child_layout = layout.children().next().unwrap(); + let child_tree = &state.children[0]; + let child_tree = self + .content + .as_widget() + .a11y_nodes(child_layout, &child_tree, p); + + let Rectangle { + x, + y, + width, + height, + } = layout.bounds(); + let bounds = Rect::new(x as f64, y as f64, (x + width) as f64, (y + height) as f64); + let is_hovered = state.state.downcast_ref::().is_hovered; + + let mut node = NodeBuilder::new(Role::Button); + node.add_action(Action::Focus); + node.add_action(Action::Default); + node.set_bounds(bounds); + if let Some(name) = self.name.as_ref() { + node.set_name(name.clone()); + } + match self.description.as_ref() { + Some(iced_accessibility::Description::Id(id)) => { + node.set_described_by( + id.iter() + .cloned() + .map(|id| NodeId::from(id)) + .collect::>(), + ); + } + Some(iced_accessibility::Description::Text(text)) => { + node.set_description(text.clone()); + } + None => {} + } + + if let Some(label) = self.label.as_ref() { + node.set_labelled_by(label.clone()); + } + + if self.on_press.is_none() { + node.set_disabled() + } + if is_hovered { + node.set_hovered() + } + node.set_default_action_verb(DefaultActionVerb::Click); + + A11yTree::node_with_child_tree(A11yNode::new(node, self.id.clone()), child_tree) + } + + fn id(&self) -> Option { + Some(self.id.clone()) + } + + fn set_id(&mut self, id: Id) { + self.id = id; + } +} + +impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> +where + Message: Clone + 'a, + Renderer: cosmic::iced_core::Renderer + 'a, + Renderer::Theme: StyleSheet, +{ + fn from(button: Button<'a, Message, Renderer>) -> Self { + Self::new(button) + } +} + +/// The local state of a [`Button`]. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct State { + is_hovered: bool, + is_pressed: bool, + is_focused: bool, +} + +impl State { + /// Creates a new [`State`]. + pub fn new() -> State { + State::default() + } + + /// Returns whether the [`Button`] is currently focused or not. + pub fn is_focused(&self) -> bool { + self.is_focused + } + + /// Returns whether the [`Button`] is currently hovered or not. + pub fn is_hovered(&self) -> bool { + self.is_hovered + } + + /// Focuses the [`Button`]. + pub fn focus(&mut self) { + self.is_focused = true; + } + + /// Unfocuses the [`Button`]. + pub fn unfocus(&mut self) { + self.is_focused = false; + } +} + +/// Processes the given [`Event`] and updates the [`State`] of a [`Button`] +/// accordingly. +pub fn update<'a, Message: Clone>( + id: Id, + event: Event, + layout: Layout<'_>, + cursor_position: Point, + shell: &mut Shell<'_, Message>, + on_press: &Option, + state: impl FnOnce() -> &'a mut State, +) -> event::Status { + match event { + Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) + | Event::Touch(touch::Event::FingerPressed { .. }) => { + if on_press.is_some() { + let bounds = layout.bounds(); + + if bounds.contains(cursor_position) { + let state = state(); + + state.is_pressed = true; + + return event::Status::Captured; + } + } + } + Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) + | Event::Touch(touch::Event::FingerLifted { .. }) => { + if let Some(on_press) = on_press.clone() { + let state = state(); + + if state.is_pressed { + state.is_pressed = false; + + let bounds = layout.bounds(); + + if bounds.contains(cursor_position) { + shell.publish(on_press); + } + + return event::Status::Captured; + } + } + } + #[cfg(feature = "a11y")] + Event::A11y(event_id, iced_accessibility::accesskit::ActionRequest { action, .. }) => { + let state = state(); + if let Some(Some(on_press)) = (id == event_id + && matches!(action, iced_accessibility::accesskit::Action::Default)) + .then(|| on_press.clone()) + { + state.is_pressed = false; + shell.publish(on_press); + } + return event::Status::Captured; + } + Event::Keyboard(keyboard::Event::KeyPressed { key_code, .. }) => { + if let Some(on_press) = on_press.clone() { + let state = state(); + if state.is_focused && key_code == keyboard::KeyCode::Enter { + state.is_pressed = true; + shell.publish(on_press); + return event::Status::Captured; + } + } + } + Event::Touch(touch::Event::FingerLost { .. }) => { + let state = state(); + state.is_hovered = false; + state.is_pressed = false; + } + _ => {} + } + + event::Status::Ignored +} + +/// Draws a [`Button`]. +pub fn draw<'a, Renderer: cosmic::iced_core::Renderer>( + renderer: &mut Renderer, + bounds: Rectangle, + cursor_position: Point, + is_enabled: bool, + style_sheet: &dyn StyleSheet