@voilajsx/uikit
Version:
Cross-platform React components with beautiful themes and OKLCH color science
88 lines (87 loc) • 2.58 kB
JavaScript
import { jsx, jsxs } from "react/jsx-runtime";
import { forwardRef } from "react";
import { ChevronRight, MoreHorizontal } from "lucide-react";
import { Slot } from "@radix-ui/react-slot";
import { cn } from "./utils.js";
const Breadcrumb = forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
Breadcrumb.displayName = "Breadcrumb";
const BreadcrumbList = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
"ol",
{
ref,
className: cn(
"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
className
),
...props
}
));
BreadcrumbList.displayName = "BreadcrumbList";
const BreadcrumbItem = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
"li",
{
ref,
className: cn("inline-flex items-center gap-1.5", className),
...props
}
));
BreadcrumbItem.displayName = "BreadcrumbItem";
const BreadcrumbLink = forwardRef(({ asChild, className, ...props }, ref) => {
const Comp = asChild ? Slot : "a";
return /* @__PURE__ */ jsx(
Comp,
{
ref,
className: cn("transition-colors hover:text-foreground", className),
...props
}
);
});
BreadcrumbLink.displayName = "BreadcrumbLink";
const BreadcrumbPage = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
"span",
{
ref,
role: "link",
"aria-disabled": "true",
"aria-current": "page",
className: cn("font-normal text-foreground", className),
...props
}
));
BreadcrumbPage.displayName = "BreadcrumbPage";
const BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
"li",
{
role: "presentation",
"aria-hidden": "true",
className: cn("[&>svg]:size-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