// components/Breadcrumbs.tsx import React, { ReactElement } from "react" import { ChevronRight } from "lucide-react" import { cn } from "../../design-lib/utils" import Stack from "../molecules/stack" interface BreadcrumbsProps { children: React.ReactNode } interface BreadcrumbsItemProps { last?: boolean active?: boolean onClick?: () => void children: React.ReactNode disabled?: boolean } const Breadcrumbs: React.FC = ({ children }) => { const childArray = React.Children.toArray(children) as ReactElement[] return ( {React.Children.map(childArray, (child, index) => { return React.cloneElement(child, { last: index === childArray.length - 1, }) })} ) } const BreadcrumbsItem: React.FC = ({ last, active, onClick, children, disabled, }) => { return (
e.key === "Enter" && onClick?.()} className={cn( "cursor-pointer px-2 py-1 text-sm duration-200 ease-in-out hover:text-foreground", `${active ? "text-foreground" : ""}`, "focus-within:text-foreground focus:outline-none", { "pointer-events-none text-muted-foreground": disabled } )} aria-current={active ? "page" : undefined} > {children}
{!last && }
) } export { Breadcrumbs, BreadcrumbsItem }