// AlignUI Breadcrumb v0.0.0 import * as React from 'react'; import { Slot } from '@radix-ui/react-slot'; import { cn } from '@/utils/cn'; import { PolymorphicComponentProps } from '@/utils/polymorphic'; const BREADCRUMB_ROOT_NAME = 'BreadcrumbRoot'; const BREADCRUMB_ITEM_NAME = 'BreadcrumbItem'; const BREADCRUMB_ICON_NAME = 'BreadcrumbIcon'; const BREADCRUMB_ARROW_NAME = 'BreadcrumbArrow'; type BreadcrumbRootProps = React.HTMLAttributes & { asChild?: boolean; }; function BreadcrumbRoot({ asChild, children, className, ...rest }: BreadcrumbRootProps) { const Component = asChild ? Slot : 'div'; return ( {children} ); } BreadcrumbRoot.displayName = BREADCRUMB_ROOT_NAME; type BreadcrumbItemProps = React.HTMLAttributes & { asChild?: boolean; active?: boolean; }; const BreadcrumbItem = React.forwardRef( ({ asChild, children, className, active, ...rest }, forwardedRef) => { const Component = asChild ? Slot : 'div'; return ( {children} ); }, ); BreadcrumbItem.displayName = BREADCRUMB_ITEM_NAME; function BreadcrumbItemIcon({ className, as, ...rest }: PolymorphicComponentProps) { const Component = as || 'div'; return ; } BreadcrumbItemIcon.displayName = BREADCRUMB_ICON_NAME; function BreadcrumbItemArrowIcon({ className, as, ...rest }: PolymorphicComponentProps) { const Component = as || 'div'; return ( ); } BreadcrumbItemArrowIcon.displayName = BREADCRUMB_ARROW_NAME; export { BreadcrumbRoot as Root, BreadcrumbItem as Item, BreadcrumbItemIcon as Icon, BreadcrumbItemArrowIcon as ArrowIcon, };