From 282b4cf6837ced4c2d034efb27d9cbf3ad82cc9b Mon Sep 17 00:00:00 2001 From: Bunny Bites Date: Tue, 31 Oct 2023 23:33:44 +0530 Subject: [PATCH 1/5] add bootstrap example for styling solutions --- Cargo.lock | 2 +- examples/yew-bootstrap/Cargo.lock | 1141 +++++++++++++++++ examples/yew-bootstrap/Cargo.toml | 9 + examples/yew-bootstrap/README.md | 9 + .../yew-bootstrap/example-yew-bootstrap.png | Bin 0 -> 26704 bytes examples/yew-bootstrap/index.html | 9 + .../yew-bootstrap/src/components/appbar.rs | 12 + .../yew-bootstrap/src/components/input.rs | 22 + examples/yew-bootstrap/src/components/mod.rs | 2 + examples/yew-bootstrap/src/main.rs | 32 + examples/yew-bootstrap/src/pages/login.rs | 13 + examples/yew-bootstrap/src/pages/mod.rs | 1 + 12 files changed, 1251 insertions(+), 1 deletion(-) create mode 100644 examples/yew-bootstrap/Cargo.lock create mode 100644 examples/yew-bootstrap/Cargo.toml create mode 100644 examples/yew-bootstrap/README.md create mode 100644 examples/yew-bootstrap/example-yew-bootstrap.png create mode 100644 examples/yew-bootstrap/index.html create mode 100644 examples/yew-bootstrap/src/components/appbar.rs create mode 100644 examples/yew-bootstrap/src/components/input.rs create mode 100644 examples/yew-bootstrap/src/components/mod.rs create mode 100644 examples/yew-bootstrap/src/main.rs create mode 100644 examples/yew-bootstrap/src/pages/login.rs create mode 100644 examples/yew-bootstrap/src/pages/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 743a4e00..de218ed1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2643,7 +2643,7 @@ dependencies = [ [[package]] name = "trunk" -version = "0.17.3" +version = "0.17.5" dependencies = [ "ansi_term", "anyhow", diff --git a/examples/yew-bootstrap/Cargo.lock b/examples/yew-bootstrap/Cargo.lock new file mode 100644 index 00000000..f2a52366 --- /dev/null +++ b/examples/yew-bootstrap/Cargo.lock @@ -0,0 +1,1141 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "anymap2" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "gloo" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28999cda5ef6916ffd33fb4a7b87e1de633c47c0dc6d97905fee1cdaa142b94d" +dependencies = [ + "gloo-console 0.2.3", + "gloo-dialogs 0.1.1", + "gloo-events 0.1.2", + "gloo-file 0.2.3", + "gloo-history 0.1.5", + "gloo-net 0.3.1", + "gloo-render 0.1.1", + "gloo-storage 0.2.2", + "gloo-timers 0.2.6", + "gloo-utils 0.1.7", + "gloo-worker 0.2.1", +] + +[[package]] +name = "gloo" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd35526c28cc55c1db77aed6296de58677dbab863b118483a27845631d870249" +dependencies = [ + "gloo-console 0.3.0", + "gloo-dialogs 0.2.0", + "gloo-events 0.2.0", + "gloo-file 0.3.0", + "gloo-history 0.2.1", + "gloo-net 0.4.0", + "gloo-render 0.2.0", + "gloo-storage 0.3.0", + "gloo-timers 0.3.0", + "gloo-utils 0.2.0", + "gloo-worker 0.4.0", +] + +[[package]] +name = "gloo-console" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b7ce3c05debe147233596904981848862b068862e9ec3e34be446077190d3f" +dependencies = [ + "gloo-utils 0.1.7", + "js-sys", + "serde", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-console" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a17868f56b4a24f677b17c8cb69958385102fa879418052d60b50bc1727e261" +dependencies = [ + "gloo-utils 0.2.0", + "js-sys", + "serde", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-dialogs" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67062364ac72d27f08445a46cab428188e2e224ec9e37efdba48ae8c289002e6" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-dialogs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4748e10122b01435750ff530095b1217cf6546173459448b83913ebe7815df" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-events" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b107f8abed8105e4182de63845afcc7b69c098b7852a813ea7462a320992fc" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-events" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c26fb45f7c385ba980f5fa87ac677e363949e065a083722697ef1b2cc91e41" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-file" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d5564e570a38b43d78bdc063374a0c3098c4f0d64005b12f9bbe87e869b6d7" +dependencies = [ + "gloo-events 0.1.2", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-file" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97563d71863fb2824b2e974e754a81d19c4a7ec47b09ced8a0e6656b6d54bd1f" +dependencies = [ + "gloo-events 0.2.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-history" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85725d90bf0ed47063b3930ef28e863658a7905989e9929a8708aab74a1d5e7f" +dependencies = [ + "gloo-events 0.1.2", + "gloo-utils 0.1.7", + "serde", + "serde-wasm-bindgen 0.5.0", + "serde_urlencoded", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-history" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4022e82f5f9e03cb1251b13c0a967e0600e97aa179c617f6519bac40640160" +dependencies = [ + "getrandom", + "gloo-events 0.2.0", + "gloo-utils 0.2.0", + "serde", + "serde-wasm-bindgen 0.6.1", + "serde_urlencoded", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66b4e3c7d9ed8d315fd6b97c8b1f74a7c6ecbbc2320e65ae7ed38b7068cc620" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.1.7", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.2.0", + "http", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-render" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd9306aef67cfd4449823aadcd14e3958e0800aa2183955a309112a84ec7764" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-render" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56008b6744713a8e8d98ac3dcb7d06543d5662358c9c805b4ce2167ad4649833" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-storage" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6ab60bf5dbfd6f0ed1f7843da31b41010515c745735c970e821945ca91e480" +dependencies = [ + "gloo-utils 0.1.7", + "js-sys", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-storage" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc8031e8c92758af912f9bc08fbbadd3c6f3cfcbf6b64cdf3d6a81f0139277a" +dependencies = [ + "gloo-utils 0.2.0", + "js-sys", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-utils" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gloo-worker" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13471584da78061a28306d1359dd0178d8d6fc1c7c80e5e35d27260346e0516a" +dependencies = [ + "anymap2", + "bincode", + "gloo-console 0.2.3", + "gloo-utils 0.1.7", + "js-sys", + "serde", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-worker" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76495d3dd87de51da268fa3a593da118ab43eb7f8809e17eb38d3319b424e400" +dependencies = [ + "bincode", + "futures", + "gloo-utils 0.2.0", + "gloo-worker-macros", + "js-sys", + "pinned", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-worker-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956caa58d4857bc9941749d55e4bd3000032d8212762586fa5705632967140e7" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "implicit-clone" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3d77000817fd9e7db159e8d52ed9b5941a2cdbfbdc8ca646e59887ae2b2dd1" +dependencies = [ + "indexmap", +] + +[[package]] +name = "indexmap" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pinned" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" +dependencies = [ + "futures", + "rustversion", + "thiserror", +] + +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.38", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prokio" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b55e106e5791fa5a13abd13c85d6127312e8e09098059ca2bc9b03ca4cf488" +dependencies = [ + "futures", + "gloo 0.8.1", + "num_cpus", + "once_cell", + "pin-project", + "pinned", + "tokio", + "tokio-stream", + "wasm-bindgen-futures", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "serde" +version = "1.0.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ba92964781421b6cef36bf0d7da26d201e96d84e1b10e7ae6ed416e516906d" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_derive" +version = "1.0.190" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "serde_json" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tokio" +version = "1.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +dependencies = [ + "backtrace", + "pin-project-lite", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winnow" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" +dependencies = [ + "memchr", +] + +[[package]] +name = "yew" +version = "0.21.0" +source = "git+https://github.com/yewstack/yew/#d790e1beab825d2c7936108f9050bfc8f2760217" +dependencies = [ + "console_error_panic_hook", + "futures", + "gloo 0.10.0", + "implicit-clone", + "indexmap", + "js-sys", + "prokio", + "rustversion", + "serde", + "slab", + "thiserror", + "tokio", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "yew-macro", +] + +[[package]] +name = "yew-demo" +version = "0.1.0" +dependencies = [ + "yew", +] + +[[package]] +name = "yew-macro" +version = "0.21.0" +source = "git+https://github.com/yewstack/yew/#d790e1beab825d2c7936108f9050bfc8f2760217" +dependencies = [ + "once_cell", + "prettyplease", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.38", +] diff --git a/examples/yew-bootstrap/Cargo.toml b/examples/yew-bootstrap/Cargo.toml new file mode 100644 index 00000000..ab9a9e93 --- /dev/null +++ b/examples/yew-bootstrap/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "yew-demo" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +yew = { git = "https://github.com/yewstack/yew/", features = ["csr"] } \ No newline at end of file diff --git a/examples/yew-bootstrap/README.md b/examples/yew-bootstrap/README.md new file mode 100644 index 00000000..0f1d417c --- /dev/null +++ b/examples/yew-bootstrap/README.md @@ -0,0 +1,9 @@ +Trunk | Yew | Bootstrap 5 +====================== +An example application demonstrating building a WASM web application using Trunk, Yew & Bootstrap. + +This example also covers building reusable code (function) using props + +Simply execute `trunk serve --open` from this example's directory, and you should see the following web application rendered in your browser. + + diff --git a/examples/yew-bootstrap/example-yew-bootstrap.png b/examples/yew-bootstrap/example-yew-bootstrap.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b48ff3fb2e54f0820eb125a6c7103c94aa87a5 GIT binary patch literal 26704 zcmeFZ2~<1feVu1O!T2LtB=mR8T-cdI%~_q>Uy*2qB4Ru0vF>A9OkFN{rD6j-N(Kh)0qabM4OmaYaDs?7GAf4l!j^Ymb^kiUj-nOfUl z{%O8yPy485@&f*0I9H6uk$G9)8dahu2~^@xk)VN9<+F1y-8NOni93H{iU1+`IlDTO z{QAz?#)b5hH#ikvnxC(pvMu*Bg0gp0L;648?UA*mOIo)BO;MWtVZXnv(rdhrCO*aW zfRWGBEMuGO5APploVk42Uq7=a)UV~3X+W&SZdJqHRWkZ#W5q*1jTX<(Z&MmM>kAEg z==AV_aqlCJtig3L9eah+Vm_VWSU`-w+2y4us&xFw##cK$9g8pZse6YBIj}#YuTaV+ z;OCZLRk3_^!>uy22d^40YkoYC*Uc(3`Kjw-RTQmBO>yUP`}Z4P@ze}<9$P?NVSE?6 zO>xn}tYDiI>Hdr295}uyd{MgV%c;`k_4}=VobJ%x`0C5)UoN8XO$#nY_K~Y}w-7y+55hckY1Ewax){$a7Ui!OOPC zigF4l6z|4ohYbx4{cV+BAN&@5W&6jmIiW0M5vC;;|>KaQsl)R2yHI7j7!Dq&- z|4DI6NnR&OI&e(CTGc|yV|}YqHxH3t?s(w1xb>)#(y{NWw?3n!^z7C<$ksDTx4!xg z{ruVd{5mfo3xr;1`F4SI8EZss7r(ye($v`e!NXVkjZ%!}<^t|dSDdLP%vWnb&3 z)r*-06%7`i5R|*K^-@|d>{@45d!G*vQ3hMk-q_%_o?%mAzn(tb-t;syx45Fh*~uyT zfRW$O(b3BCa>~c&4$x&gG_)v}J{i0+lj;Kf+)AcCJz-h+{P|()rMf_8;cAy~J`0NM zdKB?jtAl72o7r1_*JY?;W~1GxKN?ff%cy&-vuaX3O&1-uQ*jFz7&j zSGf78R7GM3=wBaYItnsJQtwCtr`X6g_kq~6fxGv`Ye^Rf{B=YhWr-+naH~WNyT9ZQ zoWoIn|5i1GEZv~U{e-wdScfb(jzSzH!kCLI#V#S!B9UZz*wb`nlF3Q;goNU-35SSO zUHg@;p^@Q`zJ*H8BwCmKUR6FRle}i^4B@EYPBNN?XYQ(ouz@=v{VyzK{?ZxUUBRyt z>~esC@5O^mkxUHoz;Ule2>Gl+hGZy){520Djkb4A(ZET_P^#^&%6`Ohcgj9ZF%3lUvJwrli`c4 zZzFHnCdodlbyae*2cgdVNQ^^KaJN#m`;G@DGh-AqNj0gb&;=ikaPP zSGLzyg_!+7u-#mC&WmWjK6OfrJh`UR^~7Os*HA)H$lF5;xVtb<)YNVCU}=MALQ>?l zYn^!nIx^P}S$>tb`Vq}*B{QdfhNal>iO`xG7|aGeoVtE6Ud3MW(J!|D_eUBip(8U> z&#f?|cdtEl`BMM|`1u?2FT`)(xki0_m_Y4!*ozq*ZmJFG>!v~XQUP7)13G?Ym#5@M z;M)9}(CDu>uzhynn+FLm0c!z&Bjgm|8H70O;ahM;_S<>XHOG`0 z!9LwWoIH2+HpTvNmT_;dvi0IqPx(sn29m%)GPlo-!iv@yAq$eFIcN-zZ|E3hD@F$o3=WBxr zYm+aKN%peFN9ux}jl0LDKS)hFv~YfGN-lwB+_xbxrKmJQk_Ncxb^w5uc$13`R@JUqPLa_li#ZPHTLcF87(}Yg;x!bpcP{f(Q*S* z6i^A+Y-lcqt$&)Aoh%%yXpRvbZxQt3ZJXOW>{i~@X@fET{zbht5=qZqwN;_HohQLi zJYz{#BZv|gR__>KpDL_!!$iqaHL*Ehxv7R~cZWaDlv=siN`K)#y^h|XL6^UwYGF68 zki>akqps2e_z!PbvQBFq{3x4f6LV9U6Lxl6h1;M%+wrqp$kX*ncA{73@sb3a)!BB^ z=4UzJ^D1XM5Ff5wPcwt4<{E7l5z6hSZ-EC^HKw8`R%u)rG|## zI)bpbs8%qEJ_;@=Egcx34`3@YGDhkeGTi)!Hy{K-D{K%jgQJsc@#i1}ew+nk1_Ms% zE&+!1cqFb31x7d)JhT9pm<^7+zA9lhW|r%03n;=FE(o;tN_M&Ugl zaq_yP0+-&g><>Y&Z^;ZM?s3^SETO=u8hY^Q1Wx`=Q9(s>K!ENwU57sinXT?9gL{t9 z>2wX#wb^wG2R=FK$*3}#vtYjGV9s4F?gZN`meA@E7t#OX3~BZS47xlih6<8-Pu!ek zj(M1vvk8#qik!H4JvDpTsKP!X0F`CGI+DQd(j_<##P|-sOwypsCN@{d5WPK>;VyQ< zo51+fpC_{r6}!X#f`0g2T&6GK4RW^Hp+1r!Q8vh>YRZN;(3?74zunuBYqjsaU~}3< z8!TGmGCqy2@#Jsz17E~!Or5TEVlF9uh_#ESN9X;H7@f2qEOhF*=%7qd_~{$uMv%iH zkeT9|8Z@UZNe4nRYFSRgNW;V}QqgK0g`Omjm zLjgY^93i%48^?corQKypJx}FR?Frfnt7|dYXgAKQ!Z;SV+HF)P7m`rm5F@lhpp%mm z9)HmDX?=0E9^e+W!G-pww$_V{r!5#aQ!lx@2T#5B=SvV&B6(k_uanb3^=x{;_`pC) z0p*;V+hC->54;b);_%&y8&Z`qCBOjGoj zrKfOWLaI#J&GF9|$;(AIf4rk2>vc@_M^lpdJ=wVQBgvAhZ5#DhvOtKCK6}_Z$Bx$V zAByYEWg`LP$e%EX_(QmbO6%yPiaPrENmau&BcddvH@CHbZztZ<_w+;{bLA;uQM_L9 z4yoVkO4Wsae8yl#t8-Xevjtt`;#h^n?7n7BnR~=G+o%a+Q~1nLUSn9SOd_NObCS#Z zqg_sZYMej_T1i0VQ?xxHAgg9&iC0^E_kA@xiMntgGl>F-ZJ(1RBTZY#MH)NFw{2Hg z;$UFFK$0qIea9L>x&~FlZj7#e0`Q4(+omABqW)&+IcGW5wC3`gw>BGN)1Xg(n;yXZ zBnMzcE6=JUW_+E}>ut(kZpSHRF(6J(_U-1q=flIp0YsMuC*=Un*UX~f%s5%P1X~)- zHHAjWHWTbwwFKLfEI6pZRUxxQBoYYh;pN{lu{xd7uzzAalI-8M1`BWmCP#sRfml0s zqGfHGhcM&$sy=nMVyMFd-yTA;9$k@V0bPZh733@Y*t1j3oY&h0RF$*R>$c}R(eJ^! zdHC>(L%F4uYPqQ{Va*9VV1S*A)Ap#xjKpQX6tPqX1ru(o6Ud70#VcUmMOa+{Nqh)T zYj4Y%d}(xkDgS=1RYxA0TfKUx2fM2U=&KnwH229JJIqIY*b;FRLYS{39WXoIX+E0d zoC5U7yLiOAGojbKkmE-xE8b4j3h?3BG)R3beC$fX%~<2rXwb6np_sAf0O*C3k1p1a z=Be4YA-=(qvDWNjT{2UT!zPUPX4NXJud)_XVS{sME0F}tOMCb31+iw_JmVxEssrIG zXPA)EXAH7@7oSXSMBVMsjJxIt*!ept+Cbk$ewer(C`JI?+o3EaZcvfqk(Z5HX2~@a zi}C!XCVgA<`guyt{%Y7Tou0B|_kjjn+qM4BYm20d3GBv|4|2*If;58LvVa8iqi+H$ z=B+-IOV1>LWq;Q%b$o)-Y8lY*)l&yKkp=d_*s4n^z|AQ|uyHd4!AE{A~g0X^eYdGDrEoZWo*ttkEE-WtAV=&i5093o=?pXl* zr_jc#3V$SHJn zutx*rBB5H$hfz4kpX`6-_D88e{(O*)w-vwd&68eDndvsD43m3Dr$?i-CWou()q)Y< zaalWQ`Ng+cR;*7O)MiHqVjy>%Xt?H_Yju=rEBLvH!XI*TDPlTHO$zSd-t6Ml3iOHb zcZvAx9l2^JK1=op-+rqm$Z&rKGY96_+My3$ow*K3NcR$vnE}ilyC~E2wuU43G@i($ zVoqAB3wnH%f^Us6$RuDzbMb3|THp%wbhZC3?D4@u+pPShNurkM~r9L6*G*bkCPnQ}uHd+AMX(*k!QdX$m1R@6m`AHs14&KaE} z`C-SuZ;h`g3>J*~M}_tbTyn2pB1`7OD+>b1mfXV-Z|^K8i%D&_0GQaa>_v_Kxy*(- zdnTQZ2TbyV2i@9T;gxL}0y3`FMuA7W$dVp%K0rD3<$%K1wn&*pC+*7C+Pb-os}*Uv zEXo_fc2Bt=&c7cmULyPJZA{)AY@85?#Rz(+Zc!U{x<#_uvqV&hUkJB8$D8z>+1}&v z9U+e1r5Gyb=8=05^?|UOtIHTZN4=yCL+q|-R$g5Dn5`|Cv_8?Hfe89AvCK!>pNt&8 zkgP?%f|HN^*h{dtS8xDEjZ-b>0gn&31s~Q8Ov7U8ZljaNiaQFfBd^HMRN*k*?9#%2 ztC~YFy_fq$Bx;a}1!zit6vY3W7A5}~(bets^<&)Rt3Y#sQ;M~&& zW8dLzdW4mZqCis`*Xvk z(5B&=5kP&v;ZNWL`8i-EImQ?<&f0OW~YVi+i{)11gW+? zX}svh4Y!cKoUFM)0!1d~WpfBPyUG@cW5Zz6*Ad^@@|Q}u~T`%{GqBPo0S>hoN_*UBWQzxB=qKhtodvT zfSoY|Dyzl1wcTZ{*pa;C&~h_M_9k{DqOG=Vlt+-7e(u zl6$*!b43jTY&k&V;BdI0LT6NC`)>KjyVOA4LLR9oUt9|-JFp~M9Hh;?dUMDQ>z@_N z!x-3ZtXC2vGvn9IM~eUeI37uK0xU;MdX$)0GFo9^$uKLFYLWz#VzHk^O*pL9=P7!_ z$TMxK+3qwfUiBCc1$*>i^5$u*nP~oz7Wwnic?A=Zv&u>ZVB>Fl7G}`x4Qq?(8F`1~ z82-E_*(&3>cgm-B@{@DM(kO9Yc2rX+z$04oHk*Kp{j%nnzK=j_fo>miPUM!pEalRC z4}Qdr5}ESa?aF^}9P#VDwc~;l%nNG(p}2GJ!Me$xdGH>xZYD$|mBjZZmf9$$gENb@ z)Lu&mzq&W~;3EVS->Quj>F@6!rD3fD;3Li+d7RibeAk{?!Z{-;1elg2*@ewoc@K+c z1LQf@Sj)ozwXk|9S>0rYueNso6pinOu3R_YBDN>HZtptu7%(gLXlxh{fRtNMg`4xS zLFv;i0EGgQH?!+yMW=#o1n7ZsWf;pZfDDEvIh`6B83F3%z#4nrk)H$4iz|sNhyWlU zU}!DuwGe?7EvxfHe_?Zl4JhVnm@Z@d`4V28IG35}Ec1!6nX9@)mRv2O+~krtGY=h< z=RQ`;(Swcg9P7-R^yA>wOb5;R>x+j@ULW;CEX~FTWiqUy3oEKdsx85QieCq)*Rjjp zLU?v$gLhb1$+*BHfS~Bo9L$ENDNH7Lq-JX2V!M7RB|m_?#o`T(4hPS4@^-gsd$*2d z*X>~T7&V(UtB7LH`eV<`&o98=e%%qgn!gJ%;@v(<+n^}S#FI>ayd5TvJbj}!gaQzG zdto@;LkcVM6IAWTXE>}hdnL;p;W2MnLG=c1sxI|`jqzf4I zYTri{iQ84^xV!t?N=@Q7EloZp^)a`t8YkPN0Z=WnVELW< z<$?Kp>J5NTW-W2=?E(Ez8$z95E}8sg@orK{adFoaW&?0GI2|;X@(i4bjyvBd{5?L78TdjKR#e)jXt#2tQ-5S>Yd!*#? z*p|8~DP8zU5yNoQi~fIxFw%$J{cX3R7_aROzl1S>h>0M|wgs_A@ychr(_9^af1Bd= z+%o@RW%N<25WlO_=Xwk3#@hktA z7c7}vx|Iy`&bGF@@TA+)cEraB`ep#0=k+n?gt0m6-VRpXadgEc|J;kxxS8GQhC=q> zZp8ZMKDCymtNYb9-q8Jq5bqN*8!}9bNak*Ab51weGWc_fbIu>_eYU%-zkBk5t6uc* zeziI<(XZOAQbKmpr@LGlZZ#1jjSD=Tf;VWdhGckAo;j!pDTtrmK1?gDo99;;xbH8B z7%4X)pm2hT0WvgcVUjeu6*W{+@?uU#2lL?NlyfFCl@Iwpf%FQ}RMyJ+gcx+tuYv~} zq+lnk74Zb_xGrTkewC$~@@Bsw>4q~&y1w38g4j6VUK|EV=`yy2ez21Le2{azTbXK6 zqz688=8T;e)9|HeBq(#f46HFbxTFGfZ=9rR6oU(V{i=9N;} z7uENhcDlJcEnGNHgM(CB2A;xNhjQl17qC;vnjk>SGa5qX!xPn3e8PQFBV2vc{jE^u zC%%ZrYf;_V@sq~HYv6E*fi74t`?&8BKU%pjSJR6i+#ZeyjdZQQD3F9+#%PY0=$nJ} zOTt%6Z?B`ual|#>1DBhTrQP1+8@*}CL#*N3>sh38l@kL*-;FXz_FQ+?@KB8Lrw1jj z^O?3y)RE|{W?u|MdYQO}8SHnrZRUIe94t zP8O9AEIX)36ea9e?&|GOHzh?!Cq;Hq5Wc22Yac{h3`qBPJjef7b6M6UDjCx8ZfXQg zt5&{${YU4cC-LQrhUqo#{zOR?(%r&wwL9l1DY&adB{I}6WnZ4x<0AoKT?5*z0*a8n zZ+8u^_S|ZG3PV=!tNhB@=YVk+M>C7yFQY%kCR?((1>k5RKBv|@Sl<)T(*5AUVuN>b zyckn(DL==)rA9kBohglm$ypgGcN2w+NBFgKX+j!uWS|%9%4oF;SgddA$l!O3X0qSI zU1{a|yVkvAZ@V?TJRQ%Zba0MS>gu2V5u}afEi3~%HIJXLs0u0QfKnoRKXUN=)q~2y z{Re;m`IlUPDzLlnR0M>MpEHb1HuP!H=JXxoq?&`LKf|pCY@1;<7a^08?>oBnIJZ?* zS%35N8LYX-ug|>}YJ_XkQ#rny?goLR-1oi2LhRp9Yw*=8uyh%_9jLC3=Pw*J2i5xq zE7KcInEpd45Axh;L@O}qD6ucpyBYOG@ox!Qlq(kvGkZ|M;P4P5aV+Vmp6;B#XDTeh zBdf_=;<+t6Z0&KW%LOg!pY04rXimOFy^FW8S@ zemz(IUYn$j$pQ*!rT^ZZ*!-oygai)9jcUnBfAAo_iF#J;qF`i(b^^h+V1Jx*%KGTl zr=#x9d1n|mqia3PF7}TLUL$*iq$=kXg-(9n6F-wE6v;@3bz4X959UkaqnkBB@#S3S z7OoSf6=d2CcBhss2Dm+u&KtO;&pZK9vZ8kX;R&Yv%ijMs3YUqJj|!s^DXwQWN-KX| zKbQv<<$Ty93_oqRx%oC{^JljYM%SE3O(q=?!=|2*9@S@0XZZRedd^W$O*xk?xwD=@ zcryHYG3p{BD)PKzL3eyiEncJUqN@>c#uG6D?+N`P-&2IQ^ra|2{ot3uyW^OV{ycrv z(hPmXS_T8r<-tJoo@KSvT?@sozyqDL8oqDmq`Nump@%&~UYcuEzW8CTP2$=ki_j-B zwl`jSvKBx1v0xx<;&rV5G2%=H$j}?_y0JMLMJrD;GmhwsY`Ct-Pyr6B%k@`bXY`7F zHZFR)Wf?~@4CO`o;BHjxsc<~=Q~g8V@!w#@H9s`pG%j#Bqvx&%<jBNI&y(iD zshUv7^!>D&lJa*(UOw0kenniHt6kN_XrqZ59n3i}ss5;nQJ8he*}(A}ciS-dRm_>D z%oHc|B~FW-IW3G5^8yl>OrFfq?FL7m@x7KOibLcDkdJ(+nbMBoPw&h251W&sNAd1< zf@D-8DTr&$ycW~Fyz{|c9%k$ zzk8P^hMij-vL;T}9fzdIW1oX?QAS0@^*LEi<=$yQkkf(6c@4*o1O(urzUOEq=ri-a zzWk!mZ1~%{Gr~77%%4`~9QUE)9oU9lcX7UtPX|PFtq!JTXCpo^4{$p6mZMtDy$1&H z{zeT)|29Ab@5DFi(93iPxgdB z@|%Y2LHZwn=ckUFvFgx~a&G#5;YV>3=MkhJKREP5-?wppC}Gk*bn{P6nB?>0)jGU$ zDQW!KoEPW zS~>Es-h78J`zmQSSKJhP!ZdtD5&|iINX6#u_{%@A!9T#*7bx?;6C(e^y8pwv|DR^v zw;~u{RPX<9@NVeY06^p}Q%sQDiSyYOhCs9`U2})h<-0>=-nDgM!}^KpmKAHql$7Gz z)4N%4(!gm&=^ug8kF@OVBF7tm+()N^j%`X_hbd1_90ArPICdl*+7STc`@38P?D0d) z@|#_u^t$4YyOl0nQ6&2;(rO2vpH6U0{z~b!B@hb#N~y{#GO`@Fzq}V%PBPta5ct^P ze|wF}7jEJIdvTS2y^aRxilzgPy46m{1%0f7)=Zfi54U1bF%!>RlHy|_XU+oMt#pfZ z|6d2cl$3g&z`I$F)GZkbPyrf$>l-|QY!45`O3DwA4mkmv5ujozH!q%8j`+VhyQ_A$<>rF^r zrW4ZEgdDpl9onLEGBg#fdf>gh>JFNjwKi!Re?ywZ8^F2PaMqHqOYdz}`%DnnH801Z z@8pjOjFU#{8nGS~O*2pTRA9c>)v&Q~>Gk@H=K_D@4!JvgVJY)UI}YzZvN`)5vhO8` zx29XWip1d`-qT7gSAW#K-@euCNO)?#5zHSKyFs44TPN<*BZ=4xCZCt{)Ntb~pm{dY z{@dV%ReGdnNRXI;SQT=hvzkl%5&xoKrY$yYcSpq2?JndWRW-@M2W>I#Nv+G(y^?Er zxC!*n*x1j~EYQ^Ne(|hjN&a{<=~HJrLfFG~SA-;A4-9UpRMm?Ts+gMC{nSf1S;)&o$~Y#GSOc6XPFS zIASfg8C7QJn1fT`Iy&Itd79v}0m3!;132Xkh1sd4g0_44VJP@lVm|BH5%};eqd8`4 z;K8F^9~f@pneCt}Gp1QLr+nrfYwHy-DvDU$`*s$2r$o?>y5&h@jB*=-qYm9Tztaqy zLKz6@od!+azlcJ-dAwGvp1xp&wsCKUq=dWB^Z|l>XBob$GTt6Y_q(JFf?mgCG4>`3 zS?xKoC91`a33-?S5R%>fd{l?Yw7L_A1QSl5onZqj1t!t#tVc%cohp{FbRoi?-b9K{ zUh@uwaM7VR=VJ_y7CSnLW8@kaNs%<1@^{c!lN9L@<(odAK0;}FNGNm8ZZIggWNlj8 z4Q9yERxVE0GMtF>nL2!S$fu$3d?Ym;KFoylH8#DO^J%?_11nnMab97q_7A=qeL`Aq zvLLPD(I$%ynIS%R+y{{yDdO!7bWy-KywEu-Lxh5b%ud; zHdKx3&q0Nb)}_T~jfruu!XT;aVFT#s6;;-)b-UKT5r}C zo0Dj94L|2%kH2VYFMK=EvN4;As_efvN2|B$>Xm$2v#n{b76iv*T*C&8)T0m=l4y~X zUKESHlQqi(rW*C;xwOlMp}qBYk>-47By z6G>t#DYY>VX(&!{0H>*Wvdd~$4xVA{aWph9Pih5Sy|2n@bnh0fc;pUVej5NEl=AY= z@U#lT@8qANVi0Q{^3+sk8?(L1R>#K62hH39(8oso*MAwY<+bHl&l)6owZ`n+JNq;o zYi`p~X$P_{voLp&uNF?&HW?MHhnb?m4L(r~C}rUdLOk#75yb3oM{4Bk@cg*X4@rWO z1^)cwaQ^GBZSC52{iu+(iO$Ftu+j41@#76 z0Oo6h^_Gx!ro`S>vv%0QCr4npX-(|Xq7DmPmS`XHT!L%LfIdz7TlV1W>O(jyU6+-l z$0{2lxx`q>Ry8aebqbm)t*)d-#7!Ipy^QgyXuRR28Cm5cTEbp6n*2;8&G&l?FGB|E zKdBN}eDlsGadPL9;n|?gL{-l3>d?X_23@Ucyvh&L2zY0OX>$Yk?{hU#+W-gFIaVDw zNJ4NNlea1T)dt{YL5aXoqF!UFBAO#7Tha1&Nce{=vC zYeoNk=Y?|Apr>p0J)*}*{0`5gjST96t zJwA*k;Ijjs;$4;`e)b?2e?&wKqb$H;mV}Bqxw!f$r|KH&dZgwin0Hh9X$e({?N^^S zVbgg<;mlNiXG>6j%*O?->w&VHoKPB~R7QJ-mhYkQCT!NY4jk{T9!mE&mN6%g8>eV- zsdnCEfrqe9Prxb%f!Vg1ro{O?yAByFrP#r`q*x=c)yS)9Xf|-FX#x#w#lef0fES(#)*(Or9@6mkri89ltb9 zSzr0m(lb>XpS+v~kFMKFdGG>xd~KUK^KHKf7$XIy=2@Af!`yj=5$ad!%Sy*^gV& zZF#n5$(gdZJ?8v^Yf9v(^{S4Y4*`lBZ+TEiF;f2?n*no?b%1WJk*A; z@CIvkg=FQ4!>lYIYp>GMcSb#F+p9a1?x|ZSL%2wcb+}a?R+a%~*YzUl6=?%y zYFYKM!7z7^`3X?ufkUptR*}A*1yStYp^Vh|b!4y6LT_gvF4m~lEt707i~UeHu5T>} zU!`hofdIl`U_!K<=ssK%9A;u_8j?ZYoYF4#0ipe_BaG-T-Sf!Y{CH&PsX6k(x1_1( zM0u#etV`&GiD9<3DYUmcQ<8u5k~1kMzv*1eBuaW-OPF9|DZcY4evwi)9@o4UD!Hqx z7-uDg|AAGALI+K3DQ<%=*52>J{aTK6h64{$mTTExY6ShN+d(XGivJu5*==q6ipZH{OTwarTyycx(i#p}486R**|OH1 z@Q`?|LcXkpg53}sLgxd{vW3FZpqGjCBK^H?gEgVusX8G8pS{_f_WN$~a>G1wS;=q% zHLA6c_32>+^;L{7vKjA^oV1wu5 zxs!evPIEDA06mABD@m_qRA3O3AIbUB+v7!^?FI606%{^CP)sV@4j;_#NOtb)n}$)B zQz6v+dH33twsyqGMccs{L~^Awu~nH$bjV8|$IAFE){AXxv{v7wrkGz2`d@eFo?NQ( zyD=*Bv#HIb%)uIi4dCFm?Zqk^wTIbL`H*X~}(>>piBXUNc(Wed0@umD#bXs&eO__=BP zwNM3gsEV(>4!lYKg-=DkK3OR#8vwRU0TN3u9Z*sH1&;p$cKo<|c^Dr0 zd8RmBbGy>Bt2)kkcn@=mfi0l723z`65SG3X$>(m~|IJvb>gO%oaLE2dX&ub>3mh=p za-zor0N9aJ;cvx~-cMZxN~de?Qkn`ME-6Gc#muFJIH`Na{RNniC@B=^oPTX$;$XpG ziQ=2UkrCc-W6Mtb`}=tO526UgSN?B1gZ$5Z<7K_5o}&_eKP&l`Rzr1$Mb?$4$1JA}35|nY@mExn;2rMA;X`Rhls+Ecg7Gr12NwR*a>D7b- z=^C(N{mfL?;sG~BFI2s#PBaAsJk`}_V}Zck8v-myvHR6OW%bc0oJvaw=1?rVMC$8Z zAFMTVOtmypL4;V(rP*Bw_U-1N={(z7EV;b4ML>(m&xVP^~EcUk`ROiHmy!NHZ z=l84IFo(v zTr$N1bsVY%2NrKYFb4$(A17u%>M}Jx?;T5>5D8W{r(f1y7P+C;grwc}fwFM5_0KJ3 zrq>2(rV!}k@-IrzWLeQg6k~t5nNc!OHaMk$qGbuAI!d(5 zYau*m;j|McNY1p)CQcGEXuA&t^_7Xr?4X}Y#!Jk_`7UC0{_;_1@KP4Ddt`f45q~NW zK0TG(=S|+iPqqsD{#oMztv8~Z*>4$q5^i5ZbhHq4D|PWNZ8)AYtGHhLu7Im?>M z+1%aGaE9H|fdD5er3Z&GrA_@F(JK0!{gT8pW452khzGyp8 ztgq*8e!jM$w4mo; zoU5e=Te3C=l{-PE*@gVqFjm!caxc=N3|t(>TDy&HZl8&iYEHRl7+pQI;>xZL2cDdmXc2oEYUm%s+gK{gWBMw zweyvR1(9M4J8`^>M^FgYaB>uqckPP3_~xhz&o}KBU)_ zQbT*cP;@aNy=GXX%0}WuZXsb5G+XC43#RJr?@yG-Vp*s{t*_pj(eKc~UNnuwj8 zh6&f&y0T(t)O=ZQiA&f&0f7Mk)$Ek1e*=)g$EbPf-q8eXl&mq6Kc6Pb&(U62!}0FZ zKKZt%%Q;0?|+_3ZXm^Oz=Ay7L_tTbQ8#SccI&FFYVwI zc-r|jenY%MjA*!#YJ(dbR?Cv94ZOVKS|7F(R_y^1uMeYQC2?v)@|Wo?do6kkG5DD! zd%F}%HqK@=hb%pu+&21yR0LZ#mig3xn*=`gsHI{X(|XAYGRORgX%9iX<#@fWdH_)4 z!nf|F5hO=mNB|55w1i`hY^mQI&pJe-I~NwI@fI8g61(UgN<$gy7b91U&?V!O+3q z`iDfLMtx*XjF-`?$j31YQ7ITBJ3R+M#Ag4l^Z|J4?K#?PaoyO}RI>odif_=vVOVdO z)2^Uamk4u4{&+H?J<$+8d6&qkJ6+i;!J7|2o892z6X+1>Jz=I}WJ6chs4^w1C?NNx zpv7ePP*ZR-rY)5MAw|+8ScQa@EjzN{v=4A4C2jDBq(j+#xz?U>06qVizDMbnF*|Py zRRZPyr$)*z+;Ifp=j+wr4>>_^*MjJaK^qca!CZmES4x{cz`CWud*IT-u5QCryiR)F zp8!rRSE1XkrlLDRlAD0Kdz}Dsw3j6LF<299+(31(-onjSYnK2sPW?hbt*k1x$a}4u zNPzV9@Z95oeFQV0Tc|N&ZC6*C53rrwRBho<2Jk{hmu)~ry0;wQ6E%bkbq0pP=<%El zpcDDu?A@Vs;czZprUXa_*0|TQ%5f%6C~7;=yEQZo`jj8*|$Huapcj zTo3qfPv_JB2Dhr0ZPrsEra-+0rWE6G{0WV3FO8kZ&nE(GW7+FCq`q`;>9`%5@=pK` zzN6@x@AQf!E>v)<((4C{{EEAFJp9){lhc4(TZdvD*_X3_KMMOAUfL6fa6SUe{vZ0kgDOL(ZZfO&3!0?P_(f zPrX_BSbBo+`sCa7mi1I!cKeRq0rKVcu40#zRZ0BG8=}wq$%?mCwJ6rFy=vL19-J)Q z8M1zWGFUB#&{`etXcyGcK8tCH_L0yA*U|U|@twhnv`dxs{u|>J=X@-}vmy497?GuO z%Dp)<$8K)C%{$BrmZb&oC?y7xbj7 zZFC!-xqAZ+Oe8e~Wsdfx!=36iWOYk9h-n^v9Et8_ZX`Q*uhC|!O(P#kFj zTyb|Nv?=?Lg75D93YcB#Y<(jPuYJfj!vrhpkU#f!cXuut0T+$z*VqHhe(es$SvMRn zC>u(C9Yh6d?F3bU2Y;~nai<`!3;;Q)nzH$zrgRHc&+1xHL?&3J#U&e4fCo}KkfAWMEmq63 zioHm^`VLms0^I52KLdKcb$q25$F1Y`-!13A7~Q{bEc*T5QxX6C_Z6^z`g>y7mu7kW z6T769^V@vn=4B^&t^ZUd-F=XNMl6lj)Y5mz^ns6f{d!so7yw}3+v1S?oz5tiy@#-V z?t{E5z@@4BeTq7HLGVYymrEke$9RA$DNRMM{uPizC3u}UjGO5jCJBU8Hf^O|6X%zH+MvH*nFykJMW>jN{&6h z8Q*dpvm~FShKULvhRI0|p1iWuu*C)B$V8C6k%D=W*>Cxr!y(~Ooc-nv(GK-Rj0*-Z z(UtO(xJb%m95@k%ex=-kMZO3j<4}prm5#7JaX%`!PJX)0`B2CUz<4j(q>l@}J53|fp_MnIOx zQeSgKSJJ#jOn{SoX60bx6xS!30@?-XYF=49IED^OwBLX~v>eW9sBa38&fbo;%)7MI zUNk!MQpFQ3RBxpNbBkMNx^fkx8?@O23)`TXo8Rm!+iwpeSA-(u!l-EFm4teJu`_{3x(Xg{tQ1&ef1{L zVt6@SJ$$jSH2ms%W+_5+!X4MtszbE**q+HPd;W4~Nm$@s+~&-|acs1cMhqs}*{+4H z*-~D}#T3rZV*M2u`uLvzYoI!z;b`)+jk9hQy{wmcbLByLef-`2{Y%;O{yCPmZ@>0L zHahFkxxb;W{Z}sZzaOk^Hb0R4(}ymp9go_#7QMPP>(9%tru&k8dGmIxYCB)MNKO8` zumsS^rAsq!Z>xQJ8JOz%%HG}z1)dIj=yg=`lZCdQjd>1an{M2GYvIJKf520|_Fw<< z{C=Qt@%x@+ZZS+_gyB8p5%lJGwNtW>uC0jOcv!1}BV+Gc1Vvv|Yn36P`%;nMQMp1keR zd*jxFJgZX;WbC?|xBob>oiGtp_*L9{@gn2xy}i*NSQ%a{j$0qTyZrsSix)4}ffm*& zUEh*>`&%`rNbf&+^5m_}>HfXFyPS>G literal 0 HcmV?d00001 diff --git a/examples/yew-bootstrap/index.html b/examples/yew-bootstrap/index.html new file mode 100644 index 00000000..7b57c568 --- /dev/null +++ b/examples/yew-bootstrap/index.html @@ -0,0 +1,9 @@ + + + + + + + Trunk | Yew | Bootstrap + + \ No newline at end of file diff --git a/examples/yew-bootstrap/src/components/appbar.rs b/examples/yew-bootstrap/src/components/appbar.rs new file mode 100644 index 00000000..d0478254 --- /dev/null +++ b/examples/yew-bootstrap/src/components/appbar.rs @@ -0,0 +1,12 @@ +use yew::prelude::*; + +#[function_component] +pub fn Appbar() -> Html { + html!( + + ) +} diff --git a/examples/yew-bootstrap/src/components/input.rs b/examples/yew-bootstrap/src/components/input.rs new file mode 100644 index 00000000..b9a688af --- /dev/null +++ b/examples/yew-bootstrap/src/components/input.rs @@ -0,0 +1,22 @@ +use yew::prelude::*; + +#[derive(Properties, PartialEq, Clone)] +pub struct InputProps { + pub label: AttrValue, + pub name: AttrValue, + pub field_type: AttrValue, +} + +#[function_component] +pub fn Input(props: &InputProps) -> Html { + html! { +
+ + +
+ } +} diff --git a/examples/yew-bootstrap/src/components/mod.rs b/examples/yew-bootstrap/src/components/mod.rs new file mode 100644 index 00000000..ef01b3a5 --- /dev/null +++ b/examples/yew-bootstrap/src/components/mod.rs @@ -0,0 +1,2 @@ +pub mod appbar; +pub mod input; diff --git a/examples/yew-bootstrap/src/main.rs b/examples/yew-bootstrap/src/main.rs new file mode 100644 index 00000000..10793eaf --- /dev/null +++ b/examples/yew-bootstrap/src/main.rs @@ -0,0 +1,32 @@ +use yew::prelude::*; + +mod components; +mod pages; + +#[function_component] +// the name of this function is passed to the renderer struct +fn AppRoot() -> Html { + html!( + <> + // appbar section + + + // Login section +
+
+
+
+
+ +
+
+
+
+
+ + ) +} + +fn main() { + yew::Renderer::::new().render(); +} diff --git a/examples/yew-bootstrap/src/pages/login.rs b/examples/yew-bootstrap/src/pages/login.rs new file mode 100644 index 00000000..570d4bdd --- /dev/null +++ b/examples/yew-bootstrap/src/pages/login.rs @@ -0,0 +1,13 @@ +use crate::components; +use yew::prelude::*; + +#[function_component] +pub fn Login() -> Html { + html! { +
+ + + + + } +} diff --git a/examples/yew-bootstrap/src/pages/mod.rs b/examples/yew-bootstrap/src/pages/mod.rs new file mode 100644 index 00000000..320cbbbc --- /dev/null +++ b/examples/yew-bootstrap/src/pages/mod.rs @@ -0,0 +1 @@ +pub mod login; From d87ffe2c93ec512cd46971b9b2fbf18921e84021 Mon Sep 17 00:00:00 2001 From: Bunny Bites Date: Tue, 31 Oct 2023 23:39:18 +0530 Subject: [PATCH 2/5] update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d63b8e0..9e5b65ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ This changelog follows the patterns described here: https://keepachangelog.com/e Subheadings to categorize changes are `added, changed, deprecated, removed, fixed, security`. +## Unreleased +### added +- Add bootstrap example for styling solution in examples/yew-bootstrap + ## Unreleased ### changed - Remove HTML glob in tailwind.config.js From 95faaa806e0a6f76aa7e0bf26e1f5eb899690276 Mon Sep 17 00:00:00 2001 From: Bunny Bites Date: Tue, 31 Oct 2023 23:57:06 +0530 Subject: [PATCH 3/5] add Trunk.toml --- examples/yew-bootstrap/Trunk.toml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 examples/yew-bootstrap/Trunk.toml diff --git a/examples/yew-bootstrap/Trunk.toml b/examples/yew-bootstrap/Trunk.toml new file mode 100644 index 00000000..842cc2f7 --- /dev/null +++ b/examples/yew-bootstrap/Trunk.toml @@ -0,0 +1,3 @@ +[build] +target = "index.html" +dist = "dist" From 908c3bcfa9d67601bd1f3715447f8da74a3c0e39 Mon Sep 17 00:00:00 2001 From: Bunny Bites Date: Tue, 31 Oct 2023 23:57:32 +0530 Subject: [PATCH 4/5] update Cargo.toml --- examples/yew-bootstrap/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/yew-bootstrap/Cargo.toml b/examples/yew-bootstrap/Cargo.toml index ab9a9e93..fcf66f42 100644 --- a/examples/yew-bootstrap/Cargo.toml +++ b/examples/yew-bootstrap/Cargo.toml @@ -1,9 +1,9 @@ [package] -name = "yew-demo" +name = "yew-bootstrap-example" version = "0.1.0" +authors = ["Bunny Bites "] edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] +wasm-bindgen = "0.2" yew = { git = "https://github.com/yewstack/yew/", features = ["csr"] } \ No newline at end of file From 016522c0f4244a3bf5035edd5c097a939d524779 Mon Sep 17 00:00:00 2001 From: Bunny Bites Date: Thu, 2 Nov 2023 11:28:59 +0530 Subject: [PATCH 5/5] 1. update example image and dependency --- examples/yew-bootstrap/Cargo.lock | 3 ++- .../yew-bootstrap/example-yew-bootstrap.png | Bin 26704 -> 18622 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/yew-bootstrap/Cargo.lock b/examples/yew-bootstrap/Cargo.lock index f2a52366..3802783a 100644 --- a/examples/yew-bootstrap/Cargo.lock +++ b/examples/yew-bootstrap/Cargo.lock @@ -1121,9 +1121,10 @@ dependencies = [ ] [[package]] -name = "yew-demo" +name = "yew-bootstrap-example" version = "0.1.0" dependencies = [ + "wasm-bindgen", "yew", ] diff --git a/examples/yew-bootstrap/example-yew-bootstrap.png b/examples/yew-bootstrap/example-yew-bootstrap.png index d1b48ff3fb2e54f0820eb125a6c7103c94aa87a5..dc287c906443fcba28bca259bdc08ab92778bf8f 100644 GIT binary patch literal 18622 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