/**
 * Paragraph Node Extension
 * 段落节点
 */

import type { NodeSpec, Schema, SlashMenuItem } from '../../core/types';
import { NodeExtension } from '../../core/Extension';
import { setBlockType } from 'prosemirror-commands';
import { AlignLeft } from 'lucide-react';

export class Paragraph extends NodeExtension {
  get name(): string {
    return 'paragraph';
  }

  get schema(): NodeSpec {
    return {
      content: 'inline*',
      group: 'block',
      parseDOM: [{ tag: 'p' }],
      toDOM() {
        return ['p', { class: 'editor-paragraph' }, 0];
      },
    };
  }

  slashMenuItems(schema: Schema): SlashMenuItem[] {
    return [
      {
        name: 'paragraph',
        title: '正文',
        description: '普通段落文本',
        icon: AlignLeft,
        keywords: ['paragraph', 'text', '段落', '正文'],
        command: setBlockType(schema.nodes.paragraph),
        group: 'basic',
        priority: 100,
      },
    ];
  }
}
