
import { Node, mergeAttributes } from '@tiptap/core';

export const UpperAlphaList = Node.create({
    name: 'upperAlphaList',
    content: 'listItem+',
    group: 'block list',

    // Agrega una prioridad más alta para que se procese antes que las listas predeterminadas
    priority: 100,

    // Configura las reglas de parseo de HTML
    parseHTML() {
        return [
            {
                tag: 'ul',
                getAttrs: (element) => {
                    const style = element.getAttribute('style');
                    if (style && style.includes('list-style: upper-alpha')) {
                        return {};
                    }
                    return false;
                },
            },
        ];
    },

    // Configura cómo Tiptap debe renderizar el HTML
    renderHTML({ HTMLAttributes }) {
        return ['ul', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
            style: 'list-style: upper-alpha;',
        }), 0];
    },

    // Comando para el editor
    addCommands() {
        return {
            toggleUpperAlphaList: () => ({ commands }) => {
                return commands.toggleList(this.name, 'listItem');
            },
        };
    },
});