{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "document-controls",
  "title": "document-controls",
  "files": [
    {
      "path": "registry/extend/document-controls.tsx",
      "content": "\"use client\"\n\nimport type * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { IconPlaceholder } from \"@/components/icon-placeholder\"\n\nexport function Spinner({ className, ...props }: InlineRegistryIconProps) {\n  return (\n    <IconPlaceholder\n      lucide=\"LoaderCircle\"\n      tabler=\"IconLoader2\"\n      hugeicons=\"Loading03Icon\"\n      phosphor=\"CircleNotchIcon\"\n      remixicon=\"RiLoader4Line\"\n      role=\"status\"\n      aria-label=\"Loading\"\n      className={cn(\"size-4 animate-spin\", className)}\n      {...props}\n    />\n  )\n}\nexport function DialogPanel({\n  className,\n  children,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <ScrollArea className=\"min-h-0\">\n      <div\n        data-slot=\"dialog-panel\"\n        className={cn(\"min-h-0\", className)}\n        {...props}\n      >\n        {children}\n      </div>\n    </ScrollArea>\n  )\n}\nexport function LoadingButton({\n  loading,\n  disabled,\n  children,\n  className,\n  ...props\n}: React.ComponentProps<typeof Button> & {\n  loading?: boolean\n}) {\n  return (\n    <Button\n      {...props}\n      className={cn(\"relative\", className)}\n      disabled={disabled || loading}\n      aria-busy={loading || undefined}\n    >\n      <span className={cn(\"contents\", loading && \"invisible\")}>{children}</span>\n      {loading ? <Spinner className=\"pointer-events-none absolute\" /> : null}\n    </Button>\n  )\n}\ntype InlineRegistryIconProps = Omit<\n  React.ComponentProps<\"svg\">,\n  \"children\" | \"strokeWidth\"\n> & { strokeWidth?: number }\n",
      "type": "registry:ui",
      "target": "@components/extend/document-controls.tsx"
    }
  ],
  "type": "registry:ui",
  "dependencies": [],
  "registryDependencies": [
    "utils",
    "button",
    "scroll-area"
  ]
}
