@brainfish-ai/components 0.24.8 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,27 @@
1
+ import * as React_2 from 'react';
2
+
3
+ export declare const Breadcrumb: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
4
+ separator?: React_2.ReactNode;
5
+ } & React_2.RefAttributes<HTMLElement>>;
6
+
7
+ export declare const BreadcrumbEllipsis: {
8
+ ({ className, ...props }: React_2.ComponentProps<'span'>): React_2.JSX.Element;
9
+ displayName: string;
10
+ };
11
+
12
+ export declare const BreadcrumbItem: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React_2.RefAttributes<HTMLLIElement>>;
13
+
14
+ export declare const BreadcrumbLink: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
15
+ asChild?: boolean | undefined;
16
+ } & React_2.RefAttributes<HTMLAnchorElement>>;
17
+
18
+ export declare const BreadcrumbList: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React_2.RefAttributes<HTMLOListElement>>;
19
+
20
+ export declare const BreadcrumbPage: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React_2.RefAttributes<HTMLSpanElement>>;
21
+
22
+ export declare const BreadcrumbSeparator: {
23
+ ({ children, className, ...props }: React_2.ComponentProps<'li'>): React_2.JSX.Element;
24
+ displayName: string;
25
+ };
26
+
27
+ export { }
@@ -0,0 +1,27 @@
1
+ import { default as default_2 } from 'react';
2
+
3
+ export declare function AutoBreadcrumb({ path, maxChars, LinkComponent, lastItemAsLink }: DynamicBreadcrumbProps): default_2.JSX.Element;
4
+
5
+ /** Props for an optional SPA link component (e.g. react-router `Link`). */
6
+ export declare type BreadcrumbLinkComponentProps = {
7
+ to: string;
8
+ className?: string;
9
+ children?: default_2.ReactNode;
10
+ onClick?: default_2.MouseEventHandler<HTMLElement>;
11
+ };
12
+
13
+ export declare interface BreadcrumbNode {
14
+ label: string;
15
+ href: string;
16
+ onClick?: () => void;
17
+ }
18
+
19
+ declare interface DynamicBreadcrumbProps {
20
+ path: BreadcrumbNode[];
21
+ maxChars?: number;
22
+ /** When set, uses this instead of `<a href>` for client-side routing. */
23
+ LinkComponent?: default_2.ComponentType<BreadcrumbLinkComponentProps>;
24
+ lastItemAsLink?: boolean;
25
+ }
26
+
27
+ export { }
@@ -0,0 +1,2 @@
1
+ export * from '../../src/components/ui/breadcrumb'
2
+ export {}
@@ -0,0 +1,14 @@
1
+ import React__default from 'react';
2
+ import { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbEllipsis, BreadcrumbSeparator } from './ui/breadcrumb.js';
3
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './ui/dropdown-menu.js';
4
+
5
+ function AutoBreadcrumb({ path, maxChars = 20, LinkComponent, lastItemAsLink = true }) {
6
+ return /* @__PURE__ */ React__default.createElement(Breadcrumb, null, /* @__PURE__ */ React__default.createElement(BreadcrumbList, null, path.map((node, index) => {
7
+ const isLast = index === path.length - 1;
8
+ const isLengthy = node.label.length > maxChars;
9
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: `${index}-${node.href}` }, /* @__PURE__ */ React__default.createElement(BreadcrumbItem, null, isLast ? lastItemAsLink ? LinkComponent ? /* @__PURE__ */ React__default.createElement(BreadcrumbLink, { asChild: true }, /* @__PURE__ */ React__default.createElement(LinkComponent, { to: node.href, ...node.onClick && { onClick: node.onClick } }, node.label)) : /* @__PURE__ */ React__default.createElement(BreadcrumbLink, { href: node.href, ...node.onClick && { onClick: node.onClick } }, node.label) : /* @__PURE__ */ React__default.createElement(BreadcrumbPage, { className: "max-w-[200px] sm:max-w-[400px] truncate", title: node.label }, node.label) : isLengthy ? /* @__PURE__ */ React__default.createElement(DropdownMenu, null, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { className: "flex items-center gap-1" }, /* @__PURE__ */ React__default.createElement(BreadcrumbEllipsis, { className: "h-4 w-4" }), /* @__PURE__ */ React__default.createElement("span", { className: "sr-only" }, "Toggle ", node.label)), /* @__PURE__ */ React__default.createElement(DropdownMenuContent, { align: "start" }, LinkComponent ? /* @__PURE__ */ React__default.createElement(DropdownMenuItem, { asChild: true }, /* @__PURE__ */ React__default.createElement(LinkComponent, { to: node.href, ...node.onClick && { onClick: node.onClick } }, node.label)) : /* @__PURE__ */ React__default.createElement(DropdownMenuItem, null, /* @__PURE__ */ React__default.createElement("a", { href: node.href, ...node.onClick && { onClick: node.onClick } }, node.label)))) : LinkComponent ? /* @__PURE__ */ React__default.createElement(BreadcrumbLink, { asChild: true }, /* @__PURE__ */ React__default.createElement(LinkComponent, { to: node.href, ...node.onClick && { onClick: node.onClick } }, node.label)) : /* @__PURE__ */ React__default.createElement(BreadcrumbLink, { href: node.href, ...node.onClick && { onClick: node.onClick } }, node.label)), !isLast && /* @__PURE__ */ React__default.createElement(BreadcrumbSeparator, null));
10
+ })));
11
+ }
12
+
13
+ export { AutoBreadcrumb };
14
+ //# sourceMappingURL=breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","sources":["../../../src/components/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\n\nexport interface BreadcrumbNode {\n label: string;\n href: string;\n onClick?: () => void;\n}\n\n/** Props for an optional SPA link component (e.g. react-router `Link`). */\nexport type BreadcrumbLinkComponentProps = {\n to: string;\n className?: string;\n children?: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLElement>;\n};\n\ninterface DynamicBreadcrumbProps {\n path: BreadcrumbNode[];\n maxChars?: number;\n /** When set, uses this instead of `<a href>` for client-side routing. */\n LinkComponent?: React.ComponentType<BreadcrumbLinkComponentProps>;\n lastItemAsLink?: boolean;\n}\n\nexport function AutoBreadcrumb({ path, maxChars = 20, LinkComponent, lastItemAsLink = true }: DynamicBreadcrumbProps) {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n {path.map((node, index) => {\n const isLast = index === path.length - 1;\n const isLengthy = node.label.length > maxChars;\n\n return (\n <React.Fragment key={`${index}-${node.href}`}>\n <BreadcrumbItem>\n {isLast ? (\n lastItemAsLink ? (\n LinkComponent ? (\n <BreadcrumbLink asChild>\n <LinkComponent to={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </LinkComponent>\n </BreadcrumbLink>\n ) : (\n <BreadcrumbLink href={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </BreadcrumbLink>\n )\n ) : (\n <BreadcrumbPage className=\"max-w-[200px] sm:max-w-[400px] truncate\" title={node.label}>\n {node.label}\n </BreadcrumbPage>\n )\n ) : isLengthy ? (\n <DropdownMenu>\n <DropdownMenuTrigger className=\"flex items-center gap-1\">\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n <span className=\"sr-only\">Toggle {node.label}</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n {LinkComponent ? (\n <DropdownMenuItem asChild>\n <LinkComponent to={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </LinkComponent>\n </DropdownMenuItem>\n ) : (\n <DropdownMenuItem>\n <a href={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </a>\n </DropdownMenuItem>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n ) : LinkComponent ? (\n <BreadcrumbLink asChild>\n <LinkComponent to={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </LinkComponent>\n </BreadcrumbLink>\n ) : (\n <BreadcrumbLink href={node.href} {...(node.onClick && { onClick: node.onClick })}>\n {node.label}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {!isLast && <BreadcrumbSeparator />}\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n );\n}\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import * as React from 'react';
2
+ import { S as Slot } from '../../chunks/index.BqibIWDw.js';
3
+ import { MoreHorizontal, ChevronRight } from 'lucide-react';
4
+ import { c as cn } from '../../chunks/utils.Cwtlq8dh.js';
5
+
6
+ const Breadcrumb = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React.createElement("nav", { ref, "aria-label": "breadcrumb", ...props }));
7
+ Breadcrumb.displayName = "Breadcrumb";
8
+ const BreadcrumbList = React.forwardRef(
9
+ ({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
10
+ "ol",
11
+ {
12
+ ref,
13
+ className: cn(
14
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5 list-none",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ )
20
+ );
21
+ BreadcrumbList.displayName = "BreadcrumbList";
22
+ const BreadcrumbItem = React.forwardRef(
23
+ ({ className, ...props }, ref) => /* @__PURE__ */ React.createElement("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
24
+ );
25
+ BreadcrumbItem.displayName = "BreadcrumbItem";
26
+ const BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {
27
+ const Comp = asChild ? Slot : "a";
28
+ return /* @__PURE__ */ React.createElement(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
29
+ });
30
+ BreadcrumbLink.displayName = "BreadcrumbLink";
31
+ const BreadcrumbPage = React.forwardRef(
32
+ ({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
33
+ "span",
34
+ {
35
+ ref,
36
+ role: "link",
37
+ "aria-disabled": "true",
38
+ "aria-current": "page",
39
+ className: cn("font-normal text-foreground", className),
40
+ ...props
41
+ }
42
+ )
43
+ );
44
+ BreadcrumbPage.displayName = "BreadcrumbPage";
45
+ const BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ React.createElement("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className), ...props }, children ?? /* @__PURE__ */ React.createElement(ChevronRight, null));
46
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
47
+ const BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ React.createElement(
48
+ "span",
49
+ {
50
+ role: "presentation",
51
+ "aria-hidden": "true",
52
+ className: cn("flex h-9 w-9 items-center justify-center", className),
53
+ ...props
54
+ },
55
+ /* @__PURE__ */ React.createElement(MoreHorizontal, { className: "h-4 w-4" }),
56
+ /* @__PURE__ */ React.createElement("span", { className: "sr-only" }, "More")
57
+ );
58
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
59
+
60
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
61
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.js","sources":["../../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5 list-none',\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return <Comp ref={ref} className={cn('transition-colors hover:text-foreground', className)} {...props} />;\n});\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn('[&>svg]:w-3.5 [&>svg]:h-3.5', className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"],"names":[],"mappings":"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"}