Gap Cursor
Show a horizontal block-level cursor that can be used to focus places that don’t allow regular selection, such as a position between two block nodes.
import 'prosekit/basic/style.css' import 'prosekit/basic/typography.css' import { createEditor } from 'prosekit/core' import { ProseKit } from 'prosekit/react' import { useMemo } from 'react' import { defineExtension } from './extension' export default function Editor() { const editor = useMemo(() => { return createEditor({ extension: defineExtension(), defaultContent }) }, []) return ( <ProseKit editor={editor}> <div className='box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow flex flex-col bg-white dark:bg-gray-950 color-black dark:color-white'> <div className='relative w-full flex-1 box-border overflow-y-scroll'> <div ref={editor.mount} className='ProseMirror box-border min-h-full px-[max(4rem,_calc(50%-20rem))] py-8 outline-none outline-0 [&_span[data-mention="user"]]:text-blue-500 [&_span[data-mention="tag"]]:text-violet-500'></div> </div> </div> </ProseKit> ) } const defaultContent = ` <p>Click the gap between two images or press arrow keys to see the gap cursor between two images</p> <img src="https://placehold.co/200x100" /> <img src="https://placehold.co/200x100" /> `
import { defineBaseKeymap, defineDoc, defineParagraph, defineText, union, } from 'prosekit/core' import { defineGapCursor } from 'prosekit/extensions/gap-cursor' import { defineImage } from 'prosekit/extensions/image' export function defineExtension() { return union( defineBaseKeymap(), defineDoc(), defineText(), defineParagraph(), defineGapCursor(), defineImage(), ) } export type EditorExtension = ReturnType<typeof defineExtension>
import 'prosekit/extensions/gap-cursor/style.css' import {
} from 'prosekit/extensions/gap-cursor' const defineGapCursor function defineGapCursor(): GapCursorExtension
Capture clicks near and arrow-key-motion past places that don't have a normally selectable position nearby, and create a gap cursor selection for them. The cursor is drawn as an element with class `ProseMirror-gapcursor`. You can either include `prosekit/extensions/gap-cursor.css` or add your own styles to make it visible. See [prosemirror-gapcursor](https://github.com/ProseMirror/prosemirror-gapcursor) for more information.= extension const extension: PlainExtension
() defineGapCursor function defineGapCursor(): GapCursorExtension
Capture clicks near and arrow-key-motion past places that don't have a normally selectable position nearby, and create a gap cursor selection for them. The cursor is drawn as an element with class `ProseMirror-gapcursor`. You can either include `prosekit/extensions/gap-cursor.css` or add your own styles to make it visible. See [prosemirror-gapcursor](https://github.com/ProseMirror/prosemirror-gapcursor) for more information.