@arolariu/components
Version:
🎨 70+ beautiful, accessible React components built on Radix UI. TypeScript-first, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡
69 lines (68 loc) • 2.9 kB
JavaScript
"use client";
import { jsx, jsxs } from "react/jsx-runtime";
import { Slot } from "@radix-ui/react-slot";
import { ChevronRight, MoreHorizontal } from "lucide-react";
import { forwardRef } from "react";
import { cn } from "../../lib/utilities.js";
const Breadcrumb = /*#__PURE__*/ forwardRef(({ ...props }, ref)=>/*#__PURE__*/ jsx("nav", {
ref: ref,
"aria-label": "breadcrumb",
...props
}));
Breadcrumb.displayName = "Breadcrumb";
const BreadcrumbList = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("ol", {
ref: ref,
className: cn("flex flex-wrap items-center gap-1.5 text-sm break-words text-neutral-500 sm:gap-2.5 dark:text-neutral-400", className),
...props
}));
BreadcrumbList.displayName = "BreadcrumbList";
const BreadcrumbItem = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("li", {
ref: ref,
className: cn("inline-flex items-center gap-1.5", className),
...props
}));
BreadcrumbItem.displayName = "BreadcrumbItem";
const BreadcrumbLink = /*#__PURE__*/ forwardRef(({ asChild, className, ...props }, ref)=>{
const Comp = asChild ? Slot : "a";
return /*#__PURE__*/ jsx(Comp, {
ref: ref,
className: cn("transition-colors hover:text-neutral-950 dark:hover:text-neutral-50", className),
...props
});
});
BreadcrumbLink.displayName = "BreadcrumbLink";
const BreadcrumbPage = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("span", {
ref: ref,
role: "link",
"aria-disabled": "true",
"aria-current": "page",
className: cn("font-normal text-neutral-950 dark:text-neutral-50", className),
...props
}));
BreadcrumbPage.displayName = "BreadcrumbPage";
const BreadcrumbSeparator = ({ children, className, ...props })=>/*#__PURE__*/ jsx("li", {
role: "presentation",
"aria-hidden": "true",
className: cn("[&>svg]:h-3.5 [&>svg]:w-3.5", className),
...props,
children: children ?? /*#__PURE__*/ jsx(ChevronRight, {})
});
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
const BreadcrumbEllipsis = ({ className, ...props })=>/*#__PURE__*/ jsxs("span", {
role: "presentation",
"aria-hidden": "true",
className: cn("flex h-9 w-9 items-center justify-center", className),
...props,
children: [
/*#__PURE__*/ jsx(MoreHorizontal, {
className: "h-4 w-4"
}),
/*#__PURE__*/ jsx("span", {
className: "sr-only",
children: "More"
})
]
});
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
//# sourceMappingURL=breadcrumb.js.map