From c0876c2ef3884e767cc9fe1835a9661612fdcad7 Mon Sep 17 00:00:00 2001
From: Akin Aguda
Date: Fri, 17 Jul 2026 11:13:49 -0500
Subject: [PATCH 1/3] When button now leaves view, it cancels animation
---
src/components/button/mod.rs | 176 ++++++++++++++++++++++++++++++-----
src/utils/render_loop.rs | 17 ++--
2 files changed, 160 insertions(+), 33 deletions(-)
diff --git a/src/components/button/mod.rs b/src/components/button/mod.rs
index d4e3d09..3f64b5e 100644
--- a/src/components/button/mod.rs
+++ b/src/components/button/mod.rs
@@ -15,6 +15,7 @@ use crate::{
components::button::button_backdrop::{
ButtonBackdropBuilder, ButtonBackdropCfg, ButtonBackdropInstance,
},
+ hooks::use_in_view::{use_in_view, ElementVisibilityData, InViewOptions},
icons::right_arrow::RightArrow,
utils::render_loop::RenderLoop,
};
@@ -104,21 +105,49 @@ enum AnimationDirection {
const TOTAL_ANIMATION_DURATION_MS: f64 = 500.0;
-// My animaiton loop should pass in a value to my render funciton that ping pongs between 0 and 1 depending on the direction
+type RenderLoopPtr = Rc>;
+
+/// Public handles to a running loop. These live *beside* the RenderLoop, not inside it, so
+/// calling one only borrows the loop's RefCell fresh — nothing else is holding it at the time.
+/// (Putting these on RenderLoop itself deadlocks: reaching the field needs a borrow, and the
+/// handle then wants borrow_mut on the same cell.)
+struct AnimationControls {
+ wake: Box,
+ sleep: Box,
+ // Tears the loop down when the component drops this (via the StoredValue). Replaces
+ // on_cleanup, whose Send + Sync bound an Rc/RefCell can't satisfy.
+ _handle: LoopHandle,
+}
+
+/// Owns the loop and cancels + frees it on drop.
+struct LoopHandle(RenderLoopPtr);
+
+impl Drop for LoopHandle {
+ fn drop(&mut self) {
+ let mut render_loop = self.0.borrow_mut();
+ render_loop.cancel();
+ // Drop the Closure so its captured Rc> clone is released — otherwise
+ // the RenderLoop <-> Closure cycle keeps the loop alive forever.
+ render_loop.closure = None;
+ }
+}
+
+// Animaiton loop should pass in a value to render funciton that ping pongs between 0 and 1 depending on the direction
// of the animation. Frowards goes from 0 -> 1 and backwards goes from 1 -> 0. The idea is that its basically just playing a
// predefined animation but giving us a normalised time value between 0 and 1
-fn start_animaiton_loop(backdrop: ButtonBackdropInstance, direction: Rc>) {
- let render_loop: Rc> = Rc::new(RefCell::new(RenderLoop::default()));
- let window = web_sys::window().unwrap();
- let time = Cell::new(Date::now());
+fn create_render_loop(
+ backdrop: ButtonBackdropInstance,
+ direction: Rc>,
+) -> AnimationControls {
+ let render_loop: RenderLoopPtr = Rc::new(RefCell::new(RenderLoop::default()));
let timing = bezier(0.42, 0.0, 0.58, 1.0).unwrap();
+ let time: Rc> = Rc::new(Cell::new(Date::now()));
+ let progression: Rc> = Rc::new(Cell::new(0.0));
+ let running: Rc> = Rc::new(Cell::new(false));
- let progression = Cell::new(0.0);
-
- let closure: Closure = {
- let window = web_sys::window().unwrap();
- let render_loop = render_loop.clone();
- Closure::wrap(Box::new(move |_| {
+ let render_fn: Rc = {
+ let (progression, time, direction) = (progression.clone(), time.clone(), direction.clone());
+ Rc::new(move || {
let now = Date::now();
let dt = now - time.get();
let multiplier = match direction.get() {
@@ -128,16 +157,23 @@ fn start_animaiton_loop(backdrop: ButtonBackdropInstance, direction: Rc = {
+ let window = web_sys::window().unwrap();
+ let (render_loop, render_fn) = (render_loop.clone(), render_fn.clone());
+
+ Closure::wrap(Box::new(move |_| {
+ render_fn();
let mut render_loop = render_loop.borrow_mut();
render_loop.animation_id = render_loop.closure.as_ref().map(|closure| {
@@ -148,15 +184,69 @@ fn start_animaiton_loop(backdrop: ButtonBackdropInstance, direction: Rc = {
+ let window = web_sys::window().unwrap();
+ let (render_loop, progression, time, running) = (
+ render_loop.clone(),
+ progression.clone(),
+ time.clone(),
+ running.clone(),
+ );
+
+ Box::new(move || {
+ // Guard first: a redundant wake must not reset progression mid-animation or start a
+ // parallel rAF chain (which would run the animation at double speed).
+ if running.replace(true) {
+ return;
+ }
+
+ // Fresh start from 0; reset the clock so the first frame doesn't see a stale dt.
+ progression.set(0.0);
+ time.set(Date::now());
+
+ let mut render_loop_borrow = render_loop.borrow_mut();
+ if let Some(closure) = &render_loop_borrow.closure {
+ render_loop_borrow.animation_id = Some(
+ window
+ .request_animation_frame(closure.as_ref().unchecked_ref())
+ .expect("cannot set animation frame"),
+ );
+ }
+ })
+ };
+
+ let sleep: Box = {
+ let (render_loop, progression, time, direction, running, render_fn) = (
+ render_loop.clone(),
+ progression.clone(),
+ time.clone(),
+ direction.clone(),
+ running.clone(),
+ render_fn.clone(),
+ );
+
+ Box::new(move || {
+ running.set(false);
+ progression.set(0.0);
+ time.set(Date::now());
+ direction.set(AnimationDirection::Backwards);
+
+ // Paint the resting frame once so the canvas isn't left mid-animation / blank.
+ render_fn();
+
+ render_loop.borrow().cancel();
+ })
+ };
- render_loop.closure = Some(closure)
+ // No on_cleanup: teardown rides on LoopHandle's Drop, which runs when the StoredValue holding
+ // these controls is disposed on unmount (or replaced if this effect re-runs).
+ AnimationControls {
+ wake,
+ sleep,
+ _handle: LoopHandle(render_loop),
+ }
}
#[component]
@@ -172,6 +262,10 @@ pub fn Button(
let button_ref: NodeRef = NodeRef::new();
let link_ref: NodeRef = NodeRef::new();
+ // StoredValue is Copy, so the effects below capture it directly — no Rc>>
+ // to clone around. new_local because the boxed closures aren't Send/Sync.
+ let controls = StoredValue::new_local(None::);
+
let class = ButtonVariants { size, color }.with_class(class);
let icon_el = match icon {
@@ -200,6 +294,16 @@ pub fn Button(
let use_as_clone = use_as.clone();
+ let ElementVisibilityData {
+ in_view: canvas_in_view,
+ } = use_in_view(
+ canvas_ref,
+ Some(InViewOptions {
+ trigger_once: Some(false),
+ ..Default::default()
+ }),
+ );
+
// TODO - This should respond to resizing. We might also benefit from making the backdrop
// struct also get it's extension from here
@@ -229,12 +333,23 @@ pub fn Button(
}
});
+ // Build the loop once canvas + backdrop builder are ready, apply the current visibility state
+ // immediately (untracked, so this effect stays keyed to canvas/builder only), then store it.
+ // The wake guard makes the initial wake safe even if the visibility effect also fires true.
Effect::new(move || {
if let Some(canvas) = canvas_ref.get() {
if let Some(backdrop_builder) = maybe_backdrop_builder.get() {
let backdrop =
backdrop_builder.create_backdrop(canvas, ButtonBackdropCfg { color });
- start_animaiton_loop(backdrop, animation_direction.clone());
+ let ctrls = create_render_loop(backdrop, animation_direction.clone());
+
+ if canvas_in_view.get_untracked() {
+ (ctrls.wake)();
+ } else {
+ (ctrls.sleep)();
+ }
+
+ controls.set_value(Some(ctrls));
}
}
});
@@ -247,6 +362,21 @@ pub fn Button(
}
});
+ // Drive wake/sleep off visibility. Read the signal FIRST and unconditionally, or the effect
+ // registers no dependency on its early-exit run and never fires again.
+ Effect::new(move || {
+ let in_view = canvas_in_view.get();
+ controls.with_value(|c| {
+ if let Some(c) = c {
+ if in_view {
+ (c.wake)();
+ } else {
+ (c.sleep)();
+ }
+ }
+ });
+ });
+
match use_as {
ButtonUsecase::Button { on_click } => Either::Left(view! {
, closure: Option>) -> RenderLoop {
- RenderLoop {
- animation_id,
- closure,
- }
- }
-}
-
-impl Drop for RenderLoop {
- fn drop(&mut self) {
+ pub fn cancel(&self) {
if let Some(animation_id) = self.animation_id {
let window =
web_sys::window().expect("Failed to get window when cleaning up animation loop");
@@ -27,3 +18,9 @@ impl Drop for RenderLoop {
}
}
}
+
+impl Drop for RenderLoop {
+ fn drop(&mut self) {
+ self.cancel();
+ }
+}
From b7112d359074460aa3833cd5b7f28e53fd58e3c7 Mon Sep 17 00:00:00 2001
From: Akin Aguda
Date: Fri, 17 Jul 2026 13:39:11 -0500
Subject: [PATCH 2/3] removed RAF hack in button to fix incorrect dimesnsions
calculations
---
src/components/articles_section/articles/article_card.rs | 4 ++--
src/components/button/mod.rs | 8 ++------
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/components/articles_section/articles/article_card.rs b/src/components/articles_section/articles/article_card.rs
index 4803410..8965809 100644
--- a/src/components/articles_section/articles/article_card.rs
+++ b/src/components/articles_section/articles/article_card.rs
@@ -15,10 +15,10 @@ pub fn ArticleCard(
#[prop(default = "")] class: &'static str,
#[prop(default = 0)] index: usize,
) -> impl IntoView {
- let date = RwSignal::new(None);
+ let (date, set_date) = signal(None);
Effect::new(move || {
- date.set(Some(parse_iso_js(&article.date.to_rfc3339())));
+ set_date(Some(parse_iso_js(&article.date.to_rfc3339())));
});
view! {
diff --git a/src/components/button/mod.rs b/src/components/button/mod.rs
index 3f64b5e..ce93a22 100644
--- a/src/components/button/mod.rs
+++ b/src/components/button/mod.rs
@@ -318,16 +318,12 @@ pub fn Button(
match &use_as_clone {
ButtonUsecase::Button { .. } => {
if let Some(el) = button_ref.get() {
- request_animation_frame(move || {
- set_extension_dimension(Some(el.client_height()));
- });
+ set_extension_dimension(Some(el.client_height()));
}
}
ButtonUsecase::Link { .. } => {
if let Some(el) = link_ref.get() {
- request_animation_frame(move || {
- set_extension_dimension(Some(el.client_height()));
- });
+ set_extension_dimension(Some(el.client_height()));
}
}
}
From 76606328a79b02a0183dd48f9c4f4d84a2967874 Mon Sep 17 00:00:00 2001
From: Akin Aguda
Date: Fri, 17 Jul 2026 14:11:42 -0500
Subject: [PATCH 3/3] updated leptos version that partially fixes issues with
link button variant
---
Cargo.lock | 415 ++++++++++++++++++------------
Cargo.toml | 15 +-
src/components/button/mod.rs | 4 +-
src/components/join_dialog/mod.rs | 20 +-
4 files changed, 265 insertions(+), 189 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index b5d8a93..d2c43d6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -44,9 +44,9 @@ dependencies = [
[[package]]
name = "actix-http"
-version = "3.11.2"
+version = "3.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7926860314cbe2fb5d1f13731e387ab43bd32bca224e82e6e2db85de0a3dba49"
+checksum = "48e2faa3e7418ed780cca54829d32782a4008a077230f67457caa063415e99c2"
dependencies = [
"actix-codec",
"actix-rt",
@@ -72,7 +72,7 @@ dependencies = [
"mime",
"percent-encoding",
"pin-project-lite",
- "rand",
+ "rand 0.10.2",
"sha1",
"smallvec",
"tokio",
@@ -93,9 +93,9 @@ dependencies = [
[[package]]
name = "actix-router"
-version = "0.5.3"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
+checksum = "14f8c75c51892f18d9c46150c5ac7beb81c95f78c8b83a634d49f4ca32551fe7"
dependencies = [
"bytestring",
"cfg-if",
@@ -155,9 +155,9 @@ dependencies = [
[[package]]
name = "actix-web"
-version = "4.11.0"
+version = "4.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea"
+checksum = "df09e2d9239703dd64056359c920c7f3fba6535ec61a0059e0f44e095ffe02b4"
dependencies = [
"actix-codec",
"actix-http",
@@ -190,7 +190,7 @@ dependencies = [
"serde_json",
"serde_urlencoded",
"smallvec",
- "socket2 0.5.10",
+ "socket2 0.6.1",
"time",
"tracing",
"url",
@@ -370,6 +370,15 @@ dependencies = [
"generic-array",
]
+[[package]]
+name = "block-buffer"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
+dependencies = [
+ "hybrid-array",
+]
+
[[package]]
name = "brotli"
version = "8.0.1"
@@ -399,9 +408,9 @@ checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
[[package]]
name = "bytes"
-version = "1.10.1"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
+checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
[[package]]
name = "bytestring"
@@ -414,9 +423,9 @@ dependencies = [
[[package]]
name = "camino"
-version = "1.1.10"
+version = "1.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab"
+checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0"
[[package]]
name = "cc"
@@ -435,6 +444,17 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+[[package]]
+name = "chacha20"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
+dependencies = [
+ "cfg-if",
+ "cpufeatures 0.3.0",
+ "rand_core 0.10.1",
+]
+
[[package]]
name = "chrono"
version = "0.4.42"
@@ -451,9 +471,9 @@ dependencies = [
[[package]]
name = "codee"
-version = "0.3.0"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f18d705321923b1a9358e3fc3c57c3b50171196827fc7f5f10b053242aca627"
+checksum = "a9dbbdc4b4d349732bc6690de10a9de952bd39ba6a065c586e26600b6b0b91f5"
dependencies = [
"serde",
"serde_json",
@@ -498,11 +518,17 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "const-oid"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c"
+
[[package]]
name = "const-str"
-version = "0.6.4"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49"
+checksum = "18f12cc9948ed9604230cdddc7c86e270f9401ccbe3c2e98a4378c5e7632212f"
[[package]]
name = "const_format"
@@ -541,13 +567,22 @@ dependencies = [
[[package]]
name = "convert_case"
-version = "0.8.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f"
+checksum = "affbf0190ed2caf063e3def54ff444b449371d55c58e513a95ab98eca50adb49"
dependencies = [
"unicode-segmentation",
]
+[[package]]
+name = "convert_case_extras"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589c70f0faf8aa9d17787557d5eae854d7755cac50f5c3d12c81d3d57661cebb"
+dependencies = [
+ "convert_case 0.11.0",
+]
+
[[package]]
name = "cookie"
version = "0.16.2"
@@ -585,6 +620,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "cpufeatures"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "crc32fast"
version = "1.4.2"
@@ -610,6 +654,15 @@ dependencies = [
"typenum",
]
+[[package]]
+name = "crypto-common"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
+dependencies = [
+ "hybrid-array",
+]
+
[[package]]
name = "darling"
version = "0.20.11"
@@ -645,20 +698,6 @@ dependencies = [
"syn",
]
-[[package]]
-name = "dashmap"
-version = "6.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
- "hashbrown 0.14.5",
- "lock_api",
- "once_cell",
- "parking_lot_core",
-]
-
[[package]]
name = "default-struct-builder"
version = "0.5.1"
@@ -718,8 +757,19 @@ version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
- "block-buffer",
- "crypto-common",
+ "block-buffer 0.10.4",
+ "crypto-common 0.1.6",
+]
+
+[[package]]
+name = "digest"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2"
+dependencies = [
+ "block-buffer 0.12.1",
+ "const-oid",
+ "crypto-common 0.2.2",
]
[[package]]
@@ -747,9 +797,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]]
name = "either_of"
-version = "0.1.6"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216d23e0ec69759a17f05e1c553f3a6870e5ec73420fbb07807a6f34d5d1d5a4"
+checksum = "5060e0a4cbf26a87550792688ade88e6b8aec9208613631a7a363bda7bc2d4cd"
dependencies = [
"paste",
"pin-project-lite",
@@ -815,9 +865,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "foldhash"
-version = "0.1.5"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
name = "form_urlencoded"
@@ -935,10 +985,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
dependencies = [
"cfg-if",
- "js-sys",
"libc",
- "r-efi",
+ "r-efi 5.2.0",
"wasi 0.14.2+wasi-0.2.4",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "r-efi 6.0.0",
+ "rand_core 0.10.1",
"wasm-bindgen",
]
@@ -952,7 +1014,7 @@ dependencies = [
"futures-core",
"futures-sink",
"gloo-utils",
- "http 1.3.1",
+ "http 1.4.2",
"js-sys",
"pin-project",
"serde",
@@ -965,9 +1027,9 @@ dependencies = [
[[package]]
name = "gloo-timers"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
+checksum = "482ce8a491a501da4cd806bd190275363d674f2845005c6ddbd5d3e1dd54495d"
dependencies = [
"futures-channel",
"futures-core",
@@ -1015,15 +1077,9 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.14.5"
+version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-
-[[package]]
-name = "hashbrown"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
[[package]]
name = "hermit-abi"
@@ -1053,12 +1109,11 @@ dependencies = [
[[package]]
name = "http"
-version = "1.3.1"
+version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
+checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
dependencies = [
"bytes",
- "fnv",
"itoa",
]
@@ -1080,15 +1135,23 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+[[package]]
+name = "hybrid-array"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "818356c5132c1fede50f837ca96afbe78ff42413047f4abb886217845e1b6c8c"
+dependencies = [
+ "typenum",
+]
+
[[package]]
name = "hydration_context"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8714ae4adeaa846d838f380fbd72f049197de629948f91bf045329e0cf0a283"
+checksum = "7bbbeb23ee808258cef2c5585ff0dc8e41da21a8dde943f6b290da153a042a96"
dependencies = [
"futures",
"js-sys",
- "once_cell",
"or_poisoned",
"pin-project-lite",
"serde",
@@ -1235,18 +1298,18 @@ dependencies = [
[[package]]
name = "impl-more"
-version = "0.1.9"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2"
+checksum = "35a84fd5aa25fae5c0f4a33d9cac2ca017fc622cbd089be2229993514990f870"
[[package]]
name = "indexmap"
-version = "2.12.0"
+version = "2.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
dependencies = [
"equivalent",
- "hashbrown 0.16.0",
+ "hashbrown",
]
[[package]]
@@ -1285,17 +1348,18 @@ version = "0.1.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
dependencies = [
- "getrandom",
+ "getrandom 0.3.3",
"libc",
]
[[package]]
name = "js-sys"
-version = "0.3.82"
+version = "0.3.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
+checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
dependencies = [
- "once_cell",
+ "cfg-if",
+ "futures-util",
"wasm-bindgen",
]
@@ -1313,16 +1377,16 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "leptos"
-version = "0.8.12"
+version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b78b04cc52d6f6372e546afcd8ed98ee29ea1a9221b19befb8f9961e47b8307c"
+checksum = "705e2951f3688e0c4f66bbb7a2702282782dcee716971dbd6209c2619d272479"
dependencies = [
"any_spawner",
"base64",
"cfg-if",
"either_of",
"futures",
- "getrandom",
+ "getrandom 0.4.3",
"hydration_context",
"leptos_config",
"leptos_dom",
@@ -1332,7 +1396,7 @@ dependencies = [
"oco_ref",
"or_poisoned",
"paste",
- "rand",
+ "rand 0.9.1",
"reactive_graph",
"rustc-hash",
"rustc_version",
@@ -1355,9 +1419,9 @@ dependencies = [
[[package]]
name = "leptos-use"
-version = "0.16.3"
+version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce2162c453100c7d6bc0b6f188ef1df582e35c2458caf6cb69fcddc87619c0db"
+checksum = "cc07f2657dcc366ef2d80045354143f6e0a86919763a1a5753cd3871f8f95e2d"
dependencies = [
"cfg-if",
"chrono",
@@ -1380,15 +1444,14 @@ dependencies = [
[[package]]
name = "leptos_actix"
-version = "0.8.6"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a3b5cf3f0414192d37f9f5afa389afcec5b5e1636fade8be55d4f46cd95471"
+checksum = "b96f0a4ae68aa117ec532cb7cc6da1005beb7f90f0cc8cc3938ecda0b4bec257"
dependencies = [
"actix-files",
"actix-http",
"actix-web",
"any_spawner",
- "dashmap",
"futures",
"hydration_context",
"leptos",
@@ -1396,7 +1459,7 @@ dependencies = [
"leptos_macro",
"leptos_meta",
"leptos_router",
- "parking_lot",
+ "or_poisoned",
"send_wrapper",
"serde_json",
"server_fn",
@@ -1406,9 +1469,9 @@ dependencies = [
[[package]]
name = "leptos_config"
-version = "0.8.7"
+version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "240b4cb96284256a44872563cf029f24d6fe14bc341dcf0f4164e077cb5a1471"
+checksum = "0c06f751315bccc0d193fab302ac01d25bcfcd97474d4676440e7e3250dc3fc3"
dependencies = [
"config",
"regex",
@@ -1419,9 +1482,9 @@ dependencies = [
[[package]]
name = "leptos_dom"
-version = "0.8.7"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78f4330c88694c5575e0bfe4eecf81b045d14e76a4f8b00d5fd2a63f8779f895"
+checksum = "35742e9ed8f8aaf9e549b454c68a7ac0992536e06856365639b111f72ab07884"
dependencies = [
"js-sys",
"or_poisoned",
@@ -1434,14 +1497,14 @@ dependencies = [
[[package]]
name = "leptos_hot_reload"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d61ec3e1ff8aaee8c5151688550c0363f85bc37845450764c31ff7584a33f38"
+checksum = "9d2a0f220c8a5ef3c51199dfb9cdd702bc0eb80d52fbe70c7890adfaaae8a4b1"
dependencies = [
"anyhow",
"camino",
"indexmap",
- "parking_lot",
+ "or_poisoned",
"proc-macro2",
"quote",
"rstml",
@@ -1452,9 +1515,9 @@ dependencies = [
[[package]]
name = "leptos_integration_utils"
-version = "0.8.6"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b530341b8fa93a33b590efe4d235ea109a1fd08b7676b503e9aa3d35f575edfb"
+checksum = "c097f89cd9aa606297672f56fa5bdda09f01609a9f4eefaccdbb5ab5afea4279"
dependencies = [
"futures",
"hydration_context",
@@ -1467,13 +1530,14 @@ dependencies = [
[[package]]
name = "leptos_macro"
-version = "0.8.11"
+version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2009e2cc8ac3aa3e417c51d2a2b951c34dfea51f25935717b564c347fb20cb3f"
+checksum = "96de6e8da9d4f1a7b74b447b317d590ebabb38709f588f7ee20564b773ccbcce"
dependencies = [
"attribute-derive",
"cfg-if",
- "convert_case 0.8.0",
+ "convert_case 0.11.0",
+ "convert_case_extras",
"html-escape",
"itertools",
"leptos_hot_reload",
@@ -1490,9 +1554,9 @@ dependencies = [
[[package]]
name = "leptos_meta"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d489e38d3f541e9e43ecc2e3a815527840345a2afca629b3e23fcc1dd254578"
+checksum = "6c3efe657b4c55ed2e078922786ffe20acfb71767c3dd913767b09a35c75c890"
dependencies = [
"futures",
"indexmap",
@@ -1505,9 +1569,9 @@ dependencies = [
[[package]]
name = "leptos_router"
-version = "0.8.9"
+version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21f482679fc1856ca368560fe7d827d7a34b5bbaa12c8b7c4daf1c02eaf8f09a"
+checksum = "253962f9371a2fcf432eff991efc6da58de383c1cbcc332aaff7b8b22f6d778e"
dependencies = [
"any_spawner",
"either_of",
@@ -1542,9 +1606,9 @@ dependencies = [
[[package]]
name = "leptos_server"
-version = "0.8.5"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38acbf32649a4b127c8d4ccaed8fb388e19a746430a0ea8f8160e51e28c36e2d"
+checksum = "da974775c5ccbb6bd64be7f53f75e8321542e28f21563a416574dbe4d5447eae"
dependencies = [
"any_spawner",
"base64",
@@ -1566,12 +1630,6 @@ version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
-[[package]]
-name = "linear-map"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
-
[[package]]
name = "litemap"
version = "0.8.0"
@@ -1956,6 +2014,12 @@ version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
+[[package]]
+name = "r-efi"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
+
[[package]]
name = "rand"
version = "0.9.1"
@@ -1963,7 +2027,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
dependencies = [
"rand_chacha",
- "rand_core",
+ "rand_core 0.9.3",
+]
+
+[[package]]
+name = "rand"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
+dependencies = [
+ "chacha20",
+ "getrandom 0.4.3",
+ "rand_core 0.10.1",
]
[[package]]
@@ -1973,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
- "rand_core",
+ "rand_core 0.9.3",
]
[[package]]
@@ -1982,14 +2057,20 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [
- "getrandom",
+ "getrandom 0.3.3",
]
+[[package]]
+name = "rand_core"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
+
[[package]]
name = "reactive_graph"
-version = "0.2.9"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77cbe7c61b939523104883fd00d431f6c681c7005fd350f01a9ff2fc96509399"
+checksum = "00c5a025366836190c7030e883cc2bcd9e384ff555336e3c7954741ca411b177"
dependencies = [
"any_spawner",
"async-lock",
@@ -1998,6 +2079,7 @@ dependencies = [
"hydration_context",
"indexmap",
"or_poisoned",
+ "paste",
"pin-project-lite",
"rustc-hash",
"rustc_version",
@@ -2010,12 +2092,12 @@ dependencies = [
[[package]]
name = "reactive_stores"
-version = "0.3.0"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25b73d94139821e0a2f31fb4e0eaf6ebbcf4d15c5e2fb353dc3babd4f6d35674"
+checksum = "c30fd35b7d299c591293bb69fed47a703eb2703b1cff0493e78b16ed007e5382"
dependencies = [
- "dashmap",
"guardian",
+ "indexmap",
"itertools",
"or_poisoned",
"paste",
@@ -2027,11 +2109,11 @@ dependencies = [
[[package]]
name = "reactive_stores_macro"
-version = "0.2.6"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fa40919eb2975100283b2a70e68eafce1e8bcf81f0622ff168e4c2b3f8d46bb"
+checksum = "68072edd607edd30b9ebf57d984ba45d8ab8809e598d0f6046278373fb76a5a0"
dependencies = [
- "convert_case 0.8.0",
+ "convert_case 0.11.0",
"proc-macro-error2",
"proc-macro2",
"quote",
@@ -2049,9 +2131,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.11.1"
+version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
dependencies = [
"aho-corasick",
"memchr",
@@ -2061,9 +2143,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.9"
+version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad"
dependencies = [
"aho-corasick",
"memchr",
@@ -2078,9 +2160,9 @@ checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
[[package]]
name = "regex-syntax"
-version = "0.8.5"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]]
name = "rstml"
@@ -2106,7 +2188,7 @@ dependencies = [
"chrono",
"console_error_panic_hook",
"futures",
- "http 1.3.1",
+ "http 1.4.2",
"leptos",
"leptos-use",
"leptos_actix",
@@ -2264,9 +2346,9 @@ dependencies = [
[[package]]
name = "server_fn"
-version = "0.8.8"
+version = "0.8.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc30228718f62d80a376964baf990edbcb5e97688fdc71183a8ef3d44cb6c89"
+checksum = "be8559dd05af1b5b7e363a150616589d5a88af5187273f7f331ba0dae8922812"
dependencies = [
"actix-web",
"actix-ws",
@@ -2274,12 +2356,12 @@ dependencies = [
"bytes",
"const-str",
"const_format",
- "dashmap",
"futures",
"gloo-net",
- "http 1.3.1",
+ "http 1.4.2",
"inventory",
"js-sys",
+ "or_poisoned",
"pin-project-lite",
"rustc_version",
"rustversion",
@@ -2300,12 +2382,12 @@ dependencies = [
[[package]]
name = "server_fn_macro"
-version = "0.8.8"
+version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "950b8cfc9ff5f39ca879c5a7c5e640de2695a199e18e424c3289d0964cabe642"
+checksum = "1295b54815397d30d986b63f93cfd515fa86d5e528e0bb589ce9d530502f9e0f"
dependencies = [
"const_format",
- "convert_case 0.8.0",
+ "convert_case 0.11.0",
"proc-macro2",
"quote",
"rustc_version",
@@ -2325,13 +2407,13 @@ dependencies = [
[[package]]
name = "sha1"
-version = "0.10.6"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214"
dependencies = [
"cfg-if",
- "cpufeatures",
- "digest",
+ "cpufeatures 0.3.0",
+ "digest 0.11.3",
]
[[package]]
@@ -2341,8 +2423,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [
"cfg-if",
- "cpufeatures",
- "digest",
+ "cpufeatures 0.2.17",
+ "digest 0.10.7",
]
[[package]]
@@ -2383,9 +2465,9 @@ dependencies = [
[[package]]
name = "slotmap"
-version = "1.0.7"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038"
dependencies = [
"version_check",
]
@@ -2499,9 +2581,9 @@ dependencies = [
[[package]]
name = "tachys"
-version = "0.2.10"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f88be37609c1891b748ed1feb9b08b0e772156a80d586b38726253f80859134d"
+checksum = "a92ba81187437cc5df4281f2326a2e13cc81e8f96448292d1112388e2025ca66"
dependencies = [
"any_spawner",
"async-trait",
@@ -2514,11 +2596,9 @@ dependencies = [
"indexmap",
"itertools",
"js-sys",
- "linear-map",
"next_tuple",
"oco_ref",
"or_poisoned",
- "parking_lot",
"paste",
"reactive_graph",
"reactive_stores",
@@ -2645,9 +2725,9 @@ dependencies = [
[[package]]
name = "tokio"
-version = "1.48.0"
+version = "1.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
+checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d"
dependencies = [
"bytes",
"libc",
@@ -2778,18 +2858,18 @@ dependencies = [
[[package]]
name = "typed-builder"
-version = "0.21.2"
+version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fef81aec2ca29576f9f6ae8755108640d0a86dd3161b2e8bca6cfa554e98f77d"
+checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda"
dependencies = [
"typed-builder-macro",
]
[[package]]
name = "typed-builder-macro"
-version = "0.21.2"
+version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ecb9ecf7799210407c14a8cfdfe0173365780968dc57973ed082211958e0b18"
+checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26"
dependencies = [
"proc-macro2",
"quote",
@@ -2798,9 +2878,9 @@ dependencies = [
[[package]]
name = "typenum"
-version = "1.18.0"
+version = "1.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
[[package]]
name = "unic-langid"
@@ -2869,11 +2949,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "uuid"
-version = "1.18.1"
+version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
+checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239"
dependencies = [
- "getrandom",
+ "getrandom 0.4.3",
"js-sys",
"wasm-bindgen",
]
@@ -2917,9 +2997,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
-version = "0.2.105"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
+checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
dependencies = [
"cfg-if",
"once_cell",
@@ -2930,22 +3010,19 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.55"
+version = "0.4.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0"
+checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d"
dependencies = [
- "cfg-if",
"js-sys",
- "once_cell",
"wasm-bindgen",
- "web-sys",
]
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.105"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
+checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -2953,9 +3030,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.105"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
+checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -2966,18 +3043,18 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.105"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
+checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
dependencies = [
"unicode-ident",
]
[[package]]
name = "wasm-streams"
-version = "0.4.2"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
+checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"
dependencies = [
"futures-util",
"js-sys",
@@ -2988,9 +3065,9 @@ dependencies = [
[[package]]
name = "wasm_split_helpers"
-version = "0.2.0"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a114b3073258dd5de3d812cdd048cca6842342755e828a14dbf15f843f2d1b84"
+checksum = "ab578aae2fe2916edaea06843187d50f87b0965622da0ceef648edca27b385ba"
dependencies = [
"async-once-cell",
"wasm_split_macros",
@@ -2998,9 +3075,9 @@ dependencies = [
[[package]]
name = "wasm_split_macros"
-version = "0.2.0"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56481f8ed1a9f9ae97ea7b08a5e2b12e8adf9a7818a6ba952b918e09c7be8bf0"
+checksum = "3e653af7ee4a9ef0fce481a9ec6f43cb78de20d0cdb4f4f5862e1dc6e407e6c8"
dependencies = [
"base16",
"quote",
@@ -3010,9 +3087,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.82"
+version = "0.3.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1"
+checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141"
dependencies = [
"js-sys",
"wasm-bindgen",
diff --git a/Cargo.toml b/Cargo.toml
index 5f3e284..df52a69 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,18 +11,18 @@ actix-files = { version = "0.6.8", optional = true }
actix-web = { version = "4", optional = true, features = ["macros"] }
console_error_panic_hook = "0.1"
http = { version = "1.3.1", optional = true }
-leptos = { version = "0.8.12", features = ["nightly"] }
-leptos_meta = { version = "0.8.5" }
-leptos_actix = { version = "0.8.6", optional = true }
-leptos_router = { version = "0.8.9", features = ["nightly"] }
-wasm-bindgen = "=0.2.105"
+leptos = { version = "0.8.20", features = ["nightly"] }
+leptos_meta = { version = "0.8.6" }
+leptos_actix = { version = "0.8.7", optional = true }
+leptos_router = { version = "0.8.14", features = ["nightly"] }
+wasm-bindgen = "=0.2.126"
tailwind_fuse = { version = "0.3.1", features = ["variant"] }
futures = "0.3.31"
stylance = "0.7.1"
serde = "1.0.228"
serde_json = "1.0"
chrono = {version = "0.4.42", features = ["serde"]}
-leptos-use = "0.16.3"
+leptos-use = "0.19.0"
simple-bezier-easing = "0.1.1"
[dependencies.web-sys]
@@ -136,6 +136,3 @@ scss_prelude = '''
@use "sass:math";
@use "sass:list";
'''
-
-
-
diff --git a/src/components/button/mod.rs b/src/components/button/mod.rs
index ce93a22..f8af3e8 100644
--- a/src/components/button/mod.rs
+++ b/src/components/button/mod.rs
@@ -58,8 +58,8 @@ impl ButtonColorVariants {
hover: [38.0, 38.0, 38.0, 1.0],
},
ButtonColorVariants::Grey => StateRgbs {
- base: [62.0, 62.0, 62.0, 1.0], // TODO - Not the same as bg-grey-30. Fix
- hover: [79.0, 79.0, 79.0, 1.0],
+ base: [79.0, 79.0, 79.0, 1.0], // TODO - Not the same as bg-grey-30. Fix
+ hover: [99.0, 99.0, 99.0, 1.0],
},
ButtonColorVariants::White => StateRgbs {
base: [244.0, 244.0, 244.0, 1.0],
diff --git a/src/components/join_dialog/mod.rs b/src/components/join_dialog/mod.rs
index 42bb229..02269f5 100644
--- a/src/components/join_dialog/mod.rs
+++ b/src/components/join_dialog/mod.rs
@@ -42,15 +42,17 @@ pub fn JoinDialog() -> impl IntoView {
To protect members’ privacy, we add new members" manually.
| | | | | | |
"Please send us a message on" X (Twitter) "and we’ll get you added!"
-
- Message us on X
-
+
+
+ Message us on X
+
+
}