From d552a5d0f5f058cc9365899dbe6795e1cbb84519 Mon Sep 17 00:00:00 2001 From: Israel Barbara Date: Tue, 17 Dec 2024 16:38:04 -0300 Subject: [PATCH 01/10] Initial Project breadcrumb --- Cargo.lock | 12 ++++++++++++ packages/leptos/README.md | 21 +++++++++++++++++++++ packages/leptos/breadcrumb/Cargo.toml | 19 +++++++++++++++++++ packages/leptos/breadcrumb/src/lib.rs | 14 ++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 packages/leptos/README.md create mode 100644 packages/leptos/breadcrumb/Cargo.toml create mode 100644 packages/leptos/breadcrumb/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index f8a2c06..2bce05f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3561,6 +3561,18 @@ dependencies = [ "shadcn-ui-leptos-card", ] +[[package]] +name = "shadcn-ui-leptos-breadcrumb" +version = "0.0.1" +dependencies = [ + "lucide-yew", + "radix-yew-icons", + "tailwind_fuse", + "yew", + "yew-struct-component", + "yew-style", +] + [[package]] name = "shadcn-ui-leptos-button" version = "0.0.1" diff --git a/packages/leptos/README.md b/packages/leptos/README.md new file mode 100644 index 0000000..87f83a0 --- /dev/null +++ b/packages/leptos/README.md @@ -0,0 +1,21 @@ +

+ + Rust shadcn/ui Logo + +

+ +

shadcn-ui-yew-breaddcrumb

+ +Displays the path to the current resource using a hierarchy of links. + +[Rust shadcn/ui](https://github.com/RustForWeb/shadcn-ui) is a Rust port of [shadcn/ui](https://ui.shadcn.com/). + +## Documentation + +See [the Rust shadcn/ui book](https://shadcn-ui.rustforweb.org/) for documentation. + +## Rust For Web + +The Rust shadcn/ui project is part of the [Rust For Web](https://github.com/RustForWeb). + +[Rust For Web](https://github.com/RustForWeb) creates and ports web UI libraries for Rust. All projects are free and open source. diff --git a/packages/leptos/breadcrumb/Cargo.toml b/packages/leptos/breadcrumb/Cargo.toml new file mode 100644 index 0000000..cca47a4 --- /dev/null +++ b/packages/leptos/breadcrumb/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "shadcn-ui-leptos-breadcrumb" +description = "Leptos port of shadcn/ui Breadcrumb." +homepage = "https://shadcn-ui.rustforweb.org/components/breadcrumb.html" +publish = false + +authors.workspace = true +edition.workspace = true +license.workspace = true +repository.workspace = true +version.workspace = true + +[dependencies] +lucide-yew.workspace = true +radix-yew-icons = { workspace = true } +tailwind_fuse.workspace = true +yew.workspace = true +yew-struct-component.workspace = true +yew-style.workspace = true diff --git a/packages/leptos/breadcrumb/src/lib.rs b/packages/leptos/breadcrumb/src/lib.rs new file mode 100644 index 0000000..b93cf3f --- /dev/null +++ b/packages/leptos/breadcrumb/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: u64, right: u64) -> u64 { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} From fed56e97abe812e966fd0d5b2a9c812b30c12e8c Mon Sep 17 00:00:00 2001 From: Israel Barbara Date: Tue, 17 Dec 2024 22:38:28 -0300 Subject: [PATCH 02/10] Add leptos breadcrumb implementation --- Cargo.lock | 11 +- packages/leptos/README.md | 2 +- packages/leptos/breadcrumb/Cargo.toml | 11 +- packages/leptos/breadcrumb/src/default.rs | 210 +++++++++++++++++++++ packages/leptos/breadcrumb/src/lib.rs | 20 +- packages/leptos/breadcrumb/src/new_york.rs | 210 +++++++++++++++++++++ 6 files changed, 440 insertions(+), 24 deletions(-) create mode 100644 packages/leptos/breadcrumb/src/default.rs create mode 100644 packages/leptos/breadcrumb/src/new_york.rs diff --git a/Cargo.lock b/Cargo.lock index 2bce05f..f45e334 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3565,12 +3565,13 @@ dependencies = [ name = "shadcn-ui-leptos-breadcrumb" version = "0.0.1" dependencies = [ - "lucide-yew", - "radix-yew-icons", + "leptos 0.7.0", + "leptos-node-ref", + "leptos-struct-component", + "leptos-style", + "lucide-leptos", + "radix-leptos-icons", "tailwind_fuse", - "yew", - "yew-struct-component", - "yew-style", ] [[package]] diff --git a/packages/leptos/README.md b/packages/leptos/README.md index 87f83a0..e418402 100644 --- a/packages/leptos/README.md +++ b/packages/leptos/README.md @@ -4,7 +4,7 @@

-

shadcn-ui-yew-breaddcrumb

+

shadcn-ui-leptos-breaddcrumb

Displays the path to the current resource using a hierarchy of links. diff --git a/packages/leptos/breadcrumb/Cargo.toml b/packages/leptos/breadcrumb/Cargo.toml index cca47a4..5c62f65 100644 --- a/packages/leptos/breadcrumb/Cargo.toml +++ b/packages/leptos/breadcrumb/Cargo.toml @@ -11,9 +11,10 @@ repository.workspace = true version.workspace = true [dependencies] -lucide-yew.workspace = true -radix-yew-icons = { workspace = true } +lucide-leptos.workspace = true +radix-leptos-icons = { workspace = true } tailwind_fuse.workspace = true -yew.workspace = true -yew-struct-component.workspace = true -yew-style.workspace = true +leptos.workspace = true +leptos-node-ref.workspace = true +leptos-struct-component.workspace = true +leptos-style.workspace = true diff --git a/packages/leptos/breadcrumb/src/default.rs b/packages/leptos/breadcrumb/src/default.rs new file mode 100644 index 0000000..4622713 --- /dev/null +++ b/packages/leptos/breadcrumb/src/default.rs @@ -0,0 +1,210 @@ +use leptos_node_ref::AnyNodeRef; +use lucide_leptos::{ChevronRight, Ellipsis}; +use tailwind_fuse::*; +use leptos::{ev::MouseEvent, prelude::*} ; +use leptos_struct_component::{struct_component, StructComponent}; +use leptos_style::Style; + + + +#[component] +pub fn BreadCrumb( + // Global attributes + #[prop(into, optional)] class: MaybeProp, + #[prop(into, optional)] id: MaybeProp, + #[prop(into, optional)] style: Signal