@lyads/visual-editor 0.0.0-stage → 1.0.1

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 (258) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +8 -0
  4. package/README.md +135 -2
  5. package/THIRD_PARTY_NOTICES.md +21259 -0
  6. package/dist/application/block-placement.d.ts +30 -0
  7. package/dist/application/block-session.d.ts +135 -0
  8. package/dist/application/content-service.d.ts +73 -0
  9. package/dist/application/document-commands.d.ts +51 -0
  10. package/dist/application/document-metadata.d.ts +30 -0
  11. package/dist/application/document-presentation.d.ts +35 -0
  12. package/dist/application/email-insertion.d.ts +76 -0
  13. package/dist/application/host.d.ts +36 -0
  14. package/dist/application/image-link.d.ts +36 -0
  15. package/dist/application/section-layout.d.ts +25 -0
  16. package/dist/application/session.d.ts +128 -0
  17. package/dist/assets/browser-worker-D56tNvnb.js +1014 -0
  18. package/dist/assets/browser-worker-D56tNvnb.js.map +1 -0
  19. package/dist/block-controller-RjYGvOcn.js +2468 -0
  20. package/dist/block-controller-RjYGvOcn.js.map +1 -0
  21. package/dist/block-factory-C5oHi4Fm.js +5397 -0
  22. package/dist/block-factory-C5oHi4Fm.js.map +1 -0
  23. package/dist/blocks/block-checks.d.ts +34 -0
  24. package/dist/blocks/block-inspector.d.ts +55 -0
  25. package/dist/blocks/block-output.d.ts +28 -0
  26. package/dist/blocks/block-type.d.ts +124 -0
  27. package/dist/blocks/content-guard.d.ts +52 -0
  28. package/dist/blocks/conversion.d.ts +22 -0
  29. package/dist/blocks/definitions.d.ts +43 -0
  30. package/dist/blocks/device-styles.d.ts +31 -0
  31. package/dist/blocks/email-generator.d.ts +22 -0
  32. package/dist/blocks/email-preview.d.ts +23 -0
  33. package/dist/blocks/email-renderer.d.ts +20 -0
  34. package/dist/blocks/fields.d.ts +34 -0
  35. package/dist/blocks/page-generator.d.ts +16 -0
  36. package/dist/blocks/render-context.d.ts +58 -0
  37. package/dist/blocks/styles.d.ts +54 -0
  38. package/dist/blocks/types/embed.d.ts +40 -0
  39. package/dist/blocks/types/layout.d.ts +41 -0
  40. package/dist/blocks/types/media.d.ts +53 -0
  41. package/dist/blocks/types/structure.d.ts +44 -0
  42. package/dist/blocks/types/text.d.ts +88 -0
  43. package/dist/blocks/values.d.ts +64 -0
  44. package/dist/browser.js +69 -0
  45. package/dist/browser.js.map +1 -0
  46. package/dist/canvas-runtime/action-bar.d.ts +19 -0
  47. package/dist/canvas-runtime/auto-scroll.d.ts +10 -0
  48. package/dist/canvas-runtime/block-drag.d.ts +29 -0
  49. package/dist/canvas-runtime/bridge.d.ts +6 -0
  50. package/dist/canvas-runtime/context.d.ts +53 -0
  51. package/dist/canvas-runtime/document-sync.d.ts +21 -0
  52. package/dist/canvas-runtime/drop-targets.d.ts +34 -0
  53. package/dist/canvas-runtime/embed-markers.d.ts +15 -0
  54. package/dist/canvas-runtime/file-guard.d.ts +12 -0
  55. package/dist/canvas-runtime/image-tools.d.ts +31 -0
  56. package/dist/canvas-runtime/keyboard.d.ts +18 -0
  57. package/dist/canvas-runtime/main.d.ts +1 -0
  58. package/dist/canvas-runtime/messages.d.ts +26 -0
  59. package/dist/canvas-runtime/morph.d.ts +21 -0
  60. package/dist/canvas-runtime/navigation.d.ts +29 -0
  61. package/dist/canvas-runtime/overlay.d.ts +15 -0
  62. package/dist/canvas-runtime/pointer-intents.d.ts +14 -0
  63. package/dist/canvas-runtime/selection-layer.d.ts +16 -0
  64. package/dist/canvas-runtime/shared/shortcuts.d.ts +27 -0
  65. package/dist/canvas-runtime/text-editor.d.ts +55 -0
  66. package/dist/canvas-runtime/text-session.d.ts +39 -0
  67. package/dist/canvas-runtime/variable-marks.d.ts +20 -0
  68. package/dist/canvas-runtime/viewport.d.ts +10 -0
  69. package/dist/codecs/css.d.ts +74 -0
  70. package/dist/codecs/html.d.ts +81 -0
  71. package/dist/compilation/browser-compiler.d.ts +14 -0
  72. package/dist/compilation/browser-worker.d.ts +1 -0
  73. package/dist/compilation/compile-lanes.d.ts +18 -0
  74. package/dist/compilation/generated-mjml.d.ts +25 -0
  75. package/dist/compilation/guard.d.ts +40 -0
  76. package/dist/compilation/node-compiler.d.ts +17 -0
  77. package/dist/compilation/node-worker.d.ts +1 -0
  78. package/dist/composition/block-factory.d.ts +84 -0
  79. package/dist/composition/browser.d.ts +48 -0
  80. package/dist/composition/factory.d.ts +48 -0
  81. package/dist/composition/server.d.ts +43 -0
  82. package/dist/core/any-document.d.ts +16 -0
  83. package/dist/core/block-document.d.ts +215 -0
  84. package/dist/core/budget.d.ts +32 -0
  85. package/dist/core/canvas-contract.d.ts +29 -0
  86. package/dist/core/canvas-layout.d.ts +66 -0
  87. package/dist/core/catalog.d.ts +35 -0
  88. package/dist/core/document-presentation.d.ts +21 -0
  89. package/dist/core/document.d.ts +99 -0
  90. package/dist/core/history.d.ts +26 -0
  91. package/dist/core/html-content-model.d.ts +32 -0
  92. package/dist/core/html-escape.d.ts +2 -0
  93. package/dist/core/rich-text-format.d.ts +14 -0
  94. package/dist/core/rich-text-markup.d.ts +28 -0
  95. package/dist/core/section-layout.d.ts +83 -0
  96. package/dist/generated-mjml-CtzE-f3v.js +1235 -0
  97. package/dist/generated-mjml-CtzE-f3v.js.map +1 -0
  98. package/dist/identity-CJHb6l9N.js +13759 -0
  99. package/dist/identity-CJHb6l9N.js.map +1 -0
  100. package/dist/renderers/canvas-bridge.d.ts +75 -0
  101. package/dist/renderers/canvas-icons.d.ts +1 -0
  102. package/dist/renderers/canvas-runtime.generated.d.ts +3 -0
  103. package/dist/renderers/element-source.d.ts +13 -0
  104. package/dist/renderers/email-renderer.d.ts +14 -0
  105. package/dist/renderers/marked-preview.d.ts +34 -0
  106. package/dist/renderers/markup-tree.d.ts +36 -0
  107. package/dist/renderers/page-renderer.d.ts +15 -0
  108. package/dist/renderers/preview-document.d.ts +39 -0
  109. package/dist/renderers/preview-frame.d.ts +102 -0
  110. package/dist/renderers/section-scaffold.d.ts +16 -0
  111. package/dist/renderers/selection-preview.d.ts +47 -0
  112. package/dist/rich-text/command-executor.d.ts +26 -0
  113. package/dist/rich-text/commands.d.ts +36 -0
  114. package/dist/rich-text/document-builder.d.ts +52 -0
  115. package/dist/rich-text/formatting.d.ts +17 -0
  116. package/dist/rich-text/projection-export.d.ts +17 -0
  117. package/dist/rich-text/projection-rules.d.ts +13 -0
  118. package/dist/rich-text/schema.d.ts +50 -0
  119. package/dist/rich-text/whitespace.d.ts +7 -0
  120. package/dist/security/bounded-parser.d.ts +18 -0
  121. package/dist/security/conditional-comment.d.ts +30 -0
  122. package/dist/security/content-inventory.d.ts +78 -0
  123. package/dist/security/email-sanitizer.d.ts +36 -0
  124. package/dist/security/identity.d.ts +6 -0
  125. package/dist/security/markup-rules.d.ts +31 -0
  126. package/dist/security/policy.d.ts +61 -0
  127. package/dist/security/preview-message.d.ts +317 -0
  128. package/dist/security/rich-text-projection.d.ts +19 -0
  129. package/dist/security/sha256.d.ts +6 -0
  130. package/dist/security/source-markup.d.ts +53 -0
  131. package/dist/security/text-presentation.d.ts +19 -0
  132. package/dist/security/url-policy.d.ts +23 -0
  133. package/dist/server-worker.js +17 -0
  134. package/dist/server-worker.js.map +1 -0
  135. package/dist/server.js +79 -0
  136. package/dist/server.js.map +1 -0
  137. package/dist/templates/blank-email.d.ts +6 -0
  138. package/dist/templates/blocks/catalog.d.ts +31 -0
  139. package/dist/templates/catalog.d.ts +31 -0
  140. package/dist/visual-editor.css +2 -0
  141. package/dist/vue/block-controller.d.ts +106 -0
  142. package/dist/vue/block-workbench.d.ts +70 -0
  143. package/dist/vue/canvas/canvas-theme.d.ts +8 -0
  144. package/dist/vue/canvas/file-drop.d.ts +38 -0
  145. package/dist/vue/canvas/frame-window.d.ts +26 -0
  146. package/dist/vue/canvas/inline-text.d.ts +98 -0
  147. package/dist/vue/canvas/palette-drag.d.ts +55 -0
  148. package/dist/vue/canvas/piece-requests.d.ts +48 -0
  149. package/dist/vue/canvas/strip-reserve.d.ts +14 -0
  150. package/dist/vue/canvas-content-label.d.ts +5 -0
  151. package/dist/vue/components/BlockVisualEditor.vue.d.ts +44 -0
  152. package/dist/vue/components/CanvasSurface.vue.d.ts +11 -0
  153. package/dist/vue/components/CodeEditor.vue.d.ts +22 -0
  154. package/dist/vue/components/EditorBlockMenus.vue.d.ts +3 -0
  155. package/dist/vue/components/EditorBlockPalette.vue.d.ts +3 -0
  156. package/dist/vue/components/EditorDiagnostics.vue.d.ts +3 -0
  157. package/dist/vue/components/EditorDialogs.vue.d.ts +16 -0
  158. package/dist/vue/components/EditorDocumentMetadata.vue.d.ts +3 -0
  159. package/dist/vue/components/EditorDocumentStyles.vue.d.ts +15 -0
  160. package/dist/vue/components/EditorImageSizeControls.vue.d.ts +23 -0
  161. package/dist/vue/components/EditorLayoutControls.vue.d.ts +16 -0
  162. package/dist/vue/components/EditorLeftPanel.vue.d.ts +3 -0
  163. package/dist/vue/components/EditorNoticeIndicator.vue.d.ts +3 -0
  164. package/dist/vue/components/EditorPreview.vue.d.ts +8 -0
  165. package/dist/vue/components/EditorProperties.vue.d.ts +14 -0
  166. package/dist/vue/components/EditorRichTextControls.vue.d.ts +25 -0
  167. package/dist/vue/components/EditorSelectionPath.vue.d.ts +11 -0
  168. package/dist/vue/components/EditorShortcutHelp.vue.d.ts +3 -0
  169. package/dist/vue/components/EditorSourcePane.vue.d.ts +3 -0
  170. package/dist/vue/components/EditorStructureTree.vue.d.ts +3 -0
  171. package/dist/vue/components/EditorTemplateGallery.vue.d.ts +15 -0
  172. package/dist/vue/components/EditorTopBar.vue.d.ts +33 -0
  173. package/dist/vue/components/RichTextEditor.vue.d.ts +47 -0
  174. package/dist/vue/components/SelectionPreviewFrame.vue.d.ts +212 -0
  175. package/dist/vue/components/VisualEditor.vue.d.ts +53 -0
  176. package/dist/vue/components/blocks/BlockCanvas.vue.d.ts +15 -0
  177. package/dist/vue/components/blocks/BlockFieldControl.vue.d.ts +39 -0
  178. package/dist/vue/components/blocks/BlockGlobalStyles.vue.d.ts +3 -0
  179. package/dist/vue/components/blocks/BlockPalette.vue.d.ts +6 -0
  180. package/dist/vue/components/blocks/BlockProperties.vue.d.ts +5 -0
  181. package/dist/vue/components/blocks/BlockReview.vue.d.ts +5 -0
  182. package/dist/vue/components/properties/EditorPropertyAdvanced.vue.d.ts +8 -0
  183. package/dist/vue/components/properties/EditorPropertyContent.vue.d.ts +13 -0
  184. package/dist/vue/components/properties/EditorPropertyStyle.vue.d.ts +8 -0
  185. package/dist/vue/components/ui/EditorAnchoredMenu.vue.d.ts +36 -0
  186. package/dist/vue/components/ui/EditorBadge.vue.d.ts +18 -0
  187. package/dist/vue/components/ui/EditorButton.vue.d.ts +28 -0
  188. package/dist/vue/components/ui/EditorCheckbox.vue.d.ts +13 -0
  189. package/dist/vue/components/ui/EditorColorInput.vue.d.ts +27 -0
  190. package/dist/vue/components/ui/EditorConfirmDialog.vue.d.ts +35 -0
  191. package/dist/vue/components/ui/EditorContextMenu.vue.d.ts +27 -0
  192. package/dist/vue/components/ui/EditorContextPopover.vue.d.ts +33 -0
  193. package/dist/vue/components/ui/EditorEmpty.vue.d.ts +8 -0
  194. package/dist/vue/components/ui/EditorField.vue.d.ts +24 -0
  195. package/dist/vue/components/ui/EditorGroup.vue.d.ts +16 -0
  196. package/dist/vue/components/ui/EditorIcon.vue.d.ts +6 -0
  197. package/dist/vue/components/ui/EditorIconButton.vue.d.ts +19 -0
  198. package/dist/vue/components/ui/EditorInput.vue.d.ts +41 -0
  199. package/dist/vue/components/ui/EditorKeys.vue.d.ts +6 -0
  200. package/dist/vue/components/ui/EditorMeasurement.vue.d.ts +34 -0
  201. package/dist/vue/components/ui/EditorMenu.vue.d.ts +56 -0
  202. package/dist/vue/components/ui/EditorNotice.vue.d.ts +30 -0
  203. package/dist/vue/components/ui/EditorPropertyGroup.vue.d.ts +22 -0
  204. package/dist/vue/components/ui/EditorRecoveryDialog.vue.d.ts +23 -0
  205. package/dist/vue/components/ui/EditorScrollArea.vue.d.ts +13 -0
  206. package/dist/vue/components/ui/EditorSelect.vue.d.ts +25 -0
  207. package/dist/vue/components/ui/EditorSeparator.vue.d.ts +8 -0
  208. package/dist/vue/components/ui/EditorSidePanel.vue.d.ts +26 -0
  209. package/dist/vue/components/ui/EditorSwitch.vue.d.ts +12 -0
  210. package/dist/vue/components/ui/EditorTabs.vue.d.ts +28 -0
  211. package/dist/vue/components/ui/EditorTemplatePreview.vue.d.ts +9 -0
  212. package/dist/vue/components/ui/EditorTextToolbar.vue.d.ts +16 -0
  213. package/dist/vue/components/ui/EditorTree.vue.d.ts +37 -0
  214. package/dist/vue/components/ui/EditorUiProvider.vue.d.ts +13 -0
  215. package/dist/vue/components/ui/EditorVariablePicker.vue.d.ts +20 -0
  216. package/dist/vue/components/ui/color-style-value.d.ts +9 -0
  217. package/dist/vue/components/ui/composition-dismissal.d.ts +1 -0
  218. package/dist/vue/components/ui/editor-dialog-focus.d.ts +6 -0
  219. package/dist/vue/components/ui/numeric-style-value.d.ts +15 -0
  220. package/dist/vue/controller.d.ts +115 -0
  221. package/dist/vue/font-options.d.ts +6 -0
  222. package/dist/vue/icon-data.d.ts +233 -0
  223. package/dist/vue/icons.d.ts +5 -0
  224. package/dist/vue/locale.d.ts +7 -0
  225. package/dist/vue/outline.d.ts +26 -0
  226. package/dist/vue/projection-key.d.ts +7 -0
  227. package/dist/vue/properties/selection-properties.d.ts +40 -0
  228. package/dist/vue/properties/style-fields.d.ts +30 -0
  229. package/dist/vue/public.d.ts +14 -0
  230. package/dist/vue/recovery.d.ts +30 -0
  231. package/dist/vue/responsive-panel.d.ts +1 -0
  232. package/dist/vue/rich-text-commands.d.ts +29 -0
  233. package/dist/vue/services/block-command-definitions.d.ts +14 -0
  234. package/dist/vue/services/block-commands.d.ts +114 -0
  235. package/dist/vue/services/block-menu.d.ts +12 -0
  236. package/dist/vue/services/block-palette.d.ts +21 -0
  237. package/dist/vue/services/block-presentation.d.ts +16 -0
  238. package/dist/vue/services/diagnostic-groups.d.ts +25 -0
  239. package/dist/vue/services/image-requests.d.ts +80 -0
  240. package/dist/vue/services/live-change.d.ts +26 -0
  241. package/dist/vue/services/property-commands.d.ts +28 -0
  242. package/dist/vue/services/saved-blocks.d.ts +32 -0
  243. package/dist/vue/services/selection-path.d.ts +20 -0
  244. package/dist/vue/services/shortcuts.d.ts +39 -0
  245. package/dist/vue/services/structure-tree.d.ts +38 -0
  246. package/dist/vue/services/template-application.d.ts +33 -0
  247. package/dist/vue/services/tree-drag.d.ts +28 -0
  248. package/dist/vue/session/blocks.d.ts +44 -0
  249. package/dist/vue/session/guard.d.ts +13 -0
  250. package/dist/vue/session/structure.d.ts +36 -0
  251. package/dist/vue/session/text.d.ts +23 -0
  252. package/dist/vue/session/transfer.d.ts +23 -0
  253. package/dist/vue/theme.d.ts +20 -0
  254. package/dist/vue/variables.d.ts +21 -0
  255. package/dist/vue/workbench.d.ts +100 -0
  256. package/dist/vue.js +71418 -0
  257. package/dist/vue.js.map +1 -0
  258. package/package.json +125 -4
@@ -0,0 +1,2468 @@
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, I as s, J as c, K as l, L as u, M as d, N as f, O as p, P as m, R as h, T as ee, U as g, W as _, c as te, f as v, h as y, i as ne, k as b, m as x, n as re, r as ie, s as S, t as ae, u as oe, v as se, y as C, z as w } from "./identity-CJHb6l9N.js";
2
+ //#region src/core/document-presentation.ts
3
+ var T = Object.freeze({
4
+ min: 1,
5
+ max: 1e4
6
+ }), E = [
7
+ "font-family",
8
+ "font-size",
9
+ "line-height",
10
+ "color",
11
+ "background-color"
12
+ ], D = t(u(), b(), s(T.min), m(T.max)), ce = _({
13
+ width: D,
14
+ height: p(D),
15
+ preserveRatio: p(i())
16
+ }), le = class {
17
+ image(e) {
18
+ return h(ce, e);
19
+ }
20
+ dimension(e) {
21
+ return h(D, e);
22
+ }
23
+ safeDimension(e) {
24
+ let t = g(D, e);
25
+ return t.success ? t.output : void 0;
26
+ }
27
+ style(e, n) {
28
+ h(w(E), e), h(t(o(), f(256)), n);
29
+ }
30
+ }, ue = class {
31
+ codec;
32
+ policy;
33
+ styles;
34
+ constructor(e, t, n) {
35
+ this.codec = e, this.policy = t, this.styles = n;
36
+ }
37
+ import(e, t, n) {
38
+ return this.codec.import(e, t, n);
39
+ }
40
+ inspect(e, t) {
41
+ return this.codec.inspect ? this.codec.inspect(e, t) : this.codec.import(e, t);
42
+ }
43
+ validate(e) {
44
+ return this.policy.validate(e);
45
+ }
46
+ setStyle(e, t, n) {
47
+ return this.styles.setDeclaration(e, t, n);
48
+ }
49
+ withoutStyles(e, t) {
50
+ if (!this.styles.removeDeclarations) throw Error("UNSUPPORTED_LAYOUT_STYLE");
51
+ return this.styles.removeDeclarations(e, t);
52
+ }
53
+ inlineDeclarations(e) {
54
+ if (!this.styles.readDeclarations) throw Error("UNSUPPORTED_STYLE_INSPECTION");
55
+ return this.styles.readDeclarations(e);
56
+ }
57
+ richTextStyles(e) {
58
+ return this.styles.richTextStyles?.(e);
59
+ }
60
+ removeDecoration(e, t) {
61
+ if (!this.styles.removeDecoration) throw Error("Unsupported text decoration change");
62
+ return this.styles.removeDecoration(e, t);
63
+ }
64
+ hasDecorationRules(e) {
65
+ if (!this.styles.hasDecorationRules) throw Error("Unsupported text decoration context");
66
+ return this.styles.hasDecorationRules(e);
67
+ }
68
+ mergeRichTextStyle(e, t) {
69
+ let n = this.richTextStyles(t);
70
+ if (!n) throw Error("Unsafe rich text style");
71
+ return Object.entries(n).reduce((e, [t, n]) => this.setStyle(e, t, n), e);
72
+ }
73
+ addDefaultStyles(e, t) {
74
+ return this.styles.prependDefaults(e, t);
75
+ }
76
+ admit(e) {
77
+ let t = C.from(e), n = this.policy.sanitize?.(t);
78
+ return n?.diagnostics.length ? {
79
+ document: this.document(n.document),
80
+ diagnostics: n.diagnostics
81
+ } : (this.policy.assertSafe(t), {
82
+ document: t,
83
+ diagnostics: []
84
+ });
85
+ }
86
+ assertWritable(e) {
87
+ if (this.policy.writable && !this.policy.writable(e)) throw Error("Unsafe authored markup");
88
+ }
89
+ document(e) {
90
+ let t = C.from(e);
91
+ return this.policy.assertSafe(t), t;
92
+ }
93
+ export(e) {
94
+ return this.policy.assertSafe(e), this.codec.export(e);
95
+ }
96
+ render(e) {
97
+ let t = this.policy.validate(e);
98
+ if (t.some((e) => e.severity === "error")) throw Error("UNSAFE_DOCUMENT");
99
+ return {
100
+ source: this.codec.export(e),
101
+ diagnostics: t
102
+ };
103
+ }
104
+ }, de = class {
105
+ content;
106
+ settings = new le();
107
+ constructor(e) {
108
+ this.content = e;
109
+ }
110
+ image(e, t) {
111
+ let n = this.find(e.nodes, t);
112
+ if (n?.tag !== "img") return;
113
+ let r = this.content.inlineDeclarations(n.attrs?.style ?? ""), i = this.pixels(r.width) ?? (r.width ? void 0 : this.number(n.attrs?.width)), a = this.pixels(r.height) ?? (r.height ? void 0 : this.number(n.attrs?.height)), o = r.height === "auto" || !r.height && !n.attrs?.height ? this.ratio(r["aspect-ratio"]) : void 0;
114
+ return {
115
+ id: t,
116
+ ...i === void 0 ? {} : { width: i },
117
+ ...a === void 0 ? {} : { height: a },
118
+ ...o ? { ratio: o } : i && a ? { ratio: i / a } : {}
119
+ };
120
+ }
121
+ resize(e, t, n) {
122
+ let r = this.settings.image(n), i = this.image(e, t), a = this.find(e.nodes, t);
123
+ if (!i || !a) throw Error("UNSUPPORTED_IMAGE_SIZE");
124
+ if (r.preserveRatio && !i.ratio) throw Error("UNKNOWN_IMAGE_RATIO");
125
+ if (r.preserveRatio && r.height !== void 0) throw Error("AMBIGUOUS_IMAGE_SIZE");
126
+ let o = r.preserveRatio ? Math.round(r.width / i.ratio * 1e3) / 1e3 : r.height;
127
+ o !== void 0 && this.settings.dimension(o);
128
+ let s = {
129
+ ...a.attrs,
130
+ width: String(r.width)
131
+ }, c = this.content.setStyle(s.style ?? "", "width", `${r.width}px`);
132
+ return c = this.content.setStyle(c, "max-width", "100%"), c = this.content.setStyle(c, "height", r.preserveRatio || o === void 0 ? "auto" : `${o}px`), c = r.preserveRatio ? this.content.setStyle(c, "aspect-ratio", `${r.width}/${o}`) : this.content.withoutStyles(c, ["aspect-ratio"]), s.style = c, o === void 0 ? delete s.height : s.height = String(o), this.change(e, t, {
133
+ ...a,
134
+ attrs: s
135
+ });
136
+ }
137
+ styles(e) {
138
+ let t = this.all(e.nodes), n = e.nodes.filter((e) => e.type === "element"), r = t.find((e) => e.tag === "body") ?? (n.length === 1 && [
139
+ "main",
140
+ "div",
141
+ "section",
142
+ "article"
143
+ ].includes(n[0]?.tag ?? "") ? n[0] : void 0);
144
+ if (!r) return;
145
+ let i = this.content.inlineDeclarations(r.attrs?.style ?? ""), a = {};
146
+ for (let e of E) {
147
+ let t = i[e];
148
+ t && this.content.richTextStyles(`${e}:${t}`) && (a[e] = t);
149
+ }
150
+ let o = E.filter((e) => i[e] && !a[e]);
151
+ return {
152
+ id: r.id,
153
+ properties: E,
154
+ values: a,
155
+ originalProperties: o
156
+ };
157
+ }
158
+ style(e, t, n) {
159
+ this.settings.style(t, n);
160
+ let r = this.styles(e), i = r && this.find(e.nodes, r.id);
161
+ if (!i) throw Error("UNSUPPORTED_DOCUMENT_ROOT");
162
+ if (n && !this.content.richTextStyles(`${t}:${n}`)) throw Error("UNSAFE_DOCUMENT_STYLE");
163
+ let a = n ? this.content.setStyle(i.attrs?.style ?? "", t, n) : this.content.withoutStyles(i.attrs?.style ?? "", [t]);
164
+ return this.change(e, i.id, {
165
+ ...i,
166
+ attrs: {
167
+ ...i.attrs,
168
+ style: a
169
+ }
170
+ });
171
+ }
172
+ ratio(e) {
173
+ let t = e && /^([0-9]+(?:\.[0-9]+)?)\s*\/\s*([0-9]+(?:\.[0-9]+)?)$/.exec(e), n = t ? this.number(t[1]) : void 0, r = t ? this.number(t[2]) : void 0;
174
+ return n && r ? n / r : void 0;
175
+ }
176
+ pixels(e) {
177
+ return e && /^\d+(?:\.\d+)?px$/.test(e) ? this.number(e.slice(0, -2)) : void 0;
178
+ }
179
+ number(e) {
180
+ if (e && /^\d+(?:\.\d+)?$/.test(e)) return this.settings.safeDimension(Number(e));
181
+ }
182
+ find(e, t) {
183
+ return this.all(e).find((e) => e.id === t);
184
+ }
185
+ all(e) {
186
+ return e.flatMap((e) => [e, ...this.all(e.children ?? [])]);
187
+ }
188
+ change(e, t, n) {
189
+ let r = (e) => e.map((e) => e.id === t ? n : e.children ? {
190
+ ...e,
191
+ children: r(e.children)
192
+ } : e);
193
+ return this.content.document(C.from(e).withChanges({ nodes: r(e.nodes) }).snapshot());
194
+ }
195
+ }, O = /* @__PURE__ */ new Set([
196
+ "html",
197
+ "body",
198
+ "head",
199
+ "style",
200
+ "script",
201
+ "title",
202
+ "meta",
203
+ "link"
204
+ ]), k = /* @__PURE__ */ new Set([
205
+ "head",
206
+ "style",
207
+ "script",
208
+ "title",
209
+ "meta",
210
+ "link",
211
+ "base",
212
+ "noscript",
213
+ "template",
214
+ "noembed",
215
+ "noframes"
216
+ ]), A = class {
217
+ catalog;
218
+ constructor(e = new y()) {
219
+ this.catalog = e;
220
+ }
221
+ regions(e) {
222
+ let t = [], n = (e, r, i) => {
223
+ e.forEach((e, a) => {
224
+ if (e.type !== "element" || k.has(e.tag ?? "")) return;
225
+ let o = this.region(e, r, a, i);
226
+ o && t.push(o), (!o || o.container) && n(e.children ?? [], e.id, o ? i + 1 : i);
227
+ });
228
+ };
229
+ return n(e.nodes, null, 0), structuredClone(t);
230
+ }
231
+ selectionRegions(e) {
232
+ let t = [], n = new Set(this.regions(e).filter((e) => e.container).map((e) => e.id)), r = (e, i, a) => {
233
+ e.forEach((e, o) => {
234
+ if (e.type !== "element" || k.has(e.tag ?? "")) return;
235
+ let s = this.region(e, i, o, a), c = this.hasRichTextBlocks(e), l = e.tag === "tr";
236
+ s && t.push({
237
+ ...s,
238
+ ...c || l && !s.container ? {
239
+ kind: "container",
240
+ editable: !1
241
+ } : {},
242
+ container: s.container && n.has(s.id)
243
+ }), (!s || s.container || c || l || this.isContentWrapper(e, s.editable)) && r(e.children ?? [], e.id, s ? a + 1 : a);
244
+ });
245
+ };
246
+ return r(e.nodes, null, 0), structuredClone(t);
247
+ }
248
+ selectionParents(e) {
249
+ let t = this.locations(e), n = this.selectionRegions(e), r = new Set(n.map((e) => e.id)), i = /* @__PURE__ */ new Map();
250
+ for (let e of n) {
251
+ let n = e.parentId;
252
+ for (; n && !r.has(n);) n = t.get(n)?.parentId ?? null;
253
+ i.set(e.id, n ?? void 0);
254
+ }
255
+ return i;
256
+ }
257
+ resolveSelection(e, t) {
258
+ let n = this.locations(e), r = new Map(this.selectionRegions(e).map((e) => [e.id, e])), i = n.get(t);
259
+ for (; i;) {
260
+ let e = r.get(i.node.id);
261
+ if (e) return e;
262
+ i = i.parentId ? n.get(i.parentId) : void 0;
263
+ }
264
+ }
265
+ resolve(e, t) {
266
+ let n = this.locations(e), r = new Map(this.regions(e).map((e) => [e.id, e])), i = n.get(t);
267
+ for (; i;) {
268
+ let e = r.get(i.node.id);
269
+ if (e) return e;
270
+ i = i.parentId ? n.get(i.parentId) : void 0;
271
+ }
272
+ }
273
+ editableNode(e, t) {
274
+ let n = this.resolve(e, t);
275
+ if (n) return structuredClone(n.node.tag === "tr" ? this.rowContent(n.node) ?? n.node : n.node);
276
+ }
277
+ target(e, t, n, r) {
278
+ let i = this.locations(e), a = new Map(this.regions(e).map((e) => [e.id, e])), o = this.resolveRegion(a, i, t), s = this.resolveRegion(a, i, n);
279
+ return this.structuralTarget(e, i, o, s, r);
280
+ }
281
+ motion(e, t, n, r) {
282
+ let i = this.movementProjection(e), a = this.resolveRegion(i.selection, i.locations, t), o = this.resolveRegion(i.selection, i.locations, n);
283
+ return this.motionUsing(e, i, a, o, r);
284
+ }
285
+ validMovementTargets(e, t) {
286
+ let n = this.movementProjection(e), r = this.resolveRegion(n.selection, n.locations, t);
287
+ if (!r) return [];
288
+ let i = [];
289
+ for (let t of n.selection.values()) {
290
+ let a = [
291
+ "before",
292
+ "after",
293
+ "inside"
294
+ ].filter((i) => !!this.motionUsing(e, n, r, t, i));
295
+ a.length && i.push({
296
+ targetId: t.id,
297
+ placements: a
298
+ });
299
+ }
300
+ return i;
301
+ }
302
+ actionUnit(e, t) {
303
+ let n = this.movementProjection(e), r = this.resolveRegion(n.selection, n.locations, t), i = this.resolveRegion(n.structural, n.locations, t);
304
+ if (!r || !i) return;
305
+ let a = r.parentId ? n.locations.get(r.parentId)?.node : void 0, o = (a?.children ?? e.nodes).some((e) => e.id !== r.id && (e.type !== "text" || !!e.value?.trim()));
306
+ return this.isContentUnit(r) && o && (a ? this.catalog.acceptsChildren(a, [r.node]) : this.catalog.acceptsRootChildren([r.node])) ? r : i;
307
+ }
308
+ insertionAt(e, t, n) {
309
+ let r = this.resolve(e, t);
310
+ return r ? this.regionDestination(r, n) : void 0;
311
+ }
312
+ insertionTarget(e, t) {
313
+ if (t) {
314
+ let n = this.resolve(e, t);
315
+ return n ? this.insertionAt(e, n.id, n.container ? "inside" : "after") : void 0;
316
+ }
317
+ let n = this.findTag(e.nodes, "body"), r = n?.children ?? e.nodes, i = r.filter((e) => e.type === "element" && !O.has(e.tag ?? "")), a = i.length === 1 ? i[0] : void 0;
318
+ if (a && this.region(a, n?.id ?? null, 0, 0)?.container) {
319
+ let e = this.contentTarget(a);
320
+ return {
321
+ parentId: e.id,
322
+ index: e.children?.length ?? 0
323
+ };
324
+ }
325
+ return {
326
+ ...n ? { parentId: n.id } : {},
327
+ index: r.length
328
+ };
329
+ }
330
+ acceptsInsertion(e, t, n) {
331
+ return this.acceptsAt(e, this.locations(e), t, n);
332
+ }
333
+ movementProjection(e) {
334
+ return {
335
+ locations: this.locations(e),
336
+ structural: new Map(this.regions(e).map((e) => [e.id, e])),
337
+ selection: new Map(this.selectionRegions(e).map((e) => [e.id, e]))
338
+ };
339
+ }
340
+ resolveRegion(e, t, n) {
341
+ let r = t.get(n);
342
+ for (; r;) {
343
+ let n = e.get(r.node.id);
344
+ if (n) return n;
345
+ r = r.parentId ? t.get(r.parentId) : void 0;
346
+ }
347
+ }
348
+ motionUsing(e, t, n, r, i) {
349
+ if (!n || !r || n.id === r.id) return;
350
+ if (this.isContentUnit(n) && n.parentId === r.parentId && (i === "before" || i === "after")) {
351
+ let a = {
352
+ ...r.parentId ? { parentId: r.parentId } : {},
353
+ index: r.index + +(i === "after")
354
+ };
355
+ if (this.acceptsAt(e, t.locations, a, [n.node])) {
356
+ let e = a.index - +(n.index < a.index);
357
+ return e === n.index ? void 0 : {
358
+ sourceId: n.id,
359
+ ...a.parentId ? { parentId: a.parentId } : {},
360
+ index: e
361
+ };
362
+ }
363
+ }
364
+ let a = this.resolveRegion(t.structural, t.locations, n.id), o = this.resolveRegion(t.structural, t.locations, r.id), s = this.structuralTarget(e, t.locations, a, o, i);
365
+ return a && s ? {
366
+ sourceId: a.id,
367
+ ...s
368
+ } : void 0;
369
+ }
370
+ structuralTarget(e, t, n, r, i) {
371
+ if (!n || !r || n.id === r.id) return;
372
+ let a = this.regionDestination(r, i);
373
+ if (!a || a.parentId === n.id || a.parentId && this.contains(n.node, a.parentId) || !this.acceptsAt(e, t, a, [n.node])) return;
374
+ let o = a.index - +(n.parentId === (a.parentId ?? null) && n.index < a.index);
375
+ if (n.parentId !== (a.parentId ?? null) || n.index !== o) return {
376
+ ...a.parentId ? { parentId: a.parentId } : {},
377
+ index: o
378
+ };
379
+ }
380
+ regionDestination(e, t) {
381
+ if ([
382
+ "before",
383
+ "after",
384
+ "inside"
385
+ ].includes(t)) {
386
+ if (t === "inside") {
387
+ if (!e.container) return;
388
+ let t = this.contentTarget(e.node);
389
+ return {
390
+ parentId: t.id,
391
+ index: t.children?.length ?? 0
392
+ };
393
+ }
394
+ return {
395
+ ...e.parentId ? { parentId: e.parentId } : {},
396
+ index: e.index + +(t === "after")
397
+ };
398
+ }
399
+ }
400
+ acceptsAt(e, t, n, r) {
401
+ if (!Number.isInteger(n.index) || n.index < 0) return !1;
402
+ if (!n.parentId) return n.index <= e.nodes.length && this.catalog.acceptsRootChildren(r);
403
+ let i = t.get(n.parentId)?.node;
404
+ return !!i && n.index <= (i.children?.length ?? 0) && this.catalog.acceptsChildren(i, r);
405
+ }
406
+ isContentUnit(e) {
407
+ return e.editable || [
408
+ "image",
409
+ "button",
410
+ "divider",
411
+ "spacer",
412
+ "form"
413
+ ].includes(e.kind);
414
+ }
415
+ region(e, t, n, r) {
416
+ let i = e.tag ?? "";
417
+ if (O.has(i) || i === "br") return;
418
+ let a = i === "tr" ? this.rowContent(e) : void 0, o = a ?? e, s = this.catalog.recognize(o), c = this.catalog.canEditRichText(o) && o.type === "element" && [
419
+ "heading",
420
+ "text",
421
+ "button",
422
+ "footer"
423
+ ].includes(s?.type ?? ""), l = (e.children ?? []).filter((e) => e.tag === "td" || e.tag === "th");
424
+ if ([
425
+ "tbody",
426
+ "thead",
427
+ "tfoot",
428
+ "colgroup",
429
+ "col"
430
+ ].includes(i) || i === "tr" && !a && l.length <= 1 || i === "table" && e.attrs?.role === "presentation" || i === "div" && !s && !this.hasVisibleContent(e)) return;
431
+ let u = !a && !c && (s?.canContainChildren === !0 || [
432
+ "table",
433
+ "tr",
434
+ "td",
435
+ "th",
436
+ "ul",
437
+ "ol",
438
+ "dl"
439
+ ].includes(i));
440
+ return {
441
+ id: e.id,
442
+ parentId: t,
443
+ index: n,
444
+ depth: r,
445
+ kind: i === "tr" && l.length > 1 ? "columns" : s?.type ?? (u ? "container" : "native"),
446
+ ...s ? { labelKey: s.labelKey } : {},
447
+ node: e,
448
+ editable: c,
449
+ container: u
450
+ };
451
+ }
452
+ rowContent(e) {
453
+ let t = (e.children ?? []).filter((e) => e.tag === "td" || e.tag === "th");
454
+ if (t.length !== 1) return;
455
+ let n = (t[0]?.children ?? []).filter((e) => e.type === "element");
456
+ if (this.findTag(t[0]?.children ?? [], "tr") && (n.length !== 1 || n[0]?.tag !== "table")) return;
457
+ let r = [], i = (e) => {
458
+ if (e.type !== "element") return;
459
+ let t = this.catalog.recognize(e), n = (e.children ?? []).filter((e) => e.type === "element" || e.type === "text" && !!e.value?.trim());
460
+ e.tag === "div" && n.length === 1 && [
461
+ "h1",
462
+ "h2",
463
+ "h3",
464
+ "h4",
465
+ "h5",
466
+ "h6"
467
+ ].includes(n[0]?.tag ?? "") || ["td", "th"].includes(e.tag ?? "") && n.length === 1 && [
468
+ "a",
469
+ "img",
470
+ "hr"
471
+ ].includes(n[0]?.tag ?? "") ? i(n[0]) : this.catalog.canEditRichText(e) && this.hasVisibleContent(e) || [
472
+ "image",
473
+ "button",
474
+ "divider",
475
+ "spacer",
476
+ "form"
477
+ ].includes(t?.type ?? "") ? r.push(e) : (e.children ?? []).forEach(i);
478
+ };
479
+ return (t[0]?.children ?? []).forEach(i), !r.length && t[0] && this.hasVisibleContent(t[0]) && this.catalog.canEditRichText(t[0]) && r.push(t[0]), r.length === 1 ? r[0] : void 0;
480
+ }
481
+ hasRichTextBlocks(e) {
482
+ return this.catalog.richTextAllowsBlocks(e) && (e.children ?? []).some((e) => [
483
+ "p",
484
+ "ul",
485
+ "ol",
486
+ "li",
487
+ "h1",
488
+ "h2",
489
+ "h3",
490
+ "h4",
491
+ "h5",
492
+ "h6",
493
+ "blockquote",
494
+ "pre",
495
+ "hr"
496
+ ].includes(e.tag ?? ""));
497
+ }
498
+ isContentWrapper(e, t) {
499
+ return !t && [
500
+ "a",
501
+ "p",
502
+ "h1",
503
+ "h2",
504
+ "h3",
505
+ "h4",
506
+ "h5",
507
+ "h6",
508
+ "span",
509
+ "strong",
510
+ "b",
511
+ "em",
512
+ "i",
513
+ "u",
514
+ "s",
515
+ "small",
516
+ "sup",
517
+ "sub",
518
+ "code",
519
+ "li",
520
+ "pre",
521
+ "summary",
522
+ "figcaption",
523
+ "blockquote"
524
+ ].includes(e.tag ?? "");
525
+ }
526
+ contentTarget(e) {
527
+ let t = e.tag ?? "";
528
+ if ([
529
+ "tbody",
530
+ "thead",
531
+ "tfoot",
532
+ "td",
533
+ "th",
534
+ "body",
535
+ "section",
536
+ "article",
537
+ "main",
538
+ "header",
539
+ "footer",
540
+ "figure",
541
+ "details"
542
+ ].includes(t)) return e;
543
+ if (t === "tr") {
544
+ let t = (e.children ?? []).find((e) => e.tag === "td" || e.tag === "th");
545
+ return t ? this.contentTarget(t) : e;
546
+ }
547
+ if (t === "table") return (e.children ?? []).find((e) => [
548
+ "tbody",
549
+ "thead",
550
+ "tfoot"
551
+ ].includes(e.tag ?? "")) ?? e;
552
+ let n = (e.children ?? []).find((e) => e.tag === "table" && e.attrs?.role === "presentation");
553
+ return n ? this.contentTarget(n) : e;
554
+ }
555
+ locations(e) {
556
+ let t = /* @__PURE__ */ new Map(), n = (e, r) => {
557
+ e.forEach((e, i) => {
558
+ t.set(e.id, {
559
+ node: e,
560
+ parentId: r,
561
+ index: i
562
+ }), n(e.children ?? [], e.id);
563
+ });
564
+ };
565
+ return n(e.nodes, null), t;
566
+ }
567
+ hasVisibleContent(e) {
568
+ return (e.children ?? []).some((e) => e.type === "element" || e.type === "text" && !!e.value?.trim());
569
+ }
570
+ contains(e, t) {
571
+ return e.id === t || (e.children ?? []).some((e) => this.contains(e, t));
572
+ }
573
+ findTag(e, t) {
574
+ for (let n of e) {
575
+ if (n.tag === t) return n;
576
+ let e = this.findTag(n.children ?? [], t);
577
+ if (e) return e;
578
+ }
579
+ }
580
+ }, fe = [
581
+ "bold",
582
+ "italic",
583
+ "underline",
584
+ "strike",
585
+ "link"
586
+ ], pe = "data-editor-rich-origin", me = "data-editor-rich-removed", he = {
587
+ strong: "bold",
588
+ b: "bold",
589
+ em: "italic",
590
+ i: "italic",
591
+ u: "underline",
592
+ s: "strike",
593
+ a: "link"
594
+ }, ge = {
595
+ bold: { "font-weight": "normal" },
596
+ italic: { "font-style": "normal" },
597
+ underline: {},
598
+ strike: {},
599
+ link: {}
600
+ }, _e = [
601
+ "href",
602
+ "target",
603
+ "rel",
604
+ "ping",
605
+ "download",
606
+ "hreflang",
607
+ "referrerpolicy",
608
+ "type"
609
+ ], ve = class {
610
+ formatForTag(e) {
611
+ return e && Object.hasOwn(he, e) ? he[e] : void 0;
612
+ }
613
+ isFormat(e) {
614
+ return typeof e == "string" && fe.includes(e);
615
+ }
616
+ canRemove(e, t, n) {
617
+ return this.isFormat(n) && t === "span" && this.formatForTag(e) === n;
618
+ }
619
+ resets(e) {
620
+ return { ...ge[e] };
621
+ }
622
+ decorationFor(e) {
623
+ return e === "underline" ? "underline" : e === "strike" ? "line-through" : void 0;
624
+ }
625
+ removedAttributes(e) {
626
+ return e === "link" ? [..._e] : [];
627
+ }
628
+ }, j = Object.freeze({
629
+ columns: 4,
630
+ weight: 12
631
+ }), M = [
632
+ "normal",
633
+ "reverse",
634
+ "none"
635
+ ], N = [
636
+ 480,
637
+ 640,
638
+ 768
639
+ ], ye = [
640
+ {
641
+ id: "single",
642
+ ratios: [1],
643
+ titleKey: "properties.oneColumn"
644
+ },
645
+ {
646
+ id: "equal2",
647
+ ratios: [1, 1],
648
+ titleKey: "properties.twoColumns"
649
+ },
650
+ {
651
+ id: "wideLeft",
652
+ ratios: [2, 1],
653
+ titleKey: "properties.widerLeft"
654
+ },
655
+ {
656
+ id: "wideRight",
657
+ ratios: [1, 2],
658
+ titleKey: "properties.widerRight"
659
+ },
660
+ {
661
+ id: "equal3",
662
+ ratios: [
663
+ 1,
664
+ 1,
665
+ 1
666
+ ],
667
+ titleKey: "properties.threeColumns"
668
+ },
669
+ {
670
+ id: "equal4",
671
+ ratios: [
672
+ 1,
673
+ 1,
674
+ 1,
675
+ 1
676
+ ],
677
+ titleKey: "properties.fourColumns"
678
+ }
679
+ ], P = _({
680
+ ratios: t(ee(t(u(), e(), s(1), m(j.weight))), a(1), f(j.columns)),
681
+ stacking: w(M),
682
+ breakpoint: w(N)
683
+ }), F = _({
684
+ ratios: p(P.entries.ratios),
685
+ stacking: p(P.entries.stacking),
686
+ breakpoint: p(P.entries.breakpoint)
687
+ }), be = class {
688
+ hasClass(e, t) {
689
+ return (e.attrs?.class ?? "").split(/\s+/).includes(t);
690
+ }
691
+ projection(e, t) {
692
+ let n = this.path(e.nodes, t);
693
+ if (n) for (let t of [...n].reverse()) {
694
+ if (e.kind === "page") {
695
+ if (t.type !== "element" || !["section", "div"].includes(t.tag ?? "") || !(this.hasClass(t, "columns") || ["columns", "section"].includes(t.attrs?.["data-editor-block"] ?? "") || t.attrs?.["data-editor-layout"])) continue;
696
+ let e = this.elements(t);
697
+ if (e.length < 1 || e.length > j.columns || !e.every((e) => [
698
+ "div",
699
+ "article",
700
+ "section",
701
+ "aside"
702
+ ].includes(e.tag ?? "")) || (t.children ?? []).some((e) => e.type === "text" && !!e.value?.trim())) continue;
703
+ return {
704
+ section: t,
705
+ columns: e,
706
+ contentParent: t
707
+ };
708
+ }
709
+ if (t.type !== "element" || t.tag !== "div" || !this.hasClass(t, "editor-layout-section")) continue;
710
+ let n = this.onlyElement(t, "table"), r = n && this.onlyElement(n, "tbody"), i = r && this.onlyElement(r, "tr"), a = i && this.onlyElement(i, "td");
711
+ if (!n || !r || !i || !a) continue;
712
+ let o = this.elements(a);
713
+ if (!(o.length < 1 || o.length > j.columns || !o.every((e) => e.tag === "div" && this.hasClass(e, "editor-layout-column") && !!this.columnBody(e)) || [
714
+ t,
715
+ n,
716
+ r,
717
+ i,
718
+ a
719
+ ].some((e) => (e.children ?? []).some((e) => e.type === "text" && !!e.value?.trim())))) return {
720
+ section: t,
721
+ columns: o,
722
+ contentParent: a,
723
+ shell: [
724
+ t,
725
+ n,
726
+ r,
727
+ i,
728
+ a
729
+ ]
730
+ };
731
+ }
732
+ }
733
+ columnBody(e) {
734
+ let t = this.onlyElement(e, "table");
735
+ return t && t.attrs?.role === "presentation" ? this.onlyElement(t, "tbody") : void 0;
736
+ }
737
+ context(e, t) {
738
+ let n = this.projection(e, t);
739
+ if (!n) return;
740
+ let { section: r, columns: i } = n, a = r.attrs?.["data-editor-layout-ratios"], o = {
741
+ ratios: a ? a.split("-").map(Number) : i.map(() => 1),
742
+ stacking: r.attrs?.["data-editor-layout-stacking"] ?? "normal",
743
+ breakpoint: Number(r.attrs?.["data-editor-layout-breakpoint"] ?? 640)
744
+ }, s = g(P, o), c = s.success && s.output.ratios.length === i.length;
745
+ return {
746
+ ...c ? s.output : {
747
+ ratios: i.map(() => 1),
748
+ stacking: "normal",
749
+ breakpoint: 640
750
+ },
751
+ id: r.id,
752
+ kind: e.kind,
753
+ columnIds: i.map((e) => e.id),
754
+ removableColumnIds: i.filter((t) => !this.removalReason(t, e.kind)).map((e) => e.id),
755
+ editable: c,
756
+ ...c ? {} : { reason: "invalid-settings" }
757
+ };
758
+ }
759
+ removalReason(e, t) {
760
+ let n = t === "email" ? this.columnBody(e) : e;
761
+ if (!n) return "unsupported-structure";
762
+ if ((n.children ?? []).some((e) => e.type === "element" || e.type === "comment" || e.type === "text" && !!e.value?.trim())) return "column-not-empty";
763
+ if ((t === "email" ? [
764
+ e,
765
+ ...this.elements(e),
766
+ n
767
+ ] : [e]).some((e) => e.attrs?.id || e.attrs?.name)) return "identity-bearing-column";
768
+ }
769
+ settings(e, t) {
770
+ let n = h(F, t);
771
+ return h(P, {
772
+ ratios: n.ratios ?? e.ratios,
773
+ stacking: n.stacking ?? e.stacking,
774
+ breakpoint: n.breakpoint ?? e.breakpoint
775
+ });
776
+ }
777
+ attributes(e) {
778
+ return {
779
+ "data-editor-layout": "columns",
780
+ "data-editor-layout-ratios": e.ratios.join("-"),
781
+ "data-editor-layout-stacking": e.stacking,
782
+ "data-editor-layout-breakpoint": String(e.breakpoint)
783
+ };
784
+ }
785
+ elements(e) {
786
+ return (e.children ?? []).filter((e) => e.type === "element");
787
+ }
788
+ onlyElement(e, t) {
789
+ let n = this.elements(e);
790
+ return n.length === 1 && n[0]?.tag === t ? n[0] : void 0;
791
+ }
792
+ path(e, t) {
793
+ for (let n of e) {
794
+ if (n.id === t) return [n];
795
+ let e = this.path(n.children ?? [], t);
796
+ if (e) return [n, ...e];
797
+ }
798
+ }
799
+ }, xe = "data-visual-editor-", I = "data-visual-editor-node", Se = "data-visual-editor-text-origin", L = "data-visual-editor-edit-node", Ce = "data-visual-editor-selected";
800
+ function R(e) {
801
+ return e.toLowerCase().startsWith(xe);
802
+ }
803
+ var we = [
804
+ "duplicate",
805
+ "remove",
806
+ "up",
807
+ "down",
808
+ "html",
809
+ "image"
810
+ ], Te = 4e3, Ee = /^[a-z0-9#(),.%/ -]+$/i;
811
+ function z(e) {
812
+ return typeof e == "string" && e.length >= 1 && e.length <= 80 && Ee.test(e);
813
+ }
814
+ var De = /* @__PURE__ */ new Set([
815
+ "html",
816
+ "head",
817
+ "body",
818
+ "style",
819
+ "meta",
820
+ "title"
821
+ ]);
822
+ function B(e) {
823
+ return De.has(e.toLowerCase());
824
+ }
825
+ //#endregion
826
+ //#region src/renderers/markup-tree.ts
827
+ var V = (e, t) => e?.childNodes.find((e) => v.isElementNode(e) && e.tagName === t);
828
+ function H(e) {
829
+ let t = V(e, "html"), n = V(t, "head"), r = V(t, "body"), i = V(t, "frameset");
830
+ return {
831
+ ...t ? { root: t } : {},
832
+ ...n ? { head: n } : {},
833
+ ...r ? { body: r } : {},
834
+ ...i ? { frameset: i } : {}
835
+ };
836
+ }
837
+ function U(e) {
838
+ return "content" in e ? e.content.childNodes : e.childNodes;
839
+ }
840
+ function W(e) {
841
+ let t = [e];
842
+ for (; t.length;) {
843
+ let e = t.pop();
844
+ if (!e) break;
845
+ v.isElementNode(e) && e.attrs.some((e) => R(e.name)) && (e.attrs = e.attrs.filter((e) => !R(e.name)));
846
+ for (let n of U(e)) v.isElementNode(n) && t.push(n);
847
+ }
848
+ }
849
+ function G(e) {
850
+ let t = [], n = [...e].reverse();
851
+ for (; n.length;) {
852
+ let e = n.pop();
853
+ if (!e) break;
854
+ e.type === "element" && !B(e.tag ?? "") && t.push(e);
855
+ let r = e.children ?? [];
856
+ for (let e = r.length - 1; e >= 0; e--) {
857
+ let t = r[e];
858
+ t && n.push(t);
859
+ }
860
+ }
861
+ return t;
862
+ }
863
+ function Oe(e, t, n) {
864
+ let r = 0, i = [...e.childNodes].reverse();
865
+ for (; i.length;) {
866
+ let e = i.pop();
867
+ if (!e) break;
868
+ if (!v.isElementNode(e)) continue;
869
+ n.element?.(e);
870
+ let a = !1;
871
+ if (!B(e.tagName)) {
872
+ let i = t[r];
873
+ if (!i || i.tag?.toLowerCase() !== e.tagName) return;
874
+ if (r += 1, a = e.namespaceURI !== x.HTML, n.match(e, i, a) === !1) return r;
875
+ }
876
+ if (!a) for (let t = e.childNodes.length - 1; t >= 0; t--) {
877
+ let n = e.childNodes[t];
878
+ n && i.push(n);
879
+ }
880
+ }
881
+ return r;
882
+ }
883
+ //#endregion
884
+ //#region src/rich-text/projection-rules.ts
885
+ var ke = /* @__PURE__ */ new Set([
886
+ "span",
887
+ "strong",
888
+ "b",
889
+ "em",
890
+ "i",
891
+ "u",
892
+ "s",
893
+ "a",
894
+ "br",
895
+ "small",
896
+ "sup",
897
+ "sub",
898
+ "code"
899
+ ]), Ae = /* @__PURE__ */ new Set([
900
+ "p",
901
+ "ul",
902
+ "ol",
903
+ "li",
904
+ "h1",
905
+ "h2",
906
+ "h3",
907
+ "h4",
908
+ "h5",
909
+ "h6",
910
+ "blockquote",
911
+ "pre",
912
+ "hr"
913
+ ]), je = {
914
+ b: "strong",
915
+ i: "em",
916
+ small: "span"
917
+ }, Me = class {
918
+ isInline(e) {
919
+ return ke.has(e);
920
+ }
921
+ isBlock(e) {
922
+ return Ae.has(e);
923
+ }
924
+ supports(e) {
925
+ return ke.has(e) || Ae.has(e);
926
+ }
927
+ canonicalTag(e) {
928
+ return je[e] ?? e;
929
+ }
930
+ semanticAttributes(e) {
931
+ let t = this.canonicalTag(e);
932
+ return t === "a" ? [
933
+ "href",
934
+ "target",
935
+ "rel",
936
+ "title"
937
+ ] : t === "ol" ? ["start"] : [];
938
+ }
939
+ needsOrigin(e, t) {
940
+ let n = this.semanticAttributes(e);
941
+ return [
942
+ "span",
943
+ "small",
944
+ "a"
945
+ ].includes(e) || t.some((e) => !n.includes(e)) || this.canonicalTag(e) !== e;
946
+ }
947
+ }, Ne = class {
948
+ read(e, t, n) {
949
+ let r = this.locate(e, t, n);
950
+ return r ? t.html.slice(r.start, r.end) : void 0;
951
+ }
952
+ replace(e, t, n, r) {
953
+ let i = this.locate(e, t, n);
954
+ if (i) return {
955
+ html: t.html.slice(0, i.start) + r + t.html.slice(i.end),
956
+ css: t.css
957
+ };
958
+ }
959
+ locate(e, t, n) {
960
+ let r = G(e.nodes);
961
+ if (!r.some((e) => e.id === n)) return;
962
+ let i;
963
+ return Oe(te(t.html, { sourceCodeLocationInfo: !0 }), r, { match: (e, t) => {
964
+ if (t.id !== n) return;
965
+ let r = e.sourceCodeLocation;
966
+ return r && (i = {
967
+ start: r.startOffset,
968
+ end: r.endOffset
969
+ }), !1;
970
+ } }) === void 0 ? void 0 : i;
971
+ }
972
+ }, Pe = new Uint32Array([
973
+ 1116352408,
974
+ 1899447441,
975
+ 3049323471,
976
+ 3921009573,
977
+ 961987163,
978
+ 1508970993,
979
+ 2453635748,
980
+ 2870763221,
981
+ 3624381080,
982
+ 310598401,
983
+ 607225278,
984
+ 1426881987,
985
+ 1925078388,
986
+ 2162078206,
987
+ 2614888103,
988
+ 3248222580,
989
+ 3835390401,
990
+ 4022224774,
991
+ 264347078,
992
+ 604807628,
993
+ 770255983,
994
+ 1249150122,
995
+ 1555081692,
996
+ 1996064986,
997
+ 2554220882,
998
+ 2821834349,
999
+ 2952996808,
1000
+ 3210313671,
1001
+ 3336571891,
1002
+ 3584528711,
1003
+ 113926993,
1004
+ 338241895,
1005
+ 666307205,
1006
+ 773529912,
1007
+ 1294757372,
1008
+ 1396182291,
1009
+ 1695183700,
1010
+ 1986661051,
1011
+ 2177026350,
1012
+ 2456956037,
1013
+ 2730485921,
1014
+ 2820302411,
1015
+ 3259730800,
1016
+ 3345764771,
1017
+ 3516065817,
1018
+ 3600352804,
1019
+ 4094571909,
1020
+ 275423344,
1021
+ 430227734,
1022
+ 506948616,
1023
+ 659060556,
1024
+ 883997877,
1025
+ 958139571,
1026
+ 1322822218,
1027
+ 1537002063,
1028
+ 1747873779,
1029
+ 1955562222,
1030
+ 2024104815,
1031
+ 2227730452,
1032
+ 2361852424,
1033
+ 2428436474,
1034
+ 2756734187,
1035
+ 3204031479,
1036
+ 3329325298
1037
+ ]);
1038
+ function Fe(e) {
1039
+ let t = new TextEncoder().encode(e), n = t.length + 9 + 63 >> 6, r = new Uint8Array(n << 6);
1040
+ r.set(t), r[t.length] = 128;
1041
+ let i = new DataView(r.buffer);
1042
+ i.setUint32(r.length - 8, Math.floor(t.length / 536870912)), i.setUint32(r.length - 4, t.length << 3 >>> 0);
1043
+ let a = new Uint32Array([
1044
+ 1779033703,
1045
+ 3144134277,
1046
+ 1013904242,
1047
+ 2773480762,
1048
+ 1359893119,
1049
+ 2600822924,
1050
+ 528734635,
1051
+ 1541459225
1052
+ ]), o = /* @__PURE__ */ new Uint32Array(64);
1053
+ for (let e = 0; e < r.length; e += 64) {
1054
+ for (let t = 0; t < 16; t++) o[t] = i.getUint32(e + t * 4);
1055
+ for (let e = 16; e < 64; e++) {
1056
+ let t = o[e - 15] ?? 0, n = o[e - 2] ?? 0, r = (t >>> 7 | t << 25) ^ (t >>> 18 | t << 14) ^ t >>> 3, i = (n >>> 17 | n << 15) ^ (n >>> 19 | n << 13) ^ n >>> 10;
1057
+ o[e] = (o[e - 16] ?? 0) + r + (o[e - 7] ?? 0) + i | 0;
1058
+ }
1059
+ let [t = 0, n = 0, r = 0, s = 0, c = 0, l = 0, u = 0, d = 0] = a;
1060
+ for (let e = 0; e < 64; e++) {
1061
+ let i = (c >>> 6 | c << 26) ^ (c >>> 11 | c << 21) ^ (c >>> 25 | c << 7), a = d + i + (c & l ^ ~c & u) + (Pe[e] ?? 0) + (o[e] ?? 0) | 0, f = ((t >>> 2 | t << 30) ^ (t >>> 13 | t << 19) ^ (t >>> 22 | t << 10)) + (t & n ^ t & r ^ n & r) | 0;
1062
+ d = u, u = l, l = c, c = s + a | 0, s = r, r = n, n = t, t = a + f | 0;
1063
+ }
1064
+ a[0] = (a[0] ?? 0) + t | 0, a[1] = (a[1] ?? 0) + n | 0, a[2] = (a[2] ?? 0) + r | 0, a[3] = (a[3] ?? 0) + s | 0, a[4] = (a[4] ?? 0) + c | 0, a[5] = (a[5] ?? 0) + l | 0, a[6] = (a[6] ?? 0) + u | 0, a[7] = (a[7] ?? 0) + d | 0;
1065
+ }
1066
+ let s = "";
1067
+ for (let e of a) s += String.fromCharCode(e >>> 24, e >>> 16 & 255, e >>> 8 & 255, e & 255);
1068
+ return btoa(s);
1069
+ }
1070
+ //#endregion
1071
+ //#region src/renderers/canvas-icons.ts
1072
+ var Ie = Object.freeze({
1073
+ "square-pen": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/><path d=\"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\"/></g>",
1074
+ "grip-vertical": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><circle cx=\"9\" cy=\"12\" r=\"1\"/><circle cx=\"9\" cy=\"5\" r=\"1\"/><circle cx=\"9\" cy=\"19\" r=\"1\"/><circle cx=\"15\" cy=\"12\" r=\"1\"/><circle cx=\"15\" cy=\"5\" r=\"1\"/><circle cx=\"15\" cy=\"19\" r=\"1\"/></g>",
1075
+ "arrow-up": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 12l7-7l7 7m-7 7V5\"/>",
1076
+ "arrow-down": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v14m7-7l-7 7l-7-7\"/>",
1077
+ copy: "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></g>",
1078
+ "trash-2": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 11v6m4-6v6m5-11v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>",
1079
+ "corner-left-up": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M14 9L9 4L4 9\"/><path d=\"M20 20h-7a4 4 0 0 1-4-4V4\"/></g>",
1080
+ image: "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/><path d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"/></g>",
1081
+ "code-xml": "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"/>",
1082
+ plus: "<path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7v14\"/>",
1083
+ "app-window": "<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"/><path d=\"M10 4v4M2 8h20M6 4v4\"/></g>"
1084
+ }), Le = "\"use strict\";(()=>{var $l=[\"bold\",\"italic\",\"underline\",\"strike\",\"superscript\",\"subscript\",\"bulletList\",\"orderedList\",\"color\",\"backgroundColor\",\"fontFamily\",\"fontSize\",\"lineHeight\",\"clearFormatting\",\"setLink\",\"unsetLink\",\"insertText\",\"undo\",\"redo\",\"finish\",\"cancel\"],Fl=[\"bold\",\"italic\",\"underline\",\"strike\",\"superscript\",\"subscript\",\"bulletList\",\"orderedList\"],us=[\"color\",\"backgroundColor\",\"fontFamily\",\"fontSize\",\"lineHeight\"],Mx=[...us,\"setLink\",\"insertText\"],tt=Object.freeze({commandValue:2048,insertedText:1024,styleValue:200});function fs(){let n=()=>({value:\"\",own:!1,mixed:!1});return{ready:!1,marks:[],styles:{color:n(),backgroundColor:n(),fontFamily:n(),fontSize:n(),lineHeight:n()},link:!1,href:\"\",empty:!0,canUndo:!1,canRedo:!1}}var ir=class{constructor(e,t,r){this.ctx=e;this.overlay=t;this.events=r;let i=e.cfg.labels;this.#e=t.node(\"div\",\"toolbar\"),this.#e.setAttribute(\"role\",\"toolbar\"),this.#e.setAttribute(\"aria-label\",i.edit),this.#e.hidden=!0;let s=(a,c,d)=>{let u=t.button(a,c,e.signal,d);return this.#e.append(u),u},o=a=>()=>{!e.readOnly&&e.selectedId&&e.send(\"action\",{nodeId:e.selectedId,action:a})};this.#i=t.node(\"span\",\"name\"),this.#e.append(this.#i),this.handle=s(i.move,\"grip-vertical\",()=>{}),this.handle.className=\"handle\",this.handle.setAttribute(\"aria-keyshortcuts\",\"Alt+ArrowUp Alt+ArrowDown\"),this.#n=s(i.parent,\"corner-left-up\",()=>e.select(e.parentOf(e.selectedId))),this.#t=s(i.edit,\"square-pen\",()=>r.edit()),s(i.up,\"arrow-up\",o(\"up\")).setAttribute(\"aria-keyshortcuts\",\"Alt+ArrowUp\"),s(i.down,\"arrow-down\",o(\"down\")).setAttribute(\"aria-keyshortcuts\",\"Alt+ArrowDown\"),s(i.duplicate,\"copy\",o(\"duplicate\")).setAttribute(\"aria-keyshortcuts\",\"Control+D\"),this.#r=s(i.image,\"image\",o(\"image\")),i.html&&s(i.html,\"code-xml\",o(\"html\")),this.#e.append(t.node(\"span\",\"sep\"));let l=s(i.remove,\"trash-2\",o(\"remove\"));l.classList.add(\"is-danger\"),l.setAttribute(\"aria-keyshortcuts\",\"Delete\"),t.shadow.append(this.#e),this.handle.addEventListener(\"pointerdown\",a=>r.grab(a,this.handle),{signal:e.signal}),this.handle.addEventListener(\"keydown\",a=>{e.readOnly||!e.selectedId||!a.altKey||a.key!==\"ArrowUp\"&&a.key!==\"ArrowDown\"||(a.preventDefault(),a.stopPropagation(),e.send(\"action\",{nodeId:e.selectedId,action:a.key===\"ArrowUp\"?\"up\":\"down\"}))},{signal:e.signal}),e.onMeasure(()=>this.#s())}ctx;overlay;events;#e;handle;#t;#n;#r;#i;#s(){let e=this.ctx,t=e.selectedId,r=t?e.marked.get(t):void 0;if(e.disposed||e.readOnly||!t||!r){this.#e.hidden=!0;return}let i=r.getBoundingClientRect();if(i.bottom<=0||i.top>=innerHeight){this.#e.hidden=!0;return}let s=e.regions.get(t),o=this.events.editingId()===t;this.#t.hidden=!s?.editable||o,this.#n.hidden=!e.parentOf(t),this.#r.hidden=s?.media!==\"image\",this.#i.textContent=s?.label??\"\",this.#i.hidden=!s?.label,this.#e.hidden=!1;let l=this.#e.getBoundingClientRect(),a=i.top-l.height-6,c=i.bottom+6,d=a>=4,u=d?a:o?Math.min(c,innerHeight-l.height-4):Math.max(4,Math.min(i.top,innerHeight-l.height-4)),f=d?i.left:i.right-l.width,h=Math.max(4,Math.min(f,innerWidth-l.width-4));this.#e.style.left=`${h}px`,this.#e.style.top=`${u}px`}};var sr=class{#e=0;#t=0;#n;update(e,t){this.#n=t;let r=56-e,i=e-(innerHeight-56);this.#e=r>0?-Math.ceil(Math.min(r,56)/56*22):i>0?Math.ceil(Math.min(i,56)/56*22):0,this.#e&&!this.#t&&(this.#t=requestAnimationFrame(()=>this.#r())),this.#e||this.stop()}#r(){if(this.#t=0,!this.#e)return;let e=scrollY;scrollBy(0,this.#e),scrollY!==e&&this.#n?.(),this.#t=requestAnimationFrame(()=>this.#r())}stop(){this.#e=0,this.#n=void 0,this.#t&&cancelAnimationFrame(this.#t),this.#t=0}};var or=class{constructor(e,t,r,i){this.ctx=e;this.targets=t;this.text=r;this.handle=i;let s={capture:!0,signal:e.signal};document.addEventListener(\"pointerdown\",o=>this.#i(o),s),document.addEventListener(\"pointermove\",o=>this.#s(o),{...s,passive:!1}),document.addEventListener(\"pointerup\",o=>{this.#n.delete(o.pointerId),this.#o(o,!0)},s),document.addEventListener(\"pointercancel\",o=>{this.#n.delete(o.pointerId),this.#o(o,!1)},s),document.addEventListener(\"lostpointercapture\",o=>{this.#e?.pointerId===o.pointerId&&this.cancel()},s),document.addEventListener(\"contextmenu\",()=>this.cancel(),s)}ctx;targets;text;handle;#e;#t=!1;#n=new Set;#r=new sr;get sourceId(){return this.#e?.sourceId}consumeClick(){let e=this.#t;return this.#t=!1,e}cancel(){let e=this.#e;if(this.#e=void 0,this.#r.stop(),this.targets.clear(),this.ctx.dragging&&this.ctx.schedule(),this.ctx.dragging=!1,!!e)try{e.capture.hasPointerCapture(e.pointerId)&&e.capture.releasePointerCapture(e.pointerId)}catch{}}interrupt(){this.cancel(),this.#n.clear()}start(e,t,r){if(this.ctx.readOnly||this.text.active||this.#e||!t||e.button!==0||!e.isPrimary||!this.ctx.regions.has(t)||e.pointerType===\"touch\"&&(r!==this.handle||this.#n.size!==1))return!1;try{r.setPointerCapture(e.pointerId)}catch{return!1}return this.#e={sourceId:t,pointerId:e.pointerId,x:e.clientX,y:e.clientY,moved:!1,capture:r,last:{x:e.clientX,y:e.clientY}},this.ctx.select(t),!0}grab(e){this.text.active&&this.text.end(\"finish\"),this.start(e,this.ctx.selectedId,this.handle)&&e.preventDefault()}#i(e){if(e.pointerType===\"touch\"){this.#n.add(e.pointerId),(this.#n.size>1||!e.isPrimary)&&this.cancel();return}if(this.ctx.isControls(e)||!(e.target instanceof Element)||this.text.contains(e.target)||(this.text.active&&this.text.end(\"finish\"),this.text.active))return;let t=this.ctx.regionFrom(e.target),r=t?this.ctx.marked.get(t):void 0;r&&this.start(e,t,r)}#s(e){let t=this.#e;if(!(!t||t.pointerId!==e.pointerId)){if(this.text.active||!t.capture.isConnected){this.cancel();return}Math.hypot(e.clientX-t.x,e.clientY-t.y)>5&&(t.moved=!0),t.moved&&(e.preventDefault(),this.ctx.dragging||this.ctx.schedule(),this.ctx.dragging=!0,getSelection()?.removeAllRanges(),t.last={x:e.clientX,y:e.clientY},this.targets.resolve(e.clientX,e.clientY,t.sourceId),this.#r.update(e.clientY,()=>{this.#e===t&&this.targets.resolve(t.last.x,t.last.y,t.sourceId)}))}}#o(e,t){let r=this.#e;if(!r||r.pointerId!==e.pointerId)return;let i=t&&r.moved&&this.targets.destination&&!this.ctx.readOnly&&!this.text.active;i&&this.targets.resolve(e.clientX,e.clientY,r.sourceId);let s=i?this.targets.destination:void 0;this.cancel(),s&&\"targetId\"in s&&this.ctx.send(\"move\",{sourceId:r.sourceId,...s}),r.moved&&(this.#t=!0,setTimeout(()=>{this.#t=!1},0))}insertion(e,t,r,i=!1){if(this.ctx.readOnly)return;let s=typeof t==\"number\"&&typeof r==\"number\";if(e===\"cancel\"||e===\"drop\"&&!s){this.#r.stop(),this.targets.clear(),this.ctx.dragging=!1;return}if(!s)return;let o=i===!0;if(this.ctx.dragging=!0,this.targets.resolve(t,r,void 0,o),e!==\"drop\"){this.#r.update(r,()=>this.targets.resolve(t,r,void 0,o)),this.ctx.schedule();return}let l=this.targets.destination;this.#r.stop(),this.targets.clear(),this.ctx.dragging=!1,l&&(\"replace\"in l?(this.ctx.select(l.replace),this.ctx.send(\"image-drop\",{nodeId:l.replace})):\"targetId\"in l?this.ctx.send(\"insertion\",l):this.ctx.send(\"insertion-end\",{}),this.ctx.schedule())}};var _l=\"data-visual-editor-\",me=\"data-visual-editor-node\",Vl=\"data-visual-editor-text-origin\",lr=\"data-visual-editor-edit-node\",$e=\"data-visual-editor-selected\",jl=\"data-visual-editor-controls\";var hs=4e3,Gf=80,Yf=/^[a-z0-9#(),.%/ -]+$/i;function ps(n){return typeof n==\"string\"&&n.length>=1&&n.length<=Gf&&Yf.test(n)}var Wl=24;var ar=class{constructor(e,t){this.nonce=e;this.revision=t}nonce;revision;#e=0;#t=!1;#n;#r=new Map;#i;#s=0;send(e,t={}){this.#t||(this.#e+=1,parent.postMessage({type:e,nonce:this.nonce,revision:this.revision,sequence:this.#e,...t},\"*\"))}selection(e){this.#t||parent.postMessage({type:\"selection\",nonce:this.nonce,revision:this.revision,nodeId:e},\"*\")}telemetry(e,t){if(this.#t)return;let r=this.#r.get(e)??{sent:-1/0};this.#r.set(e,r);let i=performance.now()-r.sent;if(i>=34&&!r.timer){r.sent=performance.now(),this.send(e,t);return}r.payload=t,r.timer??=setTimeout(()=>{delete r.timer;let s=r.payload;delete r.payload,r.sent=performance.now(),s&&this.send(e,s)},Math.max(0,34-i))}draft(e){if(this.#t)return;if(this.#i){this.#i.produce=e;return}let t=Math.max(0,50-(performance.now()-this.#s));this.#i={produce:e,timer:setTimeout(()=>this.flushDraft(),t)}}flushDraft(){let e=this.#i;if(!e)return;clearTimeout(e.timer),this.#i=void 0,this.#s=performance.now();let t=e.produce();t&&this.send(\"text-draft\",t)}cancelDraft(){this.#i&&clearTimeout(this.#i.timer),this.#i=void 0}defer(e){this.#n=e}takeDeferred(){let e=this.#n;return this.#n=void 0,e}dispose(){this.#t=!0,this.cancelDraft(),this.#n=void 0;for(let e of this.#r.values())e.timer&&clearTimeout(e.timer);this.#r.clear()}};function Ul(n){if(!n||typeof n!=\"object\")return!1;let e=n;return typeof e.id==\"string\"&&(e.parentId===null||typeof e.parentId==\"string\")&&typeof e.editable==\"boolean\"&&typeof e.container==\"boolean\"&&(e.blocks===void 0||typeof e.blocks==\"boolean\")&&(e.links===void 0||typeof e.links==\"boolean\")&&(e.label===void 0||typeof e.label==\"string\"&&e.label.length<=80)&&(e.media===void 0||e.media===\"image\")}var cr=class{constructor(e,t){this.cfg=e;this.controls=t;this.channel=new ar(e.nonce,e.revision),this.readOnly=e.readOnly,this.regions=new Map(e.regions.map(r=>[r.id,r])),this.index()}cfg;controls;lifecycle=new AbortController;channel;marked=new Map;regions;readOnly;selectedId;disposed=!1;dragging=!1;keyboardMenu=-1/0;#e=0;#t=[];#n=[];get signal(){return this.lifecycle.signal}index(){this.marked.clear();for(let e of document.querySelectorAll(`[${me}]`)){let t=e.getAttribute(me);t&&this.regions.has(t)&&this.marked.set(t,e)}}textElement(e){let t=this.marked.get(e);if(!t||t.getAttribute(lr)===e)return t;for(let r of t.querySelectorAll(`[${lr}]`))if(r.getAttribute(lr)===e&&r.closest(`[${me}]`)===t)return r;return t}setRegions(e){this.regions=new Map(e.map(t=>[t.id,t])),this.index()}send(e,t={}){this.disposed||this.channel.send(e,t)}select(e){if(!(this.disposed||!e||!this.regions.has(e))){for(let t of this.#n)t();this.channel.selection(e)}}beforeSelect(e){this.#n.push(e)}regionFrom(e){let t=e?.closest(`[${me}]`)?.getAttribute(me);return t&&this.regions.has(t)?t:void 0}parentOf(e){let t=e?this.marked.get(e):void 0;return this.regionFrom(t?.parentElement??null)}siblings(e){let t=this.regions.get(e)?.parentId,r=[];for(let i of this.regions.values())i.parentId===t&&this.marked.has(i.id)&&r.push(i.id);return r}isControls(e){return e.composedPath().includes(this.controls)}elementAt(e,t){let r=this.controls.style.getPropertyValue(\"visibility\");this.controls.style.setProperty(\"visibility\",\"hidden\",\"important\");let i=document.elementFromPoint(e,t);return this.controls.style.setProperty(\"visibility\",r||\"visible\",\"important\"),i}onMeasure(e){this.#t.push(e)}schedule(){this.disposed||this.#e||document.readyState===\"loading\"||(this.#e=requestAnimationFrame(()=>{this.#e=0;for(let e of this.#t)e()}))}dispose(){this.disposed=!0,this.lifecycle.abort(),this.#e&&cancelAnimationFrame(this.#e),this.#e=0,this.channel.dispose()}};var Qf='script,meta,base,link[rel~=\"import\" i]';function Kl(n){return[...n.querySelectorAll('link:not([rel~=\"import\" i])')].map(e=>[...e.attributes].map(t=>`${t.name}=${t.value}`).sort().join(`\n`)).join(`\n\n`)}var dr=class{constructor(e){this.options=e}options;apply(e){let t=new DOMParser().parseFromString(e,\"text/html\");for(let i of t.querySelectorAll(\"noscript\"))i.replaceChildren();for(let i of t.body.querySelectorAll(Qf))i.remove();for(let i of t.head.querySelectorAll(\"script,base,meta[http-equiv]\"))i.remove();if(Kl(t.head)!==Kl(document.head))throw new Error(\"HEAD_RESOURCES_CHANGED\");let r=new Map;for(let i of document.body.querySelectorAll(`[${me}]`)){let s=i.getAttribute(me);s&&!r.has(s)&&r.set(s,i)}this.attributes(document.documentElement,t.documentElement),this.head(t),this.attributes(document.body,t.body),this.children(document.body,t.body,r)}head(e){e.title&&document.title!==e.title&&(document.title=e.title);let t=[...document.head.querySelectorAll(\"style\")],r=[...e.head.querySelectorAll(\"style\")];r.forEach((i,s)=>{let o=t[s];o?o.textContent!==i.textContent&&(o.textContent=i.textContent):document.head.append(document.importNode(i,!0))});for(let i of t.slice(r.length))i.remove()}attributes(e,t){for(let r of[...e.attributes])r.name===$e||t.hasAttribute(r.name)||e.removeAttribute(r.name);for(let r of[...t.attributes])e.getAttribute(r.name)!==r.value&&e.setAttribute(r.name,r.value)}matches(e,t){if(e.nodeType!==t.nodeType)return!1;if(e.nodeType!==Node.ELEMENT_NODE)return!0;let r=e,i=t;return r.localName===i.localName&&r.namespaceURI===i.namespaceURI&&r.getAttribute(me)===i.getAttribute(me)}children(e,t,r){let i=e.firstChild,s=()=>{for(;i&&this.options.keep(i);)i=i.nextSibling};for(let o of[...t.childNodes]){s();let l=o.nodeType===Node.ELEMENT_NODE?o.getAttribute(me):null,a;if(i&&this.matches(i,o))a=i;else if(l){let c=r.get(l);c&&this.matches(c,o)&&!c.contains(e)&&(a=c)}else{let c=i?.nextSibling??null;for(let d=0;c&&d<8;d+=1,c=c.nextSibling)if(!this.options.keep(c)&&c.nodeType===Node.ELEMENT_NODE&&!c.hasAttribute(me)&&this.matches(c,o)){a=c;break}}if(!a){e.insertBefore(document.importNode(o,!0),i);continue}l&&r.delete(l),a!==i?e.insertBefore(a,i):i=i.nextSibling,this.node(a,o,r)}for(s();i;){let o=i;i=i.nextSibling,this.options.keep(o)||o.remove()}}node(e,t,r){if(e.nodeType!==Node.ELEMENT_NODE){e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue);return}let i=e;this.options.frozen?.(i)||(this.attributes(i,t),i.localName!==\"noscript\"&&this.children(i,t,r))}};var ur=class{constructor(e,t){this.ctx=e;this.parts=t;this.#e=new dr({keep:r=>r===e.controls||r instanceof Element&&r.localName===\"script\",frozen:r=>r===t.text.element()})}ctx;parts;#e;apply(e){let{ctx:t}=this,{text:r,drag:i,targets:s,selection:o,images:l}=this.parts;if(typeof e.html!=\"string\"||typeof e.revision!=\"number\"||!Number.isSafeInteger(e.revision)||e.revision<0||typeof e.readOnly!=\"boolean\"||!Array.isArray(e.regions)||e.regions.length>1e5||!e.regions.every(Ul))return;let a=e.revision===t.channel.revision,c=document.hasFocus()&&document.activeElement instanceof Element?t.regionFrom(document.activeElement):void 0,d=a?void 0:r.supersede();i.cancel(),t.channel.revision=e.revision;try{if(this.#e.apply(e.html),t.setRegions(e.regions),t.marked.size!==t.regions.size)throw new Error(\"MORPH_INCOMPLETE\")}catch{t.channel.defer(void 0),t.send(\"morph-failed\",{});return}t.readOnly=e.readOnly,a||r.forgetRefusals(),r.setEditable(),s.reset(),l.documentChanged();let u=t.selectedId;t.selectedId=void 0,o.highlight(u),t.send(\"ready\",{});let f=t.channel.takeDeferred();f?f():d&&r.editable(d)?r.begin(d,\"end\"):c&&!r.active&&document.activeElement!==t.marked.get(c)&&t.marked.get(c)?.focus({preventScroll:!0}),t.schedule()}};var Zf=[\"before\",\"after\",\"inside\"];function eh(n){return Array.isArray(n)&&n.length<=3&&n.every(e=>Zf.includes(e))}var fr=class{constructor(e,t){this.ctx=e;this.#e=t.node(\"div\",\"drop\"),this.#e.hidden=!0,this.#t=t.node(\"span\",\"drop-label\"),this.#e.append(this.#t),t.shadow.append(this.#e)}ctx;#e;#t;#n;#r;#i=new Map;#s;get destination(){return this.#n}clear(){this.#n=void 0,this.#e.hidden=!0}reset(){this.#r=void 0,this.#i=new Map,this.#s=void 0,this.clear()}#o(e){if(!Array.isArray(e)||e.length>1e4)return;let t=new Map;for(let r of e){if(!r||typeof r!=\"object\")return;let{targetId:i,placements:s}=r;if(typeof i!=\"string\"||!this.ctx.regions.has(i)||!eh(s))return;t.set(i,s)}return t}setMovement(e,t){if(typeof e!=\"string\"||!this.ctx.regions.has(e))return;let r=this.#o(t);if(!r)return;this.#r=e,this.#i=r;let i=this.#n;i&&\"targetId\"in i&&!r.get(i.targetId)?.includes(i.placement)&&this.clear()}setInsertion(e){let t=this.#o(e);t&&(this.#s=t)}#a(e,t,r){return r?this.#r===r&&!!this.#i.get(e)?.includes(t):this.#s?!!this.#s.get(e)?.includes(t):t!==\"inside\"||this.ctx.regions.get(e)?.container===!0}#l(e,t){let r=this.ctx.marked.get(e),i=this.ctx.marked.get(t);return!!r&&!!i&&r.contains(i)}#u(e,t){for(let r of this.ctx.siblings(e)){if(r===e)continue;let i=this.ctx.marked.get(r)?.getBoundingClientRect();if(!i||i.width<=0||i.height<=0)continue;if(i.top<t.bottom-1&&i.bottom>t.top+1&&(i.left>=t.right-1||i.right<=t.left+1))return!0}return!1}#p(e,t){let r,i=1/0;for(let[s,o]of this.ctx.marked){let l=o.getBoundingClientRect();if(l.width<=0&&l.height<=0)continue;let a=Math.max(l.left-e,0,e-l.right),c=Math.max(l.top-t,0,t-l.bottom),d=Math.hypot(a,c);(d<i||d===i&&r&&this.#l(r,s))&&(r=s,i=d)}return r}#f(e,t,r,i){let s=this.ctx.marked.get(e);if(!s)return;let o=s.getBoundingClientRect(),l=this.#u(e,o),a=l?o.width:o.height,c=l?t-o.left:r-o.top,d=a>0?Math.max(0,Math.min(1,c/a)):0,u=d<.5?\"before\":\"after\",f=u===\"before\"?\"after\":\"before\",h=this.ctx.regions.get(e)?.container===!0,p=h&&d>.28&&d<1-.28?[\"inside\",u]:[u,\"inside\"];for(let m of p)if((m!==\"inside\"||h)&&this.#a(e,m,i))return{placement:m,rect:o,horizontal:l};return this.#a(e,f,i)?{placement:f,rect:o,horizontal:l}:void 0}resolve(e,t,r,i=!1){if(this.clear(),this.ctx.readOnly||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0||e>innerWidth||t>innerHeight)return;if(!this.ctx.marked.size){r||this.#h();return}let s=this.ctx.regionFrom(this.ctx.elementAt(e,t));if(i&&!r&&s&&this.ctx.regions.get(s)?.media===\"image\"){let a=this.ctx.marked.get(s)?.getBoundingClientRect();if(a&&a.width>0&&a.height>0){this.#n={replace:s},this.#d(\"inside\",a,!1),this.#t.textContent=this.ctx.cfg.labels.replace;return}}let o=s??this.#p(e,t),l=new Set;for(;o&&!l.has(o);){if(l.add(o),!r||!this.#l(r,o)){let a=this.#f(o,e,t,r);if(a){this.#n={targetId:o,placement:a.placement},this.#d(a.placement,a.rect,a.horizontal);return}}o=this.ctx.parentOf(o)}}#h(){this.#n={end:!0},this.#c(\"inside\",8,8,Math.max(12,innerWidth-16),Math.max(12,innerHeight-16))}#d(e,t,r){if(e===\"inside\"){let i=Math.max(0,t.top);this.#c(e,Math.max(0,t.left),i,Math.min(innerWidth,Math.max(12,t.width)),Math.max(8,Math.min(innerHeight-i,t.bottom-i)))}else if(r){let i=e===\"before\"?t.left-1:t.right-2;this.#c(e,Math.max(0,Math.min(i,innerWidth-3)),t.top,3,t.height)}else{let i=e===\"before\"?t.top-1:t.bottom-2;this.#c(e,Math.max(0,t.left),Math.max(0,Math.min(i,innerHeight-3)),Math.min(innerWidth,Math.max(12,t.width)),3)}}#c(e,t,r,i,s){this.#e.hidden=!1,this.#e.classList.toggle(\"is-inside\",e===\"inside\"),this.#e.classList.toggle(\"is-low\",r<22),this.#e.style.left=`${t}px`,this.#e.style.top=`${r}px`,this.#e.style.width=`${i}px`,this.#e.style.height=`${s}px`,this.#t.textContent=this.ctx.cfg.labels[e]}};var th=\"iframe,embed,object\",hr=class{constructor(e,t,r){this.ctx=e;this.overlay=t;this.drag=r;this.#n=t.node(\"div\",\"embeds\"),t.shadow.insertBefore(this.#n,t.shadow.children[1]??null),e.onMeasure(()=>this.#i())}ctx;overlay;drag;#e=new Map;#t=new WeakMap;#n;#r(e){let t=this.overlay.node(\"div\",\"embed\"),r=this.overlay.icon(\"app-window\",18),i=this.overlay.node(\"span\",\"embed-label\");i.textContent=this.ctx.cfg.labels.embed,r&&(t.innerHTML=r),t.append(i);let s=()=>this.ctx.regionFrom(e),o=this.ctx.signal;return t.addEventListener(\"pointerdown\",l=>{l.pointerType!==\"touch\"&&this.drag.start(l,s(),t)},{signal:o}),t.addEventListener(\"click\",l=>{l.preventDefault(),l.stopPropagation(),this.drag.consumeClick()||this.ctx.select(s())},{signal:o}),t.addEventListener(\"contextmenu\",l=>{l.preventDefault(),l.stopPropagation();let a=s();!a||this.ctx.readOnly||(this.ctx.marked.get(a)?.focus({preventScroll:!0}),this.ctx.select(a),this.ctx.cfg.menu!==!1&&this.ctx.send(\"context-menu\",{nodeId:a,x:Math.max(0,Math.min(l.clientX,innerWidth)),y:Math.max(0,Math.min(l.clientY,innerHeight))}))},{signal:o}),this.#n.append(t),t}#i(){let e=new Set,t=0;for(let r of document.querySelectorAll(th)){if(t>=40)break;let i=r.getBoundingClientRect();if(i.width<2||i.height<2||i.bottom<=0||i.top>=innerHeight)continue;t+=1,e.add(r);let s=this.#e.get(r)??this.#r(r);this.#e.set(r,s);let o=`left:${i.left}px;top:${i.top}px;width:${i.width}px;height:${i.height}px`;this.#t.get(s)!==o&&(this.#t.set(s,o),s.style.left=`${i.left}px`,s.style.top=`${i.top}px`,s.style.width=`${i.width}px`,s.style.height=`${i.height}px`)}for(let[r,i]of this.#e)e.has(r)||(i.remove(),this.#e.delete(r))}};var pr=class{constructor(e){this.ctx=e;let t={capture:!0,signal:e.signal};for(let r of[\"dragenter\",\"dragover\",\"drop\"])window.addEventListener(r,i=>this.#t(i),t)}ctx;#e=-1/0;#t(e){if(![...e.dataTransfer?.types??[]].includes(\"Files\")||(e.preventDefault(),e.stopImmediatePropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=\"none\"),e.type===\"drop\"))return;let t=performance.now();t-this.#e<500||(this.#e=t,this.ctx.send(\"file-drag\",{}))}};var nh=[\"nw\",\"ne\",\"sw\",\"se\"],ql=16,rh=1500,ih=450,Jl=\"se\",mr=class{constructor(e,t){this.ctx=e;for(let r of nh){let i=t.node(\"button\",`grip is-${r}`);i.type=\"button\",i.hidden=!0;let s=r===Jl;i.tabIndex=s?0:-1,i.title=e.cfg.labels.resize,i.setAttribute(\"aria-label\",s?e.cfg.labels.resizeHint:e.cfg.labels.resize),s&&(i.setAttribute(\"aria-keyshortcuts\",\"ArrowLeft ArrowRight Shift+ArrowLeft Shift+ArrowRight\"),i.addEventListener(\"keydown\",o=>this.#s(o),{signal:e.signal}),i.addEventListener(\"blur\",()=>this.#o(),{signal:e.signal})),i.addEventListener(\"pointerdown\",o=>this.#f(o,r,i),{signal:e.signal}),i.addEventListener(\"pointermove\",o=>this.#h(o),{signal:e.signal}),i.addEventListener(\"pointerup\",o=>this.#m(o,!0),{signal:e.signal}),i.addEventListener(\"pointercancel\",o=>this.#m(o,!1),{signal:e.signal}),i.addEventListener(\"lostpointercapture\",o=>this.#m(o,!1),{signal:e.signal}),this.#e.set(r,i),t.shadow.append(i)}this.#t=t.node(\"span\",\"size\"),this.#t.hidden=!0,t.shadow.append(this.#t),e.onMeasure(()=>this.#p()),document.addEventListener(\"pointerdown\",r=>{this.ctx.isControls(r)||this.#o()},{capture:!0,signal:e.signal}),e.beforeSelect(()=>this.#o())}ctx;#e=new Map;#t;#n;#r;#i;focusGrip(e){let t=this.#e.get(Jl);return!t||t.hidden||this.#u()?.id!==e?!1:(t.focus({preventScroll:!0}),!0)}dropKeys(){return this.#r?(this.#a(),!0):!1}get active(){return!!this.#n}#s(e){let t=this.ctx.selectedId;if(!t||e.ctrlKey||e.metaKey||e.altKey||e.isComposing)return;if(e.key===\"Tab\"){let s=[...this.ctx.marked.keys()],o=e.shiftKey?t:s[s.indexOf(t)+1],l=o?this.ctx.marked.get(o):void 0;if(!l)return;e.preventDefault(),e.stopPropagation(),this.#o(),l.focus({preventScroll:!0});return}if(e.key===\"Escape\"&&this.#r){e.preventDefault(),e.stopPropagation(),this.#a();return}let r=e.shiftKey?10:1,i=e.key===\"ArrowLeft\"||e.key===\"ArrowDown\"?-r:e.key===\"ArrowRight\"||e.key===\"ArrowUp\"?r:0;i&&(e.preventDefault(),e.stopPropagation(),this.nudge(t,i))}nudge(e,t){let r=this.#u();if(!r||r.id!==e||this.#n||!Number.isFinite(t))return!1;let i=this.#r;if(i&&(i.id!==e||!i.element.isConnected)&&(this.#o(),i=void 0),!i){let s=this.#i,o=s?.element===r.element?s.style:r.element.getAttribute(\"style\");this.#c(s?.element!==r.element);let l=r.element.getBoundingClientRect();if(l.width<=0||l.height<=0)return!1;i={id:e,element:r.element,width:l.width,ratio:l.width/l.height,style:o,next:Math.round(l.width),timer:void 0},this.#r=i}return i.timer&&clearTimeout(i.timer),i.next=Math.round(Math.max(ql,Math.min(this.#l(i.element),i.next+t))),i.element.style.width=`${i.next}px`,i.element.style.height=`${Math.round(i.next/i.ratio)}px`,i.timer=setTimeout(()=>this.#o(),ih),this.ctx.schedule(),!0}flushKeys(){this.#o()}#o(){let e=this.#r;e&&(this.#r=void 0,e.timer&&clearTimeout(e.timer),this.#y(e.id,e.element,e.style,e.width,e.next,e.ratio))}#a(){let e=this.#r;e&&(this.#r=void 0,e.timer&&clearTimeout(e.timer),e.element.isConnected&&this.#d(e.element,e.style))}#l(e){return Math.min(hs,e.parentElement?.getBoundingClientRect().width||hs)}#u(){let e=this.ctx.selectedId,t=e?this.ctx.marked.get(e):void 0;return e&&t&&!this.ctx.readOnly&&this.ctx.regions.get(e)?.media===\"image\"?{id:e,element:t}:void 0}#p(){let t=this.#u()?.element.getBoundingClientRect(),r=!!t&&t.width>0&&t.bottom>0&&t.top<innerHeight;for(let[s,o]of this.#e)o.hidden=!r,!(!t||!r)&&(o.style.left=`${s.endsWith(\"w\")?t.left:t.right}px`,o.style.top=`${s.startsWith(\"n\")?t.top:t.bottom}px`);let i=!!this.#n||!!this.#r;this.#t.hidden=!i||!t,i&&t&&(this.#t.textContent=`${Math.round(t.width)} \\xD7 ${Math.round(t.height)}`,this.#t.style.left=`${Math.max(4,t.left)}px`,this.#t.style.top=`${Math.min(innerHeight-24,t.bottom+6)}px`)}#f(e,t,r){let i=this.#u();if(!i||this.#n||e.button!==0||!e.isPrimary)return;let s=i.element.getBoundingClientRect();if(s.width<=0||s.height<=0)return;try{r.setPointerCapture(e.pointerId)}catch{return}e.preventDefault(),this.#o();let o=this.#i,l=o?.element===i.element?o.style:i.element.getAttribute(\"style\");this.#c(o?.element!==i.element),this.#n={id:i.id,element:i.element,pointerId:e.pointerId,corner:t,startX:e.clientX,width:s.width,ratio:s.width/s.height,style:l,next:s.width},this.ctx.dragging=!0}#h(e){let t=this.#n;if(!t||t.pointerId!==e.pointerId)return;e.preventDefault();let r=e.clientX-t.startX,i=this.#l(t.element);t.next=Math.round(Math.max(ql,Math.min(i,t.width+(t.corner.endsWith(\"w\")?-r:r)))),t.element.style.width=`${t.next}px`,t.element.style.height=`${Math.round(t.next/t.ratio)}px`,this.ctx.schedule()}#d(e,t){t===null?e.removeAttribute(\"style\"):e.setAttribute(\"style\",t),this.ctx.schedule()}#c(e=!0){let t=this.#i;if(!t)return;this.#i=void 0,clearTimeout(t.timer),e&&t.element.isConnected&&this.#d(t.element,t.style);let r=this.#g.splice(0);for(let i of r)i()}#g=[];afterAnswer(e){this.#i?this.#g.push(e):e()}documentChanged(){this.#c(!1),this.#r&&!this.#r.element.isConnected&&this.#a()}#m(e,t){let r=this.#n;if(!(!r||r.pointerId!==e.pointerId)){if(this.#n=void 0,this.ctx.dragging=!1,!t){this.#d(r.element,r.style);return}this.#y(r.id,r.element,r.style,r.width,r.next,r.ratio)}}#y(e,t,r,i,s,o){if(!(Math.abs(s-i)>=1)||this.ctx.readOnly||!t.isConnected){this.#d(t,r);return}this.#i={element:t,style:r,timer:setTimeout(()=>this.#c(),rh)},this.ctx.send(\"image-resize\",{nodeId:e,width:s,height:Math.max(1,Math.round(s/o))}),this.ctx.schedule()}};var gr=class{constructor(e){this.ctx=e}ctx;#e;origin(e){return e&&e===this.#e?e:this.ctx.selectedId??e}visible(e){let t=this.ctx.marked.get(e);if(!t||!t.getClientRects().length)return!1;let r=t.checkVisibility;return typeof r==\"function\"?r.call(t,{checkVisibilityCSS:!0,visibilityProperty:!0}):getComputedStyle(t).visibility!==\"hidden\"}#t(e){let t=new Set,r=this.ctx.parentOf(e);for(;r&&!t.has(r)&&!this.visible(r);)t.add(r),r=this.ctx.parentOf(r);return r}target(e,t){let r=this.ctx,i=r.marked.get(e);if(!i)return;if(t===\"selectParent\")return this.#t(e);let s=[...r.marked.keys()].filter(u=>u===e||this.visible(u));if(t===\"selectChild\")return s.find(u=>u!==e&&this.#t(u)===e);let o=this.#t(e),l=s.filter(u=>this.#t(u)===o),a=l.indexOf(e),c=l[a+(t===\"selectNext\"?1:-1)];if(c)return c;let d=s.indexOf(e);return t===\"selectNext\"?s.slice(d+1).find(u=>!i.contains(r.marked.get(u)??null)):s.slice(0,d).reverse().find(u=>!r.marked.get(u)?.contains(i))}go(e,t){let r=this.target(e,t),i=r?this.ctx.marked.get(r):void 0;return!r||!i?!1:(this.#e=r,this.ctx.select(r),i.focus({preventScroll:!0}),this.reveal(i),!0)}reveal(e){let t=e.getBoundingClientRect();if(t.width<=0&&t.height<=0)return;for(let i=e;i&&i!==document.body;i=i.parentElement)if(getComputedStyle(i).position===\"fixed\")return;let r=0;t.top<16?r=t.top-16:t.bottom>innerHeight-16&&(r=Math.min(t.bottom-innerHeight+16,t.top-16)),r&&scrollBy(0,r)}};var Jx=Object.freeze([{command:\"undo\",keys:[[\"Mod\",\"Z\"]]},{command:\"redo\",keys:[[\"Mod\",\"Shift\",\"Z\"],[\"Mod\",\"Y\"]]},{command:\"duplicate\",keys:[[\"Mod\",\"D\"]]},{command:\"moveUp\",keys:[[\"Alt\",\"\\u2191\"]]},{command:\"moveDown\",keys:[[\"Alt\",\"\\u2193\"]]},{command:\"remove\",keys:[[\"Delete\"],[\"Backspace\"]]},{command:\"parent\",keys:[[\"Esc\"]]},{command:\"save\",keys:[[\"Mod\",\"S\"]]},{command:\"insert\",keys:[[\"Alt\",\"Enter\"]]},{command:\"menu\",keys:[[\"Shift\",\"F10\"],[\"Menu\"]]},{command:\"selectPrevious\",keys:[[\"\\u2191\"]]},{command:\"selectNext\",keys:[[\"\\u2193\"]]},{command:\"selectParent\",keys:[[\"\\u2190\"]]},{command:\"selectChild\",keys:[[\"\\u2192\"]]},{command:\"shrinkImage\",keys:[[\"Shift\",\"Alt\",\"\\u2190\"]]},{command:\"growImage\",keys:[[\"Shift\",\"Alt\",\"\\u2192\"]]}]);function Xl(n){if(n.isComposing)return;let e=n.key.length===1?n.key.toLowerCase():n.key,t=n.ctrlKey||n.metaKey;if(t&&!n.altKey)return e===\"z\"?n.shiftKey?\"redo\":\"undo\":n.shiftKey?void 0:e===\"y\"?\"redo\":e===\"d\"?\"duplicate\":e===\"s\"?\"save\":void 0;if(n.altKey&&!t&&!n.shiftKey)return e===\"ArrowUp\"?\"moveUp\":e===\"ArrowDown\"?\"moveDown\":e===\"Enter\"?\"insert\":void 0;if(n.altKey&&n.shiftKey&&!t)return e===\"ArrowLeft\"?\"shrinkImage\":e===\"ArrowRight\"?\"growImage\":void 0;if(n.shiftKey&&!t&&!n.altKey)return e===\"F10\"?\"menu\":void 0;if(!(t||n.altKey||n.shiftKey)){if(e===\"Delete\"||e===\"Backspace\")return\"remove\";if(e===\"Escape\")return\"parent\";if(e===\"ContextMenu\")return\"menu\";if(e===\"ArrowUp\")return\"selectPrevious\";if(e===\"ArrowDown\")return\"selectNext\";if(e===\"ArrowLeft\")return\"selectParent\";if(e===\"ArrowRight\")return\"selectChild\"}}var yr=class{constructor(e,t,r,i,s){this.ctx=e;this.text=t;this.drag=r;this.viewport=i;this.images=s;this.#e=new gr(e),document.addEventListener(\"keydown\",o=>this.#t(o),{capture:!0,signal:e.signal})}ctx;text;drag;viewport;images;#e;#t(e){let{ctx:t,text:r}=this;this.viewport.cancelDeferred();let i=!!this.drag.sourceId||t.dragging;e.key===\"Escape\"&&this.drag.cancel();let s=Xl(e);if(s===\"save\"){e.preventDefault(),this.images.flushKeys(),t.readOnly||this.images.afterAnswer(()=>{!t.disposed&&!t.readOnly&&t.send(\"shortcut\",{command:\"save\"})});return}if(t.isControls(e)||r.contains(e.target))return;if(e.key===\"Escape\"&&!i&&this.images.dropKeys()){e.preventDefault();return}if(s!==\"shrinkImage\"&&s!==\"growImage\"&&![\"Shift\",\"Alt\",\"Control\",\"Meta\",\"AltGraph\"].includes(e.key)&&this.images.flushKeys(),e.key===\"Escape\"){!i&&!r.active&&t.select(t.parentOf(t.selectedId));return}let o=r.active;r.reclaim();let l=e.target instanceof Element?t.regionFrom(e.target)??t.selectedId:t.selectedId,a=u=>{e.preventDefault(),l!==t.selectedId&&t.select(l),t.send(\"action\",{nodeId:l,action:u})},c=l?t.marked.get(l):void 0,d=s===\"selectPrevious\"||s===\"selectNext\"||s===\"selectParent\"||s===\"selectChild\"?this.#e.origin(e.target instanceof Element?t.regionFrom(e.target):void 0):void 0;if(e.key===\"Tab\"&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!o&&l&&l===t.selectedId&&this.images.focusGrip(l))e.preventDefault();else if(d&&!o&&!i&&(s===\"selectPrevious\"||s===\"selectNext\"||s===\"selectParent\"||s===\"selectChild\"))e.preventDefault(),this.#e.go(d,s);else if(l&&c&&!o&&!i&&s===\"menu\"&&t.cfg.menu!==!1){e.preventDefault(),l!==t.selectedId&&t.select(l);let u=c.getBoundingClientRect();t.keyboardMenu=performance.now(),t.send(\"context-menu\",{nodeId:l,x:Math.max(0,Math.min(innerWidth,u.left+8)),y:Math.max(0,Math.min(innerHeight,u.top+Math.min(u.height,24))),keyboard:!0})}else if(!t.readOnly&&l&&c&&!o&&!i&&s===\"insert\"){e.preventDefault(),l!==t.selectedId&&t.select(l),this.#e.reveal(c);let u=c.getBoundingClientRect();t.send(\"insert-request\",{nodeId:l,bounds:{x:u.x,y:u.y,width:u.width,height:u.height},keyboard:!0})}else!t.readOnly&&l&&!o&&(s===\"shrinkImage\"||s===\"growImage\")?(e.preventDefault(),l===t.selectedId&&this.images.nudge(l,s===\"growImage\"?10:-10)):!t.readOnly&&l&&(s===\"moveUp\"||s===\"moveDown\")?a(s===\"moveUp\"?\"up\":\"down\"):!t.readOnly&&(s===\"undo\"||s===\"redo\")?(e.preventDefault(),r.history(s)):!t.readOnly&&l&&!o&&s===\"duplicate\"?a(\"duplicate\"):!t.readOnly&&l&&!o&&s===\"remove\"?a(\"remove\"):s===\"duplicate\"?e.preventDefault():e.key===\"F2\"||e.key===\"Enter\"?(e.preventDefault(),t.select(l),r.begin(l,\"end\")):e.key===\" \"?(e.preventDefault(),t.select(l)):(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement)&&e.preventDefault()}};var sh=\"all:initial!important;position:fixed!important;inset:0!important;pointer-events:none!important;z-index:2147483647!important;display:block!important;visibility:visible!important;\",oh=[\":host{all:initial;--ve-accent:#0d9488;--ve-contrast:#fff;--ve-surface:#fff;--ve-text:#18181b;--ve-border:#d4d4d8;--ve-radius:4px}\",\"*{box-sizing:border-box}\",\"[hidden]{display:none!important}\",\".box{position:fixed;pointer-events:none;border:1px solid var(--ve-accent)}\",\".box.is-selected{border-color:transparent}\",\".tag{position:absolute;left:-1px;bottom:100%;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 6px;background:var(--ve-accent);color:var(--ve-contrast);font:11px/1.5 system-ui,sans-serif;border-radius:var(--ve-radius) var(--ve-radius) 0 0}\",\".tag.is-inside{bottom:auto;top:0;border-radius:0 0 var(--ve-radius) 0}\",\"button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}\",\".plus{position:absolute;left:50%;top:100%;width:20px;height:20px;margin:0 0 0 -10px;border-radius:999px;background:var(--ve-accent);color:var(--ve-contrast);box-shadow:0 0 0 2px var(--ve-surface),0 1px 4px #0004}\",\".plus:focus-visible,.toolbar button:focus-visible,.grip:focus-visible{outline:2px solid var(--ve-accent);outline-offset:1px}\",\".toolbar{position:fixed;display:flex;flex-wrap:wrap;gap:1px;align-items:center;max-width:calc(100vw - 8px);padding:2px;background:var(--ve-surface);color:var(--ve-text);border:1px solid var(--ve-border);border-radius:var(--ve-radius);box-shadow:0 4px 14px #0003;pointer-events:auto;font:12px/1.3 system-ui,sans-serif}\",\".toolbar button{min-width:28px;min-height:28px;padding:5px;border-radius:calc(var(--ve-radius)*.75)}\",\".toolbar button:hover{background:color-mix(in srgb,var(--ve-accent) 16%,transparent)}\",\".toolbar button.is-danger:hover{background:#dc262622;color:#dc2626}\",\".toolbar .name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px 0 6px;font-weight:600;color:var(--ve-accent)}\",\".toolbar .sep{width:1px;align-self:stretch;margin:4px 2px;background:var(--ve-border)}\",\".handle{touch-action:none;cursor:grab;user-select:none}\",\".drop{position:fixed;pointer-events:none;background:var(--ve-accent);border-radius:2px}\",\".drop.is-inside{background:color-mix(in srgb,var(--ve-accent) 12%,transparent);outline:2px solid var(--ve-accent);outline-offset:-2px}\",\".drop-label{position:absolute;bottom:100%;left:0;margin-bottom:2px;padding:1px 6px;background:var(--ve-accent);color:var(--ve-contrast);white-space:nowrap;font:11px/1.5 system-ui,sans-serif;border-radius:var(--ve-radius)}\",\".drop.is-low>.drop-label{bottom:auto;top:100%;margin:2px 0 0}\",\".embed{position:fixed;display:flex;align-items:center;justify-content:center;gap:6px;overflow:hidden;pointer-events:auto;cursor:pointer;color:var(--ve-text);background:color-mix(in srgb,var(--ve-surface) 88%,var(--ve-accent));border:1px dashed var(--ve-border);font:12px/1.4 system-ui,sans-serif}\",\".embed-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\",\".grip{position:fixed;width:12px;height:12px;margin:-6px 0 0 -6px;background:var(--ve-surface);border:2px solid var(--ve-accent);border-radius:2px;touch-action:none}\",\".grip.is-nw,.grip.is-se{cursor:nwse-resize}.grip.is-ne,.grip.is-sw{cursor:nesw-resize}\",\".variable{position:fixed;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 6px;background:var(--ve-text);color:var(--ve-surface);font:11px/1.5 system-ui,sans-serif;border-radius:var(--ve-radius);pointer-events:none}\",\".size{position:fixed;padding:1px 6px;background:var(--ve-accent);color:var(--ve-contrast);font:11px/1.5 system-ui,sans-serif;border-radius:var(--ve-radius);pointer-events:none}\",'@media (pointer:coarse){.toolbar .name{display:none}.toolbar button{min-width:44px;min-height:44px}.plus{width:44px;height:44px;margin:0 0 0 -22px}.grip{width:20px;height:20px;margin:-10px 0 0 -10px}.grip::after{content:\"\";position:absolute;inset:-12px}}'].join(\"\"),br=class{constructor(e){this.cfg=e;this.element=document.createElement(\"visual-editor-controls\"),this.element.setAttribute(jl,\"true\"),this.element.setAttribute(\"role\",\"region\"),this.element.setAttribute(\"aria-label\",e.labels.edit),e.lang&&this.element.setAttribute(\"lang\",e.lang),this.element.style.cssText=sh,this.shadow=this.element.attachShadow({mode:\"open\"});let t=document.createElement(\"style\");t.textContent=oh,this.shadow.append(t),this.theme(e.theme),document.body.append(this.element)}cfg;element;shadow;#e;theme(e){if(!e||typeof e!=\"object\")return;let t=e,r=[\"accent\",\"contrast\",\"surface\",\"text\",\"border\"];for(let i of r){let s=t[i];ps(s)&&this.element.style.setProperty(`--ve-${i}`,s)}typeof t.radius==\"number\"&&t.radius>=0&&t.radius<=Wl&&this.element.style.setProperty(\"--ve-radius\",`${t.radius}px`),this.#t()}#t(){let e=this.element.style.getPropertyValue(\"--ve-accent\");if(ps(e))try{this.#e??=new CSSStyleSheet,this.#e.replaceSync(`:root{--visual-editor-accent:${e}}`),document.adoptedStyleSheets.includes(this.#e)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,this.#e])}catch{}}node(e,t){let r=document.createElement(e);return r.className=t,r}icon(e,t=16){let r=this.cfg.icons?.[e];return r?`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"${t}\" height=\"${t}\" aria-hidden=\"true\">${r}</svg>`:void 0}button(e,t,r,i){let s=document.createElement(\"button\");s.type=\"button\";let o=this.icon(t);return o?s.innerHTML=o:s.textContent=e,s.title=e,s.setAttribute(\"aria-label\",e),s.addEventListener(\"click\",l=>{l.preventDefault(),i()},{signal:r}),s}};var xr=class{constructor(e,t,r){this.ctx=e;this.text=t;this.drag=r;let i={capture:!0,signal:e.signal};document.addEventListener(\"click\",s=>this.#e(s),i),document.addEventListener(\"dblclick\",s=>this.#t(s),i),document.addEventListener(\"contextmenu\",s=>this.#n(s),i),document.addEventListener(\"submit\",s=>s.preventDefault(),i),document.addEventListener(\"dragstart\",s=>{t.contains(s.target)||s.preventDefault()},i)}ctx;text;drag;#e(e){e.preventDefault();let t=this.text;if(t.active&&t.contains(e.target)&&!t.contains(document.activeElement)){t.focus(\"keep\");return}if(this.ctx.isControls(e)||t.contains(e.target)||this.drag.consumeClick()||!(e.target instanceof Element))return;let r=this.ctx.regionFrom(e.target),i={x:e.clientX,y:e.clientY};t.end(\"finish\",()=>{t.begin(r,i)||this.ctx.select(r)})}#t(e){if(this.ctx.readOnly||this.ctx.isControls(e)||!(e.target instanceof Element))return;let t=this.ctx.regionFrom(e.target);!t||this.ctx.regions.get(t)?.media!==\"image\"||(e.preventDefault(),t!==this.ctx.selectedId&&this.ctx.select(t),this.ctx.send(\"action\",{nodeId:t,action:\"image\"}))}#n(e){if(this.text.contains(e.target)||this.ctx.cfg.menu===!1||(e.preventDefault(),performance.now()-this.ctx.keyboardMenu<800)||this.ctx.isControls(e)||!(e.target instanceof Element))return;let t=this.ctx.regionFrom(e.target);if(!t)return;let r=Math.max(0,Math.min(e.clientX,innerWidth)),i=Math.max(0,Math.min(e.clientY,innerHeight));this.ctx.marked.get(t)?.focus({preventScroll:!0}),this.text.end(\"finish\",()=>{this.ctx.select(t),this.ctx.send(\"context-menu\",{nodeId:t,x:r,y:i})})}};var kr=class n{constructor(e,t,r){this.ctx=e;this.overlay=t;this.editingId=r;this.#e=this.#a(\"box is-hover\"),this.#t=t.button(e.cfg.labels.add,\"plus\",e.signal,()=>this.#d()),this.#t.className=\"plus\",this.#e.root.append(this.#t),t.shadow.append(this.#e.root),document.addEventListener(\"pointermove\",i=>this.#l(i),{capture:!0,passive:!0,signal:e.signal}),document.documentElement.addEventListener(\"pointerleave\",()=>this.hover(void 0),{signal:e.signal}),e.signal.addEventListener(\"abort\",()=>this.#f(),{once:!0}),e.onMeasure(()=>this.#g())}ctx;overlay;editingId;#e;#t;#n;#r=matchMedia(\"(pointer:coarse)\");#i;#s;#o;get hoverId(){return this.#n}#a(e){let t=this.overlay.node(\"div\",e),r=this.overlay.node(\"span\",\"tag\");return t.hidden=!0,t.append(r),{root:t,tag:r}}#l(e){if(e.pointerType===\"touch\")return;if(this.ctx.isControls(e)){this.#f();return}let t=this.#p(e),r=e.target instanceof Element?this.ctx.regionFrom(e.target):void 0;if(r!==this.#n&&t){this.#f(),this.#s=window.setTimeout(()=>this.hover(r),n.#u);return}this.hover(r)}static#u=400;#p(e){let t=this.#o;if(this.#o={x:e.clientX,y:e.clientY},this.#t.hidden||this.#e.root.hidden)return this.#i=void 0,!1;let r=this.#t.getBoundingClientRect(),i=Math.hypot(e.clientX-(r.left+r.width/2),e.clientY-(r.top+r.height/2)),s=this.#i;if(this.#i=i,s===void 0||!t)return!1;let o=Math.hypot(e.clientX-t.x,e.clientY-t.y);return o>0&&s-i>=o/2}#f(){this.#s!==void 0&&window.clearTimeout(this.#s),this.#s=void 0}hover(e){this.#f();let t=e&&this.ctx.marked.has(e)?e:void 0;t!==this.#n&&(this.#n=t,this.#i=void 0,this.ctx.schedule())}highlight(e){let t=this.ctx;t.selectedId&&t.marked.get(t.selectedId)?.removeAttribute($e),t.selectedId=e&&t.regions.has(e)?e:void 0,t.selectedId&&t.marked.get(t.selectedId)?.setAttribute($e,\"true\"),this.#m(),t.schedule()}#h(){return this.#n??(this.#r.matches?this.ctx.selectedId:void 0)}#d(){let e=this.#h(),t=e?this.ctx.marked.get(e):void 0;if(!e||!t||this.ctx.readOnly)return;let r=t.getBoundingClientRect();e!==this.ctx.selectedId&&this.ctx.select(e),document.hasFocus()||t.focus({preventScroll:!0}),this.ctx.send(\"insert-request\",{nodeId:e,bounds:{x:r.x,y:r.y,width:r.width,height:r.height}})}#c(e,t){let i=(t?this.ctx.marked.get(t):void 0)?.getBoundingClientRect();if(!t||!i||i.bottom<=0||i.top>=innerHeight||i.width<=0){e.root.hidden=!0;return}e.root.hidden=!1,e.root.style.left=`${i.left}px`,e.root.style.top=`${i.top}px`,e.root.style.width=`${i.width}px`,e.root.style.height=`${i.height}px`;let s=this.ctx.regions.get(t)?.label??\"\";return e.tag.hidden=!s,e.tag.textContent=s,e.tag.classList.toggle(\"is-inside\",i.top<22),i}#g(){let e=this.ctx;if(e.disposed)return;let t=e.selectedId,r=t?e.marked.get(t):void 0;if(t&&r){let a=r.getBoundingClientRect();e.channel.telemetry(\"geometry\",{nodeId:t,bounds:{x:a.x,y:a.y,width:a.width,height:a.height},viewport:{x:scrollX,y:scrollY}})}else t||e.channel.telemetry(\"viewport\",{viewport:{x:scrollX,y:scrollY}});let i=this.#h(),s=e.dragging?void 0:this.#n??i,o=this.#c(this.#e,s),l=s===t;this.#e.root.classList.toggle(\"is-selected\",l),l&&(this.#e.tag.hidden=!0),this.#t.hidden=!o||e.readOnly||s!==i||s===this.editingId()}#m(){let e=this.ctx.selectedId,t=e?this.ctx.marked.get(e):void 0;if(!e||!t)return;let r=getComputedStyle(t),i=/^rgba?\\(([\\d.]+),\\s*([\\d.]+),\\s*([\\d.]+)(?:,\\s*([\\d.]+))?\\)$/.exec(r.color);if(!i)return;let s=Math.max(1,Math.min(160,parseFloat(r.fontSize)||16)),o=r.fontFamily.split(\",\")[0]?.trim().replace(/^[\"']|[\"']$/g,\"\").toLowerCase(),l=this.ctx.cfg.fonts?.find(d=>d.toLowerCase()===o),a=r.textAlign,c=r.direction===\"rtl\";this.ctx.send(\"appearance\",{nodeId:e,style:{size:s,lineHeight:r.lineHeight===\"normal\"?\"normal\":Math.max(1,Math.min(500,parseFloat(r.lineHeight)||s)),weight:Math.max(100,Math.min(900,parseInt(r.fontWeight)||400)),color:[Math.min(255,Number(i[1])),Math.min(255,Number(i[2])),Math.min(255,Number(i[3])),i[4]===void 0?1:Math.min(1,Number(i[4]))],family:/mono/i.test(r.fontFamily)?\"monospace\":/(?:^|[, ])[\"']?(?:georgia|times|serif|-webkit-standard)/i.test(r.fontFamily)&&!/sans-serif/i.test(r.fontFamily)?\"serif\":\"sans-serif\",...l?{font:l}:{},align:[\"right\",\"center\",\"justify\"].includes(a)?a:a===\"end\"?c?\"left\":\"right\":a===\"start\"&&c?\"right\":\"left\",direction:c?\"rtl\":\"ltr\"}})}};var Gl=Object.defineProperty,Yl=(n,e)=>{let t={};for(var r in n)Gl(t,r,{get:n[r],enumerable:!0});return e||Gl(t,Symbol.toStringTag,{value:\"Module\"}),t};function ie(n){this.content=n}ie.prototype={constructor:ie,find:function(n){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===n)return e;return-1},get:function(n){var e=this.find(n);return e==-1?void 0:this.content[e+1]},update:function(n,e,t){var r=t&&t!=n?this.remove(t):this,i=r.find(n),s=r.content.slice();return i==-1?s.push(t||n,e):(s[i+1]=e,t&&(s[i]=t)),new ie(s)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new ie(t)},addToStart:function(n,e){return new ie([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new ie(t)},addBefore:function(n,e,t){var r=this.remove(e),i=r.content.slice(),s=r.find(n);return i.splice(s==-1?i.length:s,0,e,t),new ie(i)},forEach:function(n){for(var e=0;e<this.content.length;e+=2)n(this.content[e],this.content[e+1])},prepend:function(n){return n=ie.from(n),n.size?new ie(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=ie.from(n),n.size?new ie(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=ie.from(n);for(var t=0;t<n.content.length;t+=2)e=e.remove(n.content[t]);return e},toObject:function(){var n={};return this.forEach(function(e,t){n[e]=t}),n},get size(){return this.content.length>>1}};ie.from=function(n){if(n instanceof ie)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new ie(e)};var ms=ie;function aa(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let i=n.child(r),s=e.child(r);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){let o=i.text,l=s.text,a=0;for(;o[a]==l[a];a++)t++;return a&&a<o.length&&a<l.length&&ua(o.charCodeAt(a-1))&&da(o.charCodeAt(a))&&t--,t}if(i.content.size||s.content.size){let o=aa(i.content,s.content,t+1);if(o!=null)return o}t+=i.nodeSize}}function ca(n,e,t,r){for(let i=n.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:t,b:r};let o=n.child(--i),l=e.child(--s),a=o.nodeSize;if(o==l){t-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:t,b:r};if(o.isText&&o.text!=l.text){let c=o.text,d=l.text,u=c.length,f=d.length;for(;u>0&&f>0&&c[u-1]==d[f-1];)u--,f--,t--,r--;return u&&f&&u<c.length&&ua(c.charCodeAt(u-1))&&da(c.charCodeAt(u))&&(t++,r++),{a:t,b:r}}if(o.content.size||l.content.size){let c=ca(o.content,l.content,t-1,r-1);if(c)return c}t-=a,r-=a}}function da(n){return n>=56320&&n<57344}function ua(n){return n>=55296&&n<56320}var x=class n{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;r<e.length;r++)this.size+=e[r].nodeSize}nodesBetween(e,t,r,i=0,s){for(let o=0,l=0;l<t;o++){let a=this.content[o],c=l+a.nodeSize;if(c>e&&r(a,i+l,s||null,o)!==!1&&a.content.size){let d=l+1;a.nodesBetween(Math.max(0,e-d),Math.min(a.content.size,t-d),r,i+d)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,i){let s=\"\",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?i?typeof i==\"function\"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):\"\":\"\";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(i[i.length-1]=t.withText(t.text+r.text),s=1);s<e.content.length;s++)i.push(e.content[s]);return new n(i,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],i=0;if(t>e)for(let s=0,o=0;o<t;s++){let l=this.content[s],a=o+l.nodeSize;a>e&&((o<e||a>t)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),i+=l.nodeSize),o=a}return new n(r,i)}cutByIndex(e,t){return e==t?n.empty:e==0&&t==this.content.length?this:new n(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return i[e]=t,new n(i,s)}addToStart(e){return new n([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new n(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw new RangeError(\"Index \"+e+\" out of range for \"+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,r=0;t<this.content.length;t++){let i=this.content[t];e(i,r,t),r+=i.nodeSize}}findDiffStart(e,t=0){return aa(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return ca(this,e,t,r)}findIndex(e){if(e==0)return Sr(0,e);if(e==this.size)return Sr(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let i=this.child(t),s=r+i.nodeSize;if(s>=e)return s==e?Sr(t+1,s):Sr(t,r);r=s}}toString(){return\"<\"+this.toStringInner()+\">\"}toStringInner(){return this.content.join(\", \")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return n.empty;if(!Array.isArray(t))throw new RangeError(\"Invalid input for Fragment.fromJSON\");return n.fromArray(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return n.empty;let t,r=0;for(let i=0;i<e.length;i++){let s=e[i];r+=s.nodeSize,i&&s.isText&&e[i-1].sameMarkup(s)?(t||(t=e.slice(0,i)),t[t.length-1]=s.withText(t[t.length-1].text+s.text)):t&&t.push(s)}return new n(t||e,r)}static from(e){if(!e)return n.empty;if(e instanceof n)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new n([e],e.nodeSize);throw new RangeError(\"Can not convert \"+e+\" to a Fragment\"+(e.nodesBetween?\" (looks like multiple versions of prosemirror-model were loaded)\":\"\"))}};x.empty=new x([],0);var gs={index:0,offset:0};function Sr(n,e){return gs.index=n,gs.offset=e,gs}function Tr(n,e){if(n===e)return!0;if(!(n&&typeof n==\"object\")||!(e&&typeof e==\"object\"))return!1;let t=Array.isArray(n);if(Array.isArray(e)!=t)return!1;if(t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!Tr(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!Tr(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}var P=class n{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let i=0;i<e.length;i++){let s=e[i];if(this.eq(s))return e;if(this.type.excludes(s.type))t||(t=e.slice(0,i));else{if(s.type.excludes(this.type))return e;!r&&s.type.rank>this.type.rank&&(t||(t=e.slice(0,i)),t.push(this),r=!0),t&&t.push(s)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Tr(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw new RangeError(\"Invalid input for Mark.fromJSON\");let r=e.marks[t.type];if(!r)throw new RangeError(`There is no mark type ${t.type} in this schema`);return r.create(t.attrs)}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!e[r].eq(t[r]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return n.none;if(e instanceof n)return[e];let t=e.slice();return t.sort((r,i)=>r.type.rank-i.type.rank),t}};P.none=[];var nt=class extends Error{},v=class n{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=ha(this.content,e+this.openStart,t,this.openStart+1,this.openEnd+1);return r&&new n(r,this.openStart,this.openEnd)}removeBetween(e,t){return new n(fa(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+\"(\"+this.openStart+\",\"+this.openEnd+\")\"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return n.empty;let r=t.openStart||0,i=t.openEnd||0;if(typeof r!=\"number\"||typeof i!=\"number\")throw new RangeError(\"Invalid input for Slice.fromJSON\");return new n(x.fromJSON(e,t.content),r,i)}static maxOpen(e,t=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new n(e,r,i)}};v.empty=new v(x.empty,0,0);function fa(n,e,t){let{index:r,offset:i}=n.findIndex(e),s=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(i==e||s.isText){if(l!=t&&!n.child(o).isText)throw new RangeError(\"Removing non-flat range\");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError(\"Removing non-flat range\");return n.replaceChild(r,s.copy(fa(s.content,e-i-1,t-i-1)))}function ha(n,e,t,r,i,s){let{index:o,offset:l}=n.findIndex(e),a=n.maybeChild(o);if(l==e||a.isText)return s&&r<=0&&i<=0&&!s.canReplace(o,o,t)?null:n.cut(0,e).append(t).append(n.cut(e));let c=ha(a.content,e-l-1,t,o==0?r-1:0,o==n.childCount-1?i-1:0,a);return c&&n.replaceChild(o,a.copy(c))}function lh(n,e,t){if(t.openStart>n.depth)throw new nt(\"Inserted content deeper than insertion position\");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new nt(\"Inconsistent open depths\");return pa(n,e,t,0)}function pa(n,e,t,r){let i=n.index(r),s=n.node(r);if(i==e.index(r)&&r<n.depth-t.openStart){let o=pa(n,e,t,r+1);return s.copy(s.content.replaceChild(i,o))}else if(t.content.size)if(!t.openStart&&!t.openEnd&&n.depth==r&&e.depth==r){let o=n.parent,l=o.content;return gt(o,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:o,end:l}=ah(t,n);return gt(s,ga(n,o,l,e,r))}else return gt(s,Er(n,e,r))}function ma(n,e){if(!e.type.compatibleContent(n.type))throw new nt(\"Cannot join \"+e.type.name+\" onto \"+n.type.name)}function ys(n,e,t){let r=n.node(t);return ma(r,e.node(t)),r}function mt(n,e){let t=e.length-1;t>=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function gn(n,e,t,r){let i=(e||n).node(t),s=0,o=e?e.index(t):i.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(mt(n.nodeAfter,r),s++));for(let l=s;l<o;l++)mt(i.child(l),r);e&&e.depth==t&&e.textOffset&&mt(e.nodeBefore,r)}function gt(n,e){if(!n.type.validContent(e))throw new nt(\"Invalid content for node \"+n.type.name);return n.copy(e)}function ga(n,e,t,r,i){let s=n.depth>i&&ys(n,e,i+1),o=r.depth>i&&ys(t,r,i+1),l=[];return gn(null,n,i,l),s&&o&&e.index(i)==t.index(i)?(ma(s,o),mt(gt(s,ga(n,e,t,r,i+1)),l)):(s&&mt(gt(s,Er(n,e,i+1)),l),gn(e,t,i,l),o&&mt(gt(o,Er(t,r,i+1)),l)),gn(r,null,i,l),new x(l)}function Er(n,e,t){let r=[];if(gn(null,n,t,r),n.depth>t){let i=ys(n,e,t+1);mt(gt(i,Er(n,e,t+1)),r)}return gn(e,null,t,r),new x(r)}function ah(n,e){let t=e.depth-n.openStart,i=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(x.from(i));return{start:i.resolveNoCache(n.openStart+t),end:i.resolveNoCache(i.content.size-n.openEnd-t)}}var Mr=class n{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError(\"There is no position before the top-level node\");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError(\"There is no position after the top-level node\");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=e.child(t);return r?e.child(t).cut(r):i}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s<e;s++)i+=r.child(s).nodeSize;return i}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return P.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),i=e.maybeChild(t);if(!r){let l=r;r=i,i=l}let s=r.marks;for(var o=0;o<s.length;o++)s[o].type.spec.inclusive===!1&&(!i||!s[o].isInSet(i.marks))&&(s=s[o--].removeFromSet(s));return s}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,i=e.parent.maybeChild(e.index());for(var s=0;s<r.length;s++)r[s].type.spec.inclusive===!1&&(!i||!r[s].isInSet(i.marks))&&(r=r[s--].removeFromSet(r));return r}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let r=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);r>=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new yt(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=\"\";for(let t=1;t<=this.depth;t++)e+=(e?\"/\":\"\")+this.node(t).type.name+\"_\"+this.index(t-1);return e+\":\"+this.parentOffset}static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError(\"Position \"+t+\" out of range\");let r=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new n(t,r,s)}static resolveCached(e,t){let r=Ql.get(e);if(r)for(let s=0;s<r.elts.length;s++){let o=r.elts[s];if(o.pos==t)return o}else Ql.set(e,r=new bs);let i=r.elts[r.i]=n.resolve(e,t);return r.i=(r.i+1)%ch,i}},bs=class{constructor(){this.elts=[],this.i=0}},ch=12,Ql=new WeakMap,yt=class{constructor(e,t,r){this.$from=e,this.$to=t,this.depth=r}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},dh=Object.create(null),Ae=class n{constructor(e,t,r,i=P.none){this.type=e,this.attrs=t,this.marks=i,this.content=r||x.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,r,i=0){this.content.nodesBetween(e,t,r,i,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,\"\")}textBetween(e,t,r,i){return this.content.textBetween(e,t,r,i)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,r){return this.type==e&&Tr(this.attrs,t||e.defaultAttrs||dh)&&P.sameSet(this.marks,r||P.none)}copy(e=null){return e==this.content?this:new n(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new n(this.type,this.attrs,this.content,e)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,r=!1){if(e==t)return v.empty;let i=this.resolve(e),s=this.resolve(t),o=r?0:i.sharedDepth(t),l=i.start(o),c=i.node(o).content.cut(i.pos-l,s.pos-l);return new v(c,i.depth-o,s.depth-o)}replace(e,t,r){return lh(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:i}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(i==e||t.isText)return t;e-=i+1}}childAfter(e){let{index:t,offset:r}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:r}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:r}=this.content.findIndex(e);if(r<e)return{node:this.content.child(t),index:t,offset:r};let i=this.content.child(t-1);return{node:i,index:t-1,offset:r-i.nodeSize}}resolve(e){return Mr.resolveCached(this,e)}resolveNoCache(e){return Mr.resolve(this,e)}rangeHasMark(e,t,r){let i=!1;return t>e&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=\"(\"+this.content.toStringInner()+\")\"),ya(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error(\"Called contentMatchAt on a node with invalid content\");return t}canReplace(e,t,r=x.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;a<s;a++)if(!this.type.allowsMarks(r.child(a).marks))return!1;return!0}canReplaceWith(e,t,r,i){if(i&&!this.type.allowsMarks(i))return!1;let s=this.contentMatchAt(e).matchType(r),o=s&&s.matchFragment(this.content,t);return o?o.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),Zl(this.type.attrs,this.attrs,\"node\",this.type.name);let e=P.none;for(let t=0;t<this.marks.length;t++){let r=this.marks[t];Zl(r.type.attrs,r.attrs,\"mark\",r.type.name),e=r.addToSet(e)}if(!P.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(t=>t.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError(\"Invalid input for Node.fromJSON\");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError(\"Invalid mark data for Node.fromJSON\");r=t.marks.map(e.markFromJSON)}if(t.type==\"text\"){if(typeof t.text!=\"string\")throw new RangeError(\"Invalid text node in JSON\");return e.text(t.text,r)}let i=x.fromJSON(e,t.content);return e.nodeType(t.type).create(t.attrs,i,r)}};Ae.prototype.text=void 0;var xs=class n extends Ae{constructor(e,t,r,i){if(super(e,t,null,i),!r)throw new RangeError(\"Empty text nodes are not allowed\");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):ya(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new n(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new n(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function ya(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+\"(\"+e+\")\";return e}function Zl(n,e,t,r){for(let i in e)if(!(i in n))throw new RangeError(`Unsupported attribute ${i} for ${t} of type ${r}`);for(let i in n)n[i].validate&&n[i].validate(e[i])}var bt=class n{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new ks(e,t);if(r.next==null)return n.empty;let i=ba(r);r.next&&r.err(\"Unexpected trailing text\");let s=yh(gh(i));return bh(s,r),s}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,r=e.childCount){let i=this;for(let s=t;i&&s<r;s++)i=i.matchType(e.child(s).type);return i}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let r=0;r<e.next.length;r++)if(this.next[t].type==e.next[r].type)return!0;return!1}fillBefore(e,t=!1,r=0){let i=[this];function s(o,l){let a=o.matchFragment(e,r);if(a&&(!t||a.validEnd))return x.from(l.map(c=>c.createAndFill()));for(let c=0;c<o.next.length;c++){let{type:d,next:u}=o.next[c];if(!(d.isText||d.hasRequiredAttrs())&&i.indexOf(u)==-1){i.push(u);let f=s(u,l.concat(d));if(f)return f}}return null}return s(this,[])}findWrapping(e){for(let r=0;r<this.wrapCache.length;r+=2)if(this.wrapCache[r]==e)return this.wrapCache[r+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),r=[{match:this,type:null,via:null}];for(;r.length;){let i=r.shift(),s=i.match;if(s.matchType(e)){let o=[];for(let l=i;l.type;l=l.via)o.push(l.type);return o.reverse()}for(let o=0;o<s.next.length;o++){let{type:l,next:a}=s.next[o];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!i.type||a.validEnd)&&(r.push({match:l.contentMatch,type:l,via:i}),t[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let i=0;i<r.next.length;i++)e.indexOf(r.next[i].next)==-1&&t(r.next[i].next)}return t(this),e.map((r,i)=>{let s=i+(r.validEnd?\"*\":\" \")+\" \";for(let o=0;o<r.next.length;o++)s+=(o?\", \":\"\")+r.next[o].type.name+\"->\"+e.indexOf(r.next[o].next);return s}).join(`\n`)}};bt.empty=new bt(!0);var ks=class{constructor(e,t){this.string=e,this.nodeTypes=t,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()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+\" (in content expression '\"+this.string+\"')\")}};function ba(n){let e=[];do e.push(uh(n));while(n.eat(\"|\"));return e.length==1?e[0]:{type:\"choice\",exprs:e}}function uh(n){let e=[];do e.push(fh(n));while(n.next&&n.next!=\")\"&&n.next!=\"|\");return e.length==1?e[0]:{type:\"seq\",exprs:e}}function fh(n){let e=mh(n);for(;;)if(n.eat(\"+\"))e={type:\"plus\",expr:e};else if(n.eat(\"*\"))e={type:\"star\",expr:e};else if(n.eat(\"?\"))e={type:\"opt\",expr:e};else if(n.eat(\"{\"))e=hh(n,e);else break;return e}function ea(n){/\\D/.test(n.next)&&n.err(\"Expected number, got '\"+n.next+\"'\");let e=Number(n.next);return n.pos++,e}function hh(n,e){let t=ea(n),r=t;return n.eat(\",\")&&(n.next!=\"}\"?r=ea(n):r=-1),n.eat(\"}\")||n.err(\"Unclosed braced range\"),{type:\"range\",min:t,max:r,expr:e}}function ph(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let i=[];for(let s in t){let o=t[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&n.err(\"No node type or group '\"+e+\"' found\"),i}function mh(n){if(n.eat(\"(\")){let e=ba(n);return n.eat(\")\")||n.err(\"Missing closing paren\"),e}else if(/\\W/.test(n.next))n.err(\"Unexpected token '\"+n.next+\"'\");else{let e=ph(n,n.next).map(t=>(n.inline==null?n.inline=t.isInline:n.inline!=t.isInline&&n.err(\"Mixing inline and block content\"),{type:\"name\",value:t}));return n.pos++,e.length==1?e[0]:{type:\"choice\",exprs:e}}}function gh(n){let e=[[]];return i(s(n,0),t()),e;function t(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type==\"choice\")return o.exprs.reduce((a,c)=>a.concat(s(c,l)),[]);if(o.type==\"seq\")for(let a=0;;a++){let c=s(o.exprs[a],l);if(a==o.exprs.length-1)return c;i(c,l=t())}else if(o.type==\"star\"){let a=t();return r(l,a),i(s(o.expr,a),a),[r(a)]}else if(o.type==\"plus\"){let a=t();return i(s(o.expr,l),a),i(s(o.expr,a),a),[r(a)]}else{if(o.type==\"opt\")return[r(l)].concat(s(o.expr,l));if(o.type==\"range\"){let a=l;for(let c=0;c<o.min;c++){let d=t();i(s(o.expr,a),d),a=d}if(o.max==-1)i(s(o.expr,a),a);else for(let c=o.min;c<o.max;c++){let d=t();r(a,d),i(s(o.expr,a),d),a=d}return[r(a)]}else{if(o.type==\"name\")return[r(l,void 0,o.value)];throw new Error(\"Unknown expr type\")}}}}function xa(n,e){return e-n}function ta(n,e){let t=[];return r(e),t.sort(xa);function r(i){let s=n[i];if(s.length==1&&!s[0].term)return r(s[0].to);t.push(i);for(let o=0;o<s.length;o++){let{term:l,to:a}=s[o];!l&&t.indexOf(a)==-1&&r(a)}}}function yh(n){let e=Object.create(null);return t(ta(n,0));function t(r){let i=[];r.forEach(o=>{n[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let d=0;d<i.length;d++)i[d][0]==l&&(c=i[d][1]);ta(n,a).forEach(d=>{c||i.push([l,c=[]]),c.indexOf(d)==-1&&c.push(d)})})});let s=e[r.join(\",\")]=new bt(r.indexOf(n.length-1)>-1);for(let o=0;o<i.length;o++){let l=i[o][1].sort(xa);s.next.push({type:i[o][0],next:e[l.join(\",\")]||t(l)})}return s}}function bh(n,e){for(let t=0,r=[n];t<r.length;t++){let i=r[t],s=!i.validEnd,o=[];for(let l=0;l<i.next.length;l++){let{type:a,next:c}=i.next[l];o.push(a.name),s&&!(a.isText||a.hasRequiredAttrs())&&(s=!1),r.indexOf(c)==-1&&r.push(c)}s&&e.err(\"Only non-generatable nodes (\"+o.join(\", \")+\") in a required position (see https://prosemirror.net/docs/guide/#generatable)\")}}function ka(n){let e=Object.create(null);for(let t in n){let r=n[t];if(!r.hasDefault)return null;e[t]=r.default}return e}function Sa(n,e){let t=Object.create(null);for(let r in n){let i=n[r],s=e&&e[r];if(s===void 0)if(i.hasDefault)s=i.default;else throw new RangeError(\"No value supplied for attribute \"+r);else i.validate&&i.validate(s);t[r]=s}return t}function wa(n,e){let t=Object.create(null);if(e)for(let r in e)t[r]=new Ss(n,r,e[r]);return t}var Cr=class n{constructor(e,t,r){this.name=e,this.schema=t,this.spec=r,this.markSet=null,this.groups=r.group?r.group.split(\" \"):[],this.attrs=wa(e,r.attrs),this.defaultAttrs=ka(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(r.inline||e==\"text\"),this.isText=e==\"text\"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==bt.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?\"pre\":\"normal\")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:Sa(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error(\"NodeType.create can't construct text nodes\");return new Ae(this,this.computeAttrs(e),x.from(t),P.setFrom(r))}createChecked(e=null,t,r){return t=x.from(t),this.checkContent(t),new Ae(this,this.computeAttrs(e),t,P.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=x.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let i=this.contentMatch.matchFragment(t),s=i&&i.fillBefore(x.empty,!0);return s?new Ae(this,e,t.append(s),P.setFrom(r)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let r=0;r<e.childCount;r++)if(!this.allowsMarks(e.child(r).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let r=0;r<e.length;r++)this.allowsMarkType(e[r].type)?t&&t.push(e[r]):t||(t=e.slice(0,r));return t?t.length?t:P.none:e}static compile(e,t){let r=Object.create(null);e.forEach((s,o)=>r[s]=new n(s,t,o));let i=t.spec.topNode||\"doc\";if(!r[i])throw new RangeError(\"Schema is missing its top node type ('\"+i+\"')\");if(!r.text)throw new RangeError(\"Every schema needs a 'text' type\");for(let s in r.text.attrs)throw new RangeError(\"The text node type should not have attributes\");return r}};function xh(n,e,t){let r=t.split(\"|\");return i=>{let s=i===null?\"null\":typeof i;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${s}`)}}var Ss=class{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,\"default\"),this.default=r.default,this.validate=typeof r.validate==\"string\"?xh(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}},bn=class n{constructor(e,t,r,i){this.name=e,this.rank=t,this.schema=r,this.spec=i,this.attrs=wa(e,i.attrs),this.excluded=null;let s=ka(this.attrs);this.instance=s?new P(this,s):null}create(e=null){return!e&&this.instance?this.instance:new P(this,Sa(this.attrs,e))}static compile(e,t){let r=Object.create(null),i=0;return e.forEach((s,o)=>r[s]=new n(s,i++,t,o)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}excludes(e){return this.excluded.indexOf(e)>-1}},xn=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let i in e)t[i]=e[i];t.nodes=ms.from(e.nodes),t.marks=ms.from(e.marks||{}),this.nodes=Cr.compile(this.spec.nodes,this),this.marks=bn.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+\" can not be both a node and a mark\");let s=this.nodes[i],o=s.spec.content||\"\",l=s.spec.marks;if(s.contentMatch=r[o]||(r[o]=bt.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError(\"Multiple linebreak nodes defined\");if(!s.isInline||!s.isLeaf)throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");this.linebreakReplacement=s}s.markSet=l==\"_\"?null:l?na(this,l.split(\" \")):l==\"\"||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==\"\"?[]:na(this,o.split(\" \"))}this.nodeFromJSON=i=>Ae.fromJSON(this,i),this.markFromJSON=i=>P.fromJSON(this,i),this.topNodeType=this.nodes[this.spec.topNode||\"doc\"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,i){if(typeof e==\"string\")e=this.nodeType(e);else if(e instanceof Cr){if(e.schema!=this)throw new RangeError(\"Node type from different schema used (\"+e.name+\")\")}else throw new RangeError(\"Invalid node type: \"+e);return e.createChecked(t,r,i)}text(e,t){let r=this.nodes.text;return new xs(r,r.defaultAttrs,e,P.setFrom(t))}mark(e,t){return typeof e==\"string\"&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError(\"Unknown node type: \"+e);return t}};function na(n,e){let t=[];for(let r=0;r<e.length;r++){let i=e[r],s=n.marks[i],o=s;if(s)t.push(s);else for(let l in n.marks){let a=n.marks[l];(i==\"_\"||a.spec.group&&a.spec.group.split(\" \").indexOf(i)>-1)&&t.push(o=a)}if(!o)throw new SyntaxError(\"Unknown mark type: '\"+e[r]+\"'\")}return t}function kh(n){return n.tag!=null}function Sh(n){return n.style!=null}var xe=class n{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(i=>{if(kh(i))this.tags.push(i);else if(Sh(i)){let s=/[^=]*/.exec(i.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,t={}){let r=new Ar(this,t,!1);return r.addAll(e,P.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new Ar(this,t,!0);return r.addAll(e,P.none,t.from,t.to),v.maxOpen(r.finish())}matchTag(e,t,r){for(let i=r?this.tags.indexOf(r)+1:0;i<this.tags.length;i++){let s=this.tags[i];if(Th(e,s.tag)&&(s.namespace===void 0||e.namespaceURI==s.namespace)&&(!s.context||t.matchesContext(s.context))){if(s.getAttrs){let o=s.getAttrs(e);if(o===!1)continue;s.attrs=o||void 0}return s}}}matchStyle(e,t,r,i){for(let s=i?this.styles.indexOf(i)+1:0;s<this.styles.length;s++){let o=this.styles[s],l=o.style;if(!(l.indexOf(e)!=0||o.context&&!r.matchesContext(o.context)||l.length>e.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(o.getAttrs){let a=o.getAttrs(t);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let t=[];function r(i){let s=i.priority==null?50:i.priority,o=0;for(;o<t.length;o++){let l=t[o];if((l.priority==null?50:l.priority)<s)break}t.splice(o,0,i)}for(let i in e.marks){let s=e.marks[i].spec.parseDOM;s&&s.forEach(o=>{r(o=ia(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{r(o=ia(o)),o.node||o.ignore||o.mark||(o.node=i)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new n(e,n.schemaRules(e)))}},va={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},wh={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Ta={ol:!0,ul:!0},kn=1,ws=2,yn=4;function ra(n,e,t){return e!=null?(e?kn:0)|(e===\"full\"?ws:0):n&&n.whitespace==\"pre\"?kn|ws:t&~yn}var $t=class{constructor(e,t,r,i,s,o){this.type=e,this.attrs=t,this.marks=r,this.solid=i,this.options=o,this.content=[],this.activeMarks=P.none,this.match=s||(o&yn?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(x.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(e.type))?(this.match=r,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&kn)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \\t\\r\\n\\u000c]+$/.exec(r.text))){let s=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let t=x.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(x.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!va.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},Ar=class{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let i=t.topNode,s,o=ra(null,t.preserveWhitespace,0)|(r?yn:0);i?s=new $t(i.type,i.attrs,P.none,!0,t.topMatch||i.type.contentMatch,o):r?s=new $t(null,null,P.none,!0,null,o):s=new $t(e.schema.topNodeType,null,P.none,!0,null,o),this.nodes=[s],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let r=e.nodeValue,i=this.top,s=i.options&ws?\"full\":this.localPreserveWS||(i.options&kn)>0,{schema:o}=this.parser;if(s===\"full\"||i.inlineContext(e)||/[^ \\t\\r\\n\\u000c]/.test(r)){if(s)if(s===\"full\")r=r.replace(/\\r\\n?/g,`\n`);else if(o.linebreakReplacement&&/[\\r\\n]/.test(r)&&this.top.findWrapping(o.linebreakReplacement.create())){let l=r.split(/\\r?\\n|\\r/);for(let a=0;a<l.length;a++)a&&this.insertNode(o.linebreakReplacement.create(),t,!0),l[a]&&this.insertNode(o.text(l[a]),t,!/\\S/.test(l[a]));r=\"\"}else r=r.replace(/\\r?\\n|\\r/g,\" \");else if(r=r.replace(/[ \\t\\r\\n\\u000c]+/g,\" \"),/^[ \\t\\r\\n\\u000c]/.test(r)&&this.open==this.nodes.length-1){let l=i.content[i.content.length-1],a=e.previousSibling;(!l||a&&a.nodeName==\"BR\"||l.isText&&/[ \\t\\r\\n\\u000c]$/.test(l.text))&&(r=r.slice(1))}r&&this.insertNode(o.text(r),t,!/\\S/.test(r)),this.findInText(e)}else this.findInside(e)}addElement(e,t,r){let i=this.localPreserveWS,s=this.top;(e.tagName==\"PRE\"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),l;Ta.hasOwnProperty(o)&&this.parser.normalizeLists&&vh(e);let a=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,r));e:if(a?a.ignore:wh.hasOwnProperty(o))this.findInside(e),this.ignoreFallback(e,t);else if(!a||a.skip||a.closeParent){a&&a.closeParent?this.open=Math.max(0,this.open-1):a&&a.skip.nodeType&&(e=a.skip);let c,d=this.needsBlock;if(va.hasOwnProperty(o))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),c=!0,s.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break e}let u=a&&a.skip?t:this.readStyles(e,t);u&&this.addAll(e,u),c&&this.sync(s),this.needsBlock=d}else{let c=this.readStyles(e,t);c&&this.addElementByRule(e,a,c,a.consuming===!1?l:void 0)}this.localPreserveWS=i}leafFallback(e,t){e.nodeName==\"BR\"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`\n`),t)}ignoreFallback(e,t){e.nodeName==\"BR\"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(\"-\"),t,!0)}readStyles(e,t){let r=e.style;if(r&&r.length)for(let i=0;i<this.parser.matchedStyles.length;i++){let s=this.parser.matchedStyles[i],o=r.getPropertyValue(s);if(o)for(let l=void 0;;){let a=this.parser.matchStyle(s,o,this,l);if(!a)break;if(a.ignore)return null;if(a.clearMark?t=t.filter(c=>!a.clearMark(c)):t=t.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return t}addElementByRule(e,t,r,i){let s,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),r,e.nodeName==\"BR\")||this.leafFallback(e,r);else{let a=this.enter(o,t.attrs||null,r,t.preserveWhitespace);a&&(s=!0,r=a)}else{let a=this.parser.schema.marks[t.mark];r=r.concat(a.create(t.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(i)this.addElement(e,r,i);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof t.contentElement==\"string\"?a=e.querySelector(t.contentElement):typeof t.contentElement==\"function\"?a=t.contentElement(e):t.contentElement&&(a=t.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}s&&this.sync(l)&&this.open--}addAll(e,t,r,i){let s=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,t);this.findAtPoint(e,s)}findPlace(e,t,r){let i,s;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!i||i.length>c.length+l)&&(i=c,s=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!i)return null;this.sync(s);for(let o=0;o<i.length;o++)t=this.enterInner(i[o],null,t,!1);return t}insertNode(e,t,r){if(e.isInline&&this.needsBlock&&!this.top.type){let s=this.textblockFromContext();s&&(t=this.enterInner(s,null,t))}let i=this.findPlace(e,t,r);if(i){this.closeExtra();let s=this.top;s.match&&(s.match=s.match.matchType(e.type));let o=P.none;for(let l of i.concat(e.marks))(s.type?s.type.allowsMarkType(l.type):sa(l.type,e.type))&&(o=l.addToSet(o));return s.content.push(e.mark(o)),!0}return!1}enter(e,t,r,i){let s=this.findPlace(e.create(t),r,!1);return s&&(s=this.enterInner(e,t,r,!0,i)),s}enterInner(e,t,r,i=!1,s){this.closeExtra();let o=this.top;o.match=o.match&&o.match.matchType(e);let l=ra(e,s,o.options);o.options&yn&&o.content.length==0&&(l|=yn);let a=P.none;return r=r.filter(c=>(o.type?o.type.allowsMarkType(c.type):sa(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new $t(e,t,a,i,null,l)),this.open++,r}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=kn)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let r=this.nodes[t].content;for(let i=r.length-1;i>=0;i--)e+=r[i].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let r=0;r<this.find.length;r++)this.find[r].node==e&&this.find[r].offset==t&&(this.find[r].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,r){if(e!=t&&this.find)for(let i=0;i<this.find.length;i++)this.find[i].pos==null&&e.nodeType==1&&e.contains(this.find[i].node)&&t.compareDocumentPosition(this.find[i].node)&(r?2:4)&&(this.find[i].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(\"|\")>-1)return e.split(/\\s*\\|\\s*/).some(this.matchesContext,this);let t=e.split(\"/\"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(i?0:1),o=(l,a)=>{for(;l>=0;l--){let c=t[l];if(c==\"\"){if(l==t.length-1||l==0)continue;for(;a>=s;a--)if(o(l-1,a))return!0;return!1}else{let d=a>0||a==0&&i?this.nodes[a].type:r&&a>=s?r.node(a-s).type:null;if(!d||d.name!=c&&!d.isInGroup(c))return!1;a--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let r=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let t in this.parser.schema.nodes){let r=this.parser.schema.nodes[t];if(r.isTextblock&&r.defaultAttrs)return r}}};function vh(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&Ta.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r==\"li\"?t=e:r&&(t=null)}}function Th(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function ia(n){let e={};for(let t in n)e[t]=n[t];return e}function sa(n,e){let t=e.schema.nodes;for(let r in t){let i=t[r];if(!i.allowsMarkType(n))continue;let s=[],o=l=>{s.push(l);for(let a=0;a<l.edgeCount;a++){let{type:c,next:d}=l.edge(a);if(c==e||s.indexOf(d)<0&&o(d))return!0}};if(o(i.contentMatch))return!0}}var Fe=class n{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},r){r||(r=wr(t).createDocumentFragment());let i=r,s=[];return e.forEach(o=>{if(s.length||o.marks.length){let l=0,a=0;for(;l<s.length&&a<o.marks.length;){let c=o.marks[a];if(!this.marks[c.type.name]){a++;continue}if(!c.eq(s[l][0])||c.type.spec.spanning===!1)break;l++,a++}for(;l<s.length;)i=s.pop()[1];for(;a<o.marks.length;){let c=o.marks[a++],d=this.serializeMark(c,o.isInline,t);d&&(s.push([c,i]),i.appendChild(d.dom),i=d.contentDOM||d.dom)}}i.appendChild(this.serializeNodeInner(o,t))}),r}serializeNodeInner(e,t){if(e.isText)return wr(t).createTextNode(e.text);let{dom:r,contentDOM:i}=vr(wr(t),this.nodes[e.type.name](e),null,e.attrs);if(i){if(e.isLeaf)throw new RangeError(\"Content hole not allowed in a leaf node spec\");this.serializeFragment(e.content,t,i)}return r}serializeNode(e,t={}){let r=this.serializeNodeInner(e,t);for(let i=e.marks.length-1;i>=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,t);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,t,r={}){let i=this.marks[e.type.name];return i&&vr(wr(r),i(e,t),null,e.attrs)}static renderSpec(e,t,r=null,i){return typeof t==\"string\"?{dom:e.createTextNode(t)}:vr(e,t,r,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new n(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=oa(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return oa(e.marks)}};function oa(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function wr(n){return n.document||window.document}var la=new WeakMap;function Eh(n){let e=la.get(n);return e===void 0&&la.set(n,e=Mh(n)),e}function Mh(n){let e=null;function t(r){if(r&&typeof r==\"object\")if(Array.isArray(r))if(typeof r[0]==\"string\")e||(e=[]),e.push(r);else for(let i=0;i<r.length;i++)t(r[i]);else for(let i in r)t(r[i])}return t(n),e}function vr(n,e,t,r){if(e.nodeType==1)return{dom:e};if(e.dom&&e.dom.nodeType==1)return e;let i=e[0],s;if(typeof i!=\"string\")throw new RangeError(\"Invalid array passed to renderSpec\");if(r&&(s=Eh(r))&&s.indexOf(e)>-1)throw new RangeError(\"Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.\");let o=i.indexOf(\" \");o>0&&(t=i.slice(0,o),i=i.slice(o+1));let l,a=t?n.createElementNS(t,i):n.createElement(i),c=e[1],d=1;if(c&&typeof c==\"object\"&&c.nodeType==null&&!Array.isArray(c)){d=2;for(let u in c)if(c[u]!=null){let f=u.indexOf(\" \");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])}}for(let u=d;u<e.length;u++){let f=e[u];if(f===0){if(u<e.length-1||u>d)throw new RangeError(\"Content hole must be the only child of its parent node\");return{dom:a,contentDOM:a}}else if(typeof f==\"string\")a.appendChild(n.createTextNode(f));else{let{dom:h,contentDOM:p}=vr(n,f,t,r);if(a.appendChild(h),p){if(l)throw new RangeError(\"Multiple content holes\");l=p}}}return{dom:a,contentDOM:l}}var Ra=65535,Na=Math.pow(2,16);function Ch(n,e){return n+e*Na}function Ea(n){return n&Ra}function Ah(n){return(n-(n&Ra))/Na}var Oa=1,Ia=2,Rr=4,Da=8,vn=class{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&Da)>0}get deletedBefore(){return(this.delInfo&(Oa|Rr))>0}get deletedAfter(){return(this.delInfo&(Ia|Rr))>0}get deletedAcross(){return(this.delInfo&Rr)>0}},_e=class n{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&n.empty)return n.empty}recover(e){let t=0,r=Ea(e);if(!this.inverted)for(let i=0;i<r;i++)t+=this.ranges[i*3+2]-this.ranges[i*3+1];return this.ranges[r*3]+t+Ah(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,r){let i=0,s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let a=this.ranges[l]-(this.inverted?i:0);if(a>e)break;let c=this.ranges[l+s],d=this.ranges[l+o],u=a+c;if(e<=u){let f=c?e==a?-1:e==u?1:t:t,h=a+i+(f<0?0:d);if(r)return h;let p=e==(t<0?a:u)?null:Ch(l/3,e-a),m=0;return c&&(m|=e==a?Ia:e==u?Oa:Rr,(t<0?e!=a:e!=u)&&(m|=Da)),new vn(h,m,p)}i+=d-c}return r?e+i:new vn(e+i,0,null)}touches(e,t){let r=0,i=Ea(t),s=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let a=this.ranges[l]-(this.inverted?r:0);if(a>e)break;let c=this.ranges[l+s],d=a+c;if(e<=d&&l==i*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let t=this.inverted?2:1,r=this.inverted?1:2;for(let i=0,s=0;i<this.ranges.length;i+=3){let o=this.ranges[i],l=o-(this.inverted?s:0),a=o+(this.inverted?0:s),c=this.ranges[i+t],d=this.ranges[i+r];e(l,l+c,a,a+d),s+=d-c}}invert(){return new n(this.ranges,!this.inverted)}toString(){return(this.inverted?\"-\":\"\")+JSON.stringify(this.ranges)}static offset(e){return e==0?n.empty:new n(e<0?[0,-e,0]:[0,0,e])}};_e.empty=new _e([]);var Tn=class n{constructor(e,t,r=0,i=e?e.length:0){this.mirror=t,this.from=r,this.to=i,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(e=0,t=this.maps.length){return new n(this._maps,this.mirror,e,t)}appendMap(e,t){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,r=this._maps.length;t<e._maps.length;t++){let i=e.getMirror(t);this.appendMap(e._maps[t],i!=null&&i<t?r+i:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,r=this._maps.length+e._maps.length;t>=0;t--){let i=e.getMirror(t);this.appendMap(e._maps[t].invert(),i!=null&&i>t?r-i-1:void 0)}}invert(){let e=new n;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let r=this.from;r<this.to;r++)e=this._maps[r].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,r){let i=0;for(let s=this.from;s<this.to;s++){let o=this._maps[s],l=o.mapResult(e,t);if(l.recover!=null){let a=this.getMirror(s);if(a!=null&&a>s&&a<this.to){s=a,e=this._maps[a].recover(l.recover);continue}}i|=l.delInfo,e=l.pos}return r?e:new vn(e,i,null)}},vs=Object.create(null),Y=class{getMap(){return _e.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError(\"Invalid input for Step.fromJSON\");let r=vs[t.stepType];if(!r)throw new RangeError(`No step type ${t.stepType} defined`);return r.fromJSON(e,t)}static jsonID(e,t){if(e in vs)throw new RangeError(\"Duplicate use of step JSON ID \"+e);return vs[e]=t,t.prototype.jsonID=e,t}},Z=class n{constructor(e,t){this.doc=e,this.failed=t}static ok(e){return new n(e,null)}static fail(e){return new n(null,e)}static fromReplace(e,t,r,i){try{return n.ok(e.replace(t,r,i))}catch(s){if(s instanceof nt)return n.fail(s.message);throw s}}};function Cs(n,e,t){let r=[];for(let i=0;i<n.childCount;i++){let s=n.child(i);s.content.size&&(s=s.copy(Cs(s.content,e,s))),s.isInline&&(s=e(s,t,i)),r.push(s)}return x.fromArray(r)}var En=class n extends Y{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=e.resolve(this.from),i=r.node(r.sharedDepth(this.to)),s=new v(Cs(t.content,(o,l)=>!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),t.openStart,t.openEnd);return Z.fromReplace(e,this.from,this.to,s)}invert(){return new Ve(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new n(t.pos,r.pos,this.mark)}merge(e){return e instanceof n&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new n(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:\"addMark\",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!=\"number\"||typeof t.to!=\"number\")throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");return new n(t.from,t.to,e.markFromJSON(t.mark))}};Y.jsonID(\"addMark\",En);var Ve=class n extends Y{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=new v(Cs(t.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),t.openStart,t.openEnd);return Z.fromReplace(e,this.from,this.to,r)}invert(){return new En(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new n(t.pos,r.pos,this.mark)}merge(e){return e instanceof n&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new n(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:\"removeMark\",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!=\"number\"||typeof t.to!=\"number\")throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");return new n(t.from,t.to,e.markFromJSON(t.mark))}};Y.jsonID(\"removeMark\",Ve);var Mn=class n extends Y{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Z.fail(\"No node at mark step's position\");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return Z.fromReplace(e,this.pos,this.pos+1,new v(x.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let r=this.mark.addToSet(t.marks);if(r.length==t.marks.length){for(let i=0;i<t.marks.length;i++)if(!t.marks[i].isInSet(r))return new n(this.pos,t.marks[i]);return new n(this.pos,this.mark)}}return new Ft(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new n(t.pos,this.mark)}toJSON(){return{stepType:\"addNodeMark\",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!=\"number\")throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");return new n(t.pos,e.markFromJSON(t.mark))}};Y.jsonID(\"addNodeMark\",Mn);var Ft=class n extends Y{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Z.fail(\"No node at mark step's position\");let r=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return Z.fromReplace(e,this.pos,this.pos+1,new v(x.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Mn(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new n(t.pos,this.mark)}toJSON(){return{stepType:\"removeNodeMark\",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!=\"number\")throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");return new n(t.pos,e.markFromJSON(t.mark))}};Y.jsonID(\"removeNodeMark\",Ft);var K=class n extends Y{constructor(e,t,r,i=!1){super(),this.from=e,this.to=t,this.slice=r,this.structure=i}apply(e){return this.structure&&Es(e,this.from,this.to)?Z.fail(\"Structure replace would overwrite content\"):Z.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new _e([this.from,this.to-this.from,this.slice.size])}invert(e){return new n(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let t=e.mapResult(this.to,-1),r=this.from==this.to&&n.MAP_BIAS<0?t:e.mapResult(this.from,1);return r.deletedAcross&&t.deletedAcross?null:new n(r.pos,Math.max(r.pos,t.pos),this.slice,this.structure)}merge(e){if(!(e instanceof n)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let t=this.slice.size+e.slice.size==0?v.empty:new v(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new n(this.from,this.to+(e.to-e.from),t,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let t=this.slice.size+e.slice.size==0?v.empty:new v(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new n(e.from,this.to,t,this.structure)}else return null}toJSON(){let e={stepType:\"replace\",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!=\"number\"||typeof t.to!=\"number\")throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");return new n(t.from,t.to,v.fromJSON(e,t.slice),!!t.structure)}};K.MAP_BIAS=1;Y.jsonID(\"replace\",K);var q=class n extends Y{constructor(e,t,r,i,s,o,l=!1){super(),this.from=e,this.to=t,this.gapFrom=r,this.gapTo=i,this.slice=s,this.insert=o,this.structure=l}apply(e){if(this.structure&&(Es(e,this.from,this.gapFrom)||Es(e,this.gapTo,this.to)))return Z.fail(\"Structure gap-replace would overwrite content\");let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return Z.fail(\"Gap is not a flat range\");let r=this.slice.insertAt(this.insert,t.content);return r?Z.fromReplace(e,this.from,this.to,r):Z.fail(\"Content does not fit in gap\")}getMap(){return new _e([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let t=this.gapTo-this.gapFrom;return new n(this.from,this.from+this.slice.size+t,this.from+this.insert,this.from+this.insert+t,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1),i=this.from==this.gapFrom?t.pos:e.map(this.gapFrom,-1),s=this.to==this.gapTo?r.pos:e.map(this.gapTo,1);return t.deletedAcross&&r.deletedAcross||i<t.pos||s>r.pos?null:new n(t.pos,r.pos,i,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:\"replaceAround\",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!=\"number\"||typeof t.to!=\"number\"||typeof t.gapFrom!=\"number\"||typeof t.gapTo!=\"number\"||typeof t.insert!=\"number\")throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");return new n(t.from,t.to,t.gapFrom,t.gapTo,v.fromJSON(e,t.slice),t.insert,!!t.structure)}};Y.jsonID(\"replaceAround\",q);function Es(n,e,t){let r=n.resolve(e),i=t-e,s=r.depth;for(;i>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,i--;if(i>0){let o=r.node(s).maybeChild(r.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function Rh(n,e,t,r){let i=[],s=[],o,l;n.doc.nodesBetween(e,t,(a,c,d)=>{if(!a.isInline)return;let u=a.marks;if(!r.isInSet(u)&&d.type.allowsMarkType(r.type)){let f=Math.max(c,e),h=Math.min(c+a.nodeSize,t),p=r.addToSet(u);for(let m=0;m<u.length;m++)u[m].isInSet(p)||(o&&o.to==f&&o.mark.eq(u[m])?o.to=h:i.push(o=new Ve(f,h,u[m])));l&&l.to==f?l.to=h:s.push(l=new En(f,h,r))}}),i.forEach(a=>n.step(a)),s.forEach(a=>n.step(a))}function Nh(n,e,t,r){let i=[],s=0;n.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(r instanceof bn){let c=o.marks,d;for(;d=r.isInSet(c);)(a||(a=[])).push(d),c=d.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,t);for(let d=0;d<a.length;d++){let u=a[d],f;for(let h=0;h<i.length;h++){let p=i[h];p.step==s-1&&u.eq(i[h].style)&&(f=p)}f?(f.to=c,f.step=s):i.push({style:u,from:Math.max(l,e),to:c,step:s})}}}),i.forEach(o=>n.step(new Ve(o.from,o.to,o.style)))}function As(n,e,t,r=t.contentMatch,i=!0){let s=n.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a<s.childCount;a++){let c=s.child(a),d=l+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new K(l,d,v.empty));else{r=u;for(let f=0;f<c.marks.length;f++)t.allowsMarkType(c.marks[f].type)||n.step(new Ve(l,d,c.marks[f]));if(i&&c.isText&&t.whitespace!=\"pre\"){let f,h=/\\r?\\n|\\r/g,p;for(;f=h.exec(c.text);)p||(p=new v(x.from(t.schema.text(\" \",t.allowedMarks(c.marks))),0,0)),o.push(new K(l+f.index,l+f.index+f[0].length,p))}}l=d}if(!r.validEnd){let a=r.fillBefore(x.empty,!0);n.replace(l,l,new v(a,0,0))}for(let a=o.length-1;a>=0;a--)n.step(o[a])}function Oh(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function je(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth,i=0,s=0;;--r){let o=n.$from.node(r),l=n.$from.index(r)+i,a=n.$to.indexAfter(r)-s;if(r<n.depth&&o.canReplace(l,a,t))return r;if(r==0||o.type.spec.isolating||!Oh(o,l,a))break;l&&(i=1),a<o.childCount&&(s=1)}return null}function Ih(n,e,t){let{$from:r,$to:i,depth:s}=e,o=r.before(s+1),l=i.after(s+1),a=o,c=l,d=x.empty,u=0;for(let p=s,m=!1;p>t;p--)m||r.index(p)>0?(m=!0,d=x.from(r.node(p).copy(d)),u++):a--;let f=x.empty,h=0;for(let p=s,m=!1;p>t;p--)m||i.after(p+1)<i.end(p)?(m=!0,f=x.from(i.node(p).copy(f)),h++):c++;n.step(new q(a,c,o,l,new v(d.append(f),u,h),d.size-u,!0))}function jt(n,e,t=null,r=n){let i=Dh(n,e),s=i&&Lh(r,e);return s?i.map(Ma).concat({type:e,attrs:t}).concat(s.map(Ma)):null}function Ma(n){return{type:n,attrs:null}}function Dh(n,e){let{parent:t,startIndex:r,endIndex:i}=n,s=t.contentMatchAt(r).findWrapping(e);if(!s)return null;let o=s.length?s[0]:e;return t.canReplaceWith(r,i,o)?s:null}function Lh(n,e){let{parent:t,startIndex:r,endIndex:i}=n,s=t.child(r),o=e.contentMatch.findWrapping(s.type);if(!o)return null;let a=(o.length?o[o.length-1]:e).contentMatch;for(let c=r;a&&c<i;c++)a=a.matchType(t.child(c).type);return!a||!a.validEnd?null:o}function Ph(n,e,t){let r=x.empty;for(let o=t.length-1;o>=0;o--){if(r.size){let l=t[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\")}r=x.from(t[o].type.create(t[o].attrs,r))}let i=e.start,s=e.end;n.step(new q(i,s,i,s,new v(r,0,0),t.length,!0))}function Bh(n,e,t,r,i){if(!r.isTextblock)throw new RangeError(\"Type given to setBlockType should be a textblock\");let s=n.steps.length;n.doc.nodesBetween(e,t,(o,l)=>{let a=typeof i==\"function\"?i(o):i;if(o.isTextblock&&!o.hasMarkup(r,a)&&zh(n.doc,n.mapping.slice(s).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let h=r.whitespace==\"pre\",p=!!r.contentMatch.matchType(r.schema.linebreakReplacement);h&&!p?c=!1:!h&&p&&(c=!0)}c===!1&&Pa(n,o,l,s),As(n,n.mapping.slice(s).map(l,1),r,void 0,c===null);let d=n.mapping.slice(s),u=d.map(l,1),f=d.map(l+o.nodeSize,1);return n.step(new q(u,f,u+1,f-1,new v(x.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&La(n,o,l,s),!1}})}function La(n,e,t,r){e.forEach((i,s)=>{if(i.isText){let o,l=/\\r?\\n|\\r/g;for(;o=l.exec(i.text);){let a=n.mapping.slice(r).map(t+1+s+o.index);n.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function Pa(n,e,t,r){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=n.mapping.slice(r).map(t+1+s);n.replaceWith(o,o+1,e.type.schema.text(`\n`))}})}function zh(n,e,t){let r=n.resolve(e),i=r.index();return r.parent.canReplaceWith(i,i+1,t)}function Hh(n,e,t,r,i){let s=n.doc.nodeAt(e);if(!s)throw new RangeError(\"No node at given position\");t||(t=s.type);let o=t.create(r,null,i||s.marks);if(s.isLeaf)return n.replaceWith(e,e+s.nodeSize,o);if(!t.validContent(s.content))throw new RangeError(\"Invalid content for node type \"+t.name);n.step(new q(e,e+s.nodeSize,e+1,e+s.nodeSize-1,new v(x.from(o),0,0),1,!0))}function ke(n,e,t=1,r){let i=n.resolve(e),s=i.depth-t,o=r&&r[r.length-1]||i.parent;if(s<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let c=i.depth-1,d=t-2;c>s;c--,d--){let u=i.node(c),f=i.index(c);if(u.type.spec.isolating)return!1;let h=u.content.cutByIndex(f,u.childCount),p=r&&r[d+1];p&&(h=h.replaceChild(0,p.type.create(p.attrs)));let m=r&&r[d]||u;if(!u.canReplace(f+1,u.childCount)||!m.type.validContent(h))return!1}let l=i.indexAfter(s),a=r&&r[0];return i.node(s).canReplaceWith(l,l,a?a.type:i.node(s+1).type)}function $h(n,e,t=1,r){let i=n.doc.resolve(e),s=x.empty,o=x.empty;for(let l=i.depth,a=i.depth-t,c=t-1;l>a;l--,c--){s=x.from(i.node(l).copy(s));let d=r&&r[c];o=x.from(d?d.type.create(d.attrs,o):i.node(l).copy(o))}n.step(new K(e,e,new v(s.append(o),t,t),!0))}function Re(n,e){let t=n.resolve(e),r=t.index();return Ba(t.nodeBefore,t.nodeAfter)&&t.parent.canReplace(r,r+1)}function Fh(n,e){e.content.size||n.type.compatibleContent(e.type);let t=n.contentMatchAt(n.childCount),{linebreakReplacement:r}=n.type.schema;for(let i=0;i<e.childCount;i++){let s=e.child(i),o=s.type==r?n.type.schema.nodes.text:s.type;if(t=t.matchType(o),!t||!n.type.allowsMarks(s.marks))return!1}return t.validEnd}function Ba(n,e){return!!(n&&e&&!n.isLeaf&&Fh(n,e))}function Wt(n,e,t=-1){let r=n.resolve(e);for(let i=r.depth;;i--){let s,o,l=r.index(i);if(i==r.depth?(s=r.nodeBefore,o=r.nodeAfter):t>0?(s=r.node(i+1),l++,o=r.node(i).maybeChild(l)):(s=r.node(i).maybeChild(l-1),o=r.node(i+1)),s&&!s.isTextblock&&Ba(s,o)&&r.node(i).canReplace(l,l+1))return e;if(i==0)break;e=t<0?r.before(i):r.after(i)}}function _h(n,e,t){let r=null,{linebreakReplacement:i}=n.doc.type.schema,s=n.doc.resolve(e-t),o=s.node().type;if(i&&o.inlineContent){let d=o.whitespace==\"pre\",u=!!o.contentMatch.matchType(i);d&&!u?r=!1:!d&&u&&(r=!0)}let l=n.steps.length;if(r===!1){let d=n.doc.resolve(e+t);Pa(n,d.node(),d.before(),l)}o.inlineContent&&As(n,e+t-1,o,s.node().contentMatchAt(s.index()),r==null);let a=n.mapping.slice(l),c=a.map(e-t);if(n.step(new K(c,a.map(e+t,-1),v.empty,!0)),r===!0){let d=n.doc.resolve(c);La(n,d.node(),d.before(),n.steps.length)}return n}function Vh(n,e,t){let r=n.resolve(e);if(r.parent.canReplaceWith(r.index(),r.index(),t))return e;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let s=r.index(i);if(r.node(i).canReplaceWith(s,s,t))return r.before(i+1);if(s>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let s=r.indexAfter(i);if(r.node(i).canReplaceWith(s,s,t))return r.after(i+1);if(s<r.node(i).childCount)return null}return null}function Ir(n,e,t){let r=n.resolve(e);if(!t.content.size)return e;let i=t.content;for(let s=0;s<t.openStart;s++)i=i.firstChild.content;for(let s=1;s<=(t.openStart==0&&t.size?2:1);s++)for(let o=r.depth;o>=0;o--){let l=o==r.depth?0:r.pos<=(r.start(o+1)+r.end(o+1))/2?-1:1,a=r.index(o)+(l>0?1:0),c=r.node(o),d=!1;if(s==1)d=c.canReplace(a,a,i);else{let u=c.contentMatchAt(a).findWrapping(i.firstChild.type);d=u&&c.canReplaceWith(a,a,u[0])}if(d)return l==0?r.pos:l<0?r.before(o+1):r.after(o+1)}return null}function Cn(n,e,t=e,r=v.empty){if(e==t&&!r.size)return null;let i=n.resolve(e),s=n.resolve(t);return za(i,s,r)?new K(e,t,r):new Ms(i,s,r).fit()}function za(n,e,t){return!t.openStart&&!t.openEnd&&n.start()==e.start()&&n.parent.canReplace(n.index(),e.index(),t.content)}var Ms=class{constructor(e,t,r){this.$from=e,this.$to=t,this.unplaced=r,this.frontier=[],this.placed=x.empty;for(let i=0;i<=e.depth;i++){let s=e.node(i);this.frontier.push({type:s.type,match:s.contentMatchAt(e.indexAfter(i))})}for(let i=e.depth;i>0;i--)this.placed=x.from(e.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let c=this.findFittable();c?this.placeNodes(c):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(e<0?this.$to:r.doc.resolve(e));if(!i)return null;let s=this.placed,o=r.depth,l=i.depth;for(;o&&l&&s.childCount==1;)s=s.firstChild.content,o--,l--;let a=new v(s,o,l);return e>-1?new q(r.pos,e,this.$to.pos,this.$to.end(),a,t):a.size||r.pos!=this.$to.pos?new K(r.pos,i.pos,a):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,r=0,i=this.unplaced.openEnd;r<e;r++){let s=t.firstChild;if(t.childCount>1&&(i=0),s.type.spec.isolating&&i<=r){e=r;break}t=s.content}for(let t=1;t<=2;t++)for(let r=t==1?e:this.unplaced.openStart;r>=0;r--){let i,s=null;r?(s=Ca(this.unplaced.content,r-1).firstChild,i=s.content):i=this.unplaced.content;let o=i.firstChild;for(let l=this.depth;l>=0;l--){let{type:a,match:c}=this.frontier[l],d,u=null;if(t==1&&(o?c.matchType(o.type)||(u=c.fillBefore(x.from(o),!1)):s&&a.compatibleContent(s.type)))return{sliceDepth:r,frontierDepth:l,parent:s,inject:u};if(t==2&&o&&(d=c.findWrapping(o.type)))return{sliceDepth:r,frontierDepth:l,parent:s,wrap:d};if(s&&c.matchType(s.type))break}}}openMore(){let{content:e,openStart:t,openEnd:r}=this.unplaced;return Aa(e,-1)<=t?!1:(this.unplaced.size>1&&Aa(e,1)>r&&r++,this.unplaced=new v(e,t+1,r),!0)}dropNode(){let{content:e,openStart:t,openEnd:r}=this.unplaced,i=Ca(e,t);if(i.childCount<=1&&t>0){let s=e.size-t<=t+i.size;this.unplaced=new v(Sn(e,t-1,1),t-1,s?t-1:r)}else this.unplaced=new v(Sn(e,t,1),t,r)}placeNodes({sliceDepth:e,frontierDepth:t,parent:r,inject:i,wrap:s}){for(;this.depth>t;)this.closeFrontierNode();if(s)for(let m=0;m<s.length;m++)this.openFrontierNode(s[m]);let o=this.unplaced,l=r?r.content:o.content,a=o.openStart-e,c=0,d=[],{match:u,type:f}=this.frontier[t];if(i){for(let m=0;m<i.childCount;m++)d.push(i.child(m));u=u.matchFragment(i)}let h=l.size+e-(o.content.size-o.openEnd);for(;c<l.childCount;){let m=l.child(c),g=u.matchType(m.type);if(!g)break;c++,(c>1||a==0||m.content.size)&&(u=g,d.push(Ha(m.mark(f.allowedMarks(m.marks)),c==1?a:0,c==l.childCount?h:-1)))}let p=c==l.childCount;p||(h=-1),this.placed=wn(this.placed,t,x.from(d)),this.frontier[t].match=u,p&&h<0&&r&&r.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let m=0,g=l;m<h;m++){let y=g.lastChild;this.frontier.push({type:y.type,match:y.contentMatchAt(y.childCount)}),g=y.content}this.unplaced=p?e==0?v.empty:new v(Sn(o.content,e-1,1),e-1,h<0?o.openEnd:e-1):new v(Sn(o.content,e,c),o.openStart,o.openEnd)}mustMoveInline(){if(!this.$to.parent.isTextblock)return-1;let e=this.frontier[this.depth],t;if(!e.type.isTextblock||!Ts(this.$to,this.$to.depth,e.type,e.match,!1)||this.$to.depth==this.depth&&(t=this.findCloseLevel(this.$to))&&t.depth==this.depth)return-1;let{depth:r}=this.$to,i=this.$to.after(r);for(;r>1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(e){e:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:r,type:i}=this.frontier[t],s=t<e.depth&&e.end(t+1)==e.pos+(e.depth-(t+1)),o=Ts(e,t,i,r,s);if(o){for(let l=t-1;l>=0;l--){let{match:a,type:c}=this.frontier[l],d=Ts(e,l,c,a,!0);if(!d||d.childCount)continue e}return{depth:t,fit:o,move:s?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=wn(this.placed,t.depth,t.fit)),e=t.move;for(let r=t.depth+1;r<=e.depth;r++){let i=e.node(r),s=i.type.contentMatch.fillBefore(i.content,!0,e.index(r));this.openFrontierNode(i.type,i.attrs,s)}return e}openFrontierNode(e,t=null,r){let i=this.frontier[this.depth];i.match=i.match.matchType(e),this.placed=wn(this.placed,this.depth,x.from(e.create(t,r))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let t=this.frontier.pop().match.fillBefore(x.empty,!0);t.childCount&&(this.placed=wn(this.placed,this.frontier.length,t))}};function Sn(n,e,t){return e==0?n.cutByIndex(t,n.childCount):n.replaceChild(0,n.firstChild.copy(Sn(n.firstChild.content,e-1,t)))}function wn(n,e,t){return e==0?n.append(t):n.replaceChild(n.childCount-1,n.lastChild.copy(wn(n.lastChild.content,e-1,t)))}function Ca(n,e){for(let t=0;t<e;t++)n=n.firstChild.content;return n}function Ha(n,e,t){if(e<=0)return n;let r=n.content;return e>1&&(r=r.replaceChild(0,Ha(r.firstChild,e-1,r.childCount==1?t-1:0))),e>0&&(r=n.type.contentMatch.fillBefore(r).append(r),t<=0&&(r=r.append(n.type.contentMatch.matchFragment(r).fillBefore(x.empty,!0)))),n.copy(r)}function Ts(n,e,t,r,i){let s=n.node(e),o=i?n.indexAfter(e):n.index(e);if(o==s.childCount&&!t.compatibleContent(s.type))return null;let l=r.fillBefore(s.content,!0,o);return l&&!jh(t,s.content,o)?l:null}function jh(n,e,t){for(let r=t;r<e.childCount;r++)if(!n.allowsMarks(e.child(r).marks))return!0;return!1}function Wh(n){return n.spec.defining||n.spec.definingForContent}function Aa(n,e){for(let t=0;;t++){let r=e<0?n.firstChild:n.lastChild;if(!r||r.isAtom)return t;n=r.content}}function Uh(n,e,t,r){if(!r.size)return n.deleteRange(e,t);let i=n.doc.resolve(e),s=n.doc.resolve(t);if(za(i,s,r))return n.step(new K(e,t,r));let o=Fa(i,s);o[o.length-1]==0&&o.pop();let l=-(i.depth+1);o.unshift(l);for(let f=i.depth,h=i.pos-1;f>0;f--,h--){let p=i.node(f).type.spec;if(p.defining||p.definingAsContext||p.isolating)break;o.indexOf(f)>-1?l=f:i.before(f)==h&&o.splice(1,0,-f)}let a=o.indexOf(l),c=[],d=r.openStart;for(let f=r.content,h=0;;h++){let p=f.firstChild;if(c.push(p),h==r.openStart)break;f=p.content}for(let f=d-1;f>=0;f--){let h=c[f],p=Wh(h.type);if(p&&!h.sameMarkup(i.node(Math.abs(l)-1)))d=f;else if(p||!h.type.isTextblock)break}for(let f=r.openStart;f>=0;f--){let h=(f+d+1)%(r.openStart+1),p=c[h];if(p)for(let m=0;m<o.length;m++){let g=o[(m+a)%o.length],y=!0;g<0&&(y=!1,g=-g);let b=i.node(g-1),w=i.index(g-1);if(b.canReplaceWith(w,w,p.type,p.marks))return n.replace(i.before(g),y?s.after(g):t,new v($a(r.content,0,r.openStart,h),h,r.openEnd))}}let u=n.steps.length;for(let f=o.length-1;f>=0&&(n.replace(e,t,r),!(n.steps.length>u));f--){let h=o[f];h<0||(e=i.before(h),t=s.after(h))}}function $a(n,e,t,r,i){if(e<t){let s=n.firstChild;n=n.replaceChild(0,s.copy($a(s.content,e+1,t,r,s)))}if(e>r){let s=i.contentMatchAt(0),o=s.fillBefore(n).append(n);n=o.append(s.matchFragment(o).fillBefore(x.empty,!0))}return n}function Kh(n,e,t,r){if(!r.isInline&&e==t&&n.doc.resolve(e).parent.content.size){let i=Vh(n.doc,e,r.type);i!=null&&(e=t=i)}n.replaceRange(e,t,new v(x.from(r),0,0))}function qh(n,e,t){let r=n.doc.resolve(e),i=n.doc.resolve(t);if(r.parent.isTextblock&&i.parent.isTextblock&&r.start()!=i.start()&&r.parentOffset==0&&i.parentOffset==0){let o=r.sharedDepth(t),l=!1;for(let a=r.depth;a>o;a--)r.node(a).type.spec.isolating&&(l=!0);for(let a=i.depth;a>o;a--)i.node(a).type.spec.isolating&&(l=!0);if(!l){for(let a=r.depth;a>0&&e==r.start(a);a--)e=r.before(a);for(let a=i.depth;a>0&&t==i.start(a);a--)t=i.before(a);r=n.doc.resolve(e),i=n.doc.resolve(t)}}let s=Fa(r,i);for(let o=0;o<s.length;o++){let l=s[o],a=o==s.length-1;if(a&&l==0||r.node(l).type.contentMatch.validEnd)return n.delete(r.start(l),i.end(l));if(l>0&&(a||r.node(l-1).canReplace(r.index(l-1),i.indexAfter(l-1))))return n.delete(r.before(l),i.after(l))}for(let o=1;o<=r.depth&&o<=i.depth;o++)if(e-r.start(o)==r.depth-o&&t>r.end(o)&&i.end(o)-t!=i.depth-o&&r.start(o-1)==i.start(o-1)&&r.node(o-1).canReplace(r.index(o-1),i.index(o-1)))return n.delete(r.before(o),t);n.delete(e,t)}function Fa(n,e){let t=[],r=Math.min(n.depth,e.depth);for(let i=r;i>=0;i--){let s=n.start(i);if(s<n.pos-(n.depth-i)||e.end(i)>e.pos+(e.depth-i)||n.node(i).type.spec.isolating||e.node(i).type.spec.isolating)break;(s==e.start(i)||i==n.depth&&i==e.depth&&n.parent.inlineContent&&e.parent.inlineContent&&i&&e.start(i-1)==s-1)&&t.push(i)}return t}var Nr=class n extends Y{constructor(e,t,r){super(),this.pos=e,this.attr=t,this.value=r}apply(e){let t=e.nodeAt(this.pos);if(!t)return Z.fail(\"No node at attribute step's position\");let r=Object.create(null);for(let s in t.attrs)r[s]=t.attrs[s];r[this.attr]=this.value;let i=t.type.create(r,null,t.marks);return Z.fromReplace(e,this.pos,this.pos+1,new v(x.from(i),0,t.isLeaf?0:1))}getMap(){return _e.empty}invert(e){return new n(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new n(t.pos,this.attr,this.value)}toJSON(){return{stepType:\"attr\",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.pos!=\"number\"||typeof t.attr!=\"string\")throw new RangeError(\"Invalid input for AttrStep.fromJSON\");return new n(t.pos,t.attr,t.value)}};Y.jsonID(\"attr\",Nr);var Or=class n extends Y{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let i in e.attrs)t[i]=e.attrs[i];t[this.attr]=this.value;let r=e.type.create(t,e.content,e.marks);return Z.ok(r)}getMap(){return _e.empty}invert(e){return new n(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:\"docAttr\",attr:this.attr,value:this.value}}static fromJSON(e,t){if(typeof t.attr!=\"string\")throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");return new n(t.attr,t.value)}};Y.jsonID(\"docAttr\",Or);var _t=class extends Error{};_t=function n(e){let t=Error.call(this,e);return t.__proto__=n.prototype,t};_t.prototype=Object.create(Error.prototype);_t.prototype.constructor=_t;_t.prototype.name=\"TransformError\";var Vt=class{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new Tn}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new _t(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,t=-1e9;for(let r=0;r<this.mapping.maps.length;r++){let i=this.mapping.maps[r];r&&(e=i.map(e,1),t=i.map(t,-1)),i.forEach((s,o,l,a)=>{e=Math.min(e,l),t=Math.max(t,a)})}return e==1e9?null:{from:e,to:t}}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,r=v.empty){let i=Cn(this.doc,e,t,r);return i&&this.step(i),this}replaceWith(e,t,r){return this.replace(e,t,new v(x.from(r),0,0))}delete(e,t){return this.replace(e,t,v.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,r){return Uh(this,e,t,r),this}replaceRangeWith(e,t,r){return Kh(this,e,t,r),this}deleteRange(e,t){return qh(this,e,t),this}lift(e,t){return Ih(this,e,t),this}join(e,t=1){return _h(this,e,t),this}wrap(e,t){return Ph(this,e,t),this}setBlockType(e,t=e,r,i=null){return Bh(this,e,t,r,i),this}setNodeMarkup(e,t,r=null,i){return Hh(this,e,t,r,i),this}setNodeAttribute(e,t,r){return this.step(new Nr(e,t,r)),this}setDocAttribute(e,t){return this.step(new Or(e,t)),this}addNodeMark(e,t){return this.step(new Mn(e,t)),this}removeNodeMark(e,t){let r=this.doc.nodeAt(e);if(!r)throw new RangeError(\"No node at position \"+e);if(t instanceof P)t.isInSet(r.marks)&&this.step(new Ft(e,t));else{let i=r.marks,s,o=[];for(;s=t.isInSet(i);)o.push(new Ft(e,s)),i=s.removeFromSet(i);for(let l=o.length-1;l>=0;l--)this.step(o[l])}return this}split(e,t=1,r){return $h(this,e,t,r),this}addMark(e,t,r){return Rh(this,e,t,r),this}removeMark(e,t,r){return Nh(this,e,t,r),this}clearIncompatible(e,t,r){return As(this,e,t,r),this}};var Rs=Object.create(null),R=class{constructor(e,t,r){this.$anchor=e,this.$head=t,this.ranges=r||[new Lr(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t<e.length;t++)if(e[t].$from.pos!=e[t].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,t=v.empty){let r=t.content.lastChild,i=null;for(let l=0;l<t.openEnd;l++)i=r,r=r.lastChild;let s=e.steps.length,o=this.ranges;for(let l=0;l<o.length;l++){let{$from:a,$to:c}=o[l],d=e.mapping.slice(s);e.replaceRange(d.map(a.pos),d.map(c.pos),l?v.empty:t),l==0&&ja(e,s,(r?r.isInline:i&&i.isTextblock)?-1:1)}}replaceWith(e,t){let r=e.steps.length,i=this.ranges;for(let s=0;s<i.length;s++){let{$from:o,$to:l}=i[s],a=e.mapping.slice(r),c=a.map(o.pos),d=a.map(l.pos);s?e.deleteRange(c,d):(e.replaceRangeWith(c,d,t),ja(e,r,t.isInline?-1:1))}}static findFrom(e,t,r=!1){let i=e.parent.inlineContent?new T(e):Ut(e.node(0),e.parent,e.pos,e.index(),t,r);if(i)return i;for(let s=e.depth-1;s>=0;s--){let o=t<0?Ut(e.node(0),e.node(s),e.before(s+1),e.index(s),t,r):Ut(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,t,r);if(o)return o}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new ce(e.node(0))}static atStart(e){return Ut(e,e,0,0,1)||new ce(e)}static atEnd(e){return Ut(e,e,e.content.size,e.childCount,-1)||new ce(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError(\"Invalid input for Selection.fromJSON\");let r=Rs[t.type];if(!r)throw new RangeError(`No selection type ${t.type} defined`);return r.fromJSON(e,t)}static jsonID(e,t){if(e in Rs)throw new RangeError(\"Duplicate use of selection JSON ID \"+e);return Rs[e]=t,t.prototype.jsonID=e,t}getBookmark(){return T.between(this.$anchor,this.$head).getBookmark()}};R.prototype.visible=!0;var Lr=class{constructor(e,t){this.$from=e,this.$to=t}},_a=!1;function Va(n){!_a&&!n.parent.inlineContent&&(_a=!0,console.warn(\"TextSelection endpoint not pointing into a node with inline content (\"+n.parent.type.name+\")\"))}var T=class n extends R{constructor(e,t=e){Va(e),Va(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let r=e.resolve(t.map(this.head));if(!r.parent.inlineContent)return R.near(r);let i=e.resolve(t.map(this.anchor));return new n(i.parent.inlineContent?i:r,r)}replace(e,t=v.empty){if(super.replace(e,t),t==v.empty){let r=this.$from.marksAcross(this.$to);r&&e.ensureMarks(r)}}eq(e){return e instanceof n&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new Pr(this.anchor,this.head)}toJSON(){return{type:\"text\",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if(typeof t.anchor!=\"number\"||typeof t.head!=\"number\")throw new RangeError(\"Invalid input for TextSelection.fromJSON\");return new n(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,r=t){let i=e.resolve(t);return new this(i,r==t?i:e.resolve(r))}static between(e,t,r){let i=e.pos-t.pos;if((!r||i)&&(r=i>=0?1:-1),!t.parent.inlineContent){let s=R.findFrom(t,r,!0)||R.findFrom(t,-r,!0);if(s)t=s.$head;else return R.near(t,r)}return e.parent.inlineContent||(i==0?e=t:(e=(R.findFrom(e,-r,!0)||R.findFrom(e,r,!0)).$anchor,e.pos<t.pos!=i<0&&(e=t))),new n(e,t)}};R.jsonID(\"text\",T);var Pr=class n{constructor(e,t){this.anchor=e,this.head=t}map(e){return new n(e.map(this.anchor),e.map(this.head))}resolve(e){return T.between(e.resolve(this.anchor),e.resolve(this.head))}},M=class n extends R{constructor(e){let t=e.nodeAfter,r=e.node(0).resolve(e.pos+t.nodeSize);super(e,r),this.node=t}map(e,t){let{deleted:r,pos:i}=t.mapResult(this.anchor),s=e.resolve(i);return r?R.near(s):new n(s)}content(){return new v(x.from(this.node),0,0)}eq(e){return e instanceof n&&e.anchor==this.anchor}toJSON(){return{type:\"node\",anchor:this.anchor}}getBookmark(){return new Os(this.anchor)}static fromJSON(e,t){if(typeof t.anchor!=\"number\")throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");return new n(e.resolve(t.anchor))}static create(e,t){return new n(e.resolve(t))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}};M.prototype.visible=!1;R.jsonID(\"node\",M);var Os=class n{constructor(e){this.anchor=e}map(e){let{deleted:t,pos:r}=e.mapResult(this.anchor);return t?new Pr(r,r):new n(r)}resolve(e){let t=e.resolve(this.anchor),r=t.nodeAfter;return r&&M.isSelectable(r)?new M(t):R.near(t)}},ce=class n extends R{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,t=v.empty){if(t==v.empty){e.delete(0,e.doc.content.size);let r=R.atStart(e.doc);r.eq(e.selection)||e.setSelection(r)}else super.replace(e,t)}toJSON(){return{type:\"all\"}}static fromJSON(e){return new n(e)}map(e){return new n(e)}eq(e){return e instanceof n}getBookmark(){return Jh}};R.jsonID(\"all\",ce);var Jh={map(){return this},resolve(n){return new ce(n)}};function Ut(n,e,t,r,i,s=!1){if(e.inlineContent)return T.create(n,t);for(let o=r-(i>0?0:1);i>0?o<e.childCount:o>=0;o+=i){let l=e.child(o);if(l.isAtom){if(!s&&M.isSelectable(l))return M.create(n,t-(i<0?l.nodeSize:0))}else{let a=Ut(n,l,t+i,i<0?l.childCount:0,i,s);if(a)return a}t+=l.nodeSize*i}return null}function ja(n,e,t){let r=n.steps.length-1;if(r<e)return;let i=n.steps[r];if(!(i instanceof K||i instanceof q))return;let s=n.mapping.maps[r],o;s.forEach((l,a,c,d)=>{o==null&&(o=d)}),n.setSelection(R.near(n.doc.resolve(o),t))}var Wa=1,Dr=2,Ua=4,Is=class extends Vt{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){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}setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError(\"Selection passed to setSelection must point at the current document\");return this.curSelection=e,this.curSelectionFor=this.steps.length,this.updated=(this.updated|Wa)&~Dr,this.storedMarks=null,this}get selectionSet(){return(this.updated&Wa)>0}setStoredMarks(e){return this.storedMarks=e,this.updated|=Dr,this}ensureMarks(e){return P.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&Dr)>0}addStep(e,t){super.addStep(e,t),this.updated=this.updated&~Dr,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let r=this.selection;return t&&(e=e.mark(this.storedMarks||(r.empty?r.$from.marks():r.$from.marksAcross(r.$to)||P.none))),r.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,r){let i=this.doc.type.schema;if(t==null)return e?this.replaceSelectionWith(i.text(e),!0):this.deleteSelection();{if(r==null&&(r=t),!e)return this.deleteRange(t,r);let s=this.storedMarks;if(!s){let o=this.doc.resolve(t);s=r==t?o.marks():o.marksAcross(this.doc.resolve(r))}return this.replaceRangeWith(t,r,i.text(e,s)),!this.selection.empty&&this.selection.to==t+e.length&&this.setSelection(R.near(this.selection.$to)),this}}setMeta(e,t){return this.meta[typeof e==\"string\"?e:e.key]=t,this}getMeta(e){return this.meta[typeof e==\"string\"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=Ua,this}get scrolledIntoView(){return(this.updated&Ua)>0}};function Ka(n,e){return!e||!n?n:n.bind(e)}var xt=class{constructor(e,t,r){this.name=e,this.init=Ka(t.init,r),this.apply=Ka(t.apply,r)}},Xh=[new xt(\"doc\",{init(n){return n.doc||n.schema.topNodeType.createAndFill()},apply(n){return n.doc}}),new xt(\"selection\",{init(n,e){return n.selection||R.atStart(e.doc)},apply(n){return n.selection}}),new xt(\"storedMarks\",{init(n){return n.storedMarks||null},apply(n,e,t,r){return r.selection.$cursor?n.storedMarks:null}}),new xt(\"scrollToSelection\",{init(){return 0},apply(n,e){return n.scrolledIntoView?e+1:e}})],An=class{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=Xh.slice(),t&&t.forEach(r=>{if(this.pluginsByKey[r.key])throw new RangeError(\"Adding different instances of a keyed plugin (\"+r.key+\")\");this.plugins.push(r),this.pluginsByKey[r.key]=r,r.spec.state&&this.fields.push(new xt(r.key,r.spec.state,r))})}},kt=class n{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let r=0;r<this.config.plugins.length;r++)if(r!=t){let i=this.config.plugins[r];if(i.spec.filterTransaction&&!i.spec.filterTransaction.call(i,e,this))return!1}return!0}applyTransaction(e){if(!this.filterTransaction(e))return{state:this,transactions:[]};let t=[e],r=this.applyInner(e),i=null;for(;;){let s=!1;for(let o=0;o<this.config.plugins.length;o++){let l=this.config.plugins[o];if(l.spec.appendTransaction){let a=i?i[o].n:0,c=i?i[o].state:this,d=a<t.length&&l.spec.appendTransaction.call(l,a?t.slice(a):t,c,r);if(d&&r.filterTransaction(d,o)){if(d.setMeta(\"appendedTransaction\",e),!i){i=[];for(let u=0;u<this.config.plugins.length;u++)i.push(u<o?{state:r,n:t.length}:{state:this,n:0})}t.push(d),r=r.applyInner(d),s=!0}i&&(i[o]={state:r,n:t.length})}}if(!s)return{state:r,transactions:t}}}applyInner(e){if(!e.before.eq(this.doc))throw new RangeError(\"Applying a mismatched transaction\");let t=new n(this.config),r=this.config.fields;for(let i=0;i<r.length;i++){let s=r[i];t[s.name]=s.apply(e,this[s.name],this,t)}return t}get tr(){return new Is(this)}static create(e){let t=new An(e.doc?e.doc.type.schema:e.schema,e.plugins),r=new n(t);for(let i=0;i<t.fields.length;i++)r[t.fields[i].name]=t.fields[i].init(e,r);return r}reconfigure(e){let t=new An(this.schema,e.plugins),r=t.fields,i=new n(t);for(let s=0;s<r.length;s++){let o=r[s].name;i[o]=this.hasOwnProperty(o)?this[o]:r[s].init(e,i)}return i}toJSON(e){let t={doc:this.doc.toJSON(),selection:this.selection.toJSON()};if(this.storedMarks&&(t.storedMarks=this.storedMarks.map(r=>r.toJSON())),e&&typeof e==\"object\")for(let r in e){if(r==\"doc\"||r==\"selection\")throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");let i=e[r],s=i.spec.state;s&&s.toJSON&&(t[r]=s.toJSON.call(i,this[i.key]))}return t}static fromJSON(e,t,r){if(!t)throw new RangeError(\"Invalid input for EditorState.fromJSON\");if(!e.schema)throw new RangeError(\"Required config field 'schema' missing\");let i=new An(e.schema,e.plugins),s=new n(i);return i.fields.forEach(o=>{if(o.name==\"doc\")s.doc=Ae.fromJSON(e.schema,t.doc);else if(o.name==\"selection\")s.selection=R.fromJSON(s.doc,t.selection);else if(o.name==\"storedMarks\")t.storedMarks&&(s.storedMarks=t.storedMarks.map(e.schema.markFromJSON));else{if(r)for(let l in r){let a=r[l],c=a.spec.state;if(a.key==o.name&&c&&c.fromJSON&&Object.prototype.hasOwnProperty.call(t,l)){s[o.name]=c.fromJSON.call(a,e,t[l],s);return}}s[o.name]=o.init(e,s)}}),s}};function qa(n,e,t){for(let r in n){let i=n[r];i instanceof Function?i=i.bind(e):r==\"handleDOMEvents\"&&(i=qa(i,e,{})),t[r]=i}return t}var O=class{constructor(e){this.spec=e,this.props={},e.props&&qa(e.props,this,this.props),this.key=e.key?e.key.key:Ja(\"plugin\")}getState(e){return e[this.key]}},Ns=Object.create(null);function Ja(n){return n in Ns?n+\"$\"+ ++Ns[n]:(Ns[n]=0,n+\"$\")}var H=class{constructor(e=\"key\"){this.key=Ja(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}};var Ga=(n,e)=>n.selection.empty?!1:(e&&e(n.tr.deleteSelection().scrollIntoView()),!0);function Ya(n,e){let{$cursor:t}=n.selection;return!t||(e?!e.endOfTextblock(\"backward\",n):t.parentOffset>0)?null:t}var Ls=(n,e,t)=>{let r=Ya(n,t);if(!r)return!1;let i=Bs(r);if(!i){let o=r.blockRange(),l=o&&je(o);return l==null?!1:(e&&e(n.tr.lift(o,l).scrollIntoView()),!0)}let s=i.nodeBefore;if(oc(n,i,e,-1))return!0;if(r.parent.content.size==0&&(Kt(s,\"end\")||M.isSelectable(s)))for(let o=r.depth;;o--){let l=Cn(n.doc,r.before(o),r.after(o),v.empty);if(l&&l.slice.size<l.to-l.from){if(e){let a=n.tr.step(l);a.setSelection(Kt(s,\"end\")?R.findFrom(a.doc.resolve(a.mapping.map(i.pos,-1)),-1):M.create(a.doc,i.pos-s.nodeSize)),e(a.scrollIntoView())}return!0}if(o==1||r.node(o-1).childCount>1)break}return s.isAtom&&i.depth==r.depth-1?(e&&e(n.tr.delete(i.pos-s.nodeSize,i.pos).scrollIntoView()),!0):!1},Qa=(n,e,t)=>{let r=Ya(n,t);if(!r)return!1;let i=Bs(r);return i?ec(n,i,e):!1},Za=(n,e,t)=>{let r=tc(n,t);if(!r)return!1;let i=$s(r);return i?ec(n,i,e):!1};function ec(n,e,t){let r=e.nodeBefore,i=r,s=e.pos-1;for(;!i.isTextblock;s--){if(i.type.spec.isolating)return!1;let d=i.lastChild;if(!d)return!1;i=d}let o=e.nodeAfter,l=o,a=e.pos+1;for(;!l.isTextblock;a++){if(l.type.spec.isolating)return!1;let d=l.firstChild;if(!d)return!1;l=d}let c=Cn(n.doc,s,a,v.empty);if(!c||c.from!=s||c instanceof K&&c.slice.size>=a-s)return!1;if(t){let d=n.tr.step(c);d.setSelection(T.create(d.doc,s)),t(d.scrollIntoView())}return!0}function Kt(n,e,t=!1){for(let r=n;r;r=e==\"start\"?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(t&&r.childCount!=1)return!1}return!1}var Ps=(n,e,t)=>{let{$head:r,empty:i}=n.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(t?!t.endOfTextblock(\"backward\",n):r.parentOffset>0)return!1;s=Bs(r)}let o=s&&s.nodeBefore;return!o||!M.isSelectable(o)?!1:(e&&e(n.tr.setSelection(M.create(n.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function Bs(n){if(!n.parent.type.spec.isolating)for(let e=n.depth-1;e>=0;e--){if(n.index(e)>0)return n.doc.resolve(n.before(e+1));if(n.node(e).type.spec.isolating)break}return null}function tc(n,e){let{$cursor:t}=n.selection;return!t||(e?!e.endOfTextblock(\"forward\",n):t.parentOffset<t.parent.content.size)?null:t}var zs=(n,e,t)=>{let r=tc(n,t);if(!r)return!1;let i=$s(r);if(!i)return!1;let s=i.nodeAfter;if(oc(n,i,e,1))return!0;if(r.parent.content.size==0&&(Kt(s,\"start\")||M.isSelectable(s))){let o=Cn(n.doc,r.before(),r.after(),v.empty);if(o&&o.slice.size<o.to-o.from){if(e){let l=n.tr.step(o);l.setSelection(Kt(s,\"start\")?R.findFrom(l.doc.resolve(l.mapping.map(i.pos)),1):M.create(l.doc,l.mapping.map(i.pos))),e(l.scrollIntoView())}return!0}}return s.isAtom&&i.depth==r.depth-1?(e&&e(n.tr.delete(i.pos,i.pos+s.nodeSize).scrollIntoView()),!0):!1},Hs=(n,e,t)=>{let{$head:r,empty:i}=n.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(t?!t.endOfTextblock(\"forward\",n):r.parentOffset<r.parent.content.size)return!1;s=$s(r)}let o=s&&s.nodeAfter;return!o||!M.isSelectable(o)?!1:(e&&e(n.tr.setSelection(M.create(n.doc,s.pos)).scrollIntoView()),!0)};function $s(n){if(!n.parent.type.spec.isolating)for(let e=n.depth-1;e>=0;e--){let t=n.node(e);if(n.index(e)+1<t.childCount)return n.doc.resolve(n.after(e+1));if(t.type.spec.isolating)break}return null}var nc=(n,e)=>{let t=n.selection,r=t instanceof M,i;if(r){if(t.node.isTextblock||!Re(n.doc,t.from))return!1;i=t.from}else if(i=Wt(n.doc,t.from,-1),i==null)return!1;if(e){let s=n.tr.join(i);r&&s.setSelection(M.create(s.doc,i-n.doc.resolve(i).nodeBefore.nodeSize)),e(s.scrollIntoView())}return!0},rc=(n,e)=>{let t=n.selection,r;if(t instanceof M){if(t.node.isTextblock||!Re(n.doc,t.to))return!1;r=t.to}else if(r=Wt(n.doc,t.to,1),r==null)return!1;return e&&e(n.tr.join(r).scrollIntoView()),!0},ic=(n,e)=>{let{$from:t,$to:r}=n.selection,i=t.blockRange(r),s=i&&je(i);return s==null?!1:(e&&e(n.tr.lift(i,s).scrollIntoView()),!0)},Fs=(n,e)=>{let{$head:t,$anchor:r}=n.selection;return!t.parent.type.spec.code||!t.sameParent(r)?!1:(e&&e(n.tr.insertText(`\n`).scrollIntoView()),!0)};function _s(n){for(let e=0;e<n.edgeCount;e++){let{type:t}=n.edge(e);if(t.isTextblock&&!t.hasRequiredAttrs())return t}return null}var Vs=(n,e)=>{let{$head:t,$anchor:r}=n.selection;if(!t.parent.type.spec.code||!t.sameParent(r))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=_s(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let l=t.after(),a=n.tr.replaceWith(l,l,o.createAndFill());a.setSelection(R.near(a.doc.resolve(l),1)),e(a.scrollIntoView())}return!0},js=(n,e)=>{let t=n.selection,{$from:r,$to:i}=t;if(t instanceof ce||r.parent.inlineContent||i.parent.inlineContent)return!1;let s=_s(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!r.parentOffset&&i.index()<i.parent.childCount?r:i).pos,l=n.tr.insert(o,s.createAndFill());l.setSelection(T.create(l.doc,o+1)),e(l.scrollIntoView())}return!0},Ws=(n,e)=>{let{$cursor:t}=n.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(ke(n.doc,s))return e&&e(n.tr.split(s).scrollIntoView()),!0}let r=t.blockRange(),i=r&&je(r);return i==null?!1:(e&&e(n.tr.lift(r,i).scrollIntoView()),!0)};function Gh(n){return(e,t)=>{if(e.selection instanceof M&&e.selection.node.isBlock){let{$from:h}=e.selection;return!h.parentOffset||!ke(e.doc,h.pos)?!1:(t&&t(e.tr.split(h.pos).scrollIntoView()),!0)}if(!e.selection.$from.depth)return!1;let r=e.tr;!e.selection.empty&&(e.selection instanceof T||e.selection instanceof ce)&&r.deleteSelection();let{$from:i}=r.selection,s=r.steps.length,o=[],l,a,c=!1,d=!1;for(let h=i.depth;;h--)if(i.node(h).isBlock){c=i.end(h)==i.pos+(i.depth-h),d=i.start(h)==i.pos-(i.depth-h),a=_s(i.node(h-1).contentMatchAt(i.indexAfter(h-1)));let m=n&&n(i.parent,c,i);o.unshift(m||(c&&a?{type:a}:null)),l=h;break}else{if(h==1)return!1;o.unshift(null)}let u=i.pos,f=ke(r.doc,u,o.length,o);if(f||(o[0]=a?{type:a}:null,f=ke(r.doc,u,o.length,o)),!f)return!1;if(r.split(u,o.length,o),!c&&d&&i.node(l).type!=a){let h=r.mapping.slice(s),p=h.map(i.before(l)),m=r.doc.resolve(p);a&&i.node(l-1).canReplaceWith(m.index(),m.index()+1,a)&&r.setNodeMarkup(h.map(i.before(l)),a)}return t&&t(r.scrollIntoView()),!0}}var Yh=Gh();var sc=(n,e)=>{let{$from:t,to:r}=n.selection,i,s=t.sharedDepth(r);return s==0?!1:(i=t.before(s),e&&e(n.tr.setSelection(M.create(n.doc,i))),!0)},Qh=(n,e)=>(e&&e(n.tr.setSelection(new ce(n.doc))),!0);function Zh(n,e,t){let r=e.nodeBefore,i=e.nodeAfter,s=e.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&e.parent.canReplace(s-1,s)?(t&&t(n.tr.delete(e.pos-r.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||Re(n.doc,e.pos))?!1:(t&&t(n.tr.join(e.pos).scrollIntoView()),!0)}function oc(n,e,t,r){let i=e.nodeBefore,s=e.nodeAfter,o,l,a=i.type.spec.isolating||s.type.spec.isolating;if(!a&&Zh(n,e,t))return!0;let c=!a&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(o=(l=i.contentMatchAt(i.childCount)).findWrapping(s.type))&&l.matchType(o[0]||s.type).validEnd){if(t){let h=e.pos+s.nodeSize,p=x.empty;for(let y=o.length-1;y>=0;y--)p=x.from(o[y].create(null,p));p=x.from(i.copy(p));let m=n.tr.step(new q(e.pos-1,h,e.pos,h,new v(p,1,0),o.length,!0)),g=m.doc.resolve(h+2*o.length);g.nodeAfter&&g.nodeAfter.type==i.type&&Re(m.doc,g.pos)&&m.join(g.pos),t(m.scrollIntoView())}return!0}let d=s.type.spec.isolating||r>0&&a?null:R.findFrom(e,1),u=d&&d.$from.blockRange(d.$to),f=u&&je(u);if(f!=null&&f>=e.depth)return t&&t(n.tr.lift(u,f).scrollIntoView()),!0;if(c&&Kt(s,\"start\",!0)&&Kt(i,\"end\")){let h=i,p=[];for(;p.push(h),!h.isTextblock;)h=h.lastChild;let m=s,g=1;for(;!m.isTextblock;m=m.firstChild)g++;if(h.canReplace(h.childCount,h.childCount,m.content)){if(t){let y=x.empty;for(let w=p.length-1;w>=0;w--)y=x.from(p[w].copy(y));let b=n.tr.step(new q(e.pos-p.length,e.pos+s.nodeSize,e.pos+g,e.pos+s.nodeSize-g,new v(y,p.length,0),0,!0));t(b.scrollIntoView())}return!0}}return!1}function lc(n){return function(e,t){let r=e.selection,i=n<0?r.$from:r.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(T.create(e.doc,n<0?i.start(s):i.end(s)))),!0):!1}}var Us=lc(-1),Ks=lc(1);function ac(n,e=null){return function(t,r){let{$from:i,$to:s}=t.selection,o=i.blockRange(s),l=o&&jt(o,n,e);return l?(r&&r(t.tr.wrap(o,l).scrollIntoView()),!0):!1}}function qs(n,e=null){return function(t,r){let i=!1;for(let s=0;s<t.selection.ranges.length&&!i;s++){let{$from:{pos:o},$to:{pos:l}}=t.selection.ranges[s];t.doc.nodesBetween(o,l,(a,c)=>{if(i)return!1;if(!(!a.isTextblock||a.hasMarkup(n,e)))if(a.type==n)i=!0;else{let d=t.doc.resolve(c),u=d.index();i=d.parent.canReplaceWith(u,u+1,n)}})}if(!i)return!1;if(r){let s=t.tr;for(let o=0;o<t.selection.ranges.length;o++){let{$from:{pos:l},$to:{pos:a}}=t.selection.ranges[o];s.setBlockType(l,a,n,e)}r(s.scrollIntoView())}return!0}}function Js(...n){return function(e,t,r){for(let i=0;i<n.length;i++)if(n[i](e,t,r))return!0;return!1}}var Ds=Js(Ga,Ls,Ps),Xa=Js(Ga,zs,Hs),rt={Enter:Js(Fs,js,Ws,Yh),\"Mod-Enter\":Vs,Backspace:Ds,\"Mod-Backspace\":Ds,\"Shift-Backspace\":Ds,Delete:Xa,\"Mod-Delete\":Xa,\"Mod-a\":Qh},ep={\"Ctrl-h\":rt.Backspace,\"Alt-Backspace\":rt[\"Mod-Backspace\"],\"Ctrl-d\":rt.Delete,\"Ctrl-Alt-Backspace\":rt[\"Mod-Delete\"],\"Alt-Delete\":rt[\"Mod-Delete\"],\"Alt-d\":rt[\"Mod-Delete\"],\"Ctrl-a\":Us,\"Ctrl-e\":Ks};for(let n in rt)ep[n]=rt[n];var xk=typeof navigator<\"u\"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<\"u\"&&os.platform?os.platform()==\"darwin\":!1;function cc(n,e=null){return function(t,r){let{$from:i,$to:s}=t.selection,o=i.blockRange(s);if(!o)return!1;let l=r?t.tr:null;return tp(l,o,n,e)?(r&&r(l.scrollIntoView()),!0):!1}}function tp(n,e,t,r=null){let i=!1,s=e,o=e.$from.doc;if(e.depth>=2&&e.$from.node(e.depth-1).type.compatibleContent(t)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let a=o.resolve(e.start-2);s=new yt(a,a,e.depth),e.endIndex<e.parent.childCount&&(e=new yt(e.$from,o.resolve(e.$to.end(e.depth)),e.depth)),i=!0}let l=jt(s,t,r,e);return l?(n&&np(n,e,l,i,t),!0):!1}function np(n,e,t,r,i){let s=x.empty;for(let d=t.length-1;d>=0;d--)s=x.from(t[d].type.create(t[d].attrs,s));n.step(new q(e.start-(r?2:0),e.end,e.start,e.end,new v(s,0,0),t.length,!0));let o=0;for(let d=0;d<t.length;d++)t[d].type==i&&(o=d+1);let l=t.length-o,a=e.start+t.length-(r?2:0),c=e.parent;for(let d=e.startIndex,u=e.endIndex,f=!0;d<u;d++,f=!1)!f&&ke(n.doc,a,l)&&(n.split(a,l),a+=2*l),a+=c.child(d).nodeSize;return n}function dc(n){return function(e,t){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,o=>o.childCount>0&&o.firstChild.type==n);return s?t?r.node(s.depth-1).type==n?rp(e,t,n,s):ip(e,t,s):!0:!1}}function rp(n,e,t,r){let i=n.tr,s=r.end,o=r.$to.end(r.depth);s<o&&(i.step(new q(s-1,o,s,o,new v(x.from(t.create(null,r.parent.copy())),1,0),1,!0)),r=new yt(i.doc.resolve(r.$from.pos),i.doc.resolve(o),r.depth));let l=je(r);if(l==null)return!1;i.lift(r,l);let a=i.doc.resolve(i.mapping.map(s,-1)-1);return Re(i.doc,a.pos)&&a.nodeBefore.type==a.nodeAfter.type&&i.join(a.pos),e(i.scrollIntoView()),!0}function ip(n,e,t){let r=n.tr,i=t.parent;for(let h=t.end,p=t.endIndex-1,m=t.startIndex;p>m;p--)h-=i.child(p).nodeSize,r.delete(h-1,h+1);let s=r.doc.resolve(t.start),o=s.nodeAfter;if(r.mapping.map(t.end)!=t.start+s.nodeAfter.nodeSize)return!1;let l=t.startIndex==0,a=t.endIndex==i.childCount,c=s.node(-1),d=s.index(-1);if(!c.canReplace(d+(l?0:1),d+1,o.content.append(a?x.empty:x.from(i))))return!1;let u=s.pos,f=u+o.nodeSize;return r.step(new q(u-(l?1:0),f+(a?1:0),u+1,f-1,new v((l?x.empty:x.from(i.copy(x.empty))).append(a?x.empty:x.from(i.copy(x.empty))),l?0:1,a?0:1),l?0:1)),e(r.scrollIntoView()),!0}function uc(n){return function(e,t){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==n);if(!s)return!1;let o=s.startIndex;if(o==0)return!1;let l=s.parent,a=l.child(o-1);if(a.type!=n)return!1;if(t){let c=a.lastChild&&a.lastChild.type==l.type,d=x.from(c?n.create():null),u=new v(x.from(n.create(null,x.from(l.type.create(null,d)))),c?3:1,0),f=s.start,h=s.end;t(e.tr.step(new q(f-(c?3:1),h,f,h,u,1,!0)).scrollIntoView())}return!0}}var ee=function(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e},Gt=function(n){let e=n.assignedSlot||n.parentNode;return e&&e.nodeType==11?e.host:e},Zs=null,Ue=function(n,e,t){let r=Zs||(Zs=document.createRange());return r.setEnd(n,t??n.nodeValue.length),r.setStart(n,e||0),r},sp=function(){Zs=null},At=function(n,e,t,r){return t&&(fc(n,e,t,r,-1)||fc(n,e,t,r,1))},op=/^(img|br|input|textarea|hr)$/i;function fc(n,e,t,r,i){for(var s;;){if(n==t&&e==r)return!0;if(e==(i<0?0:oe(n))){let o=n.parentNode;if(!o||!C(o)||zn(n)||op.test(n.nodeName)||n.contentEditable==\"false\")return!1;e=ee(n)+(i<0?0:1),n=o}else if(C(n)){let o=n.childNodes[e+(i<0?-1:0)];if(C(o)&&o.contentEditable==\"false\")if(!((s=o.pmViewDesc)===null||s===void 0)&&s.ignoreForSelection)e+=i;else return!1;else n=o,e=i<0?oe(n):0}else return!1}}function oe(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function C(n){return n.nodeType==1}function G(n){return n.nodeType==3}function Rt(n,e){return e?n.contains(C(e)?e:e.parentNode):!1}function lp(n,e){for(;;){if(G(n)&&e)return n;if(C(n)&&e>0){if(n.contentEditable==\"false\")return null;n=n.childNodes[e-1],e=oe(n)}else if(n.parentNode&&!zn(n))e=ee(n),n=n.parentNode;else return null}}function ap(n,e){for(;;){if(G(n)&&e<n.nodeValue.length)return n;if(C(n)&&e<n.childNodes.length){if(n.contentEditable==\"false\")return null;n=n.childNodes[e],e=0}else if(n.parentNode&&!zn(n))e=ee(n)+1,n=n.parentNode;else return null}}function cp(n,e,t){for(let r=e==0,i=e==oe(n);r||i;){if(n==t)return!0;let s=ee(n);if(n=n.parentNode,!n)return!1;r=r&&s==0,i=i&&s==oe(n)}}function zn(n){let e;for(let t=n;t&&!(e=t.pmViewDesc);t=t.parentNode);return e&&e.node&&e.node.isBlock&&(e.dom==n||e.contentDOM==n)}var Kr=function(n){return n.focusNode&&At(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)};function St(n,e){let t=document.createEvent(\"Event\");return t.initEvent(\"keydown\",!0,!0),t.keyCode=n,t.key=t.code=e,t}function dp(n){let e=n.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function up(n,e,t){if(n.caretPositionFromPoint)try{let r=n.caretPositionFromPoint(e,t);if(r)return{node:r.offsetNode,offset:Math.min(oe(r.offsetNode),r.offset)}}catch{}if(n.caretRangeFromPoint){let r=n.caretRangeFromPoint(e,t);if(r)return{node:r.startContainer,offset:Math.min(oe(r.startContainer),r.startOffset)}}}var Oe=typeof navigator<\"u\"?navigator:null,hc=typeof document<\"u\"?document:null,at=Oe&&Oe.userAgent||\"\",eo=/Edge\\/(\\d+)/.exec(at),Vc=/MSIE \\d/.exec(at),to=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(at),he=!!(Vc||to||eo),ot=Vc?document.documentMode:to?+to[1]:eo?+eo[1]:0,ge=!he&&/gecko\\/(\\d+)/i.test(at);ge&&+(/Firefox\\/(\\d+)/.exec(at)||[0,0])[1];var no=!he&&/Chrome\\/(\\d+)/.exec(at),te=!!no,jc=no?+no[1]:0,le=!he&&!!Oe&&/Apple Computer/.test(Oe.vendor),Yt=le&&(/Mobile\\/\\w+/.test(at)||!!Oe&&Oe.maxTouchPoints>2),Se=Yt||(Oe?/Mac/.test(Oe.platform):!1),Wc=Oe?/Win/.test(Oe.platform):!1,Ke=/Android \\d/.test(at),qr=!!hc&&\"webkitFontSmoothing\"in hc.documentElement.style,fp=qr?+(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function hp(n){let e=n.defaultView&&n.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.documentElement.clientWidth,top:0,bottom:n.documentElement.clientHeight}}function We(n,e){return typeof n==\"number\"?n:n[e]}function pp(n){let e=n.getBoundingClientRect(),t=e.width/n.offsetWidth||1,r=e.height/n.offsetHeight||1;return{left:e.left,right:e.left+n.clientWidth*t,top:e.top,bottom:e.top+n.clientHeight*r}}function pc(n,e,t){if(!ro(e)&&e.left==0)return;let r=n.someProp(\"scrollThreshold\")||0,i=n.someProp(\"scrollMargin\")||5,s=n.dom.ownerDocument;for(let o=t||n.dom;o;){if(!C(o)){o=Gt(o);continue}let l=o==s.body,a=l?hp(s):pp(o),c=0,d=0;if(e.top<a.top+We(r,\"top\")?d=-(a.top-e.top+We(i,\"top\")):e.bottom>a.bottom-We(r,\"bottom\")&&(d=e.bottom-e.top>a.bottom-a.top?e.top+We(i,\"top\")-a.top:e.bottom-a.bottom+We(i,\"bottom\")),e.left<a.left+We(r,\"left\")?c=-(a.left-e.left+We(i,\"left\")):e.right>a.right-We(r,\"right\")&&(c=e.right-a.right+We(i,\"right\")),c||d)if(l)s.defaultView.scrollBy(c,d);else{let f=o.scrollLeft,h=o.scrollTop;d&&(o.scrollTop+=d),c&&(o.scrollLeft+=c);let p=o.scrollLeft-f,m=o.scrollTop-h;e={left:e.left-p,top:e.top-m,right:e.right-p,bottom:e.bottom-m}}let u=l?\"fixed\":getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(u))break;o=u==\"absolute\"?o.offsetParent:Gt(o)}}function mp(n){let e=n.dom.getBoundingClientRect(),t=Math.max(0,e.top),r,i;for(let s=(e.left+e.right)/2,o=t+1;o<Math.min(innerHeight,e.bottom);o+=5){let l=n.root.elementFromPoint(s,o);if(!l||l==n.dom||!n.dom.contains(l))continue;let a=l.getBoundingClientRect();if(a.top>=t-20){r=l,i=a.top;break}}return{refDOM:r,refTop:i,stack:Uc(n.dom)}}function Uc(n){let e=[],t=n.ownerDocument;for(let r=n;r&&(e.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),n!=t);r=Gt(r));return e}function gp({refDOM:n,refTop:e,stack:t}){let r=n?n.getBoundingClientRect().top:0;Kc(t,r==0?0:r-e)}function Kc(n,e){for(let t=0;t<n.length;t++){let{dom:r,top:i,left:s}=n[t];r.scrollTop!=i+e&&(r.scrollTop=i+e),r.scrollLeft!=s&&(r.scrollLeft=s)}}var qt=null;function yp(n){if(n.setActive)return n.setActive();if(qt)return n.focus(qt);let e=Uc(n);n.focus(qt==null?{get preventScroll(){return qt={preventScroll:!0},!0}}:void 0),qt||(qt=!1,Kc(e,0))}function qc(n,e){let t,r=2e8,i,s=0,o=e.top,l=e.top,a,c;for(let d=n.firstChild,u=0;d;d=d.nextSibling,u++){let f;if(C(d))f=d.getClientRects();else if(G(d))f=Ue(d).getClientRects();else continue;for(let h=0;h<f.length;h++){let p=f[h];if(p.top<=o&&p.bottom>=l){o=Math.max(p.bottom,o),l=Math.min(p.top,l);let m=p.left>e.left?p.left-e.left:p.right<e.left?e.left-p.right:0;if(m<r){t=d,r=m,i=m&&G(t)?{left:p.right<e.left?p.right:p.left,top:e.top}:e,C(d)&&m&&(s=u+(e.left>=(p.left+p.right)/2?1:0));continue}}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});!t&&(e.left>=p.right&&e.top>=p.top||e.left>=p.left&&e.top>=p.bottom)&&(s=u+1)}}return!t&&a&&(t=a,i=c,r=0),t&&G(t)?bp(t,i):!t||r?{node:n,offset:s}:qc(t,i)}function bp(n,e){let t=n.nodeValue.length,r=document.createRange(),i;for(let s=0;s<t;s++){r.setEnd(n,s+1),r.setStart(n,s);let o=it(r,1);if(o.top!=o.bottom&&ko(e,o)){i={node:n,offset:s+(e.left>=(o.left+o.right)/2?1:0)};break}}return r.detach(),i||{node:n,offset:0}}function ko(n,e){return n.left>=e.left-1&&n.left<=e.right+1&&n.top>=e.top-1&&n.top<=e.bottom+1}function xp(n,e){let t=n.parentNode;return t&&/^li$/i.test(t.nodeName)&&e.left<n.getBoundingClientRect().left?t:n}function kp(n,e,t){let{node:r,offset:i}=qc(e,t),s=-1;if(C(r)&&!r.firstChild){let o=r.getBoundingClientRect();s=o.left!=o.right&&t.left>(o.left+o.right)/2?1:-1}return n.docView.posFromDOM(r,i,s)}function Sp(n,e,t,r){let i=-1;for(let s=e,o=!1;s!=n.dom;){let l=n.docView.nearestDesc(s,!0),a;if(!l)return null;if(C(l.dom)&&(l.node.isBlock&&l.parent||!l.contentDOM)&&((a=l.dom.getBoundingClientRect()).width||a.height)&&(l.node.isBlock&&l.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(l.dom.nodeName)&&(!o&&a.left>r.left||a.top>r.top?i=l.posBefore:(!o&&a.right<r.left||a.bottom<r.top)&&(i=l.posAfter),o=!0),!l.contentDOM&&i<0&&!l.node.isText))return(l.node.isBlock?r.top<(a.top+a.bottom)/2:r.left<(a.left+a.right)/2)?l.posBefore:l.posAfter;s=l.dom.parentNode}return i>-1?i:n.docView.posFromDOM(e,t,-1)}function Jc(n,e,t){let r=n.childNodes.length;if(r&&t.top<t.bottom)for(let i=Math.max(0,Math.min(r-1,Math.floor(r*(e.top-t.top)/(t.bottom-t.top))-2)),s=i;;){let o=n.childNodes[s];if(C(o)){let l=o.getClientRects();for(let a=0;a<l.length;a++){let c=l[a];if(ko(e,c))return Jc(o,e,c)}}if((s=(s+1)%r)==i)break}return n}function wp(n,e){let t=n.dom.ownerDocument,r,i=0,s=up(t,e.left,e.top);s&&({node:r,offset:i}=s);let o=(n.root.elementFromPoint?n.root:t).elementFromPoint(e.left,e.top),l;if(!o||!n.dom.contains(o)){let c=n.dom.getBoundingClientRect();if(!ko(e,c)||(o=Jc(n.dom,e,c),!o))return null}if(le)for(let c=o;r&&c;c=Gt(c))c.draggable&&(r=void 0);if(o=xp(o,e),r){if(ge&&C(r)&&(i=Math.min(i,r.childNodes.length),i<r.childNodes.length)){let d=r.childNodes[i],u;d.nodeName==\"IMG\"&&(u=d.getBoundingClientRect()).right<=e.left&&u.bottom>e.top&&i++}let c;qr&&i&&C(r)&&C(c=r.childNodes[i-1])&&c.contentEditable==\"false\"&&c.getBoundingClientRect().top>=e.top&&i--,r==n.dom&&i==r.childNodes.length-1&&C(r.lastChild)&&e.top>r.lastChild.getBoundingClientRect().bottom?l=n.state.doc.content.size:(i==0||!C(r)||r.childNodes[i-1].nodeName!=\"BR\")&&(l=Sp(n,r,i,e))}l==null&&(l=kp(n,o,e));let a=n.docView.nearestDesc(o,!0);return{pos:l,inside:a?a.posAtStart-a.border:-1}}function ro(n){return n.top<n.bottom||n.left<n.right}function it(n,e){let t=n.getClientRects();if(t.length){let r=t[e<0?0:t.length-1];if(ro(r))return r}return Array.prototype.find.call(t,ro)||n.getBoundingClientRect()}var vp=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;function Xc(n,e,t){let{node:r,offset:i,atom:s}=n.docView.domFromPos(e,t<0?-1:1),o=qr||ge;if(G(r))if(o&&(vp.test(r.nodeValue)||(t<0?!i:i==r.nodeValue.length))){let a=it(Ue(r,i,i),t);if(ge&&i&&/\\s/.test(r.nodeValue[i-1])&&i<r.nodeValue.length){let c=it(Ue(r,i-1,i-1),-1);if(c.top==a.top){let d=it(Ue(r,i,i+1),-1);if(d.top!=a.top)return Rn(d,d.left<c.left)}}return a}else{let a=i,c=i,d=t<0?1:-1;return t<0&&!i?(c++,d=-1):t>=0&&i==r.nodeValue.length?(a--,d=1):t<0?a--:c++,Rn(it(Ue(r,a,c),d),d<0)}if(!n.state.doc.resolve(e-(s||0)).parent.inlineContent){if(s==null&&i&&(t<0||i==oe(r))){let a=r.childNodes[i-1];if(C(a))return Xs(a.getBoundingClientRect(),!1)}if(s==null&&i<oe(r)){let a=r.childNodes[i];if(C(a))return Xs(a.getBoundingClientRect(),!0)}return Xs(r.getBoundingClientRect(),t>=0)}if(s==null&&i&&(t<0||i==oe(r))){let a=r.childNodes[i-1],c=G(a)?Ue(a,oe(a)-(o?0:1)):C(a)&&(a.nodeName!=\"BR\"||!a.nextSibling)?a:null;if(c)return Rn(it(c,1),!1)}if(s==null&&i<oe(r)){let a=r.childNodes[i];for(;a.pmViewDesc&&a.pmViewDesc.ignoreForCoords;)a=a.nextSibling;let c=a?G(a)?Ue(a,0,o?0:1):C(a)?a:null:null;if(c)return Rn(it(c,-1),!0)}return Rn(it(G(r)?Ue(r):r,-t),t>=0)}function Rn(n,e){if(n.width==0)return n;let t=e?n.left:n.right;return{top:n.top,bottom:n.bottom,left:t,right:t}}function Xs(n,e){if(n.height==0)return n;let t=e?n.top:n.bottom;return{top:t,bottom:t,left:n.left,right:n.right}}function Gc(n,e,t){let r=n.state,i=n.root.activeElement;r!=e&&n.updateState(e),i!=n.dom&&n.focus();try{return t()}finally{r!=e&&n.updateState(r),i!=n.dom&&i&&i.focus()}}function Tp(n,e,t){let r=e.selection,i=t==\"up\"?r.$from:r.$to;return Gc(n,e,()=>{let{node:s}=n.docView.domFromPos(i.pos,t==\"up\"?-1:1);for(;;){let l=n.docView.nearestDesc(s,!0);if(!l)break;if(l.node.isBlock){s=l.contentDOM||l.dom;break}s=l.dom.parentNode}let o=Xc(n,i.pos,1);for(let l=s.firstChild;l;l=l.nextSibling){let a;if(C(l))a=l.getClientRects();else if(G(l))a=Ue(l,0,l.nodeValue.length).getClientRects();else continue;for(let c=0;c<a.length;c++){let d=a[c];if(d.bottom>d.top+1&&(t==\"up\"?o.top-d.top>(d.bottom-o.top)*2:d.bottom-o.bottom>(o.bottom-d.top)*2))return!1}}return!0})}var Ep=/[\\u0590-\\u08ac]/;function Mp(n,e,t){let{$head:r}=e.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,s=!i,o=i==r.parent.content.size,l=n.domSelection();return l?!Ep.test(r.parent.textContent)||!l.modify?t==\"left\"||t==\"backward\"?s:o:Gc(n,e,()=>{let{focusNode:a,focusOffset:c,anchorNode:d,anchorOffset:u}=n.domSelectionRange(),f=l.caretBidiLevel;l.modify(\"move\",t,\"character\");let h=r.depth?n.docView.domAfterPos(r.before()):n.dom,{focusNode:p,focusOffset:m}=n.domSelectionRange(),g=p&&!Rt(h,p)||a==p&&c==m;try{l.collapse(d,u),a&&(a!=d||c!=u)&&l.extend&&l.extend(a,c)}catch{}return f!=null&&(l.caretBidiLevel=f),g}):r.pos==r.start()||r.pos==r.end()}var mc=null,gc=null,yc=!1;function Cp(n,e,t){return mc==e&&gc==t?yc:(mc=e,gc=t,yc=t==\"up\"||t==\"down\"?Tp(n,e,t):Mp(n,e,t))}var we=0,bc=1,wt=2,Ne=3,Nt=class{constructor(e,t,r,i){this.parent=e,this.children=t,this.dom=r,this.contentDOM=i,this.dirty=we,r.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,r){return!1}matchesHack(e){return!1}parseRule(e){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;t<this.children.length;t++)e+=this.children[t].size;return e}get border(){return 0}destroy(){this.parent=void 0,this.dom.pmViewDesc==this&&(this.dom.pmViewDesc=void 0);for(let e=0;e<this.children.length;e++)this.children[e].destroy()}posBeforeChild(e){for(let t=0,r=this.posAtStart;;t++){let i=this.children[t];if(i==e)return r;r+=i.size}}get posBefore(){return this.parent.posBeforeChild(this)}get posAtStart(){return this.parent?this.parent.posBeforeChild(this)+this.border:0}get posAfter(){return this.posBefore+this.size}get posAtEnd(){return this.posAtStart+this.size-2*this.border}localPosFromDOM(e,t,r){if(this.contentDOM&&Rt(this.contentDOM,e))if(r<0){let s,o;if(e==this.contentDOM)s=e.childNodes[t-1];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;s=e.previousSibling}for(;s&&!((o=s.pmViewDesc)&&o.parent==this);)s=s.previousSibling;return s?this.posBeforeChild(o)+o.size:this.posAtStart}else{let s,o;if(e==this.contentDOM)s=e.childNodes[t];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;s=e.nextSibling}for(;s&&!((o=s.pmViewDesc)&&o.parent==this);)s=s.nextSibling;return s?this.posBeforeChild(o):this.posAtEnd}let i;if(e==this.dom&&this.contentDOM)i=t>ee(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))i=!!(e.compareDocumentPosition(this.contentDOM)&4);else if(this.dom.firstChild){if(t==0)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!1;break}if(s.previousSibling)break}if(i==null&&t==e.childNodes.length)for(let s=e;;s=s.parentNode){if(s==this.dom){i=!0;break}if(s.nextSibling)break}}return i??r>0?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let r=!0,i=e;i;i=i.parentNode){let s=this.getDesc(i),o;if(s&&(!t||s.node))if(r&&(o=s.nodeDOM)&&!(C(o)?Rt(o,e):o==e))r=!1;else return s}}getDesc(e){let t=e.pmViewDesc;for(let r=t;r;r=r.parent)if(r==this)return t}posFromDOM(e,t,r){for(let i=e;i;i=i.parentNode){let s=this.getDesc(i);if(s)return s.localPosFromDOM(e,t,r)}return-1}descAt(e){for(let t=0,r=0;t<this.children.length;t++){let i=this.children[t],s=r+i.size;if(r==e&&s!=r){for(;!i.border&&i.children.length;)for(let o=0;o<i.children.length;o++){let l=i.children[o];if(l.size){i=l;break}}return i}if(e<s)return i.descAt(e-r-i.border);r=s}}domFromPos(e,t){if(!this.contentDOM)return{node:this.dom,offset:0,atom:e+1};let r=0,i=0;for(let s=0;r<this.children.length;r++){let o=this.children[r],l=s+o.size;if(l>e){i=e-s;break}s=l}if(i)return this.children[r].domFromPos(i-this.children[r].border,t);for(;r>0;r--){let s=this.children[r-1];if(s.size||!(s instanceof Hr||s instanceof Br&&s.side>=0))break}if(t<=0){let s,o=!0;for(;s=r?this.children[r-1]:null,!(!s||s.dom.parentNode==this.contentDOM);r--,o=!1);return s&&t&&o&&!s.border&&!s.domAtom?s.domFromPos(s.size,t):{node:this.contentDOM,offset:s?ee(s.dom)+1:0}}else{let s,o=!0;for(;s=r<this.children.length?this.children[r]:null,!(!s||s.dom.parentNode==this.contentDOM);r++,o=!1);return s&&o&&!s.border&&!s.domAtom?s.domFromPos(0,t):{node:this.contentDOM,offset:s?ee(s.dom):this.contentDOM.childNodes.length}}}parseRange(e,t,r=0){if(this.children.length==0)return{node:this.contentDOM,from:e,to:t,fromOffset:0,toOffset:this.contentDOM.childNodes.length};let i=-1,s=-1;for(let o=r,l=0;;l++){let a=this.children[l],c=o+a.size;if(i==-1&&e<=c){let d=o+a.border;if(e>=d&&t<=c-a.border&&a.node&&a.contentDOM&&this.contentDOM.contains(a.contentDOM))return a.parseRange(e,t,d);e=o;for(let u=l;u>0;u--){let f=this.children[u-1];if(f.size&&f.dom.parentNode==this.contentDOM&&!f.emptyChildAt(1)){i=ee(f.dom)+1;break}e-=f.size}i==-1&&(i=0)}if(i>-1&&(c>t||l==this.children.length-1)){t=c;for(let d=l+1;d<this.children.length;d++){let u=this.children[d];if(u.size&&u.dom.parentNode==this.contentDOM&&!u.emptyChildAt(-1)){s=ee(u.dom);break}t+=u.size}s==-1&&(s=this.contentDOM.childNodes.length);break}o=c}return{node:this.contentDOM,from:e,to:t,fromOffset:i,toOffset:s}}emptyChildAt(e){if(this.border||!this.contentDOM||!this.children.length)return!1;let t=this.children[e<0?0:this.children.length-1];return t.size==0||t.emptyChildAt(e)}domAfterPos(e){let{node:t,offset:r}=this.domFromPos(e,0);if(!C(t)||r==t.childNodes.length)throw new RangeError(\"No node after pos \"+e);return t.childNodes[r]}setSelection(e,t,r,i=!1){let s=Math.min(e,t),o=Math.max(e,t);for(let h=0,p=0;h<this.children.length;h++){let m=this.children[h],g=p+m.size;if(s>p&&o<g)return m.setSelection(e-p-m.border,t-p-m.border,r,i);p=g}let l=this.domFromPos(e,e?-1:1),a=t==e?l:this.domFromPos(t,t?-1:1),c=r.root.getSelection(),d=r.domSelectionRange(),u=!1;if((ge||le)&&e==t){let{node:h,offset:p}=l;if(G(h)){if(u=!!(p&&h.nodeValue[p-1]==`\n`),u&&p==h.nodeValue.length)for(let m=h,g;m;m=m.parentNode){if(g=m.nextSibling){g.nodeName==\"BR\"&&(l=a={node:g.parentNode,offset:ee(g)+1});break}let y=m.pmViewDesc;if(y&&y.node&&y.node.isBlock)break}}else{let m=h.childNodes[p-1];u=m&&(m.nodeName==\"BR\"||m.contentEditable==\"false\")}}if(ge&&d.focusNode&&d.focusNode!=a.node&&C(d.focusNode)){let h=d.focusNode.childNodes[d.focusOffset];h&&h.contentEditable==\"false\"&&(i=!0)}if(!(i||u&&le)&&At(l.node,l.offset,d.anchorNode,d.anchorOffset)&&At(a.node,a.offset,d.focusNode,d.focusOffset))return;let f=!1;if((c.extend||e==t)&&!(u&&ge)){c.collapse(l.node,l.offset);try{e!=t&&c.extend(a.node,a.offset),f=!0}catch{}}if(!f){if(e>t){let p=l;l=a,a=p}let h=document.createRange();h.setEnd(a.node,a.offset),h.setStart(l.node,l.offset),c.removeAllRanges(),c.addRange(h)}}ignoreMutation(e){return!this.contentDOM&&e.type!=\"selection\"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let r=0,i=0;i<this.children.length;i++){let s=this.children[i],o=r+s.size;if(r==o?e<=o&&t>=r:e<o&&t>r){let l=r+s.border,a=o-s.border;if(e>=l&&t<=a){this.dirty=e==r||t==o?wt:bc,e==l&&t==a&&(s.contentLost||s.dom.parentNode!=this.contentDOM)?s.dirty=Ne:s.markDirty(e-l,t-l);return}else s.dirty=s.dom==s.contentDOM&&s.dom.parentNode==this.contentDOM&&!s.children.length?wt:Ne}r=o}this.dirty=wt}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let r=e==1?wt:bc;t.dirty<r&&(t.dirty=r)}}get domAtom(){return!1}get ignoreForCoords(){return!1}get ignoreForSelection(){return!1}isText(e){return!1}},Br=class extends Nt{constructor(e,t,r,i){let s,o=t.type.toDOM;if(typeof o==\"function\"&&(o=o(r,()=>{if(!s)return i;if(s.parent)return s.parent.posBeforeChild(s)})),!t.type.spec.raw){let l=C(o)?o:document.createElement(\"span\");l!=o&&l.appendChild(o),l.hasAttribute(\"contenteditable\")||(l.contentEditable=\"false\"),l.classList.add(\"ProseMirror-widget\")}super(e,[],o,null),this.widget=t,this.widget=t,s=this}matchesWidget(e){return this.dirty==we&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return t?t(e):!1}ignoreMutation(e){return e.type!=\"selection\"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}},io=class extends Nt{constructor(e,t,r,i){super(e,[],t,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(e,t){return e!=this.textDOM?this.posAtStart+(t?this.size:0):this.posAtStart+t}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type===\"characterData\"&&e.target.nodeValue==e.oldValue}},Tt=class n extends Nt{constructor(e,t,r,i,s){super(e,[],r,i),this.mark=t,this.spec=s}static create(e,t,r,i){let s=i.nodeViews[t.type.name],o=s&&s(t,i,r);return(!o||!o.dom)&&(o=Fe.renderSpec(document,t.type.spec.toDOM(t,r),null,t.attrs)),new n(e,t,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&Ne||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=Ne&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),this.dirty!=we){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty<this.dirty&&(r.dirty=this.dirty),this.dirty=we}}slice(e,t,r){let i=n.create(this.parent,this.mark,!0,r),s=this.children,o=this.size;t<o&&(s=ao(s,t,o,r)),e>0&&(s=ao(s,0,e,r));for(let l=0;l<s.length;l++)s[l].parent=i;return i.children=s,i}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}},lt=class n extends Nt{constructor(e,t,r,i,s,o,l){super(e,[],s,o),this.node=t,this.outerDeco=r,this.innerDeco=i,this.nodeDOM=l}static create(e,t,r,i,s,o){let l=s.nodeViews[t.type.name],a,c=l&&l(t,s,()=>{if(!a)return o;if(a.parent)return a.parent.posBeforeChild(a)},r,i),d=c&&c.dom,u=c&&c.contentDOM;if(t.isText){if(!d)d=document.createTextNode(t.text);else if(!G(d))throw new RangeError(\"Text must be rendered as a DOM text node\")}else d||({dom:d,contentDOM:u}=Fe.renderSpec(document,t.type.spec.toDOM(t),null,t.attrs));!u&&!t.isText&&d.nodeName!=\"BR\"&&(d.hasAttribute(\"contenteditable\")||(d.contentEditable=\"false\"),t.type.spec.draggable&&(d.draggable=!0));let f=d;return d=Zc(d,r,t),c?a=new so(e,t,r,i,d,u||null,f,c):t.isText?new zr(e,t,r,i,d,f):new n(e,t,r,i,d,u||null,f)}parseRule(e){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace==\"pre\"&&(t.preserveWhitespace=\"full\"),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let r=this.children.length-1;r>=0;r--){let i=this.children[r];if(this.dom.contains(i.dom.parentNode)){t.contentElement=i.dom.parentNode;break}}if(!t.contentElement){let r=e&&e.find(i=>C(i)&&e.indexOf(i.parentNode)<0&&this.dom.contains(i));r?t.contentElement=r:t.getContent=()=>x.empty}}return t}matchesNode(e,t,r){return this.dirty==we&&e.eq(this.node)&&$r(t,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,t){let r=this.node.inlineContent,i=t,s=e.composing?this.localCompositionInfo(e,t):null,o=s&&s.pos>-1?s:null,l=s&&s.pos<0,a=new lo(this,o&&o.node,e),c=this.node.inlineContent,d=c&&this.node.isBlock;Op(this.node,this.innerDeco,(u,f,h)=>{u.spec.marks?a.syncToMarks(u.spec.marks,r,e,f):u.type.side>=0&&!h&&a.syncToMarks(f==this.node.childCount?P.none:this.node.child(f).marks,r,e,f),a.placeWidget(u,e,i)},(u,f,h,p)=>{a.syncToMarks(u.marks,r,e,p),d&&u.isAtom&&!u.isText&&a.addHackNode(\"IMG\",a.top);let m;a.findNodeMatch(u,f,h,p)||l&&e.state.selection.from>i&&e.state.selection.to<i+u.nodeSize&&(m=a.findIndexWithChild(s.node))>-1&&a.updateNodeAt(u,f,h,m,e)||a.updateNextNode(u,f,h,e,p,i)||a.addNode(u,f,h,e,i),i+=u.nodeSize,c&&(d=u.isAtom&&!u.isText)}),a.syncToMarks([],r,e,0),this.node.isTextblock&&a.addTextblockHacks(),a.destroyRest(),(a.changed||this.dirty==wt)&&(o&&this.protectLocalComposition(e,o),Yc(this.contentDOM,this.children,e),Yt&&Ip(this.dom))}localCompositionInfo(e,t){let{from:r,to:i}=e.state.selection;if(!(e.state.selection instanceof T)||r<t||i>t+this.node.content.size)return null;let s=e.input.compositionNode;if(!s||!this.dom.contains(s.parentNode))return null;if(this.node.inlineContent){let o=s.nodeValue,l=Dp(this.node.content,o,r-t,i-t);return l<0?null:{node:s,pos:l,text:o}}else return{node:s,pos:-1,text:\"\"}}protectLocalComposition(e,{node:t,pos:r,text:i}){if(this.getDesc(t))return;let s=t;for(;s.parentNode!=this.contentDOM;s=s.parentNode){for(;s.previousSibling;)s.parentNode.removeChild(s.previousSibling);for(;s.nextSibling;)s.parentNode.removeChild(s.nextSibling);s.pmViewDesc&&(s.pmViewDesc=void 0)}let o=new io(this,s,t,i);e.input.compositionNodes.push(o),this.children=ao(this.children,r,r+i.length,e,o)}update(e,t,r,i){return this.dirty==Ne||!e.sameMarkup(this.node)?!1:(this.updateInner(e,t,r,i),!0)}updateInner(e,t,r,i){this.updateOuterDeco(t),this.node=e,this.innerDeco=r,this.contentDOM&&this.updateChildren(i,this.posAtStart),this.dirty=we}updateOuterDeco(e){if($r(e,this.outerDeco))return;let t=!C(this.nodeDOM),r=this.dom;this.dom=Qc(this.dom,this.nodeDOM,oo(this.outerDeco,this.node,t),oo(e,this.node,t)),this.dom!=r&&(r.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){C(this.nodeDOM)&&(this.nodeDOM.classList.add(\"ProseMirror-selectednode\"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){C(this.nodeDOM)&&(this.nodeDOM.classList.remove(\"ProseMirror-selectednode\"),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute(\"draggable\"))}get domAtom(){return this.node.isAtom}};function xc(n,e,t,r,i){Zc(r,e,n);let s=new lt(void 0,n,e,t,r,r,r);return s.contentDOM&&s.updateChildren(i,0),s}var zr=class n extends lt{constructor(e,t,r,i,s,o){super(e,t,r,i,s,null,o)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,r,i){return this.dirty==Ne||this.dirty!=we&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(t),(this.dirty!=we||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,i.trackWrites==this.nodeDOM&&(i.trackWrites=null)),this.node=e,this.dirty=we,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,r){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,r)}ignoreMutation(e){return e.type!=\"characterData\"&&e.type!=\"selection\"}slice(e,t,r){let i=this.node.cut(e,t),s=document.createTextNode(i.text);return new n(this.parent,i,this.outerDeco,this.innerDeco,s,s)}markDirty(e,t){super.markDirty(e,t),this.dom!=this.nodeDOM&&(e==0||t==this.nodeDOM.nodeValue.length)&&(this.dirty=Ne)}get domAtom(){return!1}isText(e){return this.node.text==e}},Hr=class extends Nt{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==we&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName==\"IMG\"}},so=class extends lt{constructor(e,t,r,i,s,o,l,a){super(e,t,r,i,s,o,l),this.spec=a}update(e,t,r,i){if(this.dirty==Ne)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let s=this.spec.update(e,t,r);return s&&this.updateInner(e,t,r,i),s}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,t,r,i)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,r,i){this.spec.setSelection?this.spec.setSelection(e,t,r.root):super.setSelection(e,t,r,i)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}};function Yc(n,e,t){let r=n.firstChild,i=!1;for(let s=0;s<e.length;s++){let o=e[s],l=o.dom;if(l.parentNode==n){for(;l!=r;)r=kc(r),i=!0;r=r.nextSibling}else i=!0,n.insertBefore(l,r);if(o instanceof Tt){let a=r?r.previousSibling:n.lastChild;Yc(o.contentDOM,o.children,t),r=a?a.nextSibling:n.firstChild}}for(;r;)r=kc(r),i=!0;i&&t.trackWrites==n&&(t.trackWrites=null)}var On=function(n){n&&(this.nodeName=n)};On.prototype=Object.create(null);var vt=[new On];function oo(n,e,t){if(n.length==0)return vt;let r=t?vt[0]:new On,i=[r];for(let s=0;s<n.length;s++){let o=n[s].type.attrs;if(o){o.nodeName&&i.push(r=new On(o.nodeName));for(let l in o){let a=o[l];a!=null&&(t&&i.length==1&&i.push(r=new On(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))}}}return i}function Qc(n,e,t,r){if(t==vt&&r==vt)return e;let i=e;for(let s=0;s<r.length;s++){let o=r[s],l=t[s];if(s){let a;l&&l.nodeName==o.nodeName&&i!=n&&(a=i.parentNode)&&a.nodeName.toLowerCase()==o.nodeName||(a=document.createElement(o.nodeName),a.pmIsDeco=!0,a.appendChild(i),l=vt[0]),i=a}Ap(i,l||vt[0],o)}return i}function Ap(n,e,t){for(let r in e)r!=\"class\"&&r!=\"style\"&&r!=\"nodeName\"&&!(r in t)&&n.removeAttribute(r);for(let r in t)r!=\"class\"&&r!=\"style\"&&r!=\"nodeName\"&&t[r]!=e[r]&&n.setAttribute(r,t[r]);if(e.class!=t.class){let r=e.class?e.class.split(\" \").filter(Boolean):[],i=t.class?t.class.split(\" \").filter(Boolean):[];for(let s=0;s<r.length;s++)i.indexOf(r[s])==-1&&n.classList.remove(r[s]);for(let s=0;s<i.length;s++)r.indexOf(i[s])==-1&&n.classList.add(i[s]);n.classList.length==0&&n.removeAttribute(\"class\")}if(e.style!=t.style){if(e.style){let r=/\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g,i;for(;i=r.exec(e.style);)n.style.removeProperty(i[1])}t.style&&(n.style.cssText+=t.style)}}function Zc(n,e,t){return Qc(n,n,vt,oo(e,t,!C(n)))}function $r(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++)if(!n[t].type.eq(e[t].type))return!1;return!0}function kc(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}var lo=class{constructor(e,t,r){this.lock=t,this.view=r,this.index=0,this.stack=[],this.changed=!1,this.top=e,this.preMatch=Rp(e.node.content,e)}destroyBetween(e,t){if(e!=t){for(let r=e;r<t;r++)this.top.children[r].destroy();this.top.children.splice(e,t-e),this.changed=!0}}destroyRest(){this.destroyBetween(this.index,this.top.children.length)}syncToMarks(e,t,r,i){let s=0,o=this.stack.length>>1,l=Math.min(o,e.length);for(;s<l&&(s==o-1?this.top:this.stack[s+1<<1]).matchesMark(e[s])&&e[s].type.spec.spanning!==!1;)s++;for(;s<o;)this.destroyRest(),this.top.dirty=we,this.index=this.stack.pop(),this.top=this.stack.pop(),o--;for(;o<e.length;){this.stack.push(this.top,this.index+1);let a=-1,c=this.top.children.length;i<this.preMatch.index&&(c=Math.min(this.index+3,c));for(let d=this.index;d<c;d++){let u=this.top.children[d];if(u.matchesMark(e[o])&&!this.isLocked(u.dom)){a=d;break}}if(a<0&&this.index<this.top.children.length){let d=this.top.children[this.index];d instanceof Tt&&d.dirty!=Ne&&d.mark.type==e[o].type&&d.spec.update&&!this.isLocked(d.dom)&&d.spec.update(e[o])&&(d.mark=e[o],a=this.index,this.changed=!0)}if(a>-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{let d=Tt.create(this.top,e[o],t,r);this.top.children.splice(this.index,0,d),this.top=d,this.changed=!0}this.index=0,o++}}findNodeMatch(e,t,r,i){let s=-1,o;if(i>=this.preMatch.index&&(o=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&o.matchesNode(e,t,r))s=this.top.children.indexOf(o,this.index);else for(let l=this.index,a=Math.min(this.top.children.length,l+5);l<a;l++){let c=this.top.children[l];if(c.matchesNode(e,t,r)&&!this.preMatch.matched.has(c)){s=l;break}}return s<0?!1:(this.destroyBetween(this.index,s),this.index++,!0)}updateNodeAt(e,t,r,i,s){let o=this.top.children[i];return o.dirty==Ne&&o.dom==o.contentDOM&&(o.dirty=wt),o.update(e,t,r,s)?(this.destroyBetween(this.index,i),this.index++,!0):!1}findIndexWithChild(e){for(;;){let t=e.parentNode;if(!t)return-1;if(t==this.top.contentDOM){let r=e.pmViewDesc;if(r){for(let i=this.index;i<this.top.children.length;i++)if(this.top.children[i]==r)return i}return-1}e=t}}updateNextNode(e,t,r,i,s,o){for(let l=this.index;l<this.top.children.length;l++){let a=this.top.children[l];if(a instanceof lt){let c=this.preMatch.matched.get(a);if(c!=null&&c!=s)return!1;let d=a.dom,u,f=this.isLocked(d)&&!(e.isText&&a.node&&a.node.isText&&a.nodeDOM.nodeValue==e.text&&a.dirty!=Ne&&$r(t,a.outerDeco));if(!f&&a.update(e,t,r,i))return this.destroyBetween(this.index,l),a.dom!=d&&(this.changed=!0),this.index++,!0;if(!f&&(u=this.recreateWrapper(a,e,t,r,i,o)))return this.destroyBetween(this.index,l),this.top.children[this.index]=u,u.contentDOM&&(u.dirty=wt,u.updateChildren(i,o+1),u.dirty=we),this.changed=!0,this.index++,!0;break}}return!1}recreateWrapper(e,t,r,i,s,o){if(e.dirty||t.isAtom||!e.children.length||!e.node.content.eq(t.content)||!$r(r,e.outerDeco)||!i.eq(e.innerDeco))return null;let l=lt.create(this.top,t,r,i,s,o);if(l.contentDOM){l.children=e.children,e.children=[];for(let a of l.children)a.parent=l}return e.destroy(),l}addNode(e,t,r,i,s){let o=lt.create(this.top,e,t,r,i,s);o.contentDOM&&o.updateChildren(i,s+1),this.top.children.splice(this.index++,0,o),this.changed=!0}placeWidget(e,t,r){let i=this.index<this.top.children.length?this.top.children[this.index]:null;if(i&&i.matchesWidget(e)&&(e==i.widget||!i.widget.type.toDOM.parentNode))this.index++;else{let s=new Br(this.top,e,t,r);this.top.children.splice(this.index++,0,s),this.changed=!0}}addTextblockHacks(){let e=this.top.children[this.index-1],t=this.top;for(;e instanceof Tt;)t=e,e=t.children[t.children.length-1];(!e||!(e instanceof zr)||/\\n$/.test(e.node.text)||this.view.requiresGeckoHackNode&&/\\s$/.test(e.node.text))&&((le||te)&&e&&e.dom.contentEditable==\"false\"&&this.addHackNode(\"IMG\",t),this.addHackNode(\"BR\",this.top))}addHackNode(e,t){if(t==this.top&&this.index<t.children.length&&t.children[this.index].matchesHack(e))this.index++;else{let r=document.createElement(e);e==\"IMG\"&&(r.className=\"ProseMirror-separator\",r.alt=\"\"),e==\"BR\"&&(r.className=\"ProseMirror-trailingBreak\");let i=new Hr(this.top,[],r,null);t!=this.top?t.children.push(i):t.children.splice(this.index++,0,i),this.changed=!0}}isLocked(e){return this.lock&&(e==this.lock||C(e)&&e.contains(this.lock.parentNode))}};function Rp(n,e){let t=e,r=t.children.length,i=n.childCount,s=new Map,o=[];e:for(;i>0;){let l;for(;;)if(r){let c=t.children[r-1];if(c instanceof Tt)t=c,r=c.children.length;else{l=c,r--;break}}else{if(t==e)break e;r=t.parent.children.indexOf(t),t=t.parent}let a=l.node;if(a){if(a!=n.child(i-1))break;--i,s.set(l,i),o.push(l)}}return{index:i,matched:s,matches:o.reverse()}}function Np(n,e){return n.type.side-e.type.side}function Op(n,e,t,r){let i=e.locals(n),s=0;if(i.length==0){for(let c=0;c<n.childCount;c++){let d=n.child(c);r(d,i,e.forChild(s,d),c),s+=d.nodeSize}return}let o=0,l=[],a=null;for(let c=0;;){let d,u;for(;o<i.length&&i[o].to==s;){let g=i[o++];g.widget&&(d?(u||(u=[d])).push(g):d=g)}if(d)if(u){u.sort(Np);for(let g=0;g<u.length;g++)t(u[g],c,!!a)}else t(d,c,!!a);let f,h;if(a)h=-1,f=a,a=null;else if(c<n.childCount)h=c,f=n.child(c++);else break;for(let g=0;g<l.length;g++)l[g].to<=s&&l.splice(g--,1);for(;o<i.length&&i[o].from<=s&&i[o].to>s;)l.push(i[o++]);let p=s+f.nodeSize;if(f.isText){let g=p;o<i.length&&i[o].from<g&&(g=i[o].from);for(let y=0;y<l.length;y++)l[y].to<g&&(g=l[y].to);g<p&&(a=f.cut(g-s),f=f.cut(0,g-s),p=g,h=-1)}else for(;o<i.length&&i[o].to<p;)o++;let m=f.isInline&&!f.isLeaf?l.filter(g=>!g.inline):l.slice();r(f,m,e.forChild(s,f),h),s=p}}function Ip(n){if(n.nodeName==\"UL\"||n.nodeName==\"OL\"){let e=n.style.cssText;n.style.cssText=e+\"; list-style: square !important\",window.getComputedStyle(n).listStyle,n.style.cssText=e}}function Dp(n,e,t,r){for(let i=0,s=0;i<n.childCount&&s<=r;){let o=n.child(i++),l=s;if(s+=o.nodeSize,!o.isText)continue;let a=o.text;for(;i<n.childCount;){let c=n.child(i++);if(s+=c.nodeSize,!c.isText)break;a+=c.text}if(s>=t){if(s>=r&&a.slice(r-e.length-l,r-l)==e)return r-e.length;let c=l<r?a.lastIndexOf(e,r-l-1):-1;if(c>=0&&c+e.length+l>=t)return l+c;if(t==r&&a.length>=r+e.length-l&&a.slice(r-l,r-l+e.length)==e)return r}}return-1}function ao(n,e,t,r,i){let s=[];for(let o=0,l=0;o<n.length;o++){let a=n[o],c=l,d=l+=a.size;c>=t||d<=e?s.push(a):(c<e&&s.push(a.slice(0,e-c,r)),i&&(s.push(i),i=void 0),d>t&&s.push(a.slice(t-c,a.size,r)))}return s}function So(n,e=null){let t=n.domSelectionRange(),r=n.state.doc;if(!t.focusNode)return null;let i=n.docView.nearestDesc(t.focusNode),s=i&&i.size==0,o=n.docView.posFromDOM(t.focusNode,t.focusOffset,1);if(o<0)return null;let l=r.resolve(o),a,c;if(Kr(t)){for(a=o;i&&!i.node;)i=i.parent;if(i&&i.node.isAtom&&M.isSelectable(i.node)&&i.parent&&!(i.node.isInline&&cp(t.focusNode,t.focusOffset,i.dom))){let u=i.posBefore;c=new M(o==u?l:r.resolve(u))}else if(ge&&e==\"key\"&&o>n.state.selection.to&&C(t.focusNode)&&t.focusOffset==t.focusNode.childNodes.length&&i&&i.posAtStart>n.state.selection.to)for(let u=t.focusNode;;u=u.parentNode){if(getComputedStyle(u).overflow!=\"visible\"){c=R.findFrom(r.resolve(i.posAtStart),1);break}if(u==i.dom||u.nextSibling||!u.parentNode||!C(u.parentNode))break}}else{if(t instanceof n.dom.ownerDocument.defaultView.Selection&&t.rangeCount>1){let u=o,f=o;for(let h=0;h<t.rangeCount;h++){let p=t.getRangeAt(h);u=Math.min(u,n.docView.posFromDOM(p.startContainer,p.startOffset,1)),f=Math.max(f,n.docView.posFromDOM(p.endContainer,p.endOffset,-1))}if(u<0)return null;[a,o]=f==n.state.selection.anchor?[f,u]:[u,f],l=r.resolve(o)}else a=n.docView.posFromDOM(t.anchorNode,t.anchorOffset,1);if(a<0)return null}let d=r.resolve(a);if(!c){let u=e==\"pointer\"||n.state.selection.head<l.pos&&!s?1:-1;c=wo(n,d,l,u)}return c}function ed(n){return n.editable?n.hasFocus():nd(n)&&document.activeElement&&document.activeElement.contains(n.dom)}function Je(n,e=!1){let t=n.state.selection;if(td(n,t),!ed(n))return;let r=n.input.mouseDown;if(!e&&te&&r){let i=n.domSelectionRange(),s=n.domObserver.currentSelection;if(i.anchorNode&&s.anchorNode&&At(i.anchorNode,i.anchorOffset,s.anchorNode,s.anchorOffset)&&r.delaySelUpdate()){n.domObserver.setCurSelection();return}}if(n.domObserver.disconnectSelection(),n.cursorWrapper)Pp(n);else{let{anchor:i,head:s}=t,o,l;Sc&&!(t instanceof T)&&(t.$from.parent.inlineContent||(o=wc(n,t.from)),!t.empty&&!t.$from.parent.inlineContent&&(l=wc(n,t.to))),n.docView.setSelection(i,s,n,e),Sc&&(o&&vc(o),l&&vc(l)),t.visible?n.dom.classList.remove(\"ProseMirror-hideselection\"):(n.dom.classList.add(\"ProseMirror-hideselection\"),\"onselectionchange\"in document&&Lp(n))}n.domObserver.setCurSelection(),n.domObserver.connectSelection()}var Sc=le||te&&jc<63;function wc(n,e){let{node:t,offset:r}=n.docView.domFromPos(e,0),i=r<t.childNodes.length?t.childNodes[r]:null,s=r?t.childNodes[r-1]:null;if(le&&i&&i.contentEditable==\"false\")return Gs(i);if((!i||i.contentEditable==\"false\")&&(!s||s.contentEditable==\"false\")){if(i)return Gs(i);if(s)return Gs(s)}}function Gs(n){return n.contentEditable=\"true\",le&&n.draggable&&(n.draggable=!1,n.wasDraggable=!0),n}function vc(n){n.contentEditable=\"false\",n.wasDraggable&&(n.draggable=!0,n.wasDraggable=null)}function Lp(n){let e=n.dom.ownerDocument;e.removeEventListener(\"selectionchange\",n.input.hideSelectionGuard);let t=n.domSelectionRange(),r=t.anchorNode,i=t.anchorOffset;e.addEventListener(\"selectionchange\",n.input.hideSelectionGuard=()=>{(t.anchorNode!=r||t.anchorOffset!=i)&&(e.removeEventListener(\"selectionchange\",n.input.hideSelectionGuard),setTimeout(()=>{(!ed(n)||n.state.selection.visible)&&n.dom.classList.remove(\"ProseMirror-hideselection\")},20))})}function Pp(n){let e=n.domSelection();if(!e)return;let t=n.cursorWrapper.dom,r=t.nodeName==\"IMG\";r?e.collapse(t.parentNode,ee(t)+1):e.collapse(t,0),!r&&!n.state.selection.visible&&he&&ot<=11&&(t.disabled=!0,t.disabled=!1)}function td(n,e){if(e instanceof M){let t=n.docView.descAt(e.from);t!=n.lastSelectedViewDesc&&(Tc(n),t&&t.selectNode(),n.lastSelectedViewDesc=t)}else Tc(n)}function Tc(n){n.lastSelectedViewDesc&&(n.lastSelectedViewDesc.parent&&n.lastSelectedViewDesc.deselectNode(),n.lastSelectedViewDesc=void 0)}function wo(n,e,t,r){return n.someProp(\"createSelectionBetween\",i=>i(n,e,t))||T.between(e,t,r)}function Ec(n){return n.editable&&!n.hasFocus()?!1:nd(n)}function nd(n){let e=n.domSelectionRange();if(!e.anchorNode)return!1;try{return Rt(n.dom,e.anchorNode)&&(n.editable||Rt(n.dom,e.focusNode))}catch{return!1}}function Bp(n){let e=n.docView.domFromPos(n.state.selection.anchor,0),t=n.domSelectionRange();return At(e.node,e.offset,t.anchorNode,t.anchorOffset)}function co(n,e){let{$anchor:t,$head:r}=n.selection,i=e>0?t.max(r):t.min(r),s=i.parent.inlineContent?i.depth?n.doc.resolve(e>0?i.after():i.before()):null:i;return s&&R.findFrom(s,e)}function st(n,e){return n.dispatch(n.state.tr.setSelection(e).scrollIntoView()),!0}function Mc(n,e,t){let r=n.state.selection;if(r instanceof T)if(t.indexOf(\"s\")>-1){let{$head:i}=r,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter;if(!s||s.isText||!s.isLeaf)return!1;let o=n.state.doc.resolve(i.pos+s.nodeSize*(e<0?-1:1));return st(n,new T(r.$anchor,o))}else if(r.empty){if(n.endOfTextblock(e>0?\"forward\":\"backward\")){let i=co(n.state,e);return i&&i instanceof M?st(n,i):!1}else if(!(Se&&t.indexOf(\"m\")>-1)){let i=r.$head,s=i.textOffset?null:e<0?i.nodeBefore:i.nodeAfter,o;if(!s||s.isText)return!1;let l=e<0?i.pos-s.nodeSize:i.pos;return s.isAtom||(o=n.docView.descAt(l))&&!o.contentDOM?M.isSelectable(s)?st(n,new M(e<0?n.state.doc.resolve(i.pos-s.nodeSize):i)):st(n,new T(n.state.doc.resolve(e<0?l:l+s.nodeSize))):!1}}else return!1;else{if(r instanceof M&&r.node.isInline)return st(n,new T(e>0?r.$to:r.$from));{let i=co(n.state,e);return i?st(n,i):!1}}}function In(n,e){let t=n.pmViewDesc;return t?t.size==0&&(e<0||n.nextSibling||n.nodeName!=\"BR\"):C(n)&&n.contentEditable==\"false\"}function Jt(n,e){return e<0?zp(n):Hp(n)}function zp(n){let e=n.domSelectionRange(),t=e.focusNode,r=e.focusOffset;if(!t)return;let i,s,o=!1;for(ge&&C(t)&&r<oe(t)&&In(t.childNodes[r],-1)&&(o=!0);;)if(r>0){if(!C(t))break;let l=t.childNodes[r-1];if(In(l,-1))i=t,s=--r;else if(G(l))t=l,r=t.nodeValue.length;else break}else{if(rd(t))break;{let l=t.previousSibling;for(;l&&In(l,-1);)i=t.parentNode,s=ee(l),l=l.previousSibling;if(l)t=l,r=oe(t);else{if(t=t.parentNode,t==n.dom)break;r=0}}}o?uo(n,t,r):i&&uo(n,i,s)}function Hp(n){let e=n.domSelectionRange(),t=e.focusNode,r=e.focusOffset;if(!t)return;let i=oe(t),s,o;for(;;)if(r<i){if(!C(t))break;let l=t.childNodes[r];if(In(l,1))s=t,o=++r;else break}else{if(rd(t))break;{let l=t.nextSibling;for(;l&&In(l,1);)s=l.parentNode,o=ee(l)+1,l=l.nextSibling;if(l)t=l,r=0,i=oe(t);else{if(t=t.parentNode,t==n.dom)break;r=i=0}}}s&&uo(n,s,o)}function rd(n){let e=n.pmViewDesc;return e&&e.node&&e.node.isBlock}function $p(n,e){for(;n&&e==n.childNodes.length&&!zn(n);)e=ee(n)+1,n=n.parentNode;for(;n&&e<n.childNodes.length;){let t=n.childNodes[e];if(G(t))return t;if(C(t)&&t.contentEditable==\"false\")break;n=t,e=0}}function Fp(n,e){for(;n&&!e&&!zn(n);)e=ee(n),n=n.parentNode;for(;n&&e;){let t=n.childNodes[e-1];if(G(t))return t;if(C(t)&&t.contentEditable==\"false\")break;n=t,e=n.childNodes.length}}function uo(n,e,t){if(!G(e)){let s,o;(o=$p(e,t))?(e=o,t=0):(s=Fp(e,t))&&(e=s,t=s.nodeValue.length)}let r=n.domSelection();if(!r)return;if(Kr(r)){let s=document.createRange();s.setEnd(e,t),s.setStart(e,t),r.removeAllRanges(),r.addRange(s)}else r.extend&&r.extend(e,t);n.domObserver.setCurSelection();let{state:i}=n;setTimeout(()=>{n.state==i&&Je(n)},50)}function Cc(n,e){let t=n.state.doc.resolve(e);if(!(te||Wc)&&t.parent.inlineContent){let i=n.coordsAtPos(e);if(e>t.start()){let s=n.coordsAtPos(e-1),o=(s.top+s.bottom)/2;if(o>i.top&&o<i.bottom&&Math.abs(s.left-i.left)>1)return s.left<i.left?\"ltr\":\"rtl\"}if(e<t.end()){let s=n.coordsAtPos(e+1),o=(s.top+s.bottom)/2;if(o>i.top&&o<i.bottom&&Math.abs(s.left-i.left)>1)return s.left>i.left?\"ltr\":\"rtl\"}}return getComputedStyle(n.dom).direction==\"rtl\"?\"rtl\":\"ltr\"}function Ac(n,e,t){let r=n.state.selection;if(r instanceof T&&!r.empty||t.indexOf(\"s\")>-1||Se&&t.indexOf(\"m\")>-1)return!1;let{$from:i,$to:s}=r;if(!i.parent.inlineContent||n.endOfTextblock(e<0?\"up\":\"down\")){let o=co(n.state,e);if(o&&o instanceof M)return st(n,o)}if(!i.parent.inlineContent){let o=e<0?i:s,l=r instanceof ce?R.near(o,e):R.findFrom(o,e);return l?st(n,l):!1}return!1}function Rc(n,e){if(!(n.state.selection instanceof T))return!0;let{$head:t,$anchor:r,empty:i}=n.state.selection;if(!t.sameParent(r))return!0;if(!i)return!1;if(n.endOfTextblock(e>0?\"forward\":\"backward\"))return!0;let s=!t.textOffset&&(e<0?t.nodeBefore:t.nodeAfter);if(s&&!s.isText){let o=n.state.tr;return e<0?o.delete(t.pos-s.nodeSize,t.pos):o.delete(t.pos,t.pos+s.nodeSize),n.dispatch(o),!0}return!1}function Nc(n,e,t){n.domObserver.stop(),e.contentEditable=t,n.domObserver.start()}function _p(n){if(!le||n.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:t}=n.domSelectionRange();if(e&&C(e)&&t==0&&e.firstChild&&C(e.firstChild)&&e.firstChild.contentEditable==\"false\"){let r=e.firstChild;Nc(n,r,\"true\"),setTimeout(()=>Nc(n,r,\"false\"),20)}return!1}function Vp(n){let e=\"\";return n.ctrlKey&&(e+=\"c\"),n.metaKey&&(e+=\"m\"),n.altKey&&(e+=\"a\"),n.shiftKey&&(e+=\"s\"),e}function jp(n,e){let t=e.keyCode,r=Vp(e);if(t==8||Se&&t==72&&r==\"c\")return Rc(n,-1)||Jt(n,-1);if(t==46&&!e.shiftKey||Se&&t==68&&r==\"c\")return Rc(n,1)||Jt(n,1);if(t==13||t==27)return!0;if(t==37||Se&&t==66&&r==\"c\"){let i=t==37?Cc(n,n.state.selection.from)==\"ltr\"?-1:1:-1;return Mc(n,i,r)||Jt(n,i)}else if(t==39||Se&&t==70&&r==\"c\"){let i=t==39?Cc(n,n.state.selection.from)==\"ltr\"?1:-1:1;return Mc(n,i,r)||Jt(n,i)}else{if(t==38||Se&&t==80&&r==\"c\")return Ac(n,-1,r)||Jt(n,-1);if(t==40||Se&&t==78&&r==\"c\")return _p(n)||Ac(n,1,r)||Jt(n,1);if(r==(Se?\"m\":\"c\")&&(t==66||t==73||t==89||t==90))return!0}return!1}function vo(n,e){n.someProp(\"transformCopied\",h=>{e=h(e,n)});let t=[],{content:r,openStart:i,openEnd:s}=e;for(;i>1&&s>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,s--;let h=r.firstChild;t.push(h.type.name,h.attrs!=h.type.defaultAttrs?h.attrs:null),r=h.content}let o=n.someProp(\"clipboardSerializer\")||Fe.fromSchema(n.state.schema),l=cd(),a=l.createElement(\"div\");a.appendChild(o.serializeFragment(r,{document:l}));let c=a.firstChild,d,u=0;for(;c&&C(c)&&(d=ad[c.nodeName.toLowerCase()]);){for(let h=d.length-1;h>=0;h--){let p=l.createElement(d[h]);for(;a.firstChild;)p.appendChild(a.firstChild);a.appendChild(p),u++}c=a.firstChild}c&&C(c)&&c.setAttribute(\"data-pm-slice\",`${i} ${s}${u?` -${u}`:\"\"} ${JSON.stringify(t)}`);let f=n.someProp(\"clipboardTextSerializer\",h=>h(e,n))||e.content.textBetween(0,e.content.size,`\n\n`);return{dom:a,text:f,slice:e}}function id(n,e,t,r,i){let s=i.parent.type.spec.code,o,l;if(!t&&!e)return null;let a=!!e&&(r||s||!t);if(a){if(n.someProp(\"transformPastedText\",f=>{e=f(e,s||r,n)}),s)return l=new v(x.from(n.state.schema.text(e.replace(/\\r\\n?/g,`\n`))),0,0),n.someProp(\"transformPasted\",f=>{l=f(l,n,!0)}),l;let u=n.someProp(\"clipboardTextParser\",f=>f(e,i,r,n));if(u)l=u;else{let f=i.marks(),{schema:h}=n.state,p=Fe.fromSchema(h);o=document.createElement(\"div\"),e.split(/(?:\\r\\n?|\\n)+/).forEach(m=>{let g=o.appendChild(document.createElement(\"p\"));m&&g.appendChild(p.serializeNode(h.text(m,f)))})}}else n.someProp(\"transformPastedHTML\",u=>{t=u(t,n)}),o=qp(t),qr&&Jp(o);let c=o&&o.querySelector(\"[data-pm-slice]\"),d=c&&/^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(c.getAttribute(\"data-pm-slice\")||\"\");if(d&&d[3])for(let u=+d[3];u>0;u--){let f=o.firstChild;for(;f&&!C(f);)f=f.nextSibling;if(!f)break;o=f}if(l||(l=(n.someProp(\"clipboardParser\")||n.someProp(\"domParser\")||xe.fromSchema(n.state.schema)).parseSlice(o,{preserveWhitespace:!!(a||d),context:i,ruleFromNode(f){return f.nodeName==\"BR\"&&!f.nextSibling&&f.parentNode&&!Wp.test(f.parentNode.nodeName)?{ignore:!0}:null}})),d)l=Xp(Oc(l,+d[1],+d[2]),d[4]);else if(l=v.maxOpen(Up(l.content,i),!0),l.openStart||l.openEnd){let u=0,f=0;for(let h=l.content.firstChild;u<l.openStart&&!h.type.spec.isolating;u++,h=h.firstChild);for(let h=l.content.lastChild;f<l.openEnd&&!h.type.spec.isolating;f++,h=h.lastChild);l=Oc(l,u,f)}return n.someProp(\"transformPasted\",u=>{l=u(l,n,a)}),l}var Wp=/^(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;function Up(n,e){if(n.childCount<2)return n;for(let t=e.depth;t>=0;t--){let i=e.node(t).contentMatchAt(e.index(t)),s,o=[];if(n.forEach(l=>{if(!o)return;let a=i.findWrapping(l.type),c;if(!a)return o=null;if(c=o.length&&s.length&&od(a,s,l,o[o.length-1],0))o[o.length-1]=c;else{o.length&&(o[o.length-1]=ld(o[o.length-1],s.length));let d=sd(l,a);o.push(d),i=i.matchType(d.type),s=a}}),o)return x.from(o)}return n}function sd(n,e,t=0){for(let r=e.length-1;r>=t;r--)n=e[r].create(null,x.from(n));return n}function od(n,e,t,r,i){if(i<n.length&&i<e.length&&n[i]==e[i]){let s=od(n,e,t,r.lastChild,i+1);if(s)return r.copy(r.content.replaceChild(r.childCount-1,s));if(r.contentMatchAt(r.childCount).matchType(i==n.length-1?t.type:n[i+1]))return r.copy(r.content.append(x.from(sd(t,n,i+1))))}}function ld(n,e){if(e==0)return n;let t=n.content.replaceChild(n.childCount-1,ld(n.lastChild,e-1)),r=n.contentMatchAt(n.childCount).fillBefore(x.empty,!0);return n.copy(t.append(r))}function fo(n,e,t,r,i,s){let o=e<0?n.firstChild:n.lastChild,l=o.content;return n.childCount>1&&(s=0),i<r-1&&(l=fo(l,e,t,r,i+1,s)),i>=t&&(l=e<0?o.contentMatchAt(0).fillBefore(l,s<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(x.empty,!0))),n.replaceChild(e<0?0:n.childCount-1,o.copy(l))}function Oc(n,e,t){return e<n.openStart&&(n=new v(fo(n.content,-1,e,n.openStart,0,n.openEnd),e,n.openEnd)),t<n.openEnd&&(n=new v(fo(n.content,1,t,n.openEnd,0,0),n.openStart,t)),n}var ad={thead:[\"table\"],tbody:[\"table\"],tfoot:[\"table\"],caption:[\"table\"],colgroup:[\"table\"],col:[\"table\",\"colgroup\"],tr:[\"table\",\"tbody\"],td:[\"table\",\"tbody\",\"tr\"],th:[\"table\",\"tbody\",\"tr\"]};function cd(){return document.implementation.createHTMLDocument(\"title\")}var Nn=null;function Kp(n){let e=window.trustedTypes;if(!e)return n;if(!Nn){if(Nn=e.defaultPolicy)try{return Nn.createHTML(n)}catch{}Nn=e.createPolicy(\"ProseMirrorClipboard\",{createHTML:t=>t})}return Nn.createHTML(n)}function qp(n){let e=/^(\\s*<meta [^>]*>)*/.exec(n);e&&(n=n.slice(e[0].length));let t=cd(),r=t.body,i=/<([a-z][^>\\s]+)/i.exec(n),s;if((s=i&&ad[i[1].toLowerCase()])&&(n=s.map(o=>\"<\"+o+\">\").join(\"\")+n+s.map(o=>\"</\"+o+\">\").reverse().join(\"\")),r.innerHTML=Kp(n),s)for(let o=0;o<s.length;o++)r=r.querySelector(s[o])||r;for(let o=0;o<t.styleSheets.length;o++){let l=t.styleSheets[o];for(let a=0;a<l.rules.length;a++){let c=l.rules[a];if(c instanceof CSSStyleRule){let d=r.querySelectorAll(c.selectorText);for(let u=0;u<d.length;u++)d[u].style.cssText+=c.style.cssText}}}return r}function Jp(n){let e=n.querySelectorAll(te?\"span:not([class]):not([style])\":\"span.Apple-converted-space\");for(let t=0;t<e.length;t++){let r=e[t];r.childNodes.length==1&&r.textContent==\"\\xA0\"&&r.parentNode&&r.parentNode.replaceChild(n.ownerDocument.createTextNode(\" \"),r)}}function Xp(n,e){if(!n.size)return n;let t=n.content.firstChild.type.schema,r;try{r=JSON.parse(e)}catch{return n}let{content:i,openStart:s,openEnd:o}=n;for(let l=r.length-2;l>=0;l-=2){let a=t.nodes[r[l]];if(!a||a.hasRequiredAttrs())break;try{i=x.from(a.create(r[l+1],i))}catch{break}s++,o++}return new v(i,s,o)}var de={},ue={},Gp={touchstart:!0,touchmove:!0},ho=class{constructor(){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.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}};function Yp(n){for(let e in de){let t=de[e];n.dom.addEventListener(e,n.input.eventHandlers[e]=r=>{Zp(n,r)&&!To(n,r)&&(n.editable||!(r.type in ue))&&t(n,r)},Gp[e]?{passive:!0}:void 0)}le&&n.dom.addEventListener(\"input\",()=>null),po(n)}function qe(n,e){n.input.lastSelectionOrigin=e,n.input.lastSelectionTime=Date.now()}function Qp(n){n.input.mouseDown&&n.input.mouseDown.done(),n.domObserver.stop();for(let e in n.input.eventHandlers)n.dom.removeEventListener(e,n.input.eventHandlers[e]);clearTimeout(n.input.composingTimeout),clearTimeout(n.input.lastIOSEnterFallbackTimeout)}function po(n){n.someProp(\"handleDOMEvents\",e=>{for(let t in e)n.input.eventHandlers[t]||n.dom.addEventListener(t,n.input.eventHandlers[t]=r=>To(n,r))})}function To(n,e){return n.someProp(\"handleDOMEvents\",t=>{let r=t[e.type];return r?r(n,e)||e.defaultPrevented:!1})}function Zp(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target;t!=n.dom;t=t.parentNode)if(!t||t.nodeType==11||t.pmViewDesc&&t.pmViewDesc.stopEvent(e))return!1;return!0}function em(n,e){!To(n,e)&&de[e.type]&&(n.editable||!(e.type in ue))&&de[e.type](n,e)}ue.keydown=(n,e)=>{let t=e;if(n.input.shiftKey=t.keyCode==16||t.shiftKey,!fd(n)&&(n.input.lastKeyCode=t.keyCode,n.input.lastKeyCodeTime=Date.now(),!(Ke&&te&&t.keyCode==13)))if(t.keyCode!=229&&n.domObserver.forceFlush(),Yt&&t.keyCode==13&&!t.ctrlKey&&!t.altKey&&!t.metaKey){let r=Date.now();n.input.lastIOSEnter=r,n.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{n.input.lastIOSEnter==r&&(n.someProp(\"handleKeyDown\",i=>i(n,St(13,\"Enter\"))),n.input.lastIOSEnter=0)},200)}else n.someProp(\"handleKeyDown\",r=>r(n,t))||jp(n,t)?t.preventDefault():qe(n,\"key\")};ue.keyup=(n,e)=>{e.keyCode==16&&(n.input.shiftKey=!1)};ue.keypress=(n,e)=>{let t=e;if(fd(n)||!t.charCode||t.ctrlKey&&!t.altKey||Se&&t.metaKey)return;if(n.someProp(\"handleKeyPress\",i=>i(n,t))){t.preventDefault();return}let r=n.state.selection;if(!(r instanceof T)||!r.$from.sameParent(r.$to)){let i=String.fromCharCode(t.charCode),s=()=>n.state.tr.insertText(i).scrollIntoView();!/[\\r\\n]/.test(i)&&!n.someProp(\"handleTextInput\",o=>o(n,r.$from.pos,r.$to.pos,i,s))&&n.dispatch(s()),t.preventDefault()}};function Hn(n){return{left:n.clientX,top:n.clientY}}function tm(n,e){let t=e.x-n.clientX,r=e.y-n.clientY;return t*t+r*r<100}function Eo(n,e,t,r,i){if(r==-1)return!1;let s=n.state.doc.resolve(r);for(let o=s.depth+1;o>0;o--)if(n.someProp(e,l=>o>s.depth?l(n,t,s.nodeAfter,s.before(o),i,!0):l(n,t,s.node(o),s.before(o),i,!1)))return!0;return!1}function $n(n,e,t){if(n.focused||n.focus(),n.state.selection.eq(e))return;let r=n.state.tr.setSelection(e);r.setMeta(\"pointer\",!0),n.dispatch(r)}function nm(n,e){if(e==-1)return!1;let t=n.state.doc.resolve(e),r=t.nodeAfter;return r&&r.isAtom&&M.isSelectable(r)?($n(n,new M(t)),!0):!1}function rm(n,e){if(e==-1)return!1;let t=n.state.selection,r,i;t instanceof M&&(r=t.node);let s=n.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let l=o>s.depth?s.nodeAfter:s.node(o);if(M.isSelectable(l)){r&&t.$from.depth>0&&o>=t.$from.depth&&s.before(t.$from.depth+1)==t.$from.pos?i=s.before(t.$from.depth):i=s.before(o);break}}return i!=null?($n(n,M.create(n.state.doc,i)),!0):!1}function im(n,e,t,r,i){return Eo(n,\"handleClickOn\",e,t,r)||n.someProp(\"handleClick\",s=>s(n,e,r))||(i?rm(n,t):nm(n,t))}function sm(n,e,t,r){return Eo(n,\"handleDoubleClickOn\",e,t,r)||n.someProp(\"handleDoubleClick\",i=>i(n,e,r))}function om(n,e,t,r){return Eo(n,\"handleTripleClickOn\",e,t,r)||n.someProp(\"handleTripleClick\",i=>i(n,e,r))||lm(n,t,r)}function lm(n,e,t){if(t.button!=0)return!1;let r=dd(n,e,!0),i=n.state.doc;return r?($n(n,r),r instanceof T&&i.eq(n.state.doc)&&(n.input.mouseDown=new go(n,r)),!0):!1}function dd(n,e,t){let r=n.state.doc;if(e==-1)return r.inlineContent?T.create(r,0,r.content.size):null;let i=r.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),l=i.before(s);if(o.inlineContent)return T.create(r,l+1,l+1+o.content.size);if(t&&M.isSelectable(o))return M.create(r,l)}return null}function Mo(n){return _r(n)}var ud=Se?\"metaKey\":\"ctrlKey\";de.mousedown=(n,e)=>{let t=e;n.input.shiftKey=t.shiftKey;let r=Mo(n),i=Date.now(),s=\"singleClick\";i-n.input.lastClick.time<500&&tm(t,n.input.lastClick)&&!t[ud]&&n.input.lastClick.button==t.button&&(n.input.lastClick.type==\"singleClick\"?s=\"doubleClick\":n.input.lastClick.type==\"doubleClick\"&&(s=\"tripleClick\")),n.input.lastClick={time:i,x:t.clientX,y:t.clientY,type:s,button:t.button},n.input.mouseDown&&n.input.mouseDown.done();let o=n.posAtCoords(Hn(t));o&&(s==\"singleClick\"?n.input.mouseDown=new mo(n,o,t,!!r):(s==\"doubleClick\"?sm:om)(n,o.pos,o.inside,t)?t.preventDefault():qe(n,\"pointer\"))};var Fr=class{constructor(e){this.view=e,this.mightDrag=null,e.root.addEventListener(\"mouseup\",this.up=this.up.bind(this)),e.root.addEventListener(\"mousemove\",this.move=this.move.bind(this))}up(e){this.done()}move(e){e.buttons==0&&this.done()}done(){this.view.root.removeEventListener(\"mouseup\",this.up),this.view.root.removeEventListener(\"mousemove\",this.move),this.view.input.mouseDown==this&&(this.view.input.mouseDown=null)}delaySelUpdate(){return!1}},mo=class extends Fr{constructor(e,t,r,i){super(e),this.pos=t,this.event=r,this.flushed=i,this.delayedSelectionSync=!1,this.startDoc=e.state.doc,this.selectNode=!!r[ud],this.allowDefault=r.shiftKey;let s,o;if(t.inside>-1)s=e.state.doc.nodeAt(t.inside),o=t.inside;else{let d=e.state.doc.resolve(t.pos);s=d.parent,o=d.depth?d.before():0}let l=i?null:r.target,a=l?e.docView.nearestDesc(l,!0):null;this.target=a&&C(a.nodeDOM)?a.nodeDOM:null;let{selection:c}=e.state;r.button==0&&(s.type.spec.draggable&&s.type.spec.selectable!==!1||c instanceof M&&c.from<=o&&c.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&ge&&!this.target.hasAttribute(\"contentEditable\"))}),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(()=>{this.view.input.mouseDown==this&&this.target.setAttribute(\"contentEditable\",\"false\")},20),this.view.domObserver.start()),qe(e,\"pointer\")}done(){super.done(),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(()=>{this.view.isDestroyed||Je(this.view)})}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Hn(e))),this.updateAllowDefault(e),this.allowDefault||!t?qe(this.view,\"pointer\"):im(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||le&&this.mightDrag&&!this.mightDrag.node.isAtom||te&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?($n(this.view,R.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):qe(this.view,\"pointer\")}move(e){this.updateAllowDefault(e),qe(this.view,\"pointer\"),super.move(e)}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}delaySelUpdate(){return this.allowDefault?(this.delayedSelectionSync=!0,!0):!1}},go=class extends Fr{constructor(e,t){super(e),this.startSelection=t,this.startDoc=e.state.doc}move(e){if(e.buttons==0||this.view.isDestroyed||!this.view.state.doc.eq(this.startDoc)){this.done();return}e.preventDefault(),qe(this.view,\"pointer\");let t=this.view.posAtCoords(Hn(e)),r=t&&dd(this.view,t.inside,!1);if(!r)return;let{doc:i}=this.view.state,s=this.startSelection,[o,l]=r.from<s.from?[s.to,r.from]:[s.from,r.to];$n(this.view,T.create(i,o,l))}};de.touchstart=n=>{n.input.lastTouch=Date.now(),Mo(n),qe(n,\"pointer\")};de.touchmove=n=>{n.input.lastTouch=Date.now(),qe(n,\"pointer\")};de.contextmenu=n=>Mo(n);function fd(n,e){return n.composing?!0:le&&Math.abs(Date.now()-n.input.compositionEndedAt)<500?(n.input.compositionEndedAt=-2e8,!0):!1}var am=Ke?5e3:-1;ue.compositionstart=ue.compositionupdate=n=>{if(!n.composing){n.domObserver.flush();let{state:e}=n,t=e.selection.$to;if(e.selection instanceof T&&e.selection.empty&&(e.storedMarks||!t.textOffset&&t.parentOffset&&t.nodeBefore.marks.some(r=>r.type.spec.inclusive===!1)||te&&Wc&&cm(n)))n.markCursor=n.state.storedMarks||t.marks(),_r(n,!0),n.markCursor=null;else if(_r(n,!e.selection.empty),ge&&e.selection.empty&&t.parentOffset&&!t.textOffset&&t.nodeBefore.marks.length){let r=n.domSelectionRange();for(let i=r.focusNode,s=r.focusOffset;i&&C(i)&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(G(o)){let l=n.domSelection();l&&l.collapse(o,o.nodeValue.length);break}else i=o,s=-1}}n.input.composing=!0}hd(n,am)};function cm(n){let{focusNode:e,focusOffset:t}=n.domSelectionRange();if(!e||!C(e)||t>=e.childNodes.length)return!1;let r=e.childNodes[t];return C(r)&&r.contentEditable==\"false\"}ue.compositionend=(n,e)=>{n.composing&&(n.input.composing=!1,n.input.compositionEndedAt=Date.now(),n.input.compositionPendingChanges=n.domObserver.pendingRecords().length?n.input.compositionID:0,n.input.compositionNode=null,n.input.badSafariComposition?n.domObserver.forceFlush():n.input.compositionPendingChanges&&Promise.resolve().then(()=>n.domObserver.flush()),n.input.compositionID++,hd(n,20))};function hd(n,e){clearTimeout(n.input.composingTimeout),e>-1&&(n.input.composingTimeout=setTimeout(()=>_r(n),e))}function pd(n){for(n.composing&&(n.input.composing=!1,n.input.compositionEndedAt=Date.now());n.input.compositionNodes.length>0;)n.input.compositionNodes.pop().markParentsDirty()}function dm(n){let e=n.domSelectionRange();if(!e.focusNode)return null;let t=lp(e.focusNode,e.focusOffset),r=ap(e.focusNode,e.focusOffset);if(t&&r&&t!=r){let i=r.pmViewDesc,s=n.domObserver.lastChangedTextNode;if(t==s||r==s)return s;if(!i||!i.isText(r.nodeValue))return r;if(n.input.compositionNode==r){let o=t.pmViewDesc;if(!(!o||!o.isText(t.nodeValue)))return r}}return t||r}function _r(n,e=!1){if(!(Ke&&n.domObserver.flushingSoon>=0)){if(n.domObserver.forceFlush(),pd(n),e||n.docView&&n.docView.dirty){let t=So(n),r=n.state.selection;return t&&!t.eq(r)?n.dispatch(n.state.tr.setSelection(t)):(n.markCursor||e)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?n.dispatch(n.state.tr.deleteSelection()):n.updateState(n.state),!0}return!1}}function um(n,e){if(!n.dom.parentNode)return;let t=n.dom.parentNode.appendChild(document.createElement(\"div\"));t.appendChild(e),t.style.cssText=\"position: fixed; left: -10000px; top: 10px\";let r=getSelection(),i=document.createRange();i.selectNodeContents(e),n.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t),n.focus()},50)}var Dn=he&&ot<15||Yt&&fp<604;de.copy=ue.cut=(n,e)=>{let t=e,r=n.state.selection,i=t.type==\"cut\";if(r.empty)return;let s=Dn?null:t.clipboardData,o=r.content(),{dom:l,text:a}=vo(n,o);s?(t.preventDefault(),s.clearData(),s.setData(\"text/html\",l.innerHTML),s.setData(\"text/plain\",a)):um(n,l),i&&n.dispatch(n.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\",\"cut\"))};function fm(n){return n.openStart==0&&n.openEnd==0&&n.content.childCount==1?n.content.firstChild:null}function hm(n,e){if(!n.dom.parentNode)return;let t=n.input.shiftKey||n.state.selection.$from.parent.type.spec.code,r=n.dom.parentNode.appendChild(document.createElement(t?\"textarea\":\"div\"));t||(r.contentEditable=\"true\"),r.style.cssText=\"position: fixed; left: -10000px; top: 10px\",r.focus();let i=n.input.shiftKey&&n.input.lastKeyCode!=45;setTimeout(()=>{n.focus(),r.parentNode&&r.parentNode.removeChild(r),t?Ln(n,r.value,null,i,e):Ln(n,r.textContent,r.innerHTML,i,e)},50)}function Ln(n,e,t,r,i){let s=id(n,e,t,r,n.state.selection.$from);if(n.someProp(\"handlePaste\",a=>a(n,i,s||v.empty)))return!0;if(!s)return!1;let o=fm(s),l=o?n.state.tr.replaceSelectionWith(o,r):n.state.tr.replaceSelection(s);return n.dispatch(l.scrollIntoView().setMeta(\"paste\",!0).setMeta(\"uiEvent\",\"paste\")),!0}function md(n){let e=n.getData(\"text/plain\")||n.getData(\"Text\");if(e)return e;let t=n.getData(\"text/uri-list\");return t?t.replace(/\\r?\\n/g,\" \"):\"\"}ue.paste=(n,e)=>{let t=e;if(n.composing&&!Ke)return;let r=Dn?null:t.clipboardData,i=n.input.shiftKey&&n.input.lastKeyCode!=45;r&&Ln(n,md(r),r.getData(\"text/html\"),i,t)?t.preventDefault():hm(n,t)};var Vr=class{constructor(e,t,r){this.slice=e,this.move=t,this.node=r}},pm=Se?\"altKey\":\"ctrlKey\";function gd(n,e){let t;return n.someProp(\"dragCopies\",r=>{t=t||r(e)}),t!=null?!t:!e[pm]}de.dragstart=(n,e)=>{let t=e,r=n.input.mouseDown;if(r&&r.done(),!t.dataTransfer)return;let i=n.state.selection,s=i.empty?null:n.posAtCoords(Hn(t)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof M?i.to-1:i.to))){if(r&&r.mightDrag)o=M.create(n.state.doc,r.mightDrag.pos);else if(t.target&&C(t.target)){let u=n.docView.nearestDesc(t.target,!0);u&&u.node.type.spec.draggable&&u!=n.docView&&(o=M.create(n.state.doc,u.posBefore))}}let l=(o||n.state.selection).content(),{dom:a,text:c,slice:d}=vo(n,l);(!t.dataTransfer.files.length||!te||jc>120)&&t.dataTransfer.clearData(),t.dataTransfer.setData(Dn?\"Text\":\"text/html\",a.innerHTML),t.dataTransfer.effectAllowed=\"copyMove\",Dn||t.dataTransfer.setData(\"text/plain\",c),n.dragging=new Vr(d,gd(n,t),o)};de.dragend=n=>{let e=n.dragging;window.setTimeout(()=>{n.dragging==e&&(n.dragging=null)},50)};ue.dragover=ue.dragenter=(n,e)=>e.preventDefault();ue.drop=(n,e)=>{try{mm(n,e,n.dragging)}finally{n.dragging=null}};function mm(n,e,t){if(!e.dataTransfer)return;let r=n.posAtCoords(Hn(e));if(!r)return;let i=n.state.doc.resolve(r.pos),s=t&&t.slice;s?n.someProp(\"transformPasted\",h=>{s=h(s,n,!1)}):s=id(n,md(e.dataTransfer),Dn?null:e.dataTransfer.getData(\"text/html\"),!1,i);let o=!!(t&&gd(n,e));if(n.someProp(\"handleDrop\",h=>h(n,e,s||v.empty,o))){e.preventDefault();return}if(!s)return;e.preventDefault();let l=s?Ir(n.state.doc,i.pos,s):i.pos;l==null&&(l=i.pos);let a=n.state.tr;if(o){let{node:h}=t;h?h.replace(a):a.deleteSelection()}let c=a.mapping.map(l),d=s.openStart==0&&s.openEnd==0&&s.content.childCount==1,u=a.doc;if(d?a.replaceRangeWith(c,c,s.content.firstChild):a.replaceRange(c,c,s),a.doc.eq(u))return;let f=a.doc.resolve(c);if(d&&M.isSelectable(s.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(s.content.firstChild))a.setSelection(new M(f));else{let h=a.mapping.map(l);a.mapping.maps[a.mapping.maps.length-1].forEach((p,m,g,y)=>h=y),a.setSelection(wo(n,f,a.doc.resolve(h)))}n.focus(),n.dispatch(a.setMeta(\"uiEvent\",\"drop\"))}de.focus=n=>{n.input.lastFocus=Date.now(),n.focused||(n.domObserver.stop(),n.dom.classList.add(\"ProseMirror-focused\"),n.domObserver.start(),n.focused=!0,setTimeout(()=>{n.docView&&n.hasFocus()&&!n.domObserver.currentSelection.eq(n.domSelectionRange())&&Je(n)},20))};de.blur=(n,e)=>{let t=e;n.focused&&(n.domObserver.stop(),n.dom.classList.remove(\"ProseMirror-focused\"),n.domObserver.start(),t.relatedTarget&&n.dom.contains(t.relatedTarget)&&n.domObserver.currentSelection.clear(),n.focused=!1)};de.beforeinput=(n,e)=>{if(Ke&&e.inputType==\"deleteContentBackward\"){n.domObserver.flushSoon();let{domChangeCount:r}=n.input;setTimeout(()=>{if(n.input.domChangeCount!=r||(n.dom.blur(),n.focus(),n.someProp(\"handleKeyDown\",s=>s(n,St(8,\"Backspace\")))))return;let{$cursor:i}=n.state.selection;i&&i.pos>0&&n.dispatch(n.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let n in ue)de[n]=ue[n];function Pn(n,e){if(n==e)return!0;for(let t in n)if(n[t]!==e[t])return!1;for(let t in e)if(!(t in n))return!1;return!0}var jr=class n{constructor(e,t){this.toDOM=e,this.spec=t||Mt,this.side=this.spec.side||0}map(e,t,r,i){let{pos:s,deleted:o}=e.mapResult(t.from+i,this.side<0?-1:1);return o?null:new fe(s-r,s-r,this)}valid(){return!0}eq(e){return this==e||e instanceof n&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&Pn(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}},Et=class n{constructor(e,t){this.attrs=e,this.spec=t||Mt}map(e,t,r,i){let s=e.map(t.from+i,this.spec.inclusiveStart?-1:1)-r,o=e.map(t.to+i,this.spec.inclusiveEnd?1:-1)-r;return s>=o?null:new fe(s,o,this)}valid(e,t){return t.from<t.to}eq(e){return this==e||e instanceof n&&Pn(this.attrs,e.attrs)&&Pn(this.spec,e.spec)}static is(e){return e.type instanceof n}destroy(){}},yo=class n{constructor(e,t){this.attrs=e,this.spec=t||Mt}map(e,t,r,i){let s=e.mapResult(t.from+i,1);if(s.deleted)return null;let o=e.mapResult(t.to+i,-1);return o.deleted||o.pos<=s.pos?null:new fe(s.pos-r,o.pos-r,this)}valid(e,t){let{index:r,offset:i}=e.content.findIndex(t.from),s;return i==t.from&&!(s=e.child(r)).isText&&i+s.nodeSize==t.to}eq(e){return this==e||e instanceof n&&Pn(this.attrs,e.attrs)&&Pn(this.spec,e.spec)}destroy(){}},fe=class n{constructor(e,t,r){this.from=e,this.to=t,this.type=r}copy(e,t){return new n(e,t,this.type)}eq(e,t=0){return this.type.eq(e.type)&&this.from+t==e.from&&this.to+t==e.to}map(e,t,r){return this.type.map(e,this,t,r)}static widget(e,t,r){return new n(e,e,new jr(t,r))}static inline(e,t,r,i){return new n(e,t,new Et(r,i))}static node(e,t,r,i){return new n(e,t,new yo(r,i))}get spec(){return this.type.spec}get inline(){return this.type instanceof Et}get widget(){return this.type instanceof jr}},Xt=[],Mt={},_=class n{constructor(e,t){this.local=e.length?e:Xt,this.children=t.length?t:Xt}static create(e,t){return t.length?Ur(t,e,0,Mt):se}find(e,t,r){let i=[];return this.findInner(e??0,t??1e9,i,0,r),i}findInner(e,t,r,i,s){for(let o=0;o<this.local.length;o++){let l=this.local[o];l.from<=t&&l.to>=e&&(!s||s(l.spec))&&r.push(l.copy(l.from+i,l.to+i))}for(let o=0;o<this.children.length;o+=3)if(this.children[o]<t&&this.children[o+1]>e){let l=this.children[o]+1;this.children[o+2].findInner(e-l,t-l,r,i+l,s)}}map(e,t,r){return this==se||e.maps.length==0?this:this.mapInner(e,t,0,0,r||Mt)}mapInner(e,t,r,i,s){let o;for(let l=0;l<this.local.length;l++){let a=this.local[l].map(e,r,i);a&&a.type.valid(t,a)?(o||(o=[])).push(a):s.onRemove&&s.onRemove(this.local[l].spec)}return this.children.length?gm(this.children,o||[],e,t,r,i,s):o?new n(o.sort(Ct),Xt):se}add(e,t){return t.length?this==se?n.create(e,t):this.addInner(e,t,0):this}addInner(e,t,r){let i,s=0;e.forEach((l,a)=>{let c=a+r,d;if(d=bd(t,l,c)){for(i||(i=this.children.slice());s<i.length&&i[s]<a;)s+=3;i[s]==a?i[s+2]=i[s+2].addInner(l,d,c+1):i.splice(s,0,a,a+l.nodeSize,Ur(d,l,c+1,Mt)),s+=3}});let o=yd(s?xd(t):t,-r);for(let l=0;l<o.length;l++)o[l].type.valid(e,o[l])||o.splice(l--,1);return new n(o.length?this.local.concat(o).sort(Ct):this.local,i||this.children)}remove(e){return e.length==0||this==se?this:this.removeInner(e,0)}removeInner(e,t){let r=this.children,i=this.local;for(let s=0;s<r.length;s+=3){let o,l=r[s]+t,a=r[s+1]+t;for(let d=0,u;d<e.length;d++)(u=e[d])&&u.from>l&&u.to<a&&(e[d]=null,(o||(o=[])).push(u));if(!o)continue;r==this.children&&(r=this.children.slice());let c=r[s+2].removeInner(o,l+1);c!=se?r[s+2]=c:(r.splice(s,3),s-=3)}if(i.length){for(let s=0,o;s<e.length;s++)if(o=e[s])for(let l=0;l<i.length;l++)i[l].eq(o,t)&&(i==this.local&&(i=this.local.slice()),i.splice(l--,1))}return r==this.children&&i==this.local?this:i.length||r.length?new n(i,r):se}forChild(e,t){if(this==se)return this;if(t.isLeaf)return n.empty;let r,i;for(let l=0;l<this.children.length;l+=3)if(this.children[l]>=e){this.children[l]==e&&(r=this.children[l+2]);break}let s=e+1,o=s+t.content.size;for(let l=0;l<this.local.length;l++){let a=this.local[l];if(a.from<o&&a.to>s&&a.type instanceof Et){let c=Math.max(s,a.from)-s,d=Math.min(o,a.to)-s;c<d&&(i||(i=[])).push(a.copy(c,d))}}if(i){let l=new n(i.sort(Ct),Xt);return r?new Wr([l,r]):l}return r||se}eq(e){if(this==e)return!0;if(!(e instanceof n)||this.local.length!=e.local.length||this.children.length!=e.children.length)return!1;for(let t=0;t<this.local.length;t++)if(!this.local[t].eq(e.local[t]))return!1;for(let t=0;t<this.children.length;t+=3)if(this.children[t]!=e.children[t]||this.children[t+1]!=e.children[t+1]||!this.children[t+2].eq(e.children[t+2]))return!1;return!0}locals(e){return Co(this.localsInner(e))}localsInner(e){if(this==se)return Xt;if(e.inlineContent||!this.local.some(Et.is))return this.local;let t=[];for(let r=0;r<this.local.length;r++)this.local[r].type instanceof Et||t.push(this.local[r]);return t}forEachSet(e){e(this)}};_.empty=new _([],[]);_.removeOverlap=Co;var se=_.empty,Wr=class n{constructor(e){this.members=e}map(e,t){let r=this.members.map(i=>i.map(e,t,Mt));return n.from(r)}forChild(e,t){if(t.isLeaf)return _.empty;let r=[];for(let i=0;i<this.members.length;i++){let s=this.members[i].forChild(e,t);s!=se&&(s instanceof n?r=r.concat(s.members):r.push(s))}return n.from(r)}eq(e){if(!(e instanceof n)||e.members.length!=this.members.length)return!1;for(let t=0;t<this.members.length;t++)if(!this.members[t].eq(e.members[t]))return!1;return!0}locals(e){let t,r=!0;for(let i=0;i<this.members.length;i++){let s=this.members[i].localsInner(e);if(s.length)if(!t)t=s;else{r&&(t=t.slice(),r=!1);for(let o=0;o<s.length;o++)t.push(s[o])}}return t?Co(r?t:t.sort(Ct)):Xt}static from(e){switch(e.length){case 0:return se;case 1:return e[0];default:return new n(e.every(t=>t instanceof _)?e:e.reduce((t,r)=>t.concat(r instanceof _?r:r.members),[]))}}forEachSet(e){for(let t=0;t<this.members.length;t++)this.members[t].forEachSet(e)}};function gm(n,e,t,r,i,s,o){let l=n.slice();for(let c=0,d=s;c<t.maps.length;c++){let u=0;t.maps[c].forEach((f,h,p,m)=>{let g=m-p-(h-f);for(let y=0;y<l.length;y+=3){let b=l[y+1];if(b<0||f>b+d-u)continue;let w=l[y]+d-u;h>=w?l[y+1]=f<=w?-2:-1:f>=d&&g&&(l[y]+=g,l[y+1]+=g)}u+=g}),d=t.maps[c].map(d,-1)}let a=!1;for(let c=0;c<l.length;c+=3)if(l[c+1]<0){if(l[c+1]==-2){a=!0,l[c+1]=-1;continue}let d=t.map(n[c]+s),u=d-i;if(u<0||u>=r.content.size){a=!0;continue}let f=t.map(n[c+1]+s,-1),h=f-i,{index:p,offset:m}=r.content.findIndex(u),g=r.maybeChild(p);if(g&&m==u&&m+g.nodeSize==h){let y=l[c+2].mapInner(t,g,d+1,n[c]+s+1,o);y!=se?(l[c]=u,l[c+1]=h,l[c+2]=y):(l[c+1]=-2,a=!0)}else a=!0}if(a){let c=ym(l,n,e,t,i,s,o),d=Ur(c,r,0,o);e=d.local;for(let u=0;u<l.length;u+=3)l[u+1]<0&&(l.splice(u,3),u-=3);for(let u=0,f=0;u<d.children.length;u+=3){let h=d.children[u];for(;f<l.length&&l[f]<h;)f+=3;l.splice(f,0,d.children[u],d.children[u+1],d.children[u+2])}}return new _(e.sort(Ct),l)}function yd(n,e){if(!e||!n.length)return n;let t=[];for(let r=0;r<n.length;r++){let i=n[r];t.push(new fe(i.from+e,i.to+e,i.type))}return t}function ym(n,e,t,r,i,s,o){function l(a,c){for(let d=0;d<a.local.length;d++){let u=a.local[d].map(r,i,c);u?t.push(u):o.onRemove&&o.onRemove(a.local[d].spec)}for(let d=0;d<a.children.length;d+=3)l(a.children[d+2],a.children[d]+c+1)}for(let a=0;a<n.length;a+=3)n[a+1]==-1&&l(n[a+2],e[a]+s+1);return t}function bd(n,e,t){if(e.isLeaf)return null;let r=t+e.nodeSize,i=null;for(let s=0,o;s<n.length;s++)(o=n[s])&&o.from>t&&o.to<r&&((i||(i=[])).push(o),n[s]=null);return i}function xd(n){let e=[];for(let t=0;t<n.length;t++)n[t]!=null&&e.push(n[t]);return e}function Ur(n,e,t,r){let i=[],s=!1;e.forEach((l,a)=>{let c=bd(n,l,a+t);if(c){s=!0;let d=Ur(c,l,t+a+1,r);d!=se&&i.push(a,a+l.nodeSize,d)}});let o=yd(s?xd(n):n,-t).sort(Ct);for(let l=0;l<o.length;l++)o[l].type.valid(e,o[l])||(r.onRemove&&r.onRemove(o[l].spec),o.splice(l--,1));return o.length||i.length?new _(o,i):se}function Ct(n,e){return n.from-e.from||n.to-e.to}function Co(n){let e=n;for(let t=0;t<e.length-1;t++){let r=e[t];if(r.from!=r.to)for(let i=t+1;i<e.length;i++){let s=e[i];if(s.from==r.from){s.to!=r.to&&(e==n&&(e=n.slice()),e[i]=s.copy(s.from,r.to),Ic(e,i+1,s.copy(r.to,s.to)));continue}else{s.from<r.to&&(e==n&&(e=n.slice()),e[t]=r.copy(r.from,s.from),Ic(e,i,r.copy(s.from,r.to)));break}}}return e}function Ic(n,e,t){for(;e<n.length&&Ct(t,n[e])>0;)e++;n.splice(e,0,t)}function Ys(n){let e=[];return n.someProp(\"decorations\",t=>{let r=t(n.state);r&&r!=se&&e.push(r)}),n.cursorWrapper&&e.push(_.create(n.state.doc,[n.cursorWrapper.deco])),Wr.from(e)}var bm={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},xm=he&&ot<=11,bo=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}},xo=class{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new bo,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(r=>{for(let i=0;i<r.length;i++)this.queue.push(r[i]);he&&ot<=11&&r.some(i=>i.type==\"childList\"&&i.removedNodes.length||i.type==\"characterData\"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():le&&e.composing&&r.some(i=>i.type==\"childList\"&&i.target.nodeName==\"TR\")?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),xm&&(this.onCharData=r=>{this.queue.push({target:r.target,type:\"characterData\",oldValue:r.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,bm)),this.onCharData&&this.view.dom.addEventListener(\"DOMCharacterDataModified\",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;t<e.length;t++)this.queue.push(e[t]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener(\"DOMCharacterDataModified\",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener(\"selectionchange\",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener(\"selectionchange\",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(Ec(this.view)){if(this.suppressingSelectionUpdates)return Je(this.view);if(he&&ot<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&At(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,r;for(let s=e.focusNode;s;s=Gt(s))t.add(s);for(let s=e.anchorNode;s;s=Gt(s))if(t.has(s)){r=s;break}let i=r&&this.view.docView.nearestDesc(r);if(i&&i.ignoreMutation({type:\"selection\",target:G(r)?r.parentNode:r}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let r=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&Ec(e)&&!this.ignoreSelectionChange(r),s=-1,o=-1,l=!1,a=[];if(e.editable)for(let d=0;d<t.length;d++){let u=this.registerMutation(t[d],a);u&&(s=s<0?u.from:Math.min(u.from,s),o=o<0?u.to:Math.max(u.to,o),u.typeOver&&(l=!0))}if(a.some(d=>d.nodeName==\"BR\")&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46||te&&(e.composing||e.input.compositionEndedAt>Date.now()-50)&&t.some(d=>d.type==\"childList\"&&d.removedNodes.length))){for(let d of a)if(d.nodeName==\"BR\"&&d.parentNode){let u=d.nextSibling;for(;u&&C(u);){if(u.contentEditable==\"false\"){d.parentNode.removeChild(d);break}u=u.firstChild}}}else if(ge&&a.length){let d=a.filter(u=>u.nodeName==\"BR\");if(d.length==2){let[u,f]=d;u.parentNode&&u.parentNode.parentNode==f.parentNode?f.remove():u.remove()}else{let{focusNode:u}=this.currentSelection;for(let f of d){let h=f.parentNode;h&&h.nodeName==\"LI\"&&(!u||wm(e,u)!=h)&&f.remove()}}}let c=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&Kr(r)&&(c=So(e))&&c.eq(R.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,Je(e),this.currentSelection.set(r),e.scrollToSelection()):(s>-1||i)&&(s>-1&&(e.docView.markDirty(s,o),km(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,vm(e,a)),this.handleDOMChange(s,o,l,a),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(r)||Je(e),this.currentSelection.set(r))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let r=this.view.docView.nearestDesc(e.target);if(e.type==\"attributes\"&&(r==this.view.docView||e.attributeName==\"contenteditable\"||e.attributeName==\"style\"&&!e.oldValue&&!e.target.getAttribute(\"style\"))||!r||r.ignoreMutation(e))return null;if(e.type==\"childList\"){for(let d=0;d<e.addedNodes.length;d++){let u=e.addedNodes[d];t.push(u),G(u)&&(this.lastChangedTextNode=u)}if(r.contentDOM&&r.contentDOM!=r.dom&&!r.contentDOM.contains(e.target))return{from:r.posBefore,to:r.posAfter};let i=e.previousSibling,s=e.nextSibling;if(he&&ot<=11&&e.addedNodes.length)for(let d=0;d<e.addedNodes.length;d++){let{previousSibling:u,nextSibling:f}=e.addedNodes[d];(!u||Array.prototype.indexOf.call(e.addedNodes,u)<0)&&(i=u),(!f||Array.prototype.indexOf.call(e.addedNodes,f)<0)&&(s=f)}let o=i&&i.parentNode==e.target?ee(i)+1:0,l=r.localPosFromDOM(e.target,o,-1),a=s&&s.parentNode==e.target?ee(s):e.target.childNodes.length,c=r.localPosFromDOM(e.target,a,1);return{from:l,to:c}}else return e.type==\"attributes\"?{from:r.posAtStart-r.border,to:r.posAtEnd+r.border}:(this.lastChangedTextNode=e.target,{from:r.posAtStart,to:r.posAtEnd,typeOver:e.target.nodeValue==e.oldValue})}},Dc=new WeakMap,Lc=!1;function km(n){if(!Dc.has(n)&&(Dc.set(n,null),[\"normal\",\"nowrap\",\"pre-line\"].indexOf(getComputedStyle(n.dom).whiteSpace)!==-1)){if(n.requiresGeckoHackNode=ge,Lc)return;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.\"),Lc=!0}}function Pc(n,e){let t=e.startContainer,r=e.startOffset,i=e.endContainer,s=e.endOffset,o=n.domAtPos(n.state.selection.anchor);return At(o.node,o.offset,i,s)&&([t,r,i,s]=[i,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:i,focusOffset:s}}function Sm(n,e){if(e.getComposedRanges){let i=e.getComposedRanges(n.root)[0];if(i)return Pc(n,i)}let t;function r(i){i.preventDefault(),i.stopImmediatePropagation(),t=i.getTargetRanges()[0]}return n.dom.addEventListener(\"beforeinput\",r,!0),document.execCommand(\"indent\"),n.dom.removeEventListener(\"beforeinput\",r,!0),t?Pc(n,t):null}function wm(n,e){for(let t=e.parentNode;t&&t!=n.dom;t=t.parentNode){let r=n.docView.nearestDesc(t,!0);if(r&&r.node.isBlock)return t}return null}function vm(n,e){var t;let{focusNode:r,focusOffset:i}=n.domSelectionRange();for(let s of e)if(((t=s.parentNode)===null||t===void 0?void 0:t.nodeName)==\"TR\"){let o=s.nextSibling;for(;o&&o.nodeName!=\"TD\"&&o.nodeName!=\"TH\";)o=o.nextSibling;if(o){let l=o;for(;;){let a=l.firstChild;if(!a||!C(a)||a.contentEditable==\"false\"||/^(BR|IMG)$/.test(a.nodeName))break;l=a}l.insertBefore(s,l.firstChild),r==s&&n.domSelection().collapse(s,i)}else s.parentNode.removeChild(s)}}function Tm(n,e,t,r){let{node:i,fromOffset:s,toOffset:o,from:l,to:a}=n.docView.parseRange(e,t),c=n.domSelectionRange(),d,u=c.anchorNode;if(u&&Rt(n.dom,u)&&(d=[{node:u,offset:c.anchorOffset}],Kr(c)||d.push({node:c.focusNode,offset:c.focusOffset})),te&&n.input.lastKeyCode===8)for(let y=o;y>s;y--){let b=i.childNodes[y-1],w=b.pmViewDesc;if(b.nodeName==\"BR\"&&!w){o=y;break}if(!w||w.size)break}let f=n.state.doc,h=n.someProp(\"domParser\")||xe.fromSchema(n.state.schema),p=f.resolve(l),m=null,g=h.parse(i,{topNode:p.parent,topMatch:p.parent.contentMatchAt(p.index()),topOpen:!0,from:s,to:o,preserveWhitespace:p.parent.type.whitespace==\"pre\"?\"full\":!0,findPositions:d,ruleFromNode:Em(r),context:p});if(d&&d[0].pos!=null){let y=d[0].pos,b=d[1]&&d[1].pos;b==null&&(b=y),m={anchor:y+l,head:b+l}}return{doc:g,sel:m,from:l,to:a}}var Em=n=>e=>{let t=e.pmViewDesc;if(t)return t.parseRule(n);if(e.nodeName==\"BR\"&&e.parentNode){if(le&&/^(ul|ol)$/i.test(e.parentNode.nodeName)){let r=document.createElement(\"div\");return r.appendChild(document.createElement(\"li\")),{skip:r}}else if(e.parentNode.lastChild==e||le&&/^(tr|table)$/i.test(e.parentNode.nodeName))return{ignore:!0}}else if(e.nodeName==\"IMG\"&&e.getAttribute(\"mark-placeholder\"))return{ignore:!0};return null},Mm=/^(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;function Cm(n,e,t,r,i){let s=n.input.compositionPendingChanges||(n.composing?n.input.compositionID:0);if(n.input.compositionPendingChanges=0,e<0){let A=n.input.lastSelectionTime>Date.now()-50?n.input.lastSelectionOrigin:null,z=So(n,A);if(z&&!n.state.selection.eq(z)){if(te&&Ke&&n.input.lastKeyCode===13&&Date.now()-100<n.input.lastKeyCodeTime&&n.someProp(\"handleKeyDown\",Q=>Q(n,St(13,\"Enter\"))))return;let F=n.state.tr.setSelection(z);A==\"pointer\"?F.setMeta(\"pointer\",!0):A==\"key\"&&F.scrollIntoView(),s&&F.setMeta(\"composition\",s),n.dispatch(F)}return}let o=n.state.doc.resolve(e),l=o.sharedDepth(t);e=o.before(l+1),t=n.state.doc.resolve(t).after(l+1);let a=n.state.selection,c=Tm(n,e,t,i),d=n.state.doc,u=d.slice(c.from,c.to),f,h;n.input.lastKeyCode===8&&Date.now()-100<n.input.lastKeyCodeTime?(f=n.state.selection.to,h=\"end\"):(f=n.state.selection.from,h=\"start\"),n.input.lastKeyCode=null;let p=Om(u.content,c.doc.content,c.from,f,h);if(p&&n.input.domChangeCount++,(Yt&&n.input.lastIOSEnter>Date.now()-225||Ke)&&i.some(A=>C(A)&&!Mm.test(A.nodeName))&&(!p||p.endA>=p.endB)&&n.someProp(\"handleKeyDown\",A=>A(n,St(13,\"Enter\")))){n.input.lastIOSEnter=0;return}if(!p)if(r&&a instanceof T&&!a.empty&&a.$head.sameParent(a.$anchor)&&!n.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))p={start:a.from,endA:a.to,endB:a.to};else{if(c.sel){let A=Bc(n,n.state.doc,c.sel);if(A&&!A.eq(n.state.selection)){let z=n.state.tr.setSelection(A);s&&z.setMeta(\"composition\",s),n.dispatch(z)}}return}n.state.selection.from<n.state.selection.to&&p.start==p.endB&&n.state.selection instanceof T&&(p.start>n.state.selection.from&&p.start<=n.state.selection.from+2&&n.state.selection.from>=c.from?p.start=n.state.selection.from:p.endA<n.state.selection.to&&p.endA>=n.state.selection.to-2&&n.state.selection.to<=c.to&&(p.endB+=n.state.selection.to-p.endA,p.endA=n.state.selection.to)),he&&ot<=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)==\" \\xA0\"&&(p.start--,p.endA--,p.endB--);let m=c.doc.resolveNoCache(p.start-c.from),g=c.doc.resolveNoCache(p.endB-c.from),y=d.resolve(p.start),b=m.sameParent(g)&&m.parent.inlineContent&&y.end()>=p.endA;if((Yt&&n.input.lastIOSEnter>Date.now()-225&&(!b||i.some(A=>A.nodeName==\"DIV\"||A.nodeName==\"P\"))||!b&&Nm(c.doc,m.pos,g.pos))&&n.someProp(\"handleKeyDown\",A=>A(n,St(13,\"Enter\")))){n.input.lastIOSEnter=0;return}if(n.state.selection.anchor>p.start&&Rm(d,p.start,p.endA,m,g)&&n.someProp(\"handleKeyDown\",A=>A(n,St(8,\"Backspace\")))){Ke&&te&&n.domObserver.suppressSelectionUpdates();return}te&&p.endB==p.start&&(n.input.lastChromeDelete=Date.now()),Ke&&!b&&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.someProp(\"handleKeyDown\",function(A){return A(n,St(13,\"Enter\"))})},20));let w=p.start,k=p.endA,N=A=>{let z=A||n.state.tr.replace(w,k,c.doc.slice(p.start-c.from,p.endB-c.from));if(c.sel){let F=Bc(n,z.doc,c.sel);F&&!(te&&n.composing&&F.empty&&(p.start!=p.endB||n.input.lastChromeDelete<Date.now()-100)&&(F.head==w||F.head==z.mapping.map(k)-1)||he&&F.empty&&F.head==w)&&z.setSelection(F)}return s&&z.setMeta(\"composition\",s),z.scrollIntoView()},$;if(b)if(m.pos==g.pos){he&&ot<=11&&m.parentOffset==0&&(n.domObserver.suppressSelectionUpdates(),setTimeout(()=>Je(n),20));let A=N(n.state.tr.delete(w,k)),z=d.resolve(p.start).marksAcross(d.resolve(p.endA));z&&A.ensureMarks(z),n.dispatch(A)}else if(p.endA==p.endB&&($=Am(m.parent.content.cut(m.parentOffset,g.parentOffset),y.parent.content.cut(y.parentOffset,p.endA-y.start())))){let A=N(n.state.tr);$.type==\"add\"?A.addMark(w,k,$.mark):A.removeMark(w,k,$.mark),n.dispatch(A)}else if(m.parent.child(m.index()).isText&&m.index()==g.index()-(g.textOffset?0:1)){let A=m.parent.textBetween(m.parentOffset,g.parentOffset),z=()=>N(n.state.tr.insertText(A,w,k));n.someProp(\"handleTextInput\",F=>F(n,w,k,A,z))||n.dispatch(z())}else n.dispatch(N());else n.dispatch(N())}function Bc(n,e,t){return Math.max(t.anchor,t.head)>e.content.size?null:wo(n,e.resolve(t.anchor),e.resolve(t.head))}function Am(n,e){let t=n.firstChild.marks,r=e.firstChild.marks,i=t,s=r,o,l,a;for(let d=0;d<r.length;d++)i=r[d].removeFromSet(i);for(let d=0;d<t.length;d++)s=t[d].removeFromSet(s);if(i.length==1&&s.length==0)l=i[0],o=\"add\",a=d=>d.mark(l.addToSet(d.marks));else if(i.length==0&&s.length==1)l=s[0],o=\"remove\",a=d=>d.mark(l.removeFromSet(d.marks));else return null;let c=[];for(let d=0;d<e.childCount;d++)c.push(a(e.child(d)));if(x.from(c).eq(n))return{mark:l,type:o}}function Rm(n,e,t,r,i){if(t-e<=i.pos-r.pos||Qs(r,!0,!1)<i.pos)return!1;let s=n.resolve(e);if(!r.parent.isTextblock){let l=s.nodeAfter;return l!=null&&t==e+l.nodeSize}if(s.parentOffset<s.parent.content.size||!s.parent.isTextblock)return!1;let o=n.resolve(Qs(s,!0,!0));return!o.parent.isTextblock||o.pos>t||Qs(o,!0,!1)<t?!1:r.parent.content.cut(r.parentOffset).eq(o.parent.content)}function Nm(n,e,t){let r=0,i=0;return n.nodesBetween(e,t,(s,o)=>{s.isTextblock&&o>=e&&o<t?r++:(s.isText?/\\S/.test(s.text.slice(Math.max(0,e-o),Math.min(s.nodeSize,t-o))):s.isLeaf)&&i++}),i==0&&r==1}function Qs(n,e,t){let r=n.depth,i=e?n.end():n.pos;for(;r>0&&(e||n.indexAfter(r)==n.node(r).childCount);)r--,i++,e=!1;if(t){let s=n.node(r).maybeChild(n.indexAfter(r));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function Om(n,e,t,r,i){let s=n.findDiffStart(e,t),o=t+n.size,l=t+e.size;if(s==null)return null;let{a,b:c}=n.findDiffEnd(e,o,l);if(i==\"end\"){let d=Math.max(0,s-Math.min(a,c));r-=a+d-s}if(a<s&&o<l){let d=r<=s&&r>=a?s-r:0;s-=d,c=s+(c-a),a=s}else if(c<s){let d=r<=s&&r>=c?s-r:0;s-=d,a=s+(a-c),c=s}return{start:s,endA:a,endB:c}}var Bn=class{constructor(e,t){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 ho,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(_c),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=$c(this),Hc(this),this.nodeViews=Fc(this),this.docView=xc(this.state.doc,zc(this),Ys(this),this.dom,this),this.domObserver=new xo(this,(r,i,s,o)=>Cm(this,r,i,s,o)),this.domObserver.start(),Yp(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&po(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(_c),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let r in this._props)t[r]=this._props[r];t.state=this.state;for(let r in e)t[r]=e[r];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var r;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(pd(this),o=!0),this.state=e;let l=i.plugins!=e.plugins||this._props.plugins!=t.plugins;if(l||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let h=Fc(this);Dm(h,this.nodeViews)&&(this.nodeViews=h,s=!0)}(l||t.handleDOMEvents!=this._props.handleDOMEvents)&&po(this),this.editable=$c(this),Hc(this);let a=Ys(this),c=zc(this),d=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?\"reset\":e.scrollToSelection>i.scrollToSelection?\"to selection\":\"preserve\",u=s||!this.docView.matchesNode(e.doc,c,a);(u||!e.selection.eq(i.selection))&&(o=!0);let f=d==\"preserve\"&&o&&this.dom.style.overflowAnchor==null&&mp(this);if(o){this.domObserver.stop();let h=u&&(he||te)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&Im(i.selection,e.selection);if(u){let m=te?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=dm(this)),(s||!this.docView.update(e.doc,c,a,this))&&(this.docView.updateOuterDeco(c),this.docView.destroy(),this.docView=xc(e.doc,c,a,this.dom,this)),m&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(h=!0)}let p=this.input.mouseDown;h||!(p&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&Bp(this)&&p.delaySelUpdate())?Je(this,h):(td(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((r=this.dragging)===null||r===void 0)&&r.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),d==\"reset\"?this.dom.scrollTop=0:d==\"to selection\"?this.scrollToSelection():f&&gp(f)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!Rt(this.dom,e))){if(!this.someProp(\"handleScrollToSelection\",t=>t(this)))if(this.state.selection instanceof M){let t=this.docView.domAfterPos(this.state.selection.from);C(t)&&pc(this,t.getBoundingClientRect(),e)}else pc(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let t=0;t<this.directPlugins.length;t++){let r=this.directPlugins[t];r.spec.view&&this.pluginViews.push(r.spec.view(this))}for(let t=0;t<this.state.plugins.length;t++){let r=this.state.plugins[t];r.spec.view&&this.pluginViews.push(r.spec.view(this))}}else for(let t=0;t<this.pluginViews.length;t++){let r=this.pluginViews[t];r.update&&r.update(this,e)}}updateDraggedNode(e,t){let r=e.node,i=-1;if(r.from<this.state.doc.content.size&&this.state.doc.nodeAt(r.from)==r.node)i=r.from;else{let s=r.from+(this.state.doc.content.size-t.doc.content.size);(s>0&&s<this.state.doc.content.size&&this.state.doc.nodeAt(s))==r.node&&(i=s)}this.dragging=new Vr(e.slice,e.move,i<0?void 0:M.create(this.state.doc,i))}someProp(e,t){let r=this._props&&this._props[e],i;if(r!=null&&(i=t?t(r):r))return i;for(let o=0;o<this.directPlugins.length;o++){let l=this.directPlugins[o].props[e];if(l!=null&&(i=t?t(l):l))return i}let s=this.state.plugins;if(s)for(let o=0;o<s.length;o++){let l=s[o].props[e];if(l!=null&&(i=t?t(l):l))return i}}hasFocus(){if(he){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable==\"false\")return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&yp(this.dom),Je(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let t=this.dom.parentNode;t;t=t.parentNode)if(t.nodeType==9||t.nodeType==11&&t.host)return t.getSelection||(Object.getPrototypeOf(t).getSelection=()=>t.ownerDocument.getSelection()),this._root=t}return e||document}updateRoot(){this._root=null}posAtCoords(e){return wp(this,e)}coordsAtPos(e,t=1){return Xc(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,r=-1){let i=this.docView.posFromDOM(e,t,r);if(i==null)throw new RangeError(\"DOM position not inside the editor\");return i}endOfTextblock(e,t){return Cp(this,t||this.state,e)}pasteHTML(e,t){return Ln(this,\"\",e,!1,t||new ClipboardEvent(\"paste\"))}pasteText(e,t){return Ln(this,e,null,!0,t||new ClipboardEvent(\"paste\"))}serializeForClipboard(e){return vo(this,e)}destroy(){this.docView&&(Qp(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Ys(this),this),this.dom.textContent=\"\"):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,sp())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return em(this,e)}domSelectionRange(){let e=this.dom.isConnected!==!1&&this.domSelection();return e?le&&this.root.nodeType===11&&dp(this.dom.ownerDocument)==this.dom&&Sm(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}};Bn.prototype.dispatch=function(n){let e=this._props.dispatchTransaction;e?e.call(this,n):this.updateState(this.state.apply(n))};function zc(n){let e=Object.create(null);return e.class=\"ProseMirror\",e.contenteditable=String(n.editable),n.someProp(\"attributes\",t=>{if(typeof t==\"function\"&&(t=t(n.state)),t)for(let r in t)r==\"class\"?e.class+=\" \"+t[r]:r==\"style\"?e.style=(e.style?e.style+\";\":\"\")+t[r]:!e[r]&&r!=\"contenteditable\"&&r!=\"nodeName\"&&(e[r]=String(t[r]))}),e.translate||(e.translate=\"no\"),[fe.node(0,n.state.doc.content.size,e)]}function Hc(n){if(n.markCursor){let e=document.createElement(\"img\");e.className=\"ProseMirror-separator\",e.setAttribute(\"mark-placeholder\",\"true\"),e.setAttribute(\"alt\",\"\"),n.cursorWrapper={dom:e,deco:fe.widget(n.state.selection.from,e,{raw:!0,marks:n.markCursor})}}else n.cursorWrapper=null}function $c(n){return!n.someProp(\"editable\",e=>e(n.state)===!1)}function Im(n,e){let t=Math.min(n.$anchor.sharedDepth(n.head),e.$anchor.sharedDepth(e.head));return n.$anchor.start(t)!=e.$anchor.start(t)}function Fc(n){let e=Object.create(null);function t(r){for(let i in r)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=r[i])}return n.someProp(\"nodeViews\",t),n.someProp(\"markViews\",t),e}function Dm(n,e){let t=0,r=0;for(let i in n){if(n[i]!=e[i])return!0;t++}for(let i in e)r++;return t!=r}function _c(n){if(n.spec.state||n.spec.filterTransaction||n.spec.appendTransaction)throw new RangeError(\"Plugins passed directly to the view must not have a state component\")}var Xe={8:\"Backspace\",9:\"Tab\",10:\"Enter\",12:\"NumLock\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",44:\"PrintScreen\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Meta\",92:\"Meta\",106:\"*\",107:\"+\",108:\",\",109:\"-\",110:\".\",111:\"/\",144:\"NumLock\",145:\"ScrollLock\",160:\"Shift\",161:\"Shift\",162:\"Control\",163:\"Control\",164:\"Alt\",165:\"Alt\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"},Xr={48:\")\",49:\"!\",50:\"@\",51:\"#\",52:\"$\",53:\"%\",54:\"^\",55:\"&\",56:\"*\",57:\"(\",59:\":\",61:\"+\",173:\"_\",186:\":\",187:\"+\",188:\"<\",189:\"_\",190:\">\",191:\"?\",192:\"~\",219:\"{\",220:\"|\",221:\"}\",222:'\"'},Lm=typeof navigator<\"u\"&&/Mac/.test(navigator.platform),Pm=typeof navigator<\"u\"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(J=0;J<10;J++)Xe[48+J]=Xe[96+J]=String(J);var J;for(J=1;J<=24;J++)Xe[J+111]=\"F\"+J;var J;for(J=65;J<=90;J++)Xe[J]=String.fromCharCode(J+32),Xr[J]=String.fromCharCode(J);var J;for(Jr in Xe)Xr.hasOwnProperty(Jr)||(Xr[Jr]=Xe[Jr]);var Jr;function kd(n){var e=Lm&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||Pm&&n.shiftKey&&n.key&&n.key.length==1||n.key==\"Unidentified\",t=!e&&n.key||(n.shiftKey?Xr:Xe)[n.keyCode]||n.key||\"Unidentified\";return t==\"Esc\"&&(t=\"Escape\"),t==\"Del\"&&(t=\"Delete\"),t==\"Left\"&&(t=\"ArrowLeft\"),t==\"Up\"&&(t=\"ArrowUp\"),t==\"Right\"&&(t=\"ArrowRight\"),t==\"Down\"&&(t=\"ArrowDown\"),t}var Bm=typeof navigator<\"u\"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),zm=typeof navigator<\"u\"&&/Win/.test(navigator.platform);function Hm(n){let e=n.split(/-(?!$)/),t=e[e.length-1];t==\"Space\"&&(t=\" \");let r,i,s,o;for(let l=0;l<e.length-1;l++){let a=e[l];if(/^(cmd|meta|m)$/i.test(a))o=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))i=!0;else if(/^s(hift)?$/i.test(a))s=!0;else if(/^mod$/i.test(a))Bm?o=!0:i=!0;else throw new Error(\"Unrecognized modifier name: \"+a)}return r&&(t=\"Alt-\"+t),i&&(t=\"Ctrl-\"+t),o&&(t=\"Meta-\"+t),s&&(t=\"Shift-\"+t),t}function $m(n){let e=Object.create(null);for(let t in n)e[Hm(t)]=n[t];return e}function Ao(n,e,t=!0){return e.altKey&&(n=\"Alt-\"+n),e.ctrlKey&&(n=\"Ctrl-\"+n),e.metaKey&&(n=\"Meta-\"+n),t&&e.shiftKey&&(n=\"Shift-\"+n),n}function Sd(n){return new O({props:{handleKeyDown:Ro(n)}})}function Ro(n){let e=$m(n);return function(t,r){let i=kd(r),s,o=e[Ao(i,r)];if(o&&o(t.state,t.dispatch,t))return!0;if(i.length==1&&i!=\" \"){if(r.shiftKey){let l=e[Ao(i,r,!1)];if(l&&l(t.state,t.dispatch,t))return!0}if((r.altKey||r.metaKey||r.ctrlKey)&&!(zm&&r.ctrlKey&&r.altKey)&&(s=Xe[r.keyCode])&&s!=i){let l=e[Ao(s,r)];if(l&&l(t.state,t.dispatch,t))return!0}}return!1}}var Gr=200,ne=function(){};ne.prototype.append=function(e){return e.length?(e=ne.from(e),!this.length&&e||e.length<Gr&&this.leafAppend(e)||this.length<Gr&&e.leafPrepend(this)||this.appendInner(e)):this};ne.prototype.prepend=function(e){return e.length?ne.from(e).append(this):this};ne.prototype.appendInner=function(e){return new Fm(this,e)};ne.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?ne.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))};ne.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};ne.prototype.forEach=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length),t<=r?this.forEachInner(e,t,r,0):this.forEachInvertedInner(e,t,r,0)};ne.prototype.map=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},t,r),i};ne.from=function(e){return e instanceof ne?e:e&&e.length?new wd(e):ne.empty};var wd=(function(n){function e(r){n.call(this),this.values=r}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,l){for(var a=s;a<o;a++)if(i(this.values[a],l+a)===!1)return!1},e.prototype.forEachInvertedInner=function(i,s,o,l){for(var a=s-1;a>=o;a--)if(i(this.values[a],l+a)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=Gr)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=Gr)return new e(i.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e})(ne);ne.empty=new wd([]);var Fm=(function(n){function e(t,r){n.call(this),this.left=t,this.right=r,this.length=t.length+r.length,this.depth=Math.max(t.depth,r.depth)+1}return n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return r<this.left.length?this.left.get(r):this.right.get(r-this.left.length)},e.prototype.forEachInner=function(r,i,s,o){var l=this.left.length;if(i<l&&this.left.forEachInner(r,i,Math.min(s,l),o)===!1||s>l&&this.right.forEachInner(r,Math.max(i-l,0),Math.min(this.length,s)-l,o+l)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,o){var l=this.left.length;if(i>l&&this.right.forEachInvertedInner(r,i-l,Math.max(s,l)-l,o+l)===!1||s<l&&this.left.forEachInvertedInner(r,Math.min(i,l),s,o)===!1)return!1},e.prototype.sliceInner=function(r,i){if(r==0&&i==this.length)return this;var s=this.left.length;return i<=s?this.left.slice(r,i):r>=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){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)},e})(ne),No=ne;var _m=500,Ot=class n{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;t&&(i=this.remapping(r,this.items.length),s=i.maps.length);let o=e.tr,l,a,c=[],d=[];return this.items.forEach((u,f)=>{if(!u.step){i||(i=this.remapping(r,f+1),s=i.maps.length),s--,d.push(u);return}if(i){d.push(new Ie(u.map));let h=u.step.map(i.slice(s)),p;h&&o.maybeStep(h).doc&&(p=o.mapping.maps[o.mapping.maps.length-1],c.push(new Ie(p,void 0,void 0,c.length+d.length))),s--,p&&i.appendMap(p,s)}else o.maybeStep(u.step);if(u.selection)return l=i?u.selection.map(i.slice(s)):u.selection,a=new n(this.items.slice(0,r).append(d.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:a,transform:o,selection:l}}addTransform(e,t,r,i){let s=[],o=this.eventCount,l=this.items,a=!i&&l.length?l.get(l.length-1):null;for(let d=0;d<e.steps.length;d++){let u=e.steps[d].invert(e.docs[d]),f=new Ie(e.mapping.maps[d],u,t),h;(h=a&&a.merge(f))&&(f=h,d?s.pop():l=l.slice(0,l.length-1)),s.push(f),t&&(o++,t=void 0),i||(a=f)}let c=o-r.depth;return c>jm&&(l=Vm(l,c),o-=c),new n(l.append(s),o)}remapping(e,t){let r=new Tn;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},e,t),r}addMaps(e){return this.eventCount==0?this:new n(this.items.append(e.map(t=>new Ie(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;t=Math.min(this.items.length,t);let r=[],i=this.items.length-t,s=e.mapping,o=e.steps.length,l=this.eventCount;this.items.forEach(f=>{f.selection&&l--},i);let a=t;this.items.forEach(f=>{let h=s.getMirror(--a);if(h==null)return;o=Math.min(o,h);let p=s.maps[h];if(f.step){let m=e.steps[h].invert(e.docs[h]),g=f.selection&&f.selection.map(s.slice(a+1,h));g&&l++,r.push(new Ie(p,m,g))}else r.push(new Ie(p))},i);let c=[];for(let f=t;f<o;f++)c.push(new Ie(s.maps[f]));let d=this.items.slice(0,i).append(c).append(r),u=new n(d,l);return u.emptyItemCount()>_m&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),r=t.maps.length,i=[],s=0;return this.items.forEach((o,l)=>{if(l>=e)i.push(o),o.selection&&s++;else if(o.step){let a=o.step.map(t.slice(r)),c=a&&a.getMap();if(r--,c&&t.appendMap(c,r),a){let d=o.selection&&o.selection.map(t.slice(r));d&&s++;let u=new Ie(c.invert(),a,d),f,h=i.length-1;(f=i.length&&i[h].merge(u))?i[h]=f:i.push(u)}}else o.map&&r--},this.items.length,0),new n(No.from(i.reverse()),s)}};Ot.empty=new Ot(No.empty,0);function Vm(n,e){let t;return n.forEach((r,i)=>{if(r.selection&&e--==0)return t=i,!1}),n.slice(t)}var Ie=class n{constructor(e,t,r,i){this.map=e,this.step=t,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new n(t.getMap().invert(),t,this.selection)}}},De=class{constructor(e,t,r,i,s){this.done=e,this.undone=t,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}},jm=20;function Wm(n,e,t,r){let i=t.getMeta(ct),s;if(i)return i.historyState;t.getMeta(Md)&&(n=new De(n.done,n.undone,null,0,-1));let o=t.getMeta(\"appendedTransaction\");if(t.steps.length==0)return n;if(o&&o.getMeta(ct))return o.getMeta(ct).redo?new De(n.done.addTransform(t,void 0,r,Yr(e)),n.undone,vd(t.mapping.maps),n.prevTime,n.prevComposition):new De(n.done,n.undone.addTransform(t,void 0,r,Yr(e)),null,n.prevTime,n.prevComposition);if(t.getMeta(\"addToHistory\")!==!1&&!(o&&o.getMeta(\"addToHistory\")===!1)){let l=t.getMeta(\"composition\"),a=n.prevTime==0||!o&&n.prevComposition!=l&&(n.prevTime<(t.time||0)-r.newGroupDelay||!Um(t,n.prevRanges)),c=o?Oo(n.prevRanges,t.mapping):vd(t.mapping.maps);return new De(n.done.addTransform(t,a?e.selection.getBookmark():void 0,r,Yr(e)),Ot.empty,c,t.time,l??n.prevComposition)}else return(s=t.getMeta(\"rebased\"))?new De(n.done.rebased(t,s),n.undone.rebased(t,s),Oo(n.prevRanges,t.mapping),n.prevTime,n.prevComposition):new De(n.done.addMaps(t.mapping.maps),n.undone.addMaps(t.mapping.maps),Oo(n.prevRanges,t.mapping),n.prevTime,n.prevComposition)}function Um(n,e){if(!e)return!1;if(!n.docChanged)return!0;let t=!1;return n.mapping.maps[0].forEach((r,i)=>{for(let s=0;s<e.length;s+=2)r<=e[s+1]&&i>=e[s]&&(t=!0)}),t}function vd(n){let e=[];for(let t=n.length-1;t>=0&&e.length==0;t--)n[t].forEach((r,i,s,o)=>e.push(s,o));return e}function Oo(n,e){if(!n)return null;let t=[];for(let r=0;r<n.length;r+=2){let i=e.map(n[r],1),s=e.map(n[r+1],-1);i<=s&&t.push(i,s)}return t}function Km(n,e,t){let r=Yr(e),i=ct.get(e).spec.config,s=(t?n.undone:n.done).popEvent(e,r);if(!s)return null;let o=s.selection.resolve(s.transform.doc),l=(t?n.done:n.undone).addTransform(s.transform,e.selection.getBookmark(),i,r),a=new De(t?l:s.remaining,t?s.remaining:l,null,0,-1);return s.transform.setSelection(o).setMeta(ct,{redo:t,historyState:a})}var Io=!1,Td=null;function Yr(n){let e=n.plugins;if(Td!=e){Io=!1,Td=e;for(let t=0;t<e.length;t++)if(e[t].spec.historyPreserveItems){Io=!0;break}}return Io}function Ed(n){return n.setMeta(Md,!0)}var ct=new H(\"history\"),Md=new H(\"closeHistory\");function Cd(n={}){return n={depth:n.depth||100,newGroupDelay:n.newGroupDelay||500},new O({key:ct,state:{init(){return new De(Ot.empty,Ot.empty,null,0,-1)},apply(e,t,r){return Wm(t,r,e,n)}},config:n,props:{handleDOMEvents:{beforeinput(e,t){let r=t.inputType,i=r==\"historyUndo\"?Do:r==\"historyRedo\"?Lo:null;return!i||!e.editable?!1:(t.preventDefault(),i(e.state,e.dispatch))}}}})}function Qr(n,e){return(t,r)=>{let i=ct.getState(t);if(!i||(n?i.undone:i.done).eventCount==0)return!1;if(r){let s=Km(i,t,n);s&&r(e?s.scrollIntoView():s)}return!0}}var Do=Qr(!1,!0),Lo=Qr(!0,!0),Jk=Qr(!1,!1),Xk=Qr(!0,!1);function Ad(n){return n.getMeta(ct)!=null}function si(n){let{state:e,transaction:t}=n,{selection:r}=t,{doc:i}=t,{storedMarks:s}=t;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return s},get selection(){return r},get doc(){return i},get tr(){return r=t.selection,i=t.doc,s=t.storedMarks,t}}}var nn=class Ud{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){let{rawCommands:e,editor:t,state:r}=this,{view:i}=t,{tr:s}=r,o=this.buildProps(s);return Object.fromEntries(Object.entries(e).map(([l,a])=>[l,(...d)=>{let u=a(...d)(o);return!s.getMeta(\"preventDispatch\")&&!this.hasCustomState&&i.dispatch(s),u}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:r,editor:i,state:s}=this,{view:o}=i,l=[],a=!!e,c=e||s.tr,d=()=>(!a&&t&&!c.getMeta(\"preventDispatch\")&&!this.hasCustomState&&o.dispatch(c),l.every(f=>f===!0)),u={...Object.fromEntries(Object.entries(r).map(([f,h])=>[f,(...m)=>{let g=this.buildProps(c,t),y=h(...m)(g);return l.push(y),u}])),run:d};return u}static createFakeChain(){let e=new Proxy({},{get:(t,r)=>{if(r!==\"then\")return r===\"run\"?()=>!1:()=>e}});return e}createCan(e){let{rawCommands:t,state:r}=this,i=!1,s=e||r.tr,o=this.buildProps(s,i);return{...Object.fromEntries(Object.entries(t).map(([l,a])=>[l,(...c)=>a(...c)({...o,dispatch:void 0})])),chain:()=>this.createChain(s,i)}}static createFallbackCan(){let e=Ud.createFakeChain();return new Proxy({chain:()=>e},{get:(t,r)=>{if(r!==\"then\")return r===\"chain\"?t.chain:()=>!1}})}buildProps(e,t=!0){let{rawCommands:r,editor:i,state:s}=this,{view:o}=i,l={tr:e,editor:i,view:o,state:si({state:s,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([a,c])=>[a,(...d)=>c(...d)(l)]))}};return l}},qm=()=>({editor:n,view:e})=>(requestAnimationFrame(()=>{if(!n.isDestroyed){var t;e.dom.blur(),(t=window)===null||t===void 0||(t=t.getSelection())===null||t===void 0||t.removeAllRanges()}}),!0),Jm=(n=!0)=>({commands:e})=>e.setContent(\"\",{emitUpdate:n}),Xm=()=>({state:n,tr:e,dispatch:t})=>{let{selection:r}=e,{ranges:i}=r;return t&&i.forEach(({$from:s,$to:o})=>{n.doc.nodesBetween(s.pos,o.pos,(l,a)=>{if(l.type.isText)return;let{doc:c,mapping:d}=e,u=c.resolve(d.map(a)),f=c.resolve(d.map(a+l.nodeSize)),h=u.blockRange(f);if(!h)return;let p=je(h);if(l.type.isTextblock){let{defaultType:m}=u.parent.contentMatchAt(u.index());e.setNodeMarkup(h.start,m)}(p||p===0)&&e.lift(h,p)})}),!0},Gm=n=>e=>n(e),Ym=()=>({state:n,dispatch:e})=>js(n,e),Qm=(n,e)=>({editor:t,tr:r})=>{let{state:i}=t,s=i.doc.slice(n.from,n.to);r.deleteRange(n.from,n.to);let o=r.mapping.map(e);return r.insert(o,s.content),r.setSelection(new T(r.doc.resolve(Math.max(o-1,0)))),!0},Zm=()=>({tr:n,dispatch:e})=>{let{selection:t}=n,r=t.$anchor.node();if(r.content.size>0)return!1;let i=n.selection.$anchor;for(let s=i.depth;s>0;s-=1)if(i.node(s).type===r.type){if(e){let o=i.before(s),l=i.after(s);n.delete(o,l).scrollIntoView()}return!0}return!1};function X(n,e){if(typeof n==\"string\"){if(!e.nodes[n])throw Error(`There is no node type named '${n}'. Maybe you forgot to add the extension?`);return e.nodes[n]}return n}var eg=n=>({tr:e,state:t,dispatch:r})=>{let i=X(n,t.schema),s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===i){if(r){let l=s.before(o),a=s.after(o);e.delete(l,a).scrollIntoView()}return!0}return!1},tg=n=>({tr:e,dispatch:t})=>{let{from:r,to:i}=n;return t&&e.delete(r,i),!0},ng=n=>n.content?/^text(\\*|\\+)/.test(n.content):!1,Rd=(n,e,t)=>{if(!n.parent.isInline||t===\"left\"&&n.pos>n.start()||t===\"right\"&&n.pos<n.end())return n.pos;let r=e.nodes[n.parent.type.name].spec;return ng(r)?t===\"left\"?n.start()-1:n.end()+1:n.pos},rg=(n,e,t)=>({from:Rd(n,t,\"left\"),to:Rd(e,t,\"right\")}),ig=()=>({state:n,dispatch:e})=>{if(n.selection.empty)return!1;if(e){let t=n.tr,{ranges:r}=n.selection,i=t.steps.length;r.forEach(s=>{let o=t.mapping.slice(i),l=t.doc.resolve(o.map(s.$from.pos)),a=t.doc.resolve(o.map(s.$to.pos)),{from:c,to:d}=rg(l,a,n.schema);t.deleteRange(c,d)}),t.selection.empty||t.setSelection(T.near(t.doc.resolve(t.selection.from))),t.scrollIntoView(),e(t)}return!0},sg=()=>({commands:n})=>n.keyboardShortcut(\"Enter\"),og=()=>({state:n,dispatch:e})=>Vs(n,e);function Vo(n){return Object.prototype.toString.call(n)===\"[object RegExp]\"}function ri(n,e,t={strict:!0}){let r=Object.keys(e);return r.length?r.every(i=>t.strict?e[i]===n[i]:Vo(e[i])?e[i].test(n[i]):e[i]===n[i]):!0}function Kd(n,e,t={}){return n.find(r=>r.type===e&&ri(Object.fromEntries(Object.keys(t).map(i=>[i,r.attrs[i]])),t))}function Nd(n,e,t={}){return!!Kd(n,e,t)}function jo(n,e,t){if(!n||!e)return;let r=n.parent.childAfter(n.parentOffset);if((!r.node||!r.node.marks.some(a=>a.type===e))&&(r=n.parent.childBefore(n.parentOffset)),!r.node||!r.node.marks.some(a=>a.type===e))return;if(!t){let a=r.node.marks.find(c=>c.type===e);a&&(t=a.attrs)}if(!Kd([...r.node.marks],e,t))return;let i=r.index,s=n.start()+r.offset,o=i+1,l=s+r.node.nodeSize;for(;i>0&&Nd([...n.parent.child(i-1).marks],e,t);)i-=1,s-=n.parent.child(i).nodeSize;for(;o<n.parent.childCount&&Nd([...n.parent.child(o).marks],e,t);)l+=n.parent.child(o).nodeSize,o+=1;return{from:s,to:l}}function Ge(n,e){if(typeof n==\"string\"){if(!e.marks[n])throw Error(`There is no mark type named '${n}'. Maybe you forgot to add the extension?`);return e.marks[n]}return n}var lg=(n,e)=>({tr:t,state:r,dispatch:i})=>{let s=Ge(n,r.schema),{doc:o,selection:l}=t,{$from:a,from:c,to:d}=l;if(i){let u=jo(a,s,e);if(u&&u.from<=c&&u.to>=d){let f=T.create(o,u.from,u.to);t.setSelection(f)}}return!0},ag=n=>e=>{let t=typeof n==\"function\"?n(e):n;for(let r=0;r<t.length;r+=1)if(t[r](e))return!0;return!1};function qd(n){return n instanceof T}function It(n=0,e=0,t=0){return Math.min(Math.max(n,e),t)}function Ho(n,e=null){if(!e)return null;let t=R.atStart(n),r=R.atEnd(n);if(e===\"start\"||e===!0)return t;if(e===\"end\")return r;let i=t.from,s=r.to;return e===\"all\"?T.create(n,It(0,i,s),It(n.content.size,i,s)):T.create(n,It(e,i,s),It(e,i,s))}function Od(){return[\"Android\"].includes(navigator.platform)||/android/i.test(navigator.userAgent)}function ii(){return[\"iPad Simulator\",\"iPhone Simulator\",\"iPod Simulator\",\"iPad\",\"iPhone\",\"iPod\"].includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"ontouchend\"in document}function cg(){return typeof navigator<\"u\"?/^((?!chrome|android).)*safari/i.test(navigator.userAgent):!1}var dg=(n=null,e={})=>({editor:t,view:r,tr:i,dispatch:s})=>{e={scrollIntoView:!0,...e};let o=()=>{(ii()||Od())&&r.dom.focus(),cg()&&!ii()&&!Od()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{t.isDestroyed||(r.focus(),e?.scrollIntoView&&t.commands.scrollIntoView())})};try{if(r.hasFocus()&&n===null||n===!1)return!0}catch{return!1}if(s&&n===null&&!qd(t.state.selection))return o(),!0;let l=Ho(i.doc,n)||t.state.selection,a=t.state.selection.eq(l);return s&&(a||i.setSelection(l),a&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},ug=(n,e)=>t=>n.every((r,i)=>e(r,{...t,index:i})),fg=(n,e)=>({tr:t,commands:r})=>r.insertContentAt({from:t.selection.from,to:t.selection.to},n,e),Jd=n=>{let e=n.childNodes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];r.nodeType===3&&r.nodeValue&&/^(\\n\\s\\s|\\n)$/.test(r.nodeValue)?n.removeChild(r):r.nodeType===1&&Jd(r)}return n};function Zr(n){if(typeof window>\"u\")throw new Error(\"[tiptap error]: there is no window object available, so this function cannot be used\");let e=`<body>${n}</body>`,t=new window.DOMParser().parseFromString(e,\"text/html\").body;return Jd(t)}function Xd(n){return typeof n?.nodesBetween==\"function\"}function rn(n,e,t){if(Xd(n))return n;let r=typeof n==\"object\"&&n!==null;t={slice:!0,parseOptions:{},...t};let i=typeof n==\"string\";if(r)try{if(Array.isArray(n)&&n.length>0)return x.fromArray(n.map(o=>e.nodeFromJSON(o)));let s=e.nodeFromJSON(n);return t.errorOnInvalidContent&&s.check(),s}catch(s){if(t.errorOnInvalidContent)throw new Error(\"[tiptap error]: Invalid JSON content\",{cause:s});return console.warn(\"[tiptap warn]: Invalid content.\",\"Passed value:\",n,\"Error:\",s),rn(\"\",e,t)}if(i){if(t.errorOnInvalidContent){let o=!1,l=\"\",a=new xn({topNode:e.spec.topNode,marks:e.spec.marks,nodes:e.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:\"inline*\",group:\"block\",parseDOM:[{tag:\"*\",getAttrs:c=>(o=!0,l=typeof c==\"string\"?c:c.outerHTML,null)}]}})});if(t.slice?xe.fromSchema(a).parseSlice(Zr(n),t.parseOptions):xe.fromSchema(a).parse(Zr(n),t.parseOptions),t.errorOnInvalidContent&&o)throw new Error(\"[tiptap error]: Invalid HTML content\",{cause:new Error(`Invalid element found: ${l}`)})}let s=xe.fromSchema(e);return t.slice?s.parseSlice(Zr(n),t.parseOptions).content:s.parse(Zr(n),t.parseOptions)}return rn(\"\",e,t)}function Gd(n){return!(\"type\"in n)}function Yd(n,e,t){let r=n.steps.length-1;if(r<e)return;let i=n.steps[r];if(!(i instanceof K||i instanceof q))return;let s=n.mapping.maps[r],o=0;s.forEach((l,a,c,d)=>{o===0&&(o=d)}),n.setSelection(R.near(n.doc.resolve(o),t))}var hg=(n,e,t)=>({tr:r,dispatch:i,editor:s})=>{if(i){t={parseOptions:s.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...t};let l,a=g=>{s.emit(\"contentError\",{editor:s,error:g,disableCollaboration:()=>{\"collaboration\"in s.storage&&typeof s.storage.collaboration==\"object\"&&s.storage.collaboration&&(s.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:\"full\",...t.parseOptions};if(!t.errorOnInvalidContent&&!s.options.enableContentCheck&&s.options.emitContentError)try{rn(e,s.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(g){a(g)}try{var o;l=rn(e,s.schema,{parseOptions:c,errorOnInvalidContent:(o=t.errorOnInvalidContent)!==null&&o!==void 0?o:s.options.enableContentCheck})}catch(g){return a(g),!1}let{from:d,to:u}=typeof n==\"number\"?{from:n,to:n}:{from:n.from,to:n.to},f=!0,h=!0,p=Gd(l)?l.content:[l];if(p.forEach(g=>{g.check(),f=f?g.isText&&g.marks.length===0:!1,h=h?g.isBlock:!1}),d===u&&h){let{parent:g}=r.doc.resolve(d);g.isTextblock&&!g.type.spec.code&&!g.childCount&&(d-=1,u+=1)}let m;if(f)Array.isArray(e)?m=e.map(g=>g.text||\"\").join(\"\"):Xd(e)?m=p.map(g=>{var y;return(y=g.text)!==null&&y!==void 0?y:\"\"}).join(\"\"):typeof e==\"object\"&&e&&e.text?m=e.text:m=e,r.insertText(m,d,u);else{m=x.from(p);let g=r.doc.resolve(d),y=g.node(),b=g.parentOffset===0,w=y.isText||y.isTextblock,k=y.content.size>0;b&&w&&k&&h&&(d=Math.max(0,d-1)),r.replaceWith(d,u,p)}t.updateSelection&&Yd(r,r.steps.length-1,-1),t.applyInputRules&&r.setMeta(\"applyInputRules\",{from:d,text:m}),t.applyPasteRules&&r.setMeta(\"applyPasteRules\",{from:d,text:m})}return!0};function Qd(n){for(let e=0;e<n.edgeCount;e+=1){let{type:t}=n.edge(e);if(t.isTextblock&&!t.hasRequiredAttrs())return t}return null}var pg=(n={})=>({tr:e,dispatch:t,editor:r})=>{let{pos:i,attrs:s,content:o,updateSelection:l=!0}=n,a;typeof i==\"number\"?a=e.doc.resolve(i):i?a=i:a=e.selection.$from;let c=Qd(a.parent.contentMatchAt(a.index()));if(!c)return!1;let d=Object.keys(c.spec.attrs||{}),u=s?Object.fromEntries(Object.entries(s).filter(([h])=>d.includes(h))):{},f;if(o){let h=rn(o,r.schema);f=c.createAndFill(u,h)}else f=c.createAndFill(u);return f?(t&&(e.insert(a.pos,f),l&&Yd(e,e.steps.length-1,-1)),!0):!1},mg=()=>({state:n,dispatch:e})=>nc(n,e),gg=()=>({state:n,dispatch:e})=>rc(n,e),yg=()=>({state:n,dispatch:e})=>Ls(n,e),bg=()=>({state:n,dispatch:e})=>zs(n,e),Zd=(n,e)=>{let t=n.resolve(e),r=t.nodeBefore,i=t.nodeAfter;return!r||!i?!1:!r.type.spec.isolating&&!i.type.spec.isolating},xg=()=>({state:n,dispatch:e,tr:t})=>{try{let r=Wt(n.doc,n.selection.$from.pos,-1);return r==null||!Zd(n.doc,r)?!1:(t.join(r,2),e&&e(t),!0)}catch{return!1}},kg=()=>({state:n,dispatch:e,tr:t})=>{try{let r=Wt(n.doc,n.selection.$from.pos,1);return r==null||!Zd(n.doc,r)?!1:(t.join(r,2),e&&e(t),!0)}catch{return!1}},Sg=()=>({state:n,dispatch:e})=>Qa(n,e),wg=()=>({state:n,dispatch:e})=>Za(n,e);function eu(){return typeof navigator<\"u\"?/Mac/.test(navigator.platform):!1}function vg(n){let e=n.split(/-(?!$)/),t=e[e.length-1];t===\"Space\"&&(t=\" \");let r,i,s,o;for(let l=0;l<e.length-1;l+=1){let a=e[l];if(/^(cmd|meta|m)$/i.test(a))o=!0;else if(/^a(lt)?$/i.test(a))r=!0;else if(/^(c|ctrl|control)$/i.test(a))i=!0;else if(/^s(hift)?$/i.test(a))s=!0;else if(/^mod$/i.test(a))ii()||eu()?o=!0:i=!0;else throw new Error(`Unrecognized modifier name: ${a}`)}return r&&(t=`Alt-${t}`),i&&(t=`Ctrl-${t}`),o&&(t=`Meta-${t}`),s&&(t=`Shift-${t}`),t}var Tg=n=>({editor:e,view:t,tr:r,dispatch:i})=>{let s=vg(n).split(/-(?!$)/),o=s.find(c=>![\"Alt\",\"Ctrl\",\"Meta\",\"Shift\"].includes(c)),l=new KeyboardEvent(\"keydown\",{key:o===\"Space\"?\" \":o,altKey:s.includes(\"Alt\"),ctrlKey:s.includes(\"Ctrl\"),metaKey:s.includes(\"Meta\"),shiftKey:s.includes(\"Shift\"),bubbles:!0,cancelable:!0}),a=e.captureTransaction(()=>{t.someProp(\"handleKeyDown\",c=>c(t,l))});return a?.steps.forEach(c=>{let d=c.map(r.mapping);d&&i&&r.maybeStep(d)}),!0};function Le(n,e,t={}){let{from:r,to:i,empty:s}=n.selection,o=e?X(e,n.schema):null,l=[];n.doc.nodesBetween(r,i,(d,u)=>{if(d.isText)return;let f=Math.max(r,u),h=Math.min(i,u+d.nodeSize);l.push({node:d,from:f,to:h})});let a=i-r,c=l.filter(d=>o?o.name===d.node.type.name:!0).filter(d=>ri(d.node.attrs,t,{strict:!1}));return s?!!c.length:c.reduce((d,u)=>d+u.to-u.from,0)>=a}var Eg=(n,e={})=>({state:t,dispatch:r})=>Le(t,X(n,t.schema),e)?ic(t,r):!1,Mg=()=>({state:n,dispatch:e})=>Ws(n,e),Cg=n=>({state:e,dispatch:t})=>{let r=X(n,e.schema);return dc(r)(e,t)},Ag=()=>({state:n,dispatch:e})=>Fs(n,e);function oi(n,e){return e.nodes[n]?\"node\":e.marks[n]?\"mark\":null}function Id(n,e){let t=typeof e==\"string\"?[e]:e;return Object.keys(n).reduce((r,i)=>(t.includes(i)||(r[i]=n[i]),r),{})}var Rg=(n,e)=>({tr:t,state:r,dispatch:i})=>{let s=null,o=null,l=oi(typeof n==\"string\"?n:n.name,r.schema);if(!l)return!1;l===\"node\"&&(s=X(n,r.schema)),l===\"mark\"&&(o=Ge(n,r.schema));let a=!1;return t.selection.ranges.forEach(c=>{r.doc.nodesBetween(c.$from.pos,c.$to.pos,(d,u)=>{s&&s===d.type&&(a=!0,i&&t.setNodeMarkup(u,void 0,Id(d.attrs,e))),o&&d.marks.length&&d.marks.forEach(f=>{o===f.type&&(a=!0,i&&t.addMark(u,u+d.nodeSize,o.create(Id(f.attrs,e))))})})}),a},Ng=()=>({tr:n,dispatch:e})=>(e&&n.scrollIntoView(),!0),Og=()=>({tr:n,dispatch:e})=>{if(e){let t=new ce(n.doc);n.setSelection(t)}return!0},Ig=()=>({state:n,dispatch:e})=>Ps(n,e),Dg=()=>({state:n,dispatch:e})=>Hs(n,e),Lg=()=>({state:n,dispatch:e})=>sc(n,e),Pg=()=>({state:n,dispatch:e})=>Ks(n,e),Bg=()=>({state:n,dispatch:e})=>Us(n,e);function $o(n,e,t={},r={}){return rn(n,e,{slice:!1,parseOptions:t,errorOnInvalidContent:r.errorOnInvalidContent})}var zg=(n,{errorOnInvalidContent:e,emitUpdate:t=!0,parseOptions:r={}}={})=>({editor:i,tr:s,dispatch:o,commands:l})=>{let{doc:a}=s;if(r.preserveWhitespace!==\"full\"){let c=$o(n,i.schema,r,{errorOnInvalidContent:e??i.options.enableContentCheck});if(o){let d=Gd(c)?c.content:[c];s.replaceWith(0,a.content.size,d).setMeta(\"preventUpdate\",!t)}return!0}return o&&s.setMeta(\"preventUpdate\",!t),l.insertContentAt({from:0,to:a.content.size},n,{parseOptions:r,errorOnInvalidContent:e??i.options.enableContentCheck})};function tu(n,e){let t=Ge(e,n.schema),{from:r,to:i,empty:s}=n.selection,o=[];s?(n.storedMarks&&o.push(...n.storedMarks),o.push(...n.selection.$head.marks())):n.doc.nodesBetween(r,i,a=>{o.push(...a.marks)});let l=o.find(a=>a.type.name===t.name);return l?{...l.attrs}:{}}function Wo(n,e){let t=new Vt(n);return e.forEach(r=>{r.steps.forEach(i=>{t.step(i)})}),t}function nu(n,e,t){let r=[];return n.nodesBetween(e.from,e.to,(i,s)=>{t(i)&&r.push({node:i,pos:s})}),r}function Hg(n,e){for(let t=n.depth;t>0;t-=1){let r=n.node(t);if(e(r))return{pos:t>0?n.before(t):0,start:n.start(t),depth:t,node:r}}}function li(n){return e=>Hg(e.$from,n)}function E(n,e,t){return n.config[e]===void 0&&n.parent?E(n.parent,e,t):typeof n.config[e]==\"function\"?n.config[e].bind({...t,parent:n.parent?E(n.parent,e,t):null}):n.config[e]}function Uo(n){return n.map(e=>{let t=E(e,\"addExtensions\",{name:e.name,options:e.options,storage:e.storage});return t?[e,...Uo(t())]:e}).flat(10)}function Ko(n,e){let t=Fe.fromSchema(e).serializeFragment(n),r=document.implementation.createHTMLDocument().createElement(\"div\");return r.appendChild(t),r.innerHTML}function Fo(n){return typeof n==\"function\"}function B(n,e=void 0,...t){return Fo(n)?e?n.bind(e)(...t):n(...t):n}function $g(n={}){return Object.keys(n).length===0&&n.constructor===Object}function sn(n){return{baseExtensions:n.filter(e=>e.type===\"extension\"),nodeExtensions:n.filter(e=>e.type===\"node\"),markExtensions:n.filter(e=>e.type===\"mark\")}}function ru(n){let e=[],{nodeExtensions:t,markExtensions:r}=sn(n),i=[...t,...r],s={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},o=t.filter(c=>c.name!==\"text\").map(c=>c.name),l=r.map(c=>c.name),a=[...o,...l];return n.forEach(c=>{let d=E(c,\"addGlobalAttributes\",{name:c.name,options:c.options,storage:c.storage,extensions:i});d&&d().forEach(u=>{let f;Array.isArray(u.types)?f=u.types:u.types===\"*\"?f=a:u.types===\"nodes\"?f=o:u.types===\"marks\"?f=l:f=[],f.forEach(h=>{Object.entries(u.attributes).forEach(([p,m])=>{e.push({type:h,name:p,attribute:{...s,...m}})})})})}),i.forEach(c=>{let d=E(c,\"addAttributes\",{name:c.name,options:c.options,storage:c.storage});if(!d)return;let u=d();Object.entries(u).forEach(([f,h])=>{let p={...s,...h};typeof p?.default==\"function\"&&(p.default=p.default()),p?.isRequired&&p?.default===void 0&&delete p.default,e.push({type:c.name,name:f,attribute:p})})}),e}function Fg(n){let e=[],t=\"\",r=!1,i=!1,s=0,o=n.length;for(let l=0;l<o;l+=1){let a=n[l];if(a===\"'\"&&!i){r=!r,t+=a;continue}if(a==='\"'&&!r){i=!i,t+=a;continue}if(!r&&!i){if(a===\"(\"){s+=1,t+=a;continue}if(a===\")\"&&s>0){s-=1,t+=a;continue}if(a===\";\"&&s===0){e.push(t),t=\"\";continue}}t+=a}return t&&e.push(t),e}function Dd(n){let e=[],t=Fg(n||\"\"),r=t.length;for(let i=0;i<r;i+=1){let s=t[i],o=s.indexOf(\":\");if(o===-1)continue;let l=s.slice(0,o).trim(),a=s.slice(o+1).trim();l&&a&&e.push([l,a])}return e}function L(...n){return n.filter(e=>!!e).reduce((e,t)=>{let r={...e};return Object.entries(t).forEach(([i,s])=>{if(i===\"__proto__\"){Object.defineProperty(r,i,{configurable:!0,enumerable:!0,value:s,writable:!0});return}if(!r[i]){r[i]=s;return}if(i===\"class\"){let o=s?String(s).split(\" \"):[],l=r[i]?r[i].split(\" \"):[],a=o.filter(c=>!l.includes(c));r[i]=[...l,...a].join(\" \")}else if(i===\"style\"){let o=new Map([...Dd(r[i]),...Dd(s)]);r[i]=Array.from(o.entries()).map(([l,a])=>`${l}: ${a}`).join(\"; \")}else r[i]=s}),r},{})}function on(n,e){return e.filter(t=>t.type===n.type.name).filter(t=>t.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(n.attrs)||{}:{[t.name]:n.attrs[t.name]}).reduce((t,r)=>L(t,r),{})}function _g(n){return typeof n!=\"string\"?n:n.match(/^[+-]?(?:\\d*\\.)?\\d+$/)?Number(n):n===\"true\"?!0:n===\"false\"?!1:n}function Ld(n,e){return\"style\"in n?n:{...n,getAttrs:t=>{let r=n.getAttrs?n.getAttrs(t):n.attrs;if(r===!1)return!1;let i=e.reduce((s,o)=>{let l=o.attribute.parseHTML?o.attribute.parseHTML(t):_g(t.getAttribute(o.name));return l==null?s:{...s,[o.name]:l}},{});return{...r,...i}}}}function Pd(n){return Object.fromEntries(Object.entries(n).filter(([e,t])=>e===\"attrs\"&&$g(t)?!1:t!=null))}function Bd(n){var e,t;let r={};return!(!(n==null||(e=n.attribute)===null||e===void 0)&&e.isRequired)&&\"default\"in(n?.attribute||{})&&(r.default=n.attribute.default),(n==null||(t=n.attribute)===null||t===void 0?void 0:t.validate)!==void 0&&(r.validate=n.attribute.validate),[n.name,r]}function iu(n,e){var t;let r=ru(n),{nodeExtensions:i,markExtensions:s}=sn(n),o=(t=i.find(c=>E(c,\"topNode\")))===null||t===void 0?void 0:t.name,l=Object.fromEntries(i.map(c=>{let d=r.filter(g=>g.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=Pd({...n.reduce((g,y)=>{let b=E(y,\"extendNodeSchema\",u);return{...g,...b?b(c):{}}},{}),content:B(E(c,\"content\",u)),marks:B(E(c,\"marks\",u)),group:B(E(c,\"group\",u)),inline:B(E(c,\"inline\",u)),atom:B(E(c,\"atom\",u)),selectable:B(E(c,\"selectable\",u)),draggable:B(E(c,\"draggable\",u)),code:B(E(c,\"code\",u)),whitespace:B(E(c,\"whitespace\",u)),linebreakReplacement:B(E(c,\"linebreakReplacement\",u)),defining:B(E(c,\"defining\",u)),isolating:B(E(c,\"isolating\",u)),attrs:Object.fromEntries(d.map(Bd))}),h=B(E(c,\"parseHTML\",u));h&&(f.parseDOM=h.map(g=>Ld(g,d)));let p=E(c,\"renderHTML\",u);p&&(f.toDOM=g=>p({node:g,HTMLAttributes:on(g,d)}));let m=E(c,\"renderText\",u);return m&&(f.toText=m),[c.name,f]})),a=Object.fromEntries(s.map(c=>{let d=r.filter(m=>m.type===c.name),u={name:c.name,options:c.options,storage:c.storage,editor:e},f=Pd({...n.reduce((m,g)=>{let y=E(g,\"extendMarkSchema\",u);return{...m,...y?y(c):{}}},{}),inclusive:B(E(c,\"inclusive\",u)),excludes:B(E(c,\"excludes\",u)),group:B(E(c,\"group\",u)),spanning:B(E(c,\"spanning\",u)),code:B(E(c,\"code\",u)),attrs:Object.fromEntries(d.map(Bd))}),h=B(E(c,\"parseHTML\",u));h&&(f.parseDOM=h.map(m=>Ld(m,d)));let p=E(c,\"renderHTML\",u);return p&&(f.toDOM=m=>p({mark:m,HTMLAttributes:on(m,d)})),[c.name,f]}));return new xn({topNode:o,nodes:l,marks:a})}function Vg(n){let e=n.filter((t,r)=>n.indexOf(t)!==r);return Array.from(new Set(e))}function _n(n){return n.sort((t,r)=>{let i=E(t,\"priority\")||100,s=E(r,\"priority\")||100;return i>s?-1:i<s?1:0})}function qo(n){let e=_n(Uo(n)),t=Vg(e.map(r=>r.name));return t.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${t.map(r=>`'${r}'`).join(\", \")}]. This can lead to issues.`),e}function su(n,e){return iu(qo(n),e)}function ou(n,e,t){let{from:r,to:i}=e,{blockSeparator:s=`\n\n`,textSerializers:o={}}=t||{},l=\"\";return n.nodesBetween(r,i,(a,c,d,u)=>{a.isBlock&&c>r&&(l+=s);let f=o?.[a.type.name];if(f)return d&&(l+=f({node:a,pos:c,parent:d,index:u,range:e})),!1;if(a.isText){var h;l+=a==null||(h=a.text)===null||h===void 0?void 0:h.slice(Math.max(r,c)-c,i-c)}}),l}function jg(n,e){return ou(n,{from:0,to:n.content.size},e)}function lu(n){return Object.fromEntries(Object.entries(n.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}function Wg(n,e){let t=X(e,n.schema),{from:r,to:i}=n.selection,s=[];n.doc.nodesBetween(r,i,l=>{s.push(l)});let o=s.reverse().find(l=>l.type.name===t.name);return o?{...o.attrs}:{}}function Jo(n,e){let t=oi(typeof e==\"string\"?e:e.name,n.schema);return t===\"node\"?Wg(n,e):t===\"mark\"?tu(n,e):{}}function Ug(n,e=JSON.stringify){let t={};return n.filter(r=>{let i=e(r);return Object.prototype.hasOwnProperty.call(t,i)?!1:t[i]=!0})}function Kg(n){let e=Ug(n);return e.length===1?e:e.filter((t,r)=>!e.filter((i,s)=>s!==r).some(i=>t.oldRange.from>=i.oldRange.from&&t.oldRange.to<=i.oldRange.to&&t.newRange.from>=i.newRange.from&&t.newRange.to<=i.newRange.to))}function ln(n){let{mapping:e,steps:t}=n,r=[];return e.maps.forEach((i,s)=>{let o=[];if(i.ranges.length)i.forEach((l,a)=>{o.push({from:l,to:a})});else{let{from:l,to:a}=t[s];if(l===void 0||a===void 0)return;o.push({from:l,to:a})}o.forEach(({from:l,to:a})=>{let c=e.slice(s).map(l,-1),d=e.slice(s).map(a),u=e.invert().map(c,-1),f=e.invert().map(d);r.push({oldRange:{from:u,to:f},newRange:{from:c,to:d}})})}),Kg(r)}function Vn(n,e,t){let r=[];return n===e?t.resolve(n).marks().forEach(i=>{let s=jo(t.resolve(n),i.type);s&&r.push({mark:i,...s})}):t.nodesBetween(n,e,(i,s)=>{!i||i?.nodeSize===void 0||r.push(...i.marks.map(o=>({from:s,to:s+i.nodeSize,mark:o})))}),r}var au=(n,e,t,r=20)=>{let i=n.doc.resolve(t),s=r,o=null;for(;s>0&&o===null;){let l=i.node(s);l?.type.name===e?o=l:s-=1}return[o,s]},cu=n=>{let e=n.depth-1;if(e<0)return null;let t=n.index(e);return t===0?null:n.node(e).child(t-1)};function Qt(n,e){return e.nodes[n]||e.marks[n]||null}function ni(n,e,t){return Object.fromEntries(Object.entries(t).filter(([r])=>{let i=n.find(s=>s.type===e&&s.name===r);return i?i.attribute.keepOnSplit:!1}))}var qg=(n,e=500)=>{let t=\"\",r=n.parentOffset;return n.parent.nodesBetween(Math.max(0,r-e),r,(i,s,o,l)=>{var a,c;let d=((a=(c=i.type.spec).toText)===null||a===void 0?void 0:a.call(c,{node:i,pos:s,parent:o,index:l}))||i.textContent||\"%leaf%\";t+=i.isAtom&&!i.isText?d:d.slice(0,Math.max(0,r-s))}),t};function _o(n,e,t={}){let{empty:r,ranges:i}=n.selection,s=e?Ge(e,n.schema):null;if(r)return!!(n.storedMarks||n.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>ri(d.attrs,t,{strict:!1}));let o=0,l=[];if(i.forEach(({$from:d,$to:u})=>{let f=d.pos,h=u.pos;n.doc.nodesBetween(f,h,(p,m)=>{if(s&&p.inlineContent&&!p.type.allowsMarkType(s))return!1;if(!p.isText&&!p.marks.length)return;let g=Math.max(f,m),y=Math.min(h,m+p.nodeSize),b=y-g;o+=b,l.push(...p.marks.map(w=>({mark:w,from:g,to:y})))})}),o===0)return!1;let a=l.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>ri(d.mark.attrs,t,{strict:!1})).reduce((d,u)=>d+u.to-u.from,0),c=l.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,u)=>d+u.to-u.from,0);return(a>0?a+c:a)>=o}function Jg(n,e,t={}){if(!e)return Le(n,null,t)||_o(n,null,t);let r=oi(e,n.schema);return r===\"node\"?Le(n,e,t):r===\"mark\"?_o(n,e,t):!1}var du=(n,e)=>{let{$from:t,$to:r,$anchor:i}=n.selection;if(e){let s=li(l=>l.type.name===e)(n.selection);if(!s)return!1;let o=n.doc.resolve(s.pos+1);return i.pos+1===o.end()}return!(r.parentOffset<r.parent.nodeSize-2||t.pos!==r.pos)},uu=n=>{let{$from:e,$to:t}=n.selection;return!(e.parentOffset>0||e.pos!==t.pos)};function zd(n,e){return Array.isArray(e)?e.some(t=>(typeof t==\"string\"?t:t.name)===n.name):e}function Po(n,e){let{nodeExtensions:t}=sn(e),r=t.find(s=>s.name===n);if(!r)return!1;let i=B(E(r,\"group\",{name:r.name,options:r.options,storage:r.storage}));return typeof i!=\"string\"?!1:i.split(\" \").includes(\"list\")}function an(n,{checkChildren:e=!0,ignoreWhitespace:t=!1}={}){if(t){if(n.type.name===\"hardBreak\")return!0;if(n.isText){var r;return!/\\S/.test((r=n.text)!==null&&r!==void 0?r:\"\")}}if(n.isText)return!n.text;if(n.isAtom||n.isLeaf)return!1;if(n.content.childCount===0)return!0;if(e){let i=!0;return n.content.forEach(s=>{i!==!1&&(an(s,{ignoreWhitespace:t,checkChildren:e})||(i=!1))}),i}return!1}function ai(n){return n instanceof M}var fu=class hu{constructor(e){this.position=e}static fromJSON(e){return new hu(e.position)}toJSON(){return{position:this.position}}};function Xg(n,e){let t=e.mapping.mapResult(n.position);return{position:new fu(t.pos),mapResult:t}}function Gg(n){return new fu(n)}function Yg(n,e,t){let{selection:r}=e,i=null;if(qd(r)&&(i=r.$cursor),i){var s;let l=(s=n.storedMarks)!==null&&s!==void 0?s:i.marks();return i.parent.type.allowsMarkType(t)&&(!!t.isInSet(l)||!l.some(a=>a.type.excludes(t)))}let{ranges:o}=r;return o.some(({$from:l,$to:a})=>{let c=l.depth===0?n.doc.inlineContent&&n.doc.type.allowsMarkType(t):!1;return n.doc.nodesBetween(l.pos,a.pos,(d,u,f)=>{if(c)return!1;if(d.isInline){let h=!f||f.type.allowsMarkType(t),p=!!t.isInSet(d.marks)||!d.marks.some(m=>m.type.excludes(t));c=h&&p}return!c}),c})}var Qg=(n,e={})=>({tr:t,state:r,dispatch:i})=>{let{selection:s}=t,{empty:o,ranges:l}=s,a=Ge(n,r.schema);if(i)if(o){let c=tu(r,a);t.addStoredMark(a.create({...c,...e}))}else l.forEach(c=>{let d=c.$from.pos,u=c.$to.pos;r.doc.nodesBetween(d,u,(f,h)=>{let p=Math.max(h,d),m=Math.min(h+f.nodeSize,u);f.marks.find(g=>g.type===a)?f.marks.forEach(g=>{a===g.type&&t.addMark(p,m,a.create({...g.attrs,...e}))}):t.addMark(p,m,a.create(e))})});return Yg(r,t,a)},Zg=(n,e)=>({tr:t})=>(t.setMeta(n,e),!0),ey=(n,e={})=>({state:t,dispatch:r,chain:i})=>{let s=X(n,t.schema),o;return t.selection.$anchor.sameParent(t.selection.$head)&&(o=t.selection.$anchor.parent.attrs),s.isTextblock?i().command(({commands:l})=>qs(s,{...o,...e})(t)?!0:l.clearNodes()).command(({state:l})=>qs(s,{...o,...e})(l,r)).run():(console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.'),!1)},ty=n=>({tr:e,dispatch:t})=>{if(t){let{doc:r}=e,i=It(n,0,r.content.size),s=M.create(r,i);e.setSelection(s)}return!0},ny=(n,e)=>({tr:t,state:r,dispatch:i})=>{let{selection:s}=r,o,l;return typeof e==\"number\"?(o=e,l=e):e&&\"from\"in e&&\"to\"in e?(o=e.from,l=e.to):(o=s.from,l=s.to),i&&t.doc.nodesBetween(o,l,(a,c)=>{a.isText||t.setNodeMarkup(c,void 0,{...a.attrs,dir:n})}),!0},ry=n=>({tr:e,dispatch:t})=>{if(t){let{doc:r}=e,{from:i,to:s}=typeof n==\"number\"?{from:n,to:n}:n,o=T.atStart(r).from,l=T.atEnd(r).to,a=It(i,o,l),c=It(s,o,l),d=T.create(r,a,c);e.setSelection(d)}return!0},iy=n=>({state:e,dispatch:t})=>{let r=X(n,e.schema);return uc(r)(e,t)};function Hd(n,e){let t=n.storedMarks||n.selection.$to.parentOffset&&n.selection.$from.marks();if(t){let r=t.filter(i=>e?.includes(i.type.name));n.tr.ensureMarks(r)}}var sy=({keepMarks:n=!0}={})=>({tr:e,state:t,dispatch:r,editor:i})=>{let{selection:s,doc:o}=e,{$from:l,$to:a}=s,c=i.extensionManager.attributes,d=ni(c,l.node().type.name,l.node().attrs);if(s instanceof M&&s.node.isBlock)return!l.parentOffset||!ke(o,l.pos)?!1:(r&&(n&&Hd(t,i.extensionManager.splittableMarks),e.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;let u=a.parentOffset===a.parent.content.size,f=l.depth===0?void 0:Qd(l.node(-1).contentMatchAt(l.indexAfter(-1))),h=u&&f?[{type:f,attrs:d}]:void 0,p=s instanceof T&&!s.empty?kt.create({doc:e.doc,selection:s}).tr.deleteSelection():null,m=p?p.doc:e.doc,g=p?p.mapping.map(l.pos):l.pos,y=ke(m,g,1,h);if(!h&&!y&&ke(m,g,1,f?[{type:f}]:void 0)&&(y=!0,h=f?[{type:f,attrs:d}]:void 0),r){if(y){let b=e.steps.length;if(s instanceof T&&e.deleteSelection(),e.split(e.mapping.slice(b).map(l.pos),1,h),f&&!u&&!l.parentOffset&&l.parent.type!==f){let w=e.mapping.slice(b).map(l.before()),k=e.doc.resolve(w);l.node(-1).canReplaceWith(k.index(),k.index()+1,f)&&e.setNodeMarkup(e.mapping.slice(b).map(l.before()),f)}}n&&Hd(t,i.extensionManager.splittableMarks),e.scrollIntoView()}return y},oy=(n,e={})=>({tr:t,state:r,dispatch:i,editor:s})=>{let o=X(n,r.schema),{$from:l,$to:a}=r.selection,c=r.selection.node;if(c&&c.isBlock||l.depth<2||!l.sameParent(a))return!1;let d=l.node(-1);if(d.type!==o)return!1;let u=s.extensionManager.attributes;if(l.parent.content.size===0&&l.node(-1).childCount===l.indexAfter(-1)){if(l.depth===2||l.node(-3).type!==o||l.index(-2)!==l.node(-2).childCount-1)return!1;if(i){var f;let k=x.empty,N=l.index(-1)?1:l.index(-2)?2:3;for(let be=l.depth-N;be>=l.depth-3;be-=1)k=x.from(l.node(be).copy(k));let $=l.indexAfter(-1)<l.node(-2).childCount?1:l.indexAfter(-2)<l.node(-3).childCount?2:3,A={...ni(u,l.node().type.name,l.node().attrs),...e},z=((f=o.contentMatch.defaultType)===null||f===void 0?void 0:f.createAndFill(A))||void 0;k=k.append(x.from(o.createAndFill(null,z)||void 0));let F=l.before(l.depth-(N-1));t.replace(F,l.after(-$),new v(k,4-N,0));let Q=-1;t.doc.nodesBetween(F,t.doc.content.size,(be,pt)=>{if(Q>-1)return!1;be.isTextblock&&be.content.size===0&&(Q=pt+1)}),Q>-1&&t.setSelection(T.near(t.doc.resolve(Q))),t.scrollIntoView()}return!0}let h=a.pos===l.end()?d.contentMatchAt(0).defaultType:null,p={...ni(u,d.type.name,d.attrs),...e},m={...ni(u,l.node().type.name,l.node().attrs),...e},g=l.parentOffset===0&&l.index(-1)===0,y=l.before(-1);t.delete(l.pos,a.pos);let b=g?d.attrs:p,w=h?[{type:o,attrs:b},{type:h,attrs:m}]:[{type:o,attrs:b}];if(!ke(t.doc,l.pos,2))return!1;if(i){let{selection:k,storedMarks:N}=r,{splittableMarks:$}=s.extensionManager,A=N||k.$to.parentOffset&&k.$from.marks();if(t.split(l.pos,2,w).scrollIntoView(),g&&t.setNodeMarkup(y,void 0,p),!A||!i)return!0;let z=A.filter(F=>$.includes(F.type.name));t.ensureMarks(z)}return!0};function $d(n){return!n||n===\"1\"?null:n}function pu(n,e){return $d(n)===$d(e)}var Bo=(n,e)=>{let t=li(s=>s.type===e)(n.selection);if(!t)return!0;let r=n.doc.resolve(Math.max(0,t.pos-1)).before(t.depth);if(r===void 0)return!0;let i=n.doc.nodeAt(r);return!(t.node.type===i?.type&&Re(n.doc,t.pos))||!pu(t.node.attrs.type,i?.attrs.type)||n.join(t.pos),!0},zo=(n,e)=>{let t=li(s=>s.type===e)(n.selection);if(!t)return!0;let r=n.doc.resolve(t.start).after(t.depth);if(r===void 0)return!0;let i=n.doc.nodeAt(r);return!(t.node.type===i?.type&&Re(n.doc,r))||!pu(t.node.attrs.type,i?.attrs.type)||n.join(r),!0};function ly(n){let e=n.doc,t=e.firstChild;if(!t)return null;let r=e.resolve(1),i=e.resolve(t.nodeSize-1);return T.between(r,i)}var ay=(n,e,t,r={})=>({editor:i,tr:s,state:o,dispatch:l,chain:a,commands:c,can:d})=>{let{extensions:u,splittableMarks:f}=i.extensionManager,h=X(n,o.schema),p=X(e,o.schema),{selection:m,storedMarks:g}=o,{$from:y,$to:b}=m,w=y.blockRange(b),k=g||m.$to.parentOffset&&m.$from.marks();if(!w)return!1;let N=li(Me=>Po(Me.type.name,u))(m),$=m.from===0&&m.to===o.doc.content.size,A=o.doc.content.content,z=A.length===1?A[0]:null,F=$&&z&&Po(z.type.name,u)?{node:z,pos:0,depth:0}:null,Q=N??F,be=!!N&&w.depth>=1&&w.depth-N.depth<=1,pt=!!F;if((be||pt)&&Q){if(Q.node.type===h)return $&&pt?a().command(({tr:Me,dispatch:He})=>{let Ce=ly(Me);return Ce?(Me.setSelection(Ce),He&&He(Me),!0):!1}).liftListItem(p).run():c.liftListItem(p);if(Po(Q.node.type.name,u)&&h.validContent(Q.node.content))return a().command(()=>(s.setNodeMarkup(Q.pos,h),!0)).command(()=>Bo(s,h)).command(()=>zo(s,h)).run()}return!t||!k||!l?a().command(()=>d().wrapInList(h,r)?!0:c.clearNodes()).wrapInList(h,r).command(()=>Bo(s,h)).command(()=>zo(s,h)).run():a().command(()=>{let Me=d().wrapInList(h,r),He=k.filter(Ce=>f.includes(Ce.type.name));return s.ensureMarks(He),Me?!0:c.clearNodes()}).wrapInList(h,r).command(()=>Bo(s,h)).command(()=>zo(s,h)).run()},cy=(n,e={},t={})=>({state:r,commands:i})=>{let{extendEmptyMarkRange:s=!1}=t,o=Ge(n,r.schema);return _o(r,o,e)?i.unsetMark(o,{extendEmptyMarkRange:s}):i.setMark(o,e)},dy=(n,e,t={})=>({state:r,commands:i})=>{let s=X(n,r.schema),o=X(e,r.schema),l=Le(r,s,t),a;return r.selection.$anchor.sameParent(r.selection.$head)&&(a=r.selection.$anchor.parent.attrs),l?i.setNode(o,a):i.setNode(s,{...a,...t})},uy=(n,e={})=>({state:t,commands:r})=>{let i=X(n,t.schema);return Le(t,i,e)?r.lift(i):r.wrapIn(i,e)},fy=()=>({state:n,dispatch:e})=>{let t=n.plugins;for(let r=0;r<t.length;r+=1){let i=t[r],s;if(i.spec.isInputRules&&(s=i.getState(n))){if(e){let o=n.tr,l=s.transform;for(let a=l.steps.length-1;a>=0;a-=1)o.step(l.steps[a].invert(l.docs[a]));if(s.text){let a=o.doc.resolve(s.from).marks();o.replaceWith(s.from,s.to,n.schema.text(s.text,a))}else o.delete(s.from,s.to)}return!0}}return!1},hy=(n={})=>({tr:e,dispatch:t,editor:r})=>{let{ignoreClearable:i=!1}=n,{selection:s}=e,{empty:o,ranges:l}=s;if(o)return!0;let{nonClearableMarks:a}=r.extensionManager;if(t){let c=Object.values(r.schema.marks).filter(d=>i||!a.includes(d.name));l.forEach(d=>{for(let u of c)e.removeMark(d.$from.pos,d.$to.pos,u)})}return!0},py=(n,e={})=>({tr:t,state:r,dispatch:i})=>{let{extendEmptyMarkRange:s=!1}=e,{selection:o}=t,l=Ge(n,r.schema),{$from:a,empty:c,ranges:d}=o;if(!i)return!0;if(c&&s){var u;let{from:f,to:h}=o,p=jo(a,l,(u=a.marks().find(m=>m.type===l))===null||u===void 0?void 0:u.attrs);p&&(f=p.from,h=p.to),t.removeMark(f,h,l)}else d.forEach(f=>{t.removeMark(f.$from.pos,f.$to.pos,l)});return t.removeStoredMark(l),!0},my=n=>({tr:e,state:t,dispatch:r})=>{let{selection:i}=t,s,o;return typeof n==\"number\"?(s=n,o=n):n&&\"from\"in n&&\"to\"in n?(s=n.from,o=n.to):(s=i.from,o=i.to),r&&e.doc.nodesBetween(s,o,(l,a)=>{if(l.isText)return;let c={...l.attrs};delete c.dir,e.setNodeMarkup(a,void 0,c)}),!0},gy=(n,e={})=>({tr:t,state:r,dispatch:i})=>{let s=null,o=null,l=oi(typeof n==\"string\"?n:n.name,r.schema);if(!l)return!1;l===\"node\"&&(s=X(n,r.schema)),l===\"mark\"&&(o=Ge(n,r.schema));let a=!1;return t.selection.ranges.forEach(c=>{let d=c.$from.pos,u=c.$to.pos,f,h,p,m;t.selection.empty?r.doc.nodesBetween(d,u,(g,y)=>{s&&s===g.type&&(a=!0,p=Math.max(y,d),m=Math.min(y+g.nodeSize,u),f=y,h=g)}):r.doc.nodesBetween(d,u,(g,y)=>{y<d&&s&&s===g.type&&(a=!0,p=Math.max(y,d),m=Math.min(y+g.nodeSize,u),f=y,h=g),y>=d&&y<=u&&(s&&s===g.type&&(a=!0,i&&t.setNodeMarkup(y,void 0,{...g.attrs,...e})),o&&g.marks.length&&g.marks.forEach(b=>{if(o===b.type&&(a=!0,i)){let w=Math.max(y,d),k=Math.min(y+g.nodeSize,u);t.addMark(w,k,o.create({...b.attrs,...e}))}}))}),h&&(f!==void 0&&i&&t.setNodeMarkup(f,void 0,{...h.attrs,...e}),o&&h.marks.length&&h.marks.forEach(g=>{o===g.type&&i&&t.addMark(p,m,o.create({...g.attrs,...e}))}))}),a},en=new H(\"__tiptap_decorations__\"),yy=n=>({tr:e,dispatch:t})=>(t&&e.setMeta(en,{type:\"force\",name:n}),!0),by=(n,e={})=>({state:t,dispatch:r})=>{let i=X(n,t.schema);return ac(i,e)(t,r)},xy=(n,e={})=>({state:t,dispatch:r})=>{let i=X(n,t.schema);return cc(i,e)(t,r)},ky=Yl({blur:()=>qm,clearContent:()=>Jm,clearNodes:()=>Xm,command:()=>Gm,createParagraphNear:()=>Ym,cut:()=>Qm,deleteCurrentNode:()=>Zm,deleteNode:()=>eg,deleteRange:()=>tg,deleteSelection:()=>ig,enter:()=>sg,exitCode:()=>og,extendMarkRange:()=>lg,first:()=>ag,focus:()=>dg,forEach:()=>ug,insertContent:()=>fg,insertContentAt:()=>hg,insertDefaultBlock:()=>pg,joinBackward:()=>yg,joinDown:()=>gg,joinForward:()=>bg,joinItemBackward:()=>xg,joinItemForward:()=>kg,joinTextblockBackward:()=>Sg,joinTextblockForward:()=>wg,joinUp:()=>mg,keyboardShortcut:()=>Tg,lift:()=>Eg,liftEmptyBlock:()=>Mg,liftListItem:()=>Cg,newlineInCode:()=>Ag,resetAttributes:()=>Rg,scrollIntoView:()=>Ng,selectAll:()=>Og,selectNodeBackward:()=>Ig,selectNodeForward:()=>Dg,selectParentNode:()=>Lg,selectTextblockEnd:()=>Pg,selectTextblockStart:()=>Bg,setContent:()=>zg,setMark:()=>Qg,setMeta:()=>Zg,setNode:()=>ey,setNodeSelection:()=>ty,setTextDirection:()=>ny,setTextSelection:()=>ry,sinkListItem:()=>iy,splitBlock:()=>sy,splitListItem:()=>oy,toggleList:()=>ay,toggleMark:()=>cy,toggleNode:()=>dy,toggleWrap:()=>uy,undoInputRule:()=>fy,unsetAllMarks:()=>hy,unsetMark:()=>py,unsetTextDirection:()=>my,updateAttributes:()=>gy,updateDecorations:()=>yy,wrapIn:()=>by,wrapInList:()=>xy}),tn=new WeakMap;function Sy(n,e){var t;tn.set(n,((t=tn.get(n))!==null&&t!==void 0?t:0)+1);try{return e()}finally{var r;let i=((r=tn.get(n))!==null&&r!==void 0?r:1)-1;i>0?tn.set(n,i):tn.delete(n)}}function wy(n){return tn.has(n)}var vy=class{constructor(){this.callbacks={}}on(n,e){return this.callbacks[n]||(this.callbacks[n]=[]),this.callbacks[n].push(e),this}emit(n,...e){let t=this.callbacks[n];return t&&t.forEach(r=>r.apply(this,e)),this}off(n,e){let t=this.callbacks[n];return t&&(e?this.callbacks[n]=t.filter(r=>r!==e):delete this.callbacks[n]),this}once(n,e){let t=(...r)=>{this.off(n,t),e.apply(this,r)};return this.on(n,t)}removeAllListeners(){this.callbacks={}}},mu=typeof process<\"u\"&&!1;function Ty(n){return n.kind===\"widget\"}function gu(n,e){let t=[],r=new Set;for(let i of n)i.kind===\"widget\"&&Ty(i)&&r.add(i.key),t.push(i.toPMDecoration(e));return{decorations:t,widgetKeys:r}}function Ey(n,e,t){let{decorations:r,widgetKeys:i}=gu(e,t);return{set:_.create(n,r),widgetKeys:i}}function yu({position:n,from:e,to:t,docSize:r}){return n<e?!1:n<t?!0:n===t&&t===r}function My({decorations:n,from:e,to:t,docSize:r,extensionName:i,warnedExtensions:s}){return n.filter(o=>yu({position:o.anchor,from:e,to:t,docSize:r})?!0:(o.anchor===t||s.has(i)||(s.add(i),console.warn(`[tiptap warn]: Extension \"${i}\" returned a decoration outside the requested range [${e}, ${t}). It was ignored.`)),!1))}function bu(n){var e;let t=(e=n.spec)===null||e===void 0?void 0:e.key;return typeof t==\"string\"?t:void 0}function Cy(n){let e=new Map,t=new Map;for(let o of n.find()){var r,i,s;let l=bu(o);if(!l)continue;let a=(r=o.spec.extensionName)!==null&&r!==void 0?r:\"unknown\",c=(i=e.get(l))!==null&&i!==void 0?i:new Set;c.add(a),e.set(l,c),t.set(l,((s=t.get(l))!==null&&s!==void 0?s:0)+1)}return Array.from(e,([o,l])=>({key:o,extensions:l})).filter(({key:o})=>{var l;return((l=t.get(o))!==null&&l!==void 0?l:0)>1})}function xu(n){return n.jsonID===\"attr\"}function Ay(n){let e=!1;if(n.getMap().forEach(()=>{e=!0}),e||xu(n))return!0;let t=n;return typeof t.from==\"number\"&&typeof t.to==\"number\"}function Ry(n,e){let t=null,r=0,i=0;for(let s=0;s<n.childCount&&!(i>e.to);s+=1){let o=i+n.child(s).nodeSize;o>=e.from&&(t===null&&(t=i),r=o),i=o}return t===null?null:{from:t,to:r}}function Ny(n,e){if(n.steps.some(s=>!Ay(s)))return{type:\"full\"};let t=ln(n).map(({newRange:s})=>s);n.steps.forEach((s,o)=>{if(!xu(s))return;let l=n.mapping.slice(o);t.push({from:l.map(s.pos,-1),to:l.map(s.pos+1)})});let r=[];for(let s of t){let o=Ry(e,s);o&&r.push(o)}r.sort((s,o)=>s.from-o.from);let i=[];for(let s of r){let o=i[i.length-1];o&&s.from<=o.to?o.to=Math.max(o.to,s.to):i.push({...s})}return{type:\"ranges\",ranges:i}}function ku(n,e,t,r){return n.map(e,t,{onRemove:i=>{let s=i?.key;typeof s==\"string\"&&r.delete(s)}})}function Oy(n,e,t){var r,i;let s=(r=e.decorationSetsByExtension[n])!==null&&r!==void 0?r:_.empty,o=new Set((i=e.widgetKeysByExtension[n])!==null&&i!==void 0?i:[]);return{set:ku(s,t.mapping,t.doc,o),widgetKeys:o}}function Fd(n,e){let t=Object.values(e).flatMap(r=>r.find());return _.create(n,t)}function _d(n){let e=new Set;for(let t of Object.values(n))for(let r of t)e.add(r);return e}function Iy(n,e){var t;switch((t=e.update)!==null&&t!==void 0?t:\"document\"){case\"document\":if(e.createInRange)throw new Error(`[tiptap error]: Extension \"${n}\" provides createInRange() but does not use the \"changedRanges\" decoration update strategy.`);return;case\"changedRanges\":if(!e.createInRange)throw new Error(`[tiptap error]: Extension \"${n}\" uses the \"changedRanges\" decoration update strategy but does not provide createInRange().`);return;case\"manual\":if(e.createInRange)throw new Error(`[tiptap error]: Extension \"${n}\" uses the \"manual\" decoration update strategy, which is not compatible with createInRange(). createInRange() requires the \"changedRanges\" strategy.`);if(e.shouldUpdate)throw new Error(`[tiptap error]: Extension \"${n}\" cannot combine the \"manual\" decoration update strategy with shouldUpdate().`);return;default:throw new Error(`[tiptap error]: Extension \"${n}\" uses an unknown decoration update strategy. Expected \"document\", \"changedRanges\", or \"manual\".`)}}function Dy(n,e,t){return t?!0:n.update===\"manual\"?!1:n.shouldUpdate?n.shouldUpdate(e):e.tr.docChanged}var Ly=new Set;var Py=class{constructor(n){this.warnedWidgetKeys=new Set,this.warnedOutOfRangeExtensions=new Set,this.handleBeforeTransaction=({nextState:e})=>{let t=en.getState(e);t&&this.warnDuplicateWidgetKeys(t)},this.editor=n.editor,this.entries=this.resolveEntries(n.entries),this.entries.forEach(({name:e,spec:t})=>Iy(e,t)),this.plugin=this.entries.length>0?this.createPlugin():null,this.editor.on(\"beforeTransaction\",this.handleBeforeTransaction)}destroy(){this.editor.off(\"beforeTransaction\",this.handleBeforeTransaction)}liveWidgetKeys(){var n,e;return(n=(e=en.getState(this.editor.state))===null||e===void 0?void 0:e.widgetKeys)!==null&&n!==void 0?n:Ly}get mountedView(){return this.editor.isDestroyed?null:this.editor.view}resolveEntries(n){let e=[];for(let{name:t,addDecorations:r}of n){let i=r();i&&e.push({name:t,spec:i})}return e}createPlugin(){let{editor:n,entries:e}=this;return new O({key:en,state:{init:(t,r)=>{let i={},s={};for(let{name:l,spec:a}of e){let{set:c,widgetKeys:d}=this.buildFullSet(l,a,r);i[l]=c,s[l]=d}let o={decorationSetsByExtension:i,widgetKeysByExtension:s,mergedDecorationSet:this.buildMergedSet(r.doc,i),widgetKeys:_d(s)};return this.warnDuplicateWidgetKeys(o),o},apply:(t,r,i,s)=>{let o=t.getMeta(en),l=o?.type===\"force\"&&!o.name,a=o?.type===\"force\"?o.name:void 0,c={},d={},u=new Set;return Sy(n,()=>{for(let{name:f,spec:h}of e){let p=l||a===f;if(Dy(h,{editor:n,tr:t,oldState:i,newState:s},p))if(h.update===\"changedRanges\"&&t.docChanged&&!p){let m=this.applyChangedRangesRecompute(f,h,r,t,s);c[f]=m.set,d[f]=m.widgetKeys,u.add(f)}else{let{set:m,widgetKeys:g}=this.buildFullSet(f,h,s);c[f]=m,d[f]=g,u.add(f)}else{let m=Oy(f,r,t);c[f]=m.set,d[f]=m.widgetKeys}}}),u.size===0&&!t.docChanged?r:{decorationSetsByExtension:c,widgetKeysByExtension:d,mergedDecorationSet:this.mergeAfterApply({entries:e,previous:r,tr:t,decorationSetsByExtension:c,recomputedNames:u}),widgetKeys:_d(d)}}},props:{decorations(t){var r,i;return(r=(i=en.getState(t))===null||i===void 0?void 0:i.mergedDecorationSet)!==null&&r!==void 0?r:_.empty}}})}applyChangedRangesRecompute(n,e,t,r,i){let s=Ny(r,i.doc);return s.type===\"full\"?this.buildFullSet(n,e,i):this.rebuildRanges(n,e,t,r,i,s.ranges)}rebuildRanges(n,e,t,r,i,s){var o,l;let a=(o=t.decorationSetsByExtension[n])!==null&&o!==void 0?o:_.empty,c=new Set((l=t.widgetKeysByExtension[n])!==null&&l!==void 0?l:[]),d=ku(a,r.mapping,r.doc,c),u=i.doc.content.size;for(let{from:f,to:h}of s){let p=d.find(f,h).filter(y=>yu({position:y.from,from:f,to:h,docSize:u}));for(let y of p){let b=bu(y);b&&c.delete(b)}d=d.remove(p);let{decorations:m,widgetKeys:g}=gu(My({decorations:this.runCreate(n,\"createInRange\",()=>e.createInRange({editor:this.editor,state:i,view:this.mountedView,from:f,to:h})),from:f,to:h,docSize:u,extensionName:n,warnedExtensions:this.warnedOutOfRangeExtensions}),n);d=d.add(i.doc,m);for(let y of g)c.add(y)}return{set:d,widgetKeys:c}}buildFullSet(n,e,t){let r=this.runCreate(n,\"create\",()=>e.create({editor:this.editor,state:t,view:this.mountedView}));return Ey(t.doc,r,n)}runCreate(n,e,t){try{return t()}catch(r){return console.error(`[tiptap error]: Extension \"${n}\" threw in \\`addDecorations().${e}()\\`. Its decorations were dropped for this update.`,r),[]}}warnDuplicateWidgetKeys(n){if(!mu)return;if(n.widgetKeys.size===0){this.warnedWidgetKeys.clear();return}let e=Cy(n.mergedDecorationSet),t=new Set(e.map(({key:r})=>r));for(let{key:r,extensions:i}of e){if(this.warnedWidgetKeys.has(r))continue;let s=Array.from(i).map(o=>`\"${o}\"`).join(\", \");console.warn(`[tiptap warn]: Duplicate widget decoration key \"${r}\" in extension${i.size===1?\"\":\"s\"} ${s}. Widget decoration keys must be globally unique, otherwise ProseMirror misplaces the widget DOM. Use a stable, unique key (e.g. \\`comment-\\${id}\\`).`)}this.warnedWidgetKeys=t}buildMergedSet(n,e){let t=Object.keys(e);return t.length===1?e[t[0]]:Fd(n,e)}mergeAfterApply({entries:n,previous:e,tr:t,decorationSetsByExtension:r,recomputedNames:i}){return n.length===1?r[n[0].name]:i.size===0?e.mergedDecorationSet.map(t.mapping,t.doc):Fd(t.doc,r)}};function Su(n,e){let{selection:t}=n,{$from:r}=t;if(t instanceof M){let s=r.index();return r.parent.canReplaceWith(s,s+1,e)}let i=r.depth;for(;i>=0;){let s=r.index(i);if(r.node(i).contentMatchAt(s).matchType(e))return!0;i-=1}return!1}function By(n,e,t){let r=document.querySelector(`style[data-tiptap-style${t?`-${t}`:\"\"}]`);if(r!==null)return r;let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.setAttribute(`data-tiptap-style${t?`-${t}`:\"\"}`,\"\"),i.innerHTML=n,document.getElementsByTagName(\"head\")[0].appendChild(i),i}function cn(n,e){let t=n.getAttribute(\"style\");if(!t)return null;let r=t.split(\";\").map(s=>s.trim()).filter(Boolean),i=e.toLowerCase();for(let s=r.length-1;s>=0;s-=1){let o=r[s],l=o.indexOf(\":\");if(l!==-1&&o.slice(0,l).trim().toLowerCase()===i)return o.slice(l+1).trim()}return null}function zy(n){return typeof n==\"number\"}function Hy(n){return Object.prototype.toString.call(n).slice(8,-1)}function ei(n){return Hy(n)!==\"Object\"?!1:n.constructor===Object&&Object.getPrototypeOf(n)===Object.prototype}function dn(n){return typeof n==\"string\"&&n.trim().length>0&&!/[;{}]/.test(n)}function Xo(n,e,t){let r=n.split(`\n`),i=[],s=\"\",o=0,l=e.baseIndentSize||2;for(;o<r.length;){let d=r[o],u=d.match(e.itemPattern);if(!u){if(i.length>0)break;if(d.trim()===\"\"){o+=1,s=`${s}${d}\n`;continue}else return}let f=e.extractItemData(u),{indentLevel:h,mainContent:p}=f;s=`${s}${d}\n`;let m=[p];for(o+=1;o<r.length;){var a;let w=r[o];if(w.trim()===\"\"){var c;let k=r.slice(o+1).findIndex(N=>N.trim()!==\"\");if(k===-1)break;if((((c=r[o+1+k].match(/^(\\s*)/))===null||c===void 0||(c=c[1])===null||c===void 0?void 0:c.length)||0)>h){m.push(w),s=`${s}${w}\n`,o+=1;continue}else break}if((((a=w.match(/^(\\s*)/))===null||a===void 0||(a=a[1])===null||a===void 0?void 0:a.length)||0)>h)m.push(w),s=`${s}${w}\n`,o+=1;else break}let g,y=m.slice(1);if(y.length>0){let w=y.map(k=>k.slice(h+l)).join(`\n`);w.trim()&&(e.customNestedParser?g=e.customNestedParser(w):g=t.blockTokens(w))}let b=e.createToken(f,g);i.push(b)}if(i.length!==0)return{items:i,raw:s}}var Vd=4;function jd(n){let e=0;for(let t of n)e=t===\" \"?e+Vd-e%Vd:e+1;return e}function Go(n,e,t,r,i){if(!n||!Array.isArray(n.content))return\"\";let s=typeof t==\"function\"?t(r):t,[o,...l]=n.content,a=`${s}${e.renderChildren([o])}`;return l&&l.length>0&&l.forEach((c,d)=>{var u,f;let h=(u=(f=e.renderChild)===null||f===void 0?void 0:f.call(e,c,d+1))!==null&&u!==void 0?u:e.renderChildren([c]);if(h!=null){let p=g=>{if(!i?.alignNestedToPrefix)return e.indent(g);let y=e.indent(\"\"),b=jd(s);return(jd(y)>=b?y:\" \".repeat(b))+g},m=h.split(`\n`).map(g=>p(g||\"\")).join(`\n`);a+=c.type===\"paragraph\"?`\n\n${m}`:`\n${m}`}}),a}function wu(n,e){let t={...n};return ei(n)&&ei(e)&&Object.keys(e).forEach(r=>{ei(e[r])&&ei(n[r])?t[r]=wu(n[r],e[r]):t[r]=e[r]}),t}function $y(n,e,t={}){let{state:r}=e,{doc:i,tr:s}=r,o=n;i.descendants((l,a)=>{let c=s.mapping.map(a),d=s.mapping.map(a)+l.nodeSize,u=null;if(l.marks.forEach(h=>{if(h!==o)return!1;u=h}),!u)return;let f=!1;if(Object.keys(t).forEach(h=>{t[h]!==u.attrs[h]&&(f=!0)}),f){let h=n.type.create({...n.attrs,...t});s.removeMark(c,d,n.type),s.addMark(c,d,h)}}),s.docChanged&&e.view.dispatch(s)}var un=class{constructor(n){var e;this.find=n.find,this.handler=n.handler,this.undoable=(e=n.undoable)!==null&&e!==void 0?e:!0}},Fy=(n,e)=>{if(Vo(e))return e.exec(n);let t=e(n);if(!t)return null;let r=[t.text];return r.index=t.index,r.input=n,r.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn('[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".'),r.push(t.replaceWith)),r};function _y(n){let{editor:e,from:t,to:r,text:i,insertText:s}=n;if(!s)return{inputTransaction:null,tr:e.view.state.tr};let o=e.view.state.tr.insertText(i,t,r);return{inputTransaction:o,tr:kt.create({doc:o.doc,selection:o.selection,storedMarks:o.storedMarks}).tr}}function Vy(n){let{editor:e,from:t,to:r,text:i,rule:s,match:o,plugin:l,insertText:a}=n,{view:c}=e,{inputTransaction:d,tr:u}=_y({editor:e,from:t,to:r,text:i,insertText:a}),f=d?t+i.length:r,h=si({state:c.state,transaction:u}),p={from:t-(o[0].length-i.length),to:f},{commands:m,chain:g,can:y}=new nn({editor:e,state:h});return s.handler({state:h,range:p,match:o,commands:m,chain:g,can:y})===null||!u.steps.length?!1:(d&&(c.dispatch(d),!c.state.doc.eq(d.doc))||(Ed(u),u.setMeta(\"inputRule\",!0),s.undoable&&u.setMeta(l,{transform:u,from:t,to:f,text:i}),c.dispatch(u)),!0)}function jy(n,e,t){let r=e[0].length-t.length;if(r<=0)return!0;let i=n.parentOffset-r;return i>=0&&n.parent.textBetween(i,n.parentOffset)===e[0].slice(0,r)}function ti(n){var e;let{editor:t,from:r,to:i,text:s,rules:o,plugin:l,insertText:a}=n,{view:c}=t;if(c.composing)return!1;let d=c.state.doc.resolve(r);if(d.parent.type.spec.code||!((e=d.nodeBefore||d.nodeAfter)===null||e===void 0)&&e.marks.find(f=>f.type.spec.code))return!1;let u=qg(d)+s;for(let f of o){let h=Fy(u,f.find);if(!(!h||!jy(d,h,s))&&Vy({editor:t,from:r,to:i,text:s,rule:f,match:h,plugin:l,insertText:a}))return!0}return!1}function Wy(n){let{editor:e,rules:t}=n,r=new O({state:{init(){return null},apply(i,s,o){let l=i.getMeta(r);if(l)return l;let a=i.getMeta(\"applyInputRules\");return a&&setTimeout(()=>{let{text:c}=a;typeof c==\"string\"?c=c:c=Ko(x.from(c),o.schema);let{from:d}=a,u=d+c.length;ti({editor:e,from:d,to:u,text:c,rules:t,plugin:r})}),i.selectionSet||i.docChanged?null:s}},props:{handleTextInput(i,s,o,l){return ti({editor:e,from:s,to:o,text:l,rules:t,plugin:r,insertText:!0})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{let{$cursor:s}=i.state.selection;s&&ti({editor:e,from:s.pos,to:s.pos,text:\"\",rules:t,plugin:r})}),!1)},handleKeyDown(i,s){if(s.key!==\"Enter\")return!1;let{$cursor:o}=i.state.selection;return o?ti({editor:e,from:o.pos,to:o.pos,text:`\n`,rules:t,plugin:r}):!1}},isInputRules:!0});return r}var Yo=class{constructor(n={}){this.type=\"extendable\",this.parent=null,this.child=null,this.name=\"\",this.config={name:this.name},this.config={...this.config,...n},this.name=this.config.name}get options(){return{...B(E(this,\"addOptions\",{name:this.name}))}}get storage(){return{...B(E(this,\"addStorage\",{name:this.name,options:this.options}))}}configure(n={}){let e=this.extend({...this.config,addOptions:()=>wu(this.options,n)});return e.name=this.name,e.parent=this.parent,this.child=null,e}extend(n={}){let e=new this.constructor({...this.config,...n});return e.parent=this,this.child=e,e.name=\"name\"in n?n.name:e.parent.name,e}},W=class vu extends Yo{constructor(...e){super(...e),this.type=\"mark\"}static create(e={}){let t=typeof e==\"function\"?e():e;return new vu(t)}static handleExit({editor:e,mark:t}){let{tr:r}=e.state,i=e.state.selection.$from;if(i.pos===i.end()){let s=i.marks();if(!s.find(l=>l?.type.name===t.name))return!1;let o=s.find(l=>l?.type.name===t.name);return o&&r.removeStoredMark(o),r.insertText(\" \",i.pos),e.view.dispatch(r),!0}return!1}configure(e){return super.configure(e)}extend(e){let t=typeof e==\"function\"?e():e;return super.extend(t)}},Qo=class{constructor(n){this.find=n.find,this.handler=n.handler}},Uy=(n,e,t)=>{if(Vo(e))return[...n.matchAll(e)];let r=e(n,t);return r?r.map(i=>{let s=[i.text];return s.index=i.index,s.input=n,s.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".'),s.push(i.replaceWith)),s}):[]};function Ky(n){let{editor:e,state:t,from:r,to:i,rule:s,pasteEvent:o,dropEvent:l}=n,{commands:a,chain:c,can:d}=new nn({editor:e,state:t}),u=[];return t.doc.nodesBetween(r,i,(f,h)=>{var p,m,g,y;if(!((p=f.type)===null||p===void 0||(p=p.spec)===null||p===void 0)&&p.code||!(f.isText||f.isTextblock||f.isInline))return;let b=(m=(g=(y=f.content)===null||y===void 0?void 0:y.size)!==null&&g!==void 0?g:f.nodeSize)!==null&&m!==void 0?m:0,w=Math.max(r,h),k=Math.min(i,h+b);if(w>=k)return;let N=f.isText?f.text||\"\":f.textBetween(w-h,k-h,void 0,\"\\uFFFC\");Uy(N,s.find,o).forEach($=>{if($.index===void 0)return;let A=w+$.index+1,z=A+$[0].length,F={from:t.tr.mapping.map(A),to:t.tr.mapping.map(z)},Q=s.handler({state:t,range:F,match:$,commands:a,chain:c,can:d,pasteEvent:o,dropEvent:l});u.push(Q)})}),u.every(f=>f!==null)}var Zt=null,qy=n=>{var e;let t=new ClipboardEvent(\"paste\",{clipboardData:new DataTransfer});return(e=t.clipboardData)===null||e===void 0||e.setData(\"text/html\",n),t};function Jy(n){let{editor:e,rules:t}=n,r=null,i=!1,s=!1,o=typeof ClipboardEvent<\"u\"?new ClipboardEvent(\"paste\"):null,l;try{l=typeof DragEvent<\"u\"?new DragEvent(\"drop\"):null}catch{l=null}let a=({state:c,from:d,to:u,rule:f,pasteEvt:h})=>{let p=c.tr,m=si({state:c,transaction:p});if(!(!Ky({editor:e,state:m,from:Math.max(d-1,0),to:u.b-1,rule:f,pasteEvent:h,dropEvent:l})||!p.steps.length)){try{l=typeof DragEvent<\"u\"?new DragEvent(\"drop\"):null}catch{l=null}return o=typeof ClipboardEvent<\"u\"?new ClipboardEvent(\"paste\"):null,p}};return e.on(\"destroy\",()=>{Zt===e&&(Zt=null)}),t.map(c=>new O({view(d){let u=h=>{var p;r=!((p=d.dom.parentElement)===null||p===void 0)&&p.contains(h.target)?d.dom.parentElement:null,r&&(Zt=e)},f=()=>{Zt&&(Zt=null)};return window.addEventListener(\"dragstart\",u),window.addEventListener(\"dragend\",f),{destroy(){window.removeEventListener(\"dragstart\",u),window.removeEventListener(\"dragend\",f)}}},props:{handleDOMEvents:{drop:(d,u)=>{if(s=r===d.dom.parentElement,l=u,!s){let f=Zt;f?.isEditable&&setTimeout(()=>{if(f.isDestroyed)return;let h=f.state.selection;h&&f.commands.deleteRange({from:h.from,to:h.to})},10)}return!1},paste:(d,u)=>{var f;let h=(f=u.clipboardData)===null||f===void 0?void 0:f.getData(\"text/html\");return o=u,i=!!h?.includes(\"data-pm-slice\"),!1}}},appendTransaction:(d,u,f)=>{let h=d[0],p=h.getMeta(\"uiEvent\")===\"paste\"&&!i,m=h.getMeta(\"uiEvent\")===\"drop\"&&!s,g=h.getMeta(\"applyPasteRules\"),y=!!g;if(!p&&!m&&!y)return;if(y){let{text:k}=g;typeof k==\"string\"?k=k:k=Ko(x.from(k),f.schema);let{from:N}=g,$=N+k.length,A=qy(k);return a({rule:c,state:f,from:N,to:{b:$},pasteEvt:A})}let b=u.doc.content.findDiffStart(f.doc.content),w=u.doc.content.findDiffEnd(f.doc.content);if(!(!zy(b)||!w||b===w.b))return a({rule:c,state:f,from:b,to:w,pasteEvt:o})}}))}var ci=class{constructor(n,e){this.splittableMarks=[],this.nonClearableMarks=[],this.decorationManager=null,this.editor=e,this.baseExtensions=n,this.extensions=qo(n),this.schema=iu(this.extensions,e),this.setupExtensions()}get commands(){return this.extensions.reduce((n,e)=>{let t=E(e,\"addCommands\",{name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Qt(e.name,this.schema)});return t?{...n,...t()}:n},{})}get plugins(){let{editor:n}=this,e=_n([...this.extensions].reverse()).flatMap(r=>{let i={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:n,type:Qt(r.name,this.schema)},s=[],o=E(r,\"addKeyboardShortcuts\",i),l={};if(r.type===\"mark\"&&E(r,\"exitable\",i)&&(l.ArrowRight=()=>W.handleExit({editor:n,mark:r})),o){let f=Object.fromEntries(Object.entries(o()).map(([h,p])=>[h,()=>p({editor:n})]));l={...l,...f}}let a=Sd(l);s.push(a);let c=E(r,\"addInputRules\",i);if(zd(r,n.options.enableInputRules)&&c){let f=c();if(f&&f.length){let h=Wy({editor:n,rules:f}),p=Array.isArray(h)?h:[h];s.push(...p)}}let d=E(r,\"addPasteRules\",i);if(zd(r,n.options.enablePasteRules)&&d){let f=d();if(f&&f.length){let h=Jy({editor:n,rules:f});s.push(...h)}}let u=E(r,\"addProseMirrorPlugins\",i);if(u){let f=u();s.push(...f)}return s}),t=this.createDecorationPlugin();return t&&e.push(t),e}createDecorationPlugin(){var n;let{editor:e}=this;(n=this.decorationManager)===null||n===void 0||n.destroy();let t=[];return this.extensions.forEach(r=>{let i=E(r,\"addDecorations\",{name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:Qt(r.name,this.schema)});i&&t.push({name:r.name,addDecorations:i})}),this.decorationManager=new Py({editor:e,entries:t}),this.decorationManager.plugin}get attributes(){return ru(this.extensions)}get nodeViews(){let{editor:n}=this,{nodeExtensions:e}=sn(this.extensions);return Object.fromEntries(e.filter(t=>!!E(t,\"addNodeView\")).map(t=>{let r=this.attributes.filter(l=>l.type===t.name),i=E(t,\"addNodeView\",{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:n,type:X(t.name,this.schema)});if(!i)return[];let s=i();if(!s)return[];let o=(l,a,c,d,u)=>{let f=on(l,r);return s({node:l,view:a,getPos:c,decorations:d,innerDecorations:u,editor:n,extension:t,HTMLAttributes:f})};return[t.name,o]}))}dispatchTransaction(n){let{editor:e}=this;return _n([...this.extensions].reverse()).reduceRight((t,r)=>{let i={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:Qt(r.name,this.schema)},s=E(r,\"dispatchTransaction\",i);return s?o=>{s.call(i,{transaction:o,next:t})}:t},n)}transformPastedHTML(n){let{editor:e}=this;return _n([...this.extensions]).reduce((t,r)=>{let i={name:r.name,options:r.options,storage:this.editor.extensionStorage[r.name],editor:e,type:Qt(r.name,this.schema)},s=E(r,\"transformPastedHTML\",i);return s?(o,l)=>{let a=t(o,l);return s.call(i,a)}:t},n||(t=>t))}get markViews(){let{editor:n}=this,{markExtensions:e}=sn(this.extensions);return Object.fromEntries(e.filter(t=>!!E(t,\"addMarkView\")).map(t=>{let r=this.attributes.filter(o=>o.type===t.name),i=E(t,\"addMarkView\",{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:n,type:Ge(t.name,this.schema)});if(!i)return[];let s=(o,l,a)=>{let c=on(o,r);return i()({mark:o,view:l,inline:a,editor:n,extension:t,HTMLAttributes:c,updateAttributes:d=>{$y(o,n,d)}})};return[t.name,s]}))}destroy(){var n;(n=this.decorationManager)===null||n===void 0||n.destroy(),this.extensions.forEach(e=>{let t=e;for(;t.parent;){let r=t.parent;r.child===t&&(r.child=null),t=r}}),this.extensions=[],this.baseExtensions=[],this.decorationManager=null,this.schema=null,this.editor=null}setupExtensions(){let n=this.extensions;this.editor.extensionStorage=Object.fromEntries(n.map(e=>[e.name,e.storage])),n.forEach(e=>{let t={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:Qt(e.name,this.schema)};if(e.type===\"mark\"){var r,i;(!((r=B(E(e,\"keepOnSplit\",t)))!==null&&r!==void 0)||r)&&this.splittableMarks.push(e.name),!((i=B(E(e,\"clearable\",t)))!==null&&i!==void 0)||i||this.nonClearableMarks.push(e.name)}let s=E(e,\"onBeforeCreate\",t),o=E(e,\"onCreate\",t),l=E(e,\"onUpdate\",t),a=E(e,\"onSelectionUpdate\",t),c=E(e,\"onTransaction\",t),d=E(e,\"onFocus\",t),u=E(e,\"onBlur\",t),f=E(e,\"onDestroy\",t);s&&this.editor.on(\"beforeCreate\",s),o&&this.editor.on(\"create\",o),l&&this.editor.on(\"update\",l),a&&this.editor.on(\"selectionUpdate\",a),c&&this.editor.on(\"transaction\",c),d&&this.editor.on(\"focus\",d),u&&this.editor.on(\"blur\",u),f&&this.editor.on(\"destroy\",f)})}};ci.resolve=qo;ci.sort=_n;ci.flatten=Uo;var D=class Tu extends Yo{constructor(...e){super(...e),this.type=\"extension\"}static create(e={}){let t=typeof e==\"function\"?e():e;return new Tu(t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==\"function\"?e():e;return super.extend(t)}},Xy=D.create({name:\"clipboardTextSerializer\",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new O({key:new H(\"clipboardTextSerializer\"),props:{clipboardTextSerializer:()=>{let{editor:n}=this,{state:e,schema:t}=n,{doc:r,selection:i}=e,s=lu(t),{blockSeparator:o}=this.options,l={...o!==void 0?{blockSeparator:o}:{},textSerializers:s};return[...i.ranges].sort((a,c)=>a.$from.pos-c.$from.pos).map(({$from:a,$to:c})=>ou(r,{from:a.pos,to:c.pos},l)).join(o??`\n\n`)}}})]}}),Gy=D.create({name:\"commands\",addCommands(){return{...ky}}}),Yy=D.create({name:\"delete\",onUpdate({transaction:n,appendedTransactions:e}){var t,r;let i=()=>{var s,o,l;if((s=(o=this.editor.options.coreExtensionOptions)===null||o===void 0||(o=o.delete)===null||o===void 0||(l=o.filterTransaction)===null||l===void 0?void 0:l.call(o,n))!==null&&s!==void 0?s:n.getMeta(\"y-sync$\"))return;let a=Wo(n.before,[n,...e]);ln(a).forEach(d=>{a.mapping.mapResult(d.oldRange.from).deletedAfter&&a.mapping.mapResult(d.oldRange.to).deletedBefore&&a.before.nodesBetween(d.oldRange.from,d.oldRange.to,(u,f)=>{let h=f+u.nodeSize-2,p=d.oldRange.from<=f&&h<=d.oldRange.to;this.editor.emit(\"delete\",{type:\"node\",node:u,from:f,to:h,newFrom:a.mapping.map(f),newTo:a.mapping.map(h),deletedRange:d.oldRange,newRange:d.newRange,partial:!p,editor:this.editor,transaction:n,combinedTransform:a})})});let c=a.mapping;a.steps.forEach((d,u)=>{if(d instanceof Ve){var f,h;let p=c.slice(u).map(d.from,-1),m=c.slice(u).map(d.to),g=c.invert().map(p,-1),y=c.invert().map(m),b=p>0?(f=a.doc.nodeAt(p-1))===null||f===void 0?void 0:f.marks.some(k=>k.eq(d.mark)):!1,w=(h=a.doc.nodeAt(m))===null||h===void 0?void 0:h.marks.some(k=>k.eq(d.mark));this.editor.emit(\"delete\",{type:\"mark\",mark:d.mark,from:d.from,to:d.to,deletedRange:{from:g,to:y},newRange:{from:p,to:m},partial:!!(w||b),editor:this.editor,transaction:n,combinedTransform:a})}})};!((t=(r=this.editor.options.coreExtensionOptions)===null||r===void 0||(r=r.delete)===null||r===void 0?void 0:r.async)!==null&&t!==void 0)||t?setTimeout(i,0):i()}}),Qy=D.create({name:\"drop\",addProseMirrorPlugins(){return[new O({key:new H(\"tiptapDrop\"),props:{handleDrop:(n,e,t,r)=>{this.editor.emit(\"drop\",{editor:this.editor,event:e,slice:t,moved:r})}}})]}}),Zy=D.create({name:\"editable\",addProseMirrorPlugins(){return[new O({key:new H(\"editable\"),props:{editable:()=>this.editor.options.editable}})]}}),eb=new H(\"focusEvents\"),tb=D.create({name:\"focusEvents\",addProseMirrorPlugins(){let{editor:n}=this;return[new O({key:eb,props:{handleDOMEvents:{focus:(e,t)=>{n.isFocused=!0;let r=n.state.tr.setMeta(\"focus\",{event:t}).setMeta(\"addToHistory\",!1);return e.dispatch(r),!1},blur:(e,t)=>{n.isFocused=!1;let r=n.state.tr.setMeta(\"blur\",{event:t}).setMeta(\"addToHistory\",!1);return e.dispatch(r),!1}}}})]}}),nb=D.create({name:\"keymap\",addKeyboardShortcuts(){let n=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:l})=>{let{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:R.atStart(c).from===f;return!d||!h.type.isTextblock||h.textContent.length||!y||y&&u.parent.type.name===\"paragraph\"?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),\"Mod-Enter\":()=>this.editor.commands.exitCode(),Backspace:n,\"Mod-Backspace\":n,\"Shift-Backspace\":n,Delete:e,\"Mod-Delete\":e,\"Mod-a\":()=>this.editor.commands.selectAll()},i={...r},s={...r,\"Ctrl-h\":n,\"Alt-Backspace\":n,\"Ctrl-d\":e,\"Ctrl-Alt-Backspace\":e,\"Alt-Delete\":e,\"Alt-d\":e,\"Ctrl-a\":()=>this.editor.commands.selectTextblockStart(),\"Ctrl-e\":()=>this.editor.commands.selectTextblockEnd()};return ii()||eu()?s:i},addProseMirrorPlugins(){return[new O({key:new H(\"clearDocument\"),appendTransaction:(n,e,t)=>{if(n.some(h=>h.getMeta(\"composition\")))return;let r=n.some(h=>h.docChanged)&&!e.doc.eq(t.doc),i=n.some(h=>h.getMeta(\"preventClearDocument\"));if(!r||i)return;let{empty:s,from:o,to:l}=e.selection,a=R.atStart(e.doc).from,c=R.atEnd(e.doc).to;if(s||!(o===a&&l===c)||!an(t.doc))return;let d=t.tr,u=si({state:t,transaction:d}),{commands:f}=new nn({editor:this.editor,state:u});if(f.clearNodes(),!!d.steps.length)return d}})]}}),rb=D.create({name:\"paste\",addProseMirrorPlugins(){return[new O({key:new H(\"tiptapPaste\"),props:{handlePaste:(n,e,t)=>{this.editor.emit(\"paste\",{editor:this.editor,event:e,slice:t})}}})]}}),ib=D.create({name:\"tabindex\",addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new O({key:new H(\"tabindex\"),props:{attributes:()=>{var n;return!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:(n=this.options.value)!==null&&n!==void 0?n:\"0\"}}}})]}}),sb=D.create({name:\"textDirection\",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:n}=sn(this.extensions);return[{types:n.filter(e=>e.name!==\"text\").map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{let t=e.getAttribute(\"dir\");return t&&(t===\"ltr\"||t===\"rtl\"||t===\"auto\")?t:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new O({key:new H(\"textDirection\"),props:{attributes:()=>{let n=this.options.direction;return n?{dir:n}:{}}}})]}});var Wd=!1;function ob(n){if(Wd)return;Wd=!0;let e;try{e=K.fromJSON(n,{from:0,to:0}).slice.content}catch{return}e instanceof x||console.warn(\"[tiptap warn]: prosemirror-model is loaded more than once. Wrapping and splitting nodes will fail. Deduplicate it in your lock file, or alias it to a single copy in your bundler.\")}var lb=class Fn{get name(){return this.node.type.name}constructor(e,t,r=!1,i=null){this.currentNode=null,this.actualDepth=null,this.isBlock=r,this.resolvedPos=e,this.editor=t,this.currentNode=i}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return(e=this.actualDepth)!==null&&e!==void 0?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let t=this.from,r=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can\\u2019t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}t=this.from+1,r=this.to-1}this.editor.commands.insertContentAt({from:t,to:r},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;let e=this.resolvedPos.start(this.resolvedPos.depth-1),t=this.resolvedPos.doc.resolve(e);return new Fn(t,this.editor)}get before(){let e=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.from-3)),new Fn(e,this.editor)}get after(){let e=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.to+3)),new Fn(e,this.editor)}get children(){let e=[];return this.node.content.forEach((t,r)=>{let i=t.isBlock&&!t.isTextblock,s=t.isAtom&&!t.isText,o=t.isInline,l=this.pos+r+(s?0:1);if(l<0||l>this.resolvedPos.doc.nodeSize-2)return;let a=this.resolvedPos.doc.resolve(l);if(!i&&!o&&a.depth<=this.depth)return;let c=new Fn(a,this.editor,i,i||o?t:null);i&&(c.actualDepth=this.depth+1),e.push(c)}),e}get firstChild(){return this.children[0]||null}get lastChild(){let e=this.children;return e[e.length-1]||null}closest(e,t={}){let r=null,i=this.parent;for(;i&&!r;){if(i.node.type.name===e)if(Object.keys(t).length>0){let s=i.node.attrs,o=Object.keys(t);for(let l=0;l<o.length;l+=1){let a=o[l];if(s[a]!==t[a])break}}else r=i;i=i.parent}return r}querySelector(e,t={}){return this.querySelectorAll(e,t,!0)[0]||null}querySelectorAll(e,t={},r=!1){let i=[];if(!this.children||this.children.length===0)return i;let s=Object.keys(t);return this.children.forEach(o=>{r&&i.length>0||(o.node.type.name===e&&s.every(l=>t[l]===o.node.attrs[l])&&i.push(o),!(r&&i.length>0)&&(i=i.concat(o.querySelectorAll(e,t,r))))}),i}setAttribute(e){let{tr:t}=this.editor.state;t.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(t)}},ab=`.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}`,Eu=class extends vy{constructor(n={}){super(),this.css=null,this.className=\"tiptap\",this.editorView=null,this.isFocused=!1,this.destroyed=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.hasWarnedStaleDecorationRead=!1,this.options={element:typeof document<\"u\"?document.createElement(\"div\"):null,content:\"\",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:t})=>{throw t},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:Xg,createMappablePosition:Gg},this.setOptions(n),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:t,slice:r,moved:i})=>this.options.onDrop(t,r,i)),this.on(\"paste\",({event:t,slice:r})=>this.options.onPaste(t,r)),this.on(\"delete\",this.options.onDelete);let e=this.createDoc();if(!this.editorState){let t=Ho(e,this.options.autofocus);this.editorState=kt.create({doc:e,schema:this.schema,selection:t||void 0})}ob(this.schema),this.options.element&&this.mount(this.options.element)}mount(n){if(typeof document>\"u\")throw new Error(\"[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.\");this.createView(n),this.emit(\"mount\",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit(\"create\",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){this.editorState=this.editorView.state;let n=this.editorView.dom;n?.editor&&delete n.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove==\"function\"?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(n){console.warn(\"Failed to remove CSS element:\",n)}this.css=null,this.emit(\"unmount\",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager?this.commandManager.chain():nn.createFakeChain()}can(){return this.commandManager?this.commandManager.can():nn.createFallbackCan()}injectCSS(){this.options.injectCSS&&typeof document<\"u\"&&(this.css=By(ab,this.options.injectNonce))}setOptions(n={}){this.options={...this.options,...n},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps({...this.options.editorProps,attributes:this.getEditorViewAttributes()}),this.view.updateState(this.state))}setEditable(n,e=!0){this.setOptions({editable:n}),e&&this.emit(\"update\",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:n=>{this.editorState=n},dispatch:n=>{this.dispatchTransaction(n)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(n,e)=>{if(this.editorView)return this.editorView[e];if(e===\"state\")return this.editorState;if(e in n)return Reflect.get(n,e);throw new Error(`[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`)}})}get state(){return mu&&!this.hasWarnedStaleDecorationRead&&wy(this)&&(this.hasWarnedStaleDecorationRead=!0,console.warn(\"[tiptap warn]: `editor.state` was read while decoration `create()` was running. It returns the pre-transaction document. Use the `state` argument passed to `create()` instead. Helpers like `editor.isActive()` read `editor.state` too, so pass `state` to their standalone versions instead of calling them on the editor.\")),this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(n,e){let t=Fo(e)?e(n,[...this.state.plugins]):[...this.state.plugins,n],r=this.state.reconfigure({plugins:t});return this.view.updateState(r),r}unregisterPlugin(n){if(this.isDestroyed)return;let e=this.state.plugins,t=e;if([].concat(n).forEach(i=>{let s=typeof i==\"string\"?`${i}$`:i.key;t=t.filter(o=>!o.key.startsWith(s))}),e.length===t.length)return;let r=this.state.reconfigure({plugins:t});return this.view.updateState(r),r}createExtensionManager(){var n,e;let t=[...this.options.enableCoreExtensions?[Zy,Xy.configure({blockSeparator:(n=this.options.coreExtensionOptions)===null||n===void 0||(n=n.clipboardTextSerializer)===null||n===void 0?void 0:n.blockSeparator}),Gy,tb,nb,ib.configure({value:(e=this.options.coreExtensionOptions)===null||e===void 0||(e=e.tabindex)===null||e===void 0?void 0:e.value}),Qy,rb,Yy,sb.configure({direction:this.options.textDirection})].filter(r=>typeof this.options.enableCoreExtensions==\"object\"?this.options.enableCoreExtensions[r.name]!==!1:!0):[],...this.options.extensions].filter(r=>[\"extension\",\"node\",\"mark\"].includes(r?.type));this.extensionManager=new ci(t,this)}createCommandManager(){this.commandManager=new nn({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let n;try{n=$o(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||![\"[tiptap error]: Invalid JSON content\",\"[tiptap error]: Invalid HTML content\"].includes(e.message))throw e;let t=$o(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1});return this.editorState=kt.create({doc:t,schema:this.schema,selection:Ho(t,this.options.autofocus)||void 0}),this.emit(\"contentError\",{editor:this,error:e,disableCollaboration:()=>{\"collaboration\"in this.storage&&typeof this.storage.collaboration==\"object\"&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(r=>r.name!==\"collaboration\"),this.createExtensionManager()}}),this.editorState.doc}return n}getEditorViewAttributes(){var n;let e=(n=this.options.editorProps)===null||n===void 0?void 0:n.attributes;return Fo(e)?t=>({role:\"textbox\",...e(t)}):{role:\"textbox\",...e}}createView(n){let{editorProps:e,enableExtensionDispatchTransaction:t}=this.options,r=e.dispatchTransaction||this.dispatchTransaction.bind(this),i=t?this.extensionManager.dispatchTransaction(r):r,s=e.transformPastedHTML,o=this.extensionManager.transformPastedHTML(s);this.editorView=new Bn(n,{...e,attributes:this.getEditorViewAttributes(),dispatchTransaction:i,transformPastedHTML:o,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});let l=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(l),this.prependClass(),this.injectCSS();let a=this.view.dom;a.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(n){this.isCapturingTransaction=!0,n(),this.isCapturingTransaction=!1;let e=this.capturedTransaction;return this.capturedTransaction=null,e}dispatchTransaction(n){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=n;return}n.steps.forEach(c=>{var d;return(d=this.capturedTransaction)===null||d===void 0?void 0:d.step(c)});return}let{state:e,transactions:t}=this.state.applyTransaction(n),r=!this.state.selection.eq(e.selection),i=t.includes(n),s=this.state;if(this.emit(\"beforeTransaction\",{editor:this,transaction:n,nextState:e}),!i)return;this.view.updateState(e),this.emit(\"transaction\",{editor:this,transaction:n,appendedTransactions:t.slice(1)}),r&&this.emit(\"selectionUpdate\",{editor:this,transaction:n});let o=t.findLast(c=>c.getMeta(\"focus\")||c.getMeta(\"blur\")),l=o?.getMeta(\"focus\"),a=o?.getMeta(\"blur\");l&&this.emit(\"focus\",{editor:this,event:l.event,transaction:o}),a&&this.emit(\"blur\",{editor:this,event:a.event,transaction:o}),!(n.getMeta(\"preventUpdate\")||!t.some(c=>c.docChanged)||s.doc.eq(e.doc))&&this.emit(\"update\",{editor:this,transaction:n,appendedTransactions:t.slice(1)})}getAttributes(n){return Jo(this.state,n)}isActive(n,e){let t=typeof n==\"string\"?n:null,r=typeof n==\"string\"?e:n;return Jg(this.state,t,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return Ko(this.state.doc.content,this.schema)}getText(n){let{blockSeparator:e=`\n\n`,textSerializers:t={}}=n||{};return jg(this.state.doc,{blockSeparator:e,textSerializers:{...lu(this.schema),...t}})}get isEmpty(){return an(this.state.doc)}destroy(){this.destroyed||(this.destroyed=!0,this.emit(\"destroy\"),this.unmount(),this.removeAllListeners(),this.extensionManager.destroy(),this.extensionManager=null,this.schema=null,this.commandManager=null,this.extensionStorage={})}get isDestroyed(){var n,e;return(n=(e=this.editorView)===null||e===void 0?void 0:e.isDestroyed)!==null&&n!==void 0?n:!0}$node(n,e){var t;return((t=this.$doc)===null||t===void 0?void 0:t.querySelector(n,e))||null}$nodes(n,e){var t;return((t=this.$doc)===null||t===void 0?void 0:t.querySelectorAll(n,e))||null}$pos(n){let e=this.state.doc.resolve(n),t=n>0&&e.nodeAfter&&!e.nodeAfter.isText&&e.nodeAfter.isAtom?e.nodeAfter:null;return new lb(e,this,!1,t)}get $doc(){return this.$pos(0)}};function ve(n){return new un({find:n.find,handler:({state:e,range:t,match:r})=>{let i=B(n.getAttributes,void 0,r);if(i===!1||i===null)return null;let{tr:s}=e,o=r[r.length-1],l=r[0];if(o){let a=l.search(/\\S/),c=t.from+l.indexOf(o),d=c+o.length;if(Vn(t.from,t.to,e.doc).filter(f=>f.mark.type.excluded.find(h=>h===n.type&&h!==f.mark.type)).filter(f=>f.to>c).length)return null;d<t.to&&s.delete(d,t.to),c>t.from&&s.delete(t.from+a,c);let u=t.from+a+o.length;s.addMark(t.from+a,u,n.type.create(i||{})),s.removeStoredMark(n.type)}},undoable:n.undoable})}function Mu(n){return new un({find:n.find,handler:({state:e,range:t,match:r})=>{let i=B(n.getAttributes,void 0,r)||{},{tr:s}=e,o=t.from,l=t.to,a=n.type.create(i);if(r[1]){let c=o+r[0].lastIndexOf(r[1]);c>l?c=l:l=c+r[1].length;let d=r[0][r[0].length-1];s.insertText(d,o+r[0].length-1),s.replaceWith(c,l,a)}else if(r[0]){let c=n.type.isInline?o:o-1;s.insert(c,n.type.create(i)).delete(s.mapping.map(o),s.mapping.map(l))}s.scrollIntoView()},undoable:n.undoable})}function jn(n){return new un({find:n.find,handler:({state:e,range:t,match:r})=>{let i=e.doc.resolve(t.from),s=B(n.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),n.type))return null;e.tr.delete(t.from,t.to).setBlockType(t.from,t.from,n.type,s)},undoable:n.undoable})}function dt(n){return new un({find:n.find,handler:({state:e,range:t,match:r,chain:i})=>{let s=B(n.getAttributes,void 0,r)||{},o=e.tr.delete(t.from,t.to),l=o.doc.resolve(t.from).blockRange(),a=l&&jt(l,n.type,s);if(!a)return null;if(o.wrap(l,a),n.keepMarks&&n.editor){let{selection:d,storedMarks:u}=e,{splittableMarks:f}=n.editor.extensionManager,h=u||d.$to.parentOffset&&d.$from.marks();if(h){let p=h.filter(m=>f.includes(m.type.name));o.ensureMarks(p)}}if(n.keepAttributes){let d=n.type.name===\"bulletList\"||n.type.name===\"orderedList\"?\"listItem\":\"taskList\";i().updateAttributes(d,s).run()}let c=o.doc.resolve(t.from-1).nodeBefore;c&&c.type===n.type&&Re(o.doc,t.from-1)&&(!n.joinPredicate||n.joinPredicate(r,c))&&o.join(t.from-1)},undoable:n.undoable})}var j=class Cu extends Yo{constructor(...e){super(...e),this.type=\"node\"}static create(e={}){let t=typeof e==\"function\"?e():e;return new Cu(t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==\"function\"?e():e;return super.extend(t)}};function ye(n){return new Qo({find:n.find,handler:({state:e,range:t,match:r,pasteEvent:i})=>{let s=B(n.getAttributes,void 0,r,i);if(s===!1||s===null)return null;let{tr:o}=e,l=r[r.length-1],a=r[0],c=t.to;if(l){let d=a.search(/\\S/),u=t.from+a.indexOf(l),f=u+l.length;if(Vn(t.from,t.to,e.doc).filter(h=>h.mark.type.excluded.find(p=>p===n.type&&p!==h.mark.type)).filter(h=>h.to>u).length)return null;f<t.to&&o.delete(f,t.to),u>t.from&&o.delete(t.from+d,u),c=t.from+d+l.length,o.addMark(t.from+d,c,n.type.create(s||{})),r.index!==void 0&&r.input!==void 0&&r.index+r[0].length>=r.input.length||o.removeStoredMark(n.type)}}})}function Dt(n){return n.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\")}var cb=20,Au=(n,e=0)=>{let t=[];return!n.children.length||e>cb||Array.from(n.children).forEach(r=>{r.tagName===\"SPAN\"?t.push(r):r.children.length&&t.push(...Au(r,e+1))}),t},db=n=>{if(!n.children.length)return;let e=Au(n);e&&e.forEach(t=>{var r;let i=t.getAttribute(\"style\"),s=(r=t.parentElement)===null||r===void 0||(r=r.closest(\"span\"))===null||r===void 0?void 0:r.getAttribute(\"style\");t.setAttribute(\"style\",`${s};${i}`)})},Zo=W.create({name:\"textStyle\",priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:\"span\",consuming:!1,getAttrs:n=>n.hasAttribute(\"style\")?(this.options.mergeNestedSpanStyles&&db(n),{}):!1}]},renderHTML({HTMLAttributes:n}){return[\"span\",L(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleTextStyle:n=>({commands:e})=>e.toggleMark(this.name,n),removeEmptyTextStyle:()=>({tr:n})=>{let{selection:e}=n;return n.doc.nodesBetween(e.from,e.to,(t,r)=>{if(!t.isInline)return!0;t.marks.filter(i=>i.type===this.type).some(i=>Object.values(i.attrs).some(s=>!!s))||n.removeMark(r,r+t.nodeSize,this.type)}),!0}}}}),ub=D.create({name:\"backgroundColor\",addOptions(){return{types:[\"textStyle\"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:n=>{var e;let t=(e=cn(n,\"background-color\"))!==null&&e!==void 0?e:n.style.backgroundColor;return t?.replace(/['\"]+/g,\"\")},renderHTML:n=>dn(n.backgroundColor)?{style:`background-color: ${n.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:n=>({chain:e})=>e().setMark(\"textStyle\",{backgroundColor:n}).run(),unsetBackgroundColor:()=>({chain:n})=>n().setMark(\"textStyle\",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),fb=D.create({name:\"color\",addOptions(){return{types:[\"textStyle\"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:n=>{var e;let t=(e=cn(n,\"color\"))!==null&&e!==void 0?e:n.style.color;return t?.replace(/['\"]+/g,\"\")},renderHTML:n=>dn(n.color)?{style:`color: ${n.color}`}:{}}}}]},addCommands(){return{setColor:n=>({chain:e})=>e().setMark(\"textStyle\",{color:n}).run(),unsetColor:()=>({chain:n})=>n().setMark(\"textStyle\",{color:null}).removeEmptyTextStyle().run()}}}),hb=D.create({name:\"fontFamily\",addOptions(){return{types:[\"textStyle\"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:n=>{var e;return(e=cn(n,\"font-family\"))!==null&&e!==void 0?e:n.style.fontFamily},renderHTML:n=>dn(n.fontFamily)?{style:`font-family: ${n.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:n=>({chain:e})=>e().setMark(\"textStyle\",{fontFamily:n}).run(),unsetFontFamily:()=>({chain:n})=>n().setMark(\"textStyle\",{fontFamily:null}).removeEmptyTextStyle().run()}}}),pb=D.create({name:\"fontSize\",addOptions(){return{types:[\"textStyle\"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:n=>{var e;return(e=cn(n,\"font-size\"))!==null&&e!==void 0?e:n.style.fontSize},renderHTML:n=>dn(n.fontSize)?{style:`font-size: ${n.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:n=>({chain:e})=>e().setMark(\"textStyle\",{fontSize:n}).run(),unsetFontSize:()=>({chain:n})=>n().setMark(\"textStyle\",{fontSize:null}).removeEmptyTextStyle().run()}}}),mb=D.create({name:\"lineHeight\",addOptions(){return{types:[\"textStyle\"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:n=>{var e;return(e=cn(n,\"line-height\"))!==null&&e!==void 0?e:n.style.lineHeight},renderHTML:n=>dn(n.lineHeight)?{style:`line-height: ${n.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:n=>({chain:e})=>e().setMark(\"textStyle\",{lineHeight:n}).run(),unsetLineHeight:()=>({chain:n})=>n().setMark(\"textStyle\",{lineHeight:null}).removeEmptyTextStyle().run()}}}),Ru=D.create({name:\"textStyleKit\",addExtensions(){let n=[];return this.options.backgroundColor!==!1&&n.push(ub.configure(this.options.backgroundColor)),this.options.color!==!1&&n.push(fb.configure(this.options.color)),this.options.fontFamily!==!1&&n.push(hb.configure(this.options.fontFamily)),this.options.fontSize!==!1&&n.push(pb.configure(this.options.fontSize)),this.options.lineHeight!==!1&&n.push(mb.configure(this.options.lineHeight)),this.options.textStyle!==!1&&n.push(Zo.configure(this.options.textStyle)),n}});var ui=[\"bold\",\"italic\",\"underline\",\"strike\",\"link\"],re=\"data-editor-rich-origin\",ut=\"data-editor-rich-removed\",Nu={strong:\"bold\",b:\"bold\",em:\"italic\",i:\"italic\",u:\"underline\",s:\"strike\",a:\"link\"},gb={bold:{\"font-weight\":\"normal\"},italic:{\"font-style\":\"normal\"},underline:{},strike:{},link:{}},yb=[\"href\",\"target\",\"rel\",\"ping\",\"download\",\"hreflang\",\"referrerpolicy\",\"type\"],di=class{formatForTag(e){return e&&Object.hasOwn(Nu,e)?Nu[e]:void 0}isFormat(e){return typeof e==\"string\"&&ui.includes(e)}canRemove(e,t,r){return this.isFormat(r)&&t===\"span\"&&this.formatForTag(e)===r}resets(e){return{...gb[e]}}decorationFor(e){return e===\"underline\"?\"underline\":e===\"strike\"?\"line-through\":void 0}removedAttributes(e){return e===\"link\"?[...yb]:[]}};var fn=class{styleExtensions(){return[Ru.configure({textStyle:!1}),Zo.extend({priority:90,parseHTML(){return(this.parent?.()??[]).map(e=>({...e,priority:60}))}}).configure({mergeNestedSpanStyles:!1})]}markName(e){return`preserved${e.charAt(0).toUpperCase()}${e.slice(1)}Style`}markNames(){return ui.map(e=>this.markName(e))}extensions(){return ui.map(e=>W.create({name:this.markName(e),excludes:\"\",addAttributes:()=>({[ut]:{default:e,parseHTML:()=>e,renderHTML:()=>({[ut]:e})}}),parseHTML:()=>[{tag:`span[${re}][${ut}=\"${e}\"]`}],renderHTML:({HTMLAttributes:t})=>[\"span\",{...t,[ut]:e},0]}))}toggle(e,t,r=!0){if(!e.isEditable||e.isDestroyed)return!1;let i=e.isActive(t),s=r?e.chain().focus(void 0,{scrollIntoView:!1}):e.chain();return i&&(s=s.command(({tr:o})=>this.preserve(o,t))),s=s.toggleMark(t),i||(s=s.command(({tr:o})=>this.restore(o,t))),s.run()}removeLink(e,t=!0){return!e.isEditable||e.isDestroyed?!1:(t?e.chain().focus(void 0,{scrollIntoView:!1}):e.chain()).extendMarkRange(\"link\").command(({tr:r})=>this.preserve(r,\"link\")).unsetLink().run()}carried(e,t){let r=e.attrs.raw,i=t.spec.attrs;return r&&i&&\"raw\"in i?{raw:r}:{}}preserve(e,t){let r=e.doc.type.schema.marks[t],i=e.doc.type.schema.marks[this.markName(t)];if(!r||!i)return!1;let s=a=>{let c=a.find(u=>u.type===r),d=c?.attrs[re];return c&&typeof d==\"string\"&&d.length>0&&d.length<=200?i.create({[re]:d,...this.carried(c,i)}):void 0};if(e.selection.empty){let a=s(e.storedMarks??e.selection.$from.marks());return a&&e.addStoredMark(a),!0}let{from:o,to:l}=e.selection;return e.doc.nodesBetween(o,l,(a,c)=>{if(!a.isInline)return;let d=s(a.marks);d&&e.addMark(Math.max(o,c),Math.min(l,c+a.nodeSize),d)}),!0}restore(e,t){let r=e.doc.type.schema.marks[t],i=e.doc.type.schema.marks[this.markName(t)];if(!r||!i)return!1;let s=a=>{let c=a.find(f=>f.type===i),d=c?.attrs[re],u=a.find(f=>f.type===r);return u&&c&&typeof d==\"string\"&&d.length>0&&d.length<=200?r.create({...u.attrs,[re]:d,...this.carried(c,r)}):void 0};if(e.selection.empty){let a=s(e.storedMarks??e.selection.$from.marks());return a&&(e.addStoredMark(a),e.removeStoredMark(i)),!0}let{from:o,to:l}=e.selection;return e.doc.nodesBetween(o,l,(a,c)=>{if(!a.isInline)return;let d=s(a.marks);if(!d)return;let u=Math.max(o,c),f=Math.min(l,c+a.nodeSize);e.addMark(u,f,d),e.removeMark(u,f,i)}),!0}};var fi=class{constructor(e=new fn,t=!0){this.formatting=e;this.focus=t}formatting;focus;run(e,t,r=null,i){if(e.isDestroyed||!e.isEditable)return!1;let s=()=>{let l=e.chain();return i?l.setTextSelection(this.clamp(e,i)):l},o=()=>this.focus?e.chain().focus(void 0,{scrollIntoView:!1}):e.chain();switch(t){case\"bold\":case\"italic\":case\"underline\":case\"strike\":return this.formatting.toggle(e,t,this.focus);case\"superscript\":case\"subscript\":return o().toggleMark(t).run();case\"bulletList\":return!!e.schema.nodes.bulletList&&o().toggleBulletList().run();case\"orderedList\":return!!e.schema.nodes.orderedList&&o().toggleOrderedList().run();case\"color\":return r===null?s().unsetColor().run():s().setColor(r).run();case\"backgroundColor\":return r===null?s().unsetBackgroundColor().run():s().setBackgroundColor(r).run();case\"fontFamily\":return r===null?s().unsetFontFamily().run():s().setFontFamily(r).run();case\"fontSize\":return r===null?s().unsetFontSize().run():s().setFontSize(r).run();case\"lineHeight\":return r===null?s().unsetLineHeight().run():s().setLineHeight(r).run();case\"clearFormatting\":{for(let l of[\"bold\",\"italic\",\"underline\",\"strike\"])e.isActive(l)&&this.formatting.toggle(e,l,this.focus);return o().unsetMark(\"textStyle\").unsetMark(\"superscript\").unsetMark(\"subscript\").run()}case\"setLink\":return!!e.schema.marks.link&&r!==null&&o().extendMarkRange(\"link\").setLink({href:r}).command(({tr:l})=>this.formatting.restore(l,\"link\")).run();case\"unsetLink\":return!!e.schema.marks.link&&this.formatting.removeLink(e,this.focus);case\"insertText\":{if(!r||r.length>tt.insertedText)return!1;let l=this.clamp(e,i??e.state.selection);return o().insertContentAt(l,{type:\"text\",text:r}).run()}case\"undo\":return e.commands.undo();case\"redo\":return e.commands.redo();case\"finish\":case\"cancel\":return!1}}clamp(e,t){let r=e.state.doc.type.inlineContent?0:1,i=Math.max(r,e.state.doc.content.size-r),s=Math.min(Math.max(r,t.from),i);return{from:s,to:Math.min(Math.max(s,t.to),i)}}},hi=class{read(e,t,r=(s,o)=>o,i=()=>({})){if(e.isDestroyed)return fs();let{from:s,to:o,empty:l}=e.state.selection,a=[];l?a.push({marks:e.state.storedMarks??e.state.selection.$from.marks(),position:s}):e.state.doc.nodesBetween(s,o,(h,p)=>{h.isText&&a.length<200&&a.push({marks:h.marks,position:Math.max(s,p)})});let c=fs().styles;for(let h of us){let p=a.map(g=>{let y=g.marks.find(w=>w.type.name===\"textStyle\")?.attrs[h];if(typeof y==\"string\"&&y)return{value:r(h,y),own:!0};let b=i(g.marks,g.position)[h];return{value:b?r(h,b):\"\",own:!1}}),m=new Set(p.map(g=>g.value)).size>1;c[h]={value:m?\"\":(p[0]?.value??\"\").slice(0,tt.styleValue),own:p.some(g=>g.own),mixed:m}}let d=Fl.filter(h=>(!!e.schema.marks[h]||!!e.schema.nodes[h])&&e.isActive(h)),u=!!e.schema.marks.link&&e.isActive(\"link\"),f=u?e.getAttributes(\"link\").href:\"\";return{ready:t,marks:d,styles:c,link:u,href:typeof f==\"string\"?f.slice(0,tt.commandValue):\"\",empty:e.isEmpty,canUndo:e.can().undo(),canRedo:e.can().redo()}}};var Ou=new Set([\"span\",\"strong\",\"b\",\"em\",\"i\",\"u\",\"s\",\"a\",\"br\",\"small\",\"sup\",\"sub\",\"code\"]),Iu=new Set([\"p\",\"ul\",\"ol\",\"li\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"blockquote\",\"pre\",\"hr\"]),bb={b:\"strong\",i:\"em\",small:\"span\"},pi=class{isInline(e){return Ou.has(e)}isBlock(e){return Iu.has(e)}supports(e){return Ou.has(e)||Iu.has(e)}canonicalTag(e){return bb[e]??e}semanticAttributes(e){let t=this.canonicalTag(e);return t===\"a\"?[\"href\",\"target\",\"rel\",\"title\"]:t===\"ol\"?[\"start\"]:[]}needsOrigin(e,t){let r=this.semanticAttributes(e);return[\"span\",\"small\",\"a\"].includes(e)||t.some(i=>!r.includes(i))||this.canonicalTag(e)!==e}};var Du=new WeakSet,Lu=new WeakSet;function Lt(n){let e=n;return Du.add(e),e}function el(n){return Array.isArray(n)&&Du.has(n)}function Pu(n){return n.flatMap(e=>e==null?[]:Array.isArray(e)&&Lu.has(e)&&!el(e)?Pu(e):[e])}function xb(n,e){if(n===\"slot\")return 0;if(n instanceof Function){let i=n(e);return Array.isArray(i)&&!el(i)&&!Lu.has(i)?Lt(i):i}let{children:t,...r}=e??{};if(n===\"svg\")throw new Error(\"SVG elements are not supported in the JSX syntax, use the array syntax instead\");if(Array.isArray(t)){if(el(t))return Lt([n,r,t]);if(t.length===0)return Lt([n,r]);let i=Pu(t);return i.length===0?Lt([n,r]):Lt([n,r,...i])}return t!=null?Lt([n,r,t]):Lt([n,r])}var hn=(n,e)=>xb(n,e);var kb=(n,e)=>{var t;let{state:r}=n,{selection:i}=r;if(!i.empty)return!1;let{$from:s}=i;if(s.parentOffset!==0)return!1;let o=s.depth-1;if(o<0)return!1;let l=s.node(o),a=s.index(o);if(a===0)return!1;if(l.type===e)return n.commands.lift(e.name);let c=l.child(a-1);if(c.type!==e||!(!((t=c.lastChild)===null||t===void 0)&&t.isTextblock))return!1;let d=s.before()-1-1;return n.commands.command(({tr:u,dispatch:f})=>{if(!f)return!0;let h=s.parent.content,p=new v(h,0,0);return u.replace(d,s.after(),p),u.setSelection(T.create(u.doc,d+h.size)),u.scrollIntoView(),f(u),!0})},Sb=/^\\s*>\\s$/,Bu=j.create({name:\"blockquote\",addOptions(){return{HTMLAttributes:{}}},content:\"block+\",group:\"block\",defining:!0,parseHTML(){return[{tag:\"blockquote\"}]},renderHTML({HTMLAttributes:n}){return hn(\"blockquote\",{...L(this.options.HTMLAttributes,n),children:hn(\"slot\",{})})},parseMarkdown:(n,e)=>{var t;let r=(t=e.parseBlockChildren)!==null&&t!==void 0?t:e.parseChildren;return e.createNode(\"blockquote\",void 0,r(n.tokens||[]))},renderMarkdown:(n,e)=>{if(!n.content)return\"\";let t=\">\",r=[];return n.content.forEach((i,s)=>{var o,l;let a=((o=(l=e.renderChild)===null||l===void 0?void 0:l.call(e,i,s))!==null&&o!==void 0?o:e.renderChildren([i])).split(`\n`).map(c=>c.trim()===\"\"?t:`${t} ${c}`);r.push(a.join(`\n`))}),r.join(`\n${t}\n`)},addCommands(){return{setBlockquote:()=>({commands:n})=>n.wrapIn(this.name),toggleBlockquote:()=>({commands:n})=>n.toggleWrap(this.name),unsetBlockquote:()=>({commands:n})=>n.lift(this.name)}},addKeyboardShortcuts(){return{\"Mod-Shift-b\":()=>this.editor.commands.toggleBlockquote(),Backspace:()=>kb(this.editor,this.type)}},addInputRules(){return[dt({find:Sb,type:this.type})]}});var wb=/(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))$/,vb=/(?:^|\\s)(\\*\\*(?!\\s+\\*\\*)((?:[^*]+))\\*\\*(?!\\s+\\*\\*))/g,Tb=/(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))$/,Eb=/(?:^|\\s)(__(?!\\s+__)((?:[^_]+))__(?!\\s+__))/g,zu=W.create({name:\"bold\",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:\"strong\"},{tag:\"b\",getAttrs:n=>n.style.fontWeight!==\"normal\"&&null},{style:\"font-weight=400\",clearMark:n=>n.type.name===this.name},{style:\"font-weight\",getAttrs:n=>/^(bold(er)?|[5-9]\\d{2,})$/.test(n)&&null}]},renderHTML({HTMLAttributes:n}){return hn(\"strong\",{...L(this.options.HTMLAttributes,n),children:hn(\"slot\",{})})},markdownTokenName:\"strong\",parseMarkdown:(n,e)=>e.applyMark(\"bold\",e.parseInline(n.tokens||[])),markdownOptions:{htmlReopen:{open:\"<strong>\",close:\"</strong>\"}},renderMarkdown:(n,e)=>`**${e.renderChildren(n)}**`,addCommands(){return{setBold:()=>({commands:n})=>n.setMark(this.name),toggleBold:()=>({commands:n})=>n.toggleMark(this.name),unsetBold:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{\"Mod-b\":()=>this.editor.commands.toggleBold(),\"Mod-B\":()=>this.editor.commands.toggleBold()}},addInputRules(){return[ve({find:wb,type:this.type}),ve({find:Tb,type:this.type})]},addPasteRules(){return[ye({find:vb,type:this.type}),ye({find:Eb,type:this.type})]}});var Mb=n=>{let e=/`([^`]+)`(?!`)$/.exec(n);return!e||e.index>0&&n[e.index-1]===\"`\"?null:{index:e.index,text:e[0],replaceWith:e[1]}},Cb=n=>{let e=/`([^`]+)`(?!`)/g,t=[],r;for(;(r=e.exec(n))!==null;)r.index>0&&n[r.index-1]===\"`\"||t.push({index:r.index,text:r[0],replaceWith:r[1]});return t};function Ab(n){let e=new Set((n.match(/`+/g)||[]).map(r=>r.length)),t=1;for(;e.has(t);)t+=1;return t}var Hu=W.create({name:\"code\",addOptions(){return{HTMLAttributes:{}}},excludes:\"_\",code:!0,exitable:!0,parseHTML(){return[{tag:\"code\"}]},renderHTML({HTMLAttributes:n}){return[\"code\",L(this.options.HTMLAttributes,n),0]},markdownTokenName:\"codespan\",parseMarkdown:(n,e)=>e.applyMark(\"code\",[{type:\"text\",text:n.text||\"\"}]),renderMarkdown:(n,e,t)=>{var r;if(!n.content)return\"\";let i=typeof(t==null||(r=t.meta)===null||r===void 0?void 0:r.markText)==\"string\"?t.meta.markText:\"\",s=\"`\".repeat(Ab(i)),o=i.startsWith(\"`\")||i.endsWith(\"`\")?\" \":\"\";return`${s}${o}${e.renderChildren(n.content)}${o}${s}`},addCommands(){return{setCode:()=>({commands:n})=>n.setMark(this.name),toggleCode:()=>({commands:n})=>n.toggleMark(this.name),unsetCode:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{\"Mod-e\":()=>this.editor.commands.toggleCode()}},addInputRules(){return[ve({find:Mb,type:this.type})]},addPasteRules(){return[ye({find:Cb,type:this.type})]}});var tl=4,Rb=/^```([a-z]+)?[\\s\\n]$/,Nb=/^~~~([a-z]+)?[\\s\\n]$/,$u=j.create({name:\"codeBlock\",addOptions(){return{languageClassPrefix:\"language-\",exitOnTripleEnter:!0,exitOnArrowDown:!0,exitOnArrowUp:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:tl,HTMLAttributes:{}}},content:\"text*\",marks:\"\",group:\"block\",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:n=>{var e;let{languageClassPrefix:t}=this.options;if(!t)return null;let r=[...((e=n.firstElementChild)===null||e===void 0?void 0:e.classList)||[]].filter(i=>i.startsWith(t)).map(i=>i.replace(t,\"\"))[0];return r||null},rendered:!1}}},parseHTML(){return[{tag:\"pre\",preserveWhitespace:\"full\"}]},renderHTML({node:n,HTMLAttributes:e}){return[\"pre\",L(this.options.HTMLAttributes,e),[\"code\",{class:n.attrs.language?this.options.languageClassPrefix+n.attrs.language:null},0]]},markdownTokenName:\"code\",parseMarkdown:(n,e)=>{var t,r;return((t=n.raw)===null||t===void 0?void 0:t.startsWith(\"```\"))===!1&&((r=n.raw)===null||r===void 0?void 0:r.startsWith(\"~~~\"))===!1&&n.codeBlockStyle!==\"indented\"?[]:e.createNode(\"codeBlock\",{language:n.lang||null},n.text?[e.createTextNode(n.text)]:[])},renderMarkdown:(n,e)=>{var t;let r=\"\",i=((t=n.attrs)===null||t===void 0?void 0:t.language)||\"\";return n.content?r=[`\\`\\`\\`${i}`,e.renderChildren(n.content),\"```\"].join(`\n`):r=`\\`\\`\\`${i}\n\n\\`\\`\\``,r},addCommands(){return{setCodeBlock:n=>({commands:e})=>e.setNode(this.name,n),toggleCodeBlock:n=>({commands:e})=>e.toggleNode(this.name,\"paragraph\",n)}},addKeyboardShortcuts(){return{\"Mod-Alt-c\":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{let{empty:n,$anchor:e}=this.editor.state.selection,t=e.pos===1;return!n||e.parent.type.name!==this.name?!1:t||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:n})=>{var e;if(!this.options.enableTabIndentation)return!1;let t=(e=this.options.tabSize)!==null&&e!==void 0?e:tl,{state:r}=n,{selection:i}=r,{$from:s,empty:o}=i;if(s.parent.type!==this.type)return!1;let l=\" \".repeat(t);return o?n.commands.insertContent(l):n.commands.command(({tr:a})=>{let{from:c,to:d}=i,u=r.doc.textBetween(c,d,`\n`,`\n`).split(`\n`).map(f=>l+f).join(`\n`);return a.replaceWith(c,d,r.schema.text(u)),!0})},\"Shift-Tab\":({editor:n})=>{var e;if(!this.options.enableTabIndentation)return!1;let t=(e=this.options.tabSize)!==null&&e!==void 0?e:tl,{state:r}=n,{selection:i}=r,{$from:s,empty:o}=i;return s.parent.type!==this.type?!1:o?n.commands.command(({tr:l})=>{var a;let{pos:c}=s,d=s.start(),u=s.end(),f=r.doc.textBetween(d,u,`\n`,`\n`).split(`\n`),h=0,p=0,m=c-d;for(let w=0;w<f.length;w+=1){if(p+f[w].length>=m){h=w;break}p+=f[w].length+1}let g=((a=f[h].match(/^ */))===null||a===void 0?void 0:a[0])||\"\",y=Math.min(g.length,t);if(y===0)return!0;let b=d;for(let w=0;w<h;w+=1)b+=f[w].length+1;return l.delete(b,b+y),c-b<=y&&l.setSelection(T.create(l.doc,b)),!0}):n.commands.command(({tr:l})=>{let{from:a,to:c}=i,d=r.doc.textBetween(a,c,`\n`,`\n`).split(`\n`).map(u=>{var f;let h=((f=u.match(/^ */))===null||f===void 0?void 0:f[0])||\"\",p=Math.min(h.length,t);return u.slice(p)}).join(`\n`);return l.replaceWith(a,c,r.schema.text(d)),!0})},Enter:({editor:n})=>{if(!this.options.exitOnTripleEnter)return!1;let{state:e}=n,{selection:t}=e,{$from:r,empty:i}=t;if(!i||r.parent.type!==this.type)return!1;let s=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(`\n\n`);return!s||!o?!1:n.chain().command(({tr:l})=>(l.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowUp:({editor:n})=>{if(!this.options.exitOnArrowUp)return!1;let{state:e}=n,{selection:t}=e,{$from:r,empty:i}=t;if(!i||r.parent.type!==this.type||r.parentOffset!==0)return!1;let s=r.before();return s>0?!1:n.commands.insertDefaultBlock({pos:s})},ArrowDown:({editor:n})=>{if(!this.options.exitOnArrowDown)return!1;let{state:e}=n,{selection:t,doc:r}=e,{$from:i,empty:s}=t;if(!s||i.parent.type!==this.type||i.parentOffset!==i.parent.nodeSize-2)return!1;let o=i.after();return o===void 0?!1:r.nodeAt(o)?n.commands.command(({tr:l})=>(l.setSelection(R.near(r.resolve(o))),!0)):n.commands.exitCode()}}},addInputRules(){return[jn({find:Rb,type:this.type,getAttributes:n=>({language:n[1]})}),jn({find:Nb,type:this.type,getAttributes:n=>({language:n[1]})})]},addProseMirrorPlugins(){return[new O({key:new H(\"codeBlockVSCodeHandler\"),props:{handlePaste:(n,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;let t=e.clipboardData.getData(\"text/plain\"),r=e.clipboardData.getData(\"vscode-editor-data\"),i=r?JSON.parse(r):void 0,s=i?.mode;if(!t||!s)return!1;let{tr:o,schema:l}=n.state,a=l.text(t.replace(/\\r\\n?/g,`\n`));return o.replaceSelectionWith(this.type.create({language:s},a)),o.selection.$from.parent.type!==this.type&&o.setSelection(T.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.setMeta(\"paste\",!0),n.dispatch(o),!0}}})]}});var Fu=j.create({name:\"doc\",topNode:!0,content:\"block+\",renderMarkdown:(n,e)=>n.content?e.renderChildren(n.content,`\n\n`):\"\"});var _u=j.create({name:\"hardBreak\",markdownTokenName:\"br\",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:\"inline\",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:\"br\"}]},renderHTML({HTMLAttributes:n}){return[\"br\",L(this.options.HTMLAttributes,n)]},renderText(){return`\n`},renderMarkdown:()=>` \n`,parseMarkdown:()=>({type:\"hardBreak\"}),addCommands(){return{setHardBreak:()=>({commands:n,chain:e,state:t,editor:r})=>n.first([()=>n.exitCode(),()=>n.command(()=>{let{selection:i,storedMarks:s}=t;if(i.$from.parent.type.spec.isolating)return!1;let{keepMarks:o}=this.options,{splittableMarks:l}=r.extensionManager,a=s||i.$to.parentOffset&&i.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:d})=>{if(d&&a&&o){let u=a.filter(f=>l.includes(f.type.name));c.ensureMarks(u)}return!0}).scrollIntoView().run()})])}},addKeyboardShortcuts(){return{\"Mod-Enter\":()=>this.editor.commands.setHardBreak(),\"Shift-Enter\":()=>this.editor.commands.setHardBreak()}}});var Vu=j.create({name:\"heading\",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:\"inline*\",group:\"block\",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(n=>({tag:`h${n}`,attrs:{level:n}}))},renderHTML({node:n,HTMLAttributes:e}){return[`h${this.options.levels.includes(n.attrs.level)?n.attrs.level:this.options.levels[0]}`,L(this.options.HTMLAttributes,e),0]},parseMarkdown:(n,e)=>e.createNode(\"heading\",{level:n.depth||1},e.parseInline(n.tokens||[])),renderMarkdown:(n,e)=>{var t;let r=!((t=n.attrs)===null||t===void 0)&&t.level?parseInt(n.attrs.level,10):1,i=\"#\".repeat(r);return n.content?`${i} ${e.renderChildren(n.content)}`:\"\"},addCommands(){return{setHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.setNode(this.name,n):!1,toggleHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.toggleNode(this.name,\"paragraph\",n):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((n,e)=>({...n,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(n=>jn({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${n}})\\\\s$`),type:this.type,getAttributes:{level:n}}))}});var ju=j.create({name:\"horizontalRule\",addOptions(){return{HTMLAttributes:{},nextNodeType:\"paragraph\"}},group:\"block\",parseHTML(){return[{tag:\"hr\"}]},renderHTML({HTMLAttributes:n}){return[\"hr\",L(this.options.HTMLAttributes,n)]},markdownTokenName:\"hr\",parseMarkdown:(n,e)=>e.createNode(\"horizontalRule\"),renderMarkdown:()=>\"---\",addCommands(){return{setHorizontalRule:()=>({chain:n,state:e})=>{if(!Su(e,e.schema.nodes[this.name]))return!1;let{selection:t}=e,{$to:r}=t,i=n();return ai(t)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:s,tr:o,dispatch:l})=>{if(l){let{$to:a}=o.selection,c=a.end();if(a.nodeAfter)a.nodeAfter.isTextblock?o.setSelection(T.create(o.doc,a.pos+1)):a.nodeAfter.isBlock?o.setSelection(M.create(o.doc,a.pos)):o.setSelection(T.create(o.doc,a.pos));else{let d=s.schema.nodes[this.options.nextNodeType]||a.parent.type.contentMatch.defaultType,u=d?.create();u&&(o.insert(c,u),o.setSelection(T.create(o.doc,c+1)))}o.scrollIntoView()}return!0}).run()}}},addInputRules(){return[Mu({find:/^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,type:this.type})]}});var Ob=/(?:^|\\s)(\\*(?!\\s+\\*)((?:[^*]+))\\*(?!\\s+\\*))$/,Ib=/(?:^|\\s)(\\*(?!\\s+\\*)((?:[^*]+))\\*(?!\\s+\\*))/g,Db=/(?:^|\\s)(_(?!\\s+_)((?:[^_]+))_(?!\\s+_))$/,Lb=/(?:^|\\s)(_(?!\\s+_)((?:[^_]+))_(?!\\s+_))/g,Wu=W.create({name:\"italic\",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:\"em\"},{tag:\"i\",getAttrs:n=>n.style.fontStyle!==\"normal\"&&null},{style:\"font-style=normal\",clearMark:n=>n.type.name===this.name},{style:\"font-style=italic\"}]},renderHTML({HTMLAttributes:n}){return[\"em\",L(this.options.HTMLAttributes,n),0]},addCommands(){return{setItalic:()=>({commands:n})=>n.setMark(this.name),toggleItalic:()=>({commands:n})=>n.toggleMark(this.name),unsetItalic:()=>({commands:n})=>n.unsetMark(this.name)}},markdownTokenName:\"em\",parseMarkdown:(n,e)=>e.applyMark(\"italic\",e.parseInline(n.tokens||[])),markdownOptions:{htmlReopen:{open:\"<em>\",close:\"</em>\"}},renderMarkdown:(n,e)=>`*${e.renderChildren(n)}*`,addKeyboardShortcuts(){return{\"Mod-i\":()=>this.editor.commands.toggleItalic(),\"Mod-I\":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[ve({find:Ob,type:this.type}),ve({find:Db,type:this.type})]},addPasteRules(){return[ye({find:Ib,type:this.type}),ye({find:Lb,type:this.type})]}});var Pb=\"aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5m\\xF6gensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2\",Bb=\"\\u03B5\\u03BB1\\u03C52\\u0431\\u04331\\u0435\\u043B3\\u0434\\u0435\\u0442\\u04384\\u0435\\u044E2\\u043A\\u0430\\u0442\\u043E\\u043B\\u0438\\u043A6\\u043E\\u043C3\\u043C\\u043A\\u04342\\u043E\\u043D1\\u0441\\u043A\\u0432\\u04306\\u043E\\u043D\\u043B\\u0430\\u0439\\u043D5\\u0440\\u04333\\u0440\\u0443\\u04412\\u04442\\u0441\\u0430\\u0439\\u04423\\u0440\\u04313\\u0443\\u043A\\u04403\\u049B\\u0430\\u04373\\u0570\\u0561\\u05753\\u05D9\\u05E9\\u05E8\\u05D0\\u05DC5\\u05E7\\u05D5\\u05DD3\\u0627\\u0628\\u0648\\u0638\\u0628\\u064A5\\u0631\\u0627\\u0645\\u0643\\u06485\\u0644\\u0627\\u0631\\u062F\\u06464\\u0628\\u062D\\u0631\\u064A\\u06465\\u062C\\u0632\\u0627\\u0626\\u06315\\u0633\\u0639\\u0648\\u062F\\u064A\\u06296\\u0639\\u0644\\u064A\\u0627\\u06465\\u0645\\u063A\\u0631\\u06285\\u0645\\u0627\\u0631\\u0627\\u062A5\\u06CC\\u0631\\u0627\\u06465\\u0628\\u0627\\u0631\\u062A2\\u0632\\u0627\\u06314\\u064A\\u062A\\u06433\\u06BE\\u0627\\u0631\\u062A5\\u062A\\u0648\\u0646\\u06334\\u0633\\u0648\\u062F\\u0627\\u06463\\u0631\\u064A\\u06295\\u0634\\u0628\\u0643\\u06294\\u0639\\u0631\\u0627\\u06422\\u06282\\u0645\\u0627\\u06464\\u0641\\u0644\\u0633\\u0637\\u064A\\u06466\\u0642\\u0637\\u06313\\u0643\\u0627\\u062B\\u0648\\u0644\\u064A\\u06436\\u0648\\u06453\\u0645\\u0635\\u06312\\u0644\\u064A\\u0633\\u064A\\u06275\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u06277\\u0642\\u06394\\u0647\\u0645\\u0631\\u0627\\u06475\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u06467\\u0680\\u0627\\u0631\\u062A4\\u0915\\u0949\\u092E3\\u0928\\u0947\\u091F3\\u092D\\u093E\\u0930\\u09240\\u092E\\u094D3\\u094B\\u09245\\u0938\\u0902\\u0917\\u0920\\u09285\\u09AC\\u09BE\\u0982\\u09B2\\u09BE5\\u09AD\\u09BE\\u09B0\\u09A42\\u09F0\\u09A44\\u0A2D\\u0A3E\\u0A30\\u0A244\\u0AAD\\u0ABE\\u0AB0\\u0AA44\\u0B2D\\u0B3E\\u0B30\\u0B244\\u0B87\\u0BA8\\u0BCD\\u0BA4\\u0BBF\\u0BAF\\u0BBE6\\u0BB2\\u0B99\\u0BCD\\u0B95\\u0BC86\\u0B9A\\u0BBF\\u0B99\\u0BCD\\u0B95\\u0BAA\\u0BCD\\u0BAA\\u0BC2\\u0BB0\\u0BCD11\\u0C2D\\u0C3E\\u0C30\\u0C24\\u0C4D5\\u0CAD\\u0CBE\\u0CB0\\u0CA44\\u0D2D\\u0D3E\\u0D30\\u0D24\\u0D025\\u0DBD\\u0D82\\u0D9A\\u0DCF4\\u0E04\\u0E2D\\u0E213\\u0E44\\u0E17\\u0E223\\u0EA5\\u0EB2\\u0EA73\\u10D2\\u10D42\\u307F\\u3093\\u306A3\\u30A2\\u30DE\\u30BE\\u30F34\\u30AF\\u30E9\\u30A6\\u30C94\\u30B0\\u30FC\\u30B0\\u30EB4\\u30B3\\u30E02\\u30B9\\u30C8\\u30A23\\u30BB\\u30FC\\u30EB3\\u30D5\\u30A1\\u30C3\\u30B7\\u30E7\\u30F36\\u30DD\\u30A4\\u30F3\\u30C84\\u4E16\\u754C2\\u4E2D\\u4FE11\\u56FD1\\u570B1\\u6587\\u7F513\\u4E9A\\u9A6C\\u900A3\\u4F01\\u4E1A2\\u4F5B\\u5C712\\u4FE1\\u606F2\\u5065\\u5EB72\\u516B\\u53662\\u516C\\u53F81\\u76CA2\\u53F0\\u6E7E1\\u70632\\u5546\\u57CE1\\u5E971\\u68072\\u5609\\u91CC0\\u5927\\u9152\\u5E975\\u5728\\u7EBF2\\u5927\\u62FF2\\u5929\\u4E3B\\u65593\\u5A31\\u4E502\\u5BB6\\u96FB2\\u5E7F\\u4E1C2\\u5FAE\\u535A2\\u6148\\u55842\\u6211\\u7231\\u4F603\\u624B\\u673A2\\u62DB\\u80582\\u653F\\u52A11\\u5E9C2\\u65B0\\u52A0\\u57612\\u95FB2\\u65F6\\u5C1A2\\u66F8\\u7C4D2\\u673A\\u67842\\u6DE1\\u9A6C\\u95213\\u6E38\\u620F2\\u6FB3\\u95802\\u70B9\\u770B2\\u79FB\\u52A82\\u7EC4\\u7EC7\\u673A\\u67844\\u7F51\\u57401\\u5E971\\u7AD91\\u7EDC2\\u8054\\u901A2\\u8C37\\u6B4C2\\u8D2D\\u72692\\u901A\\u8CA92\\u96C6\\u56E22\\u96FB\\u8A0A\\u76C8\\u79D14\\u98DE\\u5229\\u6D663\\u98DF\\u54C12\\u9910\\u53852\\u9999\\u683C\\u91CC\\u62C93\\u6E2F2\\uB2F7\\uB1371\\uCEF42\\uC0BC\\uC1312\\uD55C\\uAD6D2\",al=\"numeric\",cl=\"ascii\",dl=\"alpha\",Kn=\"asciinumeric\",Un=\"alphanumeric\",ul=\"domain\",Gu=\"emoji\",zb=\"scheme\",Hb=\"slashscheme\",nl=\"whitespace\";function $b(n,e){return n in e||(e[n]=[]),e[n]}function Pt(n,e,t){e[al]&&(e[Kn]=!0,e[Un]=!0),e[cl]&&(e[Kn]=!0,e[dl]=!0),e[Kn]&&(e[Un]=!0),e[dl]&&(e[Un]=!0),e[Un]&&(e[ul]=!0),e[Gu]&&(e[ul]=!0);for(let r in e){let i=$b(r,t);i.indexOf(n)<0&&i.push(n)}}function Fb(n,e){let t={};for(let r in e)e[r].indexOf(n)>=0&&(t[r]=!0);return t}function pe(n=null){this.j={},this.jr=[],this.jd=null,this.t=n}pe.groups={};pe.prototype={accepts(){return!!this.t},go(n){let e=this,t=e.j[n];if(t)return t;for(let r=0;r<e.jr.length;r++){let i=e.jr[r][0],s=e.jr[r][1];if(s&&i.test(n))return s}return e.jd},has(n,e=!1){return e?n in this.j:!!this.go(n)},ta(n,e,t,r){for(let i=0;i<n.length;i++)this.tt(n[i],e,t,r)},tr(n,e,t,r){r=r||pe.groups;let i;return e&&e.j?i=e:(i=new pe(e),t&&r&&Pt(e,t,r)),this.jr.push([n,i]),i},ts(n,e,t,r){let i=this,s=n.length;if(!s)return i;for(let o=0;o<s-1;o++)i=i.tt(n[o]);return i.tt(n[s-1],e,t,r)},tt(n,e,t,r){r=r||pe.groups;let i=this;if(e&&e.j)return i.j[n]=e,e;let s=e,o,l=i.go(n);if(l?(o=new pe,Object.assign(o.j,l.j),o.jr.push.apply(o.jr,l.jr),o.jd=l.jd,o.t=l.t):o=new pe,s){if(r)if(o.t&&typeof o.t==\"string\"){let a=Object.assign(Fb(o.t,r),t);Pt(s,a,r)}else t&&Pt(s,t,r);o.t=s}return i.j[n]=o,o}};var I=(n,e,t,r,i)=>n.ta(e,t,r,i),U=(n,e,t,r,i)=>n.tr(e,t,r,i),Uu=(n,e,t,r,i)=>n.ts(e,t,r,i),S=(n,e,t,r,i)=>n.tt(e,t,r,i),Ze=\"WORD\",fl=\"UWORD\",Yu=\"ASCIINUMERICAL\",Qu=\"ALPHANUMERICAL\",Qn=\"LOCALHOST\",hl=\"TLD\",pl=\"UTLD\",bi=\"SCHEME\",pn=\"SLASH_SCHEME\",gl=\"NUM\",ml=\"WS\",yl=\"NL\",qn=\"OPENBRACE\",Jn=\"CLOSEBRACE\",xi=\"OPENBRACKET\",ki=\"CLOSEBRACKET\",Si=\"OPENPAREN\",wi=\"CLOSEPAREN\",vi=\"OPENANGLEBRACKET\",Ti=\"CLOSEANGLEBRACKET\",Ei=\"FULLWIDTHLEFTPAREN\",Mi=\"FULLWIDTHRIGHTPAREN\",Ci=\"LEFTCORNERBRACKET\",Ai=\"RIGHTCORNERBRACKET\",Ri=\"LEFTWHITECORNERBRACKET\",Ni=\"RIGHTWHITECORNERBRACKET\",Oi=\"FULLWIDTHLESSTHAN\",Ii=\"FULLWIDTHGREATERTHAN\",Di=\"AMPERSAND\",Li=\"APOSTROPHE\",Pi=\"ASTERISK\",ht=\"AT\",Bi=\"BACKSLASH\",zi=\"BACKTICK\",Hi=\"CARET\",Bt=\"COLON\",bl=\"COMMA\",$i=\"DOLLAR\",Pe=\"DOT\",Fi=\"EQUALS\",xl=\"EXCLAMATION\",Ee=\"HYPHEN\",Xn=\"PERCENT\",_i=\"PIPE\",Vi=\"PLUS\",ji=\"POUND\",Gn=\"QUERY\",kl=\"QUOTE\",Zu=\"FULLWIDTHMIDDLEDOT\",Sl=\"SEMI\",Be=\"SLASH\",Yn=\"TILDE\",Wi=\"UNDERSCORE\",ef=\"EMOJI\",Ui=\"SYM\",tf=Object.freeze({__proto__:null,ALPHANUMERICAL:Qu,AMPERSAND:Di,APOSTROPHE:Li,ASCIINUMERICAL:Yu,ASTERISK:Pi,AT:ht,BACKSLASH:Bi,BACKTICK:zi,CARET:Hi,CLOSEANGLEBRACKET:Ti,CLOSEBRACE:Jn,CLOSEBRACKET:ki,CLOSEPAREN:wi,COLON:Bt,COMMA:bl,DOLLAR:$i,DOT:Pe,EMOJI:ef,EQUALS:Fi,EXCLAMATION:xl,FULLWIDTHGREATERTHAN:Ii,FULLWIDTHLEFTPAREN:Ei,FULLWIDTHLESSTHAN:Oi,FULLWIDTHMIDDLEDOT:Zu,FULLWIDTHRIGHTPAREN:Mi,HYPHEN:Ee,LEFTCORNERBRACKET:Ci,LEFTWHITECORNERBRACKET:Ri,LOCALHOST:Qn,NL:yl,NUM:gl,OPENANGLEBRACKET:vi,OPENBRACE:qn,OPENBRACKET:xi,OPENPAREN:Si,PERCENT:Xn,PIPE:_i,PLUS:Vi,POUND:ji,QUERY:Gn,QUOTE:kl,RIGHTCORNERBRACKET:Ai,RIGHTWHITECORNERBRACKET:Ni,SCHEME:bi,SEMI:Sl,SLASH:Be,SLASH_SCHEME:pn,SYM:Ui,TILDE:Yn,TLD:hl,UNDERSCORE:Wi,UTLD:pl,UWORD:fl,WORD:Ze,WS:ml}),Ye=/[a-z]/,Wn=/\\p{L}/u,rl=/\\p{Emoji}/u;var Qe=/\\d/,il=/\\s/;var Ku=\"\\r\",sl=`\n`,_b=\"\\uFE0F\",Vb=\"\\u200D\",ol=\"\\uFFFC\",mi=null,gi=null;function jb(n=[]){let e={};pe.groups=e;let t=new pe;mi==null&&(mi=qu(Pb)),gi==null&&(gi=qu(Bb)),S(t,\"'\",Li),S(t,\"{\",qn),S(t,\"}\",Jn),S(t,\"[\",xi),S(t,\"]\",ki),S(t,\"(\",Si),S(t,\")\",wi),S(t,\"<\",vi),S(t,\">\",Ti),S(t,\"\\uFF08\",Ei),S(t,\"\\uFF09\",Mi),S(t,\"\\u300C\",Ci),S(t,\"\\u300D\",Ai),S(t,\"\\u300E\",Ri),S(t,\"\\u300F\",Ni),S(t,\"\\uFF1C\",Oi),S(t,\"\\uFF1E\",Ii),S(t,\"&\",Di),S(t,\"*\",Pi),S(t,\"@\",ht),S(t,\"`\",zi),S(t,\"^\",Hi),S(t,\":\",Bt),S(t,\",\",bl),S(t,\"$\",$i),S(t,\".\",Pe),S(t,\"=\",Fi),S(t,\"!\",xl),S(t,\"-\",Ee),S(t,\"%\",Xn),S(t,\"|\",_i),S(t,\"+\",Vi),S(t,\"#\",ji),S(t,\"?\",Gn),S(t,'\"',kl),S(t,\"/\",Be),S(t,\";\",Sl),S(t,\"~\",Yn),S(t,\"_\",Wi),S(t,\"\\\\\",Bi),S(t,\"\\u30FB\",Zu);let r=U(t,Qe,gl,{[al]:!0});U(r,Qe,r);let i=U(r,Ye,Yu,{[Kn]:!0}),s=U(r,Wn,Qu,{[Un]:!0}),o=U(t,Ye,Ze,{[cl]:!0});U(o,Qe,i),U(o,Ye,o),U(i,Qe,i),U(i,Ye,i);let l=U(t,Wn,fl,{[dl]:!0});U(l,Ye),U(l,Qe,s),U(l,Wn,l),U(s,Qe,s),U(s,Ye),U(s,Wn,s);let a=S(t,sl,yl,{[nl]:!0}),c=S(t,Ku,ml,{[nl]:!0}),d=U(t,il,ml,{[nl]:!0});S(t,ol,d),S(c,sl,a),S(c,ol,d),U(c,il,d),S(d,Ku),S(d,sl),U(d,il,d),S(d,ol,d);let u=U(t,rl,ef,{[Gu]:!0});S(u,\"#\"),U(u,rl,u),S(u,_b,u);let f=S(u,Vb);S(f,\"#\"),U(f,rl,u);let h=[[Ye,o],[Qe,i]],p=[[Ye,null],[Wn,l],[Qe,s]];for(let m=0;m<mi.length;m++)ft(t,mi[m],hl,Ze,h);for(let m=0;m<gi.length;m++)ft(t,gi[m],pl,fl,p);Pt(hl,{tld:!0,ascii:!0},e),Pt(pl,{utld:!0,alpha:!0},e),ft(t,\"file\",bi,Ze,h),ft(t,\"mailto\",bi,Ze,h),ft(t,\"http\",pn,Ze,h),ft(t,\"https\",pn,Ze,h),ft(t,\"ftp\",pn,Ze,h),ft(t,\"ftps\",pn,Ze,h),Pt(bi,{scheme:!0,ascii:!0},e),Pt(pn,{slashscheme:!0,ascii:!0},e),n=n.sort((m,g)=>m[0]>g[0]?1:-1);for(let m=0;m<n.length;m++){let g=n[m][0],b=n[m][1]?{[zb]:!0}:{[Hb]:!0};g.indexOf(\"-\")>=0?b[ul]=!0:Ye.test(g)?Qe.test(g)?b[Kn]=!0:b[cl]=!0:b[al]=!0,Uu(t,g,g,b)}return Uu(t,\"localhost\",Qn,{ascii:!0}),t.jd=new pe(Ui),{start:t,tokens:Object.assign({groups:e},tf)}}function nf(n,e){let t=Wb(e.replace(/[A-Z]/g,l=>l.toLowerCase())),r=t.length,i=[],s=0,o=0;for(;o<r;){let l=n,a=null,c=0,d=null,u=-1,f=-1;for(;o<r&&(a=l.go(t[o]));)l=a,l.accepts()?(u=0,f=0,d=l):u>=0&&(u+=t[o].length,f++),c+=t[o].length,s+=t[o].length,o++;s-=u,o-=f,c-=u,i.push({t:d.t,v:e.slice(s-c,s),s:s-c,e:s})}return i}function Wb(n){let e=[],t=n.length,r=0;for(;r<t;){let i=n.charCodeAt(r),s,o=i<55296||i>56319||r+1===t||(s=n.charCodeAt(r+1))<56320||s>57343?n[r]:n.slice(r,r+2);e.push(o),r+=o.length}return e}function ft(n,e,t,r,i){let s,o=e.length;for(let l=0;l<o-1;l++){let a=e[l];n.j[a]?s=n.j[a]:(s=new pe(r),s.jr=i.slice(),n.j[a]=s),n=s}return s=new pe(t),s.jr=i.slice(),n.j[e[o-1]]=s,s}function qu(n){let e=[],t=[],r=0,i=\"0123456789\";for(;r<n.length;){let s=0;for(;i.indexOf(n[r+s])>=0;)s++;if(s>0){e.push(t.join(\"\"));for(let o=parseInt(n.substring(r,r+s),10);o>0;o--)t.pop();r+=s}else t.push(n[r]),r++}return e}var Zn={defaultProtocol:\"http\",events:null,format:Ju,formatHref:Ju,nl2br:!1,tagName:\"a\",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function wl(n,e=null){let t=Object.assign({},Zn);n&&(t=Object.assign(t,n instanceof wl?n.o:n));let r=t.ignoreTags,i=[];for(let s=0;s<r.length;s++)i.push(r[s].toUpperCase());this.o=t,e&&(this.defaultRender=e),this.ignoreTags=i}wl.prototype={o:Zn,ignoreTags:[],defaultRender(n){return n},check(n){return this.get(\"validate\",n.toString(),n)},get(n,e,t){let r=e!=null,i=this.o[n];return i&&(typeof i==\"object\"?(i=t.t in i?i[t.t]:Zn[n],typeof i==\"function\"&&r&&(i=i(e,t))):typeof i==\"function\"&&r&&(i=i(e,t.t,t)),i)},getObj(n,e,t){let r=this.o[n];return typeof r==\"function\"&&e!=null&&(r=r(e,t.t,t)),r},render(n){let e=n.render(this);return(this.get(\"render\",null,n)||this.defaultRender)(e,n.t,n)}};function Ju(n){return n}function rf(n,e){this.t=\"token\",this.v=n,this.tk=e}rf.prototype={isLink:!1,toString(){return this.v},toHref(n){return this.toString()},toFormattedString(n){let e=this.toString(),t=n.get(\"truncate\",e,this),r=n.get(\"format\",e,this);return t&&r.length>t?r.substring(0,t)+\"\\u2026\":r},toFormattedHref(n){return n.get(\"formatHref\",this.toHref(n.get(\"defaultProtocol\")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(n=Zn.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(n),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(n){return{type:this.t,value:this.toFormattedString(n),isLink:this.isLink,href:this.toFormattedHref(n),start:this.startIndex(),end:this.endIndex()}},validate(n){return n.get(\"validate\",this.toString(),this)},render(n){let e=this,t=this.toHref(n.get(\"defaultProtocol\")),r=n.get(\"formatHref\",t,this),i=n.get(\"tagName\",t,e),s=this.toFormattedString(n),o={},l=n.get(\"className\",t,e),a=n.get(\"target\",t,e),c=n.get(\"rel\",t,e),d=n.getObj(\"attributes\",t,e),u=n.getObj(\"events\",t,e);return o.href=r,l&&(o.class=l),a&&(o.target=a),c&&(o.rel=c),d&&Object.assign(o,d),{tagName:i,attributes:o,content:s,eventListeners:u}}};function Ki(n,e){class t extends rf{constructor(i,s){super(i,s),this.t=n}}for(let r in e)t.prototype[r]=e[r];return t.t=n,t}var Ub=Ki(\"email\",{isLink:!0,toHref(){return\"mailto:\"+this.toString()}}),Xu=Ki(\"text\"),Kb=Ki(\"nl\"),yi=Ki(\"url\",{isLink:!0,toHref(n=Zn.defaultProtocol){return this.hasProtocol()?this.v:`${n}://${this.v}`},hasProtocol(){let n=this.tk;return n.length>=2&&n[0].t!==Qn&&n[1].t===Bt}});var Te=n=>new pe(n);function qb({groups:n}){let e=n.domain.concat([Di,Pi,ht,Bi,zi,Hi,$i,Fi,Ee,gl,Xn,_i,Vi,ji,Be,Ui,Yn,Wi]),t=[Li,Bt,bl,Pe,xl,Xn,Gn,kl,Sl,vi,Ti,qn,Jn,ki,xi,Si,wi,Ei,Mi,Ci,Ai,Ri,Ni,Oi,Ii],r=[Di,Li,Pi,Bi,zi,Hi,$i,Fi,Ee,qn,Jn,Xn,_i,Vi,ji,Gn,Be,Ui,Yn,Wi],i=Te(),s=S(i,Yn);I(s,r,s),I(s,n.domain,s);let o=Te(),l=Te(),a=Te();I(i,n.domain,o),I(i,n.scheme,l),I(i,n.slashscheme,a),I(o,r,s),I(o,n.domain,o);let c=S(o,ht);S(s,ht,c),S(l,ht,c),S(a,ht,c);let d=S(s,Pe);I(d,r,s),I(d,n.domain,s);let u=Te();I(c,n.domain,u),I(u,n.domain,u);let f=S(u,Pe);I(f,n.domain,u);let h=Te(Ub);I(f,n.tld,h),I(f,n.utld,h),S(c,Qn,h);let p=S(u,Ee);S(p,Ee,p),I(p,n.domain,u),I(h,n.domain,u),S(h,Pe,f),S(h,Ee,p);let m=S(o,Ee),g=S(o,Pe);S(m,Ee,m),I(m,n.domain,o),I(g,r,s),I(g,n.domain,o);let y=Te(yi);I(g,n.tld,y),I(g,n.utld,y),I(y,n.domain,o),I(y,r,s),S(y,Pe,g),S(y,Ee,m),S(y,ht,c);let b=S(y,Bt),w=Te(yi);I(b,n.numeric,w);let k=Te(yi),N=Te();I(k,e,k),I(k,t,N),I(N,e,k),I(N,t,N),S(y,Be,k),S(w,Be,k);let $=S(l,Bt),A=S(a,Bt),z=S(A,Be),F=S(z,Be);I(l,n.domain,o),S(l,Pe,g),S(l,Ee,m),I(a,n.domain,o),S(a,Pe,g),S(a,Ee,m),I($,n.domain,k),S($,Be,k),S($,Gn,k),I(F,n.domain,k),I(F,e,k),S(F,Be,k);let Q=[[qn,Jn],[xi,ki],[Si,wi],[vi,Ti],[Ei,Mi],[Ci,Ai],[Ri,Ni],[Oi,Ii]];for(let be=0;be<Q.length;be++){let[pt,Me]=Q[be],He=S(k,pt);S(N,pt,He);let Ce=Te(yi);I(He,e,Ce);let Ht=Te();I(He,t,Ht),S(He,Me,k),I(Ce,e,Ce),I(Ce,t,Ht),I(Ht,e,Ce),I(Ht,t,Ht),S(Ce,Me,k),S(Ht,Me,k)}return S(i,Qn,y),S(i,yl,Kb),{start:i,tokens:tf}}function Jb(n,e,t){let r=t.length,i=0,s=[],o=[];for(;i<r;){let l=n,a=null,c=null,d=0,u=null,f=-1;for(;i<r&&!(a=l.go(t[i].t));)o.push(t[i++]);for(;i<r&&(c=a||l.go(t[i].t));)a=null,l=c,l.accepts()?(f=0,u=l):f>=0&&f++,i++,d++;if(f<0)i-=d,i<r&&(o.push(t[i]),i++);else{o.length>0&&(s.push(ll(Xu,e,o)),o=[]),i-=f,d-=f;let h=u.t,p=t.slice(i-d,i);s.push(ll(h,e,p))}}return o.length>0&&s.push(ll(Xu,e,o)),s}function ll(n,e,t){let r=t[0].s,i=t[t.length-1].e,s=e.slice(r,i);return new n(s,t)}var Xb=typeof console<\"u\"&&console&&console.warn||(()=>{}),Gb=\"until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.\",V={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function sf(){return pe.groups={},V.scanner=null,V.parser=null,V.tokenQueue=[],V.pluginQueue=[],V.customSchemes=[],V.initialized=!1,V}function vl(n,e=!1){if(V.initialized&&Xb(`linkifyjs: already initialized - will not register custom scheme \"${n}\" ${Gb}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(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`);V.customSchemes.push([n,e])}function Yb(){V.scanner=jb(V.customSchemes);for(let n=0;n<V.tokenQueue.length;n++)V.tokenQueue[n][1]({scanner:V.scanner});V.parser=qb(V.scanner.tokens);for(let n=0;n<V.pluginQueue.length;n++)V.pluginQueue[n][1]({scanner:V.scanner,parser:V.parser});return V.initialized=!0,V}function qi(n){return V.initialized||Yb(),Jb(V.parser.start,n,nf(V.scanner.start,n))}qi.scan=nf;function Tl(n,e=null,t=null){if(e&&typeof e==\"object\"){if(t)throw Error(`linkifyjs: Invalid link type ${e}; must be a string`);t=e,e=null}let r=new wl(t),i=qi(n),s=[];for(let o=0;o<i.length;o++){let l=i[o];l.isLink&&(!e||l.t===e)&&r.check(l)&&s.push(l.toFormattedObject(r))}return s}var Ji=\"[\\0- \\xA0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]\",Qb=new RegExp(Ji),Zb=new RegExp(`${Ji}$`),e0=new RegExp(`${Ji}+$`),t0=new RegExp(Ji,\"g\");function n0(n,e,t){var r,i;let s=n.doc.resolve(e.to);if(!(!((r=s.nodeBefore)===null||r===void 0)&&r.isText))return;let o=(i=n.doc.textBetween(e.from,e.to,\"\\uFFFC\",\"\\uFFFC\").match(e0))===null||i===void 0?void 0:i[0];if(!o)return;let l=e.to-o.length,a=Vn(l,e.to,n.doc).filter(u=>u.mark.type===t);if(!a.length)return;let{nodeAfter:c}=s;if(c&&a.some(u=>u.mark.isInSet(c.marks)))return;let d=n.storedMarks;n.removeMark(l,e.to,t),n.setStoredMarks(d),n.selection.empty&&n.selection.from===e.to&&n.removeStoredMark(t)}function r0(n){return n.length===1?n[0].isLink:n.length===3&&n[1].isLink?[\"()\",\"[]\"].includes(n[0].value+n[2].value):!1}function i0(n){return new O({key:new H(\"autolink\"),appendTransaction:(e,t,r)=>{let i=e.some(a=>a.docChanged)&&!t.doc.eq(r.doc),s=e.some(a=>a.getMeta(\"preventAutolink\"));if(!i||s)return;let{tr:o}=r,l=Wo(t.doc,[...e]);if(!e.some(Ad)){let a=[];l.steps.forEach((c,d)=>{if(!(c instanceof K)||!c.slice.size)return;let u=l.mapping.slice(d+1),f=u.map(c.from,1),h=u.map(c.from+c.slice.size,-1);f<h&&a.push({from:f,to:h})}),a.sort((c,d)=>d.to-c.to),a.forEach(c=>n0(o,c,n.type))}if(ln(l).forEach(({newRange:a})=>{let c=nu(r.doc,a,f=>f.isTextblock),d,u;if(c.length>1)d=c[0],u=r.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0,\" \");else if(c.length){let f=r.doc.textBetween(a.from,a.to,\" \",\" \");if(!Zb.test(f))return;d=c[0],u=r.doc.textBetween(d.pos,a.to,void 0,\" \")}if(d&&u){let f=u.split(Qb).filter(Boolean);if(f.length<=0)return!1;let h=f[f.length-1],p=d.pos+u.lastIndexOf(h);if(!h)return!1;let m=qi(h).map(g=>g.toObject(n.defaultProtocol));if(!r0(m))return!1;m.filter(g=>g.isLink).map(g=>({...g,from:p+g.start+1,to:p+g.end+1})).filter(g=>r.schema.marks.code?!r.doc.rangeHasMark(g.from,g.to,r.schema.marks.code):!0).filter(g=>n.validate(g.value)).filter(g=>n.shouldAutoLink(g.value)).forEach(g=>{Vn(g.from,g.to,r.doc).some(y=>y.mark.type===n.type)||o.addMark(g.from,g.to,n.type.create({href:g.href}))})}}),!!o.steps.length)return o}})}function s0(n){return new O({key:new H(\"handleClickLink\"),props:{handleClick:(e,t,r)=>{if(r.button!==0||!e.editable)return!1;let i=null;if(r.target instanceof HTMLAnchorElement)i=r.target;else{let a=r.target;if(!a)return!1;let c=n.editor.view.dom;i=a.closest(\"a\"),i&&!c.contains(i)&&(i=null)}if(!i)return!1;let s=!1;if(n.enableClickSelection&&(s=n.editor.commands.extendMarkRange(n.type.name)),n.openOnClick){var o,l;let a=Jo(e.state,n.type.name),c=(o=i.href)!==null&&o!==void 0?o:a.href,d=(l=i.target)!==null&&l!==void 0?l:a.target;c&&(window.open(c,d),s=!0)}return s}}})}var o0=/\\[([^[\\]]+)\\]\\(((?:[^\\s()]|\\([^\\s()]*\\))+)(?:\\s+(?:([\"'])(.*?)\\3|“(.*?)”|‘(.*?)’))?\\)$/,l0=/\\[([^[\\]]+)\\]\\(((?:[^\\s()]|\\([^\\s()]*\\))+)(?:\\s+(?:([\"'])(.*?)\\3|“(.*?)”|‘(.*?)’))?\\)/g;function of(n,e){let t=0;for(let r=e-1;r>=0&&n[r]===\"\\\\\";r-=1)t+=1;return t%2===1}function a0(n,e){let t=0,r=0;for(;r<e;){if(n[r]!==\"`\"){r+=1;continue}if(t===0&&of(n,r)){r+=1;continue}let i=0;for(;r<e&&n[r]===\"`\";)i+=1,r+=1;t===0?t=i:i===t&&(t=0)}return t>0}function lf(n,e,t){var r,i;let[,s,o]=e;return(e.index?n[e.index-1]:void 0)===\"!\"||of(n,(r=e.index)!==null&&r!==void 0?r:0)||a0(n,(i=e.index)!==null&&i!==void 0?i:0)?!1:!!s.trim()&&t(o)}function af(n){var e,t;let[r,i,s,,o,l,a]=n,c=(e=o??l)!==null&&e!==void 0?e:a;return{index:(t=n.index)!==null&&t!==void 0?t:0,text:r,replaceWith:i,data:{href:s,title:c||null,markdown:!0}}}function c0(n,e){return n.index<e.index+e.text.length&&e.index<n.index+n.text.length}function cf(n){var e,t,r;return{href:(e=n.data)===null||e===void 0?void 0:e.href,title:(t=(r=n.data)===null||r===void 0?void 0:r.title)!==null&&t!==void 0?t:null}}function d0(n){let e=ve({find:t=>{let r=o0.exec(t);return!r||!lf(t,r,n.isAllowedHref)?null:af(r)},type:n.type,getAttributes:cf});return new un({find:e.find,handler:t=>{let r=e.handler(t);return r!==null&&t.state.tr.steps.length&&t.state.tr.setMeta(\"preventAutolink\",!0),r}})}function u0(n){let e=ye({find:t=>{var r,i;let s=[];for(let l of t.matchAll(l0))lf(t,l,n.isAllowedHref)&&s.push(af(l));let o=((r=(i=n.findPlainUrls)===null||i===void 0?void 0:i.call(n,t))!==null&&r!==void 0?r:[]).filter(l=>!s.some(a=>c0(a,l)));return[...s,...o]},type:n.type,getAttributes:cf});return new Qo({find:e.find,handler:t=>{var r;let i=e.handler(t);return i!==null&&t.state.tr.steps.length&&(!((r=t.match.data)===null||r===void 0)&&r.markdown)&&t.state.tr.setMeta(\"preventAutolink\",!0),i}})}function f0(n){return new O({key:new H(\"handlePasteLink\"),props:{handlePaste:(e,t,r)=>{let{shouldAutoLink:i}=n,{state:s}=e,{selection:o}=s,{empty:l}=o;if(l)return!1;let a=\"\";r.content.forEach(d=>{a+=d.textContent});let c=Tl(a,{defaultProtocol:n.defaultProtocol}).find(d=>d.isLink&&d.value===a);return!a||!c||i!==void 0&&!i(c.value)?!1:n.editor.commands.setMark(n.type,{href:c.href})}}})}function et(n,e){let t=[\"http\",\"https\",\"ftp\",\"ftps\",\"mailto\",\"tel\",\"callto\",\"sms\",\"cid\",\"xmpp\"];return e&&e.forEach(r=>{let i=typeof r==\"string\"?r:r.scheme;i&&t.push(i)}),!n||n.replace(t0,\"\").match(new RegExp(`^(?:(?:${t.map(r=>r.replace(/[-/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")).join(\"|\")}):|[^a-z]|[a-z0-9+.\\\\-]+(?:[^a-z+.\\\\-:]|$))`,\"i\"))}var df=W.create({name:\"link\",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){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(n=>{if(typeof n==\"string\"){vl(n);return}vl(n.scheme,n.optionalSlashes)})},onDestroy(){sf()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,markdownLinks:!1,autolink:!0,protocols:[],defaultProtocol:\"http\",HTMLAttributes:{target:\"_blank\",rel:\"noopener noreferrer nofollow\",class:null},isAllowedUri:(n,e)=>!!et(n,e.protocols),validate:n=>!!n,shouldAutoLink:n=>{let e=/^[a-z][a-z0-9+.-]*:\\/\\//i.test(n),t=/^[a-z][a-z0-9+.-]*:/i.test(n);if(e||t&&!n.includes(\"@\"))return!0;let r=(n.includes(\"@\")?n.split(\"@\").pop():n).split(/[/?#:]/)[0];return!(/^\\d{1,3}(\\.\\d{1,3}){3}$/.test(r)||!/\\./.test(r))}}},addAttributes(){var n,e,t;return{href:{default:null,parseHTML(r){return r.getAttribute(\"href\")}},target:{default:(n=this.options.HTMLAttributes.target)!==null&&n!==void 0?n:null},rel:{default:(e=this.options.HTMLAttributes.rel)!==null&&e!==void 0?e:null},class:{default:(t=this.options.HTMLAttributes.class)!==null&&t!==void 0?t:null},title:{default:null}}},parseHTML(){return[{tag:\"a[href]\",getAttrs:n=>{let e=n.getAttribute(\"href\");return!e||!this.options.isAllowedUri(e,{defaultValidate:t=>!!et(t,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:n}){return this.options.isAllowedUri(n.href,{defaultValidate:e=>!!et(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?[\"a\",L(this.options.HTMLAttributes,n),0]:[\"a\",L(this.options.HTMLAttributes,{...n,href:\"\"}),0]},markdownTokenName:\"link\",parseMarkdown:(n,e)=>e.applyMark(\"link\",e.parseInline(n.tokens||[]),{href:n.href,title:n.title||null}),renderMarkdown:(n,e)=>{var t,r,i,s;let o=(t=(r=n.attrs)===null||r===void 0?void 0:r.href)!==null&&t!==void 0?t:\"\",l=(i=(s=n.attrs)===null||s===void 0?void 0:s.title)!==null&&i!==void 0?i:\"\",a=e.renderChildren(n);return l?`[${a}](${o} \"${l}\")`:`[${a}](${o})`},addCommands(){return{setLink:n=>({chain:e})=>{let{href:t}=n;return this.options.isAllowedUri(t,{defaultValidate:r=>!!et(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?e().setMark(this.name,n).setMeta(\"preventAutolink\",!0).run():!1},toggleLink:n=>({chain:e})=>{let{href:t}=n||{};return t&&!this.options.isAllowedUri(t,{defaultValidate:r=>!!et(r,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:e().toggleMark(this.name,n,{extendEmptyMarkRange:!0}).setMeta(\"preventAutolink\",!0).run()},unsetLink:()=>({chain:n})=>n().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta(\"preventAutolink\",!0).run()}},addInputRules(){return this.options.markdownLinks?[d0({type:this.type,isAllowedHref:n=>this.options.isAllowedUri(n,{defaultValidate:e=>!!et(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})})]:[]},addPasteRules(){let n=e=>{let t=[];if(e){let{protocols:r,defaultProtocol:i}=this.options;Tl(e).filter(s=>s.isLink&&this.options.isAllowedUri(s.value,{defaultValidate:o=>!!et(o,r),protocols:r,defaultProtocol:i})).forEach(s=>{this.options.shouldAutoLink(s.value)&&t.push({text:s.value,data:{href:s.href},index:s.start})})}return t};return this.options.markdownLinks?[u0({type:this.type,isAllowedHref:e=>this.options.isAllowedUri(e,{defaultValidate:t=>!!et(t,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}),findPlainUrls:n})]:[ye({find:n,type:this.type,getAttributes:e=>{var t;return{href:(t=e.data)===null||t===void 0?void 0:t.href}}})]},addProseMirrorPlugins(){let n=[],{protocols:e,defaultProtocol:t}=this.options;return this.options.autolink&&n.push(i0({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:r=>this.options.isAllowedUri(r,{defaultValidate:i=>!!et(i,e),protocols:e,defaultProtocol:t}),shouldAutoLink:this.options.shouldAutoLink})),n.push(s0({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick===\"whenNotEditable\"?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&n.push(f0({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),n}});var h0=\"listItem\",uf=\"textStyle\",ff=/^\\s*([-+*])\\s$/,El=j.create({name:\"bulletList\",addOptions(){return{itemTypeName:\"listItem\",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:\"block list\",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:\"ul\"}]},renderHTML({HTMLAttributes:n}){return[\"ul\",L(this.options.HTMLAttributes,n),0]},markdownTokenName:\"list\",parseMarkdown:(n,e)=>n.type!==\"list\"||n.ordered?[]:{type:\"bulletList\",content:n.items?e.parseChildren(n.items):[]},renderMarkdown:(n,e)=>n.content?e.renderChildren(n.content,`\n`):\"\",markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(h0,this.editor.getAttributes(uf)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{\"Mod-Shift-8\":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let n=dt({find:ff,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(n=dt({find:ff,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(uf),editor:this.editor})),[n]}}),p0=(n,e,t)=>{let{selection:r}=n;if(!r.empty)return null;let{$from:i}=r;if(!i.parent.isTextblock||i.parentOffset!==i.parent.content.size)return null;let s=-1;for(let h=i.depth;h>0;h-=1)if(i.node(h).type.name===e){s=h;break}if(s<0)return null;let o=i.node(s),l=i.index(s);if(l+1>=o.childCount)return null;let a=o.child(l+1);if(!t.includes(a.type.name))return null;let c=n.schema.nodes[e],d=!1;if(a.forEach(h=>{h.type===c&&h.childCount>1&&(d=!0)}),!d)return null;let u=n.doc.resolve(i.after()).nodeAfter;if(!u||!t.includes(u.type.name))return null;let f=[];return u.forEach(h=>{f.push(h)}),f.length===0?null:{listItemDepth:s,nestedList:u,nestedListPos:i.after(),insertPos:i.after(s),items:f}},m0=(n,e,t,r)=>{let i=p0(n,t,r);if(!i)return!1;let{selection:s}=n,{nestedList:o,nestedListPos:l,insertPos:a,items:c}=i,d=n.tr;d.delete(l,l+o.nodeSize);let u=d.mapping.map(a);return d.insert(u,x.from(c)),d.setSelection(s.map(d.doc,d.mapping)),e&&e(d),!0},g0=(n,e,t)=>m0(n.state,n.view.dispatch,e,t),kf=(n,e)=>D.create({name:`${n}BranchingDeleteKeymap`,priority:101,addKeyboardShortcuts(){let t=()=>g0(this.editor,n,e);return{Delete:t,\"Mod-Delete\":t}}}),Sf=[[1e3,\"m\"],[900,\"cm\"],[500,\"d\"],[400,\"cd\"],[100,\"c\"],[90,\"xc\"],[50,\"l\"],[40,\"xl\"],[10,\"x\"],[9,\"ix\"],[5,\"v\"],[4,\"iv\"],[1,\"i\"]],Xi=\"abcdefghijklmnopqrstuvwxyz\",wf=String.raw`\\d+|[ivxlcdmIVXLCDM]+|${\"[a-zA-Z]{1,2}\"}`;function Qi(n){let e=n,t=\"\";for(let[r,i]of Sf)for(;e>=r;)t+=i,e-=r;return t}function Ml(n){return Qi(n).toUpperCase()}function vf(n){let e=n.toLowerCase(),t=0,r=0;for(;t<e.length;){let i=!1;for(let[s,o]of Sf)if(e.startsWith(o,t)){r+=s,t+=o.length,i=!0;break}if(!i)return 0}return r}function y0(n){if(!/^[ivxlcdmIVXLCDM]+$/.test(n))return!1;let e=vf(n);return e<=0?!1:(n===n.toLowerCase()?Qi(e):Ml(e))===n}function b0(n){let e=n.toLowerCase();if(e.length===1)return e.charCodeAt(0)-97+1;if(e.length===2){let t=e.charCodeAt(0)-97,r=e.charCodeAt(1)-97;return(t+1)*26+r+1}return 0}function Gi(n){if(n<=26)return Xi[n-1];let e=Math.floor((n-1)/26)-1,t=(n-1)%26;return e<0?Xi[t]:Xi[e]+Xi[t]}function Zi(n){if(!(!n||/^\\d+$/.test(n))){if(y0(n))return n===n.toLowerCase()?\"i\":\"I\";if(/^[a-z]{1,2}$/.test(n))return\"a\";if(/^[A-Z]{1,2}$/.test(n))return\"A\"}}function Cl(n){if(/^\\d+$/.test(n))return parseInt(n,10);let e=Zi(n);if(e===\"i\"||e===\"I\")return vf(n);if(e===\"a\"||e===\"A\"){let r=b0(n);return r>0?r:1}let t=parseInt(n,10);return Number.isNaN(t)?1:t}function x0(n,e){if(n===\"numeric\")return String(e);switch(n){case\"a\":return Gi(e);case\"A\":return Gi(e).toUpperCase();case\"i\":return Qi(e);case\"I\":return Ml(e);default:return String(e)}}function k0(n){var e;if(n.length===0)return!1;let t=(e=Zi(n[0]))!==null&&e!==void 0?e:\"numeric\",r=Cl(n[0]);if(r<1)return!1;for(let i=0;i<n.length;i++){let s=x0(t,r+i);if(n[i]!==s)return!1}return!0}function S0(n){return{type:Zi(n),start:Cl(n)}}function w0(n){let{type:e,start:t}=S0(n),r={};return e&&(r.type=e),t!==1&&(r.start=t),r}function v0(n,e,t=\". \"){let r=e+1;if(!n||n===\"1\")return`${r}${t}`;switch(n){case\"a\":return`${Gi(r)}${t}`;case\"A\":return`${Gi(r).toUpperCase()}${t}`;case\"i\":return`${Qi(r)}${t}`;case\"I\":return`${Ml(r)}${t}`;default:return`${r}${t}`}}function T0(n){var e,t;let r=(e=n.tokens)===null||e===void 0?void 0:e[0];return!!(n.text&&((t=n.tokens)===null||t===void 0?void 0:t.length)===1&&r?.type===\"list\"&&r.ordered&&r.raw===n.text)}function E0(n,e){return e.tokenizeInline?e.parseInline(e.tokenizeInline(n)):e.parseInline([{type:\"text\",raw:n,text:n}])}var Al=j.create({name:\"listItem\",addOptions(){return{HTMLAttributes:{},bulletListTypeName:\"bulletList\",orderedListTypeName:\"orderedList\"}},content:\"paragraph block*\",defining:!0,parseHTML(){return[{tag:\"li\"}]},renderHTML({HTMLAttributes:n}){return[\"li\",L(this.options.HTMLAttributes,n),0]},markdownTokenName:\"list_item\",parseMarkdown:(n,e)=>{var t;if(n.type!==\"list_item\")return[];let r=(t=e.parseBlockChildren)!==null&&t!==void 0?t:e.parseChildren,i=[];if(n.tokens&&n.tokens.length>0){if(T0(n))return{type:\"listItem\",content:[{type:\"paragraph\",content:E0(n.text||\"\",e)}]};if(n.tokens.some(s=>s.type===\"paragraph\"))i=r(n.tokens);else{let s=n.tokens[0];if(s&&s.type===\"text\"&&s.tokens&&s.tokens.length>0){if(i=[{type:\"paragraph\",content:e.parseInline(s.tokens)}],n.tokens.length>1){let o=r(n.tokens.slice(1));i.push(...o)}}else i=r(n.tokens)}}return i.length===0&&(i=[{type:\"paragraph\",content:[]}]),{type:\"listItem\",content:i}},renderMarkdown:(n,e,t)=>Go(n,e,r=>{if(r.parentType===\"bulletList\")return\"- \";if(r.parentType===\"orderedList\"){var i,s;let o=((i=r.meta)===null||i===void 0||(i=i.parentAttrs)===null||i===void 0?void 0:i.start)||1;return v0((s=r.meta)===null||s===void 0||(s=s.parentAttrs)===null||s===void 0?void 0:s.type,o-1+(r.index||0),\". \")}return\"- \"},t,{alignNestedToPrefix:t?.parentType===\"orderedList\"}),addExtensions(){return[kf(this.name,[this.options.bulletListTypeName,this.options.orderedListTypeName])]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),\"Shift-Tab\":()=>this.editor.commands.liftListItem(this.name)}}}),Rl=(n,e)=>{let{$from:t}=e.selection,r=X(n,e.schema),i=null,s=t.depth,o=t.pos,l=null;for(;s>0&&l===null;)i=t.node(s),i.type===r?l=s:(s-=1,o-=1);return l===null?null:{$pos:e.doc.resolve(o),depth:l}},Tf=(n,e)=>{let t=Rl(n,e);if(!t)return!1;let[,r]=au(e,n,t.$pos.pos+4);return r},M0=(n,e,t)=>{let{$anchor:r}=n.selection,i=Math.max(0,r.pos-2),s=n.doc.resolve(i).node();return!(!s||!t.includes(s.type.name))},hf=(n,e,t)=>{if(n.commands.undoInputRule())return!0;if(n.state.selection.from!==n.state.selection.to)return!1;if(!Le(n.state,e)&&M0(n.state,e,t)){let{$anchor:s}=n.state.selection,o=n.state.doc.resolve(s.before()-1),l=[];o.node().descendants((d,u)=>{d.type.name===e&&l.push({node:d,pos:u})});let a=l.at(-1);if(!a)return!1;let c=n.state.doc.resolve(o.start()+a.pos+1);return n.chain().cut({from:s.start()-1,to:s.end()+1},c.end()).joinForward().run()}if(!Le(n.state,e)||!uu(n.state))return!1;let{$from:r}=n.state.selection,i=r.depth-1;return r.node(i).type!==n.schema.nodes[e]||r.index(i)!==0?!1:n.chain().liftListItem(e).run()},C0=(n,e)=>{let t=Tf(n,e),r=Rl(n,e);return!r||!t?!1:t>r.depth},A0=(n,e)=>{let t=Tf(n,e),r=Rl(n,e);return!r||!t?!1:t<r.depth},pf=(n,e)=>{if(!Le(n.state,e)||!du(n.state,e))return!1;let{selection:t}=n.state,{$from:r,$to:i}=t;return!t.empty&&r.sameParent(i)?!1:C0(e,n.state)?n.chain().focus(n.state.selection.from+4).lift(e).joinBackward().run():A0(e,n.state)?n.chain().joinForward().joinBackward().run():n.commands.joinItemForward()},R0=(n,e,t)=>{let{state:r}=n,{selection:i}=r;if(!i.empty)return!1;let{$from:s}=i;if(s.parentOffset!==0||!s.parent.isTextblock||Le(r,e))return!1;let o=cu(s);if(!o||!t.includes(o.type.name))return!1;let l=o.lastChild;if(!l||l.type.name!==e)return!1;let a=s.parent;if(!l.canReplace(l.childCount,l.childCount,x.from(a)))return!1;let c=s.before(),d=s.after(),u=c-2;return n.commands.command(({tr:f,dispatch:h})=>(h&&(f.delete(c,d).insert(u,x.from(a)),f.setSelection(T.create(f.doc,u+1)),f.scrollIntoView()),!0))};var Nl=D.create({name:\"listKeymap\",addOptions(){return{listTypes:[{itemName:\"listItem\",wrapperNames:[\"bulletList\",\"orderedList\"]},{itemName:\"taskItem\",wrapperNames:[\"taskList\"]}]}},addKeyboardShortcuts(){return{Delete:({editor:n})=>{let e=!1;return this.options.listTypes.forEach(({itemName:t})=>{n.state.schema.nodes[t]!==void 0&&pf(n,t)&&(e=!0)}),e},\"Mod-Delete\":({editor:n})=>{let e=!1;return this.options.listTypes.forEach(({itemName:t})=>{n.state.schema.nodes[t]!==void 0&&pf(n,t)&&(e=!0)}),e},Backspace:({editor:n})=>{let e=!1;return this.options.listTypes.forEach(({itemName:t,wrapperNames:r})=>{n.state.schema.nodes[t]!==void 0&&hf(n,t,r)&&(e=!0)}),e},\"Mod-Backspace\":({editor:n})=>{let e=!1;return this.options.listTypes.forEach(({itemName:t,wrapperNames:r})=>{n.state.schema.nodes[t]!==void 0&&hf(n,t,r)&&(e=!0)}),e},Tab:({editor:n})=>{for(let{itemName:e,wrapperNames:t}of this.options.listTypes)if(n.state.schema.nodes[e]!==void 0&&R0(n,e,t))return!0;return!1}}}}),Yi=new RegExp(`^(\\\\s*)(${wf})([.)])\\\\s+(.*)$`),N0=/^\\s/,mn={heading:/^#{1,6}(?:\\s|$)/,bulletItem:/^[-+*]\\s+/,codeFence:/^(?:```|~~~)/,blockMath:/^\\$\\$/,thematicBreak:/^(?:(?:-[ \\t]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})$/};function O0(n){return Yi.test(n.trimStart())}function I0(n){let e=n.trimStart();return mn.bulletItem.test(e)||O0(e)||mn.heading.test(e)||mn.thematicBreak.test(e)&&!e.startsWith(\"-\")||/^>\\s?/.test(e)||mn.codeFence.test(e)||mn.blockMath.test(e)}function D0(n){return Object.values(mn).some(e=>e.test(n))}function L0(n){let e=[],t=[],r=!1;return n.forEach(i=>{if(r){t.push(i);return}if(i.trim()===\"\"){r=!0,t.push(i);return}if(e.length>0&&I0(i)){r=!0,t.push(i);return}e.push(i)}),{paragraphLines:e,blockLines:t}}function mf(n){let e=[],t=0,r=0;for(;t<n.length;){let i=n[t],s=i.match(Yi);if(!s)break;let[,o,l,a,c]=s,d=o.length,u=parseInt(l,10),f=isNaN(u)?Zi(l):void 0,h=isNaN(u)?Cl(l):u,p=[c],m=t+1,g=[i],y=!1;for(;m<n.length;){let b=n[m];if(b.match(Yi))break;if(b.trim()===\"\")g.push(b),p.push(\"\"),y=!0,m+=1;else if(b.match(N0)){let w=b.length-b.trimStart().length,k=d+l.length+1;g.push(b),p.push(b.slice(Math.min(w,k))),m+=1}else{if(y||D0(b))break;g.push(b),p.push(b),m+=1}}e.push({indent:d,number:h,type:f,content:p.join(`\n`).trim(),contentLines:p,raw:g.join(`\n`)}),r=m,t=m}return[e,r]}var P0=new RegExp(`^(${wf})([.)])\\\\s+(.+)$`);function B0(n){let e=n.split(`\n`).filter(r=>r.trim().length>0);if(e.length===0)return null;let t=[];for(let r of e){let i=r.trim().match(P0);if(!i)return null;t.push({marker:i[1],content:i[3]})}return k0(t.map(r=>r.marker))?{type:\"orderedList\",attrs:w0(t[0].marker),content:t.map(r=>({type:\"listItem\",content:[{type:\"paragraph\",content:[{type:\"text\",text:r.content}]}]}))}:null}function Ef(n,e,t){let r=[],i=0;for(;i<n.length;){let s=n[i];if(s.indent===e){let{paragraphLines:o,blockLines:l}=L0(s.contentLines),a=o.join(`\n`).trim(),c=[];a&&c.push({type:\"paragraph\",raw:a,tokens:t.inlineTokens(a)});let d=l.join(`\n`).trim();if(d){let h=t.blockTokens(d);c.push(...h)}let u=i+1,f=[];for(;u<n.length&&n[u].indent>e;)f.push(n[u]),u+=1;if(f.length>0){let h=Ef(f,Math.min(...f.map(p=>p.indent)),t);c.push({type:\"list\",ordered:!0,start:f[0].number,typeMarker:f[0].type,items:h,raw:f.map(p=>p.raw).join(`\n`)})}r.push({type:\"list_item\",raw:s.raw,tokens:c}),i=u}else i+=1}return r}function z0(n,e){return n.map(t=>{if(t.type!==\"list_item\")return e.parseChildren([t])[0];let r=[];return t.tokens&&t.tokens.length>0&&t.tokens.forEach(i=>{if(i.type===\"paragraph\"||i.type===\"list\"||i.type===\"blockquote\"||i.type===\"code\")r.push(...e.parseChildren([i]));else if(i.type===\"text\"&&i.tokens){let s=e.parseChildren([i]);r.push({type:\"paragraph\",content:s})}else{let s=e.parseChildren([i]);s.length>0&&r.push(...s)}}),{type:\"listItem\",content:r}})}var H0=64;function gf(n,e){let t=[],r=0;for(;t.length<e;){let i=n.indexOf(`\n`,r);if(i===-1)return t.push(n.slice(r)),t;t.push(n.slice(r,i)),r=i+1}return t}function $0(n){let e=n.indexOf(`\n`),t=e===-1?n:n.slice(0,e);if(!Yi.test(t))return[[],0,[]];let r=H0,i=gf(n,r),s=mf(i);for(;s[1]===i.length&&i.length===r;)r*=2,i=gf(n,r),s=mf(i);return[s[0],s[1],i]}var F0=\"listItem\",yf=\"textStyle\",bf=/^(\\d+)\\.\\s$/;function xf(n){let e=n.match(/list-style-type\\s*:\\s*([^;]+)/i);if(!e)return null;switch(e[1].trim().toLowerCase()){case\"upper-roman\":return\"I\";case\"lower-roman\":return\"i\";case\"upper-alpha\":case\"upper-latin\":return\"A\";case\"lower-alpha\":case\"lower-latin\":return\"a\";default:return null}}var Ol=j.create({name:\"orderedList\",addOptions(){return{itemTypeName:\"listItem\",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:\"block list\",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:n=>n.hasAttribute(\"start\")?parseInt(n.getAttribute(\"start\")||\"\",10):1},type:{default:null,parseHTML:n=>{let e=n.getAttribute(\"type\");if(e)return e;let t=n.getAttribute(\"style\");if(t){let i=xf(t);if(i)return i}let r=n.querySelector(\"li\");if(r){let i=r.getAttribute(\"style\");if(i){let s=xf(i);if(s)return s}}return null}}}},parseHTML(){return[{tag:\"ol\"}]},renderHTML({HTMLAttributes:n}){let{start:e,type:t,...r}=n,i=L(this.options.HTMLAttributes,r);return e!==1&&(i.start=e),t&&t!==\"1\"&&(i.type=t),[\"ol\",i,0]},markdownTokenName:\"list\",parseMarkdown:(n,e)=>{if(n.type!==\"list\"||!n.ordered)return[];let t=n.start||1,r=n.typeMarker,i=n.items?z0(n.items,e):[],s={};return t!==1&&(s.start=t),r&&(s.type=r),Object.keys(s).length>0?{type:\"orderedList\",attrs:s,content:i}:{type:\"orderedList\",content:i}},renderMarkdown:(n,e)=>n.content?e.renderChildren(n.content,`\n`):\"\",markdownTokenizer:{name:\"orderedList\",level:\"block\",start:()=>-1,tokenize:(n,e,t)=>{var r,i;let[s,o,l]=$0(n);if(s.length===0)return;let a=Ef(s,s[0].indent,t);if(a.length!==0)return{type:\"list\",ordered:!0,start:((r=s[0])===null||r===void 0?void 0:r.number)||1,typeMarker:(i=s[0])===null||i===void 0?void 0:i.type,items:a,raw:l.slice(0,o).join(`\n`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(F0,this.editor.getAttributes(yf)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{\"Mod-Shift-7\":()=>this.editor.commands.toggleOrderedList()}},addProseMirrorPlugins(){return[new O({props:{handlePaste:(n,e)=>{var t,r;let i=(t=e.clipboardData)===null||t===void 0?void 0:t.getData(\"text/html\");if(i?.trim())return!1;let s=(r=e.clipboardData)===null||r===void 0?void 0:r.getData(\"text/plain\");if(!s)return!1;let o=B0(s);if(!o)return!1;try{let l=n.state.schema.nodeFromJSON(o),a=n.state.tr.replaceSelectionWith(l);return n.dispatch(a),!0}catch{return!1}}}})]},addInputRules(){let n=(t,r)=>(!r.attrs.type||r.attrs.type===\"1\")&&r.childCount+r.attrs.start===+t[1],e=dt({find:bf,type:this.type,getAttributes:t=>({start:+t[1]}),joinPredicate:n});return(this.options.keepMarks||this.options.keepAttributes)&&(e=dt({find:bf,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:t=>({start:+t[1],...this.editor.getAttributes(yf)}),joinPredicate:n,editor:this.editor})),[e]}}),_0=/^\\s*(\\[([( |x])?\\])\\s$/,V0=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0\",j0=(n,e,t)=>{var r;return(t==null||(r=t.checkboxLabel)===null||r===void 0?void 0:r.call(t,n,e))||`Task item checkbox for ${n.textContent||\"empty task item\"}`},W0=j.create({name:\"taskItem\",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:\"taskList\",a11y:void 0}},content(){return this.options.nested?\"paragraph block*\":\"paragraph+\"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:n=>{let e=n.getAttribute(\"data-checked\");return e===\"\"||e===\"true\"},renderHTML:n=>({\"data-checked\":n.checked})}}},parseHTML(){return[{tag:`li[data-type=\"${this.name}\"]`,priority:51,contentElement:n=>{var e;return(e=n.querySelector(\"div\"))!==null&&e!==void 0?e:n}}]},renderHTML({node:n,HTMLAttributes:e}){return[\"li\",L(this.options.HTMLAttributes,e,{\"data-type\":this.name}),[\"label\",[\"input\",{type:\"checkbox\",checked:n.attrs.checked?\"checked\":null}],[\"span\"]],[\"div\",0]]},parseMarkdown:(n,e)=>{let t=[];if(n.tokens&&n.tokens.length>0?t.push(e.createNode(\"paragraph\",{},e.parseInline(n.tokens))):n.text?t.push(e.createNode(\"paragraph\",{},[e.createNode(\"text\",{text:n.text})])):t.push(e.createNode(\"paragraph\",{},[])),n.nestedTokens&&n.nestedTokens.length>0){let r=e.parseChildren(n.nestedTokens);t.push(...r)}return e.createNode(\"taskItem\",{checked:n.checked||!1},t)},renderMarkdown:(n,e)=>{var t;let r=`- [${!((t=n.attrs)===null||t===void 0)&&t.checked?\"x\":\" \"}] `;return Go(n,e,r)},addExtensions(){return this.options.nested?[kf(this.name,[this.options.taskListTypeName])]:[]},addKeyboardShortcuts(){let n={Enter:()=>this.editor.commands.splitListItem(this.name),\"Shift-Tab\":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...n,Tab:()=>this.editor.commands.sinkListItem(this.name)}:n},addNodeView(){return({node:n,HTMLAttributes:e,getPos:t,editor:r})=>{let i=document.createElement(\"li\"),s=document.createElement(\"label\"),o=document.createElement(\"span\"),l=document.createElement(\"input\"),a=document.createElement(\"div\");o.style.cssText=V0;let c=u=>{let f=j0(u,u.attrs.checked,this.options.a11y);l.setAttribute(\"aria-label\",f),o.textContent=f};c(n),s.contentEditable=\"false\",l.type=\"checkbox\",l.addEventListener(\"mousedown\",u=>u.preventDefault()),l.addEventListener(\"change\",u=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){l.checked=!l.checked;return}let{checked:f}=u.target;r.isEditable&&typeof t==\"function\"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:h})=>{let p=t();if(typeof p!=\"number\")return!1;let m=h.doc.nodeAt(p);return h.setNodeMarkup(p,void 0,{...m?.attrs,checked:f}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(n,f)||(l.checked=!l.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([u,f])=>{i.setAttribute(u,f)}),i.dataset.checked=n.attrs.checked,l.checked=n.attrs.checked,s.append(l,o),i.append(s,a),Object.entries(e).forEach(([u,f])=>{i.setAttribute(u,f)});let d=new Set(Object.keys(e));return{dom:i,contentDOM:a,update:u=>{if(u.type!==this.type)return!1;i.dataset.checked=u.attrs.checked,l.checked=u.attrs.checked,c(u);let f=r.extensionManager.attributes,h=on(u,f),p=new Set(Object.keys(h)),m=this.options.HTMLAttributes;return d.forEach(g=>{p.has(g)||(g in m?i.setAttribute(g,m[g]):i.removeAttribute(g))}),Object.entries(h).forEach(([g,y])=>{y==null?g in m?i.setAttribute(g,m[g]):i.removeAttribute(g):i.setAttribute(g,y)}),d=p,!0}}}},addInputRules(){return[dt({find:_0,type:this.type,getAttributes:n=>({checked:n[n.length-1]===\"x\"})})]}}),U0=j.create({name:\"taskList\",addOptions(){return{itemTypeName:\"taskItem\",HTMLAttributes:{}}},group:\"block list\",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type=\"${this.name}\"]`,priority:51}]},renderHTML({HTMLAttributes:n}){return[\"ul\",L(this.options.HTMLAttributes,n,{\"data-type\":this.name}),0]},parseMarkdown:(n,e)=>e.createNode(\"taskList\",{},e.parseChildren(n.items||[])),renderMarkdown:(n,e)=>n.content?e.renderChildren(n.content,`\n`):\"\",markdownTokenizer:{name:\"taskList\",level:\"block\",start(n){var e;let t=(e=n.match(/^\\s*[-+*]\\s+\\[([ xX])\\]\\s+/))===null||e===void 0?void 0:e.index;return t!==void 0?t:-1},tokenize(n,e,t){let r=s=>{let o=Xo(s,{itemPattern:/^(\\s*)([-+*])\\s+\\[([ xX])\\]\\s+(.*)$/,extractItemData:l=>({indentLevel:l[1].length,mainContent:l[4],checked:l[3].toLowerCase()===\"x\"}),createToken:(l,a)=>({type:\"taskItem\",raw:\"\",mainContent:l.mainContent,indentLevel:l.indentLevel,checked:l.checked,text:l.mainContent,tokens:t.inlineTokens(l.mainContent),nestedTokens:a}),customNestedParser:r},t);if(o){let l={type:\"taskList\",raw:o.raw,items:o.items},a=s.slice(o.raw.length);return a.trim()?[l,...t.blockTokens(a)]:[l]}return t.blockTokens(s)},i=Xo(n,{itemPattern:/^(\\s*)([-+*])\\s+\\[([ xX])\\]\\s+(.*)$/,extractItemData:s=>({indentLevel:s[1].length,mainContent:s[4],checked:s[3].toLowerCase()===\"x\"}),createToken:(s,o)=>({type:\"taskItem\",raw:\"\",mainContent:s.mainContent,indentLevel:s.indentLevel,checked:s.checked,text:s.mainContent,tokens:t.inlineTokens(s.mainContent),nestedTokens:o}),customNestedParser:r},t);if(i)return{type:\"taskList\",raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:n})=>n.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{\"Mod-Shift-9\":()=>this.editor.commands.toggleTaskList()}}}),fw=D.create({name:\"listKit\",addExtensions(){let n=[];return this.options.bulletList!==!1&&n.push(El.configure(this.options.bulletList)),this.options.listItem!==!1&&n.push(Al.configure(this.options.listItem)),this.options.listKeymap!==!1&&n.push(Nl.configure(this.options.listKeymap)),this.options.orderedList!==!1&&n.push(Ol.configure(this.options.orderedList)),this.options.taskItem!==!1&&n.push(W0.configure(this.options.taskItem)),this.options.taskList!==!1&&n.push(U0.configure(this.options.taskList)),n}});var es=\"&nbsp;\",Il=\"\\xA0\",Mf=j.create({name:\"paragraph\",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:\"block\",content:\"inline*\",parseHTML(){return[{tag:\"p\"}]},renderHTML({HTMLAttributes:n}){return[\"p\",L(this.options.HTMLAttributes,n),0]},parseMarkdown:(n,e)=>{let t=n.tokens||[];if(t.length===1&&t[0].type===\"image\")return e.parseChildren([t[0]]);let r=e.parseInline(t);return t.length===1&&t[0].type===\"text\"&&(t[0].raw===es||t[0].text===es||t[0].raw===Il||t[0].text===Il)&&r.length===1&&r[0].type===\"text\"&&(r[0].text===es||r[0].text===Il)?e.createNode(\"paragraph\",void 0,[]):e.createNode(\"paragraph\",void 0,r)},renderMarkdown:(n,e,t)=>{if(!n)return\"\";let r=Array.isArray(n.content)?n.content:[];if(r.length===0){var i,s;let o=Array.isArray(t==null||(i=t.previousNode)===null||i===void 0?void 0:i.content)?t.previousNode.content:[];return(t==null||(s=t.previousNode)===null||s===void 0?void 0:s.type)===\"paragraph\"&&o.length===0?es:\"\"}return e.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:n})=>n.setNode(this.name)}},addKeyboardShortcuts(){return{\"Mod-Alt-0\":()=>this.editor.commands.setParagraph()}}});var K0=/(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))$/,q0=/(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))/g,Cf=W.create({name:\"strike\",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:\"s\"},{tag:\"del\"},{tag:\"strike\"},{style:\"text-decoration\",consuming:!1,getAttrs:n=>n.includes(\"line-through\")?{}:!1}]},renderHTML({HTMLAttributes:n}){return[\"s\",L(this.options.HTMLAttributes,n),0]},markdownTokenName:\"del\",parseMarkdown:(n,e)=>e.applyMark(\"strike\",e.parseInline(n.tokens||[])),renderMarkdown:(n,e)=>`~~${e.renderChildren(n)}~~`,addCommands(){return{setStrike:()=>({commands:n})=>n.setMark(this.name),toggleStrike:()=>({commands:n})=>n.toggleMark(this.name),unsetStrike:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{\"Mod-Shift-s\":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[ve({find:K0,type:this.type})]},addPasteRules(){return[ye({find:q0,type:this.type})]}});var Af=j.create({name:\"text\",group:\"inline\",parseMarkdown:n=>({type:\"text\",text:n.text||\"\"}),renderMarkdown:n=>n.text||\"\"});var Rf=W.create({name:\"underline\",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:\"u\"},{style:\"text-decoration\",consuming:!1,getAttrs:n=>n.includes(\"underline\")?{}:!1}]},renderHTML({HTMLAttributes:n}){return[\"u\",L(this.options.HTMLAttributes,n),0]},parseMarkdown(n,e){return e.applyMark(this.name||\"underline\",e.parseInline(n.tokens||[]))},renderMarkdown(n,e){return`++${e.renderChildren(n)}++`},markdownTokenizer:{name:\"underline\",level:\"inline\",start(n){return n.indexOf(\"++\")},tokenize(n,e,t){let r=/^(\\+\\+)([\\s\\S]+?)(\\+\\+)/.exec(n);if(!r)return;let i=r[2].trim();return{type:\"underline\",raw:r[0],text:i,tokens:t.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:n})=>n.setMark(this.name),toggleUnderline:()=>({commands:n})=>n.toggleMark(this.name),unsetUnderline:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{\"Mod-u\":()=>this.editor.commands.toggleUnderline(),\"Mod-U\":()=>this.editor.commands.toggleUnderline()}}});function Nf(n={}){return new O({view(e){return new Dl(e,n)}})}var Dl=class{constructor(e,t){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.lastDragEvent=null,this.width=(r=t.width)!==null&&r!==void 0?r:1,this.color=t.color===!1?void 0:t.color||\"black\",this.class=t.class,this.handlers=[\"dragover\",\"dragend\",\"drop\",\"dragleave\"].map(i=>{let s=o=>{this[i](o)};return e.dom.addEventListener(i,s),{name:i,handler:s}})}destroy(){this.setCursor(null),this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){if(this.cursorPos!=null&&t.doc!=e.state.doc)if(this.lastDragEvent){let r=this.computeTarget(this.lastDragEvent);r==this.cursorPos?this.updateOverlay():this.setCursor(r)}else this.updateOverlay()}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,r,i=this.editorView.dom,s=i.getBoundingClientRect(),o=s.width/i.offsetWidth,l=s.height/i.offsetHeight;if(t){let u=e.nodeBefore,f=e.nodeAfter;if(u||f){let h=this.editorView.nodeDOM(this.cursorPos-(u?u.nodeSize:0));if(h){let p=h.getBoundingClientRect(),m=u?p.bottom:p.top;u&&f&&(m=(m+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let g=this.width/2*l;r={left:p.left,right:p.right,top:m-g,bottom:m+g}}}}if(!r){let u=this.editorView.coordsAtPos(this.cursorPos),f=this.width/2*o;r={left:u.left-f,right:u.left+f,top:u.top,bottom:u.bottom}}let a=this.editorView.dom.offsetParent;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\",t),this.element.classList.toggle(\"prosemirror-dropcursor-inline\",!t);let c,d;if(!a||a==document.body&&getComputedStyle(a).position==\"static\")c=-pageXOffset,d=-pageYOffset;else{let u=a.getBoundingClientRect(),f=u.width/a.offsetWidth,h=u.height/a.offsetHeight;c=u.left-a.scrollLeft*f,d=u.top-a.scrollTop*h}this.element.style.left=(r.left-c)/o+\"px\",this.element.style.top=(r.top-d)/l+\"px\",this.element.style.width=(r.right-r.left)/o+\"px\",this.element.style.height=(r.bottom-r.top)/l+\"px\"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}computeTarget(e){let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),i=r&&r.type.spec.disableDropCursor,s=typeof i==\"function\"?i(this.editorView,t,e):i;if(!t||s)return null;let o=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=Ir(this.editorView.state.doc,o,this.editorView.dragging.slice);l!=null&&(o=l)}return o}dragover(e){if(!this.editorView.editable)return;this.lastDragEvent=e;let t=this.computeTarget(e);t!=null&&(this.setCursor(t),this.scheduleRemoval(5e3))}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}};var ae=class n extends R{constructor(e){super(e,e)}map(e,t){let r=e.resolve(t.map(this.head));return n.valid(r)?new n(r):R.near(r)}content(){return v.empty}eq(e){return e instanceof n&&e.head==this.head}toJSON(){return{type:\"gapcursor\",pos:this.head}}static fromJSON(e,t){if(typeof t.pos!=\"number\")throw new RangeError(\"Invalid input for GapCursor.fromJSON\");return new n(e.resolve(t.pos))}getBookmark(){return new Ll(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!J0(e)||!X0(e))return!1;let r=t.type.spec.allowGapCursor;if(r!=null)return r;let i=t.contentMatchAt(e.index()).defaultType;return i&&i.isTextblock}static findGapCursorFrom(e,t,r=!1){e:for(;;){if(!r&&n.valid(e))return e;let i=e.pos,s=null;for(let o=e.depth;;o--){let l=e.node(o);if(t>0?e.indexAfter(o)<l.childCount:e.index(o)>0){s=l.child(t>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;i+=t;let a=e.doc.resolve(i);if(n.valid(a))return a}for(;;){let o=t>0?s.firstChild:s.lastChild;if(!o){if(s.isAtom&&!s.isText&&!M.isSelectable(s)){e=e.doc.resolve(i+s.nodeSize*t),r=!1;continue e}break}s=o,i+=t;let l=e.doc.resolve(i);if(n.valid(l))return l}return null}}};ae.prototype.visible=!1;ae.findFrom=ae.findGapCursorFrom;R.jsonID(\"gapcursor\",ae);var Ll=class n{constructor(e){this.pos=e}map(e){return new n(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return ae.valid(t)?new ae(t):R.near(t)}};function Of(n){return n.isAtom||n.spec.isolating||n.spec.createGapCursor}function J0(n){for(let e=n.depth;e>=0;e--){let t=n.index(e),r=n.node(e);if(t==0){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t-1);;i=i.lastChild){if(i.childCount==0&&!i.inlineContent||Of(i.type))return!0;if(i.inlineContent)return!1}}return!0}function X0(n){for(let e=n.depth;e>=0;e--){let t=n.indexAfter(e),r=n.node(e);if(t==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t);;i=i.firstChild){if(i.childCount==0&&!i.inlineContent||Of(i.type))return!0;if(i.inlineContent)return!1}}return!0}function If(){return new O({props:{decorations:Z0,createSelectionBetween(n,e,t){return e.pos==t.pos&&ae.valid(t)?new ae(t):null},handleClick:Y0,handleKeyDown:G0,handleDOMEvents:{beforeinput:Q0}}})}var G0=Ro({ArrowLeft:ts(\"horiz\",-1),ArrowRight:ts(\"horiz\",1),ArrowUp:ts(\"vert\",-1),ArrowDown:ts(\"vert\",1)});function ts(n,e){let t=n==\"vert\"?e>0?\"down\":\"up\":e>0?\"right\":\"left\";return function(r,i,s){let o=r.selection,l=e>0?o.$to:o.$from,a=o.empty;if(o instanceof T){if(!s.endOfTextblock(t)||l.depth==0)return!1;a=!1,l=r.doc.resolve(e>0?l.after():l.before())}let c=ae.findGapCursorFrom(l,e,a);return c?(i&&i(r.tr.setSelection(new ae(c))),!0):!1}}function Y0(n,e,t){if(!n||!n.editable)return!1;let r=n.state.doc.resolve(e);if(!ae.valid(r))return!1;let i=n.posAtCoords({left:t.clientX,top:t.clientY});return i&&i.inside>-1&&M.isSelectable(n.state.doc.nodeAt(i.inside))?!1:(n.dispatch(n.state.tr.setSelection(new ae(r))),!0)}function Q0(n,e){if(e.inputType!=\"insertCompositionText\"||!(n.state.selection instanceof ae))return!1;let{$from:t}=n.state.selection,r=t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);if(!r)return!1;let i=x.empty;for(let o=r.length-1;o>=0;o--)i=x.from(r[o].createAndFill(null,i));let s=n.state.tr.replace(t.pos,t.pos,new v(i,0,0));return s.setSelection(T.near(s.doc.resolve(t.pos+1))),n.dispatch(s),!1}function Z0(n){if(!(n.selection instanceof ae))return null;let e=document.createElement(\"div\");return e.className=\"ProseMirror-gapcursor\",_.create(n.doc,[fe.widget(n.selection.head,e,{key:\"gapcursor\"})])}var Fw=D.create({name:\"characterCount\",addOptions(){return{limit:null,autoTrim:!0,mode:\"textSize\",textCounter:n=>n.length,wordCounter:n=>n.split(\" \").filter(e=>e!==\"\").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=n=>{let e=n?.node||this.editor.state.doc;if((n?.mode||this.options.mode)===\"textSize\"){let t=e.textBetween(0,e.content.size,void 0,\" \");return this.options.textCounter(t)}return e.nodeSize},this.storage.words=n=>{let e=n?.node||this.editor.state.doc,t=e.textBetween(0,e.content.size,\" \",\" \");return this.options.wordCounter(t)}},addProseMirrorPlugins(){let n=!1;return[new O({key:new H(\"characterCount\"),appendTransaction:(e,t,r)=>{if(n)return;let i=this.options.limit,s=this.options.autoTrim;if(i==null||i===0||s===!1){n=!0;return}let o=this.storage.characters({node:r.doc});if(o>i){let l=o-i,a=0,c=l;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let d=r.tr.deleteRange(a,c);return n=!0,d}n=!0},filterTransaction:(e,t)=>{let r=this.options.limit;if(!e.docChanged||r===0||r===null||r===void 0)return!0;let i=this.storage.characters({node:t.doc}),s=this.storage.characters({node:e.doc});if(s<=r||i>r&&s>r&&s<=i)return!0;if(i>r&&s>r&&s>i||!e.getMeta(\"paste\"))return!1;let o=e.selection.$head.pos,l=o-(s-r),a=o;return e.deleteRange(l,a),!(this.storage.characters({node:e.doc})>r)}})]}}),Pf=D.create({name:\"dropCursor\",addOptions(){return{color:\"currentColor\",width:1,class:void 0}},addProseMirrorPlugins(){return[Nf(this.options)]}}),_w=D.create({name:\"focus\",addOptions(){return{className:\"has-focus\",mode:\"all\"}},addProseMirrorPlugins(){return[new O({key:new H(\"focus\"),props:{decorations:({doc:n,selection:e})=>{let{isEditable:t,isFocused:r}=this.editor,{anchor:i}=e,s=[];if(!t||!r)return _.create(n,[]);let o=0;this.options.mode===\"deepest\"&&n.descendants((a,c)=>{if(!a.isText){if(!(i>=c&&i<=c+a.nodeSize-1))return!1;o+=1}});let l=0;return n.descendants((a,c)=>{if(a.isText||!(i>=c&&i<=c+a.nodeSize-1))return!1;if(l+=1,this.options.mode===\"deepest\"&&o-l>0||this.options.mode===\"shallowest\"&&l>1)return this.options.mode===\"deepest\";s.push(fe.node(c,c+a.nodeSize,{class:this.options.className}))}),_.create(n,s)}}})]}}),Bf=D.create({name:\"gapCursor\",addProseMirrorPlugins(){return[If()]},extendNodeSchema(n){var e;let t={name:n.name,options:n.options,storage:n.storage};return{allowGapCursor:(e=B(E(n,\"allowGapCursor\",t)))!==null&&e!==void 0?e:null}}}),zf=\"placeholder\",Df=new H(\"tiptap__placeholder\");function Hf(n){let{editor:e,placeholder:t,dataAttribute:r,pos:i,node:s,isEmptyDoc:o,hasAnchor:l,classes:{emptyNode:a,emptyEditor:c}}=n,d=[a];return o&&d.push(c),fe.node(i,i+s.nodeSize,{class:d.join(\" \"),[r]:typeof t==\"function\"?t({editor:e,node:s,pos:i,hasAnchor:l}):t})}function $f(n,e){return typeof n==\"function\"?n(e):n}function Ff({editor:n,options:e,dataAttribute:t,doc:r,selection:i,from:s,to:o}){let{anchor:l}=i,a=[],c=n.isEmpty;return r.nodesBetween(s,o,(d,u)=>{let f=l>=u&&l<=u+d.nodeSize,h=!d.isLeaf&&an(d);return d.type.isTextblock&&(f||!e.showOnlyCurrent)&&h&&a.push(Hf({editor:n,isEmptyDoc:c,dataAttribute:t,hasAnchor:f,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:$f(e.emptyNodeClass,{editor:n,node:d,pos:u,hasAnchor:f})},node:d,pos:u})),e.includeChildren}),a}function _f({editor:n,options:e,dataAttribute:t,doc:r,selection:i}){if(!(n.isEditable||!e.showOnlyWhenEditable))return null;let{anchor:s}=i,o=[],l=n.isEmpty;if(e.showOnlyCurrent&&!e.includeChildren){let a=r.resolve(s),c=a.depth>0?a.node(1):a.nodeAfter,d=a.depth>0?a.before(1):s;if(c&&c.type.isTextblock&&an(c)){let u=s>=d&&s<=d+c.nodeSize;o.push(Hf({editor:n,isEmptyDoc:l,dataAttribute:t,hasAnchor:u,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:$f(e.emptyNodeClass,{editor:n,node:c,pos:d,hasAnchor:u})},node:c,pos:d}))}}else o.push(...Ff({editor:n,options:e,dataAttribute:t,doc:r,selection:i,from:0,to:r.content.size}));return _.create(r,o)}function er(n,e){let t=n.resolve(e);if(t.depth===0){var r;let s=(r=t.nodeAfter)!==null&&r!==void 0?r:t.nodeBefore;if(!s)return{from:e,to:e};let o=t.nodeAfter?e:e-s.nodeSize;return{from:o,to:o+s.nodeSize}}let i=t.before(1);return{from:i,to:i+t.node(1).nodeSize}}function tr(n,e){return{from:Math.max(0,e.from-1),to:Math.min(n.content.size,e.to-1)}}function ex(n,e,t){let r=[];return n.forEach((i,s)=>{let o=s,l=o+i.nodeSize,a=o+1,c=l+1;a<t&&c>e&&r.push({from:o,to:l})}),r}function tx(n){if(n.length===0)return[];let e=[...n].sort((r,i)=>r.from-i.from),t=[{...e[0]}];for(let r=1;r<e.length;r+=1){let i=t[t.length-1],s=e[r];s.from<=i.to?i.to=Math.max(i.to,s.to):t.push({...s})}return t}function nx(n,e){let t=ex(n,e.from,e.to);return t.push(tr(n,er(n,e.from))),e.to>e.from?t.push(tr(n,er(n,Math.min(e.to,n.content.size+1)-1))):e.from<n.content.size+1&&t.push(tr(n,er(n,Math.min(e.from+1,n.content.size)))),t}function rx(n,e,t){let r=[];if(n.docChanged){let i=ln(n);for(let s of i)r.push(...nx(t.doc,s.newRange))}return n.selectionSet&&(r.push(tr(t.doc,er(t.doc,n.mapping.map(e.selection.anchor)))),r.push(tr(t.doc,er(t.doc,t.selection.anchor)))),tx(r)}function ix(n,e,t){let r=Math.max(0,Math.min(n,t.content.size));return{from:r,to:Math.max(r,Math.min(e,t.content.size))}}function sx({decorations:n,ranges:e,editor:t,options:r,dataAttribute:i,doc:s,selection:o}){let l=n;for(let a of e){let{from:c,to:d}=ix(a.from,a.to,s),u=l.find(c,d).filter(h=>h.from>=c&&h.to<=d);u.length&&(l=l.remove(u));let f=Ff({editor:t,options:r,dataAttribute:i,doc:s,selection:o,from:c,to:d});f.length&&(l=l.add(s,f))}return l}function ox({editor:n,options:e,dataAttribute:t}){return{init(r,i){let s=_f({editor:n,options:e,dataAttribute:t,doc:i.doc,selection:i.selection});return s??_.empty},apply(r,i,s,o){return!r.docChanged&&!r.selectionSet?i:sx({decorations:i.map(r.mapping,r.doc),ranges:rx(r,s,o),editor:n,options:e,dataAttribute:t,doc:o.doc,selection:o.selection})}}}function lx(n){return n.replace(/\\s+/g,\"-\").replace(/[^a-zA-Z0-9-]/g,\"\").replace(/^[0-9-]+/,\"\").replace(/^-+/,\"\").toLowerCase()}function ax({editor:n,options:e}){let t=e.dataAttribute?`data-${lx(e.dataAttribute)}`:`data-${zf}`,r=e.showOnlyCurrent&&!e.includeChildren;return new O({key:Df,...r?{}:{state:ox({editor:n,options:e,dataAttribute:t})},props:{decorations:r?({doc:i,selection:s})=>_f({editor:n,options:e,dataAttribute:t,doc:i,selection:s}):i=>{var s;return e.showOnlyWhenEditable&&!n.isEditable?_.empty:(s=Df.getState(i))!==null&&s!==void 0?s:_.empty}}})}var Vw=D.create({name:\"placeholder\",addOptions(){return{emptyEditorClass:\"is-editor-empty\",emptyNodeClass:\"is-empty\",dataAttribute:zf,placeholder:\"Write something \\u2026\",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[ax({editor:this.editor,options:this.options})]}});function Pl(n,e){return!n.selection.empty&&!ai(n.selection)&&e.isEditable}function cx(n,e){return Pl(n,e)&&!e.isFocused&&!e.view.dragging}function dx(){var n;(n=window.getSelection())===null||n===void 0||n.removeAllRanges()}function ux(n){n.focus()}var jw=D.create({name:\"selection\",addOptions(){return{className:\"selection\"}},addProseMirrorPlugins(){let{editor:n,options:e}=this;return[new O({key:new H(\"selection\"),props:{decorations(t){return cx(t,n)?_.create(t.doc,[fe.inline(t.selection.from,t.selection.to,{class:e.className})]):null},handleDOMEvents:{blur(t){return Pl(t.state,n)&&dx(),!1},focus(t){return Pl(t.state,n)&&requestAnimationFrame(()=>{!n.isDestroyed&&t.hasFocus()&&ux(t)}),!1}}}})]}});function Lf({types:n,node:e}){return e&&Array.isArray(n)&&n.includes(e.type)||e?.type===n}var Vf=D.create({name:\"trailingNode\",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var n;let e=new H(this.name),t=this.options.node||((n=this.editor.schema.topNodeType.contentMatch.defaultType)===null||n===void 0?void 0:n.name)||\"paragraph\",r=Object.entries(this.editor.schema.nodes).map(([,i])=>i).filter(i=>(this.options.notAfter||[]).concat(t).includes(i.name));return[new O({key:e,appendTransaction:(i,s,o)=>{let{doc:l,tr:a,schema:c}=o,d=e.getState(o),u=l.content.size,f=c.nodes[t];if(!i.some(h=>h.getMeta(\"skipTrailingNode\"))&&d)return a.insert(u,f.create())},state:{init:(i,s)=>{let o=s.tr.doc.lastChild;return!Lf({node:o,types:r})},apply:(i,s)=>{if(!i.docChanged||i.getMeta(\"__uniqueIDTransaction\"))return s;let o=i.doc.lastChild;return!Lf({node:o,types:r})}}})]}}),jf=D.create({name:\"undoRedo\",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:n,dispatch:e})=>Do(n,e),redo:()=>({state:n,dispatch:e})=>Lo(n,e)}},addProseMirrorPlugins(){return[Cd(this.options)]},addKeyboardShortcuts(){return{\"Mod-z\":()=>this.editor.commands.undo(),\"Shift-Mod-z\":()=>this.editor.commands.redo(),\"Mod-y\":()=>this.editor.commands.redo(),\"Mod-\\u044F\":()=>this.editor.commands.undo(),\"Shift-Mod-\\u044F\":()=>this.editor.commands.redo()}}});var fx=D.create({name:\"starterKit\",addExtensions(){let n=[];if(this.options.bold!==!1&&n.push(zu.configure(this.options.bold)),this.options.blockquote!==!1&&n.push(Bu.configure(this.options.blockquote)),this.options.bulletList!==!1&&n.push(El.configure(this.options.bulletList)),this.options.code!==!1&&n.push(Hu.configure(this.options.code)),this.options.codeBlock!==!1&&n.push($u.configure(this.options.codeBlock)),this.options.document!==!1&&n.push(Fu.configure(this.options.document)),this.options.dropcursor!==!1&&n.push(Pf.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&n.push(Bf.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&n.push(_u.configure(this.options.hardBreak)),this.options.heading!==!1&&n.push(Vu.configure(this.options.heading)),this.options.undoRedo!==!1&&n.push(jf.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&n.push(ju.configure(this.options.horizontalRule)),this.options.italic!==!1&&n.push(Wu.configure(this.options.italic)),this.options.listItem!==!1&&n.push(Al.configure(this.options.listItem)),this.options.listKeymap!==!1){var e;n.push(Nl.configure((e=this.options)===null||e===void 0?void 0:e.listKeymap))}if(this.options.link!==!1){var t;n.push(df.configure((t=this.options)===null||t===void 0?void 0:t.link))}if(this.options.orderedList!==!1&&n.push(Ol.configure(this.options.orderedList)),this.options.paragraph!==!1&&n.push(Mf.configure(this.options.paragraph)),this.options.strike!==!1&&n.push(Cf.configure(this.options.strike)),this.options.text!==!1&&n.push(Af.configure(this.options.text)),this.options.underline!==!1){var r;n.push(Rf.configure((r=this.options)===null||r===void 0?void 0:r.underline))}if(this.options.trailingNode!==!1){var i;n.push(Vf.configure((i=this.options)===null||i===void 0?void 0:i.trailingNode))}return n}}),Wf=fx;var ns=class extends xe{constructor(e){super(e,xe.fromSchema(e).rules)}parseSlice(e,t={}){return super.parseSlice(e,{...t,preserveWhitespace:\"full\"})}};var rs=\"raw\",ze=\"implicit\",zt=\"edge\",nr=\"preservedOuterSpan\";function Kf(n){if(!n||typeof n!=\"object\")return!1;let e=n;return typeof e.lead==\"string\"&&typeof e.tail==\"string\"&&typeof e.br==\"boolean\"&&/^[ \\t\\n\\r\\f]*$/.test(e.lead+e.tail)}var Bl=Vl,hx=\"visual-editor-line\";function px(n){if(!n||typeof n!=\"object\")return!1;let e=n;return typeof e.tag==\"string\"&&!!e.attrs&&typeof e.attrs==\"object\"&&Object.values(e.attrs).every(t=>typeof t==\"string\")}var Uf=n=>[\"preservedSpan\",nr,...n.markNames(),\"link\",\"bold\",\"italic\",\"underline\",\"strike\",\"code\",\"superscript\",\"subscript\",\"paragraph\",\"heading\",\"bulletList\",\"orderedList\",\"listItem\",\"blockquote\",\"codeBlock\",\"hardBreak\",\"horizontalRule\"],is=class{formatting=new fn;formats=new di;extensions(e){let t=e.content===\"block+\",r=this.formatting,i=j.create({name:\"doc\",topNode:!0,content:e.content}),s=W.create({name:\"preservedSpan\",excludes:\"\",parseHTML:()=>[{tag:`span[${re}]:not([${ut}])`}],renderHTML:({HTMLAttributes:d})=>[\"span\",d,0]}),o=W.create({name:\"superscript\",parseHTML:()=>[{tag:\"sup\"}],renderHTML:({HTMLAttributes:d})=>[\"sup\",d,0]}),l=W.create({name:\"subscript\",parseHTML:()=>[{tag:\"sub\"}],renderHTML:({HTMLAttributes:d})=>[\"sub\",d,0]}),a=D.create({name:\"preservedOrigins\",addGlobalAttributes(){return[{types:Uf(r),attributes:{[re]:{default:null,parseHTML:d=>{let u=d.getAttribute(re);return u&&u.length<=200?u:null},renderHTML:d=>{let u=d[re];return typeof u==\"string\"&&u.length<=200?{[re]:u}:{}}}}}]}}),c=D.create({name:\"preserveRichTextWhitespace\",addProseMirrorPlugins(){return[new O({props:{clipboardParser:new ns(this.editor.schema)}})]}});return[i,Wf.configure({document:!1,undoRedo:{depth:100,newGroupDelay:500},trailingNode:!1,heading:t?{levels:[1,2,3,4,5,6]}:!1,link:e.links?{autolink:!1,linkOnPaste:!1,openOnClick:!1,defaultProtocol:\"https\",isAllowedUri:d=>e.isAllowedUri(d),HTMLAttributes:{target:null,rel:null,class:null}}:!1,codeBlock:t?{HTMLAttributes:{}}:!1,horizontalRule:t?{}:!1,blockquote:t?{}:!1,...t?{}:{bulletList:!1,orderedList:!1,listItem:!1,listKeymap:!1}}),...r.styleExtensions(),s,...r.extensions(),o,l,a,...e.fidelity?[this.outerSpan(),this.fidelityExtension()]:[],c]}applyFidelity(e){for(let t of Object.values(e.marks)){let r=t.spec.toDOM;if(!r)continue;let i=this.formatting.markNames().includes(t.name);t.spec.toDOM=(s,o)=>this.faithful(r(s,o),s.attrs,i,!0)}for(let t of Object.values(e.nodes)){let r=t.spec.toDOM;r&&(t.spec.toDOM=i=>t.name===\"paragraph\"&&i.attrs[ze]===!0?[hx,{style:\"display:block\"},0]:this.faithful(r(i),i.attrs,!1,!1))}}faithful(e,t,r,i){let s=t[rs],o=t[re];if(!px(s)||typeof o!=\"string\"||!Array.isArray(e))return e;let l=e,a=l[0];if(typeof a!=\"string\")return e;let c=l[1],d=!!c&&typeof c==\"object\"&&!Array.isArray(c),u=d?c:{},f={...s.attrs},h=t[ut];if(r&&this.formats.isFormat(h)){for(let g of this.formats.removedAttributes(h))delete f[g];let m=Object.entries(this.formats.resets(h)).map(([g,y])=>`${g}:${y}`).join(\";\");m&&(f.style=f.style?`${f.style};${m}`:m)}for(let[m,g]of Object.entries(u))m===re||g===null||g===void 0||(typeof g==\"string\"||typeof g==\"number\")&&(f[m]=String(g));return f[Bl]=o,[r?\"span\":i?s.tag:a,f,...l.slice(d?2:1)]}outerSpan(){return W.create({name:nr,priority:1100,excludes:\"\",renderHTML:({HTMLAttributes:e})=>[\"span\",e,0]})}fidelityExtension(){let e=this.formatting,t=new H(\"implicitRichTextParagraphs\");return D.create({name:\"richTextFidelity\",addGlobalAttributes(){return[{types:Uf(e),attributes:{[rs]:{default:null,rendered:!1,parseHTML:()=>null}}},{types:[\"doc\",\"paragraph\",\"heading\"],attributes:{[zt]:{default:null,rendered:!1,parseHTML:()=>null}}},{types:[\"paragraph\"],attributes:{[ze]:{default:!1,rendered:!1,parseHTML:()=>!1}}}]},addProseMirrorPlugins(){return[new O({key:t,appendTransaction:(r,i,s)=>{if(!r.some(c=>c.docChanged))return null;let o=[],l=c=>c?.type.name===\"paragraph\"&&c.attrs[ze]===!0;if(s.doc.descendants((c,d,u,f)=>{if(!u)return!0;if(c.type.name===\"paragraph\")return l(c)&&f>0&&l(u.child(f-1))&&o.push({position:d,node:c,implicit:!1}),!1;if(c.type.name===\"listItem\"&&f>0){let h=c.firstChild;h?.type.name===\"paragraph\"&&!l(h)&&h.attrs[re]===null&&l(u.child(f-1).firstChild)&&o.push({position:d+1,node:h,implicit:!0})}return!0}),!o.length)return null;let a=s.tr;for(let c of o)a.setNodeMarkup(c.position,void 0,{...c.node.attrs,[ze]:c.implicit});return a}})]}})}};var mx={strong:\"bold\",em:\"italic\",u:\"underline\",s:\"strike\",a:\"link\",code:\"code\",sup:\"superscript\",sub:\"subscript\",span:\"preservedSpan\"},qf=Object.freeze({nodes:2e4,depth:64}),gx=/[ \\t\\r\\f]*\\n[ \\t\\n\\r\\f]*/g,yx=/^[ \\t\\n\\r\\f]+/,bx=/[ \\t\\n\\r\\f]+$/,ss=class{constructor(e=new pi){this.rules=e}rules;#e=0;#t={markOrder:[],collapse:!1};build(e,t,r){this.#e=0,this.#t=r;try{if(t)return{type:\"doc\",content:this.blocks(e,0,!0)};let i=this.textblock(e,0);return{type:\"doc\",...i.edge?{attrs:{[zt]:i.edge}}:{},content:i.content}}catch{return}}visit(e){if(++this.#e>qf.nodes||e>qf.depth)throw new RangeError(\"RICH_TEXT_TOO_COMPLEX\")}origin(e){if(!e.origin)return{};let t={tag:e.tag??\"\",attrs:{...e.attributes}};return{[re]:e.origin,[rs]:t}}wraps(e){return(e.children??[]).some(t=>t.type===\"element\"&&t.tag!==\"br\"&&(this.rules.canonicalTag(t.tag??\"\")!==\"span\"||this.wraps(t)))}nest(e,t){let r=this.#t.markOrder,i=r.indexOf(t),s=e.at(-1);if(i<0)throw new Error(\"RICH_TEXT_UNSUPPORTED\");if(!s)return;let o=t===\"preservedSpan\"||t===nr,l=r.indexOf(s.type);if(t===\"code\"||e.some(a=>a.type===\"code\")||i<l||i===l&&!o)throw new Error(\"RICH_TEXT_UNFAITHFUL\")}inline(e,t,r){let i=[];for(let s of e){if(this.visit(r),s.type===\"text\"){let d=this.#t.collapse?(s.text??\"\").replace(gx,\" \"):s.text;d&&i.push({type:\"text\",text:d,...t.length?{marks:[...t]}:{}});continue}let o=s.tag??\"\";if(s.type!==\"element\"||!this.rules.isInline(o))throw new Error(\"RICH_TEXT_UNSUPPORTED\");if(o===\"br\"){i.push({type:\"hardBreak\",...s.origin?{attrs:this.origin(s)}:{},...t.length?{marks:[...t]}:{}});continue}let l=mx[this.rules.canonicalTag(o)];if(!l)throw new Error(\"RICH_TEXT_UNSUPPORTED\");let a=l===\"preservedSpan\"&&this.wraps(s)?nr:l;this.nest(t,a);let c=this.origin(s);if(a===\"link\"){let d=s.attributes?.href;if(!d)throw new Error(\"RICH_TEXT_UNSUPPORTED\");Object.assign(c,{href:d,target:s.attributes?.target??null,rel:s.attributes?.rel??null})}else if(l===\"preservedSpan\"&&!s.origin)throw new Error(\"RICH_TEXT_UNSUPPORTED\");i.push(...this.inline(s.children??[],[...t,{type:a,attrs:c}],r+1))}return i}textblock(e,t){let r=[...e],i=\"\",s=\"\",o=!1,l=r[0];if(this.#t.collapse&&l?.type===\"text\"){let u=l.text??\"\",f=u.replace(yx,\"\");i=u.slice(0,u.length-f.length),f?r[0]={type:\"text\",text:f}:r.shift()}let a=r.at(-1);if(this.#t.collapse&&a?.type===\"text\"){let u=a.text??\"\",f=u.replace(bx,\"\");s=u.slice(f.length),f?r[r.length-1]={type:\"text\",text:f}:r.pop()}let c=r.at(-1);return c?.type===\"element\"&&c.tag===\"br\"&&!c.origin&&r.length>1&&(r.pop(),o=!0),{content:this.inline(r,[],t),...i||s||o?{edge:{lead:i,tail:s,br:o}}:{}}}paragraph(e,t){let r=this.textblock(e,t);return{type:\"paragraph\",attrs:{[ze]:!0,...r.edge?{[zt]:r.edge}:{}},...r.content.length?{content:r.content}:{}}}blocks(e,t,r){let i=[],s=e.some(a=>a.type===\"element\"&&this.rules.isBlock(a.tag??\"\")),o=[],l=()=>{(o.some(c=>c.type!==\"text\"||!!c.text?.trim())||!s&&r)&&i.push(this.paragraph(o,t)),o=[]};for(let a of e)a.type===\"element\"&&this.rules.isBlock(a.tag??\"\")?(o.length&&l(),this.visit(t),i.push(this.block(a,t))):o.push(a);return(o.length||!i.length)&&l(),i}block(e,t){let r=e.tag??\"\",i=this.origin(e),s=e.children??[],o=(a,c,d)=>{let u={...i,...c};return{type:a,...Object.keys(u).length?{attrs:u}:{},...d?.length?{content:d}:{}}},l=/^h([1-6])$/.exec(r);if(r===\"p\"||l){let a=this.textblock(s,t+1);return o(l?\"heading\":\"paragraph\",{...l?{level:Number(l[1])}:{},...a.edge?{[zt]:a.edge}:{}},a.content)}if(r===\"hr\")return o(\"horizontalRule\",{});if(r===\"pre\"){if(s.some(c=>c.type!==\"text\"))throw new Error(\"RICH_TEXT_UNFAITHFUL\");let a=s.map(c=>c.text??\"\").join(\"\");return o(\"codeBlock\",{},a?[{type:\"text\",text:a}]:[])}if(r===\"blockquote\"){let a=this.blocks(s,t+1,!1);return o(\"blockquote\",{},a.length?a:[this.paragraph([],t)])}if(r===\"li\")return this.item(e,t);if(r===\"ul\"||r===\"ol\"){let a=[];for(let d of s)if(!(d.type===\"text\"&&!d.text?.trim())){if(d.type!==\"element\"||d.tag!==\"li\")throw new Error(\"RICH_TEXT_UNSUPPORTED\");this.visit(t+1),a.push(this.item(d,t+1))}if(!a.length)throw new Error(\"RICH_TEXT_UNSUPPORTED\");let c=Number(e.attributes?.start);return o(r===\"ul\"?\"bulletList\":\"orderedList\",r===\"ol\"&&Number.isInteger(c)?{start:c}:{},a)}throw new Error(\"RICH_TEXT_UNSUPPORTED\")}item(e,t){let r=this.blocks(e.children??[],t+1,!1);r[0]?.type!==\"paragraph\"&&r.unshift(this.paragraph([],t));let i=this.origin(e);return{type:\"listItem\",...Object.keys(i).length?{attrs:i}:{},content:r}}};var ls=class{#e=new Map;#t=new Map;constructor(e){for(let t of Object.values(e.nodes))t.spec.toDOM&&this.#e.set(t.name,t.spec.toDOM);for(let t of Object.values(e.marks))t.spec.toDOM&&this.#t.set(t.name,t.spec.toDOM)}export(e){return e.type.inlineContent?`<p>${this.text(e)}</p>`:this.blocks(e.content)}text(e){let t=e.attrs[zt],r=this.inline(e.content);return Kf(t)?`${t.lead}${r}${t.br?\"<br>\":\"\"}${t.tail}`:r}blocks(e){let t=\"\";return e.forEach(r=>{t+=this.node(r)}),t}node(e){let t=()=>e.type.inlineContent?this.text(e):this.blocks(e.content);if(e.type.name===\"paragraph\"&&e.attrs[ze]===!0)return t();let r=this.#e.get(e.type.name);if(!r)throw new Error(\"RICH_TEXT_EXPORT_UNSUPPORTED\");let i=this.compile(r(e));return i.open+(i.hole?t():\"\")+i.close}inline(e){let t=\"\",r=[];for(e.forEach(i=>{let s=0;for(;s<r.length&&s<i.marks.length&&i.marks[s].eq(r[s].mark);)s+=1;for(;r.length>s;)t+=r.pop().close;for(let o of i.marks.slice(s)){let l=this.#t.get(o.type.name);if(!l)throw new Error(\"RICH_TEXT_EXPORT_UNSUPPORTED\");let a=this.compile(l(o,!0));t+=a.open,r.push({mark:o,close:a.close})}t+=i.isText?Dt(i.text??\"\"):this.node(i)});r.length;)t+=r.pop().close;return t}compile(e){if(typeof e==\"string\")return{open:Dt(e),close:\"\",hole:!1};if(!Array.isArray(e))throw new Error(\"RICH_TEXT_EXPORT_UNSUPPORTED\");let t=e,r=t[0];if(typeof r!=\"string\"||!/^[a-z][a-z0-9]*$/.test(r))throw new Error(\"RICH_TEXT_EXPORT_UNSUPPORTED\");let i=t[1],s=!!i&&typeof i==\"object\"&&!Array.isArray(i),o=\"\";if(s){for(let[d,u]of Object.entries(i))if(!(u==null||u===!1)){if(!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(d))throw new Error(\"RICH_TEXT_EXPORT_UNSUPPORTED\");o+=` ${d}=\"${Dt(String(u))}\"`}}let l=`<${r}${o}>`,a=\"\",c=!1;for(let d of t.slice(s?2:1)){if(d===0){c=!0;continue}let u=this.compile(d);c?a+=u.open+u.close:u.hole?(l+=u.open,a=u.close+a,c=!0):l+=u.open+u.close}return{open:l,close:r===\"br\"||r===\"hr\"?a:`${a}</${r}>`,hole:c}}};var Jf=\"\\xA0\",xx=[\"color\",\"font-family\",\"font-size\",\"font-weight\",\"font-style\",\"letter-spacing\",\"text-transform\"],kx=[\"background-color\",\"border-top-width\",\"border-right-width\",\"border-bottom-width\",\"border-left-width\",\"padding-top\",\"padding-right\",\"padding-bottom\",\"padding-left\"],Sx=[\"line-break\",\"overflow-wrap\",\"word-break\",\"-webkit-line-break\",\"-webkit-nbsp-mode\"];function Xf(n){if(n.nodeType===Node.TEXT_NODE)return{type:\"text\",text:n.nodeValue??\"\"};if(n.nodeType!==Node.ELEMENT_NODE)return{type:\"other\"};let e=n;if(e.namespaceURI!==\"http://www.w3.org/1999/xhtml\")return{type:\"other\"};let t={};for(let i of e.attributes)i.name.startsWith(_l)||(t[i.name]=i.value);let r=e.getAttribute(Bl);return{type:\"element\",tag:e.localName,...r?{origin:r}:{},attributes:t,children:[...e.childNodes].map(Xf)}}function wx(n,e,t){let r=new DOMParser().parseFromString(n,\"text/html\"),i=new Set([\"strong\",\"b\",\"em\",\"i\",\"u\",\"s\",\"sup\",\"sub\",\"code\"]),s=new Set([\"p\",\"ul\",\"ol\",\"li\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"]),o=new Set([...s,\"div\",\"tr\",\"blockquote\",\"pre\",\"table\"]),l=new Set([\"script\",\"style\",\"template\",\"title\",\"head\",\"meta\",\"link\"]),a=0,c=(u,f)=>{if(++a>2e4||f>64)return\"\";if(u.nodeType===Node.TEXT_NODE)return Dt(u.nodeValue??\"\");if(u.nodeType!==Node.ELEMENT_NODE)return\"\";let h=u,p=h.localName;if(h.namespaceURI!==\"http://www.w3.org/1999/xhtml\"||l.has(p))return\"\";let m=[...h.childNodes].map(g=>c(g,f+1)).join(\"\");if(p===\"br\")return\"<br>\";if(i.has(p))return m?`<${p}>${m}</${p}>`:\"\";if(p===\"a\"&&t){let g=h.getAttribute(\"href\")??\"\";return/^(?:https?:|mailto:|tel:)/i.test(g)&&g.length<=tt.commandValue?`<a href=\"${Dt(g)}\">${m}</a>`:m}return e&&s.has(p)?`<${p}>${m}</${p}>`:!e&&o.has(p)&&m?`${m}<br>`:m},d=[...r.body.childNodes].map(u=>c(u,0)).join(\"\");return e?d:d.replace(/(?:<br>)+$/,\"\")}var rr=class n{constructor(e,t,r,i,s,o){this.element=e;this.#e=t,this.#t=r,this.#n=i,this.#o=s,this.#a=o,this.#s=!t.state.doc.textContent.includes(Jf),this.#i=this.exportHtml()}element;#e;#t;#n;#r=new hi;#i;#s;#o;#a;#l=!1;static mount(e,t,r){let i=new is,s=new fi(i.formatting,!1),o=!1,l=(k,N)=>((N===\"undo\"?k.commands.undo():k.commands.redo())||r.history(N),!0),a=D.create({name:\"canvasTextKeys\",priority:1e3,addKeyboardShortcuts(){let k=$=>()=>(s.run(this.editor,$),!0),N=()=>(r.finish(),!0);return{\"Mod-b\":k(\"bold\"),\"Mod-i\":k(\"italic\"),\"Mod-u\":k(\"underline\"),\"Mod-Shift-x\":k(\"strike\"),\"Mod-z\":()=>l(this.editor,\"undo\"),\"Mod-Shift-z\":()=>l(this.editor,\"redo\"),\"Mod-y\":()=>l(this.editor,\"redo\"),\"Mod-Enter\":N,\"Alt-F10\":()=>(r.toolbar(),!0),Escape:N,Enter:()=>!t.blocks||this.editor.state.selection.$from.parent.attrs[ze]===!0?this.editor.commands.setHardBreak():!1}}}),c=[...i.extensions({content:t.blocks?\"block+\":\"inline*\",links:t.links,isAllowedUri:k=>!/^\\s*(?:javascript|data|vbscript):/i.test(k),fidelity:!0}),a],d=getComputedStyle(e),u=new ss().build([...e.childNodes].map(Xf),t.blocks,{markOrder:Object.keys(su(c).marks),collapse:!/pre|break-spaces/.test(d.whiteSpace)});if(!u)return{refused:0};let f;try{f=new Eu({element:null,injectCSS:!1,extensions:c,content:u,enableContentCheck:!0,onContentError:()=>{o=!0},editorProps:{transformPastedHTML:k=>wx(k,t.blocks,t.links),handleClick:(k,N,$)=>($.target instanceof Element&&$.target.closest(\"a\")&&$.preventDefault(),!1)}})}catch{return{refused:0}}if(o)return f.destroy(),{refused:0};let h=new ls(f.schema);i.applyFidelity(f.schema);let p=Sx.map(k=>[k,d.getPropertyValue(k)]).filter(([,k])=>k!==\"\"),m=n.appearance(e),g=[...e.childNodes].map(k=>k.cloneNode(!0)),y=[...e.attributes].map(k=>[k.name,k.value]);try{f.mount({mount:e})}catch{return f.destroy(),e.replaceChildren(...g),{refused:0}}for(let[k,N]of p)e.style.setProperty(k,N,\"important\");let b=new n(e,f,h,s,g,y),w=n.difference(m,n.appearance(e));return w?(b.destroy(\"restore\"),{refused:w}):(f.on(\"transaction\",({transaction:k})=>r.changed(k.docChanged)),b)}static appearance(e){let t=[],r=document.createRange(),i=c=>c===\"transparent\"||/^rgba\\(.*,\\s*0\\)$/.test(c),s=c=>{let d=getComputedStyle(c),u=[];for(let f=c;f;f=f.parentElement){let h=f===c?d:getComputedStyle(f);if(h.textDecorationLine!==\"none\"&&u.push(`${h.textDecorationLine}/${h.textDecorationColor}`),f!==e&&!i(h.backgroundColor)&&u.push(h.backgroundColor),f===e)break}return[...xx.map(f=>d.getPropertyValue(f)),d.display.startsWith(\"inline\")?d.verticalAlign:\"\",...u].join(\"|\")},o=(c,d,u)=>{let f=t.at(-1);u&&f?.signature===c&&Math.abs(f.rect[1]-d.top)<.5&&Math.abs(f.rect[3]-d.bottom)<.5&&Math.abs(f.rect[2]-d.left)<.5?f.rect[2]=d.right:t.push({signature:c,rect:[d.left,d.top,d.right,d.bottom]})},l=e.getBoundingClientRect();o(\"root\",l,!1);let a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT);for(let c=a.nextNode();c;c=a.nextNode()){if(c instanceof Element){let f=getComputedStyle(c),h=kx.map(m=>f.getPropertyValue(m));if(!i(h[0]??\"\")||h.slice(1).some(m=>parseFloat(m)>0))for(let m of c.getClientRects())o(`box|${h.join(\"|\")}`,m,!1);continue}let d=c.parentElement;if(!d||!c.nodeValue)continue;let u=s(d);r.selectNodeContents(c);for(let f of r.getClientRects())f.width>=.5&&o(u,f,!0)}return t}static difference(e,t){let r=Math.abs(e.length-t.length);for(let i=0;i<Math.min(e.length,t.length);i+=1){let s=e[i],o=t[i];(s.signature!==o.signature||s.rect.some((l,a)=>Math.abs(l-o.rect[a])>.5))&&(r+=1)}return r}get dirty(){return!this.#l&&this.exportHtml()!==this.#i}exportHtml(){let e=this.#t.export(this.#e.state.doc);return this.#s?e.replaceAll(Jf,\" \"):e}contains(e){return e instanceof Node&&this.element.contains(e)}setEditable(e){this.#l||this.#e.setEditable(e,!1)}focus(e){if(this.#l)return;let t=this.#e.view,r=t.state,i=r.selection;if(e===\"end\")i=T.atEnd(r.doc);else if(e!==\"keep\"){let s=t.posAtCoords({left:e.x,top:e.y});i=s?T.near(r.doc.resolve(s.pos)):T.atEnd(r.doc)}t.focus(),i.eq(t.state.selection)||t.dispatch(t.state.tr.setSelection(i))}run(e,t){return this.#l?!1:this.#n.run(this.#e,e,t)}history(e){return this.#l?!1:e===\"undo\"?this.#e.commands.undo():this.#e.commands.redo()}state(){let e=this.#e.view,t=(r,i)=>{let s;try{s=e.domAtPos(Math.min(i+1,e.state.doc.content.size)).node}catch{return{}}let o=s instanceof Element?s:s.parentElement;if(!o||!this.element.contains(o))return{};let l=getComputedStyle(o),a=l.fontFamily.split(\",\")[0]?.trim().replace(/^[\"']|[\"']$/g,\"\"),c=l.backgroundColor;return{color:l.color,.../^rgba\\(.*,\\s*0\\)$|^transparent$/.test(c)?{}:{backgroundColor:c},...a?{fontFamily:a}:{},fontSize:l.fontSize,lineHeight:l.lineHeight}};return this.#r.read(this.#e,!0,void 0,t)}selectionRect(){let e=this.#e.view;try{let{from:t,to:r}=e.state.selection,i=e.coordsAtPos(t),s=e.coordsAtPos(r),o=Math.min(i.left,s.left),l=Math.min(i.top,s.top);return{x:o,y:l,width:Math.max(i.right,s.right)-o,height:Math.max(i.bottom,s.bottom)-l}}catch{let t=this.element.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height}}}destroy(e){if(this.#l)return;this.#l=!0;let t=e===\"keep\"?[...this.element.childNodes].map(i=>i.cloneNode(!0)):[],r=this.element.getAttribute($e);this.#e.destroy();for(let i of[...this.element.attributes])this.element.removeAttribute(i.name);for(let[i,s]of this.#a)this.element.setAttribute(i,s);r===null?this.element.removeAttribute($e):this.element.setAttribute($e,r),this.element.replaceChildren(...e===\"keep\"?t:this.#o)}};var vx=5e3,as=class{constructor(e,t){this.ctx=e;this.highlight=t}ctx;highlight;#e;#t=new Set;get id(){return this.#e?.id}get active(){return!!this.#e}get awaiting(){return!!this.#e?.awaiting}get dirty(){return!!this.#e?.editor.dirty}contains(e){return!!this.#e&&this.#e.editor.contains(e)}element(){return this.#e?this.ctx.marked.get(this.#e.id):void 0}editable(e){return!this.ctx.readOnly&&!!e&&this.ctx.regions.get(e)?.editable===!0&&this.ctx.marked.has(e)&&!this.#t.has(e)}focus(e){this.#e&&!this.#e.awaiting&&this.#e.editor.focus(e)}reclaim(){let e=this.#e;e&&!e.awaiting&&!this.ctx.readOnly&&!this.contains(document.activeElement)&&e.editor.focus(\"keep\")}setEditable(){this.#e?.editor.setEditable(!this.ctx.readOnly&&!this.#e.awaiting)}report(){let e=this.#e;if(!e||this.ctx.disposed)return;let t=e.editor.state();this.ctx.channel.telemetry(\"text-state\",{nodeId:e.id,marks:t.marks,styles:t.styles,link:t.link,href:t.href,empty:t.empty,canUndo:t.canUndo,canRedo:t.canRedo,rect:e.editor.selectionRect()})}#n(e){e.timer&&clearTimeout(e.timer),delete e.timer,e.awaiting=!1}resume(e){let t=this.#e;!t||t.id!==e||!t.awaiting||(this.#n(t),this.ctx.channel.defer(void 0),t.editor.setEditable(!0),this.report())}reject(e){let t=this.#e;!t||t.id!==e||(this.#n(t),this.ctx.channel.cancelDraft(),this.ctx.channel.defer(void 0),t.editor.destroy(\"restore\"),this.#e=void 0,this.ctx.schedule())}end(e,t){let r=this.#e;if(!r){t?.();return}if(!this.ctx.readOnly){if(r.awaiting){t&&this.ctx.channel.defer(t);return}if(this.ctx.channel.cancelDraft(),e===\"cancel\"||!r.editor.dirty){let i=this.ctx.textElement(r.id),s=document.hasFocus()&&document.activeElement===i;r.editor.destroy(\"restore\"),this.#e=void 0,this.ctx.send(\"text-cancel\",{nodeId:r.id}),s&&!t&&i?.focus({preventScroll:!0}),this.ctx.schedule(),t?.();return}r.awaiting=!0,r.editor.setEditable(!1),this.ctx.channel.defer(t),this.ctx.send(\"text-commit\",{nodeId:r.id,html:r.editor.exportHtml()}),r.timer=setTimeout(()=>this.resume(r.id),vx)}}documentHistory(e){e===\"redo\"&&this.#e?.editor.dirty||this.end(\"finish\",()=>this.ctx.send(\"history\",{direction:e}))}history(e){this.#e?.editor.history(e)||this.documentHistory(e)}run(e,t){let r=this.#e;!r||r.awaiting||(e===\"finish\"||e===\"cancel\"?this.end(e):e===\"undo\"||e===\"redo\"?this.history(e):r.editor.run(e,t),this.#e===r&&this.report())}begin(e,t){if(!this.editable(e))return!1;if(this.#e?.id===e)return this.focus(t),!0;if(this.#e)return this.end(\"finish\",()=>{this.begin(e,t)||this.ctx.select(e)}),!0;let r=this.ctx.textElement(e),i=this.ctx.regions.get(e);if(!r||!i)return!1;let s=rr.mount(r,{blocks:i.blocks===!0,links:i.links!==!1},{changed:o=>{let l=this.#e;!l||l.awaiting||(o&&this.ctx.channel.draft(()=>this.#e===l&&!l.awaiting?{nodeId:l.id,html:l.editor.exportHtml()}:void 0),this.report(),this.ctx.schedule())},finish:()=>this.end(\"finish\"),history:o=>this.documentHistory(o),toolbar:()=>this.ctx.send(\"text-toolbar\",{nodeId:e})});return s instanceof rr?(this.#e={id:e,editor:s,awaiting:!1},this.highlight(e),this.ctx.send(\"text-begin\",{nodeId:e}),this.ctx.cfg.diagnostics&&this.ctx.send(\"text-fidelity\",{changed:0}),s.focus(t),this.report(),!0):(this.#t.add(e),this.ctx.send(\"text-unsupported\",{nodeId:e}),this.ctx.cfg.diagnostics&&this.ctx.send(\"text-fidelity\",{changed:s.refused}),!1)}supersede(){let e=this.#e;if(!e)return;let t=!e.awaiting&&!e.editor.dirty?e.id:void 0;return this.#n(e),this.ctx.channel.cancelDraft(),e.editor.destroy(\"keep\"),this.#e=void 0,t}forgetRefusals(){this.#t.clear()}};var cs=class{constructor(e){this.ctx=e;let t=e.signal;window.addEventListener(\"scroll\",()=>{let r=this.#t;r&&(scrollX!==r.actualEarly.x||scrollY!==r.actualEarly.y)&&this.cancelDeferred(),e.schedule()},{passive:!0,capture:!0,signal:t});for(let r of[\"wheel\",\"touchstart\",\"pointerdown\"])window.addEventListener(r,()=>this.cancelDeferred(),{passive:!0,capture:!0,signal:t});window.addEventListener(\"resize\",()=>e.schedule(),{passive:!0,signal:t}),window.addEventListener(\"load\",()=>this.#i(),{signal:t});for(let r of[\"load\",\"error\"])document.addEventListener(r,()=>this.#i(),{capture:!0,signal:t})}ctx;#e;#t;cancelDeferred(){this.#t=void 0}request(e,t){typeof e!=\"number\"||typeof t!=\"number\"||!Number.isFinite(e)||!Number.isFinite(t)||e<0||t<0||e>1e6||t>1e6||(this.#e={x:e,y:t},this.#n())}#n(){let e=this.#e;if(!e)return;this.#e=void 0,this.cancelDeferred(),scrollTo(e.x,e.y);let t={x:scrollX,y:scrollY};this.#r()&&(e.x!==t.x||e.y!==t.y)&&(this.#t={desired:e,actualEarly:t}),this.ctx.send(\"viewport-restored\",{viewport:t}),this.ctx.schedule()}#r(){return document.readyState!==\"complete\"||[...document.images].some(e=>!e.complete)}#i(){let e=this.#t;!e||this.#r()||(this.cancelDeferred(),!(scrollX!==e.actualEarly.x||scrollY!==e.actualEarly.y)&&(scrollTo(e.desired.x,e.desired.y),this.ctx.send(\"viewport-restored\",{viewport:{x:scrollX,y:scrollY}}),this.ctx.schedule()))}};var Tx=/\\{\\{\\s*([a-zA-Z0-9._]{1,200})\\s*\\}\\}/g,zl=\"ve-variable\";var ds=class{constructor(e,t){this.ctx=e;this.#e=new Map(Object.entries(e.cfg.variables??{})),this.#t=t.node(\"div\",\"variable\"),this.#t.hidden=!0,t.shadow.append(this.#t);let r=this.registry();if(!r||!this.constructorOf())return;try{let s=new CSSStyleSheet;s.replaceSync(`::highlight(${zl}){background-color:rgba(13,148,136,.16);color:#0f766e;text-decoration:underline dotted 1px}`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,s]}catch{return}let i=new MutationObserver(()=>this.schedule());i.observe(document.body,{subtree:!0,childList:!0,characterData:!0}),e.signal.addEventListener(\"abort\",()=>{i.disconnect(),cancelAnimationFrame(this.#r),cancelAnimationFrame(this.#s),r.delete(zl)}),document.addEventListener(\"pointermove\",s=>{this.#i={x:s.clientX,y:s.clientY},this.#s||(this.#s=requestAnimationFrame(()=>{this.#s=0,this.hover()}))},{signal:e.signal,passive:!0}),document.addEventListener(\"scroll\",()=>this.hide(),{signal:e.signal,capture:!0,passive:!0}),this.scan()}ctx;#e;#t;#n=[];#r=0;#i;#s=0;registry(){return globalThis.CSS?.highlights}constructorOf(){return globalThis.Highlight}schedule(){this.#r||(this.#r=requestAnimationFrame(()=>{this.#r=0,this.scan()}))}scan(){let e=this.registry(),t=this.constructorOf();if(!e||!t)return;let r=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{acceptNode:o=>o.parentElement?.closest(\"visual-editor-controls,script,style\")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),i=[],s=0;for(let o=r.nextNode();o;o=r.nextNode()){if(++s>2e4)return;let l=o.nodeValue??\"\";if(l.includes(\"{{\"))for(let a of l.matchAll(Tx)){let c=document.createRange();c.setStart(o,a.index),c.setEnd(o,a.index+a[0].length),i.push({range:c,key:a[1]??\"\"})}}this.#n=i,e.set(zl,new t(...i.map(o=>o.range))),this.hover()}hover(){let e=this.#i;if(!e||!this.#n.length)return this.hide();for(let{range:t,key:r}of this.#n)for(let i of t.getClientRects())if(!(e.x<i.left||e.x>i.right||e.y<i.top||e.y>i.bottom)){this.#t.textContent=this.#e.get(r)??r,this.#t.style.left=`${Math.max(4,i.left)}px`,this.#t.style.top=`${Math.max(4,i.top-22)}px`,this.#t.hidden=!1;return}this.hide()}hide(){this.#t.hidden=!0}};var Ex=/^[A-Za-z0-9_-]{16,64}$/;function Hl(n){if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",()=>Hl(n),{once:!0});return}let e=new br(n),t=new cr(n,e.element),r=t.signal,i=()=>o.id,s=new kr(t,e,i),o=new as(t,y=>s.highlight(y)),l=new fr(t,e),a=new ir(t,e,{edit:()=>o.begin(t.selectedId,\"end\"),grab:y=>c.grab(y),editingId:i}),c=new or(t,l,o,a.handle),d=new mr(t,e);new hr(t,e,c);let u=new cs(t);new xr(t,o,c),new pr(t),new ds(t,e),new yr(t,o,c,u,d);let f=new ur(t,{text:o,drag:c,targets:l,selection:s,images:d}),p={highlight:y=>{y.nodeId!==void 0&&typeof y.nodeId!=\"string\"||(c.sourceId&&y.nodeId!==c.sourceId&&c.cancel(),y.nodeId!==t.selectedId&&d.flushKeys(),s.highlight(y.nodeId))},targets:y=>l.setMovement(y.sourceId,y.targets),\"insertion-targets\":y=>l.setInsertion(y.targets),hover:y=>{(y.nodeId===void 0||typeof y.nodeId==\"string\")&&s.hover(y.nodeId)},measure:()=>t.schedule(),theme:y=>e.theme(y.theme),\"text-focus\":()=>o.focus(\"keep\"),\"text-open\":y=>{let b=y.nodeId;typeof b==\"string\"&&o.end(\"finish\",()=>o.begin(b,\"end\"))},\"text-command\":y=>{typeof y.command!=\"string\"||!$l.includes(y.command)||!(y.value===void 0||y.value===null||typeof y.value==\"string\"&&y.value.length<=tt.commandValue)||o.run(y.command,y.value??null)},\"text-rejected\":y=>{typeof y.nodeId!=\"string\"||o.id!==y.nodeId||(y.reason===\"begin\"?o.reject(y.nodeId):o.resume(y.nodeId))},focus:y=>{typeof y.nodeId==\"string\"&&t.marked.get(y.nodeId)?.focus({preventScroll:!0})},viewport:y=>u.request(y.x,y.y),insertion:y=>c.insertion(y.phase,y.x,y.y,y.file)};window.addEventListener(\"message\",y=>{if(y.source!==parent||!y.data||typeof y.data!=\"object\")return;let b=y.data;if(b.type===\"hello\"&&b.nonce===void 0){typeof b.challenge==\"string\"&&Ex.test(b.challenge)&&t.send(\"ready\",{challenge:b.challenge});return}if(!(b.nonce!==n.nonce||typeof b.type!=\"string\")){if(b.type===\"document\"){f.apply(b);return}b.revision===t.channel.revision&&Object.hasOwn(p,b.type)&&p[b.type]?.(b)}},{signal:r});let m=()=>{u.cancelDeferred(),c.interrupt(),t.channel.flushDraft()};window.addEventListener(\"blur\",m,{signal:r}),document.addEventListener(\"visibilitychange\",()=>{document.visibilityState===\"hidden\"&&m()},{signal:r}),window.addEventListener(\"focus\",()=>o.reclaim(),{signal:r});let g=new ResizeObserver(()=>t.schedule());g.observe(document.body),window.addEventListener(\"pagehide\",()=>{m(),g.disconnect(),t.dispose()},{once:!0}),t.send(\"ready\",{}),t.schedule()}Object.defineProperty(globalThis,\"__lyadsCanvas\",{value:Hl});})();", Re = class {
1085
+ source(e) {
1086
+ return `${Le};__lyadsCanvas(${JSON.stringify({
1087
+ ...e,
1088
+ icons: Ie
1089
+ }).replaceAll("<", "\\u003c").replaceAll("\u2028", "\\u2028").replaceAll("\u2029", "\\u2029")});`;
1090
+ }
1091
+ }, ze = /^[a-zA-Z0-9._]{1,200}$/;
1092
+ function Be(e) {
1093
+ if (!e) return;
1094
+ let t = Object.entries(e).filter(([e, t]) => ze.test(e) && typeof t == "string" && t.length <= 200);
1095
+ return t.length ? Object.fromEntries(t.slice(0, 500)) : void 0;
1096
+ }
1097
+ function Ve(e, t) {
1098
+ return Object.freeze({
1099
+ id: t.id,
1100
+ revision: t.revision,
1101
+ renderer: e,
1102
+ build: (n, r) => e.build(t, n, r),
1103
+ update: (n, r, i) => e.update(t, n, r, i)
1104
+ });
1105
+ }
1106
+ var K = p(t(o(), f(80), r((e) => z(e)))), He = _({
1107
+ accent: K,
1108
+ contrast: K,
1109
+ surface: K,
1110
+ text: K,
1111
+ border: K,
1112
+ radius: p(t(u(), b(), s(0), m(24)))
1113
+ }), Ue = `[${I}]:focus-visible,[${Ce}="true"]{outline:2px solid var(--visual-editor-accent,#0d9488);outline-offset:3px}[${I}]{cursor:pointer}[${L}]{cursor:text}`, We = "PREVIEW_FRAMESET";
1114
+ function q(e) {
1115
+ let t = e?.trim();
1116
+ if (!(!t || t.length > 100)) try {
1117
+ return new Intl.Locale(t).toString();
1118
+ } catch {
1119
+ return;
1120
+ }
1121
+ }
1122
+ var Ge = _({
1123
+ title: p(t(o(), l(), a(1), f(200))),
1124
+ lang: p(t(o(), l(), a(1), f(100), r((e) => q(e) !== void 0)))
1125
+ }), Ke = class {
1126
+ assembler;
1127
+ #e = new Re();
1128
+ constructor(e) {
1129
+ this.assembler = e;
1130
+ }
1131
+ open(e, t, n, r) {
1132
+ if (n.length > 200) throw Error("PREVIEW_LABEL_LIMIT");
1133
+ let i = h(Ge, {
1134
+ ...r.title === void 0 ? {} : { title: r.title },
1135
+ ...r.lang === void 0 ? {} : { lang: r.lang }
1136
+ }), a = q(i.lang) ?? "und", o = r.labels ?? this.uniformLabels(n), s = r.theme ? h(He, r.theme) : void 0;
1137
+ if (Object.values(o).some((e) => typeof e != "string" || e.length > 200)) throw Error("PREVIEW_LABEL_LIMIT");
1138
+ let c = te(this.assembler.build(e, t, !0)), { root: l, head: u, body: d, frameset: f } = H(c);
1139
+ if (l && u && !d && f) throw Error(We);
1140
+ if (!l || !u || !d) throw Error("INVALID_PREVIEW_DOCUMENT");
1141
+ let p = q(l.attrs.find((e) => e.name === "lang")?.value);
1142
+ l.attrs = l.attrs.filter((e) => e.name !== "lang"), l.attrs.push({
1143
+ name: "lang",
1144
+ value: p ?? a
1145
+ });
1146
+ let m = u.childNodes.find((e) => "tagName" in e && e.tagName === "title");
1147
+ if (!m?.childNodes.flatMap((e) => "value" in e && e.nodeName === "#text" ? [e.value] : []).join("").trim()) {
1148
+ let e = m ?? v.createElement("title", x.HTML, []);
1149
+ e.childNodes = [];
1150
+ let t = i.title ?? n.trim();
1151
+ if (!t) throw Error("PREVIEW_TITLE_REQUIRED");
1152
+ v.insertText(e, t), m || v.appendChild(u, e);
1153
+ }
1154
+ return {
1155
+ parsed: c,
1156
+ head: u,
1157
+ body: d,
1158
+ hostLanguage: a,
1159
+ labels: o,
1160
+ theme: s
1161
+ };
1162
+ }
1163
+ close(e, t, n) {
1164
+ let { parsed: r, head: i, body: a } = e, o = i.childNodes.find((e) => "tagName" in e && e.tagName === "meta" && e.attrs.some((e) => e.name === "http-equiv" && e.value === "Content-Security-Policy"))?.attrs.find((e) => e.name === "content");
1165
+ if (!o) throw Error("MISSING_PREVIEW_CSP");
1166
+ let s = v.createElement("style", x.HTML, []);
1167
+ v.insertText(s, Ue), v.appendChild(i, s);
1168
+ let c = "'none'";
1169
+ if (t.executable) {
1170
+ let r = Be(n.variables), i = r ? { variables: r } : {}, o = this.#e.source({
1171
+ nonce: t.token,
1172
+ revision: t.revision,
1173
+ regions: t.regions,
1174
+ readOnly: n.readOnly ?? !1,
1175
+ labels: e.labels,
1176
+ ...e.theme ? { theme: e.theme } : {},
1177
+ lang: e.hostLanguage,
1178
+ fonts: ne,
1179
+ ...n.diagnostics ? { diagnostics: !0 } : {},
1180
+ ...n.menu === !1 ? { menu: !1 } : {},
1181
+ ...i
1182
+ }), s = v.createElement("script", x.HTML, []);
1183
+ v.insertText(s, o), v.appendChild(a, s), c = `'sha256-${Fe(o)}'`;
1184
+ }
1185
+ o.value += `; script-src ${c}`;
1186
+ let l = oe(r);
1187
+ if (new TextEncoder().encode(l).length > 8e6) throw Error("PREVIEW_OUTPUT_LIMIT");
1188
+ return Object.freeze({
1189
+ html: l,
1190
+ nonce: t.token,
1191
+ revision: t.revision,
1192
+ nodeIds: Object.freeze([...t.nodeIds]),
1193
+ regions: Object.freeze([...t.regions]),
1194
+ readOnly: n.readOnly ?? !1,
1195
+ diagnostics: n.diagnostics ?? !1
1196
+ });
1197
+ }
1198
+ uniformLabels(e) {
1199
+ return Object.freeze({
1200
+ edit: e,
1201
+ move: e,
1202
+ up: e,
1203
+ down: e,
1204
+ duplicate: e,
1205
+ remove: e,
1206
+ before: e,
1207
+ after: e,
1208
+ inside: e,
1209
+ parent: e,
1210
+ html: e,
1211
+ image: e,
1212
+ add: e,
1213
+ resize: e,
1214
+ resizeHint: e,
1215
+ replace: e,
1216
+ embed: e
1217
+ });
1218
+ }
1219
+ }, qe = class {
1220
+ frame;
1221
+ identifiers;
1222
+ constructor(e, t) {
1223
+ this.frame = e, this.identifiers = t;
1224
+ }
1225
+ build(e, t, n = {}) {
1226
+ return this.render(e, t, n, this.identifiers.next(), !0);
1227
+ }
1228
+ update(e, t, n, r = {}) {
1229
+ if (!/^[A-Za-z0-9_-]{16,100}$/.test(n.nonce)) throw Error("INVALID_PREVIEW_NONCE");
1230
+ return this.render(e, t, r, n.nonce, !1);
1231
+ }
1232
+ render(e, t, n, r, i) {
1233
+ let a = this.frame.open(e.source, e.kind, t, n), o = new Map(e.regions.map((e) => [e.id, e]));
1234
+ if (o.size !== e.regions.length) throw Error("PREVIEW_MAPPING_FAILED");
1235
+ let { nodes: s, edits: c } = this.keepMarks(a, o, t), l = (e) => {
1236
+ let t = e;
1237
+ for (; t !== null && !s.has(t);) t = o.get(t)?.parentId ?? null;
1238
+ return t;
1239
+ }, u = e.regions.filter((e) => s.has(e.id)).map((e) => Object.freeze({
1240
+ ...e,
1241
+ parentId: l(e.parentId),
1242
+ editable: e.editable && c.has(e.id)
1243
+ }));
1244
+ return this.frame.close(a, {
1245
+ revision: e.revision,
1246
+ regions: u,
1247
+ nodeIds: u.map((e) => e.id),
1248
+ token: r,
1249
+ executable: i
1250
+ }, n);
1251
+ }
1252
+ keepMarks(e, t, n) {
1253
+ W(e.head);
1254
+ let r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), a = (e, o) => {
1255
+ for (let s of U(e)) {
1256
+ if (!("tagName" in s)) continue;
1257
+ let e = s;
1258
+ if (e.tagName === "template") {
1259
+ W(e);
1260
+ continue;
1261
+ }
1262
+ let c = this.attribute(e, I), l = this.attribute(e, L);
1263
+ e.attrs = e.attrs.filter((e) => !R(e.name));
1264
+ let u = o;
1265
+ c !== void 0 && t.has(c) && !r.has(c) && (r.add(c), u = [...o, c], e.attrs = e.attrs.filter((e) => e.name !== "tabindex"), e.attrs.push({
1266
+ name: I,
1267
+ value: c
1268
+ }, {
1269
+ name: "tabindex",
1270
+ value: "0"
1271
+ }), e.attrs.some((e) => e.name === "title") || e.attrs.push({
1272
+ name: "title",
1273
+ value: n
1274
+ })), l !== void 0 && t.get(l)?.editable && !i.has(l) && u.at(-1) === l && (i.add(l), e.attrs.push({
1275
+ name: L,
1276
+ value: l
1277
+ })), a(e, u);
1278
+ }
1279
+ };
1280
+ return a(e.body, []), {
1281
+ nodes: r,
1282
+ edits: i
1283
+ };
1284
+ }
1285
+ attribute(e, t) {
1286
+ return e.attrs.find((e) => e.name === t)?.value;
1287
+ }
1288
+ }, Je = class {
1289
+ codec;
1290
+ policy;
1291
+ assembler;
1292
+ #e = new ae();
1293
+ #t;
1294
+ #n;
1295
+ #r;
1296
+ #i = new Me();
1297
+ #a = new Ne();
1298
+ blocks;
1299
+ constructor(e, t, n, r = {}) {
1300
+ this.codec = e, this.policy = t, this.assembler = n, this.#t = r.catalog ?? new y(), this.#n = r.layout ?? new A(this.#t), this.#r = new Ke(n), this.blocks = new qe(this.#r, this.#e);
1301
+ }
1302
+ elementSource(e, t) {
1303
+ return this.#a.read(e, this.codec.export(e), t);
1304
+ }
1305
+ replaceElementSource(e, t, n) {
1306
+ return this.#a.replace(e, this.codec.export(e), t, n);
1307
+ }
1308
+ build(e, t, n = {}) {
1309
+ return this.render(e, t, n, this.#e.next(), !0);
1310
+ }
1311
+ update(e, t, n, r = {}) {
1312
+ if (!/^[A-Za-z0-9_-]{16,100}$/.test(n.nonce)) throw Error("INVALID_PREVIEW_NONCE");
1313
+ return this.render(e, t, r, n.nonce, !1);
1314
+ }
1315
+ render(e, t, n, r, i) {
1316
+ this.policy.assertSafe(e);
1317
+ let a = /* @__PURE__ */ new Set(), o = (e) => {
1318
+ for (let t of e.children ?? []) t.type === "element" && (this.#i.needsOrigin(t.tag ?? "", Object.keys(t.attrs ?? {})) && a.add(t.id), o(t));
1319
+ }, s = this.#n.selectionRegions(e).map((e) => {
1320
+ e.editable && o(e.node);
1321
+ let t = n.describe?.(e)?.trim().slice(0, 80);
1322
+ return Object.freeze({
1323
+ ...t ? { label: t } : {},
1324
+ ...e.node.tag === "img" ? { media: "image" } : {},
1325
+ id: e.id,
1326
+ parentId: e.parentId,
1327
+ editable: e.editable,
1328
+ container: e.container,
1329
+ ...e.editable ? {
1330
+ blocks: this.#t.richTextAllowsBlocks(e.node),
1331
+ links: e.kind !== "button"
1332
+ } : {}
1333
+ });
1334
+ }), c = new Set(s.flatMap((e) => e.editable ? [e.id] : [])), l = new Set(s.map((e) => e.id)), u = [], d = G(e.nodes), f = this.codec.export(e), p = this.#r.open(f, e.kind, t, n), m = p.parsed;
1335
+ if (Oe(m, d, {
1336
+ element: (e) => {
1337
+ e.attrs.some((e) => R(e.name)) && (e.attrs = e.attrs.filter((e) => !R(e.name))), e.tagName === "template" && "content" in e && W(e.content);
1338
+ },
1339
+ match: (e, n, r) => {
1340
+ if (a.has(n.id) && e.attrs.push({
1341
+ name: "data-visual-editor-text-origin",
1342
+ value: n.id
1343
+ }), c.has(n.id) && e.attrs.push({
1344
+ name: "data-visual-editor-edit-node",
1345
+ value: n.id
1346
+ }), r) for (let t of e.childNodes) "tagName" in t && W(t);
1347
+ l.has(n.id) && (u.push(n.id), e.attrs = e.attrs.filter((e) => e.name !== "tabindex"), e.attrs.push({
1348
+ name: "data-visual-editor-node",
1349
+ value: n.id
1350
+ }, {
1351
+ name: "tabindex",
1352
+ value: "0"
1353
+ }), e.attrs.some((e) => e.name === "title") || e.attrs.push({
1354
+ name: "title",
1355
+ value: t
1356
+ }));
1357
+ }
1358
+ }) !== d.length) throw Error("PREVIEW_MAPPING_FAILED");
1359
+ return this.#r.close(p, {
1360
+ revision: e.revision,
1361
+ regions: s,
1362
+ nodeIds: u,
1363
+ token: r,
1364
+ executable: i
1365
+ }, n);
1366
+ }
1367
+ };
1368
+ //#endregion
1369
+ //#region src/core/html-escape.ts
1370
+ function J(e) {
1371
+ return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
1372
+ }
1373
+ //#endregion
1374
+ //#region src/vue/outline.ts
1375
+ var Ye = class {
1376
+ urls;
1377
+ capabilities;
1378
+ layout;
1379
+ rules = new Me();
1380
+ constructor(e = new S(), t, n) {
1381
+ this.urls = e, this.capabilities = t ?? new y(), this.layout = n ?? new A(this.capabilities);
1382
+ }
1383
+ entries(e) {
1384
+ return this.layout.selectionRegions(e).map((e) => {
1385
+ let t = this.text(e.node).trim();
1386
+ return {
1387
+ id: e.id,
1388
+ parentId: e.parentId,
1389
+ index: e.index,
1390
+ depth: e.depth,
1391
+ tag: e.node.tag ?? "",
1392
+ label: t.slice(0, 75) || e.node.attrs?.alt || e.node.tag || "",
1393
+ ...!t && !e.node.attrs?.alt && e.labelKey ? { labelKey: e.labelKey } : {},
1394
+ node: e.node
1395
+ };
1396
+ });
1397
+ }
1398
+ text(e) {
1399
+ return e.type === "text" ? e.value ?? "" : (e.children ?? []).map((e) => this.text(e)).join("");
1400
+ }
1401
+ editableTextNode(e) {
1402
+ return e.type === "text" ? e : (e.children ?? []).find((e) => e.type === "text");
1403
+ }
1404
+ richText(e) {
1405
+ if (e.type !== "element" || !this.capabilities.canEditRichText(e)) return;
1406
+ let t = this.rules, n = { has: (e) => t.isBlock(e) }, r = (e) => {
1407
+ if (e.type === "text") return J(e.value ?? "");
1408
+ if (e.type !== "element" || !t.supports(e.tag ?? "")) return;
1409
+ let n = t.canonicalTag(e.tag ?? ""), i = t.semanticAttributes(n), a = Object.entries(e.attrs ?? {}).filter(([e]) => i.includes(e));
1410
+ if (a.some(([e, t]) => e === "href" && !this.urls.isSafe(t, "link"))) return;
1411
+ t.needsOrigin(e.tag ?? "", Object.keys(e.attrs ?? {})) && a.push(["data-editor-rich-origin", e.id]);
1412
+ let o = a.map(([e, t]) => ` ${e}="${J(t)}"`).join(""), s = (e.children ?? []).map(r);
1413
+ if (!s.includes(void 0)) return n === "br" || n === "hr" ? `<${n}${o}>` : `<${n}${o}>${s.join("")}</${n}>`;
1414
+ }, i = (e.children ?? []).map(r);
1415
+ if (i.includes(void 0)) return;
1416
+ let a = i.join(""), o = (e.children ?? []).some((e) => n.has(e.tag ?? ""));
1417
+ if (this.capabilities.richTextAllowsBlocks(e) && o) {
1418
+ let t = [], r = "";
1419
+ return (e.children ?? []).forEach((e, a) => {
1420
+ n.has(e.tag ?? "") ? (r.trim() && t.push(`<p>${r}</p>`), r = "", t.push(i[a] ?? "")) : r += i[a] ?? "";
1421
+ }), r.trim() && t.push(`<p>${r}</p>`), t.join("");
1422
+ }
1423
+ return `<p>${a}</p>`;
1424
+ }
1425
+ }, Xe = class {
1426
+ session;
1427
+ layout;
1428
+ templates;
1429
+ guard;
1430
+ constructor(e, t, n, r) {
1431
+ this.session = e, this.layout = t, this.templates = n, this.guard = r;
1432
+ }
1433
+ destination(e, t, n = !1) {
1434
+ let r = this.session.getState();
1435
+ return n ? this.layout.insertionTarget(r.document) : e ? this.layout.insertionAt(r.document, e, t) : this.layout.insertionTarget(r.document, r.selectedNodeId);
1436
+ }
1437
+ async add(e, t, n, r = !1) {
1438
+ if (!this.guard.prepareMutation()) return !1;
1439
+ let i = this.session.getState(), a = this.destination(t, n, r);
1440
+ if (!a) return !1;
1441
+ let o = await this.templates.createBlock(e, i.document.kind);
1442
+ return this.guard.isCurrent(i) && this.session.insertSource(o, a.parentId, a.index);
1443
+ }
1444
+ insertSource(e, t, n, r = !1) {
1445
+ if (!this.guard.prepareMutation()) return !1;
1446
+ let i = this.destination(t, n, r);
1447
+ return !!i && this.session.insertSource(e, i.parentId, i.index);
1448
+ }
1449
+ replaceSource(e) {
1450
+ return this.guard.prepareMutation() && this.session.importSource(e);
1451
+ }
1452
+ async applyTemplate(e) {
1453
+ if (!this.guard.prepareMutation()) return !1;
1454
+ let t = this.session.getState(), n = await this.templates.create(e);
1455
+ return this.guard.isCurrent(t) && this.session.importSource(n);
1456
+ }
1457
+ moveTo(e, t, n) {
1458
+ if (!this.guard.prepareMutation()) return !1;
1459
+ let r = this.session.getState().document, i = this.layout.motion(r, e, t, n);
1460
+ return !!i && this.session.moveBlock(i.sourceId, i.parentId, i.index);
1461
+ }
1462
+ act(e, t) {
1463
+ if (!this.guard.prepareMutation()) return !1;
1464
+ let n = this.session.getState().document, r = this.layout.actionUnit(n, e);
1465
+ if (!r) return !1;
1466
+ if (t === "duplicate") return this.session.duplicateBlock(r.id);
1467
+ if (t === "remove") return this.session.removeBlock(r.id);
1468
+ if (t !== "up" && t !== "down") return !1;
1469
+ let i = this.step(n, e, r, t === "up" ? -1 : 1);
1470
+ return !!i && this.session.moveBlock(i.sourceId, i.parentId, i.index);
1471
+ }
1472
+ step(e, t, n, r) {
1473
+ let i = (this.layout.resolveSelection(e, t)?.id === n.id ? this.layout.selectionRegions(e) : this.layout.regions(e)).filter((e) => e.parentId === n.parentId).sort((e, t) => e.index - t.index), a = i[i.findIndex((e) => e.id === n.id) + r], o = this.layout.selectionParents(e), s = new Set(this.layout.selectionRegions(e).filter((e) => e.container).map((e) => e.id)), c = r < 0 ? "before" : "after", l = [];
1474
+ if (a) !n.container && a.container && l.push(...this.entry(o, s, a.id, r)), l.push([a.id, c]);
1475
+ else {
1476
+ let t = /* @__PURE__ */ new Set(), i = n.parentId ? this.layout.resolveSelection(e, n.parentId)?.id : void 0;
1477
+ for (; i && !t.has(i);) {
1478
+ t.add(i), l.push([i, c]);
1479
+ let e = o.get(i), a = [...o].filter(([, t]) => t === e).map(([e]) => e), u = a[a.indexOf(i) + r];
1480
+ u && !n.container && s.has(u) && l.push(...this.entry(o, s, u, r)), i = e;
1481
+ }
1482
+ }
1483
+ for (let [t, r] of l) {
1484
+ let i = this.layout.motion(e, n.id, t, r);
1485
+ if (i) return i;
1486
+ }
1487
+ }
1488
+ entry(e, t, n, r) {
1489
+ let i = (t) => [...e].filter(([, e]) => e === t).map(([e]) => e), a = [], o = /* @__PURE__ */ new Set(), s = n;
1490
+ for (; s && t.has(s) && !o.has(s);) {
1491
+ o.add(s);
1492
+ let e = i(s), t = r > 0 ? e[0] : e.at(-1);
1493
+ if (!t) {
1494
+ a.unshift([s, "inside"]);
1495
+ break;
1496
+ }
1497
+ a.unshift([t, r > 0 ? "before" : "after"]), s = t;
1498
+ }
1499
+ return a;
1500
+ }
1501
+ connectFormReference(e, t) {
1502
+ if (!this.guard.prepareMutation()) return !1;
1503
+ let n = this.session.getState();
1504
+ if (t) {
1505
+ let r = this.layout.resolveSelection(n.document, t)?.node;
1506
+ return !!r && this.session.connectFormReference(e, r.id);
1507
+ }
1508
+ let r = this.layout.insertionTarget(n.document, n.selectedNodeId);
1509
+ return !!r && this.session.connectFormReference(e, void 0, r.parentId, r.index);
1510
+ }
1511
+ attachAsset(e, t) {
1512
+ if (!this.guard.prepareMutation()) return !1;
1513
+ let n = this.session.getState();
1514
+ if (t) {
1515
+ let r = this.layout.resolveSelection(n.document, t)?.node;
1516
+ return !!r && this.session.attachAsset(e, r.id);
1517
+ }
1518
+ let r = this.layout.insertionTarget(n.document, n.selectedNodeId);
1519
+ return !!r && this.session.attachAsset(e, void 0, r.parentId, r.index);
1520
+ }
1521
+ }, Ze = class {
1522
+ session;
1523
+ constructor(e) {
1524
+ this.session = e;
1525
+ }
1526
+ prepareMutation() {
1527
+ if (!this.session.commitRichText()) return !1;
1528
+ let e = this.session.getState();
1529
+ return e.readOnly ? !1 : e.draftSource.html !== e.source.html || e.draftSource.css !== e.source.css ? this.session.commitDraft() : !0;
1530
+ }
1531
+ prepareExport() {
1532
+ if (!this.session.commitRichText()) throw Error("feedback.invalid");
1533
+ let e = this.session.getState();
1534
+ if ((e.draftSource.html !== e.source.html || e.draftSource.css !== e.source.css) && !this.session.commitDraft()) throw Error("feedback.invalid");
1535
+ }
1536
+ isCurrent(e) {
1537
+ try {
1538
+ let t = this.session.getState();
1539
+ return !t.readOnly && t.editGeneration === e.editGeneration && t.document.revision === e.document.revision && t.mode === e.mode && t.selectedNodeId === e.selectedNodeId && t.draftSource.html === e.draftSource.html && t.draftSource.css === e.draftSource.css;
1540
+ } catch {
1541
+ return !1;
1542
+ }
1543
+ }
1544
+ }, Qe = class {
1545
+ session;
1546
+ layout;
1547
+ catalog;
1548
+ outline;
1549
+ #e;
1550
+ #t;
1551
+ #n;
1552
+ #r;
1553
+ constructor(e, t, n, r) {
1554
+ this.session = e, this.layout = t, this.catalog = n, this.outline = r;
1555
+ }
1556
+ same(e, t) {
1557
+ return e?.documentId === t.id && e.revision === t.revision;
1558
+ }
1559
+ entries() {
1560
+ let { document: e } = this.session.getState(), t = this.#e;
1561
+ if (t && this.same(t, e)) return t.entries;
1562
+ let n = this.outline.entries(e);
1563
+ return this.#e = {
1564
+ documentId: e.id,
1565
+ revision: e.revision,
1566
+ entries: n
1567
+ }, n;
1568
+ }
1569
+ regions() {
1570
+ return this.layout.selectionRegions(this.session.getState().document);
1571
+ }
1572
+ resolve(e) {
1573
+ return this.layout.resolveSelection(this.session.getState().document, e);
1574
+ }
1575
+ selected() {
1576
+ let { document: e, selectedNodeId: t } = this.session.getState(), n = this.#t;
1577
+ if (n && this.same(n, e) && n.id === t) return n.entry;
1578
+ let r = t ? this.entries().find((e) => e.id === t) : void 0;
1579
+ return this.#t = {
1580
+ documentId: e.id,
1581
+ revision: e.revision,
1582
+ id: t,
1583
+ entry: r
1584
+ }, r;
1585
+ }
1586
+ parentOf(e) {
1587
+ let t = this.resolve(e), n = t?.parentId ? this.resolve(t.parentId) : void 0;
1588
+ return n && n.id !== t?.id ? n.id : void 0;
1589
+ }
1590
+ movementTargets(e) {
1591
+ let t = this.session.getState();
1592
+ if (t.readOnly) return [];
1593
+ let n = this.#r;
1594
+ if (n && this.same(n, t.document) && n.sourceId === e) return structuredClone(n.targets);
1595
+ let r = this.layout.validMovementTargets(t.document, e);
1596
+ return this.#r = {
1597
+ documentId: t.document.id,
1598
+ revision: t.document.revision,
1599
+ sourceId: e,
1600
+ targets: r
1601
+ }, structuredClone(r);
1602
+ }
1603
+ insertionTargets() {
1604
+ let e = this.session.getState();
1605
+ if (e.readOnly) return [];
1606
+ let t = this.#n;
1607
+ if (t && this.same(t, e.document)) return structuredClone(t.targets);
1608
+ let n = [];
1609
+ for (let t of this.layout.selectionRegions(e.document)) {
1610
+ let r = [
1611
+ "before",
1612
+ "after",
1613
+ "inside"
1614
+ ].filter((n) => (n !== "inside" || t.container) && !!this.layout.insertionAt(e.document, t.id, n));
1615
+ r.length && n.push({
1616
+ targetId: t.id,
1617
+ placements: r
1618
+ });
1619
+ }
1620
+ return this.#n = {
1621
+ documentId: e.document.id,
1622
+ revision: e.document.revision,
1623
+ targets: n
1624
+ }, structuredClone(n);
1625
+ }
1626
+ propertyCapabilities() {
1627
+ let e = this.selected(), t = e ? this.resolve(e.id) : void 0;
1628
+ if (!e || !t) return;
1629
+ let n = this.catalog.properties(e.node);
1630
+ return {
1631
+ attributes: n.filter((e) => e.kind === "attribute").map((e) => e.name),
1632
+ styles: n.filter((e) => e.kind === "style").map((e) => e.name),
1633
+ richText: t.editable && this.outline.richText(e.node) !== void 0,
1634
+ blocks: t.editable && this.catalog.richTextAllowsBlocks(e.node),
1635
+ container: t.container,
1636
+ kind: t.kind
1637
+ };
1638
+ }
1639
+ }, $e = class {
1640
+ session;
1641
+ layout;
1642
+ catalog;
1643
+ outline;
1644
+ structure;
1645
+ constructor(e, t, n, r, i) {
1646
+ this.session = e, this.layout = t, this.catalog = n, this.outline = r, this.structure = i;
1647
+ }
1648
+ region(e) {
1649
+ return this.layout.resolveSelection(this.session.getState().document, e);
1650
+ }
1651
+ plain() {
1652
+ let e = this.structure.selected();
1653
+ return e ? this.outline.text(e.node) : "";
1654
+ }
1655
+ richTextFor(e) {
1656
+ let t = this.session.getState();
1657
+ if (t.pendingRichText?.id === e && t.pendingRichText.valid) return t.pendingRichText.html;
1658
+ let n = this.region(e);
1659
+ return n?.editable ? this.outline.richText(n.node) : void 0;
1660
+ }
1661
+ allowsBlocksFor(e) {
1662
+ let t = this.region(e);
1663
+ return !!t?.editable && this.catalog.richTextAllowsBlocks(t.node);
1664
+ }
1665
+ begin(e) {
1666
+ let t = this.region(e), n = t?.editable ? this.outline.richText(t.node) : void 0;
1667
+ return !!t && n !== void 0 && this.session.beginRichText(t.id, n);
1668
+ }
1669
+ updatePlain(e) {
1670
+ let t = this.structure.selected();
1671
+ if (!t) return !1;
1672
+ let n = this.outline.editableTextNode(t.node);
1673
+ return n ? this.session.updateText(n.id, e) : !1;
1674
+ }
1675
+ updateRichTextFor(e, t) {
1676
+ let n = this.region(e);
1677
+ return !!n?.editable && this.outline.richText(n.node) !== void 0 && this.session.updateRichText(n.id, t);
1678
+ }
1679
+ }, Y = t(o(), f(n.limits.sourceBytes)), et = _({
1680
+ format: d("visual-editor-recovery-v1"),
1681
+ document: c(),
1682
+ pendingSource: _({
1683
+ html: Y,
1684
+ css: t(o(), f(n.limits.cssBytes))
1685
+ }),
1686
+ pendingRichText: p(_({
1687
+ id: t(o(), a(1), f(200)),
1688
+ html: Y,
1689
+ originalHtml: Y,
1690
+ changed: i(),
1691
+ valid: i(),
1692
+ blocked: p(d("oversized")),
1693
+ documentId: t(o(), a(1), f(200)),
1694
+ baseRevision: t(u(), e(), s(0), m(2 ** 53 - 1)),
1695
+ editGeneration: t(u(), e(), s(0), m(2 ** 53 - 1))
1696
+ }))
1697
+ }), X = class {
1698
+ encode(e, t, r) {
1699
+ let i = JSON.stringify({
1700
+ format: "visual-editor-recovery-v1",
1701
+ document: e,
1702
+ pendingSource: t,
1703
+ ...r ? { pendingRichText: r } : {}
1704
+ });
1705
+ if (new n().byteLength(i) > n.limits.jsonBytes) throw RangeError("RECOVERY_TOO_LARGE");
1706
+ return i;
1707
+ }
1708
+ decode(e) {
1709
+ let t = g(et, e);
1710
+ if (t.success) {
1711
+ try {
1712
+ let e = new n();
1713
+ C.from(t.output.document), e.assertSource(t.output.pendingSource.html, t.output.pendingSource.css), t.output.pendingRichText && (e.assertSource(t.output.pendingRichText.html, ""), e.assertSource(t.output.pendingRichText.originalHtml, ""));
1714
+ } catch {
1715
+ return;
1716
+ }
1717
+ return {
1718
+ ...t.output,
1719
+ document: C.from(t.output.document).snapshot()
1720
+ };
1721
+ }
1722
+ }
1723
+ }, tt = class {
1724
+ session;
1725
+ assembler;
1726
+ layout;
1727
+ outline;
1728
+ guard;
1729
+ constructor(e, t, n, r, i) {
1730
+ this.session = e, this.assembler = t, this.layout = n, this.outline = r, this.guard = i;
1731
+ }
1732
+ exportSource() {
1733
+ return this.guard.prepareExport(), this.session.exportSource();
1734
+ }
1735
+ exportHtml() {
1736
+ return this.assembler.build(this.exportSource(), this.session.getState().document.kind);
1737
+ }
1738
+ previewHtml() {
1739
+ let e = this.session.getState();
1740
+ return this.assembler.build(e.source, e.document.kind, !0);
1741
+ }
1742
+ exportJson() {
1743
+ return this.guard.prepareExport(), JSON.stringify(this.session.getState().document);
1744
+ }
1745
+ exportRecovery() {
1746
+ let e = this.session.getState();
1747
+ return new X().encode(e.document, e.draftSource, e.pendingRichText);
1748
+ }
1749
+ async importFile(e) {
1750
+ if (!this.guard.prepareMutation()) return !1;
1751
+ let t = this.session.getState(), r = e.name.toLowerCase(), i = r.endsWith(".json") ? n.limits.jsonBytes : r.endsWith(".css") ? n.limits.cssBytes : n.limits.sourceBytes;
1752
+ if (e.size > i) throw Error("feedback.largeFile");
1753
+ let a = await e.text();
1754
+ if (!this.guard.isCurrent(t)) return !1;
1755
+ if (r.endsWith(".json")) {
1756
+ let e = JSON.parse(a), t = new X().decode(e);
1757
+ return t ? this.restore(t) : this.session.importJson(e);
1758
+ }
1759
+ return r.endsWith(".css") ? this.session.importSource({
1760
+ html: this.session.getState().source.html,
1761
+ css: a
1762
+ }) : this.session.importSource({
1763
+ html: a,
1764
+ css: ""
1765
+ });
1766
+ }
1767
+ importRecovery(e) {
1768
+ if (!this.guard.prepareMutation()) return !1;
1769
+ let t = new X().decode(e);
1770
+ if (!t || !this.restore(t)) return !1;
1771
+ let n = this.session.getState().pendingRichText;
1772
+ return n?.valid && !n.blocked ? this.session.commitRichText() : !0;
1773
+ }
1774
+ restore(e) {
1775
+ let t = C.from(e.document).snapshot(), n = e.pendingRichText;
1776
+ if (n && (n.documentId !== t.id || n.baseRevision !== t.revision || !this.layout.resolveSelection(t, n.id)?.editable || this.layout.resolveSelection(t, n.id)?.id !== n.id) || !this.session.importJson(t)) return !1;
1777
+ if (n) {
1778
+ this.session.setMode("visual");
1779
+ let e = this.layout.resolveSelection(this.session.getState().document, n.id)?.node, t = e ? this.outline.richText(e) : void 0;
1780
+ return t !== void 0 && this.session.restoreRichTextDraft(n, t);
1781
+ }
1782
+ return this.session.setMode("html"), this.session.setDraftSource(e.pendingSource), !0;
1783
+ }
1784
+ }, nt = class {
1785
+ session;
1786
+ templates;
1787
+ assembler;
1788
+ urls;
1789
+ structure;
1790
+ texts;
1791
+ blockCommands;
1792
+ transfer;
1793
+ guard;
1794
+ constructor(e, t, n, r = new S(), i = {}) {
1795
+ this.session = e, this.templates = t, this.assembler = n, this.urls = r;
1796
+ let a = i.catalog ?? new y(), o = i.layout ?? new A(a), s = new Ye(r, a, o);
1797
+ this.guard = new Ze(e), this.structure = new Qe(e, o, a, s), this.texts = new $e(e, o, a, s, this.structure), this.blockCommands = new Xe(e, o, t, this.guard), this.transfer = new tt(e, n, o, s, this.guard);
1798
+ }
1799
+ state() {
1800
+ return this.session.getState();
1801
+ }
1802
+ subscribe(e) {
1803
+ return this.session.subscribe(e);
1804
+ }
1805
+ entries() {
1806
+ return this.structure.entries();
1807
+ }
1808
+ canvasRegions() {
1809
+ return this.structure.regions();
1810
+ }
1811
+ resolveSelection(e) {
1812
+ return this.structure.resolve(e);
1813
+ }
1814
+ movementTargets(e) {
1815
+ return this.structure.movementTargets(e);
1816
+ }
1817
+ insertionTargets() {
1818
+ return this.structure.insertionTargets();
1819
+ }
1820
+ parentOf(e) {
1821
+ return this.structure.parentOf(e);
1822
+ }
1823
+ selected() {
1824
+ return this.structure.selected();
1825
+ }
1826
+ propertyCapabilities() {
1827
+ return this.structure.propertyCapabilities();
1828
+ }
1829
+ text() {
1830
+ return this.texts.plain();
1831
+ }
1832
+ richText() {
1833
+ let e = this.state().selectedNodeId;
1834
+ return e ? this.texts.richTextFor(e) : void 0;
1835
+ }
1836
+ richTextFor(e) {
1837
+ return this.texts.richTextFor(e);
1838
+ }
1839
+ richTextAllowsBlocks() {
1840
+ let e = this.state().selectedNodeId;
1841
+ return !!e && this.texts.allowsBlocksFor(e);
1842
+ }
1843
+ richTextAllowsBlocksFor(e) {
1844
+ return this.texts.allowsBlocksFor(e);
1845
+ }
1846
+ beginRichText(e) {
1847
+ return this.select(e) && this.texts.begin(e);
1848
+ }
1849
+ updateRichTextDraft(e) {
1850
+ return this.session.updateRichTextDraft(e);
1851
+ }
1852
+ commitRichText() {
1853
+ return this.session.commitRichText();
1854
+ }
1855
+ cancelRichText() {
1856
+ this.session.cancelRichText();
1857
+ }
1858
+ inlineStyles(e) {
1859
+ return this.session.inlineStyles(e);
1860
+ }
1861
+ style(e, t = "") {
1862
+ let n = this.selected()?.id, r = n ? this.inlineStyles(n) : {}, i = e.toLowerCase();
1863
+ return Object.hasOwn(r, i) ? r[i] : t;
1864
+ }
1865
+ linkPolicy() {
1866
+ return this.urls;
1867
+ }
1868
+ templateList() {
1869
+ return this.templates.list(this.state().document.kind);
1870
+ }
1871
+ async templatePreview(e) {
1872
+ let t = this.state().document.kind;
1873
+ if (!this.templates.list(t).some((t) => t.id === e)) throw Error("feedback.invalid");
1874
+ let n = await this.templates.create(e);
1875
+ return this.assembler.build(n, t, !0);
1876
+ }
1877
+ blocks(e) {
1878
+ return this.templates.blocks(e);
1879
+ }
1880
+ applyTemplate(e) {
1881
+ return this.blockCommands.applyTemplate(e);
1882
+ }
1883
+ addBlock(e, t, n = "inside") {
1884
+ return this.blockCommands.add(e, t, n);
1885
+ }
1886
+ appendBlock(e) {
1887
+ return this.blockCommands.add(e, void 0, "inside", !0);
1888
+ }
1889
+ insertSource(e, t, n = "after") {
1890
+ return this.blockCommands.insertSource(e, t, n);
1891
+ }
1892
+ appendSource(e) {
1893
+ return this.blockCommands.insertSource(e, void 0, "after", !0);
1894
+ }
1895
+ replaceSource(e) {
1896
+ return this.blockCommands.replaceSource(e);
1897
+ }
1898
+ addBlockAt(e, t, n = "inside") {
1899
+ return this.addBlock(e, t, n);
1900
+ }
1901
+ setDraft(e, t) {
1902
+ let n = this.state();
1903
+ this.session.setDraftSource({
1904
+ ...n.draftSource ?? n.source,
1905
+ [e]: t
1906
+ });
1907
+ }
1908
+ applyDraft() {
1909
+ return this.session.commitDraft();
1910
+ }
1911
+ discardDraft() {
1912
+ this.session.setDraftSource(this.state().source);
1913
+ }
1914
+ setMode(e) {
1915
+ return this.session.setMode(e);
1916
+ }
1917
+ select(e) {
1918
+ let t = this.resolveSelection(e);
1919
+ return !!t && this.session.select(t.id);
1920
+ }
1921
+ imageSize() {
1922
+ let e = this.state().selectedNodeId;
1923
+ return e ? this.session.imageSize(e) : void 0;
1924
+ }
1925
+ updateImageSize(e) {
1926
+ let t = this.state().selectedNodeId;
1927
+ return !!t && this.session.updateImageSize(t, e);
1928
+ }
1929
+ resizeImage(e, t, n) {
1930
+ if (!this.guard.prepareMutation()) return !1;
1931
+ let r = this.session.imageSize(e);
1932
+ return r ? this.session.updateImageSize(e, r.ratio ? {
1933
+ width: t,
1934
+ preserveRatio: !0
1935
+ } : {
1936
+ width: t,
1937
+ height: n
1938
+ }) : !1;
1939
+ }
1940
+ documentStyles() {
1941
+ return this.session.documentStyles();
1942
+ }
1943
+ documentMetadata() {
1944
+ return this.session.documentMetadata();
1945
+ }
1946
+ updateTitle(e) {
1947
+ return this.session.updateTitle(e);
1948
+ }
1949
+ updatePreheader(e) {
1950
+ return this.session.updatePreheader(e);
1951
+ }
1952
+ updateDocumentStyle(e, t) {
1953
+ return this.session.updateDocumentStyle(e, t);
1954
+ }
1955
+ updateText(e) {
1956
+ return this.texts.updatePlain(e);
1957
+ }
1958
+ updateRichText(e) {
1959
+ let t = this.selected();
1960
+ return t ? this.texts.updateRichTextFor(t.id, e) : !1;
1961
+ }
1962
+ updateRichTextFor(e, t) {
1963
+ return this.texts.updateRichTextFor(e, t);
1964
+ }
1965
+ updateAttribute(e, t) {
1966
+ let n = this.selected();
1967
+ return n ? this.session.updateAttribute(n.node.id, e, t) : !1;
1968
+ }
1969
+ connectFormReference(e, t) {
1970
+ return this.blockCommands.connectFormReference(e, t);
1971
+ }
1972
+ attachAsset(e, t) {
1973
+ return this.blockCommands.attachAsset(e, t);
1974
+ }
1975
+ imageLink() {
1976
+ let e = this.selected();
1977
+ return e?.node.tag === "img" ? this.session.imageLink(e.id) : void 0;
1978
+ }
1979
+ updateImageLink(e, t) {
1980
+ let n = this.selected();
1981
+ return n?.node.tag === "img" && this.session.updateImageLink(n.id, e, t);
1982
+ }
1983
+ layoutSettings() {
1984
+ let e = this.state().selectedNodeId;
1985
+ return e ? this.session.layoutSettings(e) : void 0;
1986
+ }
1987
+ async updateLayout(e) {
1988
+ if (!this.guard.prepareMutation()) return !1;
1989
+ let t = this.state().selectedNodeId;
1990
+ return t ? this.session.updateLayout(t, e) : !1;
1991
+ }
1992
+ updateStyle(e, t) {
1993
+ let n = this.selected();
1994
+ return n ? this.session.updateStyle(n.node.id, e, t) : !1;
1995
+ }
1996
+ duplicate() {
1997
+ let e = this.selected();
1998
+ return e ? this.applyCanvasAction(e.id, "duplicate") : !1;
1999
+ }
2000
+ remove() {
2001
+ let e = this.selected();
2002
+ return e ? this.applyCanvasAction(e.id, "remove") : !1;
2003
+ }
2004
+ move(e) {
2005
+ let t = this.selected();
2006
+ return !!t && this.applyCanvasAction(t.id, e < 0 ? "up" : "down");
2007
+ }
2008
+ moveTo(e, t, n) {
2009
+ return this.blockCommands.moveTo(e, t, n);
2010
+ }
2011
+ applyCanvasAction(e, t) {
2012
+ return this.blockCommands.act(e, t);
2013
+ }
2014
+ drop(e, t) {
2015
+ return this.moveTo(e, t, "before");
2016
+ }
2017
+ undo() {
2018
+ return this.session.undo();
2019
+ }
2020
+ redo() {
2021
+ return this.session.redo();
2022
+ }
2023
+ exportSource() {
2024
+ return this.transfer.exportSource();
2025
+ }
2026
+ exportHtml() {
2027
+ return this.transfer.exportHtml();
2028
+ }
2029
+ previewHtml() {
2030
+ return this.transfer.previewHtml();
2031
+ }
2032
+ exportJson() {
2033
+ return this.transfer.exportJson();
2034
+ }
2035
+ exportRecovery() {
2036
+ return this.transfer.exportRecovery();
2037
+ }
2038
+ importFile(e) {
2039
+ return this.transfer.importFile(e);
2040
+ }
2041
+ importRecovery(e) {
2042
+ return this.transfer.importRecovery(e);
2043
+ }
2044
+ }, Z = Object.freeze({
2045
+ nodes: 1e4,
2046
+ depth: 80
2047
+ }), rt = class {
2048
+ urls;
2049
+ budget = new n();
2050
+ formats = new ve();
2051
+ inline = /* @__PURE__ */ new Set([
2052
+ "span",
2053
+ "strong",
2054
+ "b",
2055
+ "em",
2056
+ "i",
2057
+ "u",
2058
+ "s",
2059
+ "a",
2060
+ "br",
2061
+ "sup",
2062
+ "sub",
2063
+ "code"
2064
+ ]);
2065
+ blocks = /* @__PURE__ */ new Set([
2066
+ "p",
2067
+ "ul",
2068
+ "ol",
2069
+ "li",
2070
+ "h1",
2071
+ "h2",
2072
+ "h3",
2073
+ "h4",
2074
+ "h5",
2075
+ "h6",
2076
+ "blockquote",
2077
+ "pre",
2078
+ "hr"
2079
+ ]);
2080
+ discarded = /* @__PURE__ */ new Set([
2081
+ "script",
2082
+ "style",
2083
+ "template",
2084
+ "iframe",
2085
+ "object",
2086
+ "embed",
2087
+ "noscript",
2088
+ "xmp",
2089
+ "plaintext",
2090
+ "noembed",
2091
+ "noframes",
2092
+ "textarea",
2093
+ "title"
2094
+ ]);
2095
+ parser = new re(Z.depth);
2096
+ styles;
2097
+ constructor(e = new S()) {
2098
+ this.urls = e, this.styles = new ie(e);
2099
+ }
2100
+ project(e, t = !1) {
2101
+ this.budget.assertSource(e, "");
2102
+ let r;
2103
+ try {
2104
+ r = this.parser.fragment(e, { scriptingEnabled: !1 });
2105
+ } catch (e) {
2106
+ throw e instanceof se ? RangeError("RICH_TEXT_TOO_COMPLEX", { cause: e }) : e;
2107
+ }
2108
+ let i = 0, a = !1, o = (e, r) => {
2109
+ if (++i > Z.nodes || r > Z.depth) throw RangeError("RICH_TEXT_TOO_COMPLEX");
2110
+ if (e.nodeName === "#text" && "value" in e) return J(e.value);
2111
+ if (!("tagName" in e)) return "";
2112
+ let s = e.tagName;
2113
+ if (e.namespaceURI !== "http://www.w3.org/1999/xhtml" || this.discarded.has(s)) return a = !0, "";
2114
+ let c = () => e.childNodes.map((e) => o(e, r + 1)).join("");
2115
+ if (!this.inline.has(s) && (!this.blocks.has(s) || !t && s !== "p")) return a = !0, c();
2116
+ let l = [];
2117
+ for (let t of e.attrs) {
2118
+ let r = t.name, i = t.value;
2119
+ if (t.namespace || t.prefix) a = !0;
2120
+ else if (r === "data-editor-rich-removed" && s === "span" && this.formats.isFormat(i) && e.attrs.some((e) => e.name === "data-editor-rich-origin" && e.value.length > 0 && e.value.length <= 200)) l.push([r, i]);
2121
+ else if (r === "data-editor-rich-origin" && i.length > 0 && i.length <= 200) l.push([r, i]);
2122
+ else if (s === "a" && r === "href" && i.length <= n.limits.attributeLength && this.urls.isSafe(i, "link")) l.push([r, i]);
2123
+ else if (s === "a" && r === "target" && ["_blank", "_self"].includes(i)) l.push([r, i]);
2124
+ else if (s === "a" && ["rel", "title"].includes(r) && i.length <= n.limits.attributeLength) l.push([r, i]);
2125
+ else if (r === "style") {
2126
+ let e = this.styles.richTextStyles(i);
2127
+ e ? l.push([r, Object.entries(e).map(([e, t]) => `${e}:${t}`).join(";")]) : a = !0;
2128
+ } else s === "ol" && r === "start" && /^-?\d{1,8}$/.test(i) ? l.push([r, i]) : a = !0;
2129
+ }
2130
+ if (s === "a" && !l.some(([e]) => e === "href")) return a = !0, c();
2131
+ let u = l.find(([e]) => e === "style"), d = c();
2132
+ u && s !== "span" && (l.splice(l.indexOf(u), 1), this.inline.has(s) || [
2133
+ "p",
2134
+ "h1",
2135
+ "h2",
2136
+ "h3",
2137
+ "h4",
2138
+ "h5",
2139
+ "h6",
2140
+ "pre"
2141
+ ].includes(s) ? d = `<span style="${J(u[1])}">${d}</span>` : a = !0);
2142
+ let f = l.map(([e, t]) => ` ${e}="${J(t)}"`).join("");
2143
+ return s === "br" || s === "hr" ? `<${s}${f}>` : `<${s}${f}>${d}</${s}>`;
2144
+ };
2145
+ return {
2146
+ html: r.childNodes.map((e) => o(e, 0)).join(""),
2147
+ adjusted: a
2148
+ };
2149
+ }
2150
+ }, Q = "COMPILE_SUPERSEDED", it = 40, at = 50, ot = class {
2151
+ compiler;
2152
+ preview;
2153
+ final;
2154
+ #e = !1;
2155
+ #t;
2156
+ #n = Promise.resolve();
2157
+ constructor(e) {
2158
+ this.compiler = e, this.preview = { compileGenerated: (e) => this.#r(e) }, this.final = { compileGenerated: (e) => this.#a(e) };
2159
+ }
2160
+ #r(e) {
2161
+ return new Promise((t, n) => {
2162
+ this.#t?.reject(/* @__PURE__ */ Error(Q)), this.#t = {
2163
+ mjml: e,
2164
+ resolve: t,
2165
+ reject: n
2166
+ }, this.#i();
2167
+ });
2168
+ }
2169
+ #i() {
2170
+ let e = this.#t;
2171
+ this.#e || !e || (this.#t = void 0, this.#e = !0, this.#o(() => this.compiler.compileGenerated(e.mjml), () => !this.#t).then(e.resolve, e.reject).finally(() => {
2172
+ this.#e = !1, this.#i();
2173
+ }));
2174
+ }
2175
+ #a(e) {
2176
+ let t = this.#n.then(() => this.#o(() => this.compiler.compileGenerated(e), () => !0));
2177
+ return this.#n = t.catch(() => void 0), t;
2178
+ }
2179
+ async #o(e, t) {
2180
+ for (let n = 0;; n++) try {
2181
+ return await e();
2182
+ } catch (e) {
2183
+ if (!(e instanceof Error && e.message === "COMPILER_BUSY") || n >= it) throw e;
2184
+ if (!t()) throw Error(Q, { cause: e });
2185
+ await new Promise((e) => setTimeout(e, at));
2186
+ }
2187
+ }
2188
+ }, st = 104448, ct = 92160, lt = /<a\b([^>]*)>/gi, ut = /\bhref\s*=\s*"([^"]*)"/i, dt = class {
2189
+ check(e, t) {
2190
+ let r = [];
2191
+ e.blocks.length || r.push({
2192
+ code: "PIECE_EMPTY",
2193
+ severity: "warning"
2194
+ });
2195
+ let i = [...e.blocks].reverse();
2196
+ for (; i.length;) {
2197
+ let e = i.pop();
2198
+ if (!e) break;
2199
+ this.block(e, r), i.push(...[...e.children ?? []].reverse());
2200
+ }
2201
+ if (e.kind === "email" && t !== void 0) {
2202
+ let e = new n().byteLength(t), i = Math.ceil(e / 1024);
2203
+ e > 104448 ? r.push({
2204
+ code: "EMAIL_CLIPPED",
2205
+ severity: "error",
2206
+ kilobytes: i
2207
+ }) : e > 92160 && r.push({
2208
+ code: "EMAIL_NEAR_CLIP",
2209
+ severity: "warning",
2210
+ kilobytes: i
2211
+ });
2212
+ }
2213
+ return r;
2214
+ }
2215
+ block(e, t) {
2216
+ let n = e.props, r = e.id;
2217
+ n.hideOnDesktop === !0 && n.hideOnMobile === !0 && t.push({
2218
+ code: "HIDDEN_ON_EVERY_SCREEN",
2219
+ severity: "warning",
2220
+ blockId: r
2221
+ }), e.type === "button" && (this.filled(n.text) || t.push({
2222
+ code: "BUTTON_WITHOUT_TEXT",
2223
+ severity: "error",
2224
+ blockId: r
2225
+ }), this.link(n.href) || t.push({
2226
+ code: "BUTTON_WITHOUT_LINK",
2227
+ severity: "error",
2228
+ blockId: r
2229
+ })), e.type === "image" && (this.filled(n.url) ? this.filled(n.alt) || t.push({
2230
+ code: "IMAGE_WITHOUT_ALT",
2231
+ severity: "warning",
2232
+ blockId: r
2233
+ }) : t.push({
2234
+ code: "IMAGE_WITHOUT_SOURCE",
2235
+ severity: "warning",
2236
+ blockId: r
2237
+ }));
2238
+ for (let e of ["text", "html"]) {
2239
+ let i = n[e];
2240
+ if (typeof i == "string" && this.emptyAnchor(i)) {
2241
+ t.push({
2242
+ code: "LINK_EMPTY",
2243
+ severity: "error",
2244
+ blockId: r
2245
+ });
2246
+ break;
2247
+ }
2248
+ }
2249
+ }
2250
+ filled(e) {
2251
+ return typeof e == "string" && e.replace(/<[^>]*>|&nbsp;/g, "").trim() !== "";
2252
+ }
2253
+ link(e) {
2254
+ return typeof e == "string" && e.trim() !== "" && e.trim() !== "#";
2255
+ }
2256
+ emptyAnchor(e) {
2257
+ for (let t of e.matchAll(lt)) {
2258
+ let e = ut.exec(t[1] ?? "")?.[1];
2259
+ if (e === void 0 || !this.link(e)) return !0;
2260
+ }
2261
+ return !1;
2262
+ }
2263
+ }, $ = ["column"], ft = class {
2264
+ session;
2265
+ #e;
2266
+ #t;
2267
+ constructor(e) {
2268
+ this.session = e.session, this.#e = e;
2269
+ }
2270
+ state() {
2271
+ return this.session.getState();
2272
+ }
2273
+ subscribe(e) {
2274
+ return this.session.subscribe(e);
2275
+ }
2276
+ kind() {
2277
+ return this.session.document().kind;
2278
+ }
2279
+ types() {
2280
+ return this.#e.registry.list(this.kind()).filter((e) => !$.includes(e.type)).map((e) => ({
2281
+ type: e.type,
2282
+ labelKey: e.labelKey
2283
+ }));
2284
+ }
2285
+ templates() {
2286
+ return this.#e.templates.list(this.kind());
2287
+ }
2288
+ typeOf(e) {
2289
+ return this.session.document().find(e)?.type;
2290
+ }
2291
+ labelKey(e) {
2292
+ let t = this.session.document().find(e);
2293
+ return t ? this.#e.registry.definition(t.type).labelKey : void 0;
2294
+ }
2295
+ fields(e, t = "desktop") {
2296
+ return this.#e.inspector.fields(this.state().document, e, t);
2297
+ }
2298
+ globalStyles() {
2299
+ return this.#e.inspector.styles(this.state().document);
2300
+ }
2301
+ parentOf(e) {
2302
+ return this.session.document().parentOf(e);
2303
+ }
2304
+ async review() {
2305
+ let e = this.session.document(), t = e.kind === "email" ? (await this.#e.output.render(e)).html : void 0;
2306
+ return new dt().check(e, t);
2307
+ }
2308
+ preview() {
2309
+ return this.#e.output.preview(this.session.document());
2310
+ }
2311
+ movementTargets(e) {
2312
+ return this.#e.placement.movementTargets(this.session.document(), e);
2313
+ }
2314
+ insertionTargets(e) {
2315
+ return this.#e.placement.insertionTargets(this.session.document(), e);
2316
+ }
2317
+ select(e) {
2318
+ return this.session.select(e);
2319
+ }
2320
+ insert(e, t, n = {}) {
2321
+ let r = t && t !== "end" ? this.#e.placement.target(t.targetId, t.placement) : this.automaticTarget(e, t === "end");
2322
+ if (r) return this.session.insert(e, r, n) !== void 0;
2323
+ let i = this.#e.registry.create("section", () => this.session.newId()), a = this.#e.registry.create(e, () => this.session.newId(), n), o = i.children?.[0];
2324
+ if (!o || !this.#e.registry.childTypes("column").includes(e)) return !1;
2325
+ let s = {
2326
+ ...i,
2327
+ children: [{
2328
+ ...o,
2329
+ children: [a]
2330
+ }]
2331
+ };
2332
+ return this.session.insertBlock(s, { position: "inside" }) !== void 0 && this.session.select(a.id);
2333
+ }
2334
+ insertSaved(e) {
2335
+ if (!e || typeof e != "object" || $.includes(e.type)) return !1;
2336
+ let t;
2337
+ try {
2338
+ t = this.reidentify(e);
2339
+ } catch {
2340
+ return !1;
2341
+ }
2342
+ let n = this.automaticTarget(t.type, !1);
2343
+ if (n) return this.session.insertBlock(t, n) !== void 0;
2344
+ if (!this.#e.registry.childTypes("column").includes(t.type)) return !1;
2345
+ let r = this.#e.registry.create("section", () => this.session.newId()), i = r.children?.[0];
2346
+ if (!i) return !1;
2347
+ let a = {
2348
+ ...r,
2349
+ children: [{
2350
+ ...i,
2351
+ children: [t]
2352
+ }]
2353
+ };
2354
+ return this.session.insertBlock(a, { position: "inside" }) !== void 0 && this.session.select(t.id);
2355
+ }
2356
+ savable(e) {
2357
+ let t = this.session.document().find(e);
2358
+ return t && !$.includes(t.type) ? structuredClone(t) : void 0;
2359
+ }
2360
+ move(e, t, n) {
2361
+ return this.session.move(e, this.#e.placement.target(t, n));
2362
+ }
2363
+ step(e, t) {
2364
+ let n = this.#e.placement.step(this.session.document(), e, t);
2365
+ return !!n && this.session.move(e, n);
2366
+ }
2367
+ duplicate(e) {
2368
+ return this.session.duplicate(e);
2369
+ }
2370
+ remove(e) {
2371
+ return this.session.remove(e);
2372
+ }
2373
+ setField(e, t, n, r = "desktop") {
2374
+ return this.session.updateProps(e, { [t]: n }, this.deviceFor(e, t, r));
2375
+ }
2376
+ restoreField(e, t, n = "desktop") {
2377
+ return this.session.restoreDefault(e, [t], this.deviceFor(e, t, n));
2378
+ }
2379
+ replaceImage(e, t) {
2380
+ return this.session.replaceImage(e, t);
2381
+ }
2382
+ setStyle(e, t, n) {
2383
+ return this.session.updateStyles({ [e]: { [t]: n } });
2384
+ }
2385
+ restoreStyle(e, t) {
2386
+ return this.session.restoreStyleDefault(e, [t]);
2387
+ }
2388
+ setLanguage(e) {
2389
+ return this.session.setLanguage(e);
2390
+ }
2391
+ applyTemplate(e) {
2392
+ let t = this.session.document();
2393
+ try {
2394
+ return this.session.replace(this.#e.templates.create(e, t.id, () => this.session.newId(), t.kind, t.meta.lang));
2395
+ } catch {
2396
+ return !1;
2397
+ }
2398
+ }
2399
+ undo() {
2400
+ return this.session.undo();
2401
+ }
2402
+ redo() {
2403
+ return this.session.redo();
2404
+ }
2405
+ save() {
2406
+ return this.session.save();
2407
+ }
2408
+ saveDocument() {
2409
+ return this.session.saveDocument();
2410
+ }
2411
+ textOwner() {
2412
+ return this.#t ??= {
2413
+ linkPolicy: () => this.#e.urls,
2414
+ state: () => {
2415
+ let e = this.state();
2416
+ return {
2417
+ pendingRichText: e.pendingText,
2418
+ document: e.document,
2419
+ readOnly: e.readOnly
2420
+ };
2421
+ },
2422
+ select: (e) => this.session.select(e),
2423
+ beginRichText: (e) => this.session.beginText(e),
2424
+ updateRichTextDraft: (e) => this.session.updateTextDraft(e),
2425
+ commitRichText: () => this.session.commitText(),
2426
+ cancelRichText: () => this.session.cancelText()
2427
+ }, this.#t;
2428
+ }
2429
+ reidentify(e) {
2430
+ if (!e || typeof e != "object") throw Error("INVALID_SAVED_BLOCK");
2431
+ let t = Array.isArray(e.children) ? e.children : void 0;
2432
+ return {
2433
+ ...e,
2434
+ id: this.session.newId(),
2435
+ ...t ? { children: t.map((e) => this.reidentify(e)) } : {}
2436
+ };
2437
+ }
2438
+ deviceFor(e, t, n) {
2439
+ let r = this.typeOf(e);
2440
+ return n === "mobile" && r && this.session.document().responsive(r, t) ? "mobile" : "desktop";
2441
+ }
2442
+ automaticTarget(e, t) {
2443
+ let n = this.session.document(), r = this.#e.registry, i = t ? void 0 : this.state().selectedBlockId;
2444
+ for (let t = i; t !== void 0; t = n.parentOf(t)) {
2445
+ let i = n.find(t);
2446
+ if (!i) break;
2447
+ if (r.childTypes(i.type).includes(e)) return {
2448
+ position: "inside",
2449
+ parentId: i.id
2450
+ };
2451
+ let a = n.parentOf(t), o = a ? n.find(a)?.type : void 0;
2452
+ if (o ? r.childTypes(o).includes(e) : r.isRoot(e)) return {
2453
+ position: "after",
2454
+ id: i.id
2455
+ };
2456
+ }
2457
+ if (r.isRoot(e)) return { position: "inside" };
2458
+ let a = this.insertionTargets(e).filter((e) => e.placements.includes("inside")).at(-1);
2459
+ return a ? {
2460
+ position: "inside",
2461
+ parentId: a.targetId
2462
+ } : void 0;
2463
+ }
2464
+ };
2465
+ //#endregion
2466
+ export { be as A, R as C, ye as D, j as E, A as F, de as I, ue as L, pe as M, me as N, M as O, ve as P, T as R, Se as S, N as T, W as _, Q as a, L as b, nt as c, We as d, Ve as f, U as g, H as h, ct as i, fe as j, F as k, J as l, Fe as m, dt as n, ot as o, q as p, st as r, rt as s, ft as t, Je as u, we as v, z as w, I as x, Te as y };
2467
+
2468
+ //# sourceMappingURL=block-controller-RjYGvOcn.js.map