diff --git a/book-examples/dioxus/src/icons.rs b/book-examples/dioxus/src/icons.rs
index bca97bb..28838a4 100644
--- a/book-examples/dioxus/src/icons.rs
+++ b/book-examples/dioxus/src/icons.rs
@@ -4529,6 +4529,12 @@ pub fn IconsG1() -> Element {
},
"Goal",
),
+ (
+ rsx! {
+ Gpu {}
+ },
+ "Gpu",
+ ),
(
rsx! {
Grab {}
diff --git a/book-examples/leptos/src/icons.rs b/book-examples/leptos/src/icons.rs
index 5007231..b40254d 100644
--- a/book-examples/leptos/src/icons.rs
+++ b/book-examples/leptos/src/icons.rs
@@ -917,6 +917,7 @@ pub fn IconsG() -> impl IntoView {
(view! { }.into_any(), "Globe"),
(view! { }.into_any(), "Globe Lock"),
(view! { }.into_any(), "Goal"),
+ (view! { }.into_any(), "Gpu"),
(view! { }.into_any(), "Grab"),
(view! { }.into_any(), "Graduation Cap"),
(view! { }.into_any(), "Grape"),
diff --git a/book-examples/yew/src/icons.rs b/book-examples/yew/src/icons.rs
index eac5af3..09efe2b 100644
--- a/book-examples/yew/src/icons.rs
+++ b/book-examples/yew/src/icons.rs
@@ -948,6 +948,7 @@ pub fn IconsG() -> Html {
(html! { }, "Globe"),
(html! { }, "Globe Lock"),
(html! { }, "Goal"),
+ (html! { }, "Gpu"),
(html! { }, "Grab"),
(html! { }, "Graduation Cap"),
(html! { }, "Grape"),
diff --git a/packages/dioxus/src/axe.rs b/packages/dioxus/src/axe.rs
index 20987f3..3322e1c 100644
--- a/packages/dioxus/src/axe.rs
+++ b/packages/dioxus/src/axe.rs
@@ -34,8 +34,8 @@ pub fn Axe(props: AxeProps) -> Element {
"stroke-width": "{stroke_width}",
"stroke-linecap": "round",
"stroke-linejoin": "round",
- path { "d": "m14 12-8.5 8.5a2.12 2.12 0 1 1-3-3L11 9" }
- path { "d": "M15 13 9 7l4-4 6 6h3a8 8 0 0 1-7 7z" }
+ path { "d": "m14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9" }
+ path { "d": "M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z" }
}
}
}
diff --git a/packages/dioxus/src/gpu.rs b/packages/dioxus/src/gpu.rs
new file mode 100644
index 0000000..7398589
--- /dev/null
+++ b/packages/dioxus/src/gpu.rs
@@ -0,0 +1,44 @@
+use dioxus::prelude::*;
+#[derive(Clone, PartialEq, Props)]
+pub struct GpuProps {
+ #[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 Gpu(props: GpuProps) -> 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": "M2 21V3" }
+ path { "d": "M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26" }
+ path { "d": "M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3" }
+ circle { "cx": "16", "cy": "11", "r": "2" }
+ circle { "cx": "8", "cy": "11", "r": "2" }
+ }
+ }
+}
diff --git a/packages/dioxus/src/lib.rs b/packages/dioxus/src/lib.rs
index fa4daeb..553ce48 100644
--- a/packages/dioxus/src/lib.rs
+++ b/packages/dioxus/src/lib.rs
@@ -1706,6 +1706,8 @@ mod globe;
mod globe_lock;
#[cfg(feature = "gaming")]
mod goal;
+#[cfg(any(feature = "devices", feature = "gaming"))]
+mod gpu;
#[cfg(any(feature = "cursors", feature = "design", feature = "layout"))]
mod grab;
#[cfg(feature = "buildings")]
@@ -5744,6 +5746,8 @@ pub use globe::*;
pub use globe_lock::*;
#[cfg(feature = "gaming")]
pub use goal::*;
+#[cfg(any(feature = "devices", feature = "gaming"))]
+pub use gpu::*;
#[cfg(any(feature = "cursors", feature = "design", feature = "layout"))]
pub use grab::*;
#[cfg(feature = "buildings")]
diff --git a/packages/leptos/src/axe.rs b/packages/leptos/src/axe.rs
index 949e738..8764de9 100644
--- a/packages/leptos/src/axe.rs
+++ b/packages/leptos/src/axe.rs
@@ -29,8 +29,8 @@ pub fn Axe(
stroke-linecap="round"
stroke-linejoin="round"
>
-
-
+
+
}
}
diff --git a/packages/leptos/src/gpu.rs b/packages/leptos/src/gpu.rs
new file mode 100644
index 0000000..43d7449
--- /dev/null
+++ b/packages/leptos/src/gpu.rs
@@ -0,0 +1,39 @@
+use leptos::{prelude::*, svg::Svg};
+#[component]
+pub fn Gpu(
+ #[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
}
}
diff --git a/packages/yew/src/gpu.rs b/packages/yew/src/gpu.rs
new file mode 100644
index 0000000..49a77e0
--- /dev/null
+++ b/packages/yew/src/gpu.rs
@@ -0,0 +1,51 @@
+use yew::prelude::*;
+#[derive(PartialEq, Properties)]
+pub struct GpuProps {
+ #[prop_or(24)]
+ pub size: usize,
+ #[prop_or(AttrValue::from("currentColor"))]
+ pub color: AttrValue,
+ #[prop_or(AttrValue::from("none"))]
+ pub fill: AttrValue,
+ #[prop_or(2)]
+ pub stroke_width: usize,
+ #[prop_or(false)]
+ pub absolute_stroke_width: bool,
+ #[prop_or_default]
+ pub class: Classes,
+ #[prop_or_default]
+ pub style: std::option::Option,
+ #[prop_or_default]
+ pub node_ref: NodeRef,
+}
+#[function_component]
+pub fn Gpu(props: &GpuProps) -> Html {
+ let stroke_width = if props.absolute_stroke_width {
+ props.stroke_width * 24 / props.size
+ } else {
+ props.stroke_width
+ };
+ html! {
+
+
+
+
+
+
+
+ }
+}
diff --git a/packages/yew/src/lib.rs b/packages/yew/src/lib.rs
index 29cbaea..ba9d6e9 100644
--- a/packages/yew/src/lib.rs
+++ b/packages/yew/src/lib.rs
@@ -1708,6 +1708,8 @@ mod globe;
mod globe_lock;
#[cfg(feature = "gaming")]
mod goal;
+#[cfg(any(feature = "devices", feature = "gaming"))]
+mod gpu;
#[cfg(any(feature = "cursors", feature = "design", feature = "layout"))]
mod grab;
#[cfg(feature = "buildings")]
@@ -5746,6 +5748,8 @@ pub use globe::*;
pub use globe_lock::*;
#[cfg(feature = "gaming")]
pub use goal::*;
+#[cfg(any(feature = "devices", feature = "gaming"))]
+pub use gpu::*;
#[cfg(any(feature = "cursors", feature = "design", feature = "layout"))]
pub use grab::*;
#[cfg(feature = "buildings")]
diff --git a/scripts/src/lib.rs b/scripts/src/lib.rs
index e6c46a3..2000753 100644
--- a/scripts/src/lib.rs
+++ b/scripts/src/lib.rs
@@ -11,5 +11,5 @@ pub const GITHUB_OWNER: &str = "RustForWeb";
pub const GITHUB_REPO: &str = "lucide";
pub const UPSTREAM_GIT_URL: &str = "https://github.com/lucide-icons/lucide.git";
-pub const UPSTREAM_GIT_REF: &str = "0.508.0";
+pub const UPSTREAM_GIT_REF: &str = "0.509.0";
pub const UPSTREAM_GITHUB_URL: &str = "https://github.com/lucide-icons/lucide";