{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "comment-kit",
  "dependencies": [
    "@platejs/comment"
  ],
  "registryDependencies": [
    "https://platejs.org/r/comment-base-kit.json",
    "https://platejs.org/r/comment-node.json",
    "https://platejs.org/r/comment-toolbar-button.json",
    "https://platejs.org/r/discussion-kit.json"
  ],
  "files": [
    {
      "path": "src/registry/components/editor/plugins/comment-kit.tsx",
      "content": "'use client';\n\nimport type { ExtendConfig, Path } from 'platejs';\n\nimport {\n  type BaseCommentConfig,\n  BaseCommentPlugin,\n  getDraftCommentKey,\n} from '@platejs/comment';\nimport { toTPlatePlugin } from 'platejs/react';\n\nimport { CommentLeaf } from '@/registry/ui/comment-node';\nimport { getDiscussionClickTarget } from './discussion-kit';\n\ntype CommentConfig = ExtendConfig<\n  BaseCommentConfig,\n  {\n    activeId: string | null;\n    commentingBlock: Path | null;\n    hoverId: string | null;\n  }\n>;\n\nexport const commentPlugin = toTPlatePlugin<CommentConfig>(BaseCommentPlugin, {\n  handlers: {\n    onClick: ({ api, event, setOption, type }) => {\n      const activeTarget = getDiscussionClickTarget({\n        selector: `.slate-${type}`,\n        target: event.target,\n      });\n\n      if (!activeTarget) {\n        setOption('activeId', null);\n        return;\n      }\n\n      const commentEntry = api.comment?.node();\n\n      setOption(\n        'activeId',\n        commentEntry ? (api.comment?.nodeId(commentEntry[0]) ?? null) : null\n      );\n    },\n  },\n  options: {\n    activeId: null,\n    commentingBlock: null,\n    hoverId: null,\n  },\n})\n  .extendTransforms(\n    ({\n      editor,\n      setOption,\n      tf: {\n        comment: { setDraft },\n      },\n    }) => ({\n      setDraft: () => {\n        if (editor.api.isCollapsed()) {\n          editor.tf.select(editor.api.block()![1]);\n        }\n\n        setDraft();\n\n        editor.tf.collapse();\n        setOption('activeId', getDraftCommentKey());\n        setOption('commentingBlock', editor.selection!.focus.path.slice(0, 1));\n      },\n    })\n  )\n  .configure({\n    node: { component: CommentLeaf },\n    shortcuts: {\n      setDraft: { keys: 'mod+shift+m' },\n    },\n  });\n\nexport const CommentKit = [commentPlugin];\n",
      "type": "registry:component",
      "target": "@components/editor/plugins/comment-kit.tsx"
    }
  ],
  "type": "registry:component"
}