{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "breadcrumb", "title": "Breadcrumb", "description": "Composable breadcrumb navigation with links, current-page state, custom separators, ellipsis, responsive wrapping, and polymorphic link rendering.", "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "https://zeron-ui.vercel.app/r/surfaces.json", "utils", "https://zeron-ui.vercel.app/r/icon-context.json" ], "files": [ { "path": "src/components/ui/breadcrumb.tsx", "content": "\"use client\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport type * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { useIcon } from \"@/lib/icon-context\";\n\ntype BreadcrumbProps = React.ComponentProps<\"nav\">;\n\nfunction Breadcrumb({ className, ...props }: BreadcrumbProps) {\n return (\n \n );\n}\n\ntype BreadcrumbListProps = React.ComponentProps<\"ol\">;\n\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n \n );\n}\n\ntype BreadcrumbItemProps = React.ComponentProps<\"li\">;\n\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return (\n \n );\n}\n\ntype BreadcrumbLinkProps = useRender.ComponentProps<\"a\">;\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: BreadcrumbLinkProps) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n \"rounded-[4px] outline-none transition-colors duration-fast hover:text-fg-default focus-visible:text-fg-default focus-visible:ring-1 focus-visible:ring-focus-ring\",\n className\n ),\n },\n props\n ),\n render,\n state: { slot: \"breadcrumb-link\" },\n });\n}\n\ntype BreadcrumbPageProps = React.ComponentProps<\"span\">;\n\nfunction BreadcrumbPage({ className, ...props }: BreadcrumbPageProps) {\n return (\n \n );\n}\n\ntype BreadcrumbSeparatorProps = React.ComponentProps<\"li\">;\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) {\n const ChevronRight = useIcon(\"chevron-right\");\n\n return (\n svg]:size-3.5\", className)}\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n {...props}\n >\n {children ?? }\n \n );\n}\n\ntype BreadcrumbEllipsisProps = React.ComponentProps<\"span\">;\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: BreadcrumbEllipsisProps) {\n const Ellipsis = useIcon(\"ellipsis\");\n\n return (\n \n \n More\n \n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\nexport type {\n BreadcrumbEllipsisProps,\n BreadcrumbItemProps,\n BreadcrumbLinkProps,\n BreadcrumbListProps,\n BreadcrumbPageProps,\n BreadcrumbProps,\n BreadcrumbSeparatorProps,\n};\n", "type": "registry:ui", "target": "components/ui/breadcrumb.tsx" } ], "type": "registry:ui" }