Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
948 changes: 290 additions & 658 deletions Cargo.lock

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions book-examples/leptos/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ 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 }

[features]
default = [
"alert",
"badge",
"breadcrumb",
"button",
"card",
]
Expand All @@ -35,6 +37,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",
Expand Down
6 changes: 6 additions & 0 deletions book-examples/leptos/src/default.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ mod components;
mod alert;
#[cfg(feature = "badge")]
mod badge;
#[cfg(feature = "breadcrumb")]
mod breadcrumb;
#[cfg(feature = "button")]
mod button;
#[cfg(feature = "card")]
Expand All @@ -26,6 +28,10 @@ pub fn Default() -> impl MatchNestedRoutes + Clone {
{
component_view(self::badge::BadgeRoutes, ())
},
#[cfg(feature = "breadcrumb")]
{
component_view(self::breadcrumb::BreadcrumbRoutes, ())
},
#[cfg(feature = "button")]
{
component_view(self::button::ButtonRoutes, ())
Expand Down
28 changes: 28 additions & 0 deletions book-examples/leptos/src/default/breadcrumb.rs
Original file line number Diff line number Diff line change
@@ -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! {
<ParentRoute path=path!("/breadcrumb") view=Outlet>
<Route path=path!("/") view=breadcrumb::BreadcrumbDemo />
<Route path=path!("/dropdown") view=breadcrumb_dropdown::BreadcrumbDropdownDemo />
<Route path=path!("/ellipsis") view=breadcrumb_ellipsis::BreadcrumbEllipsisDemo/>
<Route path=path!("/link") view=breadcrumb_link::BreadcrumbLinkDemo/>
<Route path=path!("/responsive") view=breadcrumb_responsive::BreadcrumbResponsiveDemo/>
<Route path=path!("/separator") view=breadcrumb_separator::BreadcrumbSeparatorDemo/>
</ParentRoute>
}
.into_inner()
}
44 changes: 44 additions & 0 deletions book-examples/leptos/src/default/breadcrumb/breadcrumb.rs
Original file line number Diff line number Diff line change
@@ -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! {
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#/">"Home"</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
// TODO
// <DropdownMenu>
// <DropdownMenuTrigger class="flex items-center gap-1">
// <BreadcrumbEllipsis class="h-4 w-4" />
// <span class="sr-only">{"Toggle menu"}</span>
// </DropdownMenuTrigger>
// <DropdownMenuContent align="start">
// <DropdownMenuItem>{"Documentation"}</DropdownMenuItem>
// <DropdownMenuItem>{"Themes"}</DropdownMenuItem>
// <DropdownMenuItem>{"GitHub"}</DropdownMenuItem>
// </DropdownMenuContent>
// </DropdownMenu>
<BreadcrumbEllipsis class="h-4 w-4" />
<span class="sr-only">"Toggle menu"</span>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="#/docs/components">"Components"</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>"Breadcrumb"</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
}
}
44 changes: 44 additions & 0 deletions book-examples/leptos/src/default/breadcrumb/breadcrumb_dropdown.rs
Original file line number Diff line number Diff line change
@@ -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! {
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#/">"Home"</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<Slash />
</BreadcrumbSeparator>
<BreadcrumbItem>
// TODO
// <DropdownMenu>
// <DropdownMenuTrigger class="flex items-center gap-1">
// {"Components"}
// <ChevronDown class="h-4 w-4" />
// </DropdownMenuTrigger>
// <DropdownMenuContent align="start">
// <DropdownMenuItem>{"Documentation"}</DropdownMenuItem>
// <DropdownMenuItem>{"Themes"}</DropdownMenuItem>
// <DropdownMenuItem>{"GitHub"}</DropdownMenuItem>
// </DropdownMenuContent>
// </DropdownMenu>
"Components"
<ChevronDown size=16 />
</BreadcrumbItem>
<BreadcrumbSeparator>
<Slash />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbPage>"Breadcrumb"</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
}
}
45 changes: 45 additions & 0 deletions book-examples/leptos/src/default/breadcrumb/breadcrumb_ellipsis.rs
Original file line number Diff line number Diff line change
@@ -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! {
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink
as_child={Callback::new(|BreadcrumbLinkChildProps {class, ..}| {
view! {
<a class={class} href="#/">"Home"</a>
}
.into_any()
})}
/>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink
as_child={Callback::new(|BreadcrumbLinkChildProps {class, ..}| {
view! {
<a class={class} href="#/docs/components">"Components"</a>
}
.into_any()
})}
/>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>{"Breadcrumb"}</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
}
}
41 changes: 41 additions & 0 deletions book-examples/leptos/src/default/breadcrumb/breadcrumb_link.rs
Original file line number Diff line number Diff line change
@@ -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! {
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink
as_child={Callback::new(|BreadcrumbLinkChildProps {class, ..}| {
view! {
<a class={class} href="#/">"Home"</a>
}
.into_any()
})}
/>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink
as_child={Callback::new(|BreadcrumbLinkChildProps {class, ..}| {
view! {
<a class={class} href="#/components">"Components"</a>
}
.into_any()
})}
/>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>"Breadcrumb"</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
}
}
Original file line number Diff line number Diff line change
@@ -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! {
<h1>"Breadcrumb Responsive needs to be implemented"</h1>
}
}
Original file line number Diff line number Diff line change
@@ -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! {
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="#/">"Home"</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<Slash />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbLink href="#/components">"Components"</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<Slash />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbPage>"Breadcrumb"</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
}
}
2 changes: 2 additions & 0 deletions book-examples/leptos/src/default/components/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
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")]
Expand Down
6 changes: 6 additions & 0 deletions book-examples/leptos/src/new_york.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ mod components;
mod alert;
#[cfg(feature = "badge")]
mod badge;
#[cfg(feature = "breadcrumb")]
mod breadcrumb;
#[cfg(feature = "button")]
mod button;
#[cfg(feature = "card")]
Expand All @@ -26,6 +28,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, ())
Expand Down
28 changes: 28 additions & 0 deletions book-examples/leptos/src/new_york/breadcrumb.rs
Original file line number Diff line number Diff line change
@@ -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! {
<ParentRoute path=path!("/breadcrumb") view=Outlet>
<Route path=path!("/") view=breadcrumb::BreadcrumbDemo />
<Route path=path!("/dropdown") view=breadcrumb_dropdown::BreadcrumbDropdownDemo />
<Route path=path!("/ellipsis") view=breadcrumb_ellipsis::BreadcrumbEllipsisDemo/>
<Route path=path!("/link") view=breadcrumb_link::BreadcrumbLinkDemo/>
<Route path=path!("/responsive") view=breadcrumb_responsive::BreadcrumbResponsiveDemo/>
<Route path=path!("/separator") view=breadcrumb_separator::BreadcrumbSeparatorDemo/>
</ParentRoute>
}
.into_inner()
}
Loading