From 80a7ccfdbf86b6f8b464cc93ab3667339bb23f9a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Sat, 10 Oct 2026 12:58:15 +0200 Subject: [PATCH 1/5] Migrate Yarn Spinner integration and dialogue UI to Bevy 0.20 --- Cargo.lock | 1265 ++++++++++++----- Cargo.toml | 4 + crates/bevy_plugin/Cargo.toml | 4 +- crates/bevy_plugin/src/lib.rs | 2 +- .../src/localization/line_id_generation.rs | 21 +- .../src/plugin/yarn_file_source.rs | 22 +- crates/bevy_plugin/src/yarn_file_asset.rs | 15 +- crates/compiler/Cargo.toml | 2 +- .../listeners/error_listener/diagnostic.rs | 2 +- crates/core/Cargo.toml | 2 +- crates/example_dialogue_view/Cargo.toml | 4 +- .../src/option_selection.rs | 109 +- crates/example_dialogue_view/src/setup.rs | 3 + crates/runtime/Cargo.toml | 4 +- crates/yarnspinner/Cargo.toml | 4 +- demo/Cargo.toml | 2 +- examples/bevy_yarnspinner/Cargo.toml | 2 +- readme.md | 15 + 18 files changed, 1058 insertions(+), 424 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8387c53..bd766d50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,22 +31,26 @@ dependencies = [ [[package]] name = "accesskit_consumer" -version = "0.35.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53cf47daed85312e763fbf85ceca136e0d7abc68e0a7e12abe11f48172bc3b10" +checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" dependencies = [ "accesskit", "hashbrown 0.16.1", ] [[package]] -name = "accesskit_consumer" -version = "0.38.0" +name = "accesskit_ios" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" +checksum = "750c4e9f6ce888dfe8a10c0f1b5ceb646a7854fd46579d74919219d1bb314083" dependencies = [ "accesskit", + "accesskit_consumer", "hashbrown 0.16.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-ui-kit", ] [[package]] @@ -56,21 +60,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" dependencies = [ "accesskit", - "accesskit_consumer 0.38.0", + "accesskit_consumer", "hashbrown 0.16.1", "objc2 0.5.2", - "objc2-app-kit", + "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", ] [[package]] name = "accesskit_windows" -version = "0.32.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff7009f1a532e917d66970a1e80c965140c6cfbbabbdde3d64e5431e6c78e21" +checksum = "106c2b961215864d1c2e703ee63269c25c4e80a577ffb2c1017b9c17dcdf83a1" dependencies = [ "accesskit", - "accesskit_consumer 0.35.0", + "accesskit_consumer", "hashbrown 0.16.1", "static_assertions", "windows", @@ -79,11 +83,12 @@ dependencies = [ [[package]] name = "accesskit_winit" -version = "0.32.2" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9a94394896352cc4660ca2288bd4ef883d83238853c038b44070c8f134313" +checksum = "d5b41e63a69f36d9f1f41e70464c7e5f72eee485ef26aab19f0b4f86e6c0a84c" dependencies = [ "accesskit", + "accesskit_ios", "accesskit_macos", "accesskit_windows", "raw-window-handle", @@ -199,12 +204,56 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + [[package]] name = "anstyle" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + [[package]] name = "antlr-rust" version = "0.3.0-beta" @@ -237,6 +286,24 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arboard" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" +dependencies = [ + "clipboard-win", + "log", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-foundation 0.3.2", + "parking_lot 0.12.5", + "percent-encoding", + "windows-sys 0.60.2", + "wl-clipboard-rs", + "x11rb", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -402,6 +469,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "better_any" version = "0.2.0" @@ -410,18 +483,18 @@ checksum = "1795ebc740ea791ffbe6685e0688ab1effec16c2864e0476db40bfdf0c02cb3d" [[package]] name = "bevy" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "950238d3049d81006a6fd6b898a34cfc01bb5462a7668795a54d640aed19fd0a" +checksum = "8bd0e4ea5ec677698955f9f285221eab78606d8c27b57b889def199c16ce36e6" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86f2cb45b000a9d121a5a7606f9af4a49e72b8b6a3885dc2acac2f0897a04f1" +checksum = "f1070b9b7f087a5073be2da713367f29a831c85cd3391afcfc95bc0498125704" dependencies = [ "accesskit", "bevy_app", @@ -433,23 +506,24 @@ dependencies = [ [[package]] name = "bevy_android" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e5e2a949be318bf7184eb084622892afcc1e8b2af44973ac53ab53201756e0" +checksum = "17fd56a4708085b36f8aa1a011e347f8bd9334f0343bb3d5d9c3742897968a55" dependencies = [ "android-activity", ] [[package]] name = "bevy_animation" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da2fcd94cc32ba1c875c62e88506c0ba4775555a413e34cd172ea95fa26098e" +checksum = "9409aa300e8b023281b78759b3aed4124ec745dc7e1c9f96cbb445110e4b32ad" dependencies = [ "bevy_animation_macros", "bevy_app", "bevy_asset", "bevy_color", + "bevy_curve", "bevy_derive", "bevy_ecs", "bevy_math", @@ -459,6 +533,7 @@ dependencies = [ "bevy_time", "bevy_transform", "bevy_utils", + "bitvec", "blake3", "derive_more", "downcast-rs 2.0.2", @@ -475,9 +550,9 @@ dependencies = [ [[package]] name = "bevy_animation_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa3d816d7788e27da936b9c7ec27f9828906d53cb1d06e26c58cac5c5ee799f" +checksum = "011144ef75ba95b665b1e6b03f3b7bbe9aa85d55472abb1d21e64813dac1c0a4" dependencies = [ "bevy_macro_utils", "quote", @@ -486,9 +561,9 @@ dependencies = [ [[package]] name = "bevy_anti_alias" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "815414ea2e11afe1f2396d89279cfa0986907ef3ec673ec936d9fa695b2bfbf9" +checksum = "f4df27fadf88e6ff72bf63a5e80e3921536eabfcde3196db347c31b6bbb39606" dependencies = [ "bevy_app", "bevy_asset", @@ -497,6 +572,7 @@ dependencies = [ "bevy_derive", "bevy_diagnostic", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_math", "bevy_reflect", @@ -508,9 +584,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671ae6f3a8d84f9ed696c531a138558596e041231a8414b6efeafa8469e841f9" +checksum = "a2489da2972d57cccd19060d7faa44c4c4cfb296a657c84ee6ab8bde2b1c0115" dependencies = [ "bevy_derive", "bevy_ecs", @@ -523,16 +599,16 @@ dependencies = [ "downcast-rs 2.0.2", "log", "thiserror 2.0.18", - "variadics_please", + "variadics_please 2.0.0", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a05907de6a362d2c609a7a1d1b4dca3b58b768f746b719ca1a3c7dfa87d391" +checksum = "b88b3767a2c3f5a017b2febca08a670819ea2acb46846e4d8cd02980aeb0ed3e" dependencies = [ "async-broadcast", "async-channel", @@ -574,9 +650,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9444998cc37b51dfd1572c23a501865733ea65619a7d88b47aa654ae2290a4f" +checksum = "875b4fd236612744dbd61fb0a77ffde0aee37b8b780cf8a89caa308511c70646" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -586,9 +662,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06af3bd91de885f2a5c024569779a7fb43349df611d92f7b795c66c8797378db" +checksum = "fd16f2ac779d6ce5fdcc951c314141d37deff54cef213197872054259fc3a031" dependencies = [ "bevy_app", "bevy_asset", @@ -602,9 +678,9 @@ dependencies = [ [[package]] name = "bevy_camera" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20105c3e77c2fb391bf3ded3a473d60e4058b837c9bf4e3412225833e524c75a" +checksum = "f32c0d8436fb9373dc3b64fa30c3dec51d6a7cfda61de3c70fd1f62f8a903887" dependencies = [ "bevy_app", "bevy_asset", @@ -615,6 +691,7 @@ dependencies = [ "bevy_math", "bevy_mesh", "bevy_reflect", + "bevy_shape", "bevy_transform", "bevy_utils", "bevy_window", @@ -628,10 +705,11 @@ dependencies = [ [[package]] name = "bevy_clipboard" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dc5fb913f25c5a16a2a1aa2942ba3f1365a6d0f2db3c0ea5bc0be01f85dca5d" +checksum = "f0267b0beafd7e587a1b25b5ce14b271577f5fc1d8fd7828b2b66f0cf5dd649b" dependencies = [ + "arboard", "bevy_app", "bevy_ecs", "bevy_log", @@ -643,10 +721,11 @@ dependencies = [ [[package]] name = "bevy_color" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2dfc0091be6eb62fec9158b2d3e6f21b002be7bdb42dd3b8322e949c8426b0" +checksum = "c0e57bfc1a0da1c018235fb98bb0e15ab61f1d0253122020ab6e1450e6cfbcf9" dependencies = [ + "bevy_curve", "bevy_math", "bevy_reflect", "bytemuck", @@ -659,9 +738,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885d640bbff6c4fa3beadbb043d0d1ae53b2fda864da18a2bf2670fb90428865" +checksum = "a4a077b301be4b373a4cb224c54988e1f8385ecf3ab9e60bd3727a65b3d6901a" dependencies = [ "bevy_app", "bevy_asset", @@ -670,6 +749,7 @@ dependencies = [ "bevy_derive", "bevy_diagnostic", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_light", "bevy_log", @@ -686,11 +766,26 @@ dependencies = [ "nonmax", ] +[[package]] +name = "bevy_curve" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ae28ed95c1c8a1bfc8930471840ee5a4b99b6b31138b17598e7ee6f4291b64" +dependencies = [ + "approx", + "bevy_math", + "bevy_reflect", + "itertools 0.14.0", + "serde", + "thiserror 2.0.18", + "variadics_please 2.0.0", +] + [[package]] name = "bevy_derive" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293df2b2f7ed65ef2ce02b2e7359faac1a9a92a8cc96c182c9de77eb06049ae0" +checksum = "fd59e9e600d792e60df17b4d52719b28c288bf047884ac89ad29d9c7a6592d2c" dependencies = [ "bevy_macro_utils", "quote", @@ -699,41 +794,48 @@ dependencies = [ [[package]] name = "bevy_dev_tools" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db815000affd21545a6d6986f180a66393aee8c84330843e854d376c8537b10f" +checksum = "c166963d672c45b34cf71f2cab3df627ec61f7ed06df451f008c9519f87e2e34" dependencies = [ + "bevy_animation", "bevy_app", "bevy_asset", + "bevy_audio", "bevy_camera", "bevy_color", - "bevy_core_pipeline", "bevy_diagnostic", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_input", + "bevy_light", "bevy_log", "bevy_math", - "bevy_pbr", + "bevy_mesh", "bevy_picking", + "bevy_platform", "bevy_reflect", "bevy_render", "bevy_shader", + "bevy_sprite", "bevy_state", "bevy_text", "bevy_time", "bevy_transform", "bevy_ui", - "bevy_ui_render", + "bevy_ui_widgets", "bevy_window", + "bevy_world_serialization", + "serde", "tracing", ] [[package]] name = "bevy_diagnostic" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a73e11555051f37c3e0e9ef7775e77108f2482310242996fb5bb6ef8b685b78e" +checksum = "7f8851dc1b253b350bf941695457007e6e44ad4b8f075bf52a1ef202e6866b6a" dependencies = [ "atomic-waker", "bevy_app", @@ -749,9 +851,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4654b9b3535fa7813d2878a50e1b5ad80a361dc1c913b96ded57667f65d70a01" +checksum = "d5541a1658c5029b39e3ec59c6ecb47ad0a6d85fa083312a5ee2a95d6982a926" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -772,14 +874,14 @@ dependencies = [ "slotmap", "smallvec", "thiserror 2.0.18", - "variadics_please", + "variadics_please 2.0.0", ] [[package]] name = "bevy_ecs_macro_logic" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0b98a74141ce8dce4654c60020ebbaefab32646f42af6bbae55f282ae65ff7" +checksum = "5197fea7643d2733e8b6d81c3dfa99adad3a754cdfd159c00255cea157b795d7" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -789,9 +891,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc958a194d226d618404e0fea99a3c8b4146207a00a3ba07fa712bf71607240" +checksum = "3dde5305169503c9101404bf8cf17e8351f56fccf5152b8e5d7d7c32dcf1c486" dependencies = [ "bevy_ecs_macro_logic", "bevy_macro_utils", @@ -802,19 +904,49 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14dc5bf9e6cb46c4401a66625b5f7eb9654a7f3c8586423c428b79586a1c55cd" +checksum = "d4e4c4183c39ae8d00e53afeeab66aa71c41b08d82638149f9d485a2a62df569" dependencies = [ "bevy_macro_utils", "encase_derive_impl", ] +[[package]] +name = "bevy_extract" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08e27fc07ef8e3ab7c217fed1b171d42c90f3b6e4f7f526ffa28f9006ac49aa4" +dependencies = [ + "bevy_app", + "bevy_camera", + "bevy_derive", + "bevy_ecs", + "bevy_extract_macros", + "bevy_log", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_utils", +] + +[[package]] +name = "bevy_extract_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5c67e8c55ef35c65295e8cb614eda169780e21e2748f6df470d3bff21849a3" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "bevy_feathers" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e744e047f9328a9c072982569fabbbc837db0474fd902473b5f438f8688c30b6" +checksum = "9c4566f226580b5d852e3fa4fdb821e45367f598c0c6090896d686e446fa91f4" dependencies = [ "accesskit", "bevy_a11y", @@ -844,9 +976,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7998fe83c89d527efa83c85c574a17f7bb6e34881d638ecb7f706d9d79e82f3c" +checksum = "c7a8c6c22d01a7b2e949ac1be313fffca62a23ae0b802a884f009e6dc70a4cea" dependencies = [ "bevy_app", "bevy_ecs", @@ -860,14 +992,15 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0cbd55cc33b6412777d60d8c24a96bee148c82a5731f35ac85b2df4a7cf957" +checksum = "dfc92f635ec5eaef5733afee45e6a0452e8c65de42d818dc7269dc5265087689" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", + "bevy_curve", "bevy_ecs", "bevy_gizmos_macros", "bevy_input", @@ -875,6 +1008,7 @@ dependencies = [ "bevy_math", "bevy_mesh", "bevy_reflect", + "bevy_shape", "bevy_time", "bevy_transform", "bevy_utils", @@ -883,9 +1017,9 @@ dependencies = [ [[package]] name = "bevy_gizmos_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9903f2614f53bacacb92bef1e407afe3a27a4abddb500bfd479909c5d7b254df" +checksum = "501e72c4ac31caef17ef9e627dee212d2107b95402a891ec6f0fc4107dd0cdf4" dependencies = [ "bevy_macro_utils", "quote", @@ -894,9 +1028,9 @@ dependencies = [ [[package]] name = "bevy_gizmos_render" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd569456c4b19bafa6d37c1bd9cc743fdadda3a2f23d79d2ceb0a088ea8d475f" +checksum = "42f5be0c9f114dc9b2c929076517d088e059b971edec5dfff4d5a225df6796df" dependencies = [ "bevy_app", "bevy_asset", @@ -904,6 +1038,7 @@ dependencies = [ "bevy_color", "bevy_core_pipeline", "bevy_ecs", + "bevy_extract", "bevy_gizmos", "bevy_image", "bevy_log", @@ -914,6 +1049,7 @@ dependencies = [ "bevy_reflect", "bevy_render", "bevy_shader", + "bevy_shape", "bevy_sprite_render", "bevy_transform", "bevy_utils", @@ -923,17 +1059,18 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e21ad83b7dc8d456491ea3d50057685d8c4cca8bc52a1b4a7161c86c369842" +checksum = "2b5c4e1779a522f706853f75fc11107a032d4e4f92d26fbef4c36e825d00afdf" dependencies = [ "async-lock", - "base64", + "base64 0.23.1", "bevy_animation", "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", + "bevy_curve", "bevy_ecs", "bevy_image", "bevy_light", @@ -947,7 +1084,7 @@ dependencies = [ "bevy_world_serialization", "fixedbitset 0.5.7", "gltf", - "itertools", + "itertools 0.14.0", "percent-encoding", "serde", "serde_json", @@ -959,9 +1096,9 @@ dependencies = [ [[package]] name = "bevy_image" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bc41f69a0c6ade2e7961602517545b39ab8e42bc8c4a729bd24ffee3bcd904" +checksum = "bb818dd8d705809d54adea08e346edce81a51ddbf06406ddf12a72ee467a3855" dependencies = [ "bevy_app", "bevy_asset", @@ -988,9 +1125,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd221cf0732f5bf06caf594bdb233361ac735d4d416cf5849757b64bf4e8472a" +checksum = "261ca5cc8a0bf228bfe4e841570db18a3ab1d034ce089772b8ec49c163ae74ea" dependencies = [ "bevy_app", "bevy_ecs", @@ -1006,11 +1143,12 @@ dependencies = [ [[package]] name = "bevy_input_focus" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1a14f56c6e722048ec9dc20dbbc6f46b8037f61e319ea776829199278da166" +checksum = "83c81d369d0ab3ec17ba14bab1e07da7cacf3751a3104a93b1a3cd99d887887b" dependencies = [ "bevy_app", + "bevy_camera", "bevy_ecs", "bevy_input", "bevy_math", @@ -1023,9 +1161,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a85632a749f956f92b7b391c31ce1f229e57b06de879d1b60a3bb91e4e240" +checksum = "a4ed1cb58d1761426a077a8aff55e6a2e0cdfd19e411211d4b0217409330bb84" dependencies = [ "bevy_a11y", "bevy_android", @@ -1038,10 +1176,12 @@ dependencies = [ "bevy_clipboard", "bevy_color", "bevy_core_pipeline", + "bevy_curve", "bevy_derive", "bevy_dev_tools", "bevy_diagnostic", "bevy_ecs", + "bevy_extract", "bevy_feathers", "bevy_gilrs", "bevy_gizmos", @@ -1064,6 +1204,7 @@ dependencies = [ "bevy_render", "bevy_scene", "bevy_shader", + "bevy_shape", "bevy_sprite", "bevy_sprite_render", "bevy_state", @@ -1082,14 +1223,15 @@ dependencies = [ [[package]] name = "bevy_light" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7b5009e9cc765c30b21daf2277ea4423cbd347b05280ea0943b50c5a80cd42" +checksum = "529d5ec7db637bbce7d016b2bfd0798362ad67118de8e9d37aaac24ecb3337cd" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", + "bevy_curve", "bevy_ecs", "bevy_gizmos", "bevy_image", @@ -1098,6 +1240,7 @@ dependencies = [ "bevy_mesh", "bevy_platform", "bevy_reflect", + "bevy_shape", "bevy_transform", "bevy_utils", "half", @@ -1108,9 +1251,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2017a5fe12ea230d00cfdca00c65c262924be26e0324f7e0033c64f8cc265888" +checksum = "a87d5152292b0e581a589cffb6b7e83e0afe345279d4126545ce7b786bd8a47a" dependencies = [ "android_log-sys", "bevy_app", @@ -1126,9 +1269,9 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746a19912c6dc1bbe79188778573e8a253d5832c696b2fcb95578c17b29ff7ba" +checksum = "c0d03a948df65138e30917d91237797d7e38763135ebacd0f28c891e1a3b2b52" dependencies = [ "proc-macro2", "quote", @@ -1138,9 +1281,9 @@ dependencies = [ [[package]] name = "bevy_material" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "423710403b4a4d8e9ee872c6ac8108787f2396422b582d15a660a40731ddfbf0" +checksum = "5be7ee4b2f4764e8d58a59afb47a3ba8bae36f955f409f08c658cace2808ef40" dependencies = [ "bevy_asset", "bevy_derive", @@ -1155,15 +1298,15 @@ dependencies = [ "smallvec", "thiserror 2.0.18", "tracing", - "variadics_please", + "variadics_please 2.0.0", "wgpu-types", ] [[package]] name = "bevy_material_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6928e167592472f6ee900f80de199cc2dafd31d4f082a86e8d594b81b973e3d" +checksum = "70551fa201e1416ab44968631b7ce6320c194acfdb652a1971ec6882af122333" dependencies = [ "bevy_macro_utils", "quote", @@ -1172,29 +1315,26 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c280440d2a5bc07ea393b5346b5712eec73ea30f0133097b8b13dade385beb" +checksum = "598cbdcec4d0f0d966905996240ac76f77a644c583f95fb612d4f59f5f649038" dependencies = [ "approx", - "arrayvec", "bevy_reflect", "derive_more", "glam", - "itertools", "libm", "rand 0.10.0", - "rand_distr", "serde", "thiserror 2.0.18", - "variadics_please", + "variadics_please 2.0.0", ] [[package]] name = "bevy_mesh" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59863e6f37ef0ba1f37021bce9dd940f9dc31d15e03f548cda5fd3e674f409e" +checksum = "09358ac9a3ede5855568c10eaba6bcf126bf86639e786fb21b413457ebec5f26" dependencies = [ "bevy_app", "bevy_asset", @@ -1205,6 +1345,7 @@ dependencies = [ "bevy_mikktspace", "bevy_platform", "bevy_reflect", + "bevy_shape", "bevy_transform", "bitflags 2.11.0", "bytemuck", @@ -1227,9 +1368,9 @@ checksum = "bff34eb29ff4b8a8688bc7299f14fb6b597461ca80fec03ed7d22939ab33e48f" [[package]] name = "bevy_pbr" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ebc777de2d7f45888c68e8e04949bfb8a40aee62f700283fc340f525e67f52" +checksum = "fb760932d1e683e7c00011f5c99e4e1cc893646a3a7b7224da6daf9bfa94853d" dependencies = [ "arrayvec", "bevy_app", @@ -1240,6 +1381,7 @@ dependencies = [ "bevy_derive", "bevy_diagnostic", "bevy_ecs", + "bevy_extract", "bevy_gltf", "bevy_image", "bevy_light", @@ -1251,6 +1393,7 @@ dependencies = [ "bevy_reflect", "bevy_render", "bevy_shader", + "bevy_shape", "bevy_tasks", "bevy_transform", "bevy_utils", @@ -1270,9 +1413,9 @@ dependencies = [ [[package]] name = "bevy_picking" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93468ac5937f76be3af763d496f01e899edf6d9c1a1d39a87ae4ce8eba36f78b" +checksum = "47a04fb644c62a57a4f338f5cd8b61519c569139742eafe87dccb523e4b7cf2e" dependencies = [ "bevy_app", "bevy_asset", @@ -1284,6 +1427,7 @@ dependencies = [ "bevy_mesh", "bevy_platform", "bevy_reflect", + "bevy_shape", "bevy_time", "bevy_transform", "bevy_window", @@ -1294,10 +1438,11 @@ dependencies = [ [[package]] name = "bevy_platform" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3120670bb2308980f723477c9d82476fcda31f08be9b256c3f0acdee82a65094" +checksum = "000bc467d1b344b6609fcf217a9b08d349d49c8e85dc4179fb7656f2b6e3db47" dependencies = [ + "bytemuck", "critical-section", "foldhash 0.2.0", "futures-channel", @@ -1316,17 +1461,19 @@ dependencies = [ [[package]] name = "bevy_post_process" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57379b51aa0f1b2066c956263e1f12686d22cf8939cf9644eebf2ee42d3dd460" +checksum = "d684c2ac93e94d9b7ba767ce02ea435ef244677a24746241726de2aa552ba1a4" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", "bevy_core_pipeline", + "bevy_curve", "bevy_derive", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_math", "bevy_platform", @@ -1341,15 +1488,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b511e89f7078fd21fdea77061a0ca3e737297c7011bb10c073e0aecb17c9fea6" +checksum = "41935a00c02004753bd7ed5094754397800b3f673bf15553bb007b06216872d5" [[package]] name = "bevy_reflect" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92abd59cbba1524c1847e9a50f74d94e6b7836c80a8edfa9c47e59f7fd81021d" +checksum = "46eecc733575b873deedcc37639e36290092388657091b3321fa6e073e7818e6" dependencies = [ "assert_type_match", "bevy_platform", @@ -1370,15 +1517,15 @@ dependencies = [ "smol_str", "thiserror 2.0.18", "uuid 1.21.0", - "variadics_please", + "variadics_please 2.0.0", "wgpu-types", ] [[package]] name = "bevy_reflect_derive" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fa4e6b97fd2d582dd5ed96762a70d04505a477c833cf4f69d016dcd03d2d04" +checksum = "dfaa1e315676c625ed8d30ba8a671ebf917cad6355320295b9802a8cbc06853b" dependencies = [ "bevy_macro_utils", "indexmap", @@ -1390,9 +1537,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89b2cc850a4c3fd12a6a088a4fc3e80118b2e1b569da8936f6d4d99ca1b6ee7" +checksum = "5f438a921fd3ef82cc09ccf5e0cd8f1214dcae6286890f9d4acba0409d9a61a8" dependencies = [ "async-channel", "bevy_app", @@ -1403,6 +1550,8 @@ dependencies = [ "bevy_diagnostic", "bevy_ecs", "bevy_encase_derive", + "bevy_extract", + "bevy_extract_macros", "bevy_image", "bevy_log", "bevy_material", @@ -1413,6 +1562,7 @@ dependencies = [ "bevy_reflect", "bevy_render_macros", "bevy_shader", + "bevy_shape", "bevy_tasks", "bevy_time", "bevy_transform", @@ -1426,15 +1576,16 @@ dependencies = [ "glam", "image", "indexmap", - "itertools", + "itertools 0.14.0", "js-sys", - "naga", "nonmax", "offset-allocator", "send_wrapper", "smallvec", + "static_assertions", "thiserror 2.0.18", - "variadics_please", + "tracing", + "variadics_please 2.0.0", "wasm-bindgen", "weak-table", "web-sys", @@ -1444,10 +1595,11 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0eb5cffe5253a6ab4e4b84b2e40a6a2f4673deb16fd63ab9dfc4a015449873a" +checksum = "119ca6d445eba5c9976c658f29bac854094b27c27624aa92c4d9668c319618d0" dependencies = [ + "bevy_extract_macros", "bevy_macro_utils", "proc-macro2", "quote", @@ -1456,9 +1608,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a3c891148c40e1352fc41001c0e1894ba63fc4e2d3aca33447343c4122b782" +checksum = "98c4b1677c948e4c1453883f4441136003c53fd9caa44e0f7d78b37618bdb9ad" dependencies = [ "bevy_app", "bevy_asset", @@ -1472,14 +1624,14 @@ dependencies = [ "smallvec", "thiserror 2.0.18", "tracing", - "variadics_please", + "variadics_please 2.0.0", ] [[package]] name = "bevy_scene_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4bc33a36a4e9e344985a96cd8b4abc816cf2c5d2fa002d72fd7bcd11396589c" +checksum = "d4da846d8418ca6e38943707c88075a4a0b8f6eea0fd286d33a024d0257439d0" dependencies = [ "bevy_ecs_macro_logic", "bevy_macro_utils", @@ -1490,28 +1642,42 @@ dependencies = [ [[package]] name = "bevy_shader" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0ac51378bb6a021165ee334f846b515cd06082e24ce962adce58ad7df1c39a" +checksum = "c2becafd54079da13835d6a42fc743e305d6270c27a91de613afe6e3f4b5de19" dependencies = [ "bevy_asset", "bevy_platform", "bevy_reflect", "bevy_utils", - "naga", - "naga_oil", "serde", "thiserror 2.0.18", "tracing", - "wgpu-naga-bridge", + "wesl", "wgpu-types", ] +[[package]] +name = "bevy_shape" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8b6096ad1ec7dfe1af8e51d7cfa7de1a9e0a3bd02be58a061092c5e1ff1eb1" +dependencies = [ + "arrayvec", + "bevy_math", + "bevy_reflect", + "derive_more", + "rand 0.10.0", + "rand_distr", + "serde", + "thiserror 2.0.18", +] + [[package]] name = "bevy_sprite" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c679b88cc655881d403929bcdf02d30f688fd8916eb1635e6e7f8585d8ae6894" +checksum = "24dc4f69160513952a1969a3df5b4a2c729acfe0caf773854acea4a8c71f0918" dependencies = [ "bevy_app", "bevy_asset", @@ -1536,17 +1702,15 @@ dependencies = [ [[package]] name = "bevy_sprite3d" version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7d3bb3fe10dd18aad785f2743916ba07e187cd9adeb1321e75d579cd0a0b2e" dependencies = [ "bevy", ] [[package]] name = "bevy_sprite_render" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a65ca9a286dd5815ca4d2d41d4f83bdbb22c8a639d10b4c33eac114b369c36" +checksum = "8918649806697740b61d3fd0559cb8c7de2ade5046aacf8abbef20e49ea1de0c" dependencies = [ "bevy_app", "bevy_asset", @@ -1555,6 +1719,7 @@ dependencies = [ "bevy_core_pipeline", "bevy_derive", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_material", "bevy_math", @@ -1563,6 +1728,7 @@ dependencies = [ "bevy_reflect", "bevy_render", "bevy_shader", + "bevy_shape", "bevy_sprite", "bevy_text", "bevy_transform", @@ -1572,14 +1738,16 @@ dependencies = [ "derive_more", "fixedbitset 0.5.7", "nonmax", + "smallvec", + "static_assertions", "tracing", ] [[package]] name = "bevy_state" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c22e694ea52e42994aea6ed2d0b378fa1e9d5a9b615db88626e33508bc03f35" +checksum = "09292e08e1eb34d2dd915630fb3c04ba75220c7819943c9f213d3a5f9a8be1e8" dependencies = [ "bevy_app", "bevy_ecs", @@ -1588,14 +1756,14 @@ dependencies = [ "bevy_state_macros", "bevy_utils", "log", - "variadics_please", + "variadics_please 2.0.0", ] [[package]] name = "bevy_state_macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835f45091fa0df1ff3cb10f4ca5a397d4e9249b550f1be6893b08a2a06d6eed7" +checksum = "fec1a8f6a253e39ddf7e447b1b9286caacb205ed8e619e6fb9a2e010d58dd04b" dependencies = [ "bevy_macro_utils", "quote", @@ -1604,9 +1772,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa34e6b9b804851ec08a41c0346c859d82e2fa98c906d74b965ee61bbbb688e4" +checksum = "fbd8116f12dc50bde3758a72fba85e1f4c00e6c66d0ad58bdc46c0c0690829a8" dependencies = [ "async-channel", "async-executor", @@ -1623,9 +1791,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e1d7eb8b10229f424b4fc56c864a26c32ac02b8cd184e2cc25eceea7b5e892" +checksum = "119d2b37ce3f5ea5a5b9092a7c9eec8d3734de62592d2869bd1d925976f34d05" dependencies = [ "bevy_app", "bevy_asset", @@ -1652,9 +1820,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21e3be2aa4426ea1e0a7036d3d1dbbded84c319459d9f3e2a616b33563372f2" +checksum = "13901174b792bb7848d8e088075f0009ea409b99179934c0d5bdd2b95622694e" dependencies = [ "bevy_app", "bevy_ecs", @@ -1667,9 +1835,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95fefe69c9223d10e6b52a0fdf12811bab9d0c7dcb27570cb86824b451f180d" +checksum = "83379023d77a0739569a5bcb859eed652781a1b3271e94a86dfbb56fc5d067e0" dependencies = [ "bevy_app", "bevy_ecs", @@ -1684,9 +1852,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5519c799ecf14e2eeece8b9b823250a00c9df14523e2638b647fccfe4ff0d20" +checksum = "7926fba78f133376db0cba73a054db6931952379b5bfdc63f2fe9ba0c3b96c39" dependencies = [ "accesskit", "bevy_a11y", @@ -1723,10 +1891,11 @@ dependencies = [ [[package]] name = "bevy_ui_render" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d3921936d88bd2638dd4d87bff8fc3b9908a046a50658548045102249f93e" +checksum = "620b51b51eb8e7d8b2362ba96263142829560d9aa254e2f28032570667c6b0fb" dependencies = [ + "bevy_a11y", "bevy_app", "bevy_asset", "bevy_camera", @@ -1734,6 +1903,7 @@ dependencies = [ "bevy_core_pipeline", "bevy_derive", "bevy_ecs", + "bevy_extract", "bevy_image", "bevy_input_focus", "bevy_math", @@ -1751,14 +1921,15 @@ dependencies = [ "bytemuck", "derive_more", "indexmap", + "smallvec", "tracing", ] [[package]] name = "bevy_ui_widgets" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fc616ccc51b36dea5cb1de91ed82569b41649923388e5ba82cb7d2f1ef18d8" +checksum = "6442cd402df6a54f0e51ed8c1bd004c8f9c6715d0f8045e33c68ea9aebb1ce16" dependencies = [ "accesskit", "bevy_a11y", @@ -1770,32 +1941,36 @@ dependencies = [ "bevy_log", "bevy_math", "bevy_picking", + "bevy_platform", "bevy_reflect", "bevy_text", + "bevy_time", "bevy_ui", "bevy_window", "parley", "smol_str", + "web-sys", ] [[package]] name = "bevy_utils" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aceea6c7ffdd568f866d5ca4dfe50c33440c54f7bc230c13a9ba7ab0c91aed1" +checksum = "5cbd58495039d4e63e6fcfef1242fecab33ffe62b4a5e010467e69e790879812" dependencies = [ "async-channel", "bevy_platform", "disqualified", "indexmap", + "serde", "thread_local", ] [[package]] name = "bevy_window" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efcc255b43db156fba393b2ff8fa552aac5e7e02ae4c6298eacdbab655ddf988" +checksum = "dc9a83f3cbaa04155b5dc9b247819c0e215aee754451a4324b82ddeb80dc53f1" dependencies = [ "bevy_app", "bevy_asset", @@ -1812,9 +1987,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308c9eb04f74f340593b3def6a7c1778fd42581d779c6db836d690c7d471f94c" +checksum = "1ef0a5a55524e793ab13536ef244229fa66a4839fae6564df2aa4b3c13956a82" dependencies = [ "accesskit", "accesskit_winit", @@ -1845,9 +2020,9 @@ dependencies = [ [[package]] name = "bevy_world_serialization" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de58ae74410d4f940e3f00484f58603b4f1a53a7d84ebe3fca258d2a3aa96620" +checksum = "eef3a23ed3899c88467ce27a0420a1dadeb543981c2e1b9617f6ecf6e5fce1bf" dependencies = [ "bevy_app", "bevy_asset", @@ -1877,7 +2052,7 @@ dependencies = [ "sha2", "static_assertions", "tempfile", - "variadics_please", + "variadics_please 1.1.0", "yarnspinner", "yarnspinner_internal_shared", ] @@ -1913,9 +2088,9 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ddef2995421ab6a5c779542c81ee77c115206f4ad9d5a8e05f4ff49716a3dd" +checksum = "09ec2f926cc3060f09db9ebc5b52823d85268d24bb917e472c0c4bea35780a7d" dependencies = [ "bit-vec 0.9.1", ] @@ -1948,6 +2123,18 @@ dependencies = [ "serde_core", ] +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "blake3" version = "1.8.3" @@ -2117,19 +2304,17 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" [[package]] -name = "codespan-reporting" -version = "0.12.0" +name = "clipboard-win" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" +checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" dependencies = [ - "serde", - "termcolor", - "unicode-width", + "error-code", ] [[package]] @@ -2138,11 +2323,15 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" dependencies = [ - "serde", - "termcolor", "unicode-width", ] +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + [[package]] name = "combine" version = "4.6.7" @@ -2272,15 +2461,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core_maths" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" -dependencies = [ - "libm", -] - [[package]] name = "coreaudio-rs" version = "0.13.0" @@ -2504,12 +2684,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" -[[package]] -name = "data-encoding" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" - [[package]] name = "deltae" version = "0.3.2" @@ -2704,11 +2878,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "error-code" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" + [[package]] name = "euclid" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df61bf483e837f88d5c2291dcf55c67be7e676b3a51acc48db3a7b163b91ed63" +checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" dependencies = [ "num-traits", ] @@ -2854,24 +3034,24 @@ dependencies = [ [[package]] name = "font-types" -version = "0.11.3" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38ad915f6dadd993ced50848a8291a543bd41ca62bc10740d5e64e2ab4cfd7" +checksum = "6c92d9081c7ab3bd83ef1eecdfad090f3d966e3ce74106779664114cfe1a6274" dependencies = [ "bytemuck", ] [[package]] name = "fontique" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c20b425addb8661e97fe1d51c4d8bcec3ec29ed6ad0db983976a7521276b8f7" +checksum = "6688bc1294fe7117d788937b6c53480169b29c566954af490830d4c09da9516a" dependencies = [ "hashbrown 0.17.1", "linebender_resource_handle", "memmap2", "parlance", - "read-fonts 0.39.2", + "read-fonts 0.41.0", "smallvec", ] @@ -2911,6 +3091,12 @@ dependencies = [ "libc", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures-channel" version = "0.3.32" @@ -3070,10 +3256,11 @@ dependencies = [ [[package]] name = "glam" -version = "0.32.1" +version = "0.33.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" +checksum = "37bfe73dc8ec21f54d181e5a60554327ec3f1c600c455a75ccbfc65d2106a6c4" dependencies = [ + "approx", "bytemuck", "encase", "libm", @@ -3171,40 +3358,13 @@ dependencies = [ "windows", ] -[[package]] -name = "gpu-descriptor" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" -dependencies = [ - "bitflags 2.11.0", - "gpu-descriptor-types", - "hashbrown 0.15.5", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" -dependencies = [ - "bitflags 2.11.0", -] - -[[package]] -name = "grid" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e2d4c0a8296178d8802098410ca05d86b17a10bb5ab559b3fb404c1f948220" - [[package]] name = "guillotiere" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" +checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab" dependencies = [ "euclid", - "svg_fmt", ] [[package]] @@ -3223,14 +3383,13 @@ dependencies = [ [[package]] name = "harfrust" -version = "0.6.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551ed25397e4b444e89686602877d5cf3a7f6e3d548dcac37a8357d1e195f4df" +checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9" dependencies = [ "bitflags 2.11.0", "bytemuck", - "core_maths", - "read-fonts 0.39.2", + "read-fonts 0.41.0", "smallvec", ] @@ -3305,21 +3464,15 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hexasphere" -version = "18.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177ea6330876de4ef08e184f827b98acc037614a4ce409902c5b0d53a9c2e951" +checksum = "163385eff5a0cf606ebe2c10b3a44ab02f4306e83fbd068a64f5e1d72a3049ac" dependencies = [ "constgebra", "glam", "tinyvec", ] -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - [[package]] name = "icu_collections" version = "2.1.1" @@ -3571,6 +3724,12 @@ dependencies = [ "rustversion", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + [[package]] name = "itertools" version = "0.14.0" @@ -3580,6 +3739,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.17" @@ -3620,11 +3788,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -3691,6 +3860,15 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" +[[package]] +name = "lalrpop-util" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884f3e747ed2dcee867cda1b0c31a048f9e20de2d916a248949319921a2e666e" +dependencies = [ + "regex-automata", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3714,11 +3892,77 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "lexical" +version = "7.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc8a009b2ff1f419ccc62706f04fe0ca6e67b37460513964a3dfdb919bb37d6" +dependencies = [ + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" +dependencies = [ + "lexical-parse-integer", + "lexical-util", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "lexical-util" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" + +[[package]] +name = "lexical-write-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" +dependencies = [ + "lexical-util", + "lexical-write-integer", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" +dependencies = [ + "lexical-util", +] + [[package]] name = "libc" -version = "0.2.182" +version = "0.2.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" [[package]] name = "libloading" @@ -3813,7 +4057,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] -name = "lru" +name = "logos" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970" +dependencies = [ + "fnv", + "proc-macro2", + "quote", + "regex-automata", + "regex-syntax", + "syn 2.0.117", +] + +[[package]] +name = "logos-derive" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31" +dependencies = [ + "logos-codegen", +] + +[[package]] +name = "lru" version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" @@ -3932,48 +4208,49 @@ dependencies = [ "byteorder", ] +[[package]] +name = "mutants" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126" + [[package]] name = "naga" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bf919621e7975acb27d881bae2fb993e0d45c8e0446e85e6272971e00dc8df" +checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" dependencies = [ "arrayvec", - "bit-set 0.9.1", + "bit-set 0.10.0", "bitflags 2.11.0", "cfg-if", "cfg_aliases", - "codespan-reporting 0.13.1", + "codespan-reporting", "half", - "hashbrown 0.16.1", - "hexf-parse", + "hashbrown 0.17.1", "indexmap", "libm", "log", + "naga-types", "num-traits", "once_cell", - "pp-rs", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "thiserror 2.0.18", "unicode-ident", ] [[package]] -name = "naga_oil" -version = "0.22.0" +name = "naga-types" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319f03062940ed85c03da020042618356bb8ca5263020322930883b05e30208e" +checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" dependencies = [ - "codespan-reporting 0.12.0", - "data-encoding", + "hashbrown 0.17.1", "indexmap", - "naga", - "regex", - "rustc-hash", + "rustc-hash 1.1.0", + "serde", "thiserror 2.0.18", - "tracing", - "unicode-ident", ] [[package]] @@ -4053,6 +4330,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "nonmax" version = "0.5.5" @@ -4246,6 +4532,18 @@ dependencies = [ "objc2-quartz-core 0.2.2", ] +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.0", + "objc2 0.6.4", + "objc2-core-graphics", + "objc2-foundation 0.3.2", +] + [[package]] name = "objc2-audio-toolbox" version = "0.3.2" @@ -4343,6 +4641,19 @@ dependencies = [ "objc2 0.6.4", ] +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-io-surface", +] + [[package]] name = "objc2-core-image" version = "0.2.2" @@ -4410,6 +4721,17 @@ dependencies = [ "objc2-core-foundation", ] +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.0", + "objc2 0.6.4", + "objc2-core-foundation", +] + [[package]] name = "objc2-link-presentation" version = "0.2.2" @@ -4418,7 +4740,7 @@ checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ "block2 0.5.1", "objc2 0.5.2", - "objc2-app-kit", + "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", ] @@ -4468,6 +4790,7 @@ dependencies = [ "bitflags 2.11.0", "objc2 0.6.4", "objc2-core-foundation", + "objc2-core-graphics", "objc2-foundation 0.3.2", "objc2-metal 0.3.2", ] @@ -4548,9 +4871,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "orbclient" @@ -4580,6 +4909,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -4651,9 +4990,9 @@ checksum = "4b6937eda350acc1a5d05872c3cbf99fe78619c269096e2be3d4a350058639d5" [[package]] name = "parley" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fad031076f48f0d4d85ce1aea9b94b4e715a4d636a030a123038f8f5b5e4343" +checksum = "22d2ff88bd3f7d68d1d9b09c7e6209f9a8e8c05088295140a2bcf2e9b17038c5" dependencies = [ "fontique", "harfrust", @@ -4664,14 +5003,14 @@ dependencies = [ "linebender_resource_handle", "parlance", "parley_data", - "skrifa 0.42.1", + "skrifa 0.44.0", ] [[package]] name = "parley_data" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ab9ace3fad1b9ed603ddac5b595e69931fc50263d7e04e4055015b77b02da5" +checksum = "1567535334d6ba2d3cde19221ba9a7bd0fabb3cbd99046ddfb10ae061cfcc889" dependencies = [ "icu_properties", ] @@ -4898,15 +5237,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" -[[package]] -name = "pp-rs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" -dependencies = [ - "unicode-xid", -] - [[package]] name = "presser" version = "0.3.1" @@ -4964,7 +5294,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck", - "itertools", + "itertools 0.14.0", "log", "multimap", "petgraph", @@ -4983,7 +5313,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.117", @@ -5028,6 +5358,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "radsort" version = "0.1.1" @@ -5105,7 +5441,7 @@ dependencies = [ "compact_str", "hashbrown 0.16.1", "indoc", - "itertools", + "itertools 0.14.0", "kasuari", "lru", "strum", @@ -5157,7 +5493,7 @@ dependencies = [ "hashbrown 0.16.1", "indoc", "instability", - "itertools", + "itertools 0.14.0", "line-clipping", "ratatui-core", "strum", @@ -5196,12 +5532,13 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.39.2" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ed38b89c2c77ff968c524145ad65fb010f38af5c7a224b53b81d47ac2daa81" +checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" dependencies = [ "bytemuck", - "font-types 0.11.3", + "font-types 0.12.6", + "once_cell", ] [[package]] @@ -5315,6 +5652,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -5460,6 +5803,15 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde_spanned" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c" +dependencies = [ + "serde_core", +] + [[package]] name = "sha2" version = "0.10.9" @@ -5541,12 +5893,12 @@ dependencies = [ [[package]] name = "skrifa" -version = "0.42.1" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c34617370ae968efb7161bb2beb517d9084659aae19e24b89e3db25b46e4564" +checksum = "819ab7d62b1d3e72d9d9dea5650bac30424f9111364bb94928dbf5ecad1baa68" dependencies = [ "bytemuck", - "read-fonts 0.39.2", + "read-fonts 0.41.0", ] [[package]] @@ -5609,9 +5961,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.10.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" +checksum = "0134f9043ed38b087ac4f7d4af44c79e2c9e5094421fe3164f435ce585953b10" dependencies = [ "portable-atomic", ] @@ -5679,12 +6031,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "svg_fmt" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb" - [[package]] name = "swash" version = "0.2.6" @@ -5718,6 +6064,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d62a2e0561533f2ca2561d0cf27fd9fedb640a1bf2616ff5d5c80d99017faadc" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.13.2" @@ -5740,9 +6097,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.38.4" +version = "0.39.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" +checksum = "d2071df9448915b71c4fe6d25deaf1c22f12bd234f01540b77312bb8e41361e6" dependencies = [ "libc", "memchr", @@ -5754,16 +6111,22 @@ dependencies = [ [[package]] name = "taffy" -version = "0.10.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea22054047c16c3f34d3ac473a2170be1424b1115b2a3adcf28cfb067c88859" +checksum = "639627c87f43b9181c811f40a6296409e093a17bc761214cba3c15df74f86b99" dependencies = [ "arrayvec", - "grid", "serde", "slotmap", + "smallvec", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" version = "3.26.0" @@ -5777,15 +6140,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminfo" version = "0.9.0" @@ -5793,7 +6147,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" dependencies = [ "fnv", - "nom", + "nom 7.1.3", "phf", "phf_codegen", ] @@ -5814,7 +6168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" dependencies = [ "anyhow", - "base64", + "base64 0.22.1", "bitflags 2.11.0", "fancy-regex", "filedescriptor", @@ -5970,6 +6324,30 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044" +dependencies = [ + "pin-project-lite", +] + +[[package]] +name = "toml" +version = "1.1.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned", + "toml_datetime 1.1.2+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + [[package]] name = "toml_datetime" version = "0.7.5+spec-1.1.0" @@ -5981,9 +6359,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.1+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053" dependencies = [ "serde_core", ] @@ -5997,7 +6375,7 @@ dependencies = [ "indexmap", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -6007,20 +6385,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7193cbd0ce53dc966037f54351dbbcf0d5a642c7f0038c382ef9e677ce8c13f2" dependencies = [ "indexmap", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime 1.1.2+spec-1.1.0", "toml_parser", - "winnow", + "winnow 0.7.14", ] [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c" dependencies = [ - "winnow", + "winnow 1.0.4", ] +[[package]] +name = "toml_writer" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" + [[package]] name = "tracing" version = "0.1.44" @@ -6105,6 +6489,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom 8.0.0", + "petgraph", +] + [[package]] name = "ttf-parser" version = "0.25.1" @@ -6174,7 +6569,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" dependencies = [ - "itertools", + "itertools 0.14.0", "unicode-segmentation", "unicode-width", ] @@ -6191,6 +6586,17 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unsynn" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501a7adf1a4bd9951501e5c66621e972ef8874d787628b7f90e64f936ef7ec0a" +dependencies = [ + "mutants", + "proc-macro2", + "rustc-hash 2.1.3", +] + [[package]] name = "utf8_iter" version = "1.0.4" @@ -6239,6 +6645,16 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "variadics_please" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b53d0f7f2d0182759a549f1f313ce16b07d8f9ba93098157b5fa10ee3e61117f" +dependencies = [ + "quote", + "unsynn", +] + [[package]] name = "vec_map" version = "0.8.2" @@ -6296,9 +6712,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" dependencies = [ "cfg-if", "once_cell", @@ -6309,23 +6725,20 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "3cbab34de2d982e9b48e18d216d04c4a6f641066ff19ffb699980f591ee3610e" dependencies = [ - "cfg-if", - "futures-util", "js-sys", - "once_cell", + "tokio", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6333,22 +6746,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.7", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" dependencies = [ "unicode-ident", ] @@ -6498,15 +6911,19 @@ dependencies = [ [[package]] name = "weak-table" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549" +checksum = "5eba2ec791141b0bf4db542f6b038a8f9310cee33e076cb181245780b09a24ff" +dependencies = [ + "cfg-if", + "hashbrown 0.16.1", +] [[package]] name = "web-sys" -version = "0.3.91" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +checksum = "88261b9deccee56594c11a3460c462c41f58d148598fe70ad77070126a68aba4" dependencies = [ "js-sys", "wasm-bindgen", @@ -6534,6 +6951,46 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "wesl" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd8f9619baa4c7bde4df0899d6f626b70ee92d6e9c18c5f74473419b5bb6fa6" +dependencies = [ + "annotate-snippets", + "anstream", + "derive_more", + "glob", + "half", + "itertools 0.15.0", + "num-traits", + "serde", + "thiserror 2.0.18", + "toml", + "wesl-core", + "wesl-macros", + "wgsl-parse", + "wgsl-types", +] + +[[package]] +name = "wesl-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84dd3e600497eda0b47afcd21bd84c8953a9dfce7e93ed27a38ba97ac0747e03" + +[[package]] +name = "wesl-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac8767ec26e75262a8e581d5f188b1f63a288baaf885bb33c9f4f73a693e06fc" +dependencies = [ + "itertools 0.15.0", + "proc-macro2", + "quote", + "syn 3.0.7", +] + [[package]] name = "wezterm-bidi" version = "0.2.3" @@ -6608,9 +7065,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e8840e1ba2881d4cbb18d2147627a56af426ff064c0401eb0c8410c6325d07" +checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" dependencies = [ "arrayvec", "bitflags 2.11.0", @@ -6618,10 +7075,9 @@ dependencies = [ "cfg-if", "cfg_aliases", "document-features", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "js-sys", "log", - "naga", "portable-atomic", "profiling", "raw-window-handle", @@ -6636,27 +7092,28 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f519832254e56965a9940c4af57dcb75f702b6f6fa4a0b172f685395843a4d7" +checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" dependencies = [ "arrayvec", - "bit-set 0.9.1", + "bit-set 0.10.0", "bit-vec 0.9.1", "bitflags 2.11.0", "bytemuck", "cfg_aliases", "document-features", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "indexmap", "log", "naga", + "naga-types", "once_cell", "parking_lot 0.12.5", "portable-atomic", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.18", "wgpu-core-deps-apple", @@ -6669,41 +7126,41 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e39e26c4c0e07589e67d18546cf79ff45383659fc72fca4dd293358a0347f3" +checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-wasm" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1fb1798be2a912497d4c224f72d39bb0cb34af50e8bcc29865bc339c943059" +checksum = "d260ca2ca8adc654f513a869bf3cac0b47f5b8d3f87803d6942015f8de597aae" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e592c1bbef6ad047647ae6e666ebd8cee7a32bb4544d9700ec96cbf73230257" +checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ace1c17727311c22a46e4e3faf56ea6de81af99dcc839bdfb54857b94d448d" +checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set 0.9.1", + "bit-set 0.10.0", "bitflags 2.11.0", "block2 0.6.2", "bytemuck", @@ -6712,17 +7169,18 @@ dependencies = [ "glow", "glutin_wgl_sys", "gpu-allocator", - "gpu-descriptor", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "js-sys", "khronos-egl", "libc", "libloading", "log", "naga", + "naga-types", "ndk-sys", "objc2 0.6.4", "objc2-core-foundation", + "objc2-core-graphics", "objc2-foundation 0.3.2", "objc2-metal 0.3.2", "objc2-quartz-core 0.3.2", @@ -6737,6 +7195,7 @@ dependencies = [ "raw-window-metal", "renderdoc-sys", "smallvec", + "static_assertions", "thiserror 2.0.18", "wasm-bindgen", "wayland-sys", @@ -6750,9 +7209,9 @@ dependencies = [ [[package]] name = "wgpu-naga-bridge" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95226013f547544b223281cd16a4fb549aa9dcb562adbda0faae4c73ffbbc161" +checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" dependencies = [ "naga", "wgpu-types", @@ -6760,19 +7219,48 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bf84cd9ca8ca45e2b223a3868f1adf9bfc0c66aeac212e76ee7e40fdadf8f5" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" dependencies = [ "bitflags 2.11.0", "bytemuck", "js-sys", "log", + "naga-types", "raw-window-handle", "serde", + "static_assertions", "web-sys", ] +[[package]] +name = "wgsl-parse" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37cee524ba5cfabfd65d10a316b646f8a4c50f3663e7e787471f21b783261f47" +dependencies = [ + "annotate-snippets", + "derive_more", + "itertools 0.15.0", + "lalrpop-util", + "lexical", + "logos", + "thiserror 2.0.18", + "wgsl-types", +] + +[[package]] +name = "wgsl-types" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e119dd12e57d937397535201959ddddb5dbf26505402db5ef305ebb1ca9a7e5f" +dependencies = [ + "half", + "itertools 0.15.0", + "num-traits", +] + [[package]] name = "winapi" version = "0.3.9" @@ -7169,7 +7657,7 @@ dependencies = [ "memmap2", "ndk", "objc2 0.5.2", - "objc2-app-kit", + "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", "objc2-ui-kit", "orbclient", @@ -7206,6 +7694,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" + [[package]] name = "wit-bindgen" version = "0.51.0" @@ -7294,12 +7788,39 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "wl-clipboard-rs" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d7888ccd4896447b2d14d3a9350a85df2aeb6f181e2e7a31349d104ac46cac1" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.4", + "thiserror 2.0.18", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + [[package]] name = "writeable" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -7416,7 +7937,7 @@ dependencies = [ "rand 0.10.0", "serde", "static_assertions", - "variadics_please", + "variadics_please 1.1.0", "yarnspinner_internal_shared", ] diff --git a/Cargo.toml b/Cargo.toml index 932be44f..96c79714 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,3 +22,7 @@ inherits = "release" opt-level = "z" lto = "fat" codegen-units = 1 + +# Local Bevy 0.20 migration for the upstream 3D demo dependency. +[patch.crates-io] +bevy_sprite3d = { path = "../bevy_sprite3d" } diff --git a/crates/bevy_plugin/Cargo.toml b/crates/bevy_plugin/Cargo.toml index 79e6738c..0c63d01e 100644 --- a/crates/bevy_plugin/Cargo.toml +++ b/crates/bevy_plugin/Cargo.toml @@ -26,7 +26,7 @@ sha2 = "0.10" variadics_please = "1" [dependencies.bevy] -version = "0.19" +version = "0.20" default-features = false features = [ "bevy_asset", "multi_threaded", "bevy_log" ] @@ -35,7 +35,7 @@ tempfile = "3" static_assertions = "1.1.0" [dev-dependencies.bevy] -version = "0.19" +version = "0.20" default-features = false features = [ "bevy_core_pipeline", "bevy_audio" ] diff --git a/crates/bevy_plugin/src/lib.rs b/crates/bevy_plugin/src/lib.rs index bad29e69..55f4b78d 100644 --- a/crates/bevy_plugin/src/lib.rs +++ b/crates/bevy_plugin/src/lib.rs @@ -144,7 +144,7 @@ pub mod prelude { yarn_file_asset::YarnFile, }; pub(crate) use crate::{localization::StringsFile, utils::*}; - pub(crate) use anyhow::{Context, Error}; + pub(crate) use anyhow::Error; pub(crate) use serde::{Deserialize, Serialize}; pub(crate) use yarnspinner::prelude::*; pub use yarnspinner::prelude::{ diff --git a/crates/bevy_plugin/src/localization/line_id_generation.rs b/crates/bevy_plugin/src/localization/line_id_generation.rs index e7389ba4..99efec00 100644 --- a/crates/bevy_plugin/src/localization/line_id_generation.rs +++ b/crates/bevy_plugin/src/localization/line_id_generation.rs @@ -113,17 +113,22 @@ fn handle_yarn_file_events( if added_tags.contains(id) { continue; } - let asset_path = asset_server - .get_path(*id) - .with_context(|| format!("Failed to overwrite Yarn file \"{}\" with new IDs because it was not found on disk", - yarn_file.file_name()))?; + let asset_path = anyhow::Context::with_context(asset_server.get_path(*id), || { + format!( + "Failed to overwrite Yarn file \"{}\" with new IDs because it was not found on disk", + yarn_file.file_name() + ) + })?; let path = asset_root.0.join(asset_path.path()); - std::fs::write(&path, &source_with_added_ids) - .context( - format!("Failed to overwrite Yarn file at {} with new line IDs. \ + anyhow::Context::context( + std::fs::write(&path, &source_with_added_ids), + format!( + "Failed to overwrite Yarn file at {} with new line IDs. \ Aborting because localization requires all lines to have IDs, but this file is missing some.", - path.display()))?; + path.display() + ), + )?; info!( "Automatically generated line IDs for Yarn file at {}", diff --git a/crates/bevy_plugin/src/plugin/yarn_file_source.rs b/crates/bevy_plugin/src/plugin/yarn_file_source.rs index 00af0ee3..0c5b688e 100644 --- a/crates/bevy_plugin/src/plugin/yarn_file_source.rs +++ b/crates/bevy_plugin/src/plugin/yarn_file_source.rs @@ -77,20 +77,22 @@ impl YarnFileSource { "Failed to load Yarn file folder {path}.\nHelp: Does the folder exist?", path = path.display() ); - let handles: Result> = - glob(path.join("**/*.yarn").to_str().with_context(|| { + let handles: Result> = glob(anyhow::Context::with_context( + path.join("**/*.yarn").to_str(), + || { format!( "Failed to create string from path: {path}", path = path.display(), ) - })?)? - .map(|entry| { - let full_path = entry?; - let path = full_path.strip_prefix(&asset_root.0)?; - let asset_path = path.to_string_lossy().replace('\\', "/"); - Ok(asset_server.load(asset_path)) - }) - .collect(); + }, + )?)? + .map(|entry| { + let full_path = entry?; + let path = full_path.strip_prefix(&asset_root.0)?; + let asset_path = path.to_string_lossy().replace('\\', "/"); + Ok(asset_server.load(asset_path)) + }) + .collect(); let handles = handles?; if handles.is_empty() { diff --git a/crates/bevy_plugin/src/yarn_file_asset.rs b/crates/bevy_plugin/src/yarn_file_asset.rs index e264088f..a7368b4e 100644 --- a/crates/bevy_plugin/src/yarn_file_asset.rs +++ b/crates/bevy_plugin/src/yarn_file_asset.rs @@ -98,14 +98,13 @@ impl AssetLoader for YarnFileAssetLoader { fn read_yarn_file(bytes: Vec, load_context: &LoadContext) -> Result { let source = String::from_utf8(bytes)?; - let file_name = load_context - .path() - .path() - .file_name() - .context("Yarn file has no filename")? - .to_str() - .context("Yarn file name is not valid UTF-8")? - .to_owned(); + let file_name = anyhow::Context::context( + load_context.path().path().file_name(), + "Yarn file has no filename", + )?; + let file_name = + anyhow::Context::context(file_name.to_str(), "Yarn file name is not valid UTF-8")? + .to_owned(); let file = InnerYarnFile { file_name, source }; let string_table = YarnCompiler::new() .with_compilation_type(CompilationType::StringsOnly) diff --git a/crates/compiler/Cargo.toml b/crates/compiler/Cargo.toml index df0369b9..2fa2a14b 100644 --- a/crates/compiler/Cargo.toml +++ b/crates/compiler/Cargo.toml @@ -23,7 +23,7 @@ yarnspinner_core = { path = "../core", version = "0.9.0" } annotate-snippets = "0.12" serde = { version = "1", features = [ "derive" ], optional = true } serde_json = { version = "1", optional = true } -bevy = { version = "0.19", default-features = false, optional = true } +bevy = { version = "0.20", default-features = false, optional = true } rand = { version = "0.10", default-features = false } crc32fast = "1.5" globset = "0.4" diff --git a/crates/compiler/src/listeners/error_listener/diagnostic.rs b/crates/compiler/src/listeners/error_listener/diagnostic.rs index c767ded2..ea9de845 100644 --- a/crates/compiler/src/listeners/error_listener/diagnostic.rs +++ b/crates/compiler/src/listeners/error_listener/diagnostic.rs @@ -70,7 +70,7 @@ impl Diagnostic { T: ParserRuleContextExt<'input>, <<<>::TF as TokenFactory<'input>>::Inner as Token>::Data as ToOwned>::Owned: Into - { +{ let lines_above_and_below_offending_line = 2; let lines_around = ctx.get_lines_around(token_stream, lines_above_and_below_offending_line); let range = ctx.range(); diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index ac956247..7b35047b 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -22,7 +22,7 @@ bevy = [ "dep:bevy" ] rand = { version = "0.10", default-features = false, features = [ "sys_rng" ] } prost = { version = "0.14", default-features = false, features = [ "derive" ] } serde = { version = "1", features = [ "derive" ], optional = true } -bevy = { version = "0.19", default-features = false, optional = true, features = [ "std" ] } +bevy = { version = "0.20", default-features = false, optional = true, features = [ "std" ] } variadics_please = "1.1.0" hashbrown = "0.16.1" yarnspinner_internal_shared = { path = "../internal_shared", version = "0.1.0" } diff --git a/crates/example_dialogue_view/Cargo.toml b/crates/example_dialogue_view/Cargo.toml index 97191930..eb04adec 100644 --- a/crates/example_dialogue_view/Cargo.toml +++ b/crates/example_dialogue_view/Cargo.toml @@ -18,7 +18,7 @@ bevy_yarnspinner = { path = "../bevy_plugin", version = "0.9.0" } unicode-segmentation = "1" [dependencies.bevy] -version = "0.19" +version = "0.20" default-features = false features = [ "bevy_ui", @@ -28,4 +28,6 @@ features = [ "png", "bevy_asset", "bevy_window", + "bevy_ui_widgets", + "ui_picking", ] diff --git a/crates/example_dialogue_view/src/option_selection.rs b/crates/example_dialogue_view/src/option_selection.rs index 77cfa79b..b7b11bcf 100644 --- a/crates/example_dialogue_view/src/option_selection.rs +++ b/crates/example_dialogue_view/src/option_selection.rs @@ -2,13 +2,20 @@ use crate::ExampleYarnSpinnerDialogueViewSystemSet; use crate::setup::{DialogueNode, OptionButton, OptionsNode, UiRootNode, spawn_options}; use crate::typewriter::{Typewriter, TypewriterFinishedEvent}; use bevy::color::palettes::css; +use bevy::picking::hover::Hovered; use bevy::platform::collections::HashMap; use bevy::prelude::*; use bevy::text::TextLayoutInfo; +use bevy::ui::Pressed; +use bevy::ui_widgets::{Activate, Button, ButtonPlugin}; use bevy::window::{CursorIcon, PrimaryWindow, SystemCursorIcon}; use bevy_yarnspinner::{events::*, prelude::*}; pub(crate) fn option_selection_plugin(app: &mut App) { + if !app.is_plugin_added::() { + app.add_plugins(ButtonPlugin); + } + app.add_observer(activate_option); app.add_systems( Update, ( @@ -34,6 +41,7 @@ struct HasSelectedOptionEvent; #[derive(Debug, Clone, PartialEq, Default, Resource)] pub(crate) struct OptionSelection { options: Vec, + selected: Option, } impl OptionSelection { @@ -43,7 +51,10 @@ impl OptionSelection { .filter(|o| o.is_available) .cloned() .collect(); - Self { options } + Self { + options, + selected: None, + } } } @@ -93,17 +104,17 @@ fn select_option( mut commands: Commands, keys: Res>, typewriter: Res, - mut buttons: Query<(Entity, &Interaction, &OptionButton), (With