{
  "name": "spreadsheet-sheet-bar-rename-dialog",
  "type": "registry:component",
  "dependencies": [
    "@unsanity/spreadsheet"
  ],
  "registryDependencies": [
    "dialog",
    "button",
    "input"
  ],
  "files": [
    {
      "path": "components/spreadsheet/spreadsheet-sheet-bar-rename-dialog.tsx",
      "content": "\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport type { SheetModel } from \"@unsanity/spreadsheet\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n  Dialog,\n  DialogContent,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n} from \"@/components/ui/dialog\";\nimport { Input } from \"@/components/ui/input\";\n\nexport type SpreadsheetSheetBarRenameDialogProps = {\n  sheet: SheetModel | null;\n  onOpenChange: (open: boolean) => void;\n  onConfirm: (sheetId: string, newName: string) => void;\n};\n\nexport function SpreadsheetSheetBarRenameDialog({\n  sheet,\n  onOpenChange,\n  onConfirm,\n}: SpreadsheetSheetBarRenameDialogProps) {\n  const [renameValue, setRenameValue] = useState(\"\");\n\n  useEffect(() => {\n    if (sheet) setRenameValue(sheet.name);\n  }, [sheet]);\n\n  function confirmRename() {\n    if (!sheet) return;\n    const trimmed = renameValue.trim();\n    if (!trimmed) return;\n    onConfirm(sheet.id, renameValue);\n    onOpenChange(false);\n  }\n\n  return (\n    <Dialog open={sheet !== null} onOpenChange={onOpenChange}>\n      <DialogContent showCloseButton className=\"sm:max-w-md\">\n        <DialogHeader>\n          <DialogTitle>Rename sheet</DialogTitle>\n        </DialogHeader>\n        <Input\n          value={renameValue}\n          onChange={(e) => setRenameValue(e.target.value)}\n          onKeyDown={(e) => {\n            if (e.key === \"Enter\") {\n              e.preventDefault();\n              confirmRename();\n            }\n          }}\n          placeholder=\"Sheet name\"\n          autoFocus\n        />\n        <DialogFooter>\n          <Button variant=\"outline\" onClick={() => onOpenChange(false)}>\n            Cancel\n          </Button>\n          <Button onClick={confirmRename} disabled={!renameValue.trim()}>\n            Save\n          </Button>\n        </DialogFooter>\n      </DialogContent>\n    </Dialog>\n  );\n}\n",
      "type": "registry:component"
    }
  ]
}
