diff --git a/book-examples/dioxus/src/icons.rs b/book-examples/dioxus/src/icons.rs index c897fa1d..175681e3 100644 --- a/book-examples/dioxus/src/icons.rs +++ b/book-examples/dioxus/src/icons.rs @@ -2402,9 +2402,9 @@ pub fn IconsC2() -> Element { ), ( rsx! { - CircleEuroSign {} + CircleEuro {} }, - "Circle Euro Sign", + "Circle Euro", ), ( rsx! { @@ -8196,6 +8196,12 @@ pub fn IconsS1() -> Element { }, "Scan Barcode", ), + ( + rsx! { + ScanBox {} + }, + "Scan Box", + ), ( rsx! { ScanEye {} @@ -8688,12 +8694,6 @@ pub fn IconsS1() -> Element { }, "Slice", ), - ( - rsx! { - SlidersHorizontal {} - }, - "Sliders Horizontal", - ), ]; rsx! { for (icon, name) in icons { @@ -8709,6 +8709,12 @@ pub fn IconsS1() -> Element { #[component] pub fn IconsS2() -> Element { let icons = [ + ( + rsx! { + SlidersHorizontal {} + }, + "Sliders Horizontal", + ), ( rsx! { SlidersVertical {} @@ -9303,12 +9309,6 @@ pub fn IconsS2() -> Element { }, "Squares Exclude", ), - ( - rsx! { - SquaresIntersect {} - }, - "Squares Intersect", - ), ]; rsx! { for (icon, name) in icons { @@ -9324,6 +9324,12 @@ pub fn IconsS2() -> Element { #[component] pub fn IconsS3() -> Element { let icons = [ + ( + rsx! { + SquaresIntersect {} + }, + "Squares Intersect", + ), ( rsx! { SquaresSubtract {} diff --git a/book-examples/leptos/src/icons.rs b/book-examples/leptos/src/icons.rs index cca0cacb..73cb8de9 100644 --- a/book-examples/leptos/src/icons.rs +++ b/book-examples/leptos/src/icons.rs @@ -563,7 +563,7 @@ pub fn IconsC2() -> impl IntoView { (view! { }.into_any(), "Circle Dot Dashed"), (view! { }.into_any(), "Circle Ellipsis"), (view! { }.into_any(), "Circle Equal"), - (view! { }.into_any(), "Circle Euro Sign"), + (view! { }.into_any(), "Circle Euro"), (view! { }.into_any(), "Circle Fading Arrow Up"), (view! { }.into_any(), "Circle Fading Plus"), (view! { }.into_any(), "Circle Gauge"), @@ -1828,6 +1828,7 @@ pub fn IconsS1() -> impl IntoView { (view! { }.into_any(), "Scaling"), (view! { }.into_any(), "Scan"), (view! { }.into_any(), "Scan Barcode"), + (view! { }.into_any(), "Scan Box"), (view! { }.into_any(), "Scan Eye"), (view! { }.into_any(), "Scan Face"), (view! { }.into_any(), "Scan Heart"), @@ -1910,7 +1911,6 @@ pub fn IconsS1() -> impl IntoView { (view! { }.into_any(), "Skull"), (view! { }.into_any(), "Slash"), (view! { }.into_any(), "Slice"), - (view! { }.into_any(), "Sliders Horizontal"), ] key=|icon| icon.1 children=move |(icon, name)| { @@ -1928,6 +1928,7 @@ pub fn IconsS2() -> impl IntoView { view! { }.into_any(), "Sliders Horizontal"), (view! { }.into_any(), "Sliders Vertical"), (view! { }.into_any(), "Smartphone"), (view! { }.into_any(), "Smartphone Charging"), @@ -2036,7 +2037,6 @@ pub fn IconsS2() -> impl IntoView { (view! { }.into_any(), "Square User Round"), (view! { }.into_any(), "Square X"), (view! { }.into_any(), "Squares Exclude"), - (view! { }.into_any(), "Squares Intersect"), ] key=|icon| icon.1 children=move |(icon, name)| { @@ -2054,6 +2054,7 @@ pub fn IconsS3() -> impl IntoView { view! { }.into_any(), "Squares Intersect"), (view! { }.into_any(), "Squares Subtract"), (view! { }.into_any(), "Squares Unite"), (view! { }.into_any(), "Squircle"), diff --git a/book-examples/yew/src/icons.rs b/book-examples/yew/src/icons.rs index 22749250..282cf2ba 100644 --- a/book-examples/yew/src/icons.rs +++ b/book-examples/yew/src/icons.rs @@ -531,7 +531,7 @@ pub fn IconsC() -> Html { (html! { }, "Circle Dot Dashed"), (html! { }, "Circle Ellipsis"), (html! { }, "Circle Equal"), - (html! { }, "Circle Euro Sign"), + (html! { }, "Circle Euro"), (html! { }, "Circle Fading Arrow Up"), (html! { }, "Circle Fading Plus"), (html! { }, "Circle Gauge"), @@ -1727,6 +1727,7 @@ pub fn IconsS() -> Html { (html! { }, "Scaling"), (html! { }, "Scan"), (html! { }, "Scan Barcode"), + (html! { }, "Scan Box"), (html! { }, "Scan Eye"), (html! { }, "Scan Face"), (html! { }, "Scan Heart"), diff --git a/packages/dioxus/src/circle_euro.rs b/packages/dioxus/src/circle_euro.rs new file mode 100644 index 00000000..6c872a3e --- /dev/null +++ b/packages/dioxus/src/circle_euro.rs @@ -0,0 +1,42 @@ +use dioxus::prelude::*; +#[derive(Clone, PartialEq, Props)] +pub struct CircleEuroProps { + #[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 CircleEuro(props: CircleEuroProps) -> 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": "M15 9.4a4 4 0 1 0 0 5.2" } + path { "d": "M7 12h5" } + circle { "cx": "12", "cy": "12", "r": "10" } + } + } +} diff --git a/packages/dioxus/src/ethernet_port.rs b/packages/dioxus/src/ethernet_port.rs index 2cead038..5e97c4d9 100644 --- a/packages/dioxus/src/ethernet_port.rs +++ b/packages/dioxus/src/ethernet_port.rs @@ -34,11 +34,11 @@ pub fn EthernetPort(props: EthernetPortProps) -> Element { "stroke-width": "{stroke_width}", "stroke-linecap": "round", "stroke-linejoin": "round", - path { "d": "m15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z" } - path { "d": "M6 8v1" } path { "d": "M10 8v1" } path { "d": "M14 8v1" } path { "d": "M18 8v1" } + path { "d": "M19 17a2 2 0 00-1.765 1.059l-.47.882A2 2 0 0115 20H9a2 2 0 01-1.765-1.059l-.47-.882A2 2 0 005 17H4a2 2 0 01-2-2V6a2 2 0 012-2h16a2 2 0 012 2v9a2 2 0 01-2 2z" } + path { "d": "M6 8v1" } } } } diff --git a/packages/dioxus/src/file_box.rs b/packages/dioxus/src/file_box.rs index f658bb42..c9464554 100644 --- a/packages/dioxus/src/file_box.rs +++ b/packages/dioxus/src/file_box.rs @@ -34,11 +34,11 @@ pub fn FileBox(props: FileBoxProps) -> Element { "stroke-width": "{stroke_width}", "stroke-linecap": "round", "stroke-linejoin": "round", - path { "d": "M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8" } - path { "d": "M14 2v5a1 1 0 0 0 1 1h5" } - path { "d": "M11.7 14.2 7 17l-4.7-2.8" } - path { "d": "M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z" } - path { "d": "M7 17v5" } + path { "d": "M14 2v5a1 1 0 001 1h5" } + path { "d": "M14.692 22H18a2 2 0 002-2V8a2.4 2.4 0 00-.706-1.706l-3.588-3.588A2.4 2.4 0 0014 2H6a2 2 0 00-2 2v3.804" } + path { "d": "M2.264 13.752 7 16.5l4.737-2.748" } + path { "d": "M2.995 13.014A2 2 0 002 14.744v3.516a2 2 0 00.996 1.73l3 1.74a2 2 0 002.008 0l3-1.74A2 2 0 0012 18.26v-3.517a2 2 0 00-.995-1.73l-3-1.742a2 2 0 00-1.892-.064z" } + path { "d": "M7 16.5V22" } } } } diff --git a/packages/dioxus/src/hdmi_port.rs b/packages/dioxus/src/hdmi_port.rs index acb15dc9..ba6d972d 100644 --- a/packages/dioxus/src/hdmi_port.rs +++ b/packages/dioxus/src/hdmi_port.rs @@ -34,8 +34,8 @@ pub fn HdmiPort(props: HdmiPortProps) -> Element { "stroke-width": "{stroke_width}", "stroke-linecap": "round", "stroke-linejoin": "round", - path { "d": "M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z" } - path { "d": "M7.5 12h9" } + path { "d": "M22 9a1 1 0 00-1-1H3a1 1 0 00-1 1v4a1 1 0 001 1h.5a2 2 0 011.6.8l.3.4A2 2 0 007 16h10a2 2 0 001.6-.8l.3-.4a2 2 0 011.6-.8h.5a1 1 0 001-1z" } + path { "d": "M8 12h8" } } } } diff --git a/packages/dioxus/src/lib.rs b/packages/dioxus/src/lib.rs index cffbd246..249eee10 100644 --- a/packages/dioxus/src/lib.rs +++ b/packages/dioxus/src/lib.rs @@ -872,7 +872,7 @@ mod circle_ellipsis; #[cfg(feature = "math")] mod circle_equal; #[cfg(any(feature = "shopping", feature = "finance"))] -mod circle_euro_sign; +mod circle_euro; #[cfg(any(feature = "arrows", feature = "development"))] mod circle_fading_arrow_up; #[cfg(any(feature = "communication", feature = "social"))] @@ -1418,7 +1418,7 @@ mod file_archive; mod file_axis_3_d; #[cfg(feature = "files")] mod file_badge; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] mod file_box; #[cfg(any(feature = "files", feature = "development"))] mod file_braces; @@ -3167,6 +3167,13 @@ mod scaling; mod scan; #[cfg(any(feature = "shopping", feature = "devices"))] mod scan_barcode; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +mod scan_box; #[cfg(any( feature = "photography", feature = "multimedia", @@ -5310,7 +5317,7 @@ pub use circle_ellipsis::*; #[cfg(feature = "math")] pub use circle_equal::*; #[cfg(any(feature = "shopping", feature = "finance"))] -pub use circle_euro_sign::*; +pub use circle_euro::*; #[cfg(any(feature = "arrows", feature = "development"))] pub use circle_fading_arrow_up::*; #[cfg(any(feature = "communication", feature = "social"))] @@ -5856,7 +5863,7 @@ pub use file_archive::*; pub use file_axis_3_d::*; #[cfg(feature = "files")] pub use file_badge::*; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] pub use file_box::*; #[cfg(any(feature = "files", feature = "development"))] pub use file_braces::*; @@ -7605,6 +7612,13 @@ pub use scaling::*; pub use scan::*; #[cfg(any(feature = "shopping", feature = "devices"))] pub use scan_barcode::*; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +pub use scan_box::*; #[cfg(any( feature = "photography", feature = "multimedia", diff --git a/packages/dioxus/src/scan_box.rs b/packages/dioxus/src/scan_box.rs new file mode 100644 index 00000000..61c3c326 --- /dev/null +++ b/packages/dioxus/src/scan_box.rs @@ -0,0 +1,46 @@ +use dioxus::prelude::*; +#[derive(Clone, PartialEq, Props)] +pub struct ScanBoxProps { + #[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 ScanBox(props: ScanBoxProps) -> 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 12v5.5" } + path { "d": "M17 3h2a2 2 0 012 2v2" } + path { "d": "M21 17v2a2 2 0 01-2 2h-2" } + path { "d": "M3 7V5a2 2 0 012-2h2" } + path { "d": "M7 21H5a2 2 0 01-2-2v-2" } + path { "d": "M7.264 9.252 12 12l4.737-2.748" } + path { "d": "M7.995 8.514A2 2 0 007 10.244v3.516a2 2 0 00.996 1.73l3 1.74a2 2 0 002.008 0l3-1.74A2 2 0 0017 13.76v-3.517a2 2 0 00-.995-1.73l-3-1.742a2 2 0 00-1.892-.064z" } + } + } +} diff --git a/packages/icon-name/src/lib.rs b/packages/icon-name/src/lib.rs index efd699bd..840e767d 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; 1747usize] = [ +pub static ICON_NAMES: [&str; 1748usize] = [ "a-arrow-down", "a-arrow-up", "a-large-small", @@ -386,7 +386,7 @@ pub static ICON_NAMES: [&str; 1747usize] = [ "circle-dot-dashed", "circle-ellipsis", "circle-equal", - "circle-euro-sign", + "circle-euro", "circle-fading-arrow-up", "circle-fading-plus", "circle-gauge", @@ -1302,6 +1302,7 @@ pub static ICON_NAMES: [&str; 1747usize] = [ "scaling", "scan", "scan-barcode", + "scan-box", "scan-eye", "scan-face", "scan-heart", diff --git a/packages/leptos/src/circle_euro.rs b/packages/leptos/src/circle_euro.rs new file mode 100644 index 00000000..03e3d8a0 --- /dev/null +++ b/packages/leptos/src/circle_euro.rs @@ -0,0 +1,37 @@ +use leptos::{prelude::*, svg::Svg}; +#[component] +pub fn CircleEuro( + #[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/ethernet_port.rs b/packages/leptos/src/ethernet_port.rs index 26069926..057103fb 100644 --- a/packages/leptos/src/ethernet_port.rs +++ b/packages/leptos/src/ethernet_port.rs @@ -29,11 +29,11 @@ pub fn EthernetPort( stroke-linecap="round" stroke-linejoin="round" > - - + + } } diff --git a/packages/leptos/src/file_box.rs b/packages/leptos/src/file_box.rs index 99f72f03..4389d4cb 100644 --- a/packages/leptos/src/file_box.rs +++ b/packages/leptos/src/file_box.rs @@ -29,11 +29,11 @@ pub fn FileBox( stroke-linecap="round" stroke-linejoin="round" > - - - - - + + + + + } } diff --git a/packages/leptos/src/hdmi_port.rs b/packages/leptos/src/hdmi_port.rs index 1a6c7cc5..dc0cfc28 100644 --- a/packages/leptos/src/hdmi_port.rs +++ b/packages/leptos/src/hdmi_port.rs @@ -29,8 +29,8 @@ pub fn HdmiPort( stroke-linecap="round" stroke-linejoin="round" > - - + + } } diff --git a/packages/leptos/src/lib.rs b/packages/leptos/src/lib.rs index 3b3b025d..d1e8e678 100644 --- a/packages/leptos/src/lib.rs +++ b/packages/leptos/src/lib.rs @@ -872,7 +872,7 @@ mod circle_ellipsis; #[cfg(feature = "math")] mod circle_equal; #[cfg(any(feature = "shopping", feature = "finance"))] -mod circle_euro_sign; +mod circle_euro; #[cfg(any(feature = "arrows", feature = "development"))] mod circle_fading_arrow_up; #[cfg(any(feature = "communication", feature = "social"))] @@ -1418,7 +1418,7 @@ mod file_archive; mod file_axis_3_d; #[cfg(feature = "files")] mod file_badge; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] mod file_box; #[cfg(any(feature = "files", feature = "development"))] mod file_braces; @@ -3167,6 +3167,13 @@ mod scaling; mod scan; #[cfg(any(feature = "shopping", feature = "devices"))] mod scan_barcode; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +mod scan_box; #[cfg(any( feature = "photography", feature = "multimedia", @@ -5310,7 +5317,7 @@ pub use circle_ellipsis::*; #[cfg(feature = "math")] pub use circle_equal::*; #[cfg(any(feature = "shopping", feature = "finance"))] -pub use circle_euro_sign::*; +pub use circle_euro::*; #[cfg(any(feature = "arrows", feature = "development"))] pub use circle_fading_arrow_up::*; #[cfg(any(feature = "communication", feature = "social"))] @@ -5856,7 +5863,7 @@ pub use file_archive::*; pub use file_axis_3_d::*; #[cfg(feature = "files")] pub use file_badge::*; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] pub use file_box::*; #[cfg(any(feature = "files", feature = "development"))] pub use file_braces::*; @@ -7605,6 +7612,13 @@ pub use scaling::*; pub use scan::*; #[cfg(any(feature = "shopping", feature = "devices"))] pub use scan_barcode::*; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +pub use scan_box::*; #[cfg(any( feature = "photography", feature = "multimedia", diff --git a/packages/leptos/src/scan_box.rs b/packages/leptos/src/scan_box.rs new file mode 100644 index 00000000..553f0c3e --- /dev/null +++ b/packages/leptos/src/scan_box.rs @@ -0,0 +1,41 @@ +use leptos::{prelude::*, svg::Svg}; +#[component] +pub fn ScanBox( + #[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_euro.rs b/packages/yew/src/circle_euro.rs new file mode 100644 index 00000000..0e040662 --- /dev/null +++ b/packages/yew/src/circle_euro.rs @@ -0,0 +1,49 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct CircleEuroProps { + #[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, +} +#[component] +pub fn CircleEuro(props: &CircleEuroProps) -> 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/ethernet_port.rs b/packages/yew/src/ethernet_port.rs index a79a3772..871d3bca 100644 --- a/packages/yew/src/ethernet_port.rs +++ b/packages/yew/src/ethernet_port.rs @@ -41,13 +41,13 @@ pub fn EthernetPort(props: &EthernetPortProps) -> Html { stroke-linecap="round" stroke-linejoin="round" > - - + + } } diff --git a/packages/yew/src/file_box.rs b/packages/yew/src/file_box.rs index c01dab30..3c3c0369 100644 --- a/packages/yew/src/file_box.rs +++ b/packages/yew/src/file_box.rs @@ -41,15 +41,15 @@ pub fn FileBox(props: &FileBoxProps) -> Html { stroke-linecap="round" stroke-linejoin="round" > + - - + - + } } diff --git a/packages/yew/src/hdmi_port.rs b/packages/yew/src/hdmi_port.rs index 8a0a151b..faeac85c 100644 --- a/packages/yew/src/hdmi_port.rs +++ b/packages/yew/src/hdmi_port.rs @@ -42,9 +42,9 @@ pub fn HdmiPort(props: &HdmiPortProps) -> Html { stroke-linejoin="round" > - + } } diff --git a/packages/yew/src/lib.rs b/packages/yew/src/lib.rs index dca1e7a5..88fdb825 100644 --- a/packages/yew/src/lib.rs +++ b/packages/yew/src/lib.rs @@ -874,7 +874,7 @@ mod circle_ellipsis; #[cfg(feature = "math")] mod circle_equal; #[cfg(any(feature = "shopping", feature = "finance"))] -mod circle_euro_sign; +mod circle_euro; #[cfg(any(feature = "arrows", feature = "development"))] mod circle_fading_arrow_up; #[cfg(any(feature = "communication", feature = "social"))] @@ -1420,7 +1420,7 @@ mod file_archive; mod file_axis_3_d; #[cfg(feature = "files")] mod file_badge; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] mod file_box; #[cfg(any(feature = "files", feature = "development"))] mod file_braces; @@ -3169,6 +3169,13 @@ mod scaling; mod scan; #[cfg(any(feature = "shopping", feature = "devices"))] mod scan_barcode; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +mod scan_box; #[cfg(any( feature = "photography", feature = "multimedia", @@ -5312,7 +5319,7 @@ pub use circle_ellipsis::*; #[cfg(feature = "math")] pub use circle_equal::*; #[cfg(any(feature = "shopping", feature = "finance"))] -pub use circle_euro_sign::*; +pub use circle_euro::*; #[cfg(any(feature = "arrows", feature = "development"))] pub use circle_fading_arrow_up::*; #[cfg(any(feature = "communication", feature = "social"))] @@ -5858,7 +5865,7 @@ pub use file_archive::*; pub use file_axis_3_d::*; #[cfg(feature = "files")] pub use file_badge::*; -#[cfg(feature = "files")] +#[cfg(any(feature = "files", feature = "design", feature = "development"))] pub use file_box::*; #[cfg(any(feature = "files", feature = "development"))] pub use file_braces::*; @@ -7607,6 +7614,13 @@ pub use scaling::*; pub use scan::*; #[cfg(any(feature = "shopping", feature = "devices"))] pub use scan_barcode::*; +#[cfg(any( + feature = "design", + feature = "devices", + feature = "shopping", + feature = "gaming" +))] +pub use scan_box::*; #[cfg(any( feature = "photography", feature = "multimedia", diff --git a/packages/yew/src/scan_box.rs b/packages/yew/src/scan_box.rs new file mode 100644 index 00000000..59b6b546 --- /dev/null +++ b/packages/yew/src/scan_box.rs @@ -0,0 +1,55 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct ScanBoxProps { + #[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, +} +#[component] +pub fn ScanBox(props: &ScanBoxProps) -> 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 de078c44..a962f2ae 100644 --- a/scripts/src/lib.rs +++ b/scripts/src/lib.rs @@ -10,5 +10,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 = "1.24.0"; +pub const UPSTREAM_GIT_REF: &str = "1.25.0"; pub const UPSTREAM_GITHUB_URL: &str = "https://github.com/lucide-icons/lucide";