{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "breadcrumb",
  "type": "registry:ui",
  "dependencies": [
    "lucide-solid"
  ],
  "files": [
    {
      "path": "ui/breadcrumb.tsx",
      "content": "import type { ComponentProps, JSX, ValidComponent } from \"solid-js\"\nimport { splitProps } from \"solid-js\"\n\nimport type { PolymorphicProps } from \"@kobalte/core/polymorphic\"\nimport { ChevronRight, Ellipsis } from \"lucide-solid\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype BreadcrumbProps<T extends ValidComponent = \"nav\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst Breadcrumb = <T extends ValidComponent = \"nav\">(\n  rawProps: PolymorphicProps<T, BreadcrumbProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbProps, [\"class\", \"children\"])\n  return (\n    <nav\n      aria-label=\"breadcrumb\"\n      class={cn(\"cn-breadcrumb\", local.class)}\n      data-slot=\"breadcrumb\"\n      {...others}\n    >\n      {local.children}\n    </nav>\n  )\n}\n\ntype BreadcrumbListProps<T extends ValidComponent = \"ol\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst BreadcrumbList = <T extends ValidComponent = \"ol\">(\n  rawProps: PolymorphicProps<T, BreadcrumbListProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbListProps, [\"class\", \"children\"])\n  return (\n    <ol\n      class={cn(\"cn-breadcrumb-list flex flex-wrap items-center break-words\", local.class)}\n      data-slot=\"breadcrumb-list\"\n      {...others}\n    >\n      {local.children}\n    </ol>\n  )\n}\n\ntype BreadcrumbItemProps<T extends ValidComponent = \"li\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst BreadcrumbItem = <T extends ValidComponent = \"li\">(\n  rawProps: PolymorphicProps<T, BreadcrumbItemProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbItemProps, [\"class\", \"children\"])\n  return (\n    <li\n      class={cn(\"cn-breadcrumb-item inline-flex items-center\", local.class)}\n      data-slot=\"breadcrumb-item\"\n      {...others}\n    >\n      {local.children}\n    </li>\n  )\n}\n\ntype BreadcrumbLinkProps<T extends ValidComponent = \"a\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst BreadcrumbLink = <T extends ValidComponent = \"a\">(\n  rawProps: PolymorphicProps<T, BreadcrumbLinkProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbLinkProps, [\"class\", \"children\"])\n  return (\n    <a class={cn(\"cn-breadcrumb-link\", local.class)} data-slot=\"breadcrumb-link\" {...others}>\n      {local.children}\n    </a>\n  )\n}\n\ntype BreadcrumbPageProps<T extends ValidComponent = \"span\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst BreadcrumbPage = <T extends ValidComponent = \"span\">(\n  rawProps: PolymorphicProps<T, BreadcrumbPageProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbPageProps, [\"class\", \"children\"])\n  return (\n    // biome-ignore lint/a11y/useFocusableInteractive: <exception for breadcumb>\n    <span\n      aria-current=\"page\"\n      aria-disabled=\"true\"\n      class={cn(\"cn-breadcrumb-page\", local.class)}\n      data-slot=\"breadcrumb-page\"\n      role=\"link\"\n      {...others}\n    >\n      {local.children}\n    </span>\n  )\n}\n\ntype BreadcrumbSeparatorProps<T extends ValidComponent = \"li\"> = ComponentProps<T> & {\n  class?: string | undefined\n  children?: JSX.Element\n}\n\nconst BreadcrumbSeparator = <T extends ValidComponent = \"li\">(\n  rawProps: PolymorphicProps<T, BreadcrumbSeparatorProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbSeparatorProps, [\"class\", \"children\"])\n  return (\n    <li\n      aria-hidden=\"true\"\n      class={cn(\"cn-breadcrumb-separator\", local.class)}\n      data-slot=\"breadcrumb-separator\"\n      role=\"presentation\"\n      {...others}\n    >\n      {local.children ?? <ChevronRight />}\n    </li>\n  )\n}\n\ntype BreadcrumbEllipsisProps<T extends ValidComponent = \"span\"> = ComponentProps<T> & {\n  class?: string | undefined\n}\n\nconst BreadcrumbEllipsis = <T extends ValidComponent = \"span\">(\n  rawProps: PolymorphicProps<T, BreadcrumbEllipsisProps<T>>\n) => {\n  const [local, others] = splitProps(rawProps as BreadcrumbEllipsisProps, [\"class\"])\n  return (\n    <span\n      aria-hidden=\"true\"\n      class={cn(\"cn-breadcrumb-ellipsis flex items-center justify-center\", local.class)}\n      data-slot=\"breadcrumb-ellipsis\"\n      role=\"presentation\"\n      {...others}\n    >\n      <Ellipsis />\n      <span class=\"sr-only\">More</span>\n    </span>\n  )\n}\n\nexport {\n  Breadcrumb,\n  BreadcrumbList,\n  BreadcrumbItem,\n  BreadcrumbLink,\n  BreadcrumbPage,\n  BreadcrumbSeparator,\n  BreadcrumbEllipsis\n}\n",
      "type": "registry:ui"
    }
  ]
}