diff --git a/Cargo.lock b/Cargo.lock index 69a2117..2189280 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -220,9 +220,9 @@ dependencies = [ [[package]] name = "ashpd" -version = "0.13.9" +version = "0.13.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bdf0fd848239dcd5e64eeeee35dbc00378ebcc6f3aa4ead0a305eec83d0cfb" +checksum = "3118453e020b8e3e0da25ef9a1d0d51d668874358af11aded9d91a8b9c25f323" dependencies = [ "enumflags2", "futures-channel", @@ -283,9 +283,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" +checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" dependencies = [ "compression-codecs", "compression-core", @@ -602,9 +602,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.16.2" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f" dependencies = [ "aws-lc-sys", "zeroize", @@ -612,9 +612,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7" dependencies = [ "cc", "cmake", @@ -661,7 +661,7 @@ version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cexpr", "clang-sys", "itertools 0.13.0", @@ -732,20 +732,20 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ "serde_core", ] [[package]] name = "bitstream-io" -version = "4.9.0" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" +checksum = "7eff00be299a18769011411c9def0d827e8f2d7bf0c3dbf53633147a8867fd1f" dependencies = [ - "core2", + "no_std_io2", ] [[package]] @@ -794,6 +794,16 @@ dependencies = [ "piper", ] +[[package]] +name = "borsh" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +dependencies = [ + "bytes", + "cfg_aliases", +] + [[package]] name = "bstr" version = "1.12.1" @@ -875,7 +885,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "polling", "rustix 1.1.4", "slab", @@ -923,9 +933,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.60" +version = "1.2.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" dependencies = [ "find-msvc-tools", "jobserver", @@ -1082,9 +1092,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -1104,9 +1114,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1151,7 +1161,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "cocoa-foundation 0.2.0", "core-foundation 0.10.0", @@ -1181,7 +1191,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "core-foundation 0.10.0", "core-graphics-types 0.2.0", @@ -1203,7 +1213,7 @@ dependencies = [ [[package]] name = "collections" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "indexmap", "rustc-hash 2.1.2", @@ -1263,9 +1273,9 @@ dependencies = [ [[package]] name = "compression-codecs" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" +checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" dependencies = [ "bzip2", "compression-core", @@ -1276,9 +1286,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" [[package]] name = "concurrent-queue" @@ -1461,7 +1471,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.0", "core-graphics-types 0.2.0", "foreign-types", @@ -1474,7 +1484,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32eb7c354ae9f6d437a6039099ce7ecd049337a8109b23d73e48e8ffba8e9cd5" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.9.4", "core-graphics-types 0.1.3", "foreign-types", @@ -1498,7 +1508,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.0", "libc", ] @@ -1509,7 +1519,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4416167a69126e617f8d0a214af0e3c1dbdeffcb100ddf72dcd1a1ac9893c146" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "cfg-if", "core-foundation 0.10.0", @@ -1542,15 +1552,6 @@ dependencies = [ "metal", ] -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - [[package]] name = "core_maths" version = "0.1.1" @@ -1566,7 +1567,7 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d8c4e3a1d02f5269ed15c2d70b4647167856f66f228dcdf99050ab77bbb5a56" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "fontdb", "harfrust", "linebender_resource_handle", @@ -1670,9 +1671,9 @@ checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" [[package]] name = "data-encoding" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] name = "data-url" @@ -1712,7 +1713,7 @@ dependencies = [ [[package]] name = "derive_refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "proc-macro2", "quote", @@ -1751,15 +1752,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" @@ -1770,14 +1762,12 @@ dependencies = [ ] [[package]] -name = "dirs-sys" -version = "0.3.7" +name = "dirs" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "libc", - "redox_users", - "winapi", + "dirs-sys 0.5.0", ] [[package]] @@ -1788,10 +1778,22 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", "option-ext", - "redox_users", + "redox_users 0.4.6", "windows-sys 0.48.0", ] +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.2", + "windows-sys 0.61.2", +] + [[package]] name = "dispatch" version = "0.2.0" @@ -1804,7 +1806,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "libc", "objc2", @@ -1836,7 +1838,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b" dependencies = [ - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1910,14 +1912,14 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "embed-resource" -version = "3.0.8" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63a1d0de4f2249aa0ff5884d7080814f446bb241a559af6c170a41e878ed2d45" +checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.9.12+spec-1.1.0", + "toml 1.1.2+spec-1.1.0", "vswhom", "winreg", ] @@ -2172,7 +2174,7 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "rustc_version", ] @@ -2257,9 +2259,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "font-types" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9237c6d82152100c691fb77ea18037b402bcc7257d2c876a4ffac81bc22a1c" +checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7" dependencies = [ "bytemuck", ] @@ -2685,7 +2687,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2696,19 +2698,19 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] name = "gpui" version = "0.2.2" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "async-channel 2.5.0", "async-task", "bindgen", - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "cbindgen", "chrono", @@ -2750,7 +2752,7 @@ dependencies = [ "pollster 0.4.0", "postage", "profiling", - "rand 0.9.2", + "rand 0.9.4", "raw-window-handle", "refineable", "regex", @@ -2783,12 +2785,12 @@ dependencies = [ [[package]] name = "gpui_linux" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "as-raw-xcb-connection", "ashpd", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "calloop", "calloop-wayland-source", @@ -2798,6 +2800,7 @@ dependencies = [ "gpui", "gpui_wgpu", "http_client", + "image", "itertools 0.14.0", "libc", "log", @@ -2831,7 +2834,7 @@ dependencies = [ [[package]] name = "gpui_macos" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "async-task", @@ -2874,7 +2877,7 @@ dependencies = [ [[package]] name = "gpui_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -2885,7 +2888,7 @@ dependencies = [ [[package]] name = "gpui_platform" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "console_error_panic_hook", "gpui", @@ -2898,18 +2901,17 @@ dependencies = [ [[package]] name = "gpui_shared_string" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ - "derive_more", - "gpui_util", "schemars", "serde", + "smol_str", ] [[package]] name = "gpui_tokio" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "gpui", @@ -2920,7 +2922,7 @@ dependencies = [ [[package]] name = "gpui_util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "log", @@ -2929,7 +2931,7 @@ dependencies = [ [[package]] name = "gpui_web" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "console_error_panic_hook", @@ -2953,7 +2955,7 @@ dependencies = [ [[package]] name = "gpui_wgpu" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "bytemuck", @@ -2981,7 +2983,7 @@ dependencies = [ [[package]] name = "gpui_windows" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "collections", @@ -2992,7 +2994,7 @@ dependencies = [ "itertools 0.14.0", "log", "parking_lot", - "rand 0.9.2", + "rand 0.9.4", "raw-window-handle", "smallvec", "util", @@ -3005,9 +3007,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.18.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12101ecc8225ea6d675bc70263074eab6169079621c2186fe0c66590b2df9681" +checksum = "b40ca9252762c466af32d0b1002e91e4e1bc5398f77455e55474deb466355ff5" [[package]] name = "h2" @@ -3046,7 +3048,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "core_maths", "read-fonts", @@ -3141,7 +3143,7 @@ version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d4f449bab7320c56003d37732a917e18798e2f1709d80263face2b4f9436ddb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "byteorder", "heed-traits", "heed-types", @@ -3259,7 +3261,7 @@ dependencies = [ [[package]] name = "http_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "async-compression", @@ -3284,7 +3286,7 @@ dependencies = [ [[package]] name = "http_client_tls" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "rustls", "rustls-platform-verifier", @@ -3319,20 +3321,19 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", "hyper-util", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.6", + "webpki-roots 1.0.7", ] [[package]] @@ -3842,15 +3843,15 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libbz2-rs-sys" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" +checksum = "b3a6a8c165077efc8f3a971534c50ea6a1a18b329ef4a66e897a7e3a1494565f" [[package]] name = "libc" -version = "0.2.184" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libfuzzer-sys" @@ -3884,7 +3885,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "libc", "plain", "redox_syscall 0.7.4", @@ -3993,9 +3994,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" [[package]] name = "lru-slab" @@ -4124,7 +4125,7 @@ dependencies = [ [[package]] name = "media" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "bindgen", @@ -4175,7 +4176,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4244,7 +4245,7 @@ source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea7 dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -4270,7 +4271,7 @@ checksum = "aa2630921705b9b01dcdd0b6864b9562ca3c1951eecd0f0c4f5f04f61e412647" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -4329,7 +4330,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", @@ -4341,12 +4342,21 @@ version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", ] +[[package]] +name = "no_std_io2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b51ed7824b6e07d354605f4abb3d9d300350701299da96642ee084f5ce631550" +dependencies = [ + "memchr", +] + [[package]] name = "nom" version = "7.1.3" @@ -4375,7 +4385,7 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "nostr" version = "0.44.1" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "aes", "base64", @@ -4386,7 +4396,7 @@ dependencies = [ "chacha20", "chacha20poly1305", "faster-hex", - "rand 0.9.2", + "rand 0.9.4", "scrypt", "secp256k1", "serde", @@ -4399,7 +4409,7 @@ dependencies = [ [[package]] name = "nostr-blossom" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "base64", "nostr", @@ -4410,7 +4420,7 @@ dependencies = [ [[package]] name = "nostr-connect" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "async-utility", "futures-core", @@ -4423,7 +4433,7 @@ dependencies = [ [[package]] name = "nostr-database" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "btreecap", "flatbuffers", @@ -4433,7 +4443,7 @@ dependencies = [ [[package]] name = "nostr-gossip" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "nostr", ] @@ -4441,7 +4451,7 @@ dependencies = [ [[package]] name = "nostr-gossip-memory" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "indexmap", "lru", @@ -4453,7 +4463,7 @@ dependencies = [ [[package]] name = "nostr-lmdb" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "async-utility", "flume 0.12.0", @@ -4467,7 +4477,7 @@ dependencies = [ [[package]] name = "nostr-sdk" version = "0.44.1" -source = "git+https://github.com/rust-nostr/nostr#e89a8ad1838277eee7b08a35fc0617120abdc60c" +source = "git+https://github.com/rust-nostr/nostr#c24f879327b36717913de631be158bd88af8c2d2" dependencies = [ "async-utility", "async-wsocket", @@ -4537,7 +4547,7 @@ dependencies = [ "num-iter", "num-traits", "once_cell", - "rand 0.9.2", + "rand 0.9.4", "serde", "smallvec", "zeroize", @@ -4660,7 +4670,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "dispatch2", "objc2", ] @@ -4677,7 +4687,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2", "objc2-core-foundation", ] @@ -4688,7 +4698,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "objc2", "objc2-foundation", @@ -4700,7 +4710,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "objc2", "objc2-core-foundation", "objc2-foundation", @@ -4795,9 +4805,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" -version = "5.3.3" +version = "5.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +checksum = "9f3bab717c29a857abf75fcef718d441ec7cb2725f937343c734740a985d37fd" dependencies = [ "is-wsl", "libc", @@ -4925,9 +4935,9 @@ dependencies = [ [[package]] name = "pathfinder_simd" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf9027960355bf3afff9841918474a81a5f972ac6d226d518060bba758b5ad57" +checksum = "4500030c302e4af1d423f36f3b958d1aecb6c04184356ed5a833bf6b60435777" dependencies = [ "rustc_version", ] @@ -4951,7 +4961,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "collections", "serde", @@ -4985,7 +4995,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -5005,7 +5015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -5081,9 +5091,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plain" @@ -5110,7 +5120,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crc32fast", "fdeflate", "flate2", @@ -5162,9 +5172,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] @@ -5281,9 +5291,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852766467df634d74f0b2d7819bf8dc483a0eb2e3b0f50f756f9cfe8b0d18d8" +checksum = "645dbe486e346d9b5de3ef16ede18c26e6c70ad97418f4874b8b1889d6e761ea" dependencies = [ "ar_archive_writer", "cc", @@ -5295,7 +5305,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "getopts", "memchr", "pulldown-cmark-escape", @@ -5310,9 +5320,9 @@ checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" [[package]] name = "pxfm" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" +checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" [[package]] name = "qoi" @@ -5385,7 +5395,7 @@ dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.2", + "rand 0.9.4", "ring", "rustc-hash 2.1.2", "rustls", @@ -5434,9 +5444,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -5445,9 +5455,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.5", @@ -5530,7 +5540,7 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha 0.9.0", "simd_helpers", "thiserror 2.0.18", @@ -5573,9 +5583,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -5617,7 +5627,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -5626,7 +5636,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -5640,6 +5650,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + [[package]] name = "ref-cast" version = "1.0.25" @@ -5663,7 +5684,7 @@ dependencies = [ [[package]] name = "refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "derive_refineable", ] @@ -5756,13 +5777,13 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.6", + "webpki-roots 1.0.7", ] [[package]] name = "reqwest_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "bytes", @@ -5820,7 +5841,7 @@ dependencies = [ [[package]] name = "rope" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "heapless 0.9.2", "log", @@ -5916,7 +5937,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -5929,7 +5950,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys 0.12.1", @@ -5938,9 +5959,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e" dependencies = [ "aws-lc-rs", "log", @@ -5975,9 +5996,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "web-time", "zeroize", @@ -6012,9 +6033,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.11" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring", @@ -6034,7 +6055,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "core_maths", "log", @@ -6082,7 +6103,7 @@ dependencies = [ [[package]] name = "scheduler" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "async-task", "backtrace", @@ -6090,7 +6111,7 @@ dependencies = [ "flume 0.11.1", "futures", "parking_lot", - "rand 0.9.2", + "rand 0.9.4", "web-time", ] @@ -6198,7 +6219,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -6528,6 +6549,10 @@ name = "smol_str" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" +dependencies = [ + "borsh", + "serde_core", +] [[package]] name = "socket2" @@ -6563,7 +6588,7 @@ version = "0.4.0+sdk-1.4.341.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -6574,15 +6599,15 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d74a23609d509411d10e2176dc2a4346e3b4aea2e7b1869f19fdedbc71c013" +checksum = "640c8cdd92b6b12f5bcb1803ca3bbf5ab96e5e6b6b96b9ab77dabe9e880b3190" dependencies = [ "cc", "cfg-if", "libc", "psm", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6683,7 +6708,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sum_tree" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "heapless 0.9.2", "log", @@ -6866,7 +6891,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -6883,9 +6908,9 @@ dependencies = [ [[package]] name = "taffy" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13e5d13f79d558b5d353a98072ca8ca0e99da429467804de959aa8c83c9a004" +checksum = "aea22054047c16c3f34d3ac473a2170be1424b1115b2a3adcf28cfb067c88859" dependencies = [ "arrayvec", "grid", @@ -7100,9 +7125,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.51.1" +version = "1.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" dependencies = [ "bytes", "libc", @@ -7201,17 +7226,17 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.12+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", "serde_spanned 1.1.1", - "toml_datetime 0.7.5+spec-1.1.0", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", - "winnow 0.7.15", + "winnow 1.0.2", ] [[package]] @@ -7223,15 +7248,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -7264,7 +7280,7 @@ dependencies = [ "indexmap", "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] @@ -7273,7 +7289,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] @@ -7309,7 +7325,7 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytes", "futures-util", "http", @@ -7432,7 +7448,7 @@ dependencies = [ "http", "httparse", "log", - "rand 0.9.2", + "rand 0.9.4", "rustls", "rustls-pki-types", "sha1", @@ -7448,9 +7464,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "uds_windows" @@ -7656,14 +7672,14 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "async-fs", "async_zip", "collections", "command-fds", - "dirs 4.0.0", + "dirs 6.0.0", "dunce", "futures", "futures-lite 1.13.0", @@ -7695,7 +7711,7 @@ dependencies = [ [[package]] name = "util_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "perf", "quote", @@ -7704,9 +7720,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -7827,11 +7843,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -7840,7 +7856,7 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] @@ -7957,7 +7973,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", "semver", @@ -7983,7 +7999,7 @@ version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -8006,7 +8022,7 @@ version = "0.32.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -8018,7 +8034,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -8031,7 +8047,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -8083,9 +8099,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe985f41e291eecef5e5c0770a18d28390addb03331c043964d9e916453d6f16" +checksum = "0fc95580916af1e68ff6a7be07446fc5db73ebf71cf092de939bbf5f7e189f72" dependencies = [ "core-foundation 0.10.0", "jni 0.22.4", @@ -8103,14 +8119,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.6", + "webpki-root-certs 1.0.7", ] [[package]] name = "webpki-root-certs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -8121,14 +8137,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.6", + "webpki-roots 1.0.7", ] [[package]] name = "webpki-roots" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" dependencies = [ "rustls-pki-types", ] @@ -8145,7 +8161,7 @@ version = "29.0.0" source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea747f8e1ac810efdb6dcd49a514575" dependencies = [ "arrayvec", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cfg-if", "cfg_aliases", @@ -8176,7 +8192,7 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "cfg_aliases", "document-features", @@ -8233,7 +8249,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "bytemuck", "cfg-if", @@ -8290,7 +8306,7 @@ name = "wgpu-types" version = "29.0.0" source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea747f8e1ac810efdb6dcd49a514575" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "js-sys", "log", @@ -8956,9 +8972,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" dependencies = [ "memchr", ] @@ -8997,6 +9013,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -9046,7 +9068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", + "bitflags 2.11.1", "indexmap", "log", "serde", @@ -9162,7 +9184,7 @@ name = "xim-parser" version = "0.2.1" source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -9305,14 +9327,14 @@ dependencies = [ [[package]] name = "zed-font-kit" version = "0.14.1-zed" -source = "git+https://github.com/zed-industries/font-kit?rev=110523127440aefb11ce0cf280ae7c5071337ec5#110523127440aefb11ce0cf280ae7c5071337ec5" +source = "git+https://github.com/zed-industries/font-kit?rev=94b0f28166665e8fd2f53ff6d268a14955c82269#94b0f28166665e8fd2f53ff6d268a14955c82269" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "byteorder", "core-foundation 0.10.0", "core-graphics 0.24.0", "core-text", - "dirs 5.0.1", + "dirs 6.0.0", "dwrote", "float-ord", "freetype-sys", @@ -9385,7 +9407,7 @@ dependencies = [ "core-graphics-helmer-fork", "log", "objc", - "rand 0.8.5", + "rand 0.8.6", "screencapturekit", "screencapturekit-sys", "sysinfo", @@ -9512,7 +9534,7 @@ dependencies = [ [[package]] name = "zlog" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "anyhow", "chrono", @@ -9529,7 +9551,7 @@ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "ztracing" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" dependencies = [ "tracing", "tracing-subscriber", @@ -9540,7 +9562,7 @@ dependencies = [ [[package]] name = "ztracing_macro" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#86f55495c21260adf0da5b7afebebd2d5ca0fa4a" +source = "git+https://github.com/zed-industries/zed#e3d1876c06b0e244230b4b5883e65e83ca1370e2" [[package]] name = "zune-core" diff --git a/crates/chat_ui/src/lib.rs b/crates/chat_ui/src/lib.rs index 446cbe3..f309f86 100644 --- a/crates/chat_ui/src/lib.rs +++ b/crates/chat_ui/src/lib.rs @@ -1421,7 +1421,7 @@ impl ChatPanel { .icon(IconName::Emoji) .ghost() .large() - .dropdown_menu_with_anchor(gpui::Corner::BottomLeft, move |this, _window, _cx| { + .dropdown_menu_with_anchor(gpui::Anchor::BottomLeft, move |this, _window, _cx| { this.horizontal() .menu("👍", Box::new(Command::Insert("👍"))) .menu("👎", Box::new(Command::Insert("👎"))) diff --git a/crates/theme/src/geometry.rs b/crates/theme/src/geometry.rs index 7a5ad6d..bd02065 100644 --- a/crates/theme/src/geometry.rs +++ b/crates/theme/src/geometry.rs @@ -1,6 +1,6 @@ use std::fmt::{self, Debug, Display, Formatter}; -use gpui::{AbsoluteLength, Axis, Corner, Length, Pixels}; +use gpui::{AbsoluteLength, Axis, Length, Pixels}; use serde::{Deserialize, Serialize}; /// A enum for defining the placement of the element. @@ -49,141 +49,6 @@ impl Placement { } } -/// The anchor position of an element. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)] -pub enum Anchor { - #[default] - #[serde(rename = "top-left")] - TopLeft, - #[serde(rename = "top-center")] - TopCenter, - #[serde(rename = "top-right")] - TopRight, - #[serde(rename = "bottom-left")] - BottomLeft, - #[serde(rename = "bottom-center")] - BottomCenter, - #[serde(rename = "bottom-right")] - BottomRight, -} - -impl Display for Anchor { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - match self { - Anchor::TopLeft => write!(f, "TopLeft"), - Anchor::TopCenter => write!(f, "TopCenter"), - Anchor::TopRight => write!(f, "TopRight"), - Anchor::BottomLeft => write!(f, "BottomLeft"), - Anchor::BottomCenter => write!(f, "BottomCenter"), - Anchor::BottomRight => write!(f, "BottomRight"), - } - } -} - -impl Anchor { - /// Returns true if the anchor is at the top. - #[inline] - pub fn is_top(&self) -> bool { - matches!(self, Self::TopLeft | Self::TopCenter | Self::TopRight) - } - - /// Returns true if the anchor is at the bottom. - #[inline] - pub fn is_bottom(&self) -> bool { - matches!( - self, - Self::BottomLeft | Self::BottomCenter | Self::BottomRight - ) - } - - /// Returns true if the anchor is at the left. - #[inline] - pub fn is_left(&self) -> bool { - matches!(self, Self::TopLeft | Self::BottomLeft) - } - - /// Returns true if the anchor is at the right. - #[inline] - pub fn is_right(&self) -> bool { - matches!(self, Self::TopRight | Self::BottomRight) - } - - /// Returns true if the anchor is at the center. - #[inline] - pub fn is_center(&self) -> bool { - matches!(self, Self::TopCenter | Self::BottomCenter) - } - - /// Swaps the vertical position of the anchor. - pub fn swap_vertical(&self) -> Self { - match self { - Anchor::TopLeft => Anchor::BottomLeft, - Anchor::TopCenter => Anchor::BottomCenter, - Anchor::TopRight => Anchor::BottomRight, - Anchor::BottomLeft => Anchor::TopLeft, - Anchor::BottomCenter => Anchor::TopCenter, - Anchor::BottomRight => Anchor::TopRight, - } - } - - /// Swaps the horizontal position of the anchor. - pub fn swap_horizontal(&self) -> Self { - match self { - Anchor::TopLeft => Anchor::TopRight, - Anchor::TopCenter => Anchor::TopCenter, - Anchor::TopRight => Anchor::TopLeft, - Anchor::BottomLeft => Anchor::BottomRight, - Anchor::BottomCenter => Anchor::BottomCenter, - Anchor::BottomRight => Anchor::BottomLeft, - } - } - - pub fn other_side_corner_along(&self, axis: Axis) -> Anchor { - match axis { - Axis::Vertical => match self { - Self::TopLeft => Self::BottomLeft, - Self::TopCenter => Self::BottomCenter, - Self::TopRight => Self::BottomRight, - Self::BottomLeft => Self::TopLeft, - Self::BottomCenter => Self::TopCenter, - Self::BottomRight => Self::TopRight, - }, - Axis::Horizontal => match self { - Self::TopLeft => Self::TopRight, - Self::TopCenter => Self::TopCenter, - Self::TopRight => Self::TopLeft, - Self::BottomLeft => Self::BottomRight, - Self::BottomCenter => Self::BottomCenter, - Self::BottomRight => Self::BottomLeft, - }, - } - } -} - -impl From for Anchor { - fn from(corner: Corner) -> Self { - match corner { - Corner::TopLeft => Anchor::TopLeft, - Corner::TopRight => Anchor::TopRight, - Corner::BottomLeft => Anchor::BottomLeft, - Corner::BottomRight => Anchor::BottomRight, - } - } -} - -impl From for Corner { - fn from(anchor: Anchor) -> Self { - match anchor { - Anchor::TopLeft => Corner::TopLeft, - Anchor::TopRight => Corner::TopRight, - Anchor::BottomLeft => Corner::BottomLeft, - Anchor::BottomRight => Corner::BottomRight, - Anchor::TopCenter => Corner::TopLeft, - Anchor::BottomCenter => Corner::BottomLeft, - } - } -} - /// A enum for defining the side of the element. /// /// See also: [`Placement`] if you need to define the 4 edges. diff --git a/crates/theme/src/notification.rs b/crates/theme/src/notification.rs index 59b242e..85021f1 100644 --- a/crates/theme/src/notification.rs +++ b/crates/theme/src/notification.rs @@ -1,10 +1,9 @@ -use gpui::{Pixels, px}; -use serde::{Deserialize, Serialize}; +use gpui::{Anchor, Pixels, px}; -use crate::{Anchor, Edges, TITLEBAR_HEIGHT}; +use crate::{Edges, TITLEBAR_HEIGHT}; /// The settings for notifications. -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone)] pub struct NotificationSettings { /// The placement of the notification, default: [`Anchor::TopRight`] pub placement: Anchor, diff --git a/crates/ui/src/anchored.rs b/crates/ui/src/anchored.rs deleted file mode 100644 index e23aec7..0000000 --- a/crates/ui/src/anchored.rs +++ /dev/null @@ -1,332 +0,0 @@ -//! This is a fork of gpui's anchored element that adds support for offsetting -//! https://github.com/zed-industries/zed/blob/b06f4088a3565c5e30663106ff79c1ced645d87a/crates/gpui/src/elements/anchored.rs -use gpui::{ - AnyElement, App, Axis, Bounds, Display, Edges, Element, GlobalElementId, Half, - InspectorElementId, IntoElement, LayoutId, ParentElement, Pixels, Point, Position, Size, Style, - Window, point, px, -}; -use smallvec::SmallVec; -use theme::Anchor; - -/// The state that the anchored element element uses to track its children. -pub struct AnchoredState { - child_layout_ids: SmallVec<[LayoutId; 4]>, -} - -/// An anchored element that can be used to display UI that -/// will avoid overflowing the window bounds. -pub(crate) struct Anchored { - children: SmallVec<[AnyElement; 2]>, - anchor_corner: Anchor, - fit_mode: AnchoredFitMode, - anchor_position: Option>, - position_mode: AnchoredPositionMode, - offset: Option>, -} - -/// anchored gives you an element that will avoid overflowing the window bounds. -/// Its children should have no margin to avoid measurement issues. -pub(crate) fn anchored() -> Anchored { - Anchored { - children: SmallVec::new(), - anchor_corner: Anchor::TopLeft, - fit_mode: AnchoredFitMode::SwitchAnchor, - anchor_position: None, - position_mode: AnchoredPositionMode::Window, - offset: None, - } -} - -#[allow(dead_code)] -impl Anchored { - /// Sets which corner of the anchored element should be anchored to the current position. - pub fn anchor(mut self, anchor: Anchor) -> Self { - self.anchor_corner = anchor; - self - } - - /// Sets the position in window coordinates - /// (otherwise the location the anchored element is rendered is used) - pub fn position(mut self, anchor: Point) -> Self { - self.anchor_position = Some(anchor); - self - } - - /// Offset the final position by this amount. - /// Useful when you want to anchor to an element but offset from it, such as in PopoverMenu. - pub fn offset(mut self, offset: Point) -> Self { - self.offset = Some(offset); - self - } - - /// Sets the position mode for this anchored element. Local will have this - /// interpret its [`Anchored::position`] as relative to the parent element. - /// While Window will have it interpret the position as relative to the window. - pub fn position_mode(mut self, mode: AnchoredPositionMode) -> Self { - self.position_mode = mode; - self - } - - /// Snap to window edge instead of switching anchor corner when an overflow would occur. - pub fn snap_to_window(mut self) -> Self { - self.fit_mode = AnchoredFitMode::SnapToWindow; - self - } - - /// Snap to window edge and leave some margins. - pub fn snap_to_window_with_margin(mut self, edges: impl Into>) -> Self { - self.fit_mode = AnchoredFitMode::SnapToWindowWithMargin(edges.into()); - self - } -} - -impl ParentElement for Anchored { - fn extend(&mut self, elements: impl IntoIterator) { - self.children.extend(elements) - } -} - -impl Element for Anchored { - type PrepaintState = (); - type RequestLayoutState = AnchoredState; - - fn id(&self) -> Option { - None - } - - fn source_location(&self) -> Option<&'static core::panic::Location<'static>> { - None - } - - fn request_layout( - &mut self, - _id: Option<&GlobalElementId>, - _inspector_id: Option<&InspectorElementId>, - window: &mut Window, - cx: &mut App, - ) -> (gpui::LayoutId, Self::RequestLayoutState) { - let child_layout_ids = self - .children - .iter_mut() - .map(|child| child.request_layout(window, cx)) - .collect::>(); - - let anchored_style = Style { - position: Position::Absolute, - display: Display::Flex, - ..Style::default() - }; - - let layout_id = window.request_layout(anchored_style, child_layout_ids.iter().copied(), cx); - - (layout_id, AnchoredState { child_layout_ids }) - } - - fn prepaint( - &mut self, - _id: Option<&GlobalElementId>, - _inspector_id: Option<&InspectorElementId>, - bounds: Bounds, - request_layout: &mut Self::RequestLayoutState, - window: &mut Window, - cx: &mut App, - ) { - if request_layout.child_layout_ids.is_empty() { - return; - } - - let mut child_min = point(Pixels::MAX, Pixels::MAX); - let mut child_max = Point::default(); - for child_layout_id in &request_layout.child_layout_ids { - let child_bounds = window.layout_bounds(*child_layout_id); - child_min = child_min.min(&child_bounds.origin); - child_max = child_max.max(&child_bounds.bottom_right()); - } - let size: Size = (child_max - child_min).into(); - - let (origin, mut desired) = self.position_mode.get_position_and_bounds( - self.anchor_position, - self.anchor_corner, - size, - bounds, - self.offset, - ); - - let limits = Bounds { - origin: Point::default(), - size: window.viewport_size(), - }; - - if self.fit_mode == AnchoredFitMode::SwitchAnchor { - let mut anchor_corner = self.anchor_corner; - - if desired.left() < limits.left() || desired.right() > limits.right() { - let switched = Bounds::from_corner_and_size( - anchor_corner - .other_side_corner_along(Axis::Horizontal) - .into(), - origin, - size, - ); - if !(switched.left() < limits.left() || switched.right() > limits.right()) { - anchor_corner = anchor_corner.other_side_corner_along(Axis::Horizontal); - desired = switched - } - } - - if desired.top() < limits.top() || desired.bottom() > limits.bottom() { - let switched = Bounds::from_corner_and_size( - anchor_corner.other_side_corner_along(Axis::Vertical).into(), - origin, - size, - ); - if !(switched.top() < limits.top() || switched.bottom() > limits.bottom()) { - desired = switched; - } - } - } - - let client_inset = window.client_inset().unwrap_or(px(0.)); - let edges = match self.fit_mode { - AnchoredFitMode::SnapToWindowWithMargin(edges) => edges, - _ => Edges::default(), - } - .map(|edge| *edge + client_inset); - - // Snap the horizontal edges of the anchored element to the horizontal edges of the window if - // its horizontal bounds overflow, aligning to the left if it is wider than the limits. - if desired.right() > limits.right() { - desired.origin.x -= desired.right() - limits.right() + edges.right; - } - if desired.left() < limits.left() { - desired.origin.x = limits.origin.x + edges.left; - } - - // Snap the vertical edges of the anchored element to the vertical edges of the window if - // its vertical bounds overflow, aligning to the top if it is taller than the limits. - if desired.bottom() > limits.bottom() { - desired.origin.y -= desired.bottom() - limits.bottom() + edges.bottom; - } - if desired.top() < limits.top() { - desired.origin.y = limits.origin.y + edges.top; - } - - let offset = desired.origin - bounds.origin; - let offset = point(offset.x.round(), offset.y.round()); - - window.with_element_offset(offset, |window| { - for child in &mut self.children { - child.prepaint(window, cx); - } - }) - } - - fn paint( - &mut self, - _id: Option<&GlobalElementId>, - _inspector_id: Option<&InspectorElementId>, - _bounds: Bounds, - _request_layout: &mut Self::RequestLayoutState, - _prepaint: &mut Self::PrepaintState, - window: &mut Window, - cx: &mut App, - ) { - for child in &mut self.children { - child.paint(window, cx); - } - } -} - -impl IntoElement for Anchored { - type Element = Self; - - fn into_element(self) -> Self::Element { - self - } -} - -/// Which algorithm to use when fitting the anchored element to be inside the window. -#[allow(dead_code)] -#[derive(Copy, Clone, PartialEq)] -pub enum AnchoredFitMode { - /// Snap the anchored element to the window edge. - SnapToWindow, - /// Snap to window edge and leave some margins. - SnapToWindowWithMargin(Edges), - /// Switch which corner anchor this anchored element is attached to. - SwitchAnchor, -} - -/// Which algorithm to use when positioning the anchored element. -#[allow(dead_code)] -#[derive(Copy, Clone, PartialEq)] -pub enum AnchoredPositionMode { - /// Position the anchored element relative to the window. - Window, - /// Position the anchored element relative to its parent. - Local, -} - -impl AnchoredPositionMode { - fn get_position_and_bounds( - &self, - anchor_position: Option>, - anchor_corner: Anchor, - size: Size, - bounds: Bounds, - offset: Option>, - ) -> (Point, Bounds) { - let offset = offset.unwrap_or_default(); - - match self { - AnchoredPositionMode::Window => { - let anchor_position = anchor_position.unwrap_or(bounds.origin); - let bounds = - Self::from_corner_and_size(anchor_corner, anchor_position + offset, size); - (anchor_position, bounds) - } - AnchoredPositionMode::Local => { - let anchor_position = anchor_position.unwrap_or_default(); - let bounds = Self::from_corner_and_size( - anchor_corner, - bounds.origin + anchor_position + offset, - size, - ); - (anchor_position, bounds) - } - } - } - - // Ref https://github.com/zed-industries/zed/blob/b06f4088a3565c5e30663106ff79c1ced645d87a/crates/gpui/src/geometry.rs#L863 - fn from_corner_and_size( - anchor: Anchor, - origin: Point, - size: Size, - ) -> Bounds { - let origin = match anchor { - Anchor::TopLeft => origin, - Anchor::TopCenter => Point { - x: origin.x - size.width.half(), - y: origin.y, - }, - Anchor::TopRight => Point { - x: origin.x - size.width, - y: origin.y, - }, - Anchor::BottomLeft => Point { - x: origin.x, - y: origin.y - size.height, - }, - Anchor::BottomCenter => Point { - x: origin.x - size.width.half(), - y: origin.y - size.height, - }, - Anchor::BottomRight => Point { - x: origin.x - size.width, - y: origin.y - size.height, - }, - }; - - Bounds { origin, size } - } -} diff --git a/crates/ui/src/dock/tab_panel.rs b/crates/ui/src/dock/tab_panel.rs index 3de9409..436b1e3 100644 --- a/crates/ui/src/dock/tab_panel.rs +++ b/crates/ui/src/dock/tab_panel.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use gpui::prelude::FluentBuilder; use gpui::{ - App, AppContext, Context, Corner, DefiniteLength, DismissEvent, DragMoveEvent, Empty, Entity, + Anchor, App, AppContext, Context, DefiniteLength, DismissEvent, DragMoveEvent, Empty, Entity, EventEmitter, FocusHandle, Focusable, InteractiveElement as _, IntoElement, MouseButton, ParentElement, Pixels, Render, ScrollHandle, SharedString, StatefulInteractiveElement, Styled, WeakEntity, Window, div, px, rems, @@ -460,7 +460,7 @@ impl TabPanel { }) } }) - .anchor(Corner::TopRight), + .anchor(Anchor::TopRight), ) } diff --git a/crates/ui/src/lib.rs b/crates/ui/src/lib.rs index 6179733..701a522 100644 --- a/crates/ui/src/lib.rs +++ b/crates/ui/src/lib.rs @@ -1,4 +1,3 @@ -pub use anchored::*; pub use element_ext::ElementExt; pub use event::InteractiveElementExt; pub use focusable::FocusableCycle; @@ -34,7 +33,6 @@ pub mod switch; pub mod tab; pub mod tooltip; -mod anchored; mod element_ext; mod event; mod focusable; diff --git a/crates/ui/src/menu/app_menu_bar.rs b/crates/ui/src/menu/app_menu_bar.rs index ea90217..84aa09e 100644 --- a/crates/ui/src/menu/app_menu_bar.rs +++ b/crates/ui/src/menu/app_menu_bar.rs @@ -1,14 +1,15 @@ use gpui::prelude::FluentBuilder; use gpui::{ - anchored, deferred, div, px, App, AppContext as _, ClickEvent, Context, DismissEvent, Entity, - Focusable, InteractiveElement as _, IntoElement, KeyBinding, MouseButton, OwnedMenu, - ParentElement, Render, SharedString, StatefulInteractiveElement, Styled, Subscription, Window, + App, AppContext as _, ClickEvent, Context, DismissEvent, Entity, Focusable, + InteractiveElement as _, IntoElement, KeyBinding, MouseButton, OwnedMenu, ParentElement, + Render, SharedString, StatefulInteractiveElement, Styled, Subscription, Window, anchored, + deferred, div, px, }; use crate::actions::{Cancel, SelectLeft, SelectRight}; use crate::button::{Button, ButtonVariants}; use crate::menu::PopupMenu; -use crate::{h_flex, Selectable, Sizable}; +use crate::{Selectable, Sizable, h_flex}; const CONTEXT: &str = "AppMenuBar"; @@ -241,7 +242,7 @@ impl Render for AppMenu { .when(is_selected, |this| { this.child(deferred( anchored() - .anchor(gpui::Corner::TopLeft) + .anchor(gpui::Anchor::TopLeft) .snap_to_window_with_margin(px(8.)) .child( div() diff --git a/crates/ui/src/menu/context_menu.rs b/crates/ui/src/menu/context_menu.rs index 679c4c6..5b1d170 100644 --- a/crates/ui/src/menu/context_menu.rs +++ b/crates/ui/src/menu/context_menu.rs @@ -3,10 +3,10 @@ use std::rc::Rc; use gpui::prelude::FluentBuilder; use gpui::{ - anchored, deferred, div, px, AnyElement, App, Context, Corner, DismissEvent, Element, - ElementId, Entity, Focusable, GlobalElementId, Hitbox, HitboxBehavior, InspectorElementId, - InteractiveElement, IntoElement, MouseButton, MouseDownEvent, ParentElement, Pixels, Point, - StyleRefinement, Styled, Subscription, Window, + Anchor, AnyElement, App, Context, DismissEvent, Element, ElementId, Entity, Focusable, + GlobalElementId, Hitbox, HitboxBehavior, InspectorElementId, InteractiveElement, IntoElement, + MouseButton, MouseDownEvent, ParentElement, Pixels, Point, StyleRefinement, Styled, + Subscription, Window, anchored, deferred, div, px, }; use crate::menu::PopupMenu; @@ -41,7 +41,7 @@ pub struct ContextMenu { menu: Option) -> PopupMenu>>, // This is not in use, just for style refinement forwarding. _ignore_style: StyleRefinement, - anchor: Corner, + anchor: Anchor, } impl ContextMenu { @@ -51,7 +51,7 @@ impl ContextMenu { id: id.into(), element: Some(element), menu: None, - anchor: Corner::TopLeft, + anchor: Anchor::TopLeft, _ignore_style: StyleRefinement::default(), } } diff --git a/crates/ui/src/menu/dropdown_menu.rs b/crates/ui/src/menu/dropdown_menu.rs index a053291..b7f0d32 100644 --- a/crates/ui/src/menu/dropdown_menu.rs +++ b/crates/ui/src/menu/dropdown_menu.rs @@ -1,7 +1,7 @@ use std::rc::Rc; use gpui::{ - Context, Corner, DismissEvent, ElementId, Entity, Focusable, InteractiveElement, IntoElement, + Anchor, Context, DismissEvent, ElementId, Entity, Focusable, InteractiveElement, IntoElement, RenderOnce, SharedString, StyleRefinement, Styled, Window, }; @@ -18,13 +18,13 @@ pub trait DropdownMenu: Styled + Selectable + InteractiveElement + IntoElement + self, f: impl Fn(PopupMenu, &mut Window, &mut Context) -> PopupMenu + 'static, ) -> DropdownMenuPopover { - self.dropdown_menu_with_anchor(Corner::TopLeft, f) + self.dropdown_menu_with_anchor(Anchor::TopLeft, f) } /// Create a dropdown menu with the given items, anchored to the given corner fn dropdown_menu_with_anchor( mut self, - anchor: impl Into, + anchor: impl Into, f: impl Fn(PopupMenu, &mut Window, &mut Context) -> PopupMenu + 'static, ) -> DropdownMenuPopover { let style = self.style().clone(); @@ -42,7 +42,7 @@ impl DropdownMenu for Avatar {} pub struct DropdownMenuPopover { id: ElementId, style: StyleRefinement, - anchor: Corner, + anchor: Anchor, trigger: T, #[allow(clippy::type_complexity)] builder: Rc) -> PopupMenu>, @@ -54,7 +54,7 @@ where { fn new( id: ElementId, - anchor: impl Into, + anchor: impl Into, trigger: T, builder: impl Fn(PopupMenu, &mut Window, &mut Context) -> PopupMenu + 'static, ) -> Self { @@ -68,7 +68,7 @@ where } /// Set the anchor corner for the dropdown menu popover. - pub fn anchor(mut self, anchor: impl Into) -> Self { + pub fn anchor(mut self, anchor: impl Into) -> Self { self.anchor = anchor.into(); self } diff --git a/crates/ui/src/menu/popup_menu.rs b/crates/ui/src/menu/popup_menu.rs index 4f2b7ac..5050813 100644 --- a/crates/ui/src/menu/popup_menu.rs +++ b/crates/ui/src/menu/popup_menu.rs @@ -2,7 +2,7 @@ use std::rc::Rc; use gpui::prelude::FluentBuilder; use gpui::{ - Action, AnyElement, App, AppContext, Axis, Bounds, ClickEvent, Context, Corner, DismissEvent, + Action, Anchor, AnyElement, App, AppContext, Axis, Bounds, ClickEvent, Context, DismissEvent, Edges, Entity, EventEmitter, FocusHandle, Focusable, Half, InteractiveElement, IntoElement, KeyBinding, MouseDownEvent, OwnedMenuItem, ParentElement, Pixels, Point, Render, ScrollHandle, SharedString, StatefulInteractiveElement, Styled, Subscription, WeakEntity, Window, anchored, @@ -299,7 +299,7 @@ pub struct PopupMenu { scroll_handle: ScrollHandle, /// This will update on render - submenu_anchor: (Corner, Pixels), + submenu_anchor: (Anchor, Pixels), _subscriptions: Vec, } @@ -322,7 +322,7 @@ impl PopupMenu { scroll_handle: ScrollHandle::default(), external_link_icon: true, size: Size::default(), - submenu_anchor: (Corner::TopLeft, Pixels::ZERO), + submenu_anchor: (Anchor::TopLeft, Pixels::ZERO), _subscriptions: vec![], } } @@ -840,7 +840,7 @@ impl PopupMenu { } fn select_left(&mut self, _: &SelectLeft, window: &mut Window, cx: &mut Context) { - let handled = if matches!(self.submenu_anchor.0, Corner::TopLeft | Corner::BottomLeft) { + let handled = if matches!(self.submenu_anchor.0, Anchor::TopLeft | Anchor::BottomLeft) { self._unselect_submenu(window, cx) } else { self._select_submenu(window, cx) @@ -861,7 +861,7 @@ impl PopupMenu { } fn select_right(&mut self, _: &SelectRight, window: &mut Window, cx: &mut Context) { - let handled = if matches!(self.submenu_anchor.0, Corner::TopLeft | Corner::BottomLeft) { + let handled = if matches!(self.submenu_anchor.0, Anchor::TopLeft | Anchor::BottomLeft) { self._select_submenu(window, cx) } else { self._unselect_submenu(window, cx) @@ -930,8 +930,9 @@ impl PopupMenu { }; match parent.read(cx).submenu_anchor.0 { - Corner::TopLeft | Corner::BottomLeft => Side::Left, - Corner::TopRight | Corner::BottomRight => Side::Right, + Anchor::TopLeft | Anchor::BottomLeft => Side::Left, + Anchor::TopRight | Anchor::BottomRight => Side::Right, + _ => Side::Left, } } @@ -1041,14 +1042,14 @@ impl PopupMenu { let bounds = self.bounds; let max_width = self.max_width(); let (anchor, left) = if max_width + bounds.origin.x > window.bounds().size.width { - (Corner::TopRight, -px(16.)) + (Anchor::TopRight, -px(16.)) } else { - (Corner::TopLeft, bounds.size.width - px(8.)) + (Anchor::TopLeft, bounds.size.width - px(8.)) }; let is_bottom_pos = bounds.origin.y + bounds.size.height > window.bounds().size.height; self.submenu_anchor = if is_bottom_pos { - (anchor.other_side_corner_along(gpui::Axis::Vertical), left) + (anchor.other_side_along(gpui::Axis::Vertical), left) } else { (anchor, left) }; @@ -1230,7 +1231,7 @@ impl PopupMenu { this.child({ let (anchor, left) = self.submenu_anchor; let is_bottom_pos = - matches!(anchor, Corner::BottomLeft | Corner::BottomRight); + matches!(anchor, Anchor::BottomLeft | Anchor::BottomRight); anchored() .anchor(anchor) .child( diff --git a/crates/ui/src/notification.rs b/crates/ui/src/notification.rs index 30590b6..bf720be 100644 --- a/crates/ui/src/notification.rs +++ b/crates/ui/src/notification.rs @@ -5,12 +5,12 @@ use std::time::Duration; use gpui::prelude::FluentBuilder; use gpui::{ - Animation, AnimationExt, AnyElement, App, AppContext, ClickEvent, Context, DismissEvent, - ElementId, Entity, EventEmitter, InteractiveElement as _, IntoElement, ParentElement as _, - Render, SharedString, StatefulInteractiveElement, StyleRefinement, Styled, Subscription, - Window, div, px, relative, + Anchor, Animation, AnimationExt, AnyElement, App, AppContext, ClickEvent, Context, + DismissEvent, ElementId, Entity, EventEmitter, InteractiveElement as _, IntoElement, + ParentElement as _, Render, SharedString, StatefulInteractiveElement, StyleRefinement, Styled, + Subscription, Window, div, px, relative, }; -use theme::{ActiveTheme, Anchor}; +use theme::ActiveTheme; use crate::animation::cubic_bezier; use crate::button::{Button, ButtonVariants as _}; @@ -288,6 +288,7 @@ impl Styled for Notification { &mut self.style } } + impl Render for Notification { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { let content = self @@ -423,12 +424,17 @@ impl Render for Notification { let y_offset = px(0.) + delta * px(45.); that.top(px(0.) + y_offset) } + _ => that, } } else { let opacity = delta; let y_offset = match placement { - placement if placement.is_top() => px(-45.) + delta * px(45.), - placement if placement.is_bottom() => px(45.) - delta * px(45.), + Anchor::TopLeft | Anchor::TopRight | Anchor::TopCenter => { + px(-45.) + delta * px(45.) + } + Anchor::BottomLeft | Anchor::BottomRight | Anchor::BottomCenter => { + px(45.) - delta * px(45.) + } _ => px(0.), }; this.top(px(0.) + y_offset) diff --git a/crates/ui/src/popover.rs b/crates/ui/src/popover.rs index 33a5776..0893a70 100644 --- a/crates/ui/src/popover.rs +++ b/crates/ui/src/popover.rs @@ -2,15 +2,14 @@ use std::rc::Rc; use gpui::prelude::FluentBuilder as _; use gpui::{ - AnyElement, App, Bounds, Context, Deferred, DismissEvent, Div, ElementId, EventEmitter, - FocusHandle, Focusable, Half, InteractiveElement as _, IntoElement, KeyBinding, MouseButton, + Anchor, AnyElement, App, Bounds, Context, Deferred, DismissEvent, Div, ElementId, EventEmitter, + FocusHandle, Focusable, InteractiveElement as _, IntoElement, KeyBinding, MouseButton, ParentElement, Pixels, Point, Render, RenderOnce, Stateful, StyleRefinement, Styled, - Subscription, Window, deferred, div, px, + Subscription, Window, anchored, deferred, div, px, }; -use theme::Anchor; use crate::actions::Cancel; -use crate::{ElementExt, Selectable, StyledExt as _, anchored, v_flex}; +use crate::{ElementExt, Selectable, StyledExt as _, v_flex}; const CONTEXT: &str = "Popover"; @@ -175,19 +174,26 @@ impl Popover { self } - fn resolved_corner(anchor: Anchor, trigger_bounds: Bounds) -> Point { - let offset = if anchor.is_center() { - gpui::point(trigger_bounds.size.width.half(), px(0.)) - } else { - Point::default() - }; - - trigger_bounds.corner(anchor.swap_vertical().into()) - + offset - + Point { - x: px(0.), - y: -trigger_bounds.size.height, - } + pub(crate) fn resolved_corner(anchor: Anchor, trigger_bounds: Bounds) -> Point { + match anchor { + Anchor::TopLeft => trigger_bounds.origin, + Anchor::TopCenter => trigger_bounds.top_center(), + Anchor::TopRight => trigger_bounds.top_right(), + Anchor::BottomLeft => Point { + x: trigger_bounds.origin.x, + y: trigger_bounds.origin.y - trigger_bounds.size.height, + }, + Anchor::BottomCenter => Point { + x: trigger_bounds.top_center().x, + y: trigger_bounds.origin.y - trigger_bounds.size.height, + }, + Anchor::BottomRight => Point { + x: trigger_bounds.top_right().x, + y: trigger_bounds.origin.y - trigger_bounds.size.height, + }, + // Fallback for LeftCenter/RightCenter – adjust as needed. + _ => trigger_bounds.origin, + } } } @@ -330,6 +336,7 @@ impl Popover { .map(|this| match anchor { Anchor::TopLeft | Anchor::TopCenter | Anchor::TopRight => this.top_1(), Anchor::BottomLeft | Anchor::BottomCenter | Anchor::BottomRight => this.bottom_1(), + Anchor::LeftCenter | Anchor::RightCenter => this.top_1(), // Fallback for centered }) } } diff --git a/crates/ui/src/scroll/scrollbar.rs b/crates/ui/src/scroll/scrollbar.rs index e48aeae..da946fb 100644 --- a/crates/ui/src/scroll/scrollbar.rs +++ b/crates/ui/src/scroll/scrollbar.rs @@ -5,7 +5,7 @@ use std::rc::Rc; use std::time::{Duration, Instant}; use gpui::{ - App, Axis, BorderStyle, Bounds, ContentMask, Corner, CursorStyle, Edges, Element, ElementId, + Anchor, App, Axis, BorderStyle, Bounds, ContentMask, CursorStyle, Edges, Element, ElementId, GlobalElementId, Hitbox, HitboxBehavior, Hsla, InspectorElementId, IntoElement, IsZero, LayoutId, ListState, MouseDownEvent, MouseMoveEvent, MouseUpEvent, PaintQuad, Pixels, Point, Position, ScrollHandle, ScrollWheelEvent, Size, Style, UniformListScrollHandle, Window, fill, @@ -648,14 +648,14 @@ impl Element for Scrollbar { // The clickable area of the thumb let thumb_length = thumb_end - thumb_start - inset * 2; let thumb_bounds = if is_vertical { - Bounds::from_corner_and_size( - Corner::TopRight, + Bounds::from_anchor_and_size( + Anchor::TopRight, bounds.top_right() + point(-inset, inset + thumb_start), size(WIDTH, thumb_length), ) } else { - Bounds::from_corner_and_size( - Corner::BottomLeft, + Bounds::from_anchor_and_size( + Anchor::BottomLeft, bounds.bottom_left() + point(inset + thumb_start, -inset), size(thumb_length, WIDTH), ) @@ -663,14 +663,14 @@ impl Element for Scrollbar { // The actual render area of the thumb let thumb_fill_bounds = if is_vertical { - Bounds::from_corner_and_size( - Corner::TopRight, + Bounds::from_anchor_and_size( + Anchor::TopRight, bounds.top_right() + point(-inset, inset + thumb_start), size(thumb_width, thumb_length), ) } else { - Bounds::from_corner_and_size( - Corner::BottomLeft, + Bounds::from_anchor_and_size( + Anchor::BottomLeft, bounds.bottom_left() + point(inset + thumb_start, -inset), size(thumb_length, thumb_width), ) diff --git a/crates/ui/src/tab/tab_bar.rs b/crates/ui/src/tab/tab_bar.rs index 4f5c188..71e6036 100644 --- a/crates/ui/src/tab/tab_bar.rs +++ b/crates/ui/src/tab/tab_bar.rs @@ -2,7 +2,7 @@ use std::rc::Rc; use gpui::prelude::FluentBuilder as _; use gpui::{ - AnyElement, App, Corner, Div, Edges, ElementId, InteractiveElement, IntoElement, ParentElement, + Anchor, AnyElement, App, Div, Edges, ElementId, InteractiveElement, IntoElement, ParentElement, RenderOnce, ScrollHandle, Stateful, StatefulInteractiveElement as _, StyleRefinement, Styled, Window, div, px, }; @@ -282,7 +282,7 @@ impl RenderOnce for TabBar { this }) - .anchor(Corner::TopRight), + .anchor(Anchor::TopRight), ) }) .when_some(self.suffix, |this, suffix| this.child(suffix))