diff --git a/book-examples/dioxus/src/icons.rs b/book-examples/dioxus/src/icons.rs index 5b53b60..33f3dfe 100644 --- a/book-examples/dioxus/src/icons.rs +++ b/book-examples/dioxus/src/icons.rs @@ -2399,6 +2399,12 @@ pub fn IconsC2() -> Element { }, "Circle Small", ), + ( + rsx! { + CircleStar {} + }, + "Circle Star", + ), ( rsx! { CircleStop {} @@ -2783,12 +2789,6 @@ pub fn IconsC2() -> Element { }, "Coffee", ), - ( - rsx! { - Cog {} - }, - "Cog", - ), ]; rsx! { for (icon , name) in icons { @@ -2804,6 +2804,12 @@ pub fn IconsC2() -> Element { #[component] pub fn IconsC3() -> Element { let icons = [ + ( + rsx! { + Cog {} + }, + "Cog", + ), ( rsx! { Coins {} @@ -8765,6 +8771,12 @@ pub fn IconsS2() -> Element { }, "Square Stack", ), + ( + rsx! { + SquareStar {} + }, + "Square Star", + ), ( rsx! { SquareStop {} @@ -8897,12 +8909,6 @@ pub fn IconsS2() -> Element { }, "Store", ), - ( - rsx! { - StretchHorizontal {} - }, - "Stretch Horizontal", - ), ]; rsx! { for (icon , name) in icons { @@ -8918,6 +8924,12 @@ pub fn IconsS2() -> Element { #[component] pub fn IconsS3() -> Element { let icons = [ + ( + rsx! { + StretchHorizontal {} + }, + "Stretch Horizontal", + ), ( rsx! { StretchVertical {} diff --git a/book-examples/leptos/src/icons.rs b/book-examples/leptos/src/icons.rs index 6b02376..fdff673 100644 --- a/book-examples/leptos/src/icons.rs +++ b/book-examples/leptos/src/icons.rs @@ -503,6 +503,7 @@ pub fn IconsC() -> impl IntoView { (view! { }.into_any(), "Circle Slash"), (view! { }.into_any(), "Circle Slash 2"), (view! { }.into_any(), "Circle Small"), + (view! { }.into_any(), "Circle Star"), (view! { }.into_any(), "Circle Stop"), (view! { }.into_any(), "Circle User"), (view! { }.into_any(), "Circle User Round"), @@ -1798,6 +1799,7 @@ pub fn IconsS() -> impl IntoView { (view! { }.into_any(), "Square Split Vertical"), (view! { }.into_any(), "Square Square"), (view! { }.into_any(), "Square Stack"), + (view! { }.into_any(), "Square Star"), (view! { }.into_any(), "Square Stop"), (view! { }.into_any(), "Square Terminal"), (view! { }.into_any(), "Square User"), diff --git a/book-examples/yew/src/icons.rs b/book-examples/yew/src/icons.rs index f5d098a..9ce4f24 100644 --- a/book-examples/yew/src/icons.rs +++ b/book-examples/yew/src/icons.rs @@ -532,6 +532,7 @@ pub fn IconsC() -> Html { (html! { }, "Circle Slash"), (html! { }, "Circle Slash 2"), (html! { }, "Circle Small"), + (html! { }, "Circle Star"), (html! { }, "Circle Stop"), (html! { }, "Circle User"), (html! { }, "Circle User Round"), @@ -1844,6 +1845,7 @@ pub fn IconsS() -> Html { (html! { }, "Square Split Vertical"), (html! { }, "Square Square"), (html! { }, "Square Stack"), + (html! { }, "Square Star"), (html! { }, "Square Stop"), (html! { }, "Square Terminal"), (html! { }, "Square User"), diff --git a/packages/dioxus/src/circle_star.rs b/packages/dioxus/src/circle_star.rs new file mode 100644 index 0000000..321d069 --- /dev/null +++ b/packages/dioxus/src/circle_star.rs @@ -0,0 +1,41 @@ +use dioxus::prelude::*; +#[derive(Clone, PartialEq, Props)] +pub struct CircleStarProps { + #[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 CircleStar(props: CircleStarProps) -> 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": "M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" } + circle { "cx": "12", "cy": "12", "r": "10" } + } + } +} diff --git a/packages/dioxus/src/lib.rs b/packages/dioxus/src/lib.rs index f628a32..4b65c00 100644 --- a/packages/dioxus/src/lib.rs +++ b/packages/dioxus/src/lib.rs @@ -902,6 +902,8 @@ mod circle_slash; mod circle_slash_2; #[cfg(any(feature = "shapes", feature = "medical"))] mod circle_small; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod circle_star; #[cfg(feature = "multimedia")] mod circle_stop; #[cfg(feature = "account")] @@ -3536,6 +3538,8 @@ mod square_split_vertical; mod square_square; #[cfg(any(feature = "text", feature = "files", feature = "development"))] mod square_stack; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod square_star; #[cfg(feature = "multimedia")] mod square_stop; #[cfg(feature = "development")] @@ -5035,6 +5039,8 @@ pub use circle_slash::*; pub use circle_slash_2::*; #[cfg(any(feature = "shapes", feature = "medical"))] pub use circle_small::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use circle_star::*; #[cfg(feature = "multimedia")] pub use circle_stop::*; #[cfg(feature = "account")] @@ -7669,6 +7675,8 @@ pub use square_split_vertical::*; pub use square_square::*; #[cfg(any(feature = "text", feature = "files", feature = "development"))] pub use square_stack::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use square_star::*; #[cfg(feature = "multimedia")] pub use square_stop::*; #[cfg(feature = "development")] diff --git a/packages/dioxus/src/school.rs b/packages/dioxus/src/school.rs index 896afbe..252a894 100644 --- a/packages/dioxus/src/school.rs +++ b/packages/dioxus/src/school.rs @@ -34,11 +34,11 @@ pub fn School(props: SchoolProps) -> Element { "stroke-width": "{stroke_width}", "stroke-linecap": "round", "stroke-linejoin": "round", - path { "d": "M14 22v-4a2 2 0 1 0-4 0v4" } - path { "d": "m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10" } - path { "d": "M18 5v17" } - path { "d": "m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6" } - path { "d": "M6 5v17" } + path { "d": "M14 21v-3a2 2 0 0 0-4 0v3" } + path { "d": "M18 5v16" } + path { "d": "m4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6" } + path { "d": "m6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11" } + path { "d": "M6 5v16" } circle { "cx": "12", "cy": "9", "r": "2" } } } diff --git a/packages/dioxus/src/spade.rs b/packages/dioxus/src/spade.rs index 134c4ea..5fc7214 100644 --- a/packages/dioxus/src/spade.rs +++ b/packages/dioxus/src/spade.rs @@ -34,8 +34,8 @@ pub fn Spade(props: SpadeProps) -> Element { "stroke-width": "{stroke_width}", "stroke-linecap": "round", "stroke-linejoin": "round", - path { "d": "M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z" } path { "d": "M12 18v4" } + path { "d": "M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5" } } } } diff --git a/packages/dioxus/src/square_star.rs b/packages/dioxus/src/square_star.rs new file mode 100644 index 0000000..0fbdce7 --- /dev/null +++ b/packages/dioxus/src/square_star.rs @@ -0,0 +1,47 @@ +use dioxus::prelude::*; +#[derive(Clone, PartialEq, Props)] +pub struct SquareStarProps { + #[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 SquareStar(props: SquareStarProps) -> 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": "M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" } + rect { + "x": "3", + "y": "3", + "width": "18", + "height": "18", + "rx": "2", + } + } + } +} diff --git a/packages/leptos/src/circle_star.rs b/packages/leptos/src/circle_star.rs new file mode 100644 index 0000000..65f4103 --- /dev/null +++ b/packages/leptos/src/circle_star.rs @@ -0,0 +1,36 @@ +use leptos::{prelude::*, svg::Svg}; +#[component] +pub fn CircleStar( + #[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, +) -> impl IntoView { + let stroke_width = Signal::derive(move || { + if absolute_stroke_width.get() { + stroke_width.get() * 24 / size.get() + } else { + stroke_width.get() + } + }); + view! { + + + + + } +} diff --git a/packages/leptos/src/lib.rs b/packages/leptos/src/lib.rs index 72df589..e9db34d 100644 --- a/packages/leptos/src/lib.rs +++ b/packages/leptos/src/lib.rs @@ -902,6 +902,8 @@ mod circle_slash; mod circle_slash_2; #[cfg(any(feature = "shapes", feature = "medical"))] mod circle_small; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod circle_star; #[cfg(feature = "multimedia")] mod circle_stop; #[cfg(feature = "account")] @@ -3536,6 +3538,8 @@ mod square_split_vertical; mod square_square; #[cfg(any(feature = "text", feature = "files", feature = "development"))] mod square_stack; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod square_star; #[cfg(feature = "multimedia")] mod square_stop; #[cfg(feature = "development")] @@ -5035,6 +5039,8 @@ pub use circle_slash::*; pub use circle_slash_2::*; #[cfg(any(feature = "shapes", feature = "medical"))] pub use circle_small::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use circle_star::*; #[cfg(feature = "multimedia")] pub use circle_stop::*; #[cfg(feature = "account")] @@ -7669,6 +7675,8 @@ pub use square_split_vertical::*; pub use square_square::*; #[cfg(any(feature = "text", feature = "files", feature = "development"))] pub use square_stack::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use square_star::*; #[cfg(feature = "multimedia")] pub use square_stop::*; #[cfg(feature = "development")] diff --git a/packages/leptos/src/school.rs b/packages/leptos/src/school.rs index a0bca4c..e42eae6 100644 --- a/packages/leptos/src/school.rs +++ b/packages/leptos/src/school.rs @@ -29,11 +29,11 @@ pub fn School( stroke-linecap="round" stroke-linejoin="round" > - - - - - + + + + + } diff --git a/packages/leptos/src/spade.rs b/packages/leptos/src/spade.rs index 8d1ee25..ccb00cb 100644 --- a/packages/leptos/src/spade.rs +++ b/packages/leptos/src/spade.rs @@ -29,8 +29,8 @@ pub fn Spade( stroke-linecap="round" stroke-linejoin="round" > - + } } diff --git a/packages/leptos/src/square_star.rs b/packages/leptos/src/square_star.rs new file mode 100644 index 0000000..05d3a73 --- /dev/null +++ b/packages/leptos/src/square_star.rs @@ -0,0 +1,36 @@ +use leptos::{prelude::*, svg::Svg}; +#[component] +pub fn SquareStar( + #[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, +) -> impl IntoView { + let stroke_width = Signal::derive(move || { + if absolute_stroke_width.get() { + stroke_width.get() * 24 / size.get() + } else { + stroke_width.get() + } + }); + view! { + + + + + } +} diff --git a/packages/yew/src/circle_star.rs b/packages/yew/src/circle_star.rs new file mode 100644 index 0000000..c83b81d --- /dev/null +++ b/packages/yew/src/circle_star.rs @@ -0,0 +1,50 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct CircleStarProps { + #[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 CircleStar(props: &CircleStarProps) -> 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 9cbb3c1..9d4650f 100644 --- a/packages/yew/src/lib.rs +++ b/packages/yew/src/lib.rs @@ -904,6 +904,8 @@ mod circle_slash; mod circle_slash_2; #[cfg(any(feature = "shapes", feature = "medical"))] mod circle_small; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod circle_star; #[cfg(feature = "multimedia")] mod circle_stop; #[cfg(feature = "account")] @@ -3538,6 +3540,8 @@ mod square_split_vertical; mod square_square; #[cfg(any(feature = "text", feature = "files", feature = "development"))] mod square_stack; +#[cfg(any(feature = "sports", feature = "gaming"))] +mod square_star; #[cfg(feature = "multimedia")] mod square_stop; #[cfg(feature = "development")] @@ -5037,6 +5041,8 @@ pub use circle_slash::*; pub use circle_slash_2::*; #[cfg(any(feature = "shapes", feature = "medical"))] pub use circle_small::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use circle_star::*; #[cfg(feature = "multimedia")] pub use circle_stop::*; #[cfg(feature = "account")] @@ -7671,6 +7677,8 @@ pub use square_split_vertical::*; pub use square_square::*; #[cfg(any(feature = "text", feature = "files", feature = "development"))] pub use square_stack::*; +#[cfg(any(feature = "sports", feature = "gaming"))] +pub use square_star::*; #[cfg(feature = "multimedia")] pub use square_stop::*; #[cfg(feature = "development")] diff --git a/packages/yew/src/school.rs b/packages/yew/src/school.rs index a032e3d..8da94c5 100644 --- a/packages/yew/src/school.rs +++ b/packages/yew/src/school.rs @@ -41,13 +41,13 @@ pub fn School(props: &SchoolProps) -> Html { stroke-linecap="round" stroke-linejoin="round" > - + + + - - - + } diff --git a/packages/yew/src/spade.rs b/packages/yew/src/spade.rs index 08f65fa..afcbc27 100644 --- a/packages/yew/src/spade.rs +++ b/packages/yew/src/spade.rs @@ -41,10 +41,10 @@ pub fn Spade(props: &SpadeProps) -> Html { stroke-linecap="round" stroke-linejoin="round" > + - } } diff --git a/packages/yew/src/square_star.rs b/packages/yew/src/square_star.rs new file mode 100644 index 0000000..664cf8b --- /dev/null +++ b/packages/yew/src/square_star.rs @@ -0,0 +1,50 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct SquareStarProps { + #[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 SquareStar(props: &SquareStarProps) -> Html { + let stroke_width = if props.absolute_stroke_width { + props.stroke_width * 24 / props.size + } else { + props.stroke_width + }; + html! { + + + + + } +} diff --git a/scripts/src/lib.rs b/scripts/src/lib.rs index d274d0a..c1db583 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.536.0"; +pub const UPSTREAM_GIT_REF: &str = "0.537.0"; pub const UPSTREAM_GITHUB_URL: &str = "https://github.com/lucide-icons/lucide";