diff --git a/Cargo.lock b/Cargo.lock
index aa3ba82..64d9229 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2747,7 +2747,6 @@ dependencies = [
[[package]]
name = "radix-leptos-icons"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"leptos 0.6.15",
]
@@ -2755,7 +2754,6 @@ dependencies = [
[[package]]
name = "radix-yew-aspect-ratio"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"yew",
"yew-struct-component",
@@ -2765,7 +2763,6 @@ dependencies = [
[[package]]
name = "radix-yew-avatar"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"log",
"web-sys",
@@ -2777,8 +2774,6 @@ dependencies = [
[[package]]
name = "radix-yew-icons"
version = "0.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbfdd5e2c00a0db14eb1c071c94bb2e063286b21f6480cbd18d4ffe6430e4447"
dependencies = [
"yew",
]
@@ -2786,7 +2781,6 @@ dependencies = [
[[package]]
name = "radix-yew-label"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"web-sys",
"yew",
@@ -2797,7 +2791,6 @@ dependencies = [
[[package]]
name = "radix-yew-primitive"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"yew",
]
@@ -2805,7 +2798,6 @@ dependencies = [
[[package]]
name = "radix-yew-separator"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"yew",
"yew-struct-component",
@@ -2815,7 +2807,6 @@ dependencies = [
[[package]]
name = "radix-yew-switch"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"radix-yew-primitive",
"radix-yew-use-controllable-state",
@@ -2830,7 +2821,6 @@ dependencies = [
[[package]]
name = "radix-yew-use-controllable-state"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"yew",
]
@@ -2838,7 +2828,6 @@ dependencies = [
[[package]]
name = "radix-yew-use-previous"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"yew",
]
@@ -2846,7 +2835,6 @@ dependencies = [
[[package]]
name = "radix-yew-use-size"
version = "0.0.2"
-source = "git+https://github.com/RustForWeb/radix.git#aa5167ea0c8ae4498e2dc4ef1467fa87c428aa75"
dependencies = [
"web-sys",
"yew",
@@ -3496,8 +3484,23 @@ dependencies = [
"radix-leptos-icons",
"shadcn-ui-leptos-alert",
"shadcn-ui-leptos-badge",
+ "shadcn-ui-leptos-breadcrumb",
"shadcn-ui-leptos-button",
"shadcn-ui-leptos-card",
+ "shadcn-ui-leptos-pagination",
+]
+
+[[package]]
+name = "shadcn-ui-leptos-breadcrumb"
+version = "0.0.1"
+dependencies = [
+ "leptos 0.7.2",
+ "leptos-node-ref",
+ "leptos-struct-component",
+ "leptos-style",
+ "lucide-leptos",
+ "radix-leptos-icons",
+ "tailwind_fuse",
]
[[package]]
@@ -3522,6 +3525,21 @@ dependencies = [
"tailwind_fuse",
]
+[[package]]
+name = "shadcn-ui-leptos-pagination"
+version = "0.0.1"
+dependencies = [
+ "leptos 0.7.2",
+ "leptos-node-ref",
+ "leptos-struct-component",
+ "leptos-style",
+ "lucide-leptos",
+ "radix-leptos-icons",
+ "shadcn-ui-leptos-button",
+ "shadcn-ui-leptos-utils",
+ "tailwind_fuse",
+]
+
[[package]]
name = "shadcn-ui-leptos-utils"
version = "0.0.1"
@@ -4618,9 +4636,10 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]]
name = "xxhash-rust"
-version = "0.8.13"
+version = "0.8.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08fd76779ae1883bbf1e46c2c46a75a0c4e37c445e68a24b01479d438f26ae6"
+checksum = "d7d48f1b18be023c95e7b75f481cac649d74be7c507ff4a407c55cfb957f7934"
+
[[package]]
name = "yansi"
diff --git a/book-examples/leptos/Cargo.toml b/book-examples/leptos/Cargo.toml
index d93efac..cc69332 100644
--- a/book-examples/leptos/Cargo.toml
+++ b/book-examples/leptos/Cargo.toml
@@ -19,15 +19,19 @@ log.workspace = true
radix-leptos-icons = { workspace = true, optional = true }
shadcn-ui-leptos-alert = { path = "../../packages/leptos/alert" , optional = true }
shadcn-ui-leptos-badge = { path = "../../packages/leptos/badge", optional = true }
+shadcn-ui-leptos-breadcrumb = { path = "../../packages/leptos/breadcrumb", optional = true }
shadcn-ui-leptos-button = { path = "../../packages/leptos/button", optional = true }
shadcn-ui-leptos-card = { path = "../../packages/leptos/card", optional = true }
+shadcn-ui-leptos-pagination = { path = "../../packages/leptos/pagination", optional = true}
[features]
default = [
"alert",
"badge",
+ "breadcrumb",
"button",
"card",
+ "pagination",
]
alert = [
"dep:lucide-leptos",
@@ -35,6 +39,11 @@ alert = [
"dep:shadcn-ui-leptos-alert",
]
badge = ["dep:shadcn-ui-leptos-badge"]
+breadcrumb = [
+ "dep:lucide-leptos",
+ "dep:radix-leptos-icons",
+ "dep:shadcn-ui-leptos-breadcrumb",
+]
button = [
"dep:lucide-leptos",
"dep:radix-leptos-icons",
@@ -45,3 +54,4 @@ card = [
"dep:shadcn-ui-leptos-button",
"dep:shadcn-ui-leptos-card",
]
+pagination = ["dep:shadcn-ui-leptos-pagination"]
diff --git a/book-examples/leptos/src/default.rs b/book-examples/leptos/src/default.rs
index a3148f2..52a1599 100644
--- a/book-examples/leptos/src/default.rs
+++ b/book-examples/leptos/src/default.rs
@@ -2,13 +2,22 @@ mod components;
#[cfg(feature = "alert")]
mod alert;
+
#[cfg(feature = "badge")]
mod badge;
+
+#[cfg(feature = "breadcrumb")]
+mod breadcrumb;
+
#[cfg(feature = "button")]
mod button;
+
#[cfg(feature = "card")]
mod card;
+#[cfg(feature = "pagination")]
+mod pagination;
+
use leptos::prelude::*;
use leptos_router::{
components::{Outlet, ParentRoute},
@@ -22,6 +31,10 @@ pub fn Default() -> impl MatchNestedRoutes + Clone {
{
component_view(self::alert::AlertRoutes, ())
},
+ #[cfg(feature = "breadcrumb")]
+ {
+ component_view(self::breadcrumb::BreadcrumbRoutes, ())
+ },
#[cfg(feature = "badge")]
{
component_view(self::badge::BadgeRoutes, ())
@@ -34,6 +47,10 @@ pub fn Default() -> impl MatchNestedRoutes + Clone {
{
component_view(self::card::CardRoutes, ())
},
+ #[cfg(feature = "pagination")]
+ {
+ component_view(self::pagination::PaginationRoutes, ())
+ },
);
view! {
diff --git a/book-examples/leptos/src/default/breadcrumb.rs b/book-examples/leptos/src/default/breadcrumb.rs
new file mode 100644
index 0000000..05b0200
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb.rs
@@ -0,0 +1,28 @@
+#[allow(clippy::module_inception)]
+mod breadcrumb;
+mod breadcrumb_dropdown;
+mod breadcrumb_ellipsis;
+mod breadcrumb_link;
+mod breadcrumb_responsive;
+mod breadcrumb_separator;
+
+use leptos::prelude::*;
+use leptos_router::{
+ components::{Outlet, ParentRoute, Route},
+ path, MatchNestedRoutes,
+};
+
+#[component(transparent)]
+pub fn BreadcrumbRoutes() -> impl MatchNestedRoutes + Clone {
+ view! {
+
+
+
+
+
+
+
+
+ }
+ .into_inner()
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb.rs
new file mode 100644
index 0000000..d9136da
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb.rs
@@ -0,0 +1,44 @@
+use leptos::prelude::*;
+
+use crate::default::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage,
+ BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+ // TODO
+ //
+ //
+ //
+ // {"Toggle menu"}
+ //
+ //
+ // {"Documentation"}
+ // {"Themes"}
+ // {"GitHub"}
+ //
+ //
+
+ "Toggle menu"
+
+
+
+ "Components"
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb_dropdown.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb_dropdown.rs
new file mode 100644
index 0000000..0a98532
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb_dropdown.rs
@@ -0,0 +1,44 @@
+use leptos::prelude::*;
+use lucide_leptos::{ChevronDown, Slash};
+
+use crate::default::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbDropdownDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+
+
+ // TODO
+ //
+ //
+ // {"Components"}
+ //
+ //
+ //
+ // {"Documentation"}
+ // {"Themes"}
+ // {"GitHub"}
+ //
+ //
+ "Components"
+
+
+
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb_ellipsis.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb_ellipsis.rs
new file mode 100644
index 0000000..ec6f301
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb_ellipsis.rs
@@ -0,0 +1,45 @@
+use leptos::prelude::*;
+
+use crate::default::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbLinkChildProps,
+ BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbEllipsisDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+
+
+
+
+ "Components"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ {"Breadcrumb"}
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb_link.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb_link.rs
new file mode 100644
index 0000000..8714b68
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb_link.rs
@@ -0,0 +1,41 @@
+use leptos::prelude::*;
+
+use crate::default::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbLinkChildProps, BreadcrumbList,
+ BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbLinkDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ "Components"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb_responsive.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb_responsive.rs
new file mode 100644
index 0000000..9e079ca
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb_responsive.rs
@@ -0,0 +1,13 @@
+use leptos::prelude::*;
+
+// use crate::default::components::ui::breadcrumb::{
+// Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage,
+// BreadcrumbSeparator,
+// };
+
+#[component]
+pub fn BreadcrumbResponsiveDemo() -> impl IntoView {
+ view! {
+
"Breadcrumb Responsive needs to be implemented"
+ }
+}
diff --git a/book-examples/leptos/src/default/breadcrumb/breadcrumb_separator.rs b/book-examples/leptos/src/default/breadcrumb/breadcrumb_separator.rs
new file mode 100644
index 0000000..f5cc1d6
--- /dev/null
+++ b/book-examples/leptos/src/default/breadcrumb/breadcrumb_separator.rs
@@ -0,0 +1,31 @@
+use leptos::prelude::*;
+use lucide_leptos::Slash;
+
+use crate::default::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbSeparatorDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+
+
+ "Components"
+
+
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/default/components/ui.rs b/book-examples/leptos/src/default/components/ui.rs
index a95ce66..ea967bc 100644
--- a/book-examples/leptos/src/default/components/ui.rs
+++ b/book-examples/leptos/src/default/components/ui.rs
@@ -2,9 +2,18 @@
#[cfg(feature = "alert")]
pub use shadcn_ui_leptos_alert::default as alert;
+
#[cfg(feature = "badge")]
pub use shadcn_ui_leptos_badge::default as badge;
+
+#[cfg(feature = "breadcrumb")]
+pub use shadcn_ui_leptos_breadcrumb::default as breadcrumb;
+
#[cfg(any(feature = "button", feature = "card"))]
pub use shadcn_ui_leptos_button::default as button;
+
#[cfg(feature = "card")]
pub use shadcn_ui_leptos_card::default as card;
+
+#[cfg(feature = "pagination")]
+pub use shadcn_ui_leptos_pagination::default as pagination;
diff --git a/book-examples/leptos/src/default/pagination.rs b/book-examples/leptos/src/default/pagination.rs
new file mode 100644
index 0000000..6706d0f
--- /dev/null
+++ b/book-examples/leptos/src/default/pagination.rs
@@ -0,0 +1,18 @@
+#[allow(clippy::module_inception)]
+mod pagination;
+
+use leptos::prelude::*;
+use leptos_router::{
+ components::{Outlet, ParentRoute, Route},
+ path, MatchNestedRoutes,
+};
+
+#[component(transparent)]
+pub fn PaginationRoutes() -> impl MatchNestedRoutes + Clone {
+ view! {
+
+
+
+ }
+ .into_inner()
+}
diff --git a/book-examples/leptos/src/default/pagination/pagination.rs b/book-examples/leptos/src/default/pagination/pagination.rs
new file mode 100644
index 0000000..de2b170
--- /dev/null
+++ b/book-examples/leptos/src/default/pagination/pagination.rs
@@ -0,0 +1,39 @@
+use leptos::prelude::*;
+
+use crate::default::components::ui::pagination::{
+ Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink,
+ PaginationNext, PaginationPrevious,
+};
+
+#[component]
+pub fn PaginationDemo() -> impl IntoView {
+ view! {
+
+
+
+
+
+
+ "1"
+
+
+
+ "2"
+
+
+
+ "3"
+
+
+
+
+
+
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york.rs b/book-examples/leptos/src/new_york.rs
index 90e0fac..d396d6a 100644
--- a/book-examples/leptos/src/new_york.rs
+++ b/book-examples/leptos/src/new_york.rs
@@ -2,13 +2,22 @@ mod components;
#[cfg(feature = "alert")]
mod alert;
+
#[cfg(feature = "badge")]
mod badge;
+
+#[cfg(feature = "breadcrumb")]
+mod breadcrumb;
+
#[cfg(feature = "button")]
mod button;
+
#[cfg(feature = "card")]
mod card;
+#[cfg(feature = "pagination")]
+mod pagination;
+
use leptos::prelude::*;
use leptos_router::{
components::{Outlet, ParentRoute},
@@ -26,6 +35,10 @@ pub fn NewYork() -> impl MatchNestedRoutes + Clone {
{
component_view(self::badge::BadgeRoutes, ())
},
+ #[cfg(feature = "breadcrumb")]
+ {
+ component_view(self::breadcrumb::BreadcrumbRoutes, ())
+ },
#[cfg(feature = "button")]
{
component_view(self::button::ButtonRoutes, ())
@@ -34,6 +47,10 @@ pub fn NewYork() -> impl MatchNestedRoutes + Clone {
{
component_view(self::card::CardRoutes, ())
},
+ #[cfg(feature = "pagination")]
+ {
+ component_view(self::pagination::PaginationRoutes, ())
+ },
);
view! {
diff --git a/book-examples/leptos/src/new_york/breadcrumb.rs b/book-examples/leptos/src/new_york/breadcrumb.rs
new file mode 100644
index 0000000..de037a2
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb.rs
@@ -0,0 +1,28 @@
+#[allow(clippy::module_inception)]
+mod breadcrumb;
+mod breadcrumb_dropdown;
+mod breadcrumb_ellipsis;
+mod breadcrumb_link;
+mod breadcrumb_responsive;
+mod breadcrumb_separator;
+
+use leptos::prelude::*;
+use leptos_router::{
+ components::{Outlet, ParentRoute, Route},
+ path, MatchNestedRoutes,
+};
+
+#[component(transparent)]
+pub fn BreadcrumbRoutes() -> impl MatchNestedRoutes + Clone {
+ view! {
+
+
+
+
+
+
+
+
+ }
+ .into_inner()
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb.rs
new file mode 100644
index 0000000..365edd1
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb.rs
@@ -0,0 +1,44 @@
+use leptos::prelude::*;
+
+use crate::new_york::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage,
+ BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+ // TODO
+ //
+ //
+ //
+ // {"Toggle menu"}
+ //
+ //
+ // {"Documentation"}
+ // {"Themes"}
+ // {"GitHub"}
+ //
+ //
+
+ "Toggle menu"
+
+
+
+ "Components"
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_dropdown.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_dropdown.rs
new file mode 100644
index 0000000..5547c3a
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_dropdown.rs
@@ -0,0 +1,44 @@
+use leptos::prelude::*;
+use lucide_leptos::{ChevronDown, Slash};
+
+use crate::new_york::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbDropdownDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+
+
+ // TODO
+ //
+ //
+ // {"Components"}
+ //
+ //
+ //
+ // {"Documentation"}
+ // {"Themes"}
+ // {"GitHub"}
+ //
+ //
+ "Components"
+
+
+
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_ellipsis.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_ellipsis.rs
new file mode 100644
index 0000000..ecd97d1
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_ellipsis.rs
@@ -0,0 +1,45 @@
+use leptos::prelude::*;
+
+use crate::new_york::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbLinkChildProps,
+ BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbEllipsisDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+
+
+
+
+ "Components"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ {"Breadcrumb"}
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_link.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_link.rs
new file mode 100644
index 0000000..73311ff
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_link.rs
@@ -0,0 +1,41 @@
+use leptos::prelude::*;
+
+use crate::new_york::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbLinkChildProps, BreadcrumbList,
+ BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbLinkDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ "Components"
+ }
+ .into_any()
+ })}
+ />
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_responsive.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_responsive.rs
new file mode 100644
index 0000000..9e079ca
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_responsive.rs
@@ -0,0 +1,13 @@
+use leptos::prelude::*;
+
+// use crate::default::components::ui::breadcrumb::{
+// Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage,
+// BreadcrumbSeparator,
+// };
+
+#[component]
+pub fn BreadcrumbResponsiveDemo() -> impl IntoView {
+ view! {
+ "Breadcrumb Responsive needs to be implemented"
+ }
+}
diff --git a/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_separator.rs b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_separator.rs
new file mode 100644
index 0000000..e263e58
--- /dev/null
+++ b/book-examples/leptos/src/new_york/breadcrumb/breadcrumb_separator.rs
@@ -0,0 +1,31 @@
+use leptos::prelude::*;
+use lucide_leptos::Slash;
+
+use crate::new_york::components::ui::breadcrumb::{
+ Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
+};
+
+#[component]
+pub fn BreadcrumbSeparatorDemo() -> impl IntoView {
+ view! {
+
+
+
+ "Home"
+
+
+
+
+
+ "Components"
+
+
+
+
+
+ "Breadcrumb"
+
+
+
+ }
+}
diff --git a/book-examples/leptos/src/new_york/components/ui.rs b/book-examples/leptos/src/new_york/components/ui.rs
index 92b7a22..0a501db 100644
--- a/book-examples/leptos/src/new_york/components/ui.rs
+++ b/book-examples/leptos/src/new_york/components/ui.rs
@@ -2,9 +2,18 @@
#[cfg(feature = "alert")]
pub use shadcn_ui_leptos_alert::new_york as alert;
+
#[cfg(feature = "badge")]
pub use shadcn_ui_leptos_badge::new_york as badge;
+
+#[cfg(feature = "breadcrumb")]
+pub use shadcn_ui_leptos_breadcrumb::new_york as breadcrumb;
+
#[cfg(any(feature = "button", feature = "card"))]
pub use shadcn_ui_leptos_button::new_york as button;
+
#[cfg(feature = "card")]
pub use shadcn_ui_leptos_card::new_york as card;
+
+#[cfg(feature = "pagination")]
+pub use shadcn_ui_leptos_pagination::new_york as pagination;
diff --git a/book-examples/leptos/src/new_york/pagination.rs b/book-examples/leptos/src/new_york/pagination.rs
new file mode 100644
index 0000000..6706d0f
--- /dev/null
+++ b/book-examples/leptos/src/new_york/pagination.rs
@@ -0,0 +1,18 @@
+#[allow(clippy::module_inception)]
+mod pagination;
+
+use leptos::prelude::*;
+use leptos_router::{
+ components::{Outlet, ParentRoute, Route},
+ path, MatchNestedRoutes,
+};
+
+#[component(transparent)]
+pub fn PaginationRoutes() -> impl MatchNestedRoutes + Clone {
+ view! {
+
+
+
+ }
+ .into_inner()
+}
diff --git a/book-examples/leptos/src/new_york/pagination/pagination.rs b/book-examples/leptos/src/new_york/pagination/pagination.rs
new file mode 100644
index 0000000..08d1630
--- /dev/null
+++ b/book-examples/leptos/src/new_york/pagination/pagination.rs
@@ -0,0 +1,39 @@
+use leptos::prelude::*;
+
+use crate::new_york::components::ui::pagination::{
+ Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink,
+ PaginationNext, PaginationPrevious,
+};
+
+#[component]
+pub fn PaginationDemo() -> impl IntoView {
+ view! {
+
+
+
+
+
+
+ "1"
+
+
+
+ "2"
+
+
+
+ "3"
+
+
+
+
+
+
+
+
+
+ }
+}
diff --git a/packages/leptos/README.md b/packages/leptos/README.md
new file mode 100644
index 0000000..e418402
--- /dev/null
+++ b/packages/leptos/README.md
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+shadcn-ui-leptos-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..5c62f65
--- /dev/null
+++ b/packages/leptos/breadcrumb/Cargo.toml
@@ -0,0 +1,20 @@
+[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-leptos.workspace = true
+radix-leptos-icons = { workspace = true }
+tailwind_fuse.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..a690b18
--- /dev/null
+++ b/packages/leptos/breadcrumb/src/default.rs
@@ -0,0 +1,203 @@
+use leptos::{ev::MouseEvent, prelude::*};
+use leptos_node_ref::AnyNodeRef;
+use leptos_struct_component::{struct_component, StructComponent};
+use leptos_style::Style;
+use lucide_leptos::{ChevronRight, Ellipsis};
+use tailwind_fuse::*;
+
+#[component]
+pub fn Breadcrumb(
+ // Global attributes
+ #[prop(into, optional)] class: MaybeProp,
+ #[prop(into, optional)] id: MaybeProp,
+ #[prop(into, optional)] style: Signal