@panphora/clayjs 1.23.0 → 1.24.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 (471) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/blockeditor/themes/light-1.css +431 -0
  3. package/dist/clay-dom.js +1 -1
  4. package/dist/clay-events.js +1 -1
  5. package/dist/clay-internals.js +1 -1
  6. package/dist/clay-options.js +1 -1
  7. package/dist/clay-router.js +1 -1
  8. package/dist/clay-ui.js +1 -1
  9. package/dist/clay-utils.js +1 -1
  10. package/dist/clay.js +1 -1
  11. package/dist/clay.standalone.js +30285 -26613
  12. package/dist/m/c-277QP5ET.js +1 -0
  13. package/dist/m/c-2BLVA6IN.js +5 -0
  14. package/dist/m/c-2OJMOUPC.js +1 -0
  15. package/dist/m/c-2PVGJFI5.js +1 -0
  16. package/dist/m/{c-AYVGD6A6.js → c-3UW5EJ77.js} +1 -1
  17. package/dist/m/{c-T5NK2TVY.js → c-42ZNV7LI.js} +1 -1
  18. package/dist/m/{c-3TLG3OLG.js → c-46LJAZZJ.js} +1 -1
  19. package/dist/m/c-47IBJGPQ.js +1 -0
  20. package/dist/m/c-5FXEKU4Y.js +1 -0
  21. package/dist/m/c-5KXDKC5G.js +1 -0
  22. package/dist/m/{c-EUGJVHDD.js → c-5RZNFTWD.js} +1 -1
  23. package/dist/m/c-65LJU2H2.js +72 -0
  24. package/dist/m/{c-NQJRVJ56.js → c-6IJEVE6B.js} +1 -1
  25. package/dist/m/{c-NW54NHKE.js → c-6LEYVQJK.js} +1 -1
  26. package/dist/m/{c-GSRLXYWL.js → c-6Q6RGFBF.js} +1 -1
  27. package/dist/m/c-6RGEQNVV.js +1 -0
  28. package/dist/m/c-7CM4GMTS.js +6 -0
  29. package/dist/m/c-7NCWENHV.js +1 -0
  30. package/dist/m/c-7V6MGMX2.js +1 -0
  31. package/dist/m/{c-LKSL4AUJ.js → c-7WZSUTYP.js} +1 -1
  32. package/dist/m/c-A4L7APIU.js +1 -0
  33. package/dist/m/c-APGHGDZM.js +1 -0
  34. package/dist/m/c-AT7GLQGV.js +34 -0
  35. package/dist/m/{c-ZRXJD4G6.js → c-B7GOFGQR.js} +1 -1
  36. package/dist/m/{c-KDXIJEEF.js → c-BGN7RCTJ.js} +1 -1
  37. package/dist/m/c-BKM46LUJ.js +1 -0
  38. package/dist/m/c-BOMQIQ3V.js +1 -0
  39. package/dist/m/{c-62HZW5DH.js → c-C5AKJVRH.js} +1 -1
  40. package/dist/m/{c-BXYSDKAN.js → c-CJ7QYEWI.js} +1 -1
  41. package/dist/m/c-CTGRDT6E.js +1 -0
  42. package/dist/m/c-CV4T65JE.js +6 -0
  43. package/dist/m/c-CVSWLX3X.js +1 -0
  44. package/dist/m/c-CZHTXGJS.js +1 -0
  45. package/dist/m/c-D7NT5S4F.js +1 -0
  46. package/dist/m/c-DD26VXAP.js +1 -0
  47. package/dist/m/{c-ANNFZFLN.js → c-DDS23EY6.js} +1 -1
  48. package/dist/m/{c-ALDVFPWL.js → c-DFKBGSN2.js} +1 -1
  49. package/dist/m/c-DIKR7H57.js +147 -0
  50. package/dist/m/c-DXPOFLEJ.js +1 -0
  51. package/dist/m/c-EDE45NM7.js +1 -0
  52. package/dist/m/c-EILLN2H2.js +1 -0
  53. package/dist/m/c-EODTTNVA.js +1 -0
  54. package/dist/m/{c-G6COVIZB.js → c-ESK4S67I.js} +1 -1
  55. package/dist/m/c-FDWR3FL7.js +1 -0
  56. package/dist/m/{c-WQZTI5P2.js → c-FEC6LGFF.js} +1 -1
  57. package/dist/m/c-FLEIU6CG.js +1 -0
  58. package/dist/m/c-FQAQRXGK.js +1 -0
  59. package/dist/m/{c-W4JCVLAB.js → c-FSQXFG5T.js} +1 -1
  60. package/dist/m/c-FVPNX2GO.js +135 -0
  61. package/dist/m/c-FYDKYW6E.js +1 -0
  62. package/dist/m/c-GNI7WHKF.js +32 -0
  63. package/dist/m/c-GO635CRU.js +3 -0
  64. package/dist/m/c-H3FNLBHN.js +2 -0
  65. package/dist/m/c-HDVH3MVC.js +72 -0
  66. package/dist/m/c-HIX5H5L7.js +1 -0
  67. package/dist/m/c-HKSLOVU4.js +1 -0
  68. package/dist/m/{c-SGRIYOAJ.js → c-HL6BLJNA.js} +1 -1
  69. package/dist/m/c-HTLYXCUH.js +1 -0
  70. package/dist/m/{c-QIR5CAKM.js → c-IUL7PU4P.js} +1 -1
  71. package/dist/m/c-IXO7EI2Q.js +1 -0
  72. package/dist/m/{c-W5E5P2TZ.js → c-JQF2EUCG.js} +1 -1
  73. package/dist/m/{c-NEL7HQW3.js → c-JWDCQL6J.js} +1 -1
  74. package/dist/m/c-KQKKIVLW.js +20 -0
  75. package/dist/m/c-LATNQ6Q5.js +1 -0
  76. package/dist/m/c-LD6UVV5R.js +1 -0
  77. package/dist/m/c-LS7IVQVW.js +1 -0
  78. package/dist/m/{c-JCOQVZYS.js → c-LSVN3OLG.js} +1 -1
  79. package/dist/m/{c-JDZDF2QM.js → c-LTSPHVAK.js} +1 -1
  80. package/dist/m/c-MFOSMAVM.js +3 -0
  81. package/dist/m/c-MJ7GVE46.js +1 -0
  82. package/dist/m/c-MP6S4AZU.js +6 -0
  83. package/dist/m/c-MQKSKQHG.js +2 -0
  84. package/dist/m/{c-UHUNXWKN.js → c-MQYEDF3Q.js} +1 -1
  85. package/dist/m/{c-IHUWUKIU.js → c-MR75YPRT.js} +1 -1
  86. package/dist/m/c-ND3Q2G2I.js +1 -0
  87. package/dist/m/c-NEQRFC4O.js +1 -0
  88. package/dist/m/{c-5FKRZNJV.js → c-NFQFV7OP.js} +1 -1
  89. package/dist/m/c-NHXOBD6A.js +1 -0
  90. package/dist/m/{c-QIKT6SKM.js → c-NICICT4P.js} +1 -1
  91. package/dist/m/c-NQAPWM7O.js +1 -0
  92. package/dist/m/{c-QUGCKMWF.js → c-NVU3DORS.js} +1 -1
  93. package/dist/m/{c-LWIDDWAR.js → c-OCYG4NBQ.js} +22 -22
  94. package/dist/m/c-OH2FPYSY.js +19 -0
  95. package/dist/m/c-OYHI67B6.js +1 -0
  96. package/dist/m/{c-R2XUODVY.js → c-OYW5MFPZ.js} +1 -1
  97. package/dist/m/{c-5B4YBZXC.js → c-P2HKMJAW.js} +1 -1
  98. package/dist/m/{c-TSBVMWAH.js → c-PCNJETUA.js} +1 -1
  99. package/dist/m/c-PDBNCJCT.js +1 -0
  100. package/dist/m/c-PGSBXHUE.js +1 -0
  101. package/dist/m/{c-5TIZ2I64.js → c-PYG2NGWU.js} +1 -1
  102. package/dist/m/c-Q26XHBLQ.js +1 -0
  103. package/dist/m/c-Q6BG3ZLO.js +1 -0
  104. package/dist/m/c-QENKN7QI.js +1 -0
  105. package/dist/m/c-QQFHEODI.js +1 -0
  106. package/dist/m/c-QTEUO2K6.js +1 -0
  107. package/dist/m/c-R23UHMXG.js +1 -0
  108. package/dist/m/c-RETTCOWO.js +10 -0
  109. package/dist/m/c-SE3SIY7Y.js +7 -0
  110. package/dist/m/{c-XX75FFNL.js → c-SGGGCIVD.js} +1 -1
  111. package/dist/m/c-SGH3UTF3.js +1 -0
  112. package/dist/m/c-SIM7Z3U7.js +1 -0
  113. package/dist/m/{c-X5LNHET5.js → c-SKMIR5HQ.js} +1 -1
  114. package/dist/m/{c-R27DWQKX.js → c-STRI73GQ.js} +1 -1
  115. package/dist/m/c-SUXHUL7U.js +1 -0
  116. package/dist/m/c-SXGEWPFC.js +10 -0
  117. package/dist/m/c-SXNSSHPP.js +1 -0
  118. package/dist/m/c-T3P3AXEW.js +1 -0
  119. package/dist/m/{c-PXLTUYZC.js → c-TFLRT5JX.js} +1 -1
  120. package/dist/m/{c-YCLU4UNT.js → c-TGIMBAWE.js} +1 -1
  121. package/dist/m/c-TGSHHFO6.js +1 -0
  122. package/dist/m/c-U4NTUVDZ.js +1 -0
  123. package/dist/m/c-UOOIF2AL.js +1 -0
  124. package/dist/m/{c-6TYGD5AB.js → c-UOUUI265.js} +1 -1
  125. package/dist/m/c-V2U3F4QX.js +1 -0
  126. package/dist/m/c-V2V5FKXX.js +1 -0
  127. package/dist/m/c-VBXRXTVS.js +26 -0
  128. package/dist/m/c-VHSMPITY.js +1 -0
  129. package/dist/m/c-VPXCXBDT.js +1 -0
  130. package/dist/m/c-WCG6AKA7.js +1 -0
  131. package/dist/m/c-WNOLMHI2.js +1 -0
  132. package/dist/m/{c-CRPIDGXC.js → c-X6MOYATI.js} +1 -1
  133. package/dist/m/{c-FQGHR32O.js → c-X75G43SZ.js} +1 -1
  134. package/dist/m/c-XB6EAIAR.js +13 -0
  135. package/dist/m/c-XMIDHEKF.js +1 -0
  136. package/dist/m/c-XUZMRQ7O.js +4 -0
  137. package/dist/m/{c-2Z22FCFK.js → c-XW5TIYYB.js} +1 -1
  138. package/dist/m/c-YDW4VCHP.js +1 -0
  139. package/dist/m/{c-QGAPG7OM.js → c-YLHTD3KX.js} +1 -1
  140. package/dist/m/c-YNIEIPBS.js +1 -0
  141. package/dist/m/c-Z4G2UK6T.js +4 -0
  142. package/dist/m/c-Z6MROEQ4.js +1 -0
  143. package/dist/m/c-ZFO5RW6G.js +2 -0
  144. package/dist/m/c-ZGCO4J3H.js +8 -0
  145. package/dist/m/c-ZKKAF4UT.js +3 -0
  146. package/dist/m/c-ZRGEN6QQ.js +4 -0
  147. package/dist/m/core/{admin-attrs-U7IJNYBG.js → admin-attrs-ONRWVXPK.js} +1 -1
  148. package/dist/m/core/{autosave-F5YQCKVL.js → autosave-TBKAAAFB.js} +1 -1
  149. package/dist/m/core/conflict-notice-FOEE6I7E.js +1 -0
  150. package/dist/m/core/draft-mode-4MCL3LYI.js +1 -0
  151. package/dist/m/core/{host-permission-6EVJGNPL.js → host-permission-X4BENZEU.js} +1 -1
  152. package/dist/m/core/{is-edit-mode-GCX6767E.js → is-edit-mode-FFHCQ5DR.js} +1 -1
  153. package/dist/m/core/{persist-CJXIL7D4.js → persist-6ILUR34S.js} +1 -1
  154. package/dist/m/core/{recovery-DRFZRJED.js → recovery-APWADU4K.js} +1 -1
  155. package/dist/m/core/save-6HT2LABE.js +1 -0
  156. package/dist/m/core/save-core-EVMNZQ4V.js +1 -0
  157. package/dist/m/core/site-edits-G4BOZMV4.js +1 -0
  158. package/dist/m/core/{unsaved-warning-HNQVTA2D.js → unsaved-warning-ITZDIZ2I.js} +1 -1
  159. package/dist/m/internals/{index-NRPNDTSA.js → index-HS3CQDFW.js} +1 -1
  160. package/dist/m/loader-GLLVDUZA.js +1 -0
  161. package/dist/m/manifest-50FF1C45.js +1 -0
  162. package/dist/m/manifest-edit-BE1A621D.js +1 -0
  163. package/dist/m/manifest.json +2072 -1811
  164. package/dist/m/page/editor-KAZDJNND.js +307 -0
  165. package/dist/m/plugins/ai-edit-LABECCSN.js +6 -0
  166. package/dist/m/plugins/{cms-H7DTMUQX.js → cms-T2HLI7JG.js} +16 -16
  167. package/dist/m/plugins/{demo-42BSYQ7T.js → demo-T7B4RIKL.js} +1 -1
  168. package/dist/m/plugins/{derive-QVI3LI3A.js → derive-6LPJOCAV.js} +1 -1
  169. package/dist/m/plugins/indicator-J4ABFARX.js +1 -0
  170. package/dist/m/plugins/{live-DCUBKXY4.js → live-PGBIEMGB.js} +1 -1
  171. package/dist/m/plugins/menu-YZL3X2AJ.js +1 -0
  172. package/dist/m/plugins/page-WOCNX2IN.js +2 -0
  173. package/dist/m/plugins/page-view-SJODOOGE.js +1 -0
  174. package/dist/m/plugins/{people-5XRNRP5U.js → people-C4TCWFOQ.js} +1 -1
  175. package/dist/m/plugins/{quickcrop-WWF5I422.js → quickcrop-X5MRIBAP.js} +2 -2
  176. package/dist/m/plugins/richclay-Y2NV44NA.js +549 -0
  177. package/dist/m/plugins/sortable-XCHQG65Z.js +1 -0
  178. package/dist/m/plugins/{source-6BKMK4PO.js → source-YK7MO23W.js} +1 -1
  179. package/dist/m/plugins/{undo-3JEYK5QY.js → undo-VLRBQNPN.js} +1 -1
  180. package/dist/m/plugins/upgrade-NNTJBSK2.js +1 -0
  181. package/dist/m/plugins/{upload-TTCQRIM5.js → upload-ZKKJV76X.js} +1 -1
  182. package/dist/m/plugins/visitor-drafts-RTZNONHT.js +20 -0
  183. package/dist/m/plugins/{visitor-drafts-owner-Z5B2OQBR.js → visitor-drafts-owner-LHUHFU3L.js} +1 -1
  184. package/dist/m/plugins/{visitor-menu-4LQMKLPP.js → visitor-menu-FY4KM2SW.js} +1 -1
  185. package/dist/m/plugins/wire-M2NR354P.js +1 -0
  186. package/dist/m/{reader-core-POFQCKRV.js → reader-core-T2S3JC4E.js} +2 -2
  187. package/dist/m/sync/live-sync-Z64YREWQ.js +1 -0
  188. package/dist/m/ui/index-MGTWOW2C.js +1 -0
  189. package/dist/m/vendor/{sap-core.vendor-OA5SKL7Q.js → sap-core.vendor-QAEPMETX.js} +1 -1
  190. package/dist/offline-manifest.json +1250 -1082
  191. package/dist/server/core.cjs +132 -109
  192. package/dist/server/page-compaction-worker.cjs +5 -5
  193. package/dist/server/rooms.mjs +3 -1
  194. package/docs/guide.md +89 -44
  195. package/entries/clay-data.js +1 -1
  196. package/entries/sap.js +1 -1
  197. package/package.json +5 -3
  198. package/src/blockeditor/themes/content.css +70 -0
  199. package/src/blockeditor/themes/light-1.css +431 -0
  200. package/src/blockeditor/themes/light-1.source.css +270 -0
  201. package/src/blockeditor/themes/light-2.css +211 -0
  202. package/src/blockeditor/themes/light-3.css +130 -0
  203. package/src/blockeditor/themes/light-4.css +299 -0
  204. package/src/core/conflict-notice.js +28 -0
  205. package/src/core/draft-mode.js +6 -0
  206. package/src/core/host-meta.js +6 -6
  207. package/src/core/is-edit-mode.js +9 -3
  208. package/src/core/mode-support.js +3 -0
  209. package/src/core/mode-switch.js +4 -4
  210. package/src/core/mode-transition.js +3 -1
  211. package/src/core/page-format-wire.js +1 -1
  212. package/src/core/page-format.js +8 -8
  213. package/src/core/save-accepted.js +6 -7
  214. package/src/core/save-core.js +52 -23
  215. package/src/core/save-failure-notice.js +37 -0
  216. package/src/core/save-feedback.js +6 -0
  217. package/src/core/save-replace.js +1 -1
  218. package/src/core/save-size.js +2 -2
  219. package/src/core/save.js +78 -15
  220. package/src/core/site-edits.js +166 -0
  221. package/src/core/unsaved-warning.js +2 -2
  222. package/src/core/upgrade-run.js +4 -4
  223. package/src/lib/ai-comment.js +23 -0
  224. package/src/lib/effect.js +8 -0
  225. package/src/lib/idb-error-code.js +20 -0
  226. package/src/live/fast-lane.js +10 -10
  227. package/src/live/local-lane.js +10 -10
  228. package/src/live/page-compaction.js +8 -8
  229. package/src/live/server-lane.js +1 -1
  230. package/src/loader-logic.js +48 -18
  231. package/src/loader.js +11 -6
  232. package/src/page/adopt-boot.js +1 -1
  233. package/src/page/adopt.js +2 -2
  234. package/src/page/ai-area.js +182 -0
  235. package/src/page/ai-preview.js +80 -0
  236. package/src/page/ai-surface.js +257 -0
  237. package/src/page/ai-tool.js +308 -145
  238. package/src/page/announce.js +2 -2
  239. package/src/page/awareness.js +18 -18
  240. package/src/page/blocks.js +35 -34
  241. package/src/page/blocksel.js +2 -2
  242. package/src/page/board-drag.js +11 -11
  243. package/src/page/board-face.js +1 -1
  244. package/src/page/board-panel.js +26 -26
  245. package/src/page/board-style.js +127 -127
  246. package/src/page/board-view.js +48 -48
  247. package/src/page/chart.js +29 -29
  248. package/src/page/checkpoint-proof.js +19 -19
  249. package/src/page/chrome.js +74 -65
  250. package/src/page/clipboard-shape.js +1 -1
  251. package/src/page/csv-import.js +4 -4
  252. package/src/page/drag.js +5 -5
  253. package/src/page/editor.js +301 -296
  254. package/src/page/export-html.js +8 -8
  255. package/src/page/features/checklist.js +36 -36
  256. package/src/page/features/export-html.js +19 -19
  257. package/src/page/features/export-markdown.js +10 -10
  258. package/src/page/features/import-markdown.js +13 -13
  259. package/src/page/features/media.js +50 -50
  260. package/src/page/features/table.js +17 -17
  261. package/src/page/features/title-cover.js +17 -17
  262. package/src/page/features/title-icon.js +7 -7
  263. package/src/page/features/toc.js +1 -1
  264. package/src/page/features/tool.js +42 -18
  265. package/src/page/format-command.js +4 -4
  266. package/src/page/format-gate.js +6 -6
  267. package/src/page/format-host.js +6 -6
  268. package/src/page/format-level.js +3 -3
  269. package/src/page/format-native-commands.js +2 -2
  270. package/src/page/highlight-slot.js +1 -1
  271. package/src/page/highlight.js +4 -4
  272. package/src/page/history-intent.js +2 -2
  273. package/src/page/image-actions.js +4 -4
  274. package/src/page/link.js +10 -10
  275. package/src/page/media.js +3 -3
  276. package/src/page/mention-picker.js +7 -7
  277. package/src/page/merge.js +1 -1
  278. package/src/page/placeholder.js +3 -3
  279. package/src/page/projection.js +11 -11
  280. package/src/page/reader-patch.js +2 -2
  281. package/src/page/recover.js +26 -26
  282. package/src/page/recovery-ui.js +28 -28
  283. package/src/page/rich/chart.js +1 -1
  284. package/src/page/rich/page-tool.js +21 -6
  285. package/src/page/rich/tool-runtime.js +3 -2
  286. package/src/page/save-projection.js +2 -2
  287. package/src/page/save-states.js +9 -9
  288. package/src/page/schema.js +9 -9
  289. package/src/page/table-style.js +21 -21
  290. package/src/page/toc-link.js +1 -1
  291. package/src/page/tool-capability.js +8 -3
  292. package/src/page/tool-transport.js +52 -0
  293. package/src/page/tool-views.js +4 -0
  294. package/src/page/tools.js +6 -1
  295. package/src/page/view.js +6 -6
  296. package/src/page/ybind/binding.js +1 -1
  297. package/src/page/ybind/conversion.js +1 -1
  298. package/src/page/ybind/layout.js +4 -4
  299. package/src/page/ybind/migrate.js +1 -1
  300. package/src/page/ybind/origins.js +2 -2
  301. package/src/page/ybind/provider.js +2 -2
  302. package/src/page/ybind/recovery-proof.js +3 -3
  303. package/src/page/ybind/recovery-replay.js +2 -2
  304. package/src/plugins/ai-edit/picker.js +235 -0
  305. package/src/plugins/ai-edit.js +220 -34
  306. package/src/plugins/indicator-chip.js +39 -34
  307. package/src/plugins/indicator.js +13 -4
  308. package/src/plugins/live.js +21 -13
  309. package/src/plugins/menu/actions.js +89 -17
  310. package/src/plugins/menu/seo.js +32 -6
  311. package/src/plugins/menu/shell-style.js +26 -7
  312. package/src/plugins/menu/shell.js +12 -7
  313. package/src/plugins/menu/variants.js +6 -10
  314. package/src/plugins/menu/visitor.js +44 -34
  315. package/src/plugins/menu.js +3 -2
  316. package/src/plugins/page-view.js +2 -2
  317. package/src/plugins/page.js +257 -98
  318. package/src/plugins/sortable.js +7 -0
  319. package/src/plugins/upgrade.js +2 -1
  320. package/src/plugins/visitor-drafts/commit.js +303 -0
  321. package/src/plugins/visitor-drafts/idb.js +221 -0
  322. package/src/plugins/visitor-drafts/intro-style.js +1 -1
  323. package/src/plugins/visitor-drafts/intro.js +8 -25
  324. package/src/plugins/visitor-drafts/prompt.js +30 -4
  325. package/src/plugins/visitor-drafts/session.js +345 -0
  326. package/src/plugins/visitor-drafts/store.js +351 -32
  327. package/src/plugins/visitor-drafts.js +158 -27
  328. package/src/server/checkpoint/index.js +8 -8
  329. package/src/server/rooms/index.js +2 -2
  330. package/src/server/rooms/live-data-rooms.js +35 -35
  331. package/src/server/rooms/live-page-history.js +2 -2
  332. package/src/server/rooms/page-admission.js +34 -6
  333. package/src/server/rooms/page-conversion.js +1 -1
  334. package/src/server/rooms/page-lineage.js +4 -4
  335. package/src/server/rooms/page-rebase.js +4 -4
  336. package/src/server/rooms/page-room-conformance.js +14 -14
  337. package/src/server/rooms/page-state.js +2 -2
  338. package/src/server/rooms/page-write-admission.js +7 -7
  339. package/src/server/rooms/page-write-guard.js +3 -3
  340. package/src/sync/data-guard-notice.js +265 -0
  341. package/src/sync/live-sync.js +54 -11
  342. package/src/sync/page-relay.js +4 -4
  343. package/src/sync/presence-store.js +1 -1
  344. package/src/sync/presence-target.js +3 -3
  345. package/src/sync/presence.js +1 -1
  346. package/src/sync/stream.js +54 -13
  347. package/src/sync/wire-profile.js +8 -3
  348. package/src/ui/bevel.js +1 -1
  349. package/src/ui/index.js +9 -10
  350. package/src/ui/skins/cms.js +1 -1
  351. package/src/ui/skins/quickcrop.js +1 -1
  352. package/src/ui/skins/richclay.js +2 -2
  353. package/src/ui/toast-lazy.js +12 -3
  354. package/src/ui/toast.js +9 -3
  355. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  356. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  357. package/src/vendor/hypercms.vendor.js +16 -16
  358. package/src/vendor/richclay.vendor.js +48 -20
  359. package/src/vendor/sap-core.vendor.js +1 -1
  360. package/tool-generation/context.md +44 -0
  361. package/tool-generation/system.md +23 -0
  362. package/dist/m/c-24PMUJIV.js +0 -2
  363. package/dist/m/c-2AYVYEI4.js +0 -1
  364. package/dist/m/c-2AZDZWCK.js +0 -1
  365. package/dist/m/c-2L6O5PDS.js +0 -6
  366. package/dist/m/c-2RYOGUQM.js +0 -2
  367. package/dist/m/c-2ZVOEU4M.js +0 -1
  368. package/dist/m/c-37NAONZA.js +0 -1
  369. package/dist/m/c-3GJ4SDE2.js +0 -1
  370. package/dist/m/c-3O7OBDCM.js +0 -1
  371. package/dist/m/c-5OJ7YF2N.js +0 -1
  372. package/dist/m/c-5WMXEKFH.js +0 -135
  373. package/dist/m/c-6RDOKLN7.js +0 -1
  374. package/dist/m/c-A4IP6MBC.js +0 -1
  375. package/dist/m/c-A6L3FMUS.js +0 -1
  376. package/dist/m/c-ATKAOH23.js +0 -1
  377. package/dist/m/c-B6O7AJYG.js +0 -32
  378. package/dist/m/c-BCGWJYXW.js +0 -1
  379. package/dist/m/c-BGKAT2FL.js +0 -7
  380. package/dist/m/c-BYTKL6UX.js +0 -1
  381. package/dist/m/c-DHBRA6DL.js +0 -1
  382. package/dist/m/c-DTMZ3ZHI.js +0 -1
  383. package/dist/m/c-E3ZXARWA.js +0 -1
  384. package/dist/m/c-EK63G3CG.js +0 -1
  385. package/dist/m/c-ELYIIYRS.js +0 -1
  386. package/dist/m/c-EXKHPOVC.js +0 -3
  387. package/dist/m/c-FCSZ3DC5.js +0 -20
  388. package/dist/m/c-FTWGYI5E.js +0 -1
  389. package/dist/m/c-G4PWUDD5.js +0 -1
  390. package/dist/m/c-GBKB5WDL.js +0 -2
  391. package/dist/m/c-GBTVCJXC.js +0 -1
  392. package/dist/m/c-GC2HICFJ.js +0 -1
  393. package/dist/m/c-GRWMD6O5.js +0 -1
  394. package/dist/m/c-HCNWJE4A.js +0 -4
  395. package/dist/m/c-HG2C77BM.js +0 -4
  396. package/dist/m/c-JGHEACGK.js +0 -1
  397. package/dist/m/c-JGLX6TBK.js +0 -1
  398. package/dist/m/c-JNRKHYWO.js +0 -1
  399. package/dist/m/c-KBS3UV6B.js +0 -1
  400. package/dist/m/c-KQ7E3PYY.js +0 -1
  401. package/dist/m/c-L3F5ZLIV.js +0 -1
  402. package/dist/m/c-L4KMT7FO.js +0 -6
  403. package/dist/m/c-L5VFATT6.js +0 -1
  404. package/dist/m/c-LCYPMULG.js +0 -1
  405. package/dist/m/c-LIGQYZ7M.js +0 -6
  406. package/dist/m/c-LKIWEPAV.js +0 -1
  407. package/dist/m/c-MPSKIU2I.js +0 -1
  408. package/dist/m/c-N7JPUPGC.js +0 -1
  409. package/dist/m/c-NK33MMYF.js +0 -1
  410. package/dist/m/c-NQLWOHLH.js +0 -10
  411. package/dist/m/c-NTHUTABN.js +0 -1
  412. package/dist/m/c-NWX3MFT4.js +0 -1
  413. package/dist/m/c-OKXI52N7.js +0 -1
  414. package/dist/m/c-OPONJ2UK.js +0 -128
  415. package/dist/m/c-OWQWOGYI.js +0 -1
  416. package/dist/m/c-P6Q2ZTFQ.js +0 -1
  417. package/dist/m/c-QEN6HZCA.js +0 -1
  418. package/dist/m/c-QIXT3Q7C.js +0 -28
  419. package/dist/m/c-QM5LXRDT.js +0 -9
  420. package/dist/m/c-QYYUVLVG.js +0 -1
  421. package/dist/m/c-RQRMPZXD.js +0 -1
  422. package/dist/m/c-SBCBXKOZ.js +0 -26
  423. package/dist/m/c-SKF5HL4I.js +0 -4
  424. package/dist/m/c-SRPC3VBE.js +0 -1
  425. package/dist/m/c-TANBH7FI.js +0 -1
  426. package/dist/m/c-THGQQDYY.js +0 -1
  427. package/dist/m/c-UD5JZTDL.js +0 -1
  428. package/dist/m/c-UDGEFWNU.js +0 -1
  429. package/dist/m/c-UGNV5MFB.js +0 -1
  430. package/dist/m/c-VIRFF5HG.js +0 -8
  431. package/dist/m/c-VJYEVRYK.js +0 -1
  432. package/dist/m/c-VQCEOGKH.js +0 -13
  433. package/dist/m/c-VYJ7O4RI.js +0 -34
  434. package/dist/m/c-W7IPVCAA.js +0 -1
  435. package/dist/m/c-WBGWGOM7.js +0 -1
  436. package/dist/m/c-WJ5DRBHT.js +0 -72
  437. package/dist/m/c-X5WC4PX5.js +0 -1
  438. package/dist/m/c-XCFQEWW6.js +0 -3
  439. package/dist/m/c-XGH4GS2T.js +0 -1
  440. package/dist/m/c-XLQ3BDMM.js +0 -1
  441. package/dist/m/c-ZQXNHZZT.js +0 -72
  442. package/dist/m/core/conflict-notice-42H4ASLA.js +0 -1
  443. package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
  444. package/dist/m/core/save-ESPSQPLV.js +0 -1
  445. package/dist/m/core/save-core-6SQHOR6W.js +0 -1
  446. package/dist/m/loader-FBDE2UAB.js +0 -1
  447. package/dist/m/manifest-1D2F5CA5.js +0 -1
  448. package/dist/m/manifest-edit-F7CC5CFD.js +0 -1
  449. package/dist/m/page/editor-OSKOW6RS.js +0 -304
  450. package/dist/m/plugins/ai-edit-VV4QTINH.js +0 -6
  451. package/dist/m/plugins/indicator-WVPGMOZ7.js +0 -1
  452. package/dist/m/plugins/menu-Q4MFFQ6E.js +0 -1
  453. package/dist/m/plugins/page-OAWUJQEL.js +0 -2
  454. package/dist/m/plugins/page-view-DZ26ZDDQ.js +0 -1
  455. package/dist/m/plugins/richclay-PGOOJ4OK.js +0 -517
  456. package/dist/m/plugins/sortable-266HY6TR.js +0 -1
  457. package/dist/m/plugins/upgrade-BNZVFHMZ.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +0 -20
  459. package/dist/m/plugins/wire-W2EV36KZ.js +0 -1
  460. package/dist/m/sync/live-sync-XGUPHI3I.js +0 -1
  461. package/dist/m/ui/index-VGYAKAKI.js +0 -1
  462. package/dist/page/themes/light-1.css +0 -431
  463. package/src/page/themes/content.css +0 -70
  464. package/src/page/themes/light-1.css +0 -431
  465. package/src/page/themes/light-1.source.css +0 -270
  466. package/src/page/themes/light-2.css +0 -211
  467. package/src/page/themes/light-3.css +0 -130
  468. package/src/page/themes/light-4.css +0 -299
  469. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  470. /package/dist/m/plugins/{quickcrop-WWF5I422.js.LEGAL.txt → quickcrop-X5MRIBAP.js.LEGAL.txt} +0 -0
  471. /package/dist/m/plugins/{richclay-PGOOJ4OK.js.LEGAL.txt → richclay-Y2NV44NA.js.LEGAL.txt} +0 -0
