{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "object-handle",
  "title": "Object Handle",
  "description": "Drag/reposition affordance for spatial objects that need a calm grab target.",
  "dependencies": [
    "@vllnt/ui@^0.3.0"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/object-handle/object-handle.tsx",
      "content": "import type { ReactNode } from \"react\";\n\nimport { cn } from \"@vllnt/ui\";\n\nexport type ObjectHandleProps = Omit<\n  React.ComponentPropsWithoutRef<\"button\">,\n  \"type\"\n> & {\n  hint?: ReactNode;\n  label?: ReactNode;\n};\n\nconst ObjectHandle = ({\n  className,\n  hint,\n  label = \"Move\",\n  ref,\n  ...props\n}: ObjectHandleProps & { ref?: React.Ref<HTMLButtonElement> }) => (\n  <button\n    className={cn(\n      \"inline-flex items-center gap-2 rounded-full border border-border/60 bg-background/85 px-3 py-1.5 text-xs font-medium text-muted-foreground shadow-sm transition-colors hover:border-border hover:text-foreground\",\n      className,\n    )}\n    ref={ref}\n    type=\"button\"\n    {...props}\n  >\n    <span\n      aria-hidden=\"true\"\n      className=\"grid grid-cols-2 gap-0.5 text-[8px] leading-none\"\n    >\n      <span>•</span>\n      <span>•</span>\n      <span>•</span>\n      <span>•</span>\n    </span>\n    <span>{label}</span>\n    {hint ? <span className=\"text-muted-foreground/80\">{hint}</span> : null}\n  </button>\n);\n\nObjectHandle.displayName = \"ObjectHandle\";\n\nexport { ObjectHandle };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component",
  "version": "0.3.0",
  "stability": "stable"
}
