{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "resizable",
  "title": "Resizable",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-react/components/resizable/resizable.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport { GripVertical } from 'lucide-react'\n// Named exports (the package exposes these directly, not under a namespace).\nimport { PanelGroup, Panel, PanelResizeHandle } from 'react-resizable-panels'\nimport { cn } from '@/lib/utils'\n\nfunction ResizablePanelGroup({\n  className,\n  ...props\n}: React.ComponentProps<typeof PanelGroup>) {\n  return (\n    <PanelGroup\n      data-uipkge=\"\"\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\nfunction ResizablePanel({\n  ...props\n}: React.ComponentProps<typeof Panel>) {\n  return <Panel data-uipkge=\"\" data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({\n  withHandle,\n  className,\n  children,\n  ...props\n}: React.ComponentProps<typeof PanelResizeHandle> & {\n  withHandle?: boolean\n}) {\n  return (\n    <PanelResizeHandle\n      data-uipkge=\"\"\n      data-slot=\"resizable-handle\"\n      className={cn(\n        'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90',\n        className,\n      )}\n      {...props}\n    >\n      {withHandle && (\n        <div className=\"bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border\">\n          {children ?? <GripVertical className=\"size-2.5\" />}\n        </div>\n      )}\n    </PanelResizeHandle>\n  )\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n",
      "type": "registry:ui",
      "target": "~/components/ui/resizable/resizable.tsx"
    },
    {
      "path": "packages/registry-react/components/resizable/index.ts",
      "content": "export { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './resizable'\n",
      "type": "registry:ui",
      "target": "~/components/ui/resizable/index.ts"
    }
  ],
  "dependencies": [
    "react-resizable-panels@^2.1.7",
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Drag-to-resize panel layout — horizontal or vertical splits with persistent sizes. Use for IDE-style sidebars, split views, and any layout the user should be able to reshape.",
  "categories": [
    "layout"
  ]
}