diff --git a/gui/Cargo.lock b/gui/Cargo.lock index 0132d73d..141cde7f 100644 --- a/gui/Cargo.lock +++ b/gui/Cargo.lock @@ -23,12 +23,6 @@ dependencies = [ "mach 0.1.2", ] -[[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" @@ -139,6 +133,30 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +[[package]] +name = "android-activity" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +dependencies = [ + "android-properties", + "bitflags 1.3.2", + "cc", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum 0.6.1", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -169,12 +187,6 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -187,7 +199,7 @@ 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]] @@ -453,6 +465,25 @@ 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 = "bumpalo" version = "3.12.0" @@ -530,6 +561,9 @@ name = "cc" version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] [[package]] name = "cfg-if" @@ -538,13 +572,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "cgl" -version = "0.3.2" +name = "cfg_aliases" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" -dependencies = [ - "libc", -] +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" @@ -640,16 +671,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921" dependencies = [ "thiserror", - "x11rb", -] - -[[package]] -name = "cmake" -version = "0.1.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", + "x11rb 0.9.0", ] [[package]] @@ -663,7 +685,7 @@ dependencies = [ "cocoa-foundation", "core-foundation", "core-graphics", - "foreign-types 0.3.2", + "foreign-types", "libc", "objc", ] @@ -678,7 +700,7 @@ dependencies = [ "block", "core-foundation", "core-graphics-types", - "foreign-types 0.3.2", + "foreign-types", "libc", "objc", ] @@ -748,12 +770,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "const_panic" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58baae561b85ca19b3122a9ddd35c8ec40c3bcd14fe89921824eae73f7baffbf" - [[package]] name = "core-foundation" version = "0.9.3" @@ -779,7 +795,7 @@ dependencies = [ "bitflags 1.3.2", "core-foundation", "core-graphics-types", - "foreign-types 0.3.2", + "foreign-types", "libc", ] @@ -791,19 +807,7 @@ checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ "bitflags 1.3.2", "core-foundation", - "foreign-types 0.3.2", - "libc", -] - -[[package]] -name = "core-text" -version = "19.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" -dependencies = [ - "core-foundation", - "core-graphics", - "foreign-types 0.3.2", + "foreign-types", "libc", ] @@ -816,6 +820,26 @@ dependencies = [ "memchr", ] +[[package]] +name = "cosmic-text" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b68966c2543609f8d92f9d33ac3b719b2a67529b0c6c0b3e025637b477eef9" +dependencies = [ + "aliasable", + "fontdb", + "libm", + "log", + "rangemap", + "rustybuzz 0.8.0", + "swash", + "sys-locale", + "unicode-bidi", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", +] + [[package]] name = "cpufeatures" version = "0.2.9" @@ -877,29 +901,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossfont" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21fd3add36ea31aba1520aa5288714dd63be506106753226d0eb387a93bc9c45" -dependencies = [ - "cocoa", - "core-foundation", - "core-foundation-sys", - "core-graphics", - "core-text", - "dwrote", - "foreign-types 0.5.0", - "freetype-rs", - "libc", - "log", - "objc", - "once_cell", - "pkg-config", - "servo-fontconfig", - "winapi", -] - [[package]] name = "crunchy" version = "0.2.2" @@ -937,12 +938,6 @@ dependencies = [ "cipher", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "curve25519-dalek" version = "4.1.2" @@ -1021,45 +1016,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" dependencies = [ "bitflags 1.3.2", - "libloading", + "libloading 0.7.4", "winapi", ] -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - [[package]] name = "data-url" version = "0.2.0" @@ -1140,7 +1100,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" dependencies = [ - "libloading", + "libloading 0.7.4", ] [[package]] @@ -1164,20 +1124,6 @@ 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 = "ecdsa" version = "0.16.9" @@ -1217,38 +1163,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encase" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9" -dependencies = [ - "const_panic", - "encase_derive", - "glam", - "thiserror", -] - -[[package]] -name = "encase_derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22" -dependencies = [ - "encase_derive_impl", -] - -[[package]] -name = "encase_derive_impl" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "encoding_rs" version = "0.8.33" @@ -1295,6 +1209,16 @@ dependencies = [ "str-buf", ] +[[package]] +name = "etagere" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306960881d6c46bd0dd6b7f07442a441418c08d0d3e63d8d080b0f64c6343e4e" +dependencies = [ + "euclid", + "svg_fmt", +] + [[package]] name = "euclid" version = "0.22.9" @@ -1304,16 +1228,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "expat-sys" -version = "2.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" -dependencies = [ - "cmake", - "pkg-config", -] - [[package]] name = "exr" version = "1.6.3" @@ -1342,6 +1256,12 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" +[[package]] +name = "fast-srgb8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" + [[package]] name = "fastrand" version = "1.9.0" @@ -1388,15 +1308,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "find-crate" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" -dependencies = [ - "toml", -] - [[package]] name = "fixedbitset" version = "0.4.2" @@ -1447,6 +1358,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "font-types" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d" + [[package]] name = "fontconfig-parser" version = "0.5.2" @@ -1458,14 +1375,16 @@ dependencies = [ [[package]] name = "fontdb" -version = "0.12.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff20bef7942a72af07104346154a70a70b089c572e454b41bef6eb6cb10e9c06" +checksum = "af8d8cbea8f21307d7e84bca254772981296f058a1d36b461bf4d83a7499fc9e" dependencies = [ "fontconfig-parser", "log", - "memmap2", - "ttf-parser", + "memmap2 0.6.2", + "slotmap", + "tinyvec", + "ttf-parser 0.19.2", ] [[package]] @@ -1474,28 +1393,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared 0.1.1", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared 0.3.1", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.43", + "foreign-types-shared", ] [[package]] @@ -1504,12 +1402,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - [[package]] name = "form_urlencoded" version = "1.1.0" @@ -1519,28 +1411,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "freetype-rs" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb" -dependencies = [ - "bitflags 1.3.2", - "freetype-sys", - "libc", -] - -[[package]] -name = "freetype-sys" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" -dependencies = [ - "cmake", - "libc", - "pkg-config", -] - [[package]] name = "futures" version = "0.3.28" @@ -1631,15 +1501,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1700,34 +1561,11 @@ version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - [[package]] name = "glam" -version = "0.21.3" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" - -[[package]] -name = "glow" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" [[package]] name = "glow" @@ -1742,118 +1580,15 @@ dependencies = [ ] [[package]] -name = "glow_glyph" -version = "0.5.1" +name = "glyphon" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4e62c64947b9a24fe20e2bba9ad819ecb506ef5c8df7ffc4737464c6df9510" +checksum = "5e87caa7459145f5e5f167bf34db4532901404c679e62339fb712a0e3ccf722a" dependencies = [ - "bytemuck", - "glow 0.11.2", - "glyph_brush", - "log", -] - -[[package]] -name = "glutin" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444c9ad294fdcaf20ccf6726b78f380b5450275540c9b68ab62f49726ad1c713" -dependencies = [ - "cgl", - "cocoa", - "core-foundation", - "glutin_egl_sys", - "glutin_gles2_sys", - "glutin_glx_sys", - "glutin_wgl_sys", - "libloading", - "log", - "objc", - "once_cell", - "osmesa-sys", - "parking_lot 0.12.1", - "raw-window-handle 0.5.2", - "wayland-client", - "wayland-egl", - "winapi", - "winit", -] - -[[package]] -name = "glutin_egl_sys" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68900f84b471f31ea1d1355567eb865a2cf446294f06cef8d653ed7bcf5f013d" -dependencies = [ - "gl_generator", - "winapi", -] - -[[package]] -name = "glutin_gles2_sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103" -dependencies = [ - "gl_generator", - "objc", -] - -[[package]] -name = "glutin_glx_sys" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93d0575865098580c5b3a423188cd959419912ea60b1e48e8b3b526f6d02468" -dependencies = [ - "gl_generator", - "x11-dl", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696" -dependencies = [ - "gl_generator", -] - -[[package]] -name = "glyph_brush" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4edefd123f28a0b1d41ec4a489c2b43020b369180800977801611084f342978d" -dependencies = [ - "glyph_brush_draw_cache", - "glyph_brush_layout", - "ordered-float", - "rustc-hash", - "twox-hash", -] - -[[package]] -name = "glyph_brush_draw_cache" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6010675390f6889e09a21e2c8b575b3ee25667ea8237a8d59423f73cb8c28610" -dependencies = [ - "ab_glyph", - "crossbeam-channel", - "crossbeam-deque", - "linked-hash-map", - "rayon", - "rustc-hash", -] - -[[package]] -name = "glyph_brush_layout" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", + "cosmic-text", + "etagere", + "lru", + "wgpu", ] [[package]] @@ -1993,14 +1728,14 @@ dependencies = [ [[package]] name = "hassle-rs" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90601c6189668c7345fc53842cb3f3a3d872203d523be1b3cb44a36a3e62fb85" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" dependencies = [ "bitflags 1.3.2", "com-rs", "libc", - "libloading", + "libloading 0.7.4", "thiserror", "widestring", "winapi", @@ -2174,17 +1909,14 @@ dependencies = [ [[package]] name = "iced" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbddf356d01e9d41cd394a9d04d62bfd89650a30f12fda5839cabb8c4591c88" +checksum = "c708807ec86f99dd729dc4d42db5239acf118cec14d3c5f57679dcfdbbc472b1" dependencies = [ "iced_core", "iced_futures", - "iced_glow", - "iced_glutin", - "iced_graphics", - "iced_native", - "iced_wgpu", + "iced_renderer", + "iced_widget", "iced_winit", "image", "thiserror", @@ -2192,107 +1924,81 @@ dependencies = [ [[package]] name = "iced_core" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11e1942e28dedee756cc27e67e7a838cdc1e59fb6bf9627ec9f709ab3b135782" +checksum = "64d0bc4fbf018576d08d93f838e6058cc6f10bbc05e04ae249a2a44dffb4ebc8" dependencies = [ "bitflags 1.3.2", "instant", + "log", "palette", + "thiserror", + "twox-hash", ] [[package]] name = "iced_futures" -version = "0.6.0" -source = "git+https://github.com/edouardparis/iced?branch=fix-futures-recipe#2d8318b13bdf8aaf31bc6d5a72b22313ed2d10cf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dab0054a9c7a1cbce227a8cd9ee4a094497b3d06094551ac6c1488d563802e" dependencies = [ "futures", + "iced_core", "log", "tokio", "wasm-bindgen-futures", "wasm-timer", ] -[[package]] -name = "iced_glow" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc5b081015f5c75777c96ad75e2288916e7d444c97396d6d136517877ef9129" -dependencies = [ - "bytemuck", - "euclid", - "glow 0.11.2", - "glow_glyph", - "glyph_brush", - "iced_graphics", - "iced_native", - "log", -] - -[[package]] -name = "iced_glutin" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c427ca018d29508512581d832fbaa7b6c8ec34c39d438f35f59e363a6419953" -dependencies = [ - "glutin", - "iced_graphics", - "iced_native", - "iced_winit", - "log", -] - [[package]] name = "iced_graphics" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338a6aff7db906537074ad0fe8b720cfdb9512cdfea43c628c76bd1cf50fdcc0" +checksum = "67ff14447a221e9e9205a13d84d7bbdf0636a3b1daa02cfca690ed09689c4d2b" dependencies = [ "bitflags 1.3.2", "bytemuck", "glam", - "iced_native", - "iced_style", + "half", + "iced_core", "image", "kamadak-exif", "log", - "lyon", - "qrcode", - "raw-window-handle 0.5.2", - "resvg", + "lyon_path", + "raw-window-handle", "thiserror", ] [[package]] -name = "iced_lazy" -version = "0.6.1" +name = "iced_renderer" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf1cb6b8cd90488d3a03fbf438ad42038cb83c81a0d61f3692c51875efdb818" +checksum = "1033385b0db0099a0d13178c9ff93c1ce11e7d0177522acf578bf79febdb2af8" dependencies = [ - "iced_native", - "ouroboros", + "iced_graphics", + "iced_tiny_skia", + "iced_wgpu", + "log", + "raw-window-handle", + "thiserror", ] [[package]] -name = "iced_native" -version = "0.10.3" +name = "iced_runtime" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d012eb06da490fe46a695b39721c20da9643f35cf2ecb9d30618fdeb96170616" +checksum = "7c6c89853e1250c6fac82c5015fa2144517be9b33d4b8e456f10e198b23e28bd" dependencies = [ "iced_core", "iced_futures", - "iced_style", - "num-traits", "thiserror", - "twox-hash", - "unicode-segmentation", ] [[package]] name = "iced_style" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e37333dc2991201140302cd0d4cea051bd37ca3671d5008ec85df86d232ff30" +checksum = "d85c47d9d13e2281f75ddf98c865daf2101632bd2b855c401dd0b1c8b81a31a0" dependencies = [ "iced_core", "once_cell", @@ -2300,36 +2006,74 @@ dependencies = [ ] [[package]] -name = "iced_wgpu" -version = "0.10.0" +name = "iced_tiny_skia" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478803c56061f567ce5ddf223b20d11d3c118cc46bb0d0552370dc65cdc4cb9c" +checksum = "c7715f6222c9470bbbd75a39f70478fa0d1bdfb81a377a34fd1b090ffccc480b" +dependencies = [ + "bytemuck", + "cosmic-text", + "iced_graphics", + "kurbo", + "log", + "raw-window-handle", + "resvg", + "rustc-hash", + "softbuffer", + "tiny-skia 0.10.0", + "twox-hash", +] + +[[package]] +name = "iced_wgpu" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f7c5de46b997ed7b18e05ec67059dcdf3beeac51e917c21071b021bb848b9" dependencies = [ "bitflags 1.3.2", "bytemuck", - "encase", "futures", "glam", - "glyph_brush", + "glyphon", "guillotiere", "iced_graphics", - "iced_native", "log", - "raw-window-handle 0.5.2", + "lyon", + "once_cell", + "raw-window-handle", + "resvg", + "rustc-hash", + "twox-hash", "wgpu", - "wgpu_glyph", +] + +[[package]] +name = "iced_widget" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177219ae51c3ba08f228ab932354b360cc669e94aec50c01e7c9b675f074c7c" +dependencies = [ + "iced_renderer", + "iced_runtime", + "iced_style", + "num-traits", + "ouroboros", + "qrcode", + "thiserror", + "unicode-segmentation", ] [[package]] name = "iced_winit" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a59ea3a85149a6a1f9e92b6c740ce90f04e5c7d848cfd05742336863fceb955" +checksum = "ad0c884bcb14722a57192b40a5ef6b5e170fa2f01fe2ff28d6cdd9efe37acf70" dependencies = [ - "iced_futures", "iced_graphics", - "iced_native", + "iced_runtime", + "iced_style", "log", + "raw-window-handle", "thiserror", "web-sys", "winapi", @@ -2337,12 +2081,6 @@ dependencies = [ "winit", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.3.0" @@ -2374,9 +2112,9 @@ dependencies = [ [[package]] name = "imagesize" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72ad49b554c1728b1e83254a1b1565aea4161e28dabbfa171fc15fe62299caf" +checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" [[package]] name = "indexmap" @@ -2457,6 +2195,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + [[package]] name = "jpeg-decoder" version = "0.3.0" @@ -2529,32 +2276,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" dependencies = [ "libc", - "libloading", + "libloading 0.7.4", "pkg-config", ] -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - -[[package]] -name = "kurbo" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb348d766edbac91ba1eb83020d96f4f8867924d194393083c15a51f185e6a82" -dependencies = [ - "arrayvec 0.5.2", -] - [[package]] name = "kurbo" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d676038719d1c892f91e6e85121550143c75880b42f7feff6d413a078cf91fb3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", ] [[package]] @@ -2652,8 +2384,7 @@ dependencies = [ "flate2", "hex", "iced", - "iced_lazy", - "iced_native", + "iced_runtime", "jsonrpc 0.12.1", "liana", "liana_ui", @@ -2677,8 +2408,6 @@ dependencies = [ "bitcoin", "chrono", "iced", - "iced_lazy", - "iced_native", ] [[package]] @@ -2697,12 +2426,33 @@ dependencies = [ "winapi", ] +[[package]] +name = "libloading" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "libm" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.4.2", + "libc", + "redox_syscall 0.4.1", +] + [[package]] name = "libsqlite3-sys" version = "0.27.0" @@ -2743,12 +2493,6 @@ dependencies = [ "cc", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -2774,6 +2518,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "lru" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" +dependencies = [ + "hashbrown 0.14.0", +] + [[package]] name = "lyon" version = "1.0.1" @@ -2800,7 +2553,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "euclid", "num-traits", ] @@ -2868,6 +2621,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -2904,7 +2666,7 @@ dependencies = [ "bitflags 1.3.2", "block", "core-graphics-types", - "foreign-types 0.3.2", + "foreign-types", "log", "objc", ] @@ -2992,9 +2754,9 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b" [[package]] name = "naga" -version = "0.11.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5" +checksum = "bbcc2e0513220fd2b598e6068608d4462db20322c0e77e47f6f488dfcfc279cb" dependencies = [ "bit-set", "bitflags 1.3.2", @@ -3028,8 +2790,8 @@ dependencies = [ "bitflags 1.3.2", "jni-sys", "ndk-sys", - "num_enum", - "raw-window-handle 0.5.2", + "num_enum 0.5.11", + "raw-window-handle", "thiserror", ] @@ -3039,35 +2801,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-glue" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f" -dependencies = [ - "libc", - "log", - "ndk", - "ndk-context", - "ndk-macro", - "ndk-sys", - "once_cell", - "parking_lot 0.12.1", -] - -[[package]] -name = "ndk-macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" -dependencies = [ - "darling", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ndk-sys" version = "0.4.1+23.1.7779620" @@ -3141,7 +2874,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2473d39689a839f5a363aaef7d99f76d5611bf352286682b25a6644fec18b1d3" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", ] [[package]] @@ -3237,7 +2970,16 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", ] [[package]] @@ -3252,6 +2994,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.43", +] + [[package]] name = "objc" version = "0.2.7" @@ -3273,6 +3027,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" @@ -3313,12 +3093,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] -name = "ordered-float" -version = "3.6.0" +name = "orbclient" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13a384337e997e6860ffbaa83708b2ef329fd8c54cb67a5f64d421e0f943254f" +checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" dependencies = [ - "num-traits", + "libredox", ] [[package]] @@ -3331,37 +3111,28 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "osmesa-sys" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b" -dependencies = [ - "shared_library", -] - [[package]] name = "ouroboros" -version = "0.13.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f357ef82d1b4db66fbed0b8d542cbd3c22d0bf5b393b3c257b9ba4568e70c9c3" +checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954" dependencies = [ "aliasable", "ouroboros_macro", - "stable_deref_trait", + "static_assertions", ] [[package]] name = "ouroboros_macro" -version = "0.13.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44a0b52c2cbaef7dffa5fec1a43274afe8bd2a644fa9fc50a9ef4ff0269b1257" +checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8" dependencies = [ - "Inflector", + "heck", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.43", ] [[package]] @@ -3376,31 +3147,30 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e25e9fb15717794fae58ab55c26e044103aad13186fbb625893f9a3bbcc24228" dependencies = [ - "ttf-parser", + "ttf-parser 0.18.1", ] [[package]] name = "palette" -version = "0.6.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9cd68f7112581033f157e56c77ac4a5538ec5836a2e39284e65bd7d7275e49" +checksum = "3d38e6e5ca1612e2081cc31188f08c3cba630ce4ba44709a153f1a0f38d678f2" dependencies = [ "approx", - "num-traits", + "fast-srgb8", "palette_derive", "phf", ] [[package]] name = "palette_derive" -version = "0.6.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05eedf46a8e7c27f74af0c9cfcdb004ceca158cb1b918c6f68f8d7a549b3e427" +checksum = "e05d1c929301fee6830dafa764341118829b2535c216b0571e3821ecac5c885b" dependencies = [ - "find-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.43", ] [[package]] @@ -3770,6 +3540,15 @@ dependencies = [ "checked_int_cast", ] +[[package]] +name = "quick-xml" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.33" @@ -3816,23 +3595,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" [[package]] -name = "raw-window-handle" -version = "0.3.4" +name = "rangemap" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28f55143d0548dad60bb4fbdc835a3d7ac6acc3324506450c5fdd6e42903a76" -dependencies = [ - "libc", - "raw-window-handle 0.4.3", -] - -[[package]] -name = "raw-window-handle" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" -dependencies = [ - "cty", -] +checksum = "795915a3930a5d6bafd9053d37602fea3e61be2e5d4d788983a8ba9654c1c6f2" [[package]] name = "raw-window-handle" @@ -3877,6 +3643,15 @@ dependencies = [ "rand_core", ] +[[package]] +name = "read-fonts" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c044ab88c43e2eae05b34a17fc13598736679fdb03d71b49fcfe114443ec8a86" +dependencies = [ + "font-types", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -3895,6 +3670,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -3925,9 +3709,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "renderdoc-sys" -version = "0.7.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" +checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" [[package]] name = "reqwest" @@ -3970,9 +3754,9 @@ dependencies = [ [[package]] name = "resvg" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76888219c0881e22b0ceab06fddcfe83163cd81642bd60c7842387f9c968a72e" +checksum = "b6554f47c38eca56827eea7f285c2a3018b4e12e0e195cc105833c008be338f1" dependencies = [ "gif", "jpeg-decoder", @@ -3980,11 +3764,9 @@ dependencies = [ "pico-args", "png", "rgb", - "svgfilters", - "svgtypes 0.10.0", - "tiny-skia 0.8.4", + "svgtypes", + "tiny-skia 0.10.0", "usvg", - "usvg-text-layout", ] [[package]] @@ -4021,19 +3803,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rosvgtree" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdc23d1ace03d6b8153c7d16f0708cd80b61ee8e80304954803354e67e40d150" -dependencies = [ - "log", - "roxmltree", - "simplecss", - "siphasher", - "svgtypes 0.9.0", -] - [[package]] name = "roxmltree" version = "0.18.0" @@ -4142,7 +3911,24 @@ dependencies = [ "bitflags 1.3.2", "bytemuck", "smallvec", - "ttf-parser", + "ttf-parser 0.18.1", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-general-category", + "unicode-script", +] + +[[package]] +name = "rustybuzz" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82eea22c8f56965eeaf3a209b3d24508256c7b920fb3b6211b8ba0f7c0583250" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "libm", + "smallvec", + "ttf-parser 0.19.2", "unicode-bidi-mirroring", "unicode-ccc", "unicode-general-category", @@ -4155,15 +3941,6 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" -[[package]] -name = "safe_arch" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05" -dependencies = [ - "bytemuck", -] - [[package]] name = "scoped-tls" version = "1.0.1" @@ -4194,14 +3971,15 @@ dependencies = [ [[package]] name = "sctk-adwaita" -version = "0.4.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339" +checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" dependencies = [ - "crossfont", + "ab_glyph", "log", + "memmap2 0.5.10", "smithay-client-toolkit", - "tiny-skia 0.7.0", + "tiny-skia 0.8.4", ] [[package]] @@ -4304,27 +4082,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "servo-fontconfig" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c" -dependencies = [ - "libc", - "servo-fontconfig-sys", -] - -[[package]] -name = "servo-fontconfig-sys" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388" -dependencies = [ - "expat-sys", - "freetype-sys", - "pkg-config", -] - [[package]] name = "sha2" version = "0.10.8" @@ -4345,16 +4102,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_library" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -dependencies = [ - "lazy_static", - "libc", -] - [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -4430,10 +4177,10 @@ dependencies = [ "dlib", "lazy_static", "log", - "memmap2", + "memmap2 0.5.10", "nix 0.24.3", "pkg-config", - "wayland-client", + "wayland-client 0.29.5", "wayland-cursor", "wayland-protocols", ] @@ -4445,7 +4192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" dependencies = [ "smithay-client-toolkit", - "wayland-client", + "wayland-client 0.29.5", ] [[package]] @@ -4480,6 +4227,34 @@ dependencies = [ "winapi", ] +[[package]] +name = "softbuffer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2b953f6ba7285f0af131eb748aabd8ddaf53e0b81dda3ba5d803b0847d6559f" +dependencies = [ + "bytemuck", + "cfg_aliases", + "cocoa", + "core-graphics", + "fastrand", + "foreign-types", + "log", + "nix 0.26.2", + "objc", + "raw-window-handle", + "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.48.0", + "x11-dl", + "x11rb 0.11.1", +] + [[package]] name = "spin" version = "0.5.2" @@ -4515,12 +4290,6 @@ dependencies = [ "der", ] -[[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" @@ -4535,19 +4304,13 @@ checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" [[package]] name = "strict-num" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" dependencies = [ "float-cmp", ] -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "subtle" version = "2.4.1" @@ -4560,34 +4323,25 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" -[[package]] -name = "svgfilters" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639abcebc15fdc2df179f37d6f5463d660c1c79cd552c12343a4600827a04bce" -dependencies = [ - "float-cmp", - "rgb", -] - [[package]] name = "svgtypes" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ee29c1407a5b18ccfe5f6ac82ac11bab3b14407e09c209a6c1a32098b19734" +checksum = "ed4b0611e7f3277f68c0fa18e385d9e2d26923691379690039548f867cef02a7" dependencies = [ - "kurbo 0.8.0", + "kurbo", "siphasher", ] [[package]] -name = "svgtypes" -version = "0.10.0" +name = "swash" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ffacedcdcf1da6579c907279b4f3c5492fbce99fbbf227f5ed270a589c2765" +checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7" dependencies = [ - "kurbo 0.9.4", - "siphasher", + "read-fonts", + "yazi", + "zeno", ] [[package]] @@ -4612,6 +4366,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sys-locale" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" +dependencies = [ + "libc", +] + [[package]] name = "tar" version = "0.4.40" @@ -4706,21 +4469,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tiny-skia" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642680569bb895b16e4b9d181c60be1ed136fa0c9c7f11d004daf053ba89bf82" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "bytemuck", - "cfg-if", - "png", - "safe_arch", - "tiny-skia-path 0.7.0", -] - [[package]] name = "tiny-skia" version = "0.8.4" @@ -4728,7 +4476,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec", "bytemuck", "cfg-if", "png", @@ -4736,13 +4484,18 @@ dependencies = [ ] [[package]] -name = "tiny-skia-path" -version = "0.7.0" +name = "tiny-skia" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c114d32f0c2ee43d585367cb013dfaba967ab9f62b90d9af0d696e955e70fa6c" +checksum = "7db11798945fa5c3e5490c794ccca7c6de86d3afdd54b4eb324109939c6f37bc" dependencies = [ "arrayref", + "arrayvec", "bytemuck", + "cfg-if", + "log", + "png", + "tiny-skia-path 0.10.0", ] [[package]] @@ -4756,6 +4509,17 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tiny-skia-path" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f60aa35c89ac2687ace1a2556eaaea68e8c0d47408a2e3e7f5c98a489e7281c" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -4939,6 +4703,12 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" +[[package]] +name = "ttf-parser" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" + [[package]] name = "twox-hash" version = "1.6.3" @@ -4986,6 +4756,12 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.22" @@ -5054,35 +4830,63 @@ dependencies = [ [[package]] name = "usvg" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b6bb4e62619d9f68aa2d8a823fea2bff302340a1f2d45c264d5b0be170832e" +checksum = "14d09ddfb0d93bf84824c09336d32e42f80961a9d1680832eb24fdf249ce11e6" dependencies = [ "base64 0.21.6", + "log", + "pico-args", + "usvg-parser", + "usvg-text-layout", + "usvg-tree", + "xmlwriter", +] + +[[package]] +name = "usvg-parser" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d19bf93d230813599927d88557014e0908ecc3531666d47c634c6838bc8db408" +dependencies = [ "data-url", "flate2", "imagesize", - "kurbo 0.9.4", + "kurbo", "log", - "rctree", - "rosvgtree", - "strict-num", + "roxmltree", + "simplecss", + "siphasher", + "svgtypes", + "usvg-tree", ] [[package]] name = "usvg-text-layout" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195386e01bc35f860db024de275a76e7a31afdf975d18beb6d0e44764118b4db" +checksum = "035044604e89652c0a2959b8b356946997a52649ba6cade45928c2842376feb4" dependencies = [ "fontdb", - "kurbo 0.9.4", + "kurbo", "log", - "rustybuzz", + "rustybuzz 0.7.0", "unicode-bidi", "unicode-script", "unicode-vo", - "usvg", + "usvg-tree", +] + +[[package]] +name = "usvg-tree" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7939a7e4ed21cadb5d311d6339730681c3e24c3e81d60065be80e485d3fc8b92" +dependencies = [ + "rctree", + "strict-num", + "svgtypes", + "tiny-skia-path 0.10.0", ] [[package]] @@ -5211,6 +5015,21 @@ 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" @@ -5223,8 +5042,20 @@ dependencies = [ "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", + "nix 0.26.2", + "wayland-backend", + "wayland-scanner 0.30.1", ] [[package]] @@ -5236,7 +5067,7 @@ dependencies = [ "nix 0.24.3", "once_cell", "smallvec", - "wayland-sys", + "wayland-sys 0.29.5", ] [[package]] @@ -5246,20 +5077,10 @@ 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-egl" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402de949f81a012926d821a2d659f930694257e76dd92b6e0042ceb27be4107d" -dependencies = [ - "wayland-client", - "wayland-sys", -] - [[package]] name = "wayland-protocols" version = "0.29.5" @@ -5267,9 +5088,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ "bitflags 1.3.2", - "wayland-client", + "wayland-client 0.29.5", "wayland-commons", - "wayland-scanner", + "wayland-scanner 0.29.5", ] [[package]] @@ -5283,6 +5104,17 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "wayland-scanner" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + [[package]] name = "wayland-sys" version = "0.29.5" @@ -5294,6 +5126,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" @@ -5318,18 +5162,18 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "wgpu" -version = "0.15.1" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d745a1b6d91d85c33defbb29f0eee0450e1d2614d987e14bf6baf26009d132d7" +checksum = "480c965c9306872eb6255fa55e4b4953be55a8b64d57e61d7ff840d3dcc051cd" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "cfg-if", "js-sys", "log", "naga", "parking_lot 0.12.1", "profiling", - "raw-window-handle 0.5.2", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", @@ -5342,20 +5186,20 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.15.1" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff" +checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2" dependencies = [ - "arrayvec 0.7.4", + "arrayvec", "bit-vec", - "bitflags 1.3.2", + "bitflags 2.4.2", "codespan-reporting", - "fxhash", "log", "naga", "parking_lot 0.12.1", "profiling", - "raw-window-handle 0.5.2", + "raw-window-handle", + "rustc-hash", "smallvec", "thiserror", "web-sys", @@ -5365,21 +5209,20 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "0.15.4" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdcf61a283adc744bb5453dd88ea91f3f86d5ca6b027661c6c73c7734ae0288b" +checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448" dependencies = [ "android_system_properties", - "arrayvec 0.7.4", + "arrayvec", "ash", "bit-set", - "bitflags 1.3.2", + "bitflags 2.4.2", "block", "core-graphics-types", "d3d12", - "foreign-types 0.3.2", - "fxhash", - "glow 0.12.1", + "foreign-types", + "glow", "gpu-alloc", "gpu-allocator", "gpu-descriptor", @@ -5387,7 +5230,7 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading", + "libloading 0.8.1", "log", "metal", "naga", @@ -5395,8 +5238,9 @@ dependencies = [ "parking_lot 0.12.1", "profiling", "range-alloc", - "raw-window-handle 0.5.2", + "raw-window-handle", "renderdoc-sys", + "rustc-hash", "smallvec", "thiserror", "wasm-bindgen", @@ -5407,27 +5251,15 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.15.2" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32444e121b0bd00cb02c0de32fde457a9491bd44e03e7a5db6df9b1da2f6f110" +checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "js-sys", "web-sys", ] -[[package]] -name = "wgpu_glyph" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25440d5f32ec39de49c57c15c2d3f9133a7939b069b5ad07e5afd8b78fb8adc" -dependencies = [ - "bytemuck", - "glyph_brush", - "log", - "wgpu", -] - [[package]] name = "which" version = "4.4.0" @@ -5441,9 +5273,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -5487,15 +5319,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015dd4474dc6aa96fe19aae3a24587a088bd90331dba5a5cc60fb3a180234c4d" +checksum = "63287c9c4396ccf5346d035a9b0fcaead9e18377637f5eaa78b7ac65c873ff7d" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", "clipboard_x11", - "raw-window-handle 0.3.4", + "raw-window-handle", "thiserror", ] @@ -5517,19 +5349,6 @@ dependencies = [ "windows-targets 0.48.0", ] -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -5590,12 +5409,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -5608,12 +5421,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -5626,12 +5433,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -5644,12 +5445,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -5674,12 +5469,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -5694,12 +5483,13 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winit" -version = "0.27.5" +version = "0.28.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" dependencies = [ + "android-activity", "bitflags 1.3.2", - "cocoa", + "cfg_aliases", "core-foundation", "core-graphics", "dispatch", @@ -5708,20 +5498,21 @@ dependencies = [ "log", "mio", "ndk", - "ndk-glue", - "objc", + "objc2", "once_cell", - "parking_lot 0.12.1", + "orbclient", "percent-encoding", - "raw-window-handle 0.4.3", - "raw-window-handle 0.5.2", + "raw-window-handle", + "redox_syscall 0.3.5", "sctk-adwaita", "smithay-client-toolkit", "wasm-bindgen", - "wayland-client", + "wayland-client 0.29.5", + "wayland-commons", "wayland-protocols", + "wayland-scanner 0.29.5", "web-sys", - "windows-sys 0.36.1", + "windows-sys 0.45.0", "x11-dl", ] @@ -5744,15 +5535,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "wio" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" -dependencies = [ - "winapi", -] - [[package]] name = "x11-dl" version = "2.21.0" @@ -5776,6 +5558,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 = "x25519-dalek" version = "2.0.1" @@ -5796,12 +5603,6 @@ dependencies = [ "nom", ] -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" - [[package]] name = "xml-rs" version = "0.8.4" @@ -5814,6 +5615,24 @@ 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 = "zeno" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" + [[package]] name = "zerocopy" version = "0.7.32" diff --git a/gui/Cargo.toml b/gui/Cargo.toml index 9229176d..9a81707b 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -21,9 +21,8 @@ liana_ui = { path = "ui" } backtrace = "0.3" hex = "0.4.3" -iced = { version = "0.9", default-features= false, features = ["tokio", "glow", "svg", "qr_code", "image"] } -iced_native = "0.10" -iced_lazy = { version = "0.6"} +iced = { version = "0.10", default-features = false, features = ["tokio", "svg", "qr_code", "image", "lazy", "wgpu"] } +iced_runtime = "0.1.1" tokio = {version = "1.21.0", features = ["signal"]} serde = { version = "1.0", features = ["derive"] } @@ -48,9 +47,6 @@ bitcoin_hashes = "0.12" reqwest = { version = "0.11", default-features=false, features = ["rustls-tls"] } rust-ini = "0.19.0" -[patch.crates-io] -iced_futures = { git = "https://github.com/edouardparis/iced", branch = "fix-futures-recipe"} - [target.'cfg(windows)'.dependencies] zip = { version = "0.6", default-features=false, features = ["bzip2", "deflate"] } diff --git a/gui/shell.nix b/gui/shell.nix index 2c19d661..a9963822 100644 --- a/gui/shell.nix +++ b/gui/shell.nix @@ -9,7 +9,7 @@ let pkgs = import {}; in pkgs.mkShell rec { - buildInputs = [ + buildInputs = with pkgs; [ pkgs.expat pkgs.fontconfig pkgs.freetype @@ -17,6 +17,8 @@ pkgs.mkShell rec { pkgs.libGL pkgs.pkgconfig pkgs.udev + pkgs.wayland + pkgs.libxkbcommon pkgs.xorg.libX11 pkgs.xorg.libXcursor pkgs.xorg.libXi diff --git a/gui/src/app/view/psbt.rs b/gui/src/app/view/psbt.rs index 4b5378cf..7a22afd0 100644 --- a/gui/src/app/view/psbt.rs +++ b/gui/src/app/view/psbt.rs @@ -439,7 +439,9 @@ pub fn signatures<'a>( }, )), ) - .horizontal_scroll(scrollable::Properties::new().width(2).scroller_width(2)), + .direction(scrollable::Direction::Horizontal( + scrollable::Properties::new().width(2).scroller_width(2), + )), ) .padding(15) } else { @@ -594,7 +596,9 @@ pub fn path_view<'a>( ) .push(row_signed), ) - .horizontal_scroll(scrollable::Properties::new().width(2).scroller_width(2)) + .direction(scrollable::Direction::Horizontal( + scrollable::Properties::new().width(2).scroller_width(2), + )) .into() } diff --git a/gui/src/app/view/receive.rs b/gui/src/app/view/receive.rs index 03a8e3c2..8b710ce3 100644 --- a/gui/src/app/view/receive.rs +++ b/gui/src/app/view/receive.rs @@ -3,11 +3,10 @@ use std::collections::{HashMap, HashSet}; use iced::{ widget::{ qr_code::{self, QRCode}, - scrollable, + scrollable, Space, }, Alignment, Length, }; -use iced_native::widget::Space; use liana::miniscript::bitcoin::{ self, @@ -94,10 +93,11 @@ pub fn receive<'a>( Length::Fixed(10.0), )), ) - .horizontal_scroll( + .direction(scrollable::Direction::Horizontal( scrollable::Properties::new() - .scroller_width(5), - ), + .width(2) + .scroller_width(2), + )), ) .width(Length::Fill), ) diff --git a/gui/src/app/view/settings.rs b/gui/src/app/view/settings.rs index e5390e46..670e3f2e 100644 --- a/gui/src/app/view/settings.rs +++ b/gui/src/app/view/settings.rs @@ -633,9 +633,9 @@ pub fn wallet_settings<'a>( .push(text(descriptor.to_owned()).small()) .push(Space::with_height(Length::Fixed(5.0))), ) - .horizontal_scroll( + .direction(scrollable::Direction::Horizontal( scrollable::Properties::new().width(5).scroller_width(5), - ), + )), ) .push( Row::new() diff --git a/gui/src/installer/step/descriptor.rs b/gui/src/installer/step/descriptor.rs index 960f596e..c5167d05 100644 --- a/gui/src/installer/step/descriptor.rs +++ b/gui/src/installer/step/descriptor.rs @@ -1626,7 +1626,7 @@ impl From for Box { #[cfg(test)] mod tests { use super::*; - use iced_native::command::Action; + use iced_runtime::command::Action; use std::sync::{Arc, Mutex}; pub struct Sandbox { diff --git a/gui/src/installer/view.rs b/gui/src/installer/view.rs index 290a36ec..b5a936fa 100644 --- a/gui/src/installer/view.rs +++ b/gui/src/installer/view.rs @@ -319,7 +319,9 @@ pub fn define_descriptor<'a>( ) .padding(5), ) - .horizontal_scroll(Properties::new().width(3).scroller_width(3)), + .direction(scrollable::Direction::Horizontal( + Properties::new().width(3).scroller_width(3), + )), ), )) .spacing(10); @@ -436,7 +438,9 @@ pub fn recovery_path_view( ) .padding(5), ) - .horizontal_scroll(Properties::new().width(3).scroller_width(3)), + .direction(scrollable::Direction::Horizontal( + Properties::new().width(3).scroller_width(3), + )), ), ), ) @@ -568,9 +572,9 @@ pub fn signer_xpubs(xpubs: &[String]) -> Element { .push( Container::new( scrollable(Container::new(text(xpub).small()).padding(10)) - .horizontal_scroll( + .direction(scrollable::Direction::Horizontal( Properties::new().width(5).scroller_width(5), - ), + )), ) .width(Length::Fill), ) @@ -641,9 +645,9 @@ pub fn hardware_wallet_xpubs<'a>( .push( Container::new( scrollable(Container::new(text(xpub).small()).padding(10)) - .horizontal_scroll( + .direction(scrollable::Direction::Horizontal( Properties::new().width(5).scroller_width(5), - ), + )), ) .width(Length::Fill), ) @@ -1401,7 +1405,9 @@ pub fn defined_descriptor_key<'a>( .push(text(name).bold()) .push(Space::with_height(Length::Fixed(5.0))), ) - .horizontal_scroll(Properties::new().width(5).scroller_width(5)), + .direction(scrollable::Direction::Horizontal( + Properties::new().width(5).scroller_width(5), + )), ) .push(image::success_mark_icon().width(Length::Fixed(50.0))) .push(Space::with_width(Length::Fixed(1.0))), @@ -1997,8 +2003,8 @@ fn layout<'a>( mod threshsold_input { use iced::alignment::{self, Alignment}; + use iced::widget::{component, Component}; use iced::Length; - use iced_lazy::{self, Component}; use liana_ui::{component::text::*, icon, theme, widget::*}; pub struct ThresholdInput { @@ -2085,7 +2091,7 @@ mod threshsold_input { Message: 'a, { fn from(numeric_input: ThresholdInput) -> Self { - iced_lazy::component(numeric_input) + component(numeric_input) } } } diff --git a/gui/src/launcher.rs b/gui/src/launcher.rs index 032d719b..78190151 100644 --- a/gui/src/launcher.rs +++ b/gui/src/launcher.rs @@ -1,6 +1,7 @@ use std::path::PathBuf; use iced::{ + alignment::Horizontal, widget::{tooltip, Space}, Alignment, Command, Length, Subscription, }; @@ -330,7 +331,7 @@ impl DeleteWalletModal { .push(icon::circle_check_icon().style(color::GREEN)) .push(text("Wallet successfully deleted").style(color::GREEN)) }) - .align_x(iced_native::alignment::Horizontal::Center) + .align_x(Horizontal::Center) .width(Length::Fill), ), ) diff --git a/gui/src/logger.rs b/gui/src/logger.rs index 66ef12ca..9366c030 100644 --- a/gui/src/logger.rs +++ b/gui/src/logger.rs @@ -64,6 +64,7 @@ impl Logger { && !metadata.target().starts_with("iced_glow") && !metadata.target().starts_with("glow_glyph") && !metadata.target().starts_with("naga") + && !metadata.target().starts_with("winit") && !metadata.target().starts_with("mio") && !metadata.target().starts_with("ledger_transport_hid") })), diff --git a/gui/src/main.rs b/gui/src/main.rs index 0b90ceec..b7013489 100644 --- a/gui/src/main.rs +++ b/gui/src/main.rs @@ -90,12 +90,19 @@ pub enum Key { #[derive(Debug)] pub enum Message { CtrlC, + FontLoaded(Result<(), iced::font::Error>), Launch(Box), Install(Box), Load(Box), Run(Box), - Event(iced_native::Event), KeyPressed(Key), + Event(iced::Event), +} + +impl From> for Message { + fn from(value: Result<(), iced::font::Error>) -> Self { + Self::FontLoaded(value) + } } async fn ctrl_c() -> Result<(), ()> { @@ -121,17 +128,12 @@ impl Application for GUI { fn new((config, log_level): (Config, Option)) -> (GUI, Command) { let logger = Logger::setup(log_level.unwrap_or(LevelFilter::INFO)); - match config { + let mut cmds = font::loads(); + cmds.push(Command::perform(ctrl_c(), |_| Message::CtrlC)); + let state = match config { Config::Launcher(datadir_path) => { let launcher = Launcher::new(datadir_path); - ( - Self { - state: State::Launcher(Box::new(launcher)), - logger, - log_level, - }, - Command::perform(ctrl_c(), |_| Message::CtrlC), - ) + State::Launcher(Box::new(launcher)) } Config::Install(datadir_path, network) => { if !datadir_path.exists() { @@ -151,17 +153,8 @@ impl Application for GUI { log_level.unwrap_or(LevelFilter::INFO), ); let (install, command) = Installer::new(datadir_path, network); - ( - Self { - state: State::Installer(Box::new(install)), - logger, - log_level, - }, - Command::batch(vec![ - command.map(|msg| Message::Install(Box::new(msg))), - Command::perform(ctrl_c(), |_| Message::CtrlC), - ]), - ) + cmds.push(command.map(|msg| Message::Install(Box::new(msg)))); + State::Installer(Box::new(install)) } Config::Run(datadir_path, cfg, network) => { logger.set_running_mode( @@ -170,30 +163,24 @@ impl Application for GUI { log_level.unwrap_or_else(|| cfg.log_level().unwrap_or(LevelFilter::INFO)), ); let (loader, command) = Loader::new(datadir_path, cfg, network, None); - ( - Self { - state: State::Loader(Box::new(loader)), - logger, - log_level, - }, - Command::batch(vec![ - command.map(|msg| Message::Load(Box::new(msg))), - Command::perform(ctrl_c(), |_| Message::CtrlC), - ]), - ) + cmds.push(command.map(|msg| Message::Load(Box::new(msg)))); + State::Loader(Box::new(loader)) } - } + }; + ( + Self { + state, + logger, + log_level, + }, + Command::batch(cmds), + ) } fn update(&mut self, message: Self::Message) -> Command { match (&mut self.state, message) { (_, Message::CtrlC) - | ( - _, - Message::Event(iced_native::Event::Window( - iced_native::window::Event::CloseRequested, - )), - ) => { + | (_, Message::Event(iced::Event::Window(iced::window::Event::CloseRequested))) => { match &mut self.state { State::Loader(s) => s.stop(), State::Launcher(s) => s.stop(), @@ -309,19 +296,12 @@ impl Application for GUI { event::Status::Ignored, ) => Some(Message::KeyPressed(Key::Tab(modifiers.shift()))), ( - iced::Event::Window(iced_native::window::Event::CloseRequested), + iced::Event::Window(iced::window::Event::CloseRequested), event::Status::Ignored, ) => Some(Message::Event(event)), _ => None, }), ]) - .with_filter(|(event, _status)| { - matches!( - event, - iced::Event::Window(iced_native::window::Event::CloseRequested) - | iced::Event::Keyboard(_) - ) - }) } fn view(&self) -> Element { @@ -453,12 +433,20 @@ fn main() -> Result<(), Box> { setup_panic_hook(); let mut settings = Settings::with_flags((config, log_level)); - settings.id = Some("liana-gui".to_string()); settings.window.icon = Some(image::liana_app_icon()); settings.default_text_size = text::P1_SIZE.into(); - settings.default_font = Some(font::REGULAR_BYTES); + settings.default_font = liana_ui::font::REGULAR; settings.exit_on_close_request = false; + settings.id = Some("Liana".to_string()); + + #[cfg(target_os = "linux")] + { + settings.window.platform_specific = iced::window::PlatformSpecific { + application_id: "Liana".to_string(), + }; + } + if let Err(e) = GUI::run(settings) { return Err(format!("Failed to launch UI: {}", e).into()); }; diff --git a/gui/src/utils/sandbox.rs b/gui/src/utils/sandbox.rs index d37f775a..4fe9c625 100644 --- a/gui/src/utils/sandbox.rs +++ b/gui/src/utils/sandbox.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use iced_native::command::Action; +use iced_runtime::command::Action; use crate::{ app::{cache::Cache, message::Message, state::State, wallet::Wallet}, diff --git a/gui/ui/Cargo.toml b/gui/ui/Cargo.toml index 60bcd406..86552c9f 100644 --- a/gui/ui/Cargo.toml +++ b/gui/ui/Cargo.toml @@ -6,8 +6,6 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -iced = { version = "0.9", default_features = false, features = ["svg", "image", "glow"] } -iced_native = "0.10" -iced_lazy = { version = "0.6"} +iced = { version = "0.10", default-features = false, features = ["svg", "image", "lazy", "advanced"] } bitcoin = "0.31" chrono = "0.4" diff --git a/gui/ui/examples/design-system/Cargo.toml b/gui/ui/examples/design-system/Cargo.toml index 8f6232da..0c645a43 100644 --- a/gui/ui/examples/design-system/Cargo.toml +++ b/gui/ui/examples/design-system/Cargo.toml @@ -6,8 +6,7 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -iced = "0.9" -iced_native = "0.10" +iced = "0.10" web-sys = "0.3.61" chrono = "0.4" liana_ui = { path = "../.." } diff --git a/gui/ui/examples/design-system/src/main.rs b/gui/ui/examples/design-system/src/main.rs index 696bfdb3..87f0d23c 100644 --- a/gui/ui/examples/design-system/src/main.rs +++ b/gui/ui/examples/design-system/src/main.rs @@ -2,11 +2,12 @@ mod section; use iced::widget::{button, column, container, row, scrollable, text, Space}; use iced::{executor, Application, Command, Length, Settings, Subscription}; -use liana_ui::{component::text::*, image, theme, widget::*}; +use liana_ui::{component::text::*, font, image, theme, widget::*}; pub fn main() -> iced::Result { let mut settings = Settings::with_flags(Config {}); settings.default_text_size = P1_SIZE.into(); + settings.default_font = font::REGULAR; DesignSystem::run(settings) } @@ -21,11 +22,18 @@ struct DesignSystem { #[derive(Debug, Clone)] pub enum Message { - Event(iced_native::Event), + FontLoaded(Result<(), iced::font::Error>), + Event(iced::Event), Section(usize), Ignore, } +impl From> for Message { + fn from(res: Result<(), iced::font::Error>) -> Message { + Message::FontLoaded(res) + } +} + impl Application for DesignSystem { type Message = Message; type Theme = theme::Theme; @@ -49,6 +57,9 @@ impl Application for DesignSystem { ], current: 0, }; + #[allow(unused_mut)] + let mut cmds: Vec> = font::loads(); + #[cfg(target_arch = "wasm32")] { use iced_native::{command, window}; @@ -57,16 +68,12 @@ impl Application for DesignSystem { (window.inner_width().unwrap().as_f64().unwrap()) as u32, (window.inner_height().unwrap().as_f64().unwrap()) as u32, ); - ( - app, - Command::single(command::Action::Window(window::Action::Resize { - width, - height, - })), - ) + cmds.push(Command::single(command::Action::Window( + window::Action::Resize { width, height }, + ))); } - #[cfg(not(target_arch = "wasm32"))] - (app, Command::none()) + + (app, Command::batch(cmds)) } fn update(&mut self, message: Message) -> Command { @@ -76,10 +83,7 @@ impl Application for DesignSystem { self.current = i; } } - Message::Event(iced::Event::Window(iced_native::window::Event::Resized { - width, - height, - })) => { + Message::Event(iced::Event::Window(iced::window::Event::Resized { width, height })) => { #[cfg(target_arch = "wasm32")] { use iced_native::{command, window}; @@ -95,7 +99,7 @@ impl Application for DesignSystem { } fn subscription(&self) -> Subscription { - iced_native::subscription::events().map(Self::Message::Event) + iced::subscription::events().map(Self::Message::Event) } fn view(&self) -> Element { diff --git a/gui/ui/src/component/collapse.rs b/gui/ui/src/component/collapse.rs index 154ebcaa..0c04aeee 100644 --- a/gui/ui/src/component/collapse.rs +++ b/gui/ui/src/component/collapse.rs @@ -1,6 +1,5 @@ use crate::widget::*; -use iced::widget::column; -use iced_lazy::{self, Component}; +use iced::widget::{column, component, Component}; use std::marker::PhantomData; pub struct Collapse<'a, M, H, F, C> { @@ -78,6 +77,6 @@ where C: Fn() -> Element<'a, T>, { fn from(c: Collapse<'a, Message, H, F, C>) -> Self { - iced_lazy::component(c) + component(c) } } diff --git a/gui/ui/src/component/modal.rs b/gui/ui/src/component/modal.rs index 261bf819..56592b04 100644 --- a/gui/ui/src/component/modal.rs +++ b/gui/ui/src/component/modal.rs @@ -1,10 +1,13 @@ /// modal widget from https://github.com/iced-rs/iced/blob/master/examples/modal/ -use iced_native::alignment::Alignment; -use iced_native::widget::{self, Tree}; -use iced_native::{ - event, layout, mouse, overlay, renderer, Clipboard, Color, Element, Event, Layout, Length, - Point, Rectangle, Shell, Size, Widget, -}; +use iced::advanced::layout::{self, Layout}; +use iced::advanced::overlay; +use iced::advanced::renderer; +use iced::advanced::widget::{self, Tree, Widget}; +use iced::advanced::{self, Clipboard, Shell}; +use iced::alignment::Alignment; +use iced::event; +use iced::mouse; +use iced::{Color, Element, Event, Length, Point, Rectangle, Size}; /// A widget that centers a modal element over some base element pub struct Modal<'a, Message, Renderer> { @@ -35,7 +38,7 @@ impl<'a, Message, Renderer> Modal<'a, Message, Renderer> { impl<'a, Message, Renderer> Widget for Modal<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: advanced::Renderer, Message: Clone, { fn children(&self) -> Vec { @@ -60,33 +63,35 @@ where fn on_event( &mut self, - state: &mut Tree, + state: &mut widget::Tree, event: Event, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, + viewport: &Rectangle, ) -> event::Status { self.base.as_widget_mut().on_event( &mut state.children[0], event, layout, - cursor_position, + cursor, renderer, clipboard, shell, + viewport, ) } fn draw( &self, - state: &Tree, + state: &widget::Tree, renderer: &mut Renderer, - theme: &::Theme, + theme: &::Theme, style: &renderer::Style, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, viewport: &Rectangle, ) { self.base.as_widget().draw( @@ -95,7 +100,7 @@ where theme, style, layout, - cursor_position, + cursor, viewport, ); } @@ -119,16 +124,16 @@ where fn mouse_interaction( &self, - state: &Tree, + state: &widget::Tree, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> mouse::Interaction { self.base.as_widget().mouse_interaction( &state.children[0], layout, - cursor_position, + cursor, viewport, renderer, ) @@ -157,7 +162,7 @@ struct Overlay<'a, 'b, Message, Renderer> { impl<'a, 'b, Message, Renderer> overlay::Overlay for Overlay<'a, 'b, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: advanced::Renderer, Message: Clone, { fn layout(&self, renderer: &Renderer, _bounds: Size, position: Point) -> layout::Node { @@ -178,7 +183,7 @@ where &mut self, event: Event, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, @@ -187,7 +192,7 @@ where if let Some(message) = self.on_blur.as_ref() { if let Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) = &event { - if !content_bounds.contains(cursor_position) { + if !cursor.is_over(content_bounds) { shell.publish(message.clone()); return event::Status::Captured; } @@ -198,10 +203,11 @@ where self.tree, event, layout.children().next().unwrap(), - cursor_position, + cursor, renderer, clipboard, shell, + &layout.bounds(), ) } @@ -211,12 +217,12 @@ where theme: &Renderer::Theme, style: &renderer::Style, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, ) { renderer.fill_quad( renderer::Quad { bounds: layout.bounds(), - border_radius: renderer::BorderRadius::from(0.0), + border_radius: Default::default(), border_width: 0.0, border_color: Color::TRANSPARENT, }, @@ -232,7 +238,7 @@ where theme, style, layout.children().next().unwrap(), - cursor_position, + cursor, &layout.bounds(), ); } @@ -254,23 +260,33 @@ where fn mouse_interaction( &self, layout: Layout<'_>, - cursor_position: Point, + cursor: mouse::Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> mouse::Interaction { self.content.as_widget().mouse_interaction( self.tree, layout.children().next().unwrap(), - cursor_position, + cursor, viewport, renderer, ) } + + fn overlay<'c>( + &'c mut self, + layout: Layout<'_>, + renderer: &Renderer, + ) -> Option> { + self.content + .as_widget_mut() + .overlay(self.tree, layout.children().next().unwrap(), renderer) + } } impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> where - Renderer: 'a + iced_native::Renderer, + Renderer: 'a + advanced::Renderer, Message: 'a + Clone, { fn from(modal: Modal<'a, Message, Renderer>) -> Self { diff --git a/gui/ui/src/component/toast.rs b/gui/ui/src/component/toast.rs index 7a3e3fdd..d6dca6a5 100644 --- a/gui/ui/src/component/toast.rs +++ b/gui/ui/src/component/toast.rs @@ -2,10 +2,11 @@ use std::time::Instant; use super::theme::Theme; +use iced::advanced::widget::{Operation, Tree}; +use iced::advanced::{layout, mouse, overlay, renderer}; +use iced::advanced::{Clipboard, Layout, Shell, Widget}; +use iced::event::{self, Event}; use iced::{Alignment, Element, Length, Point, Rectangle, Size, Vector}; -use iced_native::widget::{Operation, Tree}; -use iced_native::{event, layout, mouse, overlay, renderer}; -use iced_native::{Clipboard, Event, Layout, Shell, Widget}; pub trait Toast { fn title(&self) -> &str; @@ -34,7 +35,7 @@ where impl<'a, Message, Renderer> Widget for Manager<'a, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: iced::advanced::Renderer, { fn width(&self) -> Length { self.content.as_widget().width() @@ -48,13 +49,13 @@ where self.content.as_widget().layout(renderer, limits) } - fn tag(&self) -> iced_native::widget::tree::Tag { + fn tag(&self) -> iced::advanced::widget::tree::Tag { struct Marker(Vec); - iced_native::widget::tree::Tag::of::() + iced::advanced::widget::tree::Tag::of::() } - fn state(&self) -> iced_native::widget::tree::State { - iced_native::widget::tree::State::new(Vec::>::new()) + fn state(&self) -> iced::advanced::widget::tree::State { + iced::advanced::widget::tree::State::new(Vec::>::new()) } fn children(&self) -> Vec { @@ -95,7 +96,7 @@ where renderer: &Renderer, operation: &mut dyn Operation, ) { - operation.container(None, &mut |operation| { + operation.container(None, layout.bounds(), &mut |operation| { self.content .as_widget() .operate(&mut state.children[0], layout, renderer, operation); @@ -107,10 +108,11 @@ where state: &mut Tree, event: Event, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, + viewport: &Rectangle, ) -> event::Status { self.content.as_widget_mut().on_event( &mut state.children[0], @@ -120,6 +122,7 @@ where renderer, clipboard, shell, + viewport, ) } @@ -127,10 +130,10 @@ where &self, state: &Tree, renderer: &mut Renderer, - theme: &::Theme, + theme: &::Theme, style: &renderer::Style, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, viewport: &Rectangle, ) { self.content.as_widget().draw( @@ -148,7 +151,7 @@ where &self, state: &Tree, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> mouse::Interaction { @@ -201,7 +204,7 @@ struct Overlay<'a, 'b, Message, Renderer> { impl<'a, 'b, Message, Renderer> overlay::Overlay for Overlay<'a, 'b, Message, Renderer> where - Renderer: iced_native::Renderer, + Renderer: iced::advanced::Renderer, { fn layout(&self, renderer: &Renderer, bounds: Size, position: Point) -> layout::Node { let limits = layout::Limits::new(Size::ZERO, bounds) @@ -224,11 +227,12 @@ where &mut self, event: Event, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, shell: &mut Shell<'_, Message>, ) -> event::Status { + let viewport = layout.bounds(); self.toasts .iter_mut() .zip(self.state.iter_mut()) @@ -246,6 +250,7 @@ where renderer, clipboard, &mut local_shell, + &viewport, ); if !local_shell.is_empty() { @@ -262,10 +267,10 @@ where fn draw( &self, renderer: &mut Renderer, - theme: &::Theme, + theme: &::Theme, style: &renderer::Style, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, ) { let viewport = layout.bounds(); @@ -291,9 +296,9 @@ where &mut self, layout: Layout<'_>, renderer: &Renderer, - operation: &mut dyn iced_native::widget::Operation, + operation: &mut dyn iced::advanced::widget::Operation, ) { - operation.container(None, &mut |operation| { + operation.container(None, layout.bounds(), &mut |operation| { self.toasts .iter() .zip(self.state.iter_mut()) @@ -309,7 +314,7 @@ where fn mouse_interaction( &self, layout: Layout<'_>, - cursor_position: Point, + cursor_position: iced::mouse::Cursor, viewport: &Rectangle, renderer: &Renderer, ) -> mouse::Interaction { @@ -330,7 +335,7 @@ where .unwrap_or_default() } - fn is_over(&self, layout: Layout<'_>, cursor_position: Point) -> bool { + fn is_over(&self, layout: Layout<'_>, _renderer: &Renderer, cursor_position: Point) -> bool { layout .children() .any(|layout| layout.bounds().contains(cursor_position)) @@ -339,7 +344,7 @@ where impl<'a, Message, Renderer> From> for Element<'a, Message, Renderer> where - Renderer: 'a + iced_native::Renderer, + Renderer: 'a + iced::advanced::Renderer, Message: 'a, { fn from(manager: Manager<'a, Message, Renderer>) -> Self { diff --git a/gui/ui/src/font.rs b/gui/ui/src/font.rs index 2b5ea5df..f055ebce 100644 --- a/gui/ui/src/font.rs +++ b/gui/ui/src/font.rs @@ -1,18 +1,37 @@ -use iced::Font; - -pub const BOLD: Font = Font::External { - name: "Bold", - bytes: include_bytes!("../static/fonts/IBMPlexSans-Bold.ttf"), +use iced::{ + font::{Family, Stretch, Weight}, + Command, Font, }; -pub const MEDIUM: Font = Font::External { - name: "Regular", - bytes: include_bytes!("../static/fonts/IBMPlexSans-Medium.ttf"), +pub const BOLD: Font = Font { + family: Family::Name("IBM Plex Sans"), + weight: Weight::Bold, + monospaced: false, + stretch: Stretch::Normal, }; +pub const MEDIUM: Font = Font { + family: Family::Name("IBM Plex Sans"), + weight: Weight::Medium, + monospaced: false, + stretch: Stretch::Normal, +}; + +pub const REGULAR: Font = Font::with_name("IBM Plex Sans"); + +pub const BOLD_BYTES: &[u8] = include_bytes!("../static/fonts/IBMPlexSans-Bold.ttf"); +pub const MEDIUM_BYTES: &[u8] = include_bytes!("../static/fonts/IBMPlexSans-Medium.ttf"); pub const REGULAR_BYTES: &[u8] = include_bytes!("../static/fonts/IBMPlexSans-Regular.ttf"); -pub const REGULAR: Font = Font::External { - name: "Regular", - bytes: REGULAR_BYTES, -}; +pub const ICONEX_ICONS_BYTES: &[u8] = include_bytes!("../static/icons/iconex/iconex-icons.ttf"); +pub const BOOTSTRAP_ICONS_BYTE: &[u8] = include_bytes!("../static/icons/bootstrap-icons.ttf"); + +pub fn loads> + 'static>() -> Vec> { + vec![ + iced::font::load(BOLD_BYTES).map(T::from), + iced::font::load(MEDIUM_BYTES).map(T::from), + iced::font::load(REGULAR_BYTES).map(T::from), + iced::font::load(ICONEX_ICONS_BYTES).map(T::from), + iced::font::load(BOOTSTRAP_ICONS_BYTE).map(T::from), + ] +} diff --git a/gui/ui/src/icon.rs b/gui/ui/src/icon.rs index c36900bc..1b09f48d 100644 --- a/gui/ui/src/icon.rs +++ b/gui/ui/src/icon.rs @@ -1,10 +1,7 @@ use crate::{component::text::P1_SIZE, widget::*}; use iced::{alignment, Font, Length}; -const BOOTSTRAP_ICONS: Font = Font::External { - name: "Bootstrap icons", - bytes: include_bytes!("../static/icons/bootstrap-icons.ttf"), -}; +const BOOTSTRAP_ICONS: Font = Font::with_name("bootstrap-icons"); fn bootstrap_icon(unicode: char) -> Text<'static> { Text::new(unicode.to_string()) @@ -118,10 +115,7 @@ pub fn previous_icon() -> Text<'static> { bootstrap_icon('\u{F284}') } -const ICONEX_ICONS: Font = Font::External { - name: "Iconex icons", - bytes: include_bytes!("../static/icons/iconex/iconex-icons.ttf"), -}; +const ICONEX_ICONS: Font = Font::with_name("Untitled1"); fn iconex_icon(unicode: char) -> Text<'static> { Text::new(unicode.to_string()) diff --git a/gui/ui/src/theme.rs b/gui/ui/src/theme.rs index e6a23982..998cd2da 100644 --- a/gui/ui/src/theme.rs +++ b/gui/ui/src/theme.rs @@ -45,7 +45,7 @@ impl iced::overlay::menu::StyleSheet for Theme { text_color: color::GREY_2, background: color::GREY_6.into(), border_width: 0.0, - border_radius: 25.0, + border_radius: 25.0.into(), border_color: color::GREY_2, selected_text_color: color::LIGHT_BLACK, selected_background: color::GREEN.into(), @@ -103,19 +103,19 @@ impl container::StyleSheet for Theme { match self { Theme::Light => match style { Container::Transparent => container::Appearance { - background: iced::Color::TRANSPARENT.into(), + background: Some(iced::Color::TRANSPARENT.into()), ..container::Appearance::default() }, Container::Background => container::Appearance { - background: color::GREY_2.into(), + background: Some(color::GREY_2.into()), ..container::Appearance::default() }, Container::Foreground => container::Appearance { - background: color::GREY_2.into(), + background: Some(color::GREY_2.into()), ..container::Appearance::default() }, Container::Border => container::Appearance { - background: iced::Color::TRANSPARENT.into(), + background: Some(iced::Color::TRANSPARENT.into()), border_width: 1.0, border_color: color::LIGHT_BLACK, ..container::Appearance::default() @@ -125,30 +125,30 @@ impl container::StyleSheet for Theme { Container::Pill(c) => c.appearance(self), Container::Notification(c) => c.appearance(self), Container::Custom(c) => container::Appearance { - background: (*c).into(), + background: Some((*c).into()), ..container::Appearance::default() }, Container::QrCode => container::Appearance { - background: color::WHITE.into(), - border_radius: 25.0, + background: Some(color::WHITE.into()), + border_radius: 25.0.into(), ..container::Appearance::default() }, }, Theme::Dark => match style { Container::Transparent => container::Appearance { - background: iced::Color::TRANSPARENT.into(), + background: Some(iced::Color::TRANSPARENT.into()), ..container::Appearance::default() }, Container::Background => container::Appearance { - background: color::LIGHT_BLACK.into(), + background: Some(color::LIGHT_BLACK.into()), ..container::Appearance::default() }, Container::Foreground => container::Appearance { - background: color::BLACK.into(), + background: Some(color::BLACK.into()), ..container::Appearance::default() }, Container::Border => container::Appearance { - background: iced::Color::TRANSPARENT.into(), + background: Some(iced::Color::TRANSPARENT.into()), border_width: 1.0, border_color: color::GREY_3, ..container::Appearance::default() @@ -158,12 +158,12 @@ impl container::StyleSheet for Theme { Container::Pill(c) => c.appearance(self), Container::Notification(c) => c.appearance(self), Container::Custom(c) => container::Appearance { - background: (*c).into(), + background: Some((*c).into()), ..container::Appearance::default() }, Container::QrCode => container::Appearance { - background: color::WHITE.into(), - border_radius: 25.0, + background: Some(color::WHITE.into()), + border_radius: 25.0.into(), ..container::Appearance::default() }, }, @@ -201,34 +201,34 @@ impl Notification { match theme { Theme::Light => match self { Self::Pending => container::Appearance { - background: color::GREEN.into(), + background: Some(iced::Background::Color(color::GREEN)), text_color: color::LIGHT_BLACK.into(), border_width: 1.0, border_color: color::GREEN, - border_radius: 25.0, + border_radius: 25.0.into(), }, Self::Error => container::Appearance { - background: color::ORANGE.into(), + background: Some(iced::Background::Color(color::ORANGE)), text_color: color::LIGHT_BLACK.into(), border_width: 1.0, border_color: color::ORANGE, - border_radius: 25.0, + border_radius: 25.0.into(), }, }, Theme::Dark => match self { Self::Pending => container::Appearance { - background: color::GREEN.into(), + background: Some(iced::Background::Color(color::GREEN)), text_color: color::LIGHT_BLACK.into(), border_width: 1.0, border_color: color::GREEN, - border_radius: 25.0, + border_radius: 25.0.into(), }, Self::Error => container::Appearance { - background: color::ORANGE.into(), + background: Some(iced::Background::Color(color::ORANGE)), text_color: color::LIGHT_BLACK.into(), border_width: 1.0, border_color: color::ORANGE, - border_radius: 25.0, + border_radius: 25.0.into(), }, }, } @@ -250,65 +250,65 @@ impl Card { match theme { Theme::Light => match self { Card::Simple => container::Appearance { - background: color::GREY_2.into(), + background: Some(color::GREY_2.into()), ..container::Appearance::default() }, Card::Border => container::Appearance { - background: iced::Color::TRANSPARENT.into(), - border_radius: 10.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 10.0.into(), border_color: color::GREY_2, border_width: 1.0, ..container::Appearance::default() }, Card::Invalid => container::Appearance { - background: color::GREY_2.into(), + background: Some(color::GREY_2.into()), text_color: color::BLACK.into(), border_width: 1.0, border_color: color::RED, ..container::Appearance::default() }, Card::Error => container::Appearance { - background: color::GREY_2.into(), + background: Some(color::GREY_2.into()), text_color: color::RED.into(), border_width: 1.0, border_color: color::RED, ..container::Appearance::default() }, Card::Warning => container::Appearance { - background: color::ORANGE.into(), + background: Some(color::ORANGE.into()), text_color: color::GREY_2.into(), ..container::Appearance::default() }, }, Theme::Dark => match self { Card::Simple => container::Appearance { - background: color::GREY_6.into(), - border_radius: 25.0, + background: Some(color::GREY_6.into()), + border_radius: 25.0.into(), ..container::Appearance::default() }, Card::Border => container::Appearance { - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_color: color::GREY_5, border_width: 1.0, ..container::Appearance::default() }, Card::Invalid => container::Appearance { - background: color::LIGHT_BLACK.into(), + background: Some(color::LIGHT_BLACK.into()), text_color: color::RED.into(), border_width: 1.0, - border_radius: 25.0, + border_radius: 25.0.into(), border_color: color::RED, }, Card::Error => container::Appearance { - background: color::LIGHT_BLACK.into(), + background: Some(color::LIGHT_BLACK.into()), text_color: color::RED.into(), border_width: 1.0, border_color: color::RED, ..container::Appearance::default() }, Card::Warning => container::Appearance { - background: color::ORANGE.into(), + background: Some(color::ORANGE.into()), text_color: color::LIGHT_BLACK.into(), ..container::Appearance::default() }, @@ -328,13 +328,13 @@ impl Badge { fn appearance(&self, _theme: &Theme) -> iced::widget::container::Appearance { match self { Self::Standard => container::Appearance { - border_radius: 40.0, - background: color::GREY_4.into(), + border_radius: 40.0.into(), + background: Some(color::GREY_4.into()), ..container::Appearance::default() }, Self::Bitcoin => container::Appearance { - border_radius: 40.0, - background: color::ORANGE.into(), + border_radius: 40.0.into(), + background: Some(color::ORANGE.into()), text_color: iced::Color::WHITE.into(), ..container::Appearance::default() }, @@ -355,27 +355,27 @@ impl Pill { fn appearance(&self, _theme: &Theme) -> iced::widget::container::Appearance { match self { Self::Primary => container::Appearance { - background: color::GREEN.into(), - border_radius: 25.0, + background: Some(color::GREEN.into()), + border_radius: 25.0.into(), text_color: color::LIGHT_BLACK.into(), ..container::Appearance::default() }, Self::Success => container::Appearance { - background: color::GREEN.into(), - border_radius: 25.0, + background: Some(color::GREEN.into()), + border_radius: 25.0.into(), text_color: color::LIGHT_BLACK.into(), ..container::Appearance::default() }, Self::Simple => container::Appearance { - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::GREY_3, text_color: color::GREY_3.into(), }, Self::Warning => container::Appearance { - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::RED, text_color: color::RED.into(), @@ -420,10 +420,10 @@ impl scrollable::StyleSheet for Theme { background: None, border_width: 0.0, border_color: color::GREY_7, - border_radius: 10.0, + border_radius: 10.0.into(), scroller: scrollable::Scroller { color: color::GREY_7, - border_radius: 10.0, + border_radius: 10.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, }, @@ -454,7 +454,7 @@ impl pick_list::StyleSheet for Theme { background: color::GREEN.into(), border_width: 1.0, border_color: color::GREY_7, - border_radius: 25.0, + border_radius: 25.0.into(), text_color: iced::Color::BLACK, }, PickList::Invalid => pick_list::Appearance { @@ -463,7 +463,7 @@ impl pick_list::StyleSheet for Theme { background: color::GREY_6.into(), border_width: 1.0, border_color: color::RED, - border_radius: 25.0, + border_radius: 25.0.into(), text_color: color::RED, }, PickList::Secondary => pick_list::Appearance { @@ -472,7 +472,7 @@ impl pick_list::StyleSheet for Theme { background: color::TRANSPARENT.into(), border_width: 1.0, border_color: color::GREY_3, - border_radius: 25.0, + border_radius: 25.0.into(), text_color: color::GREY_2, }, } @@ -497,7 +497,7 @@ impl checkbox::StyleSheet for Theme { border_color: iced::Color::TRANSPARENT, icon_color: color::GREY_4, text_color: None, - border_radius: 4.0, + border_radius: 4.0.into(), } } else { checkbox::Appearance { @@ -506,7 +506,7 @@ impl checkbox::StyleSheet for Theme { border_color: iced::Color::TRANSPARENT, icon_color: color::GREEN, text_color: None, - border_radius: 4.0, + border_radius: 4.0.into(), } } } @@ -538,8 +538,8 @@ impl button::StyleSheet for Theme { Theme::Dark => match style { Button::Primary => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::GREY_7, text_color: color::GREY_2, @@ -547,8 +547,8 @@ impl button::StyleSheet for Theme { Button::Secondary | Button::SecondaryDestructive | Button::Border => { button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::GREY_7, text_color: color::GREY_2, @@ -556,24 +556,24 @@ impl button::StyleSheet for Theme { } Button::Destructive => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::RED, text_color: color::RED, }, Button::Transparent => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::GREY_2, }, Button::TransparentBorder => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::WHITE, @@ -582,8 +582,8 @@ impl button::StyleSheet for Theme { if *active { button::Appearance { shadow_offset: iced::Vector::default(), - background: color::LIGHT_BLACK.into(), - border_radius: 25.0, + background: Some(color::LIGHT_BLACK.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::WHITE, @@ -591,8 +591,8 @@ impl button::StyleSheet for Theme { } else { button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::WHITE, @@ -609,48 +609,48 @@ impl button::StyleSheet for Theme { Theme::Dark => match style { Button::Primary => button::Appearance { shadow_offset: iced::Vector::default(), - background: color::GREEN.into(), - border_radius: 25.0, + background: Some(color::GREEN.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::LIGHT_BLACK, }, Button::Secondary => button::Appearance { shadow_offset: iced::Vector::default(), - background: color::GREEN.into(), - border_radius: 25.0, + background: Some(color::GREEN.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::LIGHT_BLACK, }, Button::Destructive | Button::SecondaryDestructive => button::Appearance { shadow_offset: iced::Vector::default(), - background: color::RED.into(), - border_radius: 25.0, + background: Some(color::RED.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::LIGHT_BLACK, }, Button::Transparent => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::GREY_2, }, Button::TransparentBorder | Button::Border => button::Appearance { shadow_offset: iced::Vector::default(), - background: iced::Color::TRANSPARENT.into(), - border_radius: 25.0, + background: Some(iced::Color::TRANSPARENT.into()), + border_radius: 25.0.into(), border_width: 1.0, border_color: color::GREEN, text_color: color::WHITE, }, Button::Menu(_) => button::Appearance { shadow_offset: iced::Vector::default(), - background: color::LIGHT_BLACK.into(), - border_radius: 25.0, + background: Some(color::LIGHT_BLACK.into()), + border_radius: 25.0.into(), border_width: 0.0, border_color: iced::Color::TRANSPARENT, text_color: color::WHITE, @@ -674,14 +674,14 @@ impl text_input::StyleSheet for Theme { Form::Simple => text_input::Appearance { icon_color: color::GREY_7, background: iced::Background::Color(iced::Color::TRANSPARENT), - border_radius: 25.0, + border_radius: 25.0.into(), border_width: 1.0, border_color: color::GREY_7, }, Form::Invalid => text_input::Appearance { icon_color: color::GREY_7, background: iced::Background::Color(iced::Color::TRANSPARENT), - border_radius: 25.0, + border_radius: 25.0.into(), border_width: 1.0, border_color: color::RED, }, @@ -729,7 +729,7 @@ impl progress_bar::StyleSheet for Theme { progress_bar::Appearance { background: color::GREY_6.into(), bar: color::GREEN.into(), - border_radius: 10.0, + border_radius: 10.0.into(), } } } @@ -746,7 +746,7 @@ impl slider::StyleSheet for Theme { let handle = slider::Handle { shape: slider::HandleShape::Rectangle { width: 8, - border_radius: 4.0, + border_radius: 4.0.into(), }, color: color::BLACK, border_color: color::GREEN, @@ -755,6 +755,7 @@ impl slider::StyleSheet for Theme { slider::Appearance { rail: slider::Rail { colors: (color::GREEN, iced::Color::TRANSPARENT), + border_radius: 4.0.into(), width: 2.0, }, handle, @@ -764,7 +765,7 @@ impl slider::StyleSheet for Theme { let handle = slider::Handle { shape: slider::HandleShape::Rectangle { width: 8, - border_radius: 4.0, + border_radius: 4.0.into(), }, color: color::GREEN, border_color: color::GREEN, @@ -773,6 +774,7 @@ impl slider::StyleSheet for Theme { slider::Appearance { rail: slider::Rail { colors: (color::GREEN, iced::Color::TRANSPARENT), + border_radius: 4.0.into(), width: 2.0, }, handle, @@ -782,7 +784,7 @@ impl slider::StyleSheet for Theme { let handle = slider::Handle { shape: slider::HandleShape::Rectangle { width: 8, - border_radius: 4.0, + border_radius: 4.0.into(), }, color: color::GREEN, border_color: color::GREEN, @@ -791,6 +793,7 @@ impl slider::StyleSheet for Theme { slider::Appearance { rail: slider::Rail { colors: (color::GREEN, iced::Color::TRANSPARENT), + border_radius: 4.0.into(), width: 2.0, }, handle,