From f35e965ee7a9328712c2b471a7a02170f65a14f0 Mon Sep 17 00:00:00 2001
From: "rust-for-web[bot]"
<191031261+rust-for-web[bot]@users.noreply.github.com>
Date: Tue, 28 Apr 2026 17:47:23 +0000
Subject: [PATCH] feat: update to upstream v1.12.0
---
book-examples/dioxus/src/icons.rs | 36 ++++++++++++-------
book-examples/leptos/src/icons.rs | 6 ++--
book-examples/yew/src/icons.rs | 2 ++
packages/dioxus/src/astroid.rs | 40 +++++++++++++++++++++
packages/dioxus/src/folder_bookmark.rs | 41 +++++++++++++++++++++
packages/dioxus/src/lib.rs | 8 +++++
packages/icon-name/src/lib.rs | 4 ++-
packages/leptos/src/astroid.rs | 35 ++++++++++++++++++
packages/leptos/src/folder_bookmark.rs | 36 +++++++++++++++++++
packages/leptos/src/lib.rs | 8 +++++
packages/yew/src/astroid.rs | 49 +++++++++++++++++++++++++
packages/yew/src/folder_bookmark.rs | 50 ++++++++++++++++++++++++++
packages/yew/src/lib.rs | 8 +++++
scripts/src/lib.rs | 2 +-
14 files changed, 309 insertions(+), 16 deletions(-)
create mode 100644 packages/dioxus/src/astroid.rs
create mode 100644 packages/dioxus/src/folder_bookmark.rs
create mode 100644 packages/leptos/src/astroid.rs
create mode 100644 packages/leptos/src/folder_bookmark.rs
create mode 100644 packages/yew/src/astroid.rs
create mode 100644 packages/yew/src/folder_bookmark.rs
diff --git a/book-examples/dioxus/src/icons.rs b/book-examples/dioxus/src/icons.rs
index 2454adb3..5a287004 100644
--- a/book-examples/dioxus/src/icons.rs
+++ b/book-examples/dioxus/src/icons.rs
@@ -628,21 +628,21 @@ pub fn IconsA1() -> Element {
),
(
rsx! {
- AtSign {}
+ Astroid {}
},
- "At Sign",
+ "Astroid",
),
(
rsx! {
- Atom {}
+ AtSign {}
},
- "Atom",
+ "At Sign",
),
(
rsx! {
- AudioLines {}
+ Atom {}
},
- "Audio Lines",
+ "Atom",
),
];
rsx! {
@@ -659,6 +659,12 @@ pub fn IconsA1() -> Element {
#[component]
pub fn IconsA2() -> Element {
let icons = [
+ (
+ rsx! {
+ AudioLines {}
+ },
+ "Audio Lines",
+ ),
(
rsx! {
AudioWaveform {}
@@ -4181,6 +4187,12 @@ pub fn IconsF1() -> Element {
},
"Folder Archive",
),
+ (
+ rsx! {
+ FolderBookmark {}
+ },
+ "Folder Bookmark",
+ ),
(
rsx! {
FolderCheck {}
@@ -4235,12 +4247,6 @@ pub fn IconsF1() -> Element {
},
"Folder Git 2",
),
- (
- rsx! {
- FolderHeart {}
- },
- "Folder Heart",
- ),
];
rsx! {
for (icon, name) in icons {
@@ -4256,6 +4262,12 @@ pub fn IconsF1() -> Element {
#[component]
pub fn IconsF2() -> Element {
let icons = [
+ (
+ rsx! {
+ FolderHeart {}
+ },
+ "Folder Heart",
+ ),
(
rsx! {
FolderInput {}
diff --git a/book-examples/leptos/src/icons.rs b/book-examples/leptos/src/icons.rs
index 2fe03ed0..53d9c9cb 100644
--- a/book-examples/leptos/src/icons.rs
+++ b/book-examples/leptos/src/icons.rs
@@ -185,9 +185,9 @@ pub fn IconsA1() -> impl IntoView {
(view! { }.into_any(), "Arrow Up Za"),
(view! { }.into_any(), "Arrows Up From Line"),
(view! { }.into_any(), "Asterisk"),
+ (view! { }.into_any(), "Astroid"),
(view! { }.into_any(), "At Sign"),
(view! { }.into_any(), "Atom"),
- (view! { }.into_any(), "Audio Lines"),
]
key=|icon| icon.1
children=move |(icon, name)| {
@@ -205,6 +205,7 @@ pub fn IconsA2() -> impl IntoView {
view! {
}.into_any(), "Audio Lines"),
(view! { }.into_any(), "Audio Waveform"),
(view! { }.into_any(), "Award"),
(view! { }.into_any(), "Axe"),
@@ -920,6 +921,7 @@ pub fn IconsF1() -> impl IntoView {
(view! { }.into_any(), "Fold Vertical"),
(view! { }.into_any(), "Folder"),
(view! { }.into_any(), "Folder Archive"),
+ (view! { }.into_any(), "Folder Bookmark"),
(view! { }.into_any(), "Folder Check"),
(view! { }.into_any(), "Folder Clock"),
(view! { }.into_any(), "Folder Closed"),
@@ -929,7 +931,6 @@ pub fn IconsF1() -> impl IntoView {
(view! { }.into_any(), "Folder Down"),
(view! { }.into_any(), "Folder Git"),
(view! { }.into_any(), "Folder Git 2"),
- (view! { }.into_any(), "Folder Heart"),
]
key=|icon| icon.1
children=move |(icon, name)| {
@@ -947,6 +948,7 @@ pub fn IconsF2() -> impl IntoView {
view! {
}.into_any(), "Folder Heart"),
(view! { }.into_any(), "Folder Input"),
(view! { }.into_any(), "Folder Kanban"),
(view! { }.into_any(), "Folder Key"),
diff --git a/book-examples/yew/src/icons.rs b/book-examples/yew/src/icons.rs
index 2bd15fdf..90490cfc 100644
--- a/book-examples/yew/src/icons.rs
+++ b/book-examples/yew/src/icons.rs
@@ -183,6 +183,7 @@ pub fn IconsA() -> Html {
(html! { }, "Arrow Up Za"),
(html! { }, "Arrows Up From Line"),
(html! { }, "Asterisk"),
+ (html! { }, "Astroid"),
(html! { }, "At Sign"),
(html! { }, "Atom"),
(html! { }, "Audio Lines"),
@@ -869,6 +870,7 @@ pub fn IconsF() -> Html {
(html! { }, "Fold Vertical"),
(html! { }, "Folder"),
(html! { }, "Folder Archive"),
+ (html! { }, "Folder Bookmark"),
(html! { }, "Folder Check"),
(html! { }, "Folder Clock"),
(html! { }, "Folder Closed"),
diff --git a/packages/dioxus/src/astroid.rs b/packages/dioxus/src/astroid.rs
new file mode 100644
index 00000000..5beb555d
--- /dev/null
+++ b/packages/dioxus/src/astroid.rs
@@ -0,0 +1,40 @@
+use dioxus::prelude::*;
+#[derive(Clone, PartialEq, Props)]
+pub struct AstroidProps {
+ #[props(default = 24)]
+ pub size: usize,
+ #[props(default = "currentColor".to_owned())]
+ pub color: String,
+ #[props(default = "none".to_owned())]
+ pub fill: String,
+ #[props(default = 2)]
+ pub stroke_width: usize,
+ #[props(default = false)]
+ pub absolute_stroke_width: bool,
+ pub class: Option,
+ pub style: Option,
+}
+#[component]
+pub fn Astroid(props: AstroidProps) -> Element {
+ let stroke_width = if props.absolute_stroke_width {
+ props.stroke_width * 24 / props.size
+ } else {
+ props.stroke_width
+ };
+ rsx! {
+ svg {
+ "xmlns": "http://www.w3.org/2000/svg",
+ "class": if let Some(class) = props.class { "{class}" },
+ "style": if let Some(style) = props.style { "{style}" },
+ "width": "{props.size}",
+ "height": "{props.size}",
+ "viewBox": "0 0 24 24",
+ "fill": "{props.fill}",
+ "stroke": "{props.color}",
+ "stroke-width": "{stroke_width}",
+ "stroke-linecap": "round",
+ "stroke-linejoin": "round",
+ path { "d": "M12.983 21.186a1 1 0 0 1-1.966 0 10 10 0 0 0-8.203-8.203 1 1 0 0 1 0-1.966 10 10 0 0 0 8.203-8.203 1 1 0 0 1 1.966 0 10 10 0 0 0 8.203 8.203 1 1 0 0 1 0 1.966 10 10 0 0 0-8.203 8.203" }
+ }
+ }
+}
diff --git a/packages/dioxus/src/folder_bookmark.rs b/packages/dioxus/src/folder_bookmark.rs
new file mode 100644
index 00000000..9d9ca1b9
--- /dev/null
+++ b/packages/dioxus/src/folder_bookmark.rs
@@ -0,0 +1,41 @@
+use dioxus::prelude::*;
+#[derive(Clone, PartialEq, Props)]
+pub struct FolderBookmarkProps {
+ #[props(default = 24)]
+ pub size: usize,
+ #[props(default = "currentColor".to_owned())]
+ pub color: String,
+ #[props(default = "none".to_owned())]
+ pub fill: String,
+ #[props(default = 2)]
+ pub stroke_width: usize,
+ #[props(default = false)]
+ pub absolute_stroke_width: bool,
+ pub class: Option,
+ pub style: Option,
+}
+#[component]
+pub fn FolderBookmark(props: FolderBookmarkProps) -> Element {
+ let stroke_width = if props.absolute_stroke_width {
+ props.stroke_width * 24 / props.size
+ } else {
+ props.stroke_width
+ };
+ rsx! {
+ svg {
+ "xmlns": "http://www.w3.org/2000/svg",
+ "class": if let Some(class) = props.class { "{class}" },
+ "style": if let Some(style) = props.style { "{style}" },
+ "width": "{props.size}",
+ "height": "{props.size}",
+ "viewBox": "0 0 24 24",
+ "fill": "{props.fill}",
+ "stroke": "{props.color}",
+ "stroke-width": "{stroke_width}",
+ "stroke-linecap": "round",
+ "stroke-linejoin": "round",
+ path { "d": "M12 6v8l3-3 3 3V6" }
+ path { "d": "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z" }
+ }
+ }
+}
diff --git a/packages/dioxus/src/lib.rs b/packages/dioxus/src/lib.rs
index b77e9b91..afbb3b84 100644
--- a/packages/dioxus/src/lib.rs
+++ b/packages/dioxus/src/lib.rs
@@ -224,6 +224,8 @@ mod arrow_up_z_a;
mod arrows_up_from_line;
#[cfg(any(feature = "text", feature = "math", feature = "development"))]
mod asterisk;
+#[cfg(any(feature = "shapes", feature = "math"))]
+mod astroid;
#[cfg(any(feature = "text", feature = "account"))]
mod at_sign;
#[cfg(feature = "science")]
@@ -1547,6 +1549,8 @@ mod folder;
#[cfg(feature = "files")]
mod folder_archive;
#[cfg(feature = "files")]
+mod folder_bookmark;
+#[cfg(feature = "files")]
mod folder_check;
#[cfg(any(feature = "files", feature = "time"))]
mod folder_clock;
@@ -4519,6 +4523,8 @@ pub use arrow_up_z_a::*;
pub use arrows_up_from_line::*;
#[cfg(any(feature = "text", feature = "math", feature = "development"))]
pub use asterisk::*;
+#[cfg(any(feature = "shapes", feature = "math"))]
+pub use astroid::*;
#[cfg(any(feature = "text", feature = "account"))]
pub use at_sign::*;
#[cfg(feature = "science")]
@@ -5842,6 +5848,8 @@ pub use folder::*;
#[cfg(feature = "files")]
pub use folder_archive::*;
#[cfg(feature = "files")]
+pub use folder_bookmark::*;
+#[cfg(feature = "files")]
pub use folder_check::*;
#[cfg(any(feature = "files", feature = "time"))]
pub use folder_clock::*;
diff --git a/packages/icon-name/src/lib.rs b/packages/icon-name/src/lib.rs
index 6b6f02da..745c2e4d 100644
--- a/packages/icon-name/src/lib.rs
+++ b/packages/icon-name/src/lib.rs
@@ -5,7 +5,7 @@
//! See [the Rust Lucide book](https://lucide.rustforweb.org/) for more documenation.
/// [Lucide](https://lucide.dev/) icon names.
-pub static ICON_NAMES: [&str; 1699usize] = [
+pub static ICON_NAMES: [&str; 1701usize] = [
"a-arrow-down",
"a-arrow-up",
"a-large-small",
@@ -103,6 +103,7 @@ pub static ICON_NAMES: [&str; 1699usize] = [
"arrow-up-z-a",
"arrows-up-from-line",
"asterisk",
+ "astroid",
"at-sign",
"atom",
"audio-lines",
@@ -673,6 +674,7 @@ pub static ICON_NAMES: [&str; 1699usize] = [
"fold-vertical",
"folder",
"folder-archive",
+ "folder-bookmark",
"folder-check",
"folder-clock",
"folder-closed",
diff --git a/packages/leptos/src/astroid.rs b/packages/leptos/src/astroid.rs
new file mode 100644
index 00000000..98fb0b3e
--- /dev/null
+++ b/packages/leptos/src/astroid.rs
@@ -0,0 +1,35 @@
+use leptos::{prelude::*, svg::Svg};
+#[component]
+pub fn Astroid(
+ #[prop(default = 24.into(), into)] size: Signal,
+ #[prop(default = "currentColor".into(), into)] color: Signal,
+ #[prop(default = "none".into(), into)] fill: Signal,
+ #[prop(default = 2.into(), into)] stroke_width: Signal,
+ #[prop(default = false.into(), into)] absolute_stroke_width: Signal,
+ #[prop(optional)] node_ref: NodeRef