Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/pagination #208

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c13939e
Initial Project breadcrumb
israelsilvabarbara Dec 17, 2024
17ed23c
Add leptos breadcrumb implementation
israelsilvabarbara Dec 18, 2024
c08171d
Fix naming
israelsilvabarbara Dec 18, 2024
c793194
Change Children component
israelsilvabarbara Dec 18, 2024
d82c3d6
Fix children optional parameters
israelsilvabarbara Dec 19, 2024
6c7c570
book-examples new-york
israelsilvabarbara Dec 19, 2024
1dfa671
book-examples default
israelsilvabarbara Dec 19, 2024
9a1ce6d
book-examples integration
israelsilvabarbara Dec 19, 2024
651605d
Fix cargo fmt
israelsilvabarbara Dec 19, 2024
e9f8127
Fix TODO error
israelsilvabarbara Dec 20, 2024
f8b7a02
Merge and removed radix/icons features
israelsilvabarbara Dec 24, 2024
5d03cec
Cargo fmt
israelsilvabarbara Dec 24, 2024
507b7fb
Init pagination
israelsilvabarbara Dec 24, 2024
5a2412b
Fix wrong path for pagination
israelsilvabarbara Dec 24, 2024
85942a5
Work in progress
israelsilvabarbara Dec 24, 2024
369684b
work in progress
israelsilvabarbara Dec 24, 2024
c632729
default implementation/lack on-click
israelsilvabarbara Dec 26, 2024
4686820
Add implementation default/new-york/fix on_click
israelsilvabarbara Dec 26, 2024
7e22155
Add MaybeCallback
israelsilvabarbara Dec 26, 2024
fe5a721
Add book-examples
israelsilvabarbara Dec 26, 2024
4997bc8
Add Handler:from(MaybeCallback<T>)
israelsilvabarbara Dec 26, 2024
ffbfb72
Add book-examples
israelsilvabarbara Dec 26, 2024
9871fad
cargo fmt
israelsilvabarbara Dec 26, 2024
235ca3a
Fix derive default
israelsilvabarbara Dec 27, 2024
f96aeed
Merge branch 'main' into feature/pagination
israelsilvabarbara Dec 27, 2024
67b1ae6
Fix MaybeProp without move
israelsilvabarbara Dec 27, 2024
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
47 changes: 33 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions book-examples/leptos/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,31 @@ 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",
"dep:radix-leptos-icons",
"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 All @@ -45,3 +54,4 @@ card = [
"dep:shadcn-ui-leptos-button",
"dep:shadcn-ui-leptos-card",
]
pagination = ["dep:shadcn-ui-leptos-pagination"]
17 changes: 17 additions & 0 deletions book-examples/leptos/src/default.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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},
Expand All @@ -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, ())
Expand All @@ -34,6 +47,10 @@ pub fn Default() -> impl MatchNestedRoutes + Clone {
{
component_view(self::card::CardRoutes, ())
},
#[cfg(feature = "pagination")]
{
component_view(self::pagination::PaginationRoutes, ())
},
);

view! {
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>
}
}
Loading
Loading