diff --git a/Cargo.lock b/Cargo.lock index 5417fb2..100b0b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,55 +20,57 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" [[package]] name = "accesskit" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" +checksum = "6cf780eb737f2d4a49ffbd512324d53ad089070f813f7be7f99dbd5123a7f448" [[package]] name = "accesskit_consumer" -version = "0.16.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" +checksum = "3bdfa1638ddd6eb9c752def95568df8b3ad832df252e9156d2eb783b201ca8a9" dependencies = [ "accesskit", + "immutable-chunkmap", ] [[package]] name = "accesskit_macos" -version = "0.10.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" +checksum = "c236a84ff1111defc280cee755eaa953d0b24398786851b9d28322c6d3bb1ebd" dependencies = [ "accesskit", "accesskit_consumer", - "objc2 0.3.0-beta.3.patch-leaks.3", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", ] [[package]] name = "accesskit_windows" -version = "0.15.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" +checksum = "5d7f43d24b16b3e76bef248124fbfd2493c3a9860edb5aae1010c890e826de5e" dependencies = [ "accesskit", "accesskit_consumer", - "once_cell", "paste", "static_assertions", - "windows 0.48.0", + "windows 0.54.0", ] [[package]] name = "accesskit_winit" -version = "0.17.0" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f8f7c9f66d454d5fd8e344c8c8c7324b57194e1041b955519fc58a01e77a25" +checksum = "755535e6bf711a42dac28b888b884b10fc00ff4010d9d3bd871c5f5beae5aa78" dependencies = [ "accesskit", "accesskit_macos", "accesskit_windows", - "raw-window-handle 0.6.2", + "raw-window-handle", "winit", ] @@ -117,14 +119,14 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "alsa" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47" +checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" dependencies = [ "alsa-sys", - "bitflags 1.3.2", + "bitflags 2.6.0", + "cfg-if", "libc", - "nix 0.24.3", ] [[package]] @@ -139,22 +141,22 @@ dependencies = [ [[package]] name = "android-activity" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.4.1", + "bitflags 2.6.0", "cc", "cesu8", - "jni 0.21.1", + "jni", "jni-sys", "libc", "log", - "ndk 0.8.0", + "ndk 0.9.0", "ndk-context", - "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.3", + "ndk-sys 0.6.0+11769913", + "num_enum", "thiserror", ] @@ -196,7 +198,7 @@ checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc" dependencies = [ "clipboard-win", "core-graphics 0.22.3", - "image", + "image 0.24.7", "log", "objc", "objc-foundation", @@ -246,13 +248,12 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 3.1.0", - "event-listener-strategy", + "event-listener-strategy 0.5.2", "futures-core", "pin-project-lite", ] @@ -288,7 +289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7" dependencies = [ "event-listener 3.1.0", - "event-listener-strategy", + "event-listener-strategy 0.3.0", "pin-project-lite", ] @@ -331,24 +332,31 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bevy" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b9eadaacf8fe971331bc3f250f35c18bc9dace3f96b483062f38ac07e3a1b4" +checksum = "043c9ad4b6fc4ca52d779873a8ca792a4e37842d07fce95363c9e17e36a1d8a0" dependencies = [ "bevy_internal", ] [[package]] name = "bevy-inspector-egui" -version = "0.23.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb36c3adb02afa4496085250d437217b2a5280d8dd464937c6c5b21bc88830c0" +checksum = "8b66b51a66c0be92604c13cd490509d77676c05406f4f4b046672aaffdcc925f" dependencies = [ "bevy-inspector-egui-derive", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_ecs", @@ -359,11 +367,14 @@ dependencies = [ "bevy_pbr", "bevy_reflect", "bevy_render", + "bevy_state", "bevy_time", "bevy_utils", "bevy_window", + "bytemuck", "egui", - "image", + "fuzzy-matcher", + "image 0.24.7", "once_cell", "pretty-type-name", "smallvec", @@ -371,9 +382,9 @@ dependencies = [ [[package]] name = "bevy-inspector-egui-derive" -version = "0.23.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c488161a04a123e10273e16d4533945943fcfcf345f066242790e8977aee2d" +checksum = "791acfac11e3d5a750952c5201dc0d414b88431260118b46949bf6b159c5a19c" dependencies = [ "proc-macro2", "quote", @@ -382,9 +393,9 @@ dependencies = [ [[package]] name = "bevy_a11y" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8ef2795f7f5c816a4eda04834083eb5a92e8fef603bc21d2091c6e3b63621a" +checksum = "ae1a976cb539d6a5a3ff579cdb78187a6bcfbffa7e8224ea28f23d8b983d9389" dependencies = [ "accesskit", "bevy_app", @@ -394,44 +405,57 @@ dependencies = [ [[package]] name = "bevy_animation" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e553d68bc937586010ed2194ac66b751bc6238cf622b3ed5a86f4e1581e94509" +checksum = "93aef7d21a0342c24b05059493aa31d58f1798d34a2236569a8789b74df5a475" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", + "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_time", "bevy_transform", "bevy_utils", + "blake3", + "fixedbitset 0.5.7", + "petgraph", + "ron", + "serde", + "thiserror", + "thread_local", + "uuid", ] [[package]] name = "bevy_app" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab348a32e46d21c5d61794294a92d415a770d26c7ba8951830b127b40b53ccc4" +checksum = "a5361d0f8a8677a5d0102cfe7321a7ecd2a8b9a4f887ce0dde1059311cf9cd42" dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", "bevy_tasks", "bevy_utils", + "console_error_panic_hook", "downcast-rs", + "thiserror", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50028e0d4f28a9f6aab48f61b688ba2793141188f88cdc9aa6c2bca2cc02ad35" +checksum = "60ec5ea257e1ebd3d411f669e29acf60beb715bebc7e1f374c17f49cd3aad46c" dependencies = [ "async-broadcast", "async-fs", @@ -439,7 +463,6 @@ dependencies = [ "bevy_app", "bevy_asset_macros", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_tasks", "bevy_utils", @@ -455,6 +478,7 @@ dependencies = [ "ron", "serde", "thiserror", + "uuid", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -462,9 +486,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6617475908368418d815360148fdbb82f879dc255a70d2d7baa3766f0cd4bfd7" +checksum = "c9eb05ce838d282f09d83380b4d6432aec7519d421dee8c75cc20e6148237e6e" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -474,14 +498,15 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f12495e230cd5cf59c6051cdd820c97d7fe4f0597d4d9c3240c62e9c65b485" +checksum = "8ee31312a0e67f288fe12a1d9aa679dd0ba8a49e1e6fe5fcd2ba1aa1ea34e5ed" dependencies = [ "bevy_app", "bevy_asset", "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_math", "bevy_reflect", "bevy_transform", @@ -490,48 +515,65 @@ dependencies = [ "rodio", ] +[[package]] +name = "bevy_color" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04842e9d38a93f0c75ab46f7f404ea24ef57ad83dbd159e5b4b35318b02257bb" +dependencies = [ + "bevy_math", + "bevy_reflect", + "bytemuck", + "encase", + "serde", + "thiserror", + "wgpu-types", +] + [[package]] name = "bevy_core" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b0042f241ba7cd61487aadd8addfb56f7eeb662d713ac1577026704508fc6c" +checksum = "de706862871a1fe99ea619bff2f99d73e43ad82f19ef866a9e19a14c957c8537" dependencies = [ "bevy_app", "bevy_ecs", - "bevy_math", "bevy_reflect", "bevy_tasks", "bevy_utils", - "bytemuck", + "uuid", ] [[package]] name = "bevy_core_pipeline" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48b7a471cb8ba665f12f7a167faa5566c11386f5bfc77d2e10bfde22b179f7b3" +checksum = "2f6e1e122ada4cd811442e083fb5ad3e325c59a87271d5ef57193f1c2cad7f8c" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", "bevy_ecs", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 2.4.1", + "bitflags 2.6.0", + "nonmax", "radsort", "serde", + "smallvec", + "thiserror", ] [[package]] name = "bevy_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e01f8343f391e2d6a63b368b82fb5b252ed43c8713fc87f9a8f2d59407dd00" +checksum = "3fbfc33a4c6b80760bb8bf850a2cc65a1e031da62fd3ca8b552189104dc98514" dependencies = [ "bevy_macro_utils", "quote", @@ -540,14 +582,14 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1401cdccec7e49378d013dfb0ff62c251f85b3be19dcdf04cfd827f793d1ee9" +checksum = "bebb154e0cc78e3bbfbfdb42fb502b14c1cd47e72f16e6d4228dfe6233ba6cbd" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", + "bevy_tasks", "bevy_time", "bevy_utils", "const-fnv1a-hash", @@ -556,29 +598,30 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e612a8e7962ead849e370f3a7e972b88df879ced05cd9dad6a0286d14650cf" +checksum = "9ee4222406637f3c8e3991a99788cfcde76097bf997c311f1b6297364057483f" dependencies = [ - "async-channel", + "arrayvec", "bevy_ecs_macros", "bevy_ptr", "bevy_reflect", "bevy_tasks", "bevy_utils", - "downcast-rs", - "fixedbitset", - "rustc-hash", + "bitflags 2.6.0", + "concurrent-queue", + "fixedbitset 0.5.7", + "nonmax", + "petgraph", "serde", "thiserror", - "thread_local", ] [[package]] name = "bevy_ecs_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807b5106c3410e58f4f523b55ea3c071e2a09e31e9510f3c22021c6a04732b5b" +checksum = "36b573430b67aff7bde8292257494f39343401379bfbda64035ba4918bba7b20" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -588,22 +631,22 @@ dependencies = [ [[package]] name = "bevy_editor_pls" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08e119d7983670a41690d60ef0e4730f0c02719118b8e6dd42b13f90a0348c0" +checksum = "02242646d9efb114c156b11ade613bc47339133422c261435eca8c07c36f6dd7" dependencies = [ "bevy", "bevy_editor_pls_core", "bevy_editor_pls_default_windows", "egui", - "egui-gizmo", + "transform-gizmo-bevy", ] [[package]] name = "bevy_editor_pls_core" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84de9dc9204638e9eabaef4f1426a73280570a98ab3cf750e473d89e8d49e1f4" +checksum = "0c405936c0efb9279ce9a0689cd40df87fd94b85d9723530a8f88d2f98627eb9" dependencies = [ "bevy", "bevy-inspector-egui", @@ -613,39 +656,47 @@ dependencies = [ [[package]] name = "bevy_editor_pls_default_windows" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d12a4a8a762b6dd1212700dd4a82a6f16ed8cab1d6313c242a23fb53610ce1d" +checksum = "c81d69f24cc6b61f0f62f997c491365a1c0956b6276530e4fec12c5839c8fff4" dependencies = [ "bevy", "bevy-inspector-egui", "bevy_editor_pls_core", "bevy_mod_debugdump", - "egui-gizmo", "indexmap", "opener", "pretty-type-name", + "transform-gizmo-bevy", ] [[package]] name = "bevy_egui" -version = "0.25.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bfb8d4104a1467910cf2090bc6a6d394ebde39c0dbc02397b45aa9ef88e80" +checksum = "5e4a90f30f2849a07d91e393b10c0cc05df09b5773c010ddde57dd8b583be230" dependencies = [ "arboard", "bevy", + "bytemuck", + "console_log", + "crossbeam-channel", "egui", + "js-sys", + "log", "thread_local", + "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", "webbrowser", + "winit", ] [[package]] name = "bevy_encase_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887087a5e522d9f20733a84dd7e6e9ca04cd8fdfac659220ed87d675eebc83a7" +checksum = "d06c9693847a2a6ea61d6b86288dd4d8b6a79f05d4bf6e27b96d4f5c8d552fe4" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -653,14 +704,13 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d133c65ab756f130c65cf00f37dc293fb9a9336c891802baf006c63e300d0e2" +checksum = "0422ccb3ce0f79b264100cf064fdc5ef65cef5c7d51bf6378058f9b96fea4183" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", - "bevy_log", "bevy_time", "bevy_utils", "gilrs", @@ -669,31 +719,32 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054df3550a9d423a961de65b459946ff23304f97f25af8a62c23f4259db8506d" +checksum = "dfe32af0666d8d8a7fd6eb6b5e41eceefdc6f2e5441c74b812e8f0902a9d7f52" dependencies = [ "bevy_app", "bevy_asset", - "bevy_core", + "bevy_color", "bevy_core_pipeline", "bevy_ecs", "bevy_gizmos_macros", - "bevy_log", "bevy_math", "bevy_pbr", "bevy_reflect", "bevy_render", "bevy_sprite", + "bevy_time", "bevy_transform", "bevy_utils", + "bytemuck", ] [[package]] name = "bevy_gizmos_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abdcaf74d8cd34aa5c3293527e7a012826840886ad3496c1b963ed8b66b1619f" +checksum = "906b052f8cf3f3983f0f6df625fb10cbd9b27d44e362a327dc1ed51300d362bc" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -703,19 +754,19 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ecf404295055deb7fe037495891bc135ca10d46bc5b6c55f9ab7b7ebc61d31" +checksum = "d6adbd325b90e3c700d0966b5404e226c7deec1b8bda8f36832788d7b435b9b8" dependencies = [ - "base64", + "base64 0.22.1", "bevy_animation", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_ecs", "bevy_hierarchy", - "bevy_log", "bevy_math", "bevy_pbr", "bevy_reflect", @@ -728,28 +779,29 @@ dependencies = [ "percent-encoding", "serde", "serde_json", + "smallvec", "thiserror", ] [[package]] name = "bevy_hierarchy" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb3dfad24866a6713dafa3065a91c5cf5e355f6e1b191c25d704ae54185246c" +checksum = "a88b912b37e1bc4dbb2aa40723199f74c8b06c4fbb6da0bb4585131df28ef66e" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_utils", + "smallvec", ] [[package]] name = "bevy_input" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47f2b2b3df168c6ef661d25e09abf5bd4fecaacd400f27e5db650df1c3fa3a3b" +checksum = "8dd3a54e67cc3ba17971de7b1a7e64eda84493c1e7bb6bfa11c6cf8ac124377b" dependencies = [ "bevy_app", "bevy_ecs", @@ -762,15 +814,16 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58ec0ce77603df9474cde61f429126bfe06eb79094440e9141afb4217751c79" +checksum = "45d435cac77c568f3aef65f786a5fee0e53c81950c5258182dd2c1d6cd6c4fec" dependencies = [ "bevy_a11y", "bevy_animation", "bevy_app", "bevy_asset", "bevy_audio", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_derive", @@ -789,6 +842,7 @@ dependencies = [ "bevy_render", "bevy_scene", "bevy_sprite", + "bevy_state", "bevy_tasks", "bevy_text", "bevy_time", @@ -801,62 +855,66 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5eea6c527fd828b7fef8d0f518167f27f405b904a16f227b644687d3f46a809" +checksum = "67240c7596c8f0653e50fce35a60196516817449235193246599facba9002e02" dependencies = [ "android_log-sys", "bevy_app", "bevy_ecs", "bevy_utils", - "console_error_panic_hook", - "tracing-log", + "tracing-log 0.2.0", "tracing-subscriber", "tracing-wasm", ] [[package]] name = "bevy_macro_utils" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb270c98a96243b29465139ed10bda2f675d00a11904f6588a5f7fc4774119c7" +checksum = "bfc65e570012e64a21f3546df68591aaede8349e6174fb500071677f54f06630" dependencies = [ "proc-macro2", "quote", - "rustc-hash", "syn 2.0.77", - "toml_edit 0.21.1", + "toml_edit 0.22.20", ] [[package]] name = "bevy_math" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f06daa26ffb82d90ba772256c0ba286f6c305c392f6976c9822717974805837c" +checksum = "5421792749dda753ab3718e77d27bfce38443daf1850b836b97530b6245a4581" dependencies = [ - "glam", + "bevy_reflect", + "glam 0.27.0", + "rand", "serde", + "smallvec", + "thiserror", ] [[package]] name = "bevy_mikktspace" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d7ef7f2a826d0b19f059035831ce00a5e930435cc53c61e045773d0483f67a" +checksum = "66cf695a264b043f2c4edb92dd5c742e6892180d2b30dac870012d153f8557ea" dependencies = [ - "glam", + "glam 0.27.0", ] [[package]] name = "bevy_mod_debugdump" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39eb6372d6af22b209d68c10e3b742938b450117281387c94ce3f9f51902b76" +checksum = "30f0eab3099d7d474b25a95a6a2a945e6089d75e099af5a571fe896f7c1a455b" dependencies = [ "bevy_app", + "bevy_color", "bevy_ecs", "bevy_render", "bevy_utils", + "lexopt", "once_cell", "petgraph", "pretty-type-name", @@ -864,12 +922,13 @@ dependencies = [ [[package]] name = "bevy_pbr" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b29c80269fa6db55c9e33701edd3ecb73d8866ca8cb814d49a9d3fb72531b6" +checksum = "4dccaa3c945f19834dcf7cd8eb358236dbf0fc4000dacbc7710564e7856714db" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", @@ -879,43 +938,46 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 2.4.1", + "bitflags 2.6.0", "bytemuck", - "fixedbitset", + "fixedbitset 0.5.7", + "nonmax", "radsort", "smallvec", - "thread_local", + "static_assertions", ] [[package]] name = "bevy_ptr" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8050e2869fe341db6874203b5a01ff12673807a2c7c80cb829f6c7bea6997268" +checksum = "61baa1bdc1f4a7ac2c18217570a7cc04e1cd54d38456e91782f0371c79afe0a8" [[package]] name = "bevy_reflect" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccbd7de21d586457a340a0962ad0747dc5098ff925eb6b27a918c4bdd8252f7b" +checksum = "2508785a4a5809f25a237eec4fee2c91a4dbcf81324b2bbc2d6c52629e603781" dependencies = [ - "bevy_math", "bevy_ptr", "bevy_reflect_derive", "bevy_utils", "downcast-rs", "erased-serde", - "glam", + "glam 0.27.0", + "petgraph", "serde", + "smallvec", "smol_str", "thiserror", + "uuid", ] [[package]] name = "bevy_reflect_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ce33051bd49036d4a5a62aa3f2068672ec55f3ebe92aa0d003a341f15cc37ac" +checksum = "967d5da1882ec3bb3675353915d3da909cafac033cbf31e58727824a1ad2a288" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -926,19 +988,20 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b2c4b644c739c0b474b6f8f7b0bc68ac13d83b59688781e9a7753c52780177" +checksum = "836cf8a513db013cbe7d55a331060088efd407e49fd5b05c8404700cd82e7619" dependencies = [ "async-channel", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", + "bevy_diagnostic", "bevy_ecs", "bevy_encase_derive", "bevy_hierarchy", - "bevy_log", "bevy_math", "bevy_mikktspace", "bevy_reflect", @@ -948,22 +1011,24 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 2.4.1", + "bitflags 2.6.0", "bytemuck", "codespan-reporting", "downcast-rs", "encase", "futures-lite", "hexasphere", - "image", + "image 0.25.2", "js-sys", "ktx2", "naga", "naga_oil", + "nonmax", "ruzstd", + "send_wrapper", "serde", + "smallvec", "thiserror", - "thread_local", "wasm-bindgen", "web-sys", "wgpu", @@ -971,9 +1036,9 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720b88406e786e378829b7d43c1ffb5300186912b99904d0d4d8ec6698a4f210" +checksum = "cbc24e0e95061a38a7744218b9c7e52e4c08b53f1499f33480e2b749f3864432" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -983,9 +1048,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3d2caa1bfe7542dbe2c62e1bcc10791ba181fb744d2fe6711d1d373354da7c" +checksum = "8ec57a72d75273bdbb6154390688fd07ba79ae9f6f99476d1937f799c736c2da" dependencies = [ "bevy_app", "bevy_asset", @@ -1003,39 +1068,64 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cad1b555161f50e5d62b7fdf7ebeef1b24338aae7a88e51985da9553cd60ddf" +checksum = "e045b4d8cc8e7422a4c29b1eadbe224f5cc42f170b88d43e7535892fcede3840" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 2.4.1", + "bitflags 2.6.0", "bytemuck", - "fixedbitset", + "fixedbitset 0.5.7", "guillotiere", "radsort", "rectangle-pack", "thiserror", ] +[[package]] +name = "bevy_state" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25335bfa58cc22371182335c3b133017293bc9b6d3308402fd4d1f978b83f937" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_state_macros", + "bevy_utils", +] + +[[package]] +name = "bevy_state_macros" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee600b659c739f1911f997a81611fec0a1832cf731727956e5fa4e7532b4dd5" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "bevy_tasks" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f07fcc4969b357de143509925b39c9a2c56eaa8750828d97f319ca9ed41897cb" +checksum = "77865f310b1fc48fb05b7c4adbe76607ec01d0c14f8ab4caba4d714c86439946" dependencies = [ "async-channel", "async-executor", - "async-task", "concurrent-queue", "futures-lite", "wasm-bindgen-futures", @@ -1043,13 +1133,14 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e8456ae0bea7d6b7621e42c1c12bf66c0891381e62c948ab23920673ce611c" +checksum = "b661db828fd423fc41a4ccf43aa4d1b8e50e75057ec40453317d0d761e8ad62d" dependencies = [ "ab_glyph", "bevy_app", "bevy_asset", + "bevy_color", "bevy_ecs", "bevy_math", "bevy_reflect", @@ -1065,9 +1156,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ea5ae9fe7f56f555dbb05a88d34931907873e3f0c7dc426591839eef72fe3e" +checksum = "f4e4d53ec32a1b16492396951d04de0d2d90e924bf9adcb8d1adacab5ab6c17c" dependencies = [ "bevy_app", "bevy_ecs", @@ -1079,9 +1170,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d51a1f332cc00939d2f19ed6b909e5ed7037e39c7e25cc86930d79d432163e" +checksum = "d5493dce84427d00a9266e8e4386d738a72ee8640423b62dfcecb6dfccbfe0d2" dependencies = [ "bevy_app", "bevy_ecs", @@ -1093,19 +1184,19 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bbc30be39cfbfa3a073b541d22aea43ab14452dea12d7411ce201df17ff7b1" +checksum = "56d2cba6603b39a3765f043212ae530e25550af168a7eec6b23b9b93c19bc5f7" dependencies = [ "bevy_a11y", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", "bevy_hierarchy", "bevy_input", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", @@ -1115,34 +1206,32 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", + "nonmax", + "smallvec", "taffy", "thiserror", ] [[package]] name = "bevy_utils" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9f845a985c00e0ee8dc2d8af3f417be925fb52aad4bda5b96e2e58a2b4d2eb" +checksum = "ffb0ec333b5965771153bd746f92ffd8aeeb9d008a8620ffd9ed474859381a5e" dependencies = [ "ahash", "bevy_utils_proc_macros", "getrandom", "hashbrown", - "nonmax", - "petgraph", - "smallvec", - "thiserror", + "thread_local", "tracing", - "uuid", "web-time", ] [[package]] name = "bevy_utils_proc_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef158627f30503d5c18c20c60b444829f698d343516eeaf6eeee078c9a45163" +checksum = "38f1ab8f2f6f58439d260081d89a42b02690e5fdd64f814edc9417d33fcf2857" dependencies = [ "proc-macro2", "quote", @@ -1151,26 +1240,25 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976202d2ed838176595b550ac654b15ae236e0178a6f19a94ca6d58f2a96ca60" +checksum = "c89e88a20db64ea8204540afb4699295947c454738fd50293f7b32ab8be857a6" dependencies = [ "bevy_a11y", "bevy_app", "bevy_ecs", - "bevy_input", "bevy_math", "bevy_reflect", "bevy_utils", - "raw-window-handle 0.6.2", + "raw-window-handle", "smol_str", ] [[package]] name = "bevy_winit" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa66539aa93d8522b146bf82de429714ea6370a6061fc1f1ff7bcacd4e64c6c4" +checksum = "d0bef8ec3e4b45db943ad4d1c0bf59b09e382ce0651a706e2f33a70fa955303c" dependencies = [ "accesskit_winit", "approx", @@ -1180,12 +1268,15 @@ dependencies = [ "bevy_ecs", "bevy_hierarchy", "bevy_input", + "bevy_log", "bevy_math", + "bevy_reflect", "bevy_tasks", "bevy_utils", "bevy_window", + "cfg-if", "crossbeam-channel", - "raw-window-handle 0.6.2", + "raw-window-handle", "wasm-bindgen", "web-sys", "winit", @@ -1197,7 +1288,7 @@ version = "0.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cexpr", "clang-sys", "lazy_static", @@ -1234,9 +1325,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" dependencies = [ "serde", ] @@ -1260,42 +1351,13 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-sys" -version = "0.1.0-beta.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" -dependencies = [ - "objc-sys 0.2.0-beta.2", -] - -[[package]] -name = "block-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" -dependencies = [ - "objc-sys 0.3.5", -] - -[[package]] -name = "block2" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" -dependencies = [ - "block-sys 0.1.0-beta.1", - "objc2-encode 2.0.0-pre.2", -] - [[package]] name = "block2" -version = "0.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "block-sys 0.2.1", - "objc2 0.4.1", + "objc2", ] [[package]] @@ -1333,9 +1395,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" dependencies = [ "bytemuck_derive", ] @@ -1357,6 +1419,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.5.0" @@ -1365,11 +1433,11 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "calloop" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "log", "polling", "rustix", @@ -1377,6 +1445,18 @@ dependencies = [ "thiserror", ] +[[package]] +name = "calloop-wayland-source" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop", + "rustix", + "wayland-backend", + "wayland-client", +] + [[package]] name = "cc" version = "1.0.84" @@ -1413,6 +1493,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "clang-sys" version = "1.6.1" @@ -1494,9 +1580,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1511,6 +1597,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "console_log" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f" +dependencies = [ + "log", + "web-sys", +] + [[package]] name = "const-fnv1a-hash" version = "1.1.0" @@ -1537,18 +1633,28 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "constgebra" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" dependencies = [ "const_soft_float", ] [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" dependencies = [ "core-foundation-sys", "libc", @@ -1556,9 +1662,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" @@ -1567,7 +1673,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.3.2", "libc", @@ -1580,7 +1686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.5.0", "libc", @@ -1588,12 +1694,12 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "libc", ] @@ -1619,27 +1725,25 @@ dependencies = [ [[package]] name = "cpal" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" dependencies = [ "alsa", "core-foundation-sys", "coreaudio-rs", "dasp_sample", - "jni 0.19.0", + "jni", "js-sys", "libc", "mach2", - "ndk 0.7.0", + "ndk 0.8.0", "ndk-context", "oboe", - "once_cell", - "parking_lot", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows 0.46.0", + "windows 0.54.0", ] [[package]] @@ -1701,38 +1805,61 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "d3d12" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" +checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "libloading 0.8.1", "winapi", ] [[package]] -name = "dasp_sample" -version = "0.11.0" +name = "darling" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] [[package]] -name = "data-encoding" -version = "2.4.0" +name = "darling_core" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.77", +] [[package]] -name = "derive_more" -version = "0.99.18" +name = "darling_macro" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "proc-macro2", + "darling_core", "quote", "syn 2.0.77", ] +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + [[package]] name = "dispatch" version = "0.2.0" @@ -1748,12 +1875,27 @@ dependencies = [ "libloading 0.8.1", ] +[[package]] +name = "document-features" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +dependencies = [ + "litrs", +] + [[package]] name = "downcast-rs" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" + [[package]] name = "dtoa" version = "1.0.9" @@ -1781,40 +1923,31 @@ dependencies = [ [[package]] name = "ecolor" -version = "0.26.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfe80b1890e1a8cdbffc6044d6872e814aaf6011835a2a5e2db0e5c5c4ef4e" +checksum = "2e6b451ff1143f6de0f33fc7f1b68fecfd2c7de06e104de96c4514de3f5396f8" dependencies = [ "bytemuck", + "emath", ] [[package]] name = "egui" -version = "0.26.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180f595432a5b615fc6b74afef3955249b86cfea72607b40740a4cd60d5297d0" +checksum = "20c97e70a2768de630f161bb5392cbd3874fcf72868f14df0e002e82e06cb798" dependencies = [ "ahash", + "emath", "epaint", "nohash-hasher", ] -[[package]] -name = "egui-gizmo" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65371711037f6f256024371f21fd8f8c5fa2ce5221469a5fb1efc670f205f740" -dependencies = [ - "egui", - "glam", - "mint", -] - [[package]] name = "egui_dock" -version = "0.11.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a062ac200c9f3ddf120ffcc5582f9fbd5d8fbd046d2eed215ed5426f56513d0" +checksum = "629a8b0e440d69996795669ceacc0dd839a997843489273600d31d16c9cb3500" dependencies = [ "duplicate", "egui", @@ -1823,40 +1956,73 @@ dependencies = [ [[package]] name = "emath" -version = "0.26.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6916301ecf80448f786cdf3eb51d9dbdd831538732229d49119e2d4312eaaf09" +checksum = "0a6a21708405ea88f63d8309650b4d77431f4bc28fb9d8e6f77d3963b51249e6" dependencies = [ "bytemuck", ] [[package]] name = "encase" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ed933078d2e659745df651f4c180511cd582e5b9414ff896e7d50d207e3103" +checksum = "5a9299a95fa5671ddf29ecc22b00e121843a65cb9ff24911e394b4ae556baf36" dependencies = [ "const_panic", "encase_derive", - "glam", + "glam 0.27.0", "thiserror", ] [[package]] name = "encase_derive" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ce1449c7d19eba6cc0abd231150ad81620a8dce29601d7f8d236e5d431d72a" +checksum = "07e09decb3beb1fe2db6940f598957b2e1f7df6206a804d438ff6cb2a9cddc10" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.7.0" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd31dbbd9743684d339f907a87fe212cb7b51d75b9e8e74181fe363199ee9b47" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "enumset" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" +checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" dependencies = [ + "darling", "proc-macro2", "quote", "syn 2.0.77", @@ -1864,9 +2030,9 @@ dependencies = [ [[package]] name = "epaint" -version = "0.26.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9fdf617dd7f58b0c8e6e9e4a1281f730cde0831d40547da446b2bb76a47af" +checksum = "3f0dcc0a0771e7500e94cd1cb797bd13c9f23b9409bdc3c824e2cbc562b7fa01" dependencies = [ "ab_glyph", "ahash", @@ -1939,6 +2105,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener-strategy" version = "0.3.0" @@ -1949,6 +2126,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite", +] + [[package]] name = "fastrand" version = "2.0.1" @@ -1991,6 +2178,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.28" @@ -2093,6 +2286,15 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + [[package]] name = "gethostname" version = "0.2.3" @@ -2145,7 +2347,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e11f4e03be4f1beda399e4791c11d33102fa48f368e864259e4e810d3a3d2ff5" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "inotify 0.10.2", "io-kit-sys", "js-sys", @@ -2179,15 +2381,25 @@ dependencies = [ [[package]] name = "glam" -version = "0.25.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" +checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" dependencies = [ "bytemuck", "mint", + "rand", "serde", ] +[[package]] +name = "glam" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94" +dependencies = [ + "mint", +] + [[package]] name = "glob" version = "0.3.1" @@ -2268,7 +2480,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "gpu-alloc-types", ] @@ -2278,7 +2490,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", ] [[package]] @@ -2296,29 +2508,29 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "gpu-descriptor-types", "hashbrown", ] [[package]] name = "gpu-descriptor-types" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", ] [[package]] name = "grid" -version = "0.10.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec1c01eb1de97451ee0d60de7d81cf1e72aabefb021616027f3d1c3ec1c723c" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "guillotiere" @@ -2347,7 +2559,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "com", "libc", "libloading 0.8.1", @@ -2364,12 +2576,12 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hexasphere" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33ddb7f7143d9e703c072e88b98cd8b9719f174137a671429351bd2ee43c02a" +checksum = "edd6b038160f086b0a7496edae34169ae22f328793cbe2b627a5a3d8373748ec" dependencies = [ "constgebra", - "glam", + "glam 0.27.0", ] [[package]] @@ -2388,15 +2600,10 @@ dependencies = [ ] [[package]] -name = "icrate" -version = "0.0.4" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" -dependencies = [ - "block2 0.3.0", - "dispatch", - "objc2 0.4.1", -] +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" @@ -2423,6 +2630,27 @@ dependencies = [ "tiff", ] +[[package]] +name = "image" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", + "png", +] + +[[package]] +name = "immutable-chunkmap" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4419f022e55cc63d5bbd6b44b71e1d226b9c9480a47824c706e9d54e5c40c5eb" +dependencies = [ + "arrayvec", +] + [[package]] name = "indexmap" version = "2.1.0" @@ -2488,34 +2716,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - [[package]] name = "jni" version = "0.21.1" @@ -2622,11 +2822,17 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "lexopt" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401" + [[package]] name = "libc" -version = "0.2.150" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libloading" @@ -2654,7 +2860,7 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "libc", "redox_syscall 0.4.1", ] @@ -2675,6 +2881,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.11" @@ -2724,6 +2936,15 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.5" @@ -2735,11 +2956,11 @@ dependencies = [ [[package]] name = "metal" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -2784,12 +3005,13 @@ dependencies = [ [[package]] name = "naga" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" +checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" dependencies = [ + "arrayvec", "bit-set", - "bitflags 2.4.1", + "bitflags 2.6.0", "codespan-reporting", "hexf-parse", "indexmap", @@ -2805,9 +3027,9 @@ dependencies = [ [[package]] name = "naga_oil" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ea62ae0f2787456afca7209ca180522b41f00cbe159ee369eba1e07d365cd1" +checksum = "275d9720a7338eedac966141089232514c84d76a246a58ef501af88c5edf402f" dependencies = [ "bit-set", "codespan-reporting", @@ -2825,30 +3047,30 @@ dependencies = [ [[package]] name = "ndk" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "jni-sys", - "ndk-sys 0.4.1+23.1.7779620", - "num_enum 0.5.11", - "raw-window-handle 0.5.2", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", "thiserror", ] [[package]] name = "ndk" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "jni-sys", "log", - "ndk-sys 0.5.0+25.2.9519653", - "num_enum 0.7.3", - "raw-window-handle 0.6.2", + "ndk-sys 0.6.0+11769913", + "num_enum", + "raw-window-handle", "thiserror", ] @@ -2860,18 +3082,18 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.4.1+23.1.7779620" +version = "0.5.0+25.2.9519653" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" dependencies = [ "jni-sys", ] [[package]] name = "ndk-sys" -version = "0.5.0+25.2.9519653" +version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ "jni-sys", ] @@ -2894,7 +3116,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cfg-if", "libc", ] @@ -2936,7 +3158,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -2984,13 +3206,13 @@ dependencies = [ [[package]] name = "num-derive" -version = "0.3.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] @@ -3023,34 +3245,13 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive 0.5.11", -] - [[package]] name = "num_enum" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.7.3", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", + "num_enum_derive", ] [[package]] @@ -3072,7 +3273,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -3086,12 +3286,6 @@ dependencies = [ "objc_id", ] -[[package]] -name = "objc-sys" -version = "0.2.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" - [[package]] name = "objc-sys" version = "0.3.5" @@ -3100,88 +3294,240 @@ checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" [[package]] name = "objc2" -version = "0.3.0-beta.3.patch-leaks.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ - "block2 0.2.0-alpha.6", - "objc-sys 0.2.0-beta.2", - "objc2-encode 2.0.0-pre.2", + "objc-sys", + "objc2-encode", ] [[package]] -name = "objc2" -version = "0.4.1" +name = "objc2-app-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "objc-sys 0.3.5", - "objc2-encode 3.0.0", + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", ] [[package]] -name = "objc2-encode" -version = "2.0.0-pre.2" +name = "objc2-cloud-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "objc-sys 0.2.0-beta.2", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", ] [[package]] -name = "objc2-encode" -version = "3.0.0" +name = "objc2-contacts" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc2-core-data" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "cc", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", ] [[package]] -name = "objc_id" -version = "0.1.1" +name = "objc2-core-image" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "objc", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", ] [[package]] -name = "object" -version = "0.32.1" +name = "objc2-core-location" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "memchr", + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", ] [[package]] -name = "oboe" -version = "0.5.0" +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "jni 0.20.0", - "ndk 0.7.0", - "ndk-context", - "num-derive", - "num-traits", - "oboe-sys", + "bitflags 2.6.0", + "block2", + "dispatch", + "libc", + "objc2", ] [[package]] -name = "oboe-sys" -version = "0.5.0" +name = "objc2-link-presentation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "cc", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "oboe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" +dependencies = [ + "jni", + "ndk 0.8.0", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", ] [[package]] @@ -3287,8 +3633,10 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "fixedbitset", + "fixedbitset 0.4.2", "indexmap", + "serde", + "serde_derive", ] [[package]] @@ -3333,6 +3681,26 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "pin-project-lite" version = "0.2.13" @@ -3453,6 +3821,15 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" +[[package]] +name = "quick-xml" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.37" @@ -3489,12 +3866,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - [[package]] name = "raw-window-handle" version = "0.6.2" @@ -3571,18 +3942,19 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "renderdoc-sys" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "rodio" -version = "0.17.3" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +checksum = "d1fceb9d127d515af1586d8d0cc601e1245bdb0af38e75c865a156290184f5b3" dependencies = [ "cpal", "lewton", + "thiserror", ] [[package]] @@ -3591,8 +3963,8 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64", - "bitflags 2.4.1", + "base64 0.21.5", + "bitflags 2.6.0", "serde", "serde_derive", ] @@ -3615,7 +3987,7 @@ version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -3624,12 +3996,10 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.5.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +checksum = "99c3938e133aac070997ddc684d4b393777d293ba170f2988c8fd5ea2ad4ce21" dependencies = [ - "byteorder", - "derive_more", "twox-hash", ] @@ -3648,12 +4018,37 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.210" @@ -3739,6 +4134,31 @@ dependencies = [ "serde", ] +[[package]] +name = "smithay-client-toolkit" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +dependencies = [ + "bitflags 2.6.0", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + [[package]] name = "smol_str" version = "0.2.0" @@ -3764,7 +4184,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", ] [[package]] @@ -3779,6 +4199,12 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + [[package]] name = "svg_fmt" version = "0.4.1" @@ -3823,13 +4249,14 @@ dependencies = [ [[package]] name = "taffy" -version = "0.3.18" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" +checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" dependencies = [ "arrayvec", "grid", "num-traits", + "serde", "slotmap", ] @@ -3883,6 +4310,31 @@ dependencies = [ "weezl", ] +[[package]] +name = "tiny-skia" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3914,9 +4366,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" @@ -3926,28 +4378,29 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.19", ] [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.6.18", ] [[package]] name = "tomt_bevycss" -version = "0.7.0" +version = "0.8.0" dependencies = [ "bevy", "bevy_editor_pls", "cssparser", "smallvec", + "thiserror", ] [[package]] @@ -3993,6 +4446,17 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.17" @@ -4008,7 +4472,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log", + "tracing-log 0.1.4", ] [[package]] @@ -4022,6 +4486,47 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "transform-gizmo" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b43a029251c55e00d44930e24b78f5b471b3e75fa9c88c30ecb816db08646b93" +dependencies = [ + "ahash", + "ecolor", + "emath", + "enum_dispatch", + "enumset", + "epaint", + "glam 0.28.0", + "mint", +] + +[[package]] +name = "transform-gizmo-bevy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8240adbd84abd8b020fe5a5c8eb4f11771495f189cb080eb0344947ac18449" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bytemuck", + "transform-gizmo", + "uuid", +] + [[package]] name = "ttf-parser" version = "0.20.0" @@ -4096,9 +4601,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.5.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom", "serde", @@ -4205,6 +4710,115 @@ version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +[[package]] +name = "wayland-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +dependencies = [ + "bitflags 2.6.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.6.0", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" +dependencies = [ + "rustix", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0a41a6875e585172495f7a96dfa42ca7e0213868f4f15c313f7c33221a7eff" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + [[package]] name = "web-sys" version = "0.3.70" @@ -4217,9 +4831,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -4227,17 +4841,18 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.12" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71" +checksum = "2e5f07fb9bc8de2ddfe6b24a71a75430673fd679e568c48b52716cef1cfae923" dependencies = [ - "core-foundation", + "block2", + "core-foundation 0.10.0", "home", - "jni 0.21.1", + "jni", "log", "ndk-context", - "objc", - "raw-window-handle 0.5.2", + "objc2", + "objc2-foundation", "url", "web-sys", ] @@ -4250,19 +4865,20 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "wgpu" -version = "0.19.4" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" +checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c" dependencies = [ "arrayvec", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.1.1", + "document-features", "js-sys", "log", "naga", "parking_lot", "profiling", - "raw-window-handle 0.6.2", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", @@ -4275,22 +4891,23 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.19.4" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" +checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.4.1", - "cfg_aliases", + "bitflags 2.6.0", + "cfg_aliases 0.1.1", "codespan-reporting", + "document-features", "indexmap", "log", "naga", "once_cell", "parking_lot", "profiling", - "raw-window-handle 0.6.2", + "raw-window-handle", "rustc-hash", "smallvec", "thiserror", @@ -4301,17 +4918,17 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "0.19.5" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703" +checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.4.1", + "bitflags 2.6.0", "block", - "cfg_aliases", + "cfg_aliases 0.1.1", "core-graphics-types", "d3d12", "glow", @@ -4333,7 +4950,7 @@ dependencies = [ "parking_lot", "profiling", "range-alloc", - "raw-window-handle 0.6.2", + "raw-window-handle", "renderdoc-sys", "rustc-hash", "smallvec", @@ -4346,11 +4963,11 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" +checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "js-sys", "web-sys", ] @@ -4401,26 +5018,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-targets 0.48.5", -] - [[package]] name = "windows" version = "0.51.1" @@ -4441,6 +5038,18 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core 0.54.0", + "windows-implement", + "windows-interface", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.51.1" @@ -4459,26 +5068,45 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-implement" -version = "0.48.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" +checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] name = "windows-interface" -version = "0.48.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" +checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -4688,39 +5316,51 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.29.15" +version = "0.30.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" +checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" dependencies = [ + "ahash", "android-activity", "atomic-waker", - "bitflags 2.4.1", + "bitflags 2.6.0", + "block2", "bytemuck", "calloop", - "cfg_aliases", - "core-foundation", + "cfg_aliases 0.2.1", + "concurrent-queue", + "core-foundation 0.9.4", "core-graphics 0.23.1", "cursor-icon", - "icrate", + "dpi", "js-sys", "libc", - "log", - "ndk 0.8.0", - "ndk-sys 0.5.0+25.2.9519653", - "objc2 0.4.1", - "once_cell", + "memmap2", + "ndk 0.9.0", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", "orbclient", "percent-encoding", - "raw-window-handle 0.6.2", - "redox_syscall 0.3.5", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", "rustix", + "sctk-adwaita", + "smithay-client-toolkit", "smol_str", + "tracing", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", "web-sys", "web-time", - "windows-sys 0.48.0", + "windows-sys 0.52.0", "x11-dl", "x11rb 0.13.1", "xkbcommon-dl", @@ -4735,6 +5375,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -4789,6 +5438,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" +[[package]] +name = "xcursor" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" + [[package]] name = "xi-unicode" version = "0.3.0" @@ -4801,7 +5456,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "dlib", "log", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index fa4ee47..96b599f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tomt_bevycss" -version = "0.7.0" +version = "0.8.0" edition = "2021" authors = ["TheBeardedQuack", "Tome of Many Things"] categories = ["game-development", "gui", "web-programming"] @@ -20,7 +20,7 @@ pseudo_class = ["monitor_changes"] pseudo_prop = ["pseudo_class"] [dependencies] -bevy = { version = "0.13.2", default-features = false, features = [ +bevy = { version = "0.14.0", default-features = false, features = [ "bevy_ui", "bevy_asset", "bevy_text", @@ -28,12 +28,13 @@ bevy = { version = "0.13.2", default-features = false, features = [ ] } smallvec = { version = "1.13.2", features = ["serde", "union", "const_generics"] } cssparser = "0.34.0" +thiserror = "1.0.63" [dev-dependencies] -bevy_editor_pls = "0.8.1" +bevy_editor_pls = "0.9.0" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] -bevy = { version = "0.13.2", features = [ +bevy = { version = "0.14.0", features = [ "bevy_ui", "bevy_asset", "bevy_text", @@ -45,10 +46,6 @@ bevy = { version = "0.13.2", features = [ name = "simple_ui" path = "examples/simple_ui.rs" -[[example]] -name = "hot_reload" -path = "examples/hot_reload.rs" - [[example]] name = "stress_test" path = "examples/stress_test.rs" diff --git a/README.md b/README.md index bc28a43..9391a72 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,21 @@ This crate marks the first public release from both Tome of Many Things. + + 0.8.0 + + ### Future Goals @@ -216,16 +231,16 @@ See [Custom Properties][27] (docs/custom-properties.md) for more information. # Bevy support table -| bevy | tomt_bevycss | -|:-----:|:------------:| -| 0.8 | 0.1 | -| 0.9 | 0.2 | -| 0.10 | 0.3 | -| 0.10 | 0.4.x | -| 0.11 | 0.5.x | -| 0.12 | 0.6.x | -| 0.13 | 0.7.x | - +| bevy | tomt_bevycss | +|:----:|:------------:| +| 0.8 | 0.1 | +| 0.9 | 0.2 | +| 0.10 | 0.3 | +| 0.10 | 0.4.x | +| 0.11 | 0.5.x | +| 0.12 | 0.6.x | +| 0.13 | 0.7.x | +| 0.14 | 0.8.x | # Contributing diff --git a/assets/sheets/alpha.css b/assets/sheets/alpha.css index 9483dc4..e131f99 100644 --- a/assets/sheets/alpha.css +++ b/assets/sheets/alpha.css @@ -1,3 +1,12 @@ -background-color { - alpha: 0.4; +.box { + width: 100px; + height: 100px; + background-color: #0018ff; + alpha: 0.15; +} + +.logo { + width: 200px; + height: 200px; + alpha: 0.5; } \ No newline at end of file diff --git a/assets/sheets/dark_theme.css b/assets/sheets/dark_theme.css index 4d5b5d6..0aaced0 100644 --- a/assets/sheets/dark_theme.css +++ b/assets/sheets/dark_theme.css @@ -4,7 +4,7 @@ #left-border { margin: 0px; - border: 0px; + border-width: 0px; padding: 5px; background-color: #353535; } diff --git a/assets/sheets/example.css b/assets/sheets/example.css index c9ede05..2b779fa 100644 --- a/assets/sheets/example.css +++ b/assets/sheets/example.css @@ -36,7 +36,7 @@ button text { .active.hovered { margin: 2px 5px 4% 3px; padding: 10px; - border: 2px; + border-width: 2px; } .active .not_hovered { diff --git a/assets/sheets/hot_reload.css b/assets/sheets/hot_reload.css deleted file mode 100644 index 6eee930..0000000 --- a/assets/sheets/hot_reload.css +++ /dev/null @@ -1,33 +0,0 @@ -#ui-root { - background-color: #2e0909 -} - -#left-border { - margin: 0px; - border: 0px; - padding: 5px; - background-color: #353535; -} - -#ui-root #left-bg { - display: flex; -} - -#right-list { - height: 50%; -} - -.big-text { - font-size: 15; - width: 100%; - color: #923192 -} - -#right-list text { - font-size: 16; - vertical-align: bottom; -} - -.container .blue-bg { - background-color: #ff00FF10; -} diff --git a/assets/sheets/light_theme.css b/assets/sheets/light_theme.css index f9394a5..deb8d38 100644 --- a/assets/sheets/light_theme.css +++ b/assets/sheets/light_theme.css @@ -4,7 +4,7 @@ #left-border { margin: 0px; - border: 0px; + border-width: 0px; padding: 5px; background-color: #dddddd; } diff --git a/assets/sheets/menu.css b/assets/sheets/menu.css index baa5304..cd46a94 100644 --- a/assets/sheets/menu.css +++ b/assets/sheets/menu.css @@ -1,7 +1,7 @@ text { color: black; font-size: 16.0; - font: "fonts/FiraSans-Bold.ttf" + font: "fonts/FiraSans-Bold.ttf"; } .main-menu { @@ -18,6 +18,14 @@ text { background-color: grey; size: 300px, 50px; margin: 10px; + border-width: 2.5px; + border-radius: 10px; + border-color: grey; + padding: 0px 10px 0px 10px; +} + +.main-menu button:hover { + border-color: cyan; } button:hover text { diff --git a/assets/sheets/simple_ui.css b/assets/sheets/simple_ui.css index db715c8..fdeaa2d 100644 --- a/assets/sheets/simple_ui.css +++ b/assets/sheets/simple_ui.css @@ -4,7 +4,7 @@ #left-border { margin: 0px 0px 0px 50px; - border: 0px; + border-width: 0px; padding: 5px; background-color: #000000; } diff --git a/assets/sheets/test.css b/assets/sheets/test.css index 4317d30..1f5d484 100644 --- a/assets/sheets/test.css +++ b/assets/sheets/test.css @@ -4,7 +4,7 @@ #left-border { margin: 0px 0px 0px 50px; - border: 0px; + border-width: 0px; padding: 5px; background-color: gray; } @@ -25,4 +25,4 @@ .container .blue-bg { background-color: #ff00FF10; -} \ No newline at end of file +} \ No newline at end of file diff --git a/docs/css-support.md b/docs/css-support.md index e531292..3c74b8b 100644 --- a/docs/css-support.md +++ b/docs/css-support.md @@ -83,7 +83,7 @@ Note that these are properties which are provived by TOMT_BevyCSS but you can al ### [`Style`][5] Properties | Property | Values | Description | -| :---------------: | :-------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------| +|:-----------------:| :-------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------| | `display` | `flex` \| `none` | Applies the `display` property on [`display`][20] field of all sections on matched [`Style`][5] components. | | `position-type` | `absolute` \| `relative` | Applies the `position-type` property on [`position_type`][21] field of all sections on matched [`Style`][5] components. | | `direction` | `inherit` \| `left-to-right` \| `right-to-left` | Applies the `direction` property on [`direction`][22] field of all sections on matched [`Style`][5] components. | @@ -124,10 +124,11 @@ Note that these are properties which are provived by TOMT_BevyCSS but you can al ### Component Properties -| Property | Values | Description | -| :----------------: | :------------------------------------------: | :------------------------------------------------------------------------ | -| `background-color` | [`named-colors`][103] \| [`hex_colors`][104] | Applies the property on [`BackgroundColor`][1] of all matched components. | - +| Property | Values | Description | +|:------------------:|:--------------------------------------------------------------------:|:--------------------------------------------------------------------------| +| `background-color` | [`named-colors`][103] \| [`hex_colors`][104] | Applies the property on [`BackgroundColor`][1] of all matched components. | +| `border-radius` | <`area-short-hand`> | Applies the property on [`BorderRadius`][9] of all matched components. | +| `border-color` | [`named-colors`][103] \| [`hex_colors`][104] | Applies the property on [`BorderColor`][10] of all matched components. | [1]: https://docs.rs/bevy/latest/bevy/prelude/struct.BackgroundColor.html [2]: https://docs.rs/bevy/latest/bevy/text/struct.Text.html @@ -137,6 +138,8 @@ Note that these are properties which are provived by TOMT_BevyCSS but you can al [6]: https://docs.rs/bevy/latest/bevy/prelude/struct.UiImage.html [7]: https://docs.rs/bevy/latest/bevy/prelude/enum.Interaction.html [8]: https://docs.rs/bevy/latest/bevy/core/struct.Name.html +[9]: https://docs.rs/bevy/latest/bevy/prelude/struct.BorderRadius.html +[10]: https://docs.rs/bevy/latest/bevy/prelude/struct.BorderColor.html [20]: https://docs.rs/bevy/latest/bevy/prelude/struct.Style.html#structfield.display [21]: https://docs.rs/bevy/latest/bevy/prelude/struct.Style.html#structfield.position_type diff --git a/docs/custom-components.md b/docs/custom-components.md index f07e4ea..fe19368 100644 --- a/docs/custom-components.md +++ b/docs/custom-components.md @@ -18,7 +18,7 @@ struct FancyColor; fn some_main() { let mut app = App::new(); - app.add_plugins(DefaultPlugins).add_plugin(BevyCssPlugin::default()); + app.add_plugins(DefaultPlugins).add_plugin(BevyCssPlugin); // Register your own custom selector: // fancy-pants { diff --git a/docs/custom-properties.md b/docs/custom-properties.md index a630b31..7299d06 100644 --- a/docs/custom-properties.md +++ b/docs/custom-properties.md @@ -19,9 +19,14 @@ impl Property for AlphaProperty { // This is the cached value to be used when applying the property value. // It is evaluated only on the first time and futures runs are cached for performance reasons. type Cache = f32; + // Which components the property needs when applying the cached value. // It is the same as using bevy_ecs Query. - type Components = &'static mut BackgroundColor; + type Components = ( + Option<&'static mut BackgroundColor>, + Option<&'static mut UiImage>, + ); + // If this property can be set only when there is another property, it's possible to filter here. // It's not recommended to use only With<> and Without<>. type Filters = (); @@ -43,11 +48,15 @@ impl Property for AlphaProperty { // This function will be called for every entity matched on every rule selector. fn apply<'w>( cache: &Self::Cache, - mut components: QueryItem, + (bg, img): QueryItem, _asset_server: &AssetServer, _commands: &mut Commands, ) { - components.0.set_a(*cache); + if let Some(mut img) = img { + img.color.set_alpha(*cache); + } else if let Some(mut bg) = bg { + bg.0.set_alpha(*cache); + } } } ``` diff --git a/docs/hot-reload.md b/docs/hot-reload.md new file mode 100644 index 0000000..8a17422 --- /dev/null +++ b/docs/hot-reload.md @@ -0,0 +1,8 @@ +# Hot Reload +TOMT_bevycss supports hot reloading of CSS files. Enable the `file_watcher` feature in Bevy. + +```toml +bevy = { version = "0.14", features = ["default", "file_watcher"] } +``` + +Once this feature is enabled, any changes made to a CSS file will be applied immediately, without needing to restart your game. \ No newline at end of file diff --git a/examples/alpha.rs b/examples/alpha.rs index e2d54e3..d2c163a 100644 --- a/examples/alpha.rs +++ b/examples/alpha.rs @@ -4,12 +4,13 @@ use bevy::{ }; use tomt_bevycss::prelude::*; +// Whenever a StyleSheet is loaded, it'll be applied automatically fn main( // no args ) { let mut app = App::new(); app.add_plugins(DefaultPlugins) - .add_plugins(BevyCssPlugin::default()) + .add_plugins(BevyCssPlugin) .add_systems(Startup, setup); app.register_property::(); @@ -46,7 +47,11 @@ fn setup( }, image: asset_server.load("branding/bevy_logo_dark_big.png").into(), ..default() - }); + }) + .insert(Class::new("logo")); + + // box + parent.spawn(NodeBundle::default()).insert(Class::new("box")); }); } @@ -61,7 +66,10 @@ for AlphaProperty type Cache = f32; // Which components we need when applying the cache. It is the same as using bevy ecs Query. - type Components = &'static mut BackgroundColor; + type Components = ( + Option<&'static mut BackgroundColor>, + Option<&'static mut UiImage>, + ); // If this property can be set only when there is another property, we may filter there. // It's not recommended to use only With<> and Without<>. @@ -87,10 +95,14 @@ for AlphaProperty fn apply<'w>( cache: &Self::Cache, - mut components: QueryItem, + (bg, img): QueryItem, _asset_server: &AssetServer, _commands: &mut Commands, ) { - components.0.set_a(*cache); + if let Some(mut img) = img { + img.color.set_alpha(*cache); + } else if let Some(mut bg) = bg { + bg.0.set_alpha(*cache); + } } } diff --git a/examples/hot_reload.rs b/examples/hot_reload.rs deleted file mode 100644 index ad7688a..0000000 --- a/examples/hot_reload.rs +++ /dev/null @@ -1,378 +0,0 @@ -use bevy::prelude::*; -use bevy_editor_pls::prelude::*; -use tomt_bevycss::prelude::{ - BevyCssPlugin, - Class, - StyleSheet, -}; - - -fn main( - // no args -) { - // Whenever an StyleSheet is loaded, it'll be applied automatically - App::new() - .add_plugins(DefaultPlugins) - .add_plugins(( - EditorPlugin::default(), - BevyCssPlugin::with_hot_reload(), - )) - .add_systems(Startup, setup) - .run(); -} - -fn setup( - mut commands: Commands, - asset_server: Res -) { - // Camera - commands.spawn(Camera2dBundle::default()); - - // root node - commands.spawn(NodeBundle - { - style: Style - { - width: Val::Percent(100.0), - height: Val::Percent(100.0), - justify_content: JustifyContent::SpaceBetween, - ..default() - }, - background_color: Color::RED.into(), - ..default() - }) - .insert(( - Name::new("ui-root"), - StyleSheet::new(asset_server.load("sheets/hot_reload.css")), - )) - .with_children(|parent| - { - // left vertical fill (border) - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(200.0), - height: Val::Percent(100.0), - border: UiRect::all(Val::Px(2.0)), - ..default() - }, - background_color: Color::rgb(0.65, 0.65, 0.65).into(), - ..default() - }) - .insert(Name::new("left-border")) - .with_children(|parent| - { - // left vertical fill (content) - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Percent(100.0), - height: Val::Percent(100.0), - align_items: AlignItems::FlexEnd, - ..default() - }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), - ..default() - }) - .insert(Name::new("left-bg")) - .with_children(|parent| - { - // text - parent.spawn(TextBundle::from_section("Text Example", TextStyle - { - font: asset_server.load("fonts/FiraSans-Bold.ttf"), - font_size: 30.0, - color: Color::WHITE, - }) - .with_style(Style - { - margin: UiRect::all(Val::Px(5.0)), - ..default() - }), - ) - .insert(Name::new("left-text")); - }); - }); - - // right vertical fill - parent.spawn(NodeBundle - { - style: Style - { - flex_direction: FlexDirection::ColumnReverse, - justify_content: JustifyContent::Center, - width: Val::Px(200.0), - height: Val::Percent(100.0), - ..default() - }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), - ..default() - }) - .insert(Name::new("right-border")) - .with_children(|parent| - { - // Title - parent.spawn(TextBundle::from_section("Scrolling list", TextStyle - { - font: asset_server.load("fonts/FiraSans-Bold.ttf"), - font_size: 25., - color: Color::WHITE, - }) - .with_style(Style - { - height: Val::Px(25.), - margin: UiRect - { - left: Val::Auto, - right: Val::Auto, - ..default() - }, - ..default() - }) - ) - .insert(Name::new("right-bg")); - - // List with hidden overflow - parent.spawn(NodeBundle - { - style: Style - { - flex_direction: FlexDirection::ColumnReverse, - align_self: AlignSelf::Center, - width: Val::Percent(100.0), - height: Val::Percent(50.0), - overflow: Overflow - { - x: OverflowAxis::Clip, - y: OverflowAxis::Clip, - }, - ..default() - }, - background_color: Color::rgb(0.10, 0.10, 0.10).into(), - ..default() - }) - .insert(Name::new("right-list")) - .with_children(|parent| - { - // Moving panel - parent.spawn(NodeBundle - { - style: Style - { - flex_direction: FlexDirection::ColumnReverse, - flex_grow: 1.0, - ..default() - }, - background_color: Color::NONE.into(), - ..default() - }) - .insert(Name::new("right-moving-panel")) - .with_children(|parent| - { - // List items - for i in 0..30 - { - parent.spawn(TextBundle::from_section(format!("Item {i}"), TextStyle - { - font: asset_server - .load("fonts/FiraSans-Bold.ttf"), - font_size: 20., - color: Color::WHITE, - }) - .with_style(Style - { - flex_shrink: 0., - height: Val::Px(20.), - margin: UiRect - { - left: Val::Auto, - right: Val::Auto, - ..default() - }, - ..default() - }) - ) - .insert(Class::new("big-text")) - .insert(Name::new(format!("right-item-{}", i))); - } - }); - }); - }); - - // absolute positioning - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(200.0), - height: Val::Px(200.0), - position_type: PositionType::Absolute, - left: Val::Px(210.0), - bottom: Val::Px(10.0), - border: UiRect::all(Val::Px(20.0)), - ..default() - }, - background_color: Color::rgb(0.4, 0.4, 1.0).into(), - ..default() - }) - .insert(Name::new("mid-blue-border")) - .with_children(|parent| - { - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Percent(100.0), - height: Val::Percent(100.0), - ..default() - }, - background_color: Color::rgb(0.8, 0.8, 1.0).into(), - ..default() - }) - .insert(Name::new("mid-navy-blue-content")); - }); - - // render order test: reddest in the back, whitest in the front (flex center) - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Percent(100.0), - height: Val::Percent(100.0), - position_type: PositionType::Absolute, - align_items: AlignItems::Center, - justify_content: JustifyContent::Center, - ..default() - }, - background_color: Color::NONE.into(), - ..default() - }) - .insert(( - Name::new("mid-red-last"), - Class::new("blue-bg container"), - )) - .with_children(|parent| - { - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(100.0), - height: Val::Px(100.0), - ..default() - }, - background_color: Color::rgb(1.0, 0.0, 0.0).into(), - ..default() - }) - .insert(Name::new("mid-red-last-but-one")) - .with_children(|parent| - { - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(100.0), - height: Val::Px(100.0), - position_type: PositionType::Absolute, - left: Val::Px(20.0), - bottom: Val::Px(20.0), - ..default() - }, - background_color: Color::rgb(1.0, 0.3, 0.3).into(), - ..default() - }) - .insert(Name::new("mid-red-center")); - - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(100.0), - height: Val::Px(100.0), - position_type: PositionType::Absolute, - left: Val::Px(40.0), - bottom: Val::Px(40.0), - ..default() - }, - background_color: Color::rgb(1.0, 0.5, 0.5).into(), - ..default() - }) - .insert(( - Class::new("blue-bg"), - Name::new("mid-red-top-but-one"), - )); - - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(100.0), - height: Val::Px(100.0), - position_type: PositionType::Absolute, - left: Val::Px(60.0), - bottom: Val::Px(60.0), - ..default() - }, - background_color: Color::rgb(1.0, 0.7, 0.7).into(), - ..default() - }) - .insert(Name::new("mid-red-top")); - - // alpha test - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Px(100.0), - height: Val::Px(100.0), - position_type: PositionType::Absolute, - left: Val::Px(80.0), - bottom: Val::Px(80.0), - ..default() - }, - background_color: Color::rgba(1.0, 0.9, 0.9, 0.4).into(), - ..default() - }) - .insert(( - Class::new("blue-bg"), - Name::new("mid-red-alpha"), - )); - }); - }); - - // bevy logo (flex center) - parent.spawn(NodeBundle - { - style: Style - { - width: Val::Percent(100.0), - height: Val::Percent(100.0), - position_type: PositionType::Absolute, - justify_content: JustifyContent::Center, - align_items: AlignItems::FlexEnd, - ..default() - }, - background_color: Color::NONE.into(), - ..default() - }) - .insert(Name::new("mid-bevy-logo-bg")) - .with_children(|parent| - { - // bevy logo (image) - parent.spawn(ImageBundle - { - style: Style - { - width: Val::Px(500.0), - height: Val::Auto, - ..default() - }, - image: asset_server.load("branding/bevy_logo_dark_big.png").into(), - ..default() - }) - .insert(Name::new("mid-bevy-logo-image")); - }); - }); -} diff --git a/examples/menu.rs b/examples/menu.rs index c91d897..e35730f 100644 --- a/examples/menu.rs +++ b/examples/menu.rs @@ -51,13 +51,14 @@ pub struct SpawnedBy(PhantomData); const CLASS_MAIN_MENU: &str = "main-menu"; +// Whenever an StyleSheet is loaded, it'll be applied automatically fn main( // no args ) { let mut app = App::new(); app.add_plugins(DefaultPlugins) - .add_plugins(BevyCssPlugin::default()) + .add_plugins(BevyCssPlugin) .register_type::() .register_type::(); diff --git a/examples/simple_ui.rs b/examples/simple_ui.rs index 9222d7f..660955d 100644 --- a/examples/simple_ui.rs +++ b/examples/simple_ui.rs @@ -5,12 +5,13 @@ use tomt_bevycss::prelude::{ StyleSheet, }; +// Whenever an StyleSheet is loaded, it'll be applied automatically fn main( // no args ) { App::new() .add_plugins(DefaultPlugins) - .add_plugins(BevyCssPlugin::default()) + .add_plugins(BevyCssPlugin) .add_systems(Startup, setup) .run(); } @@ -51,7 +52,7 @@ fn setup( border: UiRect::all(Val::Px(2.0)), ..default() }, - background_color: Color::rgb(0.65, 0.65, 0.65).into(), + background_color: Color::srgb(0.65, 0.65, 0.65).into(), ..default() }) .insert(Name::new("left-border")) @@ -68,7 +69,7 @@ fn setup( align_items: AlignItems::FlexEnd, ..default() }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), + background_color: Color::srgb(0.15, 0.15, 0.15).into(), ..default() }) .insert(Name::new("left-bg")) @@ -102,7 +103,7 @@ fn setup( height: Val::Percent(100.0), ..default() }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), + background_color: Color::srgb(0.15, 0.15, 0.15).into(), ..default() }) .insert(Name::new("right-border")) @@ -145,7 +146,7 @@ fn setup( }, ..default() }, - background_color: Color::rgb(0.10, 0.10, 0.10).into(), + background_color: Color::srgb(0.10, 0.10, 0.10).into(), ..default() }) .insert(Name::new("right-list")) @@ -211,7 +212,7 @@ fn setup( border: UiRect::all(Val::Px(20.0)), ..default() }, - background_color: Color::rgb(0.4, 0.4, 1.0).into(), + background_color: Color::srgb(0.4, 0.4, 1.0).into(), ..default() }) .insert(Name::new("mid-blue-border")) @@ -225,7 +226,7 @@ fn setup( height: Val::Percent(100.0), ..default() }, - background_color: Color::rgb(0.8, 0.8, 1.0).into(), + background_color: Color::srgb(0.8, 0.8, 1.0).into(), ..default() }) .insert(Name::new("mid-navy-blue-content")); @@ -260,7 +261,7 @@ fn setup( height: Val::Px(100.0), ..default() }, - background_color: Color::rgb(1.0, 0.0, 0.0).into(), + background_color: Color::srgb(1.0, 0.0, 0.0).into(), ..default() }) .insert(Name::new("mid-red-last-but-one")) @@ -277,7 +278,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.3, 0.3).into(), + background_color: Color::srgb(1.0, 0.3, 0.3).into(), ..default() }) .insert(Name::new("mid-red-center")); @@ -293,7 +294,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.5, 0.5).into(), + background_color: Color::srgb(1.0, 0.5, 0.5).into(), ..default() }) .insert(( @@ -312,7 +313,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.7, 0.7).into(), + background_color: Color::srgb(1.0, 0.7, 0.7).into(), ..default() }) .insert(Name::new("mid-red-top")); @@ -329,7 +330,7 @@ fn setup( bottom: Val::Px(80.0), ..default() }, - background_color: Color::rgba(1.0, 0.9, 0.9, 0.4).into(), + background_color: Color::srgba(1.0, 0.9, 0.9, 0.4).into(), ..default() }) .insert(( diff --git a/examples/stress_test.rs b/examples/stress_test.rs index 5dd4efa..1e5a71b 100644 --- a/examples/stress_test.rs +++ b/examples/stress_test.rs @@ -5,10 +5,11 @@ use tomt_bevycss::prelude::{ StyleSheet, }; +// Whenever an StyleSheet is loaded, it'll be applied automatically fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugins(BevyCssPlugin::default()) + .add_plugins(BevyCssPlugin) .add_systems(Startup, setup) .run(); } diff --git a/examples/theme.rs b/examples/theme.rs index f787c1d..dd1564c 100644 --- a/examples/theme.rs +++ b/examples/theme.rs @@ -9,13 +9,13 @@ use tomt_bevycss::prelude::*; #[reflect(Component)] struct Title; +// Whenever an StyleSheet is loaded, it'll be applied automatically fn main( // no args ) { App::new() .add_plugins(DefaultPlugins) - // Whenever an StyleSheet is loaded, it'll be applied automatically - .add_plugins(BevyCssPlugin::with_hot_reload()) + .add_plugins(BevyCssPlugin) .add_systems(Startup, setup) .add_systems(Update, change_theme) .register_component_selector::("title") @@ -98,7 +98,7 @@ fn setup( border: UiRect::all(Val::Px(2.0)), ..default() }, - background_color: Color::rgb(0.65, 0.65, 0.65).into(), + background_color: Color::srgb(0.65, 0.65, 0.65).into(), ..default() }) .insert(Name::new("left-border")) @@ -114,7 +114,7 @@ fn setup( align_items: AlignItems::FlexEnd, ..default() }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), + background_color: Color::srgb(0.15, 0.15, 0.15).into(), ..default() }) .insert(Name::new("left-bf")) @@ -148,7 +148,7 @@ fn setup( height: Val::Percent(100.0), ..default() }, - background_color: Color::rgb(0.15, 0.15, 0.15).into(), + background_color: Color::srgb(0.15, 0.15, 0.15).into(), ..default() }) .insert(Name::new("right-border")) @@ -192,7 +192,7 @@ fn setup( }, ..default() }, - background_color: Color::rgb(0.10, 0.10, 0.10).into(), + background_color: Color::srgb(0.10, 0.10, 0.10).into(), ..default() }) .insert(Name::new("right-list")) @@ -274,7 +274,7 @@ fn setup( height: Val::Px(100.0), ..default() }, - background_color: Color::rgb(1.0, 0.0, 0.0).into(), + background_color: Color::srgb(1.0, 0.0, 0.0).into(), ..default() }) .insert(Name::new("mid-red-last-but-one")) @@ -291,7 +291,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.3, 0.3).into(), + background_color: Color::srgb(1.0, 0.3, 0.3).into(), ..default() }) .insert(Name::new("mid-red-center")); @@ -307,7 +307,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.5, 0.5).into(), + background_color: Color::srgb(1.0, 0.5, 0.5).into(), ..default() }) .insert(( @@ -326,7 +326,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgb(1.0, 0.7, 0.7).into(), + background_color: Color::srgb(1.0, 0.7, 0.7).into(), ..default() }) .insert(Name::new("mid-red-top")); @@ -343,7 +343,7 @@ fn setup( position_type: PositionType::Absolute, ..default() }, - background_color: Color::rgba(1.0, 0.9, 0.9, 0.4).into(), + background_color: Color::srgba(1.0, 0.9, 0.9, 0.4).into(), ..default() }) .insert(( @@ -399,7 +399,7 @@ fn setup( border: UiRect::all(Val::Px(20.0)), ..default() }, - background_color: Color::rgb(0.4, 0.4, 1.0).into(), + background_color: Color::srgb(0.4, 0.4, 1.0).into(), ..default() }) .insert(Name::new("mid-blue-border")) @@ -414,7 +414,7 @@ fn setup( ..default() }, focus_policy: FocusPolicy::Pass, - background_color: Color::rgb(0.8, 0.8, 1.0).into(), + background_color: Color::srgb(0.8, 0.8, 1.0).into(), ..default() }) .insert(Name::new("mid-navy-blue-content")) @@ -436,7 +436,7 @@ fn setup( { font: asset_server.load("fonts/FiraSans-Bold.ttf"), font_size: 40.0, - color: Color::rgb(0.9, 0.9, 0.9), + color: Color::srgb(0.9, 0.9, 0.9), }, )); }); diff --git a/src/lib.rs b/src/lib.rs index a59f382..53c9171 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,6 +21,7 @@ use bevy::{ ecs::system::SystemState, prelude::*, }; +use crate::plugins::DoEcss; /// use `tomt_bevycss::prelude::*;` to import common components, and plugins and utility functions. pub mod prelude { @@ -82,10 +83,10 @@ for bevy::prelude::App where T: Component, { - let system_state = SystemState::<Query<Entity, With<T>>>::new(&mut self.world); + let system_state = SystemState::<Query<Entity, With<T>>>::new(self.world_mut()); let boxed_state = Box::new(system_state); - self.world + self.world_mut() .get_resource_or_insert_with::<ComponentFilterRegistry>(|| { ComponentFilterRegistry(Default::default()) }) @@ -118,6 +119,6 @@ for bevy::prelude::App where T: Property + 'static, { - self.add_systems(Update, T::apply_system.in_set(BevyCssSet::Apply)) + self.add_systems(DoEcss, T::apply_system.in_set(BevyCssSet::Apply)) } } diff --git a/src/plugins/bevy_css_plugin.rs b/src/plugins/bevy_css_plugin.rs index b54118b..24e03b9 100644 --- a/src/plugins/bevy_css_plugin.rs +++ b/src/plugins/bevy_css_plugin.rs @@ -1,3 +1,6 @@ +use bevy::app::MainScheduleOrder; +use bevy::asset::AssetEvents; +use bevy::ecs::schedule::ScheduleLabel; use crate::{ prelude::{ Class, @@ -23,20 +26,10 @@ use bevy::prelude::*; /// Plugin which add all types, assets, systems and internal resources needed by `tomt_bevycss`. /// You must add this plugin in order to use `tomt_bevycss`. -#[derive(Default)] -pub struct BevyCssPlugin -{ - hot_reload: bool, -} +pub struct BevyCssPlugin; impl BevyCssPlugin { - pub fn with_hot_reload( - // no args - ) -> BevyCssPlugin { - BevyCssPlugin { hot_reload: true } - } - fn register_component_selector( app: &mut bevy::prelude::App ) { @@ -83,8 +76,7 @@ impl BevyCssPlugin app.register_property::<MarginProperty>(); app.register_property::<PaddingProperty>(); - app.register_property::<BorderProperty>(); - + app.register_property::<BorderWidthProperty>(); { use property::text::*; @@ -97,9 +89,18 @@ impl BevyCssPlugin use property::impls::BackgroundColorProperty; app.register_property::<BackgroundColorProperty>(); + + use crate::property::impls::BorderRadiusProperty; + app.register_property::<BorderRadiusProperty>(); + + use crate::property::impls::BorderColorProperty; + app.register_property::<BorderColorProperty>(); } } +#[derive(ScheduleLabel, Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub(crate) struct DoEcss; + impl Plugin for BevyCssPlugin { @@ -107,12 +108,17 @@ for BevyCssPlugin &self, app: &mut bevy::prelude::App ) { + app.init_schedule(DoEcss); + app.world_mut() + .resource_mut::<MainScheduleOrder>() + .insert_after(Update, DoEcss); + // Type registration app.register_type::<Class>() .register_type::<StyleSheet>(); // Resources - let prepared_state = PrepareParams::new(&mut app.world); + let prepared_state = PrepareParams::new(app.world_mut()); app.init_asset_loader::<StyleSheetLoader>() .init_asset::<StyleSheetAsset>() .init_resource::<StyleSheetState>() @@ -121,21 +127,22 @@ for BevyCssPlugin // Schedules use system::sets::*; - app.configure_sets(PreUpdate, ( + app.configure_sets( + DoEcss, + ( BevyCssSet::Prepare, - BevyCssSet::Apply.after(BevyCssSet::Prepare) - )) - .configure_sets(PostUpdate, BevyCssSet::Cleanup); + BevyCssSet::Apply, + BevyCssSet::Cleanup + ) + .chain() + ); // Systems - app.add_systems(PreUpdate, system::prepare.in_set(BevyCssSet::Prepare)) - .add_systems(PostUpdate, system::clear_state.in_set(BevyCssSet::Cleanup)); + app.add_systems(DoEcss, system::prepare.in_set(BevyCssSet::Prepare)) + .add_systems(DoEcss, system::clear_state.in_set(BevyCssSet::Cleanup)); - if self.hot_reload - { - app.configure_sets(PostUpdate, BevyCssHotReload) - .add_systems(PostUpdate, system::hot_reload_style_sheets.in_set(BevyCssHotReload)); - } + // Hot reload + app.add_systems(First, system::hot_reload_style_sheets.in_set(AssetEvents)); // CSS registrations Self::register_component_selector(app); diff --git a/src/plugins/mod.rs b/src/plugins/mod.rs index d467356..6444151 100644 --- a/src/plugins/mod.rs +++ b/src/plugins/mod.rs @@ -1,2 +1,2 @@ -mod bevy_css_plugin; +pub(crate) mod bevy_css_plugin; pub use bevy_css_plugin::*; diff --git a/src/property/colors.rs b/src/property/colors.rs index e347734..4c48c0a 100644 --- a/src/property/colors.rs +++ b/src/property/colors.rs @@ -26,7 +26,7 @@ pub(super) fn parse_hex_color( .map(|num| { const DIV: f32 = u8::MAX as f32; - Color::rgba( + Color::srgba( (num >> 24) as u8 as f32 / DIV, (num >> 16) as u8 as f32 / DIV, (num >> 8) as u8 as f32 / DIV, @@ -56,161 +56,161 @@ pub(super) fn parse_named_color( match name { // CSS Level 1 values - "black" => Some(Color::rgba(0.0000, 0.0000, 0.0000, 1.0000)), - "silver" => Some(Color::rgba(0.7529, 0.7529, 0.7529, 1.0000)), - "gray" => Some(Color::rgba(0.5020, 0.5020, 0.5020, 1.0000)), - "white" => Some(Color::rgba(1.0000, 1.0000, 1.0000, 1.0000)), - "maroon" => Some(Color::rgba(0.5020, 0.0000, 0.0000, 1.0000)), - "red" => Some(Color::rgba(1.0000, 0.0000, 0.0000, 1.0000)), - "purple" => Some(Color::rgba(0.5020, 0.0000, 0.5020, 1.0000)), - "fuchsia" => Some(Color::rgba(1.0000, 0.0000, 1.0000, 1.0000)), - "green" => Some(Color::rgba(0.0000, 0.5020, 0.0000, 1.0000)), - "lime" => Some(Color::rgba(0.0000, 1.0000, 0.0000, 1.0000)), - "olive" => Some(Color::rgba(0.5020, 0.5020, 0.0000, 1.0000)), - "yellow" => Some(Color::rgba(1.0000, 1.0000, 0.0000, 1.0000)), - "navy" => Some(Color::rgba(0.0000, 0.0000, 0.5020, 1.0000)), - "blue" => Some(Color::rgba(0.0000, 0.0000, 1.0000, 1.0000)), - "teal" => Some(Color::rgba(0.0000, 0.5020, 0.5020, 1.0000)), - "aqua" => Some(Color::rgba(0.0000, 1.0000, 1.0000, 1.0000)), + "black" => Some(Color::srgba(0.0000, 0.0000, 0.0000, 1.0000)), + "silver" => Some(Color::srgba(0.7529, 0.7529, 0.7529, 1.0000)), + "gray" => Some(Color::srgba(0.5020, 0.5020, 0.5020, 1.0000)), + "white" => Some(Color::srgba(1.0000, 1.0000, 1.0000, 1.0000)), + "maroon" => Some(Color::srgba(0.5020, 0.0000, 0.0000, 1.0000)), + "red" => Some(Color::srgba(1.0000, 0.0000, 0.0000, 1.0000)), + "purple" => Some(Color::srgba(0.5020, 0.0000, 0.5020, 1.0000)), + "fuchsia" => Some(Color::srgba(1.0000, 0.0000, 1.0000, 1.0000)), + "green" => Some(Color::srgba(0.0000, 0.5020, 0.0000, 1.0000)), + "lime" => Some(Color::srgba(0.0000, 1.0000, 0.0000, 1.0000)), + "olive" => Some(Color::srgba(0.5020, 0.5020, 0.0000, 1.0000)), + "yellow" => Some(Color::srgba(1.0000, 1.0000, 0.0000, 1.0000)), + "navy" => Some(Color::srgba(0.0000, 0.0000, 0.5020, 1.0000)), + "blue" => Some(Color::srgba(0.0000, 0.0000, 1.0000, 1.0000)), + "teal" => Some(Color::srgba(0.0000, 0.5020, 0.5020, 1.0000)), + "aqua" => Some(Color::srgba(0.0000, 1.0000, 1.0000, 1.0000)), // CSS Level 2 (rev 1) values - "orange" => Some(Color::rgba(1.0000, 0.6471, 0.0000, 1.0000)), + "orange" => Some(Color::srgba(1.0000, 0.6471, 0.0000, 1.0000)), // CSS Level 3 values - "aliceblue" => Some(Color::rgba(0.9412, 0.9725, 1.0000, 1.0000)), - "antiquewhite" => Some(Color::rgba(0.9804, 0.9216, 0.8431, 1.0000)), - "aquamarine" => Some(Color::rgba(0.4980, 1.0000, 0.8314, 1.0000)), - "azure" => Some(Color::rgba(0.9412, 1.0000, 1.0000, 1.0000)), - "beige" => Some(Color::rgba(0.9608, 0.9608, 0.8627, 1.0000)), - "bisque" => Some(Color::rgba(1.0000, 0.8941, 0.7686, 1.0000)), - "blanchedalmond" => Some(Color::rgba(1.0000, 0.9216, 0.8039, 1.0000)), - "blueviolet" => Some(Color::rgba(0.5412, 0.1686, 0.8863, 1.0000)), - "brown" => Some(Color::rgba(0.6471, 0.1647, 0.1647, 1.0000)), - "burlywood" => Some(Color::rgba(0.8706, 0.7216, 0.5294, 1.0000)), - "cadetblue" => Some(Color::rgba(0.3725, 0.6196, 0.6275, 1.0000)), - "chartreuse" => Some(Color::rgba(0.4980, 1.0000, 0.0000, 1.0000)), - "chocolate" => Some(Color::rgba(0.8235, 0.4118, 0.1176, 1.0000)), - "coral" => Some(Color::rgba(1.0000, 0.4980, 0.3137, 1.0000)), - "cornflowerblue" => Some(Color::rgba(0.3922, 0.5843, 0.9294, 1.0000)), - "cornsilk" => Some(Color::rgba(1.0000, 0.9725, 0.8627, 1.0000)), - "crimson" => Some(Color::rgba(0.8627, 0.0784, 0.2353, 1.0000)), - "cyan" => Some(Color::rgba(0.0000, 1.0000, 1.0000, 1.0000)), - "darkblue" => Some(Color::rgba(0.0000, 0.0000, 0.5451, 1.0000)), - "darkcyan" => Some(Color::rgba(0.0000, 0.5451, 0.5451, 1.0000)), - "darkgoldenrod" => Some(Color::rgba(0.7216, 0.5255, 0.0431, 1.0000)), - "darkgray" => Some(Color::rgba(0.6627, 0.6627, 0.6627, 1.0000)), - "darkgreen" => Some(Color::rgba(0.0000, 0.3922, 0.0000, 1.0000)), - "darkgrey" => Some(Color::rgba(0.6627, 0.6627, 0.6627, 1.0000)), - "darkkhaki" => Some(Color::rgba(0.7412, 0.7176, 0.4196, 1.0000)), - "darkmagenta" => Some(Color::rgba(0.5451, 0.0000, 0.5451, 1.0000)), - "darkolivegreen" => Some(Color::rgba(0.3333, 0.4196, 0.1843, 1.0000)), - "darkorange" => Some(Color::rgba(1.0000, 0.5490, 0.0000, 1.0000)), - "darkorchid" => Some(Color::rgba(0.6000, 0.1961, 0.8000, 1.0000)), - "darkred" => Some(Color::rgba(0.5451, 0.0000, 0.0000, 1.0000)), - "darksalmon" => Some(Color::rgba(0.9137, 0.5882, 0.4784, 1.0000)), - "darkseagreen" => Some(Color::rgba(0.5608, 0.7373, 0.5608, 1.0000)), - "darkslateblue" => Some(Color::rgba(0.2824, 0.2392, 0.5451, 1.0000)), - "darkslategray" => Some(Color::rgba(0.1843, 0.3098, 0.3098, 1.0000)), - "darkslategrey" => Some(Color::rgba(0.1843, 0.3098, 0.3098, 1.0000)), - "darkturquoise" => Some(Color::rgba(0.0000, 0.8078, 0.8196, 1.0000)), - "darkviolet" => Some(Color::rgba(0.5804, 0.0000, 0.8275, 1.0000)), - "deeppink" => Some(Color::rgba(1.0000, 0.0784, 0.5765, 1.0000)), - "deepskyblue" => Some(Color::rgba(0.0000, 0.7490, 1.0000, 1.0000)), - "dimgray" => Some(Color::rgba(0.4118, 0.4118, 0.4118, 1.0000)), - "dimgrey" => Some(Color::rgba(0.4118, 0.4118, 0.4118, 1.0000)), - "dodgerblue" => Some(Color::rgba(0.1176, 0.5647, 1.0000, 1.0000)), - "firebrick" => Some(Color::rgba(0.6980, 0.1333, 0.1333, 1.0000)), - "floralwhite" => Some(Color::rgba(1.0000, 0.9804, 0.9412, 1.0000)), - "forestgreen" => Some(Color::rgba(0.1333, 0.5451, 0.1333, 1.0000)), - "gainsboro" => Some(Color::rgba(0.8627, 0.8627, 0.8627, 1.0000)), - "ghostwhite" => Some(Color::rgba(0.9725, 0.9725, 1.0000, 1.0000)), - "gold" => Some(Color::rgba(1.0000, 0.8431, 0.0000, 1.0000)), - "goldenrod" => Some(Color::rgba(0.8549, 0.6471, 0.1255, 1.0000)), - "greenyellow" => Some(Color::rgba(0.6784, 1.0000, 0.1843, 1.0000)), - "grey" => Some(Color::rgba(0.5020, 0.5020, 0.5020, 1.0000)), - "honeydew" => Some(Color::rgba(0.9412, 1.0000, 0.9412, 1.0000)), - "hotpink" => Some(Color::rgba(1.0000, 0.4118, 0.7059, 1.0000)), - "indianred" => Some(Color::rgba(0.8039, 0.3608, 0.3608, 1.0000)), - "indigo" => Some(Color::rgba(0.2941, 0.0000, 0.5098, 1.0000)), - "ivory" => Some(Color::rgba(1.0000, 1.0000, 0.9412, 1.0000)), - "khaki" => Some(Color::rgba(0.9412, 0.9020, 0.5490, 1.0000)), - "lavender" => Some(Color::rgba(0.9020, 0.9020, 0.9804, 1.0000)), - "lavenderblush" => Some(Color::rgba(1.0000, 0.9412, 0.9608, 1.0000)), - "lawngreen" => Some(Color::rgba(0.4863, 0.9882, 0.0000, 1.0000)), - "lemonchiffon" => Some(Color::rgba(1.0000, 0.9804, 0.8039, 1.0000)), - "lightblue" => Some(Color::rgba(0.6784, 0.8471, 0.9020, 1.0000)), - "lightcoral" => Some(Color::rgba(0.9412, 0.5020, 0.5020, 1.0000)), - "lightcyan" => Some(Color::rgba(0.8784, 1.0000, 1.0000, 1.0000)), - "lightgoldenrodyellow" => Some(Color::rgba(0.9804, 0.9804, 0.8235, 1.0000)), - "lightgray" => Some(Color::rgba(0.8275, 0.8275, 0.8275, 1.0000)), - "lightgreen" => Some(Color::rgba(0.5647, 0.9333, 0.5647, 1.0000)), - "lightgrey" => Some(Color::rgba(0.8275, 0.8275, 0.8275, 1.0000)), - "lightpink" => Some(Color::rgba(1.0000, 0.7137, 0.7569, 1.0000)), - "lightsalmon" => Some(Color::rgba(1.0000, 0.6275, 0.4784, 1.0000)), - "lightseagreen" => Some(Color::rgba(0.1255, 0.6980, 0.6667, 1.0000)), - "lightskyblue" => Some(Color::rgba(0.5294, 0.8078, 0.9804, 1.0000)), - "lightslategray" => Some(Color::rgba(0.4667, 0.5333, 0.6000, 1.0000)), - "lightslategrey" => Some(Color::rgba(0.4667, 0.5333, 0.6000, 1.0000)), - "lightsteelblue" => Some(Color::rgba(0.6902, 0.7686, 0.8706, 1.0000)), - "lightyellow" => Some(Color::rgba(1.0000, 1.0000, 0.8784, 1.0000)), - "limegreen" => Some(Color::rgba(0.1961, 0.8039, 0.1961, 1.0000)), - "linen" => Some(Color::rgba(0.9804, 0.9412, 0.9020, 1.0000)), - "magenta" => Some(Color::rgba(1.0000, 0.0000, 1.0000, 1.0000)), - "mediumaquamarine" => Some(Color::rgba(0.4000, 0.8039, 0.6667, 1.0000)), - "mediumblue" => Some(Color::rgba(0.0000, 0.0000, 0.8039, 1.0000)), - "mediumorchid" => Some(Color::rgba(0.7294, 0.3333, 0.8275, 1.0000)), - "mediumpurple" => Some(Color::rgba(0.5765, 0.4392, 0.8588, 1.0000)), - "mediumseagreen" => Some(Color::rgba(0.2353, 0.7020, 0.4431, 1.0000)), - "mediumslateblue" => Some(Color::rgba(0.4824, 0.4078, 0.9333, 1.0000)), - "mediumspringgreen" => Some(Color::rgba(0.0000, 0.9804, 0.6039, 1.0000)), - "mediumturquoise" => Some(Color::rgba(0.2824, 0.8196, 0.8000, 1.0000)), - "mediumvioletred" => Some(Color::rgba(0.7804, 0.0824, 0.5216, 1.0000)), - "midnightblue" => Some(Color::rgba(0.0980, 0.0980, 0.4392, 1.0000)), - "mintcream" => Some(Color::rgba(0.9608, 1.0000, 0.9804, 1.0000)), - "mistyrose" => Some(Color::rgba(1.0000, 0.8941, 0.8824, 1.0000)), - "moccasin" => Some(Color::rgba(1.0000, 0.8941, 0.7098, 1.0000)), - "navajowhite" => Some(Color::rgba(1.0000, 0.8706, 0.6784, 1.0000)), - "oldlace" => Some(Color::rgba(0.9922, 0.9608, 0.9020, 1.0000)), - "olivedrab" => Some(Color::rgba(0.4196, 0.5569, 0.1373, 1.0000)), - "orangered" => Some(Color::rgba(1.0000, 0.2706, 0.0000, 1.0000)), - "orchid" => Some(Color::rgba(0.8549, 0.4392, 0.8392, 1.0000)), - "palegoldenrod" => Some(Color::rgba(0.9333, 0.9098, 0.6667, 1.0000)), - "palegreen" => Some(Color::rgba(0.5961, 0.9843, 0.5961, 1.0000)), - "paleturquoise" => Some(Color::rgba(0.6863, 0.9333, 0.9333, 1.0000)), - "palevioletred" => Some(Color::rgba(0.8588, 0.4392, 0.5765, 1.0000)), - "papayawhip" => Some(Color::rgba(1.0000, 0.9373, 0.8353, 1.0000)), - "peachpuff" => Some(Color::rgba(1.0000, 0.8549, 0.7255, 1.0000)), - "peru" => Some(Color::rgba(0.8039, 0.5216, 0.2471, 1.0000)), - "pink" => Some(Color::rgba(1.0000, 0.7529, 0.7961, 1.0000)), - "plum" => Some(Color::rgba(0.8667, 0.6275, 0.8667, 1.0000)), - "powderblue" => Some(Color::rgba(0.6902, 0.8784, 0.9020, 1.0000)), - "rosybrown" => Some(Color::rgba(0.7373, 0.5608, 0.5608, 1.0000)), - "royalblue" => Some(Color::rgba(0.2549, 0.4118, 0.8824, 1.0000)), - "saddlebrown" => Some(Color::rgba(0.5451, 0.2706, 0.0745, 1.0000)), - "salmon" => Some(Color::rgba(0.9804, 0.5020, 0.4471, 1.0000)), - "sandybrown" => Some(Color::rgba(0.9569, 0.6431, 0.3765, 1.0000)), - "seagreen" => Some(Color::rgba(0.1804, 0.5451, 0.3412, 1.0000)), - "seashell" => Some(Color::rgba(1.0000, 0.9608, 0.9333, 1.0000)), - "sienna" => Some(Color::rgba(0.6275, 0.3216, 0.1765, 1.0000)), - "skyblue" => Some(Color::rgba(0.5294, 0.8078, 0.9216, 1.0000)), - "slateblue" => Some(Color::rgba(0.4157, 0.3529, 0.8039, 1.0000)), - "slategray" => Some(Color::rgba(0.4392, 0.5020, 0.5647, 1.0000)), - "slategrey" => Some(Color::rgba(0.4392, 0.5020, 0.5647, 1.0000)), - "snow" => Some(Color::rgba(1.0000, 0.9804, 0.9804, 1.0000)), - "springgreen" => Some(Color::rgba(0.0000, 1.0000, 0.4980, 1.0000)), - "steelblue" => Some(Color::rgba(0.2745, 0.5098, 0.7059, 1.0000)), - "tan" => Some(Color::rgba(0.8235, 0.7059, 0.5490, 1.0000)), - "thistle" => Some(Color::rgba(0.8471, 0.7490, 0.8471, 1.0000)), - "tomato" => Some(Color::rgba(1.0000, 0.3882, 0.2784, 1.0000)), - "transparent" => Some(Color::rgba(0.0000, 0.0000, 0.0000, 0.0000)), - "turquoise" => Some(Color::rgba(0.2510, 0.8784, 0.8157, 1.0000)), - "violet" => Some(Color::rgba(0.9333, 0.5098, 0.9333, 1.0000)), - "wheat" => Some(Color::rgba(0.9608, 0.8706, 0.7020, 1.0000)), - "whitesmoke" => Some(Color::rgba(0.9608, 0.9608, 0.9608, 1.0000)), - "yellowgreen" => Some(Color::rgba(0.6039, 0.8039, 0.1961, 1.0000)), + "aliceblue" => Some(Color::srgba(0.9412, 0.9725, 1.0000, 1.0000)), + "antiquewhite" => Some(Color::srgba(0.9804, 0.9216, 0.8431, 1.0000)), + "aquamarine" => Some(Color::srgba(0.4980, 1.0000, 0.8314, 1.0000)), + "azure" => Some(Color::srgba(0.9412, 1.0000, 1.0000, 1.0000)), + "beige" => Some(Color::srgba(0.9608, 0.9608, 0.8627, 1.0000)), + "bisque" => Some(Color::srgba(1.0000, 0.8941, 0.7686, 1.0000)), + "blanchedalmond" => Some(Color::srgba(1.0000, 0.9216, 0.8039, 1.0000)), + "blueviolet" => Some(Color::srgba(0.5412, 0.1686, 0.8863, 1.0000)), + "brown" => Some(Color::srgba(0.6471, 0.1647, 0.1647, 1.0000)), + "burlywood" => Some(Color::srgba(0.8706, 0.7216, 0.5294, 1.0000)), + "cadetblue" => Some(Color::srgba(0.3725, 0.6196, 0.6275, 1.0000)), + "chartreuse" => Some(Color::srgba(0.4980, 1.0000, 0.0000, 1.0000)), + "chocolate" => Some(Color::srgba(0.8235, 0.4118, 0.1176, 1.0000)), + "coral" => Some(Color::srgba(1.0000, 0.4980, 0.3137, 1.0000)), + "cornflowerblue" => Some(Color::srgba(0.3922, 0.5843, 0.9294, 1.0000)), + "cornsilk" => Some(Color::srgba(1.0000, 0.9725, 0.8627, 1.0000)), + "crimson" => Some(Color::srgba(0.8627, 0.0784, 0.2353, 1.0000)), + "cyan" => Some(Color::srgba(0.0000, 1.0000, 1.0000, 1.0000)), + "darkblue" => Some(Color::srgba(0.0000, 0.0000, 0.5451, 1.0000)), + "darkcyan" => Some(Color::srgba(0.0000, 0.5451, 0.5451, 1.0000)), + "darkgoldenrod" => Some(Color::srgba(0.7216, 0.5255, 0.0431, 1.0000)), + "darkgray" => Some(Color::srgba(0.6627, 0.6627, 0.6627, 1.0000)), + "darkgreen" => Some(Color::srgba(0.0000, 0.3922, 0.0000, 1.0000)), + "darkgrey" => Some(Color::srgba(0.6627, 0.6627, 0.6627, 1.0000)), + "darkkhaki" => Some(Color::srgba(0.7412, 0.7176, 0.4196, 1.0000)), + "darkmagenta" => Some(Color::srgba(0.5451, 0.0000, 0.5451, 1.0000)), + "darkolivegreen" => Some(Color::srgba(0.3333, 0.4196, 0.1843, 1.0000)), + "darkorange" => Some(Color::srgba(1.0000, 0.5490, 0.0000, 1.0000)), + "darkorchid" => Some(Color::srgba(0.6000, 0.1961, 0.8000, 1.0000)), + "darkred" => Some(Color::srgba(0.5451, 0.0000, 0.0000, 1.0000)), + "darksalmon" => Some(Color::srgba(0.9137, 0.5882, 0.4784, 1.0000)), + "darkseagreen" => Some(Color::srgba(0.5608, 0.7373, 0.5608, 1.0000)), + "darkslateblue" => Some(Color::srgba(0.2824, 0.2392, 0.5451, 1.0000)), + "darkslategray" => Some(Color::srgba(0.1843, 0.3098, 0.3098, 1.0000)), + "darkslategrey" => Some(Color::srgba(0.1843, 0.3098, 0.3098, 1.0000)), + "darkturquoise" => Some(Color::srgba(0.0000, 0.8078, 0.8196, 1.0000)), + "darkviolet" => Some(Color::srgba(0.5804, 0.0000, 0.8275, 1.0000)), + "deeppink" => Some(Color::srgba(1.0000, 0.0784, 0.5765, 1.0000)), + "deepskyblue" => Some(Color::srgba(0.0000, 0.7490, 1.0000, 1.0000)), + "dimgray" => Some(Color::srgba(0.4118, 0.4118, 0.4118, 1.0000)), + "dimgrey" => Some(Color::srgba(0.4118, 0.4118, 0.4118, 1.0000)), + "dodgerblue" => Some(Color::srgba(0.1176, 0.5647, 1.0000, 1.0000)), + "firebrick" => Some(Color::srgba(0.6980, 0.1333, 0.1333, 1.0000)), + "floralwhite" => Some(Color::srgba(1.0000, 0.9804, 0.9412, 1.0000)), + "forestgreen" => Some(Color::srgba(0.1333, 0.5451, 0.1333, 1.0000)), + "gainsboro" => Some(Color::srgba(0.8627, 0.8627, 0.8627, 1.0000)), + "ghostwhite" => Some(Color::srgba(0.9725, 0.9725, 1.0000, 1.0000)), + "gold" => Some(Color::srgba(1.0000, 0.8431, 0.0000, 1.0000)), + "goldenrod" => Some(Color::srgba(0.8549, 0.6471, 0.1255, 1.0000)), + "greenyellow" => Some(Color::srgba(0.6784, 1.0000, 0.1843, 1.0000)), + "grey" => Some(Color::srgba(0.5020, 0.5020, 0.5020, 1.0000)), + "honeydew" => Some(Color::srgba(0.9412, 1.0000, 0.9412, 1.0000)), + "hotpink" => Some(Color::srgba(1.0000, 0.4118, 0.7059, 1.0000)), + "indianred" => Some(Color::srgba(0.8039, 0.3608, 0.3608, 1.0000)), + "indigo" => Some(Color::srgba(0.2941, 0.0000, 0.5098, 1.0000)), + "ivory" => Some(Color::srgba(1.0000, 1.0000, 0.9412, 1.0000)), + "khaki" => Some(Color::srgba(0.9412, 0.9020, 0.5490, 1.0000)), + "lavender" => Some(Color::srgba(0.9020, 0.9020, 0.9804, 1.0000)), + "lavenderblush" => Some(Color::srgba(1.0000, 0.9412, 0.9608, 1.0000)), + "lawngreen" => Some(Color::srgba(0.4863, 0.9882, 0.0000, 1.0000)), + "lemonchiffon" => Some(Color::srgba(1.0000, 0.9804, 0.8039, 1.0000)), + "lightblue" => Some(Color::srgba(0.6784, 0.8471, 0.9020, 1.0000)), + "lightcoral" => Some(Color::srgba(0.9412, 0.5020, 0.5020, 1.0000)), + "lightcyan" => Some(Color::srgba(0.8784, 1.0000, 1.0000, 1.0000)), + "lightgoldenrodyellow" => Some(Color::srgba(0.9804, 0.9804, 0.8235, 1.0000)), + "lightgray" => Some(Color::srgba(0.8275, 0.8275, 0.8275, 1.0000)), + "lightgreen" => Some(Color::srgba(0.5647, 0.9333, 0.5647, 1.0000)), + "lightgrey" => Some(Color::srgba(0.8275, 0.8275, 0.8275, 1.0000)), + "lightpink" => Some(Color::srgba(1.0000, 0.7137, 0.7569, 1.0000)), + "lightsalmon" => Some(Color::srgba(1.0000, 0.6275, 0.4784, 1.0000)), + "lightseagreen" => Some(Color::srgba(0.1255, 0.6980, 0.6667, 1.0000)), + "lightskyblue" => Some(Color::srgba(0.5294, 0.8078, 0.9804, 1.0000)), + "lightslategray" => Some(Color::srgba(0.4667, 0.5333, 0.6000, 1.0000)), + "lightslategrey" => Some(Color::srgba(0.4667, 0.5333, 0.6000, 1.0000)), + "lightsteelblue" => Some(Color::srgba(0.6902, 0.7686, 0.8706, 1.0000)), + "lightyellow" => Some(Color::srgba(1.0000, 1.0000, 0.8784, 1.0000)), + "limegreen" => Some(Color::srgba(0.1961, 0.8039, 0.1961, 1.0000)), + "linen" => Some(Color::srgba(0.9804, 0.9412, 0.9020, 1.0000)), + "magenta" => Some(Color::srgba(1.0000, 0.0000, 1.0000, 1.0000)), + "mediumaquamarine" => Some(Color::srgba(0.4000, 0.8039, 0.6667, 1.0000)), + "mediumblue" => Some(Color::srgba(0.0000, 0.0000, 0.8039, 1.0000)), + "mediumorchid" => Some(Color::srgba(0.7294, 0.3333, 0.8275, 1.0000)), + "mediumpurple" => Some(Color::srgba(0.5765, 0.4392, 0.8588, 1.0000)), + "mediumseagreen" => Some(Color::srgba(0.2353, 0.7020, 0.4431, 1.0000)), + "mediumslateblue" => Some(Color::srgba(0.4824, 0.4078, 0.9333, 1.0000)), + "mediumspringgreen" => Some(Color::srgba(0.0000, 0.9804, 0.6039, 1.0000)), + "mediumturquoise" => Some(Color::srgba(0.2824, 0.8196, 0.8000, 1.0000)), + "mediumvioletred" => Some(Color::srgba(0.7804, 0.0824, 0.5216, 1.0000)), + "midnightblue" => Some(Color::srgba(0.0980, 0.0980, 0.4392, 1.0000)), + "mintcream" => Some(Color::srgba(0.9608, 1.0000, 0.9804, 1.0000)), + "mistyrose" => Some(Color::srgba(1.0000, 0.8941, 0.8824, 1.0000)), + "moccasin" => Some(Color::srgba(1.0000, 0.8941, 0.7098, 1.0000)), + "navajowhite" => Some(Color::srgba(1.0000, 0.8706, 0.6784, 1.0000)), + "oldlace" => Some(Color::srgba(0.9922, 0.9608, 0.9020, 1.0000)), + "olivedrab" => Some(Color::srgba(0.4196, 0.5569, 0.1373, 1.0000)), + "orangered" => Some(Color::srgba(1.0000, 0.2706, 0.0000, 1.0000)), + "orchid" => Some(Color::srgba(0.8549, 0.4392, 0.8392, 1.0000)), + "palegoldenrod" => Some(Color::srgba(0.9333, 0.9098, 0.6667, 1.0000)), + "palegreen" => Some(Color::srgba(0.5961, 0.9843, 0.5961, 1.0000)), + "paleturquoise" => Some(Color::srgba(0.6863, 0.9333, 0.9333, 1.0000)), + "palevioletred" => Some(Color::srgba(0.8588, 0.4392, 0.5765, 1.0000)), + "papayawhip" => Some(Color::srgba(1.0000, 0.9373, 0.8353, 1.0000)), + "peachpuff" => Some(Color::srgba(1.0000, 0.8549, 0.7255, 1.0000)), + "peru" => Some(Color::srgba(0.8039, 0.5216, 0.2471, 1.0000)), + "pink" => Some(Color::srgba(1.0000, 0.7529, 0.7961, 1.0000)), + "plum" => Some(Color::srgba(0.8667, 0.6275, 0.8667, 1.0000)), + "powderblue" => Some(Color::srgba(0.6902, 0.8784, 0.9020, 1.0000)), + "rosybrown" => Some(Color::srgba(0.7373, 0.5608, 0.5608, 1.0000)), + "royalblue" => Some(Color::srgba(0.2549, 0.4118, 0.8824, 1.0000)), + "saddlebrown" => Some(Color::srgba(0.5451, 0.2706, 0.0745, 1.0000)), + "salmon" => Some(Color::srgba(0.9804, 0.5020, 0.4471, 1.0000)), + "sandybrown" => Some(Color::srgba(0.9569, 0.6431, 0.3765, 1.0000)), + "seagreen" => Some(Color::srgba(0.1804, 0.5451, 0.3412, 1.0000)), + "seashell" => Some(Color::srgba(1.0000, 0.9608, 0.9333, 1.0000)), + "sienna" => Some(Color::srgba(0.6275, 0.3216, 0.1765, 1.0000)), + "skyblue" => Some(Color::srgba(0.5294, 0.8078, 0.9216, 1.0000)), + "slateblue" => Some(Color::srgba(0.4157, 0.3529, 0.8039, 1.0000)), + "slategray" => Some(Color::srgba(0.4392, 0.5020, 0.5647, 1.0000)), + "slategrey" => Some(Color::srgba(0.4392, 0.5020, 0.5647, 1.0000)), + "snow" => Some(Color::srgba(1.0000, 0.9804, 0.9804, 1.0000)), + "springgreen" => Some(Color::srgba(0.0000, 1.0000, 0.4980, 1.0000)), + "steelblue" => Some(Color::srgba(0.2745, 0.5098, 0.7059, 1.0000)), + "tan" => Some(Color::srgba(0.8235, 0.7059, 0.5490, 1.0000)), + "thistle" => Some(Color::srgba(0.8471, 0.7490, 0.8471, 1.0000)), + "tomato" => Some(Color::srgba(1.0000, 0.3882, 0.2784, 1.0000)), + "transparent" => Some(Color::srgba(0.0000, 0.0000, 0.0000, 0.0000)), + "turquoise" => Some(Color::srgba(0.2510, 0.8784, 0.8157, 1.0000)), + "violet" => Some(Color::srgba(0.9333, 0.5098, 0.9333, 1.0000)), + "wheat" => Some(Color::srgba(0.9608, 0.8706, 0.7020, 1.0000)), + "whitesmoke" => Some(Color::srgba(0.9608, 0.9608, 0.9608, 1.0000)), + "yellowgreen" => Some(Color::srgba(0.6039, 0.8039, 0.1961, 1.0000)), // CSS Level 4 values - "rebeccapurple" => Some(Color::rgba(0.4000, 0.2000, 0.6000, 1.0000)), + "rebeccapurple" => Some(Color::srgba(0.4000, 0.2000, 0.6000, 1.0000)), _ => None, } } diff --git a/src/property/impls/mod.rs b/src/property/impls/mod.rs index 33613cc..b49d7a6 100644 --- a/src/property/impls/mod.rs +++ b/src/property/impls/mod.rs @@ -12,8 +12,11 @@ pub(crate) struct BackgroundColorProperty; impl Property for BackgroundColorProperty { type Cache = Color; - type Components = Entity; - type Filters = With<BackgroundColor>; + type Components = ( + Option<&'static mut BackgroundColor>, + Option<&'static mut UiImage>, + ); + type Filters = (); fn name() -> &'static str { "background-color" @@ -29,10 +32,78 @@ impl Property for BackgroundColorProperty { fn apply<'w>( cache: &Self::Cache, - components: QueryItem<Self::Components>, + (bg, img): QueryItem<Self::Components>, + _asset_server: &AssetServer, + _commands: &mut Commands, + ) { + if let Some(mut bg) = bg { + *bg = BackgroundColor(*cache); + } + + if let Some(mut img) = img { + img.color = *cache; + } + } +} + +/// Applies the `border-radius` property on [`BorderRadius`] component of matched entities. +#[derive(Default)] +pub(crate) struct BorderRadiusProperty; + +impl Property for BorderRadiusProperty { + type Cache = BorderRadius; + type Components = Entity; + type Filters = With<BorderRadius>; + + fn name() -> &'static str { + "border-radius" + } + + fn parse<'a>(values: &PropertyValues) -> Result<Self::Cache, BevyCssError> { + if let Some(border) = values.border_radius() { + Ok(border) + } else { + Err(BevyCssError::InvalidPropertyValue(Self::name().to_string())) + } + } + + fn apply<'w>( + cache: &Self::Cache, + component: QueryItem<Self::Components>, _asset_server: &AssetServer, commands: &mut Commands, ) { - commands.entity(components).insert(BackgroundColor(*cache)); + commands.entity(component).insert(*cache); } } + +/// Applies the `border-color` property on [`BorderColor`] component of matched entities. +#[derive(Default)] +pub(crate) struct BorderColorProperty; + +impl Property for BorderColorProperty { + type Cache = Color; + type Components = &'static mut BorderColor; + type Filters = (); + + fn name() -> &'static str { + "border-color" + } + + fn parse<'a>(values: &PropertyValues) -> Result<Self::Cache, BevyCssError> { + if let Some(color) = values.color() { + Ok(color) + } else { + Err(BevyCssError::InvalidPropertyValue(Self::name().to_string())) + } + } + + fn apply<'w>( + cache: &Self::Cache, + mut component: QueryItem<Self::Components>, + _asset_server: &AssetServer, + _commands: &mut Commands, + ) { + component.0 = *cache; + } +} \ No newline at end of file diff --git a/src/property/impls/style/mod.rs b/src/property/impls/style/mod.rs index c65df00..e6e1049 100644 --- a/src/property/impls/style/mod.rs +++ b/src/property/impls/style/mod.rs @@ -10,7 +10,7 @@ use crate::{ // Rect type property fields impl_style_rect!("margin", MarginProperty, margin); impl_style_rect!("padding", PaddingProperty, padding); -impl_style_rect!("border", BorderProperty, border); +impl_style_rect!("border-width", BorderWidthProperty, border); // Val (number) type property fields impl_style_single_value!("left", LeftProperty, Val, val, left); diff --git a/src/property/property_values.rs b/src/property/property_values.rs index b153f22..f07f235 100644 --- a/src/property/property_values.rs +++ b/src/property/property_values.rs @@ -14,6 +14,7 @@ use bevy::{ Val, }, }; +use bevy::prelude::BorderRadius; use smallvec::SmallVec; /// A list of [`PropertyToken`] which was parsed from a single property. @@ -167,7 +168,7 @@ impl PropertyValues }) } - /// Tries to parses the current values as a single [`Option<UiRect<Val>>`]. + /// Tries to parses the current values as a single [`Option<UiRect>`]. /// /// Optional values are handled by this function, so if only one value is present it is used as `top`, `right`, `bottom` and `left`, /// otherwise values are applied in the following order: `top`, `right`, `bottom` and `left`. @@ -206,4 +207,43 @@ impl PropertyValues }).0 } } + + /// Tries to parses the current values as a single [`Option<BorderRadius>`]. + pub fn border_radius( + &self + ) -> Option<BorderRadius> { + if self.0.len() == 1 + { + self.val().map(BorderRadius::all) + } + else + { + self.0.iter() + .fold((None, 0), |(border_radius, idx), token| + { + let val = match token + { + PropertyToken::Percentage(val) => Val::Percent(*val), + PropertyToken::Dimension(val) => Val::Px(*val), + PropertyToken::Number(num) if *num == 0.0 => Val::Px(0.0), + PropertyToken::Identifier(val) if val == "auto" => Val::Auto, + _ => return (border_radius, idx), + }; + let mut border_radius: BorderRadius = border_radius.unwrap_or_default(); + + match idx + { + 0 => border_radius = BorderRadius::all(val), + 1 => { + border_radius.top_right = val; + border_radius.bottom_left = val; + } + 2 => border_radius.bottom_right = val, + 3 => border_radius.bottom_left = val, + _ => (), + } + (Some(border_radius), idx + 1) + }).0 + } + } } diff --git a/src/stylesheet/style_sheet_loader.rs b/src/stylesheet/style_sheet_loader.rs index c5bd4bd..7b06a2f 100644 --- a/src/stylesheet/style_sheet_loader.rs +++ b/src/stylesheet/style_sheet_loader.rs @@ -6,11 +6,7 @@ use bevy::{ AssetLoader, AsyncReadExt, LoadContext, }, - prelude::*, - utils::{ - thiserror, - BoxedFuture, - }, + prelude::* }; use thiserror::Error; @@ -36,23 +32,21 @@ for StyleSheetLoader type Settings = (); type Error = StyleSheetLoaderError; - fn load<'a>( + async fn load<'a>( &'a self, - reader: &'a mut Reader, + reader: &'a mut Reader<'_>, _settings: &'a (), - load_context: &'a mut LoadContext, - ) -> BoxedFuture<'a, Result<Self::Asset, Self::Error>> { - Box::pin(async move { - let mut bytes = Vec::new(); - reader.read_to_end(&mut bytes).await?; - - let content = std::str::from_utf8(&bytes)?; - let stylesheet = StyleSheetAsset::parse( - load_context.path().to_str().unwrap_or_default(), - content - ); - Ok(stylesheet) - }) + load_context: &'a mut LoadContext<'_>, + ) -> Result<Self::Asset, Self::Error> { + let mut bytes = Vec::new(); + reader.read_to_end(&mut bytes).await?; + + let content = std::str::from_utf8(&bytes)?; + let stylesheet = StyleSheetAsset::parse( + load_context.path().to_str().unwrap_or_default(), + content + ); + Ok(stylesheet) } fn extensions( diff --git a/src/system/sets/bevy_css_hot_reload.rs b/src/system/sets/bevy_css_hot_reload.rs deleted file mode 100644 index d0dc965..0000000 --- a/src/system/sets/bevy_css_hot_reload.rs +++ /dev/null @@ -1,6 +0,0 @@ -use bevy::ecs::schedule::SystemSet; - -#[derive(Clone, Debug)] -#[derive(PartialEq, Eq, Hash)] -#[derive(SystemSet)] -pub struct BevyCssHotReload; diff --git a/src/system/sets/mod.rs b/src/system/sets/mod.rs index 3f49b1f..9344776 100644 --- a/src/system/sets/mod.rs +++ b/src/system/sets/mod.rs @@ -1,5 +1,2 @@ -mod bevy_css_hot_reload; -pub(crate) use bevy_css_hot_reload::*; - mod bevy_css_set; pub use bevy_css_set::*;