{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "resizable",
  "title": "Resizable",
  "description": "Accessible resizable panel layouts with optional drag handles.",
  "dependencies": [
    "react-resizable-panels",
    "lucide-react"
  ],
  "registryDependencies": [
    "@rivelle/utils"
  ],
  "files": [
    {
      "path": "registry/nova/ui/resizable.tsx",
      "content": "\"use client\";\n\nimport { GripVertical } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ResizablePanelGroup({\n  className,\n  ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {\n  return (\n    <ResizablePrimitive.PanelGroup\n      data-slot=\"resizable-panel-group\"\n      className={cn(\n        \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nfunction ResizableHandle({\n  withHandle,\n  className,\n  ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n  withHandle?: boolean;\n}) {\n  return (\n    <ResizablePrimitive.PanelResizeHandle\n      data-slot=\"resizable-handle\"\n      className={cn(\n        \"group relative flex w-px items-center justify-center bg-border outline-none transition-colors focus-visible:bg-primary data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n        className,\n      )}\n      {...props}\n    >\n      {withHandle && (\n        <div className=\"z-10 grid h-8 w-5 place-items-center rounded-lg border border-foreground/12 bg-background text-muted-foreground shadow-sm transition-[color,border-color,transform] group-hover:border-primary/30 group-hover:text-primary group-data-[resize-handle-active]:scale-105\">\n          <GripVertical className=\"size-3\" />\n        </div>\n      )}\n    </ResizablePrimitive.PanelResizeHandle>\n  );\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}