@spark-ui/components
Version:
Spark (Leboncoin design system) components.
149 lines (143 loc) • 3.73 kB
JavaScript
import {
TextLink
} from "../chunk-STJ7NDWM.mjs";
import {
Icon
} from "../chunk-AESXFMCC.mjs";
import "../chunk-NBZKMCHF.mjs";
import {
Slot
} from "../chunk-4F5DOL57.mjs";
// src/breadcrumb/Breadcrumb.tsx
import { cx } from "class-variance-authority";
import { jsx } from "react/jsx-runtime";
var Breadcrumb = ({
className,
"aria-label": ariaLabel,
ref,
...rest
}) => {
return /* @__PURE__ */ jsx(
"nav",
{
"data-spark-component": "breadcrumb",
ref,
"aria-label": ariaLabel,
className: cx("text-caption text-neutral", className),
children: /* @__PURE__ */ jsx("ol", { className: cx("gap-sm flex flex-wrap items-center break-words"), ...rest })
}
);
};
Breadcrumb.displayName = "Breadcrumb.Breadcrumb";
// src/breadcrumb/BreadcrumbCurrentPage.tsx
import { cx as cx2 } from "class-variance-authority";
import { jsx as jsx2 } from "react/jsx-runtime";
var CurrentPage = ({
asChild = false,
className,
children,
...rest
}) => {
const Component = asChild ? Slot : "span";
return /* @__PURE__ */ jsx2(
Component,
{
"data-spark-component": "breadcrumb-current-page",
role: "link",
"aria-disabled": true,
"aria-current": "page",
className: cx2(
"inline! overflow-hidden font-bold text-ellipsis whitespace-nowrap text-current",
className
),
...rest,
children
}
);
};
CurrentPage.displayName = "Breadcrumb.CurrentPage";
// src/breadcrumb/BreadcrumbItem.tsx
import { cx as cx3 } from "class-variance-authority";
import { jsx as jsx3 } from "react/jsx-runtime";
var Item = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx3(
"li",
{
"data-spark-component": "breadcrumb-item",
className: cx3("min-w-none gap-sm inline-flex items-center", className),
...rest
}
);
};
Item.displayName = "Breadcrumb.Item";
// src/breadcrumb/BreadcrumbLink.tsx
import { cx as cx4 } from "class-variance-authority";
import { jsx as jsx4 } from "react/jsx-runtime";
var Link = ({
asChild = false,
className,
bold = true,
intent = "current",
underline = true,
href,
ref,
...rest
}) => {
const Component = asChild ? Slot : TextLink;
return /* @__PURE__ */ jsx4(
Component,
{
"data-spark-component": "breadcrumb-link",
href,
ref,
className: cx4("inline! overflow-hidden text-ellipsis whitespace-nowrap", className),
bold,
intent,
underline,
...rest
}
);
};
Link.displayName = "Breadcrumb.Link";
// src/breadcrumb/BreadcrumbSeparator.tsx
import { ArrowVerticalRight } from "@spark-ui/icons/ArrowVerticalRight";
import { cx as cx5 } from "class-variance-authority";
import { jsx as jsx5 } from "react/jsx-runtime";
var Separator = ({
asChild = false,
className,
children,
ref,
...rest
}) => {
const Component = asChild ? Slot : "li";
return /* @__PURE__ */ jsx5(
Component,
{
role: "presentation",
"aria-hidden": true,
"data-spark-component": "breadcrumb-separator",
ref,
className: cx5("gap-sm inline-flex items-center", className),
...rest,
children: children ?? /* @__PURE__ */ jsx5(Icon, { children: /* @__PURE__ */ jsx5(ArrowVerticalRight, {}) })
}
);
};
Separator.displayName = "Breadcrumb.Separator";
// src/breadcrumb/index.ts
var Breadcrumb2 = Object.assign(Breadcrumb, {
Item,
Link,
CurrentPage,
Separator
});
Breadcrumb2.displayName = "Breadcrumb";
Item.displayName = "Breadcrumb.Item";
Link.displayName = "Breadcrumb.Link";
CurrentPage.displayName = "Breadcrumb.CurrentPage";
Separator.displayName = "Breadcrumb.Separator";
export {
Breadcrumb2 as Breadcrumb
};
//# sourceMappingURL=index.mjs.map