{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "suggestion-base-kit",
  "dependencies": [
    "@platejs/suggestion"
  ],
  "registryDependencies": [
    "https://platejs.org/r/suggestion-node.json"
  ],
  "files": [
    {
      "path": "src/registry/components/editor/plugins/suggestion-base-kit.tsx",
      "content": "import type {\n  TElement,\n  TInlineSuggestionData,\n  TSuggestionData,\n  TSuggestionText,\n} from 'platejs';\n\nimport { BaseSuggestionPlugin } from '@platejs/suggestion';\nimport { KEYS, TextApi } from 'platejs';\n\nimport {\n  SuggestionLeafStatic,\n  VoidRemoveSuggestionOverlayStatic,\n} from '@/registry/ui/suggestion-node-static';\n\nconst INLINE_SUGGESTION_TARGET_PLUGINS = [\n  KEYS.date,\n  KEYS.inlineEquation,\n  KEYS.link,\n  KEYS.mention,\n];\n\nfunction getInlineSuggestionData(editor: any, element: TElement) {\n  const suggestionApi = editor.getApi(BaseSuggestionPlugin).suggestion;\n  const data = suggestionApi.suggestionData(element) as\n    | TSuggestionData\n    | TInlineSuggestionData\n    | undefined;\n\n  if (data) return data;\n  if (typeof suggestionApi.dataList !== 'function') return;\n\n  for (const child of element.children) {\n    if (!TextApi.isText(child)) continue;\n\n    const childData = suggestionApi.dataList(child as TSuggestionText).at(-1);\n\n    if (childData) return childData;\n  }\n}\n\nexport const BaseSuggestionKit = [\n  BaseSuggestionPlugin.configure({\n    inject: {\n      isElement: true,\n      nodeProps: {\n        nodeKey: '',\n        styleKey: 'cssText',\n        transformProps: ({ editor, element, props }) => {\n          if (!element) return props;\n\n          const suggestionData = getInlineSuggestionData(editor, element);\n\n          if (!suggestionData) return props;\n\n          return {\n            ...props,\n            'data-inline-suggestion': suggestionData.type,\n          };\n        },\n        transformStyle: () => ({}) as CSSStyleDeclaration,\n      },\n      targetPlugins: INLINE_SUGGESTION_TARGET_PLUGINS,\n    },\n    render: {\n      belowRootNodes: VoidRemoveSuggestionOverlayStatic as any,\n      node: SuggestionLeafStatic as any,\n    },\n  }),\n];\n",
      "type": "registry:component",
      "target": "@components/editor/plugins/suggestion-base-kit.tsx"
    }
  ],
  "type": "registry:component"
}