editor.chain().focus().setParagraph().run()}
>
P
{([1, 2, 3, 4] as const).map((level) => (
editor.chain().focus().toggleHeading(level).run()}
>
H{level}
))}
editor.chain().focus().toggleBold().run()}
>
B
editor.chain().focus().toggleItalic().run()}
>
I
editor.chain().focus().toggleCode().run()}
>
{'>'}
editor.chain().focus().toggleStrikethrough().run()}
>
S
editor.chain().focus().toggleBulletList().run()}
>
โข
editor.chain().focus().toggleOrderedList().run()}
>
1.
editor.chain().focus().toggleTaskList().run()}
>
โ
editor.chain().focus().toggleBlockquote().run()}
>
โ
editor.chain().focus().toggleCodeBlock().run()}
>
{'{ }'}
editor.chain().focus().setHorizontalRule().run()}
>
โ
editor.chain().focus().insertTable().run()}
>
โ
editor.chain().focus().addColumnBefore().run()}
>
โโ
editor.chain().focus().addColumnAfter().run()}
>
โโ
editor.chain().focus().deleteColumn().run()}
>
{/* Axis stripes + the ร delete marker (already established by
deleteTable's โ ): the earlier โโ/โโ double arrows read as
"resize/expand", not "delete" (issue #336). */}
โฅร
editor.chain().focus().addRowBefore().run()}
>
โโ
editor.chain().focus().addRowAfter().run()}
>
โโ
editor.chain().focus().deleteRow().run()}
>
โคร
editor.chain().focus().mergeCells().run()}
>
{/* Arrows collapsing onto / leaving a cell border: merge removes
the border between selected cells, split restores it. */}
โ|โ
editor.chain().focus().splitCell().run()}
>
โ|โ
editor.chain().focus().toggleHeaderRow().run()}
>
โค
editor.chain().focus().deleteTable().run()}
>
โ
editor.chain().focus().undo().run()}
>
โบ
editor.chain().focus().redo().run()}
>
โป
);
}