{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "back-button",
  "title": "Back Button",
  "description": "Back navigation button primitive.",
  "registryDependencies": [
    "@circle-ui/utils"
  ],
  "files": [
    {
      "path": "registry/berlin/circle-ui/back-button.tsx",
      "content": "// Generated from packages/ui/src/components/back-button.tsx\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/registry/berlin/lib/utils\";\n\nfunction ArrowLeftIcon({ className }: { className?: string }) {\n  return (\n    <svg\n      className={className}\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path\n        d=\"m9.5 3.5-4 4 4 4\"\n        stroke=\"currentColor\"\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n      <path\n        d=\"M5.75 7.5h5\"\n        stroke=\"currentColor\"\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n      />\n    </svg>\n  );\n}\n\nfunction CaretLeftIcon({ className }: { className?: string }) {\n  return (\n    <svg\n      className={className}\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path\n        d=\"m10 3-5 5 5 5\"\n        stroke=\"currentColor\"\n        strokeWidth=\"1.5\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  );\n}\n\nexport interface BackButtonProps extends Omit<\n  React.ButtonHTMLAttributes<HTMLButtonElement>,\n  \"children\"\n> {\n  variant?: \"text\" | \"icon\" | \"chevron\";\n  iconVariantSize?: number;\n  children?: React.ReactNode;\n  label?: string;\n}\n\nexport function BackButton({\n  children,\n  className,\n  iconVariantSize = 32,\n  label = \"Back\",\n  type = \"button\",\n  variant = \"text\",\n  ...props\n}: BackButtonProps) {\n  if (variant === \"icon\") {\n    return (\n      <button\n        type={type}\n        aria-label={label}\n        className={cn(\n          \"inline-flex items-center justify-center rounded-full border bg-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60\",\n          className,\n        )}\n        style={{ width: iconVariantSize, height: iconVariantSize }}\n        {...props}\n      >\n        <ArrowLeftIcon className=\"size-5\" />\n      </button>\n    );\n  }\n\n  if (variant === \"chevron\") {\n    return (\n      <button\n        type={type}\n        aria-label={label}\n        className={cn(\n          \"inline-flex items-center justify-center rounded-full border border-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60\",\n          className,\n        )}\n        style={{ width: iconVariantSize, height: iconVariantSize }}\n        {...props}\n      >\n        <CaretLeftIcon className=\"size-6\" />\n      </button>\n    );\n  }\n\n  return (\n    <button\n      type={type}\n      className={cn(\n        \"inline-flex items-center gap-1 rounded-full border border-transparent px-0 py-1 text-sm font-semibold tracking-[-0.16px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60\",\n        className,\n      )}\n      {...props}\n    >\n      <CaretLeftIcon className=\"size-5\" />\n      <span>{children ?? label}</span>\n    </button>\n  );\n}\n",
      "type": "registry:ui",
      "target": "src/components/circle/ui/back-button.tsx"
    }
  ],
  "type": "registry:ui"
}