gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/common/components/ui/breadcrumb.tsx · nightly
Source
1 88bd1b0 Mrdn 2y ago import * as React from "react"
2 88bd1b0 Mrdn 2y ago import { Slot } from "@radix-ui/react-slot"
3 88bd1b0 Mrdn 2y ago import { ChevronRight, MoreHorizontal } from "lucide-react"
4 88bd1b0 Mrdn 2y ago
5 d636f3f Dawsh 2y ago import { cn } from "@marzneshin/common/utils"
6 88bd1b0 Mrdn 2y ago
7 88bd1b0 Mrdn 2y ago const Breadcrumb = React.forwardRef<
8 d636f3f Dawsh 2y ago HTMLElement,
9 d636f3f Dawsh 2y ago React.ComponentPropsWithoutRef<"nav"> & {
10 d636f3f Dawsh 2y ago separator?: React.ReactNode
11 d636f3f Dawsh 2y ago }
12 88bd1b0 Mrdn 2y ago >(({ ...props }, ref) => <nav ref={ref} aria-label="breadcrumb" {...props} />)
13 88bd1b0 Mrdn 2y ago Breadcrumb.displayName = "Breadcrumb"
14 88bd1b0 Mrdn 2y ago
15 88bd1b0 Mrdn 2y ago const BreadcrumbList = React.forwardRef<
16 d636f3f Dawsh 2y ago HTMLOListElement,
17 d636f3f Dawsh 2y ago React.ComponentPropsWithoutRef<"ol">
18 88bd1b0 Mrdn 2y ago >(({ className, ...props }, ref) => (
19 d636f3f Dawsh 2y ago <ol
20 d636f3f Dawsh 2y ago ref={ref}
21 d636f3f Dawsh 2y ago className={cn(
22 d636f3f Dawsh 2y ago "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
23 d636f3f Dawsh 2y ago className
24 d636f3f Dawsh 2y ago )}
25 d636f3f Dawsh 2y ago {...props}
26 d636f3f Dawsh 2y ago />
27 88bd1b0 Mrdn 2y ago ))
28 88bd1b0 Mrdn 2y ago BreadcrumbList.displayName = "BreadcrumbList"
29 88bd1b0 Mrdn 2y ago
30 88bd1b0 Mrdn 2y ago const BreadcrumbItem = React.forwardRef<
31 d636f3f Dawsh 2y ago HTMLLIElement,
32 d636f3f Dawsh 2y ago React.ComponentPropsWithoutRef<"li">
33 88bd1b0 Mrdn 2y ago >(({ className, ...props }, ref) => (
34 d636f3f Dawsh 2y ago <li
35 d636f3f Dawsh 2y ago ref={ref}
36 d636f3f Dawsh 2y ago className={cn("inline-flex items-center gap-1.5", className)}
37 d636f3f Dawsh 2y ago {...props}
38 d636f3f Dawsh 2y ago />
39 88bd1b0 Mrdn 2y ago ))
40 88bd1b0 Mrdn 2y ago BreadcrumbItem.displayName = "BreadcrumbItem"
41 88bd1b0 Mrdn 2y ago
42 88bd1b0 Mrdn 2y ago const BreadcrumbLink = React.forwardRef<
43 d636f3f Dawsh 2y ago HTMLAnchorElement,
44 d636f3f Dawsh 2y ago React.ComponentPropsWithoutRef<"a"> & {
45 d636f3f Dawsh 2y ago asChild?: boolean
46 d636f3f Dawsh 2y ago }
47 88bd1b0 Mrdn 2y ago >(({ asChild, className, ...props }, ref) => {
48 d636f3f Dawsh 2y ago const Comp = asChild ? Slot : "a"
49 88bd1b0 Mrdn 2y ago
50 d636f3f Dawsh 2y ago return (
51 d636f3f Dawsh 2y ago <Comp
52 d636f3f Dawsh 2y ago ref={ref}
53 d636f3f Dawsh 2y ago className={cn("transition-colors hover:text-foreground", className)}
54 d636f3f Dawsh 2y ago {...props}
55 d636f3f Dawsh 2y ago />
56 d636f3f Dawsh 2y ago )
57 88bd1b0 Mrdn 2y ago })
58 88bd1b0 Mrdn 2y ago BreadcrumbLink.displayName = "BreadcrumbLink"
59 88bd1b0 Mrdn 2y ago
60 88bd1b0 Mrdn 2y ago const BreadcrumbPage = React.forwardRef<
61 d636f3f Dawsh 2y ago HTMLSpanElement,
62 d636f3f Dawsh 2y ago React.ComponentPropsWithoutRef<"span">
63 88bd1b0 Mrdn 2y ago >(({ className, ...props }, ref) => (
64 d636f3f Dawsh 2y ago <span
65 d636f3f Dawsh 2y ago ref={ref}
66 d636f3f Dawsh 2y ago role="link"
67 d636f3f Dawsh 2y ago aria-disabled="true"
68 d636f3f Dawsh 2y ago aria-current="page"
69 d636f3f Dawsh 2y ago className={cn("font-normal text-foreground", className)}
70 d636f3f Dawsh 2y ago {...props}
71 d636f3f Dawsh 2y ago />
72 88bd1b0 Mrdn 2y ago ))
73 88bd1b0 Mrdn 2y ago BreadcrumbPage.displayName = "BreadcrumbPage"
74 88bd1b0 Mrdn 2y ago
75 88bd1b0 Mrdn 2y ago const BreadcrumbSeparator = ({
76 d636f3f Dawsh 2y ago children,
77 d636f3f Dawsh 2y ago className,
78 d636f3f Dawsh 2y ago ...props
79 88bd1b0 Mrdn 2y ago }: React.ComponentProps<"li">) => (
80 d636f3f Dawsh 2y ago <li
81 d636f3f Dawsh 2y ago role="presentation"
82 d636f3f Dawsh 2y ago aria-hidden="true"
83 d636f3f Dawsh 2y ago className={cn("[&>svg]:size-3.5", className)}
84 d636f3f Dawsh 2y ago {...props}
85 d636f3f Dawsh 2y ago >
86 d636f3f Dawsh 2y ago {children ?? <ChevronRight />}
87 d636f3f Dawsh 2y ago </li>
88 88bd1b0 Mrdn 2y ago )
89 88bd1b0 Mrdn 2y ago BreadcrumbSeparator.displayName = "BreadcrumbSeparator"
90 88bd1b0 Mrdn 2y ago
91 88bd1b0 Mrdn 2y ago const BreadcrumbEllipsis = ({
92 d636f3f Dawsh 2y ago className,
93 d636f3f Dawsh 2y ago ...props
94 88bd1b0 Mrdn 2y ago }: React.ComponentProps<"span">) => (
95 d636f3f Dawsh 2y ago <span
96 d636f3f Dawsh 2y ago role="presentation"
97 d636f3f Dawsh 2y ago aria-hidden="true"
98 d636f3f Dawsh 2y ago className={cn("flex h-9 w-9 items-center justify-center", className)}
99 d636f3f Dawsh 2y ago {...props}
100 d636f3f Dawsh 2y ago >
101 d636f3f Dawsh 2y ago <MoreHorizontal className="h-4 w-4" />
102 d636f3f Dawsh 2y ago <span className="sr-only">More</span>
103 d636f3f Dawsh 2y ago </span>
104 88bd1b0 Mrdn 2y ago )
105 88bd1b0 Mrdn 2y ago BreadcrumbEllipsis.displayName = "BreadcrumbElipssis"
106 88bd1b0 Mrdn 2y ago
107 88bd1b0 Mrdn 2y ago export {
108 d636f3f Dawsh 2y ago Breadcrumb,
109 d636f3f Dawsh 2y ago BreadcrumbList,
110 d636f3f Dawsh 2y ago BreadcrumbItem,
111 d636f3f Dawsh 2y ago BreadcrumbLink,
112 d636f3f Dawsh 2y ago BreadcrumbPage,
113 d636f3f Dawsh 2y ago BreadcrumbSeparator,
114 d636f3f Dawsh 2y ago BreadcrumbEllipsis,
115 88bd1b0 Mrdn 2y ago }