@@ -1,30 +1,30 @@
1
- import{a as Ct,b as It,c as At,d as ze,e as Ye,f as Kn,g as Tt,h as Hn,i as qn,j as Pt,l as Rt}from"./c-QIKT6SKM.js";import{a as Et,b as Jn,c as Ro,f as Yo}from"./c-P6Q2ZTFQ.js";import{a as Bn,b as Dn,c as zn,d as it,e as Mt,f as $o}from"./c-DHBRA6DL.js";import{a as Po}from"./c-L3F5ZLIV.js";import{b as Co,c as Io}from"./c-JDZDF2QM.js";import"./c-IW6GGOU2.js";import"./c-HAWFNBYG.js";import{a as Re,b as $n,p as Nn,q as Fn,u as Ao,v as To}from"./c-LIGQYZ7M.js";import{A as Cn,B as Be,C as ot,D as In,E as An,F as De,G as Tn,H as Pe,I as rt,J as Pn,K as xt,L as Rn,M as st,N as Yn,O as ue,a as Le,b as bt,c as yn,d as vn,f as wn,j as xn,m as Eo,p as Sn,q as On,r as Mn,s as En,t as yt,v as vt,x as wt,z as Oe}from"./c-EXKHPOVC.js";import{a as me,b as pn,d as Me,e as _e,g as xe,h as Ne,i as ye,j as Ee,k as mn,l as Fe,m as nt,n as be,o as hn,p as gn,q as Se,r as Ce,u as bn,v as kn,w as kt}from"./c-L5VFATT6.js";import"./c-6RDOKLN7.js";import"./c-DTMZ3ZHI.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import{f as Zt,g as en,i as Qe,j as Ze,k as ut,n as dt,o as et,p as tn,s as pt,t as nn,u as Ae,v as de,w as Te,x as mt,y as on}from"./c-WMRJKQ2V.js";import{g as Ln,o as Ot}from"./c-HCNWJE4A.js";import{F as an,N as ht,Q as gt,R as fn,b as pe,c as rn,e as sn,m as fe,oa as je,p as ln,r as cn,ra as un,sa as dn,ua as tt}from"./c-QIXT3Q7C.js";import{b as Ut}from"./c-QY7F6EN6.js";import{a as jn,b as _n,c as St}from"./c-LCYPMULG.js";import{a as Xt}from"./c-TCCA5BZN.js";import"./c-3LDGIBMN.js";import{c as Qt}from"./c-57XDY6HC.js";import"./c-YK2L436K.js";import{a as Gt,b as ft}from"./c-FILLTJA7.js";import"./c-TWCXBWS3.js";import{d as Vt,e as Wt}from"./c-2ZVOEU4M.js";import"./c-4ASQPRQL.js";import"./c-GQ6F6IDK.js";import"./c-I2SCCUEW.js";import"./c-5VYOWDTI.js";import"./c-GSRLXYWL.js";import"./c-X5LNHET5.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-LA2BW7UY.js";import"./c-XCFQEWW6.js";import"./c-ATKAOH23.js";import"./c-EK63G3CG.js";import"./c-NQJRVJ56.js";import"./c-XGH4GS2T.js";import"./c-IJUK2GPW.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-PWJSJEJU.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var Yt=new Set(["paragraph","heading","list_item","callout","quote","code_block","toggle"]),Je=(e,o)=>je(e)===je(o);function $t(e,o){let n=o.createElement("article");return n.setAttribute("data-page",""),n.innerHTML=dn([{id:e.id,t:"paragraph",c:e.c??"",...e.m?{m:e.m}:{}}],{clean:un(o)}),n}function jo(e,o){let n=new Map(e.map((f,u)=>[f.id,u])),r=new Set(o.map(f=>f.id)),t=new Map,s=0;return o.map(f=>{let u=n.get(f.id);if(u!==void 0)return s=u+1,f;let p={c:f.c??"",m:f.m??null};for(let b=s;b<e.length;b++){let C=e[b];if(!(r.has(C.id)||C.t!==f.t||!Je({c:C.c??"",m:C.m??null},p)))return r.add(C.id),s=b+1,t.set(f.id,C.id),{...f,id:C.id}}return f}).map(f=>t.has(f.parent)?{...f,parent:t.get(f.parent)}:f)}function jt(e,o,n,{doc:r,merge3:t,mergeJson:s}){let a=[],f=jo(e,n),u=new Map(e.map(c=>[c.id,c])),p=new Map(o.map(c=>[c.id,c])),b=new Map(f.map(c=>[c.id,c])),C=o.map(c=>({...c})),M=f.map(c=>({...c})),h=new Map(C.map(c=>[c.id,c])),w=new Map(M.map(c=>[c.id,c]));for(let[c,E]of u){let i=p.get(c),g=b.get(c);if(!i||!g||!Yt.has(E.t)||!Yt.has(i.t)||!Yt.has(g.t))continue;let A={c:E.c??"",m:E.m??null},z={c:i.c??"",m:i.m??null},W={c:g.c??"",m:g.m??null};if(Je(z,A)||Je(W,A)||Je(z,W))continue;if(E.t==="code_block"){for(let P of[h.get(c),w.get(c)])P.c=g.c??"",g.m?P.m=g.m:delete P.m;a.push({id:c,kind:"text",local:i.c??"",remote:g.c??""});continue}let T=t($t(E,r),$t(i,r),$t(g,r));for(let P of T.conflicts)a.push({id:c,kind:"text",local:P.local?.textContent??null,remote:P.remote?.textContent??null});let[U]=tt(T.root,{seed:"",known:new Map});for(let P of[h.get(c),w.get(c)])P.c=U.c,U.m?P.m=U.m:delete P.m}let y=o.map(c=>c.id);for(let[c,E]of u){let i=h.get(c);if(!i||b.has(c)||Je(p.get(c),E))continue;let g=y.indexOf(c)-1;for(;g>=0&&!w.has(y[g]);)g--;let A=g<0?0:M.findIndex(z=>z.id===y[g])+1;M.splice(A,0,{...i}),w.set(c,M[A]),a.push({id:c,kind:"kept-edit"})}let N=s(e,C,M,{onConflict:c=>a.push({kind:"field",path:c.path,local:c.local,remote:c.remote,resolved:c.resolved})}),B=new Set(N.map(c=>c.id)),v=c=>(p.get(c)??u.get(c)??b.get(c))?.parent??null,L=N.map(c=>{let E=c.parent??null;for(;E&&!B.has(E);)E=v(E);return E===(c.parent??null)?c:{...c,parent:E}}),Y=new Map(L.map(c=>[c.id,c.parent??null])),$=c=>{let E=new Set([c]);for(let i=Y.get(c);i;i=Y.get(i)){if(E.has(i))return!0;E.add(i)}return!1};for(let c of L)if($(c.id)){for(let E of[p.get(c.id)?.parent,u.get(c.id)?.parent,null])if(Y.set(c.id,E&&B.has(E)?E:null),!$(c.id))break}return{items:L.map(c=>(c.parent??null)===Y.get(c.id)?c:{...c,parent:Y.get(c.id)}),conflicts:a}}var _o=e=>{try{return Xt(e)}catch{return null}},$e={ok:!0,outcome:"unchanged"},Ke={ok:!1,outcome:"disposed",reason:"adoption-disposed"},He={ok:!1,outcome:"refused",reason:"adoption-refused"},No={ok:!1,outcome:"refused",reason:"adoption-timeout"},Fo={ok:!1,outcome:"error",reason:"adoption-error"},Lo={ok:!0,outcome:"writer-adopts"},Vn=e=>({ok:!0,outcome:"adopted",counts:e}),Wn=1e4;function Bo(e){let o=e.querySelector(Et);return o?{article:o.cloneNode(!0),tags:Jn(e).map(n=>_o(n.textContent))}:null}function Un(e){return new Promise(o=>{if(!e.composing)return o();e.dom.addEventListener("compositionend",()=>setTimeout(()=>o(Un(e)),0),{once:!0})})}function Do({view:e,source:o=null,ready:n=Promise.resolve(),isAdopter:r=()=>!0,idle:t=()=>Un(e),requestCheckpoint:s=()=>{},notice:a=()=>{},snapshot:f=()=>null,mergeTagless:u=!1,seeded:p=!1,writerReady:b=()=>Promise.resolve(),adopted:C=()=>{},hold:M=Vt,release:h=Wt,holdMs:w=Wn,doc:y=document}){let N=o?o.article.innerHTML:null,B=o?o.article:null,v=new Map,L=P=>{let I=P.getAttribute("data-rev");if(!I)return;let K=v.get(I)??[];v.delete(I),v.set(I,K),K.push(P),K.length>10&&K.shift(),v.size>20&&v.delete(v.keys().next().value)};B&&L(B);let Y=Promise.resolve(),$=!1,x,c=new Promise(P=>x=P);async function E(){let P,I=new Promise(K=>{P=setTimeout(()=>K("timeout"),w)});try{return await Promise.race([Promise.resolve(n).then(()=>t()).then(()=>"ready"),c.then(()=>"disposed"),I])}finally{clearTimeout(P)}}function i(P,I,K,j){let{HyperMorph:Q}=Gt(),le=jt(K,I,j,{doc:y,merge3:Q.merge3,mergeJson:Q.mergeJson}),ee=le.conflicts.filter(D=>D.kind==="text"||D.kind==="field"),m=ee.length?f():null,l=Dn(P,le.items,I),k=l&&zn(e.state,l);if(!k)return null;e.dispatch(k),e.dispatch(sn.closeHistory(e.state.tr));let F={edited:l.edited.size,created:l.created.size,deleted:l.deleted.length,moved:l.reordered},{displaced:R}=k.getMeta(Bn);return Object.keys(R).length&&(F.displaced=R),ee.length&&(F.conflicts=ee),m&&(F.copy=m),F}async function g(P){if(u&&!P.tags.length)return A(P);let I=Mt(P.article,P.tags);if(I.kind==="unbased"&&console.warn("page: the article and its data changed together; kept the data"),I.kind!=="adopt")return $e;if(!r())return Lo;M();try{if(await ft(),$)return Ke;if(!r())return He;let K=await E();if(K==="timeout"&&console.warn("page: gave up waiting for the editor; the hand edit was not adopted"),K==="disposed"||$)return Ke;if(K!=="ready")return No;if(!r())return He;let j=ht(e.state.doc),Q=i(j,it(j,y),I.baseItems,I.parsed);return Q?(C(I.A),Vn(Q)):$e}finally{h()}}async function A(P){let I=P.article.getAttribute("data-rev"),K=I&&v.get(I)||[],j=K.at(-1)??B;if(K.slice(0,-1).some(Q=>Q.innerHTML===P.article.innerHTML)||(L(P.article),B=P.article,!j)||j.outerHTML===P.article.outerHTML)return $e;M();try{if(await ft(),$)return Ke;if(!r())return He;if(await b(),$)return Ke;if(!r())return He;if(await E()==="disposed"||$)return Ke;if(!r())return He;let le=ht(e.state.doc),ee=it(le,y),m=new Map(ee.map(F=>[F.id,F])),l=F=>tt(F,{seed:F.getAttribute("data-rev")??"",known:m}),k=i(le,ee,l(j),l(P.article));return k?Vn(k):$e}finally{h()}}async function z(P){try{return await g(P)}catch(I){return console.error("page: adoption failed",I),Fo}}let W=null;function T(P,I=!1){return Y=Y.then(()=>z(P)).then(K=>(I&&(W=K),!K.ok||K.outcome!=="adopted"||(s(),a(K.counts),y.dispatchEvent(new CustomEvent("clay:page-adopted",{detail:K.counts}))),K)),Y}function U(P){let I=P.detail?.html;if($||typeof I!="string")return;let K=Bo(new DOMParser().parseFromString(I,"text/html"));!K||K.article.innerHTML===N||(N=K.article.innerHTML,T(K))}return y.addEventListener("clay:sync-applied",U),o&&!p&&T(o,!0),{idle:async()=>(await Y,W),saved(P){if(!u||typeof P!="string")return;let I=new DOMParser().parseFromString(P,"text/html").querySelector(Et);I&&(L(I),B=I)},dispose(){$=!0,x(),y.removeEventListener("clay:sync-applied",U)}}}var Gn='["text-delete",',Xn=(e,o)=>o instanceof nn&&o._item&&o._item.parent===e.attrs&&typeof o._item.parentSub=="string"?o._item.parentSub:null,Qn=e=>e==="t"||e==="parent",_t=e=>e.content instanceof de&&e.content.embed.b!==void 0,zo=e=>e.content instanceof mt||e.content instanceof Te||e.content instanceof de&&e.content.embed.b===void 0,eo=e=>{let o=new Map;for(let n of e.stops)(o.get(n.client)??o.set(n.client,[]).get(n.client)).push(n);return o},to=(e,o)=>{let n=o.get(e.id.client);if(!n)return!1;let r=e.id.clock,t=r+e.length;return n.some(s=>s.clock<t&&r<s.clock+s.len)},Jo=(e,o)=>{for(let n=e.left;n;n=n.left){if(n.deleted){if(to(n,o))return null;continue}if(_t(n))return n}return null};function no(e,o,n){let r=eo(n),t=new Set,s=new Set,a=o.changed.get(e.tableFields)??new Set;for(let[h,w]of o.changed){if(h===e.flow)continue;if(h===e.attrs){if(!o.local)return null;for(let N of w){let B=e.attrs.get(N);if(!(B instanceof Ae)||B._item.left||B._item.id.clock<(o.beforeState.get(B._item.id.client)??0))return null;s.add(N)}if(s.size>1)return null;continue}if(h===e.tableFields){for(let N of w){let B=e.tableFields.has(N)?On(N,e.tableFields.get(N)):null;if(B===null)return null;t.add(B)}continue}let y=Xn(e,h);if(y!==null){for(let N of w)if(Qn(N))return null;t.add(y);continue}if(h!==e.gone)return null;for(let N of w)if(typeof N!="string"||!N.startsWith(Gn))return null}let f=e.ydoc.store,u=null,p=null,b=!1,C=h=>{if(!(h instanceof on))return!1;if(h.parent===e.gone)return typeof h.parentSub=="string"&&h.parentSub.startsWith(Gn);if(h.parent===e.tableFields)return a.has(h.parentSub);if(h.parent===e.attrs)return s.has(h.parentSub);if(h.parent!==e.flow){let y=Xn(e,h.parent);return y!==null&&(s.has(y)||t.has(y)&&!Qn(h.parentSub))}if(_t(h)){if(h.deleted||!s.has(h.content.embed.b))return!1;p=h}else if(!zo(h))return!1;let w=Jo(h,r);return!w||u&&w!==u?!1:(u=w,h.content instanceof Te&&(b=!0),!0)};for(let[h,w]of o.afterState)for(let y=o.beforeState.get(h)??0;y<w;){let N=et(f,{client:h,clock:y});if(!C(N))return null;y=N.id.clock+N.length}let M=!1;for(let[h,w]of o.deleteSet.clients)for(let{clock:y,len:N}of w)for(let B=y;B<y+N;){let v=et(f,{client:h,clock:B});if(!C(v))return null;M=!0,B=v.id.clock+v.length}return s.size&&!p?null:u||t.size?{marker:u,split:p,deleted:M,formats:b,fields:t,remote:!o.local}:null}var Ko=e=>{for(let o in e)return{...e};return null};function oo(e,o,n,r=null){let t=r?.formats??!0,s=r?.split??null,a=o.visible,f=-1,u=0;for(let i=0;i<a.length;i++){let g=a[i];if(g.brk&&g.brk.client===n.id.client&&g.brk.clock===n.id.clock){f=i;break}u+=g.len}if(f<0)return null;let p=a[f];if(p.implicit||p.atom||p.opaque||p.recovered||p.hide)return null;let b=p.runs.findIndex(i=>i.hole!==void 0);if(b>=0&&t||p.items&&o.copies.has(p.baseId))return null;let C=eo(o),M={...p.fmtIn??{}},h=null,w={...p,runs:[],len:1};p.items&&(w.items=[]);let y=w,N=!1,B=Ye(o.holes,u),v=B+1;for(let i=n.right;i;i=i.right){if(i.deleted){if(to(i,C))return null;continue}if(_t(i)&&(i!==s||y!==w)){N=!0;break}let g=v;i.countable&&(v+=i.length);let A=i.content;if(i===s){let z=A.embed.b,W=e.attrs.get(z)?.get("t")||"paragraph";if(!Object.hasOwn(fe.nodes,W)||!fe.nodes[W].isTextblock)return null;let T=Ko(M);w.fmtOut=T,y={kind:"b",id:z,baseId:z,brk:{client:i.id.client,clock:i.id.clock},implicit:!1,runs:[],len:1,atom:!1,items:null,fmtIn:T,fmtOut:null,t:W,opaque:!1},h=null;continue}if(A instanceof Te){A.value===null?delete M[A.key]:M[A.key]=A.value,h=null;continue}if(A instanceof de){y.runs.push({br:!0}),y.items&&y.items.push({at:g,id:Ee(i.id),client:i.id.client,clock:i.id.clock,length:i.length,kind:"br",text:null,blockId:null,raw:{...M}}),y.len+=1;continue}if(A instanceof mt){if(!h){let z=kn(M,y.t);h={marks:z,mk:bn(z)}}y.runs.push({text:A.str,marks:h.marks,mk:h.mk}),y.items&&y.items.push({at:g,id:Ee(i.id),client:i.id.client,clock:i.id.clock,length:i.length,kind:"text",text:A.str,blockId:null,raw:{...M}}),y.len+=A.str.length}else if(i.countable)return null}let L=p.len;if(b<0){if(!ye(M,p.fmtOut??{}))return null}else{if(!N||y.t!==p.t)return null;L=1;for(let i=0;i<b;i++)L+=p.runs[i].br?1:p.runs[i].text.length}let Y=y===w?[w]:[w,y],$=Y.reduce((i,g)=>i+g.len,0)-L,x=B+L,c=i=>i.at>=x?{...i,at:i.at+$}:i;y.fmtOut=p.fmtOut,b>=0&&(y.runs=y.runs.concat(p.runs.slice(b)),y.len+=p.len-L,y.items&&(y.items=y.items.concat(p.items.filter(i=>i.at>=x).map(c))));let E={...o,visible:a.slice(),tokens:o.tokens+$};if(E.visible.splice(f,1,...Y),$){let i=u+L;E.holes=o.holes.map(g=>g.at>=i?{at:g.at+$,len:g.len}:g),E.hidden=o.hidden.map(g=>g.at>=x?{...g,at:g.at+$,items:g.items.map(c)}:g);for(let g=f+Y.length;g<E.visible.length;g+=1){let A=E.visible[g];A.items?.length&&(E.visible[g]={...A,items:A.items.map(c)})}}return E}var Ho=e=>e.br?`
2
- `:e.hole!==void 0?{hole:e.hole}:{text:e.text,mk:e.mk},qo=e=>{let o=[];for(let n of e.map(Ho)){let r=o[o.length-1];r&&typeof r=="object"&&typeof n=="object"&&r.text!==void 0&&n.text!==void 0&&r.mk===n.mk?o[o.length-1]={text:r.text+n.text,mk:n.mk}:o.push(n)}return o},Zn=(e,o)=>{let n=et(e.ydoc.store,{client:o.client,clock:o.clock});return{client:n.id.client,clock:n.id.clock,len:n.length}},Ve=(e,o)=>rt({...o,copies:[...o.copies],fences:o.fences.map(n=>Zn(e,n)),stops:o.stops.map(n=>Zn(e,n)),visible:o.visible.map(n=>({...n,runs:qo(n.runs)}))});var ro=e=>e===!0?{}:e,so=(e,o)=>ye(ro(e),ro(o));function co(e,o,n,r){let t=e.attrs.get(o);t||(t=new Ae,e.attrs.set(o,t));let s=fe.nodes[n];if(!s){t.get("t")!==n&&t.set("t",n);for(let[p,b]of Object.entries(r??{}))p==="t"||p==="pos"||ye(t.has(p)?t.get(p):void 0,b)||t.set(p,b);return}let a=n==="table"&&t.get("t")==="table"&&!xt(o),f=n==="board"&&!xt(o),u=a?Mn(e.tableFields,o,En(e,o)):f?vt(e.boardFields,o):null;t.get("t")!==n&&t.set("t",n);for(let p of xe(s)){if(a&&(p==="rows"||p==="cols")||f&&(p==="columns"||p==="cards"))continue;let b=t.has(p)?t.get(p):Ne(s,p);ye(b,r[p])||t.set(p,r[p])}a&&yt(e,o,u,r),f&&wt(e,o,u,r)}function io(e,o){let n=new Map,r=o;for(let t=e.flow._start;t&&r>0;t=t.right){if(t.deleted)continue;let s=t.content;s instanceof Te?s.value===null?n.delete(s.key):n.set(s.key,s.value):t.countable&&(r-=t.length)}return n}function Vo(e){let o=new Set;for(let[r,t]of e)Ce(r)&&t&&o.add(r.split("!")[0]);let n=[];for(let[r,t]of e)!Ce(r)&&t!==null&&t!==void 0&&!o.has(r)&&fe.marks[Se(r)]&&n.push([r,t]);return n}function ao(e){let o=new Set;for(let[r,t]of e)Ce(r)&&t&&o.add(r.split("!")[0]);let n=[];for(let[r,t]of e)!Ce(r)&&t!==null&&t!==void 0&&!o.has(r)&&!fe.marks[Se(r)]&&n.push([r,t]);return n}function fo(e,o={}){let n={},r=!1;for(let[t,s]of e)(Ce(t)||fe.marks[Se(t)])&&(n[t]=s);for(let[t,s]of ao(e))r=!0,o[Se(t)]!==void 0&&(n[t]=s);return{attrs:n,opaque:r}}function Wo(e,o,n){let r=be(e),t={},s=Vo(o),a=new Set;for(let[u,p]of s){let b=Se(u),C=n[b];C!==void 0&&so(C,p)?a.add(b):t[`${u}!${r}`]=!0}for(let[u,p]of ao(o)){let b=Se(u);n[b]!==void 0&&so(n[b],p)&&a.add(b)}for(let[u,p]of Object.entries(n))a.has(u)||(t[`${u}~${be(e)}`]=p);let f=fo(o,n);if(!(!Object.keys(t).length&&!f.opaque))return{...f.attrs,...t}}var Nt=2e3;function Uo(e){let o=[],n=[],r=0;for(let t=0;t<e.length;t++)if(n.push(e[t]),r+=1,r>=Nt&&t+1<e.length){let s=e[t];if(s.k==="c"&&Fe(s.ch.charCodeAt(0)))continue;o.push(n),n=[],r=0}return n.length&&o.push(n),o}function lt(e,o,n,r=s=>s(),t=null){let s=o;for(let a of Uo(n))r(()=>{s+=Xo(e,s,a,t)});return s-o}var Go=(e,o,n)=>{if(!n||!n.length)return null;let r=o,t=e.flow._start;for(;t&&r>0;){if(!t.deleted&&t.countable){if(r<t.length)return null;r-=t.length}t=t.right}for(;t&&(t.deleted||!t.countable);t=t.right)if(t.deleted&&n.some(s=>s.client===t.id.client&&s.clock>=t.id.clock&&s.clock<t.id.clock+t.length))return t;return null},We=(e,o,n,r)=>{let t=Go(e,o,n);if(!t)return r();t.deleted=!1;try{return r()}finally{t.deleted=!0,e.flow._searchMarker&&(e.flow._searchMarker.length=0)}};function Xo(e,o,n,r=null){let t=o,s="",a=null,f=null,u=()=>{if(!s)return;let b=Wo(e,io(e,t),f??{});We(e,t,r,()=>e.flow.insert(t,s,b)),t+=s.length,s=""},p=b=>{let C=fo(io(e,t)).attrs;We(e,t,r,()=>e.flow.insertEmbed(t,b,C)),t+=1};for(let b of n)b.k==="c"?(a!==null&&b.mk!==a&&u(),a=b.mk,f=b.ma,s+=b.ch):b.k==="h"?(u(),a=null,p({br:1})):(u(),a=null,p({b:b.id}),co(e,b.id,b.t,b.attrs));return u(),t-o}var Qo=(e,o,n,r)=>{let t=0;for(let s=e.flow._start;s&&t<r;s=s.right){if(s.deleted||!s.countable)continue;let a=t;if(t+=s.length,t<=n||s.content instanceof de&&s.content.embed?.b!==void 0)continue;let f=Math.max(0,n-a),u=Math.min(s.length,r-a);u<=f||e.gone.set(An(s.id.client,s.id.clock+f,o.operationId),{length:u-f,actor:e.ydoc.clientID,sv:o.sv})}};function lo(e,o,n,r=null){for(let t=n.length-1;t>=0;t--){let[s,a]=n[t];if(a<=s)continue;let f=o.physicalRanges(s,a);for(let u=f.length-1;u>=0;u--){let[p,b]=f[u];b<=p||(r&&Qo(e,r,p,b),e.flow.delete(p,b-p))}}}function Zo(e,o,n){let r=!1;for(let t=e.flow._start;t;t=t.right){let s=Ee(t.id);if(s===o){r=!0;continue}if(!r)continue;let a=t.content instanceof de?t.content.embed:null;if(a&&a.b!==void 0&&a.b!==n)return s}return null}function Ft(e,o,n,r,t=null){let{pd:s,map:a,bt:f}=e,u=i=>t===null||t[i],p=0;for(;p<n.length&&p<r.length&&ze(n[p],r[p])&&u(p);)p++;let b=0;for(;b<n.length-p&&b<r.length-p&&ze(n[n.length-1-b],r[r.length-1-b])&&u(n.length-1-b);)b++;let C=i=>i&&i.k==="c"?i.ch.charCodeAt(0):-1;p>0&&Fe(C(n[p-1]))&&(nt(C(n[p]))||nt(C(r[p])))&&p--,b>0&&nt(C(n[n.length-b]))&&(Fe(C(n[n.length-b-1]))||Fe(C(r[r.length-b-1])))&&b--;let M=n.slice(p,n.length-b),h=r.slice(p,r.length-b),w=o+p,y=w+M.length,N=M.filter(i=>i.k==="b").map(i=>i.id).join(",");if(!(M.some(i=>i.k==="b")&&N===h.filter(i=>i.k==="b").map(i=>i.id).join(","))){let i=Le(s.origins);try{for(let T of M){if(T.k!=="b"||!T.brk)continue;let U=i.resolve(T.brk);i.boundaryOf(U)||e.tx(()=>i.recordBoundary(U,{blockId:T.id,kind:"removed"}))}}finally{i.dispose()}let g=new Set;M.forEach((T,U)=>{if(T.k!=="b"||!T.brk)return;let P=w+U,I=P+1;for(;I<f.length&&f[I].k!=="b";)I++;let K=I<=y&&I!==P+1,j=I<f.length?f[I].brk:null;K&&(e.tx(()=>s.gone.set(Be(Ee(T.brk),e.operationId),{blockId:T.id,end:j?Ee(j):null,sv:e.sv})),g.add(P))});let A=[],z=w;for(let T=w;T<y;T++)g.has(T)&&(T>z&&A.push([z,T]),z=T+1);y>z&&A.push([z,y]),e.tx(()=>lo(s,a,A,M.some(T=>T.k==="b")?null:e));let W=new Set(h.filter(T=>T.k==="b").map(T=>T.id));for(let T of M)if(!(T.k!=="b"||!T.brk||W.has(T.id)))for(let U of e.copies.get(T.id)??[]){let P=Be(U,e.operationId);s.gone.has(P)||e.tx(()=>s.gone.set(P,{blockId:T.id,end:Zo(s,U,T.id),sv:e.sv}))}h.length&&lt(s,a.toPhysical(w,"before"),h,e.tx,e.fences);return}let v=[],L=[],Y=[],$=w,x=0,c=0;for(;x<M.length||c<h.length;){let i=x;for(;i<M.length&&M[i].k!=="b";)i++;let g=c;for(;g<h.length&&h[g].k!=="b";)g++;let A=M.slice(x,i),z=h.slice(c,g);if(A.length&&v.push([$,$+A.length]),z.length&&L.push({at:$,toks:z}),$+=A.length,i<M.length&&(Y.push([M[i],h[g]]),$+=1),x=i+(i<M.length?1:0),c=g+(g<h.length?1:0),i>=M.length&&g>=h.length)break}let E=[...v.map(i=>({at:i[0],d:i})),...L.map(i=>({at:i.at,i}))].sort((i,g)=>g.at-i.at||(i.d?-1:1));for(let i of E)i.d?e.tx(()=>lo(s,a,[i.d],e)):lt(s,a.toPhysical(i.at,"before"),i.i.toks,e.tx,e.fences);for(let[i,g]of Y)e.tx(()=>{if(!fe.nodes[g.t])return;let A=e.recovered.get(i.id);if(A){i.t!==g.t&&s.gone.set(De(A,"t"),g.t);for(let T of xe(fe.nodes[g.t]))ye(i.attrs[T],g.attrs[T])||s.gone.set(De(A,T),g.attrs[T]);return}let z=i.id,W=s.attrs.get(z);if(W){let T=i.t==="table"&&g.t==="table"&&W.get("t")==="table",U=g.t==="board",P=U?i.t==="board"&&W.get("t")==="board"?i.attrs:vt(s.boardFields,z):null;i.t!==g.t&&W.set("t",g.t);for(let I of xe(fe.nodes[g.t])){if(T&&(I==="rows"||I==="cols")||U&&(I==="columns"||I==="cards"))continue;let K=W.has(I)?W.get(I):Ne(fe.nodes[g.t],I);ye(K,g.attrs[I])||W.set(I,g.attrs[I])}T&&yt(s,z,i.attrs,g.attrs),U&&wt(s,z,P,g.attrs)}else co(s,z,g.t,g.attrs)})}function Lt(e,o,n,r,t,s){let{pd:a,map:f}=e,u=`${r}~${be(a)}`,p=be(a),b=o;for(;b<n;){if(s[b].k!=="c"){b++;continue}let C=b;for(;C<n&&s[C].k==="c";)C++;let M=f.physicalRanges(b,C);if(t!==null)for(let[h,w]of M)a.flow.format(h,w-h,{[u]:t});else{let h=0;for(let w of a.flow.toDelta()){let y=typeof w.insert=="string"?w.insert.length:1;for(let[N,B]of M){if(h>=B)break;let v=Math.max(h,N),L=Math.min(h+y,B);if(L>v&&w.attributes){let Y={};for(let[$,x]of Object.entries(w.attributes))Se($)===r&&!Ce($)&&x!==null&&(Y[`${$}!${p}`]=!0);Object.keys(Y).length&&a.flow.format(v,L-v,Y)}}h+=y}}b=C}}var{AddMarkStep:uo,RemoveMarkStep:er,AttrStep:tr,ReplaceStep:nr,Mapping:ct}=rn,po=(e,o,n)=>{let r=e.resolve(o),t=e.resolve(n);return[r.depth&&r.node(1).type.name==="table"?r.before(1):o,t.depth&&t.node(1).type.name==="table"?t.after(1):n]},or=(e,o,n)=>{let r=!1;return e.nodesBetween(o,n,t=>(t.type.name==="table"&&(r=!0),!r&&t.type.name!=="table")),r};function mo(e,o,n,r,t=null,s=!0,a=null,{join:f=!1,open:u=!1}={}){let p=()=>{if(a){let l=a;a=null,l()}},b=[],C=[],M=[];for(let l of o)l.steps.forEach((k,F)=>{b.push(k),C.push(l.docs[F]),M.push(k.getMap())});if(!b.length)return;let h=new ct(M),w=[...Qe(Ze(e.ydoc)).entries()].sort((l,k)=>l[0]-k[0]),y=be(e),N=C[0],B=o[o.length-1].doc,v=n.visible.length===0&&N.childCount===1&&N.firstChild.type.name==="paragraph"?[{id:N.firstChild.attrs.id,implicit:!0,t:"paragraph",len:0}]:n.visible,L=new Map,Y=[];{let l=0;v.forEach(k=>{k.implicit&&Y.push({tok:l,id:k.id,t:k.t}),l+=k.len})}Y.sort((l,k)=>k.tok-l.tok);for(let l of Y)l.alias=hn(e),L.set(l.id,l.alias);let $=L.size?n.holes.map(l=>({at:l.at+Y.filter(k=>k.tok<l.at).length,len:l.len})):n.holes,x=Tt(n.tokens+L.size,$,e.flow.length+L.size),c=[],E=[];b.forEach((l,k)=>{let F=l instanceof uo||l instanceof er;if(F&&!or(C[k],l.from,l.to)){E.push({i:k,step:l});return}let R=new ct(M.slice(0,k)).invert(),D=new ct(M.slice(k+1)),q=[];l instanceof tr?q.push([l.pos,l.pos+1,l.pos,l.pos+1]):F?q.push([l.from,l.to,l.from,l.to]):l.getMap().forEach((O,te,X,G)=>q.push([O,te,X,G]));for(let[O,te,X,G]of q){let[Z,oe]=po(N,R.map(O,-1),R.map(te,1)),[ne,Ge]=po(B,D.map(X,-1),D.map(G,1));c.push({oa:Z,ob:oe,na:ne,nb:Ge})}}),c.sort((l,k)=>l.oa-k.oa||l.na-k.na);let i=[];for(let l of c){let k=i[i.length-1];k&&(l.oa<=k.ob||l.na<=k.nb)?(k.ob=Math.max(k.ob,l.ob),k.nb=Math.max(k.nb,l.nb)):i.push({...l})}let g=!Y.length&&!E.length&&b.every(l=>l instanceof nr)&&o.every(fn),A=g?null:It(N,L,v),z=g?null:It(B,L,v),W=g?[]:Ct(N,L,v),T=g?[]:Ct(B,L,v),U=g?i.map(l=>({r:l,old:At(N,l.oa,l.ob),next:At(B,l.na,l.nb)})):null,P=g?U.reduce((l,k)=>l+k.next.end-k.next.start,0):i.reduce((l,k)=>l+(z[k.nb]-z[k.na]),0),I=P>Nt,K=I?l=>e.ydoc.transact(k=>{k.meta.set(_e,s),p(),l()},me):l=>l(),j={pd:e,map:x,bt:W,tx:K,copies:n.copies,fences:n.fences,sv:w,operationId:y,recovered:new Map(n.visible.filter(l=>l.recovered).map(l=>[l.id,l.sourceKey]))},Q=l=>l.filter(k=>k.k==="b").map(k=>`${k.id}|${k.t}|${JSON.stringify(k.attrs)}`).join(`
3
- `),le=!g&&(E.length>0||Q(W)!==Q(T)),ee=()=>{for(let F of Y)lt(e,Ye(n.holes,F.tok),[{k:"b",id:F.alias,t:F.t,attrs:Object.fromEntries(xe(fe.nodes[F.t]).map(R=>[R,Ne(fe.nodes[F.t],R)]))}],K);for(let F=i.length-1;F>=0;F--)if(g){let{r:R,old:D,next:q}=U[F],O=D.tokens.map((te,X)=>{let G=h.mapResult(R.oa+X,1),Z=h.mapResult(R.oa+X+1,-1),oe=G.pos-R.na;return!G.deleted&&!Z.deleted&&Z.pos===G.pos+1&&oe>=0&&oe<q.tokens.length&&ze(te,q.tokens[oe])});Ft(j,D.start,D.tokens,q.tokens,O)}else{let R=i[F],D=A[R.oa],q=A[R.ob];Ft(j,D,W.slice(D,q),T.slice(z[R.na],z[R.nb]))}let l=E.length?ue(e):null,k=l?{...j,map:Tt(l.tokens,l.holes,e.flow.length)}:null;for(let{i:F,step:R}of E){let D=new ct(M.slice(F+1)),q=z[D.map(R.from,1)],O=z[D.map(R.to,-1)];if(O<=q)continue;let te=R.mark.type.name,X=R instanceof uo?R.mark.attrs&&Object.keys(R.mark.attrs).length?{...R.mark.attrs}:!0:null;if(ln(R.mark)){if(X===null)continue;let G=cn(R.mark.attrs.entries);K(()=>{for(let[Z,oe]of Object.entries(G))Lt(k,q,O,Z,oe,T)});continue}K(()=>Lt(k,q,O,te,X,T))}};f||t?.stopCapturing();let m=t?.captureTimeout;t&&(t.captureTimeout=1/0);try{I?ee():e.ydoc.transact(l=>{l.meta.set(_e,s),p(),ee()},me)}finally{t&&(t.captureTimeout=m),u||t?.stopCapturing()}r.groups++,r.lastGroup={chunked:I,structural:le,regional:g,span:P}}var ke=e=>({status:"refused",code:e}),ho=e=>{if(!e)return"";let o=[];for(let n of Object.keys(e).sort())o.push(`${n}=${JSON.stringify(e[n])}`);return o.join(`
4
- `)},rr=(e,o,n)=>{let r=n?n.state.doc:null,s=r&&r.childCount===o.visible.length&&o.visible.every((f,u)=>r.child(u).attrs.id===f.id)?r:Re(e,o),a=[];return s.forEach(f=>{f.attrs.id===null||f.attrs.id===void 0||a.push({id:f.attrs.id,parent:f.attrs.parent??null,t:f.type.name})}),a},sr=(e,o)=>{let n=[],r=e.get(o)?.parent??null,t=0;for(;r!=null&&t++<=e.size;)n.push(r),r=e.get(r)?.parent??null;return n},bo=(e,o,n)=>sr(e,n).includes(o),Bt=(e,o,n)=>o===n||bo(e,n,o),Dt=(e,o,n,r,t)=>{if(o?.recovered){let a=De(o.sourceKey,r);(e.gone.has(a)?e.gone.get(a):o.fields?.[r]??null)!==t&&e.gone.set(a,t);return}let s=e.attrs.get(n);s||(s=new Ae,e.attrs.set(n,s)),s.get(r)!==t&&s.set(r,t)},at=(e,o,n,r)=>Dt(e,o,n,"parent",r),ir=8,go={indent:(e,o)=>o.t==="list_item"&&Number.isInteger(e)&&e>=0&&e<=ir,open:(e,o)=>o.t==="toggle"&&typeof e=="boolean",parent:(e,o,n)=>e===null||typeof e=="string"&&n.get(e)?.t==="toggle"&&!Bt(n,e,o.id)},lr=(e,o)=>{if(e?.attrs===void 0)return[];if(!e.attrs||typeof e.attrs!="object"||Array.isArray(e.attrs))return null;let n=[];for(let[r,t]of Object.entries(e.attrs)){let s=o.get(r);if(!s||!t||typeof t!="object"||Array.isArray(t))return null;for(let[a,f]of Object.entries(t)){if(!go[a]||!go[a](f,s,o))return null;n.push({id:r,field:a,value:f})}}return n},cr=(e,o)=>{let n=bt(e.flow,0,e.flow.length),r=[],t=0;for(let s of e.flow.toDelta()){let a=s.attributes;if(typeof s.insert=="string")for(let f=0;f<s.insert.length;f++)r.push({ch:s.insert[f],attrs:a,source:o.resolve(n[t++])});else r.push({embed:s.insert,attrs:a,source:o.resolve(n[t++])})}if(t!==n.length)throw new Error(`The flow delta has ${t} units but the document has ${n.length}`);return r},ar=(e,o,n)=>{let r=new Map;for(let s of o.visible)n.has(s.id)&&s.brk&&r.set(Oe(s.brk),s.id);for(let s of n)for(let a of o.copies.get(s)??[])r.set(a,s);let t=[];for(let s=e.flow._start;s;s=s.right){if(s.deleted||!(s.content instanceof de))continue;let a=s.content.embed?.b;if(a===void 0||r.get(Oe(s.id))!==a)continue;let f=null;for(let u=s.right;u;u=u.right){if(u.deleted||!(u.content instanceof de))continue;let p=u.content.embed?.b;if(!(p===void 0||p===a)){f=Oe(u.id);break}}t.push({key:Oe(s.id),blockId:a,end:f})}return t};function zt({pd:e,view:o,um:n,origins:r,render:t,walked:s=null},a={}){let f=Array.isArray(a?.ids)?[...new Set(a.ids)]:[],u=a?.afterId===void 0?null:a.afterId,p=a?.parent!==void 0,b=s??ue(e,r),C=new Set(b.visible.filter(m=>m.opaque).map(m=>m.id)),M=rr(e,b,o),h=new Map(M.map(m=>[m.id,m])),w=M.map(m=>m.id);if(!f.length)return ke("missing-source");for(let m of f)if(!h.has(m))return ke("missing-source");let y=lr(a,h);if(!y)return ke("invalid-attrs");let N=y.filter(m=>m.field==="parent"),B=new Set(f.filter(m=>!f.some(l=>l!==m&&bo(h,l,m)))),v=M.filter(m=>f.some(l=>Bt(h,m.id,l))),L=new Set(v.map(m=>m.id));if(v.some(m=>C.has(m.id))||y.some(m=>C.has(m.id)))return ke("unsupported-format");let Y=new Map(b.visible.map(m=>[m.id,m]));for(let m of v){let l=Y.get(m.id);if(!l||l.implicit||!l.brk)return ke("missing-source")}let $;if(p)$=a.parent??null;else{let m=new Set(v.filter(l=>B.has(l.id)).map(l=>l.parent));if(m.size!==1)return ke("invalid-parent");$=[...m][0]}if(p&&$!==null){let m=h.get($);if(!m||m.t!=="toggle")return ke("invalid-parent");if(L.has($))return ke("cycle")}if(u!==null){if(typeof u!="string"||!h.has(u))return ke("missing-destination");if(L.has(u))return ke("cycle");if(h.get(u).parent!==$)return ke("missing-destination")}let x=M.filter(m=>!L.has(m.id)),c=0;if(u===null){if($!==null){let m=x.findIndex(k=>k.parent===$),l=x.findIndex(k=>k.id===$);c=m>=0?m:l<0?0:l+1}}else for(c=x.findIndex(m=>m.id===u)+1;c<x.length&&Bt(h,x[c].id,u);)c++;let E=[...x.slice(0,c),...v,...x.slice(c)],i=E.length===w.length&&E.every((m,l)=>m.id===w[l]),g=v.filter(m=>B.has(m.id)&&m.parent!==$),A=v.map(m=>m.id);if(i&&!g.length&&!y.length)return{status:"unchanged"};let z=(()=>{let m=o?.state.selection;if(!(m instanceof pe.TextSelection))return null;let l=R=>{let D=o.state.doc.resolve(R);return D.depth?{id:D.node(1).attrs.id,offset:D.parentOffset}:null},k=l(m.anchor),F=l(m.head);return k&&F&&(L.has(k.id)||L.has(F.id))?{anchor:k,head:F}:null})(),W=()=>{if(!z||!o)return;let m=({id:F,offset:R})=>{let D=null;return o.state.doc.forEach((q,O)=>{D===null&&q.attrs.id===F&&(D=O+1+Math.min(R,q.content.size))}),D},l=m(z.anchor),k=m(z.head);l!==null&&k!==null&&o.dispatch(o.state.tr.setSelection(pe.TextSelection.create(o.state.doc,l,k)).setMeta(Me,!0).setMeta("addToHistory",!1))};if(i)return n?.stopCapturing(),e.ydoc.transact(()=>{if(N.length)for(let m of N)at(e,Y.get(m.id),m.id,m.value);else for(let m of g)at(e,Y.get(m.id),m.id,$);for(let m of y)m.field!=="parent"&&Dt(e,Y.get(m.id),m.id,m.field,m.value)},me),n?.stopCapturing(),t(),W(),{status:"moved",ids:A};let T=[...Qe(Ze(e.ydoc)).entries()].sort((m,l)=>m[0]-l[0]),U=be(e),P=cr(e,r),I=kt(b,e.flow.length),K=[],j=0;for(let m of b.visible){if(L.has(m.id)){let l=[];for(let[k,F]of I.physicalRanges(j,j+m.len))for(let R=k;R<F;R++)l.push(P[R]);K.push({seg:m,units:l})}j+=m.len}for(let m=0;m<K.length;m++){let l=K[m];if(l.seg.id!==A[m])throw new Error(`Captured ${l.seg.id} where ${A[m]} was expected`);if(!l.units.length||l.units[0].embed===void 0||l.units[0].embed.b!==l.seg.id)throw new Error(`The selected block ${l.seg.id} has no physical marker to copy`)}let Q=ar(e,b,L),le=Pe(e.gone),ee=new Map;for(let m of v){let l=Y.get(m.id);if(!l.recovered)continue;let k=b.removals.filter(D=>D.sourceKey===l.sourceKey),F=Rn(l.sourceKey,k,le),R=le.restores.find(D=>D.key===F?.key)?.baseline??{type:l.t,attrs:l.fields??{}};ee.set(l.sourceKey,{covers:k.map(D=>D.key),baseline:JSON.parse(JSON.stringify(R))})}if(!Q.length)throw new Error("The selected blocks have no live physical markers to retire");return n?.stopCapturing(),e.ydoc.transact(()=>{for(let O of Q)e.gone.set(Be(O.key,U),{blockId:O.blockId,end:O.end,sv:T});let m=ue(e,r),l=kt(m,e.flow.length),k=m.visible.map(O=>O.id),F=0;if(c>0){let O=k.indexOf(x[c-1].id);F=O<0?0:O+1}let R=0;for(let O=0;O<F;O++)R+=m.visible[O].len;let D=l.toPhysical(R,"before"),q=[];for(let O of K){let te=D,X=null,G=null,Z=()=>{X!==null&&(We(e,D,m.fences,()=>e.flow.insert(D,X,G??void 0)),D+=X.length,X=null)};for(let ne of O.units)ne.ch!==void 0?(X!==null&&ho(ne.attrs)!==ho(G)&&Z(),X===null&&(X="",G=ne.attrs),X+=ne.ch):(Z(),We(e,D,m.fences,()=>e.flow.insertEmbed(D,ne.embed,ne.attrs)),D+=1);Z();let oe=bt(e.flow,te,D);if(oe.length!==O.units.length)throw new Error(`Copied ${O.seg.id} as ${oe.length} units instead of ${O.units.length}`);for(let ne=1;ne<O.units.length;ne++)q.push({dest:oe[ne],source:O.units[ne].source});r.recordBoundary(oe[0],O.seg.recovered?{blockId:O.seg.id,kind:"copy",recoveryOf:O.seg.sourceKey}:{blockId:O.seg.id,kind:"copy"}),O.seg.recovered&&e.gone.set(ot(O.seg.sourceKey,U),ee.get(O.seg.sourceKey)),e.gone.set(In(Oe(oe[0])),!0)}if(q.length&&r.recordSpans(q),N.length)for(let O of N)at(e,Y.get(O.id),O.id,O.value);else for(let O of g)at(e,Y.get(O.id),O.id,$);for(let O of y)O.field!=="parent"&&Dt(e,Y.get(O.id),O.id,O.field,O.value)},me),n?.stopCapturing(),t(),W(),{status:"moved",ids:A}}var Jt=e=>{let o=[];return e.forEach(n=>o.push([n.type.name,JSON.stringify(Object.fromEntries(xe(n.type).map(r=>[r,n.attrs[r]]))),n.isTextblock||n.type.name==="table"?JSON.stringify(n.content.toJSON()):null])),JSON.stringify(o)};function fr(e,o){if(e.childCount!==o.childCount)return!1;for(let n=0;n<e.childCount;n++){let r=e.child(n),t=o.child(n);if(r!==t&&(r.type!==t.type||xe(r.type).some(s=>!ye(r.attrs[s],t.attrs[s]))||(r.isTextblock||r.type.name==="table")&&!r.content.eq(t.content)))return!1}return!0}var ur=e=>{let o=[];return e.forEach((n,r)=>{n.type.name==="opaque_block"&&o.push([r,r+n.nodeSize])}),o},dr=(e,o)=>{let n=typeof e.from=="number"?e.from:typeof e.pos=="number"?e.pos:null;if(n===null)return!1;let r=typeof e.to=="number"?e.to:n+1;return o.some(([t,s])=>n<s&&r>t)},Ue=(e,o)=>{let n=e.resolve(o);return n.depth&&n.node(1).type.name==="table"?[n.before(1),n.after(1)]:null};function ko(e,o){let n=e.content.findDiffStart(o.content);if(n===null)return null;let{a:r,b:t}=e.content.findDiffEnd(o.content),s=n-Math.min(r,t);s>0&&(r+=s,t+=s);let a=(f,u)=>{let p=f.resolve(n);return p.parent.isTextblock&&p.sameParent(f.resolve(u))};return(Ue(e,n)||Ue(e,r))&&!(a(e,r)&&a(o,t))?(n=Ue(e,n)?.[0]??n,r=Ue(e,r)?.[1]??r,t=Ue(o,t)?.[1]??t,{start:n,endA:r,endB:t,tables:!0}):{start:n,endA:r,endB:t}}function Kt(e,o=null){let n=new Map;o?.forEach(u=>{u.attrs.id&&n.set(u.attrs.id,u)});let r=[];e.forEach(u=>r.push(u));let t=r.map(u=>({id:u.attrs.id,pos:n.get(u.attrs.id)?.attrs.pos??u.attrs.pos})),s=gt(t,"b"),a=!1,f=r.map((u,p)=>{let b=s[p]?.pos??t[p].pos,C=u.content;if(u.type.name==="table"){let w=[];u.forEach(v=>w.push(v));let y=w.map(v=>({id:v.attrs.id,pos:v.attrs.pos})),N=gt(y,"r"),B=w.map((v,L)=>{let Y=N[L]?.pos??y[L].pos;return Y===v.attrs.pos?v:v.type.create({...v.attrs,pos:Y},v.content,v.marks)});B.some((v,L)=>v!==w[L])&&(C=B)}if(b===u.attrs.pos&&C===u.content)return u;a=!0;let M={...u.attrs,pos:b},h=n.get(u.attrs.id);return h&&C===u.content&&h.hasMarkup(u.type,M,u.marks)&&h.content.eq(C)?h:u.type.create(M,C,u.marks)});return a?e.type.create(e.attrs,f):e}var yo=e=>{let o=new Set,n=null;for(let r=0;r<e.childCount;r++){let{id:t,pos:s}=e.child(r).attrs;if(!t||o.has(t)||!an(s)||n!==null&&n>=s)return!1;o.add(t),n=s}return!0},pr=(e,o)=>{for(let n in e.attrs)if(n!=="pos"&&e.attrs[n]!==o.attrs[n])return!1;return!0};function mr(e,o){if(e.childCount!==o.childCount||!yo(e))return!1;for(let n=0;n<e.childCount;n++){let r=e.child(n),t=o.child(n);if(r===t)continue;if(!(r.type===t.type&&r.marks===t.marks&&pr(r,t))&&!r.hasMarkup(t.type,{...t.attrs,pos:r.attrs.pos},t.marks)||!r.content.eq(t.content)||r.type.name==="table"&&!yo(r))return!1}return!0}var wo=e=>{if(e&&typeof e=="object"){for(let o of Object.keys(e))wo(e[o]);Object.freeze(e)}return e},vo=e=>wo(JSON.parse(JSON.stringify(e))),hr=(e,o)=>{let n=mn(o),r=0;for(let t=e.flow._start;t;t=t.right){if(t.id.client===n.client&&t.id.clock===n.clock)return t.deleted?r:r+t.length;!t.deleted&&t.countable&&(r+=t.length)}return r},gr=(e,o)=>{let n=null;for(let r=e.flow._start;r;r=r.right)r.id.client!==e.ydoc.clientID||!(r.content instanceof de)||r.content.embed?.b!==o||(!n||r.id.clock>n.clock)&&(n=r.id);return n};function xo({pd:e,onNotice:o=()=>{},ownedTokens:n=[],authorToken:r=null,stats:t={groups:0,mismatch:0,renders:0,first:null},captureTimeout:s=500}){let a=null,f=null,u=0,p=-1,b=null,C=0,M=new WeakMap,h=Le(e.origins);f=ue(e,h);let w=new tn([e.flow,e.attrs,e.gone,e.tableFields,e.boardFields],{trackedOrigins:new Set([me]),captureTimeout:s,captureTransaction:d=>d.meta.get(_e)!==!1,deleteFilter:d=>{if(d.parent!==e.flow||!(d.content instanceof de))return!0;let S=h.resolve(d.id);return S.client!==d.id.client||S.clock!==d.id.clock||h.boundaryOf(d.id)?.kind!=="copy"}}),y=yn(e,w,h,d=>Pe(d).textDeletes),N=new Set,B=new Set(r?[...n,r]:n),v=r?()=>{let d=Cn(e.ydoc.clientID);e.origins.get(d)!==r&&e.origins.set(d,r)}:null,L=new Set,Y=new Set,$=0,x=null,c=null,E=d=>{let S=new Set;for(let J of d.blocks)for(let V of J.runs){if(!V.displaced)continue;let H=Tn(V.source)?.client===e.ydoc.clientID;V.author&&(H||B.has(V.author))?S.add(V.author):H&&S.add(null)}if(!S.size)return null;let _=[...S].filter(Boolean).sort();return{kind:"recovered-change",source:d.source,revision:d.revision,blockId:d.blockId,author:_[0]??null,authors:_}},i=d=>{let S=d.list.filter(J=>J.recoverable).map(J=>vo(J)),_=vo(S.map(J=>E(J)).filter(J=>J&&!L.has(`${J.source}\0${J.revision}`)));return Object.freeze({recoverable:Object.freeze(S),notices:Object.freeze(_)})},g=(d,S)=>{if(JSON.stringify(i(st(e,{index:h,walked:S})))===JSON.stringify(d)){t.provedRecoveries=(t.provedRecoveries??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error("Recovery snapshot built from the displacing sources diverged from a full reduction")},A=()=>{if(x&&x.version===$)return x.snapshot;let d=p===u?f:void 0,S=i(Yn(e,{index:h,walked:d}));return t.proveWalks&&g(S,d),x={version:$,snapshot:S},S},z=d=>rt({recoverable:d.recoverable.map(S=>[S.source,S.revision]),notices:d.notices}),W=()=>{$++;let d=A();for(let _ of d.notices){let J=`${_.source}\0${_.revision}`;N.has(J)||(N.add(J),o(_))}if(!Y.size){c=null;return}let S=z(d);if(S!==c){c=S;for(let _ of[...Y])_(d)}},T=d=>{f=d,p=u,b=null,C=0},U=()=>p===u?f:null,P=d=>{let S=Ve(e,d),_=Ve(e,ue(e));if(S===_){t.provedWalks=(t.provedWalks??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error(`Incremental walk diverged from the full walk:
1
+ import{a as Et,b as Jn,c as Ro,f as Yo}from"./c-A4L7APIU.js";import{a as $o}from"./c-WNOLMHI2.js";import{a as Bn,b as Dn,e as zn,f as it,g as Mt}from"./c-LS7IVQVW.js";import{a as Po}from"./c-NEQRFC4O.js";import{a as Ct,b as It,c as At,d as ze,e as Ye,f as Kn,g as Tt,h as Hn,i as qn,j as Pt,l as Rt}from"./c-NICICT4P.js";import{b as Co,c as Io}from"./c-LTSPHVAK.js";import"./c-IW6GGOU2.js";import"./c-HAWFNBYG.js";import{a as Re,b as _n,p as Nn,q as Fn,u as Ao,v as To}from"./c-CV4T65JE.js";import{A as An,B as Be,C as ot,D as Tn,E as Pn,F as De,G as Rn,H as Pe,I as rt,J as Yn,K as St,L as $n,M as st,N as jn,O as ue,a as Le,b as kt,c as wn,d as xn,f as Sn,j as On,m as Eo,p as Mn,q as En,r as Cn,s as In,t as vt,v as wt,x as xt,z as Oe}from"./c-GO635CRU.js";import{a as me,b as hn,d as Me,e as _e,g as xe,h as Ne,i as ye,j as Ee,k as gn,l as Fe,m as nt,n as be,o as bn,p as kn,q as Se,r as Ce,u as yn,v as vn,w as yt}from"./c-V2V5FKXX.js";import"./c-DD26VXAP.js";import"./c-CTGRDT6E.js";import"./c-7K4SCQB7.js";import{f as tn,g as nn,i as Qe,j as Ze,k as dt,n as pt,o as et,p as on,s as mt,t as rn,u as Ae,v as de,w as Te,x as ht,y as sn}from"./c-WMRJKQ2V.js";import{g as Ln,p as Ot}from"./c-ZRGEN6QQ.js";import{E as gt,H as bt,I as dn,d as fe,fa as je,g as an,i as fn,ia as pn,ja as mn,na as tt,w as un}from"./c-OH2FPYSY.js";import{b as Vt}from"./c-QY7F6EN6.js";import"./c-FSQXFG5T.js";import{b as pe,c as ln,e as cn}from"./c-RETTCOWO.js";import{a as Wt,b as Ut,d as ft}from"./c-WCG6AKA7.js";import{a as Zt}from"./c-TCCA5BZN.js";import"./c-3LDGIBMN.js";import{c as en}from"./c-57XDY6HC.js";import"./c-YK2L436K.js";import{a as Qt,b as ut}from"./c-QTTJYJMA.js";import"./c-TWCXBWS3.js";import{e as Gt,f as Xt}from"./c-HTLYXCUH.js";import"./c-4ASQPRQL.js";import"./c-GQ6F6IDK.js";import"./c-I2SCCUEW.js";import"./c-5VYOWDTI.js";import"./c-6Q6RGFBF.js";import"./c-SKMIR5HQ.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-LA2BW7UY.js";import"./c-MFOSMAVM.js";import"./c-LD6UVV5R.js";import"./c-PGSBXHUE.js";import"./c-6IJEVE6B.js";import"./c-QQFHEODI.js";import"./c-IJUK2GPW.js";import"./c-EDE45NM7.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4NTUVDZ.js";import"./c-PWJSJEJU.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var Yt=new Set(["paragraph","heading","list_item","callout","quote","code_block","toggle"]),Je=(e,o)=>je(e)===je(o);function $t(e,o){let n=o.createElement("article");return n.setAttribute("data-blockeditor",""),n.innerHTML=mn([{id:e.id,t:"paragraph",c:e.c??"",...e.m?{m:e.m}:{}}],{clean:pn(o)}),n}function jo(e,o){let n=new Map(e.map((f,u)=>[f.id,u])),r=new Set(o.map(f=>f.id)),t=new Map,s=0;return o.map(f=>{let u=n.get(f.id);if(u!==void 0)return s=u+1,f;let p={c:f.c??"",m:f.m??null};for(let b=s;b<e.length;b++){let C=e[b];if(!(r.has(C.id)||C.t!==f.t||!Je({c:C.c??"",m:C.m??null},p)))return r.add(C.id),s=b+1,t.set(f.id,C.id),{...f,id:C.id}}return f}).map(f=>t.has(f.parent)?{...f,parent:t.get(f.parent)}:f)}function jt(e,o,n,{doc:r,merge3:t,mergeJson:s}){let a=[],f=jo(e,n),u=new Map(e.map(c=>[c.id,c])),p=new Map(o.map(c=>[c.id,c])),b=new Map(f.map(c=>[c.id,c])),C=o.map(c=>({...c})),M=f.map(c=>({...c})),h=new Map(C.map(c=>[c.id,c])),w=new Map(M.map(c=>[c.id,c]));for(let[c,E]of u){let i=p.get(c),g=b.get(c);if(!i||!g||!Yt.has(E.t)||!Yt.has(i.t)||!Yt.has(g.t))continue;let A={c:E.c??"",m:E.m??null},z={c:i.c??"",m:i.m??null},W={c:g.c??"",m:g.m??null};if(Je(z,A)||Je(W,A)||Je(z,W))continue;if(E.t==="code_block"){for(let P of[h.get(c),w.get(c)])P.c=g.c??"",g.m?P.m=g.m:delete P.m;a.push({id:c,kind:"text",local:i.c??"",remote:g.c??""});continue}let T=t($t(E,r),$t(i,r),$t(g,r));for(let P of T.conflicts)a.push({id:c,kind:"text",local:P.local?.textContent??null,remote:P.remote?.textContent??null});let[U]=tt(T.root,{seed:"",known:new Map});for(let P of[h.get(c),w.get(c)])P.c=U.c,U.m?P.m=U.m:delete P.m}let y=o.map(c=>c.id);for(let[c,E]of u){let i=h.get(c);if(!i||b.has(c)||Je(p.get(c),E))continue;let g=y.indexOf(c)-1;for(;g>=0&&!w.has(y[g]);)g--;let A=g<0?0:M.findIndex(z=>z.id===y[g])+1;M.splice(A,0,{...i}),w.set(c,M[A]),a.push({id:c,kind:"kept-edit"})}let N=s(e,C,M,{onConflict:c=>a.push({kind:"field",path:c.path,local:c.local,remote:c.remote,resolved:c.resolved})}),B=new Set(N.map(c=>c.id)),v=c=>(p.get(c)??u.get(c)??b.get(c))?.parent??null,L=N.map(c=>{let E=c.parent??null;for(;E&&!B.has(E);)E=v(E);return E===(c.parent??null)?c:{...c,parent:E}}),Y=new Map(L.map(c=>[c.id,c.parent??null])),$=c=>{let E=new Set([c]);for(let i=Y.get(c);i;i=Y.get(i)){if(E.has(i))return!0;E.add(i)}return!1};for(let c of L)if($(c.id)){for(let E of[p.get(c.id)?.parent,u.get(c.id)?.parent,null])if(Y.set(c.id,E&&B.has(E)?E:null),!$(c.id))break}return{items:L.map(c=>(c.parent??null)===Y.get(c.id)?c:{...c,parent:Y.get(c.id)}),conflicts:a}}var _o=e=>{try{return Zt(e)}catch{return null}},$e={ok:!0,outcome:"unchanged"},Ke={ok:!1,outcome:"disposed",reason:"adoption-disposed"},He={ok:!1,outcome:"refused",reason:"adoption-refused"},No={ok:!1,outcome:"refused",reason:"adoption-timeout"},Fo={ok:!1,outcome:"error",reason:"adoption-error"},Lo={ok:!0,outcome:"writer-adopts"},Vn=e=>({ok:!0,outcome:"adopted",counts:e}),Wn=1e4;function Bo(e){let o=e.querySelector(Et);return o?{article:o.cloneNode(!0),tags:Jn(e).map(n=>_o(n.textContent))}:null}function Un(e){return new Promise(o=>{if(!e.composing)return o();e.dom.addEventListener("compositionend",()=>setTimeout(()=>o(Un(e)),0),{once:!0})})}function Do({view:e,source:o=null,ready:n=Promise.resolve(),isAdopter:r=()=>!0,idle:t=()=>Un(e),requestCheckpoint:s=()=>{},notice:a=()=>{},snapshot:f=()=>null,mergeTagless:u=!1,seeded:p=!1,writerReady:b=()=>Promise.resolve(),adopted:C=()=>{},hold:M=Gt,release:h=Xt,holdMs:w=Wn,doc:y=document}){let N=o?o.article.innerHTML:null,B=o?o.article:null,v=new Map,L=P=>{let I=P.getAttribute("data-rev");if(!I)return;let K=v.get(I)??[];v.delete(I),v.set(I,K),K.push(P),K.length>10&&K.shift(),v.size>20&&v.delete(v.keys().next().value)};B&&L(B);let Y=Promise.resolve(),$=!1,x,c=new Promise(P=>x=P);async function E(){let P,I=new Promise(K=>{P=setTimeout(()=>K("timeout"),w)});try{return await Promise.race([Promise.resolve(n).then(()=>t()).then(()=>"ready"),c.then(()=>"disposed"),I])}finally{clearTimeout(P)}}function i(P,I,K,j){let{HyperMorph:Q}=Qt(),le=jt(K,I,j,{doc:y,merge3:Q.merge3,mergeJson:Q.mergeJson}),ee=le.conflicts.filter(D=>D.kind==="text"||D.kind==="field"),m=ee.length?f():null,l=Dn(P,le.items,I),k=l&&zn(e.state,l);if(!k)return null;e.dispatch(k),e.dispatch(cn.closeHistory(e.state.tr));let F={edited:l.edited.size,created:l.created.size,deleted:l.deleted.length,moved:l.reordered},{displaced:R}=k.getMeta(Bn);return Object.keys(R).length&&(F.displaced=R),ee.length&&(F.conflicts=ee),m&&(F.copy=m),F}async function g(P){if(u&&!P.tags.length)return A(P);let I=Mt(P.article,P.tags);if(I.kind==="unbased"&&console.warn("page: the article and its data changed together; kept the data"),I.kind!=="adopt")return $e;if(!r())return Lo;M();try{if(await ut(),$)return Ke;if(!r())return He;let K=await E();if(K==="timeout"&&console.warn("page: gave up waiting for the editor; the hand edit was not adopted"),K==="disposed"||$)return Ke;if(K!=="ready")return No;if(!r())return He;let j=gt(e.state.doc),Q=i(j,it(j,y),I.baseItems,I.parsed);return Q?(C(I.A),Vn(Q)):$e}finally{h()}}async function A(P){let I=P.article.getAttribute("data-rev"),K=I&&v.get(I)||[],j=K.at(-1)??B;if(K.slice(0,-1).some(Q=>Q.innerHTML===P.article.innerHTML)||(L(P.article),B=P.article,!j)||j.outerHTML===P.article.outerHTML)return $e;M();try{if(await ut(),$)return Ke;if(!r())return He;if(await b(),$)return Ke;if(!r())return He;if(await E()==="disposed"||$)return Ke;if(!r())return He;let le=gt(e.state.doc),ee=it(le,y),m=new Map(ee.map(F=>[F.id,F])),l=F=>tt(F,{seed:F.getAttribute("data-rev")??"",known:m}),k=i(le,ee,l(j),l(P.article));return k?Vn(k):$e}finally{h()}}async function z(P){try{return await g(P)}catch(I){return console.error("page: adoption failed",I),Fo}}let W=null;function T(P,I=!1){return Y=Y.then(()=>z(P)).then(K=>(I&&(W=K),!K.ok||K.outcome!=="adopted"||(s(),a(K.counts),y.dispatchEvent(new CustomEvent("clay:blockeditor-adopted",{detail:K.counts}))),K)),Y}function U(P){let I=P.detail?.html;if($||typeof I!="string")return;let K=Bo(new DOMParser().parseFromString(I,"text/html"));!K||K.article.innerHTML===N||(N=K.article.innerHTML,T(K))}return y.addEventListener("clay:sync-applied",U),o&&!p&&T(o,!0),{idle:async()=>(await Y,W),saved(P){if(!u||typeof P!="string")return;let I=new DOMParser().parseFromString(P,"text/html").querySelector(Et);I&&(L(I),B=I)},dispose(){$=!0,x(),y.removeEventListener("clay:sync-applied",U)}}}var Gn='["text-delete",',Xn=(e,o)=>o instanceof rn&&o._item&&o._item.parent===e.attrs&&typeof o._item.parentSub=="string"?o._item.parentSub:null,Qn=e=>e==="t"||e==="parent",_t=e=>e.content instanceof de&&e.content.embed.b!==void 0,zo=e=>e.content instanceof ht||e.content instanceof Te||e.content instanceof de&&e.content.embed.b===void 0,eo=e=>{let o=new Map;for(let n of e.stops)(o.get(n.client)??o.set(n.client,[]).get(n.client)).push(n);return o},to=(e,o)=>{let n=o.get(e.id.client);if(!n)return!1;let r=e.id.clock,t=r+e.length;return n.some(s=>s.clock<t&&r<s.clock+s.len)},Jo=(e,o)=>{for(let n=e.left;n;n=n.left){if(n.deleted){if(to(n,o))return null;continue}if(_t(n))return n}return null};function no(e,o,n){let r=eo(n),t=new Set,s=new Set,a=o.changed.get(e.tableFields)??new Set;for(let[h,w]of o.changed){if(h===e.flow)continue;if(h===e.attrs){if(!o.local)return null;for(let N of w){let B=e.attrs.get(N);if(!(B instanceof Ae)||B._item.left||B._item.id.clock<(o.beforeState.get(B._item.id.client)??0))return null;s.add(N)}if(s.size>1)return null;continue}if(h===e.tableFields){for(let N of w){let B=e.tableFields.has(N)?En(N,e.tableFields.get(N)):null;if(B===null)return null;t.add(B)}continue}let y=Xn(e,h);if(y!==null){for(let N of w)if(Qn(N))return null;t.add(y);continue}if(h!==e.gone)return null;for(let N of w)if(typeof N!="string"||!N.startsWith(Gn))return null}let f=e.ydoc.store,u=null,p=null,b=!1,C=h=>{if(!(h instanceof sn))return!1;if(h.parent===e.gone)return typeof h.parentSub=="string"&&h.parentSub.startsWith(Gn);if(h.parent===e.tableFields)return a.has(h.parentSub);if(h.parent===e.attrs)return s.has(h.parentSub);if(h.parent!==e.flow){let y=Xn(e,h.parent);return y!==null&&(s.has(y)||t.has(y)&&!Qn(h.parentSub))}if(_t(h)){if(h.deleted||!s.has(h.content.embed.b))return!1;p=h}else if(!zo(h))return!1;let w=Jo(h,r);return!w||u&&w!==u?!1:(u=w,h.content instanceof Te&&(b=!0),!0)};for(let[h,w]of o.afterState)for(let y=o.beforeState.get(h)??0;y<w;){let N=et(f,{client:h,clock:y});if(!C(N))return null;y=N.id.clock+N.length}let M=!1;for(let[h,w]of o.deleteSet.clients)for(let{clock:y,len:N}of w)for(let B=y;B<y+N;){let v=et(f,{client:h,clock:B});if(!C(v))return null;M=!0,B=v.id.clock+v.length}return s.size&&!p?null:u||t.size?{marker:u,split:p,deleted:M,formats:b,fields:t,remote:!o.local}:null}var Ko=e=>{for(let o in e)return{...e};return null};function oo(e,o,n,r=null){let t=r?.formats??!0,s=r?.split??null,a=o.visible,f=-1,u=0;for(let i=0;i<a.length;i++){let g=a[i];if(g.brk&&g.brk.client===n.id.client&&g.brk.clock===n.id.clock){f=i;break}u+=g.len}if(f<0)return null;let p=a[f];if(p.implicit||p.atom||p.opaque||p.recovered||p.hide)return null;let b=p.runs.findIndex(i=>i.hole!==void 0);if(b>=0&&t||p.items&&o.copies.has(p.baseId))return null;let C=eo(o),M={...p.fmtIn??{}},h=null,w={...p,runs:[],len:1};p.items&&(w.items=[]);let y=w,N=!1,B=Ye(o.holes,u),v=B+1;for(let i=n.right;i;i=i.right){if(i.deleted){if(to(i,C))return null;continue}if(_t(i)&&(i!==s||y!==w)){N=!0;break}let g=v;i.countable&&(v+=i.length);let A=i.content;if(i===s){let z=A.embed.b,W=e.attrs.get(z)?.get("t")||"paragraph";if(!Object.hasOwn(fe.nodes,W)||!fe.nodes[W].isTextblock)return null;let T=Ko(M);w.fmtOut=T,y={kind:"b",id:z,baseId:z,brk:{client:i.id.client,clock:i.id.clock},implicit:!1,runs:[],len:1,atom:!1,items:null,fmtIn:T,fmtOut:null,t:W,opaque:!1},h=null;continue}if(A instanceof Te){A.value===null?delete M[A.key]:M[A.key]=A.value,h=null;continue}if(A instanceof de){y.runs.push({br:!0}),y.items&&y.items.push({at:g,id:Ee(i.id),client:i.id.client,clock:i.id.clock,length:i.length,kind:"br",text:null,blockId:null,raw:{...M}}),y.len+=1;continue}if(A instanceof ht){if(!h){let z=vn(M,y.t);h={marks:z,mk:yn(z)}}y.runs.push({text:A.str,marks:h.marks,mk:h.mk}),y.items&&y.items.push({at:g,id:Ee(i.id),client:i.id.client,clock:i.id.clock,length:i.length,kind:"text",text:A.str,blockId:null,raw:{...M}}),y.len+=A.str.length}else if(i.countable)return null}let L=p.len;if(b<0){if(!ye(M,p.fmtOut??{}))return null}else{if(!N||y.t!==p.t)return null;L=1;for(let i=0;i<b;i++)L+=p.runs[i].br?1:p.runs[i].text.length}let Y=y===w?[w]:[w,y],$=Y.reduce((i,g)=>i+g.len,0)-L,x=B+L,c=i=>i.at>=x?{...i,at:i.at+$}:i;y.fmtOut=p.fmtOut,b>=0&&(y.runs=y.runs.concat(p.runs.slice(b)),y.len+=p.len-L,y.items&&(y.items=y.items.concat(p.items.filter(i=>i.at>=x).map(c))));let E={...o,visible:a.slice(),tokens:o.tokens+$};if(E.visible.splice(f,1,...Y),$){let i=u+L;E.holes=o.holes.map(g=>g.at>=i?{at:g.at+$,len:g.len}:g),E.hidden=o.hidden.map(g=>g.at>=x?{...g,at:g.at+$,items:g.items.map(c)}:g);for(let g=f+Y.length;g<E.visible.length;g+=1){let A=E.visible[g];A.items?.length&&(E.visible[g]={...A,items:A.items.map(c)})}}return E}var Ho=e=>e.br?`
2
+ `:e.hole!==void 0?{hole:e.hole}:{text:e.text,mk:e.mk},qo=e=>{let o=[];for(let n of e.map(Ho)){let r=o[o.length-1];r&&typeof r=="object"&&typeof n=="object"&&r.text!==void 0&&n.text!==void 0&&r.mk===n.mk?o[o.length-1]={text:r.text+n.text,mk:n.mk}:o.push(n)}return o},Zn=(e,o)=>{let n=et(e.ydoc.store,{client:o.client,clock:o.clock});return{client:n.id.client,clock:n.id.clock,len:n.length}},Ve=(e,o)=>rt({...o,copies:[...o.copies],fences:o.fences.map(n=>Zn(e,n)),stops:o.stops.map(n=>Zn(e,n)),visible:o.visible.map(n=>({...n,runs:qo(n.runs)}))});var ro=e=>e===!0?{}:e,so=(e,o)=>ye(ro(e),ro(o));function co(e,o,n,r){let t=e.attrs.get(o);t||(t=new Ae,e.attrs.set(o,t));let s=fe.nodes[n];if(!s){t.get("t")!==n&&t.set("t",n);for(let[p,b]of Object.entries(r??{}))p==="t"||p==="pos"||ye(t.has(p)?t.get(p):void 0,b)||t.set(p,b);return}let a=n==="table"&&t.get("t")==="table"&&!St(o),f=n==="board"&&!St(o),u=a?Cn(e.tableFields,o,In(e,o)):f?wt(e.boardFields,o):null;t.get("t")!==n&&t.set("t",n);for(let p of xe(s)){if(a&&(p==="rows"||p==="cols")||f&&(p==="columns"||p==="cards"))continue;let b=t.has(p)?t.get(p):Ne(s,p);ye(b,r[p])||t.set(p,r[p])}a&&vt(e,o,u,r),f&&xt(e,o,u,r)}function io(e,o){let n=new Map,r=o;for(let t=e.flow._start;t&&r>0;t=t.right){if(t.deleted)continue;let s=t.content;s instanceof Te?s.value===null?n.delete(s.key):n.set(s.key,s.value):t.countable&&(r-=t.length)}return n}function Vo(e){let o=new Set;for(let[r,t]of e)Ce(r)&&t&&o.add(r.split("!")[0]);let n=[];for(let[r,t]of e)!Ce(r)&&t!==null&&t!==void 0&&!o.has(r)&&fe.marks[Se(r)]&&n.push([r,t]);return n}function ao(e){let o=new Set;for(let[r,t]of e)Ce(r)&&t&&o.add(r.split("!")[0]);let n=[];for(let[r,t]of e)!Ce(r)&&t!==null&&t!==void 0&&!o.has(r)&&!fe.marks[Se(r)]&&n.push([r,t]);return n}function fo(e,o={}){let n={},r=!1;for(let[t,s]of e)(Ce(t)||fe.marks[Se(t)])&&(n[t]=s);for(let[t,s]of ao(e))r=!0,o[Se(t)]!==void 0&&(n[t]=s);return{attrs:n,opaque:r}}function Wo(e,o,n){let r=be(e),t={},s=Vo(o),a=new Set;for(let[u,p]of s){let b=Se(u),C=n[b];C!==void 0&&so(C,p)?a.add(b):t[`${u}!${r}`]=!0}for(let[u,p]of ao(o)){let b=Se(u);n[b]!==void 0&&so(n[b],p)&&a.add(b)}for(let[u,p]of Object.entries(n))a.has(u)||(t[`${u}~${be(e)}`]=p);let f=fo(o,n);if(!(!Object.keys(t).length&&!f.opaque))return{...f.attrs,...t}}var Nt=2e3;function Uo(e){let o=[],n=[],r=0;for(let t=0;t<e.length;t++)if(n.push(e[t]),r+=1,r>=Nt&&t+1<e.length){let s=e[t];if(s.k==="c"&&Fe(s.ch.charCodeAt(0)))continue;o.push(n),n=[],r=0}return n.length&&o.push(n),o}function lt(e,o,n,r=s=>s(),t=null){let s=o;for(let a of Uo(n))r(()=>{s+=Xo(e,s,a,t)});return s-o}var Go=(e,o,n)=>{if(!n||!n.length)return null;let r=o,t=e.flow._start;for(;t&&r>0;){if(!t.deleted&&t.countable){if(r<t.length)return null;r-=t.length}t=t.right}for(;t&&(t.deleted||!t.countable);t=t.right)if(t.deleted&&n.some(s=>s.client===t.id.client&&s.clock>=t.id.clock&&s.clock<t.id.clock+t.length))return t;return null},We=(e,o,n,r)=>{let t=Go(e,o,n);if(!t)return r();t.deleted=!1;try{return r()}finally{t.deleted=!0,e.flow._searchMarker&&(e.flow._searchMarker.length=0)}};function Xo(e,o,n,r=null){let t=o,s="",a=null,f=null,u=()=>{if(!s)return;let b=Wo(e,io(e,t),f??{});We(e,t,r,()=>e.flow.insert(t,s,b)),t+=s.length,s=""},p=b=>{let C=fo(io(e,t)).attrs;We(e,t,r,()=>e.flow.insertEmbed(t,b,C)),t+=1};for(let b of n)b.k==="c"?(a!==null&&b.mk!==a&&u(),a=b.mk,f=b.ma,s+=b.ch):b.k==="h"?(u(),a=null,p({br:1})):(u(),a=null,p({b:b.id}),co(e,b.id,b.t,b.attrs));return u(),t-o}var Qo=(e,o,n,r)=>{let t=0;for(let s=e.flow._start;s&&t<r;s=s.right){if(s.deleted||!s.countable)continue;let a=t;if(t+=s.length,t<=n||s.content instanceof de&&s.content.embed?.b!==void 0)continue;let f=Math.max(0,n-a),u=Math.min(s.length,r-a);u<=f||e.gone.set(Pn(s.id.client,s.id.clock+f,o.operationId),{length:u-f,actor:e.ydoc.clientID,sv:o.sv})}};function lo(e,o,n,r=null){for(let t=n.length-1;t>=0;t--){let[s,a]=n[t];if(a<=s)continue;let f=o.physicalRanges(s,a);for(let u=f.length-1;u>=0;u--){let[p,b]=f[u];b<=p||(r&&Qo(e,r,p,b),e.flow.delete(p,b-p))}}}function Zo(e,o,n){let r=!1;for(let t=e.flow._start;t;t=t.right){let s=Ee(t.id);if(s===o){r=!0;continue}if(!r)continue;let a=t.content instanceof de?t.content.embed:null;if(a&&a.b!==void 0&&a.b!==n)return s}return null}function Ft(e,o,n,r,t=null){let{pd:s,map:a,bt:f}=e,u=i=>t===null||t[i],p=0;for(;p<n.length&&p<r.length&&ze(n[p],r[p])&&u(p);)p++;let b=0;for(;b<n.length-p&&b<r.length-p&&ze(n[n.length-1-b],r[r.length-1-b])&&u(n.length-1-b);)b++;let C=i=>i&&i.k==="c"?i.ch.charCodeAt(0):-1;p>0&&Fe(C(n[p-1]))&&(nt(C(n[p]))||nt(C(r[p])))&&p--,b>0&&nt(C(n[n.length-b]))&&(Fe(C(n[n.length-b-1]))||Fe(C(r[r.length-b-1])))&&b--;let M=n.slice(p,n.length-b),h=r.slice(p,r.length-b),w=o+p,y=w+M.length,N=M.filter(i=>i.k==="b").map(i=>i.id).join(",");if(!(M.some(i=>i.k==="b")&&N===h.filter(i=>i.k==="b").map(i=>i.id).join(","))){let i=Le(s.origins);try{for(let T of M){if(T.k!=="b"||!T.brk)continue;let U=i.resolve(T.brk);i.boundaryOf(U)||e.tx(()=>i.recordBoundary(U,{blockId:T.id,kind:"removed"}))}}finally{i.dispose()}let g=new Set;M.forEach((T,U)=>{if(T.k!=="b"||!T.brk)return;let P=w+U,I=P+1;for(;I<f.length&&f[I].k!=="b";)I++;let K=I<=y&&I!==P+1,j=I<f.length?f[I].brk:null;K&&(e.tx(()=>s.gone.set(Be(Ee(T.brk),e.operationId),{blockId:T.id,end:j?Ee(j):null,sv:e.sv})),g.add(P))});let A=[],z=w;for(let T=w;T<y;T++)g.has(T)&&(T>z&&A.push([z,T]),z=T+1);y>z&&A.push([z,y]),e.tx(()=>lo(s,a,A,M.some(T=>T.k==="b")?null:e));let W=new Set(h.filter(T=>T.k==="b").map(T=>T.id));for(let T of M)if(!(T.k!=="b"||!T.brk||W.has(T.id)))for(let U of e.copies.get(T.id)??[]){let P=Be(U,e.operationId);s.gone.has(P)||e.tx(()=>s.gone.set(P,{blockId:T.id,end:Zo(s,U,T.id),sv:e.sv}))}h.length&&lt(s,a.toPhysical(w,"before"),h,e.tx,e.fences);return}let v=[],L=[],Y=[],$=w,x=0,c=0;for(;x<M.length||c<h.length;){let i=x;for(;i<M.length&&M[i].k!=="b";)i++;let g=c;for(;g<h.length&&h[g].k!=="b";)g++;let A=M.slice(x,i),z=h.slice(c,g);if(A.length&&v.push([$,$+A.length]),z.length&&L.push({at:$,toks:z}),$+=A.length,i<M.length&&(Y.push([M[i],h[g]]),$+=1),x=i+(i<M.length?1:0),c=g+(g<h.length?1:0),i>=M.length&&g>=h.length)break}let E=[...v.map(i=>({at:i[0],d:i})),...L.map(i=>({at:i.at,i}))].sort((i,g)=>g.at-i.at||(i.d?-1:1));for(let i of E)i.d?e.tx(()=>lo(s,a,[i.d],e)):lt(s,a.toPhysical(i.at,"before"),i.i.toks,e.tx,e.fences);for(let[i,g]of Y)e.tx(()=>{if(!fe.nodes[g.t])return;let A=e.recovered.get(i.id);if(A){i.t!==g.t&&s.gone.set(De(A,"t"),g.t);for(let T of xe(fe.nodes[g.t]))ye(i.attrs[T],g.attrs[T])||s.gone.set(De(A,T),g.attrs[T]);return}let z=i.id,W=s.attrs.get(z);if(W){let T=i.t==="table"&&g.t==="table"&&W.get("t")==="table",U=g.t==="board",P=U?i.t==="board"&&W.get("t")==="board"?i.attrs:wt(s.boardFields,z):null;i.t!==g.t&&W.set("t",g.t);for(let I of xe(fe.nodes[g.t])){if(T&&(I==="rows"||I==="cols")||U&&(I==="columns"||I==="cards"))continue;let K=W.has(I)?W.get(I):Ne(fe.nodes[g.t],I);ye(K,g.attrs[I])||W.set(I,g.attrs[I])}T&&vt(s,z,i.attrs,g.attrs),U&&xt(s,z,P,g.attrs)}else co(s,z,g.t,g.attrs)})}function Lt(e,o,n,r,t,s){let{pd:a,map:f}=e,u=`${r}~${be(a)}`,p=be(a),b=o;for(;b<n;){if(s[b].k!=="c"){b++;continue}let C=b;for(;C<n&&s[C].k==="c";)C++;let M=f.physicalRanges(b,C);if(t!==null)for(let[h,w]of M)a.flow.format(h,w-h,{[u]:t});else{let h=0;for(let w of a.flow.toDelta()){let y=typeof w.insert=="string"?w.insert.length:1;for(let[N,B]of M){if(h>=B)break;let v=Math.max(h,N),L=Math.min(h+y,B);if(L>v&&w.attributes){let Y={};for(let[$,x]of Object.entries(w.attributes))Se($)===r&&!Ce($)&&x!==null&&(Y[`${$}!${p}`]=!0);Object.keys(Y).length&&a.flow.format(v,L-v,Y)}}h+=y}}b=C}}var{AddMarkStep:uo,RemoveMarkStep:er,AttrStep:tr,ReplaceStep:nr,Mapping:ct}=ln,po=(e,o,n)=>{let r=e.resolve(o),t=e.resolve(n);return[r.depth&&r.node(1).type.name==="table"?r.before(1):o,t.depth&&t.node(1).type.name==="table"?t.after(1):n]},or=(e,o,n)=>{let r=!1;return e.nodesBetween(o,n,t=>(t.type.name==="table"&&(r=!0),!r&&t.type.name!=="table")),r};function mo(e,o,n,r,t=null,s=!0,a=null,{join:f=!1,open:u=!1}={}){let p=()=>{if(a){let l=a;a=null,l()}},b=[],C=[],M=[];for(let l of o)l.steps.forEach((k,F)=>{b.push(k),C.push(l.docs[F]),M.push(k.getMap())});if(!b.length)return;let h=new ct(M),w=[...Qe(Ze(e.ydoc)).entries()].sort((l,k)=>l[0]-k[0]),y=be(e),N=C[0],B=o[o.length-1].doc,v=n.visible.length===0&&N.childCount===1&&N.firstChild.type.name==="paragraph"?[{id:N.firstChild.attrs.id,implicit:!0,t:"paragraph",len:0}]:n.visible,L=new Map,Y=[];{let l=0;v.forEach(k=>{k.implicit&&Y.push({tok:l,id:k.id,t:k.t}),l+=k.len})}Y.sort((l,k)=>k.tok-l.tok);for(let l of Y)l.alias=bn(e),L.set(l.id,l.alias);let $=L.size?n.holes.map(l=>({at:l.at+Y.filter(k=>k.tok<l.at).length,len:l.len})):n.holes,x=Tt(n.tokens+L.size,$,e.flow.length+L.size),c=[],E=[];b.forEach((l,k)=>{let F=l instanceof uo||l instanceof er;if(F&&!or(C[k],l.from,l.to)){E.push({i:k,step:l});return}let R=new ct(M.slice(0,k)).invert(),D=new ct(M.slice(k+1)),q=[];l instanceof tr?q.push([l.pos,l.pos+1,l.pos,l.pos+1]):F?q.push([l.from,l.to,l.from,l.to]):l.getMap().forEach((O,te,X,G)=>q.push([O,te,X,G]));for(let[O,te,X,G]of q){let[Z,oe]=po(N,R.map(O,-1),R.map(te,1)),[ne,Ge]=po(B,D.map(X,-1),D.map(G,1));c.push({oa:Z,ob:oe,na:ne,nb:Ge})}}),c.sort((l,k)=>l.oa-k.oa||l.na-k.na);let i=[];for(let l of c){let k=i[i.length-1];k&&(l.oa<=k.ob||l.na<=k.nb)?(k.ob=Math.max(k.ob,l.ob),k.nb=Math.max(k.nb,l.nb)):i.push({...l})}let g=!Y.length&&!E.length&&b.every(l=>l instanceof nr)&&o.every(dn),A=g?null:It(N,L,v),z=g?null:It(B,L,v),W=g?[]:Ct(N,L,v),T=g?[]:Ct(B,L,v),U=g?i.map(l=>({r:l,old:At(N,l.oa,l.ob),next:At(B,l.na,l.nb)})):null,P=g?U.reduce((l,k)=>l+k.next.end-k.next.start,0):i.reduce((l,k)=>l+(z[k.nb]-z[k.na]),0),I=P>Nt,K=I?l=>e.ydoc.transact(k=>{k.meta.set(_e,s),p(),l()},me):l=>l(),j={pd:e,map:x,bt:W,tx:K,copies:n.copies,fences:n.fences,sv:w,operationId:y,recovered:new Map(n.visible.filter(l=>l.recovered).map(l=>[l.id,l.sourceKey]))},Q=l=>l.filter(k=>k.k==="b").map(k=>`${k.id}|${k.t}|${JSON.stringify(k.attrs)}`).join(`
3
+ `),le=!g&&(E.length>0||Q(W)!==Q(T)),ee=()=>{for(let F of Y)lt(e,Ye(n.holes,F.tok),[{k:"b",id:F.alias,t:F.t,attrs:Object.fromEntries(xe(fe.nodes[F.t]).map(R=>[R,Ne(fe.nodes[F.t],R)]))}],K);for(let F=i.length-1;F>=0;F--)if(g){let{r:R,old:D,next:q}=U[F],O=D.tokens.map((te,X)=>{let G=h.mapResult(R.oa+X,1),Z=h.mapResult(R.oa+X+1,-1),oe=G.pos-R.na;return!G.deleted&&!Z.deleted&&Z.pos===G.pos+1&&oe>=0&&oe<q.tokens.length&&ze(te,q.tokens[oe])});Ft(j,D.start,D.tokens,q.tokens,O)}else{let R=i[F],D=A[R.oa],q=A[R.ob];Ft(j,D,W.slice(D,q),T.slice(z[R.na],z[R.nb]))}let l=E.length?ue(e):null,k=l?{...j,map:Tt(l.tokens,l.holes,e.flow.length)}:null;for(let{i:F,step:R}of E){let D=new ct(M.slice(F+1)),q=z[D.map(R.from,1)],O=z[D.map(R.to,-1)];if(O<=q)continue;let te=R.mark.type.name,X=R instanceof uo?R.mark.attrs&&Object.keys(R.mark.attrs).length?{...R.mark.attrs}:!0:null;if(an(R.mark)){if(X===null)continue;let G=fn(R.mark.attrs.entries);K(()=>{for(let[Z,oe]of Object.entries(G))Lt(k,q,O,Z,oe,T)});continue}K(()=>Lt(k,q,O,te,X,T))}};f||t?.stopCapturing();let m=t?.captureTimeout;t&&(t.captureTimeout=1/0);try{I?ee():e.ydoc.transact(l=>{l.meta.set(_e,s),p(),ee()},me)}finally{t&&(t.captureTimeout=m),u||t?.stopCapturing()}r.groups++,r.lastGroup={chunked:I,structural:le,regional:g,span:P}}var ke=e=>({status:"refused",code:e}),ho=e=>{if(!e)return"";let o=[];for(let n of Object.keys(e).sort())o.push(`${n}=${JSON.stringify(e[n])}`);return o.join(`
4
+ `)},rr=(e,o,n)=>{let r=n?n.state.doc:null,s=r&&r.childCount===o.visible.length&&o.visible.every((f,u)=>r.child(u).attrs.id===f.id)?r:Re(e,o),a=[];return s.forEach(f=>{f.attrs.id===null||f.attrs.id===void 0||a.push({id:f.attrs.id,parent:f.attrs.parent??null,t:f.type.name})}),a},sr=(e,o)=>{let n=[],r=e.get(o)?.parent??null,t=0;for(;r!=null&&t++<=e.size;)n.push(r),r=e.get(r)?.parent??null;return n},bo=(e,o,n)=>sr(e,n).includes(o),Bt=(e,o,n)=>o===n||bo(e,n,o),Dt=(e,o,n,r,t)=>{if(o?.recovered){let a=De(o.sourceKey,r);(e.gone.has(a)?e.gone.get(a):o.fields?.[r]??null)!==t&&e.gone.set(a,t);return}let s=e.attrs.get(n);s||(s=new Ae,e.attrs.set(n,s)),s.get(r)!==t&&s.set(r,t)},at=(e,o,n,r)=>Dt(e,o,n,"parent",r),ir=8,go={indent:(e,o)=>o.t==="list_item"&&Number.isInteger(e)&&e>=0&&e<=ir,open:(e,o)=>o.t==="toggle"&&typeof e=="boolean",parent:(e,o,n)=>e===null||typeof e=="string"&&n.get(e)?.t==="toggle"&&!Bt(n,e,o.id)},lr=(e,o)=>{if(e?.attrs===void 0)return[];if(!e.attrs||typeof e.attrs!="object"||Array.isArray(e.attrs))return null;let n=[];for(let[r,t]of Object.entries(e.attrs)){let s=o.get(r);if(!s||!t||typeof t!="object"||Array.isArray(t))return null;for(let[a,f]of Object.entries(t)){if(!go[a]||!go[a](f,s,o))return null;n.push({id:r,field:a,value:f})}}return n},cr=(e,o)=>{let n=kt(e.flow,0,e.flow.length),r=[],t=0;for(let s of e.flow.toDelta()){let a=s.attributes;if(typeof s.insert=="string")for(let f=0;f<s.insert.length;f++)r.push({ch:s.insert[f],attrs:a,source:o.resolve(n[t++])});else r.push({embed:s.insert,attrs:a,source:o.resolve(n[t++])})}if(t!==n.length)throw new Error(`The flow delta has ${t} units but the document has ${n.length}`);return r},ar=(e,o,n)=>{let r=new Map;for(let s of o.visible)n.has(s.id)&&s.brk&&r.set(Oe(s.brk),s.id);for(let s of n)for(let a of o.copies.get(s)??[])r.set(a,s);let t=[];for(let s=e.flow._start;s;s=s.right){if(s.deleted||!(s.content instanceof de))continue;let a=s.content.embed?.b;if(a===void 0||r.get(Oe(s.id))!==a)continue;let f=null;for(let u=s.right;u;u=u.right){if(u.deleted||!(u.content instanceof de))continue;let p=u.content.embed?.b;if(!(p===void 0||p===a)){f=Oe(u.id);break}}t.push({key:Oe(s.id),blockId:a,end:f})}return t};function zt({pd:e,view:o,um:n,origins:r,render:t,walked:s=null},a={}){let f=Array.isArray(a?.ids)?[...new Set(a.ids)]:[],u=a?.afterId===void 0?null:a.afterId,p=a?.parent!==void 0,b=s??ue(e,r),C=new Set(b.visible.filter(m=>m.opaque).map(m=>m.id)),M=rr(e,b,o),h=new Map(M.map(m=>[m.id,m])),w=M.map(m=>m.id);if(!f.length)return ke("missing-source");for(let m of f)if(!h.has(m))return ke("missing-source");let y=lr(a,h);if(!y)return ke("invalid-attrs");let N=y.filter(m=>m.field==="parent"),B=new Set(f.filter(m=>!f.some(l=>l!==m&&bo(h,l,m)))),v=M.filter(m=>f.some(l=>Bt(h,m.id,l))),L=new Set(v.map(m=>m.id));if(v.some(m=>C.has(m.id))||y.some(m=>C.has(m.id)))return ke("unsupported-format");let Y=new Map(b.visible.map(m=>[m.id,m]));for(let m of v){let l=Y.get(m.id);if(!l||l.implicit||!l.brk)return ke("missing-source")}let $;if(p)$=a.parent??null;else{let m=new Set(v.filter(l=>B.has(l.id)).map(l=>l.parent));if(m.size!==1)return ke("invalid-parent");$=[...m][0]}if(p&&$!==null){let m=h.get($);if(!m||m.t!=="toggle")return ke("invalid-parent");if(L.has($))return ke("cycle")}if(u!==null){if(typeof u!="string"||!h.has(u))return ke("missing-destination");if(L.has(u))return ke("cycle");if(h.get(u).parent!==$)return ke("missing-destination")}let x=M.filter(m=>!L.has(m.id)),c=0;if(u===null){if($!==null){let m=x.findIndex(k=>k.parent===$),l=x.findIndex(k=>k.id===$);c=m>=0?m:l<0?0:l+1}}else for(c=x.findIndex(m=>m.id===u)+1;c<x.length&&Bt(h,x[c].id,u);)c++;let E=[...x.slice(0,c),...v,...x.slice(c)],i=E.length===w.length&&E.every((m,l)=>m.id===w[l]),g=v.filter(m=>B.has(m.id)&&m.parent!==$),A=v.map(m=>m.id);if(i&&!g.length&&!y.length)return{status:"unchanged"};let z=(()=>{let m=o?.state.selection;if(!(m instanceof pe.TextSelection))return null;let l=R=>{let D=o.state.doc.resolve(R);return D.depth?{id:D.node(1).attrs.id,offset:D.parentOffset}:null},k=l(m.anchor),F=l(m.head);return k&&F&&(L.has(k.id)||L.has(F.id))?{anchor:k,head:F}:null})(),W=()=>{if(!z||!o)return;let m=({id:F,offset:R})=>{let D=null;return o.state.doc.forEach((q,O)=>{D===null&&q.attrs.id===F&&(D=O+1+Math.min(R,q.content.size))}),D},l=m(z.anchor),k=m(z.head);l!==null&&k!==null&&o.dispatch(o.state.tr.setSelection(pe.TextSelection.create(o.state.doc,l,k)).setMeta(Me,!0).setMeta("addToHistory",!1))};if(i)return n?.stopCapturing(),e.ydoc.transact(()=>{if(N.length)for(let m of N)at(e,Y.get(m.id),m.id,m.value);else for(let m of g)at(e,Y.get(m.id),m.id,$);for(let m of y)m.field!=="parent"&&Dt(e,Y.get(m.id),m.id,m.field,m.value)},me),n?.stopCapturing(),t(),W(),{status:"moved",ids:A};let T=[...Qe(Ze(e.ydoc)).entries()].sort((m,l)=>m[0]-l[0]),U=be(e),P=cr(e,r),I=yt(b,e.flow.length),K=[],j=0;for(let m of b.visible){if(L.has(m.id)){let l=[];for(let[k,F]of I.physicalRanges(j,j+m.len))for(let R=k;R<F;R++)l.push(P[R]);K.push({seg:m,units:l})}j+=m.len}for(let m=0;m<K.length;m++){let l=K[m];if(l.seg.id!==A[m])throw new Error(`Captured ${l.seg.id} where ${A[m]} was expected`);if(!l.units.length||l.units[0].embed===void 0||l.units[0].embed.b!==l.seg.id)throw new Error(`The selected block ${l.seg.id} has no physical marker to copy`)}let Q=ar(e,b,L),le=Pe(e.gone),ee=new Map;for(let m of v){let l=Y.get(m.id);if(!l.recovered)continue;let k=b.removals.filter(D=>D.sourceKey===l.sourceKey),F=$n(l.sourceKey,k,le),R=le.restores.find(D=>D.key===F?.key)?.baseline??{type:l.t,attrs:l.fields??{}};ee.set(l.sourceKey,{covers:k.map(D=>D.key),baseline:JSON.parse(JSON.stringify(R))})}if(!Q.length)throw new Error("The selected blocks have no live physical markers to retire");return n?.stopCapturing(),e.ydoc.transact(()=>{for(let O of Q)e.gone.set(Be(O.key,U),{blockId:O.blockId,end:O.end,sv:T});let m=ue(e,r),l=yt(m,e.flow.length),k=m.visible.map(O=>O.id),F=0;if(c>0){let O=k.indexOf(x[c-1].id);F=O<0?0:O+1}let R=0;for(let O=0;O<F;O++)R+=m.visible[O].len;let D=l.toPhysical(R,"before"),q=[];for(let O of K){let te=D,X=null,G=null,Z=()=>{X!==null&&(We(e,D,m.fences,()=>e.flow.insert(D,X,G??void 0)),D+=X.length,X=null)};for(let ne of O.units)ne.ch!==void 0?(X!==null&&ho(ne.attrs)!==ho(G)&&Z(),X===null&&(X="",G=ne.attrs),X+=ne.ch):(Z(),We(e,D,m.fences,()=>e.flow.insertEmbed(D,ne.embed,ne.attrs)),D+=1);Z();let oe=kt(e.flow,te,D);if(oe.length!==O.units.length)throw new Error(`Copied ${O.seg.id} as ${oe.length} units instead of ${O.units.length}`);for(let ne=1;ne<O.units.length;ne++)q.push({dest:oe[ne],source:O.units[ne].source});r.recordBoundary(oe[0],O.seg.recovered?{blockId:O.seg.id,kind:"copy",recoveryOf:O.seg.sourceKey}:{blockId:O.seg.id,kind:"copy"}),O.seg.recovered&&e.gone.set(ot(O.seg.sourceKey,U),ee.get(O.seg.sourceKey)),e.gone.set(Tn(Oe(oe[0])),!0)}if(q.length&&r.recordSpans(q),N.length)for(let O of N)at(e,Y.get(O.id),O.id,O.value);else for(let O of g)at(e,Y.get(O.id),O.id,$);for(let O of y)O.field!=="parent"&&Dt(e,Y.get(O.id),O.id,O.field,O.value)},me),n?.stopCapturing(),t(),W(),{status:"moved",ids:A}}var Jt=e=>{let o=[];return e.forEach(n=>o.push([n.type.name,JSON.stringify(Object.fromEntries(xe(n.type).map(r=>[r,n.attrs[r]]))),n.isTextblock||n.type.name==="table"?JSON.stringify(n.content.toJSON()):null])),JSON.stringify(o)};function fr(e,o){if(e.childCount!==o.childCount)return!1;for(let n=0;n<e.childCount;n++){let r=e.child(n),t=o.child(n);if(r!==t&&(r.type!==t.type||xe(r.type).some(s=>!ye(r.attrs[s],t.attrs[s]))||(r.isTextblock||r.type.name==="table")&&!r.content.eq(t.content)))return!1}return!0}var ur=e=>{let o=[];return e.forEach((n,r)=>{n.type.name==="opaque_block"&&o.push([r,r+n.nodeSize])}),o},dr=(e,o)=>{let n=typeof e.from=="number"?e.from:typeof e.pos=="number"?e.pos:null;if(n===null)return!1;let r=typeof e.to=="number"?e.to:n+1;return o.some(([t,s])=>n<s&&r>t)},Ue=(e,o)=>{let n=e.resolve(o);return n.depth&&n.node(1).type.name==="table"?[n.before(1),n.after(1)]:null};function ko(e,o){let n=e.content.findDiffStart(o.content);if(n===null)return null;let{a:r,b:t}=e.content.findDiffEnd(o.content),s=n-Math.min(r,t);s>0&&(r+=s,t+=s);let a=(f,u)=>{let p=f.resolve(n);return p.parent.isTextblock&&p.sameParent(f.resolve(u))};return(Ue(e,n)||Ue(e,r))&&!(a(e,r)&&a(o,t))?(n=Ue(e,n)?.[0]??n,r=Ue(e,r)?.[1]??r,t=Ue(o,t)?.[1]??t,{start:n,endA:r,endB:t,tables:!0}):{start:n,endA:r,endB:t}}function Kt(e,o=null){let n=new Map;o?.forEach(u=>{u.attrs.id&&n.set(u.attrs.id,u)});let r=[];e.forEach(u=>r.push(u));let t=r.map(u=>({id:u.attrs.id,pos:n.get(u.attrs.id)?.attrs.pos??u.attrs.pos})),s=bt(t,"b"),a=!1,f=r.map((u,p)=>{let b=s[p]?.pos??t[p].pos,C=u.content;if(u.type.name==="table"){let w=[];u.forEach(v=>w.push(v));let y=w.map(v=>({id:v.attrs.id,pos:v.attrs.pos})),N=bt(y,"r"),B=w.map((v,L)=>{let Y=N[L]?.pos??y[L].pos;return Y===v.attrs.pos?v:v.type.create({...v.attrs,pos:Y},v.content,v.marks)});B.some((v,L)=>v!==w[L])&&(C=B)}if(b===u.attrs.pos&&C===u.content)return u;a=!0;let M={...u.attrs,pos:b},h=n.get(u.attrs.id);return h&&C===u.content&&h.hasMarkup(u.type,M,u.marks)&&h.content.eq(C)?h:u.type.create(M,C,u.marks)});return a?e.type.create(e.attrs,f):e}var yo=e=>{let o=new Set,n=null;for(let r=0;r<e.childCount;r++){let{id:t,pos:s}=e.child(r).attrs;if(!t||o.has(t)||!un(s)||n!==null&&n>=s)return!1;o.add(t),n=s}return!0},pr=(e,o)=>{for(let n in e.attrs)if(n!=="pos"&&e.attrs[n]!==o.attrs[n])return!1;return!0};function mr(e,o){if(e.childCount!==o.childCount||!yo(e))return!1;for(let n=0;n<e.childCount;n++){let r=e.child(n),t=o.child(n);if(r===t)continue;if(!(r.type===t.type&&r.marks===t.marks&&pr(r,t))&&!r.hasMarkup(t.type,{...t.attrs,pos:r.attrs.pos},t.marks)||!r.content.eq(t.content)||r.type.name==="table"&&!yo(r))return!1}return!0}var wo=e=>{if(e&&typeof e=="object"){for(let o of Object.keys(e))wo(e[o]);Object.freeze(e)}return e},vo=e=>wo(JSON.parse(JSON.stringify(e))),hr=(e,o)=>{let n=gn(o),r=0;for(let t=e.flow._start;t;t=t.right){if(t.id.client===n.client&&t.id.clock===n.clock)return t.deleted?r:r+t.length;!t.deleted&&t.countable&&(r+=t.length)}return r},gr=(e,o)=>{let n=null;for(let r=e.flow._start;r;r=r.right)r.id.client!==e.ydoc.clientID||!(r.content instanceof de)||r.content.embed?.b!==o||(!n||r.id.clock>n.clock)&&(n=r.id);return n};function xo({pd:e,onNotice:o=()=>{},ownedTokens:n=[],authorToken:r=null,stats:t={groups:0,mismatch:0,renders:0,first:null},captureTimeout:s=500}){let a=null,f=null,u=0,p=-1,b=null,C=0,M=new WeakMap,h=Le(e.origins);f=ue(e,h);let w=new on([e.flow,e.attrs,e.gone,e.tableFields,e.boardFields],{trackedOrigins:new Set([me]),captureTimeout:s,captureTransaction:d=>d.meta.get(_e)!==!1,deleteFilter:d=>{if(d.parent!==e.flow||!(d.content instanceof de))return!0;let S=h.resolve(d.id);return S.client!==d.id.client||S.clock!==d.id.clock||h.boundaryOf(d.id)?.kind!=="copy"}}),y=wn(e,w,h,d=>Pe(d).textDeletes),N=new Set,B=new Set(r?[...n,r]:n),v=r?()=>{let d=An(e.ydoc.clientID);e.origins.get(d)!==r&&e.origins.set(d,r)}:null,L=new Set,Y=new Set,$=0,x=null,c=null,E=d=>{let S=new Set;for(let J of d.blocks)for(let V of J.runs){if(!V.displaced)continue;let H=Rn(V.source)?.client===e.ydoc.clientID;V.author&&(H||B.has(V.author))?S.add(V.author):H&&S.add(null)}if(!S.size)return null;let _=[...S].filter(Boolean).sort();return{kind:"recovered-change",source:d.source,revision:d.revision,blockId:d.blockId,author:_[0]??null,authors:_}},i=d=>{let S=d.list.filter(J=>J.recoverable).map(J=>vo(J)),_=vo(S.map(J=>E(J)).filter(J=>J&&!L.has(`${J.source}\0${J.revision}`)));return Object.freeze({recoverable:Object.freeze(S),notices:Object.freeze(_)})},g=(d,S)=>{if(JSON.stringify(i(st(e,{index:h,walked:S})))===JSON.stringify(d)){t.provedRecoveries=(t.provedRecoveries??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error("Recovery snapshot built from the displacing sources diverged from a full reduction")},A=()=>{if(x&&x.version===$)return x.snapshot;let d=p===u?f:void 0,S=i(jn(e,{index:h,walked:d}));return t.proveWalks&&g(S,d),x={version:$,snapshot:S},S},z=d=>rt({recoverable:d.recoverable.map(S=>[S.source,S.revision]),notices:d.notices}),W=()=>{$++;let d=A();for(let _ of d.notices){let J=`${_.source}\0${_.revision}`;N.has(J)||(N.add(J),o(_))}if(!Y.size){c=null;return}let S=z(d);if(S!==c){c=S;for(let _ of[...Y])_(d)}},T=d=>{f=d,p=u,b=null,C=0},U=()=>p===u?f:null,P=d=>{let S=Ve(e,d),_=Ve(e,ue(e));if(S===_){t.provedWalks=(t.provedWalks??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error(`Incremental walk diverged from the full walk:
5
5
  ${S}
6
6
  ---
7
7
  ${_}`)},I=d=>JSON.stringify([d.removals,d.restores,d.textDeletes,[...d.copyActive],[...d.attrs].map(([S,_])=>[S,[..._]])]),K=()=>{if(I(Pe(e.gone))===I(Pe(e.gone,{kept:!1}))){t.provedIntents=(t.provedIntents??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error("Removal records kept across writes diverged from a fresh parse of the gone map")},j=d=>{K();let S=Le(e.origins),_;try{_=Ve(e,ue(e,{resolve:S.resolve,boundaryOf:S.boundaryOf}))}finally{S.dispose()}let J=Ve(e,d);if(J===_){t.provedIndexWalks=(t.provedIndexWalks??0)+1;return}throw t.walkMismatch=(t.walkMismatch??0)+1,new Error(`A walk with the kept origin index diverged from one with a fresh index:
8
8
  ${J}
9
9
  ---
10
- ${_}`)},Q=()=>{if(JSON.stringify(i(st(e,{index:h,walked:f})))!==JSON.stringify(A()))throw t.walkMismatch=(t.walkMismatch??0)+1,new Error("Recovery snapshot kept across an incremental walk diverged from a fresh one")},le=()=>{let d=C===1?b:null,S=d?d.marker?oo(e,f,d.marker,d):f:null;if(!S){let _=ue(e,h);return t.proveWalks&&j(_),T(_),null}if(d.fields.size)for(let _ of S.visible)d.fields.has(_.baseId)&&M.delete(_);return t.incrementalWalks=(t.incrementalWalks??0)+1,t.proveWalks&&P(S),T(S),d},ee=d=>{if(d.childCount===f.visible.length)for(let S=0;S<d.childCount;S++)M.has(f.visible[S])||M.set(f.visible[S],d.child(S))},m=(d,S)=>{if(d.childCount!==f.visible.length)return;let _=ko(d,S);if(!_)return;let J=d.resolve(_.start).index(0),V=Math.min(d.childCount-1,d.resolve(_.endA).index(0));for(let H=J;H<=V;H++)M.delete(f.visible[H])},l=()=>{let d=le();return!d||d.deleted||d.fields.size||d.remote&&f.hidden.length?W():t.proveWalks&&Q(),Re(e,f,M)},k=null,F=null,R=!1,D=!1,q=(d=!1,S=null)=>{t.renders++;let _=k;k=null;let J=Kt(S??l(),a.state.doc),V=ko(a.state.doc,J);if(!V){ee(a.state.doc);return}let H=a.state.tr.replace(V.start,V.endA,J.slice(V.start,V.endB)).setMeta(Me,!0).setMeta("addToHistory",!1);if(d&&H.setMeta("yundo",!0),_){let ae=se=>se>=0&&f.holes.some(ie=>se>=Kn(f.holes,ie.at)&&se<Ye(f.holes,ie.at)),re=(se,ie)=>{let we=null;return H.doc.forEach((Ie,Xe)=>{we===null&&Ie.attrs.id===se&&Ie.isTextblock&&(we=Xe+1+Math.min(ie,Ie.content.size))}),we},ce=se=>{let ie=dt(se.right,e.ydoc);if(!ie)return null;let we=qn(H.doc,f.holes,f.tokens,ie.index,f.visible);if(!se.block)return we;let Ie=H.doc.resolve(we);if(Ie.depth&&Ie.node(1).attrs.id===se.block.id)return we;let Xe=se.left?dt(se.left,e.ydoc):null;return!ae(ie.index)&&!(Xe&&ae(Xe.index-1))?we:re(se.block.id,se.block.offset)??we},he=ce(_.anchor),ge=ce(_.head);he!==null&&ge!==null&&H.setSelection(pe.TextSelection.create(H.doc,he,ge))}else if(V.tables&&a.state.selection instanceof pe.TextSelection){let ae=Pt(a.state.doc,a.state.selection.anchor),re=Pt(a.state.doc,a.state.selection.head),ce=ae&&Rt(H.doc,ae),he=re&&Rt(H.doc,re);ce!=null&&he!==null&&he!==void 0&&H.setSelection(pe.TextSelection.create(H.doc,ce,he))}a.dispatch(H),ee(a.state.doc)},O=new WeakMap,te=new WeakSet,X=d=>{if(d.changed.size||d.deleteSet.clients.size)return!1;for(let[S,_]of d.afterState)if((d.beforeState.get(S)??0)!==_)return!1;return!0},G=d=>{O.set(d,u),u++},Z=d=>{if(X(d)){te.add(d),p===O.get(d)&&u===p+1&&(p=u);return}C++,b=C===1?no(e,d,f):null},oe=d=>{if(R&&!D&&d.origin===me&&(w.stopCapturing(),R=!1),!a||d.origin===me||d.origin===w||k)return;let S=a.state.selection;if(!(S instanceof pe.TextSelection)||[S.$anchor,S.$head].some(J=>J.depth&&J.node(1).type.name==="table"))return;let _=J=>{let V=Hn(a.state.doc,f.holes,J.pos,f.visible);return{right:ut(e.flow,V),left:V>0?ut(e.flow,V,-1):null,block:J.depth?{id:J.node(1).attrs.id,offset:J.parentOffset}:null}};k={anchor:_(S.$anchor),head:_(S.$head)}},ne=d=>{d.origin!==me&&(F=null,R=!1)},Ge=(d,S)=>{let _=!1,J=!1,V=!1;for(let H of S)te.has(H)||(_=!0,H.origin===me?J=!0:H.origin===w&&(V=!0));if(!_){k=null;return}if(!a){W();return}if(J){k=null;return}q(V)},Oo=(d,S)=>{let _=zt({pd:e,view:a,um:w,origins:h,render:q,walked:U()},S);if(_.status!=="moved")return _.status==="refused"&&(t.moveRefusals=(t.moveRefusals??0)+1),_;let J=d.selection;if(J instanceof pe.TextSelection)return _;let V=a.state.doc,H=null,ae=null;if(V.forEach((he,ge)=>{S.ids.includes(he.attrs.id)&&(H===null&&(H=ge),ae=ge+he.nodeSize)}),H===null)return _;let re=J instanceof pe.NodeSelection?pe.NodeSelection.create(V,H):J.anchor<=J.head?new Ot(V.resolve(H),V.resolve(ae)):new Ot(V.resolve(ae),V.resolve(H)),ce=a.state.tr.setSelection(re).setMeta(Me,!0).setMeta("addToHistory",!1);return a.dispatch(d.scrolledIntoView?ce.scrollIntoView():ce),_},Mo=$n({pd:e,um:w,origins:h,render:()=>a?q():l()});return e.ydoc.on("beforeTransaction",G),e.ydoc.on("beforeTransaction",oe),e.ydoc.on("afterTransaction",Z),e.ydoc.on("afterTransaction",ne),e.ydoc.on("afterAllTransactions",Ge),{pd:e,stats:t,render:q,um:w,board:Mo,attach(d){a=d,T(ue(e,h))},dispose(){e.ydoc.off("beforeTransaction",G),e.ydoc.off("beforeTransaction",oe),e.ydoc.off("afterTransaction",Z),e.ydoc.off("afterTransaction",ne),e.ydoc.off("afterAllTransactions",Ge),y(),h.dispose(),w.destroy(),Y.clear(),a=null},get walk(){return f},get recoverable(){return A().recoverable},get notices(){return A().notices},subscribeRecovery(d){if(typeof d!="function")throw new TypeError("subscribeRecovery needs a listener");Y.add(d);let S=A();return c===null&&(c=z(S)),d(S),()=>{Y.delete(d)}},dismiss(d,S){L.add(`${d}\0${S}`),W()},dispatch(d){let S=d.getMeta(Ln);if(S)return Oo(d,S);let _=ur(a.state.doc);if(_.length&&d.steps.some(ie=>dr(ie,_)))return{status:"refused",code:"unsupported-format"};let{state:J,transactions:V}=a.state.applyTransaction(d),H=V.filter(ie=>ie.docChanged&&!ie.getMeta(Me));if(a.updateState(J),!H.length){V.some(ie=>ie.selectionSet&&!ie.getMeta(Me))&&(F=null,R&&(w.stopCapturing(),R=!1));return}p!==u?le():t.reusedWalks=(t.reusedWalks??0)+1;let ae=V.every(ie=>ie.getMeta("addToHistory")!==!1),re=v;v=null;let ce=ae?Fn(H,a):null,he=R&&Nn(F,ce);F=ce,D=he;try{mo(e,H,f,t,w,ae,re,{join:he,open:ce!==null})}finally{D=!1}R=ce!==null;let ge=a.state.doc;m(H[0].before,ge);let se=l();if(!fr(se,ge))t.mismatch++,t.first??={before:Jt(H[0].before),pm:Jt(ge),y:Jt(se)};else if(mr(ge,se)){t.renders++,k=null,ee(ge);return}q(!1,se)},restore(d,S){let _=ue(e,h),J=st(e,{index:h,walked:_}).sources.get(d),V=_.visible.find(re=>re.sourceKey===d||re.brk&&Oe(re.brk)===d);if(V)return{status:"resolved",id:V.id};if(!J||J.revision!==S)return{status:"stale",notice:A().notices.find(ce=>ce.source===d)??null};let H=`${Pn}${d}`;w.stopCapturing();let ae=null;if(e.ydoc.transact(()=>{e.gone.set(ot(d,be(e)),{covers:J.removals.map(re=>re.key),baseline:{type:J.type,attrs:JSON.parse(JSON.stringify(J.attrs))}}),e.flow.insertEmbed(hr(e,d),{b:H}),ae=gr(e,H),h.recordBoundary(ae,{blockId:H,kind:"restore",recoveryOf:d})},me),w.stopCapturing(),q(),!f.visible.some(re=>re.sourceKey===d&&re.id===H))throw new Error(`Restore did not project ${H}`);return{status:"restored",id:H}},moveBlocks(d){return zt({pd:e,view:a,um:w,origins:h,render:q,walked:U()},d)},undo(){return w.undo()!==null},redo(){return w.redo()!==null}}}function So({changed:e=()=>{}}={}){let o=[],n=()=>{let r=o.filter(Boolean);if(!r.length)return null;let t=r.length===1?r[0]:pt(r);return o=o.map(()=>null),o[o.length-1]=t,t};return{local(r){let t=r.slice(),s=0;for(;o[s];s++)t=pt([o[s],t]),o[s]=null;o[s]=t,e()},pending(){return o.some(Boolean)},accepted(r){let t=n();if(!t)return!0;let s=!1;try{s=vn(wn(r),t)}catch{}return s?(o=[],e(),!0):!1}}}function br({store:e,ydoc:o=new Zt,onNotice:n=()=>{},ownedTokens:r=[],authorToken:t=null,setTimer:s=setTimeout,clearTimer:a=clearTimeout,compact:f,captureTimeout:u=500,checkpointWithin:p=()=>{},requestCheckpoint:b=null,requestExitCheckpoint:C=null,registerUnsavedState:M=null,onStopped:h=()=>{},journal:w=null,exitClosed:y=()=>!1,stats:N={groups:0,mismatch:0,renders:0,first:null}}){for(let[,j]of Qt(e.value.y))en(o,xn(j),pn);let B=gn(o),v=w||null,L=()=>{},Y=So({changed:()=>L()}),$=Sn({store:e,ydoc:o,setTimer:s,clearTimer:a,compact:f,onStopped:j=>{if(j!=="page-full"&&j!=="compaction-failed"){h(j);return}Promise.resolve(b?.({timeoutMs:1e4})).catch(()=>{}).finally(()=>h(j))},onLocalUpdate:Y.local,journal:{local:j=>v?.local(j),dependency:j=>v?.dependency(j)}}),x=xo({pd:B,onNotice:n,ownedTokens:r,authorToken:t,stats:N,captureTimeout:u}),c=new Set,E=!1,i=!1,g=M?.({id:"page:live",isPending:()=>y()&&Y.pending()||e.pending.length>0||$.pending||$.reconcilePending||!!(v&&v.pending()>(v.failure?1:0)),flush:I}),A=()=>{g?.changed(),!i&&(i=!0,Promise.resolve().then(()=>{if(i=!1,!E)for(let j of[...c])j.check()}))};L=A;let z=e.onLocal(()=>{p(1500),A()}),W=e.onRebase(A),T=e.onConfirm(()=>{v?.acknowledged(),A()});v&&(v.onChange=A);let U=()=>Y.pending()||e.pending.length>0||$.pending||$.reconcilePending||!!(v&&v.pending()>(v.failure?1:0));function P({permit:j,deadline:Q,keepalive:le,signal:ee,timeoutMs:m}){let l=Math.min(Q??1/0,Date.now()+m),k=()=>ee?.aborted||Date.now()>=l;return new Promise(F=>{let R=!1,D=null,q=null,O={check(){q?.()},finish(Z){R||(R=!0,c.delete(O),a(D),ee?.removeEventListener("abort",te),F(Z))}},te=()=>O.finish({ok:!1,code:"timeout"}),X=Z=>new Promise(oe=>{let ne=()=>{a(D),q=null,oe()};D=s(ne,Z),q=ne}),G=async()=>{if($.settle(),Y.pending()&&C){let Z=await C({permit:j,deadline:l,signal:ee,keepalive:le,needsSave:()=>Y.pending()});if(R)return;if(!Z?.ok){O.finish(Z?.ok===!1?Z:{ok:!1,code:"checkpoint-failed"});return}}for(;!R;){if(!U()){O.finish({ok:!0});return}if(k()){O.finish({ok:!1,code:"timeout"});return}await X(50)}};c.add(O),ee?.addEventListener("abort",te,{once:!0}),G().catch(Z=>O.finish({ok:!1,code:"flush-failed",message:Z?.message||String(Z)}))})}function I({permit:j=null,deadline:Q=null,keepalive:le=!1,signal:ee=null,timeoutMs:m=1e4}={}){return E?Promise.resolve({ok:!1,code:"disposed"}):j?P({permit:j,deadline:Q,keepalive:le,signal:ee,timeoutMs:m}):new Promise(l=>{let k=Date.now()+m,F=!1,R=!1,D=!1,q=null,O={check:X,finish:te};function te(G){F||(F=!0,c.delete(O),a(q),l(G))}function X(){if(!(F||R||D)){R=!0;try{if($.settle(),e.pending.length&&(p(0),e.pending.length))return;if(D=!0,!b){te({ok:!0});return}Promise.resolve().then(()=>{if(!F)return b({timeoutMs:Math.max(0,k-Date.now())})}).then(te,G=>te({ok:!1,code:"checkpoint-failed",message:G?.message||String(G)}))}catch(G){te({ok:!1,code:"flush-failed",message:G?.message||String(G)})}finally{R=!1}}}c.add(O),q=s(()=>te({ok:!1,code:"timeout"}),m),X()})}return{ydoc:o,pd:B,provider:$,bridge:x,stats:N,flush:I,awareness:{generation:()=>Number.isSafeInteger(e.value?.g)&&e.value.g>=0?e.value.g:0,map:()=>({pd:B,w:x.walk})},get journal(){return v},filePending:()=>Y.pending(),acceptFile:j=>Y.accepted(j),doc:()=>Kt(Re(B,ue(B))),attach:j=>x.attach(j),dispatch:j=>x.dispatch(j),moveBlocks:j=>x.moveBlocks(j),board:x.board,undo:()=>x.undo(),redo:()=>x.redo(),restore:(j,Q)=>x.restore(j,Q),get recoverable(){return x.recoverable},get notices(){return x.notices},subscribeRecovery:j=>x.subscribeRecovery(j),dismiss:(j,Q)=>x.dismiss(j,Q),dispose(){if(!E){E=!0,z(),W(),T(),g?.dispose(),v?.close(),Promise.resolve(v?.channel?.flush?.()).catch(()=>{});for(let j of[...c])j.finish({ok:!1,code:"disposed"});x.dispose(),$.dispose()}}}}var Ht="Some text you typed was kept aside when its block moved or was removed.",kr=`
10
+ ${_}`)},Q=()=>{if(JSON.stringify(i(st(e,{index:h,walked:f})))!==JSON.stringify(A()))throw t.walkMismatch=(t.walkMismatch??0)+1,new Error("Recovery snapshot kept across an incremental walk diverged from a fresh one")},le=()=>{let d=C===1?b:null,S=d?d.marker?oo(e,f,d.marker,d):f:null;if(!S){let _=ue(e,h);return t.proveWalks&&j(_),T(_),null}if(d.fields.size)for(let _ of S.visible)d.fields.has(_.baseId)&&M.delete(_);return t.incrementalWalks=(t.incrementalWalks??0)+1,t.proveWalks&&P(S),T(S),d},ee=d=>{if(d.childCount===f.visible.length)for(let S=0;S<d.childCount;S++)M.has(f.visible[S])||M.set(f.visible[S],d.child(S))},m=(d,S)=>{if(d.childCount!==f.visible.length)return;let _=ko(d,S);if(!_)return;let J=d.resolve(_.start).index(0),V=Math.min(d.childCount-1,d.resolve(_.endA).index(0));for(let H=J;H<=V;H++)M.delete(f.visible[H])},l=()=>{let d=le();return!d||d.deleted||d.fields.size||d.remote&&f.hidden.length?W():t.proveWalks&&Q(),Re(e,f,M)},k=null,F=null,R=!1,D=!1,q=(d=!1,S=null)=>{t.renders++;let _=k;k=null;let J=Kt(S??l(),a.state.doc),V=ko(a.state.doc,J);if(!V){ee(a.state.doc);return}let H=a.state.tr.replace(V.start,V.endA,J.slice(V.start,V.endB)).setMeta(Me,!0).setMeta("addToHistory",!1);if(d&&H.setMeta("yundo",!0),_){let ae=se=>se>=0&&f.holes.some(ie=>se>=Kn(f.holes,ie.at)&&se<Ye(f.holes,ie.at)),re=(se,ie)=>{let we=null;return H.doc.forEach((Ie,Xe)=>{we===null&&Ie.attrs.id===se&&Ie.isTextblock&&(we=Xe+1+Math.min(ie,Ie.content.size))}),we},ce=se=>{let ie=pt(se.right,e.ydoc);if(!ie)return null;let we=qn(H.doc,f.holes,f.tokens,ie.index,f.visible);if(!se.block)return we;let Ie=H.doc.resolve(we);if(Ie.depth&&Ie.node(1).attrs.id===se.block.id)return we;let Xe=se.left?pt(se.left,e.ydoc):null;return!ae(ie.index)&&!(Xe&&ae(Xe.index-1))?we:re(se.block.id,se.block.offset)??we},he=ce(_.anchor),ge=ce(_.head);he!==null&&ge!==null&&H.setSelection(pe.TextSelection.create(H.doc,he,ge))}else if(V.tables&&a.state.selection instanceof pe.TextSelection){let ae=Pt(a.state.doc,a.state.selection.anchor),re=Pt(a.state.doc,a.state.selection.head),ce=ae&&Rt(H.doc,ae),he=re&&Rt(H.doc,re);ce!=null&&he!==null&&he!==void 0&&H.setSelection(pe.TextSelection.create(H.doc,ce,he))}a.dispatch(H),ee(a.state.doc)},O=new WeakMap,te=new WeakSet,X=d=>{if(d.changed.size||d.deleteSet.clients.size)return!1;for(let[S,_]of d.afterState)if((d.beforeState.get(S)??0)!==_)return!1;return!0},G=d=>{O.set(d,u),u++},Z=d=>{if(X(d)){te.add(d),p===O.get(d)&&u===p+1&&(p=u);return}C++,b=C===1?no(e,d,f):null},oe=d=>{if(R&&!D&&d.origin===me&&(w.stopCapturing(),R=!1),!a||d.origin===me||d.origin===w||k)return;let S=a.state.selection;if(!(S instanceof pe.TextSelection)||[S.$anchor,S.$head].some(J=>J.depth&&J.node(1).type.name==="table"))return;let _=J=>{let V=Hn(a.state.doc,f.holes,J.pos,f.visible);return{right:dt(e.flow,V),left:V>0?dt(e.flow,V,-1):null,block:J.depth?{id:J.node(1).attrs.id,offset:J.parentOffset}:null}};k={anchor:_(S.$anchor),head:_(S.$head)}},ne=d=>{d.origin!==me&&(F=null,R=!1)},Ge=(d,S)=>{let _=!1,J=!1,V=!1;for(let H of S)te.has(H)||(_=!0,H.origin===me?J=!0:H.origin===w&&(V=!0));if(!_){k=null;return}if(!a){W();return}if(J){k=null;return}q(V)},Oo=(d,S)=>{let _=zt({pd:e,view:a,um:w,origins:h,render:q,walked:U()},S);if(_.status!=="moved")return _.status==="refused"&&(t.moveRefusals=(t.moveRefusals??0)+1),_;let J=d.selection;if(J instanceof pe.TextSelection)return _;let V=a.state.doc,H=null,ae=null;if(V.forEach((he,ge)=>{S.ids.includes(he.attrs.id)&&(H===null&&(H=ge),ae=ge+he.nodeSize)}),H===null)return _;let re=J instanceof pe.NodeSelection?pe.NodeSelection.create(V,H):J.anchor<=J.head?new Ot(V.resolve(H),V.resolve(ae)):new Ot(V.resolve(ae),V.resolve(H)),ce=a.state.tr.setSelection(re).setMeta(Me,!0).setMeta("addToHistory",!1);return a.dispatch(d.scrolledIntoView?ce.scrollIntoView():ce),_},Mo=_n({pd:e,um:w,origins:h,render:()=>a?q():l()});return e.ydoc.on("beforeTransaction",G),e.ydoc.on("beforeTransaction",oe),e.ydoc.on("afterTransaction",Z),e.ydoc.on("afterTransaction",ne),e.ydoc.on("afterAllTransactions",Ge),{pd:e,stats:t,render:q,um:w,board:Mo,attach(d){a=d,T(ue(e,h))},dispose(){e.ydoc.off("beforeTransaction",G),e.ydoc.off("beforeTransaction",oe),e.ydoc.off("afterTransaction",Z),e.ydoc.off("afterTransaction",ne),e.ydoc.off("afterAllTransactions",Ge),y(),h.dispose(),w.destroy(),Y.clear(),a=null},get walk(){return f},get recoverable(){return A().recoverable},get notices(){return A().notices},subscribeRecovery(d){if(typeof d!="function")throw new TypeError("subscribeRecovery needs a listener");Y.add(d);let S=A();return c===null&&(c=z(S)),d(S),()=>{Y.delete(d)}},dismiss(d,S){L.add(`${d}\0${S}`),W()},dispatch(d){let S=d.getMeta(Ln);if(S)return Oo(d,S);let _=ur(a.state.doc);if(_.length&&d.steps.some(ie=>dr(ie,_)))return{status:"refused",code:"unsupported-format"};let{state:J,transactions:V}=a.state.applyTransaction(d),H=V.filter(ie=>ie.docChanged&&!ie.getMeta(Me));if(a.updateState(J),!H.length){V.some(ie=>ie.selectionSet&&!ie.getMeta(Me))&&(F=null,R&&(w.stopCapturing(),R=!1));return}p!==u?le():t.reusedWalks=(t.reusedWalks??0)+1;let ae=V.every(ie=>ie.getMeta("addToHistory")!==!1),re=v;v=null;let ce=ae?Fn(H,a):null,he=R&&Nn(F,ce);F=ce,D=he;try{mo(e,H,f,t,w,ae,re,{join:he,open:ce!==null})}finally{D=!1}R=ce!==null;let ge=a.state.doc;m(H[0].before,ge);let se=l();if(!fr(se,ge))t.mismatch++,t.first??={before:Jt(H[0].before),pm:Jt(ge),y:Jt(se)};else if(mr(ge,se)){t.renders++,k=null,ee(ge);return}q(!1,se)},restore(d,S){let _=ue(e,h),J=st(e,{index:h,walked:_}).sources.get(d),V=_.visible.find(re=>re.sourceKey===d||re.brk&&Oe(re.brk)===d);if(V)return{status:"resolved",id:V.id};if(!J||J.revision!==S)return{status:"stale",notice:A().notices.find(ce=>ce.source===d)??null};let H=`${Yn}${d}`;w.stopCapturing();let ae=null;if(e.ydoc.transact(()=>{e.gone.set(ot(d,be(e)),{covers:J.removals.map(re=>re.key),baseline:{type:J.type,attrs:JSON.parse(JSON.stringify(J.attrs))}}),e.flow.insertEmbed(hr(e,d),{b:H}),ae=gr(e,H),h.recordBoundary(ae,{blockId:H,kind:"restore",recoveryOf:d})},me),w.stopCapturing(),q(),!f.visible.some(re=>re.sourceKey===d&&re.id===H))throw new Error(`Restore did not project ${H}`);return{status:"restored",id:H}},moveBlocks(d){return zt({pd:e,view:a,um:w,origins:h,render:q,walked:U()},d)},undo(){return w.undo()!==null},redo(){return w.redo()!==null}}}function So({changed:e=()=>{}}={}){let o=[],n=()=>{let r=o.filter(Boolean);if(!r.length)return null;let t=r.length===1?r[0]:mt(r);return o=o.map(()=>null),o[o.length-1]=t,t};return{local(r){let t=r.slice(),s=0;for(;o[s];s++)t=mt([o[s],t]),o[s]=null;o[s]=t,e()},pending(){return o.some(Boolean)},accepted(r){let t=n();if(!t)return!0;let s=!1;try{s=xn(Sn(r),t)}catch{}return s?(o=[],e(),!0):!1}}}function br({store:e,ydoc:o=new tn,onNotice:n=()=>{},ownedTokens:r=[],authorToken:t=null,setTimer:s=setTimeout,clearTimer:a=clearTimeout,compact:f,captureTimeout:u=500,checkpointWithin:p=()=>{},requestCheckpoint:b=null,requestExitCheckpoint:C=null,registerUnsavedState:M=null,onStopped:h=()=>{},journal:w=null,exitClosed:y=()=>!1,stats:N={groups:0,mismatch:0,renders:0,first:null}}){for(let[,j]of en(e.value.y))nn(o,On(j),hn);let B=kn(o),v=w||null,L=()=>{},Y=So({changed:()=>L()}),$=Mn({store:e,ydoc:o,setTimer:s,clearTimer:a,compact:f,onStopped:j=>{if(j!=="blockeditor-full"&&j!=="compaction-failed"){h(j);return}Promise.resolve(b?.({timeoutMs:1e4})).catch(()=>{}).finally(()=>h(j))},onLocalUpdate:Y.local,journal:{local:j=>v?.local(j),dependency:j=>v?.dependency(j)}}),x=xo({pd:B,onNotice:n,ownedTokens:r,authorToken:t,stats:N,captureTimeout:u}),c=new Set,E=!1,i=!1,g=M?.({id:"page:live",isPending:()=>y()&&Y.pending()||e.pending.length>0||$.pending||$.reconcilePending||!!(v&&v.pending()>(v.failure?1:0)),flush:I}),A=()=>{g?.changed(),!i&&(i=!0,Promise.resolve().then(()=>{if(i=!1,!E)for(let j of[...c])j.check()}))};L=A;let z=e.onLocal(()=>{p(1500),A()}),W=e.onRebase(A),T=e.onConfirm(()=>{v?.acknowledged(),A()});v&&(v.onChange=A);let U=()=>Y.pending()||e.pending.length>0||$.pending||$.reconcilePending||!!(v&&v.pending()>(v.failure?1:0));function P({permit:j,deadline:Q,keepalive:le,signal:ee,timeoutMs:m}){let l=Math.min(Q??1/0,Date.now()+m),k=()=>ee?.aborted||Date.now()>=l;return new Promise(F=>{let R=!1,D=null,q=null,O={check(){q?.()},finish(Z){R||(R=!0,c.delete(O),a(D),ee?.removeEventListener("abort",te),F(Z))}},te=()=>O.finish({ok:!1,code:"timeout"}),X=Z=>new Promise(oe=>{let ne=()=>{a(D),q=null,oe()};D=s(ne,Z),q=ne}),G=async()=>{if($.settle(),Y.pending()&&C){let Z=await C({permit:j,deadline:l,signal:ee,keepalive:le,needsSave:()=>Y.pending()});if(R)return;if(!Z?.ok){O.finish(Z?.ok===!1?Z:{ok:!1,code:"checkpoint-failed"});return}}for(;!R;){if(!U()){O.finish({ok:!0});return}if(k()){O.finish({ok:!1,code:"timeout"});return}await X(50)}};c.add(O),ee?.addEventListener("abort",te,{once:!0}),G().catch(Z=>O.finish({ok:!1,code:"flush-failed",message:Z?.message||String(Z)}))})}function I({permit:j=null,deadline:Q=null,keepalive:le=!1,signal:ee=null,timeoutMs:m=1e4}={}){return E?Promise.resolve({ok:!1,code:"disposed"}):j?P({permit:j,deadline:Q,keepalive:le,signal:ee,timeoutMs:m}):new Promise(l=>{let k=Date.now()+m,F=!1,R=!1,D=!1,q=null,O={check:X,finish:te};function te(G){F||(F=!0,c.delete(O),a(q),l(G))}function X(){if(!(F||R||D)){R=!0;try{if($.settle(),e.pending.length&&(p(0),e.pending.length))return;if(D=!0,!b){te({ok:!0});return}Promise.resolve().then(()=>{if(!F)return b({timeoutMs:Math.max(0,k-Date.now())})}).then(te,G=>te({ok:!1,code:"checkpoint-failed",message:G?.message||String(G)}))}catch(G){te({ok:!1,code:"flush-failed",message:G?.message||String(G)})}finally{R=!1}}}c.add(O),q=s(()=>te({ok:!1,code:"timeout"}),m),X()})}return{ydoc:o,pd:B,provider:$,bridge:x,stats:N,flush:I,awareness:{generation:()=>Number.isSafeInteger(e.value?.g)&&e.value.g>=0?e.value.g:0,map:()=>({pd:B,w:x.walk})},get journal(){return v},filePending:()=>Y.pending(),acceptFile:j=>Y.accepted(j),doc:()=>Kt(Re(B,ue(B))),attach:j=>x.attach(j),dispatch:j=>x.dispatch(j),moveBlocks:j=>x.moveBlocks(j),board:x.board,undo:()=>x.undo(),redo:()=>x.redo(),restore:(j,Q)=>x.restore(j,Q),get recoverable(){return x.recoverable},get notices(){return x.notices},subscribeRecovery:j=>x.subscribeRecovery(j),dismiss:(j,Q)=>x.dismiss(j,Q),dispose(){if(!E){E=!0,z(),W(),T(),g?.dispose(),v?.close(),Promise.resolve(v?.channel?.flush?.()).catch(()=>{});for(let j of[...c])j.finish({ok:!1,code:"disposed"});x.dispose(),$.dispose()}}}}var Ht="Some text you typed was kept aside when its block moved or was removed.",kr=`
11
11
  :host { font: inherit !important; color: inherit !important; }
12
- .page-recover-root { display: contents; }
13
- .page-recover { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: 999px; cursor: pointer; }
14
- .page-recover[hidden], .page-recover-panel[hidden] { display: none; }
15
- .page-recover-panel { position: fixed; right: 16px; bottom: 64px; z-index: 21; width: min(380px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); padding: 8px; box-sizing: border-box; }
16
- .page-recover-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px; font-weight: 600; }
17
- .page-recover-note { margin: 0 6px 8px; font-size: 13px; opacity: .72; }
18
- .page-recover-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; min-height: 44px; padding: 8px 6px; border-top: 1px solid var(--page-chrome-line-rest); }
19
- .page-recover-row.is-target { outline: 2px solid var(--page-accent, currentColor); outline-offset: -2px; }
20
- .page-recover-meta { grid-column: 1; font-size: 12px; opacity: .72; }
21
- .page-recover-text { grid-column: 1; overflow-wrap: anywhere; }
22
- .page-recover-text mark { background: var(--page-mark-bg, rgba(255, 214, 102, .45)); color: inherit; border-radius: 2px; }
23
- .page-recover-row button, .page-recover-head button { grid-column: 2; grid-row: 1 / span 2; min-height: 36px; padding: 0 12px; font: inherit; font-size: 14px; color: inherit; background: transparent; border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); cursor: pointer; }
12
+ .blockeditor-recover-root { display: contents; }
13
+ .blockeditor-recover { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--blockeditor-ink); background: var(--blockeditor-pop-bg); border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: 999px; cursor: pointer; }
14
+ .blockeditor-recover[hidden], .blockeditor-recover-panel[hidden] { display: none; }
15
+ .blockeditor-recover-panel { position: fixed; right: 16px; bottom: 64px; z-index: 21; width: min(380px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; color: var(--blockeditor-ink); background: var(--blockeditor-pop-bg); border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: var(--blockeditor-chrome-radius); padding: 8px; box-sizing: border-box; }
16
+ .blockeditor-recover-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px; font-weight: 600; }
17
+ .blockeditor-recover-note { margin: 0 6px 8px; font-size: 13px; opacity: .72; }
18
+ .blockeditor-recover-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; min-height: 44px; padding: 8px 6px; border-top: 1px solid var(--blockeditor-chrome-line-rest); }
19
+ .blockeditor-recover-row.is-target { outline: 2px solid var(--blockeditor-accent, currentColor); outline-offset: -2px; }
20
+ .blockeditor-recover-meta { grid-column: 1; font-size: 12px; opacity: .72; }
21
+ .blockeditor-recover-text { grid-column: 1; overflow-wrap: anywhere; }
22
+ .blockeditor-recover-text mark { background: var(--blockeditor-mark-bg, rgba(255, 214, 102, .45)); color: inherit; border-radius: 2px; }
23
+ .blockeditor-recover-row button, .blockeditor-recover-head button { grid-column: 2; grid-row: 1 / span 2; min-height: 36px; padding: 0 12px; font: inherit; font-size: 14px; color: inherit; background: transparent; border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: var(--blockeditor-chrome-radius); cursor: pointer; }
24
24
  @media (max-width: 560px) {
25
- .page-recover { top: 12px; bottom: auto; min-height: 44px; }
26
- .page-recover-panel { left: 0; right: 0; bottom: 0; width: 100%; max-height: 70vh; border-radius: var(--page-chrome-radius) var(--page-chrome-radius) 0 0; }
27
- .page-recover-row button, .page-recover-head button { min-height: 44px; }
25
+ .blockeditor-recover { top: 12px; bottom: auto; min-height: 44px; }
26
+ .blockeditor-recover-panel { left: 0; right: 0; bottom: 0; width: 100%; max-height: 70vh; border-radius: var(--blockeditor-chrome-radius) var(--blockeditor-chrome-radius) 0 0; }
27
+ .blockeditor-recover-row button, .blockeditor-recover-head button { min-height: 44px; }
28
28
  }
29
- `,yr={heading:"Heading",list_item:"List item",toggle:"Toggle",quote:"Quote",code_block:"Code",callout:"Callout",table:"Table",image:"Image"},qt=280,ve=(e,o,n,r={})=>{let t=e.createElement(o);n&&(t.className=n);for(let[s,a]of Object.entries(r))t.setAttribute(s,a);return t};function vr(e,o){let n=ve(e,"div","page-recover-text"),r=0;for(let t of o.blocks){for(let s of t.runs){if(s.kind!=="text"||r>=qt)continue;let a=s.text.slice(0,qt-r);r+=a.length,n.append(s.displaced?Object.assign(e.createElement("mark"),{textContent:a}):e.createTextNode(a))}r<qt&&t!==o.blocks[o.blocks.length-1]&&n.append(e.createTextNode(" / "))}return n.textContent||(n.textContent="(no text)"),n}function wr(e){let o=new Set;for(let n of e.blocks)for(let r of n.runs)r.displaced&&o.add(r.author??null);return[...o]}function xr(e,o){let n=null;return e.state.doc.forEach((r,t)=>{n===null&&r.attrs.id===o&&(n=r.isTextblock?t+1:t)}),n===null?!1:(e.dispatch(e.state.tr.setSelection(pe.Selection.near(e.state.doc.resolve(n))).scrollIntoView()),e.focus(),!0)}function Sr({binding:e,mount:o,ownTokens:n=[],onRestored:r=()=>{},onStale:t=()=>{}}){let s=o.ownerDocument,a=new Set(n.filter(Boolean)),f=ve(s,"button","page-recover",{type:"button","aria-haspopup":"dialog","aria-expanded":"false"}),u=ve(s,"div","page-recover-panel",{role:"dialog","aria-label":"Recover changes"});f.hidden=!0,u.hidden=!0;let p=ve(s,"div","page-recover-root");p.append(f,u);let b=Ut({name:"page-recover",content:p,css:[kr],parent:o}),C={recoverable:[],notices:[]},M=null,h="",w=x=>x.some(c=>a.has(c))?x.length>1?"You and others":"You":x.some(c=>c!==null)?"Another editor":"An earlier edit",y=()=>{u.hidden=!0,M=null,f.setAttribute("aria-expanded","false")},N=x=>{let c;try{c=e.restore(x.source,x.revision)}catch(E){return console.error("[clay] Restore failed:",E),jn("This change could not be restored.","error"),{status:"failed"}}return c.status==="restored"||c.status==="resolved"?r(c.id):c.status==="stale"&&t(c),c},B=()=>{u.replaceChildren();let x=ve(s,"div","page-recover-head");x.append(s.createTextNode("Recover changes"));let c=ve(s,"button","",{type:"button"});c.textContent="Close",c.addEventListener("click",()=>{y(),f.focus()}),x.append(c);let E=ve(s,"p","page-recover-note");E.textContent="Text typed while its block was moved or removed. Restore puts it back as a new block.",u.append(x,E);for(let i of C.recoverable){let g=ve(s,"div","page-recover-row",{"data-source":i.source});i.source===M&&g.classList.add("is-target");let A=ve(s,"div","page-recover-meta");A.textContent=`${yr[i.type]??"Paragraph"} \xB7 ${w(wr(i))}`;let z=ve(s,"button","",{type:"button"});z.textContent="Restore",z.addEventListener("click",()=>N(i)),g.append(A,vr(s,i),z),u.append(g)}},v=(x=null)=>{if(!C.recoverable.length)return;M=x,u.hidden=!1,f.setAttribute("aria-expanded","true"),B();let c=[...u.querySelectorAll(".page-recover-row")];(c.find(i=>i.dataset.source===x)??c[0])?.querySelector("button")?.focus()},L=x=>{let c=x.map(E=>`${E.source}\0${E.revision}`).join(`
30
- `);if(c!==h){if(h=c,!x.length){St(Ht);return}_n(Ht,"warning",{actions:[{label:"Review",onClick:()=>v(x[0].source)},{label:"Dismiss",onClick:()=>{for(let E of x)e.dismiss(E.source,E.revision)}}]})}},Y=x=>{C=x;let c=x.recoverable.length;f.hidden=c===0,f.textContent=`Recover changes (${c})`,c?u.hidden||B():y(),L(x.notices)};f.addEventListener("click",()=>u.hidden?v():y()),u.addEventListener("keydown",x=>{x.key==="Escape"&&(x.stopPropagation(),y(),f.focus())});let $=e.subscribeRecovery(Y);return{open:v,close:y,restore:N,get count(){return C.recoverable.length},destroy(){$(),St(Ht),b.remove()}}}import("./page/editor-OSKOW6RS.js").catch(()=>null);export{Wn as ADOPTION_TIMEOUT_MS,Yo as acceptedPageState,Po as blocksFromYValue,je as canon,Mt as classifyFile,Io as createFeatureLoader,Sr as createRecoverList,br as createYPageBinding,xr as focusBlock,To as heldSlashRange,Ao as holdSlashRange,Do as installAdoption,jt as mergePageModels,Co as observeDocumentTitle,it as readBack,Ro as renderFromTags,$o as seedPageFromArticle,Eo as yValueOf};
29
+ `,yr={heading:"Heading",list_item:"List item",toggle:"Toggle",quote:"Quote",code_block:"Code",callout:"Callout",table:"Table",image:"Image"},qt=280,ve=(e,o,n,r={})=>{let t=e.createElement(o);n&&(t.className=n);for(let[s,a]of Object.entries(r))t.setAttribute(s,a);return t};function vr(e,o){let n=ve(e,"div","blockeditor-recover-text"),r=0;for(let t of o.blocks){for(let s of t.runs){if(s.kind!=="text"||r>=qt)continue;let a=s.text.slice(0,qt-r);r+=a.length,n.append(s.displaced?Object.assign(e.createElement("mark"),{textContent:a}):e.createTextNode(a))}r<qt&&t!==o.blocks[o.blocks.length-1]&&n.append(e.createTextNode(" / "))}return n.textContent||(n.textContent="(no text)"),n}function wr(e){let o=new Set;for(let n of e.blocks)for(let r of n.runs)r.displaced&&o.add(r.author??null);return[...o]}function xr(e,o){let n=null;return e.state.doc.forEach((r,t)=>{n===null&&r.attrs.id===o&&(n=r.isTextblock?t+1:t)}),n===null?!1:(e.dispatch(e.state.tr.setSelection(pe.Selection.near(e.state.doc.resolve(n))).scrollIntoView()),e.focus(),!0)}function Sr({binding:e,mount:o,ownTokens:n=[],onRestored:r=()=>{},onStale:t=()=>{}}){let s=o.ownerDocument,a=new Set(n.filter(Boolean)),f=ve(s,"button","blockeditor-recover",{type:"button","aria-haspopup":"dialog","aria-expanded":"false"}),u=ve(s,"div","blockeditor-recover-panel",{role:"dialog","aria-label":"Recover changes"});f.hidden=!0,u.hidden=!0;let p=ve(s,"div","blockeditor-recover-root");p.append(f,u);let b=Vt({name:"blockeditor-recover",content:p,css:[kr],parent:o}),C={recoverable:[],notices:[]},M=null,h="",w=x=>x.some(c=>a.has(c))?x.length>1?"You and others":"You":x.some(c=>c!==null)?"Another editor":"An earlier edit",y=()=>{u.hidden=!0,M=null,f.setAttribute("aria-expanded","false")},N=x=>{let c;try{c=e.restore(x.source,x.revision)}catch(E){return console.error("[clay] Restore failed:",E),Wt("This change could not be restored.","error"),{status:"failed"}}return c.status==="restored"||c.status==="resolved"?r(c.id):c.status==="stale"&&t(c),c},B=()=>{u.replaceChildren();let x=ve(s,"div","blockeditor-recover-head");x.append(s.createTextNode("Recover changes"));let c=ve(s,"button","",{type:"button"});c.textContent="Close",c.addEventListener("click",()=>{y(),f.focus()}),x.append(c);let E=ve(s,"p","blockeditor-recover-note");E.textContent="Text typed while its block was moved or removed. Restore puts it back as a new block.",u.append(x,E);for(let i of C.recoverable){let g=ve(s,"div","blockeditor-recover-row",{"data-source":i.source});i.source===M&&g.classList.add("is-target");let A=ve(s,"div","blockeditor-recover-meta");A.textContent=`${yr[i.type]??"Paragraph"} \xB7 ${w(wr(i))}`;let z=ve(s,"button","",{type:"button"});z.textContent="Restore",z.addEventListener("click",()=>N(i)),g.append(A,vr(s,i),z),u.append(g)}},v=(x=null)=>{if(!C.recoverable.length)return;M=x,u.hidden=!1,f.setAttribute("aria-expanded","true"),B();let c=[...u.querySelectorAll(".blockeditor-recover-row")];(c.find(i=>i.dataset.source===x)??c[0])?.querySelector("button")?.focus()},L=x=>{let c=x.map(E=>`${E.source}\0${E.revision}`).join(`
30
+ `);if(c!==h){if(h=c,!x.length){ft(Ht);return}Ut(Ht,"warning",{actions:[{label:"Review",onClick:()=>v(x[0].source)},{label:"Dismiss",onClick:()=>{for(let E of x)e.dismiss(E.source,E.revision)}}]})}},Y=x=>{C=x;let c=x.recoverable.length;f.hidden=c===0,f.textContent=`Recover changes (${c})`,c?u.hidden||B():y(),L(x.notices)};f.addEventListener("click",()=>u.hidden?v():y()),u.addEventListener("keydown",x=>{x.key==="Escape"&&(x.stopPropagation(),y(),f.focus())});let $=e.subscribeRecovery(Y);return{open:v,close:y,restore:N,get count(){return C.recoverable.length},destroy(){$(),ft(Ht),b.remove()}}}import("./page/editor-KAZDJNND.js").catch(()=>null);export{Wn as ADOPTION_TIMEOUT_MS,Yo as acceptedPageState,Po as blocksFromYValue,je as canon,Mt as classifyFile,Io as createFeatureLoader,Sr as createRecoverList,br as createYPageBinding,xr as focusBlock,To as heldSlashRange,Ao as holdSlashRange,Do as installAdoption,jt as mergePageModels,Co as observeDocumentTitle,it as readBack,Ro as renderFromTags,$o as seedPageFromArticle,Eo as yValueOf};
@@ -0,0 +1,19 @@
1
+ import{a as I,b as _t,c as z}from"./c-RETTCOWO.js";var Te=/^(https?:|mailto:|tel:)/i;function rt(t){let e=String(t??"").trim().replace(/[\u0000-\u001f\u007f]/g,"");return e?e.startsWith("#")||e.startsWith("/")&&!e.startsWith("//")||Te.test(e)?e:/^[a-z][a-z0-9+.-]*:/i.test(e)?null:/^(\/\/)?[\w-]+(\.[\w-]+)+(:\d+)?([/?#]\S*)?$/.test(e)?`https://${e.replace(/^\/\//,"")}`:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?`mailto:${e}`:null:null}var ht=t=>t&&/^data:image\/(png|jpeg|gif|webp);/i.test(t)&&t.length<=21e5?t:rt(t);function gt(t){if(typeof t!="string")return null;let e=rt(t);return e&&/^(https?:|\/(?!\/))/i.test(e)?e:null}var v={id:{default:null},pos:{default:null},parent:{default:null}},S=(t,e={})=>({"data-id":t.attrs.id,...e}),mt=new I.Schema({nodes:{doc:{content:"block+"},paragraph:{group:"block",content:"inline*",attrs:v,toDOM:t=>["p",S(t),0]},heading:{group:"block",content:"inline*",defining:!0,attrs:{...v,level:{default:2},pageIcon:{default:null},pageCoverSrc:{default:null},pageCoverAlt:{default:""},pageCoverX:{default:50},pageCoverY:{default:50}},toDOM:t=>[`h${t.attrs.level}`,S(t),0]},list_item:{group:"block",content:"inline*",attrs:{...v,kind:{default:"bullet"},indent:{default:0},checked:{default:!1},owner:{default:null},due:{default:null}},toDOM:t=>["div",S(t,{class:"blockeditor-li","data-kind":t.attrs.kind,"data-indent":String(t.attrs.indent),"data-checked":t.attrs.checked?"true":"false"}),0]},quote:{group:"block",content:"inline*",attrs:v,toDOM:t=>["blockquote",S(t),0]},callout:{group:"block",content:"inline*",attrs:v,toDOM:t=>["aside",S(t,{class:"blockeditor-callout"}),0]},code_block:{group:"block",content:"text*",marks:"",code:!0,defining:!0,attrs:{...v,lang:{default:""}},toDOM:t=>["pre",S(t,{"data-lang":t.attrs.lang}),["code",0]]},toggle:{group:"block",content:"inline*",attrs:{...v,open:{default:!1},level:{default:null}},toDOM:t=>["div",S(t,{class:"blockeditor-toggle","data-open":t.attrs.open?"true":"false",...t.attrs.level?{"data-level":String(t.attrs.level)}:{}}),0]},divider:{group:"block",atom:!0,attrs:v,toDOM:t=>["hr",S(t)]},toc:{group:"block",atom:!0,attrs:{...v,maxLevel:{default:null}},toDOM:t=>["div",S(t,{class:"blockeditor-toc","data-type":"toc",...t.attrs.maxLevel?{"data-max-level":String(t.attrs.maxLevel)}:{}})]},image:{group:"block",atom:!0,draggable:!0,attrs:{...v,src:{default:""},alt:{default:""},caption:{default:""},width:{default:null},align:{default:null}},toDOM:t=>["figure",S(t,{"data-type":"image",...t.attrs.width?{"data-width":String(t.attrs.width)}:{},...t.attrs.align?{"data-align":t.attrs.align}:{}}),["img",{src:t.attrs.src,alt:t.attrs.alt}],["figcaption",t.attrs.caption]]},file:{group:"block",atom:!0,attrs:{...v,src:{default:""},name:{default:""},size:{default:null},mime:{default:null}},toDOM:t=>["div",S(t,{class:"blockeditor-file","data-type":"file","data-src":gt(t.attrs.src)??"","data-name":t.attrs.name,"data-size":t.attrs.size==null?"":String(t.attrs.size),"data-mime":t.attrs.mime??""}),["a",{href:gt(t.attrs.src),target:"_blank",rel:"noopener noreferrer"},t.attrs.name||"file"]]},table:{group:"block",content:"table_row+",isolating:!0,attrs:{...v,cols:{default:{}},sort:{default:null}},toDOM:t=>["table",S(t),["tbody",0]]},table_row:{content:"table_cell+",attrs:{id:{default:null},pos:{default:null}},toDOM:t=>["tr",S(t),0]},table_cell:{content:"inline*",isolating:!0,attrs:{col:{default:null}},toDOM:t=>["td",{"data-col":t.attrs.col},0]},chart:{group:"block",atom:!0,attrs:{...v,source:{default:null},kind:{default:"line"},x:{default:null},series:{default:[]},title:{default:""},highlight:{default:null}},toDOM:t=>["figure",S(t,{"data-type":"chart"})]},board:{group:"block",atom:!0,attrs:{...v,columns:{default:{}},cards:{default:{}}},toDOM:t=>["section",S(t,{"data-type":"board"})]},tool:{group:"block",atom:!0,attrs:{...v,artifact:{default:null},rev:{default:null},state:{default:{}}},toDOM:t=>["section",S(t,{"data-type":"tool"})]},preserved:{group:"block",atom:!0,attrs:{...v,html:{default:""}},toDOM:t=>["div",S(t,{"data-type":"preserved"})]},opaque_block:{group:"block",content:"inline*",atom:!0,isolating:!0,selectable:!0,attrs:{...v,raw:{default:null}},toDOM:t=>["div",S(t,{"data-type":"newer-format","data-format":String(t.attrs.raw?.t??""),contenteditable:"false"}),["span",{class:"blockeditor-newer-format"},`Newer format: ${String(t.attrs.raw?.t??"")}`],["span",{class:"blockeditor-newer-format-text"},t.textContent]]},text:{group:"inline"},hard_break:{group:"inline",inline:!0,selectable:!1,toDOM:()=>["br"]}},marks:{strong:{toDOM:()=>["strong",0]},em:{toDOM:()=>["em",0]},strike:{toDOM:()=>["s",0]},code:{toDOM:()=>["code",0]},link:{attrs:{href:{}},inclusive:!1,toDOM:t=>["a",{href:rt(t.attrs.href)},0]},mention:{attrs:{id:{}},inclusive:!1,excludes:"mention date link",toDOM:t=>["span",{"data-blockeditor-mention":t.attrs.id},0]},date:{attrs:{date:{}},inclusive:!1,excludes:"mention date link",toDOM:t=>["time",{datetime:t.attrs.date,"data-blockeditor-date":""},0]},underline:{toDOM:()=>["u",0]},text_color:{attrs:{color:{}},toDOM:t=>["span",{"data-color":t.attrs.color},0]},highlight:{attrs:{color:{}},toDOM:t=>["mark",{"data-color":t.attrs.color},0]}}});var Vn=new Set(["underline","text_color","highlight"]),je=["gray","brown","orange","yellow","green","blue","purple","pink","red"],Ce=new Set(je);function H(t,e){let n=e!==null&&typeof e=="object"&&!Array.isArray(e);if(t==="underline")return n&&Object.keys(e).length===0?{}:null;if(t==="text_color"||t==="highlight"){let r=n?Object.keys(e):[];return r.length===1&&r[0]==="color"&&Ce.has(e.color)?{color:e.color}:null}return null}function Gn(t,e){let{$from:n,$to:r,empty:o}=t.selection;if(o)return n.parent.type.allowsMarkType(e);let a=!1;return t.doc.nodesBetween(n.pos,r.pos,(l,i,c)=>{!a&&l.isText&&c?.type.allowsMarkType(e)&&(a=!0)}),a}var _e='@{"type":"hard_break"}';function D(t){if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return String(t);if(t===null||typeof t!="object"||typeof t.c!="string")return"";let e=[];for(let r of Array.isArray(t.m)?t.m:[])if(!Array.isArray(r))e.push(r);else for(let o=0;o<r[0]&&e.length<t.c.length;o++)e.push(r[1]);let n="";for(let r=0;r<t.c.length;r++)n+=t.c[r]==="\uFFFC"&&e[r]===_e?`
2
+ `:t.c[r];return n}var Rt="opaque_marks",R="clay_opaque_code",Jt="x",Bt=/^[A-Za-z_][A-Za-z0-9_-]{0,63}$/,It=32,Dt=1e4,Ie=/[A-Za-z]/,K=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),yt=t=>t===null||typeof t!="object"?t:JSON.parse(JSON.stringify(t));function ot(t){let e=0,n=(r,o)=>{if(o>It)throw new RangeError(`page: inline JSON is deeper than ${It}`);if(!(r===null||typeof r!="object")){if(Array.isArray(r)){for(let a of r)n(a,o+1);return}for(let a of Object.keys(r)){if(++e>Dt)throw new RangeError(`page: inline JSON has more than ${Dt} keys`);n(r[a],o+1)}}};return n(t,1),t}function De(t,e){let n=0,r=!1;for(;e<t.length;e++){let o=t[e];if(r)o==="\\"?e++:o==='"'&&(r=!1);else if(o==='"')r=!0;else if(o==="[")n++;else if(o==="]"&&--n===0)return e+1}throw new SyntaxError(`page: unterminated attrs in mark key ${t}`)}var Lt=t=>new SyntaxError(`page: malformed mark key ${t}`);function V(t){if(typeof t!="string")throw new TypeError("page: a mark key is not a string");let e=[];for(let n=0;n<t.length;){let r=t[n];if(!Ie.test(r))throw Lt(t);let o=n+1,a=null;if(t[o]==="["&&(o=De(t,o),a=ot(JSON.parse(t.slice(n+1,o))),!Array.isArray(a)))throw Lt(t);if(r!==Jt)e.push({code:r,attrs:a,token:t.slice(n,o)});else{if(!a||a.length!==2||typeof a[0]!="string"||!Bt.test(a[0])||!K(a[1]))throw new SyntaxError(`page: the named mark in ${t} is not [name, attrs]`);if(a[0]===R)throw new SyntaxError(`page: ${R} is reserved`);e.push({name:a[0],attrs:yt(a[1])})}n=o}return e}var Le=(t,e)=>{if(t.name!==e.name)return t.name<e.name?-1:1;let n=JSON.stringify(t.attrs),r=JSON.stringify(e.attrs);return n===r?0:n<r?-1:1};function J(t){let e=[],n=[],r=new Set;for(let o of t)if(o.name===void 0){if(r.has(o.token))throw new TypeError(`page: duplicate mark descriptor ${o.token}`);r.add(o.token),n.push(o.token)}else{let a=JSON.stringify([o.name,o.attrs]);if(r.has(a))throw new TypeError(`page: duplicate mark descriptor ${a}`);r.add(a),e.push({name:o.name,attrs:yt(o.attrs)})}return e.sort(Le),n.length?[...e,{tokens:n}]:e}function L(t){if(!Array.isArray(t))throw new TypeError("page: opaque entries are not a list");let e=[];for(let n of t){if(!K(n))throw new TypeError("page: an opaque entry is not an object");if(n.tokens!==void 0){if(Object.keys(n).length!==1||!Array.isArray(n.tokens))throw new TypeError("page: an opaque entry is not { tokens: [...] }");for(let r of n.tokens){let o=V(r);if(o.length!==1||o[0].name!==void 0)throw new SyntaxError(`page: malformed mark token ${r}`);e.push(o[0])}}else{if(Object.keys(n).length!==2||typeof n.name!="string"||!Bt.test(n.name)||!K(n.attrs))throw new TypeError("page: an opaque entry is not { name, attrs }");if(n.name===R)throw new SyntaxError(`page: ${R} is reserved`);e.push({name:n.name,attrs:ot(n.attrs)})}}return J(e)}function G(t){let e="";for(let n of L(t))n.tokens?e+=n.tokens.join(""):e+=Jt+JSON.stringify([n.name,n.attrs]);return e}var qe=(()=>{let t=new I.MarkType(Rt,Object.keys(mt.marks).length,mt,{attrs:{entries:{default:[]}},inclusive:!1,excludes:"",toDOM:()=>["span",0]});return t.excluded=[],t})(),Ft=t=>t.type.name===Rt,Pt=t=>qe.create({entries:L(t)});function Xn(t){let e=Object.create(null);for(let n of L(t))n.tokens?e[R]={tokens:[...n.tokens]}:e[n.name]=yt(n.attrs);return e}var Re=t=>t.split("!")[0].split("~")[0],qt=t=>t.includes("!");function tr(t){let e=new Set;for(let r of Object.keys(t))qt(r)&&t[r]&&e.add(r.split("!")[0]);let n=[];for(let[r,o]of Object.entries(t)){if(o==null||qt(r)||e.has(r))continue;let a=Re(r);if(a===R){if(!K(o)||Object.keys(o).length!==1||!Array.isArray(o.tokens))throw new TypeError(`page: ${R} is not { tokens: [...] }`);n.push({tokens:o.tokens})}else n.push({name:a,attrs:K(o)?o:{}})}return L(n)}var bt="\uFFFC",Ht={strong:"b",em:"i",strike:"s",code:"c",link:"a"},Kt=new Set(["underline","text_color","highlight"]),Je=Object.fromEntries(Object.entries(Ht).map(([t,e])=>[e,t]));function Be(t){let e="",n=[];for(let r of t){if(Ft(r)){e+=G(r.attrs.entries);continue}let o=Ht[r.type.name];if(!o){let l=H(r.type.name,r.attrs);if(!l&&Kt.has(r.type.name))throw new TypeError(`page: the mark ${r.type.name} has no key code`);n.push({name:r.type.name,attrs:l??r.attrs});continue}e+=o;let a=Object.keys(r.type.attrs);a.length&&(e+=JSON.stringify(a.map(l=>r.attrs[l])))}return n.length?e+G(n):e}var Ut=new WeakMap;function Fe(t,e){if(!e)return I.Mark.none;let n=Ut.get(t);n||Ut.set(t,n=new Map);let r=n.get(e);if(r)return r;r=[];let o=[];for(let a of V(e)){if(a.code===void 0){let p=H(a.name,a.attrs),s=t.marks[a.name];p?r=s.create(p).addToSet(r):s&&!Kt.has(a.name)&&Object.keys(a.attrs??{}).every(u=>Object.hasOwn(s.attrs,u))?r=s.create(a.attrs).addToSet(r):o.push(a);continue}let l=Je[a.code];if(!l){o.push(a);continue}let i=t.marks[l];if(!i)throw new TypeError(`page: unknown mark code ${a.code} in ${e}`);let c=a.attrs?Object.fromEntries(Object.keys(i.attrs).map((p,s)=>[p,a.attrs[s]])):null;r=i.create(c).addToSet(r)}return o.length&&(r=Pt(J(o)).addToSet(r)),n.set(e,r),r}function wt(t){let e="",n=[];return t.forEach(r=>{if(r.isText){let o=Be(r.marks);e+=r.text;for(let a=0;a<r.text.length;a++)n.push(o)}else e+=bt,n.push("@"+JSON.stringify(r.toJSON()))}),{c:e,m:n}}function Vt(t){let e=[];for(let n of t){let r=e[e.length-1];r&&r[1]===n?r[0]++:e.push([1,n])}return e}var Pe=t=>Array.isArray(t)&&Array.isArray(t[0]);function $t(t,e){if(!Pe(t))return t;let n=[];for(let r of t){if(!Array.isArray(r)||!Number.isInteger(r[0])||r[0]<1||typeof r[1]!="string"||n.length+r[0]>e)return null;for(let o=0;o<r[0];o++)n.push(r[1])}return n.length===e?n:null}var Ue=t=>t>=55296&&t<=56319,zt=t=>t&&t[0]!=="@"?t:"";function xt(t,e,n,r=null){let o=[],a=l=>r?l.filter(i=>r.allowsMarkType(i.type)):l;for(let l=0;l<e.length;){let i=n&&n[l]||"";if(e[l]===bt&&i[0]==="@"){o.push(I.Node.fromJSON(t,JSON.parse(i.slice(1)))),l++;continue}let c=zt(i),p=l+1;for(;p<e.length&&!(e[p]===bt&&(n&&n[p]||"")[0]==="@")&&zt(n&&n[p]||"")===c;)p++;p<e.length&&Ue(e.charCodeAt(p-1))&&p++,o.push(t.text(e.slice(l,p),a(Fe(t,c)))),l=p}return o}var ze="clay-page-remote",W="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",He=/^[0-9A-Za-z]*[1-9A-Za-z]$/,Y=t=>typeof t=="string"&&He.test(t);function kt(t,e){if(e!==null){let o=0;for(;(t[o]||"0")===e[o];)o++;if(o>0)return e.slice(0,o)+kt(t.slice(o),e.slice(o))}let n=t?W.indexOf(t[0]):0,r=e!==null?W.indexOf(e[0]):W.length;return r-n>1?W[Math.round((n+r)/2)]:e!==null&&e.length>1?e.slice(0,1):W[n]+kt(t.slice(1),null)}function Gt(t=null,e=null){if(t!==null&&!Y(t))throw new TypeError(`page: invalid order key ${t}`);if(e!==null&&!Y(e))throw new TypeError(`page: invalid order key ${e}`);if(t!==null&&e!==null&&t>=e)throw new RangeError(`page: order key ${t} is not before ${e}`);return kt(t??"",e)}function B(t,e,n){if(n<=0)return[];if(n===1)return[Gt(t,e)];let r=Gt(t,e),o=Math.floor(n/2);return[...B(t,r,o),r,...B(r,e,n-o-1)]}function At(t){return Object.keys(t).sort((e,n)=>{let r=t[e].pos??"",o=t[n].pos??"";return r!==o?r<o?-1:1:e<n?-1:e>n?1:0})}function Ke(t="b"){let e=new Uint8Array(4);return globalThis.crypto.getRandomValues(e),`${t}-${Date.now().toString(36)}${Array.from(e,n=>(n%36).toString(36)).join("")}`}var Ve=new Set(["id","pos"]),Ge=(t,e)=>JSON.stringify(t)===JSON.stringify(e),We=t=>t===null||typeof t!="object"?t:JSON.parse(JSON.stringify(t));function Ye(t){let e={};for(let[n,r]of Object.entries(t.type.spec.attrs||{}))Ve.has(n)||Ge(t.attrs[n],r.default)||(e[n]=We(t.attrs[n]));return e}function Ze(t){let{c:e,m:n}=wt(t.content);return n.some(Boolean)?{c:e,m:Vt(n)}:e}function Qe(t,e){if(e!==null&&typeof e=="object"&&typeof e.c=="string"){let r=$t(e.m,e.c.length);if(r)return xt(t,e.c,r,t.nodes.table_cell)}let n=D(e);return n?t.text(n):null}function Xe(t){let e={t:t.type.name,pos:t.attrs.pos,...Ye(t)};if(t.type.name==="table"){let n={};t.forEach(r=>{let o={};r.forEach(a=>{o[a.attrs.col]=Ze(a)}),n[r.attrs.id]={pos:r.attrs.pos,cells:o}}),e.rows=n}else if(t.type.spec.content){let{c:n,m:r}=wt(t.content);e.c=n,r.some(Boolean)&&(e.m=r)}return e}function cr(t){let e={};return t.forEach(n=>{e[n.attrs.id]=Xe(n)}),e}function tn(t,e,n){let{t:r,pos:o,c:a,m:l,w:i,rows:c,...p}=n;if(r==="table"){let d=At(p.cols||{}),{table_row:g,table_cell:h}=t.nodes,y=At(c||{}).map(b=>g.createChecked({id:b,pos:c[b].pos},d.map(w=>h.createChecked({col:w},Qe(t,c[b].cells?.[w])))));return t.nodes.table.createChecked({...p,id:e,pos:o},y)}let s=t.nodes[r];if(!s)throw new RangeError(`page: unknown block type ${r}`);let u=typeof a=="string"?xt(t,a,$t(l,a.length),s):Array.isArray(a)&&a.length?I.Fragment.fromJSON(t,a):null;return s.create({...p,id:e,pos:o},u)}function ur(t,e){let n=At(e).map(r=>tn(t,r,e[r]));return n.length?t.nodes.doc.create(null,n):t.nodes.doc.createAndFill()}function en(t){let e=[],n=[],r=new Array(t.length).fill(-1);t.forEach((a,l)=>{if(a===null)return;let i=0,c=e.length;for(;i<c;){let p=i+c>>1;e[p]<a?i=p+1:c=p}i>0&&(r[l]=n[i-1]),e[i]=a,n[i]=l});let o=new Set;for(let a=n[e.length-1]??-1;a>=0;a=r[a])o.add(a);return o}function Wt(t,e){let n=new Map;t.forEach(({id:l,rank:i=0},c)=>{l&&(!n.has(l)||i>(t[n.get(l)].rank??0))&&n.set(l,c)});let r=t.map(({id:l},i)=>!l||n.get(l)!==i),o=en(t.map(({pos:l},i)=>!r[i]&&Y(l)?l:null)),a=t.map(()=>null);for(let l=0;l<t.length;){if(o.has(l)){l++;continue}let i=l;for(;i<t.length&&!o.has(i);)i++;let c=l>0?t[l-1].pos:null,p=i<t.length?t[i].pos:null,s=B(c,p,i-l);for(let u=l;u<i;u++)a[u]={id:r[u]?Ke(e):t[u].id,pos:s[u-l]};l=i}return a}function nn(t){for(let e=0;e<t.steps.length;e++){let n=t.steps[e];if(n instanceof z.ReplaceStep){if(n.slice.openStart||n.slice.openEnd)return!1;for(let a=0;a<n.slice.content.childCount;a++)if(!n.slice.content.child(a).isInline)return!1}else if(!(n instanceof z.AddMarkStep||n instanceof z.RemoveMarkStep))return!1;let r=t.docs[e].resolve(n.from),o=t.docs[e].resolve(n.to);if(r.depth!==1||o.depth!==1||r.index(0)!==o.index(0)||!r.parent.isTextblock)return!1}return!0}function fr(){let t=new WeakSet,e=n=>{let r=new Set,o=null,a=!0;return n.forEach(l=>{if((!l.attrs.id||r.has(l.attrs.id)||!Y(l.attrs.pos)||o!==null&&o>=l.attrs.pos)&&(a=!1),r.add(l.attrs.id),o=l.attrs.pos,l.type.name!=="table")return;let i=new Set,c=null;l.forEach(p=>{(!p.attrs.id||i.has(p.attrs.id)||!Y(p.attrs.pos)||c!==null&&c>=p.attrs.pos)&&(a=!1),i.add(p.attrs.id),c=p.attrs.pos})}),a};return new _t.Plugin({state:{init(n,r){return e(r.doc)&&t.add(r.doc),null},apply(){return null}},appendTransaction(n,r,o){if(t.has(r.doc)&&n.every(nn))return t.add(o.doc),null;if(!n.some(g=>g.docChanged&&!g.getMeta(ze)))return t.has(r.doc)&&e(o.doc)&&t.add(o.doc),null;let a=o.tr,l=(g,h,y)=>{y&&a.setNodeMarkup(h,null,{...g.attrs,...y})},i=new z.Mapping;for(let g of n)i.appendMapping(g.mapping);let c=new Map,p=(g,h)=>{if(!g.attrs.id)return;let y=i.mapResult(h,1);c.set(g.attrs.id,{node:g,at:y.deleted?null:y.pos})};r.doc.forEach((g,h)=>{p(g,h),g.type.name==="table"&&g.forEach((y,b)=>p(y,h+1+b))});let s=(g,h)=>{let y=c.get(g.attrs.id);return y?(y.node.content.eq(g.content)?2:0)+(y.at===h?1:0):0},u=g=>g.map(({node:h,at:y})=>({...h.attrs,rank:s(h,y)})),d=[];o.doc.forEach((g,h)=>d.push({node:g,at:h})),Wt(u(d),"b").forEach((g,h)=>l(d[h].node,d[h].at,g));for(let{node:g,at:h}of d){if(g.type.name!=="table")continue;let y=[];g.forEach((b,w)=>y.push({node:b,at:h+1+w})),Wt(u(y),"r").forEach((b,w)=>l(y[w].node,y[w].at,b))}return a.docChanged||t.add(o.doc),a.docChanged?a:null}})}var Ot=class extends Error{constructor(e,n){super(`CSV ${e} at line ${n}`),this.name="CsvError",this.code=e,this.line=n}};function rn(t){let e=new Map([[",",0],[";",0],[" ",0]]),n=!1;for(let r=0;r<t.length;r++){let o=t[r];if(o==='"')n&&t[r+1]==='"'?r++:n=!n;else{if(!n&&(o==="\r"||o===`
3
+ `))break;!n&&e.has(o)&&e.set(o,e.get(o)+1)}}return[...e].sort((r,o)=>o[1]-r[1])[0][0]}function hr(t,{delimiter:e}={}){if(t=String(t).replace(/^\uFEFF/,""),e??=rn(t),typeof e!="string"||e.length!==1||/["\r\n]/.test(e))throw new TypeError("CSV delimiter must be one non-newline character");let n=[],r=[],o="",a=!1,l=1,i=1;for(let u=0;u<t.length;u++){let d=t[u];a?d==='"'?t[u+1]==='"'?(o+='"',u++):a=!1:d==="\r"||d===`
4
+ `?(o+=d,d==="\r"&&t[u+1]===`
5
+ `&&(o+=t[++u]),l++):o+=d:d==='"'&&o===""?(a=!0,i=l):d===e?(r.push(o),o=""):d==="\r"||d===`
6
+ `?(r.push(o),n.push(r),r=[],o="",d==="\r"&&t[u+1]===`
7
+ `&&u++,l++):o+=d}if(a)throw new Ot("unterminated-quote",i);if((r.length||o!==""||t&&!/[\r\n]$/.test(t))&&n.push([...r,o]),!n.length)return{header:[],rows:[]};let[c,...p]=n,s=Math.max(c.length,...p.map(u=>u.length));c.length=s;for(let u=0;u<s;u++)c[u]??="";for(let u of p)for(let d=u.length;d<s;d++)u.push("");return{header:c,rows:p}}function St(t){if(typeof t!="string"||!/^[+-]?(?:0|[1-9]\d*)(?:[.,]\d+)?$/.test(t))return null;let e=Number(t.replace(",","."));return Number.isFinite(e)?e:null}function Yt(t,e){return t.map((n,r)=>{let o=e.map(l=>l[r]??"").filter(l=>l.trim()!=="");return o.length?new Set(o.map(l=>l.includes(",")?",":l.includes(".")?".":null).filter(Boolean)).size<=1&&o.every(l=>St(l)!==null)?"number":o.every(l=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(l))return!1;let i=new Date(`${l}T00:00:00Z`);return!Number.isNaN(i.getTime())&&i.toISOString().slice(0,10)===l})?"date":"text":"text"})}var on=Object.freeze(["text","number","date"]);function gr(t,e){return on.includes(t)?t:Yt([""],e.map(n=>[n]))[0]}function mr({header:t,rows:e},{maxBytes:n=1/0,newId:r}={}){if(typeof r!="function")throw new TypeError("tableFromCsv needs newId");let o=Yt(t,e),a={},l=t.map(()=>r()),i=B(null,null,t.length);t.forEach((g,h)=>{a[l[h]]={pos:i[h],name:g,kind:o[h]}});let c={},p=B(null,null,e.length),s=new TextEncoder,u=s.encode(JSON.stringify({cols:a,rows:c})).length,d=0;for(let g=0;g<e.length;g++){let h=r(),y={pos:p[g],cells:Object.fromEntries(l.map((w,f)=>[w,e[g][f]??""]))},b=s.encode(`${d?",":""}${JSON.stringify(h)}:${JSON.stringify(y)}`).length;if(u+b>n)break;c[h]=y,u+=b,d++}return{cols:a,rows:c,truncated:d===e.length?null:{kept:d,total:e.length}}}var M=t=>String(t??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),k=t=>Number(t.toFixed(2)).toString();function Zt(t,e,n){t===e&&(t-=Math.max(Math.abs(t)*.05,1),e+=Math.max(Math.abs(e)*.05,1));let r=(e-t)/(n-1),o=10**Math.floor(Math.log10(r)),a=[1,2,5,10].map(c=>c*o),l=a.find(c=>Math.floor(e/c)-Math.ceil(t/c)+1<=n)??a.at(-1);for(;Math.floor(e/l)-Math.ceil(t/l)+1>n;)l*=2;let i=[];for(let c=Math.ceil(t/l);c<=Math.floor(e/l);c++)i.push(Number((c*l).toPrecision(12)));return i.length?i:[Number(t.toFixed(2)),Number(e.toFixed(2))]}var Qt=(t,e)=>({state:"missing",reason:e,sourceId:t.source??null,title:t.title??""});function Xt(t,e){if(!e)return Qt(t,"table");let n=e.cols??[],r=e.rows??[];if(!n.find(u=>u.id===t.x)||!t.series?.length||t.series.some(u=>!n.some(d=>d.id===u)))return Qt(t,"column");let l=(t.type==="pie"?t.series.slice(0,1):t.series).map((u,d)=>{let g=n.find(y=>y.id===u),h=r.map((y,b)=>({id:`${t.id}:${y.id}:${u}`,rowId:y.id,colId:u,rowIndex:b,xLabel:D(y.cells?.[t.x]),value:St(D(y.cells?.[u])),highlight:y.id===t.highlight}));return{id:u,name:g.name,color:`var(--chart-${d%6+1})`,points:h}}),i=l.flatMap(u=>u.points),c=i.map(u=>u.value).filter(u=>u!==null),p=c.length?c.reduce((u,d)=>Math.min(u,d),1/0):0,s=c.length?c.reduce((u,d)=>Math.max(u,d),-1/0):1;if(t.type==="bar")p=Math.min(p,0),s=Math.max(s,0);else{let u=(s-p||Math.max(Math.abs(s),1))*.05;p-=u,s+=u}return p===s&&(s=p+1),{state:"ok",type:t.type,title:t.title??"",series:l,points:i,xLabels:r.map(u=>D(u.cells?.[t.x])),yTicks:Zt(p,s,6),narrowTicks:Zt(p,s,3),domain:[p,s]}}var A={width:560,height:232,cx:150,cy:116,radius:84},st=6,sn=t=>Math.max(A.height,54+(t-1)*36+24);function te(t){let e=t.points.filter(n=>n.value!==null);return`${t.name}: ${e.length?`${k(e[0].value)} to ${k(e.at(-1).value)}`:"no values"}`}function an(t){let e=t.series[0];if(!e)return[];let n=e.points.filter(l=>l.value!==null&&l.value>0),r=n.reduce((l,i)=>l+i.value,0);if(!r)return[];let o=n.length<=st?n:[...n.slice(0,st-1),{id:`${n[0].id.split(":")[0]}:other`,xLabel:"Other",value:n.slice(st-1).reduce((l,i)=>l+i.value,0),highlight:n.slice(st-1).some(l=>l.highlight)}],a=-Math.PI/2;return o.map((l,i)=>{let c=l.value/r,p={point:l,color:`var(--chart-${i%6+1})`,fraction:c,percent:Math.round(c*100),from:a,to:a+c*Math.PI*2};return a=p.to,p})}function ln(t,e,n){let r=sn(e.length),o=k(n*r/A.width),a=t.series[0]?te(t.series[0]):"no values",l=[`<svg xmlns="http://www.w3.org/2000/svg" role="img" width="${n}" height="${o}" viewBox="0 0 ${A.width} ${r}">`,`<title>${M(t.title)}</title>`,`<desc>${M(a)}</desc>`];return e.length||l.push(`<text x="${A.width/2}" y="${A.cy}" text-anchor="middle">No positive values to chart</text>`),e.forEach(i=>{let c=` data-point="${M(i.point.id)}"${i.point.highlight?' data-highlight="true"':""}`;if(i.fraction>=.999){l.push(`<circle${c} cx="${A.cx}" cy="${A.cy}" r="${A.radius}" fill="${i.color}"/>`);return}let p=k(A.cx+A.radius*Math.cos(i.from)),s=k(A.cy+A.radius*Math.sin(i.from)),u=k(A.cx+A.radius*Math.cos(i.to)),d=k(A.cy+A.radius*Math.sin(i.to));l.push(`<path${c} d="M ${A.cx} ${A.cy} L ${p} ${s} A ${A.radius} ${A.radius} 0 ${i.fraction>.5?1:0} 1 ${u} ${d} Z" fill="${i.color}" stroke="var(--blockeditor-bg)" stroke-width="2"/>`)}),e.forEach((i,c)=>{let p=k(54+c*36),s=` data-point="${M(i.point.id)}"${i.point.highlight?' data-highlight="true"':""}`;l.push(`<g${s}><rect x="290" y="${k(54+c*36-10)}" width="11" height="11" fill="${i.color}"/><text x="310" y="${p}">${M(i.point.xLabel)}</text><text x="530" y="${p}" text-anchor="end">${k(i.point.value)} (${i.percent}%)</text></g>`)}),l.push("</svg>"),l.join("")}function ee(t,{width:e=640,height:n=320,narrow:r=!1}={}){if(t.state==="missing")return`<svg xmlns="http://www.w3.org/2000/svg" role="img" width="${e}" height="80" viewBox="0 0 ${e} 80"><title>Chart source missing</title><text x="12" y="44">Chart source missing</text></svg>`;if(t.type==="pie")return ln(t,an(t),e);let o={left:52,right:72,top:28,bottom:48},a=Math.max(1,e-o.left-o.right),l=Math.max(1,n-o.top-o.bottom),[i,c]=t.domain,p=h=>o.top+(c-h)/(c-i)*l,s=t.xLabels.length,u=h=>o.left+(s<=1?a/2:h*a/(s-1)),d=[`<svg xmlns="http://www.w3.org/2000/svg" role="img" width="${e}" height="${n}" viewBox="0 0 ${e} ${n}">`,`<title>${M(t.title)}</title>`],g=t.series.map(te).join("; ");d.push(`<desc>${M(g)}</desc>`);for(let h of r?t.narrowTicks:t.yTicks){let y=k(p(h));d.push(`<line x1="${o.left}" y1="${y}" x2="${k(o.left+a)}" y2="${y}" stroke="currentColor" opacity="0.15"/><text x="${o.left-8}" y="${k(p(h)+4)}" text-anchor="end">${k(h)}</text>`)}if(t.type==="bar"){let h=a/Math.max(s,1),y=Math.max(1,Math.min(32,h*.7/t.series.length)),b=p(0);t.series.forEach((w,f)=>{w.points.forEach($=>{if($.value===null)return;let E=o.left+($.rowIndex+.5)*h-t.series.length*y/2+f*y,j=p($.value);d.push(`<rect data-point="${M($.id)}"${$.highlight?' data-highlight="true"':""} x="${k(E)}" y="${k(Math.min(j,b))}" width="${k(y)}" height="${k(Math.abs(b-j))}" fill="${w.color}"/>`)});let m=[...w.points].reverse().find($=>$.value!==null);if(m){let $=o.left+(m.rowIndex+.5)*h-t.series.length*y/2+f*y;d.push(`<text x="${k($+y/2)}" y="${k(Math.min(p(m.value),b)-7)}" text-anchor="middle">${M(w.name)}</text>`)}})}else t.series.forEach(h=>{let y=[],b=()=>{y.length>1&&d.push(`<polyline points="${y.join(" ")}" fill="none" stroke="${h.color}" stroke-width="2"/>`),y=[]};h.points.forEach(f=>{if(f.value===null){b();return}y.push(`${k(u(f.rowIndex))},${k(p(f.value))}`),d.push(`<circle data-point="${M(f.id)}"${f.highlight?' data-highlight="true"':""} cx="${k(u(f.rowIndex))}" cy="${k(p(f.value))}" r="3" fill="${h.color}"/>`)}),b();let w=[...h.points].reverse().find(f=>f.value!==null);w&&d.push(`<text x="${k(u(w.rowIndex)+7)}" y="${k(p(w.value)-5)}">${M(h.name)}</text>`)});return t.xLabels.forEach((h,y)=>{let b=t.type==="bar"?o.left+(y+.5)*a/Math.max(s,1):u(y);d.push(`<text x="${k(b)}" y="${k(n-14)}" text-anchor="middle">${M(h)}</text>`)}),d.push("</svg>"),d.join("")}var tt="\uFFFC",Mt='@{"type":"hard_break"}',ie=["b","i","s","c","a"],cn={b:"strong",i:"em",s:"s",c:"code"},un=["a","b","i","s","c"],fn=new Set(ie),Q="data-clay-blockeditor-opaque",Nt="data-clay-blockeditor-value",at="data-clay-blockeditor-marks",dn="data-blockeditor-mention",pn="data-blockeditor-date",hn=/^\d{4}-\d{2}-\d{2}$/,ft="1",Tt=new Set(["id","t","parent","c","m"]),dt=t=>Object.hasOwn(F,t),F={paragraph:{parent:null},heading:{parent:null,level:2,pageIcon:null,pageCoverSrc:null,pageCoverAlt:"",pageCoverX:50,pageCoverY:50},list_item:{parent:null,kind:"bullet",indent:0,checked:!1,owner:null,due:null},callout:{parent:null},quote:{parent:null},code_block:{parent:null,lang:""},toggle:{parent:null,open:!1,level:null},divider:{parent:null},toc:{parent:null,maxLevel:null},image:{parent:null,src:"",alt:"",caption:"",width:null,align:null},file:{parent:null,src:"",name:"",size:null,mime:null},table:{parent:null,cols:{},sort:null},chart:{parent:null,source:null,kind:"line",x:null,series:[],title:"",highlight:null},board:{parent:null,columns:{},cards:{}},tool:{parent:null,artifact:null,rev:null,state:{}},preserved:{parent:null,html:""}},le=new Set(["paragraph","heading","list_item","callout","quote","code_block","toggle"]),ce="Table of contents",gn="blockeditor-block-",mn=t=>`${gn}${nt(String(t??""))}`,ue=3,yn=t=>t.t==="heading"?Math.min(6,Math.max(1,Number.isInteger(t.level)?t.level:2)):t.t==="toggle"&&(t.level===1||t.level===2||t.level===3)?t.level:0,fe=t=>t.t==="heading"&&(t.level??2)===1&&(t.parent??null)===null,bn=t=>Number.isInteger(t)&&t>=1&&t<=6?t:ue,wn=t=>String(t.c??"").replace(/[\s\uFFFC]+/gu," ").trim()||"Untitled";function $n(t,e=ue){let n=bn(e),r=t.find(fe)??null,o=[];for(let a of t){let l=yn(a);!a.id||!l||l>n||a===r||o.push({id:a.id,level:l,text:wn(a)})}return o}function xn(t,e){let n=$n(e,t.maxLevel),r={level:0,children:[]},o=[r];for(let i of n){for(;o.length>1&&o[o.length-1].level>=i.level;)o.pop();let c={...i,children:[]};o[o.length-1].children.push(c),o.push(c)}let a=i=>`<ul>${i.map(c=>`<li><a href="#${mn(c.id)}">${N(c.text)}</a>${c.children.length?a(c.children):""}</li>`).join("")}</ul>`,l=t.maxLevel==null?"":` data-max-level="${P(t.maxLevel)}"`;return`<nav aria-label="${ce}" data-type="toc" data-id="${P(t.id??"")}"${l}>${n.length?a(r.children):""}</nav>`}var de=(t,e)=>C(t)===C(e);function et(t){return Object.keys(t).sort((e,n)=>{let r=t[e].pos??"",o=t[n].pos??"";return r!==o?r<o?-1:1:e<n?-1:e>n?1:0})}var nt=t=>{let e="";for(let n of new TextEncoder().encode(t))e+=String.fromCharCode(n);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},kn=t=>{let e=atob(String(t).replace(/-/g,"+").replace(/_/g,"/"));return new TextDecoder().decode(Uint8Array.from(e,n=>n.charCodeAt(0)))},Et=t=>t===null||typeof t!="object"?!1:Array.isArray(t)?t.some(Et):Object.keys(t).some(e=>e==="__proto__"||Et(t[e]));function pe(t){let e;try{e=JSON.parse(kn(t))}catch{throw new SyntaxError("page: an envelope is not readable canonical JSON")}try{ot(e)}catch(n){throw new SyntaxError(n.message)}if(Et(e))throw new SyntaxError("page: an envelope holds a prototype key");return e}function An(t){let e=pe(t);if(e===null||typeof e!="object"||Array.isArray(e))throw new SyntaxError("page: a block envelope is not a record");if("id"in e||"pos"in e)throw new SyntaxError("page: a block envelope holds a structural field");if("t"in e&&(typeof e.t!="string"||!e.t))throw new SyntaxError("page: a block envelope names no type");return e}function he(t){try{return L(pe(t))}catch(e){throw e instanceof SyntaxError?e:new SyntaxError(e.message)}}var vr=t=>he(t),ge=t=>` ${Q}="${ft}" ${Nt}="${P(nt(C(t)))}"`,ne=t=>t.length?` ${at}="${P(nt(JSON.stringify(t)))}"`:"",Er=t=>({[Q]:ft,[Nt]:nt(C(t))}),Mr=t=>({[at]:nt(JSON.stringify(L(t)))});function it(t,e){if(!Array.isArray(t))return null;if(!Array.isArray(t[0]))return t.length===e?t:null;let n=[];for(let r of t){if(!Array.isArray(r)||!Number.isInteger(r[0])||r[0]<1||typeof r[1]!="string"||n.length+r[0]>e)return null;for(let o=0;o<r[0];o++)n.push(r[1])}return n.length===e?n:null}function me(t){let e=[];for(let n of t){let r=e[e.length-1];r&&r[1]===n?r[0]++:e.push([1,n])}return e}function ye(t){let e={},n=[];if(!t||t[0]==="@")return{marks:e,native:[],entries:[]};let r=[];for(let o of V(t)){if(o.name===void 0){fn.has(o.code)?e[o.code]=o.attrs??!0:r.push(o);continue}let a=H(o.name,o.attrs);a?n.push({name:o.name,attrs:a}):r.push(o)}return{marks:e,native:n,entries:r.length?J(r):[]}}var be=(t,e,n)=>{if(!t)return"";if(t[0]==="@")return t===Mt&&e[n]===tt?t:"";let{marks:r,native:o,entries:a}=ye(t);return xe($e(r),o.length?[...a,...J(o)]:a)},we=/^(javascript|vbscript|data):/i,$e=t=>(t.a&&we.test(String(t.a[0]).replace(/[\u0000-\u0020]/g,""))&&delete t.a,t);function xe(t,e=[]){let n="";for(let r of ie)t[r]&&(n+=r,Array.isArray(t[r])&&(n+=JSON.stringify(t[r])));return e.length?n+G(e):n}function T(t,e){if(!t.includes(`
8
+ `)&&!t.includes("\r"))return{c:t,units:e};let n="",r=[];for(let o=0;o<t.length;)if(/\s/.test(t[o])&&t[o]!=="\xA0"){let a=o;for(;a<t.length&&/\s/.test(t[a])&&t[a]!=="\xA0";)a++;let l=t.slice(o,a);/[\n\r]/.test(l)?o>0&&a<t.length&&(n+=" ",r.push(e?e[o]:"")):(n+=l,e?r.push(...e.slice(o,a)):r.push(...l.split("").map(()=>""))),o=a}else n+=t[o],r.push(e?e[o]:""),o++;return{c:n,units:r}}function X(t,e){let n={c:t};return e&&e.some(Boolean)&&(n.m=me(e)),n}function Nr(t){let e={};for(let n of t){if(!n||typeof n!="object")continue;let r=n.deleted||{};for(let[o,a]of Object.entries(n.blocks||{})){if(r[o]||!a||typeof a!="object")continue;let{w:l,...i}=a;e[o]=i}}return e}function On(t){let e=[],n=[],r=null;for(let o of et(t)){let a=t[o],l=typeof a.t=="string"&&a.t?a.t:null,i=a.parent??null;if(i!==null){let s=n.lastIndexOf(i);s<0&&(i=null),n.length=s<0?0:s+1}else n.length=0;let c=0;if(l==="list_item"){let s=r&&r.t==="list_item"&&r.parent===i,u=Number.isInteger(a.indent)&&a.indent>0?a.indent:0;c=s?Math.min(u,r.indent+1):0}let p={id:o,b:a,t:l,parent:i,indent:c};e.push(p),r=p,l==="toggle"&&n.push(o)}return e}var O=(t,e)=>{let n={};for(let[r,o]of Object.entries(e))(!(r in F[t])||!de(o,F[t][r]))&&(n[r]=o);return n},lt=t=>Math.min(100,Math.max(0,Number.isFinite(+t)&&t!==null&&t!==""?+t:50)),ct=t=>typeof t=="number"&&Number.isFinite(t)&&t>0?Math.round(t):null;function Sn(t){if(t===null||typeof t!="object"||typeof t.c!="string")return T(D(t),null).c;let e=it(t.m,t.c.length),n=e&&e.map((a,l)=>be(a,t.c,l));if(!n)return T(D(t),null).c;let r=T(t.c,n),o=X(r.c,r.units);return o.m?o:o.c}function vn(t){let e=t.cols&&typeof t.cols=="object"?t.cols:{},n=t.rows&&typeof t.rows=="object"?t.rows:{},r=et(e);return{cols:r.map(o=>({id:o,name:T(String(e[o].name??""),null).c,...e[o].kind!=null?{kind:String(e[o].kind)}:{},...ct(e[o].width)?{width:ct(e[o].width)}:{}})),rows:et(n).map(o=>({id:o,cells:Object.fromEntries(r.map(a=>[a,Sn(n[o].cells?.[a])]))}))}}function En(t){let e=t.columns&&typeof t.columns=="object"?t.columns:{},n=t.cards&&typeof t.cards=="object"?t.cards:{},r=et(e),o=[...new Set(Object.values(n).map(i=>String(i.col??"")))].filter(i=>!e[i]).sort(),a=[...r,...o],l=i=>et(Object.fromEntries(Object.entries(n).filter(([,c])=>String(c.col??"")===i)));return{columns:r.map(i=>({id:i,name:T(String(e[i].name??""),null).c})),cards:a.flatMap(i=>l(i).map(c=>{let p=n[c];return{id:c,col:i,title:T(String(p.title??""),null).c,...p.owner!=null?{owner:String(p.owner)}:{},...p.due!=null?{due:String(p.due)}:{}}}))}}var Mn=t=>{let{t:e,parent:n,id:r,...o}=t;return{t:e,...o}},Nn={table:new Set(["rows"])},ut=t=>{let e={};for(let[n,r]of Object.entries(t))!Tt.has(n)&&!Nn[t.t]?.has(n)&&!(dt(t.t)&&Object.hasOwn(F[t.t],n))&&(e[n]=r);return Object.keys(e).length?ge(e):""},Tn=(t,e)=>{let n={};for(let[r,o]of Object.entries(e))!Tt.has(r)&&r!=="pos"&&!Object.hasOwn(F[t],r)&&(n[r]=o);return n};function ke({id:t,b:e,t:n,parent:r,indent:o}){if(!n)return{id:t,t:"preserved",html:""};if(!dt(n)){let{t:$,id:E,pos:j,parent:U,..._}=e;if(typeof _.c=="string"&&_.m!==void 0){let pt=it(_.m,_.c.length);pt&&pt.some(Boolean)?_.m=me(pt):delete _.m}return{id:t,t:n,...r?{parent:r}:{},..._}}let{t:a,id:l,pos:i,c,m:p,rows:s,cols:u,columns:d,cards:g,parent:h,indent:y,...b}=e,w=Tn(n,b);for(let $ of Object.keys(w))delete b[$];let f={...b,parent:r};n==="list_item"&&(f.indent=o),n==="heading"&&Object.assign(f,{level:Cn(b.level??2),pageCoverSrc:ht(f.pageCoverSrc??null),pageCoverX:lt(f.pageCoverX),pageCoverY:lt(f.pageCoverY)}),n==="toggle"&&(f.level=Ae(b.level)),n==="image"&&f.width!=null&&(f.width=Oe(String(f.width))),n==="image"&&(f.align=Se(f.align)),n==="image"&&typeof f.caption=="string"&&(f.caption=T(f.caption,null).c),n==="chart"&&typeof f.title=="string"&&(f.title=T(f.title,null).c),n==="table"?Object.assign(f,vn(e)):n==="board"&&Object.assign(f,En(e));let m={id:t,t:n,...O(n,f),...w};if(n==="table"&&(m.cols=f.cols,m.rows=f.rows),n==="board"&&(m.columns=f.columns,m.cards=f.cards),le.has(n)){let $=typeof c=="string"?c:"",E=it(p,$.length),j=E&&E.map((U,_)=>be(U,$,_));if(n==="code_block")Object.assign(m,{c:$.replace(/\r\n?/g,`
9
+ `)});else{let U=T($,j);Object.assign(m,X(U.c,U.units))}}return m}function jn(t,e,n){let{t:r}=e,o=new SyntaxError(`page: an envelope names the known block type ${r}`);if(le.has(r)?e.c!=null&&typeof e.c!="string":e.c!=null||e.m!=null)throw o;let a;try{a=ke({id:t,b:e,t:r,parent:n,indent:0})}catch{throw o}let l=F[r];return Object.fromEntries(Object.entries(a).filter(([i])=>i==="id"||i==="t"||Tt.has(i)||i==="rows"||Object.hasOwn(l,i)))}var Cn=t=>Math.min(6,Math.max(1,Number.isInteger(t)?t:2)),Ae=t=>t===1||t===2||t===3?t:null,Oe=t=>/^\d+$/.test(t)?Number(t):t,Se=t=>t==="left"||t==="right"?t:null;function Tr(t){return On(t).map(ke)}var C=t=>Array.isArray(t)?`[${t.map(C).join(",")}]`:t&&typeof t=="object"?`{${Object.keys(t).sort().map(e=>JSON.stringify(e)+":"+C(t[e])).join(",")}}`:JSON.stringify(t??null);function ve(t){let e=2166136261,n=-1623754710;for(let r=0;r<t.length;r++){let o=t.charCodeAt(r);e=Math.imul(e^o,16777619)>>>0,n=Math.imul(n^o,1540483477)>>>0,n=(n^n>>>15)>>>0}return e.toString(16).padStart(8,"0")+n.toString(16).padStart(8,"0")}var jr=t=>ve(C(t)),N=t=>t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\r/g,"&#13;"),P=t=>N(String(t)).replace(/"/g,"&quot;"),x=(t,e)=>e==null?"":` ${t}="${P(e)}"`,_n={underline:"u",text_color:"span",highlight:"mark"};function jt(t,e,n=!0){let r=it(e,t.length)||[],o="",a=[],l=i=>{for(;a.length>i;)o+=`</${a.pop().tag}>`};for(let i=0;i<t.length;){let c=r[i]||"";if(t[i]===tt&&c[0]==="@"){l(0),o+=c===Mt?"<br>":`<span data-atom="${P(c)}"></span>`,i++;continue}let p=i+1;for(;p<t.length&&(r[p]||"")===c&&!(t[p]===tt&&c[0]==="@");)p++;let{marks:s,native:u,entries:d}=ye(c),g=un.filter(f=>s[f]).map(f=>({code:f,sig:f+JSON.stringify(s[f]),tag:f==="a"?"a":cn[f],href:f==="a"?s.a[0]:null}));for(let f of u)g.push({sig:`native${f.name}${C(f.attrs)}`,tag:_n[f.name],color:f.attrs.color??null});let h=d.find(f=>f.name==="mention"),y=d.find(f=>f.name==="date"),b=y&&hn.test(String(y.attrs.date))?String(y.attrs.date):null;d.length&&n&&g.push({sig:`marks${C(d)}`,tag:b?"time":"span",entries:d,mention:h?.attrs.id,day:b});let w=0;for(;w<a.length&&w<g.length&&a[w].sig===g[w].sig;)w++;l(w);for(let f of g.slice(w))f.entries?o+=f.day?`<time${x("datetime",f.day)}${x(pn,"")}${ne(f.entries)}>`:`<span${ne(f.entries)}${x(dn,f.mention)}>`:f.tag==="a"?o+=`<a${x("href",f.href)}>`:o+=f.color?`<${f.tag}${x("data-color",f.color)}>`:`<${f.tag}>`,a.push(f);o+=N(t.slice(i,p)),i=p}return l(0),o}var q=t=>jt(t.c??"",t.m),In=t=>`<header${x("data-id",t.id)} data-blockeditor-heading="1"${ut(t)}>${t.pageCoverSrc?`<img data-blockeditor-cover${x("src",t.pageCoverSrc)}${x("alt",t.pageCoverAlt??"")} style="object-position:${t.pageCoverX??50}% ${t.pageCoverY??50}%">`:""}${t.pageIcon?`<span data-blockeditor-icon aria-hidden="true">${N(t.pageIcon)}</span>`:""}<h1>${q(t)}</h1></header>`,Ee=t=>t.artifact||t.rev||t.state&&Object.keys(t.state).length?`<script type="application/json" clay="no-data" data-tool>${C({artifact:t.artifact??null,rev:t.rev??null,state:t.state??{}}).replace(/</g,"\\u003c")}<\/script>`:"",re=(t,e)=>`${t}-${e}`,Dn=t=>typeof t=="string"?N(t):t&&typeof t=="object"?jt(String(t.c??""),t.m):"",Ln=t=>Object.entries(t).map(([e,n])=>x(`data-${e}`,n)).join("");function qn(t,e,n){let r=x("data-id",t.id);if(!dt(t.t))return`<div${r}${ge(Mn(t))}>${jt(t.c??"",t.m,!1)}</div>`;let o=r+ut(t);switch(t.t){case"paragraph":return`<p${o}>${q(t)}</p>`;case"heading":{let a=`h${t.level??2}`;return`<${a}${o}>${q(t)}</${a}>`}case"callout":return`<aside${o} class="blockeditor-callout">${q(t)}</aside>`;case"quote":return`<blockquote${o}>${q(t)}</blockquote>`;case"code_block":return`<pre${o}${x("data-lang",t.lang||null)}><code>${N(t.c??"")}</code></pre>`;case"divider":return`<hr${o}>`;case"image":return`<figure${o} data-type="image"${x("data-align",t.align??null)}><img${x("src",t.src??"")}${x("alt",t.alt??"")}${x("width",t.width??null)}>${t.caption?`<figcaption>${N(t.caption)}</figcaption>`:""}</figure>`;case"file":{let a=/^(https?:\/\/|\/(?!\/))/i.test(t.src??"")?t.src:null;return`<div${o} data-type="file"${x("data-src",t.src??"")}${x("data-name",t.name??"")}${x("data-size",t.size??null)}${x("data-mime",t.mime??null)}><a${x("href",a)} rel="noopener noreferrer">${N(t.name||"file")}</a></div>`}case"table":{let a=t.cols.map(i=>{let c=t.sort?.col===i.id?t.sort.dir==="desc"?"descending":"ascending":null;return`<th${x("data-col",i.id)}${x("id",re(t.id,i.id))}${x("data-kind",i.kind??null)}${x("data-width",i.width??null)}${x("style",i.width?`width:${i.width}px`:null)} scope="col"${x("aria-sort",c)}>${N(i.name)}</th>`}).join(""),l=t.rows.map(i=>`<tr${x("data-id",i.id)}>${t.cols.map(c=>`<td${x("headers",re(t.id,c.id))}>${Dn(i.cells[c.id])}</td>`).join("")}</tr>`).join(`
10
+ `);return`<table${o} aria-label="Table"${x("data-sort",t.sort!=null?JSON.stringify(t.sort):null)}>
11
+ <thead><tr>${a}</tr></thead>
12
+ <tbody>
13
+ ${l}
14
+ </tbody>
15
+ </table>`}case"chart":{let a=Ln({source:t.source??null,kind:t.kind??null,x:t.x??null,series:t.series?JSON.stringify(t.series):null,highlight:t.highlight??null}),l=Xt({id:t.id,type:t.kind??"line",x:t.x,series:t.series??[],title:t.title??"",highlight:t.highlight},n.get(t.source));return`<figure${o} data-type="chart"${a}>${ee(l,{width:640,height:320})}<figcaption>${N(t.title??"")}</figcaption></figure>`}case"board":{let l=[...t.columns.map(i=>({...i,known:!0})),...[...new Set(t.cards.map(i=>i.col))].filter(i=>!t.columns.some(c=>c.id===i)).map(i=>({id:i,known:!1}))].map(i=>{let c=t.cards.filter(p=>p.col===i.id).map(p=>`<li${x("data-id",p.id)}${x("data-owner",p.owner??null)}${x("data-due",p.due??null)}>${N(p.title)}</li>`).join("");return`<div${x("data-col",i.id)}${i.known?"":" data-missing"}>${i.known?`<h4>${N(i.name)}</h4>`:""}<ul>${c}</ul></div>`});return`<section${o} data-type="board">
16
+ ${l.join(`
17
+ `)}
18
+ </section>`}case"tool":return`<section${o} data-type="tool">${Ee(t)}</section>`;case"preserved":return Rn(t,e,o);default:return""}}var Rn=(t,e,n=x("data-id",t.id))=>`<div${n} data-type="preserved">${e.preserved(t.html||"")}</div>`,Jn={preserved:t=>t,fallback:t=>t};function Cr(t){let e=(n,r)=>{if(!n)return"";let o=t.createElement("template");if(o.innerHTML=n,r){for(let a of o.content.querySelectorAll("script"))a.remove();for(let a of o.content.querySelectorAll("*"))for(let{name:l,value:i}of[...a.attributes])(/^on/i.test(l)||/^(href|src|action|formaction|xlink:href)$/i.test(l)&&we.test(i.replace(/[\u0000-\u0020]/g,"")))&&a.removeAttribute(l)}return o.innerHTML};return{preserved:n=>e(n,!1),fallback:n=>e(n,!0)}}function _r(t,{fallbackOf:e=()=>"",clean:n=Jn}={}){let r=[],o=new Map(t.filter(s=>s.t==="table").map(s=>[s.id,s])),a=t.find(fe)??null,l=[null],i=[],c=s=>{i.length?r[r.length-1]+=s:r.push(s)},p=()=>{for(;i.length;){let s=i[i.length-1];r[r.length-1]+=`</li></${s}>`,i.pop()}};for(let s of t){let u=s.parent??null;for(;l.length>1&&l[l.length-1]!==u;)p(),c("</details>"),l.pop();if(s.t!=="list_item"&&p(),s.t==="list_item"){let d=s.indent??0,g=s.kind==="ordered"?"ol":"ul";for(;i.length>d+1;)c(`</li></${i[i.length-1]}>`),i.pop();i.length===d+1&&(c(i[d]===g?"</li>":`</li></${i[d]}>`),i[d]!==g&&i.pop()),i.length<d+1&&(c(`<${g}>`),i.push(g));let h=s.kind==="check"?`<input type="checkbox" disabled${s.checked?" checked":""}>`:"";c(`<li${x("data-id",s.id)}${x("data-owner",s.owner??null)}${x("data-due",s.due??null)}${ut(s)}>${h}${q(s)}`);continue}if(s.t==="toggle"){let d=Ae(s.level);c(`<details${x("data-id",s.id)}${ut(s)}${s.open?" open":""}>${d?`<summary><h${d}>${q(s)}</h${d}></summary>`:`<summary>${q(s)}</summary>`}`),l.push(s.id);continue}if(s.t==="tool"){c(`<section${x("data-id",s.id)} data-type="tool">${Ee(s)}${n.fallback(e(s.id))}</section>`);continue}if(s.t==="toc"){c(xn(s,t));continue}if(s===a&&(s.pageIcon||s.pageCoverSrc)){c(In(s));continue}c(qn(s,n,o))}for(p();l.length>1;)c("</details>"),l.pop();return r.join(`
19
+ `)}var Me=new Set(["SCRIPT","STYLE","TEMPLATE","NOSCRIPT"]),oe=new Set(["A","ABBR","B","BDI","BDO","BR","CITE","CODE","DATA","DEL","DFN","EM","FONT","I","INS","KBD","LABEL","MARK","Q","S","SAMP","SMALL","SPAN","STRIKE","STRONG","SUB","SUP","TIME","U","VAR","WBR"]);function Bn(t,e){return t==="u"?{name:"underline",attrs:{}}:t!=="mark"&&t!=="span"||t==="span"&&!e.hasAttribute("data-color")?null:{name:t==="mark"?"highlight":"text_color",attrs:{color:e.getAttribute("data-color")}}}function vt(t,e=()=>!1){let n="",r=[],o=(a,l,i)=>{for(let c of a.childNodes){if(e(c))continue;if(c.nodeType===3){n+=c.data;let d=xe($e({...l}),i);for(let g=0;g<c.data.length;g++)r.push(d);continue}if(c.nodeType!==1||Me.has(c.tagName))continue;let p=c.tagName.toLowerCase();if(p==="br"){n+=tt,r.push(Mt);continue}if(p==="span"&&c.hasAttribute("data-atom")){n+=tt,r.push(c.getAttribute("data-atom"));continue}let s={...l};if((p==="span"||p==="time")&&c.hasAttribute(at)){o(c,s,L([...i,...he(c.getAttribute(at))]));continue}p==="strong"||p==="b"?s.b=!0:p==="em"||p==="i"?s.i=!0:p==="s"||p==="del"||p==="strike"?s.s=!0:p==="code"?s.c=!0:p==="a"&&c.hasAttribute("href")&&(s.a=[c.getAttribute("href")]);let u=Bn(p,c);o(c,s,u?[...i,u]:i)}};return o(t,{},[]),T(n,r)}var Z=t=>T(t?t.textContent:"",null).c,Ct=t=>{if(!t.hasAttribute(Q))return null;if(t.getAttribute(Q)!==ft)throw new SyntaxError(`page: unknown envelope version ${t.getAttribute(Q)}`);let e=t.getAttribute(Nt);if(e===null)throw new SyntaxError("page: a block envelope holds no value");return An(e)},Ir=t=>Ct(t),se=t=>{let e=Ct(t);return e&&typeof e.t!="string"?e:null};function Fn(t){let e=[],n=(s,u)=>{let d=null,g=()=>{if(!d)return;let h=vt(d);h.c&&e.push({id:null,t:"paragraph",parent:u,...X(h.c,h.units)}),d=null};for(let h of[...s.childNodes]){if(h.nodeType===3&&!h.data.trim()){d&&d.appendChild(h.cloneNode());continue}if(!(h.nodeType===8||h.nodeType===1&&Me.has(h.tagName))){if(h.nodeType===3||h.nodeType===1&&oe.has(h.tagName)){d??=s.ownerDocument.createElement("p"),d.appendChild(h.cloneNode(!0));continue}g(),h.nodeType===1&&l(h,u)}}g()},r=s=>s.getAttribute("data-id")||null,o=(s,u,d,g)=>{let h=se(s);e.push({id:r(s),t:u,parent:d,...h?{...h,...g}:g})},a=(s,u,d)=>{for(let g of s.children){if(g.tagName!=="LI")continue;let h=[...g.childNodes].find(m=>m.nodeType===1&&m.tagName==="INPUT"&&(m.getAttribute("type")||"").toLowerCase()==="checkbox"),y=[...g.children].filter(m=>m.tagName==="UL"||m.tagName==="OL"),b=vt(g,m=>m===h||y.includes(m)),w=h?"check":s.tagName==="OL"?"ordered":"bullet",f={parent:u,kind:w,indent:d,checked:!!(h&&h.hasAttribute("checked")),owner:g.getAttribute("data-owner"),due:g.getAttribute("data-due")};e.push({id:r(g),t:"list_item",...O("list_item",f),...se(g)??{},...X(b.c,b.units)});for(let m of y)a(m,u,d+1)}},l=(s,u)=>{let d=s.tagName,g={parent:u},h=Ct(s);if(h&&typeof h.t=="string"){if(h.t==="opaque_block")throw new SyntaxError(`page: an envelope names the known block type ${h.t}`);if(dt(h.t)){e.push(jn(r(s),h,u));return}let{t:f,...m}=h;e.push({id:r(s),t:f,parent:u,...m});return}let y=d==="P"&&s.children.length===1&&s.children[0].tagName==="IMG"&&!s.textContent.trim();if(d==="P"&&!y)return o(s,"paragraph",u,{...O("paragraph",g),...i(s)});if(/^H[1-6]$/.test(d))return o(s,"heading",u,{...O("heading",{...g,level:+d[1]}),...i(s)});if(d==="HEADER"&&s.getAttribute("data-blockeditor-heading")===ft){let f=s.querySelector(":scope > [data-blockeditor-icon]"),m=s.querySelector(":scope > img"),[,$,E]=/object-position:\s*([-\d.]+)%\s+([-\d.]+)%/.exec(m?.getAttribute("style")??"")??[],j=m?{pageCoverSrc:ht(m.getAttribute("src")),pageCoverAlt:m.getAttribute("alt")??"",pageCoverX:lt($),pageCoverY:lt(E)}:{};return o(s,"heading",u,{...O("heading",{...g,level:1,pageIcon:f?f.textContent:null,...j}),...i(s.querySelector(":scope > h1"))})}if(d==="ASIDE")return o(s,"callout",u,{...O("callout",g),...i(s)});if(d==="BLOCKQUOTE")return o(s,"quote",u,{...O("quote",g),...i(s)});if(d==="PRE"){let f=s.querySelector(":scope > code");return o(s,"code_block",u,{...O("code_block",{...g,lang:s.getAttribute("data-lang")||""}),c:(f||s).textContent})}if(d==="HR")return o(s,"divider",u,O("divider",g));if(d==="NAV"&&s.getAttribute("aria-label")===ce){let f=+(s.getAttribute("data-max-level")??0);return o(s,"toc",u,O("toc",{...g,maxLevel:f>=1&&f<=6?f:null}))}if(d==="UL"||d==="OL")return a(s,u,0);if(d==="DETAILS"){let f=s.querySelector(":scope > summary"),m=f?.querySelector(":scope > h1, :scope > h2, :scope > h3"),$=e.length;o(s,"toggle",u,{...O("toggle",{...g,open:s.hasAttribute("open"),level:m?Number(m.tagName[1]):null}),...i(f)});let E=s.ownerDocument.createElement("div");for(let j of[...s.childNodes])j!==f&&E.appendChild(j.cloneNode(!0));n(E,{ref:$});return}if(d==="FIGURE"&&s.getAttribute("data-type")==="chart"){let f=$=>s.getAttribute(`data-${$}`),m=[];try{m=JSON.parse(f("series")||"[]")}catch{}return o(s,"chart",u,O("chart",{...g,source:f("source"),kind:f("kind")||"line",x:f("x"),series:m,title:Z(s.querySelector(":scope > figcaption")),highlight:f("highlight")}))}if(d==="DIV"&&s.getAttribute("data-type")==="file"){let f=s.getAttribute("data-size");return o(s,"file",u,O("file",{...g,src:s.getAttribute("data-src")||"",name:s.getAttribute("data-name")||"",size:f===null||f===""||!Number.isFinite(+f)?null:+f,mime:s.getAttribute("data-mime")||null}))}let b=d==="IMG"?s:d==="FIGURE"||y?s.querySelector(":scope > img"):null;if(b){let f=b.getAttribute("width");return o(s,"image",u,O("image",{...g,src:b.getAttribute("src")||"",alt:b.getAttribute("alt")||"",caption:d==="FIGURE"?Z(s.querySelector(":scope > figcaption")):"",width:f===null?null:Oe(f),align:d==="FIGURE"?Se(s.getAttribute("data-align")):null}))}if(d==="TABLE")return o(s,"table",u,c(s,g));if(d==="SECTION"&&s.getAttribute("data-type")==="board")return o(s,"board",u,p(s,g));if(d==="SECTION"&&s.getAttribute("data-type")==="tool"){let f=s.querySelector(':scope > script[type="application/json"][data-tool]'),m={};try{m=f?JSON.parse(f.textContent):{}}catch{}return o(s,"tool",u,O("tool",{...g,artifact:m.artifact??null,rev:m.rev??null,state:m.state??{}}))}if(d==="DIV"&&s.getAttribute("data-type")==="preserved")return o(s,"preserved",u,O("preserved",{...g,html:s.innerHTML}));if(d==="DIV"&&[...s.children].every(f=>oe.has(f.tagName)))return o(s,"paragraph",u,{...O("paragraph",g),...i(s)});let w=s.cloneNode(!0);return w.removeAttribute("data-id"),o(s,"preserved",u,O("preserved",{...g,html:w.outerHTML}))},i=s=>{let u=s?vt(s):{c:"",units:[]};return X(u.c,u.units)},c=(s,u)=>{let d=s.querySelector(":scope > thead > tr")||null,h=(d?[...d.children]:[]).map(m=>({id:m.getAttribute("data-col"),name:Z(m),...m.hasAttribute("data-kind")?{kind:m.getAttribute("data-kind")}:{},...ct(Number(m.getAttribute("data-width")))?{width:ct(Number(m.getAttribute("data-width")))}:{}})),y=[...s.querySelectorAll(":scope > tbody > tr, :scope > tr")],b=Math.max(h.length,...y.map(m=>m.children.length),0);for(;h.length<b;)h.push({id:null,name:""});let w=y.map(m=>({id:m.getAttribute("data-id"),cellsAt:[...m.children].map($=>{let E=i($);return E.m?E:E.c})})),f=null;try{f=s.hasAttribute("data-sort")?JSON.parse(s.getAttribute("data-sort")):null}catch{}return{...O("table",{...u,sort:f}),cols:h,rows:w}},p=(s,u)=>{let d=[],g=[];for(let h of s.querySelectorAll(":scope > div[data-col], :scope > div")){let y=h.getAttribute("data-col"),b=h.hasAttribute("data-missing"),w=b?{id:y}:{id:y,name:Z(h.querySelector(":scope > h4"))};b||d.push(w);for(let f of h.querySelectorAll(":scope > ul > li"))g.push({id:f.getAttribute("data-id"),colRef:w,title:Z(f),...f.hasAttribute("data-owner")?{owner:f.getAttribute("data-owner")}:{},...f.hasAttribute("data-due")?{due:f.getAttribute("data-due")}:{}})}return{...O("board",u),columns:d,cards:g}};return n(t,null),e}function Pn(t,{seed:e="",known:n=new Map,taken:r=new Set}={}){let o=0,a=s=>`${s}-a${ve(`${e}|${s}|${o++}`).slice(0,12)}`,l=new Map;t.forEach((s,u)=>{s.id&&(l.get(s.id)??l.set(s.id,[]).get(s.id)).push(u)});let i=new Map;for(let[s,u]of l){let d=n.get(s),g=d?u.find(h=>de(ae(t[h]),ae(d))):void 0;i.set(s,g??u[0])}let c=t.map((s,u)=>s.id&&!/^~|~\d+$/.test(s.id)&&i.get(s.id)===u?s.id:a("b"));return t.map((s,u)=>{let{id:d,parent:g,...h}=s,y=g&&typeof g=="object"?c[g.ref]:g,b={id:c[u],t:h.t,...y?{parent:y}:{},...Ne(h,["t"])};if(b.t==="table"){let w=new Set,f=new Set;b.cols=b.cols.map(m=>({...m,id:m.id&&!w.has(m.id)?(w.add(m.id),m.id):a("c")})),b.rows=b.rows.map(m=>({id:m.id&&!f.has(m.id)?(f.add(m.id),m.id):a("r"),cells:Object.fromEntries(b.cols.map(($,E)=>[$.id,m.cellsAt[E]??""]))}))}if(b.t==="board"){let w=new Set,f=new Set;for(let m of b.columns)(!m.id||f.has(m.id))&&(m.id=a("c")),f.add(m.id);b.cards=b.cards.map(({colRef:m,...$})=>({id:$.id&&!w.has($.id)?(w.add($.id),$.id):a("k"),col:m.id??"",title:$.title,...$.owner!=null?{owner:$.owner}:{},...$.due!=null?{due:$.due}:{}})),b.columns=b.columns.map(({id:m,name:$})=>({id:m,name:$}))}return b})}var Ne=(t,e)=>Object.fromEntries(Object.entries(t).filter(([n])=>!e.includes(n))),ae=t=>Ne(t,["id","parent"]);function Dr(t,e={}){return Pn(Fn(t),e)}export{rt as a,ht as b,gt as c,mt as d,Rt as e,V as f,Ft as g,Pt as h,Xn as i,tr as j,Vn as k,je as l,H as m,Gn as n,Be as o,Fe as p,wt as q,Vt as r,$t as s,xt as t,D as u,ze as v,Y as w,Gt as x,B as y,At as z,Ke as A,Ze as B,Qe as C,Xe as D,cr as E,tn as F,ur as G,Wt as H,nn as I,fr as J,Ot as K,hr as L,St as M,on as N,gr as O,mr as P,Xt as Q,ee as R,tt as S,Mt as T,Q as U,at as V,F as W,xn as X,et as Y,vr as Z,Er as _,Mr as $,it as aa,me as ba,Nr as ca,Ae as da,Tr as ea,C as fa,ve as ga,jr as ha,Cr as ia,_r as ja,Ir as ka,Fn as la,Pn as ma,Dr as na};
@@ -0,0 +1 @@
1
+ import{d as t,e as o}from"./c-2PVGJFI5.js";import"./c-CV4T65JE.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-DD26VXAP.js";import"./c-CTGRDT6E.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-ZRGEN6QQ.js";import"./c-OH2FPYSY.js";import{c as e}from"./c-FSQXFG5T.js";import"./c-RETTCOWO.js";import"./c-WCG6AKA7.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-VHNSBD2M.js";function c({view:r=null}={}){let a=r?e(r,{update:o}):()=>{};return{id:"chart",nodeViews:{chart:(i,n,d)=>new t(i,n,d)},dispose(){a()}}}export{c as createFeature};
@@ -1 +1 @@
1
- import{D as c,M as a,m as s,na as i}from"./c-QIXT3Q7C.js";function b(r){let e=[],o="";return r.forEach(t=>{if(t.type===s.nodes.heading&&(o=t.textContent),t.type!==s.nodes.table)return;let l=i({[t.attrs.id]:a(t)})[0],m=l.rows.map(n=>({...n,cells:Object.fromEntries(Object.entries(n.cells).map(([p,f])=>[p,c(f)]))}));e.push({id:l.id,name:o||`Table ${e.length+1}`,cols:l.cols,rows:m})}),e}function j(r,e){let o=[];return r.forEach(t=>{t.type===s.nodes.heading&&o.push({level:t.attrs.level,text:t.textContent})}),{title:e,outline:o,tables:b(r)}}export{b as a,j as b};
1
+ import{D as a,d as s,ea as i,u as c}from"./c-OH2FPYSY.js";function b(r){let e=[],o="";return r.forEach(t=>{if(t.type===s.nodes.heading&&(o=t.textContent),t.type!==s.nodes.table)return;let l=i({[t.attrs.id]:a(t)})[0],m=l.rows.map(n=>({...n,cells:Object.fromEntries(Object.entries(n.cells).map(([p,f])=>[p,c(f)]))}));e.push({id:l.id,name:o||`Table ${e.length+1}`,cols:l.cols,rows:m})}),e}function j(r,e){let o=[];return r.forEach(t=>{t.type===s.nodes.heading&&o.push({level:t.attrs.level,text:t.textContent})}),{title:e,outline:o,tables:b(r)}}export{b as a,j as b};
@@ -1 +1 @@
1
- import{a as R}from"./c-I2SCCUEW.js";import{a as C,d as P}from"./c-XGH4GS2T.js";import{c as v}from"./c-BPF2NSPV.js";var q="/_/upload",F=12e4,O={document:["document"],local:["local"],"document-or-local":["document","local"]},H=new Set(["network","timeout","error","bad-response","aborted"]);function j(e){return e?e.state==="cancelled"?!0:e.state!=="failed"?!1:H.has(e.result?.code??null):!1}var _=new Set,D=()=>[..._].some(e=>e.state==="uploading");async function B(){let e=[..._].filter(t=>t.state==="uploading").map(t=>t.result);return e.length?(await Promise.allSettled(e),{ok:!D()}):{ok:!0}}var S=R({id:"upload",isPending:D,flush:B}),E=null,M=()=>E?.admitted!==!1,$=0;function z(){return $+=1,`upload-${$}`}function d(e,t,s,g,m=[]){return{ok:e,msg:t,msgType:s,code:g,uploads:m}}function x(e,t){typeof document>"u"||document.dispatchEvent(new CustomEvent(`clay:upload-${e}`,{detail:t}))}function L(e){if(e==null)return null;let t=O[e];if(!t)throw new TypeError(`Unknown requiredAccess: ${String(e)}. Use one of ${Object.keys(O).join(", ")}.`);return t}async function Y(e,{onProgress:t,signal:s,requiredAccess:g,taskId:m=z(),attempt:b=1}={}){let i=L(g);if(!e)return d(!1,"No file to upload","error","bad-request");let l=()=>d(!1,"Upload cancelled","error","aborted");if(!M())return l();let a;try{a=await P(b>1?{fresh:!0}:void 0)}catch{a={extensions:[],document:null}}if(s?.aborted)return l();if(C(a)==="failed")return d(!1,"Couldn't reach the host to upload","error","network");if(!a.extensions.includes("upload"))return d(!1,"This host does not store uploaded files","skipped","unsupported");if(s?.aborted)return l();if(!a.document?.upload)return d(!1,"You can't add files to this document","error","forbidden");if(s?.aborted)return l();if(i){let k=a.document.upload.access;if(!i.includes(k))return d(!1,"This host does not keep uploaded files private to this document","error","privacy-unsupported")}if(s?.aborted)return l();let f=a.document?.upload?.maxBytes;return typeof f=="number"&&f>0&&e.size>f?d(!1,`That file is larger than this host accepts (${f} bytes)`,"error","too-large"):N(e,{onProgress:t,signal:s,taskId:m,attempt:b,requiredAccess:i})}function J(e,t){if(!t||!e.ok)return e;let s=e.uploads||[];return s.every(m=>t.includes(m?.access))?e:d(!1,"The host stored the file without the access it promised","error","privacy-unsupported",s)}function N(e,{onProgress:t,signal:s,taskId:g,attempt:m,requiredAccess:b}={}){let i=Array.isArray(b)?b:L(b);return new Promise(l=>{let a={taskId:g,attempt:m},f=v(),k=f?`${q}/${f}`:q,A=new URL(k,window.location.origin).href,n=null,y=!1,p=null;function w(r,c,o){return y?!1:(y=!0,p!==null&&clearTimeout(p),s&&s.removeEventListener("abort",T),c&&x(c,{...o,...a}),l(r),!0)}function h(r,c,o){return w(d(!1,r,c,o),"error",{msg:r,code:o})}function U(){let r=d(!1,"Upload timed out","unknown","timeout");w(r,"error",{msg:r.msg,code:r.code})&&n.abort()}function T(){w(d(!1,"Upload cancelled","skipped","aborted"))&&n?.abort()}try{n=new XMLHttpRequest}catch{return h("This browser could not start the upload","error","error")}if(p=setTimeout(U,F),s){if(s.aborted)return T();s.addEventListener("abort",T)}n.upload.addEventListener("progress",r=>{if(y||!r.lengthComputable)return;let c={loaded:r.loaded,total:r.total,percent:Math.round(r.loaded/r.total*100)};if(x("progress",{...c,...a}),t)try{t(c)}catch{}}),n.addEventListener("load",()=>{if(y)return;let r={};try{r=JSON.parse(n.responseText||"{}")}catch{r={}}if(n.status>=200&&n.status<300){let o=Array.isArray(r.uploads)?r.uploads:[];if(!o.length||typeof o[0]?.url!="string")return h("The host accepted the file but did not say where it put it","error","bad-response");let u=J(d(!0,r.msg??"Uploaded",r.msgType||"success",r.code??null,o),i);return u.ok?w(u,"done",{uploads:o}):w(u,"error",{msg:u.msg,code:u.code,uploads:o})}let c=r.code||Q[n.status]||"error";return h(r.msg||`Upload failed (${n.status})`,"error",c)}),n.addEventListener("error",()=>h("Upload failed","error","network")),n.addEventListener("abort",()=>w(d(!1,"Upload cancelled","skipped","aborted")));try{n.open("POST",A,!0),n.withCredentials=!1,n.setRequestHeader("Document-URL",window.location.href);let r=new FormData;r.append("file",e,e.name||"upload"),x("start",{name:e.name||null,size:e.size??null,...a}),n.send(r)}catch{h("The upload could not be sent","error","error")}})}function V(e,t={}){if(!e)throw new TypeError("clay.upload.start needs a file");L(t.requiredAccess);let s=z(),g=t.requiredAccess??null,m=t.onProgress||null,b=e,i=0,l="uploading",a=0,f=null,k=null,A=null,n=null,y=null,p=!1,w=0,h=new Set;function U(){return{id:s,attempt:i,state:l,loaded:a,total:f,percent:k,result:A}}function T(){if(!h.size)return;let o=U();for(let u of[...h])try{u(o)}catch{}}function r(){i+=1;let o=i;return n=new AbortController,l="uploading",a=0,f=null,k=null,A=null,y=Y(b,{requiredAccess:g,signal:n.signal,taskId:s,attempt:o,onProgress:u=>{if(!(p||o!==i)&&(a=u.loaded,f=u.total,k=u.percent,T(),m))try{m(u)}catch{}}}).then(u=>(!p&&o===i&&o!==w&&(A=u,l=u.ok?"succeeded":u.code==="aborted"?"cancelled":"failed",T()),S.changed(),u)),T(),S.changed(),y}let c={id:s,get attempt(){return i},get state(){return l},get file(){return b},get result(){return y},snapshot:U,subscribe(o){if(typeof o!="function")throw new TypeError("subscribe needs a function");if(p)return()=>{};h.add(o);try{o(U())}catch{}return()=>h.delete(o)},cancel(){p||(l==="uploading"&&(w=i,l="cancelled",A=d(!1,"Upload cancelled","error","aborted"),T(),S.changed()),n?.abort())},retry(){return p||!M()||!j(U())?y:r()},dispose(){p||(p=!0,n?.abort(),h.clear(),b=null,_.delete(c),S.changed())}};return _.add(c),r(),c}function W(){return{id:"clay:upload",order:340,prepare(e={}){let t={admitted:e.initial===!0};return E=t,{enable(){E===t&&(t.admitted=!0)},quiesce(){E===t&&(t.admitted=!1)},resume(){E===t&&(t.admitted=!0)},dispose(){E===t&&(t.admitted=!1)}}}}}var Q={402:"payment-required",413:"too-large",415:"unsupported-type",401:"unauthorized",403:"forbidden",404:"not-found"};export{j as a,L as b,Y as c,V as d,W as e};
1
+ import{a as R}from"./c-I2SCCUEW.js";import{a as C,d as P}from"./c-QQFHEODI.js";import{c as v}from"./c-BPF2NSPV.js";var q="/_/upload",F=12e4,O={document:["document"],local:["local"],"document-or-local":["document","local"]},H=new Set(["network","timeout","error","bad-response","aborted"]);function j(e){return e?e.state==="cancelled"?!0:e.state!=="failed"?!1:H.has(e.result?.code??null):!1}var _=new Set,D=()=>[..._].some(e=>e.state==="uploading");async function B(){let e=[..._].filter(t=>t.state==="uploading").map(t=>t.result);return e.length?(await Promise.allSettled(e),{ok:!D()}):{ok:!0}}var S=R({id:"upload",isPending:D,flush:B}),E=null,M=()=>E?.admitted!==!1,$=0;function z(){return $+=1,`upload-${$}`}function d(e,t,s,g,m=[]){return{ok:e,msg:t,msgType:s,code:g,uploads:m}}function x(e,t){typeof document>"u"||document.dispatchEvent(new CustomEvent(`clay:upload-${e}`,{detail:t}))}function L(e){if(e==null)return null;let t=O[e];if(!t)throw new TypeError(`Unknown requiredAccess: ${String(e)}. Use one of ${Object.keys(O).join(", ")}.`);return t}async function Y(e,{onProgress:t,signal:s,requiredAccess:g,taskId:m=z(),attempt:b=1}={}){let i=L(g);if(!e)return d(!1,"No file to upload","error","bad-request");let l=()=>d(!1,"Upload cancelled","error","aborted");if(!M())return l();let a;try{a=await P(b>1?{fresh:!0}:void 0)}catch{a={extensions:[],document:null}}if(s?.aborted)return l();if(C(a)==="failed")return d(!1,"Couldn't reach the host to upload","error","network");if(!a.extensions.includes("upload"))return d(!1,"This host does not store uploaded files","skipped","unsupported");if(s?.aborted)return l();if(!a.document?.upload)return d(!1,"You can't add files to this document","error","forbidden");if(s?.aborted)return l();if(i){let k=a.document.upload.access;if(!i.includes(k))return d(!1,"This host does not keep uploaded files private to this document","error","privacy-unsupported")}if(s?.aborted)return l();let f=a.document?.upload?.maxBytes;return typeof f=="number"&&f>0&&e.size>f?d(!1,`That file is larger than this host accepts (${f} bytes)`,"error","too-large"):N(e,{onProgress:t,signal:s,taskId:m,attempt:b,requiredAccess:i})}function J(e,t){if(!t||!e.ok)return e;let s=e.uploads||[];return s.every(m=>t.includes(m?.access))?e:d(!1,"The host stored the file without the access it promised","error","privacy-unsupported",s)}function N(e,{onProgress:t,signal:s,taskId:g,attempt:m,requiredAccess:b}={}){let i=Array.isArray(b)?b:L(b);return new Promise(l=>{let a={taskId:g,attempt:m},f=v(),k=f?`${q}/${f}`:q,A=new URL(k,window.location.origin).href,n=null,y=!1,p=null;function w(r,c,o){return y?!1:(y=!0,p!==null&&clearTimeout(p),s&&s.removeEventListener("abort",T),c&&x(c,{...o,...a}),l(r),!0)}function h(r,c,o){return w(d(!1,r,c,o),"error",{msg:r,code:o})}function U(){let r=d(!1,"Upload timed out","unknown","timeout");w(r,"error",{msg:r.msg,code:r.code})&&n.abort()}function T(){w(d(!1,"Upload cancelled","skipped","aborted"))&&n?.abort()}try{n=new XMLHttpRequest}catch{return h("This browser could not start the upload","error","error")}if(p=setTimeout(U,F),s){if(s.aborted)return T();s.addEventListener("abort",T)}n.upload.addEventListener("progress",r=>{if(y||!r.lengthComputable)return;let c={loaded:r.loaded,total:r.total,percent:Math.round(r.loaded/r.total*100)};if(x("progress",{...c,...a}),t)try{t(c)}catch{}}),n.addEventListener("load",()=>{if(y)return;let r={};try{r=JSON.parse(n.responseText||"{}")}catch{r={}}if(n.status>=200&&n.status<300){let o=Array.isArray(r.uploads)?r.uploads:[];if(!o.length||typeof o[0]?.url!="string")return h("The host accepted the file but did not say where it put it","error","bad-response");let u=J(d(!0,r.msg??"Uploaded",r.msgType||"success",r.code??null,o),i);return u.ok?w(u,"done",{uploads:o}):w(u,"error",{msg:u.msg,code:u.code,uploads:o})}let c=r.code||Q[n.status]||"error";return h(r.msg||`Upload failed (${n.status})`,"error",c)}),n.addEventListener("error",()=>h("Upload failed","error","network")),n.addEventListener("abort",()=>w(d(!1,"Upload cancelled","skipped","aborted")));try{n.open("POST",A,!0),n.withCredentials=!1,n.setRequestHeader("Document-URL",window.location.href);let r=new FormData;r.append("file",e,e.name||"upload"),x("start",{name:e.name||null,size:e.size??null,...a}),n.send(r)}catch{h("The upload could not be sent","error","error")}})}function V(e,t={}){if(!e)throw new TypeError("clay.upload.start needs a file");L(t.requiredAccess);let s=z(),g=t.requiredAccess??null,m=t.onProgress||null,b=e,i=0,l="uploading",a=0,f=null,k=null,A=null,n=null,y=null,p=!1,w=0,h=new Set;function U(){return{id:s,attempt:i,state:l,loaded:a,total:f,percent:k,result:A}}function T(){if(!h.size)return;let o=U();for(let u of[...h])try{u(o)}catch{}}function r(){i+=1;let o=i;return n=new AbortController,l="uploading",a=0,f=null,k=null,A=null,y=Y(b,{requiredAccess:g,signal:n.signal,taskId:s,attempt:o,onProgress:u=>{if(!(p||o!==i)&&(a=u.loaded,f=u.total,k=u.percent,T(),m))try{m(u)}catch{}}}).then(u=>(!p&&o===i&&o!==w&&(A=u,l=u.ok?"succeeded":u.code==="aborted"?"cancelled":"failed",T()),S.changed(),u)),T(),S.changed(),y}let c={id:s,get attempt(){return i},get state(){return l},get file(){return b},get result(){return y},snapshot:U,subscribe(o){if(typeof o!="function")throw new TypeError("subscribe needs a function");if(p)return()=>{};h.add(o);try{o(U())}catch{}return()=>h.delete(o)},cancel(){p||(l==="uploading"&&(w=i,l="cancelled",A=d(!1,"Upload cancelled","error","aborted"),T(),S.changed()),n?.abort())},retry(){return p||!M()||!j(U())?y:r()},dispose(){p||(p=!0,n?.abort(),h.clear(),b=null,_.delete(c),S.changed())}};return _.add(c),r(),c}function W(){return{id:"clay:upload",order:340,prepare(e={}){let t={admitted:e.initial===!0};return E=t,{enable(){E===t&&(t.admitted=!0)},quiesce(){E===t&&(t.admitted=!1)},resume(){E===t&&(t.admitted=!0)},dispose(){E===t&&(t.admitted=!1)}}}}}var Q={402:"payment-required",413:"too-large",415:"unsupported-type",401:"unauthorized",403:"forbidden",404:"not-found"};export{j as a,L as b,Y as c,V as d,W as e};
@@ -1 +1 @@
1
- import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-ESPSQPLV.js"),import("./core/save-core-6SQHOR6W.js"),import("./c-R27DWQKX.js"),import("./core/unsaved-warning-HNQVTA2D.js"),import("./core/is-edit-mode-GCX6767E.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-GCX6767E.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};
1
+ import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-6HT2LABE.js"),import("./core/save-core-EVMNZQ4V.js"),import("./c-STRI73GQ.js"),import("./core/unsaved-warning-ITZDIZ2I.js"),import("./core/is-edit-mode-FFHCQ5DR.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-FFHCQ5DR.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};