{
  "name": "spreadsheet-context-menu",
  "type": "registry:component",
  "dependencies": [
    "@unsanity/spreadsheet"
  ],
  "registryDependencies": [
    "context-menu",
    "https://spreadsheet.ui.unsanity.ai/r/spreadsheet-context-menu-row-items.json",
    "https://spreadsheet.ui.unsanity.ai/r/spreadsheet-context-menu-column-items.json",
    "https://spreadsheet.ui.unsanity.ai/r/spreadsheet-context-menu-cell-items.json",
    "https://spreadsheet.ui.unsanity.ai/r/spreadsheet-context-menu-resize-dialogs.json"
  ],
  "files": [
    {
      "path": "components/spreadsheet/spreadsheet-context-menu.tsx",
      "content": "\"use client\";\n\nimport { primaryShortcut, useIsApplePlatform, type SelectionMode } from \"@unsanity/spreadsheet\";\nimport {\n  ContextMenu,\n  ContextMenuContent,\n  ContextMenuItem,\n  ContextMenuSeparator,\n  ContextMenuTrigger,\n} from \"@/components/ui/context-menu\";\nimport { SpreadsheetContextMenuCellItems } from \"./spreadsheet-context-menu-cell-items\";\nimport { SpreadsheetContextMenuColumnItems } from \"./spreadsheet-context-menu-column-items\";\nimport { SpreadsheetContextMenuRowItems } from \"./spreadsheet-context-menu-row-items\";\nimport { useSpreadsheetContextMenuResizeDialogs } from \"./spreadsheet-context-menu-resize-dialogs\";\n\nexport type { SelectionMode };\n\ninterface SpreadsheetContextMenuProps {\n  children: React.ReactNode;\n  selectionMode: SelectionMode;\n  onCopy: () => void;\n  onCut: () => void;\n  onPaste: () => void;\n}\n\nexport function SpreadsheetContextMenu({\n  children,\n  selectionMode,\n  onCopy,\n  onCut,\n  onPaste,\n}: SpreadsheetContextMenuProps) {\n  const isApple = useIsApplePlatform();\n  const { openColumnResize, openRowResize, dialogs } =\n    useSpreadsheetContextMenuResizeDialogs();\n\n  const showRowActions = selectionMode !== \"col\";\n  const showColActions = selectionMode !== \"row\";\n\n  return (\n    <>\n      <ContextMenu>\n        <ContextMenuTrigger asChild>{children}</ContextMenuTrigger>\n        <ContextMenuContent className=\"spreadsheet-context-menu-content\">\n          <ContextMenuItem onClick={onCut}>\n            Cut\n            <span className=\"ml-auto text-xs text-muted-foreground\">\n              {primaryShortcut(\"X\", isApple)}\n            </span>\n          </ContextMenuItem>\n          <ContextMenuItem onClick={onCopy}>\n            Copy\n            <span className=\"ml-auto text-xs text-muted-foreground\">\n              {primaryShortcut(\"C\", isApple)}\n            </span>\n          </ContextMenuItem>\n          <ContextMenuItem onClick={onPaste}>\n            Paste\n            <span className=\"ml-auto text-xs text-muted-foreground\">\n              {primaryShortcut(\"V\", isApple)}\n            </span>\n          </ContextMenuItem>\n\n          <ContextMenuSeparator />\n\n          {showRowActions && (\n            <SpreadsheetContextMenuRowItems\n              selectionMode={selectionMode}\n              onOpenRowResize={openRowResize}\n            />\n          )}\n\n          {showRowActions && showColActions && <ContextMenuSeparator />}\n\n          {showColActions && (\n            <SpreadsheetContextMenuColumnItems\n              selectionMode={selectionMode}\n              onOpenColumnResize={openColumnResize}\n            />\n          )}\n\n          {selectionMode !== \"row\" && selectionMode !== \"col\" && (\n            <>\n              <ContextMenuSeparator />\n              <SpreadsheetContextMenuCellItems selectionMode={selectionMode} />\n            </>\n          )}\n        </ContextMenuContent>\n      </ContextMenu>\n      {dialogs}\n    </>\n  );\n}\n",
      "type": "registry:component"
    }
  ]
}
