@clickcns/vmedic-react 0.0.5 → 0.0.7

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 (84) hide show
  1. package/dist/cjs/api/index.js +1 -6
  2. package/dist/cjs/api/index.js.map +1 -1
  3. package/dist/cjs/hooks/index.js +1 -1
  4. package/dist/cjs/hooks/index.js.map +1 -1
  5. package/dist/cjs/shadcn-ui/index.js +2 -0
  6. package/dist/cjs/shadcn-ui/index.js.map +1 -0
  7. package/dist/cjs/ui/index.js +154 -0
  8. package/dist/cjs/ui/index.js.map +1 -0
  9. package/dist/cjs.js +1 -1
  10. package/dist/compiler-runtime-BNHg76kC.js +37 -0
  11. package/dist/compiler-runtime-BNHg76kC.js.map +1 -0
  12. package/dist/compiler-runtime-BtE0QEUt.cjs +6 -0
  13. package/dist/compiler-runtime-BtE0QEUt.cjs.map +1 -0
  14. package/dist/es/api/index.js +170 -1938
  15. package/dist/es/api/index.js.map +1 -1
  16. package/dist/es/hooks/index.js +17 -2
  17. package/dist/es/hooks/index.js.map +1 -1
  18. package/dist/es/shadcn-ui/index.js +217 -0
  19. package/dist/es/shadcn-ui/index.js.map +1 -0
  20. package/dist/es/ui/index.js +24399 -0
  21. package/dist/es/ui/index.js.map +1 -0
  22. package/dist/es.js +1 -6
  23. package/dist/es.js.map +1 -1
  24. package/dist/index.d.ts +1 -3
  25. package/dist/lib/utils/index.d.ts +1 -0
  26. package/dist/lib/utils/utils.d.ts +2 -0
  27. package/dist/shadcn-ui/button.d.ts +10 -0
  28. package/dist/shadcn-ui/checkbox.d.ts +4 -0
  29. package/dist/shadcn-ui/combobox.d.ts +16 -0
  30. package/dist/shadcn-ui/command.d.ts +80 -0
  31. package/dist/shadcn-ui/dialog.d.ts +15 -0
  32. package/dist/shadcn-ui/drawer.d.ts +22 -0
  33. package/dist/shadcn-ui/field.d.ts +24 -0
  34. package/dist/shadcn-ui/hover-card.d.ts +6 -0
  35. package/dist/shadcn-ui/index.d.ts +20 -0
  36. package/dist/shadcn-ui/input.d.ts +3 -0
  37. package/dist/shadcn-ui/kbd.d.ts +3 -0
  38. package/dist/shadcn-ui/label.d.ts +4 -0
  39. package/dist/shadcn-ui/pagination.d.ts +32 -0
  40. package/dist/shadcn-ui/popover.d.ts +7 -0
  41. package/dist/shadcn-ui/resizable.d.ts +23 -0
  42. package/dist/shadcn-ui/scroll-area.d.ts +5 -0
  43. package/dist/shadcn-ui/separator.d.ts +4 -0
  44. package/dist/shadcn-ui/sheet.d.ts +25 -0
  45. package/dist/shadcn-ui/slider.d.ts +4 -0
  46. package/dist/shadcn-ui/textarea.d.ts +3 -0
  47. package/dist/shadcn-ui/tooltip.d.ts +7 -0
  48. package/dist/tooltip-CmhEZXRA.cjs +7 -0
  49. package/dist/tooltip-CmhEZXRA.cjs.map +1 -0
  50. package/dist/tooltip-UK77hYPj.js +1310 -0
  51. package/dist/tooltip-UK77hYPj.js.map +1 -0
  52. package/dist/ui/feedbacks/FeedbackDetailPageContent.d.ts +27 -0
  53. package/dist/ui/feedbacks/components/CommentActions.d.ts +6 -0
  54. package/dist/ui/feedbacks/components/CommentEditor.d.ts +19 -0
  55. package/dist/ui/feedbacks/components/CommentItem.d.ts +21 -0
  56. package/dist/ui/feedbacks/components/CommentSection.d.ts +25 -0
  57. package/dist/ui/feedbacks/components/FeedbackBody.d.ts +16 -0
  58. package/dist/ui/feedbacks/components/FeedbackHeader.d.ts +9 -0
  59. package/dist/ui/feedbacks/components/index.d.ts +6 -0
  60. package/dist/ui/feedbacks/hooks/index.d.ts +1 -0
  61. package/dist/ui/feedbacks/hooks/useCommentEditor.d.ts +10 -0
  62. package/dist/ui/feedbacks/index.d.ts +1 -0
  63. package/dist/ui/index.d.ts +1 -0
  64. package/package.json +54 -6
  65. package/dist/TestComponent-B7kGqbVF.js +0 -291
  66. package/dist/TestComponent-B7kGqbVF.js.map +0 -1
  67. package/dist/TestComponent-oikV159P.cjs +0 -7
  68. package/dist/TestComponent-oikV159P.cjs.map +0 -1
  69. package/dist/cjs/components/index.js +0 -2
  70. package/dist/cjs/components/index.js.map +0 -1
  71. package/dist/cjs/utils/index.js +0 -2
  72. package/dist/cjs/utils/index.js.map +0 -1
  73. package/dist/components/TestComponent.d.ts +0 -5
  74. package/dist/components/index.d.ts +0 -1
  75. package/dist/es/components/index.js +0 -5
  76. package/dist/es/components/index.js.map +0 -1
  77. package/dist/es/utils/index.js +0 -2
  78. package/dist/es/utils/index.js.map +0 -1
  79. package/dist/types/api/index copy.d.ts +0 -10
  80. package/dist/useTest-D5Q24BCy.cjs +0 -6
  81. package/dist/useTest-D5Q24BCy.cjs.map +0 -1
  82. package/dist/useTest-qnK2xvVl.js +0 -52
  83. package/dist/useTest-qnK2xvVl.js.map +0 -1
  84. package/dist/utils/index.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/@kaburi/react-kit/dist/jsx-runtime-CTpVMxym.js","../../../node_modules/@kaburi/react-kit/dist/es/tiptap/index.js","../../../src/ui/feedbacks/components/CommentEditor.tsx","../../../src/ui/feedbacks/components/CommentActions.tsx","../../../src/ui/feedbacks/components/CommentItem.tsx","../../../src/ui/feedbacks/components/CommentSection.tsx","../../../src/ui/feedbacks/components/FeedbackHeader.tsx","../../../src/ui/feedbacks/components/FeedbackBody.tsx","../../../src/ui/feedbacks/hooks/useCommentEditor.ts","../../../src/ui/feedbacks/FeedbackDetailPageContent.tsx"],"sourcesContent":["import g from \"react\";\nvar v = { exports: {} }, N = {};\nvar L;\nfunction ue() {\n if (L) return N;\n L = 1;\n var a = g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n return N.c = function(i) {\n return a.H.useMemoCache(i);\n }, N;\n}\nvar x = {};\nvar q;\nfunction se() {\n return q || (q = 1, process.env.NODE_ENV !== \"production\" && (function() {\n var a = g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n x.c = function(i) {\n var l = a.H;\n return l === null && console.error(\n `Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`\n ), l.useMemoCache(i);\n };\n })()), x;\n}\nvar F;\nfunction ie() {\n return F || (F = 1, process.env.NODE_ENV === \"production\" ? v.exports = ue() : v.exports = se()), v.exports;\n}\nvar _e = ie(), b = { exports: {} }, d = {};\nvar M;\nfunction le() {\n if (M) return d;\n M = 1;\n var a = Symbol.for(\"react.transitional.element\"), i = Symbol.for(\"react.fragment\");\n function l(f, u, s) {\n var m = null;\n if (s !== void 0 && (m = \"\" + s), u.key !== void 0 && (m = \"\" + u.key), \"key\" in u) {\n s = {};\n for (var _ in u)\n _ !== \"key\" && (s[_] = u[_]);\n } else s = u;\n return u = s.ref, {\n $$typeof: a,\n type: f,\n key: m,\n ref: u !== void 0 ? u : null,\n props: s\n };\n }\n return d.Fragment = i, d.jsx = l, d.jsxs = l, d;\n}\nvar R = {};\nvar W;\nfunction ce() {\n return W || (W = 1, process.env.NODE_ENV !== \"production\" && (function() {\n function a(e) {\n if (e == null) return null;\n if (typeof e == \"function\")\n return e.$$typeof === ne ? null : e.displayName || e.name || null;\n if (typeof e == \"string\") return e;\n switch (e) {\n case T:\n return \"Fragment\";\n case X:\n return \"Profiler\";\n case z:\n return \"StrictMode\";\n case K:\n return \"Suspense\";\n case ee:\n return \"SuspenseList\";\n case te:\n return \"Activity\";\n }\n if (typeof e == \"object\")\n switch (typeof e.tag == \"number\" && console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ), e.$$typeof) {\n case J:\n return \"Portal\";\n case Z:\n return e.displayName || \"Context\";\n case B:\n return (e._context.displayName || \"Context\") + \".Consumer\";\n case Q:\n var r = e.render;\n return e = e.displayName, e || (e = r.displayName || r.name || \"\", e = e !== \"\" ? \"ForwardRef(\" + e + \")\" : \"ForwardRef\"), e;\n case re:\n return r = e.displayName || null, r !== null ? r : a(e.type) || \"Memo\";\n case h:\n r = e._payload, e = e._init;\n try {\n return a(e(r));\n } catch {\n }\n }\n return null;\n }\n function i(e) {\n return \"\" + e;\n }\n function l(e) {\n try {\n i(e);\n var r = !1;\n } catch {\n r = !0;\n }\n if (r) {\n r = console;\n var t = r.error, n = typeof Symbol == \"function\" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || \"Object\";\n return t.call(\n r,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n n\n ), i(e);\n }\n }\n function f(e) {\n if (e === T) return \"<>\";\n if (typeof e == \"object\" && e !== null && e.$$typeof === h)\n return \"<...>\";\n try {\n var r = a(e);\n return r ? \"<\" + r + \">\" : \"<...>\";\n } catch {\n return \"<...>\";\n }\n }\n function u() {\n var e = O.A;\n return e === null ? null : e.getOwner();\n }\n function s() {\n return Error(\"react-stack-top-frame\");\n }\n function m(e) {\n if (j.call(e, \"key\")) {\n var r = Object.getOwnPropertyDescriptor(e, \"key\").get;\n if (r && r.isReactWarning) return !1;\n }\n return e.key !== void 0;\n }\n function _(e, r) {\n function t() {\n Y || (Y = !0, console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n r\n ));\n }\n t.isReactWarning = !0, Object.defineProperty(e, \"key\", {\n get: t,\n configurable: !0\n });\n }\n function G() {\n var e = a(this.type);\n return I[e] || (I[e] = !0, console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n )), e = this.props.ref, e !== void 0 ? e : null;\n }\n function H(e, r, t, n, E, S) {\n var o = t.ref;\n return e = {\n $$typeof: C,\n type: e,\n key: r,\n props: t,\n _owner: n\n }, (o !== void 0 ? o : null) !== null ? Object.defineProperty(e, \"ref\", {\n enumerable: !1,\n get: G\n }) : Object.defineProperty(e, \"ref\", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n }), Object.defineProperty(e, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n }), Object.defineProperty(e, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: E\n }), Object.defineProperty(e, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: S\n }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;\n }\n function P(e, r, t, n, E, S) {\n var o = r.children;\n if (o !== void 0)\n if (n)\n if (oe(o)) {\n for (n = 0; n < o.length; n++)\n y(o[n]);\n Object.freeze && Object.freeze(o);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else y(o);\n if (j.call(r, \"key\")) {\n o = a(e);\n var c = Object.keys(r).filter(function(ae) {\n return ae !== \"key\";\n });\n n = 0 < c.length ? \"{key: someKey, \" + c.join(\": ..., \") + \": ...}\" : \"{key: someKey}\", U[o + n] || (c = 0 < c.length ? \"{\" + c.join(\": ..., \") + \": ...}\" : \"{}\", console.error(\n `A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />`,\n n,\n o,\n c,\n o\n ), U[o + n] = !0);\n }\n if (o = null, t !== void 0 && (l(t), o = \"\" + t), m(r) && (l(r.key), o = \"\" + r.key), \"key\" in r) {\n t = {};\n for (var A in r)\n A !== \"key\" && (t[A] = r[A]);\n } else t = r;\n return o && _(\n t,\n typeof e == \"function\" ? e.displayName || e.name || \"Unknown\" : e\n ), H(\n e,\n o,\n t,\n u(),\n E,\n S\n );\n }\n function y(e) {\n w(e) ? e._store && (e._store.validated = 1) : typeof e == \"object\" && e !== null && e.$$typeof === h && (e._payload.status === \"fulfilled\" ? w(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));\n }\n function w(e) {\n return typeof e == \"object\" && e !== null && e.$$typeof === C;\n }\n var p = g, C = Symbol.for(\"react.transitional.element\"), J = Symbol.for(\"react.portal\"), T = Symbol.for(\"react.fragment\"), z = Symbol.for(\"react.strict_mode\"), X = Symbol.for(\"react.profiler\"), B = Symbol.for(\"react.consumer\"), Z = Symbol.for(\"react.context\"), Q = Symbol.for(\"react.forward_ref\"), K = Symbol.for(\"react.suspense\"), ee = Symbol.for(\"react.suspense_list\"), re = Symbol.for(\"react.memo\"), h = Symbol.for(\"react.lazy\"), te = Symbol.for(\"react.activity\"), ne = Symbol.for(\"react.client.reference\"), O = p.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, j = Object.prototype.hasOwnProperty, oe = Array.isArray, k = console.createTask ? console.createTask : function() {\n return null;\n };\n p = {\n react_stack_bottom_frame: function(e) {\n return e();\n }\n };\n var Y, I = {}, D = p.react_stack_bottom_frame.bind(\n p,\n s\n )(), $ = k(f(s)), U = {};\n R.Fragment = T, R.jsx = function(e, r, t) {\n var n = 1e4 > O.recentlyCreatedOwnerStacks++;\n return P(\n e,\n r,\n t,\n !1,\n n ? Error(\"react-stack-top-frame\") : D,\n n ? k(f(e)) : $\n );\n }, R.jsxs = function(e, r, t) {\n var n = 1e4 > O.recentlyCreatedOwnerStacks++;\n return P(\n e,\n r,\n t,\n !0,\n n ? Error(\"react-stack-top-frame\") : D,\n n ? k(f(e)) : $\n );\n };\n })()), R;\n}\nvar V;\nfunction fe() {\n return V || (V = 1, process.env.NODE_ENV === \"production\" ? b.exports = le() : b.exports = ce()), b.exports;\n}\nvar de = fe();\nexport {\n _e as c,\n de as j\n};\n//# sourceMappingURL=jsx-runtime-CTpVMxym.js.map\n","import \"../styles/index.js\";\nimport Ge, { createRef as Of, memo as Rf, createContext as mc, createElement as Vr, version as ul, useContext as Df, useRef as Qn, useState as Jt, useDebugValue as gc, useEffect as Ds, forwardRef as yi, useLayoutEffect as If, useCallback as Lf, useImperativeHandle as Pf } from \"react\";\nimport zf, { flushSync as Bf } from \"react-dom\";\nimport { j as v, c as Is } from \"../../jsx-runtime-CTpVMxym.js\";\nfunction $f(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nfunction ye(t) {\n this.content = t;\n}\nye.prototype = {\n constructor: ye,\n find: function(t) {\n for (var e = 0; e < this.content.length; e += 2)\n if (this.content[e] === t) return e;\n return -1;\n },\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(t) {\n var e = this.find(t);\n return e == -1 ? void 0 : this.content[e + 1];\n },\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(t, e, n) {\n var r = n && n != t ? this.remove(n) : this, s = r.find(t), o = r.content.slice();\n return s == -1 ? o.push(n || t, e) : (o[s + 1] = e, n && (o[s] = n)), new ye(o);\n },\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(t) {\n var e = this.find(t);\n if (e == -1) return this;\n var n = this.content.slice();\n return n.splice(e, 2), new ye(n);\n },\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(t, e) {\n return new ye([t, e].concat(this.remove(t).content));\n },\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(t, e) {\n var n = this.remove(t).content.slice();\n return n.push(t, e), new ye(n);\n },\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(t, e, n) {\n var r = this.remove(e), s = r.content.slice(), o = r.find(t);\n return s.splice(o == -1 ? s.length : o, 0, e, n), new ye(s);\n },\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(t) {\n for (var e = 0; e < this.content.length; e += 2)\n t(this.content[e], this.content[e + 1]);\n },\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(t) {\n return t = ye.from(t), t.size ? new ye(t.content.concat(this.subtract(t).content)) : this;\n },\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(t) {\n return t = ye.from(t), t.size ? new ye(this.subtract(t).content.concat(t.content)) : this;\n },\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(t) {\n var e = this;\n t = ye.from(t);\n for (var n = 0; n < t.content.length; n += 2)\n e = e.remove(t.content[n]);\n return e;\n },\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var t = {};\n return this.forEach(function(e, n) {\n t[e] = n;\n }), t;\n },\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1;\n }\n};\nye.from = function(t) {\n if (t instanceof ye) return t;\n var e = [];\n if (t) for (var n in t) e.push(n, t[n]);\n return new ye(e);\n};\nfunction yc(t, e, n) {\n for (let r = 0; ; r++) {\n if (r == t.childCount || r == e.childCount)\n return t.childCount == e.childCount ? null : n;\n let s = t.child(r), o = e.child(r);\n if (s == o) {\n n += s.nodeSize;\n continue;\n }\n if (!s.sameMarkup(o))\n return n;\n if (s.isText && s.text != o.text) {\n for (let i = 0; s.text[i] == o.text[i]; i++)\n n++;\n return n;\n }\n if (s.content.size || o.content.size) {\n let i = yc(s.content, o.content, n + 1);\n if (i != null)\n return i;\n }\n n += s.nodeSize;\n }\n}\nfunction bc(t, e, n, r) {\n for (let s = t.childCount, o = e.childCount; ; ) {\n if (s == 0 || o == 0)\n return s == o ? null : { a: n, b: r };\n let i = t.child(--s), l = e.child(--o), a = i.nodeSize;\n if (i == l) {\n n -= a, r -= a;\n continue;\n }\n if (!i.sameMarkup(l))\n return { a: n, b: r };\n if (i.isText && i.text != l.text) {\n let c = 0, d = Math.min(i.text.length, l.text.length);\n for (; c < d && i.text[i.text.length - c - 1] == l.text[l.text.length - c - 1]; )\n c++, n--, r--;\n return { a: n, b: r };\n }\n if (i.content.size || l.content.size) {\n let c = bc(i.content, l.content, n - 1, r - 1);\n if (c)\n return c;\n }\n n -= a, r -= a;\n }\n}\nclass w {\n /**\n @internal\n */\n constructor(e, n) {\n if (this.content = e, this.size = n || 0, n == null)\n for (let r = 0; r < e.length; r++)\n this.size += e[r].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(e, n, r, s = 0, o) {\n for (let i = 0, l = 0; l < n; i++) {\n let a = this.content[i], c = l + a.nodeSize;\n if (c > e && r(a, s + l, o || null, i) !== !1 && a.content.size) {\n let d = l + 1;\n a.nodesBetween(Math.max(0, e - d), Math.min(a.content.size, n - d), r, s + d);\n }\n l = c;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(e) {\n this.nodesBetween(0, this.size, e);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(e, n, r, s) {\n let o = \"\", i = !0;\n return this.nodesBetween(e, n, (l, a) => {\n let c = l.isText ? l.text.slice(Math.max(e, a) - a, n - a) : l.isLeaf ? s ? typeof s == \"function\" ? s(l) : s : l.type.spec.leafText ? l.type.spec.leafText(l) : \"\" : \"\";\n l.isBlock && (l.isLeaf && c || l.isTextblock) && r && (i ? i = !1 : o += r), o += c;\n }, 0), o;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(e) {\n if (!e.size)\n return this;\n if (!this.size)\n return e;\n let n = this.lastChild, r = e.firstChild, s = this.content.slice(), o = 0;\n for (n.isText && n.sameMarkup(r) && (s[s.length - 1] = n.withText(n.text + r.text), o = 1); o < e.content.length; o++)\n s.push(e.content[o]);\n return new w(s, this.size + e.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(e, n = this.size) {\n if (e == 0 && n == this.size)\n return this;\n let r = [], s = 0;\n if (n > e)\n for (let o = 0, i = 0; i < n; o++) {\n let l = this.content[o], a = i + l.nodeSize;\n a > e && ((i < e || a > n) && (l.isText ? l = l.cut(Math.max(0, e - i), Math.min(l.text.length, n - i)) : l = l.cut(Math.max(0, e - i - 1), Math.min(l.content.size, n - i - 1))), r.push(l), s += l.nodeSize), i = a;\n }\n return new w(r, s);\n }\n /**\n @internal\n */\n cutByIndex(e, n) {\n return e == n ? w.empty : e == 0 && n == this.content.length ? this : new w(this.content.slice(e, n));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(e, n) {\n let r = this.content[e];\n if (r == n)\n return this;\n let s = this.content.slice(), o = this.size + n.nodeSize - r.nodeSize;\n return s[e] = n, new w(s, o);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(e) {\n return new w([e].concat(this.content), this.size + e.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(e) {\n return new w(this.content.concat(e), this.size + e.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(e) {\n if (this.content.length != e.content.length)\n return !1;\n for (let n = 0; n < this.content.length; n++)\n if (!this.content[n].eq(e.content[n]))\n return !1;\n return !0;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() {\n return this.content.length ? this.content[0] : null;\n }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() {\n return this.content.length ? this.content[this.content.length - 1] : null;\n }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() {\n return this.content.length;\n }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(e) {\n let n = this.content[e];\n if (!n)\n throw new RangeError(\"Index \" + e + \" out of range for \" + this);\n return n;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(e) {\n return this.content[e] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(e) {\n for (let n = 0, r = 0; n < this.content.length; n++) {\n let s = this.content[n];\n e(s, r, n), r += s.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(e, n = 0) {\n return yc(this, e, n);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(e, n = this.size, r = e.size) {\n return bc(this, e, n, r);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(e) {\n if (e == 0)\n return gr(0, e);\n if (e == this.size)\n return gr(this.content.length, e);\n if (e > this.size || e < 0)\n throw new RangeError(`Position ${e} outside of fragment (${this})`);\n for (let n = 0, r = 0; ; n++) {\n let s = this.child(n), o = r + s.nodeSize;\n if (o >= e)\n return o == e ? gr(n + 1, o) : gr(n, r);\n r = o;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() {\n return \"<\" + this.toStringInner() + \">\";\n }\n /**\n @internal\n */\n toStringInner() {\n return this.content.join(\", \");\n }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map((e) => e.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(e, n) {\n if (!n)\n return w.empty;\n if (!Array.isArray(n))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new w(n.map(e.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(e) {\n if (!e.length)\n return w.empty;\n let n, r = 0;\n for (let s = 0; s < e.length; s++) {\n let o = e[s];\n r += o.nodeSize, s && o.isText && e[s - 1].sameMarkup(o) ? (n || (n = e.slice(0, s)), n[n.length - 1] = o.withText(n[n.length - 1].text + o.text)) : n && n.push(o);\n }\n return new w(n || e, r);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(e) {\n if (!e)\n return w.empty;\n if (e instanceof w)\n return e;\n if (Array.isArray(e))\n return this.fromArray(e);\n if (e.attrs)\n return new w([e], e.nodeSize);\n throw new RangeError(\"Can not convert \" + e + \" to a Fragment\" + (e.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\nw.empty = new w([], 0);\nconst Xs = { index: 0, offset: 0 };\nfunction gr(t, e) {\n return Xs.index = t, Xs.offset = e, Xs;\n}\nfunction Fr(t, e) {\n if (t === e)\n return !0;\n if (!(t && typeof t == \"object\") || !(e && typeof e == \"object\"))\n return !1;\n let n = Array.isArray(t);\n if (Array.isArray(e) != n)\n return !1;\n if (n) {\n if (t.length != e.length)\n return !1;\n for (let r = 0; r < t.length; r++)\n if (!Fr(t[r], e[r]))\n return !1;\n } else {\n for (let r in t)\n if (!(r in e) || !Fr(t[r], e[r]))\n return !1;\n for (let r in e)\n if (!(r in t))\n return !1;\n }\n return !0;\n}\nlet K = class Lo {\n /**\n @internal\n */\n constructor(e, n) {\n this.type = e, this.attrs = n;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(e) {\n let n, r = !1;\n for (let s = 0; s < e.length; s++) {\n let o = e[s];\n if (this.eq(o))\n return e;\n if (this.type.excludes(o.type))\n n || (n = e.slice(0, s));\n else {\n if (o.type.excludes(this.type))\n return e;\n !r && o.type.rank > this.type.rank && (n || (n = e.slice(0, s)), n.push(this), r = !0), n && n.push(o);\n }\n }\n return n || (n = e.slice()), r || n.push(this), n;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(e) {\n for (let n = 0; n < e.length; n++)\n if (this.eq(e[n]))\n return e.slice(0, n).concat(e.slice(n + 1));\n return e;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(e) {\n for (let n = 0; n < e.length; n++)\n if (this.eq(e[n]))\n return !0;\n return !1;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(e) {\n return this == e || this.type == e.type && Fr(this.attrs, e.attrs);\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let e = { type: this.type.name };\n for (let n in this.attrs) {\n e.attrs = this.attrs;\n break;\n }\n return e;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(e, n) {\n if (!n)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let r = e.marks[n.type];\n if (!r)\n throw new RangeError(`There is no mark type ${n.type} in this schema`);\n let s = r.create(n.attrs);\n return r.checkAttrs(s.attrs), s;\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(e, n) {\n if (e == n)\n return !0;\n if (e.length != n.length)\n return !1;\n for (let r = 0; r < e.length; r++)\n if (!e[r].eq(n[r]))\n return !1;\n return !0;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(e) {\n if (!e || Array.isArray(e) && e.length == 0)\n return Lo.none;\n if (e instanceof Lo)\n return [e];\n let n = e.slice();\n return n.sort((r, s) => r.type.rank - s.type.rank), n;\n }\n};\nK.none = [];\nclass Wr extends Error {\n}\nclass A {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(e, n, r) {\n this.content = e, this.openStart = n, this.openEnd = r;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(e, n) {\n let r = xc(this.content, e + this.openStart, n);\n return r && new A(r, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(e, n) {\n return new A(kc(this.content, e + this.openStart, n + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(e) {\n return this.content.eq(e.content) && this.openStart == e.openStart && this.openEnd == e.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let e = { content: this.content.toJSON() };\n return this.openStart > 0 && (e.openStart = this.openStart), this.openEnd > 0 && (e.openEnd = this.openEnd), e;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(e, n) {\n if (!n)\n return A.empty;\n let r = n.openStart || 0, s = n.openEnd || 0;\n if (typeof r != \"number\" || typeof s != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new A(w.fromJSON(e, n.content), r, s);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(e, n = !0) {\n let r = 0, s = 0;\n for (let o = e.firstChild; o && !o.isLeaf && (n || !o.type.spec.isolating); o = o.firstChild)\n r++;\n for (let o = e.lastChild; o && !o.isLeaf && (n || !o.type.spec.isolating); o = o.lastChild)\n s++;\n return new A(e, r, s);\n }\n}\nA.empty = new A(w.empty, 0, 0);\nfunction kc(t, e, n) {\n let { index: r, offset: s } = t.findIndex(e), o = t.maybeChild(r), { index: i, offset: l } = t.findIndex(n);\n if (s == e || o.isText) {\n if (l != n && !t.child(i).isText)\n throw new RangeError(\"Removing non-flat range\");\n return t.cut(0, e).append(t.cut(n));\n }\n if (r != i)\n throw new RangeError(\"Removing non-flat range\");\n return t.replaceChild(r, o.copy(kc(o.content, e - s - 1, n - s - 1)));\n}\nfunction xc(t, e, n, r) {\n let { index: s, offset: o } = t.findIndex(e), i = t.maybeChild(s);\n if (o == e || i.isText)\n return r && !r.canReplace(s, s, n) ? null : t.cut(0, e).append(n).append(t.cut(e));\n let l = xc(i.content, e - o - 1, n, i);\n return l && t.replaceChild(s, i.copy(l));\n}\nfunction Hf(t, e, n) {\n if (n.openStart > t.depth)\n throw new Wr(\"Inserted content deeper than insertion position\");\n if (t.depth - n.openStart != e.depth - n.openEnd)\n throw new Wr(\"Inconsistent open depths\");\n return wc(t, e, n, 0);\n}\nfunction wc(t, e, n, r) {\n let s = t.index(r), o = t.node(r);\n if (s == e.index(r) && r < t.depth - n.openStart) {\n let i = wc(t, e, n, r + 1);\n return o.copy(o.content.replaceChild(s, i));\n } else if (n.content.size)\n if (!n.openStart && !n.openEnd && t.depth == r && e.depth == r) {\n let i = t.parent, l = i.content;\n return Yt(i, l.cut(0, t.parentOffset).append(n.content).append(l.cut(e.parentOffset)));\n } else {\n let { start: i, end: l } = _f(n, t);\n return Yt(o, Cc(t, i, l, e, r));\n }\n else return Yt(o, Ur(t, e, r));\n}\nfunction Sc(t, e) {\n if (!e.type.compatibleContent(t.type))\n throw new Wr(\"Cannot join \" + e.type.name + \" onto \" + t.type.name);\n}\nfunction Po(t, e, n) {\n let r = t.node(n);\n return Sc(r, e.node(n)), r;\n}\nfunction Gt(t, e) {\n let n = e.length - 1;\n n >= 0 && t.isText && t.sameMarkup(e[n]) ? e[n] = t.withText(e[n].text + t.text) : e.push(t);\n}\nfunction Vn(t, e, n, r) {\n let s = (e || t).node(n), o = 0, i = e ? e.index(n) : s.childCount;\n t && (o = t.index(n), t.depth > n ? o++ : t.textOffset && (Gt(t.nodeAfter, r), o++));\n for (let l = o; l < i; l++)\n Gt(s.child(l), r);\n e && e.depth == n && e.textOffset && Gt(e.nodeBefore, r);\n}\nfunction Yt(t, e) {\n return t.type.checkContent(e), t.copy(e);\n}\nfunction Cc(t, e, n, r, s) {\n let o = t.depth > s && Po(t, e, s + 1), i = r.depth > s && Po(n, r, s + 1), l = [];\n return Vn(null, t, s, l), o && i && e.index(s) == n.index(s) ? (Sc(o, i), Gt(Yt(o, Cc(t, e, n, r, s + 1)), l)) : (o && Gt(Yt(o, Ur(t, e, s + 1)), l), Vn(e, n, s, l), i && Gt(Yt(i, Ur(n, r, s + 1)), l)), Vn(r, null, s, l), new w(l);\n}\nfunction Ur(t, e, n) {\n let r = [];\n if (Vn(null, t, n, r), t.depth > n) {\n let s = Po(t, e, n + 1);\n Gt(Yt(s, Ur(t, e, n + 1)), r);\n }\n return Vn(e, null, n, r), new w(r);\n}\nfunction _f(t, e) {\n let n = e.depth - t.openStart, s = e.node(n).copy(t.content);\n for (let o = n - 1; o >= 0; o--)\n s = e.node(o).copy(w.from(s));\n return {\n start: s.resolveNoCache(t.openStart + n),\n end: s.resolveNoCache(s.content.size - t.openEnd - n)\n };\n}\nclass Zn {\n /**\n @internal\n */\n constructor(e, n, r) {\n this.pos = e, this.path = n, this.parentOffset = r, this.depth = n.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(e) {\n return e == null ? this.depth : e < 0 ? this.depth + e : e;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are ‘flat’ in this model, and have no content.\n */\n get parent() {\n return this.node(this.depth);\n }\n /**\n The root node in which the position was resolved.\n */\n get doc() {\n return this.node(0);\n }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(e) {\n return this.path[this.resolveDepth(e) * 3];\n }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(e) {\n return this.path[this.resolveDepth(e) * 3 + 1];\n }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(e) {\n return e = this.resolveDepth(e), this.index(e) + (e == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(e) {\n return e = this.resolveDepth(e), e == 0 ? 0 : this.path[e * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(e) {\n return e = this.resolveDepth(e), this.start(e) + this.node(e).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(e) {\n if (e = this.resolveDepth(e), !e)\n throw new RangeError(\"There is no position before the top-level node\");\n return e == this.depth + 1 ? this.pos : this.path[e * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(e) {\n if (e = this.resolveDepth(e), !e)\n throw new RangeError(\"There is no position after the top-level node\");\n return e == this.depth + 1 ? this.pos : this.path[e * 3 - 1] + this.path[e * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() {\n return this.pos - this.path[this.path.length - 1];\n }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let e = this.parent, n = this.index(this.depth);\n if (n == e.childCount)\n return null;\n let r = this.pos - this.path[this.path.length - 1], s = e.child(n);\n return r ? e.child(n).cut(r) : s;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let e = this.index(this.depth), n = this.pos - this.path[this.path.length - 1];\n return n ? this.parent.child(e).cut(0, n) : e == 0 ? null : this.parent.child(e - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(e, n) {\n n = this.resolveDepth(n);\n let r = this.path[n * 3], s = n == 0 ? 0 : this.path[n * 3 - 1] + 1;\n for (let o = 0; o < e; o++)\n s += r.child(o).nodeSize;\n return s;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let e = this.parent, n = this.index();\n if (e.content.size == 0)\n return K.none;\n if (this.textOffset)\n return e.child(n).marks;\n let r = e.maybeChild(n - 1), s = e.maybeChild(n);\n if (!r) {\n let l = r;\n r = s, s = l;\n }\n let o = r.marks;\n for (var i = 0; i < o.length; i++)\n o[i].type.spec.inclusive === !1 && (!s || !o[i].isInSet(s.marks)) && (o = o[i--].removeFromSet(o));\n return o;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross(e) {\n let n = this.parent.maybeChild(this.index());\n if (!n || !n.isInline)\n return null;\n let r = n.marks, s = e.parent.maybeChild(e.index());\n for (var o = 0; o < r.length; o++)\n r[o].type.spec.inclusive === !1 && (!s || !r[o].isInSet(s.marks)) && (r = r[o--].removeFromSet(r));\n return r;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(e) {\n for (let n = this.depth; n > 0; n--)\n if (this.start(n) <= e && this.end(n) >= e)\n return n;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(e = this, n) {\n if (e.pos < this.pos)\n return e.blockRange(this);\n for (let r = this.depth - (this.parent.inlineContent || this.pos == e.pos ? 1 : 0); r >= 0; r--)\n if (e.pos <= this.end(r) && (!n || n(this.node(r))))\n return new Kr(this, e, r);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(e) {\n return this.pos - this.parentOffset == e.pos - e.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(e) {\n return e.pos > this.pos ? e : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(e) {\n return e.pos < this.pos ? e : this;\n }\n /**\n @internal\n */\n toString() {\n let e = \"\";\n for (let n = 1; n <= this.depth; n++)\n e += (e ? \"/\" : \"\") + this.node(n).type.name + \"_\" + this.index(n - 1);\n return e + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(e, n) {\n if (!(n >= 0 && n <= e.content.size))\n throw new RangeError(\"Position \" + n + \" out of range\");\n let r = [], s = 0, o = n;\n for (let i = e; ; ) {\n let { index: l, offset: a } = i.content.findIndex(o), c = o - a;\n if (r.push(i, l, s + a), !c || (i = i.child(l), i.isText))\n break;\n o = c - 1, s += a + 1;\n }\n return new Zn(n, r, o);\n }\n /**\n @internal\n */\n static resolveCached(e, n) {\n let r = fl.get(e);\n if (r)\n for (let o = 0; o < r.elts.length; o++) {\n let i = r.elts[o];\n if (i.pos == n)\n return i;\n }\n else\n fl.set(e, r = new jf());\n let s = r.elts[r.i] = Zn.resolve(e, n);\n return r.i = (r.i + 1) % Vf, s;\n }\n}\nclass jf {\n constructor() {\n this.elts = [], this.i = 0;\n }\n}\nconst Vf = 12, fl = /* @__PURE__ */ new WeakMap();\nclass Kr {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(e, n, r) {\n this.$from = e, this.$to = n, this.depth = r;\n }\n /**\n The position at the start of the range.\n */\n get start() {\n return this.$from.before(this.depth + 1);\n }\n /**\n The position at the end of the range.\n */\n get end() {\n return this.$to.after(this.depth + 1);\n }\n /**\n The parent node that the range points into.\n */\n get parent() {\n return this.$from.node(this.depth);\n }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() {\n return this.$from.index(this.depth);\n }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() {\n return this.$to.indexAfter(this.depth);\n }\n}\nconst Ff = /* @__PURE__ */ Object.create(null);\nclass _e {\n /**\n @internal\n */\n constructor(e, n, r, s = K.none) {\n this.type = e, this.attrs = n, this.marks = s, this.content = r || w.empty;\n }\n /**\n The array of this node's child nodes.\n */\n get children() {\n return this.content.content;\n }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](https://prosemirror.net/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() {\n return this.isLeaf ? 1 : 2 + this.content.size;\n }\n /**\n The number of children that the node has.\n */\n get childCount() {\n return this.content.childCount;\n }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(e) {\n return this.content.child(e);\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(e) {\n return this.content.maybeChild(e);\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(e) {\n this.content.forEach(e);\n }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(e, n, r, s = 0) {\n this.content.nodesBetween(e, n, r, s, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(e) {\n this.nodesBetween(0, this.content.size, e);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return this.isLeaf && this.type.spec.leafText ? this.type.spec.leafText(this) : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec.leafText) will be used.\n */\n textBetween(e, n, r, s) {\n return this.content.textBetween(e, n, r, s);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() {\n return this.content.firstChild;\n }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() {\n return this.content.lastChild;\n }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(e) {\n return this == e || this.sameMarkup(e) && this.content.eq(e.content);\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(e) {\n return this.hasMarkup(e.type, e.attrs, e.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(e, n, r) {\n return this.type == e && Fr(this.attrs, n || e.defaultAttrs || Ff) && K.sameSet(this.marks, r || K.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(e = null) {\n return e == this.content ? this : new _e(this.type, this.attrs, e, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(e) {\n return e == this.marks ? this : new _e(this.type, this.attrs, this.content, e);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(e, n = this.content.size) {\n return e == 0 && n == this.content.size ? this : this.copy(this.content.cut(e, n));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(e, n = this.content.size, r = !1) {\n if (e == n)\n return A.empty;\n let s = this.resolve(e), o = this.resolve(n), i = r ? 0 : s.sharedDepth(n), l = s.start(i), c = s.node(i).content.cut(s.pos - l, o.pos - l);\n return new A(c, s.depth - i, o.depth - i);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(e, n, r) {\n return Hf(this.resolve(e), this.resolve(n), r);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(e) {\n for (let n = this; ; ) {\n let { index: r, offset: s } = n.content.findIndex(e);\n if (n = n.maybeChild(r), !n)\n return null;\n if (s == e || n.isText)\n return n;\n e -= s + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(e) {\n let { index: n, offset: r } = this.content.findIndex(e);\n return { node: this.content.maybeChild(n), index: n, offset: r };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(e) {\n if (e == 0)\n return { node: null, index: 0, offset: 0 };\n let { index: n, offset: r } = this.content.findIndex(e);\n if (r < e)\n return { node: this.content.child(n), index: n, offset: r };\n let s = this.content.child(n - 1);\n return { node: s, index: n - 1, offset: r - s.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(e) {\n return Zn.resolveCached(this, e);\n }\n /**\n @internal\n */\n resolveNoCache(e) {\n return Zn.resolve(this, e);\n }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(e, n, r) {\n let s = !1;\n return n > e && this.nodesBetween(e, n, (o) => (r.isInSet(o.marks) && (s = !0), !s)), s;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() {\n return this.type.isBlock;\n }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() {\n return this.type.isTextblock;\n }\n /**\n True when this node allows inline content.\n */\n get inlineContent() {\n return this.type.inlineContent;\n }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() {\n return this.type.isInline;\n }\n /**\n True when this is a text node.\n */\n get isText() {\n return this.type.isText;\n }\n /**\n True when this is a leaf node.\n */\n get isLeaf() {\n return this.type.isLeaf;\n }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() {\n return this.type.isAtom;\n }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let e = this.type.name;\n return this.content.size && (e += \"(\" + this.content.toStringInner() + \")\"), vc(this.marks, e);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(e) {\n let n = this.type.contentMatch.matchFragment(this.content, 0, e);\n if (!n)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return n;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(e, n, r = w.empty, s = 0, o = r.childCount) {\n let i = this.contentMatchAt(e).matchFragment(r, s, o), l = i && i.matchFragment(this.content, n);\n if (!l || !l.validEnd)\n return !1;\n for (let a = s; a < o; a++)\n if (!this.type.allowsMarks(r.child(a).marks))\n return !1;\n return !0;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(e, n, r, s) {\n if (s && !this.type.allowsMarks(s))\n return !1;\n let o = this.contentMatchAt(e).matchType(r), i = o && o.matchFragment(this.content, n);\n return i ? i.validEnd : !1;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(e) {\n return e.content.size ? this.canReplace(this.childCount, this.childCount, e.content) : this.type.compatibleContent(e.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise an exception when they do not.\n */\n check() {\n this.type.checkContent(this.content), this.type.checkAttrs(this.attrs);\n let e = K.none;\n for (let n = 0; n < this.marks.length; n++) {\n let r = this.marks[n];\n r.type.checkAttrs(r.attrs), e = r.addToSet(e);\n }\n if (!K.sameSet(e, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map((n) => n.type.name)}`);\n this.content.forEach((n) => n.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let e = { type: this.type.name };\n for (let n in this.attrs) {\n e.attrs = this.attrs;\n break;\n }\n return this.content.size && (e.content = this.content.toJSON()), this.marks.length && (e.marks = this.marks.map((n) => n.toJSON())), e;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(e, n) {\n if (!n)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let r;\n if (n.marks) {\n if (!Array.isArray(n.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n r = n.marks.map(e.markFromJSON);\n }\n if (n.type == \"text\") {\n if (typeof n.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return e.text(n.text, r);\n }\n let s = w.fromJSON(e, n.content), o = e.nodeType(n.type).create(n.attrs, s, r);\n return o.type.checkAttrs(o.attrs), o;\n }\n}\n_e.prototype.text = void 0;\nclass qr extends _e {\n /**\n @internal\n */\n constructor(e, n, r, s) {\n if (super(e, n, null, s), !r)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = r;\n }\n toString() {\n return this.type.spec.toDebugString ? this.type.spec.toDebugString(this) : vc(this.marks, JSON.stringify(this.text));\n }\n get textContent() {\n return this.text;\n }\n textBetween(e, n) {\n return this.text.slice(e, n);\n }\n get nodeSize() {\n return this.text.length;\n }\n mark(e) {\n return e == this.marks ? this : new qr(this.type, this.attrs, this.text, e);\n }\n withText(e) {\n return e == this.text ? this : new qr(this.type, this.attrs, e, this.marks);\n }\n cut(e = 0, n = this.text.length) {\n return e == 0 && n == this.text.length ? this : this.withText(this.text.slice(e, n));\n }\n eq(e) {\n return this.sameMarkup(e) && this.text == e.text;\n }\n toJSON() {\n let e = super.toJSON();\n return e.text = this.text, e;\n }\n}\nfunction vc(t, e) {\n for (let n = t.length - 1; n >= 0; n--)\n e = t[n].type.name + \"(\" + e + \")\";\n return e;\n}\nclass en {\n /**\n @internal\n */\n constructor(e) {\n this.validEnd = e, this.next = [], this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(e, n) {\n let r = new Wf(e, n);\n if (r.next == null)\n return en.empty;\n let s = Mc(r);\n r.next && r.err(\"Unexpected trailing text\");\n let o = Xf(Yf(s));\n return Qf(o, r), o;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(e) {\n for (let n = 0; n < this.next.length; n++)\n if (this.next[n].type == e)\n return this.next[n].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(e, n = 0, r = e.childCount) {\n let s = this;\n for (let o = n; s && o < r; o++)\n s = s.matchType(e.child(o).type);\n return s;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let e = 0; e < this.next.length; e++) {\n let { type: n } = this.next[e];\n if (!(n.isText || n.hasRequiredAttrs()))\n return n;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(e) {\n for (let n = 0; n < this.next.length; n++)\n for (let r = 0; r < e.next.length; r++)\n if (this.next[n].type == e.next[r].type)\n return !0;\n return !1;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(e, n = !1, r = 0) {\n let s = [this];\n function o(i, l) {\n let a = i.matchFragment(e, r);\n if (a && (!n || a.validEnd))\n return w.from(l.map((c) => c.createAndFill()));\n for (let c = 0; c < i.next.length; c++) {\n let { type: d, next: u } = i.next[c];\n if (!(d.isText || d.hasRequiredAttrs()) && s.indexOf(u) == -1) {\n s.push(u);\n let f = o(u, l.concat(d));\n if (f)\n return f;\n }\n }\n return null;\n }\n return o(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(e) {\n for (let r = 0; r < this.wrapCache.length; r += 2)\n if (this.wrapCache[r] == e)\n return this.wrapCache[r + 1];\n let n = this.computeWrapping(e);\n return this.wrapCache.push(e, n), n;\n }\n /**\n @internal\n */\n computeWrapping(e) {\n let n = /* @__PURE__ */ Object.create(null), r = [{ match: this, type: null, via: null }];\n for (; r.length; ) {\n let s = r.shift(), o = s.match;\n if (o.matchType(e)) {\n let i = [];\n for (let l = s; l.type; l = l.via)\n i.push(l.type);\n return i.reverse();\n }\n for (let i = 0; i < o.next.length; i++) {\n let { type: l, next: a } = o.next[i];\n !l.isLeaf && !l.hasRequiredAttrs() && !(l.name in n) && (!s.type || a.validEnd) && (r.push({ match: l.contentMatch, type: l, via: s }), n[l.name] = !0);\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_​th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(e) {\n if (e >= this.next.length)\n throw new RangeError(`There's no ${e}th edge in this content match`);\n return this.next[e];\n }\n /**\n @internal\n */\n toString() {\n let e = [];\n function n(r) {\n e.push(r);\n for (let s = 0; s < r.next.length; s++)\n e.indexOf(r.next[s].next) == -1 && n(r.next[s].next);\n }\n return n(this), e.map((r, s) => {\n let o = s + (r.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < r.next.length; i++)\n o += (i ? \", \" : \"\") + r.next[i].type.name + \"->\" + e.indexOf(r.next[i].next);\n return o;\n }).join(`\n`);\n }\n}\nen.empty = new en(!0);\nclass Wf {\n constructor(e, n) {\n this.string = e, this.nodeTypes = n, this.inline = null, this.pos = 0, this.tokens = e.split(/\\s*(?=\\b|\\W|$)/), this.tokens[this.tokens.length - 1] == \"\" && this.tokens.pop(), this.tokens[0] == \"\" && this.tokens.shift();\n }\n get next() {\n return this.tokens[this.pos];\n }\n eat(e) {\n return this.next == e && (this.pos++ || !0);\n }\n err(e) {\n throw new SyntaxError(e + \" (in content expression '\" + this.string + \"')\");\n }\n}\nfunction Mc(t) {\n let e = [];\n do\n e.push(Uf(t));\n while (t.eat(\"|\"));\n return e.length == 1 ? e[0] : { type: \"choice\", exprs: e };\n}\nfunction Uf(t) {\n let e = [];\n do\n e.push(Kf(t));\n while (t.next && t.next != \")\" && t.next != \"|\");\n return e.length == 1 ? e[0] : { type: \"seq\", exprs: e };\n}\nfunction Kf(t) {\n let e = Gf(t);\n for (; ; )\n if (t.eat(\"+\"))\n e = { type: \"plus\", expr: e };\n else if (t.eat(\"*\"))\n e = { type: \"star\", expr: e };\n else if (t.eat(\"?\"))\n e = { type: \"opt\", expr: e };\n else if (t.eat(\"{\"))\n e = qf(t, e);\n else\n break;\n return e;\n}\nfunction hl(t) {\n /\\D/.test(t.next) && t.err(\"Expected number, got '\" + t.next + \"'\");\n let e = Number(t.next);\n return t.pos++, e;\n}\nfunction qf(t, e) {\n let n = hl(t), r = n;\n return t.eat(\",\") && (t.next != \"}\" ? r = hl(t) : r = -1), t.eat(\"}\") || t.err(\"Unclosed braced range\"), { type: \"range\", min: n, max: r, expr: e };\n}\nfunction Jf(t, e) {\n let n = t.nodeTypes, r = n[e];\n if (r)\n return [r];\n let s = [];\n for (let o in n) {\n let i = n[o];\n i.isInGroup(e) && s.push(i);\n }\n return s.length == 0 && t.err(\"No node type or group '\" + e + \"' found\"), s;\n}\nfunction Gf(t) {\n if (t.eat(\"(\")) {\n let e = Mc(t);\n return t.eat(\")\") || t.err(\"Missing closing paren\"), e;\n } else if (/\\W/.test(t.next))\n t.err(\"Unexpected token '\" + t.next + \"'\");\n else {\n let e = Jf(t, t.next).map((n) => (t.inline == null ? t.inline = n.isInline : t.inline != n.isInline && t.err(\"Mixing inline and block content\"), { type: \"name\", value: n }));\n return t.pos++, e.length == 1 ? e[0] : { type: \"choice\", exprs: e };\n }\n}\nfunction Yf(t) {\n let e = [[]];\n return s(o(t, 0), n()), e;\n function n() {\n return e.push([]) - 1;\n }\n function r(i, l, a) {\n let c = { term: a, to: l };\n return e[i].push(c), c;\n }\n function s(i, l) {\n i.forEach((a) => a.to = l);\n }\n function o(i, l) {\n if (i.type == \"choice\")\n return i.exprs.reduce((a, c) => a.concat(o(c, l)), []);\n if (i.type == \"seq\")\n for (let a = 0; ; a++) {\n let c = o(i.exprs[a], l);\n if (a == i.exprs.length - 1)\n return c;\n s(c, l = n());\n }\n else if (i.type == \"star\") {\n let a = n();\n return r(l, a), s(o(i.expr, a), a), [r(a)];\n } else if (i.type == \"plus\") {\n let a = n();\n return s(o(i.expr, l), a), s(o(i.expr, a), a), [r(a)];\n } else {\n if (i.type == \"opt\")\n return [r(l)].concat(o(i.expr, l));\n if (i.type == \"range\") {\n let a = l;\n for (let c = 0; c < i.min; c++) {\n let d = n();\n s(o(i.expr, a), d), a = d;\n }\n if (i.max == -1)\n s(o(i.expr, a), a);\n else\n for (let c = i.min; c < i.max; c++) {\n let d = n();\n r(a, d), s(o(i.expr, a), d), a = d;\n }\n return [r(a)];\n } else {\n if (i.type == \"name\")\n return [r(l, void 0, i.value)];\n throw new Error(\"Unknown expr type\");\n }\n }\n }\n}\nfunction Tc(t, e) {\n return e - t;\n}\nfunction pl(t, e) {\n let n = [];\n return r(e), n.sort(Tc);\n function r(s) {\n let o = t[s];\n if (o.length == 1 && !o[0].term)\n return r(o[0].to);\n n.push(s);\n for (let i = 0; i < o.length; i++) {\n let { term: l, to: a } = o[i];\n !l && n.indexOf(a) == -1 && r(a);\n }\n }\n}\nfunction Xf(t) {\n let e = /* @__PURE__ */ Object.create(null);\n return n(pl(t, 0));\n function n(r) {\n let s = [];\n r.forEach((i) => {\n t[i].forEach(({ term: l, to: a }) => {\n if (!l)\n return;\n let c;\n for (let d = 0; d < s.length; d++)\n s[d][0] == l && (c = s[d][1]);\n pl(t, a).forEach((d) => {\n c || s.push([l, c = []]), c.indexOf(d) == -1 && c.push(d);\n });\n });\n });\n let o = e[r.join(\",\")] = new en(r.indexOf(t.length - 1) > -1);\n for (let i = 0; i < s.length; i++) {\n let l = s[i][1].sort(Tc);\n o.next.push({ type: s[i][0], next: e[l.join(\",\")] || n(l) });\n }\n return o;\n }\n}\nfunction Qf(t, e) {\n for (let n = 0, r = [t]; n < r.length; n++) {\n let s = r[n], o = !s.validEnd, i = [];\n for (let l = 0; l < s.next.length; l++) {\n let { type: a, next: c } = s.next[l];\n i.push(a.name), o && !(a.isText || a.hasRequiredAttrs()) && (o = !1), r.indexOf(c) == -1 && r.push(c);\n }\n o && e.err(\"Only non-generatable nodes (\" + i.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\nfunction Ec(t) {\n let e = /* @__PURE__ */ Object.create(null);\n for (let n in t) {\n let r = t[n];\n if (!r.hasDefault)\n return null;\n e[n] = r.default;\n }\n return e;\n}\nfunction Ac(t, e) {\n let n = /* @__PURE__ */ Object.create(null);\n for (let r in t) {\n let s = e && e[r];\n if (s === void 0) {\n let o = t[r];\n if (o.hasDefault)\n s = o.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + r);\n }\n n[r] = s;\n }\n return n;\n}\nfunction Nc(t, e, n, r) {\n for (let s in e)\n if (!(s in t))\n throw new RangeError(`Unsupported attribute ${s} for ${n} of type ${s}`);\n for (let s in t) {\n let o = t[s];\n o.validate && o.validate(e[s]);\n }\n}\nfunction Oc(t, e) {\n let n = /* @__PURE__ */ Object.create(null);\n if (e)\n for (let r in e)\n n[r] = new eh(t, r, e[r]);\n return n;\n}\nlet ml = class Rc {\n /**\n @internal\n */\n constructor(e, n, r) {\n this.name = e, this.schema = n, this.spec = r, this.markSet = null, this.groups = r.group ? r.group.split(\" \") : [], this.attrs = Oc(e, r.attrs), this.defaultAttrs = Ec(this.attrs), this.contentMatch = null, this.inlineContent = null, this.isBlock = !(r.inline || e == \"text\"), this.isText = e == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() {\n return !this.isBlock;\n }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() {\n return this.isBlock && this.inlineContent;\n }\n /**\n True for node types that allow no content.\n */\n get isLeaf() {\n return this.contentMatch == en.empty;\n }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() {\n return this.isLeaf || !!this.spec.atom;\n }\n /**\n Return true when this node type is part of the given\n [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).\n */\n isInGroup(e) {\n return this.groups.indexOf(e) > -1;\n }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let e in this.attrs)\n if (this.attrs[e].isRequired)\n return !0;\n return !1;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(e) {\n return this == e || this.contentMatch.compatible(e.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(e) {\n return !e && this.defaultAttrs ? this.defaultAttrs : Ac(this.attrs, e);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(e = null, n, r) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new _e(this, this.computeAttrs(e), w.from(n), K.setFrom(r));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(e = null, n, r) {\n return n = w.from(n), this.checkContent(n), new _e(this, this.computeAttrs(e), n, K.setFrom(r));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(e = null, n, r) {\n if (e = this.computeAttrs(e), n = w.from(n), n.size) {\n let i = this.contentMatch.fillBefore(n);\n if (!i)\n return null;\n n = i.append(n);\n }\n let s = this.contentMatch.matchFragment(n), o = s && s.fillBefore(w.empty, !0);\n return o ? new _e(this, e, n.append(o), K.setFrom(r)) : null;\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(e) {\n let n = this.contentMatch.matchFragment(e);\n if (!n || !n.validEnd)\n return !1;\n for (let r = 0; r < e.childCount; r++)\n if (!this.allowsMarks(e.child(r).marks))\n return !1;\n return !0;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(e) {\n if (!this.validContent(e))\n throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0, 50)}`);\n }\n /**\n @internal\n */\n checkAttrs(e) {\n Nc(this.attrs, e, \"node\", this.name);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(e) {\n return this.markSet == null || this.markSet.indexOf(e) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(e) {\n if (this.markSet == null)\n return !0;\n for (let n = 0; n < e.length; n++)\n if (!this.allowsMarkType(e[n].type))\n return !1;\n return !0;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(e) {\n if (this.markSet == null)\n return e;\n let n;\n for (let r = 0; r < e.length; r++)\n this.allowsMarkType(e[r].type) ? n && n.push(e[r]) : n || (n = e.slice(0, r));\n return n ? n.length ? n : K.none : e;\n }\n /**\n @internal\n */\n static compile(e, n) {\n let r = /* @__PURE__ */ Object.create(null);\n e.forEach((o, i) => r[o] = new Rc(o, n, i));\n let s = n.spec.topNode || \"doc\";\n if (!r[s])\n throw new RangeError(\"Schema is missing its top node type ('\" + s + \"')\");\n if (!r.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let o in r.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return r;\n }\n};\nfunction Zf(t, e, n) {\n let r = n.split(\"|\");\n return (s) => {\n let o = s === null ? \"null\" : typeof s;\n if (r.indexOf(o) < 0)\n throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${t}, got ${o}`);\n };\n}\nclass eh {\n constructor(e, n, r) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(r, \"default\"), this.default = r.default, this.validate = typeof r.validate == \"string\" ? Zf(e, n, r.validate) : r.validate;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\nclass Ls {\n /**\n @internal\n */\n constructor(e, n, r, s) {\n this.name = e, this.rank = n, this.schema = r, this.spec = s, this.attrs = Oc(e, s.attrs), this.excluded = null;\n let o = Ec(this.attrs);\n this.instance = o ? new K(this, o) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(e = null) {\n return !e && this.instance ? this.instance : new K(this, Ac(this.attrs, e));\n }\n /**\n @internal\n */\n static compile(e, n) {\n let r = /* @__PURE__ */ Object.create(null), s = 0;\n return e.forEach((o, i) => r[o] = new Ls(o, s++, n, i)), r;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(e) {\n for (var n = 0; n < e.length; n++)\n e[n].type == this && (e = e.slice(0, n).concat(e.slice(n + 1)), n--);\n return e;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(e) {\n for (let n = 0; n < e.length; n++)\n if (e[n].type == this)\n return e[n];\n }\n /**\n @internal\n */\n checkAttrs(e) {\n Nc(this.attrs, e, \"mark\", this.name);\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(e) {\n return this.excluded.indexOf(e) > -1;\n }\n}\nclass Dc {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(e) {\n this.linebreakReplacement = null, this.cached = /* @__PURE__ */ Object.create(null);\n let n = this.spec = {};\n for (let s in e)\n n[s] = e[s];\n n.nodes = ye.from(e.nodes), n.marks = ye.from(e.marks || {}), this.nodes = ml.compile(this.spec.nodes, this), this.marks = Ls.compile(this.spec.marks, this);\n let r = /* @__PURE__ */ Object.create(null);\n for (let s in this.nodes) {\n if (s in this.marks)\n throw new RangeError(s + \" can not be both a node and a mark\");\n let o = this.nodes[s], i = o.spec.content || \"\", l = o.spec.marks;\n if (o.contentMatch = r[i] || (r[i] = en.parse(i, this.nodes)), o.inlineContent = o.contentMatch.inlineContent, o.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!o.isInline || !o.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = o;\n }\n o.markSet = l == \"_\" ? null : l ? gl(this, l.split(\" \")) : l == \"\" || !o.inlineContent ? [] : null;\n }\n for (let s in this.marks) {\n let o = this.marks[s], i = o.spec.excludes;\n o.excluded = i == null ? [o] : i == \"\" ? [] : gl(this, i.split(\" \"));\n }\n this.nodeFromJSON = (s) => _e.fromJSON(this, s), this.markFromJSON = (s) => K.fromJSON(this, s), this.topNodeType = this.nodes[this.spec.topNode || \"doc\"], this.cached.wrappings = /* @__PURE__ */ Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(e, n = null, r, s) {\n if (typeof e == \"string\")\n e = this.nodeType(e);\n else if (e instanceof ml) {\n if (e.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + e.name + \")\");\n } else throw new RangeError(\"Invalid node type: \" + e);\n return e.createChecked(n, r, s);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(e, n) {\n let r = this.nodes.text;\n return new qr(r, r.defaultAttrs, e, K.setFrom(n));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(e, n) {\n return typeof e == \"string\" && (e = this.marks[e]), e.create(n);\n }\n /**\n @internal\n */\n nodeType(e) {\n let n = this.nodes[e];\n if (!n)\n throw new RangeError(\"Unknown node type: \" + e);\n return n;\n }\n}\nfunction gl(t, e) {\n let n = [];\n for (let r = 0; r < e.length; r++) {\n let s = e[r], o = t.marks[s], i = o;\n if (o)\n n.push(o);\n else\n for (let l in t.marks) {\n let a = t.marks[l];\n (s == \"_\" || a.spec.group && a.spec.group.split(\" \").indexOf(s) > -1) && n.push(i = a);\n }\n if (!i)\n throw new SyntaxError(\"Unknown mark type: '\" + e[r] + \"'\");\n }\n return n;\n}\nfunction th(t) {\n return t.tag != null;\n}\nfunction nh(t) {\n return t.style != null;\n}\nclass Rt {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(e, n) {\n this.schema = e, this.rules = n, this.tags = [], this.styles = [];\n let r = this.matchedStyles = [];\n n.forEach((s) => {\n if (th(s))\n this.tags.push(s);\n else if (nh(s)) {\n let o = /[^=]*/.exec(s.style)[0];\n r.indexOf(o) < 0 && r.push(o), this.styles.push(s);\n }\n }), this.normalizeLists = !this.tags.some((s) => {\n if (!/^(ul|ol)\\b/.test(s.tag) || !s.node)\n return !1;\n let o = e.nodes[s.node];\n return o.contentMatch.matchType(o);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(e, n = {}) {\n let r = new bl(this, n, !1);\n return r.addAll(e, K.none, n.from, n.to), r.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(e, n = {}) {\n let r = new bl(this, n, !0);\n return r.addAll(e, K.none, n.from, n.to), A.maxOpen(r.finish());\n }\n /**\n @internal\n */\n matchTag(e, n, r) {\n for (let s = r ? this.tags.indexOf(r) + 1 : 0; s < this.tags.length; s++) {\n let o = this.tags[s];\n if (oh(e, o.tag) && (o.namespace === void 0 || e.namespaceURI == o.namespace) && (!o.context || n.matchesContext(o.context))) {\n if (o.getAttrs) {\n let i = o.getAttrs(e);\n if (i === !1)\n continue;\n o.attrs = i || void 0;\n }\n return o;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(e, n, r, s) {\n for (let o = s ? this.styles.indexOf(s) + 1 : 0; o < this.styles.length; o++) {\n let i = this.styles[o], l = i.style;\n if (!(l.indexOf(e) != 0 || i.context && !r.matchesContext(i.context) || // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n l.length > e.length && (l.charCodeAt(e.length) != 61 || l.slice(e.length + 1) != n))) {\n if (i.getAttrs) {\n let a = i.getAttrs(n);\n if (a === !1)\n continue;\n i.attrs = a || void 0;\n }\n return i;\n }\n }\n }\n /**\n @internal\n */\n static schemaRules(e) {\n let n = [];\n function r(s) {\n let o = s.priority == null ? 50 : s.priority, i = 0;\n for (; i < n.length; i++) {\n let l = n[i];\n if ((l.priority == null ? 50 : l.priority) < o)\n break;\n }\n n.splice(i, 0, s);\n }\n for (let s in e.marks) {\n let o = e.marks[s].spec.parseDOM;\n o && o.forEach((i) => {\n r(i = kl(i)), i.mark || i.ignore || i.clearMark || (i.mark = s);\n });\n }\n for (let s in e.nodes) {\n let o = e.nodes[s].spec.parseDOM;\n o && o.forEach((i) => {\n r(i = kl(i)), i.node || i.ignore || i.mark || (i.node = s);\n });\n }\n return n;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.GenericParseRule.priority).\n */\n static fromSchema(e) {\n return e.cached.domParser || (e.cached.domParser = new Rt(e, Rt.schemaRules(e)));\n }\n}\nconst Ic = {\n address: !0,\n article: !0,\n aside: !0,\n blockquote: !0,\n canvas: !0,\n dd: !0,\n div: !0,\n dl: !0,\n fieldset: !0,\n figcaption: !0,\n figure: !0,\n footer: !0,\n form: !0,\n h1: !0,\n h2: !0,\n h3: !0,\n h4: !0,\n h5: !0,\n h6: !0,\n header: !0,\n hgroup: !0,\n hr: !0,\n li: !0,\n noscript: !0,\n ol: !0,\n output: !0,\n p: !0,\n pre: !0,\n section: !0,\n table: !0,\n tfoot: !0,\n ul: !0\n}, rh = {\n head: !0,\n noscript: !0,\n object: !0,\n script: !0,\n style: !0,\n title: !0\n}, Lc = { ol: !0, ul: !0 }, er = 1, zo = 2, Fn = 4;\nfunction yl(t, e, n) {\n return e != null ? (e ? er : 0) | (e === \"full\" ? zo : 0) : t && t.whitespace == \"pre\" ? er | zo : n & ~Fn;\n}\nclass yr {\n constructor(e, n, r, s, o, i) {\n this.type = e, this.attrs = n, this.marks = r, this.solid = s, this.options = i, this.content = [], this.activeMarks = K.none, this.match = o || (i & Fn ? null : e.contentMatch);\n }\n findWrapping(e) {\n if (!this.match) {\n if (!this.type)\n return [];\n let n = this.type.contentMatch.fillBefore(w.from(e));\n if (n)\n this.match = this.type.contentMatch.matchFragment(n);\n else {\n let r = this.type.contentMatch, s;\n return (s = r.findWrapping(e.type)) ? (this.match = r, s) : null;\n }\n }\n return this.match.findWrapping(e.type);\n }\n finish(e) {\n if (!(this.options & er)) {\n let r = this.content[this.content.length - 1], s;\n if (r && r.isText && (s = /[ \\t\\r\\n\\u000c]+$/.exec(r.text))) {\n let o = r;\n r.text.length == s[0].length ? this.content.pop() : this.content[this.content.length - 1] = o.withText(o.text.slice(0, o.text.length - s[0].length));\n }\n }\n let n = w.from(this.content);\n return !e && this.match && (n = n.append(this.match.fillBefore(w.empty, !0))), this.type ? this.type.create(this.attrs, n, this.marks) : n;\n }\n inlineContext(e) {\n return this.type ? this.type.inlineContent : this.content.length ? this.content[0].isInline : e.parentNode && !Ic.hasOwnProperty(e.parentNode.nodeName.toLowerCase());\n }\n}\nclass bl {\n constructor(e, n, r) {\n this.parser = e, this.options = n, this.isOpen = r, this.open = 0, this.localPreserveWS = !1;\n let s = n.topNode, o, i = yl(null, n.preserveWhitespace, 0) | (r ? Fn : 0);\n s ? o = new yr(s.type, s.attrs, K.none, !0, n.topMatch || s.type.contentMatch, i) : r ? o = new yr(null, null, K.none, !0, null, i) : o = new yr(e.schema.topNodeType, null, K.none, !0, null, i), this.nodes = [o], this.find = n.findPositions, this.needsBlock = !1;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(e, n) {\n e.nodeType == 3 ? this.addTextNode(e, n) : e.nodeType == 1 && this.addElement(e, n);\n }\n addTextNode(e, n) {\n let r = e.nodeValue, s = this.top, o = s.options & zo ? \"full\" : this.localPreserveWS || (s.options & er) > 0, { schema: i } = this.parser;\n if (o === \"full\" || s.inlineContext(e) || /[^ \\t\\r\\n\\u000c]/.test(r)) {\n if (o)\n if (o === \"full\")\n r = r.replace(/\\r\\n?/g, `\n`);\n else if (i.linebreakReplacement && /[\\r\\n]/.test(r) && this.top.findWrapping(i.linebreakReplacement.create())) {\n let l = r.split(/\\r?\\n|\\r/);\n for (let a = 0; a < l.length; a++)\n a && this.insertNode(i.linebreakReplacement.create(), n, !0), l[a] && this.insertNode(i.text(l[a]), n, !/\\S/.test(l[a]));\n r = \"\";\n } else\n r = r.replace(/\\r?\\n|\\r/g, \" \");\n else if (r = r.replace(/[ \\t\\r\\n\\u000c]+/g, \" \"), /^[ \\t\\r\\n\\u000c]/.test(r) && this.open == this.nodes.length - 1) {\n let l = s.content[s.content.length - 1], a = e.previousSibling;\n (!l || a && a.nodeName == \"BR\" || l.isText && /[ \\t\\r\\n\\u000c]$/.test(l.text)) && (r = r.slice(1));\n }\n r && this.insertNode(i.text(r), n, !/\\S/.test(r)), this.findInText(e);\n } else\n this.findInside(e);\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(e, n, r) {\n let s = this.localPreserveWS, o = this.top;\n (e.tagName == \"PRE\" || /pre/.test(e.style && e.style.whiteSpace)) && (this.localPreserveWS = !0);\n let i = e.nodeName.toLowerCase(), l;\n Lc.hasOwnProperty(i) && this.parser.normalizeLists && sh(e);\n let a = this.options.ruleFromNode && this.options.ruleFromNode(e) || (l = this.parser.matchTag(e, this, r));\n e: if (a ? a.ignore : rh.hasOwnProperty(i))\n this.findInside(e), this.ignoreFallback(e, n);\n else if (!a || a.skip || a.closeParent) {\n a && a.closeParent ? this.open = Math.max(0, this.open - 1) : a && a.skip.nodeType && (e = a.skip);\n let c, d = this.needsBlock;\n if (Ic.hasOwnProperty(i))\n o.content.length && o.content[0].isInline && this.open && (this.open--, o = this.top), c = !0, o.type || (this.needsBlock = !0);\n else if (!e.firstChild) {\n this.leafFallback(e, n);\n break e;\n }\n let u = a && a.skip ? n : this.readStyles(e, n);\n u && this.addAll(e, u), c && this.sync(o), this.needsBlock = d;\n } else {\n let c = this.readStyles(e, n);\n c && this.addElementByRule(e, a, c, a.consuming === !1 ? l : void 0);\n }\n this.localPreserveWS = s;\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(e, n) {\n e.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent && this.addTextNode(e.ownerDocument.createTextNode(`\n`), n);\n }\n // Called for ignored nodes\n ignoreFallback(e, n) {\n e.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent) && this.findPlace(this.parser.schema.text(\"-\"), n, !0);\n }\n // Run any style parser associated with the node's styles. Either\n // return an updated array of marks, or null to indicate some of the\n // styles had a rule with `ignore` set.\n readStyles(e, n) {\n let r = e.style;\n if (r && r.length)\n for (let s = 0; s < this.parser.matchedStyles.length; s++) {\n let o = this.parser.matchedStyles[s], i = r.getPropertyValue(o);\n if (i)\n for (let l = void 0; ; ) {\n let a = this.parser.matchStyle(o, i, this, l);\n if (!a)\n break;\n if (a.ignore)\n return null;\n if (a.clearMark ? n = n.filter((c) => !a.clearMark(c)) : n = n.concat(this.parser.schema.marks[a.mark].create(a.attrs)), a.consuming === !1)\n l = a;\n else\n break;\n }\n }\n return n;\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(e, n, r, s) {\n let o, i;\n if (n.node)\n if (i = this.parser.schema.nodes[n.node], i.isLeaf)\n this.insertNode(i.create(n.attrs), r, e.nodeName == \"BR\") || this.leafFallback(e, r);\n else {\n let a = this.enter(i, n.attrs || null, r, n.preserveWhitespace);\n a && (o = !0, r = a);\n }\n else {\n let a = this.parser.schema.marks[n.mark];\n r = r.concat(a.create(n.attrs));\n }\n let l = this.top;\n if (i && i.isLeaf)\n this.findInside(e);\n else if (s)\n this.addElement(e, r, s);\n else if (n.getContent)\n this.findInside(e), n.getContent(e, this.parser.schema).forEach((a) => this.insertNode(a, r, !1));\n else {\n let a = e;\n typeof n.contentElement == \"string\" ? a = e.querySelector(n.contentElement) : typeof n.contentElement == \"function\" ? a = n.contentElement(e) : n.contentElement && (a = n.contentElement), this.findAround(e, a, !0), this.addAll(a, r), this.findAround(e, a, !1);\n }\n o && this.sync(l) && this.open--;\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(e, n, r, s) {\n let o = r || 0;\n for (let i = r ? e.childNodes[r] : e.firstChild, l = s == null ? null : e.childNodes[s]; i != l; i = i.nextSibling, ++o)\n this.findAtPoint(e, o), this.addDOM(i, n);\n this.findAtPoint(e, o);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(e, n, r) {\n let s, o;\n for (let i = this.open, l = 0; i >= 0; i--) {\n let a = this.nodes[i], c = a.findWrapping(e);\n if (c && (!s || s.length > c.length + l) && (s = c, o = a, !c.length))\n break;\n if (a.solid) {\n if (r)\n break;\n l += 2;\n }\n }\n if (!s)\n return null;\n this.sync(o);\n for (let i = 0; i < s.length; i++)\n n = this.enterInner(s[i], null, n, !1);\n return n;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(e, n, r) {\n if (e.isInline && this.needsBlock && !this.top.type) {\n let o = this.textblockFromContext();\n o && (n = this.enterInner(o, null, n));\n }\n let s = this.findPlace(e, n, r);\n if (s) {\n this.closeExtra();\n let o = this.top;\n o.match && (o.match = o.match.matchType(e.type));\n let i = K.none;\n for (let l of s.concat(e.marks))\n (o.type ? o.type.allowsMarkType(l.type) : xl(l.type, e.type)) && (i = l.addToSet(i));\n return o.content.push(e.mark(i)), !0;\n }\n return !1;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(e, n, r, s) {\n let o = this.findPlace(e.create(n), r, !1);\n return o && (o = this.enterInner(e, n, r, !0, s)), o;\n }\n // Open a node of the given type\n enterInner(e, n, r, s = !1, o) {\n this.closeExtra();\n let i = this.top;\n i.match = i.match && i.match.matchType(e);\n let l = yl(e, o, i.options);\n i.options & Fn && i.content.length == 0 && (l |= Fn);\n let a = K.none;\n return r = r.filter((c) => (i.type ? i.type.allowsMarkType(c.type) : xl(c.type, e)) ? (a = c.addToSet(a), !1) : !0), this.nodes.push(new yr(e, n, a, s, null, l)), this.open++, r;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(e = !1) {\n let n = this.nodes.length - 1;\n if (n > this.open) {\n for (; n > this.open; n--)\n this.nodes[n - 1].content.push(this.nodes[n].finish(e));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n return this.open = 0, this.closeExtra(this.isOpen), this.nodes[0].finish(!!(this.isOpen || this.options.topOpen));\n }\n sync(e) {\n for (let n = this.open; n >= 0; n--) {\n if (this.nodes[n] == e)\n return this.open = n, !0;\n this.localPreserveWS && (this.nodes[n].options |= er);\n }\n return !1;\n }\n get currentPos() {\n this.closeExtra();\n let e = 0;\n for (let n = this.open; n >= 0; n--) {\n let r = this.nodes[n].content;\n for (let s = r.length - 1; s >= 0; s--)\n e += r[s].nodeSize;\n n && e++;\n }\n return e;\n }\n findAtPoint(e, n) {\n if (this.find)\n for (let r = 0; r < this.find.length; r++)\n this.find[r].node == e && this.find[r].offset == n && (this.find[r].pos = this.currentPos);\n }\n findInside(e) {\n if (this.find)\n for (let n = 0; n < this.find.length; n++)\n this.find[n].pos == null && e.nodeType == 1 && e.contains(this.find[n].node) && (this.find[n].pos = this.currentPos);\n }\n findAround(e, n, r) {\n if (e != n && this.find)\n for (let s = 0; s < this.find.length; s++)\n this.find[s].pos == null && e.nodeType == 1 && e.contains(this.find[s].node) && n.compareDocumentPosition(this.find[s].node) & (r ? 2 : 4) && (this.find[s].pos = this.currentPos);\n }\n findInText(e) {\n if (this.find)\n for (let n = 0; n < this.find.length; n++)\n this.find[n].node == e && (this.find[n].pos = this.currentPos - (e.nodeValue.length - this.find[n].offset));\n }\n // Determines whether the given context string matches this context.\n matchesContext(e) {\n if (e.indexOf(\"|\") > -1)\n return e.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let n = e.split(\"/\"), r = this.options.context, s = !this.isOpen && (!r || r.parent.type == this.nodes[0].type), o = -(r ? r.depth + 1 : 0) + (s ? 0 : 1), i = (l, a) => {\n for (; l >= 0; l--) {\n let c = n[l];\n if (c == \"\") {\n if (l == n.length - 1 || l == 0)\n continue;\n for (; a >= o; a--)\n if (i(l - 1, a))\n return !0;\n return !1;\n } else {\n let d = a > 0 || a == 0 && s ? this.nodes[a].type : r && a >= o ? r.node(a - o).type : null;\n if (!d || d.name != c && !d.isInGroup(c))\n return !1;\n a--;\n }\n }\n return !0;\n };\n return i(n.length - 1, this.open);\n }\n textblockFromContext() {\n let e = this.options.context;\n if (e)\n for (let n = e.depth; n >= 0; n--) {\n let r = e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;\n if (r && r.isTextblock && r.defaultAttrs)\n return r;\n }\n for (let n in this.parser.schema.nodes) {\n let r = this.parser.schema.nodes[n];\n if (r.isTextblock && r.defaultAttrs)\n return r;\n }\n }\n}\nfunction sh(t) {\n for (let e = t.firstChild, n = null; e; e = e.nextSibling) {\n let r = e.nodeType == 1 ? e.nodeName.toLowerCase() : null;\n r && Lc.hasOwnProperty(r) && n ? (n.appendChild(e), e = n) : r == \"li\" ? n = e : r && (n = null);\n }\n}\nfunction oh(t, e) {\n return (t.matches || t.msMatchesSelector || t.webkitMatchesSelector || t.mozMatchesSelector).call(t, e);\n}\nfunction kl(t) {\n let e = {};\n for (let n in t)\n e[n] = t[n];\n return e;\n}\nfunction xl(t, e) {\n let n = e.schema.nodes;\n for (let r in n) {\n let s = n[r];\n if (!s.allowsMarkType(t))\n continue;\n let o = [], i = (l) => {\n o.push(l);\n for (let a = 0; a < l.edgeCount; a++) {\n let { type: c, next: d } = l.edge(a);\n if (c == e || o.indexOf(d) < 0 && i(d))\n return !0;\n }\n };\n if (i(s.contentMatch))\n return !0;\n }\n}\nclass $t {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(e, n) {\n this.nodes = e, this.marks = n;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(e, n = {}, r) {\n r || (r = Qs(n).createDocumentFragment());\n let s = r, o = [];\n return e.forEach((i) => {\n if (o.length || i.marks.length) {\n let l = 0, a = 0;\n for (; l < o.length && a < i.marks.length; ) {\n let c = i.marks[a];\n if (!this.marks[c.type.name]) {\n a++;\n continue;\n }\n if (!c.eq(o[l][0]) || c.type.spec.spanning === !1)\n break;\n l++, a++;\n }\n for (; l < o.length; )\n s = o.pop()[1];\n for (; a < i.marks.length; ) {\n let c = i.marks[a++], d = this.serializeMark(c, i.isInline, n);\n d && (o.push([c, s]), s.appendChild(d.dom), s = d.contentDOM || d.dom);\n }\n }\n s.appendChild(this.serializeNodeInner(i, n));\n }), r;\n }\n /**\n @internal\n */\n serializeNodeInner(e, n) {\n let { dom: r, contentDOM: s } = Pr(Qs(n), this.nodes[e.type.name](e), null, e.attrs);\n if (s) {\n if (e.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(e.content, n, s);\n }\n return r;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(e, n = {}) {\n let r = this.serializeNodeInner(e, n);\n for (let s = e.marks.length - 1; s >= 0; s--) {\n let o = this.serializeMark(e.marks[s], e.isInline, n);\n o && ((o.contentDOM || o.dom).appendChild(r), r = o.dom);\n }\n return r;\n }\n /**\n @internal\n */\n serializeMark(e, n, r = {}) {\n let s = this.marks[e.type.name];\n return s && Pr(Qs(r), s(e, n), null, e.attrs);\n }\n static renderSpec(e, n, r = null, s) {\n return Pr(e, n, r, s);\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(e) {\n return e.cached.domSerializer || (e.cached.domSerializer = new $t(this.nodesFromSchema(e), this.marksFromSchema(e)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(e) {\n let n = wl(e.nodes);\n return n.text || (n.text = (r) => r.text), n;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(e) {\n return wl(e.marks);\n }\n}\nfunction wl(t) {\n let e = {};\n for (let n in t) {\n let r = t[n].spec.toDOM;\n r && (e[n] = r);\n }\n return e;\n}\nfunction Qs(t) {\n return t.document || window.document;\n}\nconst Sl = /* @__PURE__ */ new WeakMap();\nfunction ih(t) {\n let e = Sl.get(t);\n return e === void 0 && Sl.set(t, e = lh(t)), e;\n}\nfunction lh(t) {\n let e = null;\n function n(r) {\n if (r && typeof r == \"object\")\n if (Array.isArray(r))\n if (typeof r[0] == \"string\")\n e || (e = []), e.push(r);\n else\n for (let s = 0; s < r.length; s++)\n n(r[s]);\n else\n for (let s in r)\n n(r[s]);\n }\n return n(t), e;\n}\nfunction Pr(t, e, n, r) {\n if (typeof e == \"string\")\n return { dom: t.createTextNode(e) };\n if (e.nodeType != null)\n return { dom: e };\n if (e.dom && e.dom.nodeType != null)\n return e;\n let s = e[0], o;\n if (typeof s != \"string\")\n throw new RangeError(\"Invalid array passed to renderSpec\");\n if (r && (o = ih(r)) && o.indexOf(e) > -1)\n throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");\n let i = s.indexOf(\" \");\n i > 0 && (n = s.slice(0, i), s = s.slice(i + 1));\n let l, a = n ? t.createElementNS(n, s) : t.createElement(s), c = e[1], d = 1;\n if (c && typeof c == \"object\" && c.nodeType == null && !Array.isArray(c)) {\n d = 2;\n for (let u in c)\n if (c[u] != null) {\n let f = u.indexOf(\" \");\n f > 0 ? a.setAttributeNS(u.slice(0, f), u.slice(f + 1), c[u]) : u == \"style\" && a.style ? a.style.cssText = c[u] : a.setAttribute(u, c[u]);\n }\n }\n for (let u = d; u < e.length; u++) {\n let f = e[u];\n if (f === 0) {\n if (u < e.length - 1 || u > d)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom: a, contentDOM: a };\n } else {\n let { dom: h, contentDOM: p } = Pr(t, f, n, r);\n if (a.appendChild(h), p) {\n if (l)\n throw new RangeError(\"Multiple content holes\");\n l = p;\n }\n }\n }\n return { dom: a, contentDOM: l };\n}\nconst Pc = 65535, zc = Math.pow(2, 16);\nfunction ah(t, e) {\n return t + e * zc;\n}\nfunction Cl(t) {\n return t & Pc;\n}\nfunction ch(t) {\n return (t - (t & Pc)) / zc;\n}\nconst Bc = 1, $c = 2, zr = 4, Hc = 8;\nclass Bo {\n /**\n @internal\n */\n constructor(e, n, r) {\n this.pos = e, this.delInfo = n, this.recover = r;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() {\n return (this.delInfo & Hc) > 0;\n }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() {\n return (this.delInfo & (Bc | zr)) > 0;\n }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() {\n return (this.delInfo & ($c | zr)) > 0;\n }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() {\n return (this.delInfo & zr) > 0;\n }\n}\nclass Oe {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(e, n = !1) {\n if (this.ranges = e, this.inverted = n, !e.length && Oe.empty)\n return Oe.empty;\n }\n /**\n @internal\n */\n recover(e) {\n let n = 0, r = Cl(e);\n if (!this.inverted)\n for (let s = 0; s < r; s++)\n n += this.ranges[s * 3 + 2] - this.ranges[s * 3 + 1];\n return this.ranges[r * 3] + n + ch(e);\n }\n mapResult(e, n = 1) {\n return this._map(e, n, !1);\n }\n map(e, n = 1) {\n return this._map(e, n, !0);\n }\n /**\n @internal\n */\n _map(e, n, r) {\n let s = 0, o = this.inverted ? 2 : 1, i = this.inverted ? 1 : 2;\n for (let l = 0; l < this.ranges.length; l += 3) {\n let a = this.ranges[l] - (this.inverted ? s : 0);\n if (a > e)\n break;\n let c = this.ranges[l + o], d = this.ranges[l + i], u = a + c;\n if (e <= u) {\n let f = c ? e == a ? -1 : e == u ? 1 : n : n, h = a + s + (f < 0 ? 0 : d);\n if (r)\n return h;\n let p = e == (n < 0 ? a : u) ? null : ah(l / 3, e - a), m = e == a ? $c : e == u ? Bc : zr;\n return (n < 0 ? e != a : e != u) && (m |= Hc), new Bo(h, m, p);\n }\n s += d - c;\n }\n return r ? e + s : new Bo(e + s, 0, null);\n }\n /**\n @internal\n */\n touches(e, n) {\n let r = 0, s = Cl(n), o = this.inverted ? 2 : 1, i = this.inverted ? 1 : 2;\n for (let l = 0; l < this.ranges.length; l += 3) {\n let a = this.ranges[l] - (this.inverted ? r : 0);\n if (a > e)\n break;\n let c = this.ranges[l + o], d = a + c;\n if (e <= d && l == s * 3)\n return !0;\n r += this.ranges[l + i] - c;\n }\n return !1;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(e) {\n let n = this.inverted ? 2 : 1, r = this.inverted ? 1 : 2;\n for (let s = 0, o = 0; s < this.ranges.length; s += 3) {\n let i = this.ranges[s], l = i - (this.inverted ? o : 0), a = i + (this.inverted ? 0 : o), c = this.ranges[s + n], d = this.ranges[s + r];\n e(l, l + c, a, a + d), o += d - c;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new Oe(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(e) {\n return e == 0 ? Oe.empty : new Oe(e < 0 ? [0, -e, 0] : [0, 0, e]);\n }\n}\nOe.empty = new Oe([]);\nclass tr {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(e, n, r = 0, s = e ? e.length : 0) {\n this.mirror = n, this.from = r, this.to = s, this._maps = e || [], this.ownData = !(e || n);\n }\n /**\n The step maps in this mapping.\n */\n get maps() {\n return this._maps;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(e = 0, n = this.maps.length) {\n return new tr(this._maps, this.mirror, e, n);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(e, n) {\n this.ownData || (this._maps = this._maps.slice(), this.mirror = this.mirror && this.mirror.slice(), this.ownData = !0), this.to = this._maps.push(e), n != null && this.setMirror(this._maps.length - 1, n);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(e) {\n for (let n = 0, r = this._maps.length; n < e._maps.length; n++) {\n let s = e.getMirror(n);\n this.appendMap(e._maps[n], s != null && s < n ? r + s : void 0);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(e) {\n if (this.mirror) {\n for (let n = 0; n < this.mirror.length; n++)\n if (this.mirror[n] == e)\n return this.mirror[n + (n % 2 ? -1 : 1)];\n }\n }\n /**\n @internal\n */\n setMirror(e, n) {\n this.mirror || (this.mirror = []), this.mirror.push(e, n);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(e) {\n for (let n = e.maps.length - 1, r = this._maps.length + e._maps.length; n >= 0; n--) {\n let s = e.getMirror(n);\n this.appendMap(e._maps[n].invert(), s != null && s > n ? r - s - 1 : void 0);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let e = new tr();\n return e.appendMappingInverted(this), e;\n }\n /**\n Map a position through this mapping.\n */\n map(e, n = 1) {\n if (this.mirror)\n return this._map(e, n, !0);\n for (let r = this.from; r < this.to; r++)\n e = this._maps[r].map(e, n);\n return e;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(e, n = 1) {\n return this._map(e, n, !1);\n }\n /**\n @internal\n */\n _map(e, n, r) {\n let s = 0;\n for (let o = this.from; o < this.to; o++) {\n let i = this._maps[o], l = i.mapResult(e, n);\n if (l.recover != null) {\n let a = this.getMirror(o);\n if (a != null && a > o && a < this.to) {\n o = a, e = this._maps[a].recover(l.recover);\n continue;\n }\n }\n s |= l.delInfo, e = l.pos;\n }\n return r ? e : new Bo(e, s, null);\n }\n}\nconst Zs = /* @__PURE__ */ Object.create(null);\nclass Ce {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() {\n return Oe.empty;\n }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(e) {\n return null;\n }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(e, n) {\n if (!n || !n.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let r = Zs[n.stepType];\n if (!r)\n throw new RangeError(`No step type ${n.stepType} defined`);\n return r.fromJSON(e, n);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(e, n) {\n if (e in Zs)\n throw new RangeError(\"Duplicate use of step JSON ID \" + e);\n return Zs[e] = n, n.prototype.jsonID = e, n;\n }\n}\nclass le {\n /**\n @internal\n */\n constructor(e, n) {\n this.doc = e, this.failed = n;\n }\n /**\n Create a successful step result.\n */\n static ok(e) {\n return new le(e, null);\n }\n /**\n Create a failed step result.\n */\n static fail(e) {\n return new le(null, e);\n }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(e, n, r, s) {\n try {\n return le.ok(e.replace(n, r, s));\n } catch (o) {\n if (o instanceof Wr)\n return le.fail(o.message);\n throw o;\n }\n }\n}\nfunction bi(t, e, n) {\n let r = [];\n for (let s = 0; s < t.childCount; s++) {\n let o = t.child(s);\n o.content.size && (o = o.copy(bi(o.content, e, o))), o.isInline && (o = e(o, n, s)), r.push(o);\n }\n return w.fromArray(r);\n}\nclass At extends Ce {\n /**\n Create a mark step.\n */\n constructor(e, n, r) {\n super(), this.from = e, this.to = n, this.mark = r;\n }\n apply(e) {\n let n = e.slice(this.from, this.to), r = e.resolve(this.from), s = r.node(r.sharedDepth(this.to)), o = new A(bi(n.content, (i, l) => !i.isAtom || !l.type.allowsMarkType(this.mark.type) ? i : i.mark(this.mark.addToSet(i.marks)), s), n.openStart, n.openEnd);\n return le.fromReplace(e, this.from, this.to, o);\n }\n invert() {\n return new Je(this.from, this.to, this.mark);\n }\n map(e) {\n let n = e.mapResult(this.from, 1), r = e.mapResult(this.to, -1);\n return n.deleted && r.deleted || n.pos >= r.pos ? null : new At(n.pos, r.pos, this.mark);\n }\n merge(e) {\n return e instanceof At && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new At(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;\n }\n toJSON() {\n return {\n stepType: \"addMark\",\n mark: this.mark.toJSON(),\n from: this.from,\n to: this.to\n };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.from != \"number\" || typeof n.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new At(n.from, n.to, e.markFromJSON(n.mark));\n }\n}\nCe.jsonID(\"addMark\", At);\nclass Je extends Ce {\n /**\n Create a mark-removing step.\n */\n constructor(e, n, r) {\n super(), this.from = e, this.to = n, this.mark = r;\n }\n apply(e) {\n let n = e.slice(this.from, this.to), r = new A(bi(n.content, (s) => s.mark(this.mark.removeFromSet(s.marks)), e), n.openStart, n.openEnd);\n return le.fromReplace(e, this.from, this.to, r);\n }\n invert() {\n return new At(this.from, this.to, this.mark);\n }\n map(e) {\n let n = e.mapResult(this.from, 1), r = e.mapResult(this.to, -1);\n return n.deleted && r.deleted || n.pos >= r.pos ? null : new Je(n.pos, r.pos, this.mark);\n }\n merge(e) {\n return e instanceof Je && e.mark.eq(this.mark) && this.from <= e.to && this.to >= e.from ? new Je(Math.min(this.from, e.from), Math.max(this.to, e.to), this.mark) : null;\n }\n toJSON() {\n return {\n stepType: \"removeMark\",\n mark: this.mark.toJSON(),\n from: this.from,\n to: this.to\n };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.from != \"number\" || typeof n.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new Je(n.from, n.to, e.markFromJSON(n.mark));\n }\n}\nCe.jsonID(\"removeMark\", Je);\nclass Nt extends Ce {\n /**\n Create a node mark step.\n */\n constructor(e, n) {\n super(), this.pos = e, this.mark = n;\n }\n apply(e) {\n let n = e.nodeAt(this.pos);\n if (!n)\n return le.fail(\"No node at mark step's position\");\n let r = n.type.create(n.attrs, null, this.mark.addToSet(n.marks));\n return le.fromReplace(e, this.pos, this.pos + 1, new A(w.from(r), 0, n.isLeaf ? 0 : 1));\n }\n invert(e) {\n let n = e.nodeAt(this.pos);\n if (n) {\n let r = this.mark.addToSet(n.marks);\n if (r.length == n.marks.length) {\n for (let s = 0; s < n.marks.length; s++)\n if (!n.marks[s].isInSet(r))\n return new Nt(this.pos, n.marks[s]);\n return new Nt(this.pos, this.mark);\n }\n }\n return new tn(this.pos, this.mark);\n }\n map(e) {\n let n = e.mapResult(this.pos, 1);\n return n.deletedAfter ? null : new Nt(n.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new Nt(n.pos, e.markFromJSON(n.mark));\n }\n}\nCe.jsonID(\"addNodeMark\", Nt);\nclass tn extends Ce {\n /**\n Create a mark-removing step.\n */\n constructor(e, n) {\n super(), this.pos = e, this.mark = n;\n }\n apply(e) {\n let n = e.nodeAt(this.pos);\n if (!n)\n return le.fail(\"No node at mark step's position\");\n let r = n.type.create(n.attrs, null, this.mark.removeFromSet(n.marks));\n return le.fromReplace(e, this.pos, this.pos + 1, new A(w.from(r), 0, n.isLeaf ? 0 : 1));\n }\n invert(e) {\n let n = e.nodeAt(this.pos);\n return !n || !this.mark.isInSet(n.marks) ? this : new Nt(this.pos, this.mark);\n }\n map(e) {\n let n = e.mapResult(this.pos, 1);\n return n.deletedAfter ? null : new tn(n.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new tn(n.pos, e.markFromJSON(n.mark));\n }\n}\nCe.jsonID(\"removeNodeMark\", tn);\nclass fe extends Ce {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(e, n, r, s = !1) {\n super(), this.from = e, this.to = n, this.slice = r, this.structure = s;\n }\n apply(e) {\n return this.structure && $o(e, this.from, this.to) ? le.fail(\"Structure replace would overwrite content\") : le.fromReplace(e, this.from, this.to, this.slice);\n }\n getMap() {\n return new Oe([this.from, this.to - this.from, this.slice.size]);\n }\n invert(e) {\n return new fe(this.from, this.from + this.slice.size, e.slice(this.from, this.to));\n }\n map(e) {\n let n = e.mapResult(this.from, 1), r = e.mapResult(this.to, -1);\n return n.deletedAcross && r.deletedAcross ? null : new fe(n.pos, Math.max(n.pos, r.pos), this.slice, this.structure);\n }\n merge(e) {\n if (!(e instanceof fe) || e.structure || this.structure)\n return null;\n if (this.from + this.slice.size == e.from && !this.slice.openEnd && !e.slice.openStart) {\n let n = this.slice.size + e.slice.size == 0 ? A.empty : new A(this.slice.content.append(e.slice.content), this.slice.openStart, e.slice.openEnd);\n return new fe(this.from, this.to + (e.to - e.from), n, this.structure);\n } else if (e.to == this.from && !this.slice.openStart && !e.slice.openEnd) {\n let n = this.slice.size + e.slice.size == 0 ? A.empty : new A(e.slice.content.append(this.slice.content), e.slice.openStart, this.slice.openEnd);\n return new fe(e.from, this.to, n, this.structure);\n } else\n return null;\n }\n toJSON() {\n let e = { stepType: \"replace\", from: this.from, to: this.to };\n return this.slice.size && (e.slice = this.slice.toJSON()), this.structure && (e.structure = !0), e;\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.from != \"number\" || typeof n.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new fe(n.from, n.to, A.fromJSON(e, n.slice), !!n.structure);\n }\n}\nCe.jsonID(\"replace\", fe);\nclass pe extends Ce {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(e, n, r, s, o, i, l = !1) {\n super(), this.from = e, this.to = n, this.gapFrom = r, this.gapTo = s, this.slice = o, this.insert = i, this.structure = l;\n }\n apply(e) {\n if (this.structure && ($o(e, this.from, this.gapFrom) || $o(e, this.gapTo, this.to)))\n return le.fail(\"Structure gap-replace would overwrite content\");\n let n = e.slice(this.gapFrom, this.gapTo);\n if (n.openStart || n.openEnd)\n return le.fail(\"Gap is not a flat range\");\n let r = this.slice.insertAt(this.insert, n.content);\n return r ? le.fromReplace(e, this.from, this.to, r) : le.fail(\"Content does not fit in gap\");\n }\n getMap() {\n return new Oe([\n this.from,\n this.gapFrom - this.from,\n this.insert,\n this.gapTo,\n this.to - this.gapTo,\n this.slice.size - this.insert\n ]);\n }\n invert(e) {\n let n = this.gapTo - this.gapFrom;\n return new pe(this.from, this.from + this.slice.size + n, this.from + this.insert, this.from + this.insert + n, e.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(e) {\n let n = e.mapResult(this.from, 1), r = e.mapResult(this.to, -1), s = this.from == this.gapFrom ? n.pos : e.map(this.gapFrom, -1), o = this.to == this.gapTo ? r.pos : e.map(this.gapTo, 1);\n return n.deletedAcross && r.deletedAcross || s < n.pos || o > r.pos ? null : new pe(n.pos, r.pos, s, o, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let e = {\n stepType: \"replaceAround\",\n from: this.from,\n to: this.to,\n gapFrom: this.gapFrom,\n gapTo: this.gapTo,\n insert: this.insert\n };\n return this.slice.size && (e.slice = this.slice.toJSON()), this.structure && (e.structure = !0), e;\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.from != \"number\" || typeof n.to != \"number\" || typeof n.gapFrom != \"number\" || typeof n.gapTo != \"number\" || typeof n.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new pe(n.from, n.to, n.gapFrom, n.gapTo, A.fromJSON(e, n.slice), n.insert, !!n.structure);\n }\n}\nCe.jsonID(\"replaceAround\", pe);\nfunction $o(t, e, n) {\n let r = t.resolve(e), s = n - e, o = r.depth;\n for (; s > 0 && o > 0 && r.indexAfter(o) == r.node(o).childCount; )\n o--, s--;\n if (s > 0) {\n let i = r.node(o).maybeChild(r.indexAfter(o));\n for (; s > 0; ) {\n if (!i || i.isLeaf)\n return !0;\n i = i.firstChild, s--;\n }\n }\n return !1;\n}\nfunction dh(t, e, n, r) {\n let s = [], o = [], i, l;\n t.doc.nodesBetween(e, n, (a, c, d) => {\n if (!a.isInline)\n return;\n let u = a.marks;\n if (!r.isInSet(u) && d.type.allowsMarkType(r.type)) {\n let f = Math.max(c, e), h = Math.min(c + a.nodeSize, n), p = r.addToSet(u);\n for (let m = 0; m < u.length; m++)\n u[m].isInSet(p) || (i && i.to == f && i.mark.eq(u[m]) ? i.to = h : s.push(i = new Je(f, h, u[m])));\n l && l.to == f ? l.to = h : o.push(l = new At(f, h, r));\n }\n }), s.forEach((a) => t.step(a)), o.forEach((a) => t.step(a));\n}\nfunction uh(t, e, n, r) {\n let s = [], o = 0;\n t.doc.nodesBetween(e, n, (i, l) => {\n if (!i.isInline)\n return;\n o++;\n let a = null;\n if (r instanceof Ls) {\n let c = i.marks, d;\n for (; d = r.isInSet(c); )\n (a || (a = [])).push(d), c = d.removeFromSet(c);\n } else r ? r.isInSet(i.marks) && (a = [r]) : a = i.marks;\n if (a && a.length) {\n let c = Math.min(l + i.nodeSize, n);\n for (let d = 0; d < a.length; d++) {\n let u = a[d], f;\n for (let h = 0; h < s.length; h++) {\n let p = s[h];\n p.step == o - 1 && u.eq(s[h].style) && (f = p);\n }\n f ? (f.to = c, f.step = o) : s.push({ style: u, from: Math.max(l, e), to: c, step: o });\n }\n }\n }), s.forEach((i) => t.step(new Je(i.from, i.to, i.style)));\n}\nfunction ki(t, e, n, r = n.contentMatch, s = !0) {\n let o = t.doc.nodeAt(e), i = [], l = e + 1;\n for (let a = 0; a < o.childCount; a++) {\n let c = o.child(a), d = l + c.nodeSize, u = r.matchType(c.type);\n if (!u)\n i.push(new fe(l, d, A.empty));\n else {\n r = u;\n for (let f = 0; f < c.marks.length; f++)\n n.allowsMarkType(c.marks[f].type) || t.step(new Je(l, d, c.marks[f]));\n if (s && c.isText && n.whitespace != \"pre\") {\n let f, h = /\\r?\\n|\\r/g, p;\n for (; f = h.exec(c.text); )\n p || (p = new A(w.from(n.schema.text(\" \", n.allowedMarks(c.marks))), 0, 0)), i.push(new fe(l + f.index, l + f.index + f[0].length, p));\n }\n }\n l = d;\n }\n if (!r.validEnd) {\n let a = r.fillBefore(w.empty, !0);\n t.replace(l, l, new A(a, 0, 0));\n }\n for (let a = i.length - 1; a >= 0; a--)\n t.step(i[a]);\n}\nfunction fh(t, e, n) {\n return (e == 0 || t.canReplace(e, t.childCount)) && (n == t.childCount || t.canReplace(0, n));\n}\nfunction Rn(t) {\n let n = t.parent.content.cutByIndex(t.startIndex, t.endIndex);\n for (let r = t.depth, s = 0, o = 0; ; --r) {\n let i = t.$from.node(r), l = t.$from.index(r) + s, a = t.$to.indexAfter(r) - o;\n if (r < t.depth && i.canReplace(l, a, n))\n return r;\n if (r == 0 || i.type.spec.isolating || !fh(i, l, a))\n break;\n l && (s = 1), a < i.childCount && (o = 1);\n }\n return null;\n}\nfunction hh(t, e, n) {\n let { $from: r, $to: s, depth: o } = e, i = r.before(o + 1), l = s.after(o + 1), a = i, c = l, d = w.empty, u = 0;\n for (let p = o, m = !1; p > n; p--)\n m || r.index(p) > 0 ? (m = !0, d = w.from(r.node(p).copy(d)), u++) : a--;\n let f = w.empty, h = 0;\n for (let p = o, m = !1; p > n; p--)\n m || s.after(p + 1) < s.end(p) ? (m = !0, f = w.from(s.node(p).copy(f)), h++) : c++;\n t.step(new pe(a, c, i, l, new A(d.append(f), u, h), d.size - u, !0));\n}\nfunction xi(t, e, n = null, r = t) {\n let s = ph(t, e), o = s && mh(r, e);\n return o ? s.map(vl).concat({ type: e, attrs: n }).concat(o.map(vl)) : null;\n}\nfunction vl(t) {\n return { type: t, attrs: null };\n}\nfunction ph(t, e) {\n let { parent: n, startIndex: r, endIndex: s } = t, o = n.contentMatchAt(r).findWrapping(e);\n if (!o)\n return null;\n let i = o.length ? o[0] : e;\n return n.canReplaceWith(r, s, i) ? o : null;\n}\nfunction mh(t, e) {\n let { parent: n, startIndex: r, endIndex: s } = t, o = n.child(r), i = e.contentMatch.findWrapping(o.type);\n if (!i)\n return null;\n let a = (i.length ? i[i.length - 1] : e).contentMatch;\n for (let c = r; a && c < s; c++)\n a = a.matchType(n.child(c).type);\n return !a || !a.validEnd ? null : i;\n}\nfunction gh(t, e, n) {\n let r = w.empty;\n for (let i = n.length - 1; i >= 0; i--) {\n if (r.size) {\n let l = n[i].type.contentMatch.matchFragment(r);\n if (!l || !l.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n r = w.from(n[i].type.create(n[i].attrs, r));\n }\n let s = e.start, o = e.end;\n t.step(new pe(s, o, s, o, new A(r, 0, 0), n.length, !0));\n}\nfunction yh(t, e, n, r, s) {\n if (!r.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let o = t.steps.length;\n t.doc.nodesBetween(e, n, (i, l) => {\n let a = typeof s == \"function\" ? s(i) : s;\n if (i.isTextblock && !i.hasMarkup(r, a) && bh(t.doc, t.mapping.slice(o).map(l), r)) {\n let c = null;\n if (r.schema.linebreakReplacement) {\n let h = r.whitespace == \"pre\", p = !!r.contentMatch.matchType(r.schema.linebreakReplacement);\n h && !p ? c = !1 : !h && p && (c = !0);\n }\n c === !1 && jc(t, i, l, o), ki(t, t.mapping.slice(o).map(l, 1), r, void 0, c === null);\n let d = t.mapping.slice(o), u = d.map(l, 1), f = d.map(l + i.nodeSize, 1);\n return t.step(new pe(u, f, u + 1, f - 1, new A(w.from(r.create(a, null, i.marks)), 0, 0), 1, !0)), c === !0 && _c(t, i, l, o), !1;\n }\n });\n}\nfunction _c(t, e, n, r) {\n e.forEach((s, o) => {\n if (s.isText) {\n let i, l = /\\r?\\n|\\r/g;\n for (; i = l.exec(s.text); ) {\n let a = t.mapping.slice(r).map(n + 1 + o + i.index);\n t.replaceWith(a, a + 1, e.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction jc(t, e, n, r) {\n e.forEach((s, o) => {\n if (s.type == s.type.schema.linebreakReplacement) {\n let i = t.mapping.slice(r).map(n + 1 + o);\n t.replaceWith(i, i + 1, e.type.schema.text(`\n`));\n }\n });\n}\nfunction bh(t, e, n) {\n let r = t.resolve(e), s = r.index();\n return r.parent.canReplaceWith(s, s + 1, n);\n}\nfunction kh(t, e, n, r, s) {\n let o = t.doc.nodeAt(e);\n if (!o)\n throw new RangeError(\"No node at given position\");\n n || (n = o.type);\n let i = n.create(r, null, s || o.marks);\n if (o.isLeaf)\n return t.replaceWith(e, e + o.nodeSize, i);\n if (!n.validContent(o.content))\n throw new RangeError(\"Invalid content for node type \" + n.name);\n t.step(new pe(e, e + o.nodeSize, e + 1, e + o.nodeSize - 1, new A(w.from(i), 0, 0), 1, !0));\n}\nfunction mt(t, e, n = 1, r) {\n let s = t.resolve(e), o = s.depth - n, i = r && r[r.length - 1] || s.parent;\n if (o < 0 || s.parent.type.spec.isolating || !s.parent.canReplace(s.index(), s.parent.childCount) || !i.type.validContent(s.parent.content.cutByIndex(s.index(), s.parent.childCount)))\n return !1;\n for (let c = s.depth - 1, d = n - 2; c > o; c--, d--) {\n let u = s.node(c), f = s.index(c);\n if (u.type.spec.isolating)\n return !1;\n let h = u.content.cutByIndex(f, u.childCount), p = r && r[d + 1];\n p && (h = h.replaceChild(0, p.type.create(p.attrs)));\n let m = r && r[d] || u;\n if (!u.canReplace(f + 1, u.childCount) || !m.type.validContent(h))\n return !1;\n }\n let l = s.indexAfter(o), a = r && r[0];\n return s.node(o).canReplaceWith(l, l, a ? a.type : s.node(o + 1).type);\n}\nfunction xh(t, e, n = 1, r) {\n let s = t.doc.resolve(e), o = w.empty, i = w.empty;\n for (let l = s.depth, a = s.depth - n, c = n - 1; l > a; l--, c--) {\n o = w.from(s.node(l).copy(o));\n let d = r && r[c];\n i = w.from(d ? d.type.create(d.attrs, i) : s.node(l).copy(i));\n }\n t.step(new fe(e, e, new A(o.append(i), n, n), !0));\n}\nfunction Ht(t, e) {\n let n = t.resolve(e), r = n.index();\n return Vc(n.nodeBefore, n.nodeAfter) && n.parent.canReplace(r, r + 1);\n}\nfunction wh(t, e) {\n e.content.size || t.type.compatibleContent(e.type);\n let n = t.contentMatchAt(t.childCount), { linebreakReplacement: r } = t.type.schema;\n for (let s = 0; s < e.childCount; s++) {\n let o = e.child(s), i = o.type == r ? t.type.schema.nodes.text : o.type;\n if (n = n.matchType(i), !n || !t.type.allowsMarks(o.marks))\n return !1;\n }\n return n.validEnd;\n}\nfunction Vc(t, e) {\n return !!(t && e && !t.isLeaf && wh(t, e));\n}\nfunction Ps(t, e, n = -1) {\n let r = t.resolve(e);\n for (let s = r.depth; ; s--) {\n let o, i, l = r.index(s);\n if (s == r.depth ? (o = r.nodeBefore, i = r.nodeAfter) : n > 0 ? (o = r.node(s + 1), l++, i = r.node(s).maybeChild(l)) : (o = r.node(s).maybeChild(l - 1), i = r.node(s + 1)), o && !o.isTextblock && Vc(o, i) && r.node(s).canReplace(l, l + 1))\n return e;\n if (s == 0)\n break;\n e = n < 0 ? r.before(s) : r.after(s);\n }\n}\nfunction Sh(t, e, n) {\n let r = null, { linebreakReplacement: s } = t.doc.type.schema, o = t.doc.resolve(e - n), i = o.node().type;\n if (s && i.inlineContent) {\n let d = i.whitespace == \"pre\", u = !!i.contentMatch.matchType(s);\n d && !u ? r = !1 : !d && u && (r = !0);\n }\n let l = t.steps.length;\n if (r === !1) {\n let d = t.doc.resolve(e + n);\n jc(t, d.node(), d.before(), l);\n }\n i.inlineContent && ki(t, e + n - 1, i, o.node().contentMatchAt(o.index()), r == null);\n let a = t.mapping.slice(l), c = a.map(e - n);\n if (t.step(new fe(c, a.map(e + n, -1), A.empty, !0)), r === !0) {\n let d = t.doc.resolve(c);\n _c(t, d.node(), d.before(), t.steps.length);\n }\n return t;\n}\nfunction Ch(t, e, n) {\n let r = t.resolve(e);\n if (r.parent.canReplaceWith(r.index(), r.index(), n))\n return e;\n if (r.parentOffset == 0)\n for (let s = r.depth - 1; s >= 0; s--) {\n let o = r.index(s);\n if (r.node(s).canReplaceWith(o, o, n))\n return r.before(s + 1);\n if (o > 0)\n return null;\n }\n if (r.parentOffset == r.parent.content.size)\n for (let s = r.depth - 1; s >= 0; s--) {\n let o = r.indexAfter(s);\n if (r.node(s).canReplaceWith(o, o, n))\n return r.after(s + 1);\n if (o < r.node(s).childCount)\n return null;\n }\n return null;\n}\nfunction Fc(t, e, n) {\n let r = t.resolve(e);\n if (!n.content.size)\n return e;\n let s = n.content;\n for (let o = 0; o < n.openStart; o++)\n s = s.firstChild.content;\n for (let o = 1; o <= (n.openStart == 0 && n.size ? 2 : 1); o++)\n for (let i = r.depth; i >= 0; i--) {\n let l = i == r.depth ? 0 : r.pos <= (r.start(i + 1) + r.end(i + 1)) / 2 ? -1 : 1, a = r.index(i) + (l > 0 ? 1 : 0), c = r.node(i), d = !1;\n if (o == 1)\n d = c.canReplace(a, a, s);\n else {\n let u = c.contentMatchAt(a).findWrapping(s.firstChild.type);\n d = u && c.canReplaceWith(a, a, u[0]);\n }\n if (d)\n return l == 0 ? r.pos : l < 0 ? r.before(i + 1) : r.after(i + 1);\n }\n return null;\n}\nfunction zs(t, e, n = e, r = A.empty) {\n if (e == n && !r.size)\n return null;\n let s = t.resolve(e), o = t.resolve(n);\n return Wc(s, o, r) ? new fe(e, n, r) : new vh(s, o, r).fit();\n}\nfunction Wc(t, e, n) {\n return !n.openStart && !n.openEnd && t.start() == e.start() && t.parent.canReplace(t.index(), e.index(), n.content);\n}\nclass vh {\n constructor(e, n, r) {\n this.$from = e, this.$to = n, this.unplaced = r, this.frontier = [], this.placed = w.empty;\n for (let s = 0; s <= e.depth; s++) {\n let o = e.node(s);\n this.frontier.push({\n type: o.type,\n match: o.contentMatchAt(e.indexAfter(s))\n });\n }\n for (let s = e.depth; s > 0; s--)\n this.placed = w.from(e.node(s).copy(this.placed));\n }\n get depth() {\n return this.frontier.length - 1;\n }\n fit() {\n for (; this.unplaced.size; ) {\n let c = this.findFittable();\n c ? this.placeNodes(c) : this.openMore() || this.dropNode();\n }\n let e = this.mustMoveInline(), n = this.placed.size - this.depth - this.$from.depth, r = this.$from, s = this.close(e < 0 ? this.$to : r.doc.resolve(e));\n if (!s)\n return null;\n let o = this.placed, i = r.depth, l = s.depth;\n for (; i && l && o.childCount == 1; )\n o = o.firstChild.content, i--, l--;\n let a = new A(o, i, l);\n return e > -1 ? new pe(r.pos, e, this.$to.pos, this.$to.end(), a, n) : a.size || r.pos != this.$to.pos ? new fe(r.pos, s.pos, a) : null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let e = this.unplaced.openStart;\n for (let n = this.unplaced.content, r = 0, s = this.unplaced.openEnd; r < e; r++) {\n let o = n.firstChild;\n if (n.childCount > 1 && (s = 0), o.type.spec.isolating && s <= r) {\n e = r;\n break;\n }\n n = o.content;\n }\n for (let n = 1; n <= 2; n++)\n for (let r = n == 1 ? e : this.unplaced.openStart; r >= 0; r--) {\n let s, o = null;\n r ? (o = eo(this.unplaced.content, r - 1).firstChild, s = o.content) : s = this.unplaced.content;\n let i = s.firstChild;\n for (let l = this.depth; l >= 0; l--) {\n let { type: a, match: c } = this.frontier[l], d, u = null;\n if (n == 1 && (i ? c.matchType(i.type) || (u = c.fillBefore(w.from(i), !1)) : o && a.compatibleContent(o.type)))\n return { sliceDepth: r, frontierDepth: l, parent: o, inject: u };\n if (n == 2 && i && (d = c.findWrapping(i.type)))\n return { sliceDepth: r, frontierDepth: l, parent: o, wrap: d };\n if (o && c.matchType(o.type))\n break;\n }\n }\n }\n openMore() {\n let { content: e, openStart: n, openEnd: r } = this.unplaced, s = eo(e, n);\n return !s.childCount || s.firstChild.isLeaf ? !1 : (this.unplaced = new A(e, n + 1, Math.max(r, s.size + n >= e.size - r ? n + 1 : 0)), !0);\n }\n dropNode() {\n let { content: e, openStart: n, openEnd: r } = this.unplaced, s = eo(e, n);\n if (s.childCount <= 1 && n > 0) {\n let o = e.size - n <= n + s.size;\n this.unplaced = new A($n(e, n - 1, 1), n - 1, o ? n - 1 : r);\n } else\n this.unplaced = new A($n(e, n, 1), n, r);\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth: e, frontierDepth: n, parent: r, inject: s, wrap: o }) {\n for (; this.depth > n; )\n this.closeFrontierNode();\n if (o)\n for (let m = 0; m < o.length; m++)\n this.openFrontierNode(o[m]);\n let i = this.unplaced, l = r ? r.content : i.content, a = i.openStart - e, c = 0, d = [], { match: u, type: f } = this.frontier[n];\n if (s) {\n for (let m = 0; m < s.childCount; m++)\n d.push(s.child(m));\n u = u.matchFragment(s);\n }\n let h = l.size + e - (i.content.size - i.openEnd);\n for (; c < l.childCount; ) {\n let m = l.child(c), g = u.matchType(m.type);\n if (!g)\n break;\n c++, (c > 1 || a == 0 || m.content.size) && (u = g, d.push(Uc(m.mark(f.allowedMarks(m.marks)), c == 1 ? a : 0, c == l.childCount ? h : -1)));\n }\n let p = c == l.childCount;\n p || (h = -1), this.placed = Hn(this.placed, n, w.from(d)), this.frontier[n].match = u, p && h < 0 && r && r.type == this.frontier[this.depth].type && this.frontier.length > 1 && this.closeFrontierNode();\n for (let m = 0, g = l; m < h; m++) {\n let y = g.lastChild;\n this.frontier.push({ type: y.type, match: y.contentMatchAt(y.childCount) }), g = y.content;\n }\n this.unplaced = p ? e == 0 ? A.empty : new A($n(i.content, e - 1, 1), e - 1, h < 0 ? i.openEnd : e - 1) : new A($n(i.content, e, c), i.openStart, i.openEnd);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let e = this.frontier[this.depth], n;\n if (!e.type.isTextblock || !to(this.$to, this.$to.depth, e.type, e.match, !1) || this.$to.depth == this.depth && (n = this.findCloseLevel(this.$to)) && n.depth == this.depth)\n return -1;\n let { depth: r } = this.$to, s = this.$to.after(r);\n for (; r > 1 && s == this.$to.end(--r); )\n ++s;\n return s;\n }\n findCloseLevel(e) {\n e: for (let n = Math.min(this.depth, e.depth); n >= 0; n--) {\n let { match: r, type: s } = this.frontier[n], o = n < e.depth && e.end(n + 1) == e.pos + (e.depth - (n + 1)), i = to(e, n, s, r, o);\n if (i) {\n for (let l = n - 1; l >= 0; l--) {\n let { match: a, type: c } = this.frontier[l], d = to(e, l, c, a, !0);\n if (!d || d.childCount)\n continue e;\n }\n return { depth: n, fit: i, move: o ? e.doc.resolve(e.after(n + 1)) : e };\n }\n }\n }\n close(e) {\n let n = this.findCloseLevel(e);\n if (!n)\n return null;\n for (; this.depth > n.depth; )\n this.closeFrontierNode();\n n.fit.childCount && (this.placed = Hn(this.placed, n.depth, n.fit)), e = n.move;\n for (let r = n.depth + 1; r <= e.depth; r++) {\n let s = e.node(r), o = s.type.contentMatch.fillBefore(s.content, !0, e.index(r));\n this.openFrontierNode(s.type, s.attrs, o);\n }\n return e;\n }\n openFrontierNode(e, n = null, r) {\n let s = this.frontier[this.depth];\n s.match = s.match.matchType(e), this.placed = Hn(this.placed, this.depth, w.from(e.create(n, r))), this.frontier.push({ type: e, match: e.contentMatch });\n }\n closeFrontierNode() {\n let n = this.frontier.pop().match.fillBefore(w.empty, !0);\n n.childCount && (this.placed = Hn(this.placed, this.frontier.length, n));\n }\n}\nfunction $n(t, e, n) {\n return e == 0 ? t.cutByIndex(n, t.childCount) : t.replaceChild(0, t.firstChild.copy($n(t.firstChild.content, e - 1, n)));\n}\nfunction Hn(t, e, n) {\n return e == 0 ? t.append(n) : t.replaceChild(t.childCount - 1, t.lastChild.copy(Hn(t.lastChild.content, e - 1, n)));\n}\nfunction eo(t, e) {\n for (let n = 0; n < e; n++)\n t = t.firstChild.content;\n return t;\n}\nfunction Uc(t, e, n) {\n if (e <= 0)\n return t;\n let r = t.content;\n return e > 1 && (r = r.replaceChild(0, Uc(r.firstChild, e - 1, r.childCount == 1 ? n - 1 : 0))), e > 0 && (r = t.type.contentMatch.fillBefore(r).append(r), n <= 0 && (r = r.append(t.type.contentMatch.matchFragment(r).fillBefore(w.empty, !0)))), t.copy(r);\n}\nfunction to(t, e, n, r, s) {\n let o = t.node(e), i = s ? t.indexAfter(e) : t.index(e);\n if (i == o.childCount && !n.compatibleContent(o.type))\n return null;\n let l = r.fillBefore(o.content, !0, i);\n return l && !Mh(n, o.content, i) ? l : null;\n}\nfunction Mh(t, e, n) {\n for (let r = n; r < e.childCount; r++)\n if (!t.allowsMarks(e.child(r).marks))\n return !0;\n return !1;\n}\nfunction Th(t) {\n return t.spec.defining || t.spec.definingForContent;\n}\nfunction Eh(t, e, n, r) {\n if (!r.size)\n return t.deleteRange(e, n);\n let s = t.doc.resolve(e), o = t.doc.resolve(n);\n if (Wc(s, o, r))\n return t.step(new fe(e, n, r));\n let i = qc(s, o);\n i[i.length - 1] == 0 && i.pop();\n let l = -(s.depth + 1);\n i.unshift(l);\n for (let f = s.depth, h = s.pos - 1; f > 0; f--, h--) {\n let p = s.node(f).type.spec;\n if (p.defining || p.definingAsContext || p.isolating)\n break;\n i.indexOf(f) > -1 ? l = f : s.before(f) == h && i.splice(1, 0, -f);\n }\n let a = i.indexOf(l), c = [], d = r.openStart;\n for (let f = r.content, h = 0; ; h++) {\n let p = f.firstChild;\n if (c.push(p), h == r.openStart)\n break;\n f = p.content;\n }\n for (let f = d - 1; f >= 0; f--) {\n let h = c[f], p = Th(h.type);\n if (p && !h.sameMarkup(s.node(Math.abs(l) - 1)))\n d = f;\n else if (p || !h.type.isTextblock)\n break;\n }\n for (let f = r.openStart; f >= 0; f--) {\n let h = (f + d + 1) % (r.openStart + 1), p = c[h];\n if (p)\n for (let m = 0; m < i.length; m++) {\n let g = i[(m + a) % i.length], y = !0;\n g < 0 && (y = !1, g = -g);\n let x = s.node(g - 1), k = s.index(g - 1);\n if (x.canReplaceWith(k, k, p.type, p.marks))\n return t.replace(s.before(g), y ? o.after(g) : n, new A(Kc(r.content, 0, r.openStart, h), h, r.openEnd));\n }\n }\n let u = t.steps.length;\n for (let f = i.length - 1; f >= 0 && (t.replace(e, n, r), !(t.steps.length > u)); f--) {\n let h = i[f];\n h < 0 || (e = s.before(h), n = o.after(h));\n }\n}\nfunction Kc(t, e, n, r, s) {\n if (e < n) {\n let o = t.firstChild;\n t = t.replaceChild(0, o.copy(Kc(o.content, e + 1, n, r, o)));\n }\n if (e > r) {\n let o = s.contentMatchAt(0), i = o.fillBefore(t).append(t);\n t = i.append(o.matchFragment(i).fillBefore(w.empty, !0));\n }\n return t;\n}\nfunction Ah(t, e, n, r) {\n if (!r.isInline && e == n && t.doc.resolve(e).parent.content.size) {\n let s = Ch(t.doc, e, r.type);\n s != null && (e = n = s);\n }\n t.replaceRange(e, n, new A(w.from(r), 0, 0));\n}\nfunction Nh(t, e, n) {\n let r = t.doc.resolve(e), s = t.doc.resolve(n), o = qc(r, s);\n for (let i = 0; i < o.length; i++) {\n let l = o[i], a = i == o.length - 1;\n if (a && l == 0 || r.node(l).type.contentMatch.validEnd)\n return t.delete(r.start(l), s.end(l));\n if (l > 0 && (a || r.node(l - 1).canReplace(r.index(l - 1), s.indexAfter(l - 1))))\n return t.delete(r.before(l), s.after(l));\n }\n for (let i = 1; i <= r.depth && i <= s.depth; i++)\n if (e - r.start(i) == r.depth - i && n > r.end(i) && s.end(i) - n != s.depth - i && r.start(i - 1) == s.start(i - 1) && r.node(i - 1).canReplace(r.index(i - 1), s.index(i - 1)))\n return t.delete(r.before(i), n);\n t.delete(e, n);\n}\nfunction qc(t, e) {\n let n = [], r = Math.min(t.depth, e.depth);\n for (let s = r; s >= 0; s--) {\n let o = t.start(s);\n if (o < t.pos - (t.depth - s) || e.end(s) > e.pos + (e.depth - s) || t.node(s).type.spec.isolating || e.node(s).type.spec.isolating)\n break;\n (o == e.start(s) || s == t.depth && s == e.depth && t.parent.inlineContent && e.parent.inlineContent && s && e.start(s - 1) == o - 1) && n.push(s);\n }\n return n;\n}\nclass Cn extends Ce {\n /**\n Construct an attribute step.\n */\n constructor(e, n, r) {\n super(), this.pos = e, this.attr = n, this.value = r;\n }\n apply(e) {\n let n = e.nodeAt(this.pos);\n if (!n)\n return le.fail(\"No node at attribute step's position\");\n let r = /* @__PURE__ */ Object.create(null);\n for (let o in n.attrs)\n r[o] = n.attrs[o];\n r[this.attr] = this.value;\n let s = n.type.create(r, null, n.marks);\n return le.fromReplace(e, this.pos, this.pos + 1, new A(w.from(s), 0, n.isLeaf ? 0 : 1));\n }\n getMap() {\n return Oe.empty;\n }\n invert(e) {\n return new Cn(this.pos, this.attr, e.nodeAt(this.pos).attrs[this.attr]);\n }\n map(e) {\n let n = e.mapResult(this.pos, 1);\n return n.deletedAfter ? null : new Cn(n.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(e, n) {\n if (typeof n.pos != \"number\" || typeof n.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new Cn(n.pos, n.attr, n.value);\n }\n}\nCe.jsonID(\"attr\", Cn);\nclass nr extends Ce {\n /**\n Construct an attribute step.\n */\n constructor(e, n) {\n super(), this.attr = e, this.value = n;\n }\n apply(e) {\n let n = /* @__PURE__ */ Object.create(null);\n for (let s in e.attrs)\n n[s] = e.attrs[s];\n n[this.attr] = this.value;\n let r = e.type.create(n, e.content, e.marks);\n return le.ok(r);\n }\n getMap() {\n return Oe.empty;\n }\n invert(e) {\n return new nr(this.attr, e.attrs[this.attr]);\n }\n map(e) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(e, n) {\n if (typeof n.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new nr(n.attr, n.value);\n }\n}\nCe.jsonID(\"docAttr\", nr);\nlet Mn = class extends Error {\n};\nMn = function t(e) {\n let n = Error.call(this, e);\n return n.__proto__ = t.prototype, n;\n};\nMn.prototype = Object.create(Error.prototype);\nMn.prototype.constructor = Mn;\nMn.prototype.name = \"TransformError\";\nclass wi {\n /**\n Create a transform that starts with the given document.\n */\n constructor(e) {\n this.doc = e, this.steps = [], this.docs = [], this.mapping = new tr();\n }\n /**\n The starting document.\n */\n get before() {\n return this.docs.length ? this.docs[0] : this.doc;\n }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(e) {\n let n = this.maybeStep(e);\n if (n.failed)\n throw new Mn(n.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(e) {\n let n = e.apply(this.doc);\n return n.failed || this.addStep(e, n.doc), n;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(e, n) {\n this.docs.push(this.doc), this.steps.push(e), this.mapping.appendMap(e.getMap()), this.doc = n;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(e, n = e, r = A.empty) {\n let s = zs(this.doc, e, n, r);\n return s && this.step(s), this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(e, n, r) {\n return this.replace(e, n, new A(w.from(r), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(e, n) {\n return this.replace(e, n, A.empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(e, n) {\n return this.replaceWith(e, e, n);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(e, n, r) {\n return Eh(this, e, n, r), this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(e, n, r) {\n return Ah(this, e, n, r), this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(e, n) {\n return Nh(this, e, n), this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(e, n) {\n return hh(this, e, n), this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(e, n = 1) {\n return Sh(this, e, n), this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(e, n) {\n return gh(this, e, n), this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(e, n = e, r, s = null) {\n return yh(this, e, n, r, s), this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(e, n, r = null, s) {\n return kh(this, e, n, r, s), this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(e, n, r) {\n return this.step(new Cn(e, n, r)), this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(e, n) {\n return this.step(new nr(e, n)), this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(e, n) {\n return this.step(new Nt(e, n)), this;\n }\n /**\n Remove a mark (or all marks of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(e, n) {\n let r = this.doc.nodeAt(e);\n if (!r)\n throw new RangeError(\"No node at position \" + e);\n if (n instanceof K)\n n.isInSet(r.marks) && this.step(new tn(e, n));\n else {\n let s = r.marks, o, i = [];\n for (; o = n.isInSet(s); )\n i.push(new tn(e, o)), s = o.removeFromSet(s);\n for (let l = i.length - 1; l >= 0; l--)\n this.step(i[l]);\n }\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split (with the outermost nodes coming first).\n */\n split(e, n = 1, r) {\n return xh(this, e, n, r), this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(e, n, r) {\n return dh(this, e, n, r), this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(e, n, r) {\n return uh(this, e, n, r), this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(e, n, r) {\n return ki(this, e, n, r), this;\n }\n}\nconst no = /* @__PURE__ */ Object.create(null);\nclass B {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(e, n, r) {\n this.$anchor = e, this.$head = n, this.ranges = r || [new Jc(e.min(n), e.max(n))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() {\n return this.$anchor.pos;\n }\n /**\n The selection's head.\n */\n get head() {\n return this.$head.pos;\n }\n /**\n The lower bound of the selection's main range.\n */\n get from() {\n return this.$from.pos;\n }\n /**\n The upper bound of the selection's main range.\n */\n get to() {\n return this.$to.pos;\n }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let e = this.ranges;\n for (let n = 0; n < e.length; n++)\n if (e[n].$from.pos != e[n].$to.pos)\n return !1;\n return !0;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, !0);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(e, n = A.empty) {\n let r = n.content.lastChild, s = null;\n for (let l = 0; l < n.openEnd; l++)\n s = r, r = r.lastChild;\n let o = e.steps.length, i = this.ranges;\n for (let l = 0; l < i.length; l++) {\n let { $from: a, $to: c } = i[l], d = e.mapping.slice(o);\n e.replaceRange(d.map(a.pos), d.map(c.pos), l ? A.empty : n), l == 0 && El(e, o, (r ? r.isInline : s && s.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(e, n) {\n let r = e.steps.length, s = this.ranges;\n for (let o = 0; o < s.length; o++) {\n let { $from: i, $to: l } = s[o], a = e.mapping.slice(r), c = a.map(i.pos), d = a.map(l.pos);\n o ? e.deleteRange(c, d) : (e.replaceRangeWith(c, d, n), El(e, r, n.isInline ? -1 : 1));\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom(e, n, r = !1) {\n let s = e.parent.inlineContent ? new P(e) : yn(e.node(0), e.parent, e.pos, e.index(), n, r);\n if (s)\n return s;\n for (let o = e.depth - 1; o >= 0; o--) {\n let i = n < 0 ? yn(e.node(0), e.node(o), e.before(o + 1), e.index(o), n, r) : yn(e.node(0), e.node(o), e.after(o + 1), e.index(o) + 1, n, r);\n if (i)\n return i;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near(e, n = 1) {\n return this.findFrom(e, n) || this.findFrom(e, -n) || new De(e.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(e) {\n return yn(e, e, 0, 0, 1) || new De(e);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(e) {\n return yn(e, e, e.content.size, e.childCount, -1) || new De(e);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(e, n) {\n if (!n || !n.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let r = no[n.type];\n if (!r)\n throw new RangeError(`No selection type ${n.type} defined`);\n return r.fromJSON(e, n);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(e, n) {\n if (e in no)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + e);\n return no[e] = n, n.prototype.jsonID = e, n;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return P.between(this.$anchor, this.$head).getBookmark();\n }\n}\nB.prototype.visible = !0;\nclass Jc {\n /**\n Create a range.\n */\n constructor(e, n) {\n this.$from = e, this.$to = n;\n }\n}\nlet Ml = !1;\nfunction Tl(t) {\n !Ml && !t.parent.inlineContent && (Ml = !0, console.warn(\"TextSelection endpoint not pointing into a node with inline content (\" + t.parent.type.name + \")\"));\n}\nclass P extends B {\n /**\n Construct a text selection between the given points.\n */\n constructor(e, n = e) {\n Tl(e), Tl(n), super(e, n);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() {\n return this.$anchor.pos == this.$head.pos ? this.$head : null;\n }\n map(e, n) {\n let r = e.resolve(n.map(this.head));\n if (!r.parent.inlineContent)\n return B.near(r);\n let s = e.resolve(n.map(this.anchor));\n return new P(s.parent.inlineContent ? s : r, r);\n }\n replace(e, n = A.empty) {\n if (super.replace(e, n), n == A.empty) {\n let r = this.$from.marksAcross(this.$to);\n r && e.ensureMarks(r);\n }\n }\n eq(e) {\n return e instanceof P && e.anchor == this.anchor && e.head == this.head;\n }\n getBookmark() {\n return new Bs(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.anchor != \"number\" || typeof n.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new P(e.resolve(n.anchor), e.resolve(n.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(e, n, r = n) {\n let s = e.resolve(n);\n return new this(s, r == n ? s : e.resolve(r));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between(e, n, r) {\n let s = e.pos - n.pos;\n if ((!r || s) && (r = s >= 0 ? 1 : -1), !n.parent.inlineContent) {\n let o = B.findFrom(n, r, !0) || B.findFrom(n, -r, !0);\n if (o)\n n = o.$head;\n else\n return B.near(n, r);\n }\n return e.parent.inlineContent || (s == 0 ? e = n : (e = (B.findFrom(e, -r, !0) || B.findFrom(e, r, !0)).$anchor, e.pos < n.pos != s < 0 && (e = n))), new P(e, n);\n }\n}\nB.jsonID(\"text\", P);\nclass Bs {\n constructor(e, n) {\n this.anchor = e, this.head = n;\n }\n map(e) {\n return new Bs(e.map(this.anchor), e.map(this.head));\n }\n resolve(e) {\n return P.between(e.resolve(this.anchor), e.resolve(this.head));\n }\n}\nclass D extends B {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor(e) {\n let n = e.nodeAfter, r = e.node(0).resolve(e.pos + n.nodeSize);\n super(e, r), this.node = n;\n }\n map(e, n) {\n let { deleted: r, pos: s } = n.mapResult(this.anchor), o = e.resolve(s);\n return r ? B.near(o) : new D(o);\n }\n content() {\n return new A(w.from(this.node), 0, 0);\n }\n eq(e) {\n return e instanceof D && e.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() {\n return new Si(this.anchor);\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new D(e.resolve(n.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(e, n) {\n return new D(e.resolve(n));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(e) {\n return !e.isText && e.type.spec.selectable !== !1;\n }\n}\nD.prototype.visible = !1;\nB.jsonID(\"node\", D);\nclass Si {\n constructor(e) {\n this.anchor = e;\n }\n map(e) {\n let { deleted: n, pos: r } = e.mapResult(this.anchor);\n return n ? new Bs(r, r) : new Si(r);\n }\n resolve(e) {\n let n = e.resolve(this.anchor), r = n.nodeAfter;\n return r && D.isSelectable(r) ? new D(n) : B.near(n);\n }\n}\nclass De extends B {\n /**\n Create an all-selection over the given document.\n */\n constructor(e) {\n super(e.resolve(0), e.resolve(e.content.size));\n }\n replace(e, n = A.empty) {\n if (n == A.empty) {\n e.delete(0, e.doc.content.size);\n let r = B.atStart(e.doc);\n r.eq(e.selection) || e.setSelection(r);\n } else\n super.replace(e, n);\n }\n toJSON() {\n return { type: \"all\" };\n }\n /**\n @internal\n */\n static fromJSON(e) {\n return new De(e);\n }\n map(e) {\n return new De(e);\n }\n eq(e) {\n return e instanceof De;\n }\n getBookmark() {\n return Oh;\n }\n}\nB.jsonID(\"all\", De);\nconst Oh = {\n map() {\n return this;\n },\n resolve(t) {\n return new De(t);\n }\n};\nfunction yn(t, e, n, r, s, o = !1) {\n if (e.inlineContent)\n return P.create(t, n);\n for (let i = r - (s > 0 ? 0 : 1); s > 0 ? i < e.childCount : i >= 0; i += s) {\n let l = e.child(i);\n if (l.isAtom) {\n if (!o && D.isSelectable(l))\n return D.create(t, n - (s < 0 ? l.nodeSize : 0));\n } else {\n let a = yn(t, l, n + s, s < 0 ? l.childCount : 0, s, o);\n if (a)\n return a;\n }\n n += l.nodeSize * s;\n }\n return null;\n}\nfunction El(t, e, n) {\n let r = t.steps.length - 1;\n if (r < e)\n return;\n let s = t.steps[r];\n if (!(s instanceof fe || s instanceof pe))\n return;\n let o = t.mapping.maps[r], i;\n o.forEach((l, a, c, d) => {\n i == null && (i = d);\n }), t.setSelection(B.near(t.doc.resolve(i), n));\n}\nconst Al = 1, br = 2, Nl = 4;\nclass Rh extends wi {\n /**\n @internal\n */\n constructor(e) {\n super(e.doc), this.curSelectionFor = 0, this.updated = 0, this.meta = /* @__PURE__ */ Object.create(null), this.time = Date.now(), this.curSelection = e.selection, this.storedMarks = e.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n return this.curSelectionFor < this.steps.length && (this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor)), this.curSelectionFor = this.steps.length), this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(e) {\n if (e.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n return this.curSelection = e, this.curSelectionFor = this.steps.length, this.updated = (this.updated | Al) & ~br, this.storedMarks = null, this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & Al) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(e) {\n return this.storedMarks = e, this.updated |= br, this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(e) {\n return K.sameSet(this.storedMarks || this.selection.$from.marks(), e) || this.setStoredMarks(e), this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(e) {\n return this.ensureMarks(e.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(e) {\n return this.ensureMarks(e.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & br) > 0;\n }\n /**\n @internal\n */\n addStep(e, n) {\n super.addStep(e, n), this.updated = this.updated & ~br, this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(e) {\n return this.time = e, this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(e) {\n return this.selection.replace(this, e), this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(e, n = !0) {\n let r = this.selection;\n return n && (e = e.mark(this.storedMarks || (r.empty ? r.$from.marks() : r.$from.marksAcross(r.$to) || K.none))), r.replaceWith(this, e), this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n return this.selection.replace(this), this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(e, n, r) {\n let s = this.doc.type.schema;\n if (n == null)\n return e ? this.replaceSelectionWith(s.text(e), !0) : this.deleteSelection();\n {\n if (r == null && (r = n), !e)\n return this.deleteRange(n, r);\n let o = this.storedMarks;\n if (!o) {\n let i = this.doc.resolve(n);\n o = r == n ? i.marks() : i.marksAcross(this.doc.resolve(r));\n }\n return this.replaceRangeWith(n, r, s.text(e, o)), !this.selection.empty && this.selection.to == n + e.length && this.setSelection(B.near(this.selection.$to)), this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(e, n) {\n return this.meta[typeof e == \"string\" ? e : e.key] = n, this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(e) {\n return this.meta[typeof e == \"string\" ? e : e.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let e in this.meta)\n return !1;\n return !0;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n return this.updated |= Nl, this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & Nl) > 0;\n }\n}\nfunction Ol(t, e) {\n return !e || !t ? t : t.bind(e);\n}\nclass _n {\n constructor(e, n, r) {\n this.name = e, this.init = Ol(n.init, r), this.apply = Ol(n.apply, r);\n }\n}\nconst Dh = [\n new _n(\"doc\", {\n init(t) {\n return t.doc || t.schema.topNodeType.createAndFill();\n },\n apply(t) {\n return t.doc;\n }\n }),\n new _n(\"selection\", {\n init(t, e) {\n return t.selection || B.atStart(e.doc);\n },\n apply(t) {\n return t.selection;\n }\n }),\n new _n(\"storedMarks\", {\n init(t) {\n return t.storedMarks || null;\n },\n apply(t, e, n, r) {\n return r.selection.$cursor ? t.storedMarks : null;\n }\n }),\n new _n(\"scrollToSelection\", {\n init() {\n return 0;\n },\n apply(t, e) {\n return t.scrolledIntoView ? e + 1 : e;\n }\n })\n];\nclass ro {\n constructor(e, n) {\n this.schema = e, this.plugins = [], this.pluginsByKey = /* @__PURE__ */ Object.create(null), this.fields = Dh.slice(), n && n.forEach((r) => {\n if (this.pluginsByKey[r.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + r.key + \")\");\n this.plugins.push(r), this.pluginsByKey[r.key] = r, r.spec.state && this.fields.push(new _n(r.key, r.spec.state, r));\n });\n }\n}\nclass wn {\n /**\n @internal\n */\n constructor(e) {\n this.config = e;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(e) {\n return this.applyTransaction(e).state;\n }\n /**\n @internal\n */\n filterTransaction(e, n = -1) {\n for (let r = 0; r < this.config.plugins.length; r++)\n if (r != n) {\n let s = this.config.plugins[r];\n if (s.spec.filterTransaction && !s.spec.filterTransaction.call(s, e, this))\n return !1;\n }\n return !0;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(e) {\n if (!this.filterTransaction(e))\n return { state: this, transactions: [] };\n let n = [e], r = this.applyInner(e), s = null;\n for (; ; ) {\n let o = !1;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let l = this.config.plugins[i];\n if (l.spec.appendTransaction) {\n let a = s ? s[i].n : 0, c = s ? s[i].state : this, d = a < n.length && l.spec.appendTransaction.call(l, a ? n.slice(a) : n, c, r);\n if (d && r.filterTransaction(d, i)) {\n if (d.setMeta(\"appendedTransaction\", e), !s) {\n s = [];\n for (let u = 0; u < this.config.plugins.length; u++)\n s.push(u < i ? { state: r, n: n.length } : { state: this, n: 0 });\n }\n n.push(d), r = r.applyInner(d), o = !0;\n }\n s && (s[i] = { state: r, n: n.length });\n }\n }\n if (!o)\n return { state: r, transactions: n };\n }\n }\n /**\n @internal\n */\n applyInner(e) {\n if (!e.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let n = new wn(this.config), r = this.config.fields;\n for (let s = 0; s < r.length; s++) {\n let o = r[s];\n n[o.name] = o.apply(e, this[o.name], this, n);\n }\n return n;\n }\n /**\n Accessor that constructs and returns a new [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() {\n return new Rh(this);\n }\n /**\n Create a new state.\n */\n static create(e) {\n let n = new ro(e.doc ? e.doc.type.schema : e.schema, e.plugins), r = new wn(n);\n for (let s = 0; s < n.fields.length; s++)\n r[n.fields[s].name] = n.fields[s].init(e, r);\n return r;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(e) {\n let n = new ro(this.schema, e.plugins), r = n.fields, s = new wn(n);\n for (let o = 0; o < r.length; o++) {\n let i = r[o].name;\n s[i] = this.hasOwnProperty(i) ? this[i] : r[o].init(e, s);\n }\n return s;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(e) {\n let n = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks && (n.storedMarks = this.storedMarks.map((r) => r.toJSON())), e && typeof e == \"object\")\n for (let r in e) {\n if (r == \"doc\" || r == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let s = e[r], o = s.spec.state;\n o && o.toJSON && (n[r] = o.toJSON.call(s, this[s.key]));\n }\n return n;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(e, n, r) {\n if (!n)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!e.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let s = new ro(e.schema, e.plugins), o = new wn(s);\n return s.fields.forEach((i) => {\n if (i.name == \"doc\")\n o.doc = _e.fromJSON(e.schema, n.doc);\n else if (i.name == \"selection\")\n o.selection = B.fromJSON(o.doc, n.selection);\n else if (i.name == \"storedMarks\")\n n.storedMarks && (o.storedMarks = n.storedMarks.map(e.schema.markFromJSON));\n else {\n if (r)\n for (let l in r) {\n let a = r[l], c = a.spec.state;\n if (a.key == i.name && c && c.fromJSON && Object.prototype.hasOwnProperty.call(n, l)) {\n o[i.name] = c.fromJSON.call(a, e, n[l], o);\n return;\n }\n }\n o[i.name] = i.init(e, o);\n }\n }), o;\n }\n}\nfunction Gc(t, e, n) {\n for (let r in t) {\n let s = t[r];\n s instanceof Function ? s = s.bind(e) : r == \"handleDOMEvents\" && (s = Gc(s, e, {})), n[r] = s;\n }\n return n;\n}\nclass ee {\n /**\n Create a plugin.\n */\n constructor(e) {\n this.spec = e, this.props = {}, e.props && Gc(e.props, this, this.props), this.key = e.key ? e.key.key : Yc(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(e) {\n return e[this.key];\n }\n}\nconst so = /* @__PURE__ */ Object.create(null);\nfunction Yc(t) {\n return t in so ? t + \"$\" + ++so[t] : (so[t] = 0, t + \"$\");\n}\nclass oe {\n /**\n Create a plugin key.\n */\n constructor(e = \"key\") {\n this.key = Yc(e);\n }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(e) {\n return e.config.pluginsByKey[this.key];\n }\n /**\n Get the plugin's state from an editor state.\n */\n getState(e) {\n return e[this.key];\n }\n}\nconst Ci = (t, e) => t.selection.empty ? !1 : (e && e(t.tr.deleteSelection().scrollIntoView()), !0);\nfunction Xc(t, e) {\n let { $cursor: n } = t.selection;\n return !n || (e ? !e.endOfTextblock(\"backward\", t) : n.parentOffset > 0) ? null : n;\n}\nconst Qc = (t, e, n) => {\n let r = Xc(t, n);\n if (!r)\n return !1;\n let s = vi(r);\n if (!s) {\n let i = r.blockRange(), l = i && Rn(i);\n return l == null ? !1 : (e && e(t.tr.lift(i, l).scrollIntoView()), !0);\n }\n let o = s.nodeBefore;\n if (ld(t, s, e, -1))\n return !0;\n if (r.parent.content.size == 0 && (Tn(o, \"end\") || D.isSelectable(o)))\n for (let i = r.depth; ; i--) {\n let l = zs(t.doc, r.before(i), r.after(i), A.empty);\n if (l && l.slice.size < l.to - l.from) {\n if (e) {\n let a = t.tr.step(l);\n a.setSelection(Tn(o, \"end\") ? B.findFrom(a.doc.resolve(a.mapping.map(s.pos, -1)), -1) : D.create(a.doc, s.pos - o.nodeSize)), e(a.scrollIntoView());\n }\n return !0;\n }\n if (i == 1 || r.node(i - 1).childCount > 1)\n break;\n }\n return o.isAtom && s.depth == r.depth - 1 ? (e && e(t.tr.delete(s.pos - o.nodeSize, s.pos).scrollIntoView()), !0) : !1;\n}, Ih = (t, e, n) => {\n let r = Xc(t, n);\n if (!r)\n return !1;\n let s = vi(r);\n return s ? Zc(t, s, e) : !1;\n}, Lh = (t, e, n) => {\n let r = td(t, n);\n if (!r)\n return !1;\n let s = Mi(r);\n return s ? Zc(t, s, e) : !1;\n};\nfunction Zc(t, e, n) {\n let r = e.nodeBefore, s = r, o = e.pos - 1;\n for (; !s.isTextblock; o--) {\n if (s.type.spec.isolating)\n return !1;\n let d = s.lastChild;\n if (!d)\n return !1;\n s = d;\n }\n let i = e.nodeAfter, l = i, a = e.pos + 1;\n for (; !l.isTextblock; a++) {\n if (l.type.spec.isolating)\n return !1;\n let d = l.firstChild;\n if (!d)\n return !1;\n l = d;\n }\n let c = zs(t.doc, o, a, A.empty);\n if (!c || c.from != o || c instanceof fe && c.slice.size >= a - o)\n return !1;\n if (n) {\n let d = t.tr.step(c);\n d.setSelection(P.create(d.doc, o)), n(d.scrollIntoView());\n }\n return !0;\n}\nfunction Tn(t, e, n = !1) {\n for (let r = t; r; r = e == \"start\" ? r.firstChild : r.lastChild) {\n if (r.isTextblock)\n return !0;\n if (n && r.childCount != 1)\n return !1;\n }\n return !1;\n}\nconst ed = (t, e, n) => {\n let { $head: r, empty: s } = t.selection, o = r;\n if (!s)\n return !1;\n if (r.parent.isTextblock) {\n if (n ? !n.endOfTextblock(\"backward\", t) : r.parentOffset > 0)\n return !1;\n o = vi(r);\n }\n let i = o && o.nodeBefore;\n return !i || !D.isSelectable(i) ? !1 : (e && e(t.tr.setSelection(D.create(t.doc, o.pos - i.nodeSize)).scrollIntoView()), !0);\n};\nfunction vi(t) {\n if (!t.parent.type.spec.isolating)\n for (let e = t.depth - 1; e >= 0; e--) {\n if (t.index(e) > 0)\n return t.doc.resolve(t.before(e + 1));\n if (t.node(e).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction td(t, e) {\n let { $cursor: n } = t.selection;\n return !n || (e ? !e.endOfTextblock(\"forward\", t) : n.parentOffset < n.parent.content.size) ? null : n;\n}\nconst nd = (t, e, n) => {\n let r = td(t, n);\n if (!r)\n return !1;\n let s = Mi(r);\n if (!s)\n return !1;\n let o = s.nodeAfter;\n if (ld(t, s, e, 1))\n return !0;\n if (r.parent.content.size == 0 && (Tn(o, \"start\") || D.isSelectable(o))) {\n let i = zs(t.doc, r.before(), r.after(), A.empty);\n if (i && i.slice.size < i.to - i.from) {\n if (e) {\n let l = t.tr.step(i);\n l.setSelection(Tn(o, \"start\") ? B.findFrom(l.doc.resolve(l.mapping.map(s.pos)), 1) : D.create(l.doc, l.mapping.map(s.pos))), e(l.scrollIntoView());\n }\n return !0;\n }\n }\n return o.isAtom && s.depth == r.depth - 1 ? (e && e(t.tr.delete(s.pos, s.pos + o.nodeSize).scrollIntoView()), !0) : !1;\n}, rd = (t, e, n) => {\n let { $head: r, empty: s } = t.selection, o = r;\n if (!s)\n return !1;\n if (r.parent.isTextblock) {\n if (n ? !n.endOfTextblock(\"forward\", t) : r.parentOffset < r.parent.content.size)\n return !1;\n o = Mi(r);\n }\n let i = o && o.nodeAfter;\n return !i || !D.isSelectable(i) ? !1 : (e && e(t.tr.setSelection(D.create(t.doc, o.pos)).scrollIntoView()), !0);\n};\nfunction Mi(t) {\n if (!t.parent.type.spec.isolating)\n for (let e = t.depth - 1; e >= 0; e--) {\n let n = t.node(e);\n if (t.index(e) + 1 < n.childCount)\n return t.doc.resolve(t.after(e + 1));\n if (n.type.spec.isolating)\n break;\n }\n return null;\n}\nconst Ph = (t, e) => {\n let n = t.selection, r = n instanceof D, s;\n if (r) {\n if (n.node.isTextblock || !Ht(t.doc, n.from))\n return !1;\n s = n.from;\n } else if (s = Ps(t.doc, n.from, -1), s == null)\n return !1;\n if (e) {\n let o = t.tr.join(s);\n r && o.setSelection(D.create(o.doc, s - t.doc.resolve(s).nodeBefore.nodeSize)), e(o.scrollIntoView());\n }\n return !0;\n}, zh = (t, e) => {\n let n = t.selection, r;\n if (n instanceof D) {\n if (n.node.isTextblock || !Ht(t.doc, n.to))\n return !1;\n r = n.to;\n } else if (r = Ps(t.doc, n.to, 1), r == null)\n return !1;\n return e && e(t.tr.join(r).scrollIntoView()), !0;\n}, Bh = (t, e) => {\n let { $from: n, $to: r } = t.selection, s = n.blockRange(r), o = s && Rn(s);\n return o == null ? !1 : (e && e(t.tr.lift(s, o).scrollIntoView()), !0);\n}, sd = (t, e) => {\n let { $head: n, $anchor: r } = t.selection;\n return !n.parent.type.spec.code || !n.sameParent(r) ? !1 : (e && e(t.tr.insertText(`\n`).scrollIntoView()), !0);\n};\nfunction Ti(t) {\n for (let e = 0; e < t.edgeCount; e++) {\n let { type: n } = t.edge(e);\n if (n.isTextblock && !n.hasRequiredAttrs())\n return n;\n }\n return null;\n}\nconst $h = (t, e) => {\n let { $head: n, $anchor: r } = t.selection;\n if (!n.parent.type.spec.code || !n.sameParent(r))\n return !1;\n let s = n.node(-1), o = n.indexAfter(-1), i = Ti(s.contentMatchAt(o));\n if (!i || !s.canReplaceWith(o, o, i))\n return !1;\n if (e) {\n let l = n.after(), a = t.tr.replaceWith(l, l, i.createAndFill());\n a.setSelection(B.near(a.doc.resolve(l), 1)), e(a.scrollIntoView());\n }\n return !0;\n}, od = (t, e) => {\n let n = t.selection, { $from: r, $to: s } = n;\n if (n instanceof De || r.parent.inlineContent || s.parent.inlineContent)\n return !1;\n let o = Ti(s.parent.contentMatchAt(s.indexAfter()));\n if (!o || !o.isTextblock)\n return !1;\n if (e) {\n let i = (!r.parentOffset && s.index() < s.parent.childCount ? r : s).pos, l = t.tr.insert(i, o.createAndFill());\n l.setSelection(P.create(l.doc, i + 1)), e(l.scrollIntoView());\n }\n return !0;\n}, id = (t, e) => {\n let { $cursor: n } = t.selection;\n if (!n || n.parent.content.size)\n return !1;\n if (n.depth > 1 && n.after() != n.end(-1)) {\n let o = n.before();\n if (mt(t.doc, o))\n return e && e(t.tr.split(o).scrollIntoView()), !0;\n }\n let r = n.blockRange(), s = r && Rn(r);\n return s == null ? !1 : (e && e(t.tr.lift(r, s).scrollIntoView()), !0);\n};\nfunction Hh(t) {\n return (e, n) => {\n let { $from: r, $to: s } = e.selection;\n if (e.selection instanceof D && e.selection.node.isBlock)\n return !r.parentOffset || !mt(e.doc, r.pos) ? !1 : (n && n(e.tr.split(r.pos).scrollIntoView()), !0);\n if (!r.depth)\n return !1;\n let o = [], i, l, a = !1, c = !1;\n for (let h = r.depth; ; h--)\n if (r.node(h).isBlock) {\n a = r.end(h) == r.pos + (r.depth - h), c = r.start(h) == r.pos - (r.depth - h), l = Ti(r.node(h - 1).contentMatchAt(r.indexAfter(h - 1))), o.unshift(a && l ? { type: l } : null), i = h;\n break;\n } else {\n if (h == 1)\n return !1;\n o.unshift(null);\n }\n let d = e.tr;\n (e.selection instanceof P || e.selection instanceof De) && d.deleteSelection();\n let u = d.mapping.map(r.pos), f = mt(d.doc, u, o.length, o);\n if (f || (o[0] = l ? { type: l } : null, f = mt(d.doc, u, o.length, o)), !f)\n return !1;\n if (d.split(u, o.length, o), !a && c && r.node(i).type != l) {\n let h = d.mapping.map(r.before(i)), p = d.doc.resolve(h);\n l && r.node(i - 1).canReplaceWith(p.index(), p.index() + 1, l) && d.setNodeMarkup(d.mapping.map(r.before(i)), l);\n }\n return n && n(d.scrollIntoView()), !0;\n };\n}\nconst _h = Hh(), jh = (t, e) => {\n let { $from: n, to: r } = t.selection, s, o = n.sharedDepth(r);\n return o == 0 ? !1 : (s = n.before(o), e && e(t.tr.setSelection(D.create(t.doc, s))), !0);\n};\nfunction Vh(t, e, n) {\n let r = e.nodeBefore, s = e.nodeAfter, o = e.index();\n return !r || !s || !r.type.compatibleContent(s.type) ? !1 : !r.content.size && e.parent.canReplace(o - 1, o) ? (n && n(t.tr.delete(e.pos - r.nodeSize, e.pos).scrollIntoView()), !0) : !e.parent.canReplace(o, o + 1) || !(s.isTextblock || Ht(t.doc, e.pos)) ? !1 : (n && n(t.tr.join(e.pos).scrollIntoView()), !0);\n}\nfunction ld(t, e, n, r) {\n let s = e.nodeBefore, o = e.nodeAfter, i, l, a = s.type.spec.isolating || o.type.spec.isolating;\n if (!a && Vh(t, e, n))\n return !0;\n let c = !a && e.parent.canReplace(e.index(), e.index() + 1);\n if (c && (i = (l = s.contentMatchAt(s.childCount)).findWrapping(o.type)) && l.matchType(i[0] || o.type).validEnd) {\n if (n) {\n let h = e.pos + o.nodeSize, p = w.empty;\n for (let y = i.length - 1; y >= 0; y--)\n p = w.from(i[y].create(null, p));\n p = w.from(s.copy(p));\n let m = t.tr.step(new pe(e.pos - 1, h, e.pos, h, new A(p, 1, 0), i.length, !0)), g = m.doc.resolve(h + 2 * i.length);\n g.nodeAfter && g.nodeAfter.type == s.type && Ht(m.doc, g.pos) && m.join(g.pos), n(m.scrollIntoView());\n }\n return !0;\n }\n let d = o.type.spec.isolating || r > 0 && a ? null : B.findFrom(e, 1), u = d && d.$from.blockRange(d.$to), f = u && Rn(u);\n if (f != null && f >= e.depth)\n return n && n(t.tr.lift(u, f).scrollIntoView()), !0;\n if (c && Tn(o, \"start\", !0) && Tn(s, \"end\")) {\n let h = s, p = [];\n for (; p.push(h), !h.isTextblock; )\n h = h.lastChild;\n let m = o, g = 1;\n for (; !m.isTextblock; m = m.firstChild)\n g++;\n if (h.canReplace(h.childCount, h.childCount, m.content)) {\n if (n) {\n let y = w.empty;\n for (let k = p.length - 1; k >= 0; k--)\n y = w.from(p[k].copy(y));\n let x = t.tr.step(new pe(e.pos - p.length, e.pos + o.nodeSize, e.pos + g, e.pos + o.nodeSize - g, new A(y, p.length, 0), 0, !0));\n n(x.scrollIntoView());\n }\n return !0;\n }\n }\n return !1;\n}\nfunction ad(t) {\n return function(e, n) {\n let r = e.selection, s = t < 0 ? r.$from : r.$to, o = s.depth;\n for (; s.node(o).isInline; ) {\n if (!o)\n return !1;\n o--;\n }\n return s.node(o).isTextblock ? (n && n(e.tr.setSelection(P.create(e.doc, t < 0 ? s.start(o) : s.end(o)))), !0) : !1;\n };\n}\nconst Fh = ad(-1), Wh = ad(1);\nfunction Uh(t, e = null) {\n return function(n, r) {\n let { $from: s, $to: o } = n.selection, i = s.blockRange(o), l = i && xi(i, t, e);\n return l ? (r && r(n.tr.wrap(i, l).scrollIntoView()), !0) : !1;\n };\n}\nfunction Rl(t, e = null) {\n return function(n, r) {\n let s = !1;\n for (let o = 0; o < n.selection.ranges.length && !s; o++) {\n let { $from: { pos: i }, $to: { pos: l } } = n.selection.ranges[o];\n n.doc.nodesBetween(i, l, (a, c) => {\n if (s)\n return !1;\n if (!(!a.isTextblock || a.hasMarkup(t, e)))\n if (a.type == t)\n s = !0;\n else {\n let d = n.doc.resolve(c), u = d.index();\n s = d.parent.canReplaceWith(u, u + 1, t);\n }\n });\n }\n if (!s)\n return !1;\n if (r) {\n let o = n.tr;\n for (let i = 0; i < n.selection.ranges.length; i++) {\n let { $from: { pos: l }, $to: { pos: a } } = n.selection.ranges[i];\n o.setBlockType(l, a, t, e);\n }\n r(o.scrollIntoView());\n }\n return !0;\n };\n}\nfunction Ei(...t) {\n return function(e, n, r) {\n for (let s = 0; s < t.length; s++)\n if (t[s](e, n, r))\n return !0;\n return !1;\n };\n}\nEi(Ci, Qc, ed);\nEi(Ci, nd, rd);\nEi(sd, od, id, _h);\ntypeof navigator < \"u\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : typeof os < \"u\" && os.platform && os.platform() == \"darwin\";\nfunction Kh(t, e = null) {\n return function(n, r) {\n let { $from: s, $to: o } = n.selection, i = s.blockRange(o);\n if (!i)\n return !1;\n let l = r ? n.tr : null;\n return qh(l, i, t, e) ? (r && r(l.scrollIntoView()), !0) : !1;\n };\n}\nfunction qh(t, e, n, r = null) {\n let s = !1, o = e, i = e.$from.doc;\n if (e.depth >= 2 && e.$from.node(e.depth - 1).type.compatibleContent(n) && e.startIndex == 0) {\n if (e.$from.index(e.depth - 1) == 0)\n return !1;\n let a = i.resolve(e.start - 2);\n o = new Kr(a, a, e.depth), e.endIndex < e.parent.childCount && (e = new Kr(e.$from, i.resolve(e.$to.end(e.depth)), e.depth)), s = !0;\n }\n let l = xi(o, n, r, e);\n return l ? (t && Jh(t, e, l, s, n), !0) : !1;\n}\nfunction Jh(t, e, n, r, s) {\n let o = w.empty;\n for (let d = n.length - 1; d >= 0; d--)\n o = w.from(n[d].type.create(n[d].attrs, o));\n t.step(new pe(e.start - (r ? 2 : 0), e.end, e.start, e.end, new A(o, 0, 0), n.length, !0));\n let i = 0;\n for (let d = 0; d < n.length; d++)\n n[d].type == s && (i = d + 1);\n let l = n.length - i, a = e.start + n.length - (r ? 2 : 0), c = e.parent;\n for (let d = e.startIndex, u = e.endIndex, f = !0; d < u; d++, f = !1)\n !f && mt(t.doc, a, l) && (t.split(a, l), a += 2 * l), a += c.child(d).nodeSize;\n return t;\n}\nfunction Gh(t) {\n return function(e, n) {\n let { $from: r, $to: s } = e.selection, o = r.blockRange(s, (i) => i.childCount > 0 && i.firstChild.type == t);\n return o ? n ? r.node(o.depth - 1).type == t ? Yh(e, n, t, o) : Xh(e, n, o) : !0 : !1;\n };\n}\nfunction Yh(t, e, n, r) {\n let s = t.tr, o = r.end, i = r.$to.end(r.depth);\n o < i && (s.step(new pe(o - 1, i, o, i, new A(w.from(n.create(null, r.parent.copy())), 1, 0), 1, !0)), r = new Kr(s.doc.resolve(r.$from.pos), s.doc.resolve(i), r.depth));\n const l = Rn(r);\n if (l == null)\n return !1;\n s.lift(r, l);\n let a = s.doc.resolve(s.mapping.map(o, -1) - 1);\n return Ht(s.doc, a.pos) && a.nodeBefore.type == a.nodeAfter.type && s.join(a.pos), e(s.scrollIntoView()), !0;\n}\nfunction Xh(t, e, n) {\n let r = t.tr, s = n.parent;\n for (let h = n.end, p = n.endIndex - 1, m = n.startIndex; p > m; p--)\n h -= s.child(p).nodeSize, r.delete(h - 1, h + 1);\n let o = r.doc.resolve(n.start), i = o.nodeAfter;\n if (r.mapping.map(n.end) != n.start + o.nodeAfter.nodeSize)\n return !1;\n let l = n.startIndex == 0, a = n.endIndex == s.childCount, c = o.node(-1), d = o.index(-1);\n if (!c.canReplace(d + (l ? 0 : 1), d + 1, i.content.append(a ? w.empty : w.from(s))))\n return !1;\n let u = o.pos, f = u + i.nodeSize;\n return r.step(new pe(u - (l ? 1 : 0), f + (a ? 1 : 0), u + 1, f - 1, new A((l ? w.empty : w.from(s.copy(w.empty))).append(a ? w.empty : w.from(s.copy(w.empty))), l ? 0 : 1, a ? 0 : 1), l ? 0 : 1)), e(r.scrollIntoView()), !0;\n}\nfunction Qh(t) {\n return function(e, n) {\n let { $from: r, $to: s } = e.selection, o = r.blockRange(s, (c) => c.childCount > 0 && c.firstChild.type == t);\n if (!o)\n return !1;\n let i = o.startIndex;\n if (i == 0)\n return !1;\n let l = o.parent, a = l.child(i - 1);\n if (a.type != t)\n return !1;\n if (n) {\n let c = a.lastChild && a.lastChild.type == l.type, d = w.from(c ? t.create() : null), u = new A(w.from(t.create(null, w.from(l.type.create(null, d)))), c ? 3 : 1, 0), f = o.start, h = o.end;\n n(e.tr.step(new pe(f - (c ? 3 : 1), h, f, h, u, 1, !0)).scrollIntoView());\n }\n return !0;\n };\n}\nconst be = function(t) {\n for (var e = 0; ; e++)\n if (t = t.previousSibling, !t)\n return e;\n}, En = function(t) {\n let e = t.assignedSlot || t.parentNode;\n return e && e.nodeType == 11 ? e.host : e;\n};\nlet Ho = null;\nconst ht = function(t, e, n) {\n let r = Ho || (Ho = document.createRange());\n return r.setEnd(t, n ?? t.nodeValue.length), r.setStart(t, e || 0), r;\n}, Zh = function() {\n Ho = null;\n}, nn = function(t, e, n, r) {\n return n && (Dl(t, e, n, r, -1) || Dl(t, e, n, r, 1));\n}, ep = /^(img|br|input|textarea|hr)$/i;\nfunction Dl(t, e, n, r, s) {\n for (var o; ; ) {\n if (t == n && e == r)\n return !0;\n if (e == (s < 0 ? 0 : He(t))) {\n let i = t.parentNode;\n if (!i || i.nodeType != 1 || ur(t) || ep.test(t.nodeName) || t.contentEditable == \"false\")\n return !1;\n e = be(t) + (s < 0 ? 0 : 1), t = i;\n } else if (t.nodeType == 1) {\n let i = t.childNodes[e + (s < 0 ? -1 : 0)];\n if (i.nodeType == 1 && i.contentEditable == \"false\")\n if (!((o = i.pmViewDesc) === null || o === void 0) && o.ignoreForSelection)\n e += s;\n else\n return !1;\n else\n t = i, e = s < 0 ? He(t) : 0;\n } else\n return !1;\n }\n}\nfunction He(t) {\n return t.nodeType == 3 ? t.nodeValue.length : t.childNodes.length;\n}\nfunction tp(t, e) {\n for (; ; ) {\n if (t.nodeType == 3 && e)\n return t;\n if (t.nodeType == 1 && e > 0) {\n if (t.contentEditable == \"false\")\n return null;\n t = t.childNodes[e - 1], e = He(t);\n } else if (t.parentNode && !ur(t))\n e = be(t), t = t.parentNode;\n else\n return null;\n }\n}\nfunction np(t, e) {\n for (; ; ) {\n if (t.nodeType == 3 && e < t.nodeValue.length)\n return t;\n if (t.nodeType == 1 && e < t.childNodes.length) {\n if (t.contentEditable == \"false\")\n return null;\n t = t.childNodes[e], e = 0;\n } else if (t.parentNode && !ur(t))\n e = be(t) + 1, t = t.parentNode;\n else\n return null;\n }\n}\nfunction rp(t, e, n) {\n for (let r = e == 0, s = e == He(t); r || s; ) {\n if (t == n)\n return !0;\n let o = be(t);\n if (t = t.parentNode, !t)\n return !1;\n r = r && o == 0, s = s && o == He(t);\n }\n}\nfunction ur(t) {\n let e;\n for (let n = t; n && !(e = n.pmViewDesc); n = n.parentNode)\n ;\n return e && e.node && e.node.isBlock && (e.dom == t || e.contentDOM == t);\n}\nconst $s = function(t) {\n return t.focusNode && nn(t.focusNode, t.focusOffset, t.anchorNode, t.anchorOffset);\n};\nfunction Ft(t, e) {\n let n = document.createEvent(\"Event\");\n return n.initEvent(\"keydown\", !0, !0), n.keyCode = t, n.key = n.code = e, n;\n}\nfunction sp(t) {\n let e = t.activeElement;\n for (; e && e.shadowRoot; )\n e = e.shadowRoot.activeElement;\n return e;\n}\nfunction op(t, e, n) {\n if (t.caretPositionFromPoint)\n try {\n let r = t.caretPositionFromPoint(e, n);\n if (r)\n return { node: r.offsetNode, offset: Math.min(He(r.offsetNode), r.offset) };\n } catch {\n }\n if (t.caretRangeFromPoint) {\n let r = t.caretRangeFromPoint(e, n);\n if (r)\n return { node: r.startContainer, offset: Math.min(He(r.startContainer), r.startOffset) };\n }\n}\nconst nt = typeof navigator < \"u\" ? navigator : null, Il = typeof document < \"u\" ? document : null, _t = nt && nt.userAgent || \"\", _o = /Edge\\/(\\d+)/.exec(_t), cd = /MSIE \\d/.exec(_t), jo = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(_t), Ne = !!(cd || jo || _o), Dt = cd ? document.documentMode : jo ? +jo[1] : _o ? +_o[1] : 0, je = !Ne && /gecko\\/(\\d+)/i.test(_t);\nje && +(/Firefox\\/(\\d+)/.exec(_t) || [0, 0])[1];\nconst Vo = !Ne && /Chrome\\/(\\d+)/.exec(_t), we = !!Vo, dd = Vo ? +Vo[1] : 0, ve = !Ne && !!nt && /Apple Computer/.test(nt.vendor), An = ve && (/Mobile\\/\\w+/.test(_t) || !!nt && nt.maxTouchPoints > 2), $e = An || (nt ? /Mac/.test(nt.platform) : !1), ip = nt ? /Win/.test(nt.platform) : !1, pt = /Android \\d/.test(_t), fr = !!Il && \"webkitFontSmoothing\" in Il.documentElement.style, lp = fr ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\nfunction ap(t) {\n let e = t.defaultView && t.defaultView.visualViewport;\n return e ? {\n left: 0,\n right: e.width,\n top: 0,\n bottom: e.height\n } : {\n left: 0,\n right: t.documentElement.clientWidth,\n top: 0,\n bottom: t.documentElement.clientHeight\n };\n}\nfunction lt(t, e) {\n return typeof t == \"number\" ? t : t[e];\n}\nfunction cp(t) {\n let e = t.getBoundingClientRect(), n = e.width / t.offsetWidth || 1, r = e.height / t.offsetHeight || 1;\n return {\n left: e.left,\n right: e.left + t.clientWidth * n,\n top: e.top,\n bottom: e.top + t.clientHeight * r\n };\n}\nfunction Ll(t, e, n) {\n let r = t.someProp(\"scrollThreshold\") || 0, s = t.someProp(\"scrollMargin\") || 5, o = t.dom.ownerDocument;\n for (let i = n || t.dom; i; ) {\n if (i.nodeType != 1) {\n i = En(i);\n continue;\n }\n let l = i, a = l == o.body, c = a ? ap(o) : cp(l), d = 0, u = 0;\n if (e.top < c.top + lt(r, \"top\") ? u = -(c.top - e.top + lt(s, \"top\")) : e.bottom > c.bottom - lt(r, \"bottom\") && (u = e.bottom - e.top > c.bottom - c.top ? e.top + lt(s, \"top\") - c.top : e.bottom - c.bottom + lt(s, \"bottom\")), e.left < c.left + lt(r, \"left\") ? d = -(c.left - e.left + lt(s, \"left\")) : e.right > c.right - lt(r, \"right\") && (d = e.right - c.right + lt(s, \"right\")), d || u)\n if (a)\n o.defaultView.scrollBy(d, u);\n else {\n let h = l.scrollLeft, p = l.scrollTop;\n u && (l.scrollTop += u), d && (l.scrollLeft += d);\n let m = l.scrollLeft - h, g = l.scrollTop - p;\n e = { left: e.left - m, top: e.top - g, right: e.right - m, bottom: e.bottom - g };\n }\n let f = a ? \"fixed\" : getComputedStyle(i).position;\n if (/^(fixed|sticky)$/.test(f))\n break;\n i = f == \"absolute\" ? i.offsetParent : En(i);\n }\n}\nfunction dp(t) {\n let e = t.dom.getBoundingClientRect(), n = Math.max(0, e.top), r, s;\n for (let o = (e.left + e.right) / 2, i = n + 1; i < Math.min(innerHeight, e.bottom); i += 5) {\n let l = t.root.elementFromPoint(o, i);\n if (!l || l == t.dom || !t.dom.contains(l))\n continue;\n let a = l.getBoundingClientRect();\n if (a.top >= n - 20) {\n r = l, s = a.top;\n break;\n }\n }\n return { refDOM: r, refTop: s, stack: ud(t.dom) };\n}\nfunction ud(t) {\n let e = [], n = t.ownerDocument;\n for (let r = t; r && (e.push({ dom: r, top: r.scrollTop, left: r.scrollLeft }), t != n); r = En(r))\n ;\n return e;\n}\nfunction up({ refDOM: t, refTop: e, stack: n }) {\n let r = t ? t.getBoundingClientRect().top : 0;\n fd(n, r == 0 ? 0 : r - e);\n}\nfunction fd(t, e) {\n for (let n = 0; n < t.length; n++) {\n let { dom: r, top: s, left: o } = t[n];\n r.scrollTop != s + e && (r.scrollTop = s + e), r.scrollLeft != o && (r.scrollLeft = o);\n }\n}\nlet pn = null;\nfunction fp(t) {\n if (t.setActive)\n return t.setActive();\n if (pn)\n return t.focus(pn);\n let e = ud(t);\n t.focus(pn == null ? {\n get preventScroll() {\n return pn = { preventScroll: !0 }, !0;\n }\n } : void 0), pn || (pn = !1, fd(e, 0));\n}\nfunction hd(t, e) {\n let n, r = 2e8, s, o = 0, i = e.top, l = e.top, a, c;\n for (let d = t.firstChild, u = 0; d; d = d.nextSibling, u++) {\n let f;\n if (d.nodeType == 1)\n f = d.getClientRects();\n else if (d.nodeType == 3)\n f = ht(d).getClientRects();\n else\n continue;\n for (let h = 0; h < f.length; h++) {\n let p = f[h];\n if (p.top <= i && p.bottom >= l) {\n i = Math.max(p.bottom, i), l = Math.min(p.top, l);\n let m = p.left > e.left ? p.left - e.left : p.right < e.left ? e.left - p.right : 0;\n if (m < r) {\n n = d, r = m, s = m && n.nodeType == 3 ? {\n left: p.right < e.left ? p.right : p.left,\n top: e.top\n } : e, d.nodeType == 1 && m && (o = u + (e.left >= (p.left + p.right) / 2 ? 1 : 0));\n continue;\n }\n } else p.top > e.top && !a && p.left <= e.left && p.right >= e.left && (a = d, c = { left: Math.max(p.left, Math.min(p.right, e.left)), top: p.top });\n !n && (e.left >= p.right && e.top >= p.top || e.left >= p.left && e.top >= p.bottom) && (o = u + 1);\n }\n }\n return !n && a && (n = a, s = c, r = 0), n && n.nodeType == 3 ? hp(n, s) : !n || r && n.nodeType == 1 ? { node: t, offset: o } : hd(n, s);\n}\nfunction hp(t, e) {\n let n = t.nodeValue.length, r = document.createRange();\n for (let s = 0; s < n; s++) {\n r.setEnd(t, s + 1), r.setStart(t, s);\n let o = wt(r, 1);\n if (o.top != o.bottom && Ai(e, o))\n return { node: t, offset: s + (e.left >= (o.left + o.right) / 2 ? 1 : 0) };\n }\n return { node: t, offset: 0 };\n}\nfunction Ai(t, e) {\n return t.left >= e.left - 1 && t.left <= e.right + 1 && t.top >= e.top - 1 && t.top <= e.bottom + 1;\n}\nfunction pp(t, e) {\n let n = t.parentNode;\n return n && /^li$/i.test(n.nodeName) && e.left < t.getBoundingClientRect().left ? n : t;\n}\nfunction mp(t, e, n) {\n let { node: r, offset: s } = hd(e, n), o = -1;\n if (r.nodeType == 1 && !r.firstChild) {\n let i = r.getBoundingClientRect();\n o = i.left != i.right && n.left > (i.left + i.right) / 2 ? 1 : -1;\n }\n return t.docView.posFromDOM(r, s, o);\n}\nfunction gp(t, e, n, r) {\n let s = -1;\n for (let o = e, i = !1; o != t.dom; ) {\n let l = t.docView.nearestDesc(o, !0), a;\n if (!l)\n return null;\n if (l.dom.nodeType == 1 && (l.node.isBlock && l.parent || !l.contentDOM) && // Ignore elements with zero-size bounding rectangles\n ((a = l.dom.getBoundingClientRect()).width || a.height) && (l.node.isBlock && l.parent && !/^T(R|BODY|HEAD|FOOT)$/.test(l.dom.nodeName) && (!i && a.left > r.left || a.top > r.top ? s = l.posBefore : (!i && a.right < r.left || a.bottom < r.top) && (s = l.posAfter), i = !0), !l.contentDOM && s < 0 && !l.node.isText))\n return (l.node.isBlock ? r.top < (a.top + a.bottom) / 2 : r.left < (a.left + a.right) / 2) ? l.posBefore : l.posAfter;\n o = l.dom.parentNode;\n }\n return s > -1 ? s : t.docView.posFromDOM(e, n, -1);\n}\nfunction pd(t, e, n) {\n let r = t.childNodes.length;\n if (r && n.top < n.bottom)\n for (let s = Math.max(0, Math.min(r - 1, Math.floor(r * (e.top - n.top) / (n.bottom - n.top)) - 2)), o = s; ; ) {\n let i = t.childNodes[o];\n if (i.nodeType == 1) {\n let l = i.getClientRects();\n for (let a = 0; a < l.length; a++) {\n let c = l[a];\n if (Ai(e, c))\n return pd(i, e, c);\n }\n }\n if ((o = (o + 1) % r) == s)\n break;\n }\n return t;\n}\nfunction yp(t, e) {\n let n = t.dom.ownerDocument, r, s = 0, o = op(n, e.left, e.top);\n o && ({ node: r, offset: s } = o);\n let i = (t.root.elementFromPoint ? t.root : n).elementFromPoint(e.left, e.top), l;\n if (!i || !t.dom.contains(i.nodeType != 1 ? i.parentNode : i)) {\n let c = t.dom.getBoundingClientRect();\n if (!Ai(e, c) || (i = pd(t.dom, e, c), !i))\n return null;\n }\n if (ve)\n for (let c = i; r && c; c = En(c))\n c.draggable && (r = void 0);\n if (i = pp(i, e), r) {\n if (je && r.nodeType == 1 && (s = Math.min(s, r.childNodes.length), s < r.childNodes.length)) {\n let d = r.childNodes[s], u;\n d.nodeName == \"IMG\" && (u = d.getBoundingClientRect()).right <= e.left && u.bottom > e.top && s++;\n }\n let c;\n fr && s && r.nodeType == 1 && (c = r.childNodes[s - 1]).nodeType == 1 && c.contentEditable == \"false\" && c.getBoundingClientRect().top >= e.top && s--, r == t.dom && s == r.childNodes.length - 1 && r.lastChild.nodeType == 1 && e.top > r.lastChild.getBoundingClientRect().bottom ? l = t.state.doc.content.size : (s == 0 || r.nodeType != 1 || r.childNodes[s - 1].nodeName != \"BR\") && (l = gp(t, r, s, e));\n }\n l == null && (l = mp(t, i, e));\n let a = t.docView.nearestDesc(i, !0);\n return { pos: l, inside: a ? a.posAtStart - a.border : -1 };\n}\nfunction Pl(t) {\n return t.top < t.bottom || t.left < t.right;\n}\nfunction wt(t, e) {\n let n = t.getClientRects();\n if (n.length) {\n let r = n[e < 0 ? 0 : n.length - 1];\n if (Pl(r))\n return r;\n }\n return Array.prototype.find.call(n, Pl) || t.getBoundingClientRect();\n}\nconst bp = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nfunction md(t, e, n) {\n let { node: r, offset: s, atom: o } = t.docView.domFromPos(e, n < 0 ? -1 : 1), i = fr || je;\n if (r.nodeType == 3)\n if (i && (bp.test(r.nodeValue) || (n < 0 ? !s : s == r.nodeValue.length))) {\n let a = wt(ht(r, s, s), n);\n if (je && s && /\\s/.test(r.nodeValue[s - 1]) && s < r.nodeValue.length) {\n let c = wt(ht(r, s - 1, s - 1), -1);\n if (c.top == a.top) {\n let d = wt(ht(r, s, s + 1), -1);\n if (d.top != a.top)\n return Pn(d, d.left < c.left);\n }\n }\n return a;\n } else {\n let a = s, c = s, d = n < 0 ? 1 : -1;\n return n < 0 && !s ? (c++, d = -1) : n >= 0 && s == r.nodeValue.length ? (a--, d = 1) : n < 0 ? a-- : c++, Pn(wt(ht(r, a, c), d), d < 0);\n }\n if (!t.state.doc.resolve(e - (o || 0)).parent.inlineContent) {\n if (o == null && s && (n < 0 || s == He(r))) {\n let a = r.childNodes[s - 1];\n if (a.nodeType == 1)\n return oo(a.getBoundingClientRect(), !1);\n }\n if (o == null && s < He(r)) {\n let a = r.childNodes[s];\n if (a.nodeType == 1)\n return oo(a.getBoundingClientRect(), !0);\n }\n return oo(r.getBoundingClientRect(), n >= 0);\n }\n if (o == null && s && (n < 0 || s == He(r))) {\n let a = r.childNodes[s - 1], c = a.nodeType == 3 ? ht(a, He(a) - (i ? 0 : 1)) : a.nodeType == 1 && (a.nodeName != \"BR\" || !a.nextSibling) ? a : null;\n if (c)\n return Pn(wt(c, 1), !1);\n }\n if (o == null && s < He(r)) {\n let a = r.childNodes[s];\n for (; a.pmViewDesc && a.pmViewDesc.ignoreForCoords; )\n a = a.nextSibling;\n let c = a ? a.nodeType == 3 ? ht(a, 0, i ? 0 : 1) : a.nodeType == 1 ? a : null : null;\n if (c)\n return Pn(wt(c, -1), !0);\n }\n return Pn(wt(r.nodeType == 3 ? ht(r) : r, -n), n >= 0);\n}\nfunction Pn(t, e) {\n if (t.width == 0)\n return t;\n let n = e ? t.left : t.right;\n return { top: t.top, bottom: t.bottom, left: n, right: n };\n}\nfunction oo(t, e) {\n if (t.height == 0)\n return t;\n let n = e ? t.top : t.bottom;\n return { top: n, bottom: n, left: t.left, right: t.right };\n}\nfunction gd(t, e, n) {\n let r = t.state, s = t.root.activeElement;\n r != e && t.updateState(e), s != t.dom && t.focus();\n try {\n return n();\n } finally {\n r != e && t.updateState(r), s != t.dom && s && s.focus();\n }\n}\nfunction kp(t, e, n) {\n let r = e.selection, s = n == \"up\" ? r.$from : r.$to;\n return gd(t, e, () => {\n let { node: o } = t.docView.domFromPos(s.pos, n == \"up\" ? -1 : 1);\n for (; ; ) {\n let l = t.docView.nearestDesc(o, !0);\n if (!l)\n break;\n if (l.node.isBlock) {\n o = l.contentDOM || l.dom;\n break;\n }\n o = l.dom.parentNode;\n }\n let i = md(t, s.pos, 1);\n for (let l = o.firstChild; l; l = l.nextSibling) {\n let a;\n if (l.nodeType == 1)\n a = l.getClientRects();\n else if (l.nodeType == 3)\n a = ht(l, 0, l.nodeValue.length).getClientRects();\n else\n continue;\n for (let c = 0; c < a.length; c++) {\n let d = a[c];\n if (d.bottom > d.top + 1 && (n == \"up\" ? i.top - d.top > (d.bottom - i.top) * 2 : d.bottom - i.bottom > (i.bottom - d.top) * 2))\n return !1;\n }\n }\n return !0;\n });\n}\nconst xp = /[\\u0590-\\u08ac]/;\nfunction wp(t, e, n) {\n let { $head: r } = e.selection;\n if (!r.parent.isTextblock)\n return !1;\n let s = r.parentOffset, o = !s, i = s == r.parent.content.size, l = t.domSelection();\n return l ? !xp.test(r.parent.textContent) || !l.modify ? n == \"left\" || n == \"backward\" ? o : i : gd(t, e, () => {\n let { focusNode: a, focusOffset: c, anchorNode: d, anchorOffset: u } = t.domSelectionRange(), f = l.caretBidiLevel;\n l.modify(\"move\", n, \"character\");\n let h = r.depth ? t.docView.domAfterPos(r.before()) : t.dom, { focusNode: p, focusOffset: m } = t.domSelectionRange(), g = p && !h.contains(p.nodeType == 1 ? p : p.parentNode) || a == p && c == m;\n try {\n l.collapse(d, u), a && (a != d || c != u) && l.extend && l.extend(a, c);\n } catch {\n }\n return f != null && (l.caretBidiLevel = f), g;\n }) : r.pos == r.start() || r.pos == r.end();\n}\nlet zl = null, Bl = null, $l = !1;\nfunction Sp(t, e, n) {\n return zl == e && Bl == n ? $l : (zl = e, Bl = n, $l = n == \"up\" || n == \"down\" ? kp(t, e, n) : wp(t, e, n));\n}\nconst Ve = 0, Hl = 1, Wt = 2, rt = 3;\nclass hr {\n constructor(e, n, r, s) {\n this.parent = e, this.children = n, this.dom = r, this.contentDOM = s, this.dirty = Ve, r.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(e) {\n return !1;\n }\n matchesMark(e) {\n return !1;\n }\n matchesNode(e, n, r) {\n return !1;\n }\n matchesHack(e) {\n return !1;\n }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() {\n return null;\n }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(e) {\n return !1;\n }\n // The size of the content represented by this desc.\n get size() {\n let e = 0;\n for (let n = 0; n < this.children.length; n++)\n e += this.children[n].size;\n return e;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() {\n return 0;\n }\n destroy() {\n this.parent = void 0, this.dom.pmViewDesc == this && (this.dom.pmViewDesc = void 0);\n for (let e = 0; e < this.children.length; e++)\n this.children[e].destroy();\n }\n posBeforeChild(e) {\n for (let n = 0, r = this.posAtStart; ; n++) {\n let s = this.children[n];\n if (s == e)\n return r;\n r += s.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(e, n, r) {\n if (this.contentDOM && this.contentDOM.contains(e.nodeType == 1 ? e : e.parentNode))\n if (r < 0) {\n let o, i;\n if (e == this.contentDOM)\n o = e.childNodes[n - 1];\n else {\n for (; e.parentNode != this.contentDOM; )\n e = e.parentNode;\n o = e.previousSibling;\n }\n for (; o && !((i = o.pmViewDesc) && i.parent == this); )\n o = o.previousSibling;\n return o ? this.posBeforeChild(i) + i.size : this.posAtStart;\n } else {\n let o, i;\n if (e == this.contentDOM)\n o = e.childNodes[n];\n else {\n for (; e.parentNode != this.contentDOM; )\n e = e.parentNode;\n o = e.nextSibling;\n }\n for (; o && !((i = o.pmViewDesc) && i.parent == this); )\n o = o.nextSibling;\n return o ? this.posBeforeChild(i) : this.posAtEnd;\n }\n let s;\n if (e == this.dom && this.contentDOM)\n s = n > be(this.contentDOM);\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM))\n s = e.compareDocumentPosition(this.contentDOM) & 2;\n else if (this.dom.firstChild) {\n if (n == 0)\n for (let o = e; ; o = o.parentNode) {\n if (o == this.dom) {\n s = !1;\n break;\n }\n if (o.previousSibling)\n break;\n }\n if (s == null && n == e.childNodes.length)\n for (let o = e; ; o = o.parentNode) {\n if (o == this.dom) {\n s = !0;\n break;\n }\n if (o.nextSibling)\n break;\n }\n }\n return s ?? r > 0 ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(e, n = !1) {\n for (let r = !0, s = e; s; s = s.parentNode) {\n let o = this.getDesc(s), i;\n if (o && (!n || o.node))\n if (r && (i = o.nodeDOM) && !(i.nodeType == 1 ? i.contains(e.nodeType == 1 ? e : e.parentNode) : i == e))\n r = !1;\n else\n return o;\n }\n }\n getDesc(e) {\n let n = e.pmViewDesc;\n for (let r = n; r; r = r.parent)\n if (r == this)\n return n;\n }\n posFromDOM(e, n, r) {\n for (let s = e; s; s = s.parentNode) {\n let o = this.getDesc(s);\n if (o)\n return o.localPosFromDOM(e, n, r);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(e) {\n for (let n = 0, r = 0; n < this.children.length; n++) {\n let s = this.children[n], o = r + s.size;\n if (r == e && o != r) {\n for (; !s.border && s.children.length; )\n for (let i = 0; i < s.children.length; i++) {\n let l = s.children[i];\n if (l.size) {\n s = l;\n break;\n }\n }\n return s;\n }\n if (e < o)\n return s.descAt(e - r - s.border);\n r = o;\n }\n }\n domFromPos(e, n) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: e + 1 };\n let r = 0, s = 0;\n for (let o = 0; r < this.children.length; r++) {\n let i = this.children[r], l = o + i.size;\n if (l > e || i instanceof bd) {\n s = e - o;\n break;\n }\n o = l;\n }\n if (s)\n return this.children[r].domFromPos(s - this.children[r].border, n);\n for (let o; r && !(o = this.children[r - 1]).size && o instanceof yd && o.side >= 0; r--)\n ;\n if (n <= 0) {\n let o, i = !0;\n for (; o = r ? this.children[r - 1] : null, !(!o || o.dom.parentNode == this.contentDOM); r--, i = !1)\n ;\n return o && n && i && !o.border && !o.domAtom ? o.domFromPos(o.size, n) : { node: this.contentDOM, offset: o ? be(o.dom) + 1 : 0 };\n } else {\n let o, i = !0;\n for (; o = r < this.children.length ? this.children[r] : null, !(!o || o.dom.parentNode == this.contentDOM); r++, i = !1)\n ;\n return o && i && !o.border && !o.domAtom ? o.domFromPos(0, n) : { node: this.contentDOM, offset: o ? be(o.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(e, n, r = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from: e, to: n, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let s = -1, o = -1;\n for (let i = r, l = 0; ; l++) {\n let a = this.children[l], c = i + a.size;\n if (s == -1 && e <= c) {\n let d = i + a.border;\n if (e >= d && n <= c - a.border && a.node && a.contentDOM && this.contentDOM.contains(a.contentDOM))\n return a.parseRange(e, n, d);\n e = i;\n for (let u = l; u > 0; u--) {\n let f = this.children[u - 1];\n if (f.size && f.dom.parentNode == this.contentDOM && !f.emptyChildAt(1)) {\n s = be(f.dom) + 1;\n break;\n }\n e -= f.size;\n }\n s == -1 && (s = 0);\n }\n if (s > -1 && (c > n || l == this.children.length - 1)) {\n n = c;\n for (let d = l + 1; d < this.children.length; d++) {\n let u = this.children[d];\n if (u.size && u.dom.parentNode == this.contentDOM && !u.emptyChildAt(-1)) {\n o = be(u.dom);\n break;\n }\n n += u.size;\n }\n o == -1 && (o = this.contentDOM.childNodes.length);\n break;\n }\n i = c;\n }\n return { node: this.contentDOM, from: e, to: n, fromOffset: s, toOffset: o };\n }\n emptyChildAt(e) {\n if (this.border || !this.contentDOM || !this.children.length)\n return !1;\n let n = this.children[e < 0 ? 0 : this.children.length - 1];\n return n.size == 0 || n.emptyChildAt(e);\n }\n domAfterPos(e) {\n let { node: n, offset: r } = this.domFromPos(e, 0);\n if (n.nodeType != 1 || r == n.childNodes.length)\n throw new RangeError(\"No node after pos \" + e);\n return n.childNodes[r];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(e, n, r, s = !1) {\n let o = Math.min(e, n), i = Math.max(e, n);\n for (let h = 0, p = 0; h < this.children.length; h++) {\n let m = this.children[h], g = p + m.size;\n if (o > p && i < g)\n return m.setSelection(e - p - m.border, n - p - m.border, r, s);\n p = g;\n }\n let l = this.domFromPos(e, e ? -1 : 1), a = n == e ? l : this.domFromPos(n, n ? -1 : 1), c = r.root.getSelection(), d = r.domSelectionRange(), u = !1;\n if ((je || ve) && e == n) {\n let { node: h, offset: p } = l;\n if (h.nodeType == 3) {\n if (u = !!(p && h.nodeValue[p - 1] == `\n`), u && p == h.nodeValue.length)\n for (let m = h, g; m; m = m.parentNode) {\n if (g = m.nextSibling) {\n g.nodeName == \"BR\" && (l = a = { node: g.parentNode, offset: be(g) + 1 });\n break;\n }\n let y = m.pmViewDesc;\n if (y && y.node && y.node.isBlock)\n break;\n }\n } else {\n let m = h.childNodes[p - 1];\n u = m && (m.nodeName == \"BR\" || m.contentEditable == \"false\");\n }\n }\n if (je && d.focusNode && d.focusNode != a.node && d.focusNode.nodeType == 1) {\n let h = d.focusNode.childNodes[d.focusOffset];\n h && h.contentEditable == \"false\" && (s = !0);\n }\n if (!(s || u && ve) && nn(l.node, l.offset, d.anchorNode, d.anchorOffset) && nn(a.node, a.offset, d.focusNode, d.focusOffset))\n return;\n let f = !1;\n if ((c.extend || e == n) && !(u && je)) {\n c.collapse(l.node, l.offset);\n try {\n e != n && c.extend(a.node, a.offset), f = !0;\n } catch {\n }\n }\n if (!f) {\n if (e > n) {\n let p = l;\n l = a, a = p;\n }\n let h = document.createRange();\n h.setEnd(a.node, a.offset), h.setStart(l.node, l.offset), c.removeAllRanges(), c.addRange(h);\n }\n }\n ignoreMutation(e) {\n return !this.contentDOM && e.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(e, n) {\n for (let r = 0, s = 0; s < this.children.length; s++) {\n let o = this.children[s], i = r + o.size;\n if (r == i ? e <= i && n >= r : e < i && n > r) {\n let l = r + o.border, a = i - o.border;\n if (e >= l && n <= a) {\n this.dirty = e == r || n == i ? Wt : Hl, e == l && n == a && (o.contentLost || o.dom.parentNode != this.contentDOM) ? o.dirty = rt : o.markDirty(e - l, n - l);\n return;\n } else\n o.dirty = o.dom == o.contentDOM && o.dom.parentNode == this.contentDOM && !o.children.length ? Wt : rt;\n }\n r = i;\n }\n this.dirty = Wt;\n }\n markParentsDirty() {\n let e = 1;\n for (let n = this.parent; n; n = n.parent, e++) {\n let r = e == 1 ? Wt : Hl;\n n.dirty < r && (n.dirty = r);\n }\n }\n get domAtom() {\n return !1;\n }\n get ignoreForCoords() {\n return !1;\n }\n get ignoreForSelection() {\n return !1;\n }\n isText(e) {\n return !1;\n }\n}\nclass yd extends hr {\n constructor(e, n, r, s) {\n let o, i = n.type.toDOM;\n if (typeof i == \"function\" && (i = i(r, () => {\n if (!o)\n return s;\n if (o.parent)\n return o.parent.posBeforeChild(o);\n })), !n.type.spec.raw) {\n if (i.nodeType != 1) {\n let l = document.createElement(\"span\");\n l.appendChild(i), i = l;\n }\n i.contentEditable = \"false\", i.classList.add(\"ProseMirror-widget\");\n }\n super(e, [], i, null), this.widget = n, this.widget = n, o = this;\n }\n matchesWidget(e) {\n return this.dirty == Ve && e.type.eq(this.widget.type);\n }\n parseRule() {\n return { ignore: !0 };\n }\n stopEvent(e) {\n let n = this.widget.spec.stopEvent;\n return n ? n(e) : !1;\n }\n ignoreMutation(e) {\n return e.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom), super.destroy();\n }\n get domAtom() {\n return !0;\n }\n get ignoreForSelection() {\n return !!this.widget.type.spec.relaxedSide;\n }\n get side() {\n return this.widget.type.side;\n }\n}\nclass Cp extends hr {\n constructor(e, n, r, s) {\n super(e, [], n, null), this.textDOM = r, this.text = s;\n }\n get size() {\n return this.text.length;\n }\n localPosFromDOM(e, n) {\n return e != this.textDOM ? this.posAtStart + (n ? this.size : 0) : this.posAtStart + n;\n }\n domFromPos(e) {\n return { node: this.textDOM, offset: e };\n }\n ignoreMutation(e) {\n return e.type === \"characterData\" && e.target.nodeValue == e.oldValue;\n }\n}\nclass rn extends hr {\n constructor(e, n, r, s, o) {\n super(e, [], r, s), this.mark = n, this.spec = o;\n }\n static create(e, n, r, s) {\n let o = s.nodeViews[n.type.name], i = o && o(n, s, r);\n return (!i || !i.dom) && (i = $t.renderSpec(document, n.type.spec.toDOM(n, r), null, n.attrs)), new rn(e, n, i.dom, i.contentDOM || i.dom, i);\n }\n parseRule() {\n return this.dirty & rt || this.mark.type.spec.reparseInView ? null : { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(e) {\n return this.dirty != rt && this.mark.eq(e);\n }\n markDirty(e, n) {\n if (super.markDirty(e, n), this.dirty != Ve) {\n let r = this.parent;\n for (; !r.node; )\n r = r.parent;\n r.dirty < this.dirty && (r.dirty = this.dirty), this.dirty = Ve;\n }\n }\n slice(e, n, r) {\n let s = rn.create(this.parent, this.mark, !0, r), o = this.children, i = this.size;\n n < i && (o = Wo(o, n, i, r)), e > 0 && (o = Wo(o, 0, e, r));\n for (let l = 0; l < o.length; l++)\n o[l].parent = s;\n return s.children = o, s;\n }\n ignoreMutation(e) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(e) : super.ignoreMutation(e);\n }\n destroy() {\n this.spec.destroy && this.spec.destroy(), super.destroy();\n }\n}\nclass It extends hr {\n constructor(e, n, r, s, o, i, l, a, c) {\n super(e, [], o, i), this.node = n, this.outerDeco = r, this.innerDeco = s, this.nodeDOM = l;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(e, n, r, s, o, i) {\n let l = o.nodeViews[n.type.name], a, c = l && l(n, o, () => {\n if (!a)\n return i;\n if (a.parent)\n return a.parent.posBeforeChild(a);\n }, r, s), d = c && c.dom, u = c && c.contentDOM;\n if (n.isText) {\n if (!d)\n d = document.createTextNode(n.text);\n else if (d.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n } else d || ({ dom: d, contentDOM: u } = $t.renderSpec(document, n.type.spec.toDOM(n), null, n.attrs));\n !u && !n.isText && d.nodeName != \"BR\" && (d.hasAttribute(\"contenteditable\") || (d.contentEditable = \"false\"), n.type.spec.draggable && (d.draggable = !0));\n let f = d;\n return d = wd(d, r, n), c ? a = new vp(e, n, r, s, d, u || null, f, c, o, i + 1) : n.isText ? new Hs(e, n, r, s, d, f, o) : new It(e, n, r, s, d, u || null, f, o, i + 1);\n }\n parseRule() {\n if (this.node.type.spec.reparseInView)\n return null;\n let e = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\" && (e.preserveWhitespace = \"full\"), !this.contentDOM)\n e.getContent = () => this.node.content;\n else if (!this.contentLost)\n e.contentElement = this.contentDOM;\n else {\n for (let n = this.children.length - 1; n >= 0; n--) {\n let r = this.children[n];\n if (this.dom.contains(r.dom.parentNode)) {\n e.contentElement = r.dom.parentNode;\n break;\n }\n }\n e.contentElement || (e.getContent = () => w.empty);\n }\n return e;\n }\n matchesNode(e, n, r) {\n return this.dirty == Ve && e.eq(this.node) && Jr(n, this.outerDeco) && r.eq(this.innerDeco);\n }\n get size() {\n return this.node.nodeSize;\n }\n get border() {\n return this.node.isLeaf ? 0 : 1;\n }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(e, n) {\n let r = this.node.inlineContent, s = n, o = e.composing ? this.localCompositionInfo(e, n) : null, i = o && o.pos > -1 ? o : null, l = o && o.pos < 0, a = new Tp(this, i && i.node, e);\n Np(this.node, this.innerDeco, (c, d, u) => {\n c.spec.marks ? a.syncToMarks(c.spec.marks, r, e) : c.type.side >= 0 && !u && a.syncToMarks(d == this.node.childCount ? K.none : this.node.child(d).marks, r, e), a.placeWidget(c, e, s);\n }, (c, d, u, f) => {\n a.syncToMarks(c.marks, r, e);\n let h;\n a.findNodeMatch(c, d, u, f) || l && e.state.selection.from > s && e.state.selection.to < s + c.nodeSize && (h = a.findIndexWithChild(o.node)) > -1 && a.updateNodeAt(c, d, u, h, e) || a.updateNextNode(c, d, u, e, f, s) || a.addNode(c, d, u, e, s), s += c.nodeSize;\n }), a.syncToMarks([], r, e), this.node.isTextblock && a.addTextblockHacks(), a.destroyRest(), (a.changed || this.dirty == Wt) && (i && this.protectLocalComposition(e, i), kd(this.contentDOM, this.children, e), An && Op(this.dom));\n }\n localCompositionInfo(e, n) {\n let { from: r, to: s } = e.state.selection;\n if (!(e.state.selection instanceof P) || r < n || s > n + this.node.content.size)\n return null;\n let o = e.input.compositionNode;\n if (!o || !this.dom.contains(o.parentNode))\n return null;\n if (this.node.inlineContent) {\n let i = o.nodeValue, l = Rp(this.node.content, i, r - n, s - n);\n return l < 0 ? null : { node: o, pos: l, text: i };\n } else\n return { node: o, pos: -1, text: \"\" };\n }\n protectLocalComposition(e, { node: n, pos: r, text: s }) {\n if (this.getDesc(n))\n return;\n let o = n;\n for (; o.parentNode != this.contentDOM; o = o.parentNode) {\n for (; o.previousSibling; )\n o.parentNode.removeChild(o.previousSibling);\n for (; o.nextSibling; )\n o.parentNode.removeChild(o.nextSibling);\n o.pmViewDesc && (o.pmViewDesc = void 0);\n }\n let i = new Cp(this, o, n, s);\n e.input.compositionNodes.push(i), this.children = Wo(this.children, r, r + s.length, e, i);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(e, n, r, s) {\n return this.dirty == rt || !e.sameMarkup(this.node) ? !1 : (this.updateInner(e, n, r, s), !0);\n }\n updateInner(e, n, r, s) {\n this.updateOuterDeco(n), this.node = e, this.innerDeco = r, this.contentDOM && this.updateChildren(s, this.posAtStart), this.dirty = Ve;\n }\n updateOuterDeco(e) {\n if (Jr(e, this.outerDeco))\n return;\n let n = this.nodeDOM.nodeType != 1, r = this.dom;\n this.dom = xd(this.dom, this.nodeDOM, Fo(this.outerDeco, this.node, n), Fo(e, this.node, n)), this.dom != r && (r.pmViewDesc = void 0, this.dom.pmViewDesc = this), this.outerDeco = e;\n }\n // Mark this node as being the selected node.\n selectNode() {\n this.nodeDOM.nodeType == 1 && (this.nodeDOM.classList.add(\"ProseMirror-selectednode\"), (this.contentDOM || !this.node.type.spec.draggable) && (this.nodeDOM.draggable = !0));\n }\n // Remove selected node marking from this node.\n deselectNode() {\n this.nodeDOM.nodeType == 1 && (this.nodeDOM.classList.remove(\"ProseMirror-selectednode\"), (this.contentDOM || !this.node.type.spec.draggable) && this.nodeDOM.removeAttribute(\"draggable\"));\n }\n get domAtom() {\n return this.node.isAtom;\n }\n}\nfunction _l(t, e, n, r, s) {\n wd(r, e, t);\n let o = new It(void 0, t, e, n, r, r, r, s, 0);\n return o.contentDOM && o.updateChildren(s, 0), o;\n}\nclass Hs extends It {\n constructor(e, n, r, s, o, i, l) {\n super(e, n, r, s, o, null, i, l, 0);\n }\n parseRule() {\n let e = this.nodeDOM.parentNode;\n for (; e && e != this.dom && !e.pmIsDeco; )\n e = e.parentNode;\n return { skip: e || !0 };\n }\n update(e, n, r, s) {\n return this.dirty == rt || this.dirty != Ve && !this.inParent() || !e.sameMarkup(this.node) ? !1 : (this.updateOuterDeco(n), (this.dirty != Ve || e.text != this.node.text) && e.text != this.nodeDOM.nodeValue && (this.nodeDOM.nodeValue = e.text, s.trackWrites == this.nodeDOM && (s.trackWrites = null)), this.node = e, this.dirty = Ve, !0);\n }\n inParent() {\n let e = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == e)\n return !0;\n return !1;\n }\n domFromPos(e) {\n return { node: this.nodeDOM, offset: e };\n }\n localPosFromDOM(e, n, r) {\n return e == this.nodeDOM ? this.posAtStart + Math.min(n, this.node.text.length) : super.localPosFromDOM(e, n, r);\n }\n ignoreMutation(e) {\n return e.type != \"characterData\" && e.type != \"selection\";\n }\n slice(e, n, r) {\n let s = this.node.cut(e, n), o = document.createTextNode(s.text);\n return new Hs(this.parent, s, this.outerDeco, this.innerDeco, o, o, r);\n }\n markDirty(e, n) {\n super.markDirty(e, n), this.dom != this.nodeDOM && (e == 0 || n == this.nodeDOM.nodeValue.length) && (this.dirty = rt);\n }\n get domAtom() {\n return !1;\n }\n isText(e) {\n return this.node.text == e;\n }\n}\nclass bd extends hr {\n parseRule() {\n return { ignore: !0 };\n }\n matchesHack(e) {\n return this.dirty == Ve && this.dom.nodeName == e;\n }\n get domAtom() {\n return !0;\n }\n get ignoreForCoords() {\n return this.dom.nodeName == \"IMG\";\n }\n}\nclass vp extends It {\n constructor(e, n, r, s, o, i, l, a, c, d) {\n super(e, n, r, s, o, i, l, c, d), this.spec = a;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(e, n, r, s) {\n if (this.dirty == rt)\n return !1;\n if (this.spec.update && (this.node.type == e.type || this.spec.multiType)) {\n let o = this.spec.update(e, n, r);\n return o && this.updateInner(e, n, r, s), o;\n } else return !this.contentDOM && !e.isLeaf ? !1 : super.update(e, n, r, s);\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(e, n, r, s) {\n this.spec.setSelection ? this.spec.setSelection(e, n, r.root) : super.setSelection(e, n, r, s);\n }\n destroy() {\n this.spec.destroy && this.spec.destroy(), super.destroy();\n }\n stopEvent(e) {\n return this.spec.stopEvent ? this.spec.stopEvent(e) : !1;\n }\n ignoreMutation(e) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(e) : super.ignoreMutation(e);\n }\n}\nfunction kd(t, e, n) {\n let r = t.firstChild, s = !1;\n for (let o = 0; o < e.length; o++) {\n let i = e[o], l = i.dom;\n if (l.parentNode == t) {\n for (; l != r; )\n r = jl(r), s = !0;\n r = r.nextSibling;\n } else\n s = !0, t.insertBefore(l, r);\n if (i instanceof rn) {\n let a = r ? r.previousSibling : t.lastChild;\n kd(i.contentDOM, i.children, n), r = a ? a.nextSibling : t.firstChild;\n }\n }\n for (; r; )\n r = jl(r), s = !0;\n s && n.trackWrites == t && (n.trackWrites = null);\n}\nconst Wn = function(t) {\n t && (this.nodeName = t);\n};\nWn.prototype = /* @__PURE__ */ Object.create(null);\nconst Ut = [new Wn()];\nfunction Fo(t, e, n) {\n if (t.length == 0)\n return Ut;\n let r = n ? Ut[0] : new Wn(), s = [r];\n for (let o = 0; o < t.length; o++) {\n let i = t[o].type.attrs;\n if (i) {\n i.nodeName && s.push(r = new Wn(i.nodeName));\n for (let l in i) {\n let a = i[l];\n a != null && (n && s.length == 1 && s.push(r = new Wn(e.isInline ? \"span\" : \"div\")), l == \"class\" ? r.class = (r.class ? r.class + \" \" : \"\") + a : l == \"style\" ? r.style = (r.style ? r.style + \";\" : \"\") + a : l != \"nodeName\" && (r[l] = a));\n }\n }\n }\n return s;\n}\nfunction xd(t, e, n, r) {\n if (n == Ut && r == Ut)\n return e;\n let s = e;\n for (let o = 0; o < r.length; o++) {\n let i = r[o], l = n[o];\n if (o) {\n let a;\n l && l.nodeName == i.nodeName && s != t && (a = s.parentNode) && a.nodeName.toLowerCase() == i.nodeName || (a = document.createElement(i.nodeName), a.pmIsDeco = !0, a.appendChild(s), l = Ut[0]), s = a;\n }\n Mp(s, l || Ut[0], i);\n }\n return s;\n}\nfunction Mp(t, e, n) {\n for (let r in e)\n r != \"class\" && r != \"style\" && r != \"nodeName\" && !(r in n) && t.removeAttribute(r);\n for (let r in n)\n r != \"class\" && r != \"style\" && r != \"nodeName\" && n[r] != e[r] && t.setAttribute(r, n[r]);\n if (e.class != n.class) {\n let r = e.class ? e.class.split(\" \").filter(Boolean) : [], s = n.class ? n.class.split(\" \").filter(Boolean) : [];\n for (let o = 0; o < r.length; o++)\n s.indexOf(r[o]) == -1 && t.classList.remove(r[o]);\n for (let o = 0; o < s.length; o++)\n r.indexOf(s[o]) == -1 && t.classList.add(s[o]);\n t.classList.length == 0 && t.removeAttribute(\"class\");\n }\n if (e.style != n.style) {\n if (e.style) {\n let r = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, s;\n for (; s = r.exec(e.style); )\n t.style.removeProperty(s[1]);\n }\n n.style && (t.style.cssText += n.style);\n }\n}\nfunction wd(t, e, n) {\n return xd(t, t, Ut, Fo(e, n, t.nodeType != 1));\n}\nfunction Jr(t, e) {\n if (t.length != e.length)\n return !1;\n for (let n = 0; n < t.length; n++)\n if (!t[n].type.eq(e[n].type))\n return !1;\n return !0;\n}\nfunction jl(t) {\n let e = t.nextSibling;\n return t.parentNode.removeChild(t), e;\n}\nclass Tp {\n constructor(e, n, r) {\n this.lock = n, this.view = r, this.index = 0, this.stack = [], this.changed = !1, this.top = e, this.preMatch = Ep(e.node.content, e);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(e, n) {\n if (e != n) {\n for (let r = e; r < n; r++)\n this.top.children[r].destroy();\n this.top.children.splice(e, n - e), this.changed = !0;\n }\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(e, n, r) {\n let s = 0, o = this.stack.length >> 1, i = Math.min(o, e.length);\n for (; s < i && (s == o - 1 ? this.top : this.stack[s + 1 << 1]).matchesMark(e[s]) && e[s].type.spec.spanning !== !1; )\n s++;\n for (; s < o; )\n this.destroyRest(), this.top.dirty = Ve, this.index = this.stack.pop(), this.top = this.stack.pop(), o--;\n for (; o < e.length; ) {\n this.stack.push(this.top, this.index + 1);\n let l = -1;\n for (let a = this.index; a < Math.min(this.index + 3, this.top.children.length); a++) {\n let c = this.top.children[a];\n if (c.matchesMark(e[o]) && !this.isLocked(c.dom)) {\n l = a;\n break;\n }\n }\n if (l > -1)\n l > this.index && (this.changed = !0, this.destroyBetween(this.index, l)), this.top = this.top.children[this.index];\n else {\n let a = rn.create(this.top, e[o], n, r);\n this.top.children.splice(this.index, 0, a), this.top = a, this.changed = !0;\n }\n this.index = 0, o++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(e, n, r, s) {\n let o = -1, i;\n if (s >= this.preMatch.index && (i = this.preMatch.matches[s - this.preMatch.index]).parent == this.top && i.matchesNode(e, n, r))\n o = this.top.children.indexOf(i, this.index);\n else\n for (let l = this.index, a = Math.min(this.top.children.length, l + 5); l < a; l++) {\n let c = this.top.children[l];\n if (c.matchesNode(e, n, r) && !this.preMatch.matched.has(c)) {\n o = l;\n break;\n }\n }\n return o < 0 ? !1 : (this.destroyBetween(this.index, o), this.index++, !0);\n }\n updateNodeAt(e, n, r, s, o) {\n let i = this.top.children[s];\n return i.dirty == rt && i.dom == i.contentDOM && (i.dirty = Wt), i.update(e, n, r, o) ? (this.destroyBetween(this.index, s), this.index++, !0) : !1;\n }\n findIndexWithChild(e) {\n for (; ; ) {\n let n = e.parentNode;\n if (!n)\n return -1;\n if (n == this.top.contentDOM) {\n let r = e.pmViewDesc;\n if (r) {\n for (let s = this.index; s < this.top.children.length; s++)\n if (this.top.children[s] == r)\n return s;\n }\n return -1;\n }\n e = n;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(e, n, r, s, o, i) {\n for (let l = this.index; l < this.top.children.length; l++) {\n let a = this.top.children[l];\n if (a instanceof It) {\n let c = this.preMatch.matched.get(a);\n if (c != null && c != o)\n return !1;\n let d = a.dom, u, f = this.isLocked(d) && !(e.isText && a.node && a.node.isText && a.nodeDOM.nodeValue == e.text && a.dirty != rt && Jr(n, a.outerDeco));\n if (!f && a.update(e, n, r, s))\n return this.destroyBetween(this.index, l), a.dom != d && (this.changed = !0), this.index++, !0;\n if (!f && (u = this.recreateWrapper(a, e, n, r, s, i)))\n return this.destroyBetween(this.index, l), this.top.children[this.index] = u, u.contentDOM && (u.dirty = Wt, u.updateChildren(s, i + 1), u.dirty = Ve), this.changed = !0, this.index++, !0;\n break;\n }\n }\n return !1;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(e, n, r, s, o, i) {\n if (e.dirty || n.isAtom || !e.children.length || !e.node.content.eq(n.content) || !Jr(r, e.outerDeco) || !s.eq(e.innerDeco))\n return null;\n let l = It.create(this.top, n, r, s, o, i);\n if (l.contentDOM) {\n l.children = e.children, e.children = [];\n for (let a of l.children)\n a.parent = l;\n }\n return e.destroy(), l;\n }\n // Insert the node as a newly created node desc.\n addNode(e, n, r, s, o) {\n let i = It.create(this.top, e, n, r, s, o);\n i.contentDOM && i.updateChildren(s, o + 1), this.top.children.splice(this.index++, 0, i), this.changed = !0;\n }\n placeWidget(e, n, r) {\n let s = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (s && s.matchesWidget(e) && (e == s.widget || !s.widget.type.toDOM.parentNode))\n this.index++;\n else {\n let o = new yd(this.top, e, n, r);\n this.top.children.splice(this.index++, 0, o), this.changed = !0;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let e = this.top.children[this.index - 1], n = this.top;\n for (; e instanceof rn; )\n n = e, e = n.children[n.children.length - 1];\n (!e || // Empty textblock\n !(e instanceof Hs) || /\\n$/.test(e.node.text) || this.view.requiresGeckoHackNode && /\\s$/.test(e.node.text)) && ((ve || we) && e && e.dom.contentEditable == \"false\" && this.addHackNode(\"IMG\", n), this.addHackNode(\"BR\", this.top));\n }\n addHackNode(e, n) {\n if (n == this.top && this.index < n.children.length && n.children[this.index].matchesHack(e))\n this.index++;\n else {\n let r = document.createElement(e);\n e == \"IMG\" && (r.className = \"ProseMirror-separator\", r.alt = \"\"), e == \"BR\" && (r.className = \"ProseMirror-trailingBreak\");\n let s = new bd(this.top, [], r, null);\n n != this.top ? n.children.push(s) : n.children.splice(this.index++, 0, s), this.changed = !0;\n }\n }\n isLocked(e) {\n return this.lock && (e == this.lock || e.nodeType == 1 && e.contains(this.lock.parentNode));\n }\n}\nfunction Ep(t, e) {\n let n = e, r = n.children.length, s = t.childCount, o = /* @__PURE__ */ new Map(), i = [];\n e: for (; s > 0; ) {\n let l;\n for (; ; )\n if (r) {\n let c = n.children[r - 1];\n if (c instanceof rn)\n n = c, r = c.children.length;\n else {\n l = c, r--;\n break;\n }\n } else {\n if (n == e)\n break e;\n r = n.parent.children.indexOf(n), n = n.parent;\n }\n let a = l.node;\n if (a) {\n if (a != t.child(s - 1))\n break;\n --s, o.set(l, s), i.push(l);\n }\n }\n return { index: s, matched: o, matches: i.reverse() };\n}\nfunction Ap(t, e) {\n return t.type.side - e.type.side;\n}\nfunction Np(t, e, n, r) {\n let s = e.locals(t), o = 0;\n if (s.length == 0) {\n for (let c = 0; c < t.childCount; c++) {\n let d = t.child(c);\n r(d, s, e.forChild(o, d), c), o += d.nodeSize;\n }\n return;\n }\n let i = 0, l = [], a = null;\n for (let c = 0; ; ) {\n let d, u;\n for (; i < s.length && s[i].to == o; ) {\n let g = s[i++];\n g.widget && (d ? (u || (u = [d])).push(g) : d = g);\n }\n if (d)\n if (u) {\n u.sort(Ap);\n for (let g = 0; g < u.length; g++)\n n(u[g], c, !!a);\n } else\n n(d, c, !!a);\n let f, h;\n if (a)\n h = -1, f = a, a = null;\n else if (c < t.childCount)\n h = c, f = t.child(c++);\n else\n break;\n for (let g = 0; g < l.length; g++)\n l[g].to <= o && l.splice(g--, 1);\n for (; i < s.length && s[i].from <= o && s[i].to > o; )\n l.push(s[i++]);\n let p = o + f.nodeSize;\n if (f.isText) {\n let g = p;\n i < s.length && s[i].from < g && (g = s[i].from);\n for (let y = 0; y < l.length; y++)\n l[y].to < g && (g = l[y].to);\n g < p && (a = f.cut(g - o), f = f.cut(0, g - o), p = g, h = -1);\n } else\n for (; i < s.length && s[i].to < p; )\n i++;\n let m = f.isInline && !f.isLeaf ? l.filter((g) => !g.inline) : l.slice();\n r(f, m, e.forChild(o, f), h), o = p;\n }\n}\nfunction Op(t) {\n if (t.nodeName == \"UL\" || t.nodeName == \"OL\") {\n let e = t.style.cssText;\n t.style.cssText = e + \"; list-style: square !important\", window.getComputedStyle(t).listStyle, t.style.cssText = e;\n }\n}\nfunction Rp(t, e, n, r) {\n for (let s = 0, o = 0; s < t.childCount && o <= r; ) {\n let i = t.child(s++), l = o;\n if (o += i.nodeSize, !i.isText)\n continue;\n let a = i.text;\n for (; s < t.childCount; ) {\n let c = t.child(s++);\n if (o += c.nodeSize, !c.isText)\n break;\n a += c.text;\n }\n if (o >= n) {\n if (o >= r && a.slice(r - e.length - l, r - l) == e)\n return r - e.length;\n let c = l < r ? a.lastIndexOf(e, r - l - 1) : -1;\n if (c >= 0 && c + e.length + l >= n)\n return l + c;\n if (n == r && a.length >= r + e.length - l && a.slice(r - l, r - l + e.length) == e)\n return r;\n }\n }\n return -1;\n}\nfunction Wo(t, e, n, r, s) {\n let o = [];\n for (let i = 0, l = 0; i < t.length; i++) {\n let a = t[i], c = l, d = l += a.size;\n c >= n || d <= e ? o.push(a) : (c < e && o.push(a.slice(0, e - c, r)), s && (o.push(s), s = void 0), d > n && o.push(a.slice(n - c, a.size, r)));\n }\n return o;\n}\nfunction Ni(t, e = null) {\n let n = t.domSelectionRange(), r = t.state.doc;\n if (!n.focusNode)\n return null;\n let s = t.docView.nearestDesc(n.focusNode), o = s && s.size == 0, i = t.docView.posFromDOM(n.focusNode, n.focusOffset, 1);\n if (i < 0)\n return null;\n let l = r.resolve(i), a, c;\n if ($s(n)) {\n for (a = i; s && !s.node; )\n s = s.parent;\n let u = s.node;\n if (s && u.isAtom && D.isSelectable(u) && s.parent && !(u.isInline && rp(n.focusNode, n.focusOffset, s.dom))) {\n let f = s.posBefore;\n c = new D(i == f ? l : r.resolve(f));\n }\n } else {\n if (n instanceof t.dom.ownerDocument.defaultView.Selection && n.rangeCount > 1) {\n let u = i, f = i;\n for (let h = 0; h < n.rangeCount; h++) {\n let p = n.getRangeAt(h);\n u = Math.min(u, t.docView.posFromDOM(p.startContainer, p.startOffset, 1)), f = Math.max(f, t.docView.posFromDOM(p.endContainer, p.endOffset, -1));\n }\n if (u < 0)\n return null;\n [a, i] = f == t.state.selection.anchor ? [f, u] : [u, f], l = r.resolve(i);\n } else\n a = t.docView.posFromDOM(n.anchorNode, n.anchorOffset, 1);\n if (a < 0)\n return null;\n }\n let d = r.resolve(a);\n if (!c) {\n let u = e == \"pointer\" || t.state.selection.head < l.pos && !o ? 1 : -1;\n c = Oi(t, d, l, u);\n }\n return c;\n}\nfunction Sd(t) {\n return t.editable ? t.hasFocus() : vd(t) && document.activeElement && document.activeElement.contains(t.dom);\n}\nfunction gt(t, e = !1) {\n let n = t.state.selection;\n if (Cd(t, n), !!Sd(t)) {\n if (!e && t.input.mouseDown && t.input.mouseDown.allowDefault && we) {\n let r = t.domSelectionRange(), s = t.domObserver.currentSelection;\n if (r.anchorNode && s.anchorNode && nn(r.anchorNode, r.anchorOffset, s.anchorNode, s.anchorOffset)) {\n t.input.mouseDown.delayedSelectionSync = !0, t.domObserver.setCurSelection();\n return;\n }\n }\n if (t.domObserver.disconnectSelection(), t.cursorWrapper)\n Ip(t);\n else {\n let { anchor: r, head: s } = n, o, i;\n Vl && !(n instanceof P) && (n.$from.parent.inlineContent || (o = Fl(t, n.from)), !n.empty && !n.$from.parent.inlineContent && (i = Fl(t, n.to))), t.docView.setSelection(r, s, t, e), Vl && (o && Wl(o), i && Wl(i)), n.visible ? t.dom.classList.remove(\"ProseMirror-hideselection\") : (t.dom.classList.add(\"ProseMirror-hideselection\"), \"onselectionchange\" in document && Dp(t));\n }\n t.domObserver.setCurSelection(), t.domObserver.connectSelection();\n }\n}\nconst Vl = ve || we && dd < 63;\nfunction Fl(t, e) {\n let { node: n, offset: r } = t.docView.domFromPos(e, 0), s = r < n.childNodes.length ? n.childNodes[r] : null, o = r ? n.childNodes[r - 1] : null;\n if (ve && s && s.contentEditable == \"false\")\n return io(s);\n if ((!s || s.contentEditable == \"false\") && (!o || o.contentEditable == \"false\")) {\n if (s)\n return io(s);\n if (o)\n return io(o);\n }\n}\nfunction io(t) {\n return t.contentEditable = \"true\", ve && t.draggable && (t.draggable = !1, t.wasDraggable = !0), t;\n}\nfunction Wl(t) {\n t.contentEditable = \"false\", t.wasDraggable && (t.draggable = !0, t.wasDraggable = null);\n}\nfunction Dp(t) {\n let e = t.dom.ownerDocument;\n e.removeEventListener(\"selectionchange\", t.input.hideSelectionGuard);\n let n = t.domSelectionRange(), r = n.anchorNode, s = n.anchorOffset;\n e.addEventListener(\"selectionchange\", t.input.hideSelectionGuard = () => {\n (n.anchorNode != r || n.anchorOffset != s) && (e.removeEventListener(\"selectionchange\", t.input.hideSelectionGuard), setTimeout(() => {\n (!Sd(t) || t.state.selection.visible) && t.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20));\n });\n}\nfunction Ip(t) {\n let e = t.domSelection();\n if (!e)\n return;\n let n = t.cursorWrapper.dom, r = n.nodeName == \"IMG\";\n r ? e.collapse(n.parentNode, be(n) + 1) : e.collapse(n, 0), !r && !t.state.selection.visible && Ne && Dt <= 11 && (n.disabled = !0, n.disabled = !1);\n}\nfunction Cd(t, e) {\n if (e instanceof D) {\n let n = t.docView.descAt(e.from);\n n != t.lastSelectedViewDesc && (Ul(t), n && n.selectNode(), t.lastSelectedViewDesc = n);\n } else\n Ul(t);\n}\nfunction Ul(t) {\n t.lastSelectedViewDesc && (t.lastSelectedViewDesc.parent && t.lastSelectedViewDesc.deselectNode(), t.lastSelectedViewDesc = void 0);\n}\nfunction Oi(t, e, n, r) {\n return t.someProp(\"createSelectionBetween\", (s) => s(t, e, n)) || P.between(e, n, r);\n}\nfunction Kl(t) {\n return t.editable && !t.hasFocus() ? !1 : vd(t);\n}\nfunction vd(t) {\n let e = t.domSelectionRange();\n if (!e.anchorNode)\n return !1;\n try {\n return t.dom.contains(e.anchorNode.nodeType == 3 ? e.anchorNode.parentNode : e.anchorNode) && (t.editable || t.dom.contains(e.focusNode.nodeType == 3 ? e.focusNode.parentNode : e.focusNode));\n } catch {\n return !1;\n }\n}\nfunction Lp(t) {\n let e = t.docView.domFromPos(t.state.selection.anchor, 0), n = t.domSelectionRange();\n return nn(e.node, e.offset, n.anchorNode, n.anchorOffset);\n}\nfunction Uo(t, e) {\n let { $anchor: n, $head: r } = t.selection, s = e > 0 ? n.max(r) : n.min(r), o = s.parent.inlineContent ? s.depth ? t.doc.resolve(e > 0 ? s.after() : s.before()) : null : s;\n return o && B.findFrom(o, e);\n}\nfunction St(t, e) {\n return t.dispatch(t.state.tr.setSelection(e).scrollIntoView()), !0;\n}\nfunction ql(t, e, n) {\n let r = t.state.selection;\n if (r instanceof P)\n if (n.indexOf(\"s\") > -1) {\n let { $head: s } = r, o = s.textOffset ? null : e < 0 ? s.nodeBefore : s.nodeAfter;\n if (!o || o.isText || !o.isLeaf)\n return !1;\n let i = t.state.doc.resolve(s.pos + o.nodeSize * (e < 0 ? -1 : 1));\n return St(t, new P(r.$anchor, i));\n } else if (r.empty) {\n if (t.endOfTextblock(e > 0 ? \"forward\" : \"backward\")) {\n let s = Uo(t.state, e);\n return s && s instanceof D ? St(t, s) : !1;\n } else if (!($e && n.indexOf(\"m\") > -1)) {\n let s = r.$head, o = s.textOffset ? null : e < 0 ? s.nodeBefore : s.nodeAfter, i;\n if (!o || o.isText)\n return !1;\n let l = e < 0 ? s.pos - o.nodeSize : s.pos;\n return o.isAtom || (i = t.docView.descAt(l)) && !i.contentDOM ? D.isSelectable(o) ? St(t, new D(e < 0 ? t.state.doc.resolve(s.pos - o.nodeSize) : s)) : fr ? St(t, new P(t.state.doc.resolve(e < 0 ? l : l + o.nodeSize))) : !1 : !1;\n }\n } else return !1;\n else {\n if (r instanceof D && r.node.isInline)\n return St(t, new P(e > 0 ? r.$to : r.$from));\n {\n let s = Uo(t.state, e);\n return s ? St(t, s) : !1;\n }\n }\n}\nfunction Gr(t) {\n return t.nodeType == 3 ? t.nodeValue.length : t.childNodes.length;\n}\nfunction Un(t, e) {\n let n = t.pmViewDesc;\n return n && n.size == 0 && (e < 0 || t.nextSibling || t.nodeName != \"BR\");\n}\nfunction mn(t, e) {\n return e < 0 ? Pp(t) : zp(t);\n}\nfunction Pp(t) {\n let e = t.domSelectionRange(), n = e.focusNode, r = e.focusOffset;\n if (!n)\n return;\n let s, o, i = !1;\n for (je && n.nodeType == 1 && r < Gr(n) && Un(n.childNodes[r], -1) && (i = !0); ; )\n if (r > 0) {\n if (n.nodeType != 1)\n break;\n {\n let l = n.childNodes[r - 1];\n if (Un(l, -1))\n s = n, o = --r;\n else if (l.nodeType == 3)\n n = l, r = n.nodeValue.length;\n else\n break;\n }\n } else {\n if (Md(n))\n break;\n {\n let l = n.previousSibling;\n for (; l && Un(l, -1); )\n s = n.parentNode, o = be(l), l = l.previousSibling;\n if (l)\n n = l, r = Gr(n);\n else {\n if (n = n.parentNode, n == t.dom)\n break;\n r = 0;\n }\n }\n }\n i ? Ko(t, n, r) : s && Ko(t, s, o);\n}\nfunction zp(t) {\n let e = t.domSelectionRange(), n = e.focusNode, r = e.focusOffset;\n if (!n)\n return;\n let s = Gr(n), o, i;\n for (; ; )\n if (r < s) {\n if (n.nodeType != 1)\n break;\n let l = n.childNodes[r];\n if (Un(l, 1))\n o = n, i = ++r;\n else\n break;\n } else {\n if (Md(n))\n break;\n {\n let l = n.nextSibling;\n for (; l && Un(l, 1); )\n o = l.parentNode, i = be(l) + 1, l = l.nextSibling;\n if (l)\n n = l, r = 0, s = Gr(n);\n else {\n if (n = n.parentNode, n == t.dom)\n break;\n r = s = 0;\n }\n }\n }\n o && Ko(t, o, i);\n}\nfunction Md(t) {\n let e = t.pmViewDesc;\n return e && e.node && e.node.isBlock;\n}\nfunction Bp(t, e) {\n for (; t && e == t.childNodes.length && !ur(t); )\n e = be(t) + 1, t = t.parentNode;\n for (; t && e < t.childNodes.length; ) {\n let n = t.childNodes[e];\n if (n.nodeType == 3)\n return n;\n if (n.nodeType == 1 && n.contentEditable == \"false\")\n break;\n t = n, e = 0;\n }\n}\nfunction $p(t, e) {\n for (; t && !e && !ur(t); )\n e = be(t), t = t.parentNode;\n for (; t && e; ) {\n let n = t.childNodes[e - 1];\n if (n.nodeType == 3)\n return n;\n if (n.nodeType == 1 && n.contentEditable == \"false\")\n break;\n t = n, e = t.childNodes.length;\n }\n}\nfunction Ko(t, e, n) {\n if (e.nodeType != 3) {\n let o, i;\n (i = Bp(e, n)) ? (e = i, n = 0) : (o = $p(e, n)) && (e = o, n = o.nodeValue.length);\n }\n let r = t.domSelection();\n if (!r)\n return;\n if ($s(r)) {\n let o = document.createRange();\n o.setEnd(e, n), o.setStart(e, n), r.removeAllRanges(), r.addRange(o);\n } else r.extend && r.extend(e, n);\n t.domObserver.setCurSelection();\n let { state: s } = t;\n setTimeout(() => {\n t.state == s && gt(t);\n }, 50);\n}\nfunction Jl(t, e) {\n let n = t.state.doc.resolve(e);\n if (!(we || ip) && n.parent.inlineContent) {\n let s = t.coordsAtPos(e);\n if (e > n.start()) {\n let o = t.coordsAtPos(e - 1), i = (o.top + o.bottom) / 2;\n if (i > s.top && i < s.bottom && Math.abs(o.left - s.left) > 1)\n return o.left < s.left ? \"ltr\" : \"rtl\";\n }\n if (e < n.end()) {\n let o = t.coordsAtPos(e + 1), i = (o.top + o.bottom) / 2;\n if (i > s.top && i < s.bottom && Math.abs(o.left - s.left) > 1)\n return o.left > s.left ? \"ltr\" : \"rtl\";\n }\n }\n return getComputedStyle(t.dom).direction == \"rtl\" ? \"rtl\" : \"ltr\";\n}\nfunction Gl(t, e, n) {\n let r = t.state.selection;\n if (r instanceof P && !r.empty || n.indexOf(\"s\") > -1 || $e && n.indexOf(\"m\") > -1)\n return !1;\n let { $from: s, $to: o } = r;\n if (!s.parent.inlineContent || t.endOfTextblock(e < 0 ? \"up\" : \"down\")) {\n let i = Uo(t.state, e);\n if (i && i instanceof D)\n return St(t, i);\n }\n if (!s.parent.inlineContent) {\n let i = e < 0 ? s : o, l = r instanceof De ? B.near(i, e) : B.findFrom(i, e);\n return l ? St(t, l) : !1;\n }\n return !1;\n}\nfunction Yl(t, e) {\n if (!(t.state.selection instanceof P))\n return !0;\n let { $head: n, $anchor: r, empty: s } = t.state.selection;\n if (!n.sameParent(r))\n return !0;\n if (!s)\n return !1;\n if (t.endOfTextblock(e > 0 ? \"forward\" : \"backward\"))\n return !0;\n let o = !n.textOffset && (e < 0 ? n.nodeBefore : n.nodeAfter);\n if (o && !o.isText) {\n let i = t.state.tr;\n return e < 0 ? i.delete(n.pos - o.nodeSize, n.pos) : i.delete(n.pos, n.pos + o.nodeSize), t.dispatch(i), !0;\n }\n return !1;\n}\nfunction Xl(t, e, n) {\n t.domObserver.stop(), e.contentEditable = n, t.domObserver.start();\n}\nfunction Hp(t) {\n if (!ve || t.state.selection.$head.parentOffset > 0)\n return !1;\n let { focusNode: e, focusOffset: n } = t.domSelectionRange();\n if (e && e.nodeType == 1 && n == 0 && e.firstChild && e.firstChild.contentEditable == \"false\") {\n let r = e.firstChild;\n Xl(t, r, \"true\"), setTimeout(() => Xl(t, r, \"false\"), 20);\n }\n return !1;\n}\nfunction _p(t) {\n let e = \"\";\n return t.ctrlKey && (e += \"c\"), t.metaKey && (e += \"m\"), t.altKey && (e += \"a\"), t.shiftKey && (e += \"s\"), e;\n}\nfunction jp(t, e) {\n let n = e.keyCode, r = _p(e);\n if (n == 8 || $e && n == 72 && r == \"c\")\n return Yl(t, -1) || mn(t, -1);\n if (n == 46 && !e.shiftKey || $e && n == 68 && r == \"c\")\n return Yl(t, 1) || mn(t, 1);\n if (n == 13 || n == 27)\n return !0;\n if (n == 37 || $e && n == 66 && r == \"c\") {\n let s = n == 37 ? Jl(t, t.state.selection.from) == \"ltr\" ? -1 : 1 : -1;\n return ql(t, s, r) || mn(t, s);\n } else if (n == 39 || $e && n == 70 && r == \"c\") {\n let s = n == 39 ? Jl(t, t.state.selection.from) == \"ltr\" ? 1 : -1 : 1;\n return ql(t, s, r) || mn(t, s);\n } else {\n if (n == 38 || $e && n == 80 && r == \"c\")\n return Gl(t, -1, r) || mn(t, -1);\n if (n == 40 || $e && n == 78 && r == \"c\")\n return Hp(t) || Gl(t, 1, r) || mn(t, 1);\n if (r == ($e ? \"m\" : \"c\") && (n == 66 || n == 73 || n == 89 || n == 90))\n return !0;\n }\n return !1;\n}\nfunction Ri(t, e) {\n t.someProp(\"transformCopied\", (h) => {\n e = h(e, t);\n });\n let n = [], { content: r, openStart: s, openEnd: o } = e;\n for (; s > 1 && o > 1 && r.childCount == 1 && r.firstChild.childCount == 1; ) {\n s--, o--;\n let h = r.firstChild;\n n.push(h.type.name, h.attrs != h.type.defaultAttrs ? h.attrs : null), r = h.content;\n }\n let i = t.someProp(\"clipboardSerializer\") || $t.fromSchema(t.state.schema), l = Rd(), a = l.createElement(\"div\");\n a.appendChild(i.serializeFragment(r, { document: l }));\n let c = a.firstChild, d, u = 0;\n for (; c && c.nodeType == 1 && (d = Od[c.nodeName.toLowerCase()]); ) {\n for (let h = d.length - 1; h >= 0; h--) {\n let p = l.createElement(d[h]);\n for (; a.firstChild; )\n p.appendChild(a.firstChild);\n a.appendChild(p), u++;\n }\n c = a.firstChild;\n }\n c && c.nodeType == 1 && c.setAttribute(\"data-pm-slice\", `${s} ${o}${u ? ` -${u}` : \"\"} ${JSON.stringify(n)}`);\n let f = t.someProp(\"clipboardTextSerializer\", (h) => h(e, t)) || e.content.textBetween(0, e.content.size, `\n\n`);\n return { dom: a, text: f, slice: e };\n}\nfunction Td(t, e, n, r, s) {\n let o = s.parent.type.spec.code, i, l;\n if (!n && !e)\n return null;\n let a = !!e && (r || o || !n);\n if (a) {\n if (t.someProp(\"transformPastedText\", (f) => {\n e = f(e, o || r, t);\n }), o)\n return l = new A(w.from(t.state.schema.text(e.replace(/\\r\\n?/g, `\n`))), 0, 0), t.someProp(\"transformPasted\", (f) => {\n l = f(l, t, !0);\n }), l;\n let u = t.someProp(\"clipboardTextParser\", (f) => f(e, s, r, t));\n if (u)\n l = u;\n else {\n let f = s.marks(), { schema: h } = t.state, p = $t.fromSchema(h);\n i = document.createElement(\"div\"), e.split(/(?:\\r\\n?|\\n)+/).forEach((m) => {\n let g = i.appendChild(document.createElement(\"p\"));\n m && g.appendChild(p.serializeNode(h.text(m, f)));\n });\n }\n } else\n t.someProp(\"transformPastedHTML\", (u) => {\n n = u(n, t);\n }), i = Up(n), fr && Kp(i);\n let c = i && i.querySelector(\"[data-pm-slice]\"), d = c && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(c.getAttribute(\"data-pm-slice\") || \"\");\n if (d && d[3])\n for (let u = +d[3]; u > 0; u--) {\n let f = i.firstChild;\n for (; f && f.nodeType != 1; )\n f = f.nextSibling;\n if (!f)\n break;\n i = f;\n }\n if (l || (l = (t.someProp(\"clipboardParser\") || t.someProp(\"domParser\") || Rt.fromSchema(t.state.schema)).parseSlice(i, {\n preserveWhitespace: !!(a || d),\n context: s,\n ruleFromNode(f) {\n return f.nodeName == \"BR\" && !f.nextSibling && f.parentNode && !Vp.test(f.parentNode.nodeName) ? { ignore: !0 } : null;\n }\n })), d)\n l = qp(Ql(l, +d[1], +d[2]), d[4]);\n else if (l = A.maxOpen(Fp(l.content, s), !0), l.openStart || l.openEnd) {\n let u = 0, f = 0;\n for (let h = l.content.firstChild; u < l.openStart && !h.type.spec.isolating; u++, h = h.firstChild)\n ;\n for (let h = l.content.lastChild; f < l.openEnd && !h.type.spec.isolating; f++, h = h.lastChild)\n ;\n l = Ql(l, u, f);\n }\n return t.someProp(\"transformPasted\", (u) => {\n l = u(l, t, a);\n }), l;\n}\nconst Vp = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\nfunction Fp(t, e) {\n if (t.childCount < 2)\n return t;\n for (let n = e.depth; n >= 0; n--) {\n let s = e.node(n).contentMatchAt(e.index(n)), o, i = [];\n if (t.forEach((l) => {\n if (!i)\n return;\n let a = s.findWrapping(l.type), c;\n if (!a)\n return i = null;\n if (c = i.length && o.length && Ad(a, o, l, i[i.length - 1], 0))\n i[i.length - 1] = c;\n else {\n i.length && (i[i.length - 1] = Nd(i[i.length - 1], o.length));\n let d = Ed(l, a);\n i.push(d), s = s.matchType(d.type), o = a;\n }\n }), i)\n return w.from(i);\n }\n return t;\n}\nfunction Ed(t, e, n = 0) {\n for (let r = e.length - 1; r >= n; r--)\n t = e[r].create(null, w.from(t));\n return t;\n}\nfunction Ad(t, e, n, r, s) {\n if (s < t.length && s < e.length && t[s] == e[s]) {\n let o = Ad(t, e, n, r.lastChild, s + 1);\n if (o)\n return r.copy(r.content.replaceChild(r.childCount - 1, o));\n if (r.contentMatchAt(r.childCount).matchType(s == t.length - 1 ? n.type : t[s + 1]))\n return r.copy(r.content.append(w.from(Ed(n, t, s + 1))));\n }\n}\nfunction Nd(t, e) {\n if (e == 0)\n return t;\n let n = t.content.replaceChild(t.childCount - 1, Nd(t.lastChild, e - 1)), r = t.contentMatchAt(t.childCount).fillBefore(w.empty, !0);\n return t.copy(n.append(r));\n}\nfunction qo(t, e, n, r, s, o) {\n let i = e < 0 ? t.firstChild : t.lastChild, l = i.content;\n return t.childCount > 1 && (o = 0), s < r - 1 && (l = qo(l, e, n, r, s + 1, o)), s >= n && (l = e < 0 ? i.contentMatchAt(0).fillBefore(l, o <= s).append(l) : l.append(i.contentMatchAt(i.childCount).fillBefore(w.empty, !0))), t.replaceChild(e < 0 ? 0 : t.childCount - 1, i.copy(l));\n}\nfunction Ql(t, e, n) {\n return e < t.openStart && (t = new A(qo(t.content, -1, e, t.openStart, 0, t.openEnd), e, t.openEnd)), n < t.openEnd && (t = new A(qo(t.content, 1, n, t.openEnd, 0, 0), t.openStart, n)), t;\n}\nconst Od = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet Zl = null;\nfunction Rd() {\n return Zl || (Zl = document.implementation.createHTMLDocument(\"title\"));\n}\nlet lo = null;\nfunction Wp(t) {\n let e = window.trustedTypes;\n return e ? (lo || (lo = e.defaultPolicy || e.createPolicy(\"ProseMirrorClipboard\", { createHTML: (n) => n })), lo.createHTML(t)) : t;\n}\nfunction Up(t) {\n let e = /^(\\s*<meta [^>]*>)*/.exec(t);\n e && (t = t.slice(e[0].length));\n let n = Rd().createElement(\"div\"), r = /<([a-z][^>\\s]+)/i.exec(t), s;\n if ((s = r && Od[r[1].toLowerCase()]) && (t = s.map((o) => \"<\" + o + \">\").join(\"\") + t + s.map((o) => \"</\" + o + \">\").reverse().join(\"\")), n.innerHTML = Wp(t), s)\n for (let o = 0; o < s.length; o++)\n n = n.querySelector(s[o]) || n;\n return n;\n}\nfunction Kp(t) {\n let e = t.querySelectorAll(we ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let n = 0; n < e.length; n++) {\n let r = e[n];\n r.childNodes.length == 1 && r.textContent == \" \" && r.parentNode && r.parentNode.replaceChild(t.ownerDocument.createTextNode(\" \"), r);\n }\n}\nfunction qp(t, e) {\n if (!t.size)\n return t;\n let n = t.content.firstChild.type.schema, r;\n try {\n r = JSON.parse(e);\n } catch {\n return t;\n }\n let { content: s, openStart: o, openEnd: i } = t;\n for (let l = r.length - 2; l >= 0; l -= 2) {\n let a = n.nodes[r[l]];\n if (!a || a.hasRequiredAttrs())\n break;\n s = w.from(a.create(r[l + 1], s)), o++, i++;\n }\n return new A(s, o, i);\n}\nconst Me = {}, Te = {}, Jp = { touchstart: !0, touchmove: !0 };\nclass Gp {\n constructor() {\n this.shiftKey = !1, this.mouseDown = null, this.lastKeyCode = null, this.lastKeyCodeTime = 0, this.lastClick = { time: 0, x: 0, y: 0, type: \"\", button: 0 }, this.lastSelectionOrigin = null, this.lastSelectionTime = 0, this.lastIOSEnter = 0, this.lastIOSEnterFallbackTimeout = -1, this.lastFocus = 0, this.lastTouch = 0, this.lastChromeDelete = 0, this.composing = !1, this.compositionNode = null, this.composingTimeout = -1, this.compositionNodes = [], this.compositionEndedAt = -2e8, this.compositionID = 1, this.compositionPendingChanges = 0, this.domChangeCount = 0, this.eventHandlers = /* @__PURE__ */ Object.create(null), this.hideSelectionGuard = null;\n }\n}\nfunction Yp(t) {\n for (let e in Me) {\n let n = Me[e];\n t.dom.addEventListener(e, t.input.eventHandlers[e] = (r) => {\n Qp(t, r) && !Di(t, r) && (t.editable || !(r.type in Te)) && n(t, r);\n }, Jp[e] ? { passive: !0 } : void 0);\n }\n ve && t.dom.addEventListener(\"input\", () => null), Jo(t);\n}\nfunction Ot(t, e) {\n t.input.lastSelectionOrigin = e, t.input.lastSelectionTime = Date.now();\n}\nfunction Xp(t) {\n t.domObserver.stop();\n for (let e in t.input.eventHandlers)\n t.dom.removeEventListener(e, t.input.eventHandlers[e]);\n clearTimeout(t.input.composingTimeout), clearTimeout(t.input.lastIOSEnterFallbackTimeout);\n}\nfunction Jo(t) {\n t.someProp(\"handleDOMEvents\", (e) => {\n for (let n in e)\n t.input.eventHandlers[n] || t.dom.addEventListener(n, t.input.eventHandlers[n] = (r) => Di(t, r));\n });\n}\nfunction Di(t, e) {\n return t.someProp(\"handleDOMEvents\", (n) => {\n let r = n[e.type];\n return r ? r(t, e) || e.defaultPrevented : !1;\n });\n}\nfunction Qp(t, e) {\n if (!e.bubbles)\n return !0;\n if (e.defaultPrevented)\n return !1;\n for (let n = e.target; n != t.dom; n = n.parentNode)\n if (!n || n.nodeType == 11 || n.pmViewDesc && n.pmViewDesc.stopEvent(e))\n return !1;\n return !0;\n}\nfunction Zp(t, e) {\n !Di(t, e) && Me[e.type] && (t.editable || !(e.type in Te)) && Me[e.type](t, e);\n}\nTe.keydown = (t, e) => {\n let n = e;\n if (t.input.shiftKey = n.keyCode == 16 || n.shiftKey, !Id(t, n) && (t.input.lastKeyCode = n.keyCode, t.input.lastKeyCodeTime = Date.now(), !(pt && we && n.keyCode == 13)))\n if (n.keyCode != 229 && t.domObserver.forceFlush(), An && n.keyCode == 13 && !n.ctrlKey && !n.altKey && !n.metaKey) {\n let r = Date.now();\n t.input.lastIOSEnter = r, t.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n t.input.lastIOSEnter == r && (t.someProp(\"handleKeyDown\", (s) => s(t, Ft(13, \"Enter\"))), t.input.lastIOSEnter = 0);\n }, 200);\n } else t.someProp(\"handleKeyDown\", (r) => r(t, n)) || jp(t, n) ? n.preventDefault() : Ot(t, \"key\");\n};\nTe.keyup = (t, e) => {\n e.keyCode == 16 && (t.input.shiftKey = !1);\n};\nTe.keypress = (t, e) => {\n let n = e;\n if (Id(t, n) || !n.charCode || n.ctrlKey && !n.altKey || $e && n.metaKey)\n return;\n if (t.someProp(\"handleKeyPress\", (s) => s(t, n))) {\n n.preventDefault();\n return;\n }\n let r = t.state.selection;\n if (!(r instanceof P) || !r.$from.sameParent(r.$to)) {\n let s = String.fromCharCode(n.charCode), o = () => t.state.tr.insertText(s).scrollIntoView();\n !/[\\r\\n]/.test(s) && !t.someProp(\"handleTextInput\", (i) => i(t, r.$from.pos, r.$to.pos, s, o)) && t.dispatch(o()), n.preventDefault();\n }\n};\nfunction _s(t) {\n return { left: t.clientX, top: t.clientY };\n}\nfunction em(t, e) {\n let n = e.x - t.clientX, r = e.y - t.clientY;\n return n * n + r * r < 100;\n}\nfunction Ii(t, e, n, r, s) {\n if (r == -1)\n return !1;\n let o = t.state.doc.resolve(r);\n for (let i = o.depth + 1; i > 0; i--)\n if (t.someProp(e, (l) => i > o.depth ? l(t, n, o.nodeAfter, o.before(i), s, !0) : l(t, n, o.node(i), o.before(i), s, !1)))\n return !0;\n return !1;\n}\nfunction vn(t, e, n) {\n if (t.focused || t.focus(), t.state.selection.eq(e))\n return;\n let r = t.state.tr.setSelection(e);\n r.setMeta(\"pointer\", !0), t.dispatch(r);\n}\nfunction tm(t, e) {\n if (e == -1)\n return !1;\n let n = t.state.doc.resolve(e), r = n.nodeAfter;\n return r && r.isAtom && D.isSelectable(r) ? (vn(t, new D(n)), !0) : !1;\n}\nfunction nm(t, e) {\n if (e == -1)\n return !1;\n let n = t.state.selection, r, s;\n n instanceof D && (r = n.node);\n let o = t.state.doc.resolve(e);\n for (let i = o.depth + 1; i > 0; i--) {\n let l = i > o.depth ? o.nodeAfter : o.node(i);\n if (D.isSelectable(l)) {\n r && n.$from.depth > 0 && i >= n.$from.depth && o.before(n.$from.depth + 1) == n.$from.pos ? s = o.before(n.$from.depth) : s = o.before(i);\n break;\n }\n }\n return s != null ? (vn(t, D.create(t.state.doc, s)), !0) : !1;\n}\nfunction rm(t, e, n, r, s) {\n return Ii(t, \"handleClickOn\", e, n, r) || t.someProp(\"handleClick\", (o) => o(t, e, r)) || (s ? nm(t, n) : tm(t, n));\n}\nfunction sm(t, e, n, r) {\n return Ii(t, \"handleDoubleClickOn\", e, n, r) || t.someProp(\"handleDoubleClick\", (s) => s(t, e, r));\n}\nfunction om(t, e, n, r) {\n return Ii(t, \"handleTripleClickOn\", e, n, r) || t.someProp(\"handleTripleClick\", (s) => s(t, e, r)) || im(t, n, r);\n}\nfunction im(t, e, n) {\n if (n.button != 0)\n return !1;\n let r = t.state.doc;\n if (e == -1)\n return r.inlineContent ? (vn(t, P.create(r, 0, r.content.size)), !0) : !1;\n let s = r.resolve(e);\n for (let o = s.depth + 1; o > 0; o--) {\n let i = o > s.depth ? s.nodeAfter : s.node(o), l = s.before(o);\n if (i.inlineContent)\n vn(t, P.create(r, l + 1, l + 1 + i.content.size));\n else if (D.isSelectable(i))\n vn(t, D.create(r, l));\n else\n continue;\n return !0;\n }\n}\nfunction Li(t) {\n return Yr(t);\n}\nconst Dd = $e ? \"metaKey\" : \"ctrlKey\";\nMe.mousedown = (t, e) => {\n let n = e;\n t.input.shiftKey = n.shiftKey;\n let r = Li(t), s = Date.now(), o = \"singleClick\";\n s - t.input.lastClick.time < 500 && em(n, t.input.lastClick) && !n[Dd] && t.input.lastClick.button == n.button && (t.input.lastClick.type == \"singleClick\" ? o = \"doubleClick\" : t.input.lastClick.type == \"doubleClick\" && (o = \"tripleClick\")), t.input.lastClick = { time: s, x: n.clientX, y: n.clientY, type: o, button: n.button };\n let i = t.posAtCoords(_s(n));\n i && (o == \"singleClick\" ? (t.input.mouseDown && t.input.mouseDown.done(), t.input.mouseDown = new lm(t, i, n, !!r)) : (o == \"doubleClick\" ? sm : om)(t, i.pos, i.inside, n) ? n.preventDefault() : Ot(t, \"pointer\"));\n};\nclass lm {\n constructor(e, n, r, s) {\n this.view = e, this.pos = n, this.event = r, this.flushed = s, this.delayedSelectionSync = !1, this.mightDrag = null, this.startDoc = e.state.doc, this.selectNode = !!r[Dd], this.allowDefault = r.shiftKey;\n let o, i;\n if (n.inside > -1)\n o = e.state.doc.nodeAt(n.inside), i = n.inside;\n else {\n let d = e.state.doc.resolve(n.pos);\n o = d.parent, i = d.depth ? d.before() : 0;\n }\n const l = s ? null : r.target, a = l ? e.docView.nearestDesc(l, !0) : null;\n this.target = a && a.nodeDOM.nodeType == 1 ? a.nodeDOM : null;\n let { selection: c } = e.state;\n (r.button == 0 && o.type.spec.draggable && o.type.spec.selectable !== !1 || c instanceof D && c.from <= i && c.to > i) && (this.mightDrag = {\n node: o,\n pos: i,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && je && !this.target.hasAttribute(\"contentEditable\"))\n }), this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable) && (this.view.domObserver.stop(), this.mightDrag.addAttr && (this.target.draggable = !0), this.mightDrag.setUneditable && setTimeout(() => {\n this.view.input.mouseDown == this && this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20), this.view.domObserver.start()), e.root.addEventListener(\"mouseup\", this.up = this.up.bind(this)), e.root.addEventListener(\"mousemove\", this.move = this.move.bind(this)), Ot(e, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up), this.view.root.removeEventListener(\"mousemove\", this.move), this.mightDrag && this.target && (this.view.domObserver.stop(), this.mightDrag.addAttr && this.target.removeAttribute(\"draggable\"), this.mightDrag.setUneditable && this.target.removeAttribute(\"contentEditable\"), this.view.domObserver.start()), this.delayedSelectionSync && setTimeout(() => gt(this.view)), this.view.input.mouseDown = null;\n }\n up(e) {\n if (this.done(), !this.view.dom.contains(e.target))\n return;\n let n = this.pos;\n this.view.state.doc != this.startDoc && (n = this.view.posAtCoords(_s(e))), this.updateAllowDefault(e), this.allowDefault || !n ? Ot(this.view, \"pointer\") : rm(this.view, n.pos, n.inside, e, this.selectNode) ? e.preventDefault() : e.button == 0 && (this.flushed || // Safari ignores clicks on draggable elements\n ve && this.mightDrag && !this.mightDrag.node.isAtom || // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n we && !this.view.state.selection.visible && Math.min(Math.abs(n.pos - this.view.state.selection.from), Math.abs(n.pos - this.view.state.selection.to)) <= 2) ? (vn(this.view, B.near(this.view.state.doc.resolve(n.pos))), e.preventDefault()) : Ot(this.view, \"pointer\");\n }\n move(e) {\n this.updateAllowDefault(e), Ot(this.view, \"pointer\"), e.buttons == 0 && this.done();\n }\n updateAllowDefault(e) {\n !this.allowDefault && (Math.abs(this.event.x - e.clientX) > 4 || Math.abs(this.event.y - e.clientY) > 4) && (this.allowDefault = !0);\n }\n}\nMe.touchstart = (t) => {\n t.input.lastTouch = Date.now(), Li(t), Ot(t, \"pointer\");\n};\nMe.touchmove = (t) => {\n t.input.lastTouch = Date.now(), Ot(t, \"pointer\");\n};\nMe.contextmenu = (t) => Li(t);\nfunction Id(t, e) {\n return t.composing ? !0 : ve && Math.abs(e.timeStamp - t.input.compositionEndedAt) < 500 ? (t.input.compositionEndedAt = -2e8, !0) : !1;\n}\nconst am = pt ? 5e3 : -1;\nTe.compositionstart = Te.compositionupdate = (t) => {\n if (!t.composing) {\n t.domObserver.flush();\n let { state: e } = t, n = e.selection.$to;\n if (e.selection instanceof P && (e.storedMarks || !n.textOffset && n.parentOffset && n.nodeBefore.marks.some((r) => r.type.spec.inclusive === !1)))\n t.markCursor = t.state.storedMarks || n.marks(), Yr(t, !0), t.markCursor = null;\n else if (Yr(t, !e.selection.empty), je && e.selection.empty && n.parentOffset && !n.textOffset && n.nodeBefore.marks.length) {\n let r = t.domSelectionRange();\n for (let s = r.focusNode, o = r.focusOffset; s && s.nodeType == 1 && o != 0; ) {\n let i = o < 0 ? s.lastChild : s.childNodes[o - 1];\n if (!i)\n break;\n if (i.nodeType == 3) {\n let l = t.domSelection();\n l && l.collapse(i, i.nodeValue.length);\n break;\n } else\n s = i, o = -1;\n }\n }\n t.input.composing = !0;\n }\n Ld(t, am);\n};\nTe.compositionend = (t, e) => {\n t.composing && (t.input.composing = !1, t.input.compositionEndedAt = e.timeStamp, t.input.compositionPendingChanges = t.domObserver.pendingRecords().length ? t.input.compositionID : 0, t.input.compositionNode = null, t.input.compositionPendingChanges && Promise.resolve().then(() => t.domObserver.flush()), t.input.compositionID++, Ld(t, 20));\n};\nfunction Ld(t, e) {\n clearTimeout(t.input.composingTimeout), e > -1 && (t.input.composingTimeout = setTimeout(() => Yr(t), e));\n}\nfunction Pd(t) {\n for (t.composing && (t.input.composing = !1, t.input.compositionEndedAt = dm()); t.input.compositionNodes.length > 0; )\n t.input.compositionNodes.pop().markParentsDirty();\n}\nfunction cm(t) {\n let e = t.domSelectionRange();\n if (!e.focusNode)\n return null;\n let n = tp(e.focusNode, e.focusOffset), r = np(e.focusNode, e.focusOffset);\n if (n && r && n != r) {\n let s = r.pmViewDesc, o = t.domObserver.lastChangedTextNode;\n if (n == o || r == o)\n return o;\n if (!s || !s.isText(r.nodeValue))\n return r;\n if (t.input.compositionNode == r) {\n let i = n.pmViewDesc;\n if (!(!i || !i.isText(n.nodeValue)))\n return r;\n }\n }\n return n || r;\n}\nfunction dm() {\n let t = document.createEvent(\"Event\");\n return t.initEvent(\"event\", !0, !0), t.timeStamp;\n}\nfunction Yr(t, e = !1) {\n if (!(pt && t.domObserver.flushingSoon >= 0)) {\n if (t.domObserver.forceFlush(), Pd(t), e || t.docView && t.docView.dirty) {\n let n = Ni(t), r = t.state.selection;\n return n && !n.eq(r) ? t.dispatch(t.state.tr.setSelection(n)) : (t.markCursor || e) && !r.$from.node(r.$from.sharedDepth(r.to)).inlineContent ? t.dispatch(t.state.tr.deleteSelection()) : t.updateState(t.state), !0;\n }\n return !1;\n }\n}\nfunction um(t, e) {\n if (!t.dom.parentNode)\n return;\n let n = t.dom.parentNode.appendChild(document.createElement(\"div\"));\n n.appendChild(e), n.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let r = getSelection(), s = document.createRange();\n s.selectNodeContents(e), t.dom.blur(), r.removeAllRanges(), r.addRange(s), setTimeout(() => {\n n.parentNode && n.parentNode.removeChild(n), t.focus();\n }, 50);\n}\nconst rr = Ne && Dt < 15 || An && lp < 604;\nMe.copy = Te.cut = (t, e) => {\n let n = e, r = t.state.selection, s = n.type == \"cut\";\n if (r.empty)\n return;\n let o = rr ? null : n.clipboardData, i = r.content(), { dom: l, text: a } = Ri(t, i);\n o ? (n.preventDefault(), o.clearData(), o.setData(\"text/html\", l.innerHTML), o.setData(\"text/plain\", a)) : um(t, l), s && t.dispatch(t.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction fm(t) {\n return t.openStart == 0 && t.openEnd == 0 && t.content.childCount == 1 ? t.content.firstChild : null;\n}\nfunction hm(t, e) {\n if (!t.dom.parentNode)\n return;\n let n = t.input.shiftKey || t.state.selection.$from.parent.type.spec.code, r = t.dom.parentNode.appendChild(document.createElement(n ? \"textarea\" : \"div\"));\n n || (r.contentEditable = \"true\"), r.style.cssText = \"position: fixed; left: -10000px; top: 10px\", r.focus();\n let s = t.input.shiftKey && t.input.lastKeyCode != 45;\n setTimeout(() => {\n t.focus(), r.parentNode && r.parentNode.removeChild(r), n ? sr(t, r.value, null, s, e) : sr(t, r.textContent, r.innerHTML, s, e);\n }, 50);\n}\nfunction sr(t, e, n, r, s) {\n let o = Td(t, e, n, r, t.state.selection.$from);\n if (t.someProp(\"handlePaste\", (a) => a(t, s, o || A.empty)))\n return !0;\n if (!o)\n return !1;\n let i = fm(o), l = i ? t.state.tr.replaceSelectionWith(i, r) : t.state.tr.replaceSelection(o);\n return t.dispatch(l.scrollIntoView().setMeta(\"paste\", !0).setMeta(\"uiEvent\", \"paste\")), !0;\n}\nfunction zd(t) {\n let e = t.getData(\"text/plain\") || t.getData(\"Text\");\n if (e)\n return e;\n let n = t.getData(\"text/uri-list\");\n return n ? n.replace(/\\r?\\n/g, \" \") : \"\";\n}\nTe.paste = (t, e) => {\n let n = e;\n if (t.composing && !pt)\n return;\n let r = rr ? null : n.clipboardData, s = t.input.shiftKey && t.input.lastKeyCode != 45;\n r && sr(t, zd(r), r.getData(\"text/html\"), s, n) ? n.preventDefault() : hm(t, n);\n};\nclass Bd {\n constructor(e, n, r) {\n this.slice = e, this.move = n, this.node = r;\n }\n}\nconst pm = $e ? \"altKey\" : \"ctrlKey\";\nfunction $d(t, e) {\n let n = t.someProp(\"dragCopies\", (r) => !r(e));\n return n ?? !e[pm];\n}\nMe.dragstart = (t, e) => {\n let n = e, r = t.input.mouseDown;\n if (r && r.done(), !n.dataTransfer)\n return;\n let s = t.state.selection, o = s.empty ? null : t.posAtCoords(_s(n)), i;\n if (!(o && o.pos >= s.from && o.pos <= (s instanceof D ? s.to - 1 : s.to))) {\n if (r && r.mightDrag)\n i = D.create(t.state.doc, r.mightDrag.pos);\n else if (n.target && n.target.nodeType == 1) {\n let u = t.docView.nearestDesc(n.target, !0);\n u && u.node.type.spec.draggable && u != t.docView && (i = D.create(t.state.doc, u.posBefore));\n }\n }\n let l = (i || t.state.selection).content(), { dom: a, text: c, slice: d } = Ri(t, l);\n (!n.dataTransfer.files.length || !we || dd > 120) && n.dataTransfer.clearData(), n.dataTransfer.setData(rr ? \"Text\" : \"text/html\", a.innerHTML), n.dataTransfer.effectAllowed = \"copyMove\", rr || n.dataTransfer.setData(\"text/plain\", c), t.dragging = new Bd(d, $d(t, n), i);\n};\nMe.dragend = (t) => {\n let e = t.dragging;\n window.setTimeout(() => {\n t.dragging == e && (t.dragging = null);\n }, 50);\n};\nTe.dragover = Te.dragenter = (t, e) => e.preventDefault();\nTe.drop = (t, e) => {\n let n = e, r = t.dragging;\n if (t.dragging = null, !n.dataTransfer)\n return;\n let s = t.posAtCoords(_s(n));\n if (!s)\n return;\n let o = t.state.doc.resolve(s.pos), i = r && r.slice;\n i ? t.someProp(\"transformPasted\", (p) => {\n i = p(i, t, !1);\n }) : i = Td(t, zd(n.dataTransfer), rr ? null : n.dataTransfer.getData(\"text/html\"), !1, o);\n let l = !!(r && $d(t, n));\n if (t.someProp(\"handleDrop\", (p) => p(t, n, i || A.empty, l))) {\n n.preventDefault();\n return;\n }\n if (!i)\n return;\n n.preventDefault();\n let a = i ? Fc(t.state.doc, o.pos, i) : o.pos;\n a == null && (a = o.pos);\n let c = t.state.tr;\n if (l) {\n let { node: p } = r;\n p ? p.replace(c) : c.deleteSelection();\n }\n let d = c.mapping.map(a), u = i.openStart == 0 && i.openEnd == 0 && i.content.childCount == 1, f = c.doc;\n if (u ? c.replaceRangeWith(d, d, i.content.firstChild) : c.replaceRange(d, d, i), c.doc.eq(f))\n return;\n let h = c.doc.resolve(d);\n if (u && D.isSelectable(i.content.firstChild) && h.nodeAfter && h.nodeAfter.sameMarkup(i.content.firstChild))\n c.setSelection(new D(h));\n else {\n let p = c.mapping.map(a);\n c.mapping.maps[c.mapping.maps.length - 1].forEach((m, g, y, x) => p = x), c.setSelection(Oi(t, h, c.doc.resolve(p)));\n }\n t.focus(), t.dispatch(c.setMeta(\"uiEvent\", \"drop\"));\n};\nMe.focus = (t) => {\n t.input.lastFocus = Date.now(), t.focused || (t.domObserver.stop(), t.dom.classList.add(\"ProseMirror-focused\"), t.domObserver.start(), t.focused = !0, setTimeout(() => {\n t.docView && t.hasFocus() && !t.domObserver.currentSelection.eq(t.domSelectionRange()) && gt(t);\n }, 20));\n};\nMe.blur = (t, e) => {\n let n = e;\n t.focused && (t.domObserver.stop(), t.dom.classList.remove(\"ProseMirror-focused\"), t.domObserver.start(), n.relatedTarget && t.dom.contains(n.relatedTarget) && t.domObserver.currentSelection.clear(), t.focused = !1);\n};\nMe.beforeinput = (t, e) => {\n if (we && pt && e.inputType == \"deleteContentBackward\") {\n t.domObserver.flushSoon();\n let { domChangeCount: r } = t.input;\n setTimeout(() => {\n if (t.input.domChangeCount != r || (t.dom.blur(), t.focus(), t.someProp(\"handleKeyDown\", (o) => o(t, Ft(8, \"Backspace\")))))\n return;\n let { $cursor: s } = t.state.selection;\n s && s.pos > 0 && t.dispatch(t.state.tr.delete(s.pos - 1, s.pos).scrollIntoView());\n }, 50);\n }\n};\nfor (let t in Te)\n Me[t] = Te[t];\nfunction or(t, e) {\n if (t == e)\n return !0;\n for (let n in t)\n if (t[n] !== e[n])\n return !1;\n for (let n in e)\n if (!(n in t))\n return !1;\n return !0;\n}\nclass Xr {\n constructor(e, n) {\n this.toDOM = e, this.spec = n || Xt, this.side = this.spec.side || 0;\n }\n map(e, n, r, s) {\n let { pos: o, deleted: i } = e.mapResult(n.from + s, this.side < 0 ? -1 : 1);\n return i ? null : new he(o - r, o - r, this);\n }\n valid() {\n return !0;\n }\n eq(e) {\n return this == e || e instanceof Xr && (this.spec.key && this.spec.key == e.spec.key || this.toDOM == e.toDOM && or(this.spec, e.spec));\n }\n destroy(e) {\n this.spec.destroy && this.spec.destroy(e);\n }\n}\nclass Lt {\n constructor(e, n) {\n this.attrs = e, this.spec = n || Xt;\n }\n map(e, n, r, s) {\n let o = e.map(n.from + s, this.spec.inclusiveStart ? -1 : 1) - r, i = e.map(n.to + s, this.spec.inclusiveEnd ? 1 : -1) - r;\n return o >= i ? null : new he(o, i, this);\n }\n valid(e, n) {\n return n.from < n.to;\n }\n eq(e) {\n return this == e || e instanceof Lt && or(this.attrs, e.attrs) && or(this.spec, e.spec);\n }\n static is(e) {\n return e.type instanceof Lt;\n }\n destroy() {\n }\n}\nclass Pi {\n constructor(e, n) {\n this.attrs = e, this.spec = n || Xt;\n }\n map(e, n, r, s) {\n let o = e.mapResult(n.from + s, 1);\n if (o.deleted)\n return null;\n let i = e.mapResult(n.to + s, -1);\n return i.deleted || i.pos <= o.pos ? null : new he(o.pos - r, i.pos - r, this);\n }\n valid(e, n) {\n let { index: r, offset: s } = e.content.findIndex(n.from), o;\n return s == n.from && !(o = e.child(r)).isText && s + o.nodeSize == n.to;\n }\n eq(e) {\n return this == e || e instanceof Pi && or(this.attrs, e.attrs) && or(this.spec, e.spec);\n }\n destroy() {\n }\n}\nclass he {\n /**\n @internal\n */\n constructor(e, n, r) {\n this.from = e, this.to = n, this.type = r;\n }\n /**\n @internal\n */\n copy(e, n) {\n return new he(e, n, this.type);\n }\n /**\n @internal\n */\n eq(e, n = 0) {\n return this.type.eq(e.type) && this.from + n == e.from && this.to + n == e.to;\n }\n /**\n @internal\n */\n map(e, n, r) {\n return this.type.map(e, this, n, r);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(e, n, r) {\n return new he(e, e, new Xr(n, r));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(e, n, r, s) {\n return new he(e, n, new Lt(r, s));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(e, n, r, s) {\n return new he(e, n, new Pi(r, s));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() {\n return this.type.spec;\n }\n /**\n @internal\n */\n get inline() {\n return this.type instanceof Lt;\n }\n /**\n @internal\n */\n get widget() {\n return this.type instanceof Xr;\n }\n}\nconst bn = [], Xt = {};\nclass G {\n /**\n @internal\n */\n constructor(e, n) {\n this.local = e.length ? e : bn, this.children = n.length ? n : bn;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(e, n) {\n return n.length ? Qr(n, e, 0, Xt) : xe;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(e, n, r) {\n let s = [];\n return this.findInner(e ?? 0, n ?? 1e9, s, 0, r), s;\n }\n findInner(e, n, r, s, o) {\n for (let i = 0; i < this.local.length; i++) {\n let l = this.local[i];\n l.from <= n && l.to >= e && (!o || o(l.spec)) && r.push(l.copy(l.from + s, l.to + s));\n }\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] < n && this.children[i + 1] > e) {\n let l = this.children[i] + 1;\n this.children[i + 2].findInner(e - l, n - l, r, s + l, o);\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(e, n, r) {\n return this == xe || e.maps.length == 0 ? this : this.mapInner(e, n, 0, 0, r || Xt);\n }\n /**\n @internal\n */\n mapInner(e, n, r, s, o) {\n let i;\n for (let l = 0; l < this.local.length; l++) {\n let a = this.local[l].map(e, r, s);\n a && a.type.valid(n, a) ? (i || (i = [])).push(a) : o.onRemove && o.onRemove(this.local[l].spec);\n }\n return this.children.length ? mm(this.children, i || [], e, n, r, s, o) : i ? new G(i.sort(Qt), bn) : xe;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(e, n) {\n return n.length ? this == xe ? G.create(e, n) : this.addInner(e, n, 0) : this;\n }\n addInner(e, n, r) {\n let s, o = 0;\n e.forEach((l, a) => {\n let c = a + r, d;\n if (d = _d(n, l, c)) {\n for (s || (s = this.children.slice()); o < s.length && s[o] < a; )\n o += 3;\n s[o] == a ? s[o + 2] = s[o + 2].addInner(l, d, c + 1) : s.splice(o, 0, a, a + l.nodeSize, Qr(d, l, c + 1, Xt)), o += 3;\n }\n });\n let i = Hd(o ? jd(n) : n, -r);\n for (let l = 0; l < i.length; l++)\n i[l].type.valid(e, i[l]) || i.splice(l--, 1);\n return new G(i.length ? this.local.concat(i).sort(Qt) : this.local, s || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(e) {\n return e.length == 0 || this == xe ? this : this.removeInner(e, 0);\n }\n removeInner(e, n) {\n let r = this.children, s = this.local;\n for (let o = 0; o < r.length; o += 3) {\n let i, l = r[o] + n, a = r[o + 1] + n;\n for (let d = 0, u; d < e.length; d++)\n (u = e[d]) && u.from > l && u.to < a && (e[d] = null, (i || (i = [])).push(u));\n if (!i)\n continue;\n r == this.children && (r = this.children.slice());\n let c = r[o + 2].removeInner(i, l + 1);\n c != xe ? r[o + 2] = c : (r.splice(o, 3), o -= 3);\n }\n if (s.length) {\n for (let o = 0, i; o < e.length; o++)\n if (i = e[o])\n for (let l = 0; l < s.length; l++)\n s[l].eq(i, n) && (s == this.local && (s = this.local.slice()), s.splice(l--, 1));\n }\n return r == this.children && s == this.local ? this : s.length || r.length ? new G(s, r) : xe;\n }\n forChild(e, n) {\n if (this == xe)\n return this;\n if (n.isLeaf)\n return G.empty;\n let r, s;\n for (let l = 0; l < this.children.length; l += 3)\n if (this.children[l] >= e) {\n this.children[l] == e && (r = this.children[l + 2]);\n break;\n }\n let o = e + 1, i = o + n.content.size;\n for (let l = 0; l < this.local.length; l++) {\n let a = this.local[l];\n if (a.from < i && a.to > o && a.type instanceof Lt) {\n let c = Math.max(o, a.from) - o, d = Math.min(i, a.to) - o;\n c < d && (s || (s = [])).push(a.copy(c, d));\n }\n }\n if (s) {\n let l = new G(s.sort(Qt), bn);\n return r ? new Mt([l, r]) : l;\n }\n return r || xe;\n }\n /**\n @internal\n */\n eq(e) {\n if (this == e)\n return !0;\n if (!(e instanceof G) || this.local.length != e.local.length || this.children.length != e.children.length)\n return !1;\n for (let n = 0; n < this.local.length; n++)\n if (!this.local[n].eq(e.local[n]))\n return !1;\n for (let n = 0; n < this.children.length; n += 3)\n if (this.children[n] != e.children[n] || this.children[n + 1] != e.children[n + 1] || !this.children[n + 2].eq(e.children[n + 2]))\n return !1;\n return !0;\n }\n /**\n @internal\n */\n locals(e) {\n return zi(this.localsInner(e));\n }\n /**\n @internal\n */\n localsInner(e) {\n if (this == xe)\n return bn;\n if (e.inlineContent || !this.local.some(Lt.is))\n return this.local;\n let n = [];\n for (let r = 0; r < this.local.length; r++)\n this.local[r].type instanceof Lt || n.push(this.local[r]);\n return n;\n }\n forEachSet(e) {\n e(this);\n }\n}\nG.empty = new G([], []);\nG.removeOverlap = zi;\nconst xe = G.empty;\nclass Mt {\n constructor(e) {\n this.members = e;\n }\n map(e, n) {\n const r = this.members.map((s) => s.map(e, n, Xt));\n return Mt.from(r);\n }\n forChild(e, n) {\n if (n.isLeaf)\n return G.empty;\n let r = [];\n for (let s = 0; s < this.members.length; s++) {\n let o = this.members[s].forChild(e, n);\n o != xe && (o instanceof Mt ? r = r.concat(o.members) : r.push(o));\n }\n return Mt.from(r);\n }\n eq(e) {\n if (!(e instanceof Mt) || e.members.length != this.members.length)\n return !1;\n for (let n = 0; n < this.members.length; n++)\n if (!this.members[n].eq(e.members[n]))\n return !1;\n return !0;\n }\n locals(e) {\n let n, r = !0;\n for (let s = 0; s < this.members.length; s++) {\n let o = this.members[s].localsInner(e);\n if (o.length)\n if (!n)\n n = o;\n else {\n r && (n = n.slice(), r = !1);\n for (let i = 0; i < o.length; i++)\n n.push(o[i]);\n }\n }\n return n ? zi(r ? n : n.sort(Qt)) : bn;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(e) {\n switch (e.length) {\n case 0:\n return xe;\n case 1:\n return e[0];\n default:\n return new Mt(e.every((n) => n instanceof G) ? e : e.reduce((n, r) => n.concat(r instanceof G ? r : r.members), []));\n }\n }\n forEachSet(e) {\n for (let n = 0; n < this.members.length; n++)\n this.members[n].forEachSet(e);\n }\n}\nfunction mm(t, e, n, r, s, o, i) {\n let l = t.slice();\n for (let c = 0, d = o; c < n.maps.length; c++) {\n let u = 0;\n n.maps[c].forEach((f, h, p, m) => {\n let g = m - p - (h - f);\n for (let y = 0; y < l.length; y += 3) {\n let x = l[y + 1];\n if (x < 0 || f > x + d - u)\n continue;\n let k = l[y] + d - u;\n h >= k ? l[y + 1] = f <= k ? -2 : -1 : f >= d && g && (l[y] += g, l[y + 1] += g);\n }\n u += g;\n }), d = n.maps[c].map(d, -1);\n }\n let a = !1;\n for (let c = 0; c < l.length; c += 3)\n if (l[c + 1] < 0) {\n if (l[c + 1] == -2) {\n a = !0, l[c + 1] = -1;\n continue;\n }\n let d = n.map(t[c] + o), u = d - s;\n if (u < 0 || u >= r.content.size) {\n a = !0;\n continue;\n }\n let f = n.map(t[c + 1] + o, -1), h = f - s, { index: p, offset: m } = r.content.findIndex(u), g = r.maybeChild(p);\n if (g && m == u && m + g.nodeSize == h) {\n let y = l[c + 2].mapInner(n, g, d + 1, t[c] + o + 1, i);\n y != xe ? (l[c] = u, l[c + 1] = h, l[c + 2] = y) : (l[c + 1] = -2, a = !0);\n } else\n a = !0;\n }\n if (a) {\n let c = gm(l, t, e, n, s, o, i), d = Qr(c, r, 0, i);\n e = d.local;\n for (let u = 0; u < l.length; u += 3)\n l[u + 1] < 0 && (l.splice(u, 3), u -= 3);\n for (let u = 0, f = 0; u < d.children.length; u += 3) {\n let h = d.children[u];\n for (; f < l.length && l[f] < h; )\n f += 3;\n l.splice(f, 0, d.children[u], d.children[u + 1], d.children[u + 2]);\n }\n }\n return new G(e.sort(Qt), l);\n}\nfunction Hd(t, e) {\n if (!e || !t.length)\n return t;\n let n = [];\n for (let r = 0; r < t.length; r++) {\n let s = t[r];\n n.push(new he(s.from + e, s.to + e, s.type));\n }\n return n;\n}\nfunction gm(t, e, n, r, s, o, i) {\n function l(a, c) {\n for (let d = 0; d < a.local.length; d++) {\n let u = a.local[d].map(r, s, c);\n u ? n.push(u) : i.onRemove && i.onRemove(a.local[d].spec);\n }\n for (let d = 0; d < a.children.length; d += 3)\n l(a.children[d + 2], a.children[d] + c + 1);\n }\n for (let a = 0; a < t.length; a += 3)\n t[a + 1] == -1 && l(t[a + 2], e[a] + o + 1);\n return n;\n}\nfunction _d(t, e, n) {\n if (e.isLeaf)\n return null;\n let r = n + e.nodeSize, s = null;\n for (let o = 0, i; o < t.length; o++)\n (i = t[o]) && i.from > n && i.to < r && ((s || (s = [])).push(i), t[o] = null);\n return s;\n}\nfunction jd(t) {\n let e = [];\n for (let n = 0; n < t.length; n++)\n t[n] != null && e.push(t[n]);\n return e;\n}\nfunction Qr(t, e, n, r) {\n let s = [], o = !1;\n e.forEach((l, a) => {\n let c = _d(t, l, a + n);\n if (c) {\n o = !0;\n let d = Qr(c, l, n + a + 1, r);\n d != xe && s.push(a, a + l.nodeSize, d);\n }\n });\n let i = Hd(o ? jd(t) : t, -n).sort(Qt);\n for (let l = 0; l < i.length; l++)\n i[l].type.valid(e, i[l]) || (r.onRemove && r.onRemove(i[l].spec), i.splice(l--, 1));\n return i.length || s.length ? new G(i, s) : xe;\n}\nfunction Qt(t, e) {\n return t.from - e.from || t.to - e.to;\n}\nfunction zi(t) {\n let e = t;\n for (let n = 0; n < e.length - 1; n++) {\n let r = e[n];\n if (r.from != r.to)\n for (let s = n + 1; s < e.length; s++) {\n let o = e[s];\n if (o.from == r.from) {\n o.to != r.to && (e == t && (e = t.slice()), e[s] = o.copy(o.from, r.to), ea(e, s + 1, o.copy(r.to, o.to)));\n continue;\n } else {\n o.from < r.to && (e == t && (e = t.slice()), e[n] = r.copy(r.from, o.from), ea(e, s, r.copy(o.from, r.to)));\n break;\n }\n }\n }\n return e;\n}\nfunction ea(t, e, n) {\n for (; e < t.length && Qt(n, t[e]) > 0; )\n e++;\n t.splice(e, 0, n);\n}\nfunction ao(t) {\n let e = [];\n return t.someProp(\"decorations\", (n) => {\n let r = n(t.state);\n r && r != xe && e.push(r);\n }), t.cursorWrapper && e.push(G.create(t.state.doc, [t.cursorWrapper.deco])), Mt.from(e);\n}\nconst ym = {\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n attributes: !0,\n attributeOldValue: !0,\n subtree: !0\n}, bm = Ne && Dt <= 11;\nclass km {\n constructor() {\n this.anchorNode = null, this.anchorOffset = 0, this.focusNode = null, this.focusOffset = 0;\n }\n set(e) {\n this.anchorNode = e.anchorNode, this.anchorOffset = e.anchorOffset, this.focusNode = e.focusNode, this.focusOffset = e.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(e) {\n return e.anchorNode == this.anchorNode && e.anchorOffset == this.anchorOffset && e.focusNode == this.focusNode && e.focusOffset == this.focusOffset;\n }\n}\nclass xm {\n constructor(e, n) {\n this.view = e, this.handleDOMChange = n, this.queue = [], this.flushingSoon = -1, this.observer = null, this.currentSelection = new km(), this.onCharData = null, this.suppressingSelectionUpdates = !1, this.lastChangedTextNode = null, this.observer = window.MutationObserver && new window.MutationObserver((r) => {\n for (let s = 0; s < r.length; s++)\n this.queue.push(r[s]);\n Ne && Dt <= 11 && r.some((s) => s.type == \"childList\" && s.removedNodes.length || s.type == \"characterData\" && s.oldValue.length > s.target.nodeValue.length) ? this.flushSoon() : this.flush();\n }), bm && (this.onCharData = (r) => {\n this.queue.push({ target: r.target, type: \"characterData\", oldValue: r.prevValue }), this.flushSoon();\n }), this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n this.flushingSoon < 0 && (this.flushingSoon = window.setTimeout(() => {\n this.flushingSoon = -1, this.flush();\n }, 20));\n }\n forceFlush() {\n this.flushingSoon > -1 && (window.clearTimeout(this.flushingSoon), this.flushingSoon = -1, this.flush());\n }\n start() {\n this.observer && (this.observer.takeRecords(), this.observer.observe(this.view.dom, ym)), this.onCharData && this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData), this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let e = this.observer.takeRecords();\n if (e.length) {\n for (let n = 0; n < e.length; n++)\n this.queue.push(e[n]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n this.onCharData && this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData), this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = !0, setTimeout(() => this.suppressingSelectionUpdates = !1, 50);\n }\n onSelectionChange() {\n if (Kl(this.view)) {\n if (this.suppressingSelectionUpdates)\n return gt(this.view);\n if (Ne && Dt <= 11 && !this.view.state.selection.empty) {\n let e = this.view.domSelectionRange();\n if (e.focusNode && nn(e.focusNode, e.focusOffset, e.anchorNode, e.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(e) {\n if (!e.focusNode)\n return !0;\n let n = /* @__PURE__ */ new Set(), r;\n for (let o = e.focusNode; o; o = En(o))\n n.add(o);\n for (let o = e.anchorNode; o; o = En(o))\n if (n.has(o)) {\n r = o;\n break;\n }\n let s = r && this.view.docView.nearestDesc(r);\n if (s && s.ignoreMutation({\n type: \"selection\",\n target: r.nodeType == 3 ? r.parentNode : r\n }))\n return this.setCurSelection(), !0;\n }\n pendingRecords() {\n if (this.observer)\n for (let e of this.observer.takeRecords())\n this.queue.push(e);\n return this.queue;\n }\n flush() {\n let { view: e } = this;\n if (!e.docView || this.flushingSoon > -1)\n return;\n let n = this.pendingRecords();\n n.length && (this.queue = []);\n let r = e.domSelectionRange(), s = !this.suppressingSelectionUpdates && !this.currentSelection.eq(r) && Kl(e) && !this.ignoreSelectionChange(r), o = -1, i = -1, l = !1, a = [];\n if (e.editable)\n for (let d = 0; d < n.length; d++) {\n let u = this.registerMutation(n[d], a);\n u && (o = o < 0 ? u.from : Math.min(u.from, o), i = i < 0 ? u.to : Math.max(u.to, i), u.typeOver && (l = !0));\n }\n if (je && a.length) {\n let d = a.filter((u) => u.nodeName == \"BR\");\n if (d.length == 2) {\n let [u, f] = d;\n u.parentNode && u.parentNode.parentNode == f.parentNode ? f.remove() : u.remove();\n } else {\n let { focusNode: u } = this.currentSelection;\n for (let f of d) {\n let h = f.parentNode;\n h && h.nodeName == \"LI\" && (!u || Cm(e, u) != h) && f.remove();\n }\n }\n }\n let c = null;\n o < 0 && s && e.input.lastFocus > Date.now() - 200 && Math.max(e.input.lastTouch, e.input.lastClick.time) < Date.now() - 300 && $s(r) && (c = Ni(e)) && c.eq(B.near(e.state.doc.resolve(0), 1)) ? (e.input.lastFocus = 0, gt(e), this.currentSelection.set(r), e.scrollToSelection()) : (o > -1 || s) && (o > -1 && (e.docView.markDirty(o, i), wm(e)), this.handleDOMChange(o, i, l, a), e.docView && e.docView.dirty ? e.updateState(e.state) : this.currentSelection.eq(r) || gt(e), this.currentSelection.set(r));\n }\n registerMutation(e, n) {\n if (n.indexOf(e.target) > -1)\n return null;\n let r = this.view.docView.nearestDesc(e.target);\n if (e.type == \"attributes\" && (r == this.view.docView || e.attributeName == \"contenteditable\" || // Firefox sometimes fires spurious events for null/empty styles\n e.attributeName == \"style\" && !e.oldValue && !e.target.getAttribute(\"style\")) || !r || r.ignoreMutation(e))\n return null;\n if (e.type == \"childList\") {\n for (let d = 0; d < e.addedNodes.length; d++) {\n let u = e.addedNodes[d];\n n.push(u), u.nodeType == 3 && (this.lastChangedTextNode = u);\n }\n if (r.contentDOM && r.contentDOM != r.dom && !r.contentDOM.contains(e.target))\n return { from: r.posBefore, to: r.posAfter };\n let s = e.previousSibling, o = e.nextSibling;\n if (Ne && Dt <= 11 && e.addedNodes.length)\n for (let d = 0; d < e.addedNodes.length; d++) {\n let { previousSibling: u, nextSibling: f } = e.addedNodes[d];\n (!u || Array.prototype.indexOf.call(e.addedNodes, u) < 0) && (s = u), (!f || Array.prototype.indexOf.call(e.addedNodes, f) < 0) && (o = f);\n }\n let i = s && s.parentNode == e.target ? be(s) + 1 : 0, l = r.localPosFromDOM(e.target, i, -1), a = o && o.parentNode == e.target ? be(o) : e.target.childNodes.length, c = r.localPosFromDOM(e.target, a, 1);\n return { from: l, to: c };\n } else return e.type == \"attributes\" ? { from: r.posAtStart - r.border, to: r.posAtEnd + r.border } : (this.lastChangedTextNode = e.target, {\n from: r.posAtStart,\n to: r.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: e.target.nodeValue == e.oldValue\n });\n }\n}\nlet ta = /* @__PURE__ */ new WeakMap(), na = !1;\nfunction wm(t) {\n if (!ta.has(t) && (ta.set(t, null), [\"normal\", \"nowrap\", \"pre-line\"].indexOf(getComputedStyle(t.dom).whiteSpace) !== -1)) {\n if (t.requiresGeckoHackNode = je, na)\n return;\n console.warn(\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\"), na = !0;\n }\n}\nfunction ra(t, e) {\n let n = e.startContainer, r = e.startOffset, s = e.endContainer, o = e.endOffset, i = t.domAtPos(t.state.selection.anchor);\n return nn(i.node, i.offset, s, o) && ([n, r, s, o] = [s, o, n, r]), { anchorNode: n, anchorOffset: r, focusNode: s, focusOffset: o };\n}\nfunction Sm(t, e) {\n if (e.getComposedRanges) {\n let s = e.getComposedRanges(t.root)[0];\n if (s)\n return ra(t, s);\n }\n let n;\n function r(s) {\n s.preventDefault(), s.stopImmediatePropagation(), n = s.getTargetRanges()[0];\n }\n return t.dom.addEventListener(\"beforeinput\", r, !0), document.execCommand(\"indent\"), t.dom.removeEventListener(\"beforeinput\", r, !0), n ? ra(t, n) : null;\n}\nfunction Cm(t, e) {\n for (let n = e.parentNode; n && n != t.dom; n = n.parentNode) {\n let r = t.docView.nearestDesc(n, !0);\n if (r && r.node.isBlock)\n return n;\n }\n return null;\n}\nfunction vm(t, e, n) {\n let { node: r, fromOffset: s, toOffset: o, from: i, to: l } = t.docView.parseRange(e, n), a = t.domSelectionRange(), c, d = a.anchorNode;\n if (d && t.dom.contains(d.nodeType == 1 ? d : d.parentNode) && (c = [{ node: d, offset: a.anchorOffset }], $s(a) || c.push({ node: a.focusNode, offset: a.focusOffset })), we && t.input.lastKeyCode === 8)\n for (let g = o; g > s; g--) {\n let y = r.childNodes[g - 1], x = y.pmViewDesc;\n if (y.nodeName == \"BR\" && !x) {\n o = g;\n break;\n }\n if (!x || x.size)\n break;\n }\n let u = t.state.doc, f = t.someProp(\"domParser\") || Rt.fromSchema(t.state.schema), h = u.resolve(i), p = null, m = f.parse(r, {\n topNode: h.parent,\n topMatch: h.parent.contentMatchAt(h.index()),\n topOpen: !0,\n from: s,\n to: o,\n preserveWhitespace: h.parent.type.whitespace == \"pre\" ? \"full\" : !0,\n findPositions: c,\n ruleFromNode: Mm,\n context: h\n });\n if (c && c[0].pos != null) {\n let g = c[0].pos, y = c[1] && c[1].pos;\n y == null && (y = g), p = { anchor: g + i, head: y + i };\n }\n return { doc: m, sel: p, from: i, to: l };\n}\nfunction Mm(t) {\n let e = t.pmViewDesc;\n if (e)\n return e.parseRule();\n if (t.nodeName == \"BR\" && t.parentNode) {\n if (ve && /^(ul|ol)$/i.test(t.parentNode.nodeName)) {\n let n = document.createElement(\"div\");\n return n.appendChild(document.createElement(\"li\")), { skip: n };\n } else if (t.parentNode.lastChild == t || ve && /^(tr|table)$/i.test(t.parentNode.nodeName))\n return { ignore: !0 };\n } else if (t.nodeName == \"IMG\" && t.getAttribute(\"mark-placeholder\"))\n return { ignore: !0 };\n return null;\n}\nconst Tm = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction Em(t, e, n, r, s) {\n let o = t.input.compositionPendingChanges || (t.composing ? t.input.compositionID : 0);\n if (t.input.compositionPendingChanges = 0, e < 0) {\n let S = t.input.lastSelectionTime > Date.now() - 50 ? t.input.lastSelectionOrigin : null, C = Ni(t, S);\n if (C && !t.state.selection.eq(C)) {\n if (we && pt && t.input.lastKeyCode === 13 && Date.now() - 100 < t.input.lastKeyCodeTime && t.someProp(\"handleKeyDown\", (W) => W(t, Ft(13, \"Enter\"))))\n return;\n let L = t.state.tr.setSelection(C);\n S == \"pointer\" ? L.setMeta(\"pointer\", !0) : S == \"key\" && L.scrollIntoView(), o && L.setMeta(\"composition\", o), t.dispatch(L);\n }\n return;\n }\n let i = t.state.doc.resolve(e), l = i.sharedDepth(n);\n e = i.before(l + 1), n = t.state.doc.resolve(n).after(l + 1);\n let a = t.state.selection, c = vm(t, e, n), d = t.state.doc, u = d.slice(c.from, c.to), f, h;\n t.input.lastKeyCode === 8 && Date.now() - 100 < t.input.lastKeyCodeTime ? (f = t.state.selection.to, h = \"end\") : (f = t.state.selection.from, h = \"start\"), t.input.lastKeyCode = null;\n let p = Om(u.content, c.doc.content, c.from, f, h);\n if (p && t.input.domChangeCount++, (An && t.input.lastIOSEnter > Date.now() - 225 || pt) && s.some((S) => S.nodeType == 1 && !Tm.test(S.nodeName)) && (!p || p.endA >= p.endB) && t.someProp(\"handleKeyDown\", (S) => S(t, Ft(13, \"Enter\")))) {\n t.input.lastIOSEnter = 0;\n return;\n }\n if (!p)\n if (r && a instanceof P && !a.empty && a.$head.sameParent(a.$anchor) && !t.composing && !(c.sel && c.sel.anchor != c.sel.head))\n p = { start: a.from, endA: a.to, endB: a.to };\n else {\n if (c.sel) {\n let S = sa(t, t.state.doc, c.sel);\n if (S && !S.eq(t.state.selection)) {\n let C = t.state.tr.setSelection(S);\n o && C.setMeta(\"composition\", o), t.dispatch(C);\n }\n }\n return;\n }\n t.state.selection.from < t.state.selection.to && p.start == p.endB && t.state.selection instanceof P && (p.start > t.state.selection.from && p.start <= t.state.selection.from + 2 && t.state.selection.from >= c.from ? p.start = t.state.selection.from : p.endA < t.state.selection.to && p.endA >= t.state.selection.to - 2 && t.state.selection.to <= c.to && (p.endB += t.state.selection.to - p.endA, p.endA = t.state.selection.to)), Ne && Dt <= 11 && p.endB == p.start + 1 && p.endA == p.start && p.start > c.from && c.doc.textBetween(p.start - c.from - 1, p.start - c.from + 1) == \"  \" && (p.start--, p.endA--, p.endB--);\n let m = c.doc.resolveNoCache(p.start - c.from), g = c.doc.resolveNoCache(p.endB - c.from), y = d.resolve(p.start), x = m.sameParent(g) && m.parent.inlineContent && y.end() >= p.endA;\n if ((An && t.input.lastIOSEnter > Date.now() - 225 && (!x || s.some((S) => S.nodeName == \"DIV\" || S.nodeName == \"P\")) || !x && m.pos < c.doc.content.size && (!m.sameParent(g) || !m.parent.inlineContent) && m.pos < g.pos && !/\\S/.test(c.doc.textBetween(m.pos, g.pos, \"\", \"\"))) && t.someProp(\"handleKeyDown\", (S) => S(t, Ft(13, \"Enter\")))) {\n t.input.lastIOSEnter = 0;\n return;\n }\n if (t.state.selection.anchor > p.start && Nm(d, p.start, p.endA, m, g) && t.someProp(\"handleKeyDown\", (S) => S(t, Ft(8, \"Backspace\")))) {\n pt && we && t.domObserver.suppressSelectionUpdates();\n return;\n }\n we && p.endB == p.start && (t.input.lastChromeDelete = Date.now()), pt && !x && m.start() != g.start() && g.parentOffset == 0 && m.depth == g.depth && c.sel && c.sel.anchor == c.sel.head && c.sel.head == p.endA && (p.endB -= 2, g = c.doc.resolveNoCache(p.endB - c.from), setTimeout(() => {\n t.someProp(\"handleKeyDown\", function(S) {\n return S(t, Ft(13, \"Enter\"));\n });\n }, 20));\n let k = p.start, T = p.endA, b = (S) => {\n let C = S || t.state.tr.replace(k, T, c.doc.slice(p.start - c.from, p.endB - c.from));\n if (c.sel) {\n let L = sa(t, C.doc, c.sel);\n L && !(we && t.composing && L.empty && (p.start != p.endB || t.input.lastChromeDelete < Date.now() - 100) && (L.head == k || L.head == C.mapping.map(T) - 1) || Ne && L.empty && L.head == k) && C.setSelection(L);\n }\n return o && C.setMeta(\"composition\", o), C.scrollIntoView();\n }, E;\n if (x)\n if (m.pos == g.pos) {\n Ne && Dt <= 11 && m.parentOffset == 0 && (t.domObserver.suppressSelectionUpdates(), setTimeout(() => gt(t), 20));\n let S = b(t.state.tr.delete(k, T)), C = d.resolve(p.start).marksAcross(d.resolve(p.endA));\n C && S.ensureMarks(C), t.dispatch(S);\n } else if (\n // Adding or removing a mark\n p.endA == p.endB && (E = Am(m.parent.content.cut(m.parentOffset, g.parentOffset), y.parent.content.cut(y.parentOffset, p.endA - y.start())))\n ) {\n let S = b(t.state.tr);\n E.type == \"add\" ? S.addMark(k, T, E.mark) : S.removeMark(k, T, E.mark), t.dispatch(S);\n } else if (m.parent.child(m.index()).isText && m.index() == g.index() - (g.textOffset ? 0 : 1)) {\n let S = m.parent.textBetween(m.parentOffset, g.parentOffset), C = () => b(t.state.tr.insertText(S, k, T));\n t.someProp(\"handleTextInput\", (L) => L(t, k, T, S, C)) || t.dispatch(C());\n } else\n t.dispatch(b());\n else\n t.dispatch(b());\n}\nfunction sa(t, e, n) {\n return Math.max(n.anchor, n.head) > e.content.size ? null : Oi(t, e.resolve(n.anchor), e.resolve(n.head));\n}\nfunction Am(t, e) {\n let n = t.firstChild.marks, r = e.firstChild.marks, s = n, o = r, i, l, a;\n for (let d = 0; d < r.length; d++)\n s = r[d].removeFromSet(s);\n for (let d = 0; d < n.length; d++)\n o = n[d].removeFromSet(o);\n if (s.length == 1 && o.length == 0)\n l = s[0], i = \"add\", a = (d) => d.mark(l.addToSet(d.marks));\n else if (s.length == 0 && o.length == 1)\n l = o[0], i = \"remove\", a = (d) => d.mark(l.removeFromSet(d.marks));\n else\n return null;\n let c = [];\n for (let d = 0; d < e.childCount; d++)\n c.push(a(e.child(d)));\n if (w.from(c).eq(t))\n return { mark: l, type: i };\n}\nfunction Nm(t, e, n, r, s) {\n if (\n // The content must have shrunk\n n - e <= s.pos - r.pos || // newEnd must point directly at or after the end of the block that newStart points into\n co(r, !0, !1) < s.pos\n )\n return !1;\n let o = t.resolve(e);\n if (!r.parent.isTextblock) {\n let l = o.nodeAfter;\n return l != null && n == e + l.nodeSize;\n }\n if (o.parentOffset < o.parent.content.size || !o.parent.isTextblock)\n return !1;\n let i = t.resolve(co(o, !0, !0));\n return !i.parent.isTextblock || i.pos > n || co(i, !0, !1) < n ? !1 : r.parent.content.cut(r.parentOffset).eq(i.parent.content);\n}\nfunction co(t, e, n) {\n let r = t.depth, s = e ? t.end() : t.pos;\n for (; r > 0 && (e || t.indexAfter(r) == t.node(r).childCount); )\n r--, s++, e = !1;\n if (n) {\n let o = t.node(r).maybeChild(t.indexAfter(r));\n for (; o && !o.isLeaf; )\n o = o.firstChild, s++;\n }\n return s;\n}\nfunction Om(t, e, n, r, s) {\n let o = t.findDiffStart(e, n);\n if (o == null)\n return null;\n let { a: i, b: l } = t.findDiffEnd(e, n + t.size, n + e.size);\n if (s == \"end\") {\n let a = Math.max(0, o - Math.min(i, l));\n r -= i + a - o;\n }\n if (i < o && t.size < e.size) {\n let a = r <= o && r >= i ? o - r : 0;\n o -= a, o && o < e.size && oa(e.textBetween(o - 1, o + 1)) && (o += a ? 1 : -1), l = o + (l - i), i = o;\n } else if (l < o) {\n let a = r <= o && r >= l ? o - r : 0;\n o -= a, o && o < t.size && oa(t.textBetween(o - 1, o + 1)) && (o += a ? 1 : -1), i = o + (i - l), l = o;\n }\n return { start: o, endA: i, endB: l };\n}\nfunction oa(t) {\n if (t.length != 2)\n return !1;\n let e = t.charCodeAt(0), n = t.charCodeAt(1);\n return e >= 56320 && e <= 57343 && n >= 55296 && n <= 56319;\n}\nclass Vd {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(e, n) {\n this._root = null, this.focused = !1, this.trackWrites = null, this.mounted = !1, this.markCursor = null, this.cursorWrapper = null, this.lastSelectedViewDesc = void 0, this.input = new Gp(), this.prevDirectPlugins = [], this.pluginViews = [], this.requiresGeckoHackNode = !1, this.dragging = null, this._props = n, this.state = n.state, this.directPlugins = n.plugins || [], this.directPlugins.forEach(da), this.dispatch = this.dispatch.bind(this), this.dom = e && e.mount || document.createElement(\"div\"), e && (e.appendChild ? e.appendChild(this.dom) : typeof e == \"function\" ? e(this.dom) : e.mount && (this.mounted = !0)), this.editable = aa(this), la(this), this.nodeViews = ca(this), this.docView = _l(this.state.doc, ia(this), ao(this), this.dom, this), this.domObserver = new xm(this, (r, s, o, i) => Em(this, r, s, o, i)), this.domObserver.start(), Yp(this), this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() {\n return this.input.composing;\n }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let e = this._props;\n this._props = {};\n for (let n in e)\n this._props[n] = e[n];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(e) {\n e.handleDOMEvents != this._props.handleDOMEvents && Jo(this);\n let n = this._props;\n this._props = e, e.plugins && (e.plugins.forEach(da), this.directPlugins = e.plugins), this.updateStateInner(e.state, n);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(e) {\n let n = {};\n for (let r in this._props)\n n[r] = this._props[r];\n n.state = this.state;\n for (let r in e)\n n[r] = e[r];\n this.update(n);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(e) {\n this.updateStateInner(e, this._props);\n }\n updateStateInner(e, n) {\n var r;\n let s = this.state, o = !1, i = !1;\n e.storedMarks && this.composing && (Pd(this), i = !0), this.state = e;\n let l = s.plugins != e.plugins || this._props.plugins != n.plugins;\n if (l || this._props.plugins != n.plugins || this._props.nodeViews != n.nodeViews) {\n let h = ca(this);\n Dm(h, this.nodeViews) && (this.nodeViews = h, o = !0);\n }\n (l || n.handleDOMEvents != this._props.handleDOMEvents) && Jo(this), this.editable = aa(this), la(this);\n let a = ao(this), c = ia(this), d = s.plugins != e.plugins && !s.doc.eq(e.doc) ? \"reset\" : e.scrollToSelection > s.scrollToSelection ? \"to selection\" : \"preserve\", u = o || !this.docView.matchesNode(e.doc, c, a);\n (u || !e.selection.eq(s.selection)) && (i = !0);\n let f = d == \"preserve\" && i && this.dom.style.overflowAnchor == null && dp(this);\n if (i) {\n this.domObserver.stop();\n let h = u && (Ne || we) && !this.composing && !s.selection.empty && !e.selection.empty && Rm(s.selection, e.selection);\n if (u) {\n let p = we ? this.trackWrites = this.domSelectionRange().focusNode : null;\n this.composing && (this.input.compositionNode = cm(this)), (o || !this.docView.update(e.doc, c, a, this)) && (this.docView.updateOuterDeco(c), this.docView.destroy(), this.docView = _l(e.doc, c, a, this.dom, this)), p && !this.trackWrites && (h = !0);\n }\n h || !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) && Lp(this)) ? gt(this, h) : (Cd(this, e.selection), this.domObserver.setCurSelection()), this.domObserver.start();\n }\n this.updatePluginViews(s), !((r = this.dragging) === null || r === void 0) && r.node && !s.doc.eq(e.doc) && this.updateDraggedNode(this.dragging, s), d == \"reset\" ? this.dom.scrollTop = 0 : d == \"to selection\" ? this.scrollToSelection() : f && up(f);\n }\n /**\n @internal\n */\n scrollToSelection() {\n let e = this.domSelectionRange().focusNode;\n if (!(!e || !this.dom.contains(e.nodeType == 1 ? e : e.parentNode))) {\n if (!this.someProp(\"handleScrollToSelection\", (n) => n(this))) if (this.state.selection instanceof D) {\n let n = this.docView.domAfterPos(this.state.selection.from);\n n.nodeType == 1 && Ll(this, n.getBoundingClientRect(), e);\n } else\n Ll(this, this.coordsAtPos(this.state.selection.head, 1), e);\n }\n }\n destroyPluginViews() {\n let e;\n for (; e = this.pluginViews.pop(); )\n e.destroy && e.destroy();\n }\n updatePluginViews(e) {\n if (!e || e.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins, this.destroyPluginViews();\n for (let n = 0; n < this.directPlugins.length; n++) {\n let r = this.directPlugins[n];\n r.spec.view && this.pluginViews.push(r.spec.view(this));\n }\n for (let n = 0; n < this.state.plugins.length; n++) {\n let r = this.state.plugins[n];\n r.spec.view && this.pluginViews.push(r.spec.view(this));\n }\n } else\n for (let n = 0; n < this.pluginViews.length; n++) {\n let r = this.pluginViews[n];\n r.update && r.update(this, e);\n }\n }\n updateDraggedNode(e, n) {\n let r = e.node, s = -1;\n if (this.state.doc.nodeAt(r.from) == r.node)\n s = r.from;\n else {\n let o = r.from + (this.state.doc.content.size - n.doc.content.size);\n (o > 0 && this.state.doc.nodeAt(o)) == r.node && (s = o);\n }\n this.dragging = new Bd(e.slice, e.move, s < 0 ? void 0 : D.create(this.state.doc, s));\n }\n someProp(e, n) {\n let r = this._props && this._props[e], s;\n if (r != null && (s = n ? n(r) : r))\n return s;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let l = this.directPlugins[i].props[e];\n if (l != null && (s = n ? n(l) : l))\n return s;\n }\n let o = this.state.plugins;\n if (o)\n for (let i = 0; i < o.length; i++) {\n let l = o[i].props[e];\n if (l != null && (s = n ? n(l) : l))\n return s;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n if (Ne) {\n let e = this.root.activeElement;\n if (e == this.dom)\n return !0;\n if (!e || !this.dom.contains(e))\n return !1;\n for (; e && this.dom != e && this.dom.contains(e); ) {\n if (e.contentEditable == \"false\")\n return !1;\n e = e.parentElement;\n }\n return !0;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop(), this.editable && fp(this.dom), gt(this), this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let e = this._root;\n if (e == null) {\n for (let n = this.dom.parentNode; n; n = n.parentNode)\n if (n.nodeType == 9 || n.nodeType == 11 && n.host)\n return n.getSelection || (Object.getPrototypeOf(n).getSelection = () => n.ownerDocument.getSelection()), this._root = n;\n }\n return e || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(e) {\n return yp(this, e);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(e, n = 1) {\n return md(this, e, n);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(e, n = 0) {\n return this.docView.domFromPos(e, n);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(e) {\n let n = this.docView.descAt(e);\n return n ? n.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(e, n, r = -1) {\n let s = this.docView.posFromDOM(e, n, r);\n if (s == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return s;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(e, n) {\n return Sp(this, n || this.state, e);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(e, n) {\n return sr(this, \"\", e, !1, n || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(e, n) {\n return sr(this, e, null, !0, n || new ClipboardEvent(\"paste\"));\n }\n /**\n Serialize the given slice as it would be if it was copied from\n this editor. Returns a DOM element that contains a\n representation of the slice as its children, a textual\n representation, and the transformed slice (which can be\n different from the given input due to hooks like\n [`transformCopied`](https://prosemirror.net/docs/ref/#view.EditorProps.transformCopied)).\n */\n serializeForClipboard(e) {\n return Ri(this, e);\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n this.docView && (Xp(this), this.destroyPluginViews(), this.mounted ? (this.docView.update(this.state.doc, [], ao(this), this), this.dom.textContent = \"\") : this.dom.parentNode && this.dom.parentNode.removeChild(this.dom), this.docView.destroy(), this.docView = null, Zh());\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(e) {\n return Zp(this, e);\n }\n /**\n @internal\n */\n domSelectionRange() {\n let e = this.domSelection();\n return e ? ve && this.root.nodeType === 11 && sp(this.dom.ownerDocument) == this.dom && Sm(this, e) || e : { focusNode: null, focusOffset: 0, anchorNode: null, anchorOffset: 0 };\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nVd.prototype.dispatch = function(t) {\n let e = this._props.dispatchTransaction;\n e ? e.call(this, t) : this.updateState(this.state.apply(t));\n};\nfunction ia(t) {\n let e = /* @__PURE__ */ Object.create(null);\n return e.class = \"ProseMirror\", e.contenteditable = String(t.editable), t.someProp(\"attributes\", (n) => {\n if (typeof n == \"function\" && (n = n(t.state)), n)\n for (let r in n)\n r == \"class\" ? e.class += \" \" + n[r] : r == \"style\" ? e.style = (e.style ? e.style + \";\" : \"\") + n[r] : !e[r] && r != \"contenteditable\" && r != \"nodeName\" && (e[r] = String(n[r]));\n }), e.translate || (e.translate = \"no\"), [he.node(0, t.state.doc.content.size, e)];\n}\nfunction la(t) {\n if (t.markCursor) {\n let e = document.createElement(\"img\");\n e.className = \"ProseMirror-separator\", e.setAttribute(\"mark-placeholder\", \"true\"), e.setAttribute(\"alt\", \"\"), t.cursorWrapper = { dom: e, deco: he.widget(t.state.selection.from, e, { raw: !0, marks: t.markCursor }) };\n } else\n t.cursorWrapper = null;\n}\nfunction aa(t) {\n return !t.someProp(\"editable\", (e) => e(t.state) === !1);\n}\nfunction Rm(t, e) {\n let n = Math.min(t.$anchor.sharedDepth(t.head), e.$anchor.sharedDepth(e.head));\n return t.$anchor.start(n) != e.$anchor.start(n);\n}\nfunction ca(t) {\n let e = /* @__PURE__ */ Object.create(null);\n function n(r) {\n for (let s in r)\n Object.prototype.hasOwnProperty.call(e, s) || (e[s] = r[s]);\n }\n return t.someProp(\"nodeViews\", n), t.someProp(\"markViews\", n), e;\n}\nfunction Dm(t, e) {\n let n = 0, r = 0;\n for (let s in t) {\n if (t[s] != e[s])\n return !0;\n n++;\n }\n for (let s in e)\n r++;\n return n != r;\n}\nfunction da(t) {\n if (t.spec.state || t.spec.filterTransaction || t.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\nvar Pt = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n}, Zr = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: '\"'\n}, Im = typeof navigator < \"u\" && /Mac/.test(navigator.platform), Lm = typeof navigator < \"u\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\nfor (var ke = 0; ke < 10; ke++) Pt[48 + ke] = Pt[96 + ke] = String(ke);\nfor (var ke = 1; ke <= 24; ke++) Pt[ke + 111] = \"F\" + ke;\nfor (var ke = 65; ke <= 90; ke++)\n Pt[ke] = String.fromCharCode(ke + 32), Zr[ke] = String.fromCharCode(ke);\nfor (var uo in Pt) Zr.hasOwnProperty(uo) || (Zr[uo] = Pt[uo]);\nfunction Pm(t) {\n var e = Im && t.metaKey && t.shiftKey && !t.ctrlKey && !t.altKey || Lm && t.shiftKey && t.key && t.key.length == 1 || t.key == \"Unidentified\", n = !e && t.key || (t.shiftKey ? Zr : Pt)[t.keyCode] || t.key || \"Unidentified\";\n return n == \"Esc\" && (n = \"Escape\"), n == \"Del\" && (n = \"Delete\"), n == \"Left\" && (n = \"ArrowLeft\"), n == \"Up\" && (n = \"ArrowUp\"), n == \"Right\" && (n = \"ArrowRight\"), n == \"Down\" && (n = \"ArrowDown\"), n;\n}\nconst zm = typeof navigator < \"u\" && /Mac|iP(hone|[oa]d)/.test(navigator.platform), Bm = typeof navigator < \"u\" && /Win/.test(navigator.platform);\nfunction $m(t) {\n let e = t.split(/-(?!$)/), n = e[e.length - 1];\n n == \"Space\" && (n = \" \");\n let r, s, o, i;\n for (let l = 0; l < e.length - 1; l++) {\n let a = e[l];\n if (/^(cmd|meta|m)$/i.test(a))\n i = !0;\n else if (/^a(lt)?$/i.test(a))\n r = !0;\n else if (/^(c|ctrl|control)$/i.test(a))\n s = !0;\n else if (/^s(hift)?$/i.test(a))\n o = !0;\n else if (/^mod$/i.test(a))\n zm ? i = !0 : s = !0;\n else\n throw new Error(\"Unrecognized modifier name: \" + a);\n }\n return r && (n = \"Alt-\" + n), s && (n = \"Ctrl-\" + n), i && (n = \"Meta-\" + n), o && (n = \"Shift-\" + n), n;\n}\nfunction Hm(t) {\n let e = /* @__PURE__ */ Object.create(null);\n for (let n in t)\n e[$m(n)] = t[n];\n return e;\n}\nfunction fo(t, e, n = !0) {\n return e.altKey && (t = \"Alt-\" + t), e.ctrlKey && (t = \"Ctrl-\" + t), e.metaKey && (t = \"Meta-\" + t), n && e.shiftKey && (t = \"Shift-\" + t), t;\n}\nfunction _m(t) {\n return new ee({ props: { handleKeyDown: Bi(t) } });\n}\nfunction Bi(t) {\n let e = Hm(t);\n return function(n, r) {\n let s = Pm(r), o, i = e[fo(s, r)];\n if (i && i(n.state, n.dispatch, n))\n return !0;\n if (s.length == 1 && s != \" \") {\n if (r.shiftKey) {\n let l = e[fo(s, r, !1)];\n if (l && l(n.state, n.dispatch, n))\n return !0;\n }\n if ((r.altKey || r.metaKey || r.ctrlKey) && // Ctrl-Alt may be used for AltGr on Windows\n !(Bm && r.ctrlKey && r.altKey) && (o = Pt[r.keyCode]) && o != s) {\n let l = e[fo(o, r)];\n if (l && l(n.state, n.dispatch, n))\n return !0;\n }\n }\n return !1;\n };\n}\nvar jm = Object.defineProperty, $i = (t, e) => {\n for (var n in e)\n jm(t, n, { get: e[n], enumerable: !0 });\n};\nfunction js(t) {\n const { state: e, transaction: n } = t;\n let { selection: r } = n, { doc: s } = n, { storedMarks: o } = n;\n return {\n ...e,\n apply: e.apply.bind(e),\n applyTransaction: e.applyTransaction.bind(e),\n plugins: e.plugins,\n schema: e.schema,\n reconfigure: e.reconfigure.bind(e),\n toJSON: e.toJSON.bind(e),\n get storedMarks() {\n return o;\n },\n get selection() {\n return r;\n },\n get doc() {\n return s;\n },\n get tr() {\n return r = n.selection, s = n.doc, o = n.storedMarks, n;\n }\n };\n}\nvar Vs = class {\n constructor(t) {\n this.editor = t.editor, this.rawCommands = this.editor.extensionManager.commands, this.customState = t.state;\n }\n get hasCustomState() {\n return !!this.customState;\n }\n get state() {\n return this.customState || this.editor.state;\n }\n get commands() {\n const { rawCommands: t, editor: e, state: n } = this, { view: r } = e, { tr: s } = n, o = this.buildProps(s);\n return Object.fromEntries(\n Object.entries(t).map(([i, l]) => [i, (...c) => {\n const d = l(...c)(o);\n return !s.getMeta(\"preventDispatch\") && !this.hasCustomState && r.dispatch(s), d;\n }])\n );\n }\n get chain() {\n return () => this.createChain();\n }\n get can() {\n return () => this.createCan();\n }\n createChain(t, e = !0) {\n const { rawCommands: n, editor: r, state: s } = this, { view: o } = r, i = [], l = !!t, a = t || s.tr, c = () => (!l && e && !a.getMeta(\"preventDispatch\") && !this.hasCustomState && o.dispatch(a), i.every((u) => u === !0)), d = {\n ...Object.fromEntries(\n Object.entries(n).map(([u, f]) => [u, (...p) => {\n const m = this.buildProps(a, e), g = f(...p)(m);\n return i.push(g), d;\n }])\n ),\n run: c\n };\n return d;\n }\n createCan(t) {\n const { rawCommands: e, state: n } = this, r = !1, s = t || n.tr, o = this.buildProps(s, r);\n return {\n ...Object.fromEntries(\n Object.entries(e).map(([l, a]) => [l, (...c) => a(...c)({ ...o, dispatch: void 0 })])\n ),\n chain: () => this.createChain(s, r)\n };\n }\n buildProps(t, e = !0) {\n const { rawCommands: n, editor: r, state: s } = this, { view: o } = r, i = {\n tr: t,\n editor: r,\n view: o,\n state: js({\n state: s,\n transaction: t\n }),\n dispatch: e ? () => {\n } : void 0,\n chain: () => this.createChain(t, e),\n can: () => this.createCan(t),\n get commands() {\n return Object.fromEntries(\n Object.entries(n).map(([l, a]) => [l, (...c) => a(...c)(i)])\n );\n }\n };\n return i;\n }\n}, Fd = {};\n$i(Fd, {\n blur: () => Vm,\n clearContent: () => Fm,\n clearNodes: () => Wm,\n command: () => Um,\n createParagraphNear: () => Km,\n cut: () => qm,\n deleteCurrentNode: () => Jm,\n deleteNode: () => Gm,\n deleteRange: () => Ym,\n deleteSelection: () => Xm,\n enter: () => Qm,\n exitCode: () => Zm,\n extendMarkRange: () => eg,\n first: () => tg,\n focus: () => ng,\n forEach: () => rg,\n insertContent: () => sg,\n insertContentAt: () => lg,\n joinBackward: () => dg,\n joinDown: () => cg,\n joinForward: () => ug,\n joinItemBackward: () => fg,\n joinItemForward: () => hg,\n joinTextblockBackward: () => pg,\n joinTextblockForward: () => mg,\n joinUp: () => ag,\n keyboardShortcut: () => yg,\n lift: () => bg,\n liftEmptyBlock: () => kg,\n liftListItem: () => xg,\n newlineInCode: () => wg,\n resetAttributes: () => Sg,\n scrollIntoView: () => Cg,\n selectAll: () => vg,\n selectNodeBackward: () => Mg,\n selectNodeForward: () => Tg,\n selectParentNode: () => Eg,\n selectTextblockEnd: () => Ag,\n selectTextblockStart: () => Ng,\n setContent: () => Og,\n setMark: () => qg,\n setMeta: () => Jg,\n setNode: () => Gg,\n setNodeSelection: () => Yg,\n setTextDirection: () => Xg,\n setTextSelection: () => Qg,\n sinkListItem: () => Zg,\n splitBlock: () => ey,\n splitListItem: () => ty,\n toggleList: () => ny,\n toggleMark: () => ry,\n toggleNode: () => sy,\n toggleWrap: () => oy,\n undoInputRule: () => iy,\n unsetAllMarks: () => ly,\n unsetMark: () => ay,\n unsetTextDirection: () => cy,\n updateAttributes: () => dy,\n wrapIn: () => uy,\n wrapInList: () => fy\n});\nvar Vm = () => ({ editor: t, view: e }) => (requestAnimationFrame(() => {\n var n;\n t.isDestroyed || (e.dom.blur(), (n = window?.getSelection()) == null || n.removeAllRanges());\n}), !0), Fm = (t = !0) => ({ commands: e }) => e.setContent(\"\", { emitUpdate: t }), Wm = () => ({ state: t, tr: e, dispatch: n }) => {\n const { selection: r } = e, { ranges: s } = r;\n return n && s.forEach(({ $from: o, $to: i }) => {\n t.doc.nodesBetween(o.pos, i.pos, (l, a) => {\n if (l.type.isText)\n return;\n const { doc: c, mapping: d } = e, u = c.resolve(d.map(a)), f = c.resolve(d.map(a + l.nodeSize)), h = u.blockRange(f);\n if (!h)\n return;\n const p = Rn(h);\n if (l.type.isTextblock) {\n const { defaultType: m } = u.parent.contentMatchAt(u.index());\n e.setNodeMarkup(h.start, m);\n }\n (p || p === 0) && e.lift(h, p);\n });\n }), !0;\n}, Um = (t) => (e) => t(e), Km = () => ({ state: t, dispatch: e }) => od(t, e), qm = (t, e) => ({ editor: n, tr: r }) => {\n const { state: s } = n, o = s.doc.slice(t.from, t.to);\n r.deleteRange(t.from, t.to);\n const i = r.mapping.map(e);\n return r.insert(i, o.content), r.setSelection(new P(r.doc.resolve(Math.max(i - 1, 0)))), !0;\n}, Jm = () => ({ tr: t, dispatch: e }) => {\n const { selection: n } = t, r = n.$anchor.node();\n if (r.content.size > 0)\n return !1;\n const s = t.selection.$anchor;\n for (let o = s.depth; o > 0; o -= 1)\n if (s.node(o).type === r.type) {\n if (e) {\n const l = s.before(o), a = s.after(o);\n t.delete(l, a).scrollIntoView();\n }\n return !0;\n }\n return !1;\n};\nfunction ae(t, e) {\n if (typeof t == \"string\") {\n if (!e.nodes[t])\n throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);\n return e.nodes[t];\n }\n return t;\n}\nvar Gm = (t) => ({ tr: e, state: n, dispatch: r }) => {\n const s = ae(t, n.schema), o = e.selection.$anchor;\n for (let i = o.depth; i > 0; i -= 1)\n if (o.node(i).type === s) {\n if (r) {\n const a = o.before(i), c = o.after(i);\n e.delete(a, c).scrollIntoView();\n }\n return !0;\n }\n return !1;\n}, Ym = (t) => ({ tr: e, dispatch: n }) => {\n const { from: r, to: s } = t;\n return n && e.delete(r, s), !0;\n}, Xm = () => ({ state: t, dispatch: e }) => Ci(t, e), Qm = () => ({ commands: t }) => t.keyboardShortcut(\"Enter\"), Zm = () => ({ state: t, dispatch: e }) => $h(t, e);\nfunction Hi(t) {\n return Object.prototype.toString.call(t) === \"[object RegExp]\";\n}\nfunction es(t, e, n = { strict: !0 }) {\n const r = Object.keys(e);\n return r.length ? r.every((s) => n.strict ? e[s] === t[s] : Hi(e[s]) ? e[s].test(t[s]) : e[s] === t[s]) : !0;\n}\nfunction Wd(t, e, n = {}) {\n return t.find((r) => r.type === e && es(\n // Only check equality for the attributes that are provided\n Object.fromEntries(Object.keys(n).map((s) => [s, r.attrs[s]])),\n n\n ));\n}\nfunction ua(t, e, n = {}) {\n return !!Wd(t, e, n);\n}\nfunction _i(t, e, n) {\n var r;\n if (!t || !e)\n return;\n let s = t.parent.childAfter(t.parentOffset);\n if ((!s.node || !s.node.marks.some((d) => d.type === e)) && (s = t.parent.childBefore(t.parentOffset)), !s.node || !s.node.marks.some((d) => d.type === e) || (n = n || ((r = s.node.marks[0]) == null ? void 0 : r.attrs), !Wd([...s.node.marks], e, n)))\n return;\n let i = s.index, l = t.start() + s.offset, a = i + 1, c = l + s.node.nodeSize;\n for (; i > 0 && ua([...t.parent.child(i - 1).marks], e, n); )\n i -= 1, l -= t.parent.child(i).nodeSize;\n for (; a < t.parent.childCount && ua([...t.parent.child(a).marks], e, n); )\n c += t.parent.child(a).nodeSize, a += 1;\n return {\n from: l,\n to: c\n };\n}\nfunction yt(t, e) {\n if (typeof t == \"string\") {\n if (!e.marks[t])\n throw Error(`There is no mark type named '${t}'. Maybe you forgot to add the extension?`);\n return e.marks[t];\n }\n return t;\n}\nvar eg = (t, e = {}) => ({ tr: n, state: r, dispatch: s }) => {\n const o = yt(t, r.schema), { doc: i, selection: l } = n, { $from: a, from: c, to: d } = l;\n if (s) {\n const u = _i(a, o, e);\n if (u && u.from <= c && u.to >= d) {\n const f = P.create(i, u.from, u.to);\n n.setSelection(f);\n }\n }\n return !0;\n}, tg = (t) => (e) => {\n const n = typeof t == \"function\" ? t(e) : t;\n for (let r = 0; r < n.length; r += 1)\n if (n[r](e))\n return !0;\n return !1;\n};\nfunction Ud(t) {\n return t instanceof P;\n}\nfunction Kt(t = 0, e = 0, n = 0) {\n return Math.min(Math.max(t, e), n);\n}\nfunction Kd(t, e = null) {\n if (!e)\n return null;\n const n = B.atStart(t), r = B.atEnd(t);\n if (e === \"start\" || e === !0)\n return n;\n if (e === \"end\")\n return r;\n const s = n.from, o = r.to;\n return e === \"all\" ? P.create(t, Kt(0, s, o), Kt(t.content.size, s, o)) : P.create(t, Kt(e, s, o), Kt(e, s, o));\n}\nfunction qd() {\n return navigator.platform === \"Android\" || /android/i.test(navigator.userAgent);\n}\nfunction Fs() {\n return [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].includes(navigator.platform) || // iPad on iOS 13 detection\n navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document;\n}\nvar ng = (t = null, e = {}) => ({ editor: n, view: r, tr: s, dispatch: o }) => {\n e = {\n scrollIntoView: !0,\n ...e\n };\n const i = () => {\n (Fs() || qd()) && r.dom.focus(), requestAnimationFrame(() => {\n n.isDestroyed || (r.focus(), e?.scrollIntoView && n.commands.scrollIntoView());\n });\n };\n if (r.hasFocus() && t === null || t === !1)\n return !0;\n if (o && t === null && !Ud(n.state.selection))\n return i(), !0;\n const l = Kd(s.doc, t) || n.state.selection, a = n.state.selection.eq(l);\n return o && (a || s.setSelection(l), a && s.storedMarks && s.setStoredMarks(s.storedMarks), i()), !0;\n}, rg = (t, e) => (n) => t.every((r, s) => e(r, { ...n, index: s })), sg = (t, e) => ({ tr: n, commands: r }) => r.insertContentAt({ from: n.selection.from, to: n.selection.to }, t, e), Jd = (t) => {\n const e = t.childNodes;\n for (let n = e.length - 1; n >= 0; n -= 1) {\n const r = e[n];\n r.nodeType === 3 && r.nodeValue && /^(\\n\\s\\s|\\n)$/.test(r.nodeValue) ? t.removeChild(r) : r.nodeType === 1 && Jd(r);\n }\n return t;\n};\nfunction kr(t) {\n if (typeof window > \"u\")\n throw new Error(\"[tiptap error]: there is no window object available, so this function cannot be used\");\n const e = `<body>${t}</body>`, n = new window.DOMParser().parseFromString(e, \"text/html\").body;\n return Jd(n);\n}\nfunction ir(t, e, n) {\n if (t instanceof _e || t instanceof w)\n return t;\n n = {\n slice: !0,\n parseOptions: {},\n ...n\n };\n const r = typeof t == \"object\" && t !== null, s = typeof t == \"string\";\n if (r)\n try {\n if (Array.isArray(t) && t.length > 0)\n return w.fromArray(t.map((l) => e.nodeFromJSON(l)));\n const i = e.nodeFromJSON(t);\n return n.errorOnInvalidContent && i.check(), i;\n } catch (o) {\n if (n.errorOnInvalidContent)\n throw new Error(\"[tiptap error]: Invalid JSON content\", { cause: o });\n return console.warn(\"[tiptap warn]: Invalid content.\", \"Passed value:\", t, \"Error:\", o), ir(\"\", e, n);\n }\n if (s) {\n if (n.errorOnInvalidContent) {\n let i = !1, l = \"\";\n const a = new Dc({\n topNode: e.spec.topNode,\n marks: e.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: e.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: \"inline*\",\n group: \"block\",\n parseDOM: [\n {\n tag: \"*\",\n getAttrs: (c) => (i = !0, l = typeof c == \"string\" ? c : c.outerHTML, null)\n }\n ]\n }\n })\n });\n if (n.slice ? Rt.fromSchema(a).parseSlice(kr(t), n.parseOptions) : Rt.fromSchema(a).parse(kr(t), n.parseOptions), n.errorOnInvalidContent && i)\n throw new Error(\"[tiptap error]: Invalid HTML content\", {\n cause: new Error(`Invalid element found: ${l}`)\n });\n }\n const o = Rt.fromSchema(e);\n return n.slice ? o.parseSlice(kr(t), n.parseOptions).content : o.parse(kr(t), n.parseOptions);\n }\n return ir(\"\", e, n);\n}\nfunction og(t, e, n) {\n const r = t.steps.length - 1;\n if (r < e)\n return;\n const s = t.steps[r];\n if (!(s instanceof fe || s instanceof pe))\n return;\n const o = t.mapping.maps[r];\n let i = 0;\n o.forEach((l, a, c, d) => {\n i === 0 && (i = d);\n }), t.setSelection(B.near(t.doc.resolve(i), n));\n}\nvar ig = (t) => !(\"type\" in t), lg = (t, e, n) => ({ tr: r, dispatch: s, editor: o }) => {\n var i;\n if (s) {\n n = {\n parseOptions: o.options.parseOptions,\n updateSelection: !0,\n applyInputRules: !1,\n applyPasteRules: !1,\n ...n\n };\n let l;\n const a = (g) => {\n o.emit(\"contentError\", {\n editor: o,\n error: g,\n disableCollaboration: () => {\n \"collaboration\" in o.storage && typeof o.storage.collaboration == \"object\" && o.storage.collaboration && (o.storage.collaboration.isDisabled = !0);\n }\n });\n }, c = {\n preserveWhitespace: \"full\",\n ...n.parseOptions\n };\n if (!n.errorOnInvalidContent && !o.options.enableContentCheck && o.options.emitContentError)\n try {\n ir(e, o.schema, {\n parseOptions: c,\n errorOnInvalidContent: !0\n });\n } catch (g) {\n a(g);\n }\n try {\n l = ir(e, o.schema, {\n parseOptions: c,\n errorOnInvalidContent: (i = n.errorOnInvalidContent) != null ? i : o.options.enableContentCheck\n });\n } catch (g) {\n return a(g), !1;\n }\n let { from: d, to: u } = typeof t == \"number\" ? { from: t, to: t } : { from: t.from, to: t.to }, f = !0, h = !0;\n if ((ig(l) ? l : [l]).forEach((g) => {\n g.check(), f = f ? g.isText && g.marks.length === 0 : !1, h = h ? g.isBlock : !1;\n }), d === u && h) {\n const { parent: g } = r.doc.resolve(d);\n g.isTextblock && !g.type.spec.code && !g.childCount && (d -= 1, u += 1);\n }\n let m;\n if (f) {\n if (Array.isArray(e))\n m = e.map((g) => g.text || \"\").join(\"\");\n else if (e instanceof w) {\n let g = \"\";\n e.forEach((y) => {\n y.text && (g += y.text);\n }), m = g;\n } else typeof e == \"object\" && e && e.text ? m = e.text : m = e;\n r.insertText(m, d, u);\n } else {\n m = l;\n const g = r.doc.resolve(d), y = g.node(), x = g.parentOffset === 0, k = y.isText || y.isTextblock, T = y.content.size > 0;\n x && k && T && (d = Math.max(0, d - 1)), r.replaceWith(d, u, m);\n }\n n.updateSelection && og(r, r.steps.length - 1, -1), n.applyInputRules && r.setMeta(\"applyInputRules\", { from: d, text: m }), n.applyPasteRules && r.setMeta(\"applyPasteRules\", { from: d, text: m });\n }\n return !0;\n}, ag = () => ({ state: t, dispatch: e }) => Ph(t, e), cg = () => ({ state: t, dispatch: e }) => zh(t, e), dg = () => ({ state: t, dispatch: e }) => Qc(t, e), ug = () => ({ state: t, dispatch: e }) => nd(t, e), fg = () => ({ state: t, dispatch: e, tr: n }) => {\n try {\n const r = Ps(t.doc, t.selection.$from.pos, -1);\n return r == null ? !1 : (n.join(r, 2), e && e(n), !0);\n } catch {\n return !1;\n }\n}, hg = () => ({ state: t, dispatch: e, tr: n }) => {\n try {\n const r = Ps(t.doc, t.selection.$from.pos, 1);\n return r == null ? !1 : (n.join(r, 2), e && e(n), !0);\n } catch {\n return !1;\n }\n}, pg = () => ({ state: t, dispatch: e }) => Ih(t, e), mg = () => ({ state: t, dispatch: e }) => Lh(t, e);\nfunction Gd() {\n return typeof navigator < \"u\" ? /Mac/.test(navigator.platform) : !1;\n}\nfunction gg(t) {\n const e = t.split(/-(?!$)/);\n let n = e[e.length - 1];\n n === \"Space\" && (n = \" \");\n let r, s, o, i;\n for (let l = 0; l < e.length - 1; l += 1) {\n const a = e[l];\n if (/^(cmd|meta|m)$/i.test(a))\n i = !0;\n else if (/^a(lt)?$/i.test(a))\n r = !0;\n else if (/^(c|ctrl|control)$/i.test(a))\n s = !0;\n else if (/^s(hift)?$/i.test(a))\n o = !0;\n else if (/^mod$/i.test(a))\n Fs() || Gd() ? i = !0 : s = !0;\n else\n throw new Error(`Unrecognized modifier name: ${a}`);\n }\n return r && (n = `Alt-${n}`), s && (n = `Ctrl-${n}`), i && (n = `Meta-${n}`), o && (n = `Shift-${n}`), n;\n}\nvar yg = (t) => ({ editor: e, view: n, tr: r, dispatch: s }) => {\n const o = gg(t).split(/-(?!$)/), i = o.find((c) => ![\"Alt\", \"Ctrl\", \"Meta\", \"Shift\"].includes(c)), l = new KeyboardEvent(\"keydown\", {\n key: i === \"Space\" ? \" \" : i,\n altKey: o.includes(\"Alt\"),\n ctrlKey: o.includes(\"Ctrl\"),\n metaKey: o.includes(\"Meta\"),\n shiftKey: o.includes(\"Shift\"),\n bubbles: !0,\n cancelable: !0\n }), a = e.captureTransaction(() => {\n n.someProp(\"handleKeyDown\", (c) => c(n, l));\n });\n return a?.steps.forEach((c) => {\n const d = c.map(r.mapping);\n d && s && r.maybeStep(d);\n }), !0;\n};\nfunction zt(t, e, n = {}) {\n const { from: r, to: s, empty: o } = t.selection, i = e ? ae(e, t.schema) : null, l = [];\n t.doc.nodesBetween(r, s, (u, f) => {\n if (u.isText)\n return;\n const h = Math.max(r, f), p = Math.min(s, f + u.nodeSize);\n l.push({\n node: u,\n from: h,\n to: p\n });\n });\n const a = s - r, c = l.filter((u) => i ? i.name === u.node.type.name : !0).filter((u) => es(u.node.attrs, n, { strict: !1 }));\n return o ? !!c.length : c.reduce((u, f) => u + f.to - f.from, 0) >= a;\n}\nvar bg = (t, e = {}) => ({ state: n, dispatch: r }) => {\n const s = ae(t, n.schema);\n return zt(n, s, e) ? Bh(n, r) : !1;\n}, kg = () => ({ state: t, dispatch: e }) => id(t, e), xg = (t) => ({ state: e, dispatch: n }) => {\n const r = ae(t, e.schema);\n return Gh(r)(e, n);\n}, wg = () => ({ state: t, dispatch: e }) => sd(t, e);\nfunction Ws(t, e) {\n return e.nodes[t] ? \"node\" : e.marks[t] ? \"mark\" : null;\n}\nfunction fa(t, e) {\n const n = typeof e == \"string\" ? [e] : e;\n return Object.keys(t).reduce((r, s) => (n.includes(s) || (r[s] = t[s]), r), {});\n}\nvar Sg = (t, e) => ({ tr: n, state: r, dispatch: s }) => {\n let o = null, i = null;\n const l = Ws(\n typeof t == \"string\" ? t : t.name,\n r.schema\n );\n if (!l)\n return !1;\n l === \"node\" && (o = ae(t, r.schema)), l === \"mark\" && (i = yt(t, r.schema));\n let a = !1;\n return n.selection.ranges.forEach((c) => {\n r.doc.nodesBetween(c.$from.pos, c.$to.pos, (d, u) => {\n o && o === d.type && (a = !0, s && n.setNodeMarkup(u, void 0, fa(d.attrs, e))), i && d.marks.length && d.marks.forEach((f) => {\n i === f.type && (a = !0, s && n.addMark(u, u + d.nodeSize, i.create(fa(f.attrs, e))));\n });\n });\n }), a;\n}, Cg = () => ({ tr: t, dispatch: e }) => (e && t.scrollIntoView(), !0), vg = () => ({ tr: t, dispatch: e }) => {\n if (e) {\n const n = new De(t.doc);\n t.setSelection(n);\n }\n return !0;\n}, Mg = () => ({ state: t, dispatch: e }) => ed(t, e), Tg = () => ({ state: t, dispatch: e }) => rd(t, e), Eg = () => ({ state: t, dispatch: e }) => jh(t, e), Ag = () => ({ state: t, dispatch: e }) => Wh(t, e), Ng = () => ({ state: t, dispatch: e }) => Fh(t, e);\nfunction Go(t, e, n = {}, r = {}) {\n return ir(t, e, {\n slice: !1,\n parseOptions: n,\n errorOnInvalidContent: r.errorOnInvalidContent\n });\n}\nvar Og = (t, { errorOnInvalidContent: e, emitUpdate: n = !0, parseOptions: r = {} } = {}) => ({ editor: s, tr: o, dispatch: i, commands: l }) => {\n const { doc: a } = o;\n if (r.preserveWhitespace !== \"full\") {\n const c = Go(t, s.schema, r, {\n errorOnInvalidContent: e ?? s.options.enableContentCheck\n });\n return i && o.replaceWith(0, a.content.size, c).setMeta(\"preventUpdate\", !n), !0;\n }\n return i && o.setMeta(\"preventUpdate\", !n), l.insertContentAt({ from: 0, to: a.content.size }, t, {\n parseOptions: r,\n errorOnInvalidContent: e ?? s.options.enableContentCheck\n });\n};\nfunction Yd(t, e) {\n const n = yt(e, t.schema), { from: r, to: s, empty: o } = t.selection, i = [];\n o ? (t.storedMarks && i.push(...t.storedMarks), i.push(...t.selection.$head.marks())) : t.doc.nodesBetween(r, s, (a) => {\n i.push(...a.marks);\n });\n const l = i.find((a) => a.type.name === n.name);\n return l ? { ...l.attrs } : {};\n}\nfunction Xd(t, e) {\n const n = new wi(t);\n return e.forEach((r) => {\n r.steps.forEach((s) => {\n n.step(s);\n });\n }), n;\n}\nfunction Rg(t) {\n for (let e = 0; e < t.edgeCount; e += 1) {\n const { type: n } = t.edge(e);\n if (n.isTextblock && !n.hasRequiredAttrs())\n return n;\n }\n return null;\n}\nfunction Dg(t, e, n) {\n const r = [];\n return t.nodesBetween(e.from, e.to, (s, o) => {\n n(s) && r.push({\n node: s,\n pos: o\n });\n }), r;\n}\nfunction Qd(t, e) {\n for (let n = t.depth; n > 0; n -= 1) {\n const r = t.node(n);\n if (e(r))\n return {\n pos: n > 0 ? t.before(n) : 0,\n start: t.start(n),\n depth: n,\n node: r\n };\n }\n}\nfunction Us(t) {\n return (e) => Qd(e.$from, t);\n}\nfunction I(t, e, n) {\n return t.config[e] === void 0 && t.parent ? I(t.parent, e, n) : typeof t.config[e] == \"function\" ? t.config[e].bind({\n ...n,\n parent: t.parent ? I(t.parent, e, n) : null\n }) : t.config[e];\n}\nfunction ji(t) {\n return t.map((e) => {\n const n = {\n name: e.name,\n options: e.options,\n storage: e.storage\n }, r = I(e, \"addExtensions\", n);\n return r ? [e, ...ji(r())] : e;\n }).flat(10);\n}\nfunction Vi(t, e) {\n const n = $t.fromSchema(e).serializeFragment(t), s = document.implementation.createHTMLDocument().createElement(\"div\");\n return s.appendChild(n), s.innerHTML;\n}\nfunction Zd(t) {\n return typeof t == \"function\";\n}\nfunction V(t, e = void 0, ...n) {\n return Zd(t) ? e ? t.bind(e)(...n) : t(...n) : t;\n}\nfunction Ig(t = {}) {\n return Object.keys(t).length === 0 && t.constructor === Object;\n}\nfunction Nn(t) {\n const e = t.filter((s) => s.type === \"extension\"), n = t.filter((s) => s.type === \"node\"), r = t.filter((s) => s.type === \"mark\");\n return {\n baseExtensions: e,\n nodeExtensions: n,\n markExtensions: r\n };\n}\nfunction eu(t) {\n const e = [], { nodeExtensions: n, markExtensions: r } = Nn(t), s = [...n, ...r], o = {\n default: null,\n validate: void 0,\n rendered: !0,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: !0,\n isRequired: !1\n };\n return t.forEach((i) => {\n const l = {\n name: i.name,\n options: i.options,\n storage: i.storage,\n extensions: s\n }, a = I(\n i,\n \"addGlobalAttributes\",\n l\n );\n if (!a)\n return;\n a().forEach((d) => {\n d.types.forEach((u) => {\n Object.entries(d.attributes).forEach(([f, h]) => {\n e.push({\n type: u,\n name: f,\n attribute: {\n ...o,\n ...h\n }\n });\n });\n });\n });\n }), s.forEach((i) => {\n const l = {\n name: i.name,\n options: i.options,\n storage: i.storage\n }, a = I(\n i,\n \"addAttributes\",\n l\n );\n if (!a)\n return;\n const c = a();\n Object.entries(c).forEach(([d, u]) => {\n const f = {\n ...o,\n ...u\n };\n typeof f?.default == \"function\" && (f.default = f.default()), f?.isRequired && f?.default === void 0 && delete f.default, e.push({\n type: i.name,\n name: d,\n attribute: f\n });\n });\n }), e;\n}\nfunction q(...t) {\n return t.filter((e) => !!e).reduce((e, n) => {\n const r = { ...e };\n return Object.entries(n).forEach(([s, o]) => {\n if (!r[s]) {\n r[s] = o;\n return;\n }\n if (s === \"class\") {\n const l = o ? String(o).split(\" \") : [], a = r[s] ? r[s].split(\" \") : [], c = l.filter((d) => !a.includes(d));\n r[s] = [...a, ...c].join(\" \");\n } else if (s === \"style\") {\n const l = o ? o.split(\";\").map((d) => d.trim()).filter(Boolean) : [], a = r[s] ? r[s].split(\";\").map((d) => d.trim()).filter(Boolean) : [], c = /* @__PURE__ */ new Map();\n a.forEach((d) => {\n const [u, f] = d.split(\":\").map((h) => h.trim());\n c.set(u, f);\n }), l.forEach((d) => {\n const [u, f] = d.split(\":\").map((h) => h.trim());\n c.set(u, f);\n }), r[s] = Array.from(c.entries()).map(([d, u]) => `${d}: ${u}`).join(\"; \");\n } else\n r[s] = o;\n }), r;\n }, {});\n}\nfunction lr(t, e) {\n return e.filter((n) => n.type === t.type.name).filter((n) => n.attribute.rendered).map((n) => n.attribute.renderHTML ? n.attribute.renderHTML(t.attrs) || {} : {\n [n.name]: t.attrs[n.name]\n }).reduce((n, r) => q(n, r), {});\n}\nfunction Lg(t) {\n return typeof t != \"string\" ? t : t.match(/^[+-]?(?:\\d*\\.)?\\d+$/) ? Number(t) : t === \"true\" ? !0 : t === \"false\" ? !1 : t;\n}\nfunction ha(t, e) {\n return \"style\" in t ? t : {\n ...t,\n getAttrs: (n) => {\n const r = t.getAttrs ? t.getAttrs(n) : t.attrs;\n if (r === !1)\n return !1;\n const s = e.reduce((o, i) => {\n const l = i.attribute.parseHTML ? i.attribute.parseHTML(n) : Lg(n.getAttribute(i.name));\n return l == null ? o : {\n ...o,\n [i.name]: l\n };\n }, {});\n return { ...r, ...s };\n }\n };\n}\nfunction pa(t) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(t).filter(([e, n]) => e === \"attrs\" && Ig(n) ? !1 : n != null)\n );\n}\nfunction ma(t) {\n var e, n;\n const r = {};\n return !((e = t?.attribute) != null && e.isRequired) && \"default\" in (t?.attribute || {}) && (r.default = t.attribute.default), ((n = t?.attribute) == null ? void 0 : n.validate) !== void 0 && (r.validate = t.attribute.validate), [t.name, r];\n}\nfunction tu(t, e) {\n var n;\n const r = eu(t), { nodeExtensions: s, markExtensions: o } = Nn(t), i = (n = s.find((c) => I(c, \"topNode\"))) == null ? void 0 : n.name, l = Object.fromEntries(\n s.map((c) => {\n const d = r.filter((y) => y.type === c.name), u = {\n name: c.name,\n options: c.options,\n storage: c.storage,\n editor: e\n }, f = t.reduce((y, x) => {\n const k = I(x, \"extendNodeSchema\", u);\n return {\n ...y,\n ...k ? k(c) : {}\n };\n }, {}), h = pa({\n ...f,\n content: V(I(c, \"content\", u)),\n marks: V(I(c, \"marks\", u)),\n group: V(I(c, \"group\", u)),\n inline: V(I(c, \"inline\", u)),\n atom: V(I(c, \"atom\", u)),\n selectable: V(I(c, \"selectable\", u)),\n draggable: V(I(c, \"draggable\", u)),\n code: V(I(c, \"code\", u)),\n whitespace: V(I(c, \"whitespace\", u)),\n linebreakReplacement: V(\n I(c, \"linebreakReplacement\", u)\n ),\n defining: V(I(c, \"defining\", u)),\n isolating: V(I(c, \"isolating\", u)),\n attrs: Object.fromEntries(d.map(ma))\n }), p = V(I(c, \"parseHTML\", u));\n p && (h.parseDOM = p.map(\n (y) => ha(y, d)\n ));\n const m = I(c, \"renderHTML\", u);\n m && (h.toDOM = (y) => m({\n node: y,\n HTMLAttributes: lr(y, d)\n }));\n const g = I(c, \"renderText\", u);\n return g && (h.toText = g), [c.name, h];\n })\n ), a = Object.fromEntries(\n o.map((c) => {\n const d = r.filter((g) => g.type === c.name), u = {\n name: c.name,\n options: c.options,\n storage: c.storage,\n editor: e\n }, f = t.reduce((g, y) => {\n const x = I(y, \"extendMarkSchema\", u);\n return {\n ...g,\n ...x ? x(c) : {}\n };\n }, {}), h = pa({\n ...f,\n inclusive: V(I(c, \"inclusive\", u)),\n excludes: V(I(c, \"excludes\", u)),\n group: V(I(c, \"group\", u)),\n spanning: V(I(c, \"spanning\", u)),\n code: V(I(c, \"code\", u)),\n attrs: Object.fromEntries(d.map(ma))\n }), p = V(I(c, \"parseHTML\", u));\n p && (h.parseDOM = p.map(\n (g) => ha(g, d)\n ));\n const m = I(c, \"renderHTML\", u);\n return m && (h.toDOM = (g) => m({\n mark: g,\n HTMLAttributes: lr(g, d)\n })), [c.name, h];\n })\n );\n return new Dc({\n topNode: i,\n nodes: l,\n marks: a\n });\n}\nfunction Pg(t) {\n const e = t.filter((n, r) => t.indexOf(n) !== r);\n return Array.from(new Set(e));\n}\nfunction Fi(t) {\n return t.sort((n, r) => {\n const s = I(n, \"priority\") || 100, o = I(r, \"priority\") || 100;\n return s > o ? -1 : s < o ? 1 : 0;\n });\n}\nfunction Wi(t) {\n const e = Fi(ji(t)), n = Pg(e.map((r) => r.name));\n return n.length && console.warn(\n `[tiptap warn]: Duplicate extension names found: [${n.map((r) => `'${r}'`).join(\", \")}]. This can lead to issues.`\n ), e;\n}\nfunction zg(t, e) {\n const n = Wi(t);\n return tu(n, e);\n}\nfunction nu(t, e, n) {\n const { from: r, to: s } = e, { blockSeparator: o = `\n\n`, textSerializers: i = {} } = n || {};\n let l = \"\";\n return t.nodesBetween(r, s, (a, c, d, u) => {\n var f;\n a.isBlock && c > r && (l += o);\n const h = i?.[a.type.name];\n if (h)\n return d && (l += h({\n node: a,\n pos: c,\n parent: d,\n index: u,\n range: e\n })), !1;\n a.isText && (l += (f = a?.text) == null ? void 0 : f.slice(Math.max(r, c) - c, s - c));\n }), l;\n}\nfunction Bg(t, e) {\n const n = {\n from: 0,\n to: t.content.size\n };\n return nu(t, n, e);\n}\nfunction ru(t) {\n return Object.fromEntries(\n Object.entries(t.nodes).filter(([, e]) => e.spec.toText).map(([e, n]) => [e, n.spec.toText])\n );\n}\nfunction $g(t, e) {\n const n = ae(e, t.schema), { from: r, to: s } = t.selection, o = [];\n t.doc.nodesBetween(r, s, (l) => {\n o.push(l);\n });\n const i = o.reverse().find((l) => l.type.name === n.name);\n return i ? { ...i.attrs } : {};\n}\nfunction su(t, e) {\n const n = Ws(\n typeof e == \"string\" ? e : e.name,\n t.schema\n );\n return n === \"node\" ? $g(t, e) : n === \"mark\" ? Yd(t, e) : {};\n}\nfunction Hg(t, e = JSON.stringify) {\n const n = {};\n return t.filter((r) => {\n const s = e(r);\n return Object.prototype.hasOwnProperty.call(n, s) ? !1 : n[s] = !0;\n });\n}\nfunction _g(t) {\n const e = Hg(t);\n return e.length === 1 ? e : e.filter((n, r) => !e.filter((o, i) => i !== r).some((o) => n.oldRange.from >= o.oldRange.from && n.oldRange.to <= o.oldRange.to && n.newRange.from >= o.newRange.from && n.newRange.to <= o.newRange.to));\n}\nfunction ou(t) {\n const { mapping: e, steps: n } = t, r = [];\n return e.maps.forEach((s, o) => {\n const i = [];\n if (s.ranges.length)\n s.forEach((l, a) => {\n i.push({ from: l, to: a });\n });\n else {\n const { from: l, to: a } = n[o];\n if (l === void 0 || a === void 0)\n return;\n i.push({ from: l, to: a });\n }\n i.forEach(({ from: l, to: a }) => {\n const c = e.slice(o).map(l, -1), d = e.slice(o).map(a), u = e.invert().map(c, -1), f = e.invert().map(d);\n r.push({\n oldRange: {\n from: u,\n to: f\n },\n newRange: {\n from: c,\n to: d\n }\n });\n });\n }), _g(r);\n}\nfunction Ui(t, e, n) {\n const r = [];\n return t === e ? n.resolve(t).marks().forEach((s) => {\n const o = n.resolve(t), i = _i(o, s.type);\n i && r.push({\n mark: s,\n ...i\n });\n }) : n.nodesBetween(t, e, (s, o) => {\n !s || s?.nodeSize === void 0 || r.push(\n ...s.marks.map((i) => ({\n from: o,\n to: o + s.nodeSize,\n mark: i\n }))\n );\n }), r;\n}\nvar jg = (t, e, n, r = 20) => {\n const s = t.doc.resolve(n);\n let o = r, i = null;\n for (; o > 0 && i === null; ) {\n const l = s.node(o);\n l?.type.name === e ? i = l : o -= 1;\n }\n return [i, o];\n};\nfunction ho(t, e) {\n return e.nodes[t] || e.marks[t] || null;\n}\nfunction Br(t, e, n) {\n return Object.fromEntries(\n Object.entries(n).filter(([r]) => {\n const s = t.find((o) => o.type === e && o.name === r);\n return s ? s.attribute.keepOnSplit : !1;\n })\n );\n}\nvar Vg = (t, e = 500) => {\n let n = \"\";\n const r = t.parentOffset;\n return t.parent.nodesBetween(Math.max(0, r - e), r, (s, o, i, l) => {\n var a, c;\n const d = ((c = (a = s.type.spec).toText) == null ? void 0 : c.call(a, {\n node: s,\n pos: o,\n parent: i,\n index: l\n })) || s.textContent || \"%leaf%\";\n n += s.isAtom && !s.isText ? d : d.slice(0, Math.max(0, r - o));\n }), n;\n};\nfunction Yo(t, e, n = {}) {\n const { empty: r, ranges: s } = t.selection, o = e ? yt(e, t.schema) : null;\n if (r)\n return !!(t.storedMarks || t.selection.$from.marks()).filter((u) => o ? o.name === u.type.name : !0).find((u) => es(u.attrs, n, { strict: !1 }));\n let i = 0;\n const l = [];\n if (s.forEach(({ $from: u, $to: f }) => {\n const h = u.pos, p = f.pos;\n t.doc.nodesBetween(h, p, (m, g) => {\n if (!m.isText && !m.marks.length)\n return;\n const y = Math.max(h, g), x = Math.min(p, g + m.nodeSize), k = x - y;\n i += k, l.push(\n ...m.marks.map((T) => ({\n mark: T,\n from: y,\n to: x\n }))\n );\n });\n }), i === 0)\n return !1;\n const a = l.filter((u) => o ? o.name === u.mark.type.name : !0).filter((u) => es(u.mark.attrs, n, { strict: !1 })).reduce((u, f) => u + f.to - f.from, 0), c = l.filter((u) => o ? u.mark.type !== o && u.mark.type.excludes(o) : !0).reduce((u, f) => u + f.to - f.from, 0);\n return (a > 0 ? a + c : a) >= i;\n}\nfunction Fg(t, e, n = {}) {\n if (!e)\n return zt(t, null, n) || Yo(t, null, n);\n const r = Ws(e, t.schema);\n return r === \"node\" ? zt(t, e, n) : r === \"mark\" ? Yo(t, e, n) : !1;\n}\nvar Wg = (t, e) => {\n const { $from: n, $to: r, $anchor: s } = t.selection;\n if (e) {\n const o = Us((l) => l.type.name === e)(t.selection);\n if (!o)\n return !1;\n const i = t.doc.resolve(o.pos + 1);\n return s.pos + 1 === i.end();\n }\n return !(r.parentOffset < r.parent.nodeSize - 2 || n.pos !== r.pos);\n}, Ug = (t) => {\n const { $from: e, $to: n } = t.selection;\n return !(e.parentOffset > 0 || e.pos !== n.pos);\n};\nfunction ga(t, e) {\n return Array.isArray(e) ? e.some((n) => (typeof n == \"string\" ? n : n.name) === t.name) : e;\n}\nfunction ya(t, e) {\n const { nodeExtensions: n } = Nn(e), r = n.find((i) => i.name === t);\n if (!r)\n return !1;\n const s = {\n name: r.name,\n options: r.options,\n storage: r.storage\n }, o = V(I(r, \"group\", s));\n return typeof o != \"string\" ? !1 : o.split(\" \").includes(\"list\");\n}\nfunction Ks(t, {\n checkChildren: e = !0,\n ignoreWhitespace: n = !1\n} = {}) {\n var r;\n if (n) {\n if (t.type.name === \"hardBreak\")\n return !0;\n if (t.isText)\n return /^\\s*$/m.test((r = t.text) != null ? r : \"\");\n }\n if (t.isText)\n return !t.text;\n if (t.isAtom || t.isLeaf)\n return !1;\n if (t.content.childCount === 0)\n return !0;\n if (e) {\n let s = !0;\n return t.content.forEach((o) => {\n s !== !1 && (Ks(o, { ignoreWhitespace: n, checkChildren: e }) || (s = !1));\n }), s;\n }\n return !1;\n}\nfunction iu(t) {\n return t instanceof D;\n}\nfunction Kg(t, e, n) {\n var r;\n const { selection: s } = e;\n let o = null;\n if (Ud(s) && (o = s.$cursor), o) {\n const l = (r = t.storedMarks) != null ? r : o.marks();\n return o.parent.type.allowsMarkType(n) && (!!n.isInSet(l) || !l.some((c) => c.type.excludes(n)));\n }\n const { ranges: i } = s;\n return i.some(({ $from: l, $to: a }) => {\n let c = l.depth === 0 ? t.doc.inlineContent && t.doc.type.allowsMarkType(n) : !1;\n return t.doc.nodesBetween(l.pos, a.pos, (d, u, f) => {\n if (c)\n return !1;\n if (d.isInline) {\n const h = !f || f.type.allowsMarkType(n), p = !!n.isInSet(d.marks) || !d.marks.some((m) => m.type.excludes(n));\n c = h && p;\n }\n return !c;\n }), c;\n });\n}\nvar qg = (t, e = {}) => ({ tr: n, state: r, dispatch: s }) => {\n const { selection: o } = n, { empty: i, ranges: l } = o, a = yt(t, r.schema);\n if (s)\n if (i) {\n const c = Yd(r, a);\n n.addStoredMark(\n a.create({\n ...c,\n ...e\n })\n );\n } else\n l.forEach((c) => {\n const d = c.$from.pos, u = c.$to.pos;\n r.doc.nodesBetween(d, u, (f, h) => {\n const p = Math.max(h, d), m = Math.min(h + f.nodeSize, u);\n f.marks.find((y) => y.type === a) ? f.marks.forEach((y) => {\n a === y.type && n.addMark(\n p,\n m,\n a.create({\n ...y.attrs,\n ...e\n })\n );\n }) : n.addMark(p, m, a.create(e));\n });\n });\n return Kg(r, n, a);\n}, Jg = (t, e) => ({ tr: n }) => (n.setMeta(t, e), !0), Gg = (t, e = {}) => ({ state: n, dispatch: r, chain: s }) => {\n const o = ae(t, n.schema);\n let i;\n return n.selection.$anchor.sameParent(n.selection.$head) && (i = n.selection.$anchor.parent.attrs), o.isTextblock ? s().command(({ commands: l }) => Rl(o, { ...i, ...e })(n) ? !0 : l.clearNodes()).command(({ state: l }) => Rl(o, { ...i, ...e })(l, r)).run() : (console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.'), !1);\n}, Yg = (t) => ({ tr: e, dispatch: n }) => {\n if (n) {\n const { doc: r } = e, s = Kt(t, 0, r.content.size), o = D.create(r, s);\n e.setSelection(o);\n }\n return !0;\n}, Xg = (t, e) => ({ tr: n, state: r, dispatch: s }) => {\n const { selection: o } = r;\n let i, l;\n return typeof e == \"number\" ? (i = e, l = e) : e && \"from\" in e && \"to\" in e ? (i = e.from, l = e.to) : (i = o.from, l = o.to), s && n.doc.nodesBetween(i, l, (a, c) => {\n a.isText || n.setNodeMarkup(c, void 0, {\n ...a.attrs,\n dir: t\n });\n }), !0;\n}, Qg = (t) => ({ tr: e, dispatch: n }) => {\n if (n) {\n const { doc: r } = e, { from: s, to: o } = typeof t == \"number\" ? { from: t, to: t } : t, i = P.atStart(r).from, l = P.atEnd(r).to, a = Kt(s, i, l), c = Kt(o, i, l), d = P.create(r, a, c);\n e.setSelection(d);\n }\n return !0;\n}, Zg = (t) => ({ state: e, dispatch: n }) => {\n const r = ae(t, e.schema);\n return Qh(r)(e, n);\n};\nfunction ba(t, e) {\n const n = t.storedMarks || t.selection.$to.parentOffset && t.selection.$from.marks();\n if (n) {\n const r = n.filter((s) => e?.includes(s.type.name));\n t.tr.ensureMarks(r);\n }\n}\nvar ey = ({ keepMarks: t = !0 } = {}) => ({ tr: e, state: n, dispatch: r, editor: s }) => {\n const { selection: o, doc: i } = e, { $from: l, $to: a } = o, c = s.extensionManager.attributes, d = Br(c, l.node().type.name, l.node().attrs);\n if (o instanceof D && o.node.isBlock)\n return !l.parentOffset || !mt(i, l.pos) ? !1 : (r && (t && ba(n, s.extensionManager.splittableMarks), e.split(l.pos).scrollIntoView()), !0);\n if (!l.parent.isBlock)\n return !1;\n const u = a.parentOffset === a.parent.content.size, f = l.depth === 0 ? void 0 : Rg(l.node(-1).contentMatchAt(l.indexAfter(-1)));\n let h = u && f ? [\n {\n type: f,\n attrs: d\n }\n ] : void 0, p = mt(e.doc, e.mapping.map(l.pos), 1, h);\n if (!h && !p && mt(e.doc, e.mapping.map(l.pos), 1, f ? [{ type: f }] : void 0) && (p = !0, h = f ? [\n {\n type: f,\n attrs: d\n }\n ] : void 0), r) {\n if (p && (o instanceof P && e.deleteSelection(), e.split(e.mapping.map(l.pos), 1, h), f && !u && !l.parentOffset && l.parent.type !== f)) {\n const m = e.mapping.map(l.before()), g = e.doc.resolve(m);\n l.node(-1).canReplaceWith(g.index(), g.index() + 1, f) && e.setNodeMarkup(e.mapping.map(l.before()), f);\n }\n t && ba(n, s.extensionManager.splittableMarks), e.scrollIntoView();\n }\n return p;\n}, ty = (t, e = {}) => ({ tr: n, state: r, dispatch: s, editor: o }) => {\n var i;\n const l = ae(t, r.schema), { $from: a, $to: c } = r.selection, d = r.selection.node;\n if (d && d.isBlock || a.depth < 2 || !a.sameParent(c))\n return !1;\n const u = a.node(-1);\n if (u.type !== l)\n return !1;\n const f = o.extensionManager.attributes;\n if (a.parent.content.size === 0 && a.node(-1).childCount === a.indexAfter(-1)) {\n if (a.depth === 2 || a.node(-3).type !== l || a.index(-2) !== a.node(-2).childCount - 1)\n return !1;\n if (s) {\n let y = w.empty;\n const x = a.index(-1) ? 1 : a.index(-2) ? 2 : 3;\n for (let C = a.depth - x; C >= a.depth - 3; C -= 1)\n y = w.from(a.node(C).copy(y));\n const k = (\n // eslint-disable-next-line no-nested-ternary\n a.indexAfter(-1) < a.node(-2).childCount ? 1 : a.indexAfter(-2) < a.node(-3).childCount ? 2 : 3\n ), T = {\n ...Br(f, a.node().type.name, a.node().attrs),\n ...e\n }, b = ((i = l.contentMatch.defaultType) == null ? void 0 : i.createAndFill(T)) || void 0;\n y = y.append(w.from(l.createAndFill(null, b) || void 0));\n const E = a.before(a.depth - (x - 1));\n n.replace(E, a.after(-k), new A(y, 4 - x, 0));\n let S = -1;\n n.doc.nodesBetween(E, n.doc.content.size, (C, L) => {\n if (S > -1)\n return !1;\n C.isTextblock && C.content.size === 0 && (S = L + 1);\n }), S > -1 && n.setSelection(P.near(n.doc.resolve(S))), n.scrollIntoView();\n }\n return !0;\n }\n const h = c.pos === a.end() ? u.contentMatchAt(0).defaultType : null, p = {\n ...Br(f, u.type.name, u.attrs),\n ...e\n }, m = {\n ...Br(f, a.node().type.name, a.node().attrs),\n ...e\n };\n n.delete(a.pos, c.pos);\n const g = h ? [\n { type: l, attrs: p },\n { type: h, attrs: m }\n ] : [{ type: l, attrs: p }];\n if (!mt(n.doc, a.pos, 2))\n return !1;\n if (s) {\n const { selection: y, storedMarks: x } = r, { splittableMarks: k } = o.extensionManager, T = x || y.$to.parentOffset && y.$from.marks();\n if (n.split(a.pos, 2, g).scrollIntoView(), !T || !s)\n return !0;\n const b = T.filter((E) => k.includes(E.type.name));\n n.ensureMarks(b);\n }\n return !0;\n}, po = (t, e) => {\n const n = Us((i) => i.type === e)(t.selection);\n if (!n)\n return !0;\n const r = t.doc.resolve(Math.max(0, n.pos - 1)).before(n.depth);\n if (r === void 0)\n return !0;\n const s = t.doc.nodeAt(r);\n return n.node.type === s?.type && Ht(t.doc, n.pos) && t.join(n.pos), !0;\n}, mo = (t, e) => {\n const n = Us((i) => i.type === e)(t.selection);\n if (!n)\n return !0;\n const r = t.doc.resolve(n.start).after(n.depth);\n if (r === void 0)\n return !0;\n const s = t.doc.nodeAt(r);\n return n.node.type === s?.type && Ht(t.doc, r) && t.join(r), !0;\n}, ny = (t, e, n, r = {}) => ({ editor: s, tr: o, state: i, dispatch: l, chain: a, commands: c, can: d }) => {\n const { extensions: u, splittableMarks: f } = s.extensionManager, h = ae(t, i.schema), p = ae(e, i.schema), { selection: m, storedMarks: g } = i, { $from: y, $to: x } = m, k = y.blockRange(x), T = g || m.$to.parentOffset && m.$from.marks();\n if (!k)\n return !1;\n const b = Us((E) => ya(E.type.name, u))(m);\n if (k.depth >= 1 && b && k.depth - b.depth <= 1) {\n if (b.node.type === h)\n return c.liftListItem(p);\n if (ya(b.node.type.name, u) && h.validContent(b.node.content) && l)\n return a().command(() => (o.setNodeMarkup(b.pos, h), !0)).command(() => po(o, h)).command(() => mo(o, h)).run();\n }\n return !n || !T || !l ? a().command(() => d().wrapInList(h, r) ? !0 : c.clearNodes()).wrapInList(h, r).command(() => po(o, h)).command(() => mo(o, h)).run() : a().command(() => {\n const E = d().wrapInList(h, r), S = T.filter((C) => f.includes(C.type.name));\n return o.ensureMarks(S), E ? !0 : c.clearNodes();\n }).wrapInList(h, r).command(() => po(o, h)).command(() => mo(o, h)).run();\n}, ry = (t, e = {}, n = {}) => ({ state: r, commands: s }) => {\n const { extendEmptyMarkRange: o = !1 } = n, i = yt(t, r.schema);\n return Yo(r, i, e) ? s.unsetMark(i, { extendEmptyMarkRange: o }) : s.setMark(i, e);\n}, sy = (t, e, n = {}) => ({ state: r, commands: s }) => {\n const o = ae(t, r.schema), i = ae(e, r.schema), l = zt(r, o, n);\n let a;\n return r.selection.$anchor.sameParent(r.selection.$head) && (a = r.selection.$anchor.parent.attrs), l ? s.setNode(i, a) : s.setNode(o, { ...a, ...n });\n}, oy = (t, e = {}) => ({ state: n, commands: r }) => {\n const s = ae(t, n.schema);\n return zt(n, s, e) ? r.lift(s) : r.wrapIn(s, e);\n}, iy = () => ({ state: t, dispatch: e }) => {\n const n = t.plugins;\n for (let r = 0; r < n.length; r += 1) {\n const s = n[r];\n let o;\n if (s.spec.isInputRules && (o = s.getState(t))) {\n if (e) {\n const i = t.tr, l = o.transform;\n for (let a = l.steps.length - 1; a >= 0; a -= 1)\n i.step(l.steps[a].invert(l.docs[a]));\n if (o.text) {\n const a = i.doc.resolve(o.from).marks();\n i.replaceWith(o.from, o.to, t.schema.text(o.text, a));\n } else\n i.delete(o.from, o.to);\n }\n return !0;\n }\n }\n return !1;\n}, ly = () => ({ tr: t, dispatch: e }) => {\n const { selection: n } = t, { empty: r, ranges: s } = n;\n return r || e && s.forEach((o) => {\n t.removeMark(o.$from.pos, o.$to.pos);\n }), !0;\n}, ay = (t, e = {}) => ({ tr: n, state: r, dispatch: s }) => {\n var o;\n const { extendEmptyMarkRange: i = !1 } = e, { selection: l } = n, a = yt(t, r.schema), { $from: c, empty: d, ranges: u } = l;\n if (!s)\n return !0;\n if (d && i) {\n let { from: f, to: h } = l;\n const p = (o = c.marks().find((g) => g.type === a)) == null ? void 0 : o.attrs, m = _i(c, a, p);\n m && (f = m.from, h = m.to), n.removeMark(f, h, a);\n } else\n u.forEach((f) => {\n n.removeMark(f.$from.pos, f.$to.pos, a);\n });\n return n.removeStoredMark(a), !0;\n}, cy = (t) => ({ tr: e, state: n, dispatch: r }) => {\n const { selection: s } = n;\n let o, i;\n return typeof t == \"number\" ? (o = t, i = t) : t && \"from\" in t && \"to\" in t ? (o = t.from, i = t.to) : (o = s.from, i = s.to), r && e.doc.nodesBetween(o, i, (l, a) => {\n if (l.isText)\n return;\n const c = { ...l.attrs };\n delete c.dir, e.setNodeMarkup(a, void 0, c);\n }), !0;\n}, dy = (t, e = {}) => ({ tr: n, state: r, dispatch: s }) => {\n let o = null, i = null;\n const l = Ws(\n typeof t == \"string\" ? t : t.name,\n r.schema\n );\n if (!l)\n return !1;\n l === \"node\" && (o = ae(t, r.schema)), l === \"mark\" && (i = yt(t, r.schema));\n let a = !1;\n return n.selection.ranges.forEach((c) => {\n const d = c.$from.pos, u = c.$to.pos;\n let f, h, p, m;\n n.selection.empty ? r.doc.nodesBetween(d, u, (g, y) => {\n o && o === g.type && (a = !0, p = Math.max(y, d), m = Math.min(y + g.nodeSize, u), f = y, h = g);\n }) : r.doc.nodesBetween(d, u, (g, y) => {\n y < d && o && o === g.type && (a = !0, p = Math.max(y, d), m = Math.min(y + g.nodeSize, u), f = y, h = g), y >= d && y <= u && (o && o === g.type && (a = !0, s && n.setNodeMarkup(y, void 0, {\n ...g.attrs,\n ...e\n })), i && g.marks.length && g.marks.forEach((x) => {\n if (i === x.type && (a = !0, s)) {\n const k = Math.max(y, d), T = Math.min(y + g.nodeSize, u);\n n.addMark(\n k,\n T,\n i.create({\n ...x.attrs,\n ...e\n })\n );\n }\n }));\n }), h && (f !== void 0 && s && n.setNodeMarkup(f, void 0, {\n ...h.attrs,\n ...e\n }), i && h.marks.length && h.marks.forEach((g) => {\n i === g.type && s && n.addMark(\n p,\n m,\n i.create({\n ...g.attrs,\n ...e\n })\n );\n }));\n }), a;\n}, uy = (t, e = {}) => ({ state: n, dispatch: r }) => {\n const s = ae(t, n.schema);\n return Uh(s, e)(n, r);\n}, fy = (t, e = {}) => ({ state: n, dispatch: r }) => {\n const s = ae(t, n.schema);\n return Kh(s, e)(n, r);\n}, hy = class {\n constructor() {\n this.callbacks = {};\n }\n on(t, e) {\n return this.callbacks[t] || (this.callbacks[t] = []), this.callbacks[t].push(e), this;\n }\n emit(t, ...e) {\n const n = this.callbacks[t];\n return n && n.forEach((r) => r.apply(this, e)), this;\n }\n off(t, e) {\n const n = this.callbacks[t];\n return n && (e ? this.callbacks[t] = n.filter((r) => r !== e) : delete this.callbacks[t]), this;\n }\n once(t, e) {\n const n = (...r) => {\n this.off(t, n), e.apply(this, r);\n };\n return this.on(t, n);\n }\n removeAllListeners() {\n this.callbacks = {};\n }\n}, qs = class {\n constructor(t) {\n var e;\n this.find = t.find, this.handler = t.handler, this.undoable = (e = t.undoable) != null ? e : !0;\n }\n}, py = (t, e) => {\n if (Hi(e))\n return e.exec(t);\n const n = e(t);\n if (!n)\n return null;\n const r = [n.text];\n return r.index = n.index, r.input = t, r.data = n.data, n.replaceWith && (n.text.includes(n.replaceWith) || console.warn('[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".'), r.push(n.replaceWith)), r;\n};\nfunction xr(t) {\n var e;\n const { editor: n, from: r, to: s, text: o, rules: i, plugin: l } = t, { view: a } = n;\n if (a.composing)\n return !1;\n const c = a.state.doc.resolve(r);\n if (\n // check for code node\n c.parent.type.spec.code || (e = c.nodeBefore || c.nodeAfter) != null && e.marks.find((f) => f.type.spec.code)\n )\n return !1;\n let d = !1;\n const u = Vg(c) + o;\n return i.forEach((f) => {\n if (d)\n return;\n const h = py(u, f.find);\n if (!h)\n return;\n const p = a.state.tr, m = js({\n state: a.state,\n transaction: p\n }), g = {\n from: r - (h[0].length - o.length),\n to: s\n }, { commands: y, chain: x, can: k } = new Vs({\n editor: n,\n state: m\n });\n f.handler({\n state: m,\n range: g,\n match: h,\n commands: y,\n chain: x,\n can: k\n }) === null || !p.steps.length || (f.undoable && p.setMeta(l, {\n transform: p,\n from: r,\n to: s,\n text: o\n }), a.dispatch(p), d = !0);\n }), d;\n}\nfunction my(t) {\n const { editor: e, rules: n } = t, r = new ee({\n state: {\n init() {\n return null;\n },\n apply(s, o, i) {\n const l = s.getMeta(r);\n if (l)\n return l;\n const a = s.getMeta(\"applyInputRules\");\n return !!a && setTimeout(() => {\n let { text: d } = a;\n typeof d == \"string\" ? d = d : d = Vi(w.from(d), i.schema);\n const { from: u } = a, f = u + d.length;\n xr({\n editor: e,\n from: u,\n to: f,\n text: d,\n rules: n,\n plugin: r\n });\n }), s.selectionSet || s.docChanged ? null : o;\n }\n },\n props: {\n handleTextInput(s, o, i, l) {\n return xr({\n editor: e,\n from: o,\n to: i,\n text: l,\n rules: n,\n plugin: r\n });\n },\n handleDOMEvents: {\n compositionend: (s) => (setTimeout(() => {\n const { $cursor: o } = s.state.selection;\n o && xr({\n editor: e,\n from: o.pos,\n to: o.pos,\n text: \"\",\n rules: n,\n plugin: r\n });\n }), !1)\n },\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(s, o) {\n if (o.key !== \"Enter\")\n return !1;\n const { $cursor: i } = s.state.selection;\n return i ? xr({\n editor: e,\n from: i.pos,\n to: i.pos,\n text: `\n`,\n rules: n,\n plugin: r\n }) : !1;\n }\n },\n // @ts-ignore\n isInputRules: !0\n });\n return r;\n}\nfunction gy(t) {\n return Object.prototype.toString.call(t).slice(8, -1);\n}\nfunction wr(t) {\n return gy(t) !== \"Object\" ? !1 : t.constructor === Object && Object.getPrototypeOf(t) === Object.prototype;\n}\nfunction lu(t, e) {\n const n = { ...t };\n return wr(t) && wr(e) && Object.keys(e).forEach((r) => {\n wr(e[r]) && wr(t[r]) ? n[r] = lu(t[r], e[r]) : n[r] = e[r];\n }), n;\n}\nvar Ki = class {\n constructor(t = {}) {\n this.type = \"extendable\", this.parent = null, this.child = null, this.name = \"\", this.config = {\n name: this.name\n }, this.config = {\n ...this.config,\n ...t\n }, this.name = this.config.name;\n }\n get options() {\n return {\n ...V(\n I(this, \"addOptions\", {\n name: this.name\n })\n ) || {}\n };\n }\n get storage() {\n return {\n ...V(\n I(this, \"addStorage\", {\n name: this.name,\n options: this.options\n })\n ) || {}\n };\n }\n configure(t = {}) {\n const e = this.extend({\n ...this.config,\n addOptions: () => lu(this.options, t)\n });\n return e.name = this.name, e.parent = this.parent, e;\n }\n extend(t = {}) {\n const e = new this.constructor({ ...this.config, ...t });\n return e.parent = this, this.child = e, e.name = \"name\" in t ? t.name : e.parent.name, e;\n }\n}, bt = class au extends Ki {\n constructor() {\n super(...arguments), this.type = \"mark\";\n }\n /**\n * Create a new Mark instance\n * @param config - Mark configuration object or a function that returns a configuration object\n */\n static create(e = {}) {\n const n = typeof e == \"function\" ? e() : e;\n return new au(n);\n }\n static handleExit({ editor: e, mark: n }) {\n const { tr: r } = e.state, s = e.state.selection.$from;\n if (s.pos === s.end()) {\n const i = s.marks();\n if (!!!i.find((c) => c?.type.name === n.name))\n return !1;\n const a = i.find((c) => c?.type.name === n.name);\n return a && r.removeStoredMark(a), r.insertText(\" \", s.pos), e.view.dispatch(r), !0;\n }\n return !1;\n }\n configure(e) {\n return super.configure(e);\n }\n extend(e) {\n const n = typeof e == \"function\" ? e() : e;\n return super.extend(n);\n }\n};\nfunction yy(t) {\n return typeof t == \"number\";\n}\nvar by = class {\n constructor(t) {\n this.find = t.find, this.handler = t.handler;\n }\n}, ky = (t, e, n) => {\n if (Hi(e))\n return [...t.matchAll(e)];\n const r = e(t, n);\n return r ? r.map((s) => {\n const o = [s.text];\n return o.index = s.index, o.input = t, o.data = s.data, s.replaceWith && (s.text.includes(s.replaceWith) || console.warn('[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".'), o.push(s.replaceWith)), o;\n }) : [];\n};\nfunction xy(t) {\n const { editor: e, state: n, from: r, to: s, rule: o, pasteEvent: i, dropEvent: l } = t, { commands: a, chain: c, can: d } = new Vs({\n editor: e,\n state: n\n }), u = [];\n return n.doc.nodesBetween(r, s, (h, p) => {\n var m, g, y, x, k;\n if ((g = (m = h.type) == null ? void 0 : m.spec) != null && g.code || !(h.isText || h.isTextblock || h.isInline))\n return;\n const T = (k = (x = (y = h.content) == null ? void 0 : y.size) != null ? x : h.nodeSize) != null ? k : 0, b = Math.max(r, p), E = Math.min(s, p + T);\n if (b >= E)\n return;\n const S = h.isText ? h.text || \"\" : h.textBetween(b - p, E - p, void 0, \"\");\n ky(S, o.find, i).forEach((L) => {\n if (L.index === void 0)\n return;\n const W = b + L.index + 1, z = W + L[0].length, U = {\n from: n.tr.mapping.map(W),\n to: n.tr.mapping.map(z)\n }, ue = o.handler({\n state: n,\n range: U,\n match: L,\n commands: a,\n chain: c,\n can: d,\n pasteEvent: i,\n dropEvent: l\n });\n u.push(ue);\n });\n }), u.every((h) => h !== null);\n}\nvar Sr = null, wy = (t) => {\n var e;\n const n = new ClipboardEvent(\"paste\", {\n clipboardData: new DataTransfer()\n });\n return (e = n.clipboardData) == null || e.setData(\"text/html\", t), n;\n};\nfunction Sy(t) {\n const { editor: e, rules: n } = t;\n let r = null, s = !1, o = !1, i = typeof ClipboardEvent < \"u\" ? new ClipboardEvent(\"paste\") : null, l;\n try {\n l = typeof DragEvent < \"u\" ? new DragEvent(\"drop\") : null;\n } catch {\n l = null;\n }\n const a = ({\n state: d,\n from: u,\n to: f,\n rule: h,\n pasteEvt: p\n }) => {\n const m = d.tr, g = js({\n state: d,\n transaction: m\n });\n if (!(!xy({\n editor: e,\n state: g,\n from: Math.max(u - 1, 0),\n to: f.b - 1,\n rule: h,\n pasteEvent: p,\n dropEvent: l\n }) || !m.steps.length)) {\n try {\n l = typeof DragEvent < \"u\" ? new DragEvent(\"drop\") : null;\n } catch {\n l = null;\n }\n return i = typeof ClipboardEvent < \"u\" ? new ClipboardEvent(\"paste\") : null, m;\n }\n };\n return n.map((d) => new ee({\n // we register a global drag handler to track the current drag source element\n view(u) {\n const f = (p) => {\n var m;\n r = (m = u.dom.parentElement) != null && m.contains(p.target) ? u.dom.parentElement : null, r && (Sr = e);\n }, h = () => {\n Sr && (Sr = null);\n };\n return window.addEventListener(\"dragstart\", f), window.addEventListener(\"dragend\", h), {\n destroy() {\n window.removeEventListener(\"dragstart\", f), window.removeEventListener(\"dragend\", h);\n }\n };\n },\n props: {\n handleDOMEvents: {\n drop: (u, f) => {\n if (o = r === u.dom.parentElement, l = f, !o) {\n const h = Sr;\n h?.isEditable && setTimeout(() => {\n const p = h.state.selection;\n p && h.commands.deleteRange({ from: p.from, to: p.to });\n }, 10);\n }\n return !1;\n },\n paste: (u, f) => {\n var h;\n const p = (h = f.clipboardData) == null ? void 0 : h.getData(\"text/html\");\n return i = f, s = !!p?.includes(\"data-pm-slice\"), !1;\n }\n }\n },\n appendTransaction: (u, f, h) => {\n const p = u[0], m = p.getMeta(\"uiEvent\") === \"paste\" && !s, g = p.getMeta(\"uiEvent\") === \"drop\" && !o, y = p.getMeta(\"applyPasteRules\"), x = !!y;\n if (!m && !g && !x)\n return;\n if (x) {\n let { text: b } = y;\n typeof b == \"string\" ? b = b : b = Vi(w.from(b), h.schema);\n const { from: E } = y, S = E + b.length, C = wy(b);\n return a({\n rule: d,\n state: h,\n from: E,\n to: { b: S },\n pasteEvt: C\n });\n }\n const k = f.doc.content.findDiffStart(h.doc.content), T = f.doc.content.findDiffEnd(h.doc.content);\n if (!(!yy(k) || !T || k === T.b))\n return a({\n rule: d,\n state: h,\n from: k,\n to: T,\n pasteEvt: i\n });\n }\n }));\n}\nvar Js = class {\n constructor(t, e) {\n this.splittableMarks = [], this.editor = e, this.baseExtensions = t, this.extensions = Wi(t), this.schema = tu(this.extensions, e), this.setupExtensions();\n }\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands() {\n return this.extensions.reduce((t, e) => {\n const n = {\n name: e.name,\n options: e.options,\n storage: this.editor.extensionStorage[e.name],\n editor: this.editor,\n type: ho(e.name, this.schema)\n }, r = I(e, \"addCommands\", n);\n return r ? {\n ...t,\n ...r()\n } : t;\n }, {});\n }\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins() {\n const { editor: t } = this;\n return Fi([...this.extensions].reverse()).flatMap((r) => {\n const s = {\n name: r.name,\n options: r.options,\n storage: this.editor.extensionStorage[r.name],\n editor: t,\n type: ho(r.name, this.schema)\n }, o = [], i = I(\n r,\n \"addKeyboardShortcuts\",\n s\n );\n let l = {};\n if (r.type === \"mark\" && I(r, \"exitable\", s) && (l.ArrowRight = () => bt.handleExit({ editor: t, mark: r })), i) {\n const f = Object.fromEntries(\n Object.entries(i()).map(([h, p]) => [h, () => p({ editor: t })])\n );\n l = { ...l, ...f };\n }\n const a = _m(l);\n o.push(a);\n const c = I(r, \"addInputRules\", s);\n if (ga(r, t.options.enableInputRules) && c) {\n const f = c();\n if (f && f.length) {\n const h = my({\n editor: t,\n rules: f\n }), p = Array.isArray(h) ? h : [h];\n o.push(...p);\n }\n }\n const d = I(r, \"addPasteRules\", s);\n if (ga(r, t.options.enablePasteRules) && d) {\n const f = d();\n if (f && f.length) {\n const h = Sy({ editor: t, rules: f });\n o.push(...h);\n }\n }\n const u = I(\n r,\n \"addProseMirrorPlugins\",\n s\n );\n if (u) {\n const f = u();\n o.push(...f);\n }\n return o;\n });\n }\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return eu(this.extensions);\n }\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor: t } = this, { nodeExtensions: e } = Nn(this.extensions);\n return Object.fromEntries(\n e.filter((n) => !!I(n, \"addNodeView\")).map((n) => {\n const r = this.attributes.filter((a) => a.type === n.name), s = {\n name: n.name,\n options: n.options,\n storage: this.editor.extensionStorage[n.name],\n editor: t,\n type: ae(n.name, this.schema)\n }, o = I(n, \"addNodeView\", s);\n if (!o)\n return [];\n const i = o();\n if (!i)\n return [];\n const l = (a, c, d, u, f) => {\n const h = lr(a, r);\n return i({\n // pass-through\n node: a,\n view: c,\n getPos: d,\n decorations: u,\n innerDecorations: f,\n // tiptap-specific\n editor: t,\n extension: n,\n HTMLAttributes: h\n });\n };\n return [n.name, l];\n })\n );\n }\n get markViews() {\n const { editor: t } = this, { markExtensions: e } = Nn(this.extensions);\n return Object.fromEntries(\n e.filter((n) => !!I(n, \"addMarkView\")).map((n) => {\n const r = this.attributes.filter((l) => l.type === n.name), s = {\n name: n.name,\n options: n.options,\n storage: this.editor.extensionStorage[n.name],\n editor: t,\n type: yt(n.name, this.schema)\n }, o = I(n, \"addMarkView\", s);\n if (!o)\n return [];\n const i = (l, a, c) => {\n const d = lr(l, r);\n return o()({\n // pass-through\n mark: l,\n view: a,\n inline: c,\n // tiptap-specific\n editor: t,\n extension: n,\n HTMLAttributes: d,\n updateAttributes: (u) => {\n By(l, t, u);\n }\n });\n };\n return [n.name, i];\n })\n );\n }\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n setupExtensions() {\n const t = this.extensions;\n this.editor.extensionStorage = Object.fromEntries(\n t.map((e) => [e.name, e.storage])\n ), t.forEach((e) => {\n var n;\n const r = {\n name: e.name,\n options: e.options,\n storage: this.editor.extensionStorage[e.name],\n editor: this.editor,\n type: ho(e.name, this.schema)\n };\n e.type === \"mark\" && ((n = V(I(e, \"keepOnSplit\", r))) == null || n) && this.splittableMarks.push(e.name);\n const s = I(e, \"onBeforeCreate\", r), o = I(e, \"onCreate\", r), i = I(e, \"onUpdate\", r), l = I(\n e,\n \"onSelectionUpdate\",\n r\n ), a = I(e, \"onTransaction\", r), c = I(e, \"onFocus\", r), d = I(e, \"onBlur\", r), u = I(e, \"onDestroy\", r);\n s && this.editor.on(\"beforeCreate\", s), o && this.editor.on(\"create\", o), i && this.editor.on(\"update\", i), l && this.editor.on(\"selectionUpdate\", l), a && this.editor.on(\"transaction\", a), c && this.editor.on(\"focus\", c), d && this.editor.on(\"blur\", d), u && this.editor.on(\"destroy\", u);\n });\n }\n};\nJs.resolve = Wi;\nJs.sort = Fi;\nJs.flatten = ji;\nvar Cy = {};\n$i(Cy, {\n ClipboardTextSerializer: () => du,\n Commands: () => uu,\n Delete: () => fu,\n Drop: () => hu,\n Editable: () => pu,\n FocusEvents: () => gu,\n Keymap: () => yu,\n Paste: () => bu,\n Tabindex: () => ku,\n TextDirection: () => xu,\n focusEventsPluginKey: () => mu\n});\nvar F = class cu extends Ki {\n constructor() {\n super(...arguments), this.type = \"extension\";\n }\n /**\n * Create a new Extension instance\n * @param config - Extension configuration object or a function that returns a configuration object\n */\n static create(e = {}) {\n const n = typeof e == \"function\" ? e() : e;\n return new cu(n);\n }\n configure(e) {\n return super.configure(e);\n }\n extend(e) {\n const n = typeof e == \"function\" ? e() : e;\n return super.extend(n);\n }\n}, du = F.create({\n name: \"clipboardTextSerializer\",\n addOptions() {\n return {\n blockSeparator: void 0\n };\n },\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"clipboardTextSerializer\"),\n props: {\n clipboardTextSerializer: () => {\n const { editor: t } = this, { state: e, schema: n } = t, { doc: r, selection: s } = e, { ranges: o } = s, i = Math.min(...o.map((d) => d.$from.pos)), l = Math.max(...o.map((d) => d.$to.pos)), a = ru(n);\n return nu(r, { from: i, to: l }, {\n ...this.options.blockSeparator !== void 0 ? { blockSeparator: this.options.blockSeparator } : {},\n textSerializers: a\n });\n }\n }\n })\n ];\n }\n}), uu = F.create({\n name: \"commands\",\n addCommands() {\n return {\n ...Fd\n };\n }\n}), fu = F.create({\n name: \"delete\",\n onUpdate({ transaction: t, appendedTransactions: e }) {\n var n, r, s;\n const o = () => {\n var i, l, a, c;\n if ((c = (a = (l = (i = this.editor.options.coreExtensionOptions) == null ? void 0 : i.delete) == null ? void 0 : l.filterTransaction) == null ? void 0 : a.call(l, t)) != null ? c : t.getMeta(\"y-sync$\"))\n return;\n const d = Xd(t.before, [t, ...e]);\n ou(d).forEach((h) => {\n d.mapping.mapResult(h.oldRange.from).deletedAfter && d.mapping.mapResult(h.oldRange.to).deletedBefore && d.before.nodesBetween(h.oldRange.from, h.oldRange.to, (p, m) => {\n const g = m + p.nodeSize - 2, y = h.oldRange.from <= m && g <= h.oldRange.to;\n this.editor.emit(\"delete\", {\n type: \"node\",\n node: p,\n from: m,\n to: g,\n newFrom: d.mapping.map(m),\n newTo: d.mapping.map(g),\n deletedRange: h.oldRange,\n newRange: h.newRange,\n partial: !y,\n editor: this.editor,\n transaction: t,\n combinedTransform: d\n });\n });\n });\n const f = d.mapping;\n d.steps.forEach((h, p) => {\n var m, g;\n if (h instanceof Je) {\n const y = f.slice(p).map(h.from, -1), x = f.slice(p).map(h.to), k = f.invert().map(y, -1), T = f.invert().map(x), b = (m = d.doc.nodeAt(y - 1)) == null ? void 0 : m.marks.some((S) => S.eq(h.mark)), E = (g = d.doc.nodeAt(x)) == null ? void 0 : g.marks.some((S) => S.eq(h.mark));\n this.editor.emit(\"delete\", {\n type: \"mark\",\n mark: h.mark,\n from: h.from,\n to: h.to,\n deletedRange: {\n from: k,\n to: T\n },\n newRange: {\n from: y,\n to: x\n },\n partial: !!(E || b),\n editor: this.editor,\n transaction: t,\n combinedTransform: d\n });\n }\n });\n };\n (s = (r = (n = this.editor.options.coreExtensionOptions) == null ? void 0 : n.delete) == null ? void 0 : r.async) == null || s ? setTimeout(o, 0) : o();\n }\n}), hu = F.create({\n name: \"drop\",\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"tiptapDrop\"),\n props: {\n handleDrop: (t, e, n, r) => {\n this.editor.emit(\"drop\", {\n editor: this.editor,\n event: e,\n slice: n,\n moved: r\n });\n }\n }\n })\n ];\n }\n}), pu = F.create({\n name: \"editable\",\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"editable\"),\n props: {\n editable: () => this.editor.options.editable\n }\n })\n ];\n }\n}), mu = new oe(\"focusEvents\"), gu = F.create({\n name: \"focusEvents\",\n addProseMirrorPlugins() {\n const { editor: t } = this;\n return [\n new ee({\n key: mu,\n props: {\n handleDOMEvents: {\n focus: (e, n) => {\n t.isFocused = !0;\n const r = t.state.tr.setMeta(\"focus\", { event: n }).setMeta(\"addToHistory\", !1);\n return e.dispatch(r), !1;\n },\n blur: (e, n) => {\n t.isFocused = !1;\n const r = t.state.tr.setMeta(\"blur\", { event: n }).setMeta(\"addToHistory\", !1);\n return e.dispatch(r), !1;\n }\n }\n }\n })\n ];\n }\n}), yu = F.create({\n name: \"keymap\",\n addKeyboardShortcuts() {\n const t = () => this.editor.commands.first(({ commands: i }) => [\n () => i.undoInputRule(),\n // maybe convert first text block node to default node\n () => i.command(({ tr: l }) => {\n const { selection: a, doc: c } = l, { empty: d, $anchor: u } = a, { pos: f, parent: h } = u, p = u.parent.isTextblock && f > 0 ? l.doc.resolve(f - 1) : u, m = p.parent.type.spec.isolating, g = u.pos - u.parentOffset, y = m && p.parent.childCount === 1 ? g === u.pos : B.atStart(c).from === f;\n return !d || !h.type.isTextblock || h.textContent.length || !y || y && u.parent.type.name === \"paragraph\" ? !1 : i.clearNodes();\n }),\n () => i.deleteSelection(),\n () => i.joinBackward(),\n () => i.selectNodeBackward()\n ]), e = () => this.editor.commands.first(({ commands: i }) => [\n () => i.deleteSelection(),\n () => i.deleteCurrentNode(),\n () => i.joinForward(),\n () => i.selectNodeForward()\n ]), r = {\n Enter: () => this.editor.commands.first(({ commands: i }) => [\n () => i.newlineInCode(),\n () => i.createParagraphNear(),\n () => i.liftEmptyBlock(),\n () => i.splitBlock()\n ]),\n \"Mod-Enter\": () => this.editor.commands.exitCode(),\n Backspace: t,\n \"Mod-Backspace\": t,\n \"Shift-Backspace\": t,\n Delete: e,\n \"Mod-Delete\": e,\n \"Mod-a\": () => this.editor.commands.selectAll()\n }, s = {\n ...r\n }, o = {\n ...r,\n \"Ctrl-h\": t,\n \"Alt-Backspace\": t,\n \"Ctrl-d\": e,\n \"Ctrl-Alt-Backspace\": e,\n \"Alt-Delete\": e,\n \"Alt-d\": e,\n \"Ctrl-a\": () => this.editor.commands.selectTextblockStart(),\n \"Ctrl-e\": () => this.editor.commands.selectTextblockEnd()\n };\n return Fs() || Gd() ? o : s;\n },\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new ee({\n key: new oe(\"clearDocument\"),\n appendTransaction: (t, e, n) => {\n if (t.some((m) => m.getMeta(\"composition\")))\n return;\n const r = t.some((m) => m.docChanged) && !e.doc.eq(n.doc), s = t.some((m) => m.getMeta(\"preventClearDocument\"));\n if (!r || s)\n return;\n const { empty: o, from: i, to: l } = e.selection, a = B.atStart(e.doc).from, c = B.atEnd(e.doc).to;\n if (o || !(i === a && l === c) || !Ks(n.doc))\n return;\n const f = n.tr, h = js({\n state: n,\n transaction: f\n }), { commands: p } = new Vs({\n editor: this.editor,\n state: h\n });\n if (p.clearNodes(), !!f.steps.length)\n return f;\n }\n })\n ];\n }\n}), bu = F.create({\n name: \"paste\",\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"tiptapPaste\"),\n props: {\n handlePaste: (t, e, n) => {\n this.editor.emit(\"paste\", {\n editor: this.editor,\n event: e,\n slice: n\n });\n }\n }\n })\n ];\n }\n}), ku = F.create({\n name: \"tabindex\",\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"tabindex\"),\n props: {\n attributes: () => this.editor.isEditable ? { tabindex: \"0\" } : {}\n }\n })\n ];\n }\n}), xu = F.create({\n name: \"textDirection\",\n addOptions() {\n return {\n direction: void 0\n };\n },\n addGlobalAttributes() {\n if (!this.options.direction)\n return [];\n const { nodeExtensions: t } = Nn(this.extensions);\n return [\n {\n types: t.filter((e) => e.name !== \"text\").map((e) => e.name),\n attributes: {\n dir: {\n default: this.options.direction,\n parseHTML: (e) => {\n const n = e.getAttribute(\"dir\");\n return n && (n === \"ltr\" || n === \"rtl\" || n === \"auto\") ? n : this.options.direction;\n },\n renderHTML: (e) => e.dir ? {\n dir: e.dir\n } : {}\n }\n }\n }\n ];\n },\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"textDirection\"),\n props: {\n attributes: () => {\n const t = this.options.direction;\n return t ? {\n dir: t\n } : {};\n }\n }\n })\n ];\n }\n}), vy = class kn {\n constructor(e, n, r = !1, s = null) {\n this.currentNode = null, this.actualDepth = null, this.isBlock = r, this.resolvedPos = e, this.editor = n, this.currentNode = s;\n }\n get name() {\n return this.node.type.name;\n }\n get node() {\n return this.currentNode || this.resolvedPos.node();\n }\n get element() {\n return this.editor.view.domAtPos(this.pos).node;\n }\n get depth() {\n var e;\n return (e = this.actualDepth) != null ? e : this.resolvedPos.depth;\n }\n get pos() {\n return this.resolvedPos.pos;\n }\n get content() {\n return this.node.content;\n }\n set content(e) {\n let n = this.from, r = this.to;\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);\n return;\n }\n n = this.from + 1, r = this.to - 1;\n }\n this.editor.commands.insertContentAt({ from: n, to: r }, e);\n }\n get attributes() {\n return this.node.attrs;\n }\n get textContent() {\n return this.node.textContent;\n }\n get size() {\n return this.node.nodeSize;\n }\n get from() {\n return this.isBlock ? this.pos : this.resolvedPos.start(this.resolvedPos.depth);\n }\n get range() {\n return {\n from: this.from,\n to: this.to\n };\n }\n get to() {\n return this.isBlock ? this.pos + this.size : this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1);\n }\n get parent() {\n if (this.depth === 0)\n return null;\n const e = this.resolvedPos.start(this.resolvedPos.depth - 1), n = this.resolvedPos.doc.resolve(e);\n return new kn(n, this.editor);\n }\n get before() {\n let e = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2));\n return e.depth !== this.depth && (e = this.resolvedPos.doc.resolve(this.from - 3)), new kn(e, this.editor);\n }\n get after() {\n let e = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1));\n return e.depth !== this.depth && (e = this.resolvedPos.doc.resolve(this.to + 3)), new kn(e, this.editor);\n }\n get children() {\n const e = [];\n return this.node.content.forEach((n, r) => {\n const s = n.isBlock && !n.isTextblock, o = n.isAtom && !n.isText, i = this.pos + r + (o ? 0 : 1);\n if (i < 0 || i > this.resolvedPos.doc.nodeSize - 2)\n return;\n const l = this.resolvedPos.doc.resolve(i);\n if (!s && l.depth <= this.depth)\n return;\n const a = new kn(l, this.editor, s, s ? n : null);\n s && (a.actualDepth = this.depth + 1), e.push(new kn(l, this.editor, s, s ? n : null));\n }), e;\n }\n get firstChild() {\n return this.children[0] || null;\n }\n get lastChild() {\n const e = this.children;\n return e[e.length - 1] || null;\n }\n closest(e, n = {}) {\n let r = null, s = this.parent;\n for (; s && !r; ) {\n if (s.node.type.name === e)\n if (Object.keys(n).length > 0) {\n const o = s.node.attrs, i = Object.keys(n);\n for (let l = 0; l < i.length; l += 1) {\n const a = i[l];\n if (o[a] !== n[a])\n break;\n }\n } else\n r = s;\n s = s.parent;\n }\n return r;\n }\n querySelector(e, n = {}) {\n return this.querySelectorAll(e, n, !0)[0] || null;\n }\n querySelectorAll(e, n = {}, r = !1) {\n let s = [];\n if (!this.children || this.children.length === 0)\n return s;\n const o = Object.keys(n);\n return this.children.forEach((i) => {\n r && s.length > 0 || (i.node.type.name === e && o.every((a) => n[a] === i.node.attrs[a]) && s.push(i), !(r && s.length > 0) && (s = s.concat(i.querySelectorAll(e, n, r))));\n }), s;\n }\n setAttribute(e) {\n const { tr: n } = this.editor.state;\n n.setNodeMarkup(this.from, void 0, {\n ...this.node.attrs,\n ...e\n }), this.editor.view.dispatch(n);\n }\n}, My = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}`;\nfunction Ty(t, e, n) {\n const r = document.querySelector(\"style[data-tiptap-style]\");\n if (r !== null)\n return r;\n const s = document.createElement(\"style\");\n return e && s.setAttribute(\"nonce\", e), s.setAttribute(\"data-tiptap-style\", \"\"), s.innerHTML = t, document.getElementsByTagName(\"head\")[0].appendChild(s), s;\n}\nvar Ey = class extends hy {\n constructor(t = {}) {\n super(), this.css = null, this.className = \"tiptap\", this.editorView = null, this.isFocused = !1, this.isInitialized = !1, this.extensionStorage = {}, this.instanceId = Math.random().toString(36).slice(2, 9), this.options = {\n element: typeof document < \"u\" ? document.createElement(\"div\") : null,\n content: \"\",\n injectCSS: !0,\n injectNonce: void 0,\n extensions: [],\n autofocus: !1,\n editable: !0,\n textDirection: void 0,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: !0,\n enablePasteRules: !0,\n enableCoreExtensions: !0,\n enableContentCheck: !1,\n emitContentError: !1,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onMount: () => null,\n onUnmount: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error: r }) => {\n throw r;\n },\n onPaste: () => null,\n onDrop: () => null,\n onDelete: () => null\n }, this.isCapturingTransaction = !1, this.capturedTransaction = null, this.setOptions(t), this.createExtensionManager(), this.createCommandManager(), this.createSchema(), this.on(\"beforeCreate\", this.options.onBeforeCreate), this.emit(\"beforeCreate\", { editor: this }), this.on(\"mount\", this.options.onMount), this.on(\"unmount\", this.options.onUnmount), this.on(\"contentError\", this.options.onContentError), this.on(\"create\", this.options.onCreate), this.on(\"update\", this.options.onUpdate), this.on(\"selectionUpdate\", this.options.onSelectionUpdate), this.on(\"transaction\", this.options.onTransaction), this.on(\"focus\", this.options.onFocus), this.on(\"blur\", this.options.onBlur), this.on(\"destroy\", this.options.onDestroy), this.on(\"drop\", ({ event: r, slice: s, moved: o }) => this.options.onDrop(r, s, o)), this.on(\"paste\", ({ event: r, slice: s }) => this.options.onPaste(r, s)), this.on(\"delete\", this.options.onDelete);\n const e = this.createDoc(), n = Kd(e, this.options.autofocus);\n this.editorState = wn.create({\n doc: e,\n schema: this.schema,\n selection: n || void 0\n }), this.options.element && this.mount(this.options.element);\n }\n /**\n * Attach the editor to the DOM, creating a new editor view.\n */\n mount(t) {\n if (typeof document > \"u\")\n throw new Error(\n \"[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.\"\n );\n this.createView(t), this.emit(\"mount\", { editor: this }), this.css && !document.head.contains(this.css) && document.head.appendChild(this.css), window.setTimeout(() => {\n this.isDestroyed || (this.options.autofocus !== !1 && this.options.autofocus !== null && this.commands.focus(this.options.autofocus), this.emit(\"create\", { editor: this }), this.isInitialized = !0);\n }, 0);\n }\n /**\n * Remove the editor from the DOM, but still allow remounting at a different point in time\n */\n unmount() {\n if (this.editorView) {\n const t = this.editorView.dom;\n t?.editor && delete t.editor, this.editorView.destroy();\n }\n if (this.editorView = null, this.isInitialized = !1, this.css && !document.querySelectorAll(`.${this.className}`).length)\n try {\n typeof this.css.remove == \"function\" ? this.css.remove() : this.css.parentNode && this.css.parentNode.removeChild(this.css);\n } catch (t) {\n console.warn(\"Failed to remove CSS element:\", t);\n }\n this.css = null, this.emit(\"unmount\", { editor: this });\n }\n /**\n * Returns the editor storage.\n */\n get storage() {\n return this.extensionStorage;\n }\n /**\n * An object of all registered commands.\n */\n get commands() {\n return this.commandManager.commands;\n }\n /**\n * Create a command chain to call multiple commands at once.\n */\n chain() {\n return this.commandManager.chain();\n }\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n can() {\n return this.commandManager.can();\n }\n /**\n * Inject CSS styles.\n */\n injectCSS() {\n this.options.injectCSS && typeof document < \"u\" && (this.css = Ty(My, this.options.injectNonce));\n }\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n setOptions(t = {}) {\n this.options = {\n ...this.options,\n ...t\n }, !(!this.editorView || !this.state || this.isDestroyed) && (this.options.editorProps && this.view.setProps(this.options.editorProps), this.view.updateState(this.state));\n }\n /**\n * Update editable state of the editor.\n */\n setEditable(t, e = !0) {\n this.setOptions({ editable: t }), e && this.emit(\"update\", { editor: this, transaction: this.state.tr, appendedTransactions: [] });\n }\n /**\n * Returns whether the editor is editable.\n */\n get isEditable() {\n return this.options.editable && this.view && this.view.editable;\n }\n /**\n * Returns the editor state.\n */\n get view() {\n return this.editorView ? this.editorView : new Proxy(\n {\n state: this.editorState,\n updateState: (t) => {\n this.editorState = t;\n },\n dispatch: (t) => {\n this.dispatchTransaction(t);\n },\n // Stub some commonly accessed properties to prevent errors\n composing: !1,\n dragging: null,\n editable: !0,\n isDestroyed: !1\n },\n {\n get: (t, e) => {\n if (this.editorView)\n return this.editorView[e];\n if (e === \"state\")\n return this.editorState;\n if (e in t)\n return Reflect.get(t, e);\n throw new Error(\n `[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`\n );\n }\n }\n );\n }\n /**\n * Returns the editor state.\n */\n get state() {\n return this.editorView && (this.editorState = this.view.state), this.editorState;\n }\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n * @returns The new editor state\n */\n registerPlugin(t, e) {\n const n = Zd(e) ? e(t, [...this.state.plugins]) : [...this.state.plugins, t], r = this.state.reconfigure({ plugins: n });\n return this.view.updateState(r), r;\n }\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKeyToRemove The plugins name\n * @returns The new editor state or undefined if the editor is destroyed\n */\n unregisterPlugin(t) {\n if (this.isDestroyed)\n return;\n const e = this.state.plugins;\n let n = e;\n if ([].concat(t).forEach((s) => {\n const o = typeof s == \"string\" ? `${s}$` : s.key;\n n = n.filter((i) => !i.key.startsWith(o));\n }), e.length === n.length)\n return;\n const r = this.state.reconfigure({\n plugins: n\n });\n return this.view.updateState(r), r;\n }\n /**\n * Creates an extension manager.\n */\n createExtensionManager() {\n var t, e;\n const r = [...this.options.enableCoreExtensions ? [\n pu,\n du.configure({\n blockSeparator: (e = (t = this.options.coreExtensionOptions) == null ? void 0 : t.clipboardTextSerializer) == null ? void 0 : e.blockSeparator\n }),\n uu,\n gu,\n yu,\n ku,\n hu,\n bu,\n fu,\n xu.configure({\n direction: this.options.textDirection\n })\n ].filter((s) => typeof this.options.enableCoreExtensions == \"object\" ? this.options.enableCoreExtensions[s.name] !== !1 : !0) : [], ...this.options.extensions].filter((s) => [\"extension\", \"node\", \"mark\"].includes(s?.type));\n this.extensionManager = new Js(r, this);\n }\n /**\n * Creates an command manager.\n */\n createCommandManager() {\n this.commandManager = new Vs({\n editor: this\n });\n }\n /**\n * Creates a ProseMirror schema.\n */\n createSchema() {\n this.schema = this.extensionManager.schema;\n }\n /**\n * Creates the initial document.\n */\n createDoc() {\n let t;\n try {\n t = Go(this.options.content, this.schema, this.options.parseOptions, {\n errorOnInvalidContent: this.options.enableContentCheck\n });\n } catch (e) {\n if (!(e instanceof Error) || ![\"[tiptap error]: Invalid JSON content\", \"[tiptap error]: Invalid HTML content\"].includes(e.message))\n throw e;\n this.emit(\"contentError\", {\n editor: this,\n error: e,\n disableCollaboration: () => {\n \"collaboration\" in this.storage && typeof this.storage.collaboration == \"object\" && this.storage.collaboration && (this.storage.collaboration.isDisabled = !0), this.options.extensions = this.options.extensions.filter((n) => n.name !== \"collaboration\"), this.createExtensionManager();\n }\n }), t = Go(this.options.content, this.schema, this.options.parseOptions, {\n errorOnInvalidContent: !1\n });\n }\n return t;\n }\n /**\n * Creates a ProseMirror view.\n */\n createView(t) {\n var e;\n this.editorView = new Vd(t, {\n ...this.options.editorProps,\n attributes: {\n // add `role=\"textbox\"` to the editor element\n role: \"textbox\",\n ...(e = this.options.editorProps) == null ? void 0 : e.attributes\n },\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: this.editorState,\n markViews: this.extensionManager.markViews,\n nodeViews: this.extensionManager.nodeViews\n });\n const n = this.state.reconfigure({\n plugins: this.extensionManager.plugins\n });\n this.view.updateState(n), this.prependClass(), this.injectCSS();\n const r = this.view.dom;\n r.editor = this;\n }\n /**\n * Creates all node and mark views.\n */\n createNodeViews() {\n this.view.isDestroyed || this.view.setProps({\n markViews: this.extensionManager.markViews,\n nodeViews: this.extensionManager.nodeViews\n });\n }\n /**\n * Prepend class name to element.\n */\n prependClass() {\n this.view.dom.className = `${this.className} ${this.view.dom.className}`;\n }\n captureTransaction(t) {\n this.isCapturingTransaction = !0, t(), this.isCapturingTransaction = !1;\n const e = this.capturedTransaction;\n return this.capturedTransaction = null, e;\n }\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n dispatchTransaction(t) {\n if (this.view.isDestroyed)\n return;\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = t;\n return;\n }\n t.steps.forEach((c) => {\n var d;\n return (d = this.capturedTransaction) == null ? void 0 : d.step(c);\n });\n return;\n }\n const { state: e, transactions: n } = this.state.applyTransaction(t), r = !this.state.selection.eq(e.selection), s = n.includes(t), o = this.state;\n if (this.emit(\"beforeTransaction\", {\n editor: this,\n transaction: t,\n nextState: e\n }), !s)\n return;\n this.view.updateState(e), this.emit(\"transaction\", {\n editor: this,\n transaction: t,\n appendedTransactions: n.slice(1)\n }), r && this.emit(\"selectionUpdate\", {\n editor: this,\n transaction: t\n });\n const i = n.findLast((c) => c.getMeta(\"focus\") || c.getMeta(\"blur\")), l = i?.getMeta(\"focus\"), a = i?.getMeta(\"blur\");\n l && this.emit(\"focus\", {\n editor: this,\n event: l.event,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n transaction: i\n }), a && this.emit(\"blur\", {\n editor: this,\n event: a.event,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n transaction: i\n }), !(t.getMeta(\"preventUpdate\") || !n.some((c) => c.docChanged) || o.doc.eq(e.doc)) && this.emit(\"update\", {\n editor: this,\n transaction: t,\n appendedTransactions: n.slice(1)\n });\n }\n /**\n * Get attributes of the currently selected node or mark.\n */\n getAttributes(t) {\n return su(this.state, t);\n }\n isActive(t, e) {\n const n = typeof t == \"string\" ? t : null, r = typeof t == \"string\" ? e : t;\n return Fg(this.state, n, r);\n }\n /**\n * Get the document as JSON.\n */\n getJSON() {\n return this.state.doc.toJSON();\n }\n /**\n * Get the document as HTML.\n */\n getHTML() {\n return Vi(this.state.doc.content, this.schema);\n }\n /**\n * Get the document as text.\n */\n getText(t) {\n const { blockSeparator: e = `\n\n`, textSerializers: n = {} } = t || {};\n return Bg(this.state.doc, {\n blockSeparator: e,\n textSerializers: {\n ...ru(this.schema),\n ...n\n }\n });\n }\n /**\n * Check if there is no content.\n */\n get isEmpty() {\n return Ks(this.state.doc);\n }\n /**\n * Destroy the editor.\n */\n destroy() {\n this.emit(\"destroy\"), this.unmount(), this.removeAllListeners();\n }\n /**\n * Check if the editor is already destroyed.\n */\n get isDestroyed() {\n var t, e;\n return (e = (t = this.editorView) == null ? void 0 : t.isDestroyed) != null ? e : !0;\n }\n $node(t, e) {\n var n;\n return ((n = this.$doc) == null ? void 0 : n.querySelector(t, e)) || null;\n }\n $nodes(t, e) {\n var n;\n return ((n = this.$doc) == null ? void 0 : n.querySelectorAll(t, e)) || null;\n }\n $pos(t) {\n const e = this.state.doc.resolve(t);\n return new vy(e, this);\n }\n get $doc() {\n return this.$pos(0);\n }\n};\nfunction sn(t) {\n return new qs({\n find: t.find,\n handler: ({ state: e, range: n, match: r }) => {\n const s = V(t.getAttributes, void 0, r);\n if (s === !1 || s === null)\n return null;\n const { tr: o } = e, i = r[r.length - 1], l = r[0];\n if (i) {\n const a = l.search(/\\S/), c = n.from + l.indexOf(i), d = c + i.length;\n if (Ui(n.from, n.to, e.doc).filter((h) => h.mark.type.excluded.find((m) => m === t.type && m !== h.mark.type)).filter((h) => h.to > c).length)\n return null;\n d < n.to && o.delete(d, n.to), c > n.from && o.delete(n.from + a, c);\n const f = n.from + a + i.length;\n o.addMark(n.from + a, f, t.type.create(s || {})), o.removeStoredMark(t.type);\n }\n },\n undoable: t.undoable\n });\n}\nfunction wu(t) {\n return new qs({\n find: t.find,\n handler: ({ state: e, range: n, match: r }) => {\n const s = V(t.getAttributes, void 0, r) || {}, { tr: o } = e, i = n.from;\n let l = n.to;\n const a = t.type.create(s);\n if (r[1]) {\n const c = r[0].lastIndexOf(r[1]);\n let d = i + c;\n d > l ? d = l : l = d + r[1].length;\n const u = r[0][r[0].length - 1];\n o.insertText(u, i + r[0].length - 1), o.replaceWith(d, l, a);\n } else if (r[0]) {\n const c = t.type.isInline ? i : i - 1;\n o.insert(c, t.type.create(s)).delete(o.mapping.map(i), o.mapping.map(l));\n }\n o.scrollIntoView();\n },\n undoable: t.undoable\n });\n}\nfunction Xo(t) {\n return new qs({\n find: t.find,\n handler: ({ state: e, range: n, match: r }) => {\n const s = e.doc.resolve(n.from), o = V(t.getAttributes, void 0, r) || {};\n if (!s.node(-1).canReplaceWith(s.index(-1), s.indexAfter(-1), t.type))\n return null;\n e.tr.delete(n.from, n.to).setBlockType(n.from, n.from, t.type, o);\n },\n undoable: t.undoable\n });\n}\nfunction On(t) {\n return new qs({\n find: t.find,\n handler: ({ state: e, range: n, match: r, chain: s }) => {\n const o = V(t.getAttributes, void 0, r) || {}, i = e.tr.delete(n.from, n.to), a = i.doc.resolve(n.from).blockRange(), c = a && xi(a, t.type, o);\n if (!c)\n return null;\n if (i.wrap(a, c), t.keepMarks && t.editor) {\n const { selection: u, storedMarks: f } = e, { splittableMarks: h } = t.editor.extensionManager, p = f || u.$to.parentOffset && u.$from.marks();\n if (p) {\n const m = p.filter((g) => h.includes(g.type.name));\n i.ensureMarks(m);\n }\n }\n if (t.keepAttributes) {\n const u = t.type.name === \"bulletList\" || t.type.name === \"orderedList\" ? \"listItem\" : \"taskList\";\n s().updateAttributes(u, o).run();\n }\n const d = i.doc.resolve(n.from - 1).nodeBefore;\n d && d.type === t.type && Ht(i.doc, n.from - 1) && (!t.joinPredicate || t.joinPredicate(r, d)) && i.join(n.from - 1);\n },\n undoable: t.undoable\n });\n}\nvar Ay = (t) => \"touches\" in t, Ny = class {\n /**\n * Creates a new ResizableNodeView instance.\n *\n * The constructor sets up the resize handles, applies initial sizing from\n * node attributes, and configures all resize behavior options.\n *\n * @param options - Configuration options for the resizable node view\n */\n constructor(t) {\n this.directions = [\"bottom-left\", \"bottom-right\", \"top-left\", \"top-right\"], this.minSize = {\n height: 8,\n width: 8\n }, this.preserveAspectRatio = !1, this.classNames = {\n container: \"\",\n wrapper: \"\",\n handle: \"\",\n resizing: \"\"\n }, this.initialWidth = 0, this.initialHeight = 0, this.aspectRatio = 1, this.isResizing = !1, this.activeHandle = null, this.startX = 0, this.startY = 0, this.startWidth = 0, this.startHeight = 0, this.isShiftKeyPressed = !1, this.handleMouseMove = (i) => {\n if (!this.isResizing || !this.activeHandle)\n return;\n const l = i.clientX - this.startX, a = i.clientY - this.startY;\n this.handleResize(l, a);\n }, this.handleTouchMove = (i) => {\n if (!this.isResizing || !this.activeHandle)\n return;\n const l = i.touches[0];\n if (!l)\n return;\n const a = l.clientX - this.startX, c = l.clientY - this.startY;\n this.handleResize(a, c);\n }, this.handleMouseUp = () => {\n if (!this.isResizing)\n return;\n const i = this.element.offsetWidth, l = this.element.offsetHeight;\n this.onCommit(i, l), this.isResizing = !1, this.activeHandle = null, this.container.dataset.resizeState = \"false\", this.classNames.resizing && this.container.classList.remove(this.classNames.resizing), document.removeEventListener(\"mousemove\", this.handleMouseMove), document.removeEventListener(\"mouseup\", this.handleMouseUp), document.removeEventListener(\"keydown\", this.handleKeyDown), document.removeEventListener(\"keyup\", this.handleKeyUp);\n }, this.handleKeyDown = (i) => {\n i.key === \"Shift\" && (this.isShiftKeyPressed = !0);\n }, this.handleKeyUp = (i) => {\n i.key === \"Shift\" && (this.isShiftKeyPressed = !1);\n };\n var e, n, r, s, o;\n this.node = t.node, this.element = t.element, this.contentElement = t.contentElement, this.getPos = t.getPos, this.onResize = t.onResize, this.onCommit = t.onCommit, this.onUpdate = t.onUpdate, (e = t.options) != null && e.min && (this.minSize = {\n ...this.minSize,\n ...t.options.min\n }), (n = t.options) != null && n.max && (this.maxSize = t.options.max), (r = t?.options) != null && r.directions && (this.directions = t.options.directions), (s = t.options) != null && s.preserveAspectRatio && (this.preserveAspectRatio = t.options.preserveAspectRatio), (o = t.options) != null && o.className && (this.classNames = {\n container: t.options.className.container || \"\",\n wrapper: t.options.className.wrapper || \"\",\n handle: t.options.className.handle || \"\",\n resizing: t.options.className.resizing || \"\"\n }), this.wrapper = this.createWrapper(), this.container = this.createContainer(), this.applyInitialSize(), this.attachHandles();\n }\n /**\n * Returns the top-level DOM node that should be placed in the editor.\n *\n * This is required by the ProseMirror NodeView interface. The container\n * includes the wrapper, handles, and the actual content element.\n *\n * @returns The container element to be inserted into the editor\n */\n get dom() {\n return this.container;\n }\n get contentDOM() {\n return this.contentElement;\n }\n /**\n * Called when the node's content or attributes change.\n *\n * Updates the internal node reference. If a custom `onUpdate` callback\n * was provided, it will be called to handle additional update logic.\n *\n * @param node - The new/updated node\n * @param decorations - Node decorations\n * @param innerDecorations - Inner decorations\n * @returns `false` if the node type has changed (requires full rebuild), otherwise the result of `onUpdate` or `true`\n */\n update(t, e, n) {\n return t.type !== this.node.type ? !1 : (this.node = t, this.onUpdate ? this.onUpdate(t, e, n) : !0);\n }\n /**\n * Cleanup method called when the node view is being removed.\n *\n * Removes all event listeners to prevent memory leaks. This is required\n * by the ProseMirror NodeView interface. If a resize is active when\n * destroy is called, it will be properly cancelled.\n */\n destroy() {\n this.isResizing && (this.container.dataset.resizeState = \"false\", this.classNames.resizing && this.container.classList.remove(this.classNames.resizing), document.removeEventListener(\"mousemove\", this.handleMouseMove), document.removeEventListener(\"mouseup\", this.handleMouseUp), document.removeEventListener(\"keydown\", this.handleKeyDown), document.removeEventListener(\"keyup\", this.handleKeyUp), this.isResizing = !1, this.activeHandle = null), this.container.remove();\n }\n /**\n * Creates the outer container element.\n *\n * The container is the top-level element returned by the NodeView and\n * wraps the entire resizable node. It's set up with flexbox to handle\n * alignment and includes data attributes for styling and identification.\n *\n * @returns The container element\n */\n createContainer() {\n const t = document.createElement(\"div\");\n return t.dataset.resizeContainer = \"\", t.dataset.node = this.node.type.name, t.style.display = \"flex\", t.style.justifyContent = \"flex-start\", t.style.alignItems = \"flex-start\", this.classNames.container && (t.className = this.classNames.container), t.appendChild(this.wrapper), t;\n }\n /**\n * Creates the wrapper element that contains the content and handles.\n *\n * The wrapper uses relative positioning so that resize handles can be\n * positioned absolutely within it. This is the direct parent of the\n * content element being made resizable.\n *\n * @returns The wrapper element\n */\n createWrapper() {\n const t = document.createElement(\"div\");\n return t.style.position = \"relative\", t.style.display = \"block\", t.dataset.resizeWrapper = \"\", this.classNames.wrapper && (t.className = this.classNames.wrapper), t.appendChild(this.element), t;\n }\n /**\n * Creates a resize handle element for a specific direction.\n *\n * Each handle is absolutely positioned and includes a data attribute\n * identifying its direction for styling purposes.\n *\n * @param direction - The resize direction for this handle\n * @returns The handle element\n */\n createHandle(t) {\n const e = document.createElement(\"div\");\n return e.dataset.resizeHandle = t, e.style.position = \"absolute\", this.classNames.handle && (e.className = this.classNames.handle), e;\n }\n /**\n * Positions a handle element according to its direction.\n *\n * Corner handles (e.g., 'top-left') are positioned at the intersection\n * of two edges. Edge handles (e.g., 'top') span the full width or height.\n *\n * @param handle - The handle element to position\n * @param direction - The direction determining the position\n */\n positionHandle(t, e) {\n const n = e.includes(\"top\"), r = e.includes(\"bottom\"), s = e.includes(\"left\"), o = e.includes(\"right\");\n n && (t.style.top = \"0\"), r && (t.style.bottom = \"0\"), s && (t.style.left = \"0\"), o && (t.style.right = \"0\"), (e === \"top\" || e === \"bottom\") && (t.style.left = \"0\", t.style.right = \"0\"), (e === \"left\" || e === \"right\") && (t.style.top = \"0\", t.style.bottom = \"0\");\n }\n /**\n * Creates and attaches all resize handles to the wrapper.\n *\n * Iterates through the configured directions, creates a handle for each,\n * positions it, attaches the mousedown listener, and appends it to the DOM.\n */\n attachHandles() {\n this.directions.forEach((t) => {\n const e = this.createHandle(t);\n this.positionHandle(e, t), e.addEventListener(\"mousedown\", (n) => this.handleResizeStart(n, t)), e.addEventListener(\"touchstart\", (n) => this.handleResizeStart(n, t)), this.wrapper.appendChild(e);\n });\n }\n /**\n * Applies initial sizing from node attributes to the element.\n *\n * If width/height attributes exist on the node, they're applied to the element.\n * Otherwise, the element's natural/current dimensions are measured. The aspect\n * ratio is calculated for later use in aspect-ratio-preserving resizes.\n */\n applyInitialSize() {\n const t = this.node.attrs.width, e = this.node.attrs.height;\n t ? (this.element.style.width = `${t}px`, this.initialWidth = t) : this.initialWidth = this.element.offsetWidth, e ? (this.element.style.height = `${e}px`, this.initialHeight = e) : this.initialHeight = this.element.offsetHeight, this.initialWidth > 0 && this.initialHeight > 0 && (this.aspectRatio = this.initialWidth / this.initialHeight);\n }\n /**\n * Initiates a resize operation when a handle is clicked.\n *\n * Captures the starting mouse position and element dimensions, sets up\n * the resize state, adds the resizing class and state attribute, and\n * attaches document-level listeners for mouse movement and keyboard input.\n *\n * @param event - The mouse down event\n * @param direction - The direction of the handle being dragged\n */\n handleResizeStart(t, e) {\n t.preventDefault(), t.stopPropagation(), this.isResizing = !0, this.activeHandle = e, Ay(t) ? (this.startX = t.touches[0].clientX, this.startY = t.touches[0].clientY) : (this.startX = t.clientX, this.startY = t.clientY), this.startWidth = this.element.offsetWidth, this.startHeight = this.element.offsetHeight, this.startWidth > 0 && this.startHeight > 0 && (this.aspectRatio = this.startWidth / this.startHeight), this.getPos(), this.container.dataset.resizeState = \"true\", this.classNames.resizing && this.container.classList.add(this.classNames.resizing), document.addEventListener(\"mousemove\", this.handleMouseMove), document.addEventListener(\"touchmove\", this.handleTouchMove), document.addEventListener(\"mouseup\", this.handleMouseUp), document.addEventListener(\"keydown\", this.handleKeyDown), document.addEventListener(\"keyup\", this.handleKeyUp);\n }\n handleResize(t, e) {\n if (!this.activeHandle)\n return;\n const n = this.preserveAspectRatio || this.isShiftKeyPressed, { width: r, height: s } = this.calculateNewDimensions(this.activeHandle, t, e), o = this.applyConstraints(r, s, n);\n this.element.style.width = `${o.width}px`, this.element.style.height = `${o.height}px`, this.onResize && this.onResize(o.width, o.height);\n }\n /**\n * Calculates new dimensions based on mouse delta and resize direction.\n *\n * Takes the starting dimensions and applies the mouse movement delta\n * according to the handle direction. For corner handles, both dimensions\n * are affected. For edge handles, only one dimension changes. If aspect\n * ratio should be preserved, delegates to applyAspectRatio.\n *\n * @param direction - The active resize handle direction\n * @param deltaX - Horizontal mouse movement since resize start\n * @param deltaY - Vertical mouse movement since resize start\n * @returns The calculated width and height\n */\n calculateNewDimensions(t, e, n) {\n let r = this.startWidth, s = this.startHeight;\n const o = t.includes(\"right\"), i = t.includes(\"left\"), l = t.includes(\"bottom\"), a = t.includes(\"top\");\n return o ? r = this.startWidth + e : i && (r = this.startWidth - e), l ? s = this.startHeight + n : a && (s = this.startHeight - n), (t === \"right\" || t === \"left\") && (r = this.startWidth + (o ? e : -e)), (t === \"top\" || t === \"bottom\") && (s = this.startHeight + (l ? n : -n)), this.preserveAspectRatio || this.isShiftKeyPressed ? this.applyAspectRatio(r, s, t) : { width: r, height: s };\n }\n /**\n * Applies min/max constraints to dimensions.\n *\n * When aspect ratio is NOT preserved, constraints are applied independently\n * to width and height. When aspect ratio IS preserved, constraints are\n * applied while maintaining the aspect ratio—if one dimension hits a limit,\n * the other is recalculated proportionally.\n *\n * This ensures that aspect ratio is never broken when constrained.\n *\n * @param width - The unconstrained width\n * @param height - The unconstrained height\n * @param preserveAspectRatio - Whether to maintain aspect ratio while constraining\n * @returns The constrained dimensions\n */\n applyConstraints(t, e, n) {\n var r, s, o, i;\n if (!n) {\n let c = Math.max(this.minSize.width, t), d = Math.max(this.minSize.height, e);\n return (r = this.maxSize) != null && r.width && (c = Math.min(this.maxSize.width, c)), (s = this.maxSize) != null && s.height && (d = Math.min(this.maxSize.height, d)), { width: c, height: d };\n }\n let l = t, a = e;\n return l < this.minSize.width && (l = this.minSize.width, a = l / this.aspectRatio), a < this.minSize.height && (a = this.minSize.height, l = a * this.aspectRatio), (o = this.maxSize) != null && o.width && l > this.maxSize.width && (l = this.maxSize.width, a = l / this.aspectRatio), (i = this.maxSize) != null && i.height && a > this.maxSize.height && (a = this.maxSize.height, l = a * this.aspectRatio), { width: l, height: a };\n }\n /**\n * Adjusts dimensions to maintain the original aspect ratio.\n *\n * For horizontal handles (left/right), uses width as the primary dimension\n * and calculates height from it. For vertical handles (top/bottom), uses\n * height as primary and calculates width. For corner handles, uses width\n * as the primary dimension.\n *\n * @param width - The new width\n * @param height - The new height\n * @param direction - The active resize direction\n * @returns Dimensions adjusted to preserve aspect ratio\n */\n applyAspectRatio(t, e, n) {\n const r = n === \"left\" || n === \"right\", s = n === \"top\" || n === \"bottom\";\n return r ? {\n width: t,\n height: t / this.aspectRatio\n } : s ? {\n width: e * this.aspectRatio,\n height: e\n } : {\n width: t,\n height: t / this.aspectRatio\n };\n }\n};\nfunction Oy(t, e) {\n const { selection: n } = t, { $from: r } = n;\n if (n instanceof D) {\n const o = r.index();\n return r.parent.canReplaceWith(o, o + 1, e);\n }\n let s = r.depth;\n for (; s >= 0; ) {\n const o = r.index(s);\n if (r.node(s).contentMatchAt(o).matchType(e))\n return !0;\n s -= 1;\n }\n return !1;\n}\nvar Ry = {};\n$i(Ry, {\n createAtomBlockMarkdownSpec: () => Dy,\n createBlockMarkdownSpec: () => Iy,\n createInlineMarkdownSpec: () => zy,\n parseAttributes: () => qi,\n parseIndentedBlocks: () => Qo,\n renderNestedMarkdownContent: () => Gi,\n serializeAttributes: () => Ji\n});\nfunction qi(t) {\n if (!t?.trim())\n return {};\n const e = {}, n = [], r = t.replace(/[\"']([^\"']*)[\"']/g, (c) => (n.push(c), `__QUOTED_${n.length - 1}__`)), s = r.match(/(?:^|\\s)\\.([a-zA-Z][\\w-]*)/g);\n if (s) {\n const c = s.map((d) => d.trim().slice(1));\n e.class = c.join(\" \");\n }\n const o = r.match(/(?:^|\\s)#([a-zA-Z][\\w-]*)/);\n o && (e.id = o[1]);\n const i = /([a-zA-Z][\\w-]*)\\s*=\\s*(__QUOTED_\\d+__)/g;\n Array.from(r.matchAll(i)).forEach(([, c, d]) => {\n var u;\n const f = parseInt(((u = d.match(/__QUOTED_(\\d+)__/)) == null ? void 0 : u[1]) || \"0\", 10), h = n[f];\n h && (e[c] = h.slice(1, -1));\n });\n const a = r.replace(/(?:^|\\s)\\.([a-zA-Z][\\w-]*)/g, \"\").replace(/(?:^|\\s)#([a-zA-Z][\\w-]*)/g, \"\").replace(/([a-zA-Z][\\w-]*)\\s*=\\s*__QUOTED_\\d+__/g, \"\").trim();\n return a && a.split(/\\s+/).filter(Boolean).forEach((d) => {\n d.match(/^[a-zA-Z][\\w-]*$/) && (e[d] = !0);\n }), e;\n}\nfunction Ji(t) {\n if (!t || Object.keys(t).length === 0)\n return \"\";\n const e = [];\n return t.class && String(t.class).split(/\\s+/).filter(Boolean).forEach((r) => e.push(`.${r}`)), t.id && e.push(`#${t.id}`), Object.entries(t).forEach(([n, r]) => {\n n === \"class\" || n === \"id\" || (r === !0 ? e.push(n) : r !== !1 && r != null && e.push(`${n}=\"${String(r)}\"`));\n }), e.join(\" \");\n}\nfunction Dy(t) {\n const {\n nodeName: e,\n name: n,\n parseAttributes: r = qi,\n serializeAttributes: s = Ji,\n defaultAttributes: o = {},\n requiredAttributes: i = [],\n allowedAttributes: l\n } = t, a = n || e, c = (d) => {\n if (!l)\n return d;\n const u = {};\n return l.forEach((f) => {\n f in d && (u[f] = d[f]);\n }), u;\n };\n return {\n parseMarkdown: (d, u) => {\n const f = { ...o, ...d.attributes };\n return u.createNode(e, f, []);\n },\n markdownTokenizer: {\n name: e,\n level: \"block\",\n start(d) {\n var u;\n const f = new RegExp(`^:::${a}(?:\\\\s|$)`, \"m\"), h = (u = d.match(f)) == null ? void 0 : u.index;\n return h !== void 0 ? h : -1;\n },\n tokenize(d, u, f) {\n const h = new RegExp(`^:::${a}(?:\\\\s+\\\\{([^}]*)\\\\})?\\\\s*:::(?:\\\\n|$)`), p = d.match(h);\n if (!p)\n return;\n const m = p[1] || \"\", g = r(m);\n if (!i.find((x) => !(x in g)))\n return {\n type: e,\n raw: p[0],\n attributes: g\n };\n }\n },\n renderMarkdown: (d) => {\n const u = c(d.attrs || {}), f = s(u), h = f ? ` {${f}}` : \"\";\n return `:::${a}${h} :::`;\n }\n };\n}\nfunction Iy(t) {\n const {\n nodeName: e,\n name: n,\n getContent: r,\n parseAttributes: s = qi,\n serializeAttributes: o = Ji,\n defaultAttributes: i = {},\n content: l = \"block\",\n allowedAttributes: a\n } = t, c = n || e, d = (u) => {\n if (!a)\n return u;\n const f = {};\n return a.forEach((h) => {\n h in u && (f[h] = u[h]);\n }), f;\n };\n return {\n parseMarkdown: (u, f) => {\n let h;\n if (r) {\n const m = r(u);\n h = typeof m == \"string\" ? [{ type: \"text\", text: m }] : m;\n } else l === \"block\" ? h = f.parseChildren(u.tokens || []) : h = f.parseInline(u.tokens || []);\n const p = { ...i, ...u.attributes };\n return f.createNode(e, p, h);\n },\n markdownTokenizer: {\n name: e,\n level: \"block\",\n start(u) {\n var f;\n const h = new RegExp(`^:::${c}`, \"m\"), p = (f = u.match(h)) == null ? void 0 : f.index;\n return p !== void 0 ? p : -1;\n },\n tokenize(u, f, h) {\n var p;\n const m = new RegExp(`^:::${c}(?:\\\\s+\\\\{([^}]*)\\\\})?\\\\s*\\\\n`), g = u.match(m);\n if (!g)\n return;\n const [y, x = \"\"] = g, k = s(x);\n let T = 1;\n const b = y.length;\n let E = \"\";\n const S = /^:::([\\w-]*)(\\s.*)?/gm, C = u.slice(b);\n for (S.lastIndex = 0; ; ) {\n const L = S.exec(C);\n if (L === null)\n break;\n const W = L.index, z = L[1];\n if (!((p = L[2]) != null && p.endsWith(\":::\"))) {\n if (z)\n T += 1;\n else if (T -= 1, T === 0) {\n const U = C.slice(0, W);\n E = U.trim();\n const ue = u.slice(0, b + W + L[0].length);\n let X = [];\n if (E)\n if (l === \"block\")\n for (X = h.blockTokens(U), X.forEach((_) => {\n _.text && (!_.tokens || _.tokens.length === 0) && (_.tokens = h.inlineTokens(_.text));\n }); X.length > 0; ) {\n const _ = X[X.length - 1];\n if (_.type === \"paragraph\" && (!_.text || _.text.trim() === \"\"))\n X.pop();\n else\n break;\n }\n else\n X = h.inlineTokens(E);\n return {\n type: e,\n raw: ue,\n attributes: k,\n content: E,\n tokens: X\n };\n }\n }\n }\n }\n },\n renderMarkdown: (u, f) => {\n const h = d(u.attrs || {}), p = o(h), m = p ? ` {${p}}` : \"\", g = f.renderChildren(u.content || [], `\n\n`);\n return `:::${c}${m}\n\n${g}\n\n:::`;\n }\n };\n}\nfunction Ly(t) {\n if (!t.trim())\n return {};\n const e = {}, n = /(\\w+)=(?:\"([^\"]*)\"|'([^']*)')/g;\n let r = n.exec(t);\n for (; r !== null; ) {\n const [, s, o, i] = r;\n e[s] = o || i, r = n.exec(t);\n }\n return e;\n}\nfunction Py(t) {\n return Object.entries(t).filter(([, e]) => e != null).map(([e, n]) => `${e}=\"${n}\"`).join(\" \");\n}\nfunction zy(t) {\n const {\n nodeName: e,\n name: n,\n getContent: r,\n parseAttributes: s = Ly,\n serializeAttributes: o = Py,\n defaultAttributes: i = {},\n selfClosing: l = !1,\n allowedAttributes: a\n } = t, c = n || e, d = (f) => {\n if (!a)\n return f;\n const h = {};\n return a.forEach((p) => {\n p in f && (h[p] = f[p]);\n }), h;\n }, u = c.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n return {\n parseMarkdown: (f, h) => {\n const p = { ...i, ...f.attributes };\n if (l)\n return h.createNode(e, p);\n const m = r ? r(f) : f.content || \"\";\n return m ? h.createNode(e, p, [h.createTextNode(m)]) : h.createNode(e, p, []);\n },\n markdownTokenizer: {\n name: e,\n level: \"inline\",\n start(f) {\n const h = l ? new RegExp(`\\\\[${u}\\\\s*[^\\\\]]*\\\\]`) : new RegExp(`\\\\[${u}\\\\s*[^\\\\]]*\\\\][\\\\s\\\\S]*?\\\\[\\\\/${u}\\\\]`), p = f.match(h), m = p?.index;\n return m !== void 0 ? m : -1;\n },\n tokenize(f, h, p) {\n const m = l ? new RegExp(`^\\\\[${u}\\\\s*([^\\\\]]*)\\\\]`) : new RegExp(`^\\\\[${u}\\\\s*([^\\\\]]*)\\\\]([\\\\s\\\\S]*?)\\\\[\\\\/${u}\\\\]`), g = f.match(m);\n if (!g)\n return;\n let y = \"\", x = \"\";\n if (l) {\n const [, T] = g;\n x = T;\n } else {\n const [, T, b] = g;\n x = T, y = b || \"\";\n }\n const k = s(x.trim());\n return {\n type: e,\n raw: g[0],\n content: y.trim(),\n attributes: k\n };\n }\n },\n renderMarkdown: (f) => {\n let h = \"\";\n r ? h = r(f) : f.content && f.content.length > 0 && (h = f.content.filter((y) => y.type === \"text\").map((y) => y.text).join(\"\"));\n const p = d(f.attrs || {}), m = o(p), g = m ? ` ${m}` : \"\";\n return l ? `[${c}${g}]` : `[${c}${g}]${h}[/${c}]`;\n }\n };\n}\nfunction Qo(t, e, n) {\n var r, s, o, i;\n const l = t.split(`\n`), a = [];\n let c = \"\", d = 0;\n const u = e.baseIndentSize || 2;\n for (; d < l.length; ) {\n const f = l[d], h = f.match(e.itemPattern);\n if (!h) {\n if (a.length > 0)\n break;\n if (f.trim() === \"\") {\n d += 1, c = `${c}${f}\n`;\n continue;\n } else\n return;\n }\n const p = e.extractItemData(h), { indentLevel: m, mainContent: g } = p;\n c = `${c}${f}\n`;\n const y = [g];\n for (d += 1; d < l.length; ) {\n const b = l[d];\n if (b.trim() === \"\") {\n const S = l.slice(d + 1).findIndex((W) => W.trim() !== \"\");\n if (S === -1)\n break;\n if ((((s = (r = l[d + 1 + S].match(/^(\\s*)/)) == null ? void 0 : r[1]) == null ? void 0 : s.length) || 0) > m) {\n y.push(b), c = `${c}${b}\n`, d += 1;\n continue;\n } else\n break;\n }\n if ((((i = (o = b.match(/^(\\s*)/)) == null ? void 0 : o[1]) == null ? void 0 : i.length) || 0) > m)\n y.push(b), c = `${c}${b}\n`, d += 1;\n else\n break;\n }\n let x;\n const k = y.slice(1);\n if (k.length > 0) {\n const b = k.map((E) => E.slice(m + u)).join(`\n`);\n b.trim() && (e.customNestedParser ? x = e.customNestedParser(b) : x = n.blockTokens(b));\n }\n const T = e.createToken(p, x);\n a.push(T);\n }\n if (a.length !== 0)\n return {\n items: a,\n raw: c\n };\n}\nfunction Gi(t, e, n, r) {\n if (!t || !Array.isArray(t.content))\n return \"\";\n const s = typeof n == \"function\" ? n(r) : n, [o, ...i] = t.content, l = e.renderChildren([o]), a = [`${s}${l}`];\n return i && i.length > 0 && i.forEach((c) => {\n const d = e.renderChildren([c]);\n if (d) {\n const u = d.split(`\n`).map((f) => f ? e.indent(f) : \"\").join(`\n`);\n a.push(u);\n }\n }), a.join(`\n`);\n}\nfunction By(t, e, n = {}) {\n const { state: r } = e, { doc: s, tr: o } = r, i = t;\n s.descendants((l, a) => {\n const c = o.mapping.map(a), d = o.mapping.map(a) + l.nodeSize;\n let u = null;\n if (l.marks.forEach((h) => {\n if (h !== i)\n return !1;\n u = h;\n }), !u)\n return;\n let f = !1;\n if (Object.keys(n).forEach((h) => {\n n[h] !== u.attrs[h] && (f = !0);\n }), f) {\n const h = t.type.create({\n ...t.attrs,\n ...n\n });\n o.removeMark(c, d, t.type), o.addMark(c, d, h);\n }\n }), o.docChanged && e.view.dispatch(o);\n}\nvar ge = class Su extends Ki {\n constructor() {\n super(...arguments), this.type = \"node\";\n }\n /**\n * Create a new Node instance\n * @param config - Node configuration object or a function that returns a configuration object\n */\n static create(e = {}) {\n const n = typeof e == \"function\" ? e() : e;\n return new Su(n);\n }\n configure(e) {\n return super.configure(e);\n }\n extend(e) {\n const n = typeof e == \"function\" ? e() : e;\n return super.extend(n);\n }\n}, $y = class {\n constructor(t, e, n) {\n this.isDragging = !1, this.component = t, this.editor = e.editor, this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...n\n }, this.extension = e.extension, this.node = e.node, this.decorations = e.decorations, this.innerDecorations = e.innerDecorations, this.view = e.view, this.HTMLAttributes = e.HTMLAttributes, this.getPos = e.getPos, this.mount();\n }\n mount() {\n }\n get dom() {\n return this.editor.view.dom;\n }\n get contentDOM() {\n return null;\n }\n onDragStart(t) {\n var e, n, r, s, o, i, l;\n const { view: a } = this.editor, c = t.target, d = c.nodeType === 3 ? (e = c.parentElement) == null ? void 0 : e.closest(\"[data-drag-handle]\") : c.closest(\"[data-drag-handle]\");\n if (!this.dom || (n = this.contentDOM) != null && n.contains(c) || !d)\n return;\n let u = 0, f = 0;\n if (this.dom !== d) {\n const x = this.dom.getBoundingClientRect(), k = d.getBoundingClientRect(), T = (s = t.offsetX) != null ? s : (r = t.nativeEvent) == null ? void 0 : r.offsetX, b = (i = t.offsetY) != null ? i : (o = t.nativeEvent) == null ? void 0 : o.offsetY;\n u = k.x - x.x + T, f = k.y - x.y + b;\n }\n const h = this.dom.cloneNode(!0);\n try {\n const x = this.dom.getBoundingClientRect();\n h.style.width = `${Math.round(x.width)}px`, h.style.height = `${Math.round(x.height)}px`, h.style.boxSizing = \"border-box\", h.style.pointerEvents = \"none\";\n } catch {\n }\n let p = null;\n try {\n p = document.createElement(\"div\"), p.style.position = \"absolute\", p.style.top = \"-9999px\", p.style.left = \"-9999px\", p.style.pointerEvents = \"none\", p.appendChild(h), document.body.appendChild(p), (l = t.dataTransfer) == null || l.setDragImage(h, u, f);\n } finally {\n p && setTimeout(() => {\n try {\n p?.remove();\n } catch {\n }\n }, 0);\n }\n const m = this.getPos();\n if (typeof m != \"number\")\n return;\n const g = D.create(a.state.doc, m), y = a.state.tr.setSelection(g);\n a.dispatch(y);\n }\n stopEvent(t) {\n var e;\n if (!this.dom)\n return !1;\n if (typeof this.options.stopEvent == \"function\")\n return this.options.stopEvent({ event: t });\n const n = t.target;\n if (!(this.dom.contains(n) && !((e = this.contentDOM) != null && e.contains(n))))\n return !1;\n const s = t.type.startsWith(\"drag\"), o = t.type === \"drop\";\n if (([\"INPUT\", \"BUTTON\", \"SELECT\", \"TEXTAREA\"].includes(n.tagName) || n.isContentEditable) && !o && !s)\n return !0;\n const { isEditable: l } = this.editor, { isDragging: a } = this, c = !!this.node.type.spec.draggable, d = D.isSelectable(this.node), u = t.type === \"copy\", f = t.type === \"paste\", h = t.type === \"cut\", p = t.type === \"mousedown\";\n if (!c && d && s && t.target === this.dom && t.preventDefault(), c && s && !a && t.target === this.dom)\n return t.preventDefault(), !1;\n if (c && l && !a && p) {\n const m = n.closest(\"[data-drag-handle]\");\n m && (this.dom === m || this.dom.contains(m)) && (this.isDragging = !0, document.addEventListener(\n \"dragend\",\n () => {\n this.isDragging = !1;\n },\n { once: !0 }\n ), document.addEventListener(\n \"drop\",\n () => {\n this.isDragging = !1;\n },\n { once: !0 }\n ), document.addEventListener(\n \"mouseup\",\n () => {\n this.isDragging = !1;\n },\n { once: !0 }\n ));\n }\n return !(a || o || u || f || h || p && d);\n }\n /**\n * Called when a DOM [mutation](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) or a selection change happens within the view.\n * @return `false` if the editor should re-read the selection or re-parse the range around the mutation\n * @return `true` if it can safely be ignored.\n */\n ignoreMutation(t) {\n return !this.dom || !this.contentDOM ? !0 : typeof this.options.ignoreMutation == \"function\" ? this.options.ignoreMutation({ mutation: t }) : this.node.isLeaf || this.node.isAtom ? !0 : t.type === \"selection\" || this.dom.contains(t.target) && t.type === \"childList\" && (Fs() || qd()) && this.editor.isFocused && [...Array.from(t.addedNodes), ...Array.from(t.removedNodes)].every((n) => n.isContentEditable) ? !1 : this.contentDOM === t.target && t.type === \"attributes\" ? !0 : !this.contentDOM.contains(t.target);\n }\n /**\n * Update the attributes of the prosemirror node.\n */\n updateAttributes(t) {\n this.editor.commands.command(({ tr: e }) => {\n const n = this.getPos();\n return typeof n != \"number\" ? !1 : (e.setNodeMarkup(n, void 0, {\n ...this.node.attrs,\n ...t\n }), !0);\n });\n }\n /**\n * Delete the node.\n */\n deleteNode() {\n const t = this.getPos();\n if (typeof t != \"number\")\n return;\n const e = t + this.node.nodeSize;\n this.editor.commands.deleteRange({ from: t, to: e });\n }\n};\nfunction Bt(t) {\n return new by({\n find: t.find,\n handler: ({ state: e, range: n, match: r, pasteEvent: s }) => {\n const o = V(t.getAttributes, void 0, r, s);\n if (o === !1 || o === null)\n return null;\n const { tr: i } = e, l = r[r.length - 1], a = r[0];\n let c = n.to;\n if (l) {\n const d = a.search(/\\S/), u = n.from + a.indexOf(l), f = u + l.length;\n if (Ui(n.from, n.to, e.doc).filter((p) => p.mark.type.excluded.find((g) => g === t.type && g !== p.mark.type)).filter((p) => p.to > u).length)\n return null;\n f < n.to && i.delete(f, n.to), u > n.from && i.delete(n.from + d, u), c = n.from + d + l.length, i.addMark(n.from + d, c, t.type.create(o || {})), i.removeStoredMark(t.type);\n }\n }\n });\n}\nvar Hy = 20, Cu = (t, e = 0) => {\n const n = [];\n return !t.children.length || e > Hy || Array.from(t.children).forEach((r) => {\n r.tagName === \"SPAN\" ? n.push(r) : r.children.length && n.push(...Cu(r, e + 1));\n }), n;\n}, _y = (t) => {\n if (!t.children.length)\n return;\n const e = Cu(t);\n e && e.forEach((n) => {\n var r, s;\n const o = n.getAttribute(\"style\"), i = (s = (r = n.parentElement) == null ? void 0 : r.closest(\"span\")) == null ? void 0 : s.getAttribute(\"style\");\n n.setAttribute(\"style\", `${i};${o}`);\n });\n}, vu = bt.create({\n name: \"textStyle\",\n priority: 101,\n addOptions() {\n return {\n HTMLAttributes: {},\n mergeNestedSpanStyles: !0\n };\n },\n parseHTML() {\n return [\n {\n tag: \"span\",\n consuming: !1,\n getAttrs: (t) => t.hasAttribute(\"style\") ? (this.options.mergeNestedSpanStyles && _y(t), {}) : !1\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"span\", q(this.options.HTMLAttributes, t), 0];\n },\n addCommands() {\n return {\n toggleTextStyle: (t) => ({ commands: e }) => e.toggleMark(this.name, t),\n removeEmptyTextStyle: () => ({ tr: t }) => {\n const { selection: e } = t;\n return t.doc.nodesBetween(e.from, e.to, (n, r) => {\n if (n.isTextblock)\n return !0;\n n.marks.filter((s) => s.type === this.type).some((s) => Object.values(s.attrs).some((o) => !!o)) || t.removeMark(r, r + n.nodeSize, this.type);\n }), !0;\n }\n };\n }\n}), jy = F.create({\n name: \"backgroundColor\",\n addOptions() {\n return {\n types: [\"textStyle\"]\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n backgroundColor: {\n default: null,\n parseHTML: (t) => {\n var e;\n const n = t.getAttribute(\"style\");\n if (n) {\n const r = n.split(\";\").map((s) => s.trim()).filter(Boolean);\n for (let s = r.length - 1; s >= 0; s -= 1) {\n const o = r[s].split(\":\");\n if (o.length >= 2) {\n const i = o[0].trim().toLowerCase(), l = o.slice(1).join(\":\").trim();\n if (i === \"background-color\")\n return l.replace(/['\"]+/g, \"\");\n }\n }\n }\n return (e = t.style.backgroundColor) == null ? void 0 : e.replace(/['\"]+/g, \"\");\n },\n renderHTML: (t) => t.backgroundColor ? {\n style: `background-color: ${t.backgroundColor}`\n } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setBackgroundColor: (t) => ({ chain: e }) => e().setMark(\"textStyle\", { backgroundColor: t }).run(),\n unsetBackgroundColor: () => ({ chain: t }) => t().setMark(\"textStyle\", { backgroundColor: null }).removeEmptyTextStyle().run()\n };\n }\n}), Mu = F.create({\n name: \"color\",\n addOptions() {\n return {\n types: [\"textStyle\"]\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n color: {\n default: null,\n parseHTML: (t) => {\n var e;\n const n = t.getAttribute(\"style\");\n if (n) {\n const r = n.split(\";\").map((s) => s.trim()).filter(Boolean);\n for (let s = r.length - 1; s >= 0; s -= 1) {\n const o = r[s].split(\":\");\n if (o.length >= 2) {\n const i = o[0].trim().toLowerCase(), l = o.slice(1).join(\":\").trim();\n if (i === \"color\")\n return l.replace(/['\"]+/g, \"\");\n }\n }\n }\n return (e = t.style.color) == null ? void 0 : e.replace(/['\"]+/g, \"\");\n },\n renderHTML: (t) => t.color ? {\n style: `color: ${t.color}`\n } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setColor: (t) => ({ chain: e }) => e().setMark(\"textStyle\", { color: t }).run(),\n unsetColor: () => ({ chain: t }) => t().setMark(\"textStyle\", { color: null }).removeEmptyTextStyle().run()\n };\n }\n}), Vy = F.create({\n name: \"fontFamily\",\n addOptions() {\n return {\n types: [\"textStyle\"]\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n fontFamily: {\n default: null,\n parseHTML: (t) => t.style.fontFamily,\n renderHTML: (t) => t.fontFamily ? {\n style: `font-family: ${t.fontFamily}`\n } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setFontFamily: (t) => ({ chain: e }) => e().setMark(\"textStyle\", { fontFamily: t }).run(),\n unsetFontFamily: () => ({ chain: t }) => t().setMark(\"textStyle\", { fontFamily: null }).removeEmptyTextStyle().run()\n };\n }\n}), Fy = F.create({\n name: \"fontSize\",\n addOptions() {\n return {\n types: [\"textStyle\"]\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n fontSize: {\n default: null,\n parseHTML: (t) => t.style.fontSize,\n renderHTML: (t) => t.fontSize ? {\n style: `font-size: ${t.fontSize}`\n } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setFontSize: (t) => ({ chain: e }) => e().setMark(\"textStyle\", { fontSize: t }).run(),\n unsetFontSize: () => ({ chain: t }) => t().setMark(\"textStyle\", { fontSize: null }).removeEmptyTextStyle().run()\n };\n }\n}), Wy = F.create({\n name: \"lineHeight\",\n addOptions() {\n return {\n types: [\"textStyle\"]\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n lineHeight: {\n default: null,\n parseHTML: (t) => t.style.lineHeight,\n renderHTML: (t) => t.lineHeight ? {\n style: `line-height: ${t.lineHeight}`\n } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setLineHeight: (t) => ({ chain: e }) => e().setMark(\"textStyle\", { lineHeight: t }).run(),\n unsetLineHeight: () => ({ chain: t }) => t().setMark(\"textStyle\", { lineHeight: null }).removeEmptyTextStyle().run()\n };\n }\n});\nF.create({\n name: \"textStyleKit\",\n addExtensions() {\n const t = [];\n return this.options.backgroundColor !== !1 && t.push(jy.configure(this.options.backgroundColor)), this.options.color !== !1 && t.push(Mu.configure(this.options.color)), this.options.fontFamily !== !1 && t.push(Vy.configure(this.options.fontFamily)), this.options.fontSize !== !1 && t.push(Fy.configure(this.options.fontSize)), this.options.lineHeight !== !1 && t.push(Wy.configure(this.options.lineHeight)), this.options.textStyle !== !1 && t.push(vu.configure(this.options.textStyle)), t;\n }\n});\nvar Uy = Mu, Ky = /(?:^|\\s)(==(?!\\s+==)((?:[^=]+))==(?!\\s+==))$/, qy = /(?:^|\\s)(==(?!\\s+==)((?:[^=]+))==(?!\\s+==))/g, Jy = bt.create({\n name: \"highlight\",\n addOptions() {\n return {\n multicolor: !1,\n HTMLAttributes: {}\n };\n },\n addAttributes() {\n return this.options.multicolor ? {\n color: {\n default: null,\n parseHTML: (t) => t.getAttribute(\"data-color\") || t.style.backgroundColor,\n renderHTML: (t) => t.color ? {\n \"data-color\": t.color,\n style: `background-color: ${t.color}; color: inherit`\n } : {}\n }\n } : {};\n },\n parseHTML() {\n return [\n {\n tag: \"mark\"\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"mark\", q(this.options.HTMLAttributes, t), 0];\n },\n renderMarkdown: (t, e) => `==${e.renderChildren(t)}==`,\n parseMarkdown: (t, e) => e.applyMark(\"highlight\", e.parseInline(t.tokens || [])),\n markdownTokenizer: {\n name: \"highlight\",\n level: \"inline\",\n start: (t) => t.indexOf(\"==\"),\n tokenize(t, e, n) {\n const s = /^(==)([^=]+)(==)/.exec(t);\n if (s) {\n const o = s[2].trim(), i = n.inlineTokens(o);\n return {\n type: \"highlight\",\n raw: s[0],\n text: o,\n tokens: i\n };\n }\n }\n },\n addCommands() {\n return {\n setHighlight: (t) => ({ commands: e }) => e.setMark(this.name, t),\n toggleHighlight: (t) => ({ commands: e }) => e.toggleMark(this.name, t),\n unsetHighlight: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-h\": () => this.editor.commands.toggleHighlight()\n };\n },\n addInputRules() {\n return [\n sn({\n find: Ky,\n type: this.type\n })\n ];\n },\n addPasteRules() {\n return [\n Bt({\n find: qy,\n type: this.type\n })\n ];\n }\n}), Gy = Jy, Zo, ei;\nif (typeof WeakMap < \"u\") {\n let t = /* @__PURE__ */ new WeakMap();\n Zo = (e) => t.get(e), ei = (e, n) => (t.set(e, n), n);\n} else {\n const t = [];\n let n = 0;\n Zo = (r) => {\n for (let s = 0; s < t.length; s += 2)\n if (t[s] == r) return t[s + 1];\n }, ei = (r, s) => (n == 10 && (n = 0), t[n++] = r, t[n++] = s);\n}\nvar se = class {\n constructor(t, e, n, r) {\n this.width = t, this.height = e, this.map = n, this.problems = r;\n }\n // Find the dimensions of the cell at the given position.\n findCell(t) {\n for (let e = 0; e < this.map.length; e++) {\n const n = this.map[e];\n if (n != t) continue;\n const r = e % this.width, s = e / this.width | 0;\n let o = r + 1, i = s + 1;\n for (let l = 1; o < this.width && this.map[e + l] == n; l++)\n o++;\n for (let l = 1; i < this.height && this.map[e + this.width * l] == n; l++)\n i++;\n return { left: r, top: s, right: o, bottom: i };\n }\n throw new RangeError(`No cell with offset ${t} found`);\n }\n // Find the left side of the cell at the given position.\n colCount(t) {\n for (let e = 0; e < this.map.length; e++)\n if (this.map[e] == t)\n return e % this.width;\n throw new RangeError(`No cell with offset ${t} found`);\n }\n // Find the next cell in the given direction, starting from the cell\n // at `pos`, if any.\n nextCell(t, e, n) {\n const { left: r, right: s, top: o, bottom: i } = this.findCell(t);\n return e == \"horiz\" ? (n < 0 ? r == 0 : s == this.width) ? null : this.map[o * this.width + (n < 0 ? r - 1 : s)] : (n < 0 ? o == 0 : i == this.height) ? null : this.map[r + this.width * (n < 0 ? o - 1 : i)];\n }\n // Get the rectangle spanning the two given cells.\n rectBetween(t, e) {\n const {\n left: n,\n right: r,\n top: s,\n bottom: o\n } = this.findCell(t), {\n left: i,\n right: l,\n top: a,\n bottom: c\n } = this.findCell(e);\n return {\n left: Math.min(n, i),\n top: Math.min(s, a),\n right: Math.max(r, l),\n bottom: Math.max(o, c)\n };\n }\n // Return the position of all cells that have the top left corner in\n // the given rectangle.\n cellsInRect(t) {\n const e = [], n = {};\n for (let r = t.top; r < t.bottom; r++)\n for (let s = t.left; s < t.right; s++) {\n const o = r * this.width + s, i = this.map[o];\n n[i] || (n[i] = !0, !(s == t.left && s && this.map[o - 1] == i || r == t.top && r && this.map[o - this.width] == i) && e.push(i));\n }\n return e;\n }\n // Return the position at which the cell at the given row and column\n // starts, or would start, if a cell started there.\n positionAt(t, e, n) {\n for (let r = 0, s = 0; ; r++) {\n const o = s + n.child(r).nodeSize;\n if (r == t) {\n let i = e + t * this.width;\n const l = (t + 1) * this.width;\n for (; i < l && this.map[i] < s; ) i++;\n return i == l ? o - 1 : this.map[i];\n }\n s = o;\n }\n }\n // Find the table map for the given table node.\n static get(t) {\n return Zo(t) || ei(t, Yy(t));\n }\n};\nfunction Yy(t) {\n if (t.type.spec.tableRole != \"table\")\n throw new RangeError(\"Not a table node: \" + t.type.name);\n const e = Xy(t), n = t.childCount, r = [];\n let s = 0, o = null;\n const i = [];\n for (let c = 0, d = e * n; c < d; c++) r[c] = 0;\n for (let c = 0, d = 0; c < n; c++) {\n const u = t.child(c);\n d++;\n for (let p = 0; ; p++) {\n for (; s < r.length && r[s] != 0; ) s++;\n if (p == u.childCount) break;\n const m = u.child(p), { colspan: g, rowspan: y, colwidth: x } = m.attrs;\n for (let k = 0; k < y; k++) {\n if (k + c >= n) {\n (o || (o = [])).push({\n type: \"overlong_rowspan\",\n pos: d,\n n: y - k\n });\n break;\n }\n const T = s + k * e;\n for (let b = 0; b < g; b++) {\n r[T + b] == 0 ? r[T + b] = d : (o || (o = [])).push({\n type: \"collision\",\n row: c,\n pos: d,\n n: g - b\n });\n const E = x && x[b];\n if (E) {\n const S = (T + b) % e * 2, C = i[S];\n C == null || C != E && i[S + 1] == 1 ? (i[S] = E, i[S + 1] = 1) : C == E && i[S + 1]++;\n }\n }\n }\n s += g, d += m.nodeSize;\n }\n const f = (c + 1) * e;\n let h = 0;\n for (; s < f; ) r[s++] == 0 && h++;\n h && (o || (o = [])).push({ type: \"missing\", row: c, n: h }), d++;\n }\n (e === 0 || n === 0) && (o || (o = [])).push({ type: \"zero_sized\" });\n const l = new se(e, n, r, o);\n let a = !1;\n for (let c = 0; !a && c < i.length; c += 2)\n i[c] != null && i[c + 1] < n && (a = !0);\n return a && Qy(l, i, t), l;\n}\nfunction Xy(t) {\n let e = -1, n = !1;\n for (let r = 0; r < t.childCount; r++) {\n const s = t.child(r);\n let o = 0;\n if (n)\n for (let i = 0; i < r; i++) {\n const l = t.child(i);\n for (let a = 0; a < l.childCount; a++) {\n const c = l.child(a);\n i + c.attrs.rowspan > r && (o += c.attrs.colspan);\n }\n }\n for (let i = 0; i < s.childCount; i++) {\n const l = s.child(i);\n o += l.attrs.colspan, l.attrs.rowspan > 1 && (n = !0);\n }\n e == -1 ? e = o : e != o && (e = Math.max(e, o));\n }\n return e;\n}\nfunction Qy(t, e, n) {\n t.problems || (t.problems = []);\n const r = {};\n for (let s = 0; s < t.map.length; s++) {\n const o = t.map[s];\n if (r[o]) continue;\n r[o] = !0;\n const i = n.nodeAt(o);\n if (!i)\n throw new RangeError(`No cell with offset ${o} found`);\n let l = null;\n const a = i.attrs;\n for (let c = 0; c < a.colspan; c++) {\n const d = (s + c) % t.width, u = e[d * 2];\n u != null && (!a.colwidth || a.colwidth[c] != u) && ((l || (l = Zy(a)))[c] = u);\n }\n l && t.problems.unshift({\n type: \"colwidth mismatch\",\n pos: o,\n colwidth: l\n });\n }\n}\nfunction Zy(t) {\n if (t.colwidth) return t.colwidth.slice();\n const e = [];\n for (let n = 0; n < t.colspan; n++) e.push(0);\n return e;\n}\nfunction Se(t) {\n let e = t.cached.tableNodeTypes;\n if (!e) {\n e = t.cached.tableNodeTypes = {};\n for (const n in t.nodes) {\n const r = t.nodes[n], s = r.spec.tableRole;\n s && (e[s] = r);\n }\n }\n return e;\n}\nvar Tt = new oe(\"selectingCells\");\nfunction Dn(t) {\n for (let e = t.depth - 1; e > 0; e--)\n if (t.node(e).type.spec.tableRole == \"row\")\n return t.node(0).resolve(t.before(e + 1));\n return null;\n}\nfunction eb(t) {\n for (let e = t.depth; e > 0; e--) {\n const n = t.node(e).type.spec.tableRole;\n if (n === \"cell\" || n === \"header_cell\") return t.node(e);\n }\n return null;\n}\nfunction Ye(t) {\n const e = t.selection.$head;\n for (let n = e.depth; n > 0; n--)\n if (e.node(n).type.spec.tableRole == \"row\") return !0;\n return !1;\n}\nfunction Gs(t) {\n const e = t.selection;\n if (\"$anchorCell\" in e && e.$anchorCell)\n return e.$anchorCell.pos > e.$headCell.pos ? e.$anchorCell : e.$headCell;\n if (\"node\" in e && e.node && e.node.type.spec.tableRole == \"cell\")\n return e.$anchor;\n const n = Dn(e.$head) || tb(e.$head);\n if (n)\n return n;\n throw new RangeError(`No cell found around position ${e.head}`);\n}\nfunction tb(t) {\n for (let e = t.nodeAfter, n = t.pos; e; e = e.firstChild, n++) {\n const r = e.type.spec.tableRole;\n if (r == \"cell\" || r == \"header_cell\") return t.doc.resolve(n);\n }\n for (let e = t.nodeBefore, n = t.pos; e; e = e.lastChild, n--) {\n const r = e.type.spec.tableRole;\n if (r == \"cell\" || r == \"header_cell\")\n return t.doc.resolve(n - e.nodeSize);\n }\n}\nfunction ti(t) {\n return t.parent.type.spec.tableRole == \"row\" && !!t.nodeAfter;\n}\nfunction nb(t) {\n return t.node(0).resolve(t.pos + t.nodeAfter.nodeSize);\n}\nfunction Yi(t, e) {\n return t.depth == e.depth && t.pos >= e.start(-1) && t.pos <= e.end(-1);\n}\nfunction Tu(t, e, n) {\n const r = t.node(-1), s = se.get(r), o = t.start(-1), i = s.nextCell(t.pos - o, e, n);\n return i == null ? null : t.node(0).resolve(o + i);\n}\nfunction on(t, e, n = 1) {\n const r = { ...t, colspan: t.colspan - n };\n return r.colwidth && (r.colwidth = r.colwidth.slice(), r.colwidth.splice(e, n), r.colwidth.some((s) => s > 0) || (r.colwidth = null)), r;\n}\nfunction Eu(t, e, n = 1) {\n const r = { ...t, colspan: t.colspan + n };\n if (r.colwidth) {\n r.colwidth = r.colwidth.slice();\n for (let s = 0; s < n; s++) r.colwidth.splice(e, 0, 0);\n }\n return r;\n}\nfunction rb(t, e, n) {\n const r = Se(e.type.schema).header_cell;\n for (let s = 0; s < t.height; s++)\n if (e.nodeAt(t.map[n + s * t.width]).type != r)\n return !1;\n return !0;\n}\nvar Y = class ut extends B {\n // A table selection is identified by its anchor and head cells. The\n // positions given to this constructor should point _before_ two\n // cells in the same table. They may be the same, to select a single\n // cell.\n constructor(e, n = e) {\n const r = e.node(-1), s = se.get(r), o = e.start(-1), i = s.rectBetween(\n e.pos - o,\n n.pos - o\n ), l = e.node(0), a = s.cellsInRect(i).filter((d) => d != n.pos - o);\n a.unshift(n.pos - o);\n const c = a.map((d) => {\n const u = r.nodeAt(d);\n if (!u)\n throw RangeError(`No cell with offset ${d} found`);\n const f = o + d + 1;\n return new Jc(\n l.resolve(f),\n l.resolve(f + u.content.size)\n );\n });\n super(c[0].$from, c[0].$to, c), this.$anchorCell = e, this.$headCell = n;\n }\n map(e, n) {\n const r = e.resolve(n.map(this.$anchorCell.pos)), s = e.resolve(n.map(this.$headCell.pos));\n if (ti(r) && ti(s) && Yi(r, s)) {\n const o = this.$anchorCell.node(-1) != r.node(-1);\n return o && this.isRowSelection() ? ut.rowSelection(r, s) : o && this.isColSelection() ? ut.colSelection(r, s) : new ut(r, s);\n }\n return P.between(r, s);\n }\n // Returns a rectangular slice of table rows containing the selected\n // cells.\n content() {\n const e = this.$anchorCell.node(-1), n = se.get(e), r = this.$anchorCell.start(-1), s = n.rectBetween(\n this.$anchorCell.pos - r,\n this.$headCell.pos - r\n ), o = {}, i = [];\n for (let a = s.top; a < s.bottom; a++) {\n const c = [];\n for (let d = a * n.width + s.left, u = s.left; u < s.right; u++, d++) {\n const f = n.map[d];\n if (o[f]) continue;\n o[f] = !0;\n const h = n.findCell(f);\n let p = e.nodeAt(f);\n if (!p)\n throw RangeError(`No cell with offset ${f} found`);\n const m = s.left - h.left, g = h.right - s.right;\n if (m > 0 || g > 0) {\n let y = p.attrs;\n if (m > 0 && (y = on(y, 0, m)), g > 0 && (y = on(\n y,\n y.colspan - g,\n g\n )), h.left < s.left) {\n if (p = p.type.createAndFill(y), !p)\n throw RangeError(\n `Could not create cell with attrs ${JSON.stringify(y)}`\n );\n } else\n p = p.type.create(y, p.content);\n }\n if (h.top < s.top || h.bottom > s.bottom) {\n const y = {\n ...p.attrs,\n rowspan: Math.min(h.bottom, s.bottom) - Math.max(h.top, s.top)\n };\n h.top < s.top ? p = p.type.createAndFill(y) : p = p.type.create(y, p.content);\n }\n c.push(p);\n }\n i.push(e.child(a).copy(w.from(c)));\n }\n const l = this.isColSelection() && this.isRowSelection() ? e : i;\n return new A(w.from(l), 1, 1);\n }\n replace(e, n = A.empty) {\n const r = e.steps.length, s = this.ranges;\n for (let i = 0; i < s.length; i++) {\n const { $from: l, $to: a } = s[i], c = e.mapping.slice(r);\n e.replace(\n c.map(l.pos),\n c.map(a.pos),\n i ? A.empty : n\n );\n }\n const o = B.findFrom(\n e.doc.resolve(e.mapping.slice(r).map(this.to)),\n -1\n );\n o && e.setSelection(o);\n }\n replaceWith(e, n) {\n this.replace(e, new A(w.from(n), 0, 0));\n }\n forEachCell(e) {\n const n = this.$anchorCell.node(-1), r = se.get(n), s = this.$anchorCell.start(-1), o = r.cellsInRect(\n r.rectBetween(\n this.$anchorCell.pos - s,\n this.$headCell.pos - s\n )\n );\n for (let i = 0; i < o.length; i++)\n e(n.nodeAt(o[i]), s + o[i]);\n }\n // True if this selection goes all the way from the top to the\n // bottom of the table.\n isColSelection() {\n const e = this.$anchorCell.index(-1), n = this.$headCell.index(-1);\n if (Math.min(e, n) > 0) return !1;\n const r = e + this.$anchorCell.nodeAfter.attrs.rowspan, s = n + this.$headCell.nodeAfter.attrs.rowspan;\n return Math.max(r, s) == this.$headCell.node(-1).childCount;\n }\n // Returns the smallest column selection that covers the given anchor\n // and head cell.\n static colSelection(e, n = e) {\n const r = e.node(-1), s = se.get(r), o = e.start(-1), i = s.findCell(e.pos - o), l = s.findCell(n.pos - o), a = e.node(0);\n return i.top <= l.top ? (i.top > 0 && (e = a.resolve(o + s.map[i.left])), l.bottom < s.height && (n = a.resolve(\n o + s.map[s.width * (s.height - 1) + l.right - 1]\n ))) : (l.top > 0 && (n = a.resolve(o + s.map[l.left])), i.bottom < s.height && (e = a.resolve(\n o + s.map[s.width * (s.height - 1) + i.right - 1]\n ))), new ut(e, n);\n }\n // True if this selection goes all the way from the left to the\n // right of the table.\n isRowSelection() {\n const e = this.$anchorCell.node(-1), n = se.get(e), r = this.$anchorCell.start(-1), s = n.colCount(this.$anchorCell.pos - r), o = n.colCount(this.$headCell.pos - r);\n if (Math.min(s, o) > 0) return !1;\n const i = s + this.$anchorCell.nodeAfter.attrs.colspan, l = o + this.$headCell.nodeAfter.attrs.colspan;\n return Math.max(i, l) == n.width;\n }\n eq(e) {\n return e instanceof ut && e.$anchorCell.pos == this.$anchorCell.pos && e.$headCell.pos == this.$headCell.pos;\n }\n // Returns the smallest row selection that covers the given anchor\n // and head cell.\n static rowSelection(e, n = e) {\n const r = e.node(-1), s = se.get(r), o = e.start(-1), i = s.findCell(e.pos - o), l = s.findCell(n.pos - o), a = e.node(0);\n return i.left <= l.left ? (i.left > 0 && (e = a.resolve(\n o + s.map[i.top * s.width]\n )), l.right < s.width && (n = a.resolve(\n o + s.map[s.width * (l.top + 1) - 1]\n ))) : (l.left > 0 && (n = a.resolve(o + s.map[l.top * s.width])), i.right < s.width && (e = a.resolve(\n o + s.map[s.width * (i.top + 1) - 1]\n ))), new ut(e, n);\n }\n toJSON() {\n return {\n type: \"cell\",\n anchor: this.$anchorCell.pos,\n head: this.$headCell.pos\n };\n }\n static fromJSON(e, n) {\n return new ut(e.resolve(n.anchor), e.resolve(n.head));\n }\n static create(e, n, r = n) {\n return new ut(e.resolve(n), e.resolve(r));\n }\n getBookmark() {\n return new sb(this.$anchorCell.pos, this.$headCell.pos);\n }\n};\nY.prototype.visible = !1;\nB.jsonID(\"cell\", Y);\nvar sb = class Au {\n constructor(e, n) {\n this.anchor = e, this.head = n;\n }\n map(e) {\n return new Au(e.map(this.anchor), e.map(this.head));\n }\n resolve(e) {\n const n = e.resolve(this.anchor), r = e.resolve(this.head);\n return n.parent.type.spec.tableRole == \"row\" && r.parent.type.spec.tableRole == \"row\" && n.index() < n.parent.childCount && r.index() < r.parent.childCount && Yi(n, r) ? new Y(n, r) : B.near(r, 1);\n }\n};\nfunction ob(t) {\n if (!(t.selection instanceof Y)) return null;\n const e = [];\n return t.selection.forEachCell((n, r) => {\n e.push(\n he.node(r, r + n.nodeSize, { class: \"selectedCell\" })\n );\n }), G.create(t.doc, e);\n}\nfunction ib({ $from: t, $to: e }) {\n if (t.pos == e.pos || t.pos < e.pos - 6) return !1;\n let n = t.pos, r = e.pos, s = t.depth;\n for (; s >= 0 && !(t.after(s + 1) < t.end(s)); s--, n++)\n ;\n for (let o = e.depth; o >= 0 && !(e.before(o + 1) > e.start(o)); o--, r--)\n ;\n return n == r && /row|table/.test(t.node(s).type.spec.tableRole);\n}\nfunction lb({ $from: t, $to: e }) {\n let n, r;\n for (let s = t.depth; s > 0; s--) {\n const o = t.node(s);\n if (o.type.spec.tableRole === \"cell\" || o.type.spec.tableRole === \"header_cell\") {\n n = o;\n break;\n }\n }\n for (let s = e.depth; s > 0; s--) {\n const o = e.node(s);\n if (o.type.spec.tableRole === \"cell\" || o.type.spec.tableRole === \"header_cell\") {\n r = o;\n break;\n }\n }\n return n !== r && e.parentOffset === 0;\n}\nfunction ab(t, e, n) {\n const r = (e || t).selection, s = (e || t).doc;\n let o, i;\n if (r instanceof D && (i = r.node.type.spec.tableRole)) {\n if (i == \"cell\" || i == \"header_cell\")\n o = Y.create(s, r.from);\n else if (i == \"row\") {\n const l = s.resolve(r.from + 1);\n o = Y.rowSelection(l, l);\n } else if (!n) {\n const l = se.get(r.node), a = r.from + 1, c = a + l.map[l.width * l.height - 1];\n o = Y.create(s, a + 1, c);\n }\n } else r instanceof P && ib(r) ? o = P.create(s, r.from) : r instanceof P && lb(r) && (o = P.create(s, r.$from.start(), r.$from.end()));\n return o && (e || (e = t.tr)).setSelection(o), e;\n}\nvar cb = new oe(\"fix-tables\");\nfunction Nu(t, e, n, r) {\n const s = t.childCount, o = e.childCount;\n e: for (let i = 0, l = 0; i < o; i++) {\n const a = e.child(i);\n for (let c = l, d = Math.min(s, i + 3); c < d; c++)\n if (t.child(c) == a) {\n l = c + 1, n += a.nodeSize;\n continue e;\n }\n r(a, n), l < s && t.child(l).sameMarkup(a) ? Nu(t.child(l), a, n + 1, r) : a.nodesBetween(0, a.content.size, r, n + 1), n += a.nodeSize;\n }\n}\nfunction Ou(t, e) {\n let n;\n const r = (s, o) => {\n s.type.spec.tableRole == \"table\" && (n = db(t, s, o, n));\n };\n return e ? e.doc != t.doc && Nu(e.doc, t.doc, 0, r) : t.doc.descendants(r), n;\n}\nfunction db(t, e, n, r) {\n const s = se.get(e);\n if (!s.problems) return r;\n r || (r = t.tr);\n const o = [];\n for (let a = 0; a < s.height; a++) o.push(0);\n for (let a = 0; a < s.problems.length; a++) {\n const c = s.problems[a];\n if (c.type == \"collision\") {\n const d = e.nodeAt(c.pos);\n if (!d) continue;\n const u = d.attrs;\n for (let f = 0; f < u.rowspan; f++) o[c.row + f] += c.n;\n r.setNodeMarkup(\n r.mapping.map(n + 1 + c.pos),\n null,\n on(u, u.colspan - c.n, c.n)\n );\n } else if (c.type == \"missing\")\n o[c.row] += c.n;\n else if (c.type == \"overlong_rowspan\") {\n const d = e.nodeAt(c.pos);\n if (!d) continue;\n r.setNodeMarkup(r.mapping.map(n + 1 + c.pos), null, {\n ...d.attrs,\n rowspan: d.attrs.rowspan - c.n\n });\n } else if (c.type == \"colwidth mismatch\") {\n const d = e.nodeAt(c.pos);\n if (!d) continue;\n r.setNodeMarkup(r.mapping.map(n + 1 + c.pos), null, {\n ...d.attrs,\n colwidth: c.colwidth\n });\n } else if (c.type == \"zero_sized\") {\n const d = r.mapping.map(n);\n r.delete(d, d + e.nodeSize);\n }\n }\n let i, l;\n for (let a = 0; a < o.length; a++)\n o[a] && (i == null && (i = a), l = a);\n for (let a = 0, c = n + 1; a < s.height; a++) {\n const d = e.child(a), u = c + d.nodeSize, f = o[a];\n if (f > 0) {\n let h = \"cell\";\n d.firstChild && (h = d.firstChild.type.spec.tableRole);\n const p = [];\n for (let g = 0; g < f; g++) {\n const y = Se(t.schema)[h].createAndFill();\n y && p.push(y);\n }\n const m = (a == 0 || i == a - 1) && l == a ? c + 1 : u - 1;\n r.insert(r.mapping.map(m), p);\n }\n c = u;\n }\n return r.setMeta(cb, { fixTables: !0 });\n}\nfunction st(t) {\n const e = t.selection, n = Gs(t), r = n.node(-1), s = n.start(-1), o = se.get(r);\n return { ...e instanceof Y ? o.rectBetween(\n e.$anchorCell.pos - s,\n e.$headCell.pos - s\n ) : o.findCell(n.pos - s), tableStart: s, map: o, table: r };\n}\nfunction Ru(t, { map: e, tableStart: n, table: r }, s) {\n let o = s > 0 ? -1 : 0;\n rb(e, r, s + o) && (o = s == 0 || s == e.width ? null : 0);\n for (let i = 0; i < e.height; i++) {\n const l = i * e.width + s;\n if (s > 0 && s < e.width && e.map[l - 1] == e.map[l]) {\n const a = e.map[l], c = r.nodeAt(a);\n t.setNodeMarkup(\n t.mapping.map(n + a),\n null,\n Eu(c.attrs, s - e.colCount(a))\n ), i += c.attrs.rowspan - 1;\n } else {\n const a = o == null ? Se(r.type.schema).cell : r.nodeAt(e.map[l + o]).type, c = e.positionAt(i, s, r);\n t.insert(t.mapping.map(n + c), a.createAndFill());\n }\n }\n return t;\n}\nfunction ub(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t);\n e(Ru(t.tr, n, n.left));\n }\n return !0;\n}\nfunction fb(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t);\n e(Ru(t.tr, n, n.right));\n }\n return !0;\n}\nfunction hb(t, { map: e, table: n, tableStart: r }, s) {\n const o = t.mapping.maps.length;\n for (let i = 0; i < e.height; ) {\n const l = i * e.width + s, a = e.map[l], c = n.nodeAt(a), d = c.attrs;\n if (s > 0 && e.map[l - 1] == a || s < e.width - 1 && e.map[l + 1] == a)\n t.setNodeMarkup(\n t.mapping.slice(o).map(r + a),\n null,\n on(d, s - e.colCount(a))\n );\n else {\n const u = t.mapping.slice(o).map(r + a);\n t.delete(u, u + c.nodeSize);\n }\n i += d.rowspan;\n }\n}\nfunction pb(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t), r = t.tr;\n if (n.left == 0 && n.right == n.map.width) return !1;\n for (let s = n.right - 1; hb(r, n, s), s != n.left; s--) {\n const o = n.tableStart ? r.doc.nodeAt(n.tableStart - 1) : r.doc;\n if (!o)\n throw RangeError(\"No table found\");\n n.table = o, n.map = se.get(o);\n }\n e(r);\n }\n return !0;\n}\nfunction mb(t, e, n) {\n var r;\n const s = Se(e.type.schema).header_cell;\n for (let o = 0; o < t.width; o++)\n if (((r = e.nodeAt(t.map[o + n * t.width])) == null ? void 0 : r.type) != s)\n return !1;\n return !0;\n}\nfunction Du(t, { map: e, tableStart: n, table: r }, s) {\n var o;\n let i = n;\n for (let c = 0; c < s; c++) i += r.child(c).nodeSize;\n const l = [];\n let a = s > 0 ? -1 : 0;\n mb(e, r, s + a) && (a = s == 0 || s == e.height ? null : 0);\n for (let c = 0, d = e.width * s; c < e.width; c++, d++)\n if (s > 0 && s < e.height && e.map[d] == e.map[d - e.width]) {\n const u = e.map[d], f = r.nodeAt(u).attrs;\n t.setNodeMarkup(n + u, null, {\n ...f,\n rowspan: f.rowspan + 1\n }), c += f.colspan - 1;\n } else {\n const u = a == null ? Se(r.type.schema).cell : (o = r.nodeAt(e.map[d + a * e.width])) == null ? void 0 : o.type, f = u?.createAndFill();\n f && l.push(f);\n }\n return t.insert(i, Se(r.type.schema).row.create(null, l)), t;\n}\nfunction gb(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t);\n e(Du(t.tr, n, n.top));\n }\n return !0;\n}\nfunction yb(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t);\n e(Du(t.tr, n, n.bottom));\n }\n return !0;\n}\nfunction bb(t, { map: e, table: n, tableStart: r }, s) {\n let o = 0;\n for (let c = 0; c < s; c++) o += n.child(c).nodeSize;\n const i = o + n.child(s).nodeSize, l = t.mapping.maps.length;\n t.delete(o + r, i + r);\n const a = /* @__PURE__ */ new Set();\n for (let c = 0, d = s * e.width; c < e.width; c++, d++) {\n const u = e.map[d];\n if (!a.has(u)) {\n if (a.add(u), s > 0 && u == e.map[d - e.width]) {\n const f = n.nodeAt(u).attrs;\n t.setNodeMarkup(t.mapping.slice(l).map(u + r), null, {\n ...f,\n rowspan: f.rowspan - 1\n }), c += f.colspan - 1;\n } else if (s < e.height && u == e.map[d + e.width]) {\n const f = n.nodeAt(u), h = f.attrs, p = f.type.create(\n { ...h, rowspan: f.attrs.rowspan - 1 },\n f.content\n ), m = e.positionAt(s + 1, c, n);\n t.insert(t.mapping.slice(l).map(r + m), p), c += h.colspan - 1;\n }\n }\n }\n}\nfunction kb(t, e) {\n if (!Ye(t)) return !1;\n if (e) {\n const n = st(t), r = t.tr;\n if (n.top == 0 && n.bottom == n.map.height) return !1;\n for (let s = n.bottom - 1; bb(r, n, s), s != n.top; s--) {\n const o = n.tableStart ? r.doc.nodeAt(n.tableStart - 1) : r.doc;\n if (!o)\n throw RangeError(\"No table found\");\n n.table = o, n.map = se.get(n.table);\n }\n e(r);\n }\n return !0;\n}\nfunction ka(t) {\n const e = t.content;\n return e.childCount == 1 && e.child(0).isTextblock && e.child(0).childCount == 0;\n}\nfunction xb({ width: t, height: e, map: n }, r) {\n let s = r.top * t + r.left, o = s, i = (r.bottom - 1) * t + r.left, l = s + (r.right - r.left - 1);\n for (let a = r.top; a < r.bottom; a++) {\n if (r.left > 0 && n[o] == n[o - 1] || r.right < t && n[l] == n[l + 1])\n return !0;\n o += t, l += t;\n }\n for (let a = r.left; a < r.right; a++) {\n if (r.top > 0 && n[s] == n[s - t] || r.bottom < e && n[i] == n[i + t])\n return !0;\n s++, i++;\n }\n return !1;\n}\nfunction xa(t, e) {\n const n = t.selection;\n if (!(n instanceof Y) || n.$anchorCell.pos == n.$headCell.pos)\n return !1;\n const r = st(t), { map: s } = r;\n if (xb(s, r)) return !1;\n if (e) {\n const o = t.tr, i = {};\n let l = w.empty, a, c;\n for (let d = r.top; d < r.bottom; d++)\n for (let u = r.left; u < r.right; u++) {\n const f = s.map[d * s.width + u], h = r.table.nodeAt(f);\n if (!(i[f] || !h))\n if (i[f] = !0, a == null)\n a = f, c = h;\n else {\n ka(h) || (l = l.append(h.content));\n const p = o.mapping.map(f + r.tableStart);\n o.delete(p, p + h.nodeSize);\n }\n }\n if (a == null || c == null)\n return !0;\n if (o.setNodeMarkup(a + r.tableStart, null, {\n ...Eu(\n c.attrs,\n c.attrs.colspan,\n r.right - r.left - c.attrs.colspan\n ),\n rowspan: r.bottom - r.top\n }), l.size) {\n const d = a + 1 + c.content.size, u = ka(c) ? a + 1 : d;\n o.replaceWith(u + r.tableStart, d + r.tableStart, l);\n }\n o.setSelection(\n new Y(o.doc.resolve(a + r.tableStart))\n ), e(o);\n }\n return !0;\n}\nfunction wa(t, e) {\n const n = Se(t.schema);\n return wb(({ node: r }) => n[r.type.spec.tableRole])(t, e);\n}\nfunction wb(t) {\n return (e, n) => {\n var r;\n const s = e.selection;\n let o, i;\n if (s instanceof Y) {\n if (s.$anchorCell.pos != s.$headCell.pos) return !1;\n o = s.$anchorCell.nodeAfter, i = s.$anchorCell.pos;\n } else {\n if (o = eb(s.$from), !o) return !1;\n i = (r = Dn(s.$from)) == null ? void 0 : r.pos;\n }\n if (o == null || i == null || o.attrs.colspan == 1 && o.attrs.rowspan == 1)\n return !1;\n if (n) {\n let l = o.attrs;\n const a = [], c = l.colwidth;\n l.rowspan > 1 && (l = { ...l, rowspan: 1 }), l.colspan > 1 && (l = { ...l, colspan: 1 });\n const d = st(e), u = e.tr;\n for (let h = 0; h < d.right - d.left; h++)\n a.push(\n c ? {\n ...l,\n colwidth: c && c[h] ? [c[h]] : null\n } : l\n );\n let f;\n for (let h = d.top; h < d.bottom; h++) {\n let p = d.map.positionAt(h, d.left, d.table);\n h == d.top && (p += o.nodeSize);\n for (let m = d.left, g = 0; m < d.right; m++, g++)\n m == d.left && h == d.top || u.insert(\n f = u.mapping.map(p + d.tableStart, 1),\n t({ node: o, row: h, col: m }).createAndFill(a[g])\n );\n }\n u.setNodeMarkup(\n i,\n t({ node: o, row: d.top, col: d.left }),\n a[0]\n ), s instanceof Y && u.setSelection(\n new Y(\n u.doc.resolve(s.$anchorCell.pos),\n f ? u.doc.resolve(f) : void 0\n )\n ), n(u);\n }\n return !0;\n };\n}\nfunction Sb(t, e) {\n return function(n, r) {\n if (!Ye(n)) return !1;\n const s = Gs(n);\n if (s.nodeAfter.attrs[t] === e) return !1;\n if (r) {\n const o = n.tr;\n n.selection instanceof Y ? n.selection.forEachCell((i, l) => {\n i.attrs[t] !== e && o.setNodeMarkup(l, null, {\n ...i.attrs,\n [t]: e\n });\n }) : o.setNodeMarkup(s.pos, null, {\n ...s.nodeAfter.attrs,\n [t]: e\n }), r(o);\n }\n return !0;\n };\n}\nfunction Cb(t) {\n return function(e, n) {\n if (!Ye(e)) return !1;\n if (n) {\n const r = Se(e.schema), s = st(e), o = e.tr, i = s.map.cellsInRect(\n t == \"column\" ? {\n left: s.left,\n top: 0,\n right: s.right,\n bottom: s.map.height\n } : t == \"row\" ? {\n left: 0,\n top: s.top,\n right: s.map.width,\n bottom: s.bottom\n } : s\n ), l = i.map((a) => s.table.nodeAt(a));\n for (let a = 0; a < i.length; a++)\n l[a].type == r.header_cell && o.setNodeMarkup(\n s.tableStart + i[a],\n r.cell,\n l[a].attrs\n );\n if (o.steps.length == 0)\n for (let a = 0; a < i.length; a++)\n o.setNodeMarkup(\n s.tableStart + i[a],\n r.header_cell,\n l[a].attrs\n );\n n(o);\n }\n return !0;\n };\n}\nfunction Sa(t, e, n) {\n const r = e.map.cellsInRect({\n left: 0,\n top: 0,\n right: t == \"row\" ? e.map.width : 1,\n bottom: t == \"column\" ? e.map.height : 1\n });\n for (let s = 0; s < r.length; s++) {\n const o = e.table.nodeAt(r[s]);\n if (o && o.type !== n.header_cell)\n return !1;\n }\n return !0;\n}\nfunction ar(t, e) {\n return e = e || { useDeprecatedLogic: !1 }, e.useDeprecatedLogic ? Cb(t) : function(n, r) {\n if (!Ye(n)) return !1;\n if (r) {\n const s = Se(n.schema), o = st(n), i = n.tr, l = Sa(\"row\", o, s), a = Sa(\n \"column\",\n o,\n s\n ), d = (t === \"column\" ? l : t === \"row\" ? a : !1) ? 1 : 0, u = t == \"column\" ? {\n left: 0,\n top: d,\n right: 1,\n bottom: o.map.height\n } : t == \"row\" ? {\n left: d,\n top: 0,\n right: o.map.width,\n bottom: 1\n } : o, f = t == \"column\" ? a ? s.cell : s.header_cell : t == \"row\" ? l ? s.cell : s.header_cell : s.cell;\n o.map.cellsInRect(u).forEach((h) => {\n const p = h + o.tableStart, m = i.doc.nodeAt(p);\n m && i.setNodeMarkup(p, f, m.attrs);\n }), r(i);\n }\n return !0;\n };\n}\nar(\"row\", {\n useDeprecatedLogic: !0\n});\nar(\"column\", {\n useDeprecatedLogic: !0\n});\nvar vb = ar(\"cell\", {\n useDeprecatedLogic: !0\n});\nfunction Mb(t, e) {\n if (e < 0) {\n const n = t.nodeBefore;\n if (n) return t.pos - n.nodeSize;\n for (let r = t.index(-1) - 1, s = t.before(); r >= 0; r--) {\n const o = t.node(-1).child(r), i = o.lastChild;\n if (i)\n return s - 1 - i.nodeSize;\n s -= o.nodeSize;\n }\n } else {\n if (t.index() < t.parent.childCount - 1)\n return t.pos + t.nodeAfter.nodeSize;\n const n = t.node(-1);\n for (let r = t.indexAfter(-1), s = t.after(); r < n.childCount; r++) {\n const o = n.child(r);\n if (o.childCount) return s + 1;\n s += o.nodeSize;\n }\n }\n return null;\n}\nfunction Ca(t) {\n return function(e, n) {\n if (!Ye(e)) return !1;\n const r = Mb(Gs(e), t);\n if (r == null) return !1;\n if (n) {\n const s = e.doc.resolve(r);\n n(\n e.tr.setSelection(P.between(s, nb(s))).scrollIntoView()\n );\n }\n return !0;\n };\n}\nfunction Tb(t, e) {\n const n = t.selection.$anchor;\n for (let r = n.depth; r > 0; r--)\n if (n.node(r).type.spec.tableRole == \"table\")\n return e && e(\n t.tr.delete(n.before(r), n.after(r)).scrollIntoView()\n ), !0;\n return !1;\n}\nfunction Cr(t, e) {\n const n = t.selection;\n if (!(n instanceof Y)) return !1;\n if (e) {\n const r = t.tr, s = Se(t.schema).cell.createAndFill().content;\n n.forEachCell((o, i) => {\n o.content.eq(s) || r.replace(\n r.mapping.map(i + 1),\n r.mapping.map(i + o.nodeSize - 1),\n new A(s, 0, 0)\n );\n }), r.docChanged && e(r);\n }\n return !0;\n}\nfunction Eb(t) {\n if (!t.size) return null;\n let { content: e, openStart: n, openEnd: r } = t;\n for (; e.childCount == 1 && (n > 0 && r > 0 || e.child(0).type.spec.tableRole == \"table\"); )\n n--, r--, e = e.child(0).content;\n const s = e.child(0), o = s.type.spec.tableRole, i = s.type.schema, l = [];\n if (o == \"row\")\n for (let a = 0; a < e.childCount; a++) {\n let c = e.child(a).content;\n const d = a ? 0 : Math.max(0, n - 1), u = a < e.childCount - 1 ? 0 : Math.max(0, r - 1);\n (d || u) && (c = ni(\n Se(i).row,\n new A(c, d, u)\n ).content), l.push(c);\n }\n else if (o == \"cell\" || o == \"header_cell\")\n l.push(\n n || r ? ni(\n Se(i).row,\n new A(e, n, r)\n ).content : e\n );\n else\n return null;\n return Ab(i, l);\n}\nfunction Ab(t, e) {\n const n = [];\n for (let s = 0; s < e.length; s++) {\n const o = e[s];\n for (let i = o.childCount - 1; i >= 0; i--) {\n const { rowspan: l, colspan: a } = o.child(i).attrs;\n for (let c = s; c < s + l; c++)\n n[c] = (n[c] || 0) + a;\n }\n }\n let r = 0;\n for (let s = 0; s < n.length; s++) r = Math.max(r, n[s]);\n for (let s = 0; s < n.length; s++)\n if (s >= e.length && e.push(w.empty), n[s] < r) {\n const o = Se(t).cell.createAndFill(), i = [];\n for (let l = n[s]; l < r; l++)\n i.push(o);\n e[s] = e[s].append(w.from(i));\n }\n return { height: e.length, width: r, rows: e };\n}\nfunction ni(t, e) {\n const n = t.createAndFill();\n return new wi(n).replace(0, n.content.size, e).doc;\n}\nfunction Nb({ width: t, height: e, rows: n }, r, s) {\n if (t != r) {\n const o = [], i = [];\n for (let l = 0; l < n.length; l++) {\n const a = n[l], c = [];\n for (let d = o[l] || 0, u = 0; d < r; u++) {\n let f = a.child(u % a.childCount);\n d + f.attrs.colspan > r && (f = f.type.createChecked(\n on(\n f.attrs,\n f.attrs.colspan,\n d + f.attrs.colspan - r\n ),\n f.content\n )), c.push(f), d += f.attrs.colspan;\n for (let h = 1; h < f.attrs.rowspan; h++)\n o[l + h] = (o[l + h] || 0) + f.attrs.colspan;\n }\n i.push(w.from(c));\n }\n n = i, t = r;\n }\n if (e != s) {\n const o = [];\n for (let i = 0, l = 0; i < s; i++, l++) {\n const a = [], c = n[l % e];\n for (let d = 0; d < c.childCount; d++) {\n let u = c.child(d);\n i + u.attrs.rowspan > s && (u = u.type.create(\n {\n ...u.attrs,\n rowspan: Math.max(1, s - u.attrs.rowspan)\n },\n u.content\n )), a.push(u);\n }\n o.push(w.from(a));\n }\n n = o, e = s;\n }\n return { width: t, height: e, rows: n };\n}\nfunction Ob(t, e, n, r, s, o, i) {\n const l = t.doc.type.schema, a = Se(l);\n let c, d;\n if (s > e.width)\n for (let u = 0, f = 0; u < e.height; u++) {\n const h = n.child(u);\n f += h.nodeSize;\n const p = [];\n let m;\n h.lastChild == null || h.lastChild.type == a.cell ? m = c || (c = a.cell.createAndFill()) : m = d || (d = a.header_cell.createAndFill());\n for (let g = e.width; g < s; g++) p.push(m);\n t.insert(t.mapping.slice(i).map(f - 1 + r), p);\n }\n if (o > e.height) {\n const u = [];\n for (let p = 0, m = (e.height - 1) * e.width; p < Math.max(e.width, s); p++) {\n const g = p >= e.width ? !1 : n.nodeAt(e.map[m + p]).type == a.header_cell;\n u.push(\n g ? d || (d = a.header_cell.createAndFill()) : c || (c = a.cell.createAndFill())\n );\n }\n const f = a.row.create(null, w.from(u)), h = [];\n for (let p = e.height; p < o; p++) h.push(f);\n t.insert(t.mapping.slice(i).map(r + n.nodeSize - 2), h);\n }\n return !!(c || d);\n}\nfunction va(t, e, n, r, s, o, i, l) {\n if (i == 0 || i == e.height) return !1;\n let a = !1;\n for (let c = s; c < o; c++) {\n const d = i * e.width + c, u = e.map[d];\n if (e.map[d - e.width] == u) {\n a = !0;\n const f = n.nodeAt(u), { top: h, left: p } = e.findCell(u);\n t.setNodeMarkup(t.mapping.slice(l).map(u + r), null, {\n ...f.attrs,\n rowspan: i - h\n }), t.insert(\n t.mapping.slice(l).map(e.positionAt(i, p, n)),\n f.type.createAndFill({\n ...f.attrs,\n rowspan: h + f.attrs.rowspan - i\n })\n ), c += f.attrs.colspan - 1;\n }\n }\n return a;\n}\nfunction Ma(t, e, n, r, s, o, i, l) {\n if (i == 0 || i == e.width) return !1;\n let a = !1;\n for (let c = s; c < o; c++) {\n const d = c * e.width + i, u = e.map[d];\n if (e.map[d - 1] == u) {\n a = !0;\n const f = n.nodeAt(u), h = e.colCount(u), p = t.mapping.slice(l).map(u + r);\n t.setNodeMarkup(\n p,\n null,\n on(\n f.attrs,\n i - h,\n f.attrs.colspan - (i - h)\n )\n ), t.insert(\n p + f.nodeSize,\n f.type.createAndFill(\n on(f.attrs, 0, i - h)\n )\n ), c += f.attrs.rowspan - 1;\n }\n }\n return a;\n}\nfunction Ta(t, e, n, r, s) {\n let o = n ? t.doc.nodeAt(n - 1) : t.doc;\n if (!o)\n throw new Error(\"No table found\");\n let i = se.get(o);\n const { top: l, left: a } = r, c = a + s.width, d = l + s.height, u = t.tr;\n let f = 0;\n function h() {\n if (o = n ? u.doc.nodeAt(n - 1) : u.doc, !o)\n throw new Error(\"No table found\");\n i = se.get(o), f = u.mapping.maps.length;\n }\n Ob(u, i, o, n, c, d, f) && h(), va(u, i, o, n, a, c, l, f) && h(), va(u, i, o, n, a, c, d, f) && h(), Ma(u, i, o, n, l, d, a, f) && h(), Ma(u, i, o, n, l, d, c, f) && h();\n for (let p = l; p < d; p++) {\n const m = i.positionAt(p, a, o), g = i.positionAt(p, c, o);\n u.replace(\n u.mapping.slice(f).map(m + n),\n u.mapping.slice(f).map(g + n),\n new A(s.rows[p - l], 0, 0)\n );\n }\n h(), u.setSelection(\n new Y(\n u.doc.resolve(n + i.positionAt(l, a, o)),\n u.doc.resolve(n + i.positionAt(d - 1, c - 1, o))\n )\n ), e(u);\n}\nvar Rb = Bi({\n ArrowLeft: vr(\"horiz\", -1),\n ArrowRight: vr(\"horiz\", 1),\n ArrowUp: vr(\"vert\", -1),\n ArrowDown: vr(\"vert\", 1),\n \"Shift-ArrowLeft\": Mr(\"horiz\", -1),\n \"Shift-ArrowRight\": Mr(\"horiz\", 1),\n \"Shift-ArrowUp\": Mr(\"vert\", -1),\n \"Shift-ArrowDown\": Mr(\"vert\", 1),\n Backspace: Cr,\n \"Mod-Backspace\": Cr,\n Delete: Cr,\n \"Mod-Delete\": Cr\n});\nfunction $r(t, e, n) {\n return n.eq(t.selection) ? !1 : (e && e(t.tr.setSelection(n).scrollIntoView()), !0);\n}\nfunction vr(t, e) {\n return (n, r, s) => {\n if (!s) return !1;\n const o = n.selection;\n if (o instanceof Y)\n return $r(\n n,\n r,\n B.near(o.$headCell, e)\n );\n if (t != \"horiz\" && !o.empty) return !1;\n const i = Iu(s, t, e);\n if (i == null) return !1;\n if (t == \"horiz\")\n return $r(\n n,\n r,\n B.near(n.doc.resolve(o.head + e), e)\n );\n {\n const l = n.doc.resolve(i), a = Tu(l, t, e);\n let c;\n return a ? c = B.near(a, 1) : e < 0 ? c = B.near(n.doc.resolve(l.before(-1)), -1) : c = B.near(n.doc.resolve(l.after(-1)), 1), $r(n, r, c);\n }\n };\n}\nfunction Mr(t, e) {\n return (n, r, s) => {\n if (!s) return !1;\n const o = n.selection;\n let i;\n if (o instanceof Y)\n i = o;\n else {\n const a = Iu(s, t, e);\n if (a == null) return !1;\n i = new Y(n.doc.resolve(a));\n }\n const l = Tu(i.$headCell, t, e);\n return l ? $r(\n n,\n r,\n new Y(i.$anchorCell, l)\n ) : !1;\n };\n}\nfunction Db(t, e) {\n const n = t.state.doc, r = Dn(n.resolve(e));\n return r ? (t.dispatch(t.state.tr.setSelection(new Y(r))), !0) : !1;\n}\nfunction Ib(t, e, n) {\n if (!Ye(t.state)) return !1;\n let r = Eb(n);\n const s = t.state.selection;\n if (s instanceof Y) {\n r || (r = {\n width: 1,\n height: 1,\n rows: [\n w.from(\n ni(Se(t.state.schema).cell, n)\n )\n ]\n });\n const o = s.$anchorCell.node(-1), i = s.$anchorCell.start(-1), l = se.get(o).rectBetween(\n s.$anchorCell.pos - i,\n s.$headCell.pos - i\n );\n return r = Nb(r, l.right - l.left, l.bottom - l.top), Ta(t.state, t.dispatch, i, l, r), !0;\n } else if (r) {\n const o = Gs(t.state), i = o.start(-1);\n return Ta(\n t.state,\n t.dispatch,\n i,\n se.get(o.node(-1)).findCell(o.pos - i),\n r\n ), !0;\n } else\n return !1;\n}\nfunction Lb(t, e) {\n var n;\n if (e.ctrlKey || e.metaKey) return;\n const r = Ea(t, e.target);\n let s;\n if (e.shiftKey && t.state.selection instanceof Y)\n o(t.state.selection.$anchorCell, e), e.preventDefault();\n else if (e.shiftKey && r && (s = Dn(t.state.selection.$anchor)) != null && ((n = go(t, e)) == null ? void 0 : n.pos) != s.pos)\n o(s, e), e.preventDefault();\n else if (!r)\n return;\n function o(a, c) {\n let d = go(t, c);\n const u = Tt.getState(t.state) == null;\n if (!d || !Yi(a, d))\n if (u) d = a;\n else return;\n const f = new Y(a, d);\n if (u || !t.state.selection.eq(f)) {\n const h = t.state.tr.setSelection(f);\n u && h.setMeta(Tt, a.pos), t.dispatch(h);\n }\n }\n function i() {\n t.root.removeEventListener(\"mouseup\", i), t.root.removeEventListener(\"dragstart\", i), t.root.removeEventListener(\"mousemove\", l), Tt.getState(t.state) != null && t.dispatch(t.state.tr.setMeta(Tt, -1));\n }\n function l(a) {\n const c = a, d = Tt.getState(t.state);\n let u;\n if (d != null)\n u = t.state.doc.resolve(d);\n else if (Ea(t, c.target) != r && (u = go(t, e), !u))\n return i();\n u && o(u, c);\n }\n t.root.addEventListener(\"mouseup\", i), t.root.addEventListener(\"dragstart\", i), t.root.addEventListener(\"mousemove\", l);\n}\nfunction Iu(t, e, n) {\n if (!(t.state.selection instanceof P)) return null;\n const { $head: r } = t.state.selection;\n for (let s = r.depth - 1; s >= 0; s--) {\n const o = r.node(s);\n if ((n < 0 ? r.index(s) : r.indexAfter(s)) != (n < 0 ? 0 : o.childCount)) return null;\n if (o.type.spec.tableRole == \"cell\" || o.type.spec.tableRole == \"header_cell\") {\n const l = r.before(s), a = e == \"vert\" ? n > 0 ? \"down\" : \"up\" : n > 0 ? \"right\" : \"left\";\n return t.endOfTextblock(a) ? l : null;\n }\n }\n return null;\n}\nfunction Ea(t, e) {\n for (; e && e != t.dom; e = e.parentNode)\n if (e.nodeName == \"TD\" || e.nodeName == \"TH\")\n return e;\n return null;\n}\nfunction go(t, e) {\n const n = t.posAtCoords({\n left: e.clientX,\n top: e.clientY\n });\n return n && n ? Dn(t.state.doc.resolve(n.pos)) : null;\n}\nvar Pb = class {\n constructor(e, n) {\n this.node = e, this.defaultCellMinWidth = n, this.dom = document.createElement(\"div\"), this.dom.className = \"tableWrapper\", this.table = this.dom.appendChild(document.createElement(\"table\")), this.table.style.setProperty(\n \"--default-cell-min-width\",\n `${n}px`\n ), this.colgroup = this.table.appendChild(document.createElement(\"colgroup\")), ri(e, this.colgroup, this.table, n), this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n update(e) {\n return e.type != this.node.type ? !1 : (this.node = e, ri(\n e,\n this.colgroup,\n this.table,\n this.defaultCellMinWidth\n ), !0);\n }\n ignoreMutation(e) {\n return e.type == \"attributes\" && (e.target == this.table || this.colgroup.contains(e.target));\n }\n};\nfunction ri(t, e, n, r, s, o) {\n var i;\n let l = 0, a = !0, c = e.firstChild;\n const d = t.firstChild;\n if (d) {\n for (let u = 0, f = 0; u < d.childCount; u++) {\n const { colspan: h, colwidth: p } = d.child(u).attrs;\n for (let m = 0; m < h; m++, f++) {\n const g = s == f ? o : p && p[m], y = g ? g + \"px\" : \"\";\n if (l += g || r, g || (a = !1), c)\n c.style.width != y && (c.style.width = y), c = c.nextSibling;\n else {\n const x = document.createElement(\"col\");\n x.style.width = y, e.appendChild(x);\n }\n }\n }\n for (; c; ) {\n const u = c.nextSibling;\n (i = c.parentNode) == null || i.removeChild(c), c = u;\n }\n a ? (n.style.width = l + \"px\", n.style.minWidth = \"\") : (n.style.width = \"\", n.style.minWidth = l + \"px\");\n }\n}\nvar Re = new oe(\n \"tableColumnResizing\"\n);\nfunction zb({\n handleWidth: t = 5,\n cellMinWidth: e = 25,\n defaultCellMinWidth: n = 100,\n View: r = Pb,\n lastColumnResizable: s = !0\n} = {}) {\n const o = new ee({\n key: Re,\n state: {\n init(i, l) {\n var a, c;\n const d = (c = (a = o.spec) == null ? void 0 : a.props) == null ? void 0 : c.nodeViews, u = Se(l.schema).table.name;\n return r && d && (d[u] = (f, h) => new r(f, n, h)), new Bb(-1, !1);\n },\n apply(i, l) {\n return l.apply(i);\n }\n },\n props: {\n attributes: (i) => {\n const l = Re.getState(i);\n return l && l.activeHandle > -1 ? { class: \"resize-cursor\" } : {};\n },\n handleDOMEvents: {\n mousemove: (i, l) => {\n $b(i, l, t, s);\n },\n mouseleave: (i) => {\n Hb(i);\n },\n mousedown: (i, l) => {\n _b(i, l, e, n);\n }\n },\n decorations: (i) => {\n const l = Re.getState(i);\n if (l && l.activeHandle > -1)\n return Ub(i, l.activeHandle);\n },\n nodeViews: {}\n }\n });\n return o;\n}\nvar Bb = class Hr {\n constructor(e, n) {\n this.activeHandle = e, this.dragging = n;\n }\n apply(e) {\n const n = this, r = e.getMeta(Re);\n if (r && r.setHandle != null)\n return new Hr(r.setHandle, !1);\n if (r && r.setDragging !== void 0)\n return new Hr(n.activeHandle, r.setDragging);\n if (n.activeHandle > -1 && e.docChanged) {\n let s = e.mapping.map(n.activeHandle, -1);\n return ti(e.doc.resolve(s)) || (s = -1), new Hr(s, n.dragging);\n }\n return n;\n }\n};\nfunction $b(t, e, n, r) {\n if (!t.editable) return;\n const s = Re.getState(t.state);\n if (s && !s.dragging) {\n const o = Vb(e.target);\n let i = -1;\n if (o) {\n const { left: l, right: a } = o.getBoundingClientRect();\n e.clientX - l <= n ? i = Aa(t, e, \"left\", n) : a - e.clientX <= n && (i = Aa(t, e, \"right\", n));\n }\n if (i != s.activeHandle) {\n if (!r && i !== -1) {\n const l = t.state.doc.resolve(i), a = l.node(-1), c = se.get(a), d = l.start(-1);\n if (c.colCount(l.pos - d) + l.nodeAfter.attrs.colspan - 1 == c.width - 1)\n return;\n }\n Lu(t, i);\n }\n }\n}\nfunction Hb(t) {\n if (!t.editable) return;\n const e = Re.getState(t.state);\n e && e.activeHandle > -1 && !e.dragging && Lu(t, -1);\n}\nfunction _b(t, e, n, r) {\n var s;\n if (!t.editable) return !1;\n const o = (s = t.dom.ownerDocument.defaultView) != null ? s : window, i = Re.getState(t.state);\n if (!i || i.activeHandle == -1 || i.dragging)\n return !1;\n const l = t.state.doc.nodeAt(i.activeHandle), a = jb(t, i.activeHandle, l.attrs);\n t.dispatch(\n t.state.tr.setMeta(Re, {\n setDragging: { startX: e.clientX, startWidth: a }\n })\n );\n function c(u) {\n o.removeEventListener(\"mouseup\", c), o.removeEventListener(\"mousemove\", d);\n const f = Re.getState(t.state);\n f?.dragging && (Fb(\n t,\n f.activeHandle,\n Na(f.dragging, u, n)\n ), t.dispatch(\n t.state.tr.setMeta(Re, { setDragging: null })\n ));\n }\n function d(u) {\n if (!u.which) return c(u);\n const f = Re.getState(t.state);\n if (f && f.dragging) {\n const h = Na(f.dragging, u, n);\n Oa(\n t,\n f.activeHandle,\n h,\n r\n );\n }\n }\n return Oa(\n t,\n i.activeHandle,\n a,\n r\n ), o.addEventListener(\"mouseup\", c), o.addEventListener(\"mousemove\", d), e.preventDefault(), !0;\n}\nfunction jb(t, e, { colspan: n, colwidth: r }) {\n const s = r && r[r.length - 1];\n if (s) return s;\n const o = t.domAtPos(e);\n let l = o.node.childNodes[o.offset].offsetWidth, a = n;\n if (r)\n for (let c = 0; c < n; c++)\n r[c] && (l -= r[c], a--);\n return l / a;\n}\nfunction Vb(t) {\n for (; t && t.nodeName != \"TD\" && t.nodeName != \"TH\"; )\n t = t.classList && t.classList.contains(\"ProseMirror\") ? null : t.parentNode;\n return t;\n}\nfunction Aa(t, e, n, r) {\n const s = n == \"right\" ? -r : r, o = t.posAtCoords({\n left: e.clientX + s,\n top: e.clientY\n });\n if (!o) return -1;\n const { pos: i } = o, l = Dn(t.state.doc.resolve(i));\n if (!l) return -1;\n if (n == \"right\") return l.pos;\n const a = se.get(l.node(-1)), c = l.start(-1), d = a.map.indexOf(l.pos - c);\n return d % a.width == 0 ? -1 : c + a.map[d - 1];\n}\nfunction Na(t, e, n) {\n const r = e.clientX - t.startX;\n return Math.max(n, t.startWidth + r);\n}\nfunction Lu(t, e) {\n t.dispatch(\n t.state.tr.setMeta(Re, { setHandle: e })\n );\n}\nfunction Fb(t, e, n) {\n const r = t.state.doc.resolve(e), s = r.node(-1), o = se.get(s), i = r.start(-1), l = o.colCount(r.pos - i) + r.nodeAfter.attrs.colspan - 1, a = t.state.tr;\n for (let c = 0; c < o.height; c++) {\n const d = c * o.width + l;\n if (c && o.map[d] == o.map[d - o.width]) continue;\n const u = o.map[d], f = s.nodeAt(u).attrs, h = f.colspan == 1 ? 0 : l - o.colCount(u);\n if (f.colwidth && f.colwidth[h] == n) continue;\n const p = f.colwidth ? f.colwidth.slice() : Wb(f.colspan);\n p[h] = n, a.setNodeMarkup(i + u, null, { ...f, colwidth: p });\n }\n a.docChanged && t.dispatch(a);\n}\nfunction Oa(t, e, n, r) {\n const s = t.state.doc.resolve(e), o = s.node(-1), i = s.start(-1), l = se.get(o).colCount(s.pos - i) + s.nodeAfter.attrs.colspan - 1;\n let a = t.domAtPos(s.start(-1)).node;\n for (; a && a.nodeName != \"TABLE\"; )\n a = a.parentNode;\n a && ri(\n o,\n a.firstChild,\n a,\n r,\n l,\n n\n );\n}\nfunction Wb(t) {\n return Array(t).fill(0);\n}\nfunction Ub(t, e) {\n var n;\n const r = [], s = t.doc.resolve(e), o = s.node(-1);\n if (!o)\n return G.empty;\n const i = se.get(o), l = s.start(-1), a = i.colCount(s.pos - l) + s.nodeAfter.attrs.colspan - 1;\n for (let c = 0; c < i.height; c++) {\n const d = a + c * i.width;\n if ((a == i.width - 1 || i.map[d] != i.map[d + 1]) && (c == 0 || i.map[d] != i.map[d - i.width])) {\n const u = i.map[d], f = l + u + o.nodeAt(u).nodeSize - 1, h = document.createElement(\"div\");\n h.className = \"column-resize-handle\", (n = Re.getState(t)) != null && n.dragging && r.push(\n he.node(\n l + u,\n l + u + o.nodeAt(u).nodeSize,\n {\n class: \"column-resize-dragging\"\n }\n )\n ), r.push(he.widget(f, h));\n }\n }\n return G.create(t.doc, r);\n}\nfunction Kb({\n allowTableNodeSelection: t = !1\n} = {}) {\n return new ee({\n key: Tt,\n // This piece of state is used to remember when a mouse-drag\n // cell-selection is happening, so that it can continue even as\n // transactions (which might move its anchor cell) come in.\n state: {\n init() {\n return null;\n },\n apply(e, n) {\n const r = e.getMeta(Tt);\n if (r != null) return r == -1 ? null : r;\n if (n == null || !e.docChanged) return n;\n const { deleted: s, pos: o } = e.mapping.mapResult(n);\n return s ? null : o;\n }\n },\n props: {\n decorations: ob,\n handleDOMEvents: {\n mousedown: Lb\n },\n createSelectionBetween(e) {\n return Tt.getState(e.state) != null ? e.state.selection : null;\n },\n handleTripleClick: Db,\n handleKeyDown: Rb,\n handlePaste: Ib\n },\n appendTransaction(e, n, r) {\n return ab(\n r,\n Ou(r, n),\n t\n );\n }\n });\n}\nvar Pu = ge.create({\n name: \"tableCell\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n content: \"block+\",\n addAttributes() {\n return {\n colspan: {\n default: 1\n },\n rowspan: {\n default: 1\n },\n colwidth: {\n default: null,\n parseHTML: (t) => {\n var e, n;\n const r = t.getAttribute(\"colwidth\"), s = r ? r.split(\",\").map((o) => parseInt(o, 10)) : null;\n if (!s) {\n const o = (e = t.closest(\"table\")) == null ? void 0 : e.querySelectorAll(\"colgroup > col\"), i = Array.from(((n = t.parentElement) == null ? void 0 : n.children) || []).indexOf(t);\n if (i && i > -1 && o && o[i]) {\n const l = o[i].getAttribute(\"width\");\n return l ? [parseInt(l, 10)] : null;\n }\n }\n return s;\n }\n }\n };\n },\n tableRole: \"cell\",\n isolating: !0,\n parseHTML() {\n return [{ tag: \"td\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"td\", q(this.options.HTMLAttributes, t), 0];\n }\n}), zu = ge.create({\n name: \"tableHeader\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n content: \"block+\",\n addAttributes() {\n return {\n colspan: {\n default: 1\n },\n rowspan: {\n default: 1\n },\n colwidth: {\n default: null,\n parseHTML: (t) => {\n const e = t.getAttribute(\"colwidth\");\n return e ? e.split(\",\").map((r) => parseInt(r, 10)) : null;\n }\n }\n };\n },\n tableRole: \"header_cell\",\n isolating: !0,\n parseHTML() {\n return [{ tag: \"th\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"th\", q(this.options.HTMLAttributes, t), 0];\n }\n}), Bu = ge.create({\n name: \"tableRow\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n content: \"(tableCell | tableHeader)*\",\n tableRole: \"row\",\n parseHTML() {\n return [{ tag: \"tr\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"tr\", q(this.options.HTMLAttributes, t), 0];\n }\n});\nfunction si(t, e) {\n return e ? [\"width\", `${Math.max(e, t)}px`] : [\"min-width\", `${t}px`];\n}\nfunction Ra(t, e, n, r, s, o) {\n var i;\n let l = 0, a = !0, c = e.firstChild;\n const d = t.firstChild;\n if (d !== null)\n for (let f = 0, h = 0; f < d.childCount; f += 1) {\n const { colspan: p, colwidth: m } = d.child(f).attrs;\n for (let g = 0; g < p; g += 1, h += 1) {\n const y = s === h ? o : m && m[g], x = y ? `${y}px` : \"\";\n if (l += y || r, y || (a = !1), c) {\n if (c.style.width !== x) {\n const [k, T] = si(r, y);\n c.style.setProperty(k, T);\n }\n c = c.nextSibling;\n } else {\n const k = document.createElement(\"col\"), [T, b] = si(r, y);\n k.style.setProperty(T, b), e.appendChild(k);\n }\n }\n }\n for (; c; ) {\n const f = c.nextSibling;\n (i = c.parentNode) == null || i.removeChild(c), c = f;\n }\n const u = t.attrs.style && typeof t.attrs.style == \"string\" && /\\bwidth\\s*:/i.test(t.attrs.style);\n a && !u ? (n.style.width = `${l}px`, n.style.minWidth = \"\") : (n.style.width = \"\", n.style.minWidth = `${l}px`);\n}\nvar qb = class {\n constructor(t, e) {\n this.node = t, this.cellMinWidth = e, this.dom = document.createElement(\"div\"), this.dom.className = \"tableWrapper\", this.table = this.dom.appendChild(document.createElement(\"table\")), t.attrs.style && (this.table.style.cssText = t.attrs.style), this.colgroup = this.table.appendChild(document.createElement(\"colgroup\")), Ra(t, this.colgroup, this.table, e), this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n update(t) {\n return t.type !== this.node.type ? !1 : (this.node = t, Ra(t, this.colgroup, this.table, this.cellMinWidth), !0);\n }\n ignoreMutation(t) {\n const e = t.target, n = this.dom.contains(e), r = this.contentDOM.contains(e);\n return !!(n && !r && (t.type === \"attributes\" || t.type === \"childList\" || t.type === \"characterData\"));\n }\n};\nfunction Jb(t, e, n, r) {\n let s = 0, o = !0;\n const i = [], l = t.firstChild;\n if (!l)\n return {};\n for (let u = 0, f = 0; u < l.childCount; u += 1) {\n const { colspan: h, colwidth: p } = l.child(u).attrs;\n for (let m = 0; m < h; m += 1, f += 1) {\n const g = n === f ? r : p && p[m];\n s += g || e, g || (o = !1);\n const [y, x] = si(e, g);\n i.push([\"col\", { style: `${y}: ${x}` }]);\n }\n }\n const a = o ? `${s}px` : \"\", c = o ? \"\" : `${s}px`;\n return { colgroup: [\"colgroup\", {}, ...i], tableWidth: a, tableMinWidth: c };\n}\nfunction Da(t, e) {\n return t.createAndFill();\n}\nfunction Gb(t) {\n if (t.cached.tableNodeTypes)\n return t.cached.tableNodeTypes;\n const e = {};\n return Object.keys(t.nodes).forEach((n) => {\n const r = t.nodes[n];\n r.spec.tableRole && (e[r.spec.tableRole] = r);\n }), t.cached.tableNodeTypes = e, e;\n}\nfunction Yb(t, e, n, r, s) {\n const o = Gb(t), i = [], l = [];\n for (let c = 0; c < n; c += 1) {\n const d = Da(o.cell);\n if (d && l.push(d), r) {\n const u = Da(o.header_cell);\n u && i.push(u);\n }\n }\n const a = [];\n for (let c = 0; c < e; c += 1)\n a.push(o.row.createChecked(null, r && c === 0 ? i : l));\n return o.table.createChecked(null, a);\n}\nfunction Xb(t) {\n return t instanceof Y;\n}\nvar Tr = ({ editor: t }) => {\n const { selection: e } = t.state;\n if (!Xb(e))\n return !1;\n let n = 0;\n const r = Qd(e.ranges[0].$from, (o) => o.type.name === \"table\");\n return r?.node.descendants((o) => {\n if (o.type.name === \"table\")\n return !1;\n [\"tableCell\", \"tableHeader\"].includes(o.type.name) && (n += 1);\n }), n === e.ranges.length ? (t.commands.deleteTable(), !0) : !1;\n}, Qb = \"\u001f\";\nfunction Zb(t) {\n return (t || \"\").replace(/\\s+/g, \" \").trim();\n}\nfunction e0(t, e, n = {}) {\n var r;\n const s = (r = n.cellLineSeparator) != null ? r : Qb;\n if (!t || !t.content || t.content.length === 0)\n return \"\";\n const o = [];\n t.content.forEach((p) => {\n const m = [];\n p.content && p.content.forEach((g) => {\n let y = \"\";\n g.content && Array.isArray(g.content) && g.content.length > 1 ? y = g.content.map((b) => e.renderChildren(b)).join(s) : y = g.content ? e.renderChildren(g.content) : \"\";\n const x = Zb(y), k = g.type === \"tableHeader\";\n m.push({ text: x, isHeader: k });\n }), o.push(m);\n });\n const i = o.reduce((p, m) => Math.max(p, m.length), 0);\n if (i === 0)\n return \"\";\n const l = new Array(i).fill(0);\n o.forEach((p) => {\n var m;\n for (let g = 0; g < i; g += 1) {\n const x = (((m = p[g]) == null ? void 0 : m.text) || \"\").length;\n x > l[g] && (l[g] = x), l[g] < 3 && (l[g] = 3);\n }\n });\n const a = (p, m) => p + \" \".repeat(Math.max(0, m - p.length)), c = o[0], d = c.some((p) => p.isHeader);\n let u = `\n`;\n const f = new Array(i).fill(0).map((p, m) => d && c[m] && c[m].text || \"\");\n return u += `| ${f.map((p, m) => a(p, l[m])).join(\" | \")} |\n`, u += `| ${l.map((p) => \"-\".repeat(Math.max(3, p))).join(\" | \")} |\n`, (d ? o.slice(1) : o).forEach((p) => {\n u += `| ${new Array(i).fill(0).map((m, g) => a(p[g] && p[g].text || \"\", l[g])).join(\" | \")} |\n`;\n }), u;\n}\nvar t0 = e0, $u = ge.create({\n name: \"table\",\n // @ts-ignore\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: !1,\n renderWrapper: !1,\n handleWidth: 5,\n cellMinWidth: 25,\n // TODO: fix\n View: qb,\n lastColumnResizable: !0,\n allowTableNodeSelection: !1\n };\n },\n content: \"tableRow+\",\n tableRole: \"table\",\n isolating: !0,\n group: \"block\",\n parseHTML() {\n return [{ tag: \"table\" }];\n },\n renderHTML({ node: t, HTMLAttributes: e }) {\n const { colgroup: n, tableWidth: r, tableMinWidth: s } = Jb(t, this.options.cellMinWidth), o = e.style;\n function i() {\n return o || (r ? `width: ${r}` : `min-width: ${s}`);\n }\n const l = [\n \"table\",\n q(this.options.HTMLAttributes, e, {\n style: i()\n }),\n n,\n [\"tbody\", 0]\n ];\n return this.options.renderWrapper ? [\"div\", { class: \"tableWrapper\" }, l] : l;\n },\n parseMarkdown: (t, e) => {\n const n = [];\n if (t.header) {\n const r = [];\n t.header.forEach((s) => {\n r.push(e.createNode(\"tableHeader\", {}, [{ type: \"paragraph\", content: e.parseInline(s.tokens) }]));\n }), n.push(e.createNode(\"tableRow\", {}, r));\n }\n return t.rows && t.rows.forEach((r) => {\n const s = [];\n r.forEach((o) => {\n s.push(e.createNode(\"tableCell\", {}, [{ type: \"paragraph\", content: e.parseInline(o.tokens) }]));\n }), n.push(e.createNode(\"tableRow\", {}, s));\n }), e.createNode(\"table\", void 0, n);\n },\n renderMarkdown: (t, e) => t0(t, e),\n addCommands() {\n return {\n insertTable: ({ rows: t = 3, cols: e = 3, withHeaderRow: n = !0 } = {}) => ({ tr: r, dispatch: s, editor: o }) => {\n const i = Yb(o.schema, t, e, n);\n if (s) {\n const l = r.selection.from + 1;\n r.replaceSelectionWith(i).scrollIntoView().setSelection(P.near(r.doc.resolve(l)));\n }\n return !0;\n },\n addColumnBefore: () => ({ state: t, dispatch: e }) => ub(t, e),\n addColumnAfter: () => ({ state: t, dispatch: e }) => fb(t, e),\n deleteColumn: () => ({ state: t, dispatch: e }) => pb(t, e),\n addRowBefore: () => ({ state: t, dispatch: e }) => gb(t, e),\n addRowAfter: () => ({ state: t, dispatch: e }) => yb(t, e),\n deleteRow: () => ({ state: t, dispatch: e }) => kb(t, e),\n deleteTable: () => ({ state: t, dispatch: e }) => Tb(t, e),\n mergeCells: () => ({ state: t, dispatch: e }) => xa(t, e),\n splitCell: () => ({ state: t, dispatch: e }) => wa(t, e),\n toggleHeaderColumn: () => ({ state: t, dispatch: e }) => ar(\"column\")(t, e),\n toggleHeaderRow: () => ({ state: t, dispatch: e }) => ar(\"row\")(t, e),\n toggleHeaderCell: () => ({ state: t, dispatch: e }) => vb(t, e),\n mergeOrSplit: () => ({ state: t, dispatch: e }) => xa(t, e) ? !0 : wa(t, e),\n setCellAttribute: (t, e) => ({ state: n, dispatch: r }) => Sb(t, e)(n, r),\n goToNextCell: () => ({ state: t, dispatch: e }) => Ca(1)(t, e),\n goToPreviousCell: () => ({ state: t, dispatch: e }) => Ca(-1)(t, e),\n fixTables: () => ({ state: t, dispatch: e }) => (e && Ou(t), !0),\n setCellSelection: (t) => ({ tr: e, dispatch: n }) => {\n if (n) {\n const r = Y.create(e.doc, t.anchorCell, t.headCell);\n e.setSelection(r);\n }\n return !0;\n }\n };\n },\n addKeyboardShortcuts() {\n return {\n Tab: () => this.editor.commands.goToNextCell() ? !0 : this.editor.can().addRowAfter() ? this.editor.chain().addRowAfter().goToNextCell().run() : !1,\n \"Shift-Tab\": () => this.editor.commands.goToPreviousCell(),\n Backspace: Tr,\n \"Mod-Backspace\": Tr,\n Delete: Tr,\n \"Mod-Delete\": Tr\n };\n },\n addProseMirrorPlugins() {\n return [\n ...this.options.resizable && this.editor.isEditable ? [\n zb({\n handleWidth: this.options.handleWidth,\n cellMinWidth: this.options.cellMinWidth,\n defaultCellMinWidth: this.options.cellMinWidth,\n View: this.options.View,\n lastColumnResizable: this.options.lastColumnResizable\n })\n ] : [],\n Kb({\n allowTableNodeSelection: this.options.allowTableNodeSelection\n })\n ];\n },\n extendNodeSchema(t) {\n const e = {\n name: t.name,\n options: t.options,\n storage: t.storage\n };\n return {\n tableRole: V(I(t, \"tableRole\", e))\n };\n }\n});\nF.create({\n name: \"tableKit\",\n addExtensions() {\n const t = [];\n return this.options.table !== !1 && t.push($u.configure(this.options.table)), this.options.tableCell !== !1 && t.push(Pu.configure(this.options.tableCell)), this.options.tableHeader !== !1 && t.push(zu.configure(this.options.tableHeader)), this.options.tableRow !== !1 && t.push(Bu.configure(this.options.tableRow)), t;\n }\n});\nvar n0 = Pu, r0 = zu, s0 = Bu, o0 = F.create({\n name: \"textAlign\",\n addOptions() {\n return {\n types: [],\n alignments: [\"left\", \"center\", \"right\", \"justify\"],\n defaultAlignment: null\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n textAlign: {\n default: this.options.defaultAlignment,\n parseHTML: (t) => {\n const e = t.style.textAlign;\n return this.options.alignments.includes(e) ? e : this.options.defaultAlignment;\n },\n renderHTML: (t) => t.textAlign ? { style: `text-align: ${t.textAlign}` } : {}\n }\n }\n }\n ];\n },\n addCommands() {\n return {\n setTextAlign: (t) => ({ commands: e }) => this.options.alignments.includes(t) ? this.options.types.map((n) => e.updateAttributes(n, { textAlign: t })).some((n) => n) : !1,\n unsetTextAlign: () => ({ commands: t }) => this.options.types.map((e) => t.resetAttributes(e, \"textAlign\")).some((e) => e),\n toggleTextAlign: (t) => ({ editor: e, commands: n }) => this.options.alignments.includes(t) ? e.isActive({ textAlign: t }) ? n.unsetTextAlign() : n.setTextAlign(t) : !1\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-l\": () => this.editor.commands.setTextAlign(\"left\"),\n \"Mod-Shift-e\": () => this.editor.commands.setTextAlign(\"center\"),\n \"Mod-Shift-r\": () => this.editor.commands.setTextAlign(\"right\"),\n \"Mod-Shift-j\": () => this.editor.commands.setTextAlign(\"justify\")\n };\n }\n}), i0 = o0, Hu = bt.create({\n name: \"underline\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n parseHTML() {\n return [\n {\n tag: \"u\"\n },\n {\n style: \"text-decoration\",\n consuming: !1,\n getAttrs: (t) => t.includes(\"underline\") ? {} : !1\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"u\", q(this.options.HTMLAttributes, t), 0];\n },\n parseMarkdown(t, e) {\n return e.applyMark(this.name || \"underline\", e.parseInline(t.tokens || []));\n },\n renderMarkdown(t, e) {\n return `++${e.renderChildren(t)}++`;\n },\n markdownTokenizer: {\n name: \"underline\",\n level: \"inline\",\n start(t) {\n return t.indexOf(\"++\");\n },\n tokenize(t, e, n) {\n const s = /^(\\+\\+)([\\s\\S]+?)(\\+\\+)/.exec(t);\n if (!s)\n return;\n const o = s[2].trim();\n return {\n type: \"underline\",\n raw: s[0],\n text: o,\n tokens: n.inlineTokens(o)\n };\n }\n },\n addCommands() {\n return {\n setUnderline: () => ({ commands: t }) => t.setMark(this.name),\n toggleUnderline: () => ({ commands: t }) => t.toggleMark(this.name),\n unsetUnderline: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-u\": () => this.editor.commands.toggleUnderline(),\n \"Mod-U\": () => this.editor.commands.toggleUnderline()\n };\n }\n}), l0 = Hu, ts = (t, e) => {\n if (t === \"slot\")\n return 0;\n if (t instanceof Function)\n return t(e);\n const { children: n, ...r } = e ?? {};\n if (t === \"svg\")\n throw new Error(\"SVG elements are not supported in the JSX syntax, use the array syntax instead\");\n return [t, r, n];\n}, a0 = /^\\s*>\\s$/, c0 = ge.create({\n name: \"blockquote\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n content: \"block+\",\n group: \"block\",\n defining: !0,\n parseHTML() {\n return [{ tag: \"blockquote\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return /* @__PURE__ */ ts(\"blockquote\", { ...q(this.options.HTMLAttributes, t), children: /* @__PURE__ */ ts(\"slot\", {}) });\n },\n parseMarkdown: (t, e) => e.createNode(\"blockquote\", void 0, e.parseChildren(t.tokens || [])),\n renderMarkdown: (t, e) => {\n if (!t.content)\n return \"\";\n const n = \">\", r = [];\n return t.content.forEach((s) => {\n const l = e.renderChildren([s]).split(`\n`).map((a) => a.trim() === \"\" ? n : `${n} ${a}`);\n r.push(l.join(`\n`));\n }), r.join(`\n${n}\n`);\n },\n addCommands() {\n return {\n setBlockquote: () => ({ commands: t }) => t.wrapIn(this.name),\n toggleBlockquote: () => ({ commands: t }) => t.toggleWrap(this.name),\n unsetBlockquote: () => ({ commands: t }) => t.lift(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-b\": () => this.editor.commands.toggleBlockquote()\n };\n },\n addInputRules() {\n return [\n On({\n find: a0,\n type: this.type\n })\n ];\n }\n}), d0 = /(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))$/, u0 = /(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))/g, f0 = /(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))$/, h0 = /(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))/g, p0 = bt.create({\n name: \"bold\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n parseHTML() {\n return [\n {\n tag: \"strong\"\n },\n {\n tag: \"b\",\n getAttrs: (t) => t.style.fontWeight !== \"normal\" && null\n },\n {\n style: \"font-weight=400\",\n clearMark: (t) => t.type.name === this.name\n },\n {\n style: \"font-weight\",\n getAttrs: (t) => /^(bold(er)?|[5-9]\\d{2,})$/.test(t) && null\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return /* @__PURE__ */ ts(\"strong\", { ...q(this.options.HTMLAttributes, t), children: /* @__PURE__ */ ts(\"slot\", {}) });\n },\n markdownTokenName: \"strong\",\n parseMarkdown: (t, e) => e.applyMark(\"bold\", e.parseInline(t.tokens || [])),\n renderMarkdown: (t, e) => `**${e.renderChildren(t)}**`,\n addCommands() {\n return {\n setBold: () => ({ commands: t }) => t.setMark(this.name),\n toggleBold: () => ({ commands: t }) => t.toggleMark(this.name),\n unsetBold: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-b\": () => this.editor.commands.toggleBold(),\n \"Mod-B\": () => this.editor.commands.toggleBold()\n };\n },\n addInputRules() {\n return [\n sn({\n find: d0,\n type: this.type\n }),\n sn({\n find: f0,\n type: this.type\n })\n ];\n },\n addPasteRules() {\n return [\n Bt({\n find: u0,\n type: this.type\n }),\n Bt({\n find: h0,\n type: this.type\n })\n ];\n }\n}), m0 = /(^|[^`])`([^`]+)`(?!`)$/, g0 = /(^|[^`])`([^`]+)`(?!`)/g, y0 = bt.create({\n name: \"code\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n excludes: \"_\",\n code: !0,\n exitable: !0,\n parseHTML() {\n return [{ tag: \"code\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"code\", q(this.options.HTMLAttributes, t), 0];\n },\n markdownTokenName: \"codespan\",\n parseMarkdown: (t, e) => e.applyMark(\"code\", [{ type: \"text\", text: t.text || \"\" }]),\n renderMarkdown: (t, e) => t.content ? `\\`${e.renderChildren(t.content)}\\`` : \"\",\n addCommands() {\n return {\n setCode: () => ({ commands: t }) => t.setMark(this.name),\n toggleCode: () => ({ commands: t }) => t.toggleMark(this.name),\n unsetCode: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-e\": () => this.editor.commands.toggleCode()\n };\n },\n addInputRules() {\n return [\n sn({\n find: m0,\n type: this.type\n })\n ];\n },\n addPasteRules() {\n return [\n Bt({\n find: g0,\n type: this.type\n })\n ];\n }\n}), yo = 4, b0 = /^```([a-z]+)?[\\s\\n]$/, k0 = /^~~~([a-z]+)?[\\s\\n]$/, x0 = ge.create({\n name: \"codeBlock\",\n addOptions() {\n return {\n languageClassPrefix: \"language-\",\n exitOnTripleEnter: !0,\n exitOnArrowDown: !0,\n defaultLanguage: null,\n enableTabIndentation: !1,\n tabSize: yo,\n HTMLAttributes: {}\n };\n },\n content: \"text*\",\n marks: \"\",\n group: \"block\",\n code: !0,\n defining: !0,\n addAttributes() {\n return {\n language: {\n default: this.options.defaultLanguage,\n parseHTML: (t) => {\n var e;\n const { languageClassPrefix: n } = this.options;\n if (!n)\n return null;\n const o = [...((e = t.firstElementChild) == null ? void 0 : e.classList) || []].filter((i) => i.startsWith(n)).map((i) => i.replace(n, \"\"))[0];\n return o || null;\n },\n rendered: !1\n }\n };\n },\n parseHTML() {\n return [\n {\n tag: \"pre\",\n preserveWhitespace: \"full\"\n }\n ];\n },\n renderHTML({ node: t, HTMLAttributes: e }) {\n return [\n \"pre\",\n q(this.options.HTMLAttributes, e),\n [\n \"code\",\n {\n class: t.attrs.language ? this.options.languageClassPrefix + t.attrs.language : null\n },\n 0\n ]\n ];\n },\n markdownTokenName: \"code\",\n parseMarkdown: (t, e) => {\n var n;\n return ((n = t.raw) == null ? void 0 : n.startsWith(\"```\")) === !1 && t.codeBlockStyle !== \"indented\" ? [] : e.createNode(\n \"codeBlock\",\n { language: t.lang || null },\n t.text ? [e.createTextNode(t.text)] : []\n );\n },\n renderMarkdown: (t, e) => {\n var n;\n let r = \"\";\n const s = ((n = t.attrs) == null ? void 0 : n.language) || \"\";\n return t.content ? r = [`\\`\\`\\`${s}`, e.renderChildren(t.content), \"```\"].join(`\n`) : r = `\\`\\`\\`${s}\n\n\\`\\`\\``, r;\n },\n addCommands() {\n return {\n setCodeBlock: (t) => ({ commands: e }) => e.setNode(this.name, t),\n toggleCodeBlock: (t) => ({ commands: e }) => e.toggleNode(this.name, \"paragraph\", t)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Alt-c\": () => this.editor.commands.toggleCodeBlock(),\n // remove code block when at start of document or code block is empty\n Backspace: () => {\n const { empty: t, $anchor: e } = this.editor.state.selection, n = e.pos === 1;\n return !t || e.parent.type.name !== this.name ? !1 : n || !e.parent.textContent.length ? this.editor.commands.clearNodes() : !1;\n },\n // handle tab indentation\n Tab: ({ editor: t }) => {\n var e;\n if (!this.options.enableTabIndentation)\n return !1;\n const n = (e = this.options.tabSize) != null ? e : yo, { state: r } = t, { selection: s } = r, { $from: o, empty: i } = s;\n if (o.parent.type !== this.type)\n return !1;\n const l = \" \".repeat(n);\n return i ? t.commands.insertContent(l) : t.commands.command(({ tr: a }) => {\n const { from: c, to: d } = s, h = r.doc.textBetween(c, d, `\n`, `\n`).split(`\n`).map((p) => l + p).join(`\n`);\n return a.replaceWith(c, d, r.schema.text(h)), !0;\n });\n },\n // handle shift+tab reverse indentation\n \"Shift-Tab\": ({ editor: t }) => {\n var e;\n if (!this.options.enableTabIndentation)\n return !1;\n const n = (e = this.options.tabSize) != null ? e : yo, { state: r } = t, { selection: s } = r, { $from: o, empty: i } = s;\n return o.parent.type !== this.type ? !1 : i ? t.commands.command(({ tr: l }) => {\n var a;\n const { pos: c } = o, d = o.start(), u = o.end(), h = r.doc.textBetween(d, u, `\n`, `\n`).split(`\n`);\n let p = 0, m = 0;\n const g = c - d;\n for (let E = 0; E < h.length; E += 1) {\n if (m + h[E].length >= g) {\n p = E;\n break;\n }\n m += h[E].length + 1;\n }\n const x = ((a = h[p].match(/^ */)) == null ? void 0 : a[0]) || \"\", k = Math.min(x.length, n);\n if (k === 0)\n return !0;\n let T = d;\n for (let E = 0; E < p; E += 1)\n T += h[E].length + 1;\n return l.delete(T, T + k), c - T <= k && l.setSelection(P.create(l.doc, T)), !0;\n }) : t.commands.command(({ tr: l }) => {\n const { from: a, to: c } = s, f = r.doc.textBetween(a, c, `\n`, `\n`).split(`\n`).map((h) => {\n var p;\n const m = ((p = h.match(/^ */)) == null ? void 0 : p[0]) || \"\", g = Math.min(m.length, n);\n return h.slice(g);\n }).join(`\n`);\n return l.replaceWith(a, c, r.schema.text(f)), !0;\n });\n },\n // exit node on triple enter\n Enter: ({ editor: t }) => {\n if (!this.options.exitOnTripleEnter)\n return !1;\n const { state: e } = t, { selection: n } = e, { $from: r, empty: s } = n;\n if (!s || r.parent.type !== this.type)\n return !1;\n const o = r.parentOffset === r.parent.nodeSize - 2, i = r.parent.textContent.endsWith(`\n\n`);\n return !o || !i ? !1 : t.chain().command(({ tr: l }) => (l.delete(r.pos - 2, r.pos), !0)).exitCode().run();\n },\n // exit node on arrow down\n ArrowDown: ({ editor: t }) => {\n if (!this.options.exitOnArrowDown)\n return !1;\n const { state: e } = t, { selection: n, doc: r } = e, { $from: s, empty: o } = n;\n if (!o || s.parent.type !== this.type || !(s.parentOffset === s.parent.nodeSize - 2))\n return !1;\n const l = s.after();\n return l === void 0 ? !1 : r.nodeAt(l) ? t.commands.command(({ tr: c }) => (c.setSelection(B.near(r.resolve(l))), !0)) : t.commands.exitCode();\n }\n };\n },\n addInputRules() {\n return [\n Xo({\n find: b0,\n type: this.type,\n getAttributes: (t) => ({\n language: t[1]\n })\n }),\n Xo({\n find: k0,\n type: this.type,\n getAttributes: (t) => ({\n language: t[1]\n })\n })\n ];\n },\n addProseMirrorPlugins() {\n return [\n // this plugin creates a code block for pasted content from VS Code\n // we can also detect the copied code language\n new ee({\n key: new oe(\"codeBlockVSCodeHandler\"),\n props: {\n handlePaste: (t, e) => {\n if (!e.clipboardData || this.editor.isActive(this.type.name))\n return !1;\n const n = e.clipboardData.getData(\"text/plain\"), r = e.clipboardData.getData(\"vscode-editor-data\"), s = r ? JSON.parse(r) : void 0, o = s?.mode;\n if (!n || !o)\n return !1;\n const { tr: i, schema: l } = t.state, a = l.text(n.replace(/\\r\\n?/g, `\n`));\n return i.replaceSelectionWith(this.type.create({ language: o }, a)), i.selection.$from.parent.type !== this.type && i.setSelection(P.near(i.doc.resolve(Math.max(0, i.selection.from - 2)))), i.setMeta(\"paste\", !0), t.dispatch(i), !0;\n }\n }\n })\n ];\n }\n}), w0 = ge.create({\n name: \"doc\",\n topNode: !0,\n content: \"block+\",\n renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `\n\n`) : \"\"\n}), S0 = ge.create({\n name: \"hardBreak\",\n markdownTokenName: \"br\",\n addOptions() {\n return {\n keepMarks: !0,\n HTMLAttributes: {}\n };\n },\n inline: !0,\n group: \"inline\",\n selectable: !1,\n linebreakReplacement: !0,\n parseHTML() {\n return [{ tag: \"br\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"br\", q(this.options.HTMLAttributes, t)];\n },\n renderText() {\n return `\n`;\n },\n renderMarkdown: () => ` \n`,\n parseMarkdown: () => ({\n type: \"hardBreak\"\n }),\n addCommands() {\n return {\n setHardBreak: () => ({ commands: t, chain: e, state: n, editor: r }) => t.first([\n () => t.exitCode(),\n () => t.command(() => {\n const { selection: s, storedMarks: o } = n;\n if (s.$from.parent.type.spec.isolating)\n return !1;\n const { keepMarks: i } = this.options, { splittableMarks: l } = r.extensionManager, a = o || s.$to.parentOffset && s.$from.marks();\n return e().insertContent({ type: this.name }).command(({ tr: c, dispatch: d }) => {\n if (d && a && i) {\n const u = a.filter((f) => l.includes(f.type.name));\n c.ensureMarks(u);\n }\n return !0;\n }).run();\n })\n ])\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => this.editor.commands.setHardBreak(),\n \"Shift-Enter\": () => this.editor.commands.setHardBreak()\n };\n }\n}), C0 = ge.create({\n name: \"heading\",\n addOptions() {\n return {\n levels: [1, 2, 3, 4, 5, 6],\n HTMLAttributes: {}\n };\n },\n content: \"inline*\",\n group: \"block\",\n defining: !0,\n addAttributes() {\n return {\n level: {\n default: 1,\n rendered: !1\n }\n };\n },\n parseHTML() {\n return this.options.levels.map((t) => ({\n tag: `h${t}`,\n attrs: { level: t }\n }));\n },\n renderHTML({ node: t, HTMLAttributes: e }) {\n return [`h${this.options.levels.includes(t.attrs.level) ? t.attrs.level : this.options.levels[0]}`, q(this.options.HTMLAttributes, e), 0];\n },\n parseMarkdown: (t, e) => e.createNode(\"heading\", { level: t.depth || 1 }, e.parseInline(t.tokens || [])),\n renderMarkdown: (t, e) => {\n var n;\n const r = (n = t.attrs) != null && n.level ? parseInt(t.attrs.level, 10) : 1, s = \"#\".repeat(r);\n return t.content ? `${s} ${e.renderChildren(t.content)}` : \"\";\n },\n addCommands() {\n return {\n setHeading: (t) => ({ commands: e }) => this.options.levels.includes(t.level) ? e.setNode(this.name, t) : !1,\n toggleHeading: (t) => ({ commands: e }) => this.options.levels.includes(t.level) ? e.toggleNode(this.name, \"paragraph\", t) : !1\n };\n },\n addKeyboardShortcuts() {\n return this.options.levels.reduce(\n (t, e) => ({\n ...t,\n [`Mod-Alt-${e}`]: () => this.editor.commands.toggleHeading({ level: e })\n }),\n {}\n );\n },\n addInputRules() {\n return this.options.levels.map((t) => Xo({\n find: new RegExp(`^(#{${Math.min(...this.options.levels)},${t}})\\\\s$`),\n type: this.type,\n getAttributes: {\n level: t\n }\n }));\n }\n}), v0 = ge.create({\n name: \"horizontalRule\",\n addOptions() {\n return {\n HTMLAttributes: {},\n nextNodeType: \"paragraph\"\n };\n },\n group: \"block\",\n parseHTML() {\n return [{ tag: \"hr\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"hr\", q(this.options.HTMLAttributes, t)];\n },\n markdownTokenName: \"hr\",\n parseMarkdown: (t, e) => e.createNode(\"horizontalRule\"),\n renderMarkdown: () => \"---\",\n addCommands() {\n return {\n setHorizontalRule: () => ({ chain: t, state: e }) => {\n if (!Oy(e, e.schema.nodes[this.name]))\n return !1;\n const { selection: n } = e, { $to: r } = n, s = t();\n return iu(n) ? s.insertContentAt(r.pos, {\n type: this.name\n }) : s.insertContent({ type: this.name }), s.command(({ state: o, tr: i, dispatch: l }) => {\n if (l) {\n const { $to: a } = i.selection, c = a.end();\n if (a.nodeAfter)\n a.nodeAfter.isTextblock ? i.setSelection(P.create(i.doc, a.pos + 1)) : a.nodeAfter.isBlock ? i.setSelection(D.create(i.doc, a.pos)) : i.setSelection(P.create(i.doc, a.pos));\n else {\n const d = o.schema.nodes[this.options.nextNodeType] || a.parent.type.contentMatch.defaultType, u = d?.create();\n u && (i.insert(c, u), i.setSelection(P.create(i.doc, c + 1)));\n }\n i.scrollIntoView();\n }\n return !0;\n }).run();\n }\n };\n },\n addInputRules() {\n return [\n wu({\n find: /^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,\n type: this.type\n })\n ];\n }\n}), M0 = /(?:^|\\s)(\\*(?!\\s+\\*)((?:[^*]+))\\*(?!\\s+\\*))$/, T0 = /(?:^|\\s)(\\*(?!\\s+\\*)((?:[^*]+))\\*(?!\\s+\\*))/g, E0 = /(?:^|\\s)(_(?!\\s+_)((?:[^_]+))_(?!\\s+_))$/, A0 = /(?:^|\\s)(_(?!\\s+_)((?:[^_]+))_(?!\\s+_))/g, N0 = bt.create({\n name: \"italic\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n parseHTML() {\n return [\n {\n tag: \"em\"\n },\n {\n tag: \"i\",\n getAttrs: (t) => t.style.fontStyle !== \"normal\" && null\n },\n {\n style: \"font-style=normal\",\n clearMark: (t) => t.type.name === this.name\n },\n {\n style: \"font-style=italic\"\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"em\", q(this.options.HTMLAttributes, t), 0];\n },\n addCommands() {\n return {\n setItalic: () => ({ commands: t }) => t.setMark(this.name),\n toggleItalic: () => ({ commands: t }) => t.toggleMark(this.name),\n unsetItalic: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n markdownTokenName: \"em\",\n parseMarkdown: (t, e) => e.applyMark(\"italic\", e.parseInline(t.tokens || [])),\n renderMarkdown: (t, e) => `*${e.renderChildren(t)}*`,\n addKeyboardShortcuts() {\n return {\n \"Mod-i\": () => this.editor.commands.toggleItalic(),\n \"Mod-I\": () => this.editor.commands.toggleItalic()\n };\n },\n addInputRules() {\n return [\n sn({\n find: M0,\n type: this.type\n }),\n sn({\n find: E0,\n type: this.type\n })\n ];\n },\n addPasteRules() {\n return [\n Bt({\n find: T0,\n type: this.type\n }),\n Bt({\n find: A0,\n type: this.type\n })\n ];\n }\n});\nconst O0 = \"aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2\", R0 = \"ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2\", oi = \"numeric\", ii = \"ascii\", li = \"alpha\", Kn = \"asciinumeric\", jn = \"alphanumeric\", ai = \"domain\", _u = \"emoji\", D0 = \"scheme\", I0 = \"slashscheme\", bo = \"whitespace\";\nfunction L0(t, e) {\n return t in e || (e[t] = []), e[t];\n}\nfunction qt(t, e, n) {\n e[oi] && (e[Kn] = !0, e[jn] = !0), e[ii] && (e[Kn] = !0, e[li] = !0), e[Kn] && (e[jn] = !0), e[li] && (e[jn] = !0), e[jn] && (e[ai] = !0), e[_u] && (e[ai] = !0);\n for (const r in e) {\n const s = L0(r, n);\n s.indexOf(t) < 0 && s.push(t);\n }\n}\nfunction P0(t, e) {\n const n = {};\n for (const r in e)\n e[r].indexOf(t) >= 0 && (n[r] = !0);\n return n;\n}\nfunction Ae(t = null) {\n this.j = {}, this.jr = [], this.jd = null, this.t = t;\n}\nAe.groups = {};\nAe.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State<T>} the next state, if any\n */\n go(t) {\n const e = this, n = e.j[t];\n if (n)\n return n;\n for (let r = 0; r < e.jr.length; r++) {\n const s = e.jr[r][0], o = e.jr[r][1];\n if (o && s.test(t))\n return o;\n }\n return e.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(t, e = !1) {\n return e ? t in this.j : !!this.go(t);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition<T> | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n */\n ta(t, e, n, r) {\n for (let s = 0; s < t.length; s++)\n this.tt(t[s], e, n, r);\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n tr(t, e, n, r) {\n r = r || Ae.groups;\n let s;\n return e && e.j ? s = e : (s = new Ae(e), n && r && qt(e, n, r)), this.jr.push([t, s]), s;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n ts(t, e, n, r) {\n let s = this;\n const o = t.length;\n if (!o)\n return s;\n for (let i = 0; i < o - 1; i++)\n s = s.tt(t[i]);\n return s.tt(t[o - 1], e, n, r);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of groups\n * @returns {State<T>} taken after the given input\n */\n tt(t, e, n, r) {\n r = r || Ae.groups;\n const s = this;\n if (e && e.j)\n return s.j[t] = e, e;\n const o = e;\n let i, l = s.go(t);\n if (l ? (i = new Ae(), Object.assign(i.j, l.j), i.jr.push.apply(i.jr, l.jr), i.jd = l.jd, i.t = l.t) : i = new Ae(), o) {\n if (r)\n if (i.t && typeof i.t == \"string\") {\n const a = Object.assign(P0(i.t, r), n);\n qt(o, a, r);\n } else n && qt(o, n, r);\n i.t = o;\n }\n return s.j[t] = i, i;\n }\n};\nconst $ = (t, e, n, r, s) => t.ta(e, n, r, s), ne = (t, e, n, r, s) => t.tr(e, n, r, s), Ia = (t, e, n, r, s) => t.ts(e, n, r, s), M = (t, e, n, r, s) => t.tt(e, n, r, s), ft = \"WORD\", ci = \"UWORD\", ju = \"ASCIINUMERICAL\", Vu = \"ALPHANUMERICAL\", cr = \"LOCALHOST\", di = \"TLD\", ui = \"UTLD\", _r = \"SCHEME\", xn = \"SLASH_SCHEME\", Xi = \"NUM\", fi = \"WS\", Qi = \"NL\", qn = \"OPENBRACE\", Jn = \"CLOSEBRACE\", ns = \"OPENBRACKET\", rs = \"CLOSEBRACKET\", ss = \"OPENPAREN\", is = \"CLOSEPAREN\", ls = \"OPENANGLEBRACKET\", as = \"CLOSEANGLEBRACKET\", cs = \"FULLWIDTHLEFTPAREN\", ds = \"FULLWIDTHRIGHTPAREN\", us = \"LEFTCORNERBRACKET\", fs = \"RIGHTCORNERBRACKET\", hs = \"LEFTWHITECORNERBRACKET\", ps = \"RIGHTWHITECORNERBRACKET\", ms = \"FULLWIDTHLESSTHAN\", gs = \"FULLWIDTHGREATERTHAN\", ys = \"AMPERSAND\", bs = \"APOSTROPHE\", ks = \"ASTERISK\", Ct = \"AT\", xs = \"BACKSLASH\", ws = \"BACKTICK\", Ss = \"CARET\", Et = \"COLON\", Zi = \"COMMA\", Cs = \"DOLLAR\", Ze = \"DOT\", vs = \"EQUALS\", el = \"EXCLAMATION\", Be = \"HYPHEN\", Gn = \"PERCENT\", Ms = \"PIPE\", Ts = \"PLUS\", Es = \"POUND\", Yn = \"QUERY\", tl = \"QUOTE\", Fu = \"FULLWIDTHMIDDLEDOT\", nl = \"SEMI\", et = \"SLASH\", Xn = \"TILDE\", As = \"UNDERSCORE\", Wu = \"EMOJI\", Ns = \"SYM\";\nvar Uu = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n ALPHANUMERICAL: Vu,\n AMPERSAND: ys,\n APOSTROPHE: bs,\n ASCIINUMERICAL: ju,\n ASTERISK: ks,\n AT: Ct,\n BACKSLASH: xs,\n BACKTICK: ws,\n CARET: Ss,\n CLOSEANGLEBRACKET: as,\n CLOSEBRACE: Jn,\n CLOSEBRACKET: rs,\n CLOSEPAREN: is,\n COLON: Et,\n COMMA: Zi,\n DOLLAR: Cs,\n DOT: Ze,\n EMOJI: Wu,\n EQUALS: vs,\n EXCLAMATION: el,\n FULLWIDTHGREATERTHAN: gs,\n FULLWIDTHLEFTPAREN: cs,\n FULLWIDTHLESSTHAN: ms,\n FULLWIDTHMIDDLEDOT: Fu,\n FULLWIDTHRIGHTPAREN: ds,\n HYPHEN: Be,\n LEFTCORNERBRACKET: us,\n LEFTWHITECORNERBRACKET: hs,\n LOCALHOST: cr,\n NL: Qi,\n NUM: Xi,\n OPENANGLEBRACKET: ls,\n OPENBRACE: qn,\n OPENBRACKET: ns,\n OPENPAREN: ss,\n PERCENT: Gn,\n PIPE: Ms,\n PLUS: Ts,\n POUND: Es,\n QUERY: Yn,\n QUOTE: tl,\n RIGHTCORNERBRACKET: fs,\n RIGHTWHITECORNERBRACKET: ps,\n SCHEME: _r,\n SEMI: nl,\n SLASH: et,\n SLASH_SCHEME: xn,\n SYM: Ns,\n TILDE: Xn,\n TLD: di,\n UNDERSCORE: As,\n UTLD: ui,\n UWORD: ci,\n WORD: ft,\n WS: fi\n});\nconst at = /[a-z]/, zn = new RegExp(\"\\\\p{L}\", \"u\"), ko = new RegExp(\"\\\\p{Emoji}\", \"u\"), ct = /\\d/, xo = /\\s/, La = \"\\r\", wo = `\n`, z0 = \"️\", B0 = \"‍\", So = \"\";\nlet Er = null, Ar = null;\nfunction $0(t = []) {\n const e = {};\n Ae.groups = e;\n const n = new Ae();\n Er == null && (Er = Pa(O0)), Ar == null && (Ar = Pa(R0)), M(n, \"'\", bs), M(n, \"{\", qn), M(n, \"}\", Jn), M(n, \"[\", ns), M(n, \"]\", rs), M(n, \"(\", ss), M(n, \")\", is), M(n, \"<\", ls), M(n, \">\", as), M(n, \"(\", cs), M(n, \")\", ds), M(n, \"「\", us), M(n, \"」\", fs), M(n, \"『\", hs), M(n, \"』\", ps), M(n, \"<\", ms), M(n, \">\", gs), M(n, \"&\", ys), M(n, \"*\", ks), M(n, \"@\", Ct), M(n, \"`\", ws), M(n, \"^\", Ss), M(n, \":\", Et), M(n, \",\", Zi), M(n, \"$\", Cs), M(n, \".\", Ze), M(n, \"=\", vs), M(n, \"!\", el), M(n, \"-\", Be), M(n, \"%\", Gn), M(n, \"|\", Ms), M(n, \"+\", Ts), M(n, \"#\", Es), M(n, \"?\", Yn), M(n, '\"', tl), M(n, \"/\", et), M(n, \";\", nl), M(n, \"~\", Xn), M(n, \"_\", As), M(n, \"\\\\\", xs), M(n, \"・\", Fu);\n const r = ne(n, ct, Xi, {\n [oi]: !0\n });\n ne(r, ct, r);\n const s = ne(r, at, ju, {\n [Kn]: !0\n }), o = ne(r, zn, Vu, {\n [jn]: !0\n }), i = ne(n, at, ft, {\n [ii]: !0\n });\n ne(i, ct, s), ne(i, at, i), ne(s, ct, s), ne(s, at, s);\n const l = ne(n, zn, ci, {\n [li]: !0\n });\n ne(l, at), ne(l, ct, o), ne(l, zn, l), ne(o, ct, o), ne(o, at), ne(o, zn, o);\n const a = M(n, wo, Qi, {\n [bo]: !0\n }), c = M(n, La, fi, {\n [bo]: !0\n }), d = ne(n, xo, fi, {\n [bo]: !0\n });\n M(n, So, d), M(c, wo, a), M(c, So, d), ne(c, xo, d), M(d, La), M(d, wo), ne(d, xo, d), M(d, So, d);\n const u = ne(n, ko, Wu, {\n [_u]: !0\n });\n M(u, \"#\"), ne(u, ko, u), M(u, z0, u);\n const f = M(u, B0);\n M(f, \"#\"), ne(f, ko, u);\n const h = [[at, i], [ct, s]], p = [[at, null], [zn, l], [ct, o]];\n for (let m = 0; m < Er.length; m++)\n kt(n, Er[m], di, ft, h);\n for (let m = 0; m < Ar.length; m++)\n kt(n, Ar[m], ui, ci, p);\n qt(di, {\n tld: !0,\n ascii: !0\n }, e), qt(ui, {\n utld: !0,\n alpha: !0\n }, e), kt(n, \"file\", _r, ft, h), kt(n, \"mailto\", _r, ft, h), kt(n, \"http\", xn, ft, h), kt(n, \"https\", xn, ft, h), kt(n, \"ftp\", xn, ft, h), kt(n, \"ftps\", xn, ft, h), qt(_r, {\n scheme: !0,\n ascii: !0\n }, e), qt(xn, {\n slashscheme: !0,\n ascii: !0\n }, e), t = t.sort((m, g) => m[0] > g[0] ? 1 : -1);\n for (let m = 0; m < t.length; m++) {\n const g = t[m][0], x = t[m][1] ? {\n [D0]: !0\n } : {\n [I0]: !0\n };\n g.indexOf(\"-\") >= 0 ? x[ai] = !0 : at.test(g) ? ct.test(g) ? x[Kn] = !0 : x[ii] = !0 : x[oi] = !0, Ia(n, g, g, x);\n }\n return Ia(n, \"localhost\", cr, {\n ascii: !0\n }), n.jd = new Ae(Ns), {\n start: n,\n tokens: Object.assign({\n groups: e\n }, Uu)\n };\n}\nfunction Ku(t, e) {\n const n = H0(e.replace(/[A-Z]/g, (l) => l.toLowerCase())), r = n.length, s = [];\n let o = 0, i = 0;\n for (; i < r; ) {\n let l = t, a = null, c = 0, d = null, u = -1, f = -1;\n for (; i < r && (a = l.go(n[i])); )\n l = a, l.accepts() ? (u = 0, f = 0, d = l) : u >= 0 && (u += n[i].length, f++), c += n[i].length, o += n[i].length, i++;\n o -= u, i -= f, c -= u, s.push({\n t: d.t,\n // token type/name\n v: e.slice(o - c, o),\n // string value\n s: o - c,\n // start index\n e: o\n // end index (excluding)\n });\n }\n return s;\n}\nfunction H0(t) {\n const e = [], n = t.length;\n let r = 0;\n for (; r < n; ) {\n let s = t.charCodeAt(r), o, i = s < 55296 || s > 56319 || r + 1 === n || (o = t.charCodeAt(r + 1)) < 56320 || o > 57343 ? t[r] : t.slice(r, r + 2);\n e.push(i), r += i.length;\n }\n return e;\n}\nfunction kt(t, e, n, r, s) {\n let o;\n const i = e.length;\n for (let l = 0; l < i - 1; l++) {\n const a = e[l];\n t.j[a] ? o = t.j[a] : (o = new Ae(r), o.jr = s.slice(), t.j[a] = o), t = o;\n }\n return o = new Ae(n), o.jr = s.slice(), t.j[e[i - 1]] = o, o;\n}\nfunction Pa(t) {\n const e = [], n = [];\n let r = 0, s = \"0123456789\";\n for (; r < t.length; ) {\n let o = 0;\n for (; s.indexOf(t[r + o]) >= 0; )\n o++;\n if (o > 0) {\n e.push(n.join(\"\"));\n for (let i = parseInt(t.substring(r, r + o), 10); i > 0; i--)\n n.pop();\n r += o;\n } else\n n.push(t[r]), r++;\n }\n return e;\n}\nconst dr = {\n defaultProtocol: \"http\",\n events: null,\n format: za,\n formatHref: za,\n nl2br: !1,\n tagName: \"a\",\n target: null,\n rel: null,\n validate: !0,\n truncate: 1 / 0,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\nfunction rl(t, e = null) {\n let n = Object.assign({}, dr);\n t && (n = Object.assign(n, t instanceof rl ? t.o : t));\n const r = n.ignoreTags, s = [];\n for (let o = 0; o < r.length; o++)\n s.push(r[o].toUpperCase());\n this.o = n, e && (this.defaultRender = e), this.ignoreTags = s;\n}\nrl.prototype = {\n o: dr,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(t) {\n return t;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(t) {\n return this.get(\"validate\", t.toString(), t);\n },\n // Private methods\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(t, e, n) {\n const r = e != null;\n let s = this.o[t];\n return s && (typeof s == \"object\" ? (s = n.t in s ? s[n.t] : dr[t], typeof s == \"function\" && r && (s = s(e, n))) : typeof s == \"function\" && r && (s = s(e, n.t, n)), s);\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(t, e, n) {\n let r = this.o[t];\n return typeof r == \"function\" && e != null && (r = r(e, n.t, n)), r;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(t) {\n const e = t.render(this);\n return (this.get(\"render\", null, t) || this.defaultRender)(e, t.t, t);\n }\n};\nfunction za(t) {\n return t;\n}\nfunction qu(t, e) {\n this.t = \"token\", this.v = t, this.tk = e;\n}\nqu.prototype = {\n isLink: !1,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(t) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(t) {\n const e = this.toString(), n = t.get(\"truncate\", e, this), r = t.get(\"format\", e, this);\n return n && r.length > n ? r.substring(0, n) + \"…\" : r;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(t) {\n return t.get(\"formatHref\", this.toHref(t.get(\"defaultProtocol\")), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(t = dr.defaultProtocol) {\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(t),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(t) {\n return {\n type: this.t,\n value: this.toFormattedString(t),\n isLink: this.isLink,\n href: this.toFormattedHref(t),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(t) {\n return t.get(\"validate\", this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(t) {\n const e = this, n = this.toHref(t.get(\"defaultProtocol\")), r = t.get(\"formatHref\", n, this), s = t.get(\"tagName\", n, e), o = this.toFormattedString(t), i = {}, l = t.get(\"className\", n, e), a = t.get(\"target\", n, e), c = t.get(\"rel\", n, e), d = t.getObj(\"attributes\", n, e), u = t.getObj(\"events\", n, e);\n return i.href = r, l && (i.class = l), a && (i.target = a), c && (i.rel = c), d && Object.assign(i, d), {\n tagName: s,\n attributes: i,\n content: o,\n eventListeners: u\n };\n }\n};\nfunction Ys(t, e) {\n class n extends qu {\n constructor(s, o) {\n super(s, o), this.t = t;\n }\n }\n for (const r in e)\n n.prototype[r] = e[r];\n return n.t = t, n;\n}\nconst Ba = Ys(\"email\", {\n isLink: !0,\n toHref() {\n return \"mailto:\" + this.toString();\n }\n}), $a = Ys(\"text\"), _0 = Ys(\"nl\"), Nr = Ys(\"url\", {\n isLink: !0,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(t = dr.defaultProtocol) {\n return this.hasProtocol() ? this.v : `${t}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const t = this.tk;\n return t.length >= 2 && t[0].t !== cr && t[1].t === Et;\n }\n}), ze = (t) => new Ae(t);\nfunction j0({\n groups: t\n}) {\n const e = t.domain.concat([ys, ks, Ct, xs, ws, Ss, Cs, vs, Be, Xi, Gn, Ms, Ts, Es, et, Ns, Xn, As]), n = [bs, Et, Zi, Ze, el, Gn, Yn, tl, nl, ls, as, qn, Jn, rs, ns, ss, is, cs, ds, us, fs, hs, ps, ms, gs], r = [ys, bs, ks, xs, ws, Ss, Cs, vs, Be, qn, Jn, Gn, Ms, Ts, Es, Yn, et, Ns, Xn, As], s = ze(), o = M(s, Xn);\n $(o, r, o), $(o, t.domain, o);\n const i = ze(), l = ze(), a = ze();\n $(s, t.domain, i), $(s, t.scheme, l), $(s, t.slashscheme, a), $(i, r, o), $(i, t.domain, i);\n const c = M(i, Ct);\n M(o, Ct, c), M(l, Ct, c), M(a, Ct, c);\n const d = M(o, Ze);\n $(d, r, o), $(d, t.domain, o);\n const u = ze();\n $(c, t.domain, u), $(u, t.domain, u);\n const f = M(u, Ze);\n $(f, t.domain, u);\n const h = ze(Ba);\n $(f, t.tld, h), $(f, t.utld, h), M(c, cr, h);\n const p = M(u, Be);\n M(p, Be, p), $(p, t.domain, u), $(h, t.domain, u), M(h, Ze, f), M(h, Be, p);\n const m = M(h, Et);\n $(m, t.numeric, Ba);\n const g = M(i, Be), y = M(i, Ze);\n M(g, Be, g), $(g, t.domain, i), $(y, r, o), $(y, t.domain, i);\n const x = ze(Nr);\n $(y, t.tld, x), $(y, t.utld, x), $(x, t.domain, i), $(x, r, o), M(x, Ze, y), M(x, Be, g), M(x, Ct, c);\n const k = M(x, Et), T = ze(Nr);\n $(k, t.numeric, T);\n const b = ze(Nr), E = ze();\n $(b, e, b), $(b, n, E), $(E, e, b), $(E, n, E), M(x, et, b), M(T, et, b);\n const S = M(l, Et), C = M(a, Et), L = M(C, et), W = M(L, et);\n $(l, t.domain, i), M(l, Ze, y), M(l, Be, g), $(a, t.domain, i), M(a, Ze, y), M(a, Be, g), $(S, t.domain, b), M(S, et, b), M(S, Yn, b), $(W, t.domain, b), $(W, e, b), M(W, et, b);\n const z = [\n [qn, Jn],\n // {}\n [ns, rs],\n // []\n [ss, is],\n // ()\n [ls, as],\n // <>\n [cs, ds],\n // ()\n [us, fs],\n // 「」\n [hs, ps],\n // 『』\n [ms, gs]\n // <>\n ];\n for (let U = 0; U < z.length; U++) {\n const [ue, X] = z[U], _ = M(b, ue);\n M(E, ue, _), M(_, X, b);\n const J = ze(Nr);\n $(_, e, J);\n const te = ze();\n $(_, n), $(J, e, J), $(J, n, te), $(te, e, J), $(te, n, te), M(J, X, b), M(te, X, b);\n }\n return M(s, cr, x), M(s, Qi, _0), {\n start: s,\n tokens: Uu\n };\n}\nfunction V0(t, e, n) {\n let r = n.length, s = 0, o = [], i = [];\n for (; s < r; ) {\n let l = t, a = null, c = null, d = 0, u = null, f = -1;\n for (; s < r && !(a = l.go(n[s].t)); )\n i.push(n[s++]);\n for (; s < r && (c = a || l.go(n[s].t)); )\n a = null, l = c, l.accepts() ? (f = 0, u = l) : f >= 0 && f++, s++, d++;\n if (f < 0)\n s -= d, s < r && (i.push(n[s]), s++);\n else {\n i.length > 0 && (o.push(Co($a, e, i)), i = []), s -= f, d -= f;\n const h = u.t, p = n.slice(s - d, s);\n o.push(Co(h, e, p));\n }\n }\n return i.length > 0 && o.push(Co($a, e, i)), o;\n}\nfunction Co(t, e, n) {\n const r = n[0].s, s = n[n.length - 1].e, o = e.slice(r, s);\n return new t(o, n);\n}\nconst F0 = typeof console < \"u\" && console && console.warn || (() => {\n}), W0 = \"until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.\", Z = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: !1\n};\nfunction U0() {\n return Ae.groups = {}, Z.scanner = null, Z.parser = null, Z.tokenQueue = [], Z.pluginQueue = [], Z.customSchemes = [], Z.initialized = !1, Z;\n}\nfunction Ha(t, e = !1) {\n if (Z.initialized && F0(`linkifyjs: already initialized - will not register custom scheme \"${t}\" ${W0}`), !/^[0-9a-z]+(-[0-9a-z]+)*$/.test(t))\n throw new Error(`linkifyjs: incorrect scheme format.\n1. Must only contain digits, lowercase ASCII letters or \"-\"\n2. Cannot start or end with \"-\"\n3. \"-\" cannot repeat`);\n Z.customSchemes.push([t, e]);\n}\nfunction K0() {\n Z.scanner = $0(Z.customSchemes);\n for (let t = 0; t < Z.tokenQueue.length; t++)\n Z.tokenQueue[t][1]({\n scanner: Z.scanner\n });\n Z.parser = j0(Z.scanner.tokens);\n for (let t = 0; t < Z.pluginQueue.length; t++)\n Z.pluginQueue[t][1]({\n scanner: Z.scanner,\n parser: Z.parser\n });\n return Z.initialized = !0, Z;\n}\nfunction sl(t) {\n return Z.initialized || K0(), V0(Z.parser.start, t, Ku(Z.scanner.start, t));\n}\nsl.scan = Ku;\nfunction Ju(t, e = null, n = null) {\n if (e && typeof e == \"object\") {\n if (n)\n throw Error(`linkifyjs: Invalid link type ${e}; must be a string`);\n n = e, e = null;\n }\n const r = new rl(n), s = sl(t), o = [];\n for (let i = 0; i < s.length; i++) {\n const l = s[i];\n l.isLink && (!e || l.t === e) && r.check(l) && o.push(l.toFormattedObject(r));\n }\n return o;\n}\nvar ol = \"[\\0-   ᠎ -\\u2029  ]\", q0 = new RegExp(ol), J0 = new RegExp(`${ol}$`), G0 = new RegExp(ol, \"g\");\nfunction Y0(t) {\n return t.length === 1 ? t[0].isLink : t.length === 3 && t[1].isLink ? [\"()\", \"[]\"].includes(t[0].value + t[2].value) : !1;\n}\nfunction X0(t) {\n return new ee({\n key: new oe(\"autolink\"),\n appendTransaction: (e, n, r) => {\n const s = e.some((c) => c.docChanged) && !n.doc.eq(r.doc), o = e.some((c) => c.getMeta(\"preventAutolink\"));\n if (!s || o)\n return;\n const { tr: i } = r, l = Xd(n.doc, [...e]);\n if (ou(l).forEach(({ newRange: c }) => {\n const d = Dg(r.doc, c, (h) => h.isTextblock);\n let u, f;\n if (d.length > 1)\n u = d[0], f = r.doc.textBetween(\n u.pos,\n u.pos + u.node.nodeSize,\n void 0,\n \" \"\n );\n else if (d.length) {\n const h = r.doc.textBetween(c.from, c.to, \" \", \" \");\n if (!J0.test(h))\n return;\n u = d[0], f = r.doc.textBetween(u.pos, c.to, void 0, \" \");\n }\n if (u && f) {\n const h = f.split(q0).filter(Boolean);\n if (h.length <= 0)\n return !1;\n const p = h[h.length - 1], m = u.pos + f.lastIndexOf(p);\n if (!p)\n return !1;\n const g = sl(p).map((y) => y.toObject(t.defaultProtocol));\n if (!Y0(g))\n return !1;\n g.filter((y) => y.isLink).map((y) => ({\n ...y,\n from: m + y.start + 1,\n to: m + y.end + 1\n })).filter((y) => r.schema.marks.code ? !r.doc.rangeHasMark(y.from, y.to, r.schema.marks.code) : !0).filter((y) => t.validate(y.value)).filter((y) => t.shouldAutoLink(y.value)).forEach((y) => {\n Ui(y.from, y.to, r.doc).some((x) => x.mark.type === t.type) || i.addMark(\n y.from,\n y.to,\n t.type.create({\n href: y.href\n })\n );\n });\n }\n }), !!i.steps.length)\n return i;\n }\n });\n}\nfunction Q0(t) {\n return new ee({\n key: new oe(\"handleClickLink\"),\n props: {\n handleClick: (e, n, r) => {\n var s, o;\n if (r.button !== 0 || !e.editable)\n return !1;\n let i = null;\n if (r.target instanceof HTMLAnchorElement)\n i = r.target;\n else {\n let d = r.target;\n const u = [];\n for (; d.nodeName !== \"DIV\"; )\n u.push(d), d = d.parentNode;\n i = u.find((f) => f.nodeName === \"A\");\n }\n if (!i)\n return !1;\n const l = su(e.state, t.type.name), a = (s = i?.href) != null ? s : l.href, c = (o = i?.target) != null ? o : l.target;\n return t.enableClickSelection && t.editor.commands.extendMarkRange(t.type.name), i && a ? (window.open(a, c), !0) : !1;\n }\n }\n });\n}\nfunction Z0(t) {\n return new ee({\n key: new oe(\"handlePasteLink\"),\n props: {\n handlePaste: (e, n, r) => {\n const { shouldAutoLink: s } = t, { state: o } = e, { selection: i } = o, { empty: l } = i;\n if (l)\n return !1;\n let a = \"\";\n r.content.forEach((d) => {\n a += d.textContent;\n });\n const c = Ju(a, { defaultProtocol: t.defaultProtocol }).find(\n (d) => d.isLink && d.value === a\n );\n return !a || !c || s !== void 0 && !s(c.href) ? !1 : t.editor.commands.setMark(t.type, {\n href: c.href\n });\n }\n }\n });\n}\nfunction jt(t, e) {\n const n = [\"http\", \"https\", \"ftp\", \"ftps\", \"mailto\", \"tel\", \"callto\", \"sms\", \"cid\", \"xmpp\"];\n return e && e.forEach((r) => {\n const s = typeof r == \"string\" ? r : r.scheme;\n s && n.push(s);\n }), !t || t.replace(G0, \"\").match(\n new RegExp(\n // eslint-disable-next-line no-useless-escape\n `^(?:(?:${n.join(\"|\")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,\n \"i\"\n )\n );\n}\nvar e1 = bt.create({\n name: \"link\",\n priority: 1e3,\n keepOnSplit: !1,\n exitable: !0,\n onCreate() {\n this.options.validate && !this.options.shouldAutoLink && (this.options.shouldAutoLink = this.options.validate, console.warn(\"The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.\")), this.options.protocols.forEach((t) => {\n if (typeof t == \"string\") {\n Ha(t);\n return;\n }\n Ha(t.scheme, t.optionalSlashes);\n });\n },\n onDestroy() {\n U0();\n },\n inclusive() {\n return this.options.autolink;\n },\n addOptions() {\n return {\n openOnClick: !0,\n enableClickSelection: !1,\n linkOnPaste: !0,\n autolink: !0,\n protocols: [],\n defaultProtocol: \"http\",\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer nofollow\",\n class: null\n },\n isAllowedUri: (t, e) => !!jt(t, e.protocols),\n validate: (t) => !!t,\n shouldAutoLink: (t) => !!t\n };\n },\n addAttributes() {\n return {\n href: {\n default: null,\n parseHTML(t) {\n return t.getAttribute(\"href\");\n }\n },\n target: {\n default: this.options.HTMLAttributes.target\n },\n rel: {\n default: this.options.HTMLAttributes.rel\n },\n class: {\n default: this.options.HTMLAttributes.class\n }\n };\n },\n parseHTML() {\n return [\n {\n tag: \"a[href]\",\n getAttrs: (t) => {\n const e = t.getAttribute(\"href\");\n return !e || !this.options.isAllowedUri(e, {\n defaultValidate: (n) => !!jt(n, this.options.protocols),\n protocols: this.options.protocols,\n defaultProtocol: this.options.defaultProtocol\n }) ? !1 : null;\n }\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return this.options.isAllowedUri(t.href, {\n defaultValidate: (e) => !!jt(e, this.options.protocols),\n protocols: this.options.protocols,\n defaultProtocol: this.options.defaultProtocol\n }) ? [\"a\", q(this.options.HTMLAttributes, t), 0] : [\"a\", q(this.options.HTMLAttributes, { ...t, href: \"\" }), 0];\n },\n markdownTokenName: \"link\",\n parseMarkdown: (t, e) => e.applyMark(\"link\", e.parseInline(t.tokens || []), {\n href: t.href,\n title: t.title || null\n }),\n renderMarkdown: (t, e) => {\n var n;\n const r = ((n = t.attrs) == null ? void 0 : n.href) || \"\";\n return `[${e.renderChildren(t)}](${r})`;\n },\n addCommands() {\n return {\n setLink: (t) => ({ chain: e }) => {\n const { href: n } = t;\n return this.options.isAllowedUri(n, {\n defaultValidate: (r) => !!jt(r, this.options.protocols),\n protocols: this.options.protocols,\n defaultProtocol: this.options.defaultProtocol\n }) ? e().setMark(this.name, t).setMeta(\"preventAutolink\", !0).run() : !1;\n },\n toggleLink: (t) => ({ chain: e }) => {\n const { href: n } = t || {};\n return n && !this.options.isAllowedUri(n, {\n defaultValidate: (r) => !!jt(r, this.options.protocols),\n protocols: this.options.protocols,\n defaultProtocol: this.options.defaultProtocol\n }) ? !1 : e().toggleMark(this.name, t, { extendEmptyMarkRange: !0 }).setMeta(\"preventAutolink\", !0).run();\n },\n unsetLink: () => ({ chain: t }) => t().unsetMark(this.name, { extendEmptyMarkRange: !0 }).setMeta(\"preventAutolink\", !0).run()\n };\n },\n addPasteRules() {\n return [\n Bt({\n find: (t) => {\n const e = [];\n if (t) {\n const { protocols: n, defaultProtocol: r } = this.options, s = Ju(t).filter(\n (o) => o.isLink && this.options.isAllowedUri(o.value, {\n defaultValidate: (i) => !!jt(i, n),\n protocols: n,\n defaultProtocol: r\n })\n );\n s.length && s.forEach((o) => {\n this.options.shouldAutoLink(o.value) && e.push({\n text: o.value,\n data: {\n href: o.href\n },\n index: o.start\n });\n });\n }\n return e;\n },\n type: this.type,\n getAttributes: (t) => {\n var e;\n return {\n href: (e = t.data) == null ? void 0 : e.href\n };\n }\n })\n ];\n },\n addProseMirrorPlugins() {\n const t = [], { protocols: e, defaultProtocol: n } = this.options;\n return this.options.autolink && t.push(\n X0({\n type: this.type,\n defaultProtocol: this.options.defaultProtocol,\n validate: (r) => this.options.isAllowedUri(r, {\n defaultValidate: (s) => !!jt(s, e),\n protocols: e,\n defaultProtocol: n\n }),\n shouldAutoLink: this.options.shouldAutoLink\n })\n ), this.options.openOnClick === !0 && t.push(\n Q0({\n type: this.type,\n editor: this.editor,\n enableClickSelection: this.options.enableClickSelection\n })\n ), this.options.linkOnPaste && t.push(\n Z0({\n editor: this.editor,\n defaultProtocol: this.options.defaultProtocol,\n type: this.type,\n shouldAutoLink: this.options.shouldAutoLink\n })\n ), t;\n }\n}), t1 = Object.defineProperty, n1 = (t, e) => {\n for (var n in e)\n t1(t, n, { get: e[n], enumerable: !0 });\n}, r1 = \"listItem\", _a = \"textStyle\", ja = /^\\s*([-+*])\\s$/, Gu = ge.create({\n name: \"bulletList\",\n addOptions() {\n return {\n itemTypeName: \"listItem\",\n HTMLAttributes: {},\n keepMarks: !1,\n keepAttributes: !1\n };\n },\n group: \"block list\",\n content() {\n return `${this.options.itemTypeName}+`;\n },\n parseHTML() {\n return [{ tag: \"ul\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"ul\", q(this.options.HTMLAttributes, t), 0];\n },\n markdownTokenName: \"list\",\n parseMarkdown: (t, e) => t.type !== \"list\" || t.ordered ? [] : {\n type: \"bulletList\",\n content: t.items ? e.parseChildren(t.items) : []\n },\n renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `\n`) : \"\",\n markdownOptions: {\n indentsContent: !0\n },\n addCommands() {\n return {\n toggleBulletList: () => ({ commands: t, chain: e }) => this.options.keepAttributes ? e().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(r1, this.editor.getAttributes(_a)).run() : t.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-8\": () => this.editor.commands.toggleBulletList()\n };\n },\n addInputRules() {\n let t = On({\n find: ja,\n type: this.type\n });\n return (this.options.keepMarks || this.options.keepAttributes) && (t = On({\n find: ja,\n type: this.type,\n keepMarks: this.options.keepMarks,\n keepAttributes: this.options.keepAttributes,\n getAttributes: () => this.editor.getAttributes(_a),\n editor: this.editor\n })), [t];\n }\n}), Yu = ge.create({\n name: \"listItem\",\n addOptions() {\n return {\n HTMLAttributes: {},\n bulletListTypeName: \"bulletList\",\n orderedListTypeName: \"orderedList\"\n };\n },\n content: \"paragraph block*\",\n defining: !0,\n parseHTML() {\n return [\n {\n tag: \"li\"\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"li\", q(this.options.HTMLAttributes, t), 0];\n },\n markdownTokenName: \"list_item\",\n parseMarkdown: (t, e) => {\n if (t.type !== \"list_item\")\n return [];\n let n = [];\n if (t.tokens && t.tokens.length > 0)\n if (t.tokens.some((s) => s.type === \"paragraph\"))\n n = e.parseChildren(t.tokens);\n else {\n const s = t.tokens[0];\n if (s && s.type === \"text\" && s.tokens && s.tokens.length > 0) {\n if (n = [\n {\n type: \"paragraph\",\n content: e.parseInline(s.tokens)\n }\n ], t.tokens.length > 1) {\n const i = t.tokens.slice(1), l = e.parseChildren(i);\n n.push(...l);\n }\n } else\n n = e.parseChildren(t.tokens);\n }\n return n.length === 0 && (n = [\n {\n type: \"paragraph\",\n content: []\n }\n ]), {\n type: \"listItem\",\n content: n\n };\n },\n renderMarkdown: (t, e, n) => Gi(\n t,\n e,\n (r) => r.parentType === \"bulletList\" ? \"- \" : r.parentType === \"orderedList\" ? `${r.index + 1}. ` : \"- \",\n n\n ),\n addKeyboardShortcuts() {\n return {\n Enter: () => this.editor.commands.splitListItem(this.name),\n Tab: () => this.editor.commands.sinkListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name)\n };\n }\n}), s1 = {};\nn1(s1, {\n findListItemPos: () => pr,\n getNextListDepth: () => il,\n handleBackspace: () => hi,\n handleDelete: () => pi,\n hasListBefore: () => Xu,\n hasListItemAfter: () => o1,\n hasListItemBefore: () => Qu,\n listItemHasSubList: () => Zu,\n nextListIsDeeper: () => ef,\n nextListIsHigher: () => tf\n});\nvar pr = (t, e) => {\n const { $from: n } = e.selection, r = ae(t, e.schema);\n let s = null, o = n.depth, i = n.pos, l = null;\n for (; o > 0 && l === null; )\n s = n.node(o), s.type === r ? l = o : (o -= 1, i -= 1);\n return l === null ? null : { $pos: e.doc.resolve(i), depth: l };\n}, il = (t, e) => {\n const n = pr(t, e);\n if (!n)\n return !1;\n const [, r] = jg(e, t, n.$pos.pos + 4);\n return r;\n}, Xu = (t, e, n) => {\n const { $anchor: r } = t.selection, s = Math.max(0, r.pos - 2), o = t.doc.resolve(s).node();\n return !(!o || !n.includes(o.type.name));\n}, Qu = (t, e) => {\n var n;\n const { $anchor: r } = e.selection, s = e.doc.resolve(r.pos - 2);\n return !(s.index() === 0 || ((n = s.nodeBefore) == null ? void 0 : n.type.name) !== t);\n}, Zu = (t, e, n) => {\n if (!n)\n return !1;\n const r = ae(t, e.schema);\n let s = !1;\n return n.descendants((o) => {\n o.type === r && (s = !0);\n }), s;\n}, hi = (t, e, n) => {\n if (t.commands.undoInputRule())\n return !0;\n if (t.state.selection.from !== t.state.selection.to)\n return !1;\n if (!zt(t.state, e) && Xu(t.state, e, n)) {\n const { $anchor: l } = t.state.selection, a = t.state.doc.resolve(l.before() - 1), c = [];\n a.node().descendants((f, h) => {\n f.type.name === e && c.push({ node: f, pos: h });\n });\n const d = c.at(-1);\n if (!d)\n return !1;\n const u = t.state.doc.resolve(a.start() + d.pos + 1);\n return t.chain().cut({ from: l.start() - 1, to: l.end() + 1 }, u.end()).joinForward().run();\n }\n if (!zt(t.state, e) || !Ug(t.state))\n return !1;\n const r = pr(e, t.state);\n if (!r)\n return !1;\n const o = t.state.doc.resolve(r.$pos.pos - 2).node(r.depth), i = Zu(e, t.state, o);\n return Qu(e, t.state) && !i ? t.commands.joinItemBackward() : t.chain().liftListItem(e).run();\n}, ef = (t, e) => {\n const n = il(t, e), r = pr(t, e);\n return !r || !n ? !1 : n > r.depth;\n}, tf = (t, e) => {\n const n = il(t, e), r = pr(t, e);\n return !r || !n ? !1 : n < r.depth;\n}, pi = (t, e) => {\n if (!zt(t.state, e) || !Wg(t.state, e))\n return !1;\n const { selection: n } = t.state, { $from: r, $to: s } = n;\n return !n.empty && r.sameParent(s) ? !1 : ef(e, t.state) ? t.chain().focus(t.state.selection.from + 4).lift(e).joinBackward().run() : tf(e, t.state) ? t.chain().joinForward().joinBackward().run() : t.commands.joinItemForward();\n}, o1 = (t, e) => {\n var n;\n const { $anchor: r } = e.selection, s = e.doc.resolve(r.pos - r.parentOffset - 2);\n return !(s.index() === s.parent.childCount - 1 || ((n = s.nodeAfter) == null ? void 0 : n.type.name) !== t);\n}, nf = F.create({\n name: \"listKeymap\",\n addOptions() {\n return {\n listTypes: [\n {\n itemName: \"listItem\",\n wrapperNames: [\"bulletList\", \"orderedList\"]\n },\n {\n itemName: \"taskItem\",\n wrapperNames: [\"taskList\"]\n }\n ]\n };\n },\n addKeyboardShortcuts() {\n return {\n Delete: ({ editor: t }) => {\n let e = !1;\n return this.options.listTypes.forEach(({ itemName: n }) => {\n t.state.schema.nodes[n] !== void 0 && pi(t, n) && (e = !0);\n }), e;\n },\n \"Mod-Delete\": ({ editor: t }) => {\n let e = !1;\n return this.options.listTypes.forEach(({ itemName: n }) => {\n t.state.schema.nodes[n] !== void 0 && pi(t, n) && (e = !0);\n }), e;\n },\n Backspace: ({ editor: t }) => {\n let e = !1;\n return this.options.listTypes.forEach(({ itemName: n, wrapperNames: r }) => {\n t.state.schema.nodes[n] !== void 0 && hi(t, n, r) && (e = !0);\n }), e;\n },\n \"Mod-Backspace\": ({ editor: t }) => {\n let e = !1;\n return this.options.listTypes.forEach(({ itemName: n, wrapperNames: r }) => {\n t.state.schema.nodes[n] !== void 0 && hi(t, n, r) && (e = !0);\n }), e;\n }\n };\n }\n}), Va = /^(\\s*)(\\d+)\\.\\s+(.*)$/, i1 = /^\\s/;\nfunction l1(t) {\n const e = [];\n let n = 0, r = 0;\n for (; n < t.length; ) {\n const s = t[n], o = s.match(Va);\n if (!o)\n break;\n const [, i, l, a] = o, c = i.length;\n let d = a, u = n + 1;\n const f = [s];\n for (; u < t.length; ) {\n const h = t[u];\n if (h.match(Va))\n break;\n if (h.trim() === \"\")\n f.push(h), d += `\n`, u += 1;\n else if (h.match(i1))\n f.push(h), d += `\n${h.slice(c + 2)}`, u += 1;\n else\n break;\n }\n e.push({\n indent: c,\n number: parseInt(l, 10),\n content: d.trim(),\n raw: f.join(`\n`)\n }), r = u, n = u;\n }\n return [e, r];\n}\nfunction rf(t, e, n) {\n var r;\n const s = [];\n let o = 0;\n for (; o < t.length; ) {\n const i = t[o];\n if (i.indent === e) {\n const l = i.content.split(`\n`), a = ((r = l[0]) == null ? void 0 : r.trim()) || \"\", c = [];\n a && c.push({\n type: \"paragraph\",\n raw: a,\n tokens: n.inlineTokens(a)\n });\n const d = l.slice(1).join(`\n`).trim();\n if (d) {\n const h = n.blockTokens(d);\n c.push(...h);\n }\n let u = o + 1;\n const f = [];\n for (; u < t.length && t[u].indent > e; )\n f.push(t[u]), u += 1;\n if (f.length > 0) {\n const h = Math.min(...f.map((m) => m.indent)), p = rf(f, h, n);\n c.push({\n type: \"list\",\n ordered: !0,\n start: f[0].number,\n items: p,\n raw: f.map((m) => m.raw).join(`\n`)\n });\n }\n s.push({\n type: \"list_item\",\n raw: i.raw,\n tokens: c\n }), o = u;\n } else\n o += 1;\n }\n return s;\n}\nfunction a1(t, e) {\n return t.map((n) => {\n if (n.type !== \"list_item\")\n return e.parseChildren([n])[0];\n const r = [];\n return n.tokens && n.tokens.length > 0 && n.tokens.forEach((s) => {\n if (s.type === \"paragraph\" || s.type === \"list\" || s.type === \"blockquote\" || s.type === \"code\")\n r.push(...e.parseChildren([s]));\n else if (s.type === \"text\" && s.tokens) {\n const o = e.parseChildren([s]);\n r.push({\n type: \"paragraph\",\n content: o\n });\n } else {\n const o = e.parseChildren([s]);\n o.length > 0 && r.push(...o);\n }\n }), {\n type: \"listItem\",\n content: r\n };\n });\n}\nvar c1 = \"listItem\", Fa = \"textStyle\", Wa = /^(\\d+)\\.\\s$/, sf = ge.create({\n name: \"orderedList\",\n addOptions() {\n return {\n itemTypeName: \"listItem\",\n HTMLAttributes: {},\n keepMarks: !1,\n keepAttributes: !1\n };\n },\n group: \"block list\",\n content() {\n return `${this.options.itemTypeName}+`;\n },\n addAttributes() {\n return {\n start: {\n default: 1,\n parseHTML: (t) => t.hasAttribute(\"start\") ? parseInt(t.getAttribute(\"start\") || \"\", 10) : 1\n },\n type: {\n default: null,\n parseHTML: (t) => t.getAttribute(\"type\")\n }\n };\n },\n parseHTML() {\n return [\n {\n tag: \"ol\"\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n const { start: e, ...n } = t;\n return e === 1 ? [\"ol\", q(this.options.HTMLAttributes, n), 0] : [\"ol\", q(this.options.HTMLAttributes, t), 0];\n },\n markdownTokenName: \"list\",\n parseMarkdown: (t, e) => {\n if (t.type !== \"list\" || !t.ordered)\n return [];\n const n = t.start || 1, r = t.items ? a1(t.items, e) : [];\n return n !== 1 ? {\n type: \"orderedList\",\n attrs: { start: n },\n content: r\n } : {\n type: \"orderedList\",\n content: r\n };\n },\n renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `\n`) : \"\",\n markdownTokenizer: {\n name: \"orderedList\",\n level: \"block\",\n start: (t) => {\n const e = t.match(/^(\\s*)(\\d+)\\.\\s+/), n = e?.index;\n return n !== void 0 ? n : -1;\n },\n tokenize: (t, e, n) => {\n var r;\n const s = t.split(`\n`), [o, i] = l1(s);\n if (o.length === 0)\n return;\n const l = rf(o, 0, n);\n return l.length === 0 ? void 0 : {\n type: \"list\",\n ordered: !0,\n start: ((r = o[0]) == null ? void 0 : r.number) || 1,\n items: l,\n raw: s.slice(0, i).join(`\n`)\n };\n }\n },\n markdownOptions: {\n indentsContent: !0\n },\n addCommands() {\n return {\n toggleOrderedList: () => ({ commands: t, chain: e }) => this.options.keepAttributes ? e().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(c1, this.editor.getAttributes(Fa)).run() : t.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-7\": () => this.editor.commands.toggleOrderedList()\n };\n },\n addInputRules() {\n let t = On({\n find: Wa,\n type: this.type,\n getAttributes: (e) => ({ start: +e[1] }),\n joinPredicate: (e, n) => n.childCount + n.attrs.start === +e[1]\n });\n return (this.options.keepMarks || this.options.keepAttributes) && (t = On({\n find: Wa,\n type: this.type,\n keepMarks: this.options.keepMarks,\n keepAttributes: this.options.keepAttributes,\n getAttributes: (e) => ({ start: +e[1], ...this.editor.getAttributes(Fa) }),\n joinPredicate: (e, n) => n.childCount + n.attrs.start === +e[1],\n editor: this.editor\n })), [t];\n }\n}), d1 = /^\\s*(\\[([( |x])?\\])\\s$/, u1 = ge.create({\n name: \"taskItem\",\n addOptions() {\n return {\n nested: !1,\n HTMLAttributes: {},\n taskListTypeName: \"taskList\",\n a11y: void 0\n };\n },\n content() {\n return this.options.nested ? \"paragraph block*\" : \"paragraph+\";\n },\n defining: !0,\n addAttributes() {\n return {\n checked: {\n default: !1,\n keepOnSplit: !1,\n parseHTML: (t) => {\n const e = t.getAttribute(\"data-checked\");\n return e === \"\" || e === \"true\";\n },\n renderHTML: (t) => ({\n \"data-checked\": t.checked\n })\n }\n };\n },\n parseHTML() {\n return [\n {\n tag: `li[data-type=\"${this.name}\"]`,\n priority: 51\n }\n ];\n },\n renderHTML({ node: t, HTMLAttributes: e }) {\n return [\n \"li\",\n q(this.options.HTMLAttributes, e, {\n \"data-type\": this.name\n }),\n [\n \"label\",\n [\n \"input\",\n {\n type: \"checkbox\",\n checked: t.attrs.checked ? \"checked\" : null\n }\n ],\n [\"span\"]\n ],\n [\"div\", 0]\n ];\n },\n parseMarkdown: (t, e) => {\n const n = [];\n if (t.tokens && t.tokens.length > 0 ? n.push(e.createNode(\"paragraph\", {}, e.parseInline(t.tokens))) : t.text ? n.push(e.createNode(\"paragraph\", {}, [e.createNode(\"text\", { text: t.text })])) : n.push(e.createNode(\"paragraph\", {}, [])), t.nestedTokens && t.nestedTokens.length > 0) {\n const r = e.parseChildren(t.nestedTokens);\n n.push(...r);\n }\n return e.createNode(\"taskItem\", { checked: t.checked || !1 }, n);\n },\n renderMarkdown: (t, e) => {\n var n;\n const s = `- [${(n = t.attrs) != null && n.checked ? \"x\" : \" \"}] `;\n return Gi(t, e, s);\n },\n addKeyboardShortcuts() {\n const t = {\n Enter: () => this.editor.commands.splitListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name)\n };\n return this.options.nested ? {\n ...t,\n Tab: () => this.editor.commands.sinkListItem(this.name)\n } : t;\n },\n addNodeView() {\n return ({ node: t, HTMLAttributes: e, getPos: n, editor: r }) => {\n const s = document.createElement(\"li\"), o = document.createElement(\"label\"), i = document.createElement(\"span\"), l = document.createElement(\"input\"), a = document.createElement(\"div\"), c = (d) => {\n var u, f;\n l.ariaLabel = ((f = (u = this.options.a11y) == null ? void 0 : u.checkboxLabel) == null ? void 0 : f.call(u, d, l.checked)) || `Task item checkbox for ${d.textContent || \"empty task item\"}`;\n };\n return c(t), o.contentEditable = \"false\", l.type = \"checkbox\", l.addEventListener(\"mousedown\", (d) => d.preventDefault()), l.addEventListener(\"change\", (d) => {\n if (!r.isEditable && !this.options.onReadOnlyChecked) {\n l.checked = !l.checked;\n return;\n }\n const { checked: u } = d.target;\n r.isEditable && typeof n == \"function\" && r.chain().focus(void 0, { scrollIntoView: !1 }).command(({ tr: f }) => {\n const h = n();\n if (typeof h != \"number\")\n return !1;\n const p = f.doc.nodeAt(h);\n return f.setNodeMarkup(h, void 0, {\n ...p?.attrs,\n checked: u\n }), !0;\n }).run(), !r.isEditable && this.options.onReadOnlyChecked && (this.options.onReadOnlyChecked(t, u) || (l.checked = !l.checked));\n }), Object.entries(this.options.HTMLAttributes).forEach(([d, u]) => {\n s.setAttribute(d, u);\n }), s.dataset.checked = t.attrs.checked, l.checked = t.attrs.checked, o.append(l, i), s.append(o, a), Object.entries(e).forEach(([d, u]) => {\n s.setAttribute(d, u);\n }), {\n dom: s,\n contentDOM: a,\n update: (d) => d.type !== this.type ? !1 : (s.dataset.checked = d.attrs.checked, l.checked = d.attrs.checked, c(d), !0)\n };\n };\n },\n addInputRules() {\n return [\n On({\n find: d1,\n type: this.type,\n getAttributes: (t) => ({\n checked: t[t.length - 1] === \"x\"\n })\n })\n ];\n }\n}), f1 = ge.create({\n name: \"taskList\",\n addOptions() {\n return {\n itemTypeName: \"taskItem\",\n HTMLAttributes: {}\n };\n },\n group: \"block list\",\n content() {\n return `${this.options.itemTypeName}+`;\n },\n parseHTML() {\n return [\n {\n tag: `ul[data-type=\"${this.name}\"]`,\n priority: 51\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"ul\", q(this.options.HTMLAttributes, t, { \"data-type\": this.name }), 0];\n },\n parseMarkdown: (t, e) => e.createNode(\"taskList\", {}, e.parseChildren(t.items || [])),\n renderMarkdown: (t, e) => t.content ? e.renderChildren(t.content, `\n`) : \"\",\n markdownTokenizer: {\n name: \"taskList\",\n level: \"block\",\n start(t) {\n var e;\n const n = (e = t.match(/^\\s*[-+*]\\s+\\[([ xX])\\]\\s+/)) == null ? void 0 : e.index;\n return n !== void 0 ? n : -1;\n },\n tokenize(t, e, n) {\n const r = (o) => {\n const i = Qo(\n o,\n {\n itemPattern: /^(\\s*)([-+*])\\s+\\[([ xX])\\]\\s+(.*)$/,\n extractItemData: (l) => ({\n indentLevel: l[1].length,\n mainContent: l[4],\n checked: l[3].toLowerCase() === \"x\"\n }),\n createToken: (l, a) => ({\n type: \"taskItem\",\n raw: \"\",\n mainContent: l.mainContent,\n indentLevel: l.indentLevel,\n checked: l.checked,\n text: l.mainContent,\n tokens: n.inlineTokens(l.mainContent),\n nestedTokens: a\n }),\n // Allow recursive nesting\n customNestedParser: r\n },\n n\n );\n return i ? [\n {\n type: \"taskList\",\n raw: i.raw,\n items: i.items\n }\n ] : n.blockTokens(o);\n }, s = Qo(\n t,\n {\n itemPattern: /^(\\s*)([-+*])\\s+\\[([ xX])\\]\\s+(.*)$/,\n extractItemData: (o) => ({\n indentLevel: o[1].length,\n mainContent: o[4],\n checked: o[3].toLowerCase() === \"x\"\n }),\n createToken: (o, i) => ({\n type: \"taskItem\",\n raw: \"\",\n mainContent: o.mainContent,\n indentLevel: o.indentLevel,\n checked: o.checked,\n text: o.mainContent,\n tokens: n.inlineTokens(o.mainContent),\n nestedTokens: i\n }),\n // Use the recursive parser for nested content\n customNestedParser: r\n },\n n\n );\n if (s)\n return {\n type: \"taskList\",\n raw: s.raw,\n items: s.items\n };\n }\n },\n markdownOptions: {\n indentsContent: !0\n },\n addCommands() {\n return {\n toggleTaskList: () => ({ commands: t }) => t.toggleList(this.name, this.options.itemTypeName)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-9\": () => this.editor.commands.toggleTaskList()\n };\n }\n});\nF.create({\n name: \"listKit\",\n addExtensions() {\n const t = [];\n return this.options.bulletList !== !1 && t.push(Gu.configure(this.options.bulletList)), this.options.listItem !== !1 && t.push(Yu.configure(this.options.listItem)), this.options.listKeymap !== !1 && t.push(nf.configure(this.options.listKeymap)), this.options.orderedList !== !1 && t.push(sf.configure(this.options.orderedList)), this.options.taskItem !== !1 && t.push(u1.configure(this.options.taskItem)), this.options.taskList !== !1 && t.push(f1.configure(this.options.taskList)), t;\n }\n});\nvar h1 = ge.create({\n name: \"paragraph\",\n priority: 1e3,\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n group: \"block\",\n content: \"inline*\",\n parseHTML() {\n return [{ tag: \"p\" }];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"p\", q(this.options.HTMLAttributes, t), 0];\n },\n parseMarkdown: (t, e) => {\n const n = t.tokens || [];\n return n.length === 1 && n[0].type === \"image\" ? e.parseChildren([n[0]]) : e.createNode(\n \"paragraph\",\n void 0,\n // no attributes for paragraph\n e.parseInline(n)\n );\n },\n renderMarkdown: (t, e) => !t || !Array.isArray(t.content) ? \"\" : e.renderChildren(t.content),\n addCommands() {\n return {\n setParagraph: () => ({ commands: t }) => t.setNode(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Alt-0\": () => this.editor.commands.setParagraph()\n };\n }\n}), p1 = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))$/, m1 = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))/g, g1 = bt.create({\n name: \"strike\",\n addOptions() {\n return {\n HTMLAttributes: {}\n };\n },\n parseHTML() {\n return [\n {\n tag: \"s\"\n },\n {\n tag: \"del\"\n },\n {\n tag: \"strike\"\n },\n {\n style: \"text-decoration\",\n consuming: !1,\n getAttrs: (t) => t.includes(\"line-through\") ? {} : !1\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"s\", q(this.options.HTMLAttributes, t), 0];\n },\n markdownTokenName: \"del\",\n parseMarkdown: (t, e) => e.applyMark(\"strike\", e.parseInline(t.tokens || [])),\n renderMarkdown: (t, e) => `~~${e.renderChildren(t)}~~`,\n addCommands() {\n return {\n setStrike: () => ({ commands: t }) => t.setMark(this.name),\n toggleStrike: () => ({ commands: t }) => t.toggleMark(this.name),\n unsetStrike: () => ({ commands: t }) => t.unsetMark(this.name)\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-s\": () => this.editor.commands.toggleStrike()\n };\n },\n addInputRules() {\n return [\n sn({\n find: p1,\n type: this.type\n })\n ];\n },\n addPasteRules() {\n return [\n Bt({\n find: m1,\n type: this.type\n })\n ];\n }\n}), y1 = ge.create({\n name: \"text\",\n group: \"inline\",\n parseMarkdown: (t) => ({\n type: \"text\",\n text: t.text || \"\"\n }),\n renderMarkdown: (t) => t.text || \"\"\n});\nfunction b1(t = {}) {\n return new ee({\n view(e) {\n return new k1(e, t);\n }\n });\n}\nclass k1 {\n constructor(e, n) {\n var r;\n this.editorView = e, this.cursorPos = null, this.element = null, this.timeout = -1, this.width = (r = n.width) !== null && r !== void 0 ? r : 1, this.color = n.color === !1 ? void 0 : n.color || \"black\", this.class = n.class, this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map((s) => {\n let o = (i) => {\n this[s](i);\n };\n return e.dom.addEventListener(s, o), { name: s, handler: o };\n });\n }\n destroy() {\n this.handlers.forEach(({ name: e, handler: n }) => this.editorView.dom.removeEventListener(e, n));\n }\n update(e, n) {\n this.cursorPos != null && n.doc != e.state.doc && (this.cursorPos > e.state.doc.content.size ? this.setCursor(null) : this.updateOverlay());\n }\n setCursor(e) {\n e != this.cursorPos && (this.cursorPos = e, e == null ? (this.element.parentNode.removeChild(this.element), this.element = null) : this.updateOverlay());\n }\n updateOverlay() {\n let e = this.editorView.state.doc.resolve(this.cursorPos), n = !e.parent.inlineContent, r, s = this.editorView.dom, o = s.getBoundingClientRect(), i = o.width / s.offsetWidth, l = o.height / s.offsetHeight;\n if (n) {\n let u = e.nodeBefore, f = e.nodeAfter;\n if (u || f) {\n let h = this.editorView.nodeDOM(this.cursorPos - (u ? u.nodeSize : 0));\n if (h) {\n let p = h.getBoundingClientRect(), m = u ? p.bottom : p.top;\n u && f && (m = (m + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2);\n let g = this.width / 2 * l;\n r = { left: p.left, right: p.right, top: m - g, bottom: m + g };\n }\n }\n }\n if (!r) {\n let u = this.editorView.coordsAtPos(this.cursorPos), f = this.width / 2 * i;\n r = { left: u.left - f, right: u.left + f, top: u.top, bottom: u.bottom };\n }\n let a = this.editorView.dom.offsetParent;\n this.element || (this.element = a.appendChild(document.createElement(\"div\")), this.class && (this.element.className = this.class), this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none;\", this.color && (this.element.style.backgroundColor = this.color)), this.element.classList.toggle(\"prosemirror-dropcursor-block\", n), this.element.classList.toggle(\"prosemirror-dropcursor-inline\", !n);\n let c, d;\n if (!a || a == document.body && getComputedStyle(a).position == \"static\")\n c = -pageXOffset, d = -pageYOffset;\n else {\n let u = a.getBoundingClientRect(), f = u.width / a.offsetWidth, h = u.height / a.offsetHeight;\n c = u.left - a.scrollLeft * f, d = u.top - a.scrollTop * h;\n }\n this.element.style.left = (r.left - c) / i + \"px\", this.element.style.top = (r.top - d) / l + \"px\", this.element.style.width = (r.right - r.left) / i + \"px\", this.element.style.height = (r.bottom - r.top) / l + \"px\";\n }\n scheduleRemoval(e) {\n clearTimeout(this.timeout), this.timeout = setTimeout(() => this.setCursor(null), e);\n }\n dragover(e) {\n if (!this.editorView.editable)\n return;\n let n = this.editorView.posAtCoords({ left: e.clientX, top: e.clientY }), r = n && n.inside >= 0 && this.editorView.state.doc.nodeAt(n.inside), s = r && r.type.spec.disableDropCursor, o = typeof s == \"function\" ? s(this.editorView, n, e) : s;\n if (n && !o) {\n let i = n.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n let l = Fc(this.editorView.state.doc, i, this.editorView.dragging.slice);\n l != null && (i = l);\n }\n this.setCursor(i), this.scheduleRemoval(5e3);\n }\n }\n dragend() {\n this.scheduleRemoval(20);\n }\n drop() {\n this.scheduleRemoval(20);\n }\n dragleave(e) {\n this.editorView.dom.contains(e.relatedTarget) || this.setCursor(null);\n }\n}\nclass re extends B {\n /**\n Create a gap cursor.\n */\n constructor(e) {\n super(e, e);\n }\n map(e, n) {\n let r = e.resolve(n.map(this.head));\n return re.valid(r) ? new re(r) : B.near(r);\n }\n content() {\n return A.empty;\n }\n eq(e) {\n return e instanceof re && e.head == this.head;\n }\n toJSON() {\n return { type: \"gapcursor\", pos: this.head };\n }\n /**\n @internal\n */\n static fromJSON(e, n) {\n if (typeof n.pos != \"number\")\n throw new RangeError(\"Invalid input for GapCursor.fromJSON\");\n return new re(e.resolve(n.pos));\n }\n /**\n @internal\n */\n getBookmark() {\n return new ll(this.anchor);\n }\n /**\n @internal\n */\n static valid(e) {\n let n = e.parent;\n if (n.isTextblock || !x1(e) || !w1(e))\n return !1;\n let r = n.type.spec.allowGapCursor;\n if (r != null)\n return r;\n let s = n.contentMatchAt(e.index()).defaultType;\n return s && s.isTextblock;\n }\n /**\n @internal\n */\n static findGapCursorFrom(e, n, r = !1) {\n e: for (; ; ) {\n if (!r && re.valid(e))\n return e;\n let s = e.pos, o = null;\n for (let i = e.depth; ; i--) {\n let l = e.node(i);\n if (n > 0 ? e.indexAfter(i) < l.childCount : e.index(i) > 0) {\n o = l.child(n > 0 ? e.indexAfter(i) : e.index(i) - 1);\n break;\n } else if (i == 0)\n return null;\n s += n;\n let a = e.doc.resolve(s);\n if (re.valid(a))\n return a;\n }\n for (; ; ) {\n let i = n > 0 ? o.firstChild : o.lastChild;\n if (!i) {\n if (o.isAtom && !o.isText && !D.isSelectable(o)) {\n e = e.doc.resolve(s + o.nodeSize * n), r = !1;\n continue e;\n }\n break;\n }\n o = i, s += n;\n let l = e.doc.resolve(s);\n if (re.valid(l))\n return l;\n }\n return null;\n }\n }\n}\nre.prototype.visible = !1;\nre.findFrom = re.findGapCursorFrom;\nB.jsonID(\"gapcursor\", re);\nclass ll {\n constructor(e) {\n this.pos = e;\n }\n map(e) {\n return new ll(e.map(this.pos));\n }\n resolve(e) {\n let n = e.resolve(this.pos);\n return re.valid(n) ? new re(n) : B.near(n);\n }\n}\nfunction of(t) {\n return t.isAtom || t.spec.isolating || t.spec.createGapCursor;\n}\nfunction x1(t) {\n for (let e = t.depth; e >= 0; e--) {\n let n = t.index(e), r = t.node(e);\n if (n == 0) {\n if (r.type.spec.isolating)\n return !0;\n continue;\n }\n for (let s = r.child(n - 1); ; s = s.lastChild) {\n if (s.childCount == 0 && !s.inlineContent || of(s.type))\n return !0;\n if (s.inlineContent)\n return !1;\n }\n }\n return !0;\n}\nfunction w1(t) {\n for (let e = t.depth; e >= 0; e--) {\n let n = t.indexAfter(e), r = t.node(e);\n if (n == r.childCount) {\n if (r.type.spec.isolating)\n return !0;\n continue;\n }\n for (let s = r.child(n); ; s = s.firstChild) {\n if (s.childCount == 0 && !s.inlineContent || of(s.type))\n return !0;\n if (s.inlineContent)\n return !1;\n }\n }\n return !0;\n}\nfunction S1() {\n return new ee({\n props: {\n decorations: T1,\n createSelectionBetween(t, e, n) {\n return e.pos == n.pos && re.valid(n) ? new re(n) : null;\n },\n handleClick: v1,\n handleKeyDown: C1,\n handleDOMEvents: { beforeinput: M1 }\n }\n });\n}\nconst C1 = Bi({\n ArrowLeft: Or(\"horiz\", -1),\n ArrowRight: Or(\"horiz\", 1),\n ArrowUp: Or(\"vert\", -1),\n ArrowDown: Or(\"vert\", 1)\n});\nfunction Or(t, e) {\n const n = t == \"vert\" ? e > 0 ? \"down\" : \"up\" : e > 0 ? \"right\" : \"left\";\n return function(r, s, o) {\n let i = r.selection, l = e > 0 ? i.$to : i.$from, a = i.empty;\n if (i instanceof P) {\n if (!o.endOfTextblock(n) || l.depth == 0)\n return !1;\n a = !1, l = r.doc.resolve(e > 0 ? l.after() : l.before());\n }\n let c = re.findGapCursorFrom(l, e, a);\n return c ? (s && s(r.tr.setSelection(new re(c))), !0) : !1;\n };\n}\nfunction v1(t, e, n) {\n if (!t || !t.editable)\n return !1;\n let r = t.state.doc.resolve(e);\n if (!re.valid(r))\n return !1;\n let s = t.posAtCoords({ left: n.clientX, top: n.clientY });\n return s && s.inside > -1 && D.isSelectable(t.state.doc.nodeAt(s.inside)) ? !1 : (t.dispatch(t.state.tr.setSelection(new re(r))), !0);\n}\nfunction M1(t, e) {\n if (e.inputType != \"insertCompositionText\" || !(t.state.selection instanceof re))\n return !1;\n let { $from: n } = t.state.selection, r = n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text);\n if (!r)\n return !1;\n let s = w.empty;\n for (let i = r.length - 1; i >= 0; i--)\n s = w.from(r[i].createAndFill(null, s));\n let o = t.state.tr.replace(n.pos, n.pos, new A(s, 0, 0));\n return o.setSelection(P.near(o.doc.resolve(n.pos + 1))), t.dispatch(o), !1;\n}\nfunction T1(t) {\n if (!(t.selection instanceof re))\n return null;\n let e = document.createElement(\"div\");\n return e.className = \"ProseMirror-gapcursor\", G.create(t.doc, [he.widget(t.selection.head, e, { key: \"gapcursor\" })]);\n}\nvar Os = 200, me = function() {\n};\nme.prototype.append = function(e) {\n return e.length ? (e = me.from(e), !this.length && e || e.length < Os && this.leafAppend(e) || this.length < Os && e.leafPrepend(this) || this.appendInner(e)) : this;\n};\nme.prototype.prepend = function(e) {\n return e.length ? me.from(e).append(this) : this;\n};\nme.prototype.appendInner = function(e) {\n return new E1(this, e);\n};\nme.prototype.slice = function(e, n) {\n return e === void 0 && (e = 0), n === void 0 && (n = this.length), e >= n ? me.empty : this.sliceInner(Math.max(0, e), Math.min(this.length, n));\n};\nme.prototype.get = function(e) {\n if (!(e < 0 || e >= this.length))\n return this.getInner(e);\n};\nme.prototype.forEach = function(e, n, r) {\n n === void 0 && (n = 0), r === void 0 && (r = this.length), n <= r ? this.forEachInner(e, n, r, 0) : this.forEachInvertedInner(e, n, r, 0);\n};\nme.prototype.map = function(e, n, r) {\n n === void 0 && (n = 0), r === void 0 && (r = this.length);\n var s = [];\n return this.forEach(function(o, i) {\n return s.push(e(o, i));\n }, n, r), s;\n};\nme.from = function(e) {\n return e instanceof me ? e : e && e.length ? new lf(e) : me.empty;\n};\nvar lf = /* @__PURE__ */ (function(t) {\n function e(r) {\n t.call(this), this.values = r;\n }\n t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e;\n var n = { length: { configurable: !0 }, depth: { configurable: !0 } };\n return e.prototype.flatten = function() {\n return this.values;\n }, e.prototype.sliceInner = function(s, o) {\n return s == 0 && o == this.length ? this : new e(this.values.slice(s, o));\n }, e.prototype.getInner = function(s) {\n return this.values[s];\n }, e.prototype.forEachInner = function(s, o, i, l) {\n for (var a = o; a < i; a++)\n if (s(this.values[a], l + a) === !1)\n return !1;\n }, e.prototype.forEachInvertedInner = function(s, o, i, l) {\n for (var a = o - 1; a >= i; a--)\n if (s(this.values[a], l + a) === !1)\n return !1;\n }, e.prototype.leafAppend = function(s) {\n if (this.length + s.length <= Os)\n return new e(this.values.concat(s.flatten()));\n }, e.prototype.leafPrepend = function(s) {\n if (this.length + s.length <= Os)\n return new e(s.flatten().concat(this.values));\n }, n.length.get = function() {\n return this.values.length;\n }, n.depth.get = function() {\n return 0;\n }, Object.defineProperties(e.prototype, n), e;\n})(me);\nme.empty = new lf([]);\nvar E1 = /* @__PURE__ */ (function(t) {\n function e(n, r) {\n t.call(this), this.left = n, this.right = r, this.length = n.length + r.length, this.depth = Math.max(n.depth, r.depth) + 1;\n }\n return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.flatten = function() {\n return this.left.flatten().concat(this.right.flatten());\n }, e.prototype.getInner = function(r) {\n return r < this.left.length ? this.left.get(r) : this.right.get(r - this.left.length);\n }, e.prototype.forEachInner = function(r, s, o, i) {\n var l = this.left.length;\n if (s < l && this.left.forEachInner(r, s, Math.min(o, l), i) === !1 || o > l && this.right.forEachInner(r, Math.max(s - l, 0), Math.min(this.length, o) - l, i + l) === !1)\n return !1;\n }, e.prototype.forEachInvertedInner = function(r, s, o, i) {\n var l = this.left.length;\n if (s > l && this.right.forEachInvertedInner(r, s - l, Math.max(o, l) - l, i + l) === !1 || o < l && this.left.forEachInvertedInner(r, Math.min(s, l), o, i) === !1)\n return !1;\n }, e.prototype.sliceInner = function(r, s) {\n if (r == 0 && s == this.length)\n return this;\n var o = this.left.length;\n return s <= o ? this.left.slice(r, s) : r >= o ? this.right.slice(r - o, s - o) : this.left.slice(r, o).append(this.right.slice(0, s - o));\n }, e.prototype.leafAppend = function(r) {\n var s = this.right.leafAppend(r);\n if (s)\n return new e(this.left, s);\n }, e.prototype.leafPrepend = function(r) {\n var s = this.left.leafPrepend(r);\n if (s)\n return new e(s, this.right);\n }, e.prototype.appendInner = function(r) {\n return this.left.depth >= Math.max(this.right.depth, r.depth) + 1 ? new e(this.left, new e(this.right, r)) : new e(this, r);\n }, e;\n})(me);\nconst A1 = 500;\nclass qe {\n constructor(e, n) {\n this.items = e, this.eventCount = n;\n }\n // Pop the latest event off the branch's history and apply it\n // to a document transform.\n popEvent(e, n) {\n if (this.eventCount == 0)\n return null;\n let r = this.items.length;\n for (; ; r--)\n if (this.items.get(r - 1).selection) {\n --r;\n break;\n }\n let s, o;\n n && (s = this.remapping(r, this.items.length), o = s.maps.length);\n let i = e.tr, l, a, c = [], d = [];\n return this.items.forEach((u, f) => {\n if (!u.step) {\n s || (s = this.remapping(r, f + 1), o = s.maps.length), o--, d.push(u);\n return;\n }\n if (s) {\n d.push(new tt(u.map));\n let h = u.step.map(s.slice(o)), p;\n h && i.maybeStep(h).doc && (p = i.mapping.maps[i.mapping.maps.length - 1], c.push(new tt(p, void 0, void 0, c.length + d.length))), o--, p && s.appendMap(p, o);\n } else\n i.maybeStep(u.step);\n if (u.selection)\n return l = s ? u.selection.map(s.slice(o)) : u.selection, a = new qe(this.items.slice(0, r).append(d.reverse().concat(c)), this.eventCount - 1), !1;\n }, this.items.length, 0), { remaining: a, transform: i, selection: l };\n }\n // Create a new branch with the given transform added.\n addTransform(e, n, r, s) {\n let o = [], i = this.eventCount, l = this.items, a = !s && l.length ? l.get(l.length - 1) : null;\n for (let d = 0; d < e.steps.length; d++) {\n let u = e.steps[d].invert(e.docs[d]), f = new tt(e.mapping.maps[d], u, n), h;\n (h = a && a.merge(f)) && (f = h, d ? o.pop() : l = l.slice(0, l.length - 1)), o.push(f), n && (i++, n = void 0), s || (a = f);\n }\n let c = i - r.depth;\n return c > O1 && (l = N1(l, c), i -= c), new qe(l.append(o), i);\n }\n remapping(e, n) {\n let r = new tr();\n return this.items.forEach((s, o) => {\n let i = s.mirrorOffset != null && o - s.mirrorOffset >= e ? r.maps.length - s.mirrorOffset : void 0;\n r.appendMap(s.map, i);\n }, e, n), r;\n }\n addMaps(e) {\n return this.eventCount == 0 ? this : new qe(this.items.append(e.map((n) => new tt(n))), 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(e, n) {\n if (!this.eventCount)\n return this;\n let r = [], s = Math.max(0, this.items.length - n), o = e.mapping, i = e.steps.length, l = this.eventCount;\n this.items.forEach((f) => {\n f.selection && l--;\n }, s);\n let a = n;\n this.items.forEach((f) => {\n let h = o.getMirror(--a);\n if (h == null)\n return;\n i = Math.min(i, h);\n let p = o.maps[h];\n if (f.step) {\n let m = e.steps[h].invert(e.docs[h]), g = f.selection && f.selection.map(o.slice(a + 1, h));\n g && l++, r.push(new tt(p, m, g));\n } else\n r.push(new tt(p));\n }, s);\n let c = [];\n for (let f = n; f < i; f++)\n c.push(new tt(o.maps[f]));\n let d = this.items.slice(0, s).append(c).append(r), u = new qe(d, l);\n return u.emptyItemCount() > A1 && (u = u.compress(this.items.length - r.length)), u;\n }\n emptyItemCount() {\n let e = 0;\n return this.items.forEach((n) => {\n n.step || e++;\n }), e;\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(e = this.items.length) {\n let n = this.remapping(0, e), r = n.maps.length, s = [], o = 0;\n return this.items.forEach((i, l) => {\n if (l >= e)\n s.push(i), i.selection && o++;\n else if (i.step) {\n let a = i.step.map(n.slice(r)), c = a && a.getMap();\n if (r--, c && n.appendMap(c, r), a) {\n let d = i.selection && i.selection.map(n.slice(r));\n d && o++;\n let u = new tt(c.invert(), a, d), f, h = s.length - 1;\n (f = s.length && s[h].merge(u)) ? s[h] = f : s.push(u);\n }\n } else i.map && r--;\n }, this.items.length, 0), new qe(me.from(s.reverse()), o);\n }\n}\nqe.empty = new qe(me.empty, 0);\nfunction N1(t, e) {\n let n;\n return t.forEach((r, s) => {\n if (r.selection && e-- == 0)\n return n = s, !1;\n }), t.slice(n);\n}\nclass tt {\n constructor(e, n, r, s) {\n this.map = e, this.step = n, this.selection = r, this.mirrorOffset = s;\n }\n merge(e) {\n if (this.step && e.step && !e.selection) {\n let n = e.step.merge(this.step);\n if (n)\n return new tt(n.getMap().invert(), n, this.selection);\n }\n }\n}\nclass vt {\n constructor(e, n, r, s, o) {\n this.done = e, this.undone = n, this.prevRanges = r, this.prevTime = s, this.prevComposition = o;\n }\n}\nconst O1 = 20;\nfunction R1(t, e, n, r) {\n let s = n.getMeta(Zt), o;\n if (s)\n return s.historyState;\n n.getMeta(L1) && (t = new vt(t.done, t.undone, null, 0, -1));\n let i = n.getMeta(\"appendedTransaction\");\n if (n.steps.length == 0)\n return t;\n if (i && i.getMeta(Zt))\n return i.getMeta(Zt).redo ? new vt(t.done.addTransform(n, void 0, r, jr(e)), t.undone, Ua(n.mapping.maps), t.prevTime, t.prevComposition) : new vt(t.done, t.undone.addTransform(n, void 0, r, jr(e)), null, t.prevTime, t.prevComposition);\n if (n.getMeta(\"addToHistory\") !== !1 && !(i && i.getMeta(\"addToHistory\") === !1)) {\n let l = n.getMeta(\"composition\"), a = t.prevTime == 0 || !i && t.prevComposition != l && (t.prevTime < (n.time || 0) - r.newGroupDelay || !D1(n, t.prevRanges)), c = i ? vo(t.prevRanges, n.mapping) : Ua(n.mapping.maps);\n return new vt(t.done.addTransform(n, a ? e.selection.getBookmark() : void 0, r, jr(e)), qe.empty, c, n.time, l ?? t.prevComposition);\n } else return (o = n.getMeta(\"rebased\")) ? new vt(t.done.rebased(n, o), t.undone.rebased(n, o), vo(t.prevRanges, n.mapping), t.prevTime, t.prevComposition) : new vt(t.done.addMaps(n.mapping.maps), t.undone.addMaps(n.mapping.maps), vo(t.prevRanges, n.mapping), t.prevTime, t.prevComposition);\n}\nfunction D1(t, e) {\n if (!e)\n return !1;\n if (!t.docChanged)\n return !0;\n let n = !1;\n return t.mapping.maps[0].forEach((r, s) => {\n for (let o = 0; o < e.length; o += 2)\n r <= e[o + 1] && s >= e[o] && (n = !0);\n }), n;\n}\nfunction Ua(t) {\n let e = [];\n for (let n = t.length - 1; n >= 0 && e.length == 0; n--)\n t[n].forEach((r, s, o, i) => e.push(o, i));\n return e;\n}\nfunction vo(t, e) {\n if (!t)\n return null;\n let n = [];\n for (let r = 0; r < t.length; r += 2) {\n let s = e.map(t[r], 1), o = e.map(t[r + 1], -1);\n s <= o && n.push(s, o);\n }\n return n;\n}\nfunction I1(t, e, n) {\n let r = jr(e), s = Zt.get(e).spec.config, o = (n ? t.undone : t.done).popEvent(e, r);\n if (!o)\n return null;\n let i = o.selection.resolve(o.transform.doc), l = (n ? t.done : t.undone).addTransform(o.transform, e.selection.getBookmark(), s, r), a = new vt(n ? l : o.remaining, n ? o.remaining : l, null, 0, -1);\n return o.transform.setSelection(i).setMeta(Zt, { redo: n, historyState: a });\n}\nlet Mo = !1, Ka = null;\nfunction jr(t) {\n let e = t.plugins;\n if (Ka != e) {\n Mo = !1, Ka = e;\n for (let n = 0; n < e.length; n++)\n if (e[n].spec.historyPreserveItems) {\n Mo = !0;\n break;\n }\n }\n return Mo;\n}\nconst Zt = new oe(\"history\"), L1 = new oe(\"closeHistory\");\nfunction P1(t = {}) {\n return t = {\n depth: t.depth || 100,\n newGroupDelay: t.newGroupDelay || 500\n }, new ee({\n key: Zt,\n state: {\n init() {\n return new vt(qe.empty, qe.empty, null, 0, -1);\n },\n apply(e, n, r) {\n return R1(n, r, e, t);\n }\n },\n config: t,\n props: {\n handleDOMEvents: {\n beforeinput(e, n) {\n let r = n.inputType, s = r == \"historyUndo\" ? cf : r == \"historyRedo\" ? df : null;\n return !s || !e.editable ? !1 : (n.preventDefault(), s(e.state, e.dispatch));\n }\n }\n }\n });\n}\nfunction af(t, e) {\n return (n, r) => {\n let s = Zt.getState(n);\n if (!s || (t ? s.undone : s.done).eventCount == 0)\n return !1;\n if (r) {\n let o = I1(s, n, t);\n o && r(e ? o.scrollIntoView() : o);\n }\n return !0;\n };\n}\nconst cf = af(!1, !0), df = af(!0, !0);\nF.create({\n name: \"characterCount\",\n addOptions() {\n return {\n limit: null,\n mode: \"textSize\",\n textCounter: (t) => t.length,\n wordCounter: (t) => t.split(\" \").filter((e) => e !== \"\").length\n };\n },\n addStorage() {\n return {\n characters: () => 0,\n words: () => 0\n };\n },\n onBeforeCreate() {\n this.storage.characters = (t) => {\n const e = t?.node || this.editor.state.doc;\n if ((t?.mode || this.options.mode) === \"textSize\") {\n const r = e.textBetween(0, e.content.size, void 0, \" \");\n return this.options.textCounter(r);\n }\n return e.nodeSize;\n }, this.storage.words = (t) => {\n const e = t?.node || this.editor.state.doc, n = e.textBetween(0, e.content.size, \" \", \" \");\n return this.options.wordCounter(n);\n };\n },\n addProseMirrorPlugins() {\n let t = !1;\n return [\n new ee({\n key: new oe(\"characterCount\"),\n appendTransaction: (e, n, r) => {\n if (t)\n return;\n const s = this.options.limit;\n if (s == null || s === 0) {\n t = !0;\n return;\n }\n const o = this.storage.characters({ node: r.doc });\n if (o > s) {\n const i = o - s, l = 0, a = i;\n console.warn(\n `[CharacterCount] Initial content exceeded limit of ${s} characters. Content was automatically trimmed.`\n );\n const c = r.tr.deleteRange(l, a);\n return t = !0, c;\n }\n t = !0;\n },\n filterTransaction: (e, n) => {\n const r = this.options.limit;\n if (!e.docChanged || r === 0 || r === null || r === void 0)\n return !0;\n const s = this.storage.characters({ node: n.doc }), o = this.storage.characters({ node: e.doc });\n if (o <= r || s > r && o > r && o <= s)\n return !0;\n if (s > r && o > r && o > s || !e.getMeta(\"paste\"))\n return !1;\n const l = e.selection.$head.pos, a = o - r, c = l - a, d = l;\n return e.deleteRange(c, d), !(this.storage.characters({ node: e.doc }) > r);\n }\n })\n ];\n }\n});\nvar z1 = F.create({\n name: \"dropCursor\",\n addOptions() {\n return {\n color: \"currentColor\",\n width: 1,\n class: void 0\n };\n },\n addProseMirrorPlugins() {\n return [b1(this.options)];\n }\n});\nF.create({\n name: \"focus\",\n addOptions() {\n return {\n className: \"has-focus\",\n mode: \"all\"\n };\n },\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"focus\"),\n props: {\n decorations: ({ doc: t, selection: e }) => {\n const { isEditable: n, isFocused: r } = this.editor, { anchor: s } = e, o = [];\n if (!n || !r)\n return G.create(t, []);\n let i = 0;\n this.options.mode === \"deepest\" && t.descendants((a, c) => {\n if (a.isText)\n return;\n if (!(s >= c && s <= c + a.nodeSize - 1))\n return !1;\n i += 1;\n });\n let l = 0;\n return t.descendants((a, c) => {\n if (a.isText || !(s >= c && s <= c + a.nodeSize - 1))\n return !1;\n if (l += 1, this.options.mode === \"deepest\" && i - l > 0 || this.options.mode === \"shallowest\" && l > 1)\n return this.options.mode === \"deepest\";\n o.push(\n he.node(c, c + a.nodeSize, {\n class: this.options.className\n })\n );\n }), G.create(t, o);\n }\n }\n })\n ];\n }\n});\nvar B1 = F.create({\n name: \"gapCursor\",\n addProseMirrorPlugins() {\n return [S1()];\n },\n extendNodeSchema(t) {\n var e;\n const n = {\n name: t.name,\n options: t.options,\n storage: t.storage\n };\n return {\n allowGapCursor: (e = V(I(t, \"allowGapCursor\", n))) != null ? e : null\n };\n }\n});\nF.create({\n name: \"placeholder\",\n addOptions() {\n return {\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: \"Write something …\",\n showOnlyWhenEditable: !0,\n showOnlyCurrent: !0,\n includeChildren: !1\n };\n },\n addProseMirrorPlugins() {\n return [\n new ee({\n key: new oe(\"placeholder\"),\n props: {\n decorations: ({ doc: t, selection: e }) => {\n const n = this.editor.isEditable || !this.options.showOnlyWhenEditable, { anchor: r } = e, s = [];\n if (!n)\n return null;\n const o = this.editor.isEmpty;\n return t.descendants((i, l) => {\n const a = r >= l && r <= l + i.nodeSize, c = !i.isLeaf && Ks(i);\n if ((a || !this.options.showOnlyCurrent) && c) {\n const d = [this.options.emptyNodeClass];\n o && d.push(this.options.emptyEditorClass);\n const u = he.node(l, l + i.nodeSize, {\n class: d.join(\" \"),\n \"data-placeholder\": typeof this.options.placeholder == \"function\" ? this.options.placeholder({\n editor: this.editor,\n node: i,\n pos: l,\n hasAnchor: a\n }) : this.options.placeholder\n });\n s.push(u);\n }\n return this.options.includeChildren;\n }), G.create(t, s);\n }\n }\n })\n ];\n }\n});\nF.create({\n name: \"selection\",\n addOptions() {\n return {\n className: \"selection\"\n };\n },\n addProseMirrorPlugins() {\n const { editor: t, options: e } = this;\n return [\n new ee({\n key: new oe(\"selection\"),\n props: {\n decorations(n) {\n return n.selection.empty || t.isFocused || !t.isEditable || iu(n.selection) || t.view.dragging ? null : G.create(n.doc, [\n he.inline(n.selection.from, n.selection.to, {\n class: e.className\n })\n ]);\n }\n }\n })\n ];\n }\n});\nfunction qa({ types: t, node: e }) {\n return e && Array.isArray(t) && t.includes(e.type) || e?.type === t;\n}\nvar $1 = F.create({\n name: \"trailingNode\",\n addOptions() {\n return {\n node: void 0,\n notAfter: []\n };\n },\n addProseMirrorPlugins() {\n var t;\n const e = new oe(this.name), n = ((t = this.editor.schema.topNodeType.contentMatch.defaultType) == null ? void 0 : t.name) || this.options.node || \"paragraph\", r = Object.entries(this.editor.schema.nodes).map(([, s]) => s).filter((s) => (this.options.notAfter || []).concat(n).includes(s.name));\n return [\n new ee({\n key: e,\n appendTransaction: (s, o, i) => {\n const { doc: l, tr: a, schema: c } = i, d = e.getState(i), u = l.content.size, f = c.nodes[n];\n if (d)\n return a.insert(u, f.create());\n },\n state: {\n init: (s, o) => {\n const i = o.tr.doc.lastChild;\n return !qa({ node: i, types: r });\n },\n apply: (s, o) => {\n if (!s.docChanged || s.getMeta(\"__uniqueIDTransaction\"))\n return o;\n const i = s.doc.lastChild;\n return !qa({ node: i, types: r });\n }\n }\n })\n ];\n }\n}), H1 = F.create({\n name: \"undoRedo\",\n addOptions() {\n return {\n depth: 100,\n newGroupDelay: 500\n };\n },\n addCommands() {\n return {\n undo: () => ({ state: t, dispatch: e }) => cf(t, e),\n redo: () => ({ state: t, dispatch: e }) => df(t, e)\n };\n },\n addProseMirrorPlugins() {\n return [P1(this.options)];\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-z\": () => this.editor.commands.undo(),\n \"Shift-Mod-z\": () => this.editor.commands.redo(),\n \"Mod-y\": () => this.editor.commands.redo(),\n // Russian keyboard layouts\n \"Mod-я\": () => this.editor.commands.undo(),\n \"Shift-Mod-я\": () => this.editor.commands.redo()\n };\n }\n}), _1 = F.create({\n name: \"starterKit\",\n addExtensions() {\n var t, e, n, r;\n const s = [];\n return this.options.bold !== !1 && s.push(p0.configure(this.options.bold)), this.options.blockquote !== !1 && s.push(c0.configure(this.options.blockquote)), this.options.bulletList !== !1 && s.push(Gu.configure(this.options.bulletList)), this.options.code !== !1 && s.push(y0.configure(this.options.code)), this.options.codeBlock !== !1 && s.push(x0.configure(this.options.codeBlock)), this.options.document !== !1 && s.push(w0.configure(this.options.document)), this.options.dropcursor !== !1 && s.push(z1.configure(this.options.dropcursor)), this.options.gapcursor !== !1 && s.push(B1.configure(this.options.gapcursor)), this.options.hardBreak !== !1 && s.push(S0.configure(this.options.hardBreak)), this.options.heading !== !1 && s.push(C0.configure(this.options.heading)), this.options.undoRedo !== !1 && s.push(H1.configure(this.options.undoRedo)), this.options.horizontalRule !== !1 && s.push(v0.configure(this.options.horizontalRule)), this.options.italic !== !1 && s.push(N0.configure(this.options.italic)), this.options.listItem !== !1 && s.push(Yu.configure(this.options.listItem)), this.options.listKeymap !== !1 && s.push(nf.configure((t = this.options) == null ? void 0 : t.listKeymap)), this.options.link !== !1 && s.push(e1.configure((e = this.options) == null ? void 0 : e.link)), this.options.orderedList !== !1 && s.push(sf.configure(this.options.orderedList)), this.options.paragraph !== !1 && s.push(h1.configure(this.options.paragraph)), this.options.strike !== !1 && s.push(g1.configure(this.options.strike)), this.options.text !== !1 && s.push(y1.configure(this.options.text)), this.options.underline !== !1 && s.push(Hu.configure((n = this.options) == null ? void 0 : n.underline)), this.options.trailingNode !== !1 && s.push($1.configure((r = this.options) == null ? void 0 : r.trailingNode)), s;\n }\n}), j1 = _1, V1 = /(?:^|\\s)(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/, F1 = ge.create({\n name: \"image\",\n addOptions() {\n return {\n inline: !1,\n allowBase64: !1,\n HTMLAttributes: {},\n resize: !1\n };\n },\n inline() {\n return this.options.inline;\n },\n group() {\n return this.options.inline ? \"inline\" : \"block\";\n },\n draggable: !0,\n addAttributes() {\n return {\n src: {\n default: null\n },\n alt: {\n default: null\n },\n title: {\n default: null\n },\n width: {\n default: null\n },\n height: {\n default: null\n }\n };\n },\n parseHTML() {\n return [\n {\n tag: this.options.allowBase64 ? \"img[src]\" : 'img[src]:not([src^=\"data:\"])'\n }\n ];\n },\n renderHTML({ HTMLAttributes: t }) {\n return [\"img\", q(this.options.HTMLAttributes, t)];\n },\n parseMarkdown: (t, e) => e.createNode(\"image\", {\n src: t.href,\n title: t.title,\n alt: t.text\n }),\n renderMarkdown: (t) => {\n var e, n, r, s, o, i;\n const l = (n = (e = t.attrs) == null ? void 0 : e.src) != null ? n : \"\", a = (s = (r = t.attrs) == null ? void 0 : r.alt) != null ? s : \"\", c = (i = (o = t.attrs) == null ? void 0 : o.title) != null ? i : \"\";\n return c ? `![${a}](${l} \"${c}\")` : `![${a}](${l})`;\n },\n addNodeView() {\n if (!this.options.resize || !this.options.resize.enabled || typeof document > \"u\" || !this.editor.isEditable)\n return null;\n const { directions: t, minWidth: e, minHeight: n, alwaysPreserveAspectRatio: r } = this.options.resize;\n return ({ node: s, getPos: o, HTMLAttributes: i }) => {\n const l = document.createElement(\"img\");\n Object.entries(i).forEach(([d, u]) => {\n if (u != null)\n switch (d) {\n case \"width\":\n case \"height\":\n break;\n default:\n l.setAttribute(d, u);\n break;\n }\n }), l.src = i.src;\n const a = new Ny({\n element: l,\n node: s,\n getPos: o,\n onResize: (d, u) => {\n l.style.width = `${d}px`, l.style.height = `${u}px`;\n },\n onCommit: (d, u) => {\n const f = o();\n f !== void 0 && this.editor.chain().setNodeSelection(f).updateAttributes(this.name, {\n width: d,\n height: u\n }).run();\n },\n onUpdate: (d, u, f) => d.type === s.type,\n options: {\n directions: t,\n min: {\n width: e,\n height: n\n },\n preserveAspectRatio: r === !0\n }\n }), c = a.dom;\n return c.style.visibility = \"hidden\", c.style.pointerEvents = \"none\", l.onload = () => {\n c.style.visibility = \"\", c.style.pointerEvents = \"\";\n }, a;\n };\n },\n addCommands() {\n return {\n setImage: (t) => ({ commands: e }) => e.insertContent({\n type: this.name,\n attrs: t\n })\n };\n },\n addInputRules() {\n return [\n wu({\n find: V1,\n type: this.type,\n getAttributes: (t) => {\n const [, , e, n, r] = t;\n return { src: n, alt: e, title: r };\n }\n })\n ];\n }\n}), W1 = F1, Rr = { exports: {} }, To = {};\nvar Ja;\nfunction U1() {\n if (Ja) return To;\n Ja = 1;\n var t = Ge;\n function e(u, f) {\n return u === f && (u !== 0 || 1 / u === 1 / f) || u !== u && f !== f;\n }\n var n = typeof Object.is == \"function\" ? Object.is : e, r = t.useState, s = t.useEffect, o = t.useLayoutEffect, i = t.useDebugValue;\n function l(u, f) {\n var h = f(), p = r({ inst: { value: h, getSnapshot: f } }), m = p[0].inst, g = p[1];\n return o(\n function() {\n m.value = h, m.getSnapshot = f, a(m) && g({ inst: m });\n },\n [u, h, f]\n ), s(\n function() {\n return a(m) && g({ inst: m }), u(function() {\n a(m) && g({ inst: m });\n });\n },\n [u]\n ), i(h), h;\n }\n function a(u) {\n var f = u.getSnapshot;\n u = u.value;\n try {\n var h = f();\n return !n(u, h);\n } catch {\n return !0;\n }\n }\n function c(u, f) {\n return f();\n }\n var d = typeof window > \"u\" || typeof window.document > \"u\" || typeof window.document.createElement > \"u\" ? c : l;\n return To.useSyncExternalStore = t.useSyncExternalStore !== void 0 ? t.useSyncExternalStore : d, To;\n}\nvar Eo = {};\nvar Ga;\nfunction K1() {\n return Ga || (Ga = 1, process.env.NODE_ENV !== \"production\" && (function() {\n function t(h, p) {\n return h === p && (h !== 0 || 1 / h === 1 / p) || h !== h && p !== p;\n }\n function e(h, p) {\n d || s.startTransition === void 0 || (d = !0, console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var m = p();\n if (!u) {\n var g = p();\n o(m, g) || (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ), u = !0);\n }\n g = i({\n inst: { value: m, getSnapshot: p }\n });\n var y = g[0].inst, x = g[1];\n return a(\n function() {\n y.value = m, y.getSnapshot = p, n(y) && x({ inst: y });\n },\n [h, m, p]\n ), l(\n function() {\n return n(y) && x({ inst: y }), h(function() {\n n(y) && x({ inst: y });\n });\n },\n [h]\n ), c(m), m;\n }\n function n(h) {\n var p = h.getSnapshot;\n h = h.value;\n try {\n var m = p();\n return !o(h, m);\n } catch {\n return !0;\n }\n }\n function r(h, p) {\n return p();\n }\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < \"u\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == \"function\" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var s = Ge, o = typeof Object.is == \"function\" ? Object.is : t, i = s.useState, l = s.useEffect, a = s.useLayoutEffect, c = s.useDebugValue, d = !1, u = !1, f = typeof window > \"u\" || typeof window.document > \"u\" || typeof window.document.createElement > \"u\" ? r : e;\n Eo.useSyncExternalStore = s.useSyncExternalStore !== void 0 ? s.useSyncExternalStore : f, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < \"u\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == \"function\" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })()), Eo;\n}\nvar Ya;\nfunction al() {\n return Ya || (Ya = 1, process.env.NODE_ENV === \"production\" ? Rr.exports = U1() : Rr.exports = K1()), Rr.exports;\n}\nvar uf = al(), Ao, Xa;\nfunction q1() {\n return Xa || (Xa = 1, Ao = function t(e, n) {\n if (e === n) return !0;\n if (e && n && typeof e == \"object\" && typeof n == \"object\") {\n if (e.constructor !== n.constructor) return !1;\n var r, s, o;\n if (Array.isArray(e)) {\n if (r = e.length, r != n.length) return !1;\n for (s = r; s-- !== 0; )\n if (!t(e[s], n[s])) return !1;\n return !0;\n }\n if (e instanceof Map && n instanceof Map) {\n if (e.size !== n.size) return !1;\n for (s of e.entries())\n if (!n.has(s[0])) return !1;\n for (s of e.entries())\n if (!t(s[1], n.get(s[0]))) return !1;\n return !0;\n }\n if (e instanceof Set && n instanceof Set) {\n if (e.size !== n.size) return !1;\n for (s of e.entries())\n if (!n.has(s[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(e) && ArrayBuffer.isView(n)) {\n if (r = e.length, r != n.length) return !1;\n for (s = r; s-- !== 0; )\n if (e[s] !== n[s]) return !1;\n return !0;\n }\n if (e.constructor === RegExp) return e.source === n.source && e.flags === n.flags;\n if (e.valueOf !== Object.prototype.valueOf) return e.valueOf() === n.valueOf();\n if (e.toString !== Object.prototype.toString) return e.toString() === n.toString();\n if (o = Object.keys(e), r = o.length, r !== Object.keys(n).length) return !1;\n for (s = r; s-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(n, o[s])) return !1;\n for (s = r; s-- !== 0; ) {\n var i = o[s];\n if (!(i === \"_owner\" && e.$$typeof) && !t(e[i], n[i]))\n return !1;\n }\n return !0;\n }\n return e !== e && n !== n;\n }), Ao;\n}\nvar J1 = q1();\nconst G1 = /* @__PURE__ */ $f(J1);\nvar Dr = { exports: {} }, No = {};\nvar Qa;\nfunction Y1() {\n if (Qa) return No;\n Qa = 1;\n var t = Ge, e = al();\n function n(c, d) {\n return c === d && (c !== 0 || 1 / c === 1 / d) || c !== c && d !== d;\n }\n var r = typeof Object.is == \"function\" ? Object.is : n, s = e.useSyncExternalStore, o = t.useRef, i = t.useEffect, l = t.useMemo, a = t.useDebugValue;\n return No.useSyncExternalStoreWithSelector = function(c, d, u, f, h) {\n var p = o(null);\n if (p.current === null) {\n var m = { hasValue: !1, value: null };\n p.current = m;\n } else m = p.current;\n p = l(\n function() {\n function y(E) {\n if (!x) {\n if (x = !0, k = E, E = f(E), h !== void 0 && m.hasValue) {\n var S = m.value;\n if (h(S, E))\n return T = S;\n }\n return T = E;\n }\n if (S = T, r(k, E)) return S;\n var C = f(E);\n return h !== void 0 && h(S, C) ? (k = E, S) : (k = E, T = C);\n }\n var x = !1, k, T, b = u === void 0 ? null : u;\n return [\n function() {\n return y(d());\n },\n b === null ? void 0 : function() {\n return y(b());\n }\n ];\n },\n [d, u, f, h]\n );\n var g = s(c, p[0], p[1]);\n return i(\n function() {\n m.hasValue = !0, m.value = g;\n },\n [g]\n ), a(g), g;\n }, No;\n}\nvar Oo = {};\nvar Za;\nfunction X1() {\n return Za || (Za = 1, process.env.NODE_ENV !== \"production\" && (function() {\n function t(c, d) {\n return c === d && (c !== 0 || 1 / c === 1 / d) || c !== c && d !== d;\n }\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < \"u\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == \"function\" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var e = Ge, n = al(), r = typeof Object.is == \"function\" ? Object.is : t, s = n.useSyncExternalStore, o = e.useRef, i = e.useEffect, l = e.useMemo, a = e.useDebugValue;\n Oo.useSyncExternalStoreWithSelector = function(c, d, u, f, h) {\n var p = o(null);\n if (p.current === null) {\n var m = { hasValue: !1, value: null };\n p.current = m;\n } else m = p.current;\n p = l(\n function() {\n function y(E) {\n if (!x) {\n if (x = !0, k = E, E = f(E), h !== void 0 && m.hasValue) {\n var S = m.value;\n if (h(S, E))\n return T = S;\n }\n return T = E;\n }\n if (S = T, r(k, E))\n return S;\n var C = f(E);\n return h !== void 0 && h(S, C) ? (k = E, S) : (k = E, T = C);\n }\n var x = !1, k, T, b = u === void 0 ? null : u;\n return [\n function() {\n return y(d());\n },\n b === null ? void 0 : function() {\n return y(b());\n }\n ];\n },\n [d, u, f, h]\n );\n var g = s(c, p[0], p[1]);\n return i(\n function() {\n m.hasValue = !0, m.value = g;\n },\n [g]\n ), a(g), g;\n }, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < \"u\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == \"function\" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })()), Oo;\n}\nvar ec;\nfunction Q1() {\n return ec || (ec = 1, process.env.NODE_ENV === \"production\" ? Dr.exports = Y1() : Dr.exports = X1()), Dr.exports;\n}\nvar Z1 = Q1(), ek = (...t) => (e) => {\n t.forEach((n) => {\n typeof n == \"function\" ? n(e) : n && (n.current = e);\n });\n}, tk = ({ contentComponent: t }) => {\n const e = uf.useSyncExternalStore(\n t.subscribe,\n t.getSnapshot,\n t.getServerSnapshot\n );\n return /* @__PURE__ */ v.jsx(v.Fragment, { children: Object.values(e) });\n};\nfunction nk() {\n const t = /* @__PURE__ */ new Set();\n let e = {};\n return {\n /**\n * Subscribe to the editor instance's changes.\n */\n subscribe(n) {\n return t.add(n), () => {\n t.delete(n);\n };\n },\n getSnapshot() {\n return e;\n },\n getServerSnapshot() {\n return e;\n },\n /**\n * Adds a new NodeView Renderer to the editor.\n */\n setRenderer(n, r) {\n e = {\n ...e,\n [n]: zf.createPortal(r.reactElement, r.element, n)\n }, t.forEach((s) => s());\n },\n /**\n * Removes a NodeView Renderer from the editor.\n */\n removeRenderer(n) {\n const r = { ...e };\n delete r[n], e = r, t.forEach((s) => s());\n }\n };\n}\nvar rk = class extends Ge.Component {\n constructor(t) {\n var e;\n super(t), this.editorContentRef = Ge.createRef(), this.initialized = !1, this.state = {\n hasContentComponentInitialized: !!((e = t.editor) != null && e.contentComponent)\n };\n }\n componentDidMount() {\n this.init();\n }\n componentDidUpdate() {\n this.init();\n }\n init() {\n const t = this.props.editor;\n if (t && !t.isDestroyed && t.options.element) {\n if (t.contentComponent)\n return;\n const e = this.editorContentRef.current;\n e.append(t.view.dom), t.setOptions({\n element: e\n }), t.contentComponent = nk(), this.state.hasContentComponentInitialized || (this.unsubscribeToContentComponent = t.contentComponent.subscribe(() => {\n this.setState((n) => n.hasContentComponentInitialized ? n : {\n hasContentComponentInitialized: !0\n }), this.unsubscribeToContentComponent && this.unsubscribeToContentComponent();\n })), t.createNodeViews(), this.initialized = !0;\n }\n }\n componentWillUnmount() {\n var t;\n const e = this.props.editor;\n if (e) {\n this.initialized = !1, e.isDestroyed || e.view.setProps({\n nodeViews: {}\n }), this.unsubscribeToContentComponent && this.unsubscribeToContentComponent(), e.contentComponent = null;\n try {\n if (!((t = e.view.dom) != null && t.firstChild))\n return;\n const n = document.createElement(\"div\");\n n.append(e.view.dom), e.setOptions({\n element: n\n });\n } catch {\n }\n }\n }\n render() {\n const { editor: t, innerRef: e, ...n } = this.props;\n return /* @__PURE__ */ v.jsxs(v.Fragment, { children: [\n /* @__PURE__ */ v.jsx(\"div\", { ref: ek(e, this.editorContentRef), ...n }),\n t?.contentComponent && /* @__PURE__ */ v.jsx(tk, { contentComponent: t.contentComponent })\n ] });\n }\n}, sk = yi(\n (t, e) => {\n const n = Ge.useMemo(() => Math.floor(Math.random() * 4294967295).toString(), [t.editor]);\n return Ge.createElement(rk, {\n key: n,\n innerRef: e,\n ...t\n });\n }\n), ok = Ge.memo(sk), ik = typeof window < \"u\" ? If : Ds, lk = class {\n constructor(t) {\n this.transactionNumber = 0, this.lastTransactionNumber = 0, this.subscribers = /* @__PURE__ */ new Set(), this.editor = t, this.lastSnapshot = { editor: t, transactionNumber: 0 }, this.getSnapshot = this.getSnapshot.bind(this), this.getServerSnapshot = this.getServerSnapshot.bind(this), this.watch = this.watch.bind(this), this.subscribe = this.subscribe.bind(this);\n }\n /**\n * Get the current editor instance.\n */\n getSnapshot() {\n return this.transactionNumber === this.lastTransactionNumber ? this.lastSnapshot : (this.lastTransactionNumber = this.transactionNumber, this.lastSnapshot = { editor: this.editor, transactionNumber: this.transactionNumber }, this.lastSnapshot);\n }\n /**\n * Always disable the editor on the server-side.\n */\n getServerSnapshot() {\n return { editor: null, transactionNumber: 0 };\n }\n /**\n * Subscribe to the editor instance's changes.\n */\n subscribe(t) {\n return this.subscribers.add(t), () => {\n this.subscribers.delete(t);\n };\n }\n /**\n * Watch the editor instance for changes.\n */\n watch(t) {\n if (this.editor = t, this.editor) {\n const e = () => {\n this.transactionNumber += 1, this.subscribers.forEach((r) => r());\n }, n = this.editor;\n return n.on(\"transaction\", e), () => {\n n.off(\"transaction\", e);\n };\n }\n }\n};\nfunction ff(t) {\n var e;\n const [n] = Jt(() => new lk(t.editor)), r = Z1.useSyncExternalStoreWithSelector(\n n.subscribe,\n n.getSnapshot,\n n.getServerSnapshot,\n t.selector,\n (e = t.equalityFn) != null ? e : G1\n );\n return ik(() => n.watch(t.editor), [t.editor, n]), gc(r), r;\n}\nvar tc = process.env.NODE_ENV !== \"production\", mi = typeof window > \"u\", ak = mi || !!(typeof window < \"u\" && window.next), ck = class hf {\n constructor(e) {\n this.editor = null, this.subscriptions = /* @__PURE__ */ new Set(), this.isComponentMounted = !1, this.previousDeps = null, this.instanceId = \"\", this.options = e, this.subscriptions = /* @__PURE__ */ new Set(), this.setEditor(this.getInitialEditor()), this.scheduleDestroy(), this.getEditor = this.getEditor.bind(this), this.getServerSnapshot = this.getServerSnapshot.bind(this), this.subscribe = this.subscribe.bind(this), this.refreshEditorInstance = this.refreshEditorInstance.bind(this), this.scheduleDestroy = this.scheduleDestroy.bind(this), this.onRender = this.onRender.bind(this), this.createEditor = this.createEditor.bind(this);\n }\n setEditor(e) {\n this.editor = e, this.instanceId = Math.random().toString(36).slice(2, 9), this.subscriptions.forEach((n) => n());\n }\n getInitialEditor() {\n if (this.options.current.immediatelyRender === void 0) {\n if (mi || ak) {\n if (tc)\n throw new Error(\n \"Tiptap Error: SSR has been detected, please set `immediatelyRender` explicitly to `false` to avoid hydration mismatches.\"\n );\n return null;\n }\n return this.createEditor();\n }\n if (this.options.current.immediatelyRender && mi && tc)\n throw new Error(\n \"Tiptap Error: SSR has been detected, and `immediatelyRender` has been set to `true` this is an unsupported configuration that may result in errors, explicitly set `immediatelyRender` to `false` to avoid hydration mismatches.\"\n );\n return this.options.current.immediatelyRender ? this.createEditor() : null;\n }\n /**\n * Create a new editor instance. And attach event listeners.\n */\n createEditor() {\n const e = {\n ...this.options.current,\n // Always call the most recent version of the callback function by default\n onBeforeCreate: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onBeforeCreate) == null ? void 0 : o.call(s, ...r);\n },\n onBlur: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onBlur) == null ? void 0 : o.call(s, ...r);\n },\n onCreate: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onCreate) == null ? void 0 : o.call(s, ...r);\n },\n onDestroy: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onDestroy) == null ? void 0 : o.call(s, ...r);\n },\n onFocus: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onFocus) == null ? void 0 : o.call(s, ...r);\n },\n onSelectionUpdate: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onSelectionUpdate) == null ? void 0 : o.call(s, ...r);\n },\n onTransaction: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onTransaction) == null ? void 0 : o.call(s, ...r);\n },\n onUpdate: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onUpdate) == null ? void 0 : o.call(s, ...r);\n },\n onContentError: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onContentError) == null ? void 0 : o.call(s, ...r);\n },\n onDrop: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onDrop) == null ? void 0 : o.call(s, ...r);\n },\n onPaste: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onPaste) == null ? void 0 : o.call(s, ...r);\n },\n onDelete: (...r) => {\n var s, o;\n return (o = (s = this.options.current).onDelete) == null ? void 0 : o.call(s, ...r);\n }\n };\n return new Ey(e);\n }\n /**\n * Get the current editor instance.\n */\n getEditor() {\n return this.editor;\n }\n /**\n * Always disable the editor on the server-side.\n */\n getServerSnapshot() {\n return null;\n }\n /**\n * Subscribe to the editor instance's changes.\n */\n subscribe(e) {\n return this.subscriptions.add(e), () => {\n this.subscriptions.delete(e);\n };\n }\n static compareOptions(e, n) {\n return Object.keys(e).every((r) => [\n \"onCreate\",\n \"onBeforeCreate\",\n \"onDestroy\",\n \"onUpdate\",\n \"onTransaction\",\n \"onFocus\",\n \"onBlur\",\n \"onSelectionUpdate\",\n \"onContentError\",\n \"onDrop\",\n \"onPaste\"\n ].includes(r) ? !0 : r === \"extensions\" && e.extensions && n.extensions ? e.extensions.length !== n.extensions.length ? !1 : e.extensions.every((s, o) => {\n var i;\n return s === ((i = n.extensions) == null ? void 0 : i[o]);\n }) : e[r] === n[r]);\n }\n /**\n * On each render, we will create, update, or destroy the editor instance.\n * @param deps The dependencies to watch for changes\n * @returns A cleanup function\n */\n onRender(e) {\n return () => (this.isComponentMounted = !0, clearTimeout(this.scheduledDestructionTimeout), this.editor && !this.editor.isDestroyed && e.length === 0 ? hf.compareOptions(this.options.current, this.editor.options) || this.editor.setOptions({\n ...this.options.current,\n editable: this.editor.isEditable\n }) : this.refreshEditorInstance(e), () => {\n this.isComponentMounted = !1, this.scheduleDestroy();\n });\n }\n /**\n * Recreate the editor instance if the dependencies have changed.\n */\n refreshEditorInstance(e) {\n if (this.editor && !this.editor.isDestroyed) {\n if (this.previousDeps === null) {\n this.previousDeps = e;\n return;\n }\n if (this.previousDeps.length === e.length && this.previousDeps.every((r, s) => r === e[s]))\n return;\n }\n this.editor && !this.editor.isDestroyed && this.editor.destroy(), this.setEditor(this.createEditor()), this.previousDeps = e;\n }\n /**\n * Schedule the destruction of the editor instance.\n * This will only destroy the editor if it was not mounted on the next tick.\n * This is to avoid destroying the editor instance when it's actually still mounted.\n */\n scheduleDestroy() {\n const e = this.instanceId, n = this.editor;\n this.scheduledDestructionTimeout = setTimeout(() => {\n if (this.isComponentMounted && this.instanceId === e) {\n n && n.setOptions(this.options.current);\n return;\n }\n n && !n.isDestroyed && (n.destroy(), this.instanceId === e && this.setEditor(null));\n }, 1);\n }\n};\nfunction dk(t = {}, e = []) {\n const n = Qn(t);\n n.current = t;\n const [r] = Jt(() => new ck(n)), s = uf.useSyncExternalStore(\n r.subscribe,\n r.getEditor,\n r.getServerSnapshot\n );\n return gc(s), Ds(r.onRender(e)), ff({\n editor: s,\n selector: ({ transactionNumber: o }) => t.shouldRerenderOnTransaction === !1 || t.shouldRerenderOnTransaction === void 0 ? null : t.immediatelyRender && o === 0 ? 0 : o + 1\n }), s;\n}\nvar uk = mc({\n editor: null\n});\nuk.Consumer;\nvar pf = mc({\n onDragStart: () => {\n },\n nodeViewContentChildren: void 0,\n nodeViewContentRef: () => {\n }\n}), fk = () => Df(pf), Ro = Ge.forwardRef((t, e) => {\n const { onDragStart: n } = fk(), r = t.as || \"div\";\n return (\n // @ts-ignore\n /* @__PURE__ */ v.jsx(\n r,\n {\n ...t,\n ref: e,\n \"data-node-view-wrapper\": \"\",\n onDragStart: n,\n style: {\n whiteSpace: \"normal\",\n ...t.style\n }\n }\n )\n );\n});\nfunction nc(t) {\n return !!(typeof t == \"function\" && t.prototype && t.prototype.isReactComponent);\n}\nfunction rc(t) {\n return !!(typeof t == \"object\" && t.$$typeof && (t.$$typeof.toString() === \"Symbol(react.forward_ref)\" || t.$$typeof.description === \"react.forward_ref\"));\n}\nfunction hk(t) {\n return !!(typeof t == \"object\" && t.$$typeof && (t.$$typeof.toString() === \"Symbol(react.memo)\" || t.$$typeof.description === \"react.memo\"));\n}\nfunction pk(t) {\n if (nc(t) || rc(t))\n return !0;\n if (hk(t)) {\n const e = t.type;\n if (e)\n return nc(e) || rc(e);\n }\n return !1;\n}\nfunction mk() {\n try {\n if (ul)\n return parseInt(ul.split(\".\")[0], 10) >= 19;\n } catch {\n }\n return !1;\n}\nvar gk = class {\n /**\n * Immediately creates element and renders the provided React component.\n */\n constructor(t, { editor: e, props: n = {}, as: r = \"div\", className: s = \"\" }) {\n this.ref = null, this.id = Math.floor(Math.random() * 4294967295).toString(), this.component = t, this.editor = e, this.props = n, this.element = document.createElement(r), this.element.classList.add(\"react-renderer\"), s && this.element.classList.add(...s.split(\" \")), this.editor.isInitialized ? Bf(() => {\n this.render();\n }) : queueMicrotask(() => {\n this.render();\n });\n }\n /**\n * Render the React component.\n */\n render() {\n var t;\n const e = this.component, n = this.props, r = this.editor, s = mk(), o = pk(e), i = { ...n };\n i.ref && !(s || o) && delete i.ref, !i.ref && (s || o) && (i.ref = (l) => {\n this.ref = l;\n }), this.reactElement = /* @__PURE__ */ v.jsx(e, { ...i }), (t = r?.contentComponent) == null || t.setRenderer(this.id, this);\n }\n /**\n * Re-renders the React component with new props.\n */\n updateProps(t = {}) {\n this.props = {\n ...this.props,\n ...t\n }, this.render();\n }\n /**\n * Destroy the React component.\n */\n destroy() {\n var t;\n const e = this.editor;\n (t = e?.contentComponent) == null || t.removeRenderer(this.id);\n try {\n this.element && this.element.parentNode && this.element.parentNode.removeChild(this.element);\n } catch {\n }\n }\n /**\n * Update the attributes of the element that holds the React component.\n */\n updateAttributes(t) {\n Object.keys(t).forEach((e) => {\n this.element.setAttribute(e, t[e]);\n });\n }\n};\nGe.createContext({\n markViewContentRef: () => {\n }\n});\nvar yk = class extends $y {\n constructor(t, e, n) {\n if (super(t, e, n), !this.node.isLeaf) {\n this.options.contentDOMElementTag ? this.contentDOMElement = document.createElement(this.options.contentDOMElementTag) : this.contentDOMElement = document.createElement(this.node.isInline ? \"span\" : \"div\"), this.contentDOMElement.dataset.nodeViewContentReact = \"\", this.contentDOMElement.dataset.nodeViewWrapper = \"\", this.contentDOMElement.style.whiteSpace = \"inherit\";\n const r = this.dom.querySelector(\"[data-node-view-content]\");\n if (!r)\n return;\n r.appendChild(this.contentDOMElement);\n }\n }\n /**\n * Setup the React component.\n * Called on initialization.\n */\n mount() {\n const t = {\n editor: this.editor,\n node: this.node,\n decorations: this.decorations,\n innerDecorations: this.innerDecorations,\n view: this.view,\n selected: !1,\n extension: this.extension,\n HTMLAttributes: this.HTMLAttributes,\n getPos: () => this.getPos(),\n updateAttributes: (a = {}) => this.updateAttributes(a),\n deleteNode: () => this.deleteNode(),\n ref: Of()\n };\n if (!this.component.displayName) {\n const a = (c) => c.charAt(0).toUpperCase() + c.substring(1);\n this.component.displayName = a(this.extension.name);\n }\n const r = { onDragStart: this.onDragStart.bind(this), nodeViewContentRef: (a) => {\n a && this.contentDOMElement && a.firstChild !== this.contentDOMElement && (a.hasAttribute(\"data-node-view-wrapper\") && a.removeAttribute(\"data-node-view-wrapper\"), a.appendChild(this.contentDOMElement));\n } }, s = this.component, o = Rf((a) => /* @__PURE__ */ v.jsx(pf.Provider, { value: r, children: Vr(s, a) }));\n o.displayName = \"ReactNodeView\";\n let i = this.node.isInline ? \"span\" : \"div\";\n this.options.as && (i = this.options.as);\n const { className: l = \"\" } = this.options;\n this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this), this.renderer = new gk(o, {\n editor: this.editor,\n props: t,\n as: i,\n className: `node-${this.node.type.name} ${l}`.trim()\n }), this.editor.on(\"selectionUpdate\", this.handleSelectionUpdate), this.updateElementAttributes();\n }\n /**\n * Return the DOM element.\n * This is the element that will be used to display the node view.\n */\n get dom() {\n var t;\n if (this.renderer.element.firstElementChild && !((t = this.renderer.element.firstElementChild) != null && t.hasAttribute(\"data-node-view-wrapper\")))\n throw Error(\"Please use the NodeViewWrapper component for your node view.\");\n return this.renderer.element;\n }\n /**\n * Return the content DOM element.\n * This is the element that will be used to display the rich-text content of the node.\n */\n get contentDOM() {\n return this.node.isLeaf ? null : this.contentDOMElement;\n }\n /**\n * On editor selection update, check if the node is selected.\n * If it is, call `selectNode`, otherwise call `deselectNode`.\n */\n handleSelectionUpdate() {\n const { from: t, to: e } = this.editor.state.selection, n = this.getPos();\n if (typeof n == \"number\")\n if (t <= n && e >= n + this.node.nodeSize) {\n if (this.renderer.props.selected)\n return;\n this.selectNode();\n } else {\n if (!this.renderer.props.selected)\n return;\n this.deselectNode();\n }\n }\n /**\n * On update, update the React component.\n * To prevent unnecessary updates, the `update` option can be used.\n */\n update(t, e, n) {\n const r = (s) => {\n this.renderer.updateProps(s), typeof this.options.attrs == \"function\" && this.updateElementAttributes();\n };\n if (t.type !== this.node.type)\n return !1;\n if (typeof this.options.update == \"function\") {\n const s = this.node, o = this.decorations, i = this.innerDecorations;\n return this.node = t, this.decorations = e, this.innerDecorations = n, this.options.update({\n oldNode: s,\n oldDecorations: o,\n newNode: t,\n newDecorations: e,\n oldInnerDecorations: i,\n innerDecorations: n,\n updateProps: () => r({ node: t, decorations: e, innerDecorations: n })\n });\n }\n return t === this.node && this.decorations === e && this.innerDecorations === n || (this.node = t, this.decorations = e, this.innerDecorations = n, r({ node: t, decorations: e, innerDecorations: n })), !0;\n }\n /**\n * Select the node.\n * Add the `selected` prop and the `ProseMirror-selectednode` class.\n */\n selectNode() {\n this.renderer.updateProps({\n selected: !0\n }), this.renderer.element.classList.add(\"ProseMirror-selectednode\");\n }\n /**\n * Deselect the node.\n * Remove the `selected` prop and the `ProseMirror-selectednode` class.\n */\n deselectNode() {\n this.renderer.updateProps({\n selected: !1\n }), this.renderer.element.classList.remove(\"ProseMirror-selectednode\");\n }\n /**\n * Destroy the React component instance.\n */\n destroy() {\n this.renderer.destroy(), this.editor.off(\"selectionUpdate\", this.handleSelectionUpdate), this.contentDOMElement = null;\n }\n /**\n * Update the attributes of the top-level element that holds the React component.\n * Applying the attributes defined in the `attrs` option.\n */\n updateElementAttributes() {\n if (this.options.attrs) {\n let t = {};\n if (typeof this.options.attrs == \"function\") {\n const e = this.editor.extensionManager.attributes, n = lr(this.node, e);\n t = this.options.attrs({ node: this.node, HTMLAttributes: n });\n } else\n t = this.options.attrs;\n this.renderer.updateAttributes(t);\n }\n }\n};\nfunction bk(t, e) {\n return (n) => n.editor.contentComponent ? new yk(t, n, e) : {};\n}\nfunction kk(t) {\n const e = Is.c(23), {\n node: n,\n updateAttributes: r\n } = t, s = Qn(null), o = Qn(null), [i, l] = Jt(!1), [a, c] = Jt(!1), [d, u] = Jt(!1), f = n.attrs.src;\n if (!f) {\n let z;\n return e[0] === Symbol.for(\"react.memo_cache_sentinel\") ? (z = /* @__PURE__ */ v.jsx(Ro, { as: \"div\", className: \"resizable-image-error\", children: \"이미지 소스가 없습니다.\" }), e[0] = z) : z = e[0], z;\n }\n if (d) {\n let z;\n e[1] !== f ? (z = f?.substring(0, 50), e[1] = f, e[2] = z) : z = e[2];\n let U;\n return e[3] !== z ? (U = /* @__PURE__ */ v.jsxs(Ro, { as: \"div\", className: \"resizable-image-error\", children: [\n \"이미지를 불러올 수 없습니다: \",\n z,\n \"...\"\n ] }), e[3] = z, e[4] = U) : U = e[4], U;\n }\n let h;\n e[5] !== r ? (h = (z, U) => {\n if (z.button !== 0)\n return;\n z.preventDefault(), l(!0);\n const ue = z.clientX, X = z.clientY, _ = s.current?.offsetWidth || 0, J = s.current?.offsetHeight || 0, te = J / _, R = (Le) => {\n const Ee = Le.clientX - ue, Pe = Le.clientY - X;\n let j = _;\n e: switch (U) {\n case \"se\":\n case \"e\": {\n j = Math.max(100, _ + Ee);\n break e;\n }\n case \"sw\":\n case \"w\": {\n j = Math.max(100, _ - Ee);\n break e;\n }\n case \"ne\":\n case \"n\": {\n j = Math.max(100, _ + Ee);\n break e;\n }\n case \"nw\": {\n j = Math.max(100, _ - Ee);\n break e;\n }\n case \"s\":\n j = Math.max(100 * te, J + Pe) / te;\n }\n s.current && (s.current.style.width = `${j}px`, s.current.style.height = `${j * te}px`);\n }, Ie = () => {\n l(!1), s.current && r({\n width: s.current.offsetWidth,\n height: s.current.offsetHeight\n }), document.removeEventListener(\"mousemove\", R), document.removeEventListener(\"mouseup\", Ie);\n };\n document.addEventListener(\"mousemove\", R), document.addEventListener(\"mouseup\", Ie);\n }, e[5] = r, e[6] = h) : h = e[6];\n const p = h;\n let m;\n e[7] === Symbol.for(\"react.memo_cache_sentinel\") ? (m = () => {\n c(!0);\n }, e[7] = m) : m = e[7];\n const g = m;\n let y;\n e[8] === Symbol.for(\"react.memo_cache_sentinel\") ? (y = (z) => {\n o.current && !o.current.contains(z.target) && c(!1);\n }, e[8] = y) : y = e[8];\n const x = y;\n let k;\n e[9] === Symbol.for(\"react.memo_cache_sentinel\") ? (k = () => u(!0), e[9] = k) : k = e[9];\n const T = `resizable-image ${i ? \"resizing\" : \"\"} ${a ? \"selected\" : \"\"}`, b = n.attrs.width ? `${n.attrs.width}px` : \"auto\", E = n.attrs.height ? `${n.attrs.height}px` : \"auto\";\n let S;\n e[10] !== b || e[11] !== E ? (S = {\n width: b,\n height: E\n }, e[10] = b, e[11] = E, e[12] = S) : S = e[12];\n let C;\n e[13] !== f || e[14] !== T || e[15] !== S ? (C = /* @__PURE__ */ v.jsx(\"img\", { ref: s, src: f, alt: \"inserted image\", onClick: g, onError: k, className: T, style: S, draggable: \"false\" }), e[13] = f, e[14] = T, e[15] = S, e[16] = C) : C = e[16];\n let L;\n e[17] !== p || e[18] !== a ? (L = a && /* @__PURE__ */ v.jsxs(v.Fragment, { children: [\n /* @__PURE__ */ v.jsx(\"div\", { className: \"resizable-image-border\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"nw\"), className: \"resize-handle tl\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"n\"), className: \"resize-handle t\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"ne\"), className: \"resize-handle tr\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"w\"), className: \"resize-handle l\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"e\"), className: \"resize-handle r\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"sw\"), className: \"resize-handle bl\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"s\"), className: \"resize-handle b\" }),\n /* @__PURE__ */ v.jsx(\"div\", { onMouseDown: (z) => p(z, \"se\"), className: \"resize-handle br\" })\n ] }), e[17] = p, e[18] = a, e[19] = L) : L = e[19];\n let W;\n return e[20] !== L || e[21] !== C ? (W = /* @__PURE__ */ v.jsx(Ro, { as: \"div\", onClick: x, className: \"resizable-image-wrapper\", draggable: \"true\", \"data-drag-handle\": !0, children: /* @__PURE__ */ v.jsxs(\"div\", { ref: o, className: \"resizable-image-container\", onClick: xk, children: [\n C,\n L\n ] }) }), e[20] = L, e[21] = C, e[22] = W) : W = e[22], W;\n}\nfunction xk(t) {\n return t.stopPropagation();\n}\nconst wk = W1.extend({\n addAttributes() {\n return {\n src: {\n default: null,\n parseHTML: (t) => {\n const e = t.getAttribute(\"src\");\n return console.log(\"Parsing image src:\", e), e;\n },\n renderHTML: (t) => ({\n src: t.src\n })\n },\n alt: {\n default: null,\n parseHTML: (t) => t.getAttribute(\"alt\"),\n renderHTML: (t) => ({\n alt: t.alt || \"image\"\n })\n },\n title: {\n default: null,\n parseHTML: (t) => t.getAttribute(\"title\"),\n renderHTML: (t) => ({\n title: t.title\n })\n },\n width: {\n default: null,\n parseHTML: (t) => {\n const e = t.getAttribute(\"width\");\n return e ? parseInt(e, 10) : null;\n },\n renderHTML: (t) => ({\n width: t.width\n })\n },\n height: {\n default: null,\n parseHTML: (t) => {\n const e = t.getAttribute(\"height\");\n return e ? parseInt(e, 10) : null;\n },\n renderHTML: (t) => ({\n height: t.height\n })\n }\n };\n },\n addNodeView() {\n return bk(kk);\n },\n // Enable drag and drop\n draggable: !0,\n // Handle clipboard serialization for Ctrl+C\n addStorage() {\n return {\n clipboardTextSerializer: (t) => t.attrs.src || \"\"\n };\n },\n renderHTML({\n HTMLAttributes: t\n }) {\n return [\"img\", {\n ...t,\n class: \"resizable-image\"\n }];\n }\n}), mf = [j1.configure({\n paragraph: {\n HTMLAttributes: {\n class: \"tiptap-paragraph\"\n }\n },\n heading: {\n levels: [1, 2, 3]\n },\n bulletList: {\n HTMLAttributes: {\n class: \"tiptap-bullet-list\"\n }\n },\n orderedList: {\n HTMLAttributes: {\n class: \"tiptap-ordered-list\"\n }\n },\n codeBlock: {\n HTMLAttributes: {\n class: \"tiptap-code-block\"\n }\n },\n code: {\n HTMLAttributes: {\n class: \"tiptap-inline-code\"\n }\n },\n blockquote: {\n HTMLAttributes: {\n class: \"tiptap-blockquote\"\n }\n }\n}), l0, vu, Uy, Gy.configure({\n multicolor: !0\n}), i0.configure({\n types: [\"heading\", \"paragraph\"]\n}), wk, $u.configure({\n resizable: !0\n}), s0, r0, n0];\nfunction gf(t) {\n var e, n, r = \"\";\n if (typeof t == \"string\" || typeof t == \"number\") r += t;\n else if (typeof t == \"object\") if (Array.isArray(t)) {\n var s = t.length;\n for (e = 0; e < s; e++) t[e] && (n = gf(t[e])) && (r && (r += \" \"), r += n);\n } else for (n in t) t[n] && (r && (r += \" \"), r += n);\n return r;\n}\nfunction Sk() {\n for (var t, e, n = 0, r = \"\", s = arguments.length; n < s; n++) (t = arguments[n]) && (e = gf(t)) && (r && (r += \" \"), r += e);\n return r;\n}\nconst Ck = (t, e) => {\n const n = new Array(t.length + e.length);\n for (let r = 0; r < t.length; r++)\n n[r] = t[r];\n for (let r = 0; r < e.length; r++)\n n[t.length + r] = e[r];\n return n;\n}, vk = (t, e) => ({\n classGroupId: t,\n validator: e\n}), yf = (t = /* @__PURE__ */ new Map(), e = null, n) => ({\n nextPart: t,\n validators: e,\n classGroupId: n\n}), Rs = \"-\", sc = [], Mk = \"arbitrary..\", Tk = (t) => {\n const e = Ak(t), {\n conflictingClassGroups: n,\n conflictingClassGroupModifiers: r\n } = t;\n return {\n getClassGroupId: (i) => {\n if (i.startsWith(\"[\") && i.endsWith(\"]\"))\n return Ek(i);\n const l = i.split(Rs), a = l[0] === \"\" && l.length > 1 ? 1 : 0;\n return bf(l, a, e);\n },\n getConflictingClassGroupIds: (i, l) => {\n if (l) {\n const a = r[i], c = n[i];\n return a ? c ? Ck(c, a) : a : c || sc;\n }\n return n[i] || sc;\n }\n };\n}, bf = (t, e, n) => {\n if (t.length - e === 0)\n return n.classGroupId;\n const s = t[e], o = n.nextPart.get(s);\n if (o) {\n const c = bf(t, e + 1, o);\n if (c) return c;\n }\n const i = n.validators;\n if (i === null)\n return;\n const l = e === 0 ? t.join(Rs) : t.slice(e).join(Rs), a = i.length;\n for (let c = 0; c < a; c++) {\n const d = i[c];\n if (d.validator(l))\n return d.classGroupId;\n }\n}, Ek = (t) => t.slice(1, -1).indexOf(\":\") === -1 ? void 0 : (() => {\n const e = t.slice(1, -1), n = e.indexOf(\":\"), r = e.slice(0, n);\n return r ? Mk + r : void 0;\n})(), Ak = (t) => {\n const {\n theme: e,\n classGroups: n\n } = t;\n return Nk(n, e);\n}, Nk = (t, e) => {\n const n = yf();\n for (const r in t) {\n const s = t[r];\n cl(s, n, r, e);\n }\n return n;\n}, cl = (t, e, n, r) => {\n const s = t.length;\n for (let o = 0; o < s; o++) {\n const i = t[o];\n Ok(i, e, n, r);\n }\n}, Ok = (t, e, n, r) => {\n if (typeof t == \"string\") {\n Rk(t, e, n);\n return;\n }\n if (typeof t == \"function\") {\n Dk(t, e, n, r);\n return;\n }\n Ik(t, e, n, r);\n}, Rk = (t, e, n) => {\n const r = t === \"\" ? e : kf(e, t);\n r.classGroupId = n;\n}, Dk = (t, e, n, r) => {\n if (Lk(t)) {\n cl(t(r), e, n, r);\n return;\n }\n e.validators === null && (e.validators = []), e.validators.push(vk(n, t));\n}, Ik = (t, e, n, r) => {\n const s = Object.entries(t), o = s.length;\n for (let i = 0; i < o; i++) {\n const [l, a] = s[i];\n cl(a, kf(e, l), n, r);\n }\n}, kf = (t, e) => {\n let n = t;\n const r = e.split(Rs), s = r.length;\n for (let o = 0; o < s; o++) {\n const i = r[o];\n let l = n.nextPart.get(i);\n l || (l = yf(), n.nextPart.set(i, l)), n = l;\n }\n return n;\n}, Lk = (t) => \"isThemeGetter\" in t && t.isThemeGetter === !0, Pk = (t) => {\n if (t < 1)\n return {\n get: () => {\n },\n set: () => {\n }\n };\n let e = 0, n = /* @__PURE__ */ Object.create(null), r = /* @__PURE__ */ Object.create(null);\n const s = (o, i) => {\n n[o] = i, e++, e > t && (e = 0, r = n, n = /* @__PURE__ */ Object.create(null));\n };\n return {\n get(o) {\n let i = n[o];\n if (i !== void 0)\n return i;\n if ((i = r[o]) !== void 0)\n return s(o, i), i;\n },\n set(o, i) {\n o in n ? n[o] = i : s(o, i);\n }\n };\n}, gi = \"!\", oc = \":\", zk = [], ic = (t, e, n, r, s) => ({\n modifiers: t,\n hasImportantModifier: e,\n baseClassName: n,\n maybePostfixModifierPosition: r,\n isExternal: s\n}), Bk = (t) => {\n const {\n prefix: e,\n experimentalParseClassName: n\n } = t;\n let r = (s) => {\n const o = [];\n let i = 0, l = 0, a = 0, c;\n const d = s.length;\n for (let m = 0; m < d; m++) {\n const g = s[m];\n if (i === 0 && l === 0) {\n if (g === oc) {\n o.push(s.slice(a, m)), a = m + 1;\n continue;\n }\n if (g === \"/\") {\n c = m;\n continue;\n }\n }\n g === \"[\" ? i++ : g === \"]\" ? i-- : g === \"(\" ? l++ : g === \")\" && l--;\n }\n const u = o.length === 0 ? s : s.slice(a);\n let f = u, h = !1;\n u.endsWith(gi) ? (f = u.slice(0, -1), h = !0) : (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n u.startsWith(gi) && (f = u.slice(1), h = !0)\n );\n const p = c && c > a ? c - a : void 0;\n return ic(o, h, f, p);\n };\n if (e) {\n const s = e + oc, o = r;\n r = (i) => i.startsWith(s) ? o(i.slice(s.length)) : ic(zk, !1, i, void 0, !0);\n }\n if (n) {\n const s = r;\n r = (o) => n({\n className: o,\n parseClassName: s\n });\n }\n return r;\n}, $k = (t) => {\n const e = /* @__PURE__ */ new Map();\n return t.orderSensitiveModifiers.forEach((n, r) => {\n e.set(n, 1e6 + r);\n }), (n) => {\n const r = [];\n let s = [];\n for (let o = 0; o < n.length; o++) {\n const i = n[o], l = i[0] === \"[\", a = e.has(i);\n l || a ? (s.length > 0 && (s.sort(), r.push(...s), s = []), r.push(i)) : s.push(i);\n }\n return s.length > 0 && (s.sort(), r.push(...s)), r;\n };\n}, Hk = (t) => ({\n cache: Pk(t.cacheSize),\n parseClassName: Bk(t),\n sortModifiers: $k(t),\n ...Tk(t)\n}), _k = /\\s+/, jk = (t, e) => {\n const {\n parseClassName: n,\n getClassGroupId: r,\n getConflictingClassGroupIds: s,\n sortModifiers: o\n } = e, i = [], l = t.trim().split(_k);\n let a = \"\";\n for (let c = l.length - 1; c >= 0; c -= 1) {\n const d = l[c], {\n isExternal: u,\n modifiers: f,\n hasImportantModifier: h,\n baseClassName: p,\n maybePostfixModifierPosition: m\n } = n(d);\n if (u) {\n a = d + (a.length > 0 ? \" \" + a : a);\n continue;\n }\n let g = !!m, y = r(g ? p.substring(0, m) : p);\n if (!y) {\n if (!g) {\n a = d + (a.length > 0 ? \" \" + a : a);\n continue;\n }\n if (y = r(p), !y) {\n a = d + (a.length > 0 ? \" \" + a : a);\n continue;\n }\n g = !1;\n }\n const x = f.length === 0 ? \"\" : f.length === 1 ? f[0] : o(f).join(\":\"), k = h ? x + gi : x, T = k + y;\n if (i.indexOf(T) > -1)\n continue;\n i.push(T);\n const b = s(y, g);\n for (let E = 0; E < b.length; ++E) {\n const S = b[E];\n i.push(k + S);\n }\n a = d + (a.length > 0 ? \" \" + a : a);\n }\n return a;\n}, Vk = (...t) => {\n let e = 0, n, r, s = \"\";\n for (; e < t.length; )\n (n = t[e++]) && (r = xf(n)) && (s && (s += \" \"), s += r);\n return s;\n}, xf = (t) => {\n if (typeof t == \"string\")\n return t;\n let e, n = \"\";\n for (let r = 0; r < t.length; r++)\n t[r] && (e = xf(t[r])) && (n && (n += \" \"), n += e);\n return n;\n}, Fk = (t, ...e) => {\n let n, r, s, o;\n const i = (a) => {\n const c = e.reduce((d, u) => u(d), t());\n return n = Hk(c), r = n.cache.get, s = n.cache.set, o = l, l(a);\n }, l = (a) => {\n const c = r(a);\n if (c)\n return c;\n const d = jk(a, n);\n return s(a, d), d;\n };\n return o = i, (...a) => o(Vk(...a));\n}, Wk = [], de = (t) => {\n const e = (n) => n[t] || Wk;\n return e.isThemeGetter = !0, e;\n}, wf = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i, Sf = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i, Uk = /^\\d+\\/\\d+$/, Kk = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/, qk = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/, Jk = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/, Gk = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/, Yk = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/, gn = (t) => Uk.test(t), H = (t) => !!t && !Number.isNaN(Number(t)), xt = (t) => !!t && Number.isInteger(Number(t)), Do = (t) => t.endsWith(\"%\") && H(t.slice(0, -1)), dt = (t) => Kk.test(t), Xk = () => !0, Qk = (t) => (\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n qk.test(t) && !Jk.test(t)\n), Cf = () => !1, Zk = (t) => Gk.test(t), ex = (t) => Yk.test(t), tx = (t) => !N(t) && !O(t), nx = (t) => In(t, Tf, Cf), N = (t) => wf.test(t), Vt = (t) => In(t, Ef, Qk), Io = (t) => In(t, lx, H), lc = (t) => In(t, vf, Cf), rx = (t) => In(t, Mf, ex), Ir = (t) => In(t, Af, Zk), O = (t) => Sf.test(t), Bn = (t) => Ln(t, Ef), sx = (t) => Ln(t, ax), ac = (t) => Ln(t, vf), ox = (t) => Ln(t, Tf), ix = (t) => Ln(t, Mf), Lr = (t) => Ln(t, Af, !0), In = (t, e, n) => {\n const r = wf.exec(t);\n return r ? r[1] ? e(r[1]) : n(r[2]) : !1;\n}, Ln = (t, e, n = !1) => {\n const r = Sf.exec(t);\n return r ? r[1] ? e(r[1]) : n : !1;\n}, vf = (t) => t === \"position\" || t === \"percentage\", Mf = (t) => t === \"image\" || t === \"url\", Tf = (t) => t === \"length\" || t === \"size\" || t === \"bg-size\", Ef = (t) => t === \"length\", lx = (t) => t === \"number\", ax = (t) => t === \"family-name\", Af = (t) => t === \"shadow\", cx = () => {\n const t = de(\"color\"), e = de(\"font\"), n = de(\"text\"), r = de(\"font-weight\"), s = de(\"tracking\"), o = de(\"leading\"), i = de(\"breakpoint\"), l = de(\"container\"), a = de(\"spacing\"), c = de(\"radius\"), d = de(\"shadow\"), u = de(\"inset-shadow\"), f = de(\"text-shadow\"), h = de(\"drop-shadow\"), p = de(\"blur\"), m = de(\"perspective\"), g = de(\"aspect\"), y = de(\"ease\"), x = de(\"animate\"), k = () => [\"auto\", \"avoid\", \"all\", \"avoid-page\", \"page\", \"left\", \"right\", \"column\"], T = () => [\n \"center\",\n \"top\",\n \"bottom\",\n \"left\",\n \"right\",\n \"top-left\",\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n \"left-top\",\n \"top-right\",\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n \"right-top\",\n \"bottom-right\",\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n \"right-bottom\",\n \"bottom-left\",\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n \"left-bottom\"\n ], b = () => [...T(), O, N], E = () => [\"auto\", \"hidden\", \"clip\", \"visible\", \"scroll\"], S = () => [\"auto\", \"contain\", \"none\"], C = () => [O, N, a], L = () => [gn, \"full\", \"auto\", ...C()], W = () => [xt, \"none\", \"subgrid\", O, N], z = () => [\"auto\", {\n span: [\"full\", xt, O, N]\n }, xt, O, N], U = () => [xt, \"auto\", O, N], ue = () => [\"auto\", \"min\", \"max\", \"fr\", O, N], X = () => [\"start\", \"end\", \"center\", \"between\", \"around\", \"evenly\", \"stretch\", \"baseline\", \"center-safe\", \"end-safe\"], _ = () => [\"start\", \"end\", \"center\", \"stretch\", \"center-safe\", \"end-safe\"], J = () => [\"auto\", ...C()], te = () => [gn, \"auto\", \"full\", \"dvw\", \"dvh\", \"lvw\", \"lvh\", \"svw\", \"svh\", \"min\", \"max\", \"fit\", ...C()], R = () => [t, O, N], Ie = () => [...T(), ac, lc, {\n position: [O, N]\n }], Le = () => [\"no-repeat\", {\n repeat: [\"\", \"x\", \"y\", \"space\", \"round\"]\n }], Ee = () => [\"auto\", \"cover\", \"contain\", ox, nx, {\n size: [O, N]\n }], Pe = () => [Do, Bn, Vt], j = () => [\n // Deprecated since Tailwind CSS v4.0.0\n \"\",\n \"none\",\n \"full\",\n c,\n O,\n N\n ], ie = () => [\"\", H, Bn, Vt], Fe = () => [\"solid\", \"dashed\", \"dotted\", \"double\"], ot = () => [\"normal\", \"multiply\", \"screen\", \"overlay\", \"darken\", \"lighten\", \"color-dodge\", \"color-burn\", \"hard-light\", \"soft-light\", \"difference\", \"exclusion\", \"hue\", \"saturation\", \"color\", \"luminosity\"], Q = () => [H, Do, ac, lc], it = () => [\n // Deprecated since Tailwind CSS v4.0.0\n \"\",\n \"none\",\n p,\n O,\n N\n ], We = () => [\"none\", H, O, N], Ue = () => [\"none\", H, O, N], Xe = () => [H, O, N], Ke = () => [gn, \"full\", ...C()];\n return {\n cacheSize: 500,\n theme: {\n animate: [\"spin\", \"ping\", \"pulse\", \"bounce\"],\n aspect: [\"video\"],\n blur: [dt],\n breakpoint: [dt],\n color: [Xk],\n container: [dt],\n \"drop-shadow\": [dt],\n ease: [\"in\", \"out\", \"in-out\"],\n font: [tx],\n \"font-weight\": [\"thin\", \"extralight\", \"light\", \"normal\", \"medium\", \"semibold\", \"bold\", \"extrabold\", \"black\"],\n \"inset-shadow\": [dt],\n leading: [\"none\", \"tight\", \"snug\", \"normal\", \"relaxed\", \"loose\"],\n perspective: [\"dramatic\", \"near\", \"normal\", \"midrange\", \"distant\", \"none\"],\n radius: [dt],\n shadow: [dt],\n spacing: [\"px\", H],\n text: [dt],\n \"text-shadow\": [dt],\n tracking: [\"tighter\", \"tight\", \"normal\", \"wide\", \"wider\", \"widest\"]\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: [\"auto\", \"square\", gn, N, O, g]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: [\"container\"],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [H, N, O, l]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n \"break-after\": [{\n \"break-after\": k()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n \"break-before\": [{\n \"break-before\": k()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n \"break-inside\": [{\n \"break-inside\": [\"auto\", \"avoid\", \"avoid-page\", \"avoid-column\"]\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n \"box-decoration\": [{\n \"box-decoration\": [\"slice\", \"clone\"]\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: [\"border\", \"content\"]\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\"block\", \"inline-block\", \"inline\", \"flex\", \"inline-flex\", \"table\", \"inline-table\", \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\", \"table-footer-group\", \"table-header-group\", \"table-row-group\", \"table-row\", \"flow-root\", \"grid\", \"inline-grid\", \"contents\", \"list-item\", \"hidden\"],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: [\"sr-only\", \"not-sr-only\"],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: [\"right\", \"left\", \"none\", \"start\", \"end\"]\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: [\"left\", \"right\", \"both\", \"none\", \"start\", \"end\"]\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: [\"isolate\", \"isolation-auto\"],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n \"object-fit\": [{\n object: [\"contain\", \"cover\", \"fill\", \"none\", \"scale-down\"]\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n \"object-position\": [{\n object: b()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: E()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n \"overflow-x\": [{\n \"overflow-x\": E()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n \"overflow-y\": [{\n \"overflow-y\": E()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: S()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n \"overscroll-x\": [{\n \"overscroll-x\": S()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n \"overscroll-y\": [{\n \"overscroll-y\": S()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: [\"static\", \"fixed\", \"absolute\", \"relative\", \"sticky\"],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: L()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n \"inset-x\": [{\n \"inset-x\": L()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n \"inset-y\": [{\n \"inset-y\": L()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: L()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: L()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: L()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: L()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: L()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: L()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: [\"visible\", \"invisible\", \"collapse\"],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [xt, \"auto\", O, N]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [gn, \"full\", \"auto\", l, ...C()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n \"flex-direction\": [{\n flex: [\"row\", \"row-reverse\", \"col\", \"col-reverse\"]\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n \"flex-wrap\": [{\n flex: [\"nowrap\", \"wrap\", \"wrap-reverse\"]\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [H, gn, \"auto\", \"initial\", \"none\", N]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: [\"\", H, O, N]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: [\"\", H, O, N]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [xt, \"first\", \"last\", \"none\", O, N]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n \"grid-cols\": [{\n \"grid-cols\": W()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n \"col-start-end\": [{\n col: z()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n \"col-start\": [{\n \"col-start\": U()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n \"col-end\": [{\n \"col-end\": U()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n \"grid-rows\": [{\n \"grid-rows\": W()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n \"row-start-end\": [{\n row: z()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n \"row-start\": [{\n \"row-start\": U()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n \"row-end\": [{\n \"row-end\": U()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n \"grid-flow\": [{\n \"grid-flow\": [\"row\", \"col\", \"dense\", \"row-dense\", \"col-dense\"]\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n \"auto-cols\": [{\n \"auto-cols\": ue()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n \"auto-rows\": [{\n \"auto-rows\": ue()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: C()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n \"gap-x\": [{\n \"gap-x\": C()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n \"gap-y\": [{\n \"gap-y\": C()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n \"justify-content\": [{\n justify: [...X(), \"normal\"]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n \"justify-items\": [{\n \"justify-items\": [..._(), \"normal\"]\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n \"justify-self\": [{\n \"justify-self\": [\"auto\", ..._()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n \"align-content\": [{\n content: [\"normal\", ...X()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n \"align-items\": [{\n items: [..._(), {\n baseline: [\"\", \"last\"]\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n \"align-self\": [{\n self: [\"auto\", ..._(), {\n baseline: [\"\", \"last\"]\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n \"place-content\": [{\n \"place-content\": X()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n \"place-items\": [{\n \"place-items\": [..._(), \"baseline\"]\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n \"place-self\": [{\n \"place-self\": [\"auto\", ..._()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: C()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: C()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: C()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: C()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: C()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: C()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: C()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: C()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: C()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: J()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: J()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: J()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: J()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: J()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: J()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: J()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: J()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: J()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n \"space-x\": [{\n \"space-x\": C()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n \"space-x-reverse\": [\"space-x-reverse\"],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n \"space-y\": [{\n \"space-y\": C()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n \"space-y-reverse\": [\"space-y-reverse\"],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: te()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [l, \"screen\", ...te()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n \"min-w\": [{\n \"min-w\": [\n l,\n \"screen\",\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n \"none\",\n ...te()\n ]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n \"max-w\": [{\n \"max-w\": [\n l,\n \"screen\",\n \"none\",\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n \"prose\",\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [i]\n },\n ...te()\n ]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [\"screen\", \"lh\", ...te()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n \"min-h\": [{\n \"min-h\": [\"screen\", \"lh\", \"none\", ...te()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n \"max-h\": [{\n \"max-h\": [\"screen\", \"lh\", ...te()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n \"font-size\": [{\n text: [\"base\", n, Bn, Vt]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n \"font-smoothing\": [\"antialiased\", \"subpixel-antialiased\"],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n \"font-style\": [\"italic\", \"not-italic\"],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n \"font-weight\": [{\n font: [r, O, Io]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n \"font-stretch\": [{\n \"font-stretch\": [\"ultra-condensed\", \"extra-condensed\", \"condensed\", \"semi-condensed\", \"normal\", \"semi-expanded\", \"expanded\", \"extra-expanded\", \"ultra-expanded\", Do, N]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n \"font-family\": [{\n font: [sx, N, e]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-normal\": [\"normal-nums\"],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-ordinal\": [\"ordinal\"],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-slashed-zero\": [\"slashed-zero\"],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-figure\": [\"lining-nums\", \"oldstyle-nums\"],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-spacing\": [\"proportional-nums\", \"tabular-nums\"],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n \"fvn-fraction\": [\"diagonal-fractions\", \"stacked-fractions\"],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [s, O, N]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n \"line-clamp\": [{\n \"line-clamp\": [H, \"none\", O, Io]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n o,\n ...C()\n ]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n \"list-image\": [{\n \"list-image\": [\"none\", O, N]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n \"list-style-position\": [{\n list: [\"inside\", \"outside\"]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n \"list-style-type\": [{\n list: [\"disc\", \"decimal\", \"none\", O, N]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n \"text-alignment\": [{\n text: [\"left\", \"center\", \"right\", \"justify\", \"start\", \"end\"]\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n \"placeholder-color\": [{\n placeholder: R()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n \"text-color\": [{\n text: R()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n \"text-decoration\": [\"underline\", \"overline\", \"line-through\", \"no-underline\"],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n \"text-decoration-style\": [{\n decoration: [...Fe(), \"wavy\"]\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n \"text-decoration-thickness\": [{\n decoration: [H, \"from-font\", \"auto\", O, Vt]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n \"text-decoration-color\": [{\n decoration: R()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n \"underline-offset\": [{\n \"underline-offset\": [H, \"auto\", O, N]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n \"text-transform\": [\"uppercase\", \"lowercase\", \"capitalize\", \"normal-case\"],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n \"text-overflow\": [\"truncate\", \"text-ellipsis\", \"text-clip\"],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n \"text-wrap\": [{\n text: [\"wrap\", \"nowrap\", \"balance\", \"pretty\"]\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: C()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n \"vertical-align\": [{\n align: [\"baseline\", \"top\", \"middle\", \"bottom\", \"text-top\", \"text-bottom\", \"sub\", \"super\", O, N]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: [\"normal\", \"nowrap\", \"pre\", \"pre-line\", \"pre-wrap\", \"break-spaces\"]\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: [\"normal\", \"words\", \"all\", \"keep\"]\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: [\"break-word\", \"anywhere\", \"normal\"]\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: [\"none\", \"manual\", \"auto\"]\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: [\"none\", O, N]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n \"bg-attachment\": [{\n bg: [\"fixed\", \"local\", \"scroll\"]\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n \"bg-clip\": [{\n \"bg-clip\": [\"border\", \"padding\", \"content\", \"text\"]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n \"bg-origin\": [{\n \"bg-origin\": [\"border\", \"padding\", \"content\"]\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n \"bg-position\": [{\n bg: Ie()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n \"bg-repeat\": [{\n bg: Le()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n \"bg-size\": [{\n bg: Ee()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n \"bg-image\": [{\n bg: [\"none\", {\n linear: [{\n to: [\"t\", \"tr\", \"r\", \"br\", \"b\", \"bl\", \"l\", \"tl\"]\n }, xt, O, N],\n radial: [\"\", O, N],\n conic: [xt, O, N]\n }, ix, rx]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n \"bg-color\": [{\n bg: R()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-from-pos\": [{\n from: Pe()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-via-pos\": [{\n via: Pe()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-to-pos\": [{\n to: Pe()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-from\": [{\n from: R()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-via\": [{\n via: R()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n \"gradient-to\": [{\n to: R()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: j()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-s\": [{\n \"rounded-s\": j()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-e\": [{\n \"rounded-e\": j()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-t\": [{\n \"rounded-t\": j()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-r\": [{\n \"rounded-r\": j()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-b\": [{\n \"rounded-b\": j()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-l\": [{\n \"rounded-l\": j()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-ss\": [{\n \"rounded-ss\": j()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-se\": [{\n \"rounded-se\": j()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-ee\": [{\n \"rounded-ee\": j()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-es\": [{\n \"rounded-es\": j()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-tl\": [{\n \"rounded-tl\": j()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-tr\": [{\n \"rounded-tr\": j()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-br\": [{\n \"rounded-br\": j()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n \"rounded-bl\": [{\n \"rounded-bl\": j()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w\": [{\n border: ie()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-x\": [{\n \"border-x\": ie()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-y\": [{\n \"border-y\": ie()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-s\": [{\n \"border-s\": ie()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-e\": [{\n \"border-e\": ie()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-t\": [{\n \"border-t\": ie()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-r\": [{\n \"border-r\": ie()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-b\": [{\n \"border-b\": ie()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n \"border-w-l\": [{\n \"border-l\": ie()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n \"divide-x\": [{\n \"divide-x\": ie()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n \"divide-x-reverse\": [\"divide-x-reverse\"],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n \"divide-y\": [{\n \"divide-y\": ie()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n \"divide-y-reverse\": [\"divide-y-reverse\"],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n \"border-style\": [{\n border: [...Fe(), \"hidden\", \"none\"]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n \"divide-style\": [{\n divide: [...Fe(), \"hidden\", \"none\"]\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color\": [{\n border: R()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-x\": [{\n \"border-x\": R()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-y\": [{\n \"border-y\": R()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-s\": [{\n \"border-s\": R()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-e\": [{\n \"border-e\": R()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-t\": [{\n \"border-t\": R()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-r\": [{\n \"border-r\": R()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-b\": [{\n \"border-b\": R()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n \"border-color-l\": [{\n \"border-l\": R()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n \"divide-color\": [{\n divide: R()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n \"outline-style\": [{\n outline: [...Fe(), \"none\", \"hidden\"]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n \"outline-offset\": [{\n \"outline-offset\": [H, O, N]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n \"outline-w\": [{\n outline: [\"\", H, Bn, Vt]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n \"outline-color\": [{\n outline: R()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n \"\",\n \"none\",\n d,\n Lr,\n Ir\n ]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n \"shadow-color\": [{\n shadow: R()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n \"inset-shadow\": [{\n \"inset-shadow\": [\"none\", u, Lr, Ir]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n \"inset-shadow-color\": [{\n \"inset-shadow\": R()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n \"ring-w\": [{\n ring: ie()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n \"ring-w-inset\": [\"ring-inset\"],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n \"ring-color\": [{\n ring: R()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n \"ring-offset-w\": [{\n \"ring-offset\": [H, Vt]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n \"ring-offset-color\": [{\n \"ring-offset\": R()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n \"inset-ring-w\": [{\n \"inset-ring\": ie()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n \"inset-ring-color\": [{\n \"inset-ring\": R()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n \"text-shadow\": [{\n \"text-shadow\": [\"none\", f, Lr, Ir]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n \"text-shadow-color\": [{\n \"text-shadow\": R()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [H, O, N]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n \"mix-blend\": [{\n \"mix-blend\": [...ot(), \"plus-darker\", \"plus-lighter\"]\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n \"bg-blend\": [{\n \"bg-blend\": ot()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n \"mask-clip\": [{\n \"mask-clip\": [\"border\", \"padding\", \"content\", \"fill\", \"stroke\", \"view\"]\n }, \"mask-no-clip\"],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n \"mask-composite\": [{\n mask: [\"add\", \"subtract\", \"intersect\", \"exclude\"]\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n \"mask-image-linear-pos\": [{\n \"mask-linear\": [H]\n }],\n \"mask-image-linear-from-pos\": [{\n \"mask-linear-from\": Q()\n }],\n \"mask-image-linear-to-pos\": [{\n \"mask-linear-to\": Q()\n }],\n \"mask-image-linear-from-color\": [{\n \"mask-linear-from\": R()\n }],\n \"mask-image-linear-to-color\": [{\n \"mask-linear-to\": R()\n }],\n \"mask-image-t-from-pos\": [{\n \"mask-t-from\": Q()\n }],\n \"mask-image-t-to-pos\": [{\n \"mask-t-to\": Q()\n }],\n \"mask-image-t-from-color\": [{\n \"mask-t-from\": R()\n }],\n \"mask-image-t-to-color\": [{\n \"mask-t-to\": R()\n }],\n \"mask-image-r-from-pos\": [{\n \"mask-r-from\": Q()\n }],\n \"mask-image-r-to-pos\": [{\n \"mask-r-to\": Q()\n }],\n \"mask-image-r-from-color\": [{\n \"mask-r-from\": R()\n }],\n \"mask-image-r-to-color\": [{\n \"mask-r-to\": R()\n }],\n \"mask-image-b-from-pos\": [{\n \"mask-b-from\": Q()\n }],\n \"mask-image-b-to-pos\": [{\n \"mask-b-to\": Q()\n }],\n \"mask-image-b-from-color\": [{\n \"mask-b-from\": R()\n }],\n \"mask-image-b-to-color\": [{\n \"mask-b-to\": R()\n }],\n \"mask-image-l-from-pos\": [{\n \"mask-l-from\": Q()\n }],\n \"mask-image-l-to-pos\": [{\n \"mask-l-to\": Q()\n }],\n \"mask-image-l-from-color\": [{\n \"mask-l-from\": R()\n }],\n \"mask-image-l-to-color\": [{\n \"mask-l-to\": R()\n }],\n \"mask-image-x-from-pos\": [{\n \"mask-x-from\": Q()\n }],\n \"mask-image-x-to-pos\": [{\n \"mask-x-to\": Q()\n }],\n \"mask-image-x-from-color\": [{\n \"mask-x-from\": R()\n }],\n \"mask-image-x-to-color\": [{\n \"mask-x-to\": R()\n }],\n \"mask-image-y-from-pos\": [{\n \"mask-y-from\": Q()\n }],\n \"mask-image-y-to-pos\": [{\n \"mask-y-to\": Q()\n }],\n \"mask-image-y-from-color\": [{\n \"mask-y-from\": R()\n }],\n \"mask-image-y-to-color\": [{\n \"mask-y-to\": R()\n }],\n \"mask-image-radial\": [{\n \"mask-radial\": [O, N]\n }],\n \"mask-image-radial-from-pos\": [{\n \"mask-radial-from\": Q()\n }],\n \"mask-image-radial-to-pos\": [{\n \"mask-radial-to\": Q()\n }],\n \"mask-image-radial-from-color\": [{\n \"mask-radial-from\": R()\n }],\n \"mask-image-radial-to-color\": [{\n \"mask-radial-to\": R()\n }],\n \"mask-image-radial-shape\": [{\n \"mask-radial\": [\"circle\", \"ellipse\"]\n }],\n \"mask-image-radial-size\": [{\n \"mask-radial\": [{\n closest: [\"side\", \"corner\"],\n farthest: [\"side\", \"corner\"]\n }]\n }],\n \"mask-image-radial-pos\": [{\n \"mask-radial-at\": T()\n }],\n \"mask-image-conic-pos\": [{\n \"mask-conic\": [H]\n }],\n \"mask-image-conic-from-pos\": [{\n \"mask-conic-from\": Q()\n }],\n \"mask-image-conic-to-pos\": [{\n \"mask-conic-to\": Q()\n }],\n \"mask-image-conic-from-color\": [{\n \"mask-conic-from\": R()\n }],\n \"mask-image-conic-to-color\": [{\n \"mask-conic-to\": R()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n \"mask-mode\": [{\n mask: [\"alpha\", \"luminance\", \"match\"]\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n \"mask-origin\": [{\n \"mask-origin\": [\"border\", \"padding\", \"content\", \"fill\", \"stroke\", \"view\"]\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n \"mask-position\": [{\n mask: Ie()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n \"mask-repeat\": [{\n mask: Le()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n \"mask-size\": [{\n mask: Ee()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n \"mask-type\": [{\n \"mask-type\": [\"alpha\", \"luminance\"]\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n \"mask-image\": [{\n mask: [\"none\", O, N]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n \"\",\n \"none\",\n O,\n N\n ]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: it()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [H, O, N]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [H, O, N]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n \"drop-shadow\": [{\n \"drop-shadow\": [\n // Deprecated since Tailwind CSS v4.0.0\n \"\",\n \"none\",\n h,\n Lr,\n Ir\n ]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n \"drop-shadow-color\": [{\n \"drop-shadow\": R()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [\"\", H, O, N]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n \"hue-rotate\": [{\n \"hue-rotate\": [H, O, N]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [\"\", H, O, N]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [H, O, N]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [\"\", H, O, N]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n \"backdrop-filter\": [{\n \"backdrop-filter\": [\n // Deprecated since Tailwind CSS v3.0.0\n \"\",\n \"none\",\n O,\n N\n ]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n \"backdrop-blur\": [{\n \"backdrop-blur\": it()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n \"backdrop-brightness\": [{\n \"backdrop-brightness\": [H, O, N]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n \"backdrop-contrast\": [{\n \"backdrop-contrast\": [H, O, N]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n \"backdrop-grayscale\": [{\n \"backdrop-grayscale\": [\"\", H, O, N]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n \"backdrop-hue-rotate\": [{\n \"backdrop-hue-rotate\": [H, O, N]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n \"backdrop-invert\": [{\n \"backdrop-invert\": [\"\", H, O, N]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n \"backdrop-opacity\": [{\n \"backdrop-opacity\": [H, O, N]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n \"backdrop-saturate\": [{\n \"backdrop-saturate\": [H, O, N]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n \"backdrop-sepia\": [{\n \"backdrop-sepia\": [\"\", H, O, N]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n \"border-collapse\": [{\n border: [\"collapse\", \"separate\"]\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n \"border-spacing\": [{\n \"border-spacing\": C()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n \"border-spacing-x\": [{\n \"border-spacing-x\": C()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n \"border-spacing-y\": [{\n \"border-spacing-y\": C()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n \"table-layout\": [{\n table: [\"auto\", \"fixed\"]\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: [\"top\", \"bottom\"]\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: [\"\", \"all\", \"colors\", \"opacity\", \"shadow\", \"transform\", \"none\", O, N]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n \"transition-behavior\": [{\n transition: [\"normal\", \"discrete\"]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [H, \"initial\", O, N]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: [\"linear\", \"initial\", y, O, N]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [H, O, N]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: [\"none\", x, O, N]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: [\"hidden\", \"visible\"]\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [m, O, N]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n \"perspective-origin\": [{\n \"perspective-origin\": b()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: We()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n \"rotate-x\": [{\n \"rotate-x\": We()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n \"rotate-y\": [{\n \"rotate-y\": We()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n \"rotate-z\": [{\n \"rotate-z\": We()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: Ue()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n \"scale-x\": [{\n \"scale-x\": Ue()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n \"scale-y\": [{\n \"scale-y\": Ue()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n \"scale-z\": [{\n \"scale-z\": Ue()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n \"scale-3d\": [\"scale-3d\"],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: Xe()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n \"skew-x\": [{\n \"skew-x\": Xe()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n \"skew-y\": [{\n \"skew-y\": Xe()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [O, N, \"\", \"none\", \"gpu\", \"cpu\"]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n \"transform-origin\": [{\n origin: b()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n \"transform-style\": [{\n transform: [\"3d\", \"flat\"]\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: Ke()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n \"translate-x\": [{\n \"translate-x\": Ke()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n \"translate-y\": [{\n \"translate-y\": Ke()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n \"translate-z\": [{\n \"translate-z\": Ke()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n \"translate-none\": [\"translate-none\"],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: R()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: [\"none\", \"auto\"]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n \"caret-color\": [{\n caret: R()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n \"color-scheme\": [{\n scheme: [\"normal\", \"dark\", \"light\", \"light-dark\", \"only-dark\", \"only-light\"]\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: [\"auto\", \"default\", \"pointer\", \"wait\", \"text\", \"move\", \"help\", \"not-allowed\", \"none\", \"context-menu\", \"progress\", \"cell\", \"crosshair\", \"vertical-text\", \"alias\", \"copy\", \"no-drop\", \"grab\", \"grabbing\", \"all-scroll\", \"col-resize\", \"row-resize\", \"n-resize\", \"e-resize\", \"s-resize\", \"w-resize\", \"ne-resize\", \"nw-resize\", \"se-resize\", \"sw-resize\", \"ew-resize\", \"ns-resize\", \"nesw-resize\", \"nwse-resize\", \"zoom-in\", \"zoom-out\", O, N]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n \"field-sizing\": [{\n \"field-sizing\": [\"fixed\", \"content\"]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n \"pointer-events\": [{\n \"pointer-events\": [\"auto\", \"none\"]\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: [\"none\", \"\", \"y\", \"x\"]\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n \"scroll-behavior\": [{\n scroll: [\"auto\", \"smooth\"]\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-m\": [{\n \"scroll-m\": C()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-mx\": [{\n \"scroll-mx\": C()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-my\": [{\n \"scroll-my\": C()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-ms\": [{\n \"scroll-ms\": C()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-me\": [{\n \"scroll-me\": C()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-mt\": [{\n \"scroll-mt\": C()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-mr\": [{\n \"scroll-mr\": C()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-mb\": [{\n \"scroll-mb\": C()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n \"scroll-ml\": [{\n \"scroll-ml\": C()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-p\": [{\n \"scroll-p\": C()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-px\": [{\n \"scroll-px\": C()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-py\": [{\n \"scroll-py\": C()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-ps\": [{\n \"scroll-ps\": C()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-pe\": [{\n \"scroll-pe\": C()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-pt\": [{\n \"scroll-pt\": C()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-pr\": [{\n \"scroll-pr\": C()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-pb\": [{\n \"scroll-pb\": C()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n \"scroll-pl\": [{\n \"scroll-pl\": C()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n \"snap-align\": [{\n snap: [\"start\", \"end\", \"center\", \"align-none\"]\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n \"snap-stop\": [{\n snap: [\"normal\", \"always\"]\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n \"snap-type\": [{\n snap: [\"none\", \"x\", \"y\", \"both\"]\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n \"snap-strictness\": [{\n snap: [\"mandatory\", \"proximity\"]\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: [\"auto\", \"none\", \"manipulation\"]\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n \"touch-x\": [{\n \"touch-pan\": [\"x\", \"left\", \"right\"]\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n \"touch-y\": [{\n \"touch-pan\": [\"y\", \"up\", \"down\"]\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n \"touch-pz\": [\"touch-pinch-zoom\"],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: [\"none\", \"text\", \"all\", \"auto\"]\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n \"will-change\": [{\n \"will-change\": [\"auto\", \"scroll\", \"contents\", \"transform\", O, N]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [\"none\", ...R()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n \"stroke-w\": [{\n stroke: [H, Bn, Vt, Io]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [\"none\", ...R()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n \"forced-color-adjust\": [{\n \"forced-color-adjust\": [\"auto\", \"none\"]\n }]\n },\n conflictingClassGroups: {\n overflow: [\"overflow-x\", \"overflow-y\"],\n overscroll: [\"overscroll-x\", \"overscroll-y\"],\n inset: [\"inset-x\", \"inset-y\", \"start\", \"end\", \"top\", \"right\", \"bottom\", \"left\"],\n \"inset-x\": [\"right\", \"left\"],\n \"inset-y\": [\"top\", \"bottom\"],\n flex: [\"basis\", \"grow\", \"shrink\"],\n gap: [\"gap-x\", \"gap-y\"],\n p: [\"px\", \"py\", \"ps\", \"pe\", \"pt\", \"pr\", \"pb\", \"pl\"],\n px: [\"pr\", \"pl\"],\n py: [\"pt\", \"pb\"],\n m: [\"mx\", \"my\", \"ms\", \"me\", \"mt\", \"mr\", \"mb\", \"ml\"],\n mx: [\"mr\", \"ml\"],\n my: [\"mt\", \"mb\"],\n size: [\"w\", \"h\"],\n \"font-size\": [\"leading\"],\n \"fvn-normal\": [\"fvn-ordinal\", \"fvn-slashed-zero\", \"fvn-figure\", \"fvn-spacing\", \"fvn-fraction\"],\n \"fvn-ordinal\": [\"fvn-normal\"],\n \"fvn-slashed-zero\": [\"fvn-normal\"],\n \"fvn-figure\": [\"fvn-normal\"],\n \"fvn-spacing\": [\"fvn-normal\"],\n \"fvn-fraction\": [\"fvn-normal\"],\n \"line-clamp\": [\"display\", \"overflow\"],\n rounded: [\"rounded-s\", \"rounded-e\", \"rounded-t\", \"rounded-r\", \"rounded-b\", \"rounded-l\", \"rounded-ss\", \"rounded-se\", \"rounded-ee\", \"rounded-es\", \"rounded-tl\", \"rounded-tr\", \"rounded-br\", \"rounded-bl\"],\n \"rounded-s\": [\"rounded-ss\", \"rounded-es\"],\n \"rounded-e\": [\"rounded-se\", \"rounded-ee\"],\n \"rounded-t\": [\"rounded-tl\", \"rounded-tr\"],\n \"rounded-r\": [\"rounded-tr\", \"rounded-br\"],\n \"rounded-b\": [\"rounded-br\", \"rounded-bl\"],\n \"rounded-l\": [\"rounded-tl\", \"rounded-bl\"],\n \"border-spacing\": [\"border-spacing-x\", \"border-spacing-y\"],\n \"border-w\": [\"border-w-x\", \"border-w-y\", \"border-w-s\", \"border-w-e\", \"border-w-t\", \"border-w-r\", \"border-w-b\", \"border-w-l\"],\n \"border-w-x\": [\"border-w-r\", \"border-w-l\"],\n \"border-w-y\": [\"border-w-t\", \"border-w-b\"],\n \"border-color\": [\"border-color-x\", \"border-color-y\", \"border-color-s\", \"border-color-e\", \"border-color-t\", \"border-color-r\", \"border-color-b\", \"border-color-l\"],\n \"border-color-x\": [\"border-color-r\", \"border-color-l\"],\n \"border-color-y\": [\"border-color-t\", \"border-color-b\"],\n translate: [\"translate-x\", \"translate-y\", \"translate-none\"],\n \"translate-none\": [\"translate\", \"translate-x\", \"translate-y\", \"translate-z\"],\n \"scroll-m\": [\"scroll-mx\", \"scroll-my\", \"scroll-ms\", \"scroll-me\", \"scroll-mt\", \"scroll-mr\", \"scroll-mb\", \"scroll-ml\"],\n \"scroll-mx\": [\"scroll-mr\", \"scroll-ml\"],\n \"scroll-my\": [\"scroll-mt\", \"scroll-mb\"],\n \"scroll-p\": [\"scroll-px\", \"scroll-py\", \"scroll-ps\", \"scroll-pe\", \"scroll-pt\", \"scroll-pr\", \"scroll-pb\", \"scroll-pl\"],\n \"scroll-px\": [\"scroll-pr\", \"scroll-pl\"],\n \"scroll-py\": [\"scroll-pt\", \"scroll-pb\"],\n touch: [\"touch-x\", \"touch-y\", \"touch-pz\"],\n \"touch-x\": [\"touch\"],\n \"touch-y\": [\"touch\"],\n \"touch-pz\": [\"touch\"]\n },\n conflictingClassGroupModifiers: {\n \"font-size\": [\"leading\"]\n },\n orderSensitiveModifiers: [\"*\", \"**\", \"after\", \"backdrop\", \"before\", \"details-content\", \"file\", \"first-letter\", \"first-line\", \"marker\", \"placeholder\", \"selection\"]\n };\n}, dx = /* @__PURE__ */ Fk(cx);\nfunction Sn(...t) {\n return dx(Sk(t));\n}\nconst ux = (t) => t.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase(), fx = (t) => t.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (e, n, r) => r ? r.toUpperCase() : n.toLowerCase()\n), cc = (t) => {\n const e = fx(t);\n return e.charAt(0).toUpperCase() + e.slice(1);\n}, Nf = (...t) => t.filter((e, n, r) => !!e && e.trim() !== \"\" && r.indexOf(e) === n).join(\" \").trim(), hx = (t) => {\n for (const e in t)\n if (e.startsWith(\"aria-\") || e === \"role\" || e === \"title\")\n return !0;\n};\nvar px = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\nconst mx = yi(\n ({\n color: t = \"currentColor\",\n size: e = 24,\n strokeWidth: n = 2,\n absoluteStrokeWidth: r,\n className: s = \"\",\n children: o,\n iconNode: i,\n ...l\n }, a) => Vr(\n \"svg\",\n {\n ref: a,\n ...px,\n width: e,\n height: e,\n stroke: t,\n strokeWidth: r ? Number(n) * 24 / Number(e) : n,\n className: Nf(\"lucide\", s),\n ...!o && !hx(l) && { \"aria-hidden\": \"true\" },\n ...l\n },\n [\n ...i.map(([c, d]) => Vr(c, d)),\n ...Array.isArray(o) ? o : [o]\n ]\n )\n);\nconst ce = (t, e) => {\n const n = yi(\n ({ className: r, ...s }, o) => Vr(mx, {\n ref: o,\n iconNode: e,\n className: Nf(\n `lucide-${ux(cc(t))}`,\n `lucide-${t}`,\n r\n ),\n ...s\n })\n );\n return n.displayName = cc(t), n;\n};\nconst gx = [\n [\n \"path\",\n { d: \"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8\", key: \"mg9rjx\" }\n ]\n], yx = ce(\"bold\", gx);\nconst bx = [\n [\"path\", { d: \"m16 18 6-6-6-6\", key: \"eg8j8\" }],\n [\"path\", { d: \"m8 6-6 6 6 6\", key: \"ppft3o\" }]\n], dc = ce(\"code\", bx);\nconst kx = [\n [\"path\", { d: \"M4 12h8\", key: \"17cfdx\" }],\n [\"path\", { d: \"M4 18V6\", key: \"1rz3zl\" }],\n [\"path\", { d: \"M12 18V6\", key: \"zqpxq5\" }],\n [\"path\", { d: \"m17 12 3-2v8\", key: \"1hhhft\" }]\n], xx = ce(\"heading-1\", kx);\nconst wx = [\n [\"path\", { d: \"M4 12h8\", key: \"17cfdx\" }],\n [\"path\", { d: \"M4 18V6\", key: \"1rz3zl\" }],\n [\"path\", { d: \"M12 18V6\", key: \"zqpxq5\" }],\n [\"path\", { d: \"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1\", key: \"9jr5yi\" }]\n], Sx = ce(\"heading-2\", wx);\nconst Cx = [\n [\"path\", { d: \"M4 12h8\", key: \"17cfdx\" }],\n [\"path\", { d: \"M4 18V6\", key: \"1rz3zl\" }],\n [\"path\", { d: \"M12 18V6\", key: \"zqpxq5\" }],\n [\"path\", { d: \"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2\", key: \"68ncm8\" }],\n [\"path\", { d: \"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2\", key: \"1ejuhz\" }]\n], vx = ce(\"heading-3\", Cx);\nconst Mx = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n], Tx = ce(\"image\", Mx);\nconst Ex = [\n [\"line\", { x1: \"19\", x2: \"10\", y1: \"4\", y2: \"4\", key: \"15jd3p\" }],\n [\"line\", { x1: \"14\", x2: \"5\", y1: \"20\", y2: \"20\", key: \"bu0au3\" }],\n [\"line\", { x1: \"15\", x2: \"9\", y1: \"4\", y2: \"20\", key: \"uljnxc\" }]\n], Ax = ce(\"italic\", Ex);\nconst Nx = [\n [\"path\", { d: \"M11 5h10\", key: \"1cz7ny\" }],\n [\"path\", { d: \"M11 12h10\", key: \"1438ji\" }],\n [\"path\", { d: \"M11 19h10\", key: \"11t30w\" }],\n [\"path\", { d: \"M4 4h1v5\", key: \"10yrso\" }],\n [\"path\", { d: \"M4 9h2\", key: \"r1h2o0\" }],\n [\"path\", { d: \"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02\", key: \"xtkcd5\" }]\n], Ox = ce(\"list-ordered\", Nx);\nconst Rx = [\n [\"path\", { d: \"M3 5h.01\", key: \"18ugdj\" }],\n [\"path\", { d: \"M3 12h.01\", key: \"nlz23k\" }],\n [\"path\", { d: \"M3 19h.01\", key: \"noohij\" }],\n [\"path\", { d: \"M8 5h13\", key: \"1pao27\" }],\n [\"path\", { d: \"M8 12h13\", key: \"1za7za\" }],\n [\"path\", { d: \"M8 19h13\", key: \"m83p4d\" }]\n], Dx = ce(\"list\", Rx);\nconst Ix = [\n [\n \"path\",\n {\n d: \"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\",\n key: \"e79jfc\"\n }\n ],\n [\"circle\", { cx: \"13.5\", cy: \"6.5\", r: \".5\", fill: \"currentColor\", key: \"1okk4w\" }],\n [\"circle\", { cx: \"17.5\", cy: \"10.5\", r: \".5\", fill: \"currentColor\", key: \"f64h9f\" }],\n [\"circle\", { cx: \"6.5\", cy: \"12.5\", r: \".5\", fill: \"currentColor\", key: \"qy21gx\" }],\n [\"circle\", { cx: \"8.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"fotxhn\" }]\n], Lx = ce(\"palette\", Ix);\nconst Px = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ]\n], zx = ce(\"pen\", Px);\nconst Bx = [\n [\n \"path\",\n {\n d: \"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\",\n key: \"rib7q0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\",\n key: \"1ymkrd\"\n }\n ]\n], $x = ce(\"quote\", Bx);\nconst Hx = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n], _x = ce(\"rotate-ccw\", Hx);\nconst jx = [\n [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n], Vx = ce(\"rotate-cw\", jx);\nconst Fx = [\n [\"path\", { d: \"M16 4H9a3 3 0 0 0-2.83 4\", key: \"43sutm\" }],\n [\"path\", { d: \"M14 12a4 4 0 0 1 0 8H6\", key: \"nlfj13\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }]\n], Wx = ce(\"strikethrough\", Fx);\nconst Ux = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M17 12H7\", key: \"16if0g\" }],\n [\"path\", { d: \"M19 19H5\", key: \"vjpgq2\" }]\n], Kx = ce(\"text-align-center\", Ux);\nconst qx = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M21 19H7\", key: \"4cu937\" }]\n], Jx = ce(\"text-align-end\", qx);\nconst Gx = [\n [\"path\", { d: \"M3 5h18\", key: \"1u36vt\" }],\n [\"path\", { d: \"M3 12h18\", key: \"1i2n21\" }],\n [\"path\", { d: \"M3 19h18\", key: \"awlh7x\" }]\n], Yx = ce(\"text-align-justify\", Gx);\nconst Xx = [\n [\"path\", { d: \"M21 5H3\", key: \"1fi0y6\" }],\n [\"path\", { d: \"M15 12H3\", key: \"6jk70r\" }],\n [\"path\", { d: \"M17 19H3\", key: \"z6ezky\" }]\n], Qx = ce(\"text-align-start\", Xx);\nconst Zx = [\n [\"path\", { d: \"M6 4v6a6 6 0 0 0 12 0V4\", key: \"9kb039\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"20\", y2: \"20\", key: \"nun2al\" }]\n], ew = ce(\"underline\", Zx), dl = [\n // Grayscale - Essential colors\n {\n id: \"black\",\n cssVar: \"var(--editor-text-black)\",\n label: \"Black/White\"\n },\n {\n id: \"gray-600\",\n cssVar: \"var(--editor-text-gray-600)\",\n label: \"Gray\"\n },\n // Red\n {\n id: \"red-500\",\n cssVar: \"var(--editor-text-red-500)\",\n label: \"Red\"\n },\n // Orange\n {\n id: \"orange-500\",\n cssVar: \"var(--editor-text-orange-500)\",\n label: \"Orange\"\n },\n // Yellow\n {\n id: \"yellow-500\",\n cssVar: \"var(--editor-text-yellow-500)\",\n label: \"Yellow\"\n },\n // Green\n {\n id: \"green-500\",\n cssVar: \"var(--editor-text-green-500)\",\n label: \"Green\"\n },\n // Blue\n {\n id: \"blue-500\",\n cssVar: \"var(--editor-text-blue-500)\",\n label: \"Blue\"\n },\n // Purple\n {\n id: \"purple-500\",\n cssVar: \"var(--editor-text-purple-500)\",\n label: \"Purple\"\n },\n // Pink\n {\n id: \"pink-500\",\n cssVar: \"var(--editor-text-pink-500)\",\n label: \"Pink\"\n }\n];\nfunction uc(t) {\n const e = dl.find((n) => n.id === t);\n return e ? e.cssVar : t;\n}\nfunction fc(t) {\n const e = dl.find((n) => n.cssVar === t);\n return e ? e.id : t;\n}\nfunction uw(t) {\n return typeof window > \"u\" ? \"#000000\" : t.startsWith(\"var(\") ? getComputedStyle(document.documentElement).getPropertyValue(t.replace(\"var(\", \"\").replace(\")\", \"\").trim()).trim() || \"#000000\" : t;\n}\nfunction hc(t) {\n const e = Is.c(15), {\n currentColor: n,\n onColorSelect: r,\n onReset: s,\n onClose: o,\n type: i\n } = t, l = i === \"text\" ? \"텍스트 색상\" : \"배경 색상\";\n let a;\n e[0] !== l ? (a = /* @__PURE__ */ v.jsx(\"div\", { className: \"color-picker-label\", children: l }), e[0] = l, e[1] = a) : a = e[1];\n let c;\n e[2] !== n || e[3] !== o || e[4] !== r ? (c = dl.map((h) => {\n const p = n === h.id || n === h.cssVar;\n return /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => {\n r(h.id), o();\n }, className: `color-grid-button ${p ? \"selected\" : \"\"}`, style: {\n backgroundColor: h.cssVar\n }, title: `${h.label}` }, h.id);\n }), e[2] = n, e[3] = o, e[4] = r, e[5] = c) : c = e[5];\n let d;\n e[6] !== c ? (d = /* @__PURE__ */ v.jsx(\"div\", { className: \"color-grid\", children: c }), e[6] = c, e[7] = d) : d = e[7];\n let u;\n e[8] !== o || e[9] !== s ? (u = /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => {\n s(), o();\n }, className: \"color-picker-reset-button\", children: \"색상 제거\" }), e[8] = o, e[9] = s, e[10] = u) : u = e[10];\n let f;\n return e[11] !== a || e[12] !== d || e[13] !== u ? (f = /* @__PURE__ */ v.jsxs(\"div\", { className: \"color-picker\", children: [\n a,\n d,\n u\n ] }), e[11] = a, e[12] = d, e[13] = u, e[14] = f) : f = e[14], f;\n}\nfunction tw(t) {\n const e = Is.c(179), {\n editor: n,\n onAddImage: r,\n hideMenuButtons: s,\n classNames: o\n } = t;\n let i;\n e[0] !== s ? (i = s === void 0 ? [] : s, e[0] = s, e[1] = i) : i = e[1];\n const l = i, [a, c] = Jt(!1), [d, u] = Jt(!1), f = Qn(null), h = Qn(null);\n let p, m;\n e[2] === Symbol.for(\"react.memo_cache_sentinel\") ? (p = () => {\n const Qe = (hn) => {\n f.current && !f.current.contains(hn.target) && c(!1), h.current && !h.current.contains(hn.target) && u(!1);\n };\n return document.addEventListener(\"mousedown\", Qe), () => {\n document.removeEventListener(\"mousedown\", Qe);\n };\n }, m = [], e[2] = p, e[3] = m) : (p = e[2], m = e[3]), Ds(p, m);\n let g;\n e[4] !== n ? (g = {\n editor: n,\n selector: nw\n }, e[4] = n, e[5] = g) : g = e[5];\n const y = ff(g);\n let x;\n e[6] !== o?.button ? (x = (Qe) => Sn(\"menubar-button\", Qe && \"active\", o?.button), e[6] = o?.button, e[7] = x) : x = e[7];\n const k = x;\n let T;\n e[8] !== l ? (T = (Qe) => l.includes(Qe), e[8] = l, e[9] = T) : T = e[9];\n const b = T, E = o?.container;\n let S;\n e[10] !== E ? (S = Sn(\"menubar-container\", E), e[10] = E, e[11] = S) : S = e[11];\n let C;\n e[12] !== k || e[13] !== n || e[14] !== y || e[15] !== b ? (C = !b(\"bold\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleBold().run(), title: \"Bold (Ctrl+B)\", className: k(y.isBold), children: /* @__PURE__ */ v.jsx(yx, { size: 14 }) }), e[12] = k, e[13] = n, e[14] = y, e[15] = b, e[16] = C) : C = e[16];\n let L;\n e[17] !== k || e[18] !== n || e[19] !== y || e[20] !== b ? (L = !b(\"italic\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleItalic().run(), title: \"Italic (Ctrl+I)\", className: k(y.isItalic), children: /* @__PURE__ */ v.jsx(Ax, { size: 14 }) }), e[17] = k, e[18] = n, e[19] = y, e[20] = b, e[21] = L) : L = e[21];\n let W;\n e[22] !== k || e[23] !== n || e[24] !== y || e[25] !== b ? (W = !b(\"strike\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleStrike().run(), title: \"Strikethrough\", className: k(y.isStrike), children: /* @__PURE__ */ v.jsx(Wx, { size: 14 }) }), e[22] = k, e[23] = n, e[24] = y, e[25] = b, e[26] = W) : W = e[26];\n let z;\n e[27] !== k || e[28] !== n || e[29] !== y || e[30] !== b ? (z = !b(\"underline\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleUnderline().run(), title: \"Underline (Ctrl+U)\", className: k(y.isUnderline), children: /* @__PURE__ */ v.jsx(ew, { size: 14 }) }), e[27] = k, e[28] = n, e[29] = y, e[30] = b, e[31] = z) : z = e[31];\n let U;\n e[32] !== b ? (U = (!b(\"bold\") || !b(\"italic\") || !b(\"strike\") || !b(\"underline\") || !b(\"textColor\") || !b(\"bgColor\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[32] = b, e[33] = U) : U = e[33];\n let ue;\n e[34] !== k || e[35] !== n || e[36] !== y || e[37] !== b || e[38] !== a ? (ue = !b(\"textColor\") && /* @__PURE__ */ v.jsxs(\"div\", { className: \"color-picker-container\", ref: f, children: [\n /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => {\n c(!a), u(!1);\n }, title: \"Text Color\", className: Sn(k(!1), \"color-button\"), children: /* @__PURE__ */ v.jsxs(\"div\", { className: \"color-button\", children: [\n /* @__PURE__ */ v.jsx(zx, { size: 14 }),\n /* @__PURE__ */ v.jsx(\"div\", { className: \"color-display-bar\", style: {\n backgroundColor: y.displayColor\n } })\n ] }) }),\n a && /* @__PURE__ */ v.jsx(hc, { currentColor: y.currentColor, onColorSelect: (Qe) => {\n const hn = uc(Qe);\n n.chain().focus().setColor(hn).run();\n }, onReset: () => n.chain().focus().unsetColor().run(), onClose: () => c(!1), type: \"text\" })\n ] }), e[34] = k, e[35] = n, e[36] = y, e[37] = b, e[38] = a, e[39] = ue) : ue = e[39];\n let X;\n e[40] !== k || e[41] !== n || e[42] !== y || e[43] !== b || e[44] !== d ? (X = !b(\"bgColor\") && /* @__PURE__ */ v.jsxs(\"div\", { className: \"color-picker-container\", ref: h, children: [\n /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => {\n u(!d), c(!1);\n }, title: \"Background Color\", className: Sn(k(!1), \"color-button\"), children: /* @__PURE__ */ v.jsxs(\"div\", { className: \"color-button\", children: [\n /* @__PURE__ */ v.jsx(Lx, { size: 14 }),\n /* @__PURE__ */ v.jsx(\"div\", { className: \"color-display-bar\", style: {\n backgroundColor: y.displayHighlight\n } })\n ] }) }),\n d && /* @__PURE__ */ v.jsx(hc, { currentColor: y.currentHighlight, onColorSelect: (Qe) => {\n const hn = uc(Qe);\n n.chain().focus().toggleHighlight({\n color: hn\n }).run();\n }, onReset: () => n.chain().focus().unsetHighlight().run(), onClose: () => u(!1), type: \"background\" })\n ] }), e[40] = k, e[41] = n, e[42] = y, e[43] = b, e[44] = d, e[45] = X) : X = e[45];\n let _;\n e[46] !== b ? (_ = (!b(\"table\") || !b(\"image\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[46] = b, e[47] = _) : _ = e[47];\n let J;\n e[48] !== k || e[49] !== n || e[50] !== y || e[51] !== b ? (J = !b(\"table\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().insertTable({\n rows: 3,\n cols: 3\n }).run(), title: \"Insert Table\", className: k(y.isTable), children: /* @__PURE__ */ v.jsxs(\"svg\", { className: \"menubar-table-icon\", viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\", children: [\n /* @__PURE__ */ v.jsx(\"rect\", { x: \"3\", y: \"3\", width: \"18\", height: \"18\", rx: \"2\" }),\n /* @__PURE__ */ v.jsx(\"path\", { d: \"M3 9h18M3 15h18M9 21V3M15 21V3\" })\n ] }) }), e[48] = k, e[49] = n, e[50] = y, e[51] = b, e[52] = J) : J = e[52];\n let te;\n e[53] !== k || e[54] !== b || e[55] !== r ? (te = !b(\"image\") && r && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: r, title: \"Insert Image\", className: k(!1), children: /* @__PURE__ */ v.jsx(Tx, { size: 14 }) }), e[53] = k, e[54] = b, e[55] = r, e[56] = te) : te = e[56];\n let R;\n e[57] !== b ? (R = (!b(\"h1\") || !b(\"h2\") || !b(\"h3\") || !b(\"paragraph\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[57] = b, e[58] = R) : R = e[58];\n let Ie;\n e[59] !== k || e[60] !== n || e[61] !== y || e[62] !== b ? (Ie = !b(\"h1\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleHeading({\n level: 1\n }).run(), title: \"Heading 1\", className: k(y.isHeading1), children: /* @__PURE__ */ v.jsx(xx, { size: 14 }) }), e[59] = k, e[60] = n, e[61] = y, e[62] = b, e[63] = Ie) : Ie = e[63];\n let Le;\n e[64] !== k || e[65] !== n || e[66] !== y || e[67] !== b ? (Le = !b(\"h2\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleHeading({\n level: 2\n }).run(), title: \"Heading 2\", className: k(y.isHeading2), children: /* @__PURE__ */ v.jsx(Sx, { size: 14 }) }), e[64] = k, e[65] = n, e[66] = y, e[67] = b, e[68] = Le) : Le = e[68];\n let Ee;\n e[69] !== k || e[70] !== n || e[71] !== y || e[72] !== b ? (Ee = !b(\"h3\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleHeading({\n level: 3\n }).run(), title: \"Heading 3\", className: k(y.isHeading3), children: /* @__PURE__ */ v.jsx(vx, { size: 14 }) }), e[69] = k, e[70] = n, e[71] = y, e[72] = b, e[73] = Ee) : Ee = e[73];\n let Pe;\n e[74] !== k || e[75] !== n || e[76] !== y || e[77] !== b ? (Pe = !b(\"paragraph\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setParagraph().run(), title: \"Paragraph\", className: k(y.isParagraph), children: \"¶\" }), e[74] = k, e[75] = n, e[76] = y, e[77] = b, e[78] = Pe) : Pe = e[78];\n let j;\n e[79] !== b ? (j = (!b(\"bulletList\") || !b(\"orderedList\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[79] = b, e[80] = j) : j = e[80];\n let ie;\n e[81] !== k || e[82] !== n || e[83] !== y || e[84] !== b ? (ie = !b(\"bulletList\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleBulletList().run(), title: \"Bullet List\", className: k(y.isBulletList), children: /* @__PURE__ */ v.jsx(Dx, { size: 14 }) }), e[81] = k, e[82] = n, e[83] = y, e[84] = b, e[85] = ie) : ie = e[85];\n let Fe;\n e[86] !== k || e[87] !== n || e[88] !== y || e[89] !== b ? (Fe = !b(\"orderedList\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleOrderedList().run(), title: \"Ordered List\", className: k(y.isOrderedList), children: /* @__PURE__ */ v.jsx(Ox, { size: 14 }) }), e[86] = k, e[87] = n, e[88] = y, e[89] = b, e[90] = Fe) : Fe = e[90];\n let ot;\n e[91] !== b ? (ot = (!b(\"code\") || !b(\"codeBlock\") || !b(\"blockquote\") || !b(\"horizontalRule\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[91] = b, e[92] = ot) : ot = e[92];\n let Q;\n e[93] !== k || e[94] !== n || e[95] !== y || e[96] !== b ? (Q = !b(\"code\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleCode().run(), title: \"Code (Ctrl+`)\", className: k(y.isCode), children: /* @__PURE__ */ v.jsx(dc, { size: 14 }) }), e[93] = k, e[94] = n, e[95] = y, e[96] = b, e[97] = Q) : Q = e[97];\n let it;\n e[98] !== k || e[99] !== n || e[100] !== y || e[101] !== b ? (it = !b(\"codeBlock\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleCodeBlock().run(), title: \"Code Block\", className: k(y.isCodeBlock), children: /* @__PURE__ */ v.jsx(dc, { size: 14 }) }), e[98] = k, e[99] = n, e[100] = y, e[101] = b, e[102] = it) : it = e[102];\n let We;\n e[103] !== k || e[104] !== n || e[105] !== y || e[106] !== b ? (We = !b(\"blockquote\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().toggleBlockquote().run(), title: \"Blockquote\", className: k(y.isBlockquote), children: /* @__PURE__ */ v.jsx($x, { size: 14 }) }), e[103] = k, e[104] = n, e[105] = y, e[106] = b, e[107] = We) : We = e[107];\n let Ue;\n e[108] !== k || e[109] !== n || e[110] !== b ? (Ue = !b(\"horizontalRule\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setHorizontalRule().run(), title: \"Horizontal Rule\", className: k(!1), children: \"—\" }), e[108] = k, e[109] = n, e[110] = b, e[111] = Ue) : Ue = e[111];\n let Xe;\n e[112] !== b ? (Xe = (!b(\"alignLeft\") || !b(\"alignCenter\") || !b(\"alignRight\") || !b(\"alignJustify\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[112] = b, e[113] = Xe) : Xe = e[113];\n let Ke;\n e[114] !== k || e[115] !== n || e[116] !== y || e[117] !== b ? (Ke = !b(\"alignLeft\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setTextAlign(\"left\").run(), title: \"Align Left\", className: k(y.alignLeft), children: /* @__PURE__ */ v.jsx(Qx, { size: 14 }) }), e[114] = k, e[115] = n, e[116] = y, e[117] = b, e[118] = Ke) : Ke = e[118];\n let ln;\n e[119] !== k || e[120] !== n || e[121] !== y || e[122] !== b ? (ln = !b(\"alignCenter\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setTextAlign(\"center\").run(), title: \"Align Center\", className: k(y.alignCenter), children: /* @__PURE__ */ v.jsx(Kx, { size: 14 }) }), e[119] = k, e[120] = n, e[121] = y, e[122] = b, e[123] = ln) : ln = e[123];\n let an;\n e[124] !== k || e[125] !== n || e[126] !== y || e[127] !== b ? (an = !b(\"alignRight\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setTextAlign(\"right\").run(), title: \"Align Right\", className: k(y.alignRight), children: /* @__PURE__ */ v.jsx(Jx, { size: 14 }) }), e[124] = k, e[125] = n, e[126] = y, e[127] = b, e[128] = an) : an = e[128];\n let cn;\n e[129] !== k || e[130] !== n || e[131] !== y || e[132] !== b ? (cn = !b(\"alignJustify\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().setTextAlign(\"justify\").run(), title: \"Justify\", className: k(y.alignJustify), children: /* @__PURE__ */ v.jsx(Yx, { size: 14 }) }), e[129] = k, e[130] = n, e[131] = y, e[132] = b, e[133] = cn) : cn = e[133];\n let dn;\n e[134] !== b ? (dn = (!b(\"undo\") || !b(\"redo\")) && /* @__PURE__ */ v.jsx(\"div\", { className: \"menubar-separator\" }), e[134] = b, e[135] = dn) : dn = e[135];\n let un;\n e[136] !== k || e[137] !== n || e[138] !== y || e[139] !== b ? (un = !b(\"undo\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().undo().run(), disabled: !y.canUndo, title: \"Undo (Ctrl+Z)\", className: k(!1), children: /* @__PURE__ */ v.jsx(_x, { size: 14 }) }), e[136] = k, e[137] = n, e[138] = y, e[139] = b, e[140] = un) : un = e[140];\n let fn;\n e[141] !== k || e[142] !== n || e[143] !== y || e[144] !== b ? (fn = !b(\"redo\") && /* @__PURE__ */ v.jsx(\"button\", { type: \"button\", onClick: () => n.chain().focus().redo().run(), disabled: !y.canRedo, title: \"Redo (Ctrl+Y)\", className: k(!1), children: /* @__PURE__ */ v.jsx(Vx, { size: 14 }) }), e[141] = k, e[142] = n, e[143] = y, e[144] = b, e[145] = fn) : fn = e[145];\n let mr;\n return e[146] !== C || e[147] !== L || e[148] !== W || e[149] !== z || e[150] !== U || e[151] !== ue || e[152] !== X || e[153] !== _ || e[154] !== J || e[155] !== te || e[156] !== R || e[157] !== Ie || e[158] !== Le || e[159] !== Ee || e[160] !== Pe || e[161] !== j || e[162] !== ie || e[163] !== Fe || e[164] !== ot || e[165] !== Q || e[166] !== it || e[167] !== We || e[168] !== Ue || e[169] !== Xe || e[170] !== Ke || e[171] !== ln || e[172] !== an || e[173] !== cn || e[174] !== dn || e[175] !== un || e[176] !== fn || e[177] !== S ? (mr = /* @__PURE__ */ v.jsxs(\"div\", { className: S, children: [\n C,\n L,\n W,\n z,\n U,\n ue,\n X,\n _,\n J,\n te,\n R,\n Ie,\n Le,\n Ee,\n Pe,\n j,\n ie,\n Fe,\n ot,\n Q,\n it,\n We,\n Ue,\n Xe,\n Ke,\n ln,\n an,\n cn,\n dn,\n un,\n fn\n ] }), e[146] = C, e[147] = L, e[148] = W, e[149] = z, e[150] = U, e[151] = ue, e[152] = X, e[153] = _, e[154] = J, e[155] = te, e[156] = R, e[157] = Ie, e[158] = Le, e[159] = Ee, e[160] = Pe, e[161] = j, e[162] = ie, e[163] = Fe, e[164] = ot, e[165] = Q, e[166] = it, e[167] = We, e[168] = Ue, e[169] = Xe, e[170] = Ke, e[171] = ln, e[172] = an, e[173] = cn, e[174] = dn, e[175] = un, e[176] = fn, e[177] = S, e[178] = mr) : mr = e[178], mr;\n}\nfunction nw(t) {\n const e = t.editor.getAttributes(\"textStyle\").color, n = t.editor.getAttributes(\"highlight\").color;\n return {\n isBold: t.editor.isActive(\"bold\") ?? !1,\n isItalic: t.editor.isActive(\"italic\") ?? !1,\n isUnderline: t.editor.isActive(\"underline\") ?? !1,\n isStrike: t.editor.isActive(\"strike\") ?? !1,\n isCode: t.editor.isActive(\"code\") ?? !1,\n canClearMarks: t.editor.can().chain().unsetAllMarks().run() ?? !1,\n isParagraph: t.editor.isActive(\"paragraph\") ?? !1,\n isHeading1: t.editor.isActive(\"heading\", {\n level: 1\n }) ?? !1,\n isHeading2: t.editor.isActive(\"heading\", {\n level: 2\n }) ?? !1,\n isHeading3: t.editor.isActive(\"heading\", {\n level: 3\n }) ?? !1,\n isBulletList: t.editor.isActive(\"bulletList\") ?? !1,\n isOrderedList: t.editor.isActive(\"orderedList\") ?? !1,\n isCodeBlock: t.editor.isActive(\"codeBlock\") ?? !1,\n isBlockquote: t.editor.isActive(\"blockquote\") ?? !1,\n canUndo: t.editor.can().chain().undo().run() ?? !1,\n canRedo: t.editor.can().chain().redo().run() ?? !1,\n isTable: t.editor.isActive(\"table\") ?? !1,\n alignLeft: t.editor.isActive({\n textAlign: \"left\"\n }) ?? !1,\n alignCenter: t.editor.isActive({\n textAlign: \"center\"\n }) ?? !1,\n alignRight: t.editor.isActive({\n textAlign: \"right\"\n }) ?? !1,\n alignJustify: t.editor.isActive({\n textAlign: \"justify\"\n }) ?? !1,\n currentColor: e ? fc(e) : \"black\",\n currentHighlight: n ? fc(n) : \"#ffffff\",\n displayColor: e || \"var(--editor-text-black)\",\n displayHighlight: n || \"transparent\"\n };\n}\nfunction pc(t) {\n if (!t) return \"<p></p>\";\n try {\n return JSON.parse(t);\n } catch {\n return t;\n }\n}\nfunction fw({\n ref: t,\n className: e,\n classNames: n,\n initialContent: r = \"\",\n hideMenuButtons: s = []\n}) {\n const o = dk({\n extensions: mf,\n content: pc(r),\n editorProps: {\n attributes: {\n class: Sn(\"tiptap-editor-content\", n?.editorContent)\n },\n handlePaste(l, a) {\n const c = a.clipboardData?.items;\n if (!c) return !1;\n for (let d = 0; d < c.length; d++)\n if (c[d].kind === \"file\" && c[d].type.startsWith(\"image/\")) {\n a.preventDefault();\n const u = c[d].getAsFile();\n if (!u) continue;\n const f = new FileReader();\n return f.onload = (h) => {\n const p = h.target?.result, {\n state: m\n } = l, {\n $from: g\n } = m.selection, y = m.schema.nodes.image.create({\n src: p\n }), x = m.tr.insert(g.pos, y);\n l.dispatch(x);\n }, f.readAsDataURL(u), !0;\n }\n return !1;\n },\n handleDOMEvents: {\n // Handle copy event for images\n copy: (l, a) => {\n const {\n state: c\n } = l, {\n selection: d\n } = c, {\n $from: u,\n $to: f\n } = d;\n return c.doc.nodesBetween(u.pos, f.pos, (h) => {\n if (h.type.name === \"image\" && h.attrs.src) {\n if (a.preventDefault(), a.clipboardData) {\n if (h.attrs.src.startsWith(\"data:image/\"))\n try {\n const p = h.attrs.src.split(\",\")[1], m = h.attrs.src.match(/data:([^;]+);/)?.[1] || \"image/png\", g = atob(p), y = new Array(g.length);\n for (let b = 0; b < g.length; b++)\n y[b] = g.charCodeAt(b);\n const x = new Uint8Array(y), k = new Blob([x], {\n type: m\n }), T = new ClipboardItem({\n [m]: k\n });\n navigator.clipboard.write([T]).catch((b) => {\n console.error(\"Failed to copy image to clipboard:\", b);\n });\n } catch (p) {\n console.error(\"Failed to process image for clipboard:\", p);\n }\n a.clipboardData.setData(\"text/html\", `<img src=\"${h.attrs.src}\" />`), a.clipboardData.setData(\"text/plain\", h.attrs.src);\n }\n return !1;\n }\n }), !1;\n },\n // Handle cut event for images\n cut: (l, a) => {\n const {\n state: c\n } = l, {\n selection: d\n } = c, {\n $from: u,\n $to: f\n } = d;\n return c.doc.nodesBetween(u.pos, f.pos, (h, p) => {\n if (h.type.name === \"image\" && h.attrs.src) {\n if (a.preventDefault(), a.clipboardData) {\n if (h.attrs.src.startsWith(\"data:image/\"))\n try {\n const g = h.attrs.src.split(\",\")[1], y = h.attrs.src.match(/data:([^;]+);/)?.[1] || \"image/png\", x = atob(g), k = new Array(x.length);\n for (let S = 0; S < x.length; S++)\n k[S] = x.charCodeAt(S);\n const T = new Uint8Array(k), b = new Blob([T], {\n type: y\n }), E = new ClipboardItem({\n [y]: b\n });\n navigator.clipboard.write([E]).catch((S) => {\n console.error(\"Failed to copy image to clipboard:\", S);\n });\n } catch (g) {\n console.error(\"Failed to process image for clipboard:\", g);\n }\n a.clipboardData.setData(\"text/html\", `<img src=\"${h.attrs.src}\" />`), a.clipboardData.setData(\"text/plain\", h.attrs.src);\n }\n const m = c.tr.delete(p, p + h.nodeSize);\n return l.dispatch(m), !1;\n }\n }), !1;\n }\n }\n }\n }), i = Lf(() => {\n const l = document.createElement(\"input\");\n l.type = \"file\", l.accept = \"image/*\", l.onchange = (a) => {\n const c = a.target.files?.[0];\n if (!c || !o) return;\n const d = new FileReader();\n d.onload = (u) => {\n const f = u.target?.result;\n o.chain().focus().insertContent({\n type: \"image\",\n attrs: {\n src: f\n }\n }).run();\n }, d.readAsDataURL(c);\n }, l.click();\n }, [o]);\n return Ds(() => {\n if (o && r && r.trim()) {\n const l = pc(r);\n o.commands.setContent(l);\n }\n }, [o, r]), Pf(t, () => ({\n getJSON: () => o ? JSON.stringify(o.getJSON()) : \"{}\"\n }), [o]), o ? /* @__PURE__ */ v.jsxs(\"div\", { className: Sn(\"tiptap-editor-wrapper\", e), children: [\n /* @__PURE__ */ v.jsx(tw, { editor: o, onAddImage: i, hideMenuButtons: s, classNames: {\n container: n?.menubarContainer,\n button: n?.menubarButton\n } }),\n /* @__PURE__ */ v.jsx(ok, { editor: o })\n ] }) : null;\n}\nfunction rw(t, e, n) {\n if (typeof window > \"u\")\n throw new Error(\n \"getHTMLFromFragment can only be used in a browser environment\\nIf you want to use this in a Node environment, use the `@tiptap/html/server` import instead.\"\n );\n const r = $t.fromSchema(e).serializeFragment(t.content, {\n document: window.document\n });\n return new XMLSerializer().serializeToString(r);\n}\nfunction sw(t, e) {\n if (typeof window > \"u\")\n throw new Error(\n \"generateHTML can only be used in a browser environment\\nIf you want to use this in a Node environment, use the `@tiptap/html/server` import instead.\"\n );\n const n = zg(e), r = _e.fromJSON(n, t);\n return rw(r, n);\n}\nfunction ow(t) {\n if (!t) return \"<p></p>\";\n try {\n const e = JSON.parse(t);\n let n = sw(e, mf);\n return n = n.replace(/<p[^>]*><\\/p>/g, \"<p><br></p>\"), n;\n } catch {\n return t;\n }\n}\nconst hw = (t) => {\n const e = Is.c(4), {\n content: n\n } = t;\n let r;\n e[0] !== n ? (r = ow(n), e[0] = n, e[1] = r) : r = e[1];\n let s;\n return e[2] !== r ? (s = /* @__PURE__ */ v.jsx(\"div\", { className: \"content-div\", dangerouslySetInnerHTML: {\n __html: r\n } }), e[2] = r, e[3] = s) : s = e[3], s;\n};\nexport {\n dl as COLOR_MAPPINGS,\n hc as ColorPicker,\n hw as ContentDiv,\n wk as CustomImage,\n tw as MenuBar,\n kk as ResizableImage,\n fw as TiptapEditor,\n ow as convertContentToHtml,\n mf as extensions,\n uc as getCSSVarForColor,\n fc as getColorId,\n uw as getComputedColorValue\n};\n//# sourceMappingURL=index.js.map\n","import { Loader2, Send } from \"lucide-react\";\r\nimport { TiptapEditor } from \"@kaburi/react-kit/tiptap\";\r\nimport type { TiptapEditorRefs } from \"@kaburi/react-kit/tiptap\";\r\nimport React from \"react\";\r\nimport { Button } from \"../../../shadcn-ui\";\r\n\r\ninterface CommentEditorProps {\r\n ref?: React.Ref<HTMLDivElement>;\r\n tiptapRef?: React.Ref<TiptapEditorRefs>;\r\n initialContent?: string;\r\n placeholder?: string;\r\n isSubmitting?: boolean;\r\n onSubmit: () => Promise<void> | void;\r\n onCancel: () => void;\r\n submitLabel?: string;\r\n cancelLabel?: string;\r\n showLabel?: boolean;\r\n labelText?: string;\r\n containerClassName?: string;\r\n isEditMode?: boolean;\r\n}\r\n\r\nexport const CommentEditor = ({\r\n ref,\r\n tiptapRef,\r\n initialContent = \"\",\r\n isSubmitting = false,\r\n onSubmit,\r\n onCancel,\r\n submitLabel = \"작성\",\r\n cancelLabel = \"취소\",\r\n showLabel = true,\r\n labelText = \"댓글 작성\",\r\n containerClassName = \"\",\r\n}: CommentEditorProps) => {\r\n return (\r\n <div\r\n ref={ref}\r\n className={`flex flex-col gap-2 rounded-lg bg-gray-50 p-3 dark:bg-gray-800/50 ${containerClassName}`}\r\n >\r\n {showLabel && (\r\n <div className=\"flex items-center justify-between\">\r\n <label className=\"text-xs font-medium text-gray-700 dark:text-gray-300\">\r\n {labelText}\r\n </label>\r\n <div className=\"flex gap-2\">\r\n <Button size=\"sm\" onClick={onSubmit} disabled={isSubmitting}>\r\n {isSubmitting ? (\r\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\r\n ) : (\r\n <Send className=\"mr-2 h-4 w-4\" />\r\n )}\r\n {submitLabel}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"outline\"\r\n onClick={onCancel}\r\n disabled={isSubmitting}\r\n >\r\n {cancelLabel}\r\n </Button>\r\n </div>\r\n </div>\r\n )}\r\n <div className=\"overflow-hidden rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900\">\r\n <TiptapEditor\r\n ref={tiptapRef}\r\n initialContent={initialContent}\r\n className=\"rounded\"\r\n classNames={{\r\n menubarContainer: \"dark:bg-background!\",\r\n editorContent:\r\n \"dark:bg-card! min-h-[4rem]! max-h-[8rem]! overflow-y-auto\",\r\n }}\r\n hideMenuButtons={[\r\n \"table\",\r\n \"bgColor\",\r\n \"undo\",\r\n \"redo\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"paragraph\",\r\n ]}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { MoreHorizontal, Edit2, Trash2 } from \"lucide-react\";\r\nimport {\r\n Button,\r\n Popover,\r\n PopoverTrigger,\r\n PopoverContent,\r\n} from \"../../../shadcn-ui\";\r\n\r\ninterface CommentActionsProps {\r\n onEdit: () => void;\r\n onDelete: () => void;\r\n}\r\n\r\nexport const CommentActions = ({ onEdit, onDelete }: CommentActionsProps) => {\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n className=\"h-auto px-2 py-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\r\n >\r\n <MoreHorizontal className=\"h-5 w-5\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-1\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onEdit}\r\n className=\"justify-start text-xs text-gray-700 dark:text-gray-300\"\r\n >\r\n <Edit2 className=\"mr-2 h-3 w-3\" />\r\n 수정\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onDelete}\r\n className=\"justify-start text-xs text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300\"\r\n >\r\n <Trash2 className=\"mr-2 h-3 w-3\" />\r\n 삭제\r\n </Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n );\r\n};\r\n","import { Button } from \"../../../shadcn-ui\";\r\nimport { ContentDiv } from \"@kaburi/react-kit/tiptap\";\r\nimport { format } from \"date-fns\";\r\nimport type { TiptapEditorRefs } from \"@kaburi/react-kit/tiptap\";\r\nimport React from \"react\";\r\nimport { CommentEditor } from \"./CommentEditor\";\r\nimport { CommentActions } from \"./CommentActions\";\r\nimport type { FeedbackComment } from \"../../../types\";\r\nimport { cn } from \"../../../lib/utils\";\r\n\r\ninterface CommentItemProps {\r\n comment: FeedbackComment;\r\n level: number;\r\n currentUserId: string | undefined;\r\n onReplyOpen: (commentId: string) => void;\r\n replyingToId: string | null;\r\n replyEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n onSubmitReply: (parentCommentId: string) => Promise<void>;\r\n isSubmitting: boolean;\r\n onEdit: (commentId: string) => void;\r\n editingId: string | null;\r\n editEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n onSubmitEdit: (commentId: string) => Promise<void>;\r\n onDelete: (commentId: string) => Promise<void>;\r\n isEditing: boolean;\r\n}\r\n\r\nexport const CommentItem = ({\r\n comment,\r\n level,\r\n currentUserId,\r\n onReplyOpen,\r\n replyingToId,\r\n replyEditorRef,\r\n onSubmitReply,\r\n isSubmitting,\r\n onEdit,\r\n editingId,\r\n editEditorRef,\r\n onSubmitEdit,\r\n onDelete,\r\n isEditing,\r\n}: CommentItemProps) => {\r\n const isReplying = replyingToId === comment.id;\r\n const isEditingThis = editingId === comment.id;\r\n const hasChildren = comment.children && comment.children.length > 0;\r\n const replyEditorContainerId = `reply-editor-${comment.id}`;\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex flex-col gap-2\",\r\n level > 0 && \"ml-4 border-l border-gray-200 pl-4 dark:border-gray-700\"\r\n )}\r\n >\r\n {isEditingThis ? (\r\n <CommentEditor\r\n tiptapRef={editEditorRef}\r\n initialContent={comment.body}\r\n isSubmitting={isEditing}\r\n onSubmit={() => onSubmitEdit(comment.id)}\r\n onCancel={() => onEdit(\"\")}\r\n submitLabel=\"수정\"\r\n labelText=\"댓글 수정\"\r\n />\r\n ) : (\r\n <div className=\"py-2\">\r\n <div className=\"flex items-start justify-between gap-3\">\r\n <div className=\"flex-1\">\r\n {/* 댓글 헤더: 사용자 정보 */}\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-xs font-medium text-gray-900 dark:text-gray-100\">\r\n {comment.userName}\r\n </span>\r\n {comment.isAdmin && (\r\n <span className=\"inline-flex items-center rounded-full bg-blue-100 px-2 py-0.5 text-xs font-semibold text-blue-800 dark:bg-blue-900/30 dark:text-blue-400\">\r\n 👨‍💼 관리자\r\n </span>\r\n )}\r\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\r\n {format(new Date(comment.createdAt), \"yyyy-MM-dd HH:mm\")}\r\n </span>\r\n </div>\r\n\r\n {/* 댓글 본문 */}\r\n <div className=\"mt-2 text-sm text-gray-700 dark:text-gray-300\">\r\n <ContentDiv content={comment.body} />\r\n </div>\r\n\r\n {/* 답글 버튼 */}\r\n {!isReplying && (\r\n <div className=\"mt-2 flex items-center gap-3\">\r\n {level < 2 && (\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={() => {\r\n onReplyOpen(comment.id);\r\n setTimeout(() => {\r\n const editorElement = document.getElementById(\r\n replyEditorContainerId\r\n );\r\n if (editorElement) {\r\n editorElement.scrollIntoView({\r\n behavior: \"auto\",\r\n block: \"center\",\r\n });\r\n const contentEditableElement =\r\n editorElement.querySelector(\r\n \"[contenteditable]\"\r\n ) as HTMLElement;\r\n contentEditableElement?.focus();\r\n }\r\n }, 50);\r\n }}\r\n className=\"h-auto px-2 py-1 text-sm font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-200\"\r\n >\r\n 💬 답글\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* 액션 버튼 (수정/삭제) */}\r\n {currentUserId === comment.userId && (\r\n <CommentActions\r\n onEdit={() => onEdit(comment.id)}\r\n onDelete={() => onDelete(comment.id)}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* 대댓글 입력 */}\r\n {isReplying && (\r\n <CommentEditor\r\n ref={(element) => {\r\n if (element) {\r\n element.id = replyEditorContainerId;\r\n }\r\n }}\r\n tiptapRef={replyEditorRef}\r\n isSubmitting={isSubmitting}\r\n onSubmit={() => onSubmitReply(comment.id)}\r\n onCancel={() => onReplyOpen(\"\")}\r\n submitLabel=\"작성\"\r\n labelText=\"답글 작성\"\r\n />\r\n )}\r\n\r\n {/* 재귀: 자식 댓글들 */}\r\n {hasChildren && (\r\n <div className=\"flex flex-col gap-2\">\r\n {comment.children!.map((child) => (\r\n <CommentItem\r\n key={child.id}\r\n comment={child}\r\n level={level + 1}\r\n currentUserId={currentUserId}\r\n onReplyOpen={onReplyOpen}\r\n replyingToId={replyingToId}\r\n replyEditorRef={replyEditorRef}\r\n onSubmitReply={onSubmitReply}\r\n isSubmitting={isSubmitting}\r\n onEdit={onEdit}\r\n editingId={editingId}\r\n editEditorRef={editEditorRef}\r\n onSubmitEdit={onSubmitEdit}\r\n onDelete={onDelete}\r\n isEditing={isEditing}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import { Loader2, Send } from \"lucide-react\";\r\nimport { Button, Separator } from \"../../../shadcn-ui\";\r\nimport type { TiptapEditorRefs } from \"@kaburi/react-kit/tiptap\";\r\nimport React from \"react\";\r\nimport { CommentItem } from \"./CommentItem\";\r\nimport { CommentEditor } from \"./CommentEditor\";\r\nimport type { FeedbackComment } from \"../../../types\";\r\n\r\ninterface CommentSectionProps {\r\n comments: FeedbackComment[];\r\n isLoading: boolean;\r\n isCommentEditOpen: boolean;\r\n onCommentEditOpen: (open: boolean) => void;\r\n commentEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n onSubmitComment: () => Promise<void>;\r\n isSubmitting: boolean;\r\n replyingToId: string | null;\r\n onReplyOpen: (commentId: string) => void;\r\n replyEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n onSubmitReply: (parentCommentId: string) => Promise<void>;\r\n editingId: string | null;\r\n onEdit: (commentId: string) => void;\r\n editEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n onSubmitEdit: (commentId: string) => Promise<void>;\r\n onDelete: (commentId: string) => Promise<void>;\r\n isEditing: boolean;\r\n currentUserId: string | undefined;\r\n}\r\n\r\nexport const CommentSection = ({\r\n comments,\r\n isLoading,\r\n isCommentEditOpen,\r\n onCommentEditOpen,\r\n commentEditorRef,\r\n onSubmitComment,\r\n isSubmitting,\r\n replyingToId,\r\n onReplyOpen,\r\n replyEditorRef,\r\n onSubmitReply,\r\n editingId,\r\n onEdit,\r\n editEditorRef,\r\n onSubmitEdit,\r\n onDelete,\r\n isEditing,\r\n currentUserId,\r\n}: CommentSectionProps) => {\r\n return (\r\n <div>\r\n {/* 댓글 헤더 */}\r\n <div className=\"mb-4 flex items-center justify-between\">\r\n <h3 className=\"text-sm font-medium text-gray-900 dark:text-gray-100\">\r\n 댓글 ({comments.length})\r\n </h3>\r\n {!isCommentEditOpen && (\r\n <Button\r\n size=\"sm\"\r\n variant=\"outline\"\r\n onClick={() => onCommentEditOpen(true)}\r\n >\r\n <Send className=\"mr-2 h-4 w-4\" />\r\n 댓글 작성\r\n </Button>\r\n )}\r\n </div>\r\n\r\n {/* 댓글 입력 - 토글 상태 */}\r\n {isCommentEditOpen && (\r\n <CommentEditor\r\n tiptapRef={commentEditorRef}\r\n isSubmitting={isSubmitting}\r\n onSubmit={onSubmitComment}\r\n onCancel={() => onCommentEditOpen(false)}\r\n submitLabel=\"작성\"\r\n labelText=\"댓글 작성\"\r\n />\r\n )}\r\n\r\n {/* 댓글 목록 */}\r\n <div className=\"mt-4\">\r\n {isLoading ? (\r\n <div className=\"flex justify-center py-4\">\r\n <Loader2 className=\"h-4 w-4 animate-spin text-gray-400\" />\r\n </div>\r\n ) : comments.length === 0 ? (\r\n <div className=\"text-center text-xs text-gray-500 dark:text-gray-400\">\r\n 아직 댓글이 없습니다.\r\n </div>\r\n ) : (\r\n <div className=\"flex flex-col gap-0\">\r\n {comments.map((comment, index) => (\r\n <div key={comment.id}>\r\n <CommentItem\r\n comment={comment}\r\n level={0}\r\n currentUserId={currentUserId}\r\n onReplyOpen={onReplyOpen}\r\n replyingToId={replyingToId}\r\n replyEditorRef={replyEditorRef}\r\n onSubmitReply={onSubmitReply}\r\n isSubmitting={isSubmitting}\r\n onEdit={onEdit}\r\n editingId={editingId}\r\n editEditorRef={editEditorRef}\r\n onSubmitEdit={onSubmitEdit}\r\n onDelete={onDelete}\r\n isEditing={isEditing}\r\n />\r\n {index < comments.length - 1 && (\r\n <Separator className=\"my-3 bg-gray-200 dark:bg-gray-700\" />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { MoreHorizontal, Edit2, Trash2 } from \"lucide-react\";\r\nimport { format } from \"date-fns\";\r\nimport { Button, Popover, PopoverContent, PopoverTrigger } from \"../../../shadcn-ui\";\r\nimport type { Feedback } from \"../../../types\";\r\nimport { cn } from \"../../../lib/utils\";\r\n\r\ninterface FeedbackHeaderProps {\r\n feedback: Feedback;\r\n currentUserId: string | undefined;\r\n onEditClick: () => void;\r\n onDeleteClick: () => void;\r\n}\r\n\r\nexport const FeedbackHeader = ({\r\n feedback,\r\n currentUserId,\r\n onEditClick,\r\n onDeleteClick,\r\n}: FeedbackHeaderProps) => {\r\n return (\r\n <div className=\"mb-6 flex items-start justify-between\">\r\n <div className=\"flex-1\">\r\n <h2 className=\"text-lg font-medium text-gray-900 dark:text-gray-100\">\r\n {feedback.feedbackDetail.title}\r\n </h2>\r\n <div className=\"mt-3 flex flex-col gap-2\">\r\n {/* 사용자 정보 */}\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-xs font-medium text-gray-700 dark:text-gray-300\">\r\n {feedback.userName}\r\n </span>\r\n {feedback.institutionName && (\r\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\r\n · {feedback.institutionName}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {/* 작성 일자 및 상태 배지 */}\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\r\n {format(new Date(feedback.createdAt), \"yyyy-MM-dd HH:mm\")}\r\n </span>\r\n <span\r\n className={cn(\r\n \"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium\",\r\n feedback.status === \"pending\"\r\n ? \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400\"\r\n : \"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400\"\r\n )}\r\n >\r\n {feedback.status === \"pending\" ? \"미해결\" : \"해결됨\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 메뉴 버튼 */}\r\n {currentUserId === feedback.userId && (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n className=\"h-auto px-2 py-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200\"\r\n >\r\n <MoreHorizontal className=\"h-5 w-5\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-1\">\r\n <div className=\"flex flex-col gap-1\">\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onEditClick}\r\n className=\"justify-start text-xs text-gray-700 dark:text-gray-300\"\r\n >\r\n <Edit2 className=\"mr-2 h-3 w-3\" />\r\n 수정\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onDeleteClick}\r\n className=\"justify-start text-xs text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300\"\r\n >\r\n <Trash2 className=\"mr-2 h-3 w-3\" />\r\n 삭제\r\n </Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import { Loader2, RefreshCw } from \"lucide-react\";\r\nimport { ContentDiv } from \"@kaburi/react-kit/tiptap\";\r\nimport type { TiptapEditorRefs } from \"@kaburi/react-kit/tiptap\";\r\nimport React from \"react\";\r\nimport { CommentEditor } from \"./CommentEditor\";\r\nimport { Button } from \"../../../shadcn-ui\";\r\nimport type { Feedback } from \"../../../types\";\r\nimport { cn } from \"../../../lib/utils\";\r\n\r\ninterface FeedbackBodyProps {\r\n feedback: Feedback;\r\n isEditing: boolean;\r\n isUpdating: boolean;\r\n currentUserRole: string | undefined;\r\n feedbackEditorRef: React.RefObject<TiptapEditorRefs | null>;\r\n titleInputRef: React.RefObject<HTMLInputElement | null>;\r\n onEditCancel: () => void;\r\n onEditSave: () => Promise<void>;\r\n onStatusChange: () => Promise<void>;\r\n}\r\n\r\nexport const FeedbackBody = ({\r\n feedback,\r\n isEditing,\r\n isUpdating,\r\n currentUserRole,\r\n feedbackEditorRef,\r\n titleInputRef,\r\n onEditCancel,\r\n onEditSave,\r\n onStatusChange,\r\n}: FeedbackBodyProps) => {\r\n return (\r\n <div className=\"mb-6\">\r\n {isEditing ? (\r\n <div className=\"flex flex-col gap-4\">\r\n <div className=\"rounded-lg bg-gray-50 p-3 dark:bg-gray-800/50\">\r\n <label className=\"mb-2 block text-xs font-medium text-gray-700 dark:text-gray-300\">\r\n 제목\r\n </label>\r\n <input\r\n ref={titleInputRef}\r\n type=\"text\"\r\n defaultValue={feedback.feedbackDetail.title}\r\n className=\"w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-sm text-gray-900 placeholder-gray-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:placeholder-gray-500\"\r\n placeholder=\"피드백 제목을 입력하세요\"\r\n />\r\n </div>\r\n <CommentEditor\r\n tiptapRef={feedbackEditorRef}\r\n initialContent={feedback.feedbackDetail.body}\r\n isSubmitting={isUpdating}\r\n onSubmit={onEditSave}\r\n onCancel={onEditCancel}\r\n submitLabel=\"수정\"\r\n labelText=\"피드백 수정\"\r\n showLabel={true}\r\n />\r\n </div>\r\n ) : (\r\n <>\r\n {/* 본문 내용 */}\r\n <div className=\"prose prose-sm dark:prose-invert mb-6 max-w-none text-gray-900 dark:text-gray-100\">\r\n <ContentDiv content={feedback.feedbackDetail.body} />\r\n </div>\r\n\r\n {/* 상태 배지 및 상태 변경 버튼 */}\r\n <div className=\"w-full\">\r\n <div\r\n className={cn(\r\n \"flex items-center justify-between rounded-lg px-4 py-4 font-medium\",\r\n feedback.status === \"pending\"\r\n ? \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400\"\r\n : \"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400\"\r\n )}\r\n >\r\n <div>\r\n <div className=\"mb-1 text-sm font-semibold\">\r\n {feedback.status === \"pending\"\r\n ? \"아직 미해결이에요\"\r\n : \"해결되었어요\"}{\" \"}\r\n {feedback.status === \"pending\" ? \"⏳\" : \"✓\"}\r\n </div>\r\n <div className=\"text-xs opacity-90\">\r\n {feedback.status === \"pending\"\r\n ? \"담당자가 검토하고 있습니다. 조금 더 기다려주세요.\"\r\n : \"소중한 피드백 감사합니다!\"}\r\n </div>\r\n </div>\r\n\r\n {/* 관리자 상태 변경 버튼 */}\r\n {currentUserRole === \"admin\" && (\r\n <Button\r\n size=\"sm\"\r\n onClick={onStatusChange}\r\n disabled={isUpdating}\r\n className={cn(\r\n \"shrink-0 gap-1\",\r\n feedback.status === \"pending\"\r\n ? \"bg-yellow-700 hover:bg-yellow-800 dark:bg-yellow-600 dark:hover:bg-yellow-700\"\r\n : \"bg-green-700 hover:bg-green-800 dark:bg-green-600 dark:hover:bg-green-700\"\r\n )}\r\n >\r\n {isUpdating ? (\r\n <Loader2 className=\"h-4 w-4 animate-spin\" />\r\n ) : (\r\n <RefreshCw className=\"h-4 w-4\" />\r\n )}\r\n {feedback.status === \"pending\" ? \"해결\" : \"미해결\"}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import { useRef } from \"react\";\r\nimport type { TiptapEditorRefs } from \"@kaburi/react-kit/tiptap\";\r\n\r\nexport const useCommentEditor = () => {\r\n const commentEditorRef = useRef<TiptapEditorRefs>(null);\r\n const replyEditorRef = useRef<TiptapEditorRefs>(null);\r\n const editEditorRef = useRef<TiptapEditorRefs>(null);\r\n const feedbackEditorRef = useRef<TiptapEditorRefs>(null);\r\n\r\n // 에디터 내용 클리어\r\n const clearEditor = (ref: React.RefObject<TiptapEditorRefs | null>) => {\r\n const editor = ref.current as unknown as {\r\n editor?: { commands?: { clearContent?: () => void } };\r\n };\r\n editor?.editor?.commands?.clearContent?.();\r\n };\r\n\r\n const getEditorContent = (ref: React.RefObject<TiptapEditorRefs | null>) => {\r\n return ref.current?.getJSON?.() ?? \"\";\r\n };\r\n\r\n const validateContent = (content: string | object): boolean => {\r\n if (!content) return false;\r\n if (typeof content === \"string\") return content.trim().length > 0;\r\n return true;\r\n };\r\n\r\n return {\r\n commentEditorRef,\r\n replyEditorRef,\r\n editEditorRef,\r\n feedbackEditorRef,\r\n clearEditor,\r\n getEditorContent,\r\n validateContent,\r\n };\r\n};\r\n","import { AlertCircle, Loader2 } from \"lucide-react\";\r\nimport { useRef, useState, useTransition } from \"react\";\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Button, Separator } from \"../../shadcn-ui\";\r\nimport type {\r\n CreateFeedbackCommentRequest,\r\n CreateFeedbackRequest,\r\n Feedback,\r\n FeedbackComment,\r\n UserDto,\r\n} from \"../../types\";\r\nimport { CommentSection, FeedbackBody, FeedbackHeader } from \"./components\";\r\nimport { useCommentEditor } from \"./hooks\";\r\n\r\ninterface FeedbackDetailPageContentProps {\r\n feedback: Feedback | undefined;\r\n comments: FeedbackComment[] | undefined;\r\n isFeedbackLoading: boolean;\r\n feedbackError: unknown;\r\n isCommentsLoading: boolean;\r\n currentUser: UserDto | undefined;\r\n onClose?: () => void;\r\n isDialog?: boolean;\r\n callbacks: {\r\n onCommentCreate: (\r\n feedbackId: string,\r\n data: CreateFeedbackCommentRequest\r\n ) => Promise<any>;\r\n onCommentUpdate: (\r\n commentId: string,\r\n data: CreateFeedbackCommentRequest\r\n ) => Promise<any>;\r\n onCommentDelete: (commentId: string) => Promise<any>;\r\n onFeedbackUpdate: (\r\n id: string,\r\n data: Partial<CreateFeedbackRequest>\r\n ) => Promise<any>;\r\n onFeedbackStatusUpdate?: (\r\n id: string,\r\n data: Partial<CreateFeedbackRequest> & {\r\n status?: \"pending\" | \"resolved\";\r\n }\r\n ) => Promise<any>;\r\n onDeleteFeedback: (id: string) => Promise<any>;\r\n onValidateError: (errType: \"empty\") => void;\r\n onError: (error: unknown) => void;\r\n onCommentChanged: () => void;\r\n onFeedbackChanged: () => void;\r\n };\r\n}\r\n\r\nexport const FeedbackDetailPageContent = ({\r\n feedback,\r\n isFeedbackLoading,\r\n feedbackError,\r\n comments: commentsData,\r\n isCommentsLoading,\r\n currentUser,\r\n onClose,\r\n callbacks,\r\n isDialog = false,\r\n}: FeedbackDetailPageContentProps) => {\r\n const {\r\n commentEditorRef,\r\n replyEditorRef,\r\n editEditorRef,\r\n feedbackEditorRef,\r\n clearEditor,\r\n getEditorContent,\r\n validateContent,\r\n } = useCommentEditor();\r\n\r\n const [isCommentEditOpen, setIsCommentEditOpen] = useState(false);\r\n const [replyingToId, setReplyingToId] = useState<string | null>(null);\r\n const [editingId, setEditingId] = useState<string | null>(null);\r\n const [isEditingFeedback, setIsEditingFeedback] = useState(false);\r\n const titleInputRef = useRef<HTMLInputElement | null>(null);\r\n const [isCommentCreating, startCommentCreating] = useTransition();\r\n const [isCommentUpdating, startCommentUpdating] = useTransition();\r\n const [isCommentDeleting, startCommentDeleting] = useTransition();\r\n const [isFeedbackUpdating, startFeedbackUpdating] = useTransition();\r\n\r\n const comments = commentsData || [];\r\n\r\n const handleSubmitComment = async () => {\r\n const body = getEditorContent(commentEditorRef);\r\n if (!validateContent(body)) {\r\n return callbacks.onValidateError(\"empty\");\r\n }\r\n\r\n if (!feedback?.id) return;\r\n\r\n startCommentCreating(async () => {\r\n try {\r\n await callbacks.onCommentCreate(feedback.id, { body });\r\n clearEditor(commentEditorRef);\r\n setIsCommentEditOpen(false);\r\n callbacks.onCommentChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleSubmitReply = async (parentCommentId: string) => {\r\n const body = getEditorContent(replyEditorRef);\r\n if (!validateContent(body)) {\r\n return callbacks.onValidateError(\"empty\");\r\n }\r\n\r\n if (!feedback?.id) return;\r\n\r\n startCommentCreating(async () => {\r\n try {\r\n await callbacks.onCommentCreate(feedback.id, {\r\n body,\r\n refId: parentCommentId,\r\n });\r\n clearEditor(replyEditorRef);\r\n setReplyingToId(null);\r\n callbacks.onCommentChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleSubmitEdit = async (commentId: string) => {\r\n const body = getEditorContent(editEditorRef);\r\n if (!validateContent(body)) {\r\n return callbacks.onValidateError(\"empty\");\r\n }\r\n\r\n startCommentUpdating(async () => {\r\n try {\r\n await callbacks.onCommentUpdate(commentId, { body });\r\n setEditingId(null);\r\n clearEditor(editEditorRef);\r\n callbacks.onCommentChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleDelete = async (commentId: string) => {\r\n if (!confirm(\"댓글을 삭제하시겠습니까?\")) return;\r\n\r\n startCommentDeleting(async () => {\r\n try {\r\n await callbacks.onCommentDelete(commentId);\r\n callbacks.onCommentChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleSubmitFeedbackEdit = async () => {\r\n const title = titleInputRef.current?.value || \"\";\r\n const body = getEditorContent(feedbackEditorRef);\r\n\r\n if (!validateContent(title)) {\r\n callbacks.onValidateError(\"empty\");\r\n return;\r\n }\r\n\r\n if (!validateContent(body)) {\r\n callbacks.onValidateError(\"empty\");\r\n return;\r\n }\r\n\r\n if (!feedback) return;\r\n\r\n startFeedbackUpdating(async () => {\r\n try {\r\n await callbacks.onFeedbackUpdate(feedback.id, {\r\n feedbackDetail: {\r\n title,\r\n body,\r\n },\r\n });\r\n setIsEditingFeedback(false);\r\n clearEditor(feedbackEditorRef);\r\n callbacks.onFeedbackChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleStatusChange = async () => {\r\n if (!feedback) return;\r\n\r\n startFeedbackUpdating(async () => {\r\n try {\r\n const newStatus =\r\n feedback.status === \"pending\" ? \"resolved\" : \"pending\";\r\n await callbacks.onFeedbackStatusUpdate?.(feedback.id, {\r\n status: newStatus,\r\n });\r\n callbacks.onFeedbackChanged();\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n });\r\n };\r\n\r\n const handleDeleteFeedback = async () => {\r\n if (!confirm(\"피드백을 삭제하시겠습니까?\")) return;\r\n\r\n if (!feedback?.id) return;\r\n\r\n try {\r\n await callbacks.onDeleteFeedback(feedback.id);\r\n callbacks.onFeedbackChanged();\r\n if (onClose) {\r\n onClose();\r\n } else {\r\n window.close();\r\n }\r\n } catch (error) {\r\n callbacks.onError(error);\r\n }\r\n };\r\n\r\n if (isFeedbackLoading) {\r\n const loadingContent = (\r\n <div className=\"flex items-center justify-center py-8\">\r\n <Loader2 className=\"h-6 w-6 animate-spin text-gray-400\" />\r\n </div>\r\n );\r\n\r\n if (isDialog) return loadingContent;\r\n\r\n return (\r\n <div className=\"bg-background flex min-h-screen items-center justify-center\">\r\n {loadingContent}\r\n </div>\r\n );\r\n }\r\n\r\n if (feedbackError || !feedback) {\r\n const errorContent = (\r\n <div className=\"flex flex-col items-center justify-center p-4\">\r\n <div className=\"flex items-center gap-2 rounded-md bg-red-50 p-4 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-400\">\r\n <AlertCircle className=\"h-4 w-4 shrink-0\" />\r\n <span>피드백을 불러오는데 실패했습니다.</span>\r\n </div>\r\n {!isDialog && (\r\n <Button\r\n onClick={() => window.close()}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"mt-4 text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100\"\r\n >\r\n 닫기\r\n </Button>\r\n )}\r\n </div>\r\n );\r\n\r\n if (isDialog) {\r\n return (\r\n <div className=\"flex items-center justify-center py-8\">\r\n {errorContent}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"bg-background flex min-h-screen flex-col items-center justify-center\">\r\n {errorContent}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"bg-background flex flex-col\",\r\n isDialog ? \"h-auto\" : \"min-h-screen\"\r\n )}\r\n >\r\n <div className=\"shrink-0 border-b border-gray-200 py-4 dark:border-gray-700\">\r\n <div className=\"mx-auto max-w-4xl px-6\">\r\n <div className=\"flex items-center justify-between\">\r\n <h1 className=\"text-lg font-semibold text-gray-900 dark:text-gray-100\">\r\n 피드백 상세\r\n </h1>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"bg-background flex-1 overflow-y-auto\">\r\n <div className=\"mx-auto max-w-4xl px-6 py-6\">\r\n <FeedbackHeader\r\n feedback={feedback}\r\n currentUserId={currentUser?.id}\r\n onEditClick={() => setIsEditingFeedback(true)}\r\n onDeleteClick={handleDeleteFeedback}\r\n />\r\n\r\n <FeedbackBody\r\n feedback={feedback}\r\n isEditing={isEditingFeedback}\r\n isUpdating={isFeedbackUpdating}\r\n currentUserRole={currentUser?.role}\r\n feedbackEditorRef={feedbackEditorRef}\r\n titleInputRef={titleInputRef}\r\n onEditCancel={() => setIsEditingFeedback(false)}\r\n onEditSave={handleSubmitFeedbackEdit}\r\n onStatusChange={handleStatusChange}\r\n />\r\n\r\n <Separator className=\"mb-6 bg-gray-200 dark:bg-gray-700\" />\r\n\r\n <CommentSection\r\n comments={comments}\r\n isLoading={isCommentsLoading}\r\n isCommentEditOpen={isCommentEditOpen}\r\n onCommentEditOpen={setIsCommentEditOpen}\r\n commentEditorRef={commentEditorRef}\r\n onSubmitComment={handleSubmitComment}\r\n isSubmitting={isCommentCreating}\r\n replyingToId={replyingToId}\r\n onReplyOpen={setReplyingToId}\r\n replyEditorRef={replyEditorRef}\r\n onSubmitReply={handleSubmitReply}\r\n editingId={editingId}\r\n onEdit={setEditingId}\r\n editEditorRef={editEditorRef}\r\n onSubmitEdit={handleSubmitEdit}\r\n onDelete={handleDelete}\r\n isEditing={isCommentUpdating || isCommentDeleting}\r\n currentUserId={currentUser?.id}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"names":["v","N","L","ue","a","g","i","x","q","se","l","F","ie","_e","b","d","M","le","f","u","m","_","R","W","ce","e","ne","T","X","z","K","ee","te","J","Z","B","Q","r","re","h","t","n","O","j","Y","G","I","H","E","S","o","C","P","oe","y","c","ae","U","A","w","k","D","$","V","fe","de","$f","ye","s","yc","bc","gr","Xs","Fr","Lo","Wr","xc","kc","Hf","wc","Yt","_f","Cc","Ur","Sc","Po","Gt","Vn","Zn","Kr","fl","jf","Vf","Ff","vc","qr","en","Wf","Mc","Xf","Yf","Qf","Uf","Kf","Gf","qf","hl","Jf","Tc","pl","Ec","Ac","Nc","Oc","eh","ml","Rc","Zf","Ls","Dc","gl","th","nh","Rt","bl","oh","kl","Ic","rh","Lc","er","zo","Fn","yl","yr","sh","xl","$t","Qs","Pr","wl","Sl","ih","lh","p","Pc","zc","ah","Cl","ch","Bc","$c","zr","Hc","Bo","Oe","tr","Zs","Ce","bi","At","Je","Nt","tn","$o","pe","dh","uh","ki","fh","Rn","hh","xi","ph","mh","vl","gh","yh","bh","jc","_c","kh","mt","xh","Ht","Vc","wh","Ps","Sh","Ch","Fc","zs","Wc","vh","eo","$n","Uc","Hn","to","Mh","Th","Eh","qc","Kc","Ah","Nh","Cn","nr","Mn","wi","no","Jc","El","yn","De","Ml","Tl","Bs","Si","Oh","Al","br","Nl","Rh","Ol","_n","Dh","ro","wn","Gc","Yc","so","Ci","Xc","Qc","vi","ld","Tn","Ih","Zc","Lh","td","Mi","ed","nd","rd","Ph","zh","Bh","sd","Ti","$h","od","id","Hh","_h","jh","Vh","ad","Fh","Wh","Uh","Rl","Ei","Kh","qh","Jh","Gh","Yh","Xh","Qh","be","En","Ho","ht","Zh","nn","Dl","ep","He","ur","tp","np","rp","$s","Ft","sp","op","nt","Il","_o","cd","jo","Ne","Dt","je","Vo","we","dd","ve","An","$e","ip","pt","fr","lp","ap","lt","cp","Ll","dp","ud","up","fd","pn","fp","hd","hp","wt","Ai","pp","mp","gp","pd","yp","Pl","bp","md","Pn","oo","gd","kp","xp","wp","zl","Bl","$l","Sp","Ve","Hl","Wt","rt","hr","bd","yd","Cp","rn","Wo","It","wd","vp","Hs","Jr","Tp","Np","kd","Op","Rp","xd","Fo","_l","jl","Wn","Ut","Mp","Ep","Ap","Ni","Oi","Sd","vd","gt","Cd","Ip","Vl","Fl","Wl","Dp","io","Ul","Kl","Lp","Uo","St","ql","Gr","Un","mn","Pp","zp","Md","Ko","Bp","$p","Jl","Gl","Yl","Xl","Hp","_p","jp","Ri","Rd","Od","Td","Up","Kp","Vp","qp","Ql","Fp","Ad","Nd","Ed","qo","Zl","lo","Wp","Me","Te","Jp","Gp","Yp","Qp","Di","Jo","Ot","Xp","Zp","Id","_s","em","Ii","vn","tm","nm","rm","sm","om","im","Li","Yr","Dd","lm","am","Ld","Pd","dm","cm","um","rr","fm","hm","sr","zd","Bd","pm","$d","or","Xr","Xt","he","Lt","Pi","bn","Qr","xe","mm","Qt","_d","Hd","jd","Mt","zi","gm","ea","ao","ym","bm","km","xm","Cm","wm","ta","na","ra","Sm","vm","Mm","Tm","Em","Om","sa","Nm","Am","co","oa","Vd","da","aa","la","ca","ia","Dm","Rm","Pt","Zr","Im","Lm","ke","uo","Pm","zm","Bm","$m","Hm","fo","_m","Bi","jm","$i","js","Vs","Fd","Vm","Fm","Wm","Um","Km","qm","Jm","Gm","Ym","Xm","Qm","Zm","eg","tg","ng","rg","sg","lg","dg","cg","ug","fg","hg","pg","mg","ag","yg","bg","kg","xg","wg","Sg","Cg","vg","Mg","Tg","Eg","Ag","Ng","Og","qg","Jg","Gg","Yg","Xg","Qg","Zg","ey","ty","ny","ry","sy","oy","iy","ly","ay","cy","dy","uy","fy","Hi","es","Wd","ua","_i","yt","Ud","Kt","Kd","qd","Fs","Jd","kr","ir","og","ig","Gd","gg","zt","Ws","fa","Go","Yd","Xd","Rg","Dg","Qd","Us","ji","Vi","Zd","Ig","Nn","eu","lr","Lg","ha","pa","ma","tu","Pg","Fi","Wi","zg","nu","Bg","ru","$g","su","Hg","_g","ou","Ui","jg","ho","Br","Vg","Yo","Fg","Wg","Ug","ga","ya","Ks","iu","Kg","ba","po","mo","hy","qs","py","xr","my","gy","wr","lu","Ki","bt","au","yy","by","ky","xy","Sr","wy","Sy","Js","By","Cy","du","uu","fu","hu","pu","gu","yu","bu","ku","xu","mu","cu","vy","kn","My","Ty","Ey","sn","wu","Xo","On","Ay","Ny","Oy","Ry","Dy","Iy","zy","qi","Qo","Gi","Ji","Ly","Py","ge","Su","$y","Bt","Hy","Cu","_y","vu","jy","Mu","Vy","Fy","Wy","Uy","Ky","qy","Jy","Gy","Zo","ei","Yy","Xy","Qy","Zy","Se","Tt","Dn","eb","Ye","Gs","tb","ti","nb","Yi","Tu","on","Eu","rb","ut","sb","Au","ob","ib","lb","ab","cb","Nu","Ou","db","st","Ru","ub","fb","hb","pb","mb","Du","gb","yb","bb","kb","ka","xb","xa","wa","wb","Sb","Cb","Sa","ar","vb","Mb","Ca","Tb","Cr","Eb","ni","Ab","Nb","Ob","va","Ma","Ta","Rb","vr","Mr","$r","Iu","Db","Ib","Lb","Ea","go","Pb","ri","Re","zb","Bb","$b","Hb","_b","Ub","Hr","Vb","Aa","Lu","jb","Fb","Na","Oa","Wb","Kb","Pu","zu","Bu","si","Ra","qb","Jb","Da","Gb","Yb","Xb","Tr","Qb","Zb","e0","t0","$u","n0","r0","s0","o0","i0","Hu","l0","ts","a0","c0","d0","u0","f0","h0","p0","m0","g0","y0","yo","b0","k0","x0","w0","S0","C0","v0","M0","T0","E0","A0","N0","O0","R0","oi","ii","li","Kn","jn","ai","_u","D0","I0","bo","L0","qt","P0","Ae","Ia","ft","ci","ju","Vu","cr","di","ui","_r","xn","Xi","fi","Qi","qn","Jn","ns","rs","ss","is","ls","as","cs","ds","us","fs","hs","ps","ms","gs","ys","bs","ks","Ct","xs","ws","Ss","Et","Zi","Cs","Ze","vs","el","Be","Gn","Ms","Ts","Es","Yn","tl","Fu","nl","et","Xn","As","Wu","Ns","Uu","at","zn","ko","ct","xo","La","wo","z0","B0","So","Er","Ar","$0","Pa","kt","Ku","H0","dr","za","rl","qu","Ys","Ba","$a","_0","Nr","ze","j0","V0","Co","F0","W0","U0","Ha","K0","sl","Ju","ol","q0","J0","G0","Y0","X0","Q0","Z0","jt","e1","t1","n1","r1","_a","ja","Gu","Yu","s1","pr","il","hi","pi","Xu","o1","Qu","Zu","ef","tf","nf","Va","i1","l1","rf","a1","c1","Fa","Wa","sf","d1","u1","f1","h1","p1","m1","g1","y1","b1","k1","ll","x1","w1","of","S1","T1","v1","C1","M1","Or","Os","me","E1","lf","A1","qe","tt","O1","N1","vt","R1","Zt","L1","jr","Ua","D1","vo","I1","Mo","Ka","P1","cf","df","af","z1","B1","qa","$1","H1","_1","j1","V1","F1","W1","Rr","To","Ja","U1","Ge","Eo","Ga","K1","Ya","al","uf","Ao","Xa","q1","J1","G1","Dr","No","Qa","Y1","Oo","Za","X1","ec","Q1","Z1","ek","tk","nk","zf","rk","sk","yi","ok","ik","If","Ds","lk","ff","Jt","gc","tc","mi","ak","ck","hf","dk","Qn","uk","mc","pf","fk","Df","Ro","nc","rc","hk","pk","mk","ul","gk","Bf","yk","Of","Rf","Vr","bk","kk","Is","Le","Ee","Pe","Ie","xk","wk","mf","gf","Sk","Ck","vk","yf","Rs","sc","Mk","Tk","Ak","Ek","bf","Nk","cl","Ok","Rk","Dk","Ik","kf","Lk","Pk","gi","oc","zk","ic","Bk","$k","Hk","_k","jk","Vk","xf","Fk","Wk","wf","Sf","Uk","Kk","qk","Jk","Gk","Yk","gn","xt","Do","dt","Xk","Qk","Cf","Zk","ex","tx","nx","In","Tf","Vt","Ef","Io","lx","lc","vf","rx","Mf","Ir","Af","Bn","Ln","sx","ax","ac","ox","ix","Lr","cx","Fe","ot","it","We","Ue","Xe","Ke","dx","Sn","ux","fx","cc","Nf","hx","px","mx","gx","yx","bx","dc","kx","xx","wx","Sx","Cx","vx","Mx","Tx","Ex","Ax","Nx","Ox","Rx","Dx","Ix","Lx","Px","zx","Bx","$x","Hx","_x","jx","Vx","Fx","Wx","Ux","Kx","qx","Jx","Gx","Yx","Xx","Qx","Zx","ew","dl","uc","fc","hc","tw","Qe","hn","nw","ln","an","cn","dn","un","fn","mr","pc","fw","Lf","Pf","rw","sw","ow","hw","CommentEditor","ref","tiptapRef","initialContent","isSubmitting","t2","onSubmit","onCancel","submitLabel","t3","cancelLabel","t4","showLabel","t5","labelText","t6","containerClassName","t7","undefined","t8","t9","jsxs","jsx","Button","Loader2","Send","t10","t11","Symbol","for","menubarContainer","editorContent","t12","TiptapEditor","t13","CommentActions","onEdit","onDelete","PopoverTrigger","MoreHorizontal","Edit2","Trash2","Popover","PopoverContent","CommentItem","comment","level","currentUserId","onReplyOpen","replyingToId","replyEditorRef","onSubmitReply","editingId","editEditorRef","onSubmitEdit","isEditing","isReplying","isEditingThis","hasChildren","children","length","replyEditorContainerId","body","createdAt","isAdmin","userId","userName","format","Date","ContentDiv","setTimeout","editorElement","document","getElementById","scrollIntoView","behavior","block","querySelector","focus","element","map","child","CommentSection","comments","isLoading","isCommentEditOpen","onCommentEditOpen","commentEditorRef","onSubmitComment","index","Separator","FeedbackHeader","feedback","onEditClick","onDeleteClick","feedbackDetail","title","institutionName","status","t14","t15","FeedbackBody","isUpdating","currentUserRole","feedbackEditorRef","titleInputRef","onEditCancel","onEditSave","onStatusChange","Fragment","RefreshCw","useCommentEditor","useRef","clearEditor","_temp","getEditorContent","_temp2","validateContent","_temp3","editor","current","commands","clearContent","ref_0","getJSON","content","trim","FeedbackDetailPageContent","isFeedbackLoading","feedbackError","commentsData","isCommentsLoading","currentUser","onClose","callbacks","isDialog","setIsCommentEditOpen","useState","setReplyingToId","setEditingId","isEditingFeedback","setIsEditingFeedback","isCommentCreating","startCommentCreating","useTransition","isCommentUpdating","startCommentUpdating","isCommentDeleting","startCommentDeleting","isFeedbackUpdating","startFeedbackUpdating","handleSubmitComment","onValidateError","onCommentCreate","onCommentChanged","error","onError","handleSubmitReply","parentCommentId","refId","handleSubmitEdit","commentId","onCommentUpdate","handleDelete","confirm","onCommentDelete","handleSubmitFeedbackEdit","value","onFeedbackUpdate","onFeedbackChanged","handleStatusChange","newStatus","onFeedbackStatusUpdate","handleDeleteFeedback","onDeleteFeedback","window","close","loadingContent","errorContent","AlertCircle","role"],"mappings":"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","x_google_ignoreList":[0,1]}