{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "separator",
  "type": "registry:ui",
  "title": "Separator",
  "description": "Rules, double rules and tear-here perforations.",
  "categories": [
    "core"
  ],
  "files": [
    {
      "path": "ui/separator.tsx",
      "type": "registry:ui",
      "content": "\"use client\";\n\nimport * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nexport interface SeparatorProps extends React.ComponentProps<typeof SeparatorPrimitive.Root> {\n  /** rule: a thin line · double: a ledger total line · perforated: tear here · scissors: perforated with a ✂ */\n  variant?: \"rule\" | \"double\" | \"perforated\" | \"scissors\";\n}\n\n/** Rules, double rules and tear-here perforations. */\nexport function Separator({ variant = \"rule\", orientation = \"horizontal\", decorative = true, className = \"\", ...props }: SeparatorProps) {\n  const vertical = orientation === \"vertical\";\n\n  if (vertical || variant === \"rule\" || variant === \"double\") {\n    return (\n      <SeparatorPrimitive.Root\n        orientation={orientation}\n        decorative={decorative}\n        className={`shrink-0 ${\n          vertical\n            ? \"h-full w-px self-stretch bg-(--edge)\"\n            : variant === \"double\"\n              ? \"h-[4px] w-full border-y border-(--ink)\"\n              : \"h-px w-full bg-(--edge)\"\n        } ${className}`}\n        {...props}\n      />\n    );\n  }\n\n  return (\n    <SeparatorPrimitive.Root\n      orientation={orientation}\n      decorative={decorative}\n      className={`relative flex h-4 w-full shrink-0 items-center ${className}`}\n      {...props}\n    >\n      <span\n        className=\"h-[2px] flex-1\"\n        style={{ background: \"radial-gradient(circle, var(--ink-faint) 1px, transparent 1.5px) 0 50% / 7px 2px repeat-x\" }}\n      />\n      {variant === \"scissors\" && (\n        <span aria-hidden className=\"absolute -top-px left-3 bg-(--paper) px-1 text-[13px] leading-none text-(--ink-muted)\">\n          ✂\n        </span>\n      )}\n    </SeparatorPrimitive.Root>\n  );\n}\n"
    }
  ],
  "dependencies": [
    "radix-ui"
  ]
}