{
  "name": "spreadsheet-sheet-bar-tab-list",
  "type": "registry:component",
  "dependencies": [
    "@unsanity/spreadsheet"
  ],
  "registryDependencies": [
    "context-menu",
    "button"
  ],
  "files": [
    {
      "path": "components/spreadsheet/spreadsheet-sheet-bar-tab-list.tsx",
      "content": "\"use client\";\n\nimport { useSpreadsheetSheetTabs, type SheetModel } from \"@unsanity/spreadsheet\";\nimport { Copy, Pencil, Trash2 } from \"lucide-react\";\nimport {\n  ContextMenu,\n  ContextMenuContent,\n  ContextMenuItem,\n  ContextMenuSeparator,\n  ContextMenuTrigger,\n} from \"@/components/ui/context-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SpreadsheetSheetBarTabListProps = {\n  onRequestRename: (sheet: SheetModel) => void;\n  onRequestDelete: (sheet: SheetModel) => void;\n};\n\nexport function SpreadsheetSheetBarTabList({\n  onRequestRename,\n  onRequestDelete,\n}: SpreadsheetSheetBarTabListProps) {\n  const {\n    sheets,\n    activeSheetId,\n    setActiveSheet,\n    duplicateSheet,\n    moveSheetLeft,\n    moveSheetRight,\n    canRemove,\n  } = useSpreadsheetSheetTabs();\n\n  return (\n    <div className=\"spreadsheet-sheet-bar__tabs\">\n      {sheets.map((sheet, index) => {\n        const isActive = sheet.id === activeSheetId;\n        const isFirst = index === 0;\n        const isLast = index === sheets.length - 1;\n        return (\n          <div key={sheet.id} className=\"spreadsheet-sheet-tab\">\n            <ContextMenu>\n              <ContextMenuTrigger asChild>\n                <button\n                  type=\"button\"\n                  onClick={() => setActiveSheet(sheet.id)}\n                  className={cn(\n                    \"spreadsheet-sheet-tab__button\",\n                    isActive && \"spreadsheet-sheet-tab__button--active\"\n                  )}\n                >\n                  <span className=\"spreadsheet-sheet-tab__name\">{sheet.name}</span>\n                </button>\n              </ContextMenuTrigger>\n              <ContextMenuContent className=\"w-52\">\n                <ContextMenuItem\n                  onClick={() => onRequestDelete(sheet)}\n                  disabled={!canRemove}\n                  variant=\"destructive\"\n                >\n                  <Trash2 className=\"size-4\" />\n                  Delete\n                </ContextMenuItem>\n                <ContextMenuItem onClick={() => duplicateSheet(sheet.id)}>\n                  <Copy className=\"size-4\" />\n                  Duplicate\n                </ContextMenuItem>\n                <ContextMenuItem onClick={() => onRequestRename(sheet)}>\n                  <Pencil className=\"size-4\" />\n                  Rename\n                </ContextMenuItem>\n                <ContextMenuSeparator />\n                <ContextMenuItem onClick={() => moveSheetRight(sheet.id)} disabled={isLast}>\n                  Move right\n                </ContextMenuItem>\n                <ContextMenuItem onClick={() => moveSheetLeft(sheet.id)} disabled={isFirst}>\n                  Move left\n                </ContextMenuItem>\n              </ContextMenuContent>\n            </ContextMenu>\n          </div>\n        );\n      })}\n    </div>\n  );\n}\n",
      "type": "registry:component"
    }
  ]
}
