@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","_f","Cc","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","Oh","Al","br","Nl","Rh","Ol","_n","Dh","ro","wn","Gc","Yc","so","Xc","Qc","vi","ld","Tn","Ih","Zc","Lh","td","Mi","ed","nd","rd","Ph","zh","Bh","sd","$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","_t","_o","cd","jo","Ne","Dt","je","Vo","we","dd","ve","An","$e","ip","pt","lp","ap","lt","cp","Ll","dp","ud","up","fd","pn","fp","hd","hp","wt","pp","mp","gp","pd","yp","Pl","bp","md","oo","gd","kp","xp","wp","zl","Bl","$l","Sp","Ve","Hl","Wt","rt","hr","bd","yd","Cp","rn","Wo","It","wd","vp","Hs","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","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","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","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","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","My","Ty","Ey","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","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","ci","ju","Vu","cr","di","ui","_r","xn","Xi","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","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","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","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","current","editor","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]}