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, +) -> 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/folder_bookmark.rs b/packages/leptos/src/folder_bookmark.rs new file mode 100644 index 00000000..dfa9d3a0 --- /dev/null +++ b/packages/leptos/src/folder_bookmark.rs @@ -0,0 +1,36 @@ +use leptos::{prelude::*, svg::Svg}; +#[component] +pub fn FolderBookmark( + #[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 f41895a7..010de5c0 100644 --- a/packages/leptos/src/lib.rs +++ b/packages/leptos/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/yew/src/astroid.rs b/packages/yew/src/astroid.rs new file mode 100644 index 00000000..ea08226d --- /dev/null +++ b/packages/yew/src/astroid.rs @@ -0,0 +1,49 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct AstroidProps { + #[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 Astroid(props: &AstroidProps) -> 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/folder_bookmark.rs b/packages/yew/src/folder_bookmark.rs new file mode 100644 index 00000000..828d132c --- /dev/null +++ b/packages/yew/src/folder_bookmark.rs @@ -0,0 +1,50 @@ +use yew::prelude::*; +#[derive(PartialEq, Properties)] +pub struct FolderBookmarkProps { + #[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 FolderBookmark(props: &FolderBookmarkProps) -> 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 16a20128..be2b710d 100644 --- a/packages/yew/src/lib.rs +++ b/packages/yew/src/lib.rs @@ -226,6 +226,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")] @@ -1549,6 +1551,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; @@ -4521,6 +4525,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")] @@ -5844,6 +5850,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/scripts/src/lib.rs b/scripts/src/lib.rs index 49507803..b029262f 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 = "1.11.0"; +pub const UPSTREAM_GIT_REF: &str = "1.12.0"; pub const UPSTREAM_GITHUB_URL: &str = "https://github.com/lucide-icons/lucide";