{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "plate-types",
  "dependencies": [
    "@platejs/comment",
    "@platejs/excalidraw",
    "@platejs/link",
    "@platejs/media",
    "@platejs/mention",
    "@platejs/table",
    "@platejs/toggle"
  ],
  "files": [
    {
      "path": "src/registry/components/editor/plate-types.ts",
      "content": "'use client';\n\nimport type {\n  EmptyText,\n  KEYS,\n  PlainText,\n  TBasicMarks,\n  TCaptionProps,\n  TComboboxInputElement,\n  TCommentText,\n  TElement,\n  TFontMarks,\n  TImageElement,\n  TLineHeightProps,\n  TLinkElement,\n  TListProps,\n  TMediaEmbedElement,\n  TMentionElement,\n  TResizableProps,\n  TTableElement,\n  TText,\n  TTextAlignProps,\n} from 'platejs';\n\nexport interface MyBlockElement extends TElement, TListProps {\n  id?: string;\n}\n\nexport interface MyTextBlockElement\n  extends TElement,\n    TLineHeightProps,\n    TTextAlignProps {\n  children: (\n    | MyLinkElement\n    | MyMentionElement\n    | MyMentionInputElement\n    | RichText\n  )[];\n}\n\nexport interface MyBlockquoteElement extends MyTextBlockElement {\n  type: typeof KEYS.blockquote;\n}\n\nexport interface MyCodeBlockElement extends MyBlockElement {\n  children: MyCodeLineElement[];\n  type: typeof KEYS.codeBlock;\n}\n\nexport interface MyCodeLineElement extends TElement {\n  children: PlainText[];\n  type: typeof KEYS.codeLine;\n}\n\nexport interface MyH1Element extends MyTextBlockElement {\n  type: typeof KEYS.h1;\n}\n\nexport interface MyH2Element extends MyTextBlockElement {\n  type: typeof KEYS.h2;\n}\n\n/** Block props */\n\nexport interface MyH3Element extends MyTextBlockElement {\n  type: typeof KEYS.h3;\n}\n\nexport interface MyH4Element extends MyTextBlockElement {\n  type: typeof KEYS.h4;\n}\n\nexport interface MyH5Element extends MyTextBlockElement {\n  type: typeof KEYS.h5;\n}\n\nexport interface MyH6Element extends MyTextBlockElement {\n  type: typeof KEYS.h6;\n}\n\nexport interface MyHrElement extends MyBlockElement {\n  children: [EmptyText];\n  type: typeof KEYS.hr;\n}\n\nexport interface MyImageElement\n  extends MyBlockElement,\n    TCaptionProps,\n    TImageElement,\n    TResizableProps {\n  children: [EmptyText];\n  type: typeof KEYS.img;\n}\n\nexport interface MyLinkElement extends TLinkElement {\n  children: RichText[];\n  type: typeof KEYS.link;\n}\n\nexport interface MyMediaEmbedElement\n  extends MyBlockElement,\n    TCaptionProps,\n    TMediaEmbedElement,\n    TResizableProps {\n  children: [EmptyText];\n  type: typeof KEYS.mediaEmbed;\n}\n\nexport interface MyMentionElement extends TMentionElement {\n  children: [EmptyText];\n  type: typeof KEYS.mention;\n}\n\nexport interface MyMentionInputElement extends TComboboxInputElement {\n  children: [PlainText];\n  type: typeof KEYS.mentionInput;\n}\n\nexport type MyNestableBlock = MyParagraphElement;\n\nexport interface MyParagraphElement extends MyTextBlockElement {\n  type: typeof KEYS.p;\n}\n\nexport interface MyTableCellElement extends TElement {\n  children: MyNestableBlock[];\n  type: typeof KEYS.td;\n}\n\nexport interface MyTableElement extends MyBlockElement, TTableElement {\n  children: MyTableRowElement[];\n  type: typeof KEYS.table;\n}\n\nexport interface MyTableRowElement extends TElement {\n  children: MyTableCellElement[];\n  type: typeof KEYS.tr;\n}\n\nexport interface MyToggleElement extends MyTextBlockElement {\n  type: typeof KEYS.toggle;\n}\n\nexport interface RichText extends TBasicMarks, TCommentText, TFontMarks, TText {\n  kbd?: boolean;\n}\n\nexport type MyValue = (\n  | MyBlockquoteElement\n  | MyCodeBlockElement\n  | MyH1Element\n  | MyH2Element\n  | MyH3Element\n  | MyH4Element\n  | MyH5Element\n  | MyH6Element\n  | MyHrElement\n  | MyImageElement\n  | MyMediaEmbedElement\n  | MyParagraphElement\n  | MyTableElement\n  | MyToggleElement\n)[];\n",
      "type": "registry:component",
      "target": "@components/editor/plate-types.ts"
    }
  ],
  "type": "registry:component"
}