@pie-element/shared-editor-runtime 0.1.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/browser/dist-86k79VvK.js +1829 -0
  2. package/dist/browser/dist-86k79VvK.js.map +1 -0
  3. package/dist/browser/dist-BiHYI9ZI.js +3508 -0
  4. package/dist/browser/dist-BiHYI9ZI.js.map +1 -0
  5. package/dist/browser/dist-BzUsSMiM.js +933 -0
  6. package/dist/browser/dist-BzUsSMiM.js.map +1 -0
  7. package/dist/browser/dist-DlTupuCB.js +8000 -0
  8. package/dist/browser/dist-DlTupuCB.js.map +1 -0
  9. package/dist/browser/dist-DyMj6m6j.js +996 -0
  10. package/dist/browser/dist-DyMj6m6j.js.map +1 -0
  11. package/dist/browser/prosemirror-state/index.js +2 -0
  12. package/dist/browser/tiptap-core/index.js +2 -0
  13. package/dist/browser/tiptap-extension-character-count/index.js +7 -0
  14. package/dist/browser/tiptap-extension-character-count/index.js.map +1 -0
  15. package/dist/browser/tiptap-extension-image/index.js +133 -0
  16. package/dist/browser/tiptap-extension-image/index.js.map +1 -0
  17. package/dist/browser/tiptap-extension-list-item/index.js +7 -0
  18. package/dist/browser/tiptap-extension-list-item/index.js.map +1 -0
  19. package/dist/browser/tiptap-extension-placeholder/index.js +7 -0
  20. package/dist/browser/tiptap-extension-placeholder/index.js.map +1 -0
  21. package/dist/browser/tiptap-extension-subscript/index.js +37 -0
  22. package/dist/browser/tiptap-extension-subscript/index.js.map +1 -0
  23. package/dist/browser/tiptap-extension-superscript/index.js +37 -0
  24. package/dist/browser/tiptap-extension-superscript/index.js.map +1 -0
  25. package/dist/browser/tiptap-extension-table/index.js +2 -0
  26. package/dist/browser/tiptap-extension-table-cell/index.js +7 -0
  27. package/dist/browser/tiptap-extension-table-cell/index.js.map +1 -0
  28. package/dist/browser/tiptap-extension-table-header/index.js +7 -0
  29. package/dist/browser/tiptap-extension-table-header/index.js.map +1 -0
  30. package/dist/browser/tiptap-extension-table-row/index.js +7 -0
  31. package/dist/browser/tiptap-extension-table-row/index.js.map +1 -0
  32. package/dist/browser/tiptap-extension-text-align/index.js +49 -0
  33. package/dist/browser/tiptap-extension-text-align/index.js.map +1 -0
  34. package/dist/browser/tiptap-extension-text-style/index.js +166 -0
  35. package/dist/browser/tiptap-extension-text-style/index.js.map +1 -0
  36. package/dist/browser/tiptap-extensions/index.js +2 -0
  37. package/dist/browser/tiptap-pm-state/index.js +2 -0
  38. package/dist/browser/tiptap-starter-kit/index.js +1642 -0
  39. package/dist/browser/tiptap-starter-kit/index.js.map +1 -0
  40. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist-DyMj6m6j.js","names":["Selection"],"sources":["../../../../../node_modules/.bun/prosemirror-dropcursor@1.8.2/node_modules/prosemirror-dropcursor/dist/index.js","../../../../../node_modules/.bun/prosemirror-gapcursor@1.4.1/node_modules/prosemirror-gapcursor/dist/index.js","../../../../../node_modules/.bun/rope-sequence@1.3.4/node_modules/rope-sequence/dist/index.js","../../../../../node_modules/.bun/prosemirror-history@1.5.0/node_modules/prosemirror-history/dist/index.js","../../../../../node_modules/.bun/@tiptap+extensions@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extensions/dist/index.js"],"sourcesContent":["import { Plugin } from 'prosemirror-state';\nimport { dropPoint } from 'prosemirror-transform';\n\n/**\nCreate a plugin that, when added to a ProseMirror instance,\ncauses a decoration to show up at the drop position when something\nis dragged over the editor.\n\nNodes may add a `disableDropCursor` property to their spec to\ncontrol the showing of a drop cursor inside them. This may be a\nboolean or a function, which will be called with a view and a\nposition, and should return a boolean.\n*/\nfunction dropCursor(options = {}) {\n return new Plugin({\n view(editorView) { return new DropCursorView(editorView, options); }\n });\n}\nclass DropCursorView {\n constructor(editorView, options) {\n var _a;\n this.editorView = editorView;\n this.cursorPos = null;\n this.element = null;\n this.timeout = -1;\n this.width = (_a = options.width) !== null && _a !== void 0 ? _a : 1;\n this.color = options.color === false ? undefined : (options.color || \"black\");\n this.class = options.class;\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(name => {\n let handler = (e) => { this[name](e); };\n editorView.dom.addEventListener(name, handler);\n return { name, handler };\n });\n }\n destroy() {\n this.handlers.forEach(({ name, handler }) => this.editorView.dom.removeEventListener(name, handler));\n }\n update(editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size)\n this.setCursor(null);\n else\n this.updateOverlay();\n }\n }\n setCursor(pos) {\n if (pos == this.cursorPos)\n return;\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n }\n else {\n this.updateOverlay();\n }\n }\n updateOverlay() {\n let $pos = this.editorView.state.doc.resolve(this.cursorPos);\n let isBlock = !$pos.parent.inlineContent, rect;\n let editorDOM = this.editorView.dom, editorRect = editorDOM.getBoundingClientRect();\n let scaleX = editorRect.width / editorDOM.offsetWidth, scaleY = editorRect.height / editorDOM.offsetHeight;\n if (isBlock) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n let node = this.editorView.nodeDOM(this.cursorPos - (before ? before.nodeSize : 0));\n if (node) {\n let nodeRect = node.getBoundingClientRect();\n let top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2;\n let halfWidth = (this.width / 2) * scaleY;\n rect = { left: nodeRect.left, right: nodeRect.right, top: top - halfWidth, bottom: top + halfWidth };\n }\n }\n }\n if (!rect) {\n let coords = this.editorView.coordsAtPos(this.cursorPos);\n let halfWidth = (this.width / 2) * scaleX;\n rect = { left: coords.left - halfWidth, right: coords.left + halfWidth, top: coords.top, bottom: coords.bottom };\n }\n let parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class)\n this.element.className = this.class;\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none;\";\n if (this.color) {\n this.element.style.backgroundColor = this.color;\n }\n }\n this.element.classList.toggle(\"prosemirror-dropcursor-block\", isBlock);\n this.element.classList.toggle(\"prosemirror-dropcursor-inline\", !isBlock);\n let parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n }\n else {\n let rect = parent.getBoundingClientRect();\n let parentScaleX = rect.width / parent.offsetWidth, parentScaleY = rect.height / parent.offsetHeight;\n parentLeft = rect.left - parent.scrollLeft * parentScaleX;\n parentTop = rect.top - parent.scrollTop * parentScaleY;\n }\n this.element.style.left = (rect.left - parentLeft) / scaleX + \"px\";\n this.element.style.top = (rect.top - parentTop) / scaleY + \"px\";\n this.element.style.width = (rect.right - rect.left) / scaleX + \"px\";\n this.element.style.height = (rect.bottom - rect.top) / scaleY + \"px\";\n }\n scheduleRemoval(timeout) {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => this.setCursor(null), timeout);\n }\n dragover(event) {\n if (!this.editorView.editable)\n return;\n let pos = this.editorView.posAtCoords({ left: event.clientX, top: event.clientY });\n let node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n let disableDropCursor = node && node.type.spec.disableDropCursor;\n let disabled = typeof disableDropCursor == \"function\"\n ? disableDropCursor(this.editorView, pos, event)\n : disableDropCursor;\n if (pos && !disabled) {\n let target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n let point = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (point != null)\n target = point;\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n }\n dragend() {\n this.scheduleRemoval(20);\n }\n drop() {\n this.scheduleRemoval(20);\n }\n dragleave(event) {\n if (!this.editorView.dom.contains(event.relatedTarget))\n this.setCursor(null);\n }\n}\n\nexport { dropCursor };\n","import { keydownHandler } from 'prosemirror-keymap';\nimport { Selection, NodeSelection, TextSelection, Plugin } from 'prosemirror-state';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { DecorationSet, Decoration } from 'prosemirror-view';\n\n/**\nGap cursor selections are represented using this class. Its\n`$anchor` and `$head` properties both point at the cursor position.\n*/\nclass GapCursor extends Selection {\n /**\n Create a gap cursor.\n */\n constructor($pos) {\n super($pos, $pos);\n }\n map(doc, mapping) {\n let $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n content() { return Slice.empty; }\n eq(other) {\n return other instanceof GapCursor && other.head == this.head;\n }\n toJSON() {\n return { type: \"gapcursor\", pos: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for GapCursor.fromJSON\");\n return new GapCursor(doc.resolve(json.pos));\n }\n /**\n @internal\n */\n getBookmark() { return new GapBookmark(this.anchor); }\n /**\n @internal\n */\n static valid($pos) {\n let parent = $pos.parent;\n if (parent.inlineContent || !closedBefore($pos) || !closedAfter($pos))\n return false;\n let override = parent.type.spec.allowGapCursor;\n if (override != null)\n return override;\n let deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock;\n }\n /**\n @internal\n */\n static findGapCursorFrom($pos, dir, mustMove = false) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos))\n return $pos;\n let pos = $pos.pos, next = null;\n // Scan up from this position\n for (let d = $pos.depth;; d--) {\n let parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break;\n }\n else if (d == 0) {\n return null;\n }\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n // And then down into the next node\n for (;;) {\n let inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search;\n }\n break;\n }\n next = inside;\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n return null;\n }\n }\n}\nGapCursor.prototype.visible = false;\nGapCursor.findFrom = GapCursor.findGapCursorFrom;\nSelection.jsonID(\"gapcursor\", GapCursor);\nclass GapBookmark {\n constructor(pos) {\n this.pos = pos;\n }\n map(mapping) {\n return new GapBookmark(mapping.map(this.pos));\n }\n resolve(doc) {\n let $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n}\nfunction needsGap(type) {\n return type.isAtom || type.spec.isolating || type.spec.createGapCursor;\n}\nfunction closedBefore($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n // See if the node before (or its first ancestor) is closed\n for (let before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || needsGap(before.type))\n return true;\n if (before.inlineContent)\n return false;\n }\n }\n // Hit start of document\n return true;\n}\nfunction closedAfter($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n for (let after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || needsGap(after.type))\n return true;\n if (after.inlineContent)\n return false;\n }\n }\n return true;\n}\n\n/**\nCreate a gap cursor plugin. When enabled, this will capture clicks\nnear and arrow-key-motion past places that don't have a normally\nselectable position nearby, and create a gap cursor selection for\nthem. The cursor is drawn as an element with class\n`ProseMirror-gapcursor`. You can either include\n`style/gapcursor.css` from the package's directory or add your own\nstyles to make it visible.\n*/\nfunction gapCursor() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n createSelectionBetween(_view, $anchor, $head) {\n return $anchor.pos == $head.pos && GapCursor.valid($head) ? new GapCursor($head) : null;\n },\n handleClick,\n handleKeyDown,\n handleDOMEvents: { beforeinput: beforeinput }\n }\n });\n}\nconst handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\nfunction arrow(axis, dir) {\n const dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function (state, dispatch, view) {\n let sel = state.selection;\n let $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0)\n return false;\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n let $found = GapCursor.findGapCursorFrom($start, dir, mustMove);\n if (!$found)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(new GapCursor($found)));\n return true;\n };\n}\nfunction handleClick(view, pos, event) {\n if (!view || !view.editable)\n return false;\n let $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos))\n return false;\n let clickPos = view.posAtCoords({ left: event.clientX, top: event.clientY });\n if (clickPos && clickPos.inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(clickPos.inside)))\n return false;\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true;\n}\n// This is a hack that, when a composition starts while a gap cursor\n// is active, quickly creates an inline context for the composition to\n// happen in, to avoid it being aborted by the DOM selection being\n// moved into a valid position.\nfunction beforeinput(view, event) {\n if (event.inputType != \"insertCompositionText\" || !(view.state.selection instanceof GapCursor))\n return false;\n let { $from } = view.state.selection;\n let insert = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);\n if (!insert)\n return false;\n let frag = Fragment.empty;\n for (let i = insert.length - 1; i >= 0; i--)\n frag = Fragment.from(insert[i].createAndFill(null, frag));\n let tr = view.state.tr.replace($from.pos, $from.pos, new Slice(frag, 0, 0));\n tr.setSelection(TextSelection.near(tr.doc.resolve($from.pos + 1)));\n view.dispatch(tr);\n return false;\n}\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor))\n return null;\n let node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, { key: \"gapcursor\" })]);\n}\n\nexport { GapCursor, gapCursor };\n","var GOOD_LEAF_SIZE = 200;\n\n// :: class<T> A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence<T>>) → RopeSequence<T>\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence<T>\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence<T>>) → RopeSequence<T>\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\nexport default RopeSequence;\n","import RopeSequence from 'rope-sequence';\nimport { Mapping } from 'prosemirror-transform';\nimport { PluginKey, Plugin } from 'prosemirror-state';\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n// Used to schedule history compression\nconst max_empty_items = 500;\nclass Branch {\n constructor(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n }\n // Pop the latest event off the branch's history and apply it\n // to a document transform.\n popEvent(state, preserveItems) {\n if (this.eventCount == 0)\n return null;\n let end = this.items.length;\n for (;; end--) {\n let next = this.items.get(end - 1);\n if (next.selection) {\n --end;\n break;\n }\n }\n let remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n let transform = state.tr;\n let selection, remaining;\n let addAfter = [], addBefore = [];\n this.items.forEach((item, i) => {\n if (!item.step) {\n if (!remap) {\n remap = this.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return;\n }\n if (remap) {\n addBefore.push(new Item(item.map));\n let step = item.step.map(remap.slice(mapFrom)), map;\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, undefined, undefined, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n }\n else {\n transform.maybeStep(item.step);\n }\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this.eventCount - 1);\n return false;\n }\n }, this.items.length, 0);\n return { remaining: remaining, transform, selection: selection };\n }\n // Create a new branch with the given transform added.\n addTransform(transform, selection, histOptions, preserveItems) {\n let newItems = [], eventCount = this.eventCount;\n let oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n for (let i = 0; i < transform.steps.length; i++) {\n let step = transform.steps[i].invert(transform.docs[i]);\n let item = new Item(transform.mapping.maps[i], step, selection), merged;\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i)\n newItems.pop();\n else\n oldItems = oldItems.slice(0, oldItems.length - 1);\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = undefined;\n }\n if (!preserveItems)\n lastItem = item;\n }\n let overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount);\n }\n remapping(from, to) {\n let maps = new Mapping;\n this.items.forEach((item, i) => {\n let mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : undefined;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps;\n }\n addMaps(array) {\n if (this.eventCount == 0)\n return this;\n return new Branch(this.items.append(array.map(map => new Item(map))), this.eventCount);\n }\n // When the collab module receives remote changes, the history has\n // to know about those, so that it can adjust the steps that were\n // rebased on top of the remote changes, and include the position\n // maps for the remote changes in its array of items.\n rebased(rebasedTransform, rebasedCount) {\n if (!this.eventCount)\n return this;\n let rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n let mapping = rebasedTransform.mapping;\n let newUntil = rebasedTransform.steps.length;\n let eventCount = this.eventCount;\n this.items.forEach(item => { if (item.selection)\n eventCount--; }, start);\n let iRebased = rebasedCount;\n this.items.forEach(item => {\n let pos = mapping.getMirror(--iRebased);\n if (pos == null)\n return;\n newUntil = Math.min(newUntil, pos);\n let map = mapping.maps[pos];\n if (item.step) {\n let step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n let selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection)\n eventCount++;\n rebasedItems.push(new Item(map, step, selection));\n }\n else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n let newMaps = [];\n for (let i = rebasedCount; i < newUntil; i++)\n newMaps.push(new Item(mapping.maps[i]));\n let items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n let branch = new Branch(items, eventCount);\n if (branch.emptyItemCount() > max_empty_items)\n branch = branch.compress(this.items.length - rebasedItems.length);\n return branch;\n }\n emptyItemCount() {\n let count = 0;\n this.items.forEach(item => { if (!item.step)\n count++; });\n return count;\n }\n // Compressing a branch means rewriting it to push the air (map-only\n // items) out. During collaboration, these naturally accumulate\n // because each remote change adds one. The `upto` argument is used\n // to ensure that only the items below a given level are compressed,\n // because `rebased` relies on a clean, untouched set of items in\n // order to associate old items with rebased steps.\n compress(upto = this.items.length) {\n let remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n let items = [], events = 0;\n this.items.forEach((item, i) => {\n if (i >= upto) {\n items.push(item);\n if (item.selection)\n events++;\n }\n else if (item.step) {\n let step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n if (step) {\n let selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection)\n events++;\n let newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n items[last] = merged;\n else\n items.push(newItem);\n }\n }\n else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(RopeSequence.from(items.reverse()), events);\n }\n}\nBranch.empty = new Branch(RopeSequence.empty, 0);\nfunction cutOffEvents(items, n) {\n let cutPoint;\n items.forEach((item, i) => {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false;\n }\n });\n return items.slice(cutPoint);\n}\nclass Item {\n constructor(\n // The (forward) step map for this item.\n map, \n // The inverted step\n step, \n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n selection, \n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n mirrorOffset) {\n this.map = map;\n this.step = step;\n this.selection = selection;\n this.mirrorOffset = mirrorOffset;\n }\n merge(other) {\n if (this.step && other.step && !other.selection) {\n let step = other.step.merge(this.step);\n if (step)\n return new Item(step.getMap().invert(), step, this.selection);\n }\n }\n}\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nclass HistoryState {\n constructor(done, undone, prevRanges, prevTime, prevComposition) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n this.prevComposition = prevComposition;\n }\n}\nconst DEPTH_OVERFLOW = 20;\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n let historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr)\n return historyTr.historyState;\n if (tr.getMeta(closeHistoryKey))\n history = new HistoryState(history.done, history.undone, null, 0, -1);\n let appended = tr.getMeta(\"appendedTransaction\");\n if (tr.steps.length == 0) {\n return history;\n }\n else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps), history.prevTime, history.prevComposition);\n else\n return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);\n }\n else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n let composition = tr.getMeta(\"composition\");\n let newGroup = history.prevTime == 0 ||\n (!appended && history.prevComposition != composition &&\n (history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges)));\n let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);\n }\n else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n}\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges)\n return false;\n if (!transform.docChanged)\n return true;\n let adjacent = false;\n transform.mapping.maps[0].forEach((start, end) => {\n for (let i = 0; i < prevRanges.length; i += 2)\n if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n adjacent = true;\n });\n return adjacent;\n}\nfunction rangesFor(maps) {\n let result = [];\n for (let i = maps.length - 1; i >= 0 && result.length == 0; i--)\n maps[i].forEach((_from, _to, from, to) => result.push(from, to));\n return result;\n}\nfunction mapRanges(ranges, mapping) {\n if (!ranges)\n return null;\n let result = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to)\n result.push(from, to);\n }\n return result;\n}\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, redo) {\n let preserveItems = mustPreserveItems(state);\n let histOptions = historyKey.get(state).spec.config;\n let pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop)\n return null;\n let selection = pop.selection.resolve(pop.transform.doc);\n let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);\n let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);\n return pop.transform.setSelection(selection).setMeta(historyKey, { redo, historyState: newHist });\n}\nlet cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n let plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (let i = 0; i < plugins.length; i++)\n if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break;\n }\n }\n return cachedPreserveItems;\n}\n/**\nSet a flag on the given transaction that will prevent further steps\nfrom being appended to an existing history event (so that they\nrequire a separate undo command to undo).\n*/\nfunction closeHistory(tr) {\n return tr.setMeta(closeHistoryKey, true);\n}\nconst historyKey = new PluginKey(\"history\");\nconst closeHistoryKey = new PluginKey(\"closeHistory\");\n/**\nReturns a plugin that enables the undo history for an editor. The\nplugin will track undo and redo stacks, which can be used with the\n[`undo`](https://prosemirror.net/docs/ref/#history.undo) and [`redo`](https://prosemirror.net/docs/ref/#history.redo) commands.\n\nYou can set an `\"addToHistory\"` [metadata\nproperty](https://prosemirror.net/docs/ref/#state.Transaction.setMeta) of `false` on a transaction\nto prevent it from being rolled back by undo.\n*/\nfunction history(config = {}) {\n config = { depth: config.depth || 100,\n newGroupDelay: config.newGroupDelay || 500 };\n return new Plugin({\n key: historyKey,\n state: {\n init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);\n },\n apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config);\n }\n },\n config,\n props: {\n handleDOMEvents: {\n beforeinput(view, e) {\n let inputType = e.inputType;\n let command = inputType == \"historyUndo\" ? undo : inputType == \"historyRedo\" ? redo : null;\n if (!command || !view.editable)\n return false;\n e.preventDefault();\n return command(view.state, view.dispatch);\n }\n }\n }\n });\n}\nfunction buildCommand(redo, scroll) {\n return (state, dispatch) => {\n let hist = historyKey.getState(state);\n if (!hist || (redo ? hist.undone : hist.done).eventCount == 0)\n return false;\n if (dispatch) {\n let tr = histTransaction(hist, state, redo);\n if (tr)\n dispatch(scroll ? tr.scrollIntoView() : tr);\n }\n return true;\n };\n}\n/**\nA command function that undoes the last change, if any.\n*/\nconst undo = buildCommand(false, true);\n/**\nA command function that redoes the last undone change, if any.\n*/\nconst redo = buildCommand(true, true);\n/**\nA command function that undoes the last change. Don't scroll the\nselection into view.\n*/\nconst undoNoScroll = buildCommand(false, false);\n/**\nA command function that redoes the last undone change. Don't\nscroll the selection into view.\n*/\nconst redoNoScroll = buildCommand(true, false);\n/**\nThe amount of undoable events available in a given state.\n*/\nfunction undoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.done.eventCount : 0;\n}\n/**\nThe amount of redoable events available in a given editor state.\n*/\nfunction redoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.undone.eventCount : 0;\n}\n/**\nReturns true if the given transaction was generated by the history\nplugin.\n*/\nfunction isHistoryTransaction(tr) {\n return tr.getMeta(historyKey) != null;\n}\n\nexport { closeHistory, history, isHistoryTransaction, redo, redoDepth, redoNoScroll, undo, undoDepth, undoNoScroll };\n","import { Extension, callOrReturn, getChangedRanges, getExtensionField, isNodeEmpty, isNodeSelection } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { dropCursor } from \"@tiptap/pm/dropcursor\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { gapCursor } from \"@tiptap/pm/gapcursor\";\nimport { history, redo, undo } from \"@tiptap/pm/history\";\n//#region src/character-count/character-count.ts\n/**\n* This extension allows you to count the characters and words of your document.\n* @see https://tiptap.dev/api/extensions/character-count\n*/\nconst CharacterCount = Extension.create({\n\tname: \"characterCount\",\n\taddOptions() {\n\t\treturn {\n\t\t\tlimit: null,\n\t\t\tautoTrim: true,\n\t\t\tmode: \"textSize\",\n\t\t\ttextCounter: (text) => text.length,\n\t\t\twordCounter: (text) => text.split(\" \").filter((word) => word !== \"\").length\n\t\t};\n\t},\n\taddStorage() {\n\t\treturn {\n\t\t\tcharacters: () => 0,\n\t\t\twords: () => 0\n\t\t};\n\t},\n\tonBeforeCreate() {\n\t\tthis.storage.characters = (options) => {\n\t\t\tconst node = (options === null || options === void 0 ? void 0 : options.node) || this.editor.state.doc;\n\t\t\tif (((options === null || options === void 0 ? void 0 : options.mode) || this.options.mode) === \"textSize\") {\n\t\t\t\tconst text = node.textBetween(0, node.content.size, void 0, \" \");\n\t\t\t\treturn this.options.textCounter(text);\n\t\t\t}\n\t\t\treturn node.nodeSize;\n\t\t};\n\t\tthis.storage.words = (options) => {\n\t\t\tconst node = (options === null || options === void 0 ? void 0 : options.node) || this.editor.state.doc;\n\t\t\tconst text = node.textBetween(0, node.content.size, \" \", \" \");\n\t\t\treturn this.options.wordCounter(text);\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\tlet initialEvaluationDone = false;\n\t\treturn [new Plugin({\n\t\t\tkey: new PluginKey(\"characterCount\"),\n\t\t\tappendTransaction: (transactions, oldState, newState) => {\n\t\t\t\tif (initialEvaluationDone) return;\n\t\t\t\tconst limit = this.options.limit;\n\t\t\t\tconst autoTrim = this.options.autoTrim;\n\t\t\t\tif (limit === null || limit === void 0 || limit === 0 || autoTrim === false) {\n\t\t\t\t\tinitialEvaluationDone = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst initialContentSize = this.storage.characters({ node: newState.doc });\n\t\t\t\tif (initialContentSize > limit) {\n\t\t\t\t\tconst over = initialContentSize - limit;\n\t\t\t\t\tconst from = 0;\n\t\t\t\t\tconst to = over;\n\t\t\t\t\tconsole.warn(`[CharacterCount] Initial content exceeded limit of ${limit} characters. Content was automatically trimmed.`);\n\t\t\t\t\tconst tr = newState.tr.deleteRange(from, to);\n\t\t\t\t\tinitialEvaluationDone = true;\n\t\t\t\t\treturn tr;\n\t\t\t\t}\n\t\t\t\tinitialEvaluationDone = true;\n\t\t\t},\n\t\t\tfilterTransaction: (transaction, state) => {\n\t\t\t\tconst limit = this.options.limit;\n\t\t\t\tif (!transaction.docChanged || limit === 0 || limit === null || limit === void 0) return true;\n\t\t\t\tconst oldSize = this.storage.characters({ node: state.doc });\n\t\t\t\tconst newSize = this.storage.characters({ node: transaction.doc });\n\t\t\t\tif (newSize <= limit) return true;\n\t\t\t\tif (oldSize > limit && newSize > limit && newSize <= oldSize) return true;\n\t\t\t\tif (oldSize > limit && newSize > limit && newSize > oldSize) return false;\n\t\t\t\tif (!transaction.getMeta(\"paste\")) return false;\n\t\t\t\tconst pos = transaction.selection.$head.pos;\n\t\t\t\tconst from = pos - (newSize - limit);\n\t\t\t\tconst to = pos;\n\t\t\t\ttransaction.deleteRange(from, to);\n\t\t\t\tif (this.storage.characters({ node: transaction.doc }) > limit) return false;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/drop-cursor/drop-cursor.ts\n/**\n* This extension allows you to add a drop cursor to your editor.\n* A drop cursor is a line that appears when you drag and drop content\n* in-between nodes.\n* @see https://tiptap.dev/api/extensions/dropcursor\n*/\nconst Dropcursor = Extension.create({\n\tname: \"dropCursor\",\n\taddOptions() {\n\t\treturn {\n\t\t\tcolor: \"currentColor\",\n\t\t\twidth: 1,\n\t\t\tclass: void 0\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\treturn [dropCursor(this.options)];\n\t}\n});\n//#endregion\n//#region src/focus/focus.ts\n/**\n* This extension allows you to add a class to the focused node.\n* @see https://www.tiptap.dev/api/extensions/focus\n*/\nconst Focus = Extension.create({\n\tname: \"focus\",\n\taddOptions() {\n\t\treturn {\n\t\t\tclassName: \"has-focus\",\n\t\t\tmode: \"all\"\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\treturn [new Plugin({\n\t\t\tkey: new PluginKey(\"focus\"),\n\t\t\tprops: { decorations: ({ doc, selection }) => {\n\t\t\t\tconst { isEditable, isFocused } = this.editor;\n\t\t\t\tconst { anchor } = selection;\n\t\t\t\tconst decorations = [];\n\t\t\t\tif (!isEditable || !isFocused) return DecorationSet.create(doc, []);\n\t\t\t\tlet maxLevels = 0;\n\t\t\t\tif (this.options.mode === \"deepest\") doc.descendants((node, pos) => {\n\t\t\t\t\tif (node.isText) return;\n\t\t\t\t\tif (!(anchor >= pos && anchor <= pos + node.nodeSize - 1)) return false;\n\t\t\t\t\tmaxLevels += 1;\n\t\t\t\t});\n\t\t\t\tlet currentLevel = 0;\n\t\t\t\tdoc.descendants((node, pos) => {\n\t\t\t\t\tif (node.isText) return false;\n\t\t\t\t\tif (!(anchor >= pos && anchor <= pos + node.nodeSize - 1)) return false;\n\t\t\t\t\tcurrentLevel += 1;\n\t\t\t\t\tif (this.options.mode === \"deepest\" && maxLevels - currentLevel > 0 || this.options.mode === \"shallowest\" && currentLevel > 1) return this.options.mode === \"deepest\";\n\t\t\t\t\tdecorations.push(Decoration.node(pos, pos + node.nodeSize, { class: this.options.className }));\n\t\t\t\t});\n\t\t\t\treturn DecorationSet.create(doc, decorations);\n\t\t\t} }\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/gap-cursor/gap-cursor.ts\n/**\n* This extension allows you to add a gap cursor to your editor.\n* A gap cursor is a cursor that appears when you click on a place\n* where no content is present, for example inbetween nodes.\n* @see https://tiptap.dev/api/extensions/gapcursor\n*/\nconst Gapcursor = Extension.create({\n\tname: \"gapCursor\",\n\taddProseMirrorPlugins() {\n\t\treturn [gapCursor()];\n\t},\n\textendNodeSchema(extension) {\n\t\tvar _callOrReturn;\n\t\tconst context = {\n\t\t\tname: extension.name,\n\t\t\toptions: extension.options,\n\t\t\tstorage: extension.storage\n\t\t};\n\t\treturn { allowGapCursor: (_callOrReturn = callOrReturn(getExtensionField(extension, \"allowGapCursor\", context))) !== null && _callOrReturn !== void 0 ? _callOrReturn : null };\n\t}\n});\n//#endregion\n//#region src/placeholder/constants.ts\n/** The default data attribute label */\nconst DEFAULT_DATA_ATTRIBUTE = \"placeholder\";\n/** The plugin key used to store and read the placeholder decoration set */\nconst PLUGIN_KEY = new PluginKey(\"tiptap__placeholder\");\n//#endregion\n//#region src/placeholder/utils/createPlaceholderDecoration.ts\n/**\n* Creates a ProseMirror node decoration that applies a placeholder\n* CSS class and data attribute to an empty node.\n* @param options.editor - The editor instance\n* @param options.pos - The position of the node in the document\n* @param options.node - The ProseMirror node\n* @param options.isEmptyDoc - Whether the entire document is empty\n* @param options.hasAnchor - Whether the selection anchor is within the node\n* @param options.dataAttribute - The data attribute name (e.g. `data-placeholder`)\n* @param options.classes - CSS classes for empty nodes and the empty editor\n* @param options.placeholder - The placeholder text or a function that returns it\n* @returns A ProseMirror node decoration with placeholder classes and data attribute\n*/\nfunction createPlaceholderDecoration(options) {\n\tconst { editor, placeholder, dataAttribute, pos, node, isEmptyDoc, hasAnchor, classes: { emptyNode, emptyEditor } } = options;\n\tconst classes = [emptyNode];\n\tif (isEmptyDoc) classes.push(emptyEditor);\n\treturn Decoration.node(pos, pos + node.nodeSize, {\n\t\tclass: classes.join(\" \"),\n\t\t[dataAttribute]: typeof placeholder === \"function\" ? placeholder({\n\t\t\teditor,\n\t\t\tnode,\n\t\t\tpos,\n\t\t\thasAnchor\n\t\t}) : placeholder\n\t});\n}\n//#endregion\n//#region src/placeholder/utils/buildPlaceholderDecorations.ts\nfunction resolveEmptyNodeClass(emptyNodeClass, props) {\n\treturn typeof emptyNodeClass === \"function\" ? emptyNodeClass(props) : emptyNodeClass;\n}\n/**\n* Scans a document range for empty textblocks that should receive placeholder\n* decorations. Used by the slow path and incremental state updates.\n*/\nfunction scanRangeForDecorations({ editor, options, dataAttribute, doc, selection, from, to }) {\n\tconst { anchor } = selection;\n\tconst decorations = [];\n\tconst isEmptyDoc = editor.isEmpty;\n\tdoc.nodesBetween(from, to, (node, pos) => {\n\t\tconst hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n\t\tconst isEmpty = !node.isLeaf && isNodeEmpty(node);\n\t\tif (!node.type.isTextblock) return options.includeChildren;\n\t\tif ((hasAnchor || !options.showOnlyCurrent) && isEmpty) decorations.push(createPlaceholderDecoration({\n\t\t\teditor,\n\t\t\tisEmptyDoc,\n\t\t\tdataAttribute,\n\t\t\thasAnchor,\n\t\t\tplaceholder: options.placeholder,\n\t\t\tclasses: {\n\t\t\t\temptyEditor: options.emptyEditorClass,\n\t\t\t\temptyNode: resolveEmptyNodeClass(options.emptyNodeClass, {\n\t\t\t\t\teditor,\n\t\t\t\t\tnode,\n\t\t\t\t\tpos,\n\t\t\t\t\thasAnchor\n\t\t\t\t})\n\t\t\t},\n\t\t\tnode,\n\t\t\tpos\n\t\t}));\n\t\treturn options.includeChildren;\n\t});\n\treturn decorations;\n}\n/**\n* Builds the placeholder decorations for the current document state.\n* @param options.editor - The editor instance.\n* @param options.options - The resolved placeholder options.\n* @param options.dataAttribute - The prepared `data-*` attribute name.\n* @param options.doc - The current document node.\n* @param options.selection - The current selection.\n* @returns A decoration set, or `null` when no placeholders should be shown.\n*/\nfunction buildPlaceholderDecorations({ editor, options, dataAttribute, doc, selection }) {\n\tif (!(editor.isEditable || !options.showOnlyWhenEditable)) return null;\n\tconst { anchor } = selection;\n\tconst decorations = [];\n\tconst isEmptyDoc = editor.isEmpty;\n\tif (options.showOnlyCurrent && !options.includeChildren) {\n\t\tconst resolved = doc.resolve(anchor);\n\t\tconst node = resolved.depth > 0 ? resolved.node(1) : resolved.nodeAfter;\n\t\tconst nodeStart = resolved.depth > 0 ? resolved.before(1) : anchor;\n\t\tif (node && node.type.isTextblock && isNodeEmpty(node)) {\n\t\t\tconst hasAnchor = anchor >= nodeStart && anchor <= nodeStart + node.nodeSize;\n\t\t\tdecorations.push(createPlaceholderDecoration({\n\t\t\t\teditor,\n\t\t\t\tisEmptyDoc,\n\t\t\t\tdataAttribute,\n\t\t\t\thasAnchor,\n\t\t\t\tplaceholder: options.placeholder,\n\t\t\t\tclasses: {\n\t\t\t\t\temptyEditor: options.emptyEditorClass,\n\t\t\t\t\temptyNode: resolveEmptyNodeClass(options.emptyNodeClass, {\n\t\t\t\t\t\teditor,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tpos: nodeStart,\n\t\t\t\t\t\thasAnchor\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tnode,\n\t\t\t\tpos: nodeStart\n\t\t\t}));\n\t\t}\n\t} else decorations.push(...scanRangeForDecorations({\n\t\teditor,\n\t\toptions,\n\t\tdataAttribute,\n\t\tdoc,\n\t\tselection,\n\t\tfrom: 0,\n\t\tto: doc.content.size\n\t}));\n\treturn DecorationSet.create(doc, decorations);\n}\n//#endregion\n//#region src/placeholder/utils/resolveTopLevelRange.ts\n/**\n* Resolves a document position to the `[from, to)` range of its containing\n* top-level block node in absolute document positions.\n*/\nfunction resolveTopLevelRange(doc, pos) {\n\tconst resolved = doc.resolve(pos);\n\tif (resolved.depth === 0) {\n\t\tvar _resolved$nodeAfter;\n\t\tconst node = (_resolved$nodeAfter = resolved.nodeAfter) !== null && _resolved$nodeAfter !== void 0 ? _resolved$nodeAfter : resolved.nodeBefore;\n\t\tif (!node) return {\n\t\t\tfrom: pos,\n\t\t\tto: pos\n\t\t};\n\t\tconst nodePos = resolved.nodeAfter ? pos : pos - node.nodeSize;\n\t\treturn {\n\t\t\tfrom: nodePos,\n\t\t\tto: nodePos + node.nodeSize\n\t\t};\n\t}\n\tconst topLevelPos = resolved.before(1);\n\treturn {\n\t\tfrom: topLevelPos,\n\t\tto: topLevelPos + resolved.node(1).nodeSize\n\t};\n}\n/**\n* Converts an absolute document range to content-relative positions used by\n* `Node#nodesBetween` and `Node#forEach` offsets.\n*/\nfunction toContentRelativeRange(doc, range) {\n\treturn {\n\t\tfrom: Math.max(0, range.from - 1),\n\t\tto: Math.min(doc.content.size, range.to - 1)\n\t};\n}\n/**\n* Returns the top-level block ranges that intersect a document change range.\n* Input `from`/`to` are absolute positions (e.g. from `getChangedRanges`).\n* Returned ranges are content-relative, matching `Node#forEach` offsets.\n*/\nfunction getTopLevelBlocksInRange(doc, from, to) {\n\tconst ranges = [];\n\tdoc.forEach((node, offset) => {\n\t\tconst nodeStart = offset;\n\t\tconst nodeEnd = nodeStart + node.nodeSize;\n\t\tconst absNodeStart = nodeStart + 1;\n\t\tconst absNodeEnd = nodeEnd + 1;\n\t\tif (absNodeStart < to && absNodeEnd > from) ranges.push({\n\t\t\tfrom: nodeStart,\n\t\t\tto: nodeEnd\n\t\t});\n\t});\n\treturn ranges;\n}\n/**\n* Sorts ranges by start position and merges overlapping or adjacent ranges.\n*/\nfunction mergeRanges(ranges) {\n\tif (ranges.length === 0) return [];\n\tconst sorted = [...ranges].sort((a, b) => a.from - b.from);\n\tconst merged = [{ ...sorted[0] }];\n\tfor (let i = 1; i < sorted.length; i += 1) {\n\t\tconst last = merged[merged.length - 1];\n\t\tconst current = sorted[i];\n\t\tif (current.from <= last.to) last.to = Math.max(last.to, current.to);\n\t\telse merged.push({ ...current });\n\t}\n\treturn merged;\n}\n//#endregion\n//#region src/placeholder/utils/placeholderStateField.ts\n/**\n* Expands a single changed range to the top-level blocks it touches.\n* Also resolves blocks at range boundaries so split/merge edits update\n* adjacent empty nodes (e.g. a new paragraph after Enter).\n*/\nfunction collectBlocksForChange(doc, change) {\n\tconst ranges = getTopLevelBlocksInRange(doc, change.from, change.to);\n\tranges.push(toContentRelativeRange(doc, resolveTopLevelRange(doc, change.from)));\n\tif (change.to > change.from) ranges.push(toContentRelativeRange(doc, resolveTopLevelRange(doc, Math.min(change.to, doc.content.size + 1) - 1)));\n\telse if (change.from < doc.content.size + 1) ranges.push(toContentRelativeRange(doc, resolveTopLevelRange(doc, Math.min(change.from + 1, doc.content.size))));\n\treturn ranges;\n}\n/**\n* Collects content-relative top-level block ranges that need placeholder\n* decorations recomputed after a transaction.\n*/\nfunction collectRescanRanges(tr, oldState, newState) {\n\tconst ranges = [];\n\tif (tr.docChanged) {\n\t\tconst changes = getChangedRanges(tr);\n\t\tfor (const change of changes) ranges.push(...collectBlocksForChange(newState.doc, change.newRange));\n\t}\n\tif (tr.selectionSet) {\n\t\tranges.push(toContentRelativeRange(newState.doc, resolveTopLevelRange(newState.doc, tr.mapping.map(oldState.selection.anchor))));\n\t\tranges.push(toContentRelativeRange(newState.doc, resolveTopLevelRange(newState.doc, newState.selection.anchor)));\n\t}\n\treturn mergeRanges(ranges);\n}\n/** Clamps a content-relative range to `[0, doc.content.size]`. */\nfunction clampRange(from, to, doc) {\n\tconst clampedFrom = Math.max(0, Math.min(from, doc.content.size));\n\treturn {\n\t\tfrom: clampedFrom,\n\t\tto: Math.max(clampedFrom, Math.min(to, doc.content.size))\n\t};\n}\n/**\n* Removes and rebuilds placeholder decorations within the given ranges.\n* Only drops decorations fully contained in a range so mapped decorations\n* on neighbouring blocks (e.g. at a block boundary) are kept intact.\n*/\nfunction updateDecorationsInRanges({ decorations, ranges, editor, options, dataAttribute, doc, selection }) {\n\tlet next = decorations;\n\tfor (const range of ranges) {\n\t\tconst { from, to } = clampRange(range.from, range.to, doc);\n\t\tconst existing = next.find(from, to).filter((decoration) => decoration.from >= from && decoration.to <= to);\n\t\tif (existing.length) next = next.remove(existing);\n\t\tconst newDecos = scanRangeForDecorations({\n\t\t\teditor,\n\t\t\toptions,\n\t\t\tdataAttribute,\n\t\t\tdoc,\n\t\t\tselection,\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t\tif (newDecos.length) next = next.add(doc, newDecos);\n\t}\n\treturn next;\n}\n/**\n* Creates the incremental `StateField<DecorationSet>` used by the slow path\n* (`showOnlyCurrent: false` or `includeChildren: true`).\n*\n* Decorations are mapped through each transaction and only recomputed for\n* top-level blocks touched by document or selection changes.\n* @param options.editor - The editor instance.\n* @param options.options - The resolved placeholder options.\n* @param options.dataAttribute - The prepared `data-*` attribute name.\n* @returns A ProseMirror state field storing the placeholder decoration set.\n*/\nfunction createPlaceholderStateField({ editor, options, dataAttribute }) {\n\treturn {\n\t\tinit(_config, state) {\n\t\t\tconst decorations = buildPlaceholderDecorations({\n\t\t\t\teditor,\n\t\t\t\toptions,\n\t\t\t\tdataAttribute,\n\t\t\t\tdoc: state.doc,\n\t\t\t\tselection: state.selection\n\t\t\t});\n\t\t\treturn decorations !== null && decorations !== void 0 ? decorations : DecorationSet.empty;\n\t\t},\n\t\tapply(tr, prev, oldState, newState) {\n\t\t\tif (!tr.docChanged && !tr.selectionSet) return prev;\n\t\t\treturn updateDecorationsInRanges({\n\t\t\t\tdecorations: prev.map(tr.mapping, tr.doc),\n\t\t\t\tranges: collectRescanRanges(tr, oldState, newState),\n\t\t\t\teditor,\n\t\t\t\toptions,\n\t\t\t\tdataAttribute,\n\t\t\t\tdoc: newState.doc,\n\t\t\t\tselection: newState.selection\n\t\t\t});\n\t\t}\n\t};\n}\n//#endregion\n//#region src/placeholder/utils/preparePlaceholderAttribute.ts\n/**\n* Prepares the placeholder attribute by ensuring it is properly formatted.\n* @param attr - The placeholder attribute string.\n* @returns The prepared placeholder attribute string.\n*/\nfunction preparePlaceholderAttribute(attr) {\n\treturn attr.replace(/\\s+/g, \"-\").replace(/[^a-zA-Z0-9-]/g, \"\").replace(/^[0-9-]+/, \"\").replace(/^-+/, \"\").toLowerCase();\n}\n//#endregion\n//#region src/placeholder/plugins/PlaceholderPlugin.ts\n/**\n* Creates the ProseMirror plugin that renders placeholder decorations.\n* @param options.editor - The editor instance.\n* @param options.options - The resolved placeholder options.\n* @returns The configured placeholder plugin.\n*/\nfunction createPlaceholderPlugin({ editor, options }) {\n\tconst dataAttribute = options.dataAttribute ? `data-${preparePlaceholderAttribute(options.dataAttribute)}` : `data-${DEFAULT_DATA_ATTRIBUTE}`;\n\tconst useResolvedPath = options.showOnlyCurrent && !options.includeChildren;\n\treturn new Plugin({\n\t\tkey: PLUGIN_KEY,\n\t\t...useResolvedPath ? {} : { state: createPlaceholderStateField({\n\t\t\teditor,\n\t\t\toptions,\n\t\t\tdataAttribute\n\t\t}) },\n\t\tprops: { decorations: useResolvedPath ? ({ doc, selection }) => buildPlaceholderDecorations({\n\t\t\teditor,\n\t\t\toptions,\n\t\t\tdataAttribute,\n\t\t\tdoc,\n\t\t\tselection\n\t\t}) : (state) => {\n\t\t\tvar _PLUGIN_KEY$getState;\n\t\t\tif (options.showOnlyWhenEditable && !editor.isEditable) return DecorationSet.empty;\n\t\t\treturn (_PLUGIN_KEY$getState = PLUGIN_KEY.getState(state)) !== null && _PLUGIN_KEY$getState !== void 0 ? _PLUGIN_KEY$getState : DecorationSet.empty;\n\t\t} }\n\t});\n}\n//#endregion\n//#region src/placeholder/placeholder.ts\n/**\n* This extension allows you to add a placeholder to your editor.\n* A placeholder is a text that appears when the editor or a node is empty.\n* @see https://www.tiptap.dev/api/extensions/placeholder\n*/\nconst Placeholder = Extension.create({\n\tname: \"placeholder\",\n\taddOptions() {\n\t\treturn {\n\t\t\temptyEditorClass: \"is-editor-empty\",\n\t\t\temptyNodeClass: \"is-empty\",\n\t\t\tdataAttribute: DEFAULT_DATA_ATTRIBUTE,\n\t\t\tplaceholder: \"Write something …\",\n\t\t\tshowOnlyWhenEditable: true,\n\t\t\tshowOnlyCurrent: true,\n\t\t\tincludeChildren: false\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\treturn [createPlaceholderPlugin({\n\t\t\teditor: this.editor,\n\t\t\toptions: this.options\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/selection/selection.ts\n/**\n* Whether the native browser selection should be cleared on blur and restored on focus.\n* Only applies to non-empty text selections in an editable editor.\n*/\nfunction shouldSyncDomSelection(state, editor) {\n\treturn !state.selection.empty && !isNodeSelection(state.selection) && editor.isEditable;\n}\n/**\n* Whether the selection decoration should be rendered to keep the selection\n* visible while the editor is blurred (and not dragging).\n*/\nfunction shouldPreserveSelection(state, editor) {\n\treturn shouldSyncDomSelection(state, editor) && !editor.isFocused && !editor.view.dragging;\n}\nfunction clearDomSelection() {\n\tvar _window$getSelection;\n\t(_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();\n}\n/**\n* Sync the native selection from the editor state.\n* @see https://prosemirror.net/docs/ref/#view.EditorView.focus\n*/\nfunction restoreDomSelection(view) {\n\tview.focus();\n}\n/**\n* This extension allows you to add a class to the selected text when the editor is blurred.\n* It clears the native browser selection on blur (so `::selection` styles do not overlap the\n* decoration) and restores it when the editor is focused again.\n* @see https://www.tiptap.dev/api/extensions/selection\n*/\nconst Selection = Extension.create({\n\tname: \"selection\",\n\taddOptions() {\n\t\treturn { className: \"selection\" };\n\t},\n\taddProseMirrorPlugins() {\n\t\tconst { editor, options } = this;\n\t\treturn [new Plugin({\n\t\t\tkey: new PluginKey(\"selection\"),\n\t\t\tprops: {\n\t\t\t\tdecorations(state) {\n\t\t\t\t\tif (!shouldPreserveSelection(state, editor)) return null;\n\t\t\t\t\treturn DecorationSet.create(state.doc, [Decoration.inline(state.selection.from, state.selection.to, { class: options.className })]);\n\t\t\t\t},\n\t\t\t\thandleDOMEvents: {\n\t\t\t\t\tblur(view) {\n\t\t\t\t\t\tif (!shouldSyncDomSelection(view.state, editor)) return false;\n\t\t\t\t\t\tclearDomSelection();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t\tfocus(view) {\n\t\t\t\t\t\tif (!shouldSyncDomSelection(view.state, editor)) return false;\n\t\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\t\tif (!editor.isDestroyed && view.hasFocus()) restoreDomSelection(view);\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/trailing-node/trailing-node.ts\nconst skipTrailingNodeMeta = \"skipTrailingNode\";\nfunction nodeEqualsType({ types, node }) {\n\treturn node && Array.isArray(types) && types.includes(node.type) || (node === null || node === void 0 ? void 0 : node.type) === types;\n}\n/**\n* This extension allows you to add an extra node at the end of the document.\n* @see https://www.tiptap.dev/api/extensions/trailing-node\n*/\nconst TrailingNode = Extension.create({\n\tname: \"trailingNode\",\n\taddOptions() {\n\t\treturn {\n\t\t\tnode: void 0,\n\t\t\tnotAfter: []\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\tvar _this$editor$schema$t;\n\t\tconst plugin = new PluginKey(this.name);\n\t\tconst defaultNode = this.options.node || ((_this$editor$schema$t = this.editor.schema.topNodeType.contentMatch.defaultType) === null || _this$editor$schema$t === void 0 ? void 0 : _this$editor$schema$t.name) || \"paragraph\";\n\t\tconst disabledNodes = Object.entries(this.editor.schema.nodes).map(([, value]) => value).filter((node) => (this.options.notAfter || []).concat(defaultNode).includes(node.name));\n\t\treturn [new Plugin({\n\t\t\tkey: plugin,\n\t\t\tappendTransaction: (transactions, __, state) => {\n\t\t\t\tconst { doc, tr, schema } = state;\n\t\t\t\tconst shouldInsertNodeAtEnd = plugin.getState(state);\n\t\t\t\tconst endPosition = doc.content.size;\n\t\t\t\tconst type = schema.nodes[defaultNode];\n\t\t\t\tif (transactions.some((transaction) => transaction.getMeta(\"skipTrailingNode\"))) return;\n\t\t\t\tif (!shouldInsertNodeAtEnd) return;\n\t\t\t\treturn tr.insert(endPosition, type.create());\n\t\t\t},\n\t\t\tstate: {\n\t\t\t\tinit: (_, state) => {\n\t\t\t\t\tconst lastNode = state.tr.doc.lastChild;\n\t\t\t\t\treturn !nodeEqualsType({\n\t\t\t\t\t\tnode: lastNode,\n\t\t\t\t\t\ttypes: disabledNodes\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tapply: (tr, value) => {\n\t\t\t\t\tif (!tr.docChanged) return value;\n\t\t\t\t\tif (tr.getMeta(\"__uniqueIDTransaction\")) return value;\n\t\t\t\t\tconst lastNode = tr.doc.lastChild;\n\t\t\t\t\treturn !nodeEqualsType({\n\t\t\t\t\t\tnode: lastNode,\n\t\t\t\t\t\ttypes: disabledNodes\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/undo-redo/undo-redo.ts\n/**\n* This extension allows you to undo and redo recent changes.\n* @see https://www.tiptap.dev/api/extensions/undo-redo\n*\n* **Important**: If the `@tiptap/extension-collaboration` package is used, make sure to remove\n* the `undo-redo` extension, as it is not compatible with the `collaboration` extension.\n*\n* `@tiptap/extension-collaboration` uses its own history implementation.\n*/\nconst UndoRedo = Extension.create({\n\tname: \"undoRedo\",\n\taddOptions() {\n\t\treturn {\n\t\t\tdepth: 100,\n\t\t\tnewGroupDelay: 500\n\t\t};\n\t},\n\taddCommands() {\n\t\treturn {\n\t\t\tundo: () => ({ state, dispatch }) => {\n\t\t\t\treturn undo(state, dispatch);\n\t\t\t},\n\t\t\tredo: () => ({ state, dispatch }) => {\n\t\t\t\treturn redo(state, dispatch);\n\t\t\t}\n\t\t};\n\t},\n\taddProseMirrorPlugins() {\n\t\treturn [history(this.options)];\n\t},\n\taddKeyboardShortcuts() {\n\t\treturn {\n\t\t\t\"Mod-z\": () => this.editor.commands.undo(),\n\t\t\t\"Shift-Mod-z\": () => this.editor.commands.redo(),\n\t\t\t\"Mod-y\": () => this.editor.commands.redo(),\n\t\t\t\"Mod-я\": () => this.editor.commands.undo(),\n\t\t\t\"Shift-Mod-я\": () => this.editor.commands.redo()\n\t\t};\n\t}\n});\n//#endregion\nexport { CharacterCount, DEFAULT_DATA_ATTRIBUTE, Dropcursor, Focus, Gapcursor, PLUGIN_KEY, Placeholder, Selection, TrailingNode, UndoRedo, preparePlaceholderAttribute, skipTrailingNodeMeta };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "../dist-BiHYI9ZI.js";
2
+ export { c as AllSelection, i as EditorState, o as NodeSelection, n as Plugin, e as PluginKey, a as Selection, s as SelectionRange, t as TextSelection, r as Transaction };
@@ -0,0 +1,2 @@
1
+ import { $ as ee, $t as te, A as e, An as t, At as n, B as r, Bt as i, C as a, Cn as o, Ct as s, D as c, Dn as l, Dt as u, E as d, En as f, Et as p, F as m, Fn as h, Ft as g, G as _, Gt as v, H as y, Ht as b, I as x, In as S, It as C, J as w, Jt as T, K as E, Kt as D, L as O, Ln as k, Lt as A, M as j, Mn as M, Mt as N, N as P, Nn as F, Nt as I, O as L, On as R, Ot as z, P as B, Pn as V, Pt as H, Q as U, Qt as W, R as G, Rn as K, Rt as q, S as J, Sn as Y, St as X, T as Z, Tn as Q, Tt as ne, U as re, Ut as ie, V as ae, Vt as oe, W as se, Wt as ce, X as le, Xt as ue, Y as de, Yt as fe, Z as pe, Zt as me, _ as he, _n as ge, _t as _e, a as ve, an as ye, at as be, b as xe, bn as Se, bt as Ce, c as we, cn as Te, ct as Ee, d as $, dn as De, dt as Oe, en as ke, et as Ae, f as je, fn as Me, ft as Ne, g as Pe, gn as Fe, gt as Ie, h as Le, hn as Re, ht as ze, i as Be, in as Ve, it as He, j as Ue, jn as We, jt as Ge, k as Ke, kn as qe, kt as Je, l as Ye, ln as Xe, lt as Ze, m as Qe, mn as $e, mt as et, n as tt, nn as nt, nt as rt, o as it, on as at, ot, p as st, pn as ct, pt as lt, q as ut, qt as dt, r as ft, rn as pt, rt as mt, s as ht, sn as gt, st as _t, t as vt, tn as yt, tt as bt, u as xt, un as St, ut as Ct, v as wt, vn as Tt, vt as Et, w as Dt, wn as Ot, wt as kt, x as At, xn as jt, xt as Mt, y as Nt, yn as Pt, yt as Ft, z as It, zn as Lt, zt as Rt } from "../dist-DlTupuCB.js";
2
+ export { vt as CommandManager, tt as DECORATION_MANAGER_PLUGIN_KEY, ft as Decoration, Be as DecorationManager, ve as Editor, it as Extendable, ht as Extension, we as Fragment, Ye as InlineDecoration, xt as InputRule, $ as MappablePosition, je as Mark, st as MarkView, Qe as Node, Le as NodeDecoration, Pe as NodePos, he as NodeView, wt as PasteRule, Nt as ResizableNodeView, xe as ResizableNodeview, At as Tracker, J as WidgetDecoration, a as attrsEqual, Dt as callOrReturn, Z as canInsertNode, d as combineTransactionSteps, c as commands, L as createAtomBlockMarkdownSpec, Ke as createBlockMarkdownSpec, e as createChainableState, Ue as createDocument, p as createElement, p as h, j as createInlineMarkdownSpec, P as createMappablePosition, B as createNodeFromContent, m as createStyleTag, x as createWidgetDecoration, O as decodeHtmlEntities, G as defaultBlockAt, It as deleteProps, r as elementFromString, ae as encodeHtmlEntities, y as escapeForRegEx, re as extensions, se as findChildren, _ as findChildrenInRange, E as findDuplicates, ut as findParentNode, w as findParentNodeClosestToPos, de as flattenExtensions, le as fromString, pe as generateHTML, U as generateJSON, ee as generateText, Ae as getAttributes, bt as getAttributesFromExtensions, rt as getChangedRanges, mt as getDebugJSON, He as getExtensionField, be as getHTMLFromFragment, ot as getMarkAttributes, _t as getMarkRange, Ee as getMarkType, Ze as getMarksBetween, Ct as getNodeAtPosition, Oe as getNodeAttributes, Ne as getNodeType, lt as getPreviousBlockSibling, et as getRenderedAttributes, ze as getSchema, Ie as getSchemaByResolvedExtensions, _e as getSchemaTypeByName, Et as getSchemaTypeNameByName, Ft as getSplittedAttributes, Ce as getStyleProperty, Mt as getText, X as getTextBetween, s as getTextContentFromNodes, kt as getTextSerializersFromSchema, ne as getUpdatedPosition, u as injectExtensionAttributesToParseRule, z as inputRulesPlugin, Je as isActive, n as isAndroid, Ge as isAtEndOfNode, N as isAtStartOfNode, I as isEmptyObject, H as isExtensionRulesEnabled, g as isFirefox, C as isFunction, A as isList, q as isMacOS, Rt as isMarkActive, i as isNodeActive, oe as isNodeEmpty, b as isNodeSelection, ie as isNodeViewSelected, ce as isNumber, v as isPlainObject, D as isProseMirrorAddMarkStep, dt as isProseMirrorAddNodeMarkStep, T as isProseMirrorAttrStep, fe as isProseMirrorCellSelection, ue as isProseMirrorDocAttrStep, me as isProseMirrorFragment, W as isProseMirrorNodeSelection, te as isProseMirrorRemoveMarkStep, ke as isProseMirrorRemoveNodeMarkStep, yt as isProseMirrorReplaceAroundStep, nt as isProseMirrorReplaceStep, pt as isProseMirrorSlice, Ve as isProseMirrorStep, ye as isProseMirrorStepResult, at as isRegExp, gt as isSafari, Te as isString, Xe as isTextSelection, St as isiOS, De as liveWidgetKeys, Me as markInputRule, ct as markPasteRule, $e as markdown, Re as marksEqual, Fe as mergeAttributes, ge as mergeDeep, Tt as minMax, Pt as nodeInputRule, Se as nodePasteRule, jt as objectIncludes, Y as parseAttributes, o as parseIndentedBlocks, Ot as pasteRulesPlugin, Q as posToDOMRect, f as removeDuplicates, l as renderNestedMarkdownContent, R as resolveExtensions, qe as resolveFocusPosition, t as rewriteUnknownContent, We as selectionToInsertionEnd, M as serializeAttributes, F as sortExtensions, V as splitExtensions, h as textInputRule, S as textPasteRule, k as textblockTypeInputRule, K as updateMarkViewAttributes, Lt as wrappingInputRule };
@@ -0,0 +1,7 @@
1
+ import { t as e } from "../dist-DyMj6m6j.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-character-count@3.31.3+a20e98c2c6261f96/node_modules/@tiptap/extension-character-count/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as CharacterCount, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["CharacterCount$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-character-count@3.31.3+a20e98c2c6261f96/node_modules/@tiptap/extension-character-count/dist/index.js"],"sourcesContent":["import { CharacterCount, CharacterCount as CharacterCount$1 } from \"@tiptap/extensions\";\n//#region src/index.ts\nvar src_default = CharacterCount$1;\n//#endregion\nexport { CharacterCount, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}
@@ -0,0 +1,133 @@
1
+ import { gn as e, m as t, mt as n, y as r, yn as i } from "../dist-DlTupuCB.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-image@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-image/dist/index.js
3
+ var a = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/, o = t.create({
4
+ name: "image",
5
+ addOptions() {
6
+ return {
7
+ inline: !1,
8
+ allowBase64: !1,
9
+ HTMLAttributes: {},
10
+ resize: !1
11
+ };
12
+ },
13
+ inline() {
14
+ return this.options.inline;
15
+ },
16
+ group() {
17
+ return this.options.inline ? "inline" : "block";
18
+ },
19
+ draggable: !0,
20
+ addAttributes() {
21
+ return {
22
+ src: { default: null },
23
+ alt: { default: null },
24
+ title: { default: null },
25
+ width: { default: null },
26
+ height: { default: null }
27
+ };
28
+ },
29
+ parseHTML() {
30
+ return [{ tag: this.options.allowBase64 ? "img[src]" : "img[src]:not([src^=\"data:\"])" }];
31
+ },
32
+ renderHTML({ HTMLAttributes: t }) {
33
+ return ["img", e(this.options.HTMLAttributes, t)];
34
+ },
35
+ parseMarkdown: (e, t) => t.createNode("image", {
36
+ src: e.href,
37
+ title: e.title,
38
+ alt: e.text
39
+ }),
40
+ renderMarkdown: (e) => {
41
+ let t = e.attrs?.src ?? "", n = e.attrs?.alt ?? "", r = e.attrs?.title ?? "";
42
+ return r ? `![${n}](${t} "${r}")` : `![${n}](${t})`;
43
+ },
44
+ addNodeView() {
45
+ if (!this.options.resize || !this.options.resize.enabled || typeof document > "u") return null;
46
+ let { directions: t, minWidth: i, minHeight: a, alwaysPreserveAspectRatio: o } = this.options.resize, s = /* @__PURE__ */ new Set([
47
+ "src",
48
+ "width",
49
+ "height"
50
+ ]);
51
+ return ({ node: c, getPos: l, HTMLAttributes: u, editor: d }) => {
52
+ let f = document.createElement("img");
53
+ f.draggable = !1;
54
+ let p = e(this.options.HTMLAttributes, u);
55
+ Object.entries(p).forEach(([e, t]) => {
56
+ if (t != null) switch (e) {
57
+ case "src":
58
+ case "width":
59
+ case "height": break;
60
+ default: f.setAttribute(e, t);
61
+ }
62
+ }), p.src !== null && (f.src = p.src);
63
+ let m = { ...u }, h = (e) => {
64
+ if (typeof e == "string" && e !== "") {
65
+ f.getAttribute("src") !== e && (f.src = e);
66
+ return;
67
+ }
68
+ f.hasAttribute("src") && f.removeAttribute("src"), f.src !== "" && (f.src = "");
69
+ };
70
+ h(u.src);
71
+ let g = new r({
72
+ element: f,
73
+ editor: d,
74
+ node: c,
75
+ getPos: l,
76
+ onResize: (e, t) => {
77
+ f.style.width = `${e}px`, f.style.height = `${t}px`;
78
+ },
79
+ onCommit: (e, t) => {
80
+ let n = l();
81
+ n !== void 0 && this.editor.chain().setNodeSelection(n).updateAttributes(this.name, {
82
+ width: e,
83
+ height: t
84
+ }).run();
85
+ },
86
+ onUpdate: (e) => {
87
+ if (e.type !== c.type) return !1;
88
+ let t = n(e, d.extensionManager.attributes.filter((t) => t.type === e.type.name));
89
+ return Object.keys(m).forEach((e) => {
90
+ !s.has(e) && !(e in t) && f.removeAttribute(e);
91
+ }), Object.entries(t).forEach(([e, t]) => {
92
+ s.has(e) || (t == null ? f.removeAttribute(e) : f.setAttribute(e, t));
93
+ }), h(t.src), m = t, !0;
94
+ },
95
+ options: {
96
+ directions: t,
97
+ min: {
98
+ width: i,
99
+ height: a
100
+ },
101
+ preserveAspectRatio: o === !0
102
+ }
103
+ }), _ = g.dom, v = () => {
104
+ _.style.visibility = "", _.style.pointerEvents = "";
105
+ };
106
+ return _.style.visibility = "hidden", _.style.pointerEvents = "none", f.complete && f.naturalWidth > 0 ? v() : (f.onload = v, f.onerror = v), g;
107
+ };
108
+ },
109
+ addCommands() {
110
+ return { setImage: (e) => ({ commands: t }) => t.insertContent({
111
+ type: this.name,
112
+ attrs: e
113
+ }) };
114
+ },
115
+ addInputRules() {
116
+ return [i({
117
+ find: a,
118
+ type: this.type,
119
+ getAttributes: (e) => {
120
+ let [, , t, n, r] = e;
121
+ return {
122
+ src: n,
123
+ alt: t,
124
+ title: r
125
+ };
126
+ }
127
+ })];
128
+ }
129
+ }), s = o;
130
+ //#endregion
131
+ export { o as Image, s as default, a as inputRegex };
132
+
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-image@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-image/dist/index.js"],"sourcesContent":["import { Node, ResizableNodeView, getRenderedAttributes, mergeAttributes, nodeInputRule } from \"@tiptap/core\";\n//#region src/image.ts\n/**\n* Matches an image to a ![image](src \"title\") on input.\n*/\nconst inputRegex = /(?:^|\\s)(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n/**\n* This extension allows you to insert images.\n* @see https://www.tiptap.dev/api/nodes/image\n*/\nconst Image = Node.create({\n\tname: \"image\",\n\taddOptions() {\n\t\treturn {\n\t\t\tinline: false,\n\t\t\tallowBase64: false,\n\t\t\tHTMLAttributes: {},\n\t\t\tresize: false\n\t\t};\n\t},\n\tinline() {\n\t\treturn this.options.inline;\n\t},\n\tgroup() {\n\t\treturn this.options.inline ? \"inline\" : \"block\";\n\t},\n\tdraggable: true,\n\taddAttributes() {\n\t\treturn {\n\t\t\tsrc: { default: null },\n\t\t\talt: { default: null },\n\t\t\ttitle: { default: null },\n\t\t\twidth: { default: null },\n\t\t\theight: { default: null }\n\t\t};\n\t},\n\tparseHTML() {\n\t\treturn [{ tag: this.options.allowBase64 ? \"img[src]\" : \"img[src]:not([src^=\\\"data:\\\"])\" }];\n\t},\n\trenderHTML({ HTMLAttributes }) {\n\t\treturn [\"img\", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n\t},\n\tparseMarkdown: (token, helpers) => {\n\t\treturn helpers.createNode(\"image\", {\n\t\t\tsrc: token.href,\n\t\t\ttitle: token.title,\n\t\t\talt: token.text\n\t\t});\n\t},\n\trenderMarkdown: (node) => {\n\t\tvar _node$attrs$src, _node$attrs, _node$attrs$alt, _node$attrs2, _node$attrs$title, _node$attrs3;\n\t\tconst src = (_node$attrs$src = (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.src) !== null && _node$attrs$src !== void 0 ? _node$attrs$src : \"\";\n\t\tconst alt = (_node$attrs$alt = (_node$attrs2 = node.attrs) === null || _node$attrs2 === void 0 ? void 0 : _node$attrs2.alt) !== null && _node$attrs$alt !== void 0 ? _node$attrs$alt : \"\";\n\t\tconst title = (_node$attrs$title = (_node$attrs3 = node.attrs) === null || _node$attrs3 === void 0 ? void 0 : _node$attrs3.title) !== null && _node$attrs$title !== void 0 ? _node$attrs$title : \"\";\n\t\treturn title ? `![${alt}](${src} \"${title}\")` : `![${alt}](${src})`;\n\t},\n\taddNodeView() {\n\t\tif (!this.options.resize || !this.options.resize.enabled || typeof document === \"undefined\") return null;\n\t\tconst { directions, minWidth, minHeight, alwaysPreserveAspectRatio } = this.options.resize;\n\t\tconst resizeManagedAttributes = /* @__PURE__ */ new Set([\n\t\t\t\"src\",\n\t\t\t\"width\",\n\t\t\t\"height\"\n\t\t]);\n\t\treturn ({ node, getPos, HTMLAttributes, editor }) => {\n\t\t\tconst el = document.createElement(\"img\");\n\t\t\tel.draggable = false;\n\t\t\tconst mergedAttributes = mergeAttributes(this.options.HTMLAttributes, HTMLAttributes);\n\t\t\tObject.entries(mergedAttributes).forEach(([key, value]) => {\n\t\t\t\tif (value != null) switch (key) {\n\t\t\t\t\tcase \"src\":\n\t\t\t\t\tcase \"width\":\n\t\t\t\t\tcase \"height\": break;\n\t\t\t\t\tdefault: el.setAttribute(key, value);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (mergedAttributes.src !== null) el.src = mergedAttributes.src;\n\t\t\tlet previousHTMLAttributes = { ...HTMLAttributes };\n\t\t\tconst syncImageSource = (src) => {\n\t\t\t\tif (typeof src === \"string\" && src !== \"\") {\n\t\t\t\t\tif (el.getAttribute(\"src\") !== src) el.src = src;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (el.hasAttribute(\"src\")) el.removeAttribute(\"src\");\n\t\t\t\tif (el.src !== \"\") el.src = \"\";\n\t\t\t};\n\t\t\tsyncImageSource(HTMLAttributes.src);\n\t\t\tconst onUpdate = (updatedNode) => {\n\t\t\t\tif (updatedNode.type !== node.type) return false;\n\t\t\t\tconst extensionAttributes = editor.extensionManager.attributes.filter((attribute) => attribute.type === updatedNode.type.name);\n\t\t\t\tconst newHTMLAttributes = getRenderedAttributes(updatedNode, extensionAttributes);\n\t\t\t\tObject.keys(previousHTMLAttributes).forEach((key) => {\n\t\t\t\t\tif (!resizeManagedAttributes.has(key) && !(key in newHTMLAttributes)) el.removeAttribute(key);\n\t\t\t\t});\n\t\t\t\tObject.entries(newHTMLAttributes).forEach(([key, value]) => {\n\t\t\t\t\tif (resizeManagedAttributes.has(key)) return;\n\t\t\t\t\tif (value != null) el.setAttribute(key, value);\n\t\t\t\t\telse el.removeAttribute(key);\n\t\t\t\t});\n\t\t\t\tsyncImageSource(newHTMLAttributes.src);\n\t\t\t\tpreviousHTMLAttributes = newHTMLAttributes;\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tconst nodeView = new ResizableNodeView({\n\t\t\t\telement: el,\n\t\t\t\teditor,\n\t\t\t\tnode,\n\t\t\t\tgetPos,\n\t\t\t\tonResize: (width, height) => {\n\t\t\t\t\tel.style.width = `${width}px`;\n\t\t\t\t\tel.style.height = `${height}px`;\n\t\t\t\t},\n\t\t\t\tonCommit: (width, height) => {\n\t\t\t\t\tconst pos = getPos();\n\t\t\t\t\tif (pos === void 0) return;\n\t\t\t\t\tthis.editor.chain().setNodeSelection(pos).updateAttributes(this.name, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight\n\t\t\t\t\t}).run();\n\t\t\t\t},\n\t\t\t\tonUpdate,\n\t\t\t\toptions: {\n\t\t\t\t\tdirections,\n\t\t\t\t\tmin: {\n\t\t\t\t\t\twidth: minWidth,\n\t\t\t\t\t\theight: minHeight\n\t\t\t\t\t},\n\t\t\t\t\tpreserveAspectRatio: alwaysPreserveAspectRatio === true\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst dom = nodeView.dom;\n\t\t\tconst showNodeView = () => {\n\t\t\t\tdom.style.visibility = \"\";\n\t\t\t\tdom.style.pointerEvents = \"\";\n\t\t\t};\n\t\t\tdom.style.visibility = \"hidden\";\n\t\t\tdom.style.pointerEvents = \"none\";\n\t\t\tif (el.complete && el.naturalWidth > 0) showNodeView();\n\t\t\telse {\n\t\t\t\tel.onload = showNodeView;\n\t\t\t\tel.onerror = showNodeView;\n\t\t\t}\n\t\t\treturn nodeView;\n\t\t};\n\t},\n\taddCommands() {\n\t\treturn { setImage: (options) => ({ commands }) => {\n\t\t\treturn commands.insertContent({\n\t\t\t\ttype: this.name,\n\t\t\t\tattrs: options\n\t\t\t});\n\t\t} };\n\t},\n\taddInputRules() {\n\t\treturn [nodeInputRule({\n\t\t\tfind: inputRegex,\n\t\t\ttype: this.type,\n\t\t\tgetAttributes: (match) => {\n\t\t\t\tconst [, , alt, src, title] = match;\n\t\t\t\treturn {\n\t\t\t\t\tsrc,\n\t\t\t\t\talt,\n\t\t\t\t\ttitle\n\t\t\t\t};\n\t\t\t}\n\t\t})];\n\t}\n});\n//#endregion\n//#region src/index.ts\nvar src_default = Image;\n//#endregion\nexport { Image, src_default as default, inputRegex };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { n as e } from "../dist-BzUsSMiM.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-list-item@3.31.3+8791dd31e8bec98e/node_modules/@tiptap/extension-list-item/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as ListItem, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ListItem$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-list-item@3.31.3+8791dd31e8bec98e/node_modules/@tiptap/extension-list-item/dist/index.js"],"sourcesContent":["import { ListItem, ListItem as ListItem$1 } from \"@tiptap/extension-list\";\n//#region src/index.ts\nvar src_default = ListItem$1;\n//#endregion\nexport { ListItem, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}
@@ -0,0 +1,7 @@
1
+ import { s as e } from "../dist-DyMj6m6j.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-placeholder@3.31.3+a20e98c2c6261f96/node_modules/@tiptap/extension-placeholder/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as Placeholder, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Placeholder$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-placeholder@3.31.3+a20e98c2c6261f96/node_modules/@tiptap/extension-placeholder/dist/index.js"],"sourcesContent":["import { Placeholder, Placeholder as Placeholder$1 } from \"@tiptap/extensions\";\n//#region src/index.ts\nvar src_default = Placeholder$1;\n//#endregion\nexport { Placeholder, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}
@@ -0,0 +1,37 @@
1
+ import { f as e, gn as t } from "../dist-DlTupuCB.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-subscript@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-subscript/dist/index.js
3
+ var n = e.create({
4
+ name: "subscript",
5
+ addOptions() {
6
+ return { HTMLAttributes: {} };
7
+ },
8
+ parseHTML() {
9
+ return [{ tag: "sub" }, {
10
+ style: "vertical-align",
11
+ getAttrs(e) {
12
+ return e === "sub" && null;
13
+ }
14
+ }];
15
+ },
16
+ renderHTML({ HTMLAttributes: e }) {
17
+ return [
18
+ "sub",
19
+ t(this.options.HTMLAttributes, e),
20
+ 0
21
+ ];
22
+ },
23
+ addCommands() {
24
+ return {
25
+ setSubscript: () => ({ commands: e }) => e.setMark(this.name),
26
+ toggleSubscript: () => ({ commands: e }) => e.toggleMark(this.name),
27
+ unsetSubscript: () => ({ commands: e }) => e.unsetMark(this.name)
28
+ };
29
+ },
30
+ addKeyboardShortcuts() {
31
+ return { "Mod-,": () => this.editor.commands.toggleSubscript() };
32
+ }
33
+ }), r = n;
34
+ //#endregion
35
+ export { n as Subscript, r as default };
36
+
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-subscript@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-subscript/dist/index.js"],"sourcesContent":["import { Mark, mergeAttributes } from \"@tiptap/core\";\n//#region src/subscript.ts\n/**\n* This extension allows you to create subscript text.\n* @see https://www.tiptap.dev/api/marks/subscript\n*/\nconst Subscript = Mark.create({\n\tname: \"subscript\",\n\taddOptions() {\n\t\treturn { HTMLAttributes: {} };\n\t},\n\tparseHTML() {\n\t\treturn [{ tag: \"sub\" }, {\n\t\t\tstyle: \"vertical-align\",\n\t\t\tgetAttrs(value) {\n\t\t\t\tif (value !== \"sub\") return false;\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}];\n\t},\n\trenderHTML({ HTMLAttributes }) {\n\t\treturn [\n\t\t\t\"sub\",\n\t\t\tmergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n\t\t\t0\n\t\t];\n\t},\n\taddCommands() {\n\t\treturn {\n\t\t\tsetSubscript: () => ({ commands }) => {\n\t\t\t\treturn commands.setMark(this.name);\n\t\t\t},\n\t\t\ttoggleSubscript: () => ({ commands }) => {\n\t\t\t\treturn commands.toggleMark(this.name);\n\t\t\t},\n\t\t\tunsetSubscript: () => ({ commands }) => {\n\t\t\t\treturn commands.unsetMark(this.name);\n\t\t\t}\n\t\t};\n\t},\n\taddKeyboardShortcuts() {\n\t\treturn { \"Mod-,\": () => this.editor.commands.toggleSubscript() };\n\t}\n});\n//#endregion\n//#region src/index.ts\nvar src_default = Subscript;\n//#endregion\nexport { Subscript, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAMA,IAAM,IAAY,EAAK,OAAO;CAC7B,MAAM;CACN,aAAa;EACZ,OAAO,EAAE,gBAAgB,CAAC,EAAE;CAC7B;CACA,YAAY;EACX,OAAO,CAAC,EAAE,KAAK,MAAM,GAAG;GACvB,OAAO;GACP,SAAS,GAAO;IAEf,OADI,MAAU,SACP;GACR;EACD,CAAC;CACF;CACA,WAAW,EAAE,qBAAkB;EAC9B,OAAO;GACN;GACA,EAAgB,KAAK,QAAQ,gBAAgB,CAAc;GAC3D;EACD;CACD;CACA,cAAc;EACb,OAAO;GACN,qBAAqB,EAAE,kBACf,EAAS,QAAQ,KAAK,IAAI;GAElC,wBAAwB,EAAE,kBAClB,EAAS,WAAW,KAAK,IAAI;GAErC,uBAAuB,EAAE,kBACjB,EAAS,UAAU,KAAK,IAAI;EAErC;CACD;CACA,uBAAuB;EACtB,OAAO,EAAE,eAAe,KAAK,OAAO,SAAS,gBAAgB,EAAE;CAChE;AACD,CAAC,GAGG,IAAc"}
@@ -0,0 +1,37 @@
1
+ import { f as e, gn as t } from "../dist-DlTupuCB.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-superscript@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-superscript/dist/index.js
3
+ var n = e.create({
4
+ name: "superscript",
5
+ addOptions() {
6
+ return { HTMLAttributes: {} };
7
+ },
8
+ parseHTML() {
9
+ return [{ tag: "sup" }, {
10
+ style: "vertical-align",
11
+ getAttrs(e) {
12
+ return e === "super" && null;
13
+ }
14
+ }];
15
+ },
16
+ renderHTML({ HTMLAttributes: e }) {
17
+ return [
18
+ "sup",
19
+ t(this.options.HTMLAttributes, e),
20
+ 0
21
+ ];
22
+ },
23
+ addCommands() {
24
+ return {
25
+ setSuperscript: () => ({ commands: e }) => e.setMark(this.name),
26
+ toggleSuperscript: () => ({ commands: e }) => e.toggleMark(this.name),
27
+ unsetSuperscript: () => ({ commands: e }) => e.unsetMark(this.name)
28
+ };
29
+ },
30
+ addKeyboardShortcuts() {
31
+ return { "Mod-.": () => this.editor.commands.toggleSuperscript() };
32
+ }
33
+ }), r = n;
34
+ //#endregion
35
+ export { n as Superscript, r as default };
36
+
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-superscript@3.31.3+9ea2bbe04937c6bd/node_modules/@tiptap/extension-superscript/dist/index.js"],"sourcesContent":["import { Mark, mergeAttributes } from \"@tiptap/core\";\n//#region src/superscript.ts\n/**\n* This extension allows you to create superscript text.\n* @see https://www.tiptap.dev/api/marks/superscript\n*/\nconst Superscript = Mark.create({\n\tname: \"superscript\",\n\taddOptions() {\n\t\treturn { HTMLAttributes: {} };\n\t},\n\tparseHTML() {\n\t\treturn [{ tag: \"sup\" }, {\n\t\t\tstyle: \"vertical-align\",\n\t\t\tgetAttrs(value) {\n\t\t\t\tif (value !== \"super\") return false;\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}];\n\t},\n\trenderHTML({ HTMLAttributes }) {\n\t\treturn [\n\t\t\t\"sup\",\n\t\t\tmergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n\t\t\t0\n\t\t];\n\t},\n\taddCommands() {\n\t\treturn {\n\t\t\tsetSuperscript: () => ({ commands }) => {\n\t\t\t\treturn commands.setMark(this.name);\n\t\t\t},\n\t\t\ttoggleSuperscript: () => ({ commands }) => {\n\t\t\t\treturn commands.toggleMark(this.name);\n\t\t\t},\n\t\t\tunsetSuperscript: () => ({ commands }) => {\n\t\t\t\treturn commands.unsetMark(this.name);\n\t\t\t}\n\t\t};\n\t},\n\taddKeyboardShortcuts() {\n\t\treturn { \"Mod-.\": () => this.editor.commands.toggleSuperscript() };\n\t}\n});\n//#endregion\n//#region src/index.ts\nvar src_default = Superscript;\n//#endregion\nexport { Superscript, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAMA,IAAM,IAAc,EAAK,OAAO;CAC/B,MAAM;CACN,aAAa;EACZ,OAAO,EAAE,gBAAgB,CAAC,EAAE;CAC7B;CACA,YAAY;EACX,OAAO,CAAC,EAAE,KAAK,MAAM,GAAG;GACvB,OAAO;GACP,SAAS,GAAO;IAEf,OADI,MAAU,WACP;GACR;EACD,CAAC;CACF;CACA,WAAW,EAAE,qBAAkB;EAC9B,OAAO;GACN;GACA,EAAgB,KAAK,QAAQ,gBAAgB,CAAc;GAC3D;EACD;CACD;CACA,cAAc;EACb,OAAO;GACN,uBAAuB,EAAE,kBACjB,EAAS,QAAQ,KAAK,IAAI;GAElC,0BAA0B,EAAE,kBACpB,EAAS,WAAW,KAAK,IAAI;GAErC,yBAAyB,EAAE,kBACnB,EAAS,UAAU,KAAK,IAAI;EAErC;CACD;CACA,uBAAuB;EACtB,OAAO,EAAE,eAAe,KAAK,OAAO,SAAS,kBAAkB,EAAE;CAClE;AACD,CAAC,GAGG,IAAc"}
@@ -0,0 +1,2 @@
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../dist-86k79VvK.js";
2
+ export { d as DEFAULT_CELL_LINE_SEPARATOR, o as Table, l as TableCell, i as TableHeader, e as TableKit, s as TableRow, u as TableView, t as createColGroup, a as createTable, f as escapeTableCellPipes, n as preprocessTablePipes, r as renderTableToMarkdown, c as updateColumns };
@@ -0,0 +1,7 @@
1
+ import { r as e } from "../dist-86k79VvK.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-table-cell@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-cell/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as TableCell, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TableCell$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-table-cell@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-cell/dist/index.js"],"sourcesContent":["import { TableCell, TableCell as TableCell$1 } from \"@tiptap/extension-table\";\n//#region src/index.ts\nvar src_default = TableCell$1;\n//#endregion\nexport { TableCell, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}
@@ -0,0 +1,7 @@
1
+ import { i as e } from "../dist-86k79VvK.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-table-header@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-header/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as TableHeader, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TableHeader$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-table-header@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-header/dist/index.js"],"sourcesContent":["import { TableHeader, TableHeader as TableHeader$1 } from \"@tiptap/extension-table\";\n//#region src/index.ts\nvar src_default = TableHeader$1;\n//#endregion\nexport { TableHeader, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}
@@ -0,0 +1,7 @@
1
+ import { o as e } from "../dist-86k79VvK.js";
2
+ //#region ../../../node_modules/.bun/@tiptap+extension-table-row@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-row/dist/index.js
3
+ var t = e;
4
+ //#endregion
5
+ export { e as TableRow, t as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TableRow$1"],"sources":["../../../../../../node_modules/.bun/@tiptap+extension-table-row@3.31.3+f18b8259e95d0e66/node_modules/@tiptap/extension-table-row/dist/index.js"],"sourcesContent":["import { TableRow, TableRow as TableRow$1 } from \"@tiptap/extension-table\";\n//#region src/index.ts\nvar src_default = TableRow$1;\n//#endregion\nexport { TableRow, src_default as default };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0],"mappings":";;AAEA,IAAI,IAAcA"}