@panphora/clayjs 1.16.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/clay-dom.js +1 -1
  3. package/dist/clay-events.js +1 -1
  4. package/dist/clay-internals.js +1 -1
  5. package/dist/clay-options.js +1 -1
  6. package/dist/clay-router.js +1 -1
  7. package/dist/clay-ui.js +1 -1
  8. package/dist/clay-utils.js +1 -1
  9. package/dist/clay.js +1 -1
  10. package/dist/clay.standalone.js +72519 -59839
  11. package/dist/m/attrs/refetch-on-save-ZUE7PSCI.js +1 -0
  12. package/dist/m/attrs/save-freeze-LWGF6XUN.js +1 -0
  13. package/dist/m/c-2GRUM77Q.js +30 -0
  14. package/dist/m/c-2KIEGNC4.js +1 -0
  15. package/dist/m/{c-5R4PTRG2.js → c-2KL3BD52.js} +1 -1
  16. package/dist/m/c-2YYDMLNZ.js +1 -0
  17. package/dist/m/c-2ZZBC45O.js +1 -0
  18. package/dist/m/c-372N6H3B.js +1 -0
  19. package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
  20. package/dist/m/c-3LDGIBMN.js +1 -0
  21. package/dist/m/c-3O7OBDCM.js +1 -0
  22. package/dist/m/c-4ASQPRQL.js +1 -0
  23. package/dist/m/c-4TXNLX4K.js +6 -0
  24. package/dist/m/c-4YU3BR4D.js +6 -0
  25. package/dist/m/c-5734MF2P.js +1 -0
  26. package/dist/m/c-57XDY6HC.js +1 -0
  27. package/dist/m/{c-VFX45IZQ.js → c-5B4YBZXC.js} +1 -1
  28. package/dist/m/c-5ONTYIUI.js +1 -0
  29. package/dist/m/c-5OOVFCJM.js +1 -0
  30. package/dist/m/c-5T6NZHNM.js +1 -0
  31. package/dist/m/{c-YDH7Q3NY.js → c-5ZQV7KC4.js} +1 -1
  32. package/dist/m/{c-Z36J63PP.js → c-6DB2OLRJ.js} +1 -1
  33. package/dist/m/c-6DNRCPNM.js +1 -0
  34. package/dist/m/c-6UGWFMQC.js +2 -0
  35. package/dist/m/c-7K4SCQB7.js +1 -0
  36. package/dist/m/c-7MG5RU63.js +1 -0
  37. package/dist/m/c-7PRJCA3E.js +1 -0
  38. package/dist/m/c-A6L3FMUS.js +1 -0
  39. package/dist/m/c-AMU3BPPR.js +4 -0
  40. package/dist/m/c-AMYEFA2E.js +1 -0
  41. package/dist/m/c-AQYCG7QW.js +1 -0
  42. package/dist/m/c-ATKAOH23.js +1 -0
  43. package/dist/m/c-B3JM5ZXC.js +1 -0
  44. package/dist/m/c-B5CS55WR.js +1 -0
  45. package/dist/m/c-B5UJQT7W.js +1 -0
  46. package/dist/m/c-B7J4K2AE.js +3 -0
  47. package/dist/m/c-BHZYSHW4.js +1 -0
  48. package/dist/m/c-BIJALSRD.js +1 -0
  49. package/dist/m/c-BJ7YQ5QZ.js +1 -0
  50. package/dist/m/c-BPF2NSPV.js +1 -0
  51. package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
  52. package/dist/m/c-BUAYFEV5.js +1 -0
  53. package/dist/m/c-C6IPRG34.js +1 -0
  54. package/dist/m/{c-2JL6E75N.js → c-CAS3NND4.js} +1 -1
  55. package/dist/m/{c-4DRMS4QG.js → c-CCQ25GFY.js} +1 -1
  56. package/dist/m/c-CJFDLD43.js +1 -0
  57. package/dist/m/c-COPTL5WB.js +1 -0
  58. package/dist/m/c-D3E4WJ4M.js +166 -0
  59. package/dist/m/c-D5IKEKXW.js +7 -0
  60. package/dist/m/c-DHBRA6DL.js +1 -0
  61. package/dist/m/c-DKLS74XB.js +72 -0
  62. package/dist/m/c-DVYGFTSK.js +3 -0
  63. package/dist/m/c-E3ZXARWA.js +1 -0
  64. package/dist/m/c-EK63G3CG.js +1 -0
  65. package/dist/m/c-ERQSNR6K.js +13 -0
  66. package/dist/m/c-EVYAISP3.js +1 -0
  67. package/dist/m/c-EXKHPOVC.js +3 -0
  68. package/dist/m/{c-7VGZ7RU5.js → c-FWKHM4E7.js} +1 -1
  69. package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
  70. package/dist/m/c-GNDL3TKB.js +1 -0
  71. package/dist/m/c-GRWMD6O5.js +1 -0
  72. package/dist/m/c-GRXHHFPO.js +1 -0
  73. package/dist/m/{c-OYTFP5QN.js → c-GY422N3Q.js} +1 -1
  74. package/dist/m/c-HAWFNBYG.js +1 -0
  75. package/dist/m/c-HG2C77BM.js +4 -0
  76. package/dist/m/c-HHGJBU4D.js +1 -0
  77. package/dist/m/c-HMV6P4RX.js +1 -0
  78. package/dist/m/c-HMYWIHFG.js +1 -0
  79. package/dist/m/c-HT2DKBV2.js +1 -0
  80. package/dist/m/c-I2SCCUEW.js +1 -0
  81. package/dist/m/{c-HRDCD3WN.js → c-ICJYHABF.js} +2 -2
  82. package/dist/m/c-IMZCWYHR.js +7 -0
  83. package/dist/m/c-IVMD3FEM.js +1 -0
  84. package/dist/m/c-IVTRVENZ.js +1 -0
  85. package/dist/m/c-IW6GGOU2.js +1 -0
  86. package/dist/m/c-JKZJIUIP.js +1 -0
  87. package/dist/m/{c-NZMNXVF6.js → c-JNLX3RJB.js} +1 -1
  88. package/dist/m/c-JRKY44DK.js +1 -0
  89. package/dist/m/c-K3ADYNLU.js +1 -0
  90. package/dist/m/c-KBS3UV6B.js +1 -0
  91. package/dist/m/c-KGHVFRR3.js +1 -0
  92. package/dist/m/c-KJJPV77R.js +1 -0
  93. package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
  94. package/dist/m/{c-5Y6TNX5W.js → c-KP64LT2A.js} +2 -2
  95. package/dist/m/c-KQ7E3PYY.js +1 -0
  96. package/dist/m/c-L3F5ZLIV.js +1 -0
  97. package/dist/m/{c-LR4CGEPT.js → c-L42OLXWM.js} +3 -2
  98. package/dist/m/c-L5VFATT6.js +1 -0
  99. package/dist/m/c-L7JL5TL3.js +3 -0
  100. package/dist/m/c-LKSL4AUJ.js +1 -0
  101. package/dist/m/c-M6FNQCTQ.js +1 -0
  102. package/dist/m/c-MCOOHCSG.js +1 -0
  103. package/dist/m/c-MHI3GYKF.js +1 -0
  104. package/dist/m/c-MWXFLW4J.js +1 -0
  105. package/dist/m/c-NEL7HQW3.js +1 -0
  106. package/dist/m/c-NQJRVJ56.js +1 -0
  107. package/dist/m/c-NWX3MFT4.js +1 -0
  108. package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
  109. package/dist/m/c-OKXI52N7.js +1 -0
  110. package/dist/m/{c-MMUIUUZG.js → c-OPLUZR3A.js} +1 -1
  111. package/dist/m/{c-J7CA54IP.js → c-OTMKN2OO.js} +1 -1
  112. package/dist/m/{c-LTGMXXKO.js → c-OYRZ7XG2.js} +1 -1
  113. package/dist/m/c-P3OFYUMA.js +1 -0
  114. package/dist/m/c-PLN76GF3.js +6 -0
  115. package/dist/m/c-PLP4JKFC.js +1 -0
  116. package/dist/m/c-Q26MME6N.js +1 -0
  117. package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
  118. package/dist/m/{c-SWRJFCNN.js → c-QIKT6SKM.js} +1 -1
  119. package/dist/m/c-QIXT3Q7C.js +28 -0
  120. package/dist/m/c-QO4HNGCQ.js +1 -0
  121. package/dist/m/c-R27DWQKX.js +1 -0
  122. package/dist/m/{c-HVYXIS72.js → c-R2XUODVY.js} +1 -1
  123. package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
  124. package/dist/m/c-RND3G2S2.js +1 -0
  125. package/dist/m/c-S2U6NJU4.js +1 -0
  126. package/dist/m/c-SPZPGD3R.js +1 -0
  127. package/dist/m/c-SW4YEG2D.js +8 -0
  128. package/dist/m/c-SZGYW5HT.js +1 -0
  129. package/dist/m/c-T637T7SN.js +1 -0
  130. package/dist/m/c-TJAXGIRV.js +1 -0
  131. package/dist/m/{c-KKWLDOPM.js → c-TNEM3RNM.js} +1 -1
  132. package/dist/m/c-TTB5EK4S.js +32 -0
  133. package/dist/m/c-U7SHNWDH.js +1 -0
  134. package/dist/m/c-UDHIVLYH.js +20 -0
  135. package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
  136. package/dist/m/{c-TQZ2JYHD.js → c-UORXLSD3.js} +1 -1
  137. package/dist/m/c-UPD33ZPE.js +1 -0
  138. package/dist/m/c-URSMSFCB.js +1 -0
  139. package/dist/m/c-UY4QX42B.js +1 -0
  140. package/dist/m/c-V44KWI2L.js +4 -0
  141. package/dist/m/c-VG5XIN4T.js +1 -0
  142. package/dist/m/c-VILENZTD.js +1 -0
  143. package/dist/m/{c-33HUYEDI.js → c-VJYEVRYK.js} +1 -1
  144. package/dist/m/c-VR2BJ4AN.js +1 -0
  145. package/dist/m/c-W4JCVLAB.js +1 -0
  146. package/dist/m/c-W6DQSHXI.js +135 -0
  147. package/dist/m/c-WBGWGOM7.js +1 -0
  148. package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
  149. package/dist/m/c-WGW764WX.js +1 -0
  150. package/dist/m/c-WMRJKQ2V.js +5 -0
  151. package/dist/m/c-WNTYKCDG.js +1 -0
  152. package/dist/m/c-WQWIRWO3.js +72 -0
  153. package/dist/m/c-X5LNHET5.js +1 -0
  154. package/dist/m/c-X5TSXZYJ.js +2 -0
  155. package/dist/m/c-XGH4GS2T.js +1 -0
  156. package/dist/m/c-Y6F2FORL.js +1 -0
  157. package/dist/m/c-YBKHUAK7.js +10 -0
  158. package/dist/m/c-YBSS55KU.js +20 -0
  159. package/dist/m/c-YCLU4UNT.js +2 -0
  160. package/dist/m/c-YVZ2L7CE.js +1 -0
  161. package/dist/m/c-ZK4GIZH2.js +1 -0
  162. package/dist/m/c-ZRXJD4G6.js +1 -0
  163. package/dist/m/c-ZWBI4HYK.js +1 -0
  164. package/dist/m/{c-HT33EQRN.js → c-ZWIOJGMT.js} +1 -1
  165. package/dist/m/core/admin-attrs-YY7T5FGU.js +1 -0
  166. package/dist/m/core/autosave-S6OMNDCK.js +1 -0
  167. package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
  168. package/dist/m/core/host-permission-6EVJGNPL.js +1 -0
  169. package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
  170. package/dist/m/core/{persist-HKHA66IY.js → persist-UKXV5KLA.js} +1 -1
  171. package/dist/m/core/recovery-DRFZRJED.js +1 -0
  172. package/dist/m/core/save-LYY7K6U7.js +1 -0
  173. package/dist/m/core/save-core-MKRPSEEO.js +1 -0
  174. package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
  175. package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
  176. package/dist/m/events/index-RN2JNGBV.js +1 -0
  177. package/dist/m/internals/index-TGLQINN3.js +1 -0
  178. package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
  179. package/dist/m/loader-3BBNZZGM.js +1 -0
  180. package/dist/m/manifest-F449FF98.js +1 -0
  181. package/dist/m/manifest-edit-4396A009.js +1 -0
  182. package/dist/m/manifest.json +2509 -1474
  183. package/dist/m/options/options-EJMS3K24.js +1 -0
  184. package/dist/m/page/editor-6LRB3GE4.js +304 -0
  185. package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
  186. package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
  187. package/dist/m/plugins/demo-OYO5GCAO.js +1 -0
  188. package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
  189. package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
  190. package/dist/m/plugins/live-AD4H6XSL.js +1 -0
  191. package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
  192. package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
  193. package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
  194. package/dist/m/plugins/people-JCHVPF7P.js +1 -0
  195. package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
  196. package/dist/m/plugins/{richclay-RC3L2F6X.js → richclay-KLGETK77.js} +2 -2
  197. package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
  198. package/dist/m/plugins/source-TJXOIOYY.js +1 -0
  199. package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
  200. package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
  201. package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
  202. package/dist/m/plugins/upload-NHGJXZK2.js +1 -0
  203. package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
  204. package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
  205. package/dist/m/plugins/wire-VBWXEXU2.js +1 -0
  206. package/dist/m/reader-core-4W2KYEWQ.js +77 -0
  207. package/dist/m/route/route-62CHXL5B.js +1 -0
  208. package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
  209. package/dist/m/ui/index-IVWN2QC4.js +1 -0
  210. package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
  211. package/dist/offline-manifest.json +1560 -889
  212. package/dist/page/themes/light-1.css +33 -8
  213. package/dist/server/core.cjs +1554 -311
  214. package/dist/server/offline-runtime.cjs +63 -63
  215. package/dist/server/offline-runtime.mjs +63 -63
  216. package/dist/server/page-compaction-worker.cjs +3710 -0
  217. package/dist/server/rooms.mjs +5 -0
  218. package/docs/guide.md +653 -101
  219. package/entries/sap.js +5 -5
  220. package/package.json +1 -1
  221. package/src/core/admin-contenteditable.js +5 -2
  222. package/src/core/admin-inputs.js +1 -0
  223. package/src/core/admin-onclick.js +2 -1
  224. package/src/core/boot-phase.js +2 -1
  225. package/src/core/conflict-download.js +3 -29
  226. package/src/core/conflict-notice-ui.js +4 -7
  227. package/src/core/download.js +32 -0
  228. package/src/core/host-meta.js +56 -0
  229. package/src/core/is-edit-mode.js +17 -1
  230. package/src/core/mode-key.js +125 -19
  231. package/src/core/mode-support.js +5 -0
  232. package/src/core/mode-transition.js +20 -6
  233. package/src/core/preserve-authored.js +4 -4
  234. package/src/core/recovery.js +121 -33
  235. package/src/core/save-accepted.js +33 -0
  236. package/src/core/save-core.js +111 -32
  237. package/src/core/save-job.js +108 -0
  238. package/src/core/save-prepare.js +53 -0
  239. package/src/core/save-size-notice.js +3 -1
  240. package/src/core/save-slices.js +15 -0
  241. package/src/core/save.js +557 -127
  242. package/src/core/serialize-steps.js +109 -0
  243. package/src/core/snapshot.js +209 -40
  244. package/src/core/source-map.js +83 -38
  245. package/src/core/stale-host-notice.js +1 -0
  246. package/src/core/upgrade-run.js +59 -8
  247. package/src/dom/active-element.js +5 -0
  248. package/src/lib/assets.js +1 -0
  249. package/src/lib/autosave-scheduler.js +3 -4
  250. package/src/lib/slice.js +65 -0
  251. package/src/lib/uimotion.js +774 -0
  252. package/src/lib/unsaved-state.js +2 -2
  253. package/src/live/fast-lane.js +10 -3
  254. package/src/live/local-lane.js +202 -11
  255. package/src/live/ops.js +16 -0
  256. package/src/live/page-compaction.js +162 -0
  257. package/src/live/server-lane.js +1 -0
  258. package/src/live/store.js +11 -3
  259. package/src/loader-logic.js +3 -1
  260. package/src/loader.js +14 -4
  261. package/src/page/adopt-boot.js +2 -1
  262. package/src/page/awareness.js +33 -2
  263. package/src/page/blocks.js +122 -27
  264. package/src/page/board-views.js +2 -16
  265. package/src/page/boot-pack.js +1 -1
  266. package/src/page/chart-tables.js +29 -0
  267. package/src/page/chart.js +411 -72
  268. package/src/page/checklist.js +10 -135
  269. package/src/page/checkpoint-proof.js +295 -0
  270. package/src/page/chrome.js +257 -40
  271. package/src/page/clipboard-shape.js +126 -0
  272. package/src/page/document-title-dom.js +12 -0
  273. package/src/page/document-title-runtime.js +15 -1
  274. package/src/page/document-title.js +4 -1
  275. package/src/page/drag.js +33 -3
  276. package/src/page/editor.js +207 -31
  277. package/src/page/emoji-data.js +162 -0
  278. package/src/page/export-assets.js +357 -0
  279. package/src/page/export-html.js +209 -0
  280. package/src/page/export-markdown.js +361 -0
  281. package/src/page/features/board.js +12 -3
  282. package/src/page/features/chart.js +11 -0
  283. package/src/page/features/checklist.js +428 -0
  284. package/src/page/features/dates.js +180 -0
  285. package/src/page/features/emoji.js +187 -0
  286. package/src/page/features/export-html.js +189 -0
  287. package/src/page/features/export-markdown.js +169 -0
  288. package/src/page/features/import-markdown.js +349 -0
  289. package/src/page/features/media.js +61 -5
  290. package/src/page/features/mentions.js +188 -0
  291. package/src/page/features/registry.js +24 -1
  292. package/src/page/features/table.js +375 -85
  293. package/src/page/features/title-cover.js +331 -0
  294. package/src/page/features/title-icon.js +213 -0
  295. package/src/page/features/toc.js +87 -0
  296. package/src/page/format-command.js +33 -0
  297. package/src/page/format-gate.js +68 -18
  298. package/src/page/format-host.js +71 -0
  299. package/src/page/format-native-commands.js +158 -0
  300. package/src/page/format-native.js +42 -0
  301. package/src/page/image-actions.js +64 -0
  302. package/src/page/import-markdown.js +262 -0
  303. package/src/page/inline.js +32 -8
  304. package/src/page/items.js +141 -11
  305. package/src/page/markdown.js +30 -2
  306. package/src/page/media.js +35 -119
  307. package/src/page/mention-picker.js +99 -0
  308. package/src/page/merge.js +1 -1
  309. package/src/page/placeholder.js +14 -1
  310. package/src/page/projection.js +156 -25
  311. package/src/page/recover.js +10 -12
  312. package/src/page/recovery-ui.js +464 -0
  313. package/src/page/rich/chart.js +63 -7
  314. package/src/page/save-projection.js +67 -0
  315. package/src/page/save-states.js +14 -4
  316. package/src/page/schema.js +52 -3
  317. package/src/page/table-paste.js +3 -1
  318. package/src/page/table-style.js +4 -4
  319. package/src/page/table.js +44 -2
  320. package/src/page/themes/content.css +25 -1
  321. package/src/page/themes/light-1.css +33 -8
  322. package/src/page/themes/light-1.source.css +8 -7
  323. package/src/page/toc-link.js +31 -0
  324. package/src/page/toc.js +5 -0
  325. package/src/page/view-hooks.js +58 -0
  326. package/src/page/view.js +13 -0
  327. package/src/page/ybind/binding.js +116 -6
  328. package/src/page/ybind/bridge.js +187 -20
  329. package/src/page/ybind/containment.js +162 -0
  330. package/src/page/ybind/doc.js +17 -9
  331. package/src/page/ybind/file-debt.js +63 -0
  332. package/src/page/ybind/layout.js +7 -2
  333. package/src/page/ybind/marks.js +2 -1
  334. package/src/page/ybind/moves.js +5 -4
  335. package/src/page/ybind/origins.js +106 -4
  336. package/src/page/ybind/parts.js +8 -1
  337. package/src/page/ybind/provider.js +125 -18
  338. package/src/page/ybind/recovery-proof.js +32 -9
  339. package/src/page/ybind/recovery-replay.js +905 -4
  340. package/src/page/ybind/recovery.js +174 -45
  341. package/src/page/ybind/table.js +67 -11
  342. package/src/page/ybind/walk-delta.js +258 -0
  343. package/src/page/ybind/walk.js +54 -29
  344. package/src/page/ybind/writer.js +1 -1
  345. package/src/plugins/ai-edit.js +13 -9
  346. package/src/plugins/indicator-chip.js +91 -0
  347. package/src/plugins/indicator.js +13 -80
  348. package/src/plugins/live.js +126 -15
  349. package/src/plugins/menu/actions.js +196 -0
  350. package/src/plugins/menu/people.js +279 -0
  351. package/src/plugins/menu/placement.js +121 -0
  352. package/src/plugins/menu/preferences.js +9 -0
  353. package/src/plugins/menu/seo.js +316 -397
  354. package/src/plugins/menu/style.js +171 -0
  355. package/src/plugins/menu/variants.js +296 -0
  356. package/src/plugins/menu.js +186 -183
  357. package/src/plugins/page-view.js +3 -2
  358. package/src/plugins/page.js +362 -43
  359. package/src/plugins/sortable.js +8 -1
  360. package/src/plugins/source.js +6 -0
  361. package/src/plugins/upgrade.js +51 -17
  362. package/src/plugins/upload-ui.js +12 -17
  363. package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
  364. package/src/plugins/visitor-drafts/intro-style.js +7 -2
  365. package/src/plugins/visitor-drafts/intro.js +7 -4
  366. package/src/plugins/visitor-drafts/owner-chip.js +8 -12
  367. package/src/plugins/visitor-drafts/prompt.js +11 -9
  368. package/src/plugins/visitor-drafts/source.js +4 -3
  369. package/src/plugins/visitor-drafts/store.js +138 -9
  370. package/src/plugins/visitor-drafts/ui-memory.js +2 -2
  371. package/src/plugins/visitor-drafts-owner.js +4 -6
  372. package/src/plugins/visitor-drafts.js +5 -3
  373. package/src/recovery/store.js +1 -1
  374. package/src/route/route.js +4 -0
  375. package/src/server/checkpoint/index.js +2 -2
  376. package/src/server/rooms/index.js +5 -1
  377. package/src/server/rooms/live-data-rooms.js +302 -50
  378. package/src/server/rooms/page-compaction-worker.js +12 -0
  379. package/src/server/rooms/page-compactor.js +92 -0
  380. package/src/server/rooms/page-room-conformance.js +461 -0
  381. package/src/source/parse-steps.js +94 -0
  382. package/src/source/session.js +233 -57
  383. package/src/sync/editing-sender.js +12 -0
  384. package/src/sync/live-sync-edit.js +22 -2
  385. package/src/sync/live-sync.js +150 -23
  386. package/src/sync/page-relay.js +52 -0
  387. package/src/sync/presence-store.js +44 -4
  388. package/src/sync/presence.js +6 -3
  389. package/src/sync/saved-stream.js +28 -14
  390. package/src/ui/bevel-controls.js +1 -0
  391. package/src/ui/bevel-dialog.js +5 -2
  392. package/src/ui/editor-ui.js +77 -0
  393. package/src/ui/page-colour.js +281 -0
  394. package/src/ui/toast.js +16 -7
  395. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  396. package/src/vendor/hyper-undo.vendor.js +1 -1
  397. package/src/vendor/hypercms.vendor.js +9 -9
  398. package/src/vendor/parse5.vendor.js +2 -2
  399. package/src/vendor/sap-core.vendor.js +5 -5
  400. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +0 -1
  401. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +0 -1
  402. package/dist/m/c-2M73252O.js +0 -1
  403. package/dist/m/c-2SPVQSHC.js +0 -1
  404. package/dist/m/c-35NBGMZB.js +0 -1
  405. package/dist/m/c-3IQRECYS.js +0 -1
  406. package/dist/m/c-4B6H4G5V.js +0 -1
  407. package/dist/m/c-4FFHZM32.js +0 -1
  408. package/dist/m/c-4YSCRICO.js +0 -1
  409. package/dist/m/c-54RCDCBU.js +0 -1
  410. package/dist/m/c-5M4YEKCX.js +0 -4
  411. package/dist/m/c-5V3MOVJT.js +0 -1
  412. package/dist/m/c-66O32MV3.js +0 -28
  413. package/dist/m/c-6HMB24EV.js +0 -1
  414. package/dist/m/c-7O6AFR65.js +0 -1
  415. package/dist/m/c-ANQTJ3B5.js +0 -2
  416. package/dist/m/c-AYVOREBE.js +0 -1
  417. package/dist/m/c-B2ZXPOS3.js +0 -3
  418. package/dist/m/c-BMIZKMPV.js +0 -1
  419. package/dist/m/c-BTDI4Y23.js +0 -1
  420. package/dist/m/c-CJZSLMVQ.js +0 -1
  421. package/dist/m/c-DBE6ORSI.js +0 -1
  422. package/dist/m/c-EDHUR4MX.js +0 -1
  423. package/dist/m/c-EY6UOM54.js +0 -1
  424. package/dist/m/c-F3CKJTJS.js +0 -1
  425. package/dist/m/c-F7Y6FLPY.js +0 -1
  426. package/dist/m/c-FA4DZVTC.js +0 -1
  427. package/dist/m/c-G2BUZITR.js +0 -1
  428. package/dist/m/c-GB3JTV6E.js +0 -1
  429. package/dist/m/c-GBGWXTX4.js +0 -1
  430. package/dist/m/c-GHBCCVG4.js +0 -1
  431. package/dist/m/c-GJAEGGXY.js +0 -1
  432. package/dist/m/c-GOWBDM6J.js +0 -1
  433. package/dist/m/c-IB52R237.js +0 -1
  434. package/dist/m/c-IKWNE4R4.js +0 -1
  435. package/dist/m/c-IU3IYEU6.js +0 -1
  436. package/dist/m/c-IZ2EBRAJ.js +0 -1
  437. package/dist/m/c-KR4UW4KW.js +0 -1
  438. package/dist/m/c-KY3VJGUA.js +0 -8
  439. package/dist/m/c-LFPHCXY3.js +0 -1
  440. package/dist/m/c-LRPUO2MX.js +0 -1
  441. package/dist/m/c-LXENEBV7.js +0 -1
  442. package/dist/m/c-NMJRXKPC.js +0 -8
  443. package/dist/m/c-OIBUTDXI.js +0 -1
  444. package/dist/m/c-PPOSCAQD.js +0 -1
  445. package/dist/m/c-QIX5BJYN.js +0 -1
  446. package/dist/m/c-QQHEX6HA.js +0 -1
  447. package/dist/m/c-R7RMANJI.js +0 -9
  448. package/dist/m/c-RI4NT75Y.js +0 -1
  449. package/dist/m/c-RM7J7BV2.js +0 -1
  450. package/dist/m/c-RUJKSUQW.js +0 -1
  451. package/dist/m/c-SGCCC4FW.js +0 -25
  452. package/dist/m/c-T4VO4OCB.js +0 -1
  453. package/dist/m/c-TQEMVJCS.js +0 -1
  454. package/dist/m/c-TR6RMDQ7.js +0 -3
  455. package/dist/m/c-UKHTLWUW.js +0 -1
  456. package/dist/m/c-UNN7LWCT.js +0 -1
  457. package/dist/m/c-UXBMRDZB.js +0 -235
  458. package/dist/m/c-V7PZZRG7.js +0 -1
  459. package/dist/m/c-VL52ADDR.js +0 -1
  460. package/dist/m/c-WNYBLIOZ.js +0 -1
  461. package/dist/m/c-WWDBYXLK.js +0 -1
  462. package/dist/m/c-XNNW2CWK.js +0 -1
  463. package/dist/m/c-Y6USGTS5.js +0 -5
  464. package/dist/m/c-YG2NJYS6.js +0 -135
  465. package/dist/m/c-Z4VRC7GU.js +0 -7
  466. package/dist/m/c-Z6K52OLP.js +0 -19
  467. package/dist/m/c-ZDY2MDAA.js +0 -21
  468. package/dist/m/c-ZUCOKOHT.js +0 -1
  469. package/dist/m/core/admin-attrs-VGNLAUDK.js +0 -1
  470. package/dist/m/core/autosave-E4PEFPZ6.js +0 -1
  471. package/dist/m/core/conflict-notice-VQ6Y64PH.js +0 -1
  472. package/dist/m/core/host-permission-XN3K2IW3.js +0 -1
  473. package/dist/m/core/is-edit-mode-JXHDVGUL.js +0 -1
  474. package/dist/m/core/recovery-TBBSICE2.js +0 -1
  475. package/dist/m/core/save-WUCHTQBE.js +0 -1
  476. package/dist/m/core/save-core-FJVHT5M3.js +0 -1
  477. package/dist/m/core/snapshot-F3SWDZMM.js +0 -1
  478. package/dist/m/core/unsaved-warning-STKBHE6G.js +0 -1
  479. package/dist/m/events/index-23DPTUT4.js +0 -1
  480. package/dist/m/internals/index-WOVAP3RU.js +0 -1
  481. package/dist/m/lib/cache-bust-CGWT6ZJI.js +0 -1
  482. package/dist/m/loader-HXX6YNH5.js +0 -1
  483. package/dist/m/manifest-F22DEDAC.js +0 -1
  484. package/dist/m/manifest-edit-C3C7376B.js +0 -1
  485. package/dist/m/options/options-2LH76JQ3.js +0 -1
  486. package/dist/m/page/editor-XUTB2HB2.js +0 -189
  487. package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +0 -6
  488. package/dist/m/plugins/demo-ZIBFAA3R.js +0 -1
  489. package/dist/m/plugins/indicator-PV4YW2ID.js +0 -1
  490. package/dist/m/plugins/live-NUTTXSBS.js +0 -1
  491. package/dist/m/plugins/menu-HCKO3DSP.js +0 -138
  492. package/dist/m/plugins/page-KSUH7G6J.js +0 -2
  493. package/dist/m/plugins/page-view-W73OW7WI.js +0 -1
  494. package/dist/m/plugins/people-AJJ32YCG.js +0 -1
  495. package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
  496. package/dist/m/plugins/sortable-YRMQX3ZU.js +0 -1
  497. package/dist/m/plugins/source-KHK5UUSK.js +0 -1
  498. package/dist/m/plugins/undo-OF2L3CXU.js +0 -1
  499. package/dist/m/plugins/upgrade-ZNYODP5Y.js +0 -1
  500. package/dist/m/plugins/upload-XSGNILUY.js +0 -1
  501. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +0 -21
  502. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +0 -1
  503. package/dist/m/plugins/wire-ZWVWKF76.js +0 -1
  504. package/dist/m/reader-core-ILWLXVMP.js +0 -68
  505. package/dist/m/route/route-KOCZSEGN.js +0 -1
  506. package/dist/m/sync/live-sync-4AUVXVJU.js +0 -1
  507. package/dist/m/ui/index-EVHKMKBL.js +0 -1
  508. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
  509. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  510. /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
  511. /package/dist/m/plugins/{richclay-RC3L2F6X.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
@@ -0,0 +1,72 @@
1
+ import{b as N}from"./c-HAWFNBYG.js";import{N as q,na as U,ra as D,sa as j}from"./c-QIXT3Q7C.js";import{b as O}from"./c-L7JL5TL3.js";import{a as M,b as I}from"./c-MCOOHCSG.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var E=class extends Error{constructor(t,o){super(o),this.name="PageExportError",this.code=t}},z=(e,t)=>{throw new E(e,t)},_=/^data:image\/(?:png|jpe?g|gif|webp);/i,G=/^(?:javascript|vbscript|data):/i,V=/^https?:\/\//i,Y=/^\/(?!\/)/,H=e=>String(e??"").trim().replace(/[\u0000-\u0020]/g,""),K=e=>_.test(e)||!G.test(e);function J(e){let t=H(e);if(!t||t.startsWith("#"))return null;if(_.test(t))return{url:t,inline:!0};if(/^\/\//.test(t))return{url:`https:${t}`,inline:!1};if(Y.test(t)||V.test(t))return{url:t,inline:!1}}var Q={img:"image",iframe:"embed",embed:"embed",object:"embed",video:"embed",audio:"embed",source:"embed",track:"embed"},Z={object:"data"},ee=/<(?:img|svg|video|audio|canvas|iframe|table)\b/i,te=/<(?:meta|style|img|br|hr|input)\b[^>]*>/gi,S=e=>e.closest?.("[data-id]")?.getAttribute("data-id")||null,re=(e,t)=>t?`${e} in block ${t}`:e;function oe(e){let t=[],o=new Set,i=(r,c,l)=>{let s=J(c);if(s===void 0&&z("unsafe-url",`The ${re(r,l)} points at ${String(c).trim().slice(0,120)}, which a reading copy cannot carry`),!s)return;let f=`${r}\0${s.url}`;o.has(f)||(o.add(f),t.push({kind:r,url:s.url,blockId:l??null,inline:s.inline}))};for(let r of e.querySelectorAll("*")){let c=r.tagName.toLowerCase(),l=Q[c];if(l&&i(l,r.getAttribute(Z[c]??"src"),S(r)),c==="img"||c==="source")for(let s of String(r.getAttribute("srcset")??"").split(","))i("image",s.trim().split(/\s+/)[0],S(r))}for(let r of e.querySelectorAll('[data-type="file"]'))i("attachment",r.getAttribute("data-src"),S(r)),i("attachment",r.querySelector("a[href]")?.getAttribute("href"),S(r));for(let r of e.querySelectorAll('figure[data-type="chart"]')){let c=S(r),l=`chart\0${c??""}`;o.has(l)||(o.add(l),t.push({kind:"chart",url:null,blockId:c??null,inline:!0}))}return t}function ne(e){for(let t of[...e.querySelectorAll("script, style, link, meta, base")])t.remove();for(let t of e.querySelectorAll("*"))for(let{name:o,value:i}of[...t.attributes]){let r=o.toLowerCase();if(r.startsWith("on")||r==="clay"||r==="merge"||r==="live"||r==="srcdoc"||r.startsWith("data-clay")||r.startsWith("clay-")){t.removeAttribute(o);continue}/^(href|src|action|formaction|poster|data-src|xlink:href)$/.test(r)&&!K(H(i))&&t.removeAttribute(o)}}function ae(e){for(let t of e.querySelectorAll('nav[data-type="toc"]'))for(let o of[...t.querySelectorAll("a")])o.replaceWith(o.ownerDocument.createTextNode(o.textContent))}var ie=e=>e.map(t=>t.t==="toggle"?{...t,open:!0}:t),se=(e,t)=>{let o=t.fallback(String(e??""));return ee.test(o)||o.replace(te,"").replace(/<[^>]+>/g,"").trim()!==""},le=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),ce=`:root { color-scheme: light dark; }
2
+ body { margin: 0; background: #ffffff; color: #37352f; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.6; }
3
+ article[data-page] { max-width: 46rem; margin: 0 auto; padding: 3rem 1.25rem 6rem; }
4
+ article[data-page] > * { margin: 0.7em 0; }
5
+ header[data-page-heading] { position: relative; margin-bottom: 1.6em; }
6
+ header[data-page-heading] img[data-page-cover] { display: block; width: 100%; max-height: 18rem; object-fit: cover; border-radius: 6px; margin-bottom: 1em; }
7
+ header[data-page-heading] span[data-page-icon] { display: block; font-size: 2.6em; line-height: 1.2; }
8
+ h1, h2, h3, h4, h5, h6 { line-height: 1.25; font-weight: 650; margin: 1.2em 0 0.3em; }
9
+ h1 { font-size: 2em; }
10
+ h2 { font-size: 1.5em; }
11
+ h3 { font-size: 1.2em; }
12
+ p, li { max-width: 100%; }
13
+ a { color: #0b6bcb; }
14
+ blockquote { margin-left: 0; padding-left: 1em; border-left: 3px solid rgba(55, 53, 47, 0.2); color: #5b5952; }
15
+ aside.page-callout { border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 6px; padding: 0.8em 1em; background: rgba(55, 53, 47, 0.04); }
16
+ pre { overflow-x: auto; padding: 0.9em 1em; border-radius: 6px; background: rgba(55, 53, 47, 0.06); font-size: 0.9em; }
17
+ code { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; font-size: 0.92em; }
18
+ pre code { font-size: inherit; }
19
+ details { margin: 0.4em 0; }
20
+ details > summary { cursor: pointer; font-weight: 600; }
21
+ details > summary h1, details > summary h2, details > summary h3 { display: inline; margin: 0; }
22
+ hr { border: 0; border-top: 1px solid rgba(55, 53, 47, 0.18); }
23
+ table { border-collapse: collapse; width: 100%; }
24
+ th, td { border: 1px solid rgba(55, 53, 47, 0.18); padding: 0.4em 0.6em; text-align: left; vertical-align: top; }
25
+ th { background: rgba(55, 53, 47, 0.04); font-weight: 600; }
26
+ figure { margin: 1em 0; }
27
+ figure img { max-width: 100%; height: auto; border-radius: 4px; }
28
+ figcaption { font-size: 0.88em; color: #78766f; margin-top: 0.4em; }
29
+ figure[data-type="chart"] svg { max-width: 100%; height: auto; }
30
+ section[data-type="board"] { display: flex; gap: 1em; overflow-x: auto; align-items: flex-start; }
31
+ section[data-type="board"] > div { min-width: 12rem; border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 6px; padding: 0.6em 0.8em; }
32
+ section[data-type="board"] h4 { margin: 0 0 0.4em; font-size: 0.95em; }
33
+ section[data-type="board"] ul { list-style: none; margin: 0; padding: 0; }
34
+ section[data-type="board"] li { border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 4px; padding: 0.4em 0.5em; margin-bottom: 0.4em; }
35
+ nav[data-type="toc"] ul { list-style: none; padding-left: 0; }
36
+ nav[data-type="toc"] ul ul { padding-left: 1.2em; }
37
+ li > input[type="checkbox"] { margin-right: 0.4em; }
38
+ [data-type="file"] a { display: inline-block; padding: 0.4em 0.7em; border: 1px solid rgba(55, 53, 47, 0.18); border-radius: 4px; }
39
+ @media (prefers-color-scheme: dark) {
40
+ body { background: #191919; color: #d4d4d4; }
41
+ aside.page-callout, th, pre { background: rgba(255, 255, 255, 0.06); }
42
+ th, td, section[data-type="board"] > div, section[data-type="board"] li, [data-type="file"] a { border-color: rgba(255, 255, 255, 0.16); }
43
+ a { color: #6cb0f5; }
44
+ }`;function de(e,t){return`<!DOCTYPE html>
45
+ <html lang="en">
46
+ <head>
47
+ <meta charset="utf-8">
48
+ <meta name="viewport" content="width=device-width, initial-scale=1">
49
+ <title>${le(e)}</title>
50
+ <style>
51
+ ${ce}
52
+ </style>
53
+ </head>
54
+ <body>
55
+ <article data-page="1">
56
+ ${t}
57
+ </article>
58
+ </body>
59
+ </html>
60
+ `}function B(e,{title:t=null,fallbackOf:o=null,doc:i=globalThis.document}={}){if(!Array.isArray(e))throw new TypeError("page: an export renders a projection model");let r=D(i),c=o??(u=>e.find(m=>m.id===u)?.artifact?.fallbackHtml??"");for(let u of e)u.t==="tool"&&!se(c(u.id),r)&&z("unsupported-tool",`Block ${u.id} holds a tool with no static rendering, which a reading copy cannot show`);let l=i.createElement("div");l.innerHTML=j(ie(e),{fallbackOf:c,clean:r});let s=oe(l);ne(l),ae(l);let f=t??N(e);return{html:de(f,l.innerHTML),title:f,resources:s}}var F=Object.freeze({perResource:20971520,total:52428800,timeout:1e4,inFlight:3}),ue=[/^image\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)$/i,/^font\/(?:woff2?|ttf|otf|sfnt|collection|eot)$/i,/^application\/(?:font-woff2?|vnd\.ms-fontobject|x-font-ttf|x-font-opentype|vnd\.ms-opentype)$/i,/^audio\/[a-z0-9][a-z0-9.+-]*$/i,/^video\/[a-z0-9][a-z0-9.+-]*$/i],fe=/^(?:text\/(?:html|javascript|css|xml|xsl)|application\/(?:xhtml\+xml|xml|javascript|ecmascript|x-javascript|wasm)|image\/svg\+xml)$|\+xml$/i;function pe(e,t="image"){let o=String(e??"").split(";")[0].trim();return o===""?!1:t==="attachment"?!fe.test(o):ue.some(i=>i.test(o))}function v(e,t=globalThis.document?.baseURI??null){let o=String(e??"").trim();if(!o||o.startsWith("#"))return null;try{let i=new URL(o,t??void 0);return i.hash="",i.href}catch{return null}}var me=e=>String(e??"").trim().replace(/[\u0000-\u0020]/g,""),ge=e=>/^(?:localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i.test(e||"")||/\.local$/i.test(e||""),L=e=>{try{return new URL(e).origin}catch{return null}},he=e=>{try{return new URL(e).hostname}catch{return null}},C=e=>e>=1024*1024?`${Math.round(e/(1024*1024))} MiB`:e>=1024?`${Math.round(e/1024)} KiB`:`${Math.round(e)} B`,A=e=>e.blockId?`The ${e.kind} in block ${e.blockId}`:`The ${e.kind}`,y=(e,t,o)=>({code:e,kind:t.kind??null,url:t.url??null,blockId:t.blockId??null,message:o});function be(e,t){let o=e.blockId??null,i=o?` in block ${o}`:"";return{code:"unsupported-embed",kind:"embed",url:e.url??null,blockId:o,message:`The embed${i} is a live frame, which a reading copy cannot carry${t?` (${t})`:""}`}}function ye(e){let t=e.blockId??null,o=t?` in block ${t}`:"";return{code:"unsupported-url",kind:e.kind??null,url:e.url??null,blockId:t,message:`The ${e.kind}${o} points at ${String(e.url??"").trim().slice(0,120)}, which is not an address a reading copy can fetch`}}var P=e=>e?e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e):new Uint8Array(0);function xe(e){let t="";for(let o=0;o<e.length;o+=32768)t+=String.fromCharCode(...e.subarray(o,o+32768));return globalThis.btoa(t)}var we=(e,t)=>`data:${String(e).split(";")[0].trim()};base64,${xe(t)}`;async function $e(e,t,o,i){let r=Number(e.headers?.get?.("content-length"));if(Number.isFinite(r)&&r>o.perResource)throw y("too-large",t.target,`${A(t.target)} at ${t.target.url} is larger than ${C(o.perResource)}`);let c=()=>{if(t.bytes>o.perResource)throw y("too-large",t.target,`${A(t.target)} at ${t.target.url} is larger than ${C(o.perResource)}`);if(i.exhausted||i.spent+i.live>i.total)throw i.exhausted=!0,y("total-too-large",t.target,`The page's resources together are larger than ${C(i.total)}`)},l=e.body?.getReader?.();if(!l){let m=P(typeof e.arrayBuffer=="function"?await e.arrayBuffer():e.body);t.bytes+=m.byteLength,i.live+=m.byteLength;try{c()}finally{i.live-=m.byteLength,t.bytes<=o.perResource&&(i.spent+=m.byteLength)}return m}let s=[];try{for(;;){let{done:m,value:x}=await l.read();if(m)break;let g=P(x);t.bytes+=g.byteLength,i.live+=g.byteLength,c(),s.push(g)}}catch(m){i.live-=t.bytes,t.bytes=0;try{await l.cancel?.()}catch{}throw m}i.live-=t.bytes,i.spent+=t.bytes;let f=new Uint8Array(t.bytes),u=0;for(let m of s)f.set(m,u),u+=m.byteLength;return f}async function Ae(e,{fetchImpl:t,baseOrigin:o,baseHost:i,limits:r,budget:c,run:l}){let{target:s,controller:f}=e;if(l.signal.aborted)return{target:s,loss:y("cancelled",s,`Reading ${s.url} was cancelled`)};let u=()=>f.abort();l.signal.aborted?f.abort():l.signal.addEventListener("abort",u,{once:!0});let m=setTimeout(()=>{e.timedOut=!0,f.abort()},r.timeout),x=o!=null&&L(s.url)===o;try{let g=await t(s.url,{credentials:x?"include":"omit",signal:f.signal});if(!g||g.ok===!1){let a=g?.status??0;throw y("missing-resource",s,`${A(s)} is not at ${s.url} (the host answered ${a||"nothing"})`)}let w=g.headers?.get?.("content-type")??"";if(!pe(w,s.kind))throw y("mime-refused",s,`${A(s)} at ${s.url} is ${String(w).split(";")[0].trim()||"of no stated type"}, which a reading copy does not carry`);let n=await $e(g,e,r,c);return{target:s,hit:{data:we(w,n),type:String(w).split(";")[0].trim(),bytes:n.byteLength}}}catch(g){return g&&typeof g.code=="string"&&typeof g.message=="string"?{target:s,loss:g}:e.timedOut?{target:s,loss:y("timeout",s,`${A(s)} at ${s.url} did not arrive within ${Math.round(r.timeout/1e3)} s`)}:l.signal.aborted||f.signal.aborted?{target:s,loss:y("cancelled",s,`Reading ${s.url} was cancelled`)}:x?ge(i)?{target:s,loss:y("offline-host",s,`${A(s)} at ${s.url} could not be read: this copy's host is not reachable`)}:{target:s,loss:y("unreachable",s,`${A(s)} at ${s.url} could not be read`)}:{target:s,loss:y("cross-origin-cors",s,`${A(s)} at ${s.url} could not be read: ${L(s.url)??"the other origin"} refused a cross-origin read`)}}finally{clearTimeout(m),l.signal.removeEventListener("abort",u)}}async function ke(e,t,o){let i=e.slice(),r=async()=>{for(;;){let c=i.shift();if(!c)return;await o(c)}};await Promise.all(Array.from({length:Math.max(1,Math.min(t,i.length))},r))}function ve(e,t,o){let i=new DOMParser().parseFromString(String(e??""),"text/html");for(let r of[...i.querySelectorAll("script, link, base, style[media]")])r.remove();for(let r of[...i.querySelectorAll("iframe, embed, object, video, audio, source, track, picture")])r.remove();for(let r of i.querySelectorAll("img")){let c=t.get(v(r.getAttribute("src"),o));c?r.setAttribute("src",c.data):r.removeAttribute("src"),r.removeAttribute("srcset"),r.removeAttribute("poster")}for(let r of i.querySelectorAll('[data-type="file"]')){let c=t.get(v(r.getAttribute("data-src"),o))??t.get(v(r.querySelector("a[href]")?.getAttribute("href"),o));if(c){r.setAttribute("data-src",c.data);let l=r.querySelector("a[href]");l&&l.setAttribute("href",c.data)}else r.removeAttribute("data-src"),r.querySelector("a[href]")?.removeAttribute("href")}for(let r of i.querySelectorAll("[style]")){let c=String(r.getAttribute("style")).split(";").filter(l=>!/url\s*\(|@import/i.test(l)).join(";").trim();c?r.setAttribute("style",c):r.removeAttribute("style")}return`<!DOCTYPE html>
61
+ ${i.documentElement.outerHTML}`}var Se=[..."src srcset poster data data-src xlink:href".split(" "),"href"],Ee=e=>{let t=me(e);return!t||t.startsWith("#")?!1:!/^data:/i.test(t)};function Te(e){let t=new DOMParser().parseFromString(String(e??""),"text/html"),o=[];for(let i of t.querySelectorAll("*")){let r=i.tagName.toLowerCase();for(let l of Se){if(!i.hasAttribute(l)||l==="href"&&r!=="link"&&r!=="script"&&r!=="base"||l==="data"&&r!=="object"||l==="data-src"&&!i.closest?.('[data-type="file"]'))continue;let s=i.getAttribute(l),f=l==="srcset"?String(s).split(",").map(u=>u.trim().split(/\s+/)[0]):[s];for(let u of f)Ee(u)&&o.push({tag:r,attr:l,value:u})}let c=i.getAttribute("style");c&&/url\s*\(|@import/i.test(c)&&o.push({tag:r,attr:"style",value:c})}for(let i of t.querySelectorAll("style"))/url\s*\(|@import/i.test(i.textContent??"")&&o.push({tag:"style",attr:"text",value:i.textContent});return o}async function W(e,{resources:t=[],base:o=globalThis.document?.baseURI??null,fetch:i=globalThis.fetch,signal:r=null,limits:c=F}={}){let l={...F,...c??{}},s=[],f=new Set,u=a=>{let d=`${a.code}\0${a.blockId??""}\0${a.message}`;f.has(d)||(f.add(d),s.push(a))},m=new Map;for(let a of t??[]){if(!a||a.kind==="chart"||a.inline)continue;let d=a.url?v(a.url,o):null;if(a.kind==="embed"){u(be(a,d));continue}if(!d){u(ye(a));continue}let b=m.get(d)??{url:d,kind:a.kind,blockId:a.blockId??null};b.blockId??=a.blockId??null,m.set(d,b)}let x=[...m.values()],g=new Map,w={spent:0,live:0,total:l.total,exhausted:!1};if(x.length&&typeof i!="function")for(let a of x)u(y("unavailable",a,`${A(a)} at ${a.url} could not be read: this page cannot fetch it`));else if(x.length){let a=new AbortController,d=()=>a.abort();r&&(r.aborted?a.abort():r.addEventListener("abort",d,{once:!0}));let b=o?L(v(o,o)??o):null,$=o?he(v(o,o)??o):null,k=new Map;try{let h=x.map(p=>({target:p,controller:new AbortController,bytes:0,timedOut:!1}));await ke(h,l.inFlight,async p=>{a.signal.aborted||k.set(p.target.url,await Ae(p,{fetchImpl:i,baseOrigin:b,baseHost:$,limits:l,budget:w,run:a}))})}finally{r?.removeEventListener("abort",d)}for(let h of x){let p=k.get(h.url);p?.hit?g.set(h.url,p.hit):p?.loss?u(p.loss):a.signal.aborted?u(y("cancelled",h,`Reading ${h.url} was cancelled`)):u(y("unreachable",h,`${A(h)} at ${h.url} could not be read`))}}let n=ve(e,g,o);return{html:n,losses:s,remote:Te(n),embedded:g.size,bytes:w.spent}}var Ce=80,Le=/[\u0000-\u001f\u007f<>:"/\\|?*]+/g;function Re(e){let t=String(e??"").replace(Le," ").replace(/\s+/g," ").replace(/^\.+/,"").trim().slice(0,Ce).trim();if(t)return`${t}.html`;try{return`${M()}.html`}catch{return"page.html"}}var Me=`
62
+ :host{font:inherit !important;color:inherit !important}
63
+ .page-export-panel{max-width:46ch;margin:8px 0;padding:10px 12px;border:1px solid var(--page-pop-line);border-radius:8px;background:var(--page-pop-bg);color:var(--page-pop-ink);box-shadow:var(--page-pop-shadow);font-size:.88em}
64
+ .page-export-title{margin:0 0 2px;font-weight:600}
65
+ .page-export-when{margin:0 0 6px;color:var(--page-ink-soft)}
66
+ .page-export-losses{margin:6px 0;padding-left:1.1em}
67
+ .page-export-losses li{margin:2px 0}
68
+ .page-export-acts{display:flex;gap:6px;margin-top:8px}
69
+ .page-export-btn{border:0;padding:4px 8px;border-radius:6px;background:none;color:inherit;font:inherit;cursor:pointer}
70
+ .page-export-btn:hover{background:var(--page-pop-hover)}
71
+ .page-export-panel[data-state="loss"] .page-export-title{color:var(--page-danger, #9E3B2F)}
72
+ `;function Be({view:e=null,download:t=I,fetch:o=null,now:i=()=>new Date}={}){if(!e)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let r=e.dom.ownerDocument,c=null,l=!1,s=(n,a,d,b)=>{a.addEventListener(d,b),n.listen.push([a,d,b])},f=(n,a)=>{let d=r.createElement("button");return d.type="button",d.className="page-export-btn",d.dataset.act=n,d.textContent=a,d};function u(){let n=c;if(n){c=null;for(let[a,d,b]of n.listen)a.removeEventListener(d,b);n.abort?.abort(),n.ui?.remove()}}function m(n){let a=n.panel??(n.panel=r.createElement("aside"));a.className="page-export-panel",a.dataset.state=n.ready?"ready":"loss",a.setAttribute("contenteditable","false"),a.setAttribute("role","dialog"),a.setAttribute("aria-modal","false"),a.setAttribute("aria-labelledby","page-export-title"),a.dataset.at=n.at.toISOString(),a.setAttribute("tabindex","-1"),a.textContent="";let d=r.createElement("p");d.className="page-export-title",d.id="page-export-title";let b=n.ready?"Reading copy":"This page cannot be a reading copy yet";d.textContent=n.title?`${b}: ${n.title}`:b;let $=r.createElement("p");$.className="page-export-when";let k=`${n.at.toLocaleString()} \xB7 ${n.embedded} ${n.embedded===1?"resource":"resources"} inside the file`;if($.textContent=k,a.append(d,$),n.losses.length){let T=r.createElement("ul");T.className="page-export-losses";for(let X of n.losses){let R=r.createElement("li");R.textContent=X.message,T.append(R)}a.append(T)}let h=r.createElement("div");h.className="page-export-acts",n.ready?h.append(f("download","Download"),f("close","Close")):h.append(f("retry","Try again"),f("close","Close")),a.append(h);let p=h.firstChild;n.ui||(n.ui=O({name:"page-export",content:a,css:[Me],parent:e.dom.parentElement??r.body})),(n.ready?p:a).focus?.()}function x(n){s(n,n.panel,"click",a=>{let d=a.target.closest?.("[data-act]");d&&(a.preventDefault(),d.dataset.act==="close"?u():d.dataset.act==="download"?g(n):d.dataset.act==="retry"&&w().catch(b=>console.error("clayjs: the reading copy could not be made",b)))}),s(n,r,"keydown",a=>{a.key!=="Escape"||c!==n||(a.preventDefault(),a.stopPropagation(),u())},!0)}function g(n){if(!n.ready||l)return{ok:!1,code:"not-editing"};let a=t({html:n.ready.html,name:n.ready.name});return u(),{ok:a===!0,downloaded:a===!0}}async function w(){if(l||e.isDestroyed)return{ok:!1,code:"not-editing"};u();let n={at:i(),title:"",panel:null,listen:[],abort:new AbortController,losses:[],embedded:0,ready:null},a=q(e.state.doc),d=U(a),b=r.baseURI,$;try{$=B(d,{fallbackOf:p=>typeof a[p]?.artifact?.fallbackHtml=="string"?a[p].artifact.fallbackHtml:"",doc:r})}catch(p){if(!(p instanceof E))throw p;return n.title=null,n.losses=[{code:p.code,message:p.message}],c=n,m(n),x(n),{ok:!1,code:p.code,message:p.message}}n.title=$.title||"Untitled",c=n;let k=o??globalThis.fetch,h=await W($.html,{resources:$.resources,base:b,fetch:k,signal:n.abort.signal});if(l||e.isDestroyed||c!==n)return{ok:!1,code:"not-editing"};n.embedded=h.embedded,n.losses=h.losses.slice();for(let p of h.remote??[])n.losses.push({code:"remote-reference",message:`The ${p.tag} in the reading copy still points at ${String(p.value).slice(0,120)}`});return n.losses.length||(n.ready={html:h.html,name:Re(n.title)}),m(n),x(n),n.ready?{ok:!0,title:n.title,name:n.ready.name,embedded:n.embedded}:{ok:!1,code:"resource-losses",losses:n.losses}}return{run:w,dispose(){l=!0,u()}}}export{Be as createFeature};
@@ -0,0 +1,3 @@
1
+ import{a as G}from"./c-CAS3NND4.js";import{b as J}from"./c-3G2DGZUP.js";import{o as z,p as _}from"./c-B7J4K2AE.js";import"./c-ATKAOH23.js";import"./c-EK63G3CG.js";import{a as F}from"./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-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var Le=Object.defineProperty,je=(e,t)=>{for(var r in t)Le(e,r,{get:t[r],enumerable:!0})},Ce=["textContent","innerText","innerHTML","outerHTML","value","checked","selected","disabled","readOnly","type","tagName","nodeName","nodeType","nodeValue","childElementCount","id","className","classList","baseURI","offsetWidth","offsetHeight","clientWidth","clientHeight","scrollWidth","scrollHeight","dataset","currentSrc","duration","paused","title","documentURI","contentType"],Me=new Set(Ce),Ue=new Set(["textContent","innerText","innerHTML","value","checked","selected","disabled","readOnly","type","id","className","title"]),Ie=new Set(["tagName","nodeName","nodeType","nodeValue","childElementCount","classList","baseURI","documentURI","contentType","offsetWidth","offsetHeight","clientWidth","clientHeight","scrollWidth","scrollHeight","currentSrc","duration","paused","dataset"]),Y=new Set(["checked","selected","disabled","readOnly","paused"]);function Pe(e,t){return t==null?Y.has(e)?!1:"":Y.has(e)?t==="false"?!1:!!t:t}var De={};je(De,{EmptyListInsert:()=>R,MAX_RULE_DEPTH:()=>C,MaxRuleDepthExceeded:()=>V,NoRulesTag:()=>We,RuleTargetReadOnly:()=>fe,RulesParseError:()=>se,ShapeMismatch:()=>ce,UnknownRulesVersion:()=>ue,WriteNotRoundTripped:()=>He,WriteRefused:()=>Be,WriteRejected:()=>Ve});var se=class extends Error{constructor(e,t){super(e),this.name="RulesParseError",this.cause=t}},ue=class extends Error{constructor(e){super(`unknown rules version: ${e}. Library supports "1".`),this.name="UnknownRulesVersion",this.version=e}},C=20,V=class extends Error{constructor(e){super(`rule depth exceeded ${C} at path: ${e.join(".")}`),this.name="MaxRuleDepthExceeded",this.path=e}},ce=class extends Error{constructor(e){super(`shape mismatch: ${e.length} field(s) failed validation`),this.name="ShapeMismatch",this.mismatches=e}},R=class extends Error{constructor(e,t){super(t?`cannot add items to empty list at "${e.join(".")}" \u2014 ${t}`:`cannot add items to empty list at "${e.join(".")}" \u2014 no sibling to clone as template. Seed the list with a hidden item first.`),this.name="EmptyListInsert",this.path=e}},fe=class extends Error{constructor(e){super(`cannot write to read-only DOM property "${e}"`),this.name="RuleTargetReadOnly",this.target=e}},Be=class extends Error{constructor(e){super(`write refused: ${e.length} write(s) broke the content-only policy`),this.name="WriteRefused",this.refusals=e}};function qe(e){return e.reduce((t,r)=>typeof r=="number"?`${t}[${r}]`:t?`${t}.${r}`:String(r),"")||"(root)"}var He=class extends Error{constructor(e){super(`write did not round-trip at "${qe(e)}"`),this.name="WriteNotRoundTripped",this.path=e}},We=class extends Error{constructor(e){super(`no <script data-rules-name~="${e}"> rules tag in this document`),this.name="NoRulesTag",this.token=e}},Ve=class extends Error{constructor(e,t){super(`write rejected: ${e.length} unknown key(s), ${t.length} rule(s) with no matching element`),this.name="WriteRejected",this.unknownKeys=e,this.unmatched=t}};function de(e){let t=0,r=null,l=-1;for(let n=0;n<e.length;n++){let o=e[n];o==="\\"?n++:r?o===r&&(r=null):o==='"'||o==="'"?r=o:o==="["||o==="("?t++:o==="]"||o===")"?t>0&&t--:o==="@"&&t===0&&(l=n)}return l}function pe(e){let t=0,r=null,l=-1,n=!1;for(let o=0;o<e.length;o++){let i=e[o];i==="\\"?o++:r?i===r&&(r=null):i==='"'||i==="'"?r=i:i==="["||i==="("?t++:i==="]"||i===")"?t>0&&t--:t===0&&i===">"?l=o:t===0&&i===","&&(n=!0)}return n||l===-1||!Fe(e,l+1)?null:e.slice(0,l).trim()||null}function Fe(e,t){let r=t,l=e.replace(/\s+$/,"").length;for(;r<l&&/\s/.test(e[r]);)r++;let n=0,o=null;for(;r<l;r++){let i=e[r];if(i==="\\")r++;else if(o)i===o&&(o=null);else if(i==='"'||i==="'")o=i;else if(i==="["||i==="(")n++;else if(i==="]"||i===")")n>0&&n--;else if(n===0&&(i==="+"||i==="~"||/\s/.test(i)))return!1}return!0}var ze=/^--[A-Za-z0-9_-]+$/;function he(e){return typeof e=="string"&&ze.test(e)}function me(e){let t=[],r=[],l=null,n=0;for(let o=0;o<e.length;o++){let i=e[o];if(l){i==="\\"?o++:i===l&&(l=null);continue}if(i==="/"&&e[o+1]==="*"){let a=e.indexOf("*/",o+2);o=a===-1?e.length:a+1;continue}i==='"'||i==="'"?l=i:i==="("?r.push(")"):i==="["?r.push("]"):i==="{"?r.push("}"):(i===")"||i==="]"||i==="}")&&r[r.length-1]===i?r.pop():i===";"&&r.length===0&&(t.push(e.slice(n,o)),n=o+1)}return t.push(e.slice(n)),t}function _e(e){let t="",r=null;for(let l=0;l<e.length;l++){let n=e[l];if(r){t+=n,n==="\\"&&l+1<e.length?t+=e[++l]:n===r&&(r=null);continue}if(n==="/"&&e[l+1]==="*"){let o=e.indexOf("*/",l+2);l=o===-1?e.length:o+1,t+=" ";continue}(n==='"'||n==="'")&&(r=n),t+=n}return t}function ye(e){e=_e(e);let t=e.indexOf(":");if(t===-1)return null;let r=e.slice(0,t).trim(),l=e.slice(t+1).trim(),n=/!\s*important\s*$/i.exec(l);return n&&(l=l.slice(0,n.index).trim()),{name:r,value:l,important:!!n}}function ge(e,t){if(e==null)return null;let r=null;for(let l of me(String(e))){let n=ye(l);!n||n.name!==t||(!r||n.important||!r.important)&&(r=n)}return r?r.value:null}function Je(e,t,r){let l=e==null?"":String(e),n=r==null||r==="",o=me(l),i=o.map(ye),a=i.some(f=>f&&f.name===t&&f.important),s=[],u=!1;o.forEach((f,d)=>{let h=i[d];if(!h||h.name!==t){s.push(f);return}if(n||u)return;let m=/^\s*/.exec(f)[0];s.push(`${m}${t}: ${r}${a?" !important":""}`),u=!0});let c=s.join(";");if(!n&&!u){let f=c.trimEnd();c=f===""?`${t}: ${r}`:`${f}${f.endsWith(";")?" ":"; "}${t}: ${r}`}return c.trim()===""?null:c}function Ge(e,t,r,l){let n=e.attr(t,"style");if((ge(n,r)??"")===l)return;let o=Je(n,r,l);o==null?e.removeAttr(t,"style"):e.attr(t,"style",o)}function we(e,t,r,l={}){if(Object.prototype.hasOwnProperty.call(l,"exclude")&&e.semanticExclude===!1)throw new Error("This adapter does not support semantic exclude queries; omit exclude or use the DOM adapter.");return P(e,t,r,{depth:0,path:[]},l)}function P(e,t,r,l,n){if(l.depth>C)throw new V(l.path);if(typeof r=="string")return Ye(e,t,r,l,n);if(Array.isArray(r)){let[o,i]=r,a=e.find(t,o,n);return ve(n,l,a),a.map((s,u)=>P(e,s,i,{depth:l.depth+1,path:[...l.path,u]},n))}if(typeof r=="object"&&r!==null){let o={};for(let[i,a]of Object.entries(r))o[i]=P(e,t,a,{depth:l.depth+1,path:[...l.path,i]},n);return o}return null}function Ye(e,t,r,l,n){if(r.endsWith("[]")){let a=r.slice(0,-2),s=e.find(t,a,n);return ve(n,l,s),s.map(u=>e.text(u))}if(r.startsWith("@"))return X(e,t,r.slice(1));let o=de(r);if(o!==-1){let a=r.slice(0,o),s=r.slice(o+1),u=a?e.find(t,a,n):[t];return u.length===0?null:X(e,u[0],s)}if(r===".")return e.text(t);let i=e.find(t,r,n);return i.length===0?null:e.text(i[0])}function ve(e,t,r){if(typeof e.onRowsRead=="function")try{e.onRowsRead(t.path.slice(),r)}catch(l){console.warn(`[hyper-html-api] onRowsRead threw at "${t.path.join(".")||"(root)"}"`,l)}}function X(e,t,r){if(he(r))return ge(e.attr(t,"style"),r);if(Me.has(r)){let n=e.prop(t,r);return n==null?null:String(n)}return e.attr(t,r)??null}function Xe(e,t,r,l){let n=e.length,o=t.length,i=new Array(n).fill(-1);if(l){let p=new Set;for(let y=0;y<n;y++){let g=l[y];!(g>=0&&g<o)||p.has(g)||(i[y]=g,p.add(g))}}if(n===0||o===0)return i;let a=e.map(p=>K(p,r)),s=t.map(p=>K(p,r)),u=new Array(o).fill(!1);for(let p of i)p>=0&&(u[p]=!0);let c=new Map;s.forEach((p,y)=>{u[y]||c.set(p,c.has(p)?-1:y)});let f=new Map;a.forEach((p,y)=>{i[y]>=0||f.set(p,(f.get(p)||0)+1)}),a.forEach((p,y)=>{if(i[y]>=0||f.get(p)!==1)return;let g=c.get(p);g===void 0||g===-1||u[g]||(i[y]=g,u[g]=!0)});let d=[];for(let p=0;p<n;p++)i[p]<0&&d.push(p);let h=[];for(let p=0;p<o;p++)u[p]||h.push(p);if(d.length===0||h.length===0)return i;let m=n*o+1,w=Ke(e,t,r),v=(p,y)=>w(p,y)*m+Math.abs(p-y);for(let[p,y]of Ze(d,h,v))i[p]=y;return i}var be=e=>typeof e=="object"&&e!==null;function K(e,t){if(!be(t))return e==null?" null":String(e);let r=Object.keys(t);return JSON.stringify(r.map(l=>{let n=JSON.stringify(e?.[l]);return n===void 0?" undef":n}))}function Ke(e,t,r){if(!be(r))return(a,s)=>e[a]===t[s]?0:1;let l=Object.keys(r),n=a=>l.map(s=>JSON.stringify(a?.[s])),o=e.map(n),i=t.map(n);return(a,s)=>{let u=o[a],c=i[s],f=0;for(let d=0;d<l.length;d++)u[d]!==c[d]&&f++;return f}}function Ze(e,t,r){return e.length<=t.length?Z(e,t,r,!1):Z(t,e,(l,n)=>r(n,l),!0)}function Z(e,t,r,l){let n=e.length,o=t.length,i=[];for(let f=0;f<=n;f++)i.push(new Float64Array(o+1).fill(1/0));let a=[];for(let f=0;f<=n;f++)a.push(new Uint8Array(o+1));for(let f=0;f<=o;f++)i[n][f]=0;for(let f=n-1;f>=0;f--)for(let d=o-1;d>=0;d--){let h=r(e[f],t[d])+i[f+1][d+1],m=i[f][d+1];h<=m?(i[f][d]=h,a[f][d]=1):i[f][d]=m}let s=[],u=0,c=0;for(;u<n&&c<o;)a[u][c]&&(s.push(l?[t[c],e[u]]:[e[u],t[c]]),u++),c++;return s}function xe(e,t,r,l,n,o,i,a={}){let s=e.find(t,r,a);if(n.length===0){s.forEach(b=>e.remove(b)),D(a,"onRowsApplied",o.path,[]);return}let u=n.length>s.length,c=s[0]||null;if(u&&!c&&(c=rt(e,t,r,a),!c))throw new R(o.path);let f=s.map(b=>tt(e,b,l,a)),d=null;if(u&&c){d=e.clone(c),a.templateAttr&&e.removeAttr(d,a.templateAttr);let b=e.stripIds(d);b>0&&console.warn(`[hyper-html-api] stripped ${b} id attribute(s) from cloned template at "${o.path.join(".")||"(root)"}"`)}let h=Xe(n,f,l,Qe(e,s,n,o,a)),m=s.length>0?e.parent(s[0]):it(e,t,r,c,o,a),w=s.length>0?Ae(e,m,s[0]):0,v=ut(e,s),p=new Set,y=[],g=n.map((b,E)=>{let N=h[E];if(N>=0)return p.add(N),y.push(!1),s[N];y.push(!0);let T=e.clone(d);return e.stripIds(T),T});s.forEach((b,E)=>{p.has(E)||e.remove(b)}),v?st(e,m,w,g,y):ct(e,g,y,m,w),et(e,g,l,n,o,i,a),D(a,"onRowsApplied",o.path,g)}function D(e,t,r,l){if(typeof e[t]=="function")try{return e[t](r.slice(),l)}catch(n){console.warn(`[hyper-html-api] ${t} threw at "${r.join(".")||"(root)"}"`,n);return}}function Qe(e,t,r,l,n){let o=D(n,"identifyRows",l.path,r);if(!Array.isArray(o))return null;let i=new Array(r.length).fill(-1),a=new Set,s=new Map(t.map((u,c)=>[e.identity(u),c]));for(let u=0;u<r.length;u++){if(!o[u])continue;let c=s.get(e.identity(o[u]));c===void 0||a.has(c)||(i[u]=c,a.add(c))}return i}function et(e,t,r,l,n,o,i){t.forEach((a,s)=>{if(r===null){let u=l[s],c=u==null?"":String(u);e.text(a)!==c&&e.text(a,c)}else{let u=o(e,a,r,l[s],{depth:n.depth+1,path:[...n.path,s]},i);u&&u!==a&&(t[s]=u)}})}function tt(e,t,r,l){return r===null?e.text(t):we(e,t,r,l.onRowsRead?{...l,onRowsRead:void 0}:l)}function Ae(e,t,r){let l=e.children(t);for(let n=0;n<l.length;n++)if(e.sameNode(l[n],r))return n;return-1}function rt(e,t,r,l){if(!l.templateAttr)return null;let n=/^\s*:scope\s*>\s*/.test(r),o=new RegExp(":not\\(\\["+l.templateAttr.replace(/[.*+?^${}()|[\]\\-]/g,"\\$&")+"\\]\\)","g"),i=r.replace(/^\s*:scope\s*>\s*/,"").replace(o,""),a=n?nt(i):0,s=pe(i),u=t;for(;u;){let c=e.find(u,i,{includeRulesTag:!1,templateAttr:null});for(let f of c)if(e.attr(f,l.templateAttr)!=null&&!(n&&!ot(e,t,f,a))&&!(s&&!e.matches(e.parent(f),s)))return f;u=e.parent(u)}return null}function nt(e){let t=0,r=null,l=1;for(let n=0;n<e.length;n++){let o=e[n];if(o==="\\")n++;else if(r)o===r&&(r=null);else if(o==='"'||o==="'")r=o;else if(o==="["||o==="(")t++;else if(o==="]"||o===")")t>0&&t--;else if(t===0&&o===">")l++;else{if(t===0&&(o==="+"||o==="~"))return null;if(t===0&&/\s/.test(o)){if(!lt(e,n))return null;for(;n+1<e.length&&/\s/.test(e[n+1]);)n++}}}return l}function lt(e,t){let r=t;for(;r<e.length&&/\s/.test(e[r]);)r++;let l=t>0?e[t-1]:"",n=r<e.length?e[r]:"";return Q(l)||Q(n)}function Q(e){return e===">"||e==="+"||e==="~"}function ot(e,t,r,l){if(l===null)return!0;let n=r;for(let s=0;s<l;s++)if(n=e.parent(n),!n)return!1;let o=e.prop(t,"tagName");if(!o)return!0;let i=e.prop(n,"tagName");if(!i||String(i).toLowerCase()!==String(o).toLowerCase())return!1;let a=new Set(ee(e,n));return ee(e,t).every(s=>a.has(s))}function ee(e,t){let r=e.attr(t,"class");return r?String(r).split(/\s+/).filter(Boolean):[]}function it(e,t,r,l,n,o){let i=e.parent(l);if(i&&at(e,t,i)&&!re(e,i,o))return i;let a=pe(r);if(!a)throw new R(n.path,`the list selector "${r}" names no container to hold the new rows \u2014 write it as "container > row" (for example "ol.comments > li") so the cloned row lands in the list`);let s=(a===":scope"?e.prop(t,"tagName")?[t]:[]:e.find(t,a,o)).filter(u=>!re(e,u,o));if(s.length===0)throw new R(n.path,`no container matching "${a}" inside this context to hold the new rows`);if(s.length>1)throw new R(n.path,`"${a}" matches ${s.length} containers inside this context, so the new rows have no single destination`);return s[0]}function at(e,t,r){let l=r;for(;l;){if(e.sameNode(l,t))return!0;l=e.parent(l)}return e.parent(t)?!1:e.find(t,"*",{includeRulesTag:!0,templateAttr:null}).some(n=>e.sameNode(n,r))}var te=["no-data","editor-ui"];function re(e,t,r){let l=t;for(;l;){if(r.templateAttr&&e.attr(l,r.templateAttr)!=null||te.some(o=>e.attr(l,o)!=null))return!0;let n=e.attr(l,"clay");if(n&&n.split(/\s+/).some(o=>te.includes(o)))return!0;l=e.parent(l)}return!1}function st(e,t,r,l,n){let o=e.children(t),i=o.map(s=>e.identity(s)),a=!1;l.forEach((s,u)=>{let c=e.identity(s),f=r+u;if(i[f]===c)return;if(!n[u]){let h=i.indexOf(c);h!==-1&&(i.splice(h,1),o.splice(h,1))}let d=Math.min(f,o.length);d<o.length?e.insertBefore(o[d],s):o.length?a?e.insertAfter(o[o.length-1],s):(e.insertAt(t,s,f),a=!0):e.insertAt(t,s,0),i.splice(d,0,c),o.splice(d,0,s)})}function ut(e,t){if(t.length<=1)return!0;let r=e.parent(t[0]);if(!r)return!1;let l=new Map(e.children(r).map((o,i)=>[e.identity(o),i])),n=[];for(let o of t){let i=l.get(e.identity(o));if(i===void 0)return!1;n.push(i)}return n.sort((o,i)=>o-i),n[n.length-1]-n[0]===n.length-1}function ct(e,t,r,l,n){let o=null,i=n;for(let a=0;a<t.length;a++){if(!r[a]){o=t[a];continue}let s=o?e.parent(o):l;if(!s)continue;let u=o?Ae(e,s,o)+1:i++;e.insertAt(s,t[a],u),o=t[a]}}function ft(e,t,r,l,n={}){if(Object.prototype.hasOwnProperty.call(n,"exclude")&&e.semanticExclude===!1)throw new Error("This adapter does not support semantic exclude queries; omit exclude or use the DOM adapter.");let o=[];if(B(r,l,[],o),o.length)throw new ce(o);j(e,t,r,l,{depth:0,path:[]},n)}function j(e,t,r,l,n,o={}){if(n.depth>C)throw new V(n.path);if(l===void 0)return t;if(typeof r=="string")return dt(e,t,r,l,n,o);if(Array.isArray(r)){let[i,a]=r;return xe(e,t,i,a,l,n,j,o),t}if(typeof r=="object"&&r!==null){for(let[i,a]of Object.entries(r)){let s=j(e,t,a,l==null?l:l[i],{depth:n.depth+1,path:[...n.path,i]},o);s&&s!==t&&(t=s)}return t}return t}function dt(e,t,r,l,n,o){if(r.endsWith("[]")){let s=r.slice(0,-2);return xe(e,t,s,null,l,n,j,o),t}if(r.startsWith("@"))return le(e,t,r.slice(1),l);let i=de(r);if(i!==-1){let s=r.slice(0,i),u=r.slice(i+1),c=s?e.find(t,s,o):[t];return c.length===0||le(e,c[0],u,l),t}if(r===".")return ne(e,t,l),t;let a=e.find(t,r,o);return a.length===0||ne(e,a[0],l),t}function ne(e,t,r){let l=r==null?"":String(r);e.text(t)!==l&&e.text(t,l)}function pt(e,t,r,l){if(e.styleVar){e.styleVar(t,r,l);return}Ge(e,t,r,l)}function le(e,t,r,l){if(he(r))return pt(e,t,r,l==null?"":String(l).trim()),t;if(Ie.has(r)){let n=e.prop(t,r);if(n===l||n!=null&&l!=null&&String(n)===String(l))return t;throw new fe(r)}if(r==="outerHTML"){let n=l==null?"":String(l);return e.replaceWith(t,n)}if(Ue.has(r)){let n=Pe(r,l);return e.prop(t,r)!==n&&e.prop(t,r,n),t}if(l==null)e.attr(t,r)!=null&&e.removeAttr(t,r);else{let n=String(l);e.attr(t,r)!==n&&e.attr(t,r,n)}return t}function B(e,t,r,l){if(t!==void 0){if(typeof e=="string"){if(e.endsWith("[]")){Array.isArray(t)?t.forEach((n,o)=>{typeof n=="object"&&n!==null&&l.push({path:S([...r,o]),expected:"scalar",got:k(n)})}):l.push({path:S(r),expected:"array",got:k(t)});return}t!==null&&typeof t=="object"&&l.push({path:S(r),expected:"scalar",got:k(t)});return}if(Array.isArray(e)){if(!Array.isArray(t)){l.push({path:S(r),expected:"array",got:k(t)});return}let n=e[1];t.forEach((o,i)=>B(n,o,[...r,i],l));return}if(typeof e=="object"&&e!==null){if(t===null||Array.isArray(t)||typeof t!="object"){l.push({path:S(r),expected:"object",got:k(t)});return}for(let[n,o]of Object.entries(e))B(o,t[n],[...r,n],l)}}}function k(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function S(e){return e.join(".")}function ht(e){try{return JSON.parse(e)}catch{}let t={BRACE_OPEN:"{",BRACE_CLOSE:"}",BRACKET_OPEN:"[",BRACKET_CLOSE:"]",COLON:":",COMMA:",",STRING:"STRING",SELECTOR:"SELECTOR",IDENTIFIER:"IDENTIFIER",NUMBER:"NUMBER",BOOLEAN:"BOOLEAN"};function r(n){let o=[],i=0;for(;i<n.length;){let a=n[i];if(/\s/.test(a)){i++;continue}if("{}".includes(a)){o.push({type:a,value:a}),i++;continue}if(a==="["){let f=!1,d=i+1;for(;d<n.length&&/\s/.test(n[d]);)d++;if(d<n.length&&/[a-zA-Z_]/.test(n[d])&&(f=!0),!f){o.push({type:a,value:a}),i++;continue}}if(a==="]"){o.push({type:a,value:a}),i++;continue}if(a===":"){o.push({type:t.COLON,value:a}),i++;continue}if(a===","){o.push({type:t.COMMA,value:a}),i++;continue}if(a==='"'||a==="'"){let f=a,d=i+1;for(;d<n.length&&n[d]!==f;)n[d]==="\\"&&d++,d++;o.push({type:t.STRING,value:n.substring(i+1,d),quoted:!0,sourceQuote:f}),i=d+1;continue}let s=i,u;for(;s<n.length&&!/[{},]/.test(n[s]);)if(n[s]===":"){let f=[":first",":last",":nth-child",":nth-of-type",":first-child",":last-child",":first-of-type",":last-of-type",":only-child",":only-of-type",":hover",":focus",":active",":visited",":disabled",":enabled",":checked",":empty",":root",":target",":not",":before",":after",":nth-last-child",":nth-last-of-type"],d=!1;for(let h of f){let m=h.substring(1);if(n.substring(s+1,s+1+m.length)===m){d=!0,s+=m.length;break}}if(!d)break}else if(n[s]==="["){for(s++;s<n.length&&n[s]!=="]";){if(n[s]==='"'||n[s]==="'"){let f=n[s];for(s++;s<n.length&&n[s]!==f;)n[s]==="\\"&&s++,s++}s++}s<n.length&&n[s]==="]"&&s++}else s++;u=n.substring(i,s);let c=t.IDENTIFIER;/^-?\d+(\.\d+)?$/.test(u)?c=t.NUMBER:u==="true"||u==="false"||u==="null"?c=t.BOOLEAN:/^[.#@\[]|[.#@\[]| /.test(u)&&(c=t.SELECTOR),o.push({type:c,value:u,quoted:!1}),i=s}return o}function l(n){let o="";for(let i=0;i<n.length;i++){let a=n[i];if("{}".includes(a.type)||"[]".includes(a.type)){o+=a.value;continue}if(a.type===t.COLON){o+=a.value;continue}if(a.type===t.COMMA){let s=n[i+1];if(s&&(s.type==="}"||s.type==="]"))continue;o+=a.value;continue}if(a.type===t.STRING&&a.quoted){let s=a.value;a.sourceQuote==="'"&&(s=s.replace(/\\'/g,"'"),s=s.replace(/(\\*)"/g,(u,c)=>c.length%2===0?c+'\\"':u)),o+=`"${s}"`;continue}if(a.type===t.NUMBER||a.type===t.BOOLEAN){o+=a.value;continue}if(a.type===t.SELECTOR||a.type===t.IDENTIFIER){o+=`"${a.value}"`;continue}o+=`"${a.value}"`}return o}try{let n=r(e),o=l(n);return JSON.parse(o)}catch(n){throw new se("Invalid extraction rules syntax: "+n.message,n)}}var mt="1";var or=Object.freeze({data:Object.freeze({tokens:["no-data"],bundles:["editor-ui"]}),save:Object.freeze({tokens:["no-save"],bundles:["editor-ui"]}),snapshot:Object.freeze({tokens:["no-snapshot"],bundles:["editor-ui"]}),watch:Object.freeze({tokens:["no-watch"],bundles:["editor-ui"]}),undo:Object.freeze({tokens:["no-undo"],bundles:["editor-ui"]}),history:Object.freeze({tokens:[],bundles:["editor-ui"]})}),ir=Object.freeze({"editor-ui":Object.freeze(["no-data","no-save","no-snapshot","no-watch","no-undo"])}),yt=Object.freeze(["no-save","no-snapshot","no-trigger-autosave","no-dirty","no-watch","no-undo","no-data","freeze","editor-ui","live"]);var ar=Object.freeze({refusedRuleForms:["innerHTML","outerHTML"],refusedTargets:["script","style","template","noscript","iframe","object","embed","xmp","plaintext","noembed","noframes","meta","link","base","animate","set","animatemotion","animatetransform"],refusedAttributes:["style","srcdoc","is","http-equiv","sandbox","allow","nonce","integrity","charset","htmlclaytoken","htmlclayid","data-rules-name","data-rules-version","clay","contenteditable",...yt],refusedAttributePrefixes:["on"],urlAttributes:["href","src","srcset","action","formaction","poster","cite","data","ping","background","longdesc","usemap","xlink:href","manifest","codebase","icon"],refusedSchemes:["javascript","vbscript","data"],customPropertyValues:Object.freeze({maxLength:200,refusedCharacters:[";","{","}","<",">","\\"],refusedFunctions:["url","src","image","image-set","-webkit-image-set","cross-fade","element","expression","paint"]})});function gt(e){return e&&e.nodeType===1&&e.tagName==="SCRIPT"&&e.hasAttribute&&e.hasAttribute("data-rules-name")}function wt(e){return e?(e.nodeType===9||e.nodeType,e):null}function oe(e,t,r){!e||e.nodeType!==1||(t==="value"&&e.tagName==="INPUT"?e.value=r===null?"":r:t==="checked"&&e.tagName==="INPUT"?e.checked=r!==null:t==="selected"&&e.tagName==="OPTION"&&(e.selected=r!==null))}function vt(e,t){e&&e.tagName==="TEXTAREA"&&(e.value=t)}function bt(e){if(!e||e.nodeType!==1)return;let t=[e,...e.querySelectorAll?e.querySelectorAll("textarea, input, option"):[]];for(let r of t)if(r.tagName==="TEXTAREA")r.value=r.defaultValue;else if(r.tagName==="INPUT"){let l=r.type;l!=="file"&&l!=="checkbox"&&l!=="radio"&&(r.value=r.defaultValue),r.checked=r.defaultChecked}else r.tagName==="OPTION"&&(r.selected=r.defaultSelected)}var xt={semanticExclude:!0,find(e,t,r={}){let l=wt(e);if(!l||!l.querySelectorAll)return[];let n=Array.from(l.querySelectorAll(t));r.includeRulesTag||(n=n.filter(a=>!gt(a)));let o=[];r.skip&&o.push(r.skip);let i=r.templateAttr===null?null:r.templateAttr||"cms-template";if(i&&o.push("["+i+"]"),o.length){let a=o.join(", ");n=n.filter(s=>!s.closest||!s.closest(a))}return n},parent(e){return e?e.parentElement:null},children(e){return e?Array.from(e.children):[]},matches(e,t){return!!(e&&e.matches)&&e.matches(t)},text(e,t){if(t===void 0)return(e.textContent||"").trim();e.textContent=t,vt(e,t)},attr(e,t,r){if(r===void 0)return e.hasAttribute&&e.hasAttribute(t)?e.getAttribute(t):null;e.setAttribute(t,r),oe(e,t,r)},removeAttr(e,t){e&&e.removeAttribute&&e.removeAttribute(t),oe(e,t,null)},prop(e,t,r){if(r===void 0){let l=e?e[t]:void 0;return l!==void 0?l:null}e[t]=r},clone(e){let t=e.cloneNode(!0);return bt(t),t},insertAt(e,t,r){let l=e.children[r]||null;e.insertBefore(t,l)},insertBefore(e,t){e.parentNode.insertBefore(t,e)},insertAfter(e,t){e.parentNode.insertBefore(t,e.nextSibling)},identity(e){return e||null},remove(e){e&&e.parentNode&&e.parentNode.removeChild(e)},replaceWith(e,t){if(!e||!e.parentNode)throw new Error("dom.replaceWith: node has no parent");let r=e.ownerDocument.createElement("template");r.innerHTML=t;let l=r.content.firstElementChild;if(!l)throw new Error("dom.replaceWith: html did not parse to an element");return e.parentNode.replaceChild(l,e),l},stripIds(e){let t=0;return e.id&&(e.removeAttribute("id"),t++),(e.querySelectorAll?e.querySelectorAll("[id]"):[]).forEach(r=>{r.removeAttribute("id"),t++}),t},sameNode(e,t){return e===t}};var L=xt;var At="hha:upgrade-check:";function x(e,t){let r=e.querySelector(`meta[name="${t}"]`),l=r?r.getAttribute("content"):null;return l&&l.trim()?l.trim():null}function ie(e){if(typeof e!="string")return null;let t=e.trim().replace(/^v/,"");return/^\d+(\.\d+)*$/.test(t)?t.split(".").map(Number):null}function Tt(e,t){let r=ie(e),l=ie(t);if(!r||!l)return!1;let n=Math.max(r.length,l.length);for(let o=0;o<n;o++){let i=r[o]||0,a=l[o]||0;if(i!==a)return i>a}return!1}function Ot(e){try{let t=globalThis.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function Et(e,t){try{globalThis.localStorage.setItem(e,JSON.stringify(t))}catch{}}async function Nt({force:e=!1,doc:t,loc:r,fetchFn:l,now:n,ttlMs:o=864e5}={}){if(t=t||(typeof document<"u"?document:null),r=r||(typeof location<"u"?location:null),l=l||(d=>fetch(d)),n=n??Date.now(),!t)return null;let i=x(t,"hyper-source");if(!i)return null;let a=x(t,"hyper-version"),s;try{s=new URL(i,r?r.href:void 0)}catch{return null}if(r&&s.origin===r.origin&&s.pathname===r.pathname)return null;let u=`${At}${s.href}:${a||"none"}`,c,f=e?null:Ot(u);if(f&&typeof f.checkedAt=="number"&&n-f.checkedAt<o)c=f.sourceVersion;else{try{let d=await l(s.href);if(!d.ok)throw new Error(`HTTP ${d.status}`);let h=await d.text(),m=new DOMParser().parseFromString(h,"text/html");c=x(m,"hyper-version")}catch{c=null}Et(u,{checkedAt:n,sourceVersion:c})}return c?{available:Tt(c,a||"0.0.0"),currentVersion:a,sourceVersion:c,sourceUrl:s.href}:null}var kt="script[data-rules-name]";function St(e){return typeof e=="string"?e.trim().replace(/\s+/g," "):""}function Te(e,t){let r=e.find(t,kt,{includeRulesTag:!0}),l=new Set,n=[];for(let o of r){let i=St(e.attr(o,"data-rules-name"));if(!i)continue;if(l.has(i)){console.warn(`hyper-html-api: duplicate rules tag name "${i}"; using the first.`);continue}let a=e.attr(o,"data-rules-version");if(a!==mt)throw new ue(a);l.add(i),n.push({name:i,rules:ht(e.text(o))})}return n}function Oe(e,t){let r={};for(let{name:l,rules:n}of Te(e,t))r[l]=we(e,t,n);return r}function Rt(e){let t=e||document,r=t.nodeType===9?t:t.ownerDocument||t;return{dataByName:Oe(L,t),version:x(r,"hyper-version")}}var ae=class extends Error{constructor(e,t){super(`could not fetch upgrade source: ${e}`),this.name="UpgradeSourceUnreachable",this.sourceUrl=e,this.cause=t}},$t=class extends Error{constructor(e){super(`upgrade source has no rules tags; refusing to drop all existing data: ${e}`),this.name="UpgradeSourceHasNoRules",this.sourceUrl=e}},q=class extends Error{constructor(e,t){super(e),this.name="UpgradeTransformInvalid",this.cause=t}},Lt=class extends Error{constructor(e){super(`found ${e} script[type="text/hyper-upgrade"] tags; only one is allowed per document.`),this.name="UpgradeMultipleTransforms",this.count=e}},jt="text/hyper-upgrade";function Ct(e,t){let r=e.find(t,`script[type="${jt}"]`);if(r.length===0)return null;if(r.length>1)throw new Lt(r.length);return e.text(r[0])||null}var Mt=new Function("url","return import(url)");async function Ut(e){let t=new Blob([e],{type:"text/javascript"}),r=URL.createObjectURL(t),l;try{l=await Mt(r)}catch(n){throw new q(`transform failed to load: ${n&&n.message?n.message:n}`,n)}finally{URL.revokeObjectURL(r)}if(typeof l.default!="function")throw new q("transform must `export default` a function");return l.default}function Ee(e,t){let r={carriedOver:0,discarded:0,listItems:0},l=H(t,e,r);return W(t,e,r),{data:l,summary:r}}function H(e,t,r){if(typeof e=="string")return e.endsWith("[]")?Array.isArray(t)?(r.listItems+=t.length,r.carriedOver+=t.length,t):void 0:t==null||typeof t=="object"?void 0:(r.carriedOver++,t);if(Array.isArray(e)){let[,l]=e;return Array.isArray(t)?(r.listItems+=t.length,t.map(n=>H(l,n,r))):void 0}if(typeof e=="object"&&e!==null){let l={};for(let[n,o]of Object.entries(e)){let i=H(o,t?.[n],r);i!==void 0&&(l[n]=i)}return l}}function W(e,t,r){if(t!=null){if(typeof e=="object"&&e!==null&&!Array.isArray(e)){if(typeof t!="object"||Array.isArray(t))return;let l=new Set(Object.keys(e));for(let n of Object.keys(t))l.has(n)?W(e[n],t[n],r):r.discarded+=$(t[n]);return}if(Array.isArray(e)&&Array.isArray(t)){let l=e[1];t.forEach(n=>W(l,n,r));return}typeof e=="string"&&!e.endsWith("[]")&&typeof t=="object"&&t!==null&&(r.discarded+=$(t))}}function $(e){return e==null?0:Array.isArray(e)?e.reduce((t,r)=>t+$(r),0):typeof e=="object"?Object.values(e).reduce((t,r)=>t+$(r),0):1}function It(e,t,r){let l=Te(e,t),n={carriedOver:0,discarded:0,listItems:0},o={},i=new Set;for(let{name:a,rules:s}of l){if(i.add(a),!Object.prototype.hasOwnProperty.call(r,a)){o[a]={carriedOver:0,discarded:0,listItems:0};continue}let{data:u,summary:c}=Ee(r[a],s);ft(e,t,s,u),o[a]=c,n.carriedOver+=c.carriedOver,n.discarded+=c.discarded,n.listItems+=c.listItems}for(let a of Object.keys(r))i.has(a)||(n.discarded+=$(r[a]));return{totals:n,byName:o,rulesTagCount:l.length}}async function Pt({sourceUrl:e,dataByName:t,fromVersion:r,doc:l,loc:n,fetchFn:o}={}){if(l=l||(typeof document<"u"?document:null),n=n||(typeof location<"u"?location:null),o=o||(p=>fetch(p)),!l)throw new Error("upgrade.run requires a document context");if(e=e||x(l,"hyper-source"),!e)throw new Error("upgrade.run: no sourceUrl given and no hyper-source meta tag found");let i=new URL(e,n?n.href:void 0);r=r!==void 0?r:x(l,"hyper-version"),t=t||Oe(L,l);let a;try{a=await o(i.href)}catch(p){throw new ae(i.href,p)}if(!a.ok)throw new ae(i.href,new Error(`HTTP ${a.status}`));let s=await a.text(),u=new DOMParser().parseFromString(s,"text/html"),c=x(u,"hyper-version"),f=t,d=!1,h=Ct(L,u);if(h){let p=await(await Ut(h))(f,{fromVersion:r,toVersion:c});if(!p||typeof p!="object"||Array.isArray(p))throw new q("transform must return a plain object map of { rulesName: data }");f=p,d=!0}let{totals:m,byName:w,rulesTagCount:v}=It(L,u,f);if(v===0&&Object.keys(f).length>0)throw new $t(i.href);return{html:Bt(u),fromVersion:r,toVersion:c,summary:{transformApplied:d,totals:m,byName:w}}}function Dt(e){for(let t of e.querySelectorAll("input")){let r=(t.getAttribute("type")||"").toLowerCase();r!=="file"&&(r==="checkbox"||r==="radio"?t.checked!==t.hasAttribute("checked")&&t.toggleAttribute("checked",t.checked):t.value!==(t.getAttribute("value")??"")&&t.setAttribute("value",t.value))}for(let t of e.querySelectorAll("textarea"))t.value!==t.textContent&&(t.textContent=t.value);for(let t of e.querySelectorAll("select")){let r=[...t.options];if(!t.multiple){let l=r.findIndex(n=>n.hasAttribute("selected"));if(t.selectedIndex===l||l===-1&&t.selectedIndex<=0)continue}for(let l of r)l.selected!==l.hasAttribute("selected")&&l.toggleAttribute("selected",l.selected)}}function Bt(e){return Dt(e),`<!DOCTYPE ${e.doctype&&e.doctype.name?e.doctype.name:"html"}>
2
+ `+e.documentElement.outerHTML}var M={checkForUpdate:Nt,run:Pt,extractAll:Rt,shapeMatch:Ee};var A="The new version could not be downloaded. Nothing was changed.",U="The upgrade could not be saved. Nothing was changed.",Se="This document changed somewhere else. Reload and try again.",qt="Something else is changing this document. Nothing was changed.",Ht="This document does not say which parts are its data, so it cannot be upgraded safely. Nothing was changed.",Wt="The new version has no place for this page's content. Nothing was changed.";async function Vt(e){let t=globalThis.crypto&&globalThis.crypto.subtle;if(!t)return null;let r=await t.digest("SHA-256",e);return[...new Uint8Array(r)].map(l=>l.toString(16).padStart(2,"0")).join("")}async function Ne(e,t){try{let r=await e(t,{credentials:"omit"});return!r||!r.ok?null:r}catch{return null}}function Ft(e,t,r){if(e&&typeof e.latestUrl=="string"&&e.latestUrl)return e.latestUrl;let l=x(t,"hyper-source");if(!l)return null;try{let n=new URL(l,r?r.href:void 0);return n.pathname=n.pathname.replace(/\.html$/,".json"),n.href}catch{return null}}function zt(e){let t=x(e,"clay-template");if(!t)return null;let[r,l]=t.split(/\s+/);return r&&l?{id:r,variant:l}:null}function I(e,t="",r=[]){if(Array.isArray(e)){for(let l of e)I(l,`${t}[]`,r);return r}if(e&&typeof e=="object"){for(let[l,n]of Object.entries(e))I(n,t?`${t}.${l}`:l,r);return r}return e!=null&&r.push({path:t,value:e}),r}function _t(e,t){let r=[e];for(let l of String(t).split(".")){let n=l.endsWith("[]"),o=n?l.slice(0,-2):l,i=[];for(let a of r){let s=o?a?.[o]:a;n?Array.isArray(s)&&i.push(...s):i.push(s)}r=i}return r}function Jt(e,t,r={}){let l=new Map;for(let{path:o,value:i}of I(t)){let a=`${o}\0${String(i)}`;l.set(a,(l.get(a)||0)+1)}let n=[];for(let{path:o,value:i}of I(e)){let a=`${o}\0${String(i)}`;if(l.get(a)>0){l.set(a,l.get(a)-1);continue}let s=r[o];typeof s=="string"&&_t(t,s).some(u=>u===i)||n.push({path:o,value:i})}return n}async function Gt(e){let t=new Blob([e],{type:"text/javascript"}),r=URL.createObjectURL(t);try{return await new Function("url","return import(url)")(r)}finally{URL.revokeObjectURL(r)}}async function Yt(e){let r=new DOMParser().parseFromString(e,"text/html").querySelector('script[type="text/hyper-upgrade"]');if(!r)return{};let l=await Gt(r.textContent||"");return l&&l.renames&&typeof l.renames=="object"?l.renames:{}}var ke='script[clay~="live"][merge]';function Xt(e,t,r){let l=t.querySelector("article[data-page]");if(!l)return null;l.replaceWith(t.importNode(r,!0));for(let o of e.querySelectorAll(ke)){let i=o.getAttribute("merge");if(i!=="page"&&!i.startsWith("page."))continue;let a=t.importNode(o,!0),s=[...t.querySelectorAll(ke)].find(u=>u.getAttribute("merge")===i);s?s.replaceWith(a):t.querySelector("article[data-page]").after(a)}return(t.doctype?`<!DOCTYPE ${t.doctype.name}>
3
+ `:"")+t.documentElement.outerHTML}async function Re(e,{doc:t=document,loc:r=location,fetchFn:l=(n,o)=>fetch(n,o)}={}){if((typeof window<"u"&&window.clay||{}).isDraftMode)return{ok:!1,code:"draft"};if(!e||typeof e.version!="string")return{ok:!1,code:"unavailable",message:A};let o=Ft(e,t,r);if(!o)return{ok:!1,code:"unavailable",message:A};let i=await Ne(l,o);if(!i)return{ok:!1,code:"unavailable",message:A};let a;try{a=await i.json()}catch{return{ok:!1,code:"unavailable",message:A}}if(!a||typeof a!="object")return{ok:!1,code:"unavailable",message:A};let s=zt(t);if(!s||a.id!==s.id||a.variant!==s.variant)return{ok:!1,code:"template",message:"This upgrade is for a different document."};let u=x(t,"hyper-version");if(!u||typeof a.version!="string"||!J(a.version,u))return{ok:!1,code:"not-newer",message:"There is no newer version to install."};if(typeof a.html!="string"||!a.html)return{ok:!1,code:"unavailable",message:A};let c;try{c=new URL(a.html,o).href}catch{return{ok:!1,code:"unavailable",message:A}}if(!/^https:\/\/hyperclay\.com\/templates\//.test(c))return{ok:!1,code:"source",message:"This upgrade is not from the template host."};let f=await Ne(l,c);if(!f)return{ok:!1,code:"unavailable",message:A};let d;try{d=await f.text()}catch{return{ok:!1,code:"unavailable",message:A}}let h=await Vt(new TextEncoder().encode(d));if(!h||h!==String(a.sha256||"").toLowerCase())return{ok:!1,code:"unavailable",message:A};let m,w;try{w=await Yt(d),m=await M.run({sourceUrl:c,doc:t,loc:r,fromVersion:u,fetchFn:async()=>({ok:!0,status:200,text:async()=>d})})}catch(T){return{ok:!1,code:"transform",message:T&&T.message?T.message:A}}let v=new DOMParser().parseFromString(m.html,"text/html"),p=M.extractAll(t).dataByName,y=t.querySelector("article[data-page]");if(!y&&!Object.keys(p||{}).length)return{ok:!1,code:"undeclared",message:Ht};let g=m.html;if(y){let T=Xt(t,v,y);if(!T)return{ok:!1,code:"lost",lost:[],discarded:0,message:Wt};g=T}let b=M.extractAll(v).dataByName,E=Jt(p,b,w),N=m.summary&&m.summary.totals&&m.summary.totals.discarded||0;return E.length||N>0?{ok:!1,code:"lost",lost:E,discarded:N,message:Kt(E,N)}:{ok:!0,html:g,version:m.toVersion||a.version}}function Kt(e,t){let r=e.slice(0,5).map(({path:n})=>n),l=e.length>r.length?` and ${e.length-r.length} more`:"";return r.length?`This upgrade would lose data: ${r.join(", ")}${l}. Nothing was changed.`:`This upgrade would lose ${t} value${t===1?"":"s"}. Nothing was changed.`}function Zt(e){let t=e&&e.state;if(t==="conflict")return{ok:!1,code:"conflict",message:Se};let r=e&&e.message?e.message:"The document could not be saved.";return{ok:!1,code:"flush",state:t||"failed",message:r}}async function $e(e,{doc:t=document,loc:r=location,fetchFn:l=(s,u)=>fetch(s,u),clay:n=typeof window<"u"?window.clay:null,reload:o=()=>window.location.reload(),replace:i=null,etag:a}={}){if((n||{}).isDraftMode)return{ok:!1,code:"draft"};let u=z("upgrade");if(!u)return{ok:!1,code:"busy",message:qt};try{return await Qt(e,{doc:t,loc:r,fetchFn:l,clay:n,reload:o,replace:i,etag:a})}finally{_(u)}}async function Qt(e,{doc:t,loc:r,fetchFn:l,clay:n,reload:o,replace:i,etag:a}){let s=n||{};if(s.isEditMode&&s.save&&typeof s.save.flush=="function"){let h;try{h=await s.save.flush()}catch(m){return Zt(m)}if(h&&typeof h.state=="string"&&h.state!=="saved"&&h.state!=="clean"&&h.state!=="view")return{ok:!1,code:"flush",state:h.state,message:"This document has changes that could not be saved. Nothing was changed."}}let u=t;if(s.isEditMode&&typeof s.getHTML=="function")try{u=new DOMParser().parseFromString(await s.getHTML(),"text/html")}catch{return{ok:!1,code:"failed",message:U}}let c=await Re(e,{doc:u,loc:r,fetchFn:l});if(!c.ok)return c;let f=typeof i=="function"?i:s.save&&typeof s.save.replace=="function"?s.save.replace:G,d;try{d=await f(c.html,{etag:a!==void 0?a:F()})}catch{return{ok:!1,code:"failed",message:U}}if(!d||!d.ok){let h=d&&d.code?d.code:"failed";return h==="conflict"?{ok:!1,code:h,message:Se}:h==="forbidden"?{ok:!1,code:h,message:"You are not allowed to save this document."}:h==="unsupported"?{ok:!1,code:h,message:"This host cannot save the upgrade."}:{ok:!1,code:h,message:U}}return o(),{ok:!0,html:c.html,version:c.version,etag:d.etag}}function O(e,t,r={}){let l=e.createElement(t);l.setAttribute("clay","editor-ui");for(let[n,o]of Object.entries(r))n==="style"?l.setAttribute("style",o):n==="text"?l.textContent=o:l.setAttribute(n,o);return l}function er(e){let r=(e&&e.pathname?e.pathname:"/").split("/").filter(Boolean).pop()||"page.html";try{r=decodeURIComponent(r)}catch{}return/\.html?$/i.test(r)?r:`${r}.html`}async function tr(e,{loc:t=location,fetchFn:r=(l,n)=>fetch(l,n)}={}){if(typeof e.getHTML=="function")return e.getHTML();let l=await r(t.href,{cache:"no-store",credentials:"same-origin"});if(!l.ok)throw new Error(`copy fetch ${l.status}`);return l.text()}async function rr({clay:e,doc:t=document,loc:r=location,fetchFn:l}={}){if(typeof URL>"u"||typeof URL.createObjectURL!="function")return!1;try{let n=await tr(e,{loc:r,fetchFn:l}),o=URL.createObjectURL(new Blob([n],{type:"text/html"})),i=t.createElement("a");return i.setAttribute("clay","editor-ui"),i.href=o,i.download=er(r),i.style.setProperty("display","none","important"),t.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(o),4e4),!0}catch{return!1}}async function nr(e){let t=e&&e.host;if(!t||!t.versions)return!1;try{return await t.versions===!0}catch{return!1}}async function lr(e,t={}){let r=t.doc||document,l=t.clay||(typeof window<"u"?window.clay:null)||{};if(l.isDraftMode||!e||typeof e.version!="string")return null;let n=await nr(l),o=O(r,"div",{role:"dialog","aria-modal":"true","data-clay-upgrade":"",style:"position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,17,21,.42);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;"}),i=O(r,"div",{style:"width:min(460px,100%);padding:20px;border-radius:14px;background:var(--clay-ui-bg,#fff);color:var(--clay-ui-fg,#1f2328);box-shadow:0 18px 48px -16px rgba(0,0,0,.55);font-size:14px;line-height:1.5;"}),a=O(r,"h2",{text:`Upgrade to version ${e.version}`,style:"margin:0 0 8px;font-size:16px;"}),s=O(r,"p",{text:`Your data moves into version ${e.version}. The page's layout and code are replaced; your current version stays in this document's history.`,style:"margin:0 0 16px;"}),u=O(r,"p",{role:"status",style:"margin:0 0 12px;min-height:1.5em;"}),c=O(r,"div",{style:"display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;"}),f="padding:7px 12px;border-radius:8px;border:1px solid rgba(23,28,36,.2);background:transparent;color:inherit;font:inherit;cursor:pointer;",d=O(r,"button",{type:"button",text:"Cancel",style:f}),h=n?null:O(r,"button",{type:"button",text:"Download a copy first",style:f}),m=O(r,"button",{type:"button",text:"Upgrade",style:`${f}border-color:transparent;background:#2f6fed;color:#fff;font-weight:600;`});n||(m.disabled=!0),h&&c.append(h),c.append(d,m),i.append(a,s,u,c),o.append(i),r.body.appendChild(o);let w=!1,v=()=>{w||(w=!0,o.remove())};h&&h.addEventListener("click",async()=>{await rr({clay:l,doc:r,loc:t.loc,fetchFn:t.fetchFn})?(m.disabled=!1,u.textContent="Your copy was downloaded."):u.textContent="The copy could not be downloaded. Nothing was changed."}),d.addEventListener("click",v);let p,y=new Promise(g=>{p=g});return m.addEventListener("click",async()=>{m.disabled=!0,h&&(h.disabled=!0),u.textContent=`Upgrading to version ${e.version}\u2026`;let g=await $e(e,t);if(g.ok){v(),p(g);return}u.textContent=g.message||U,m.disabled=!1,h&&(h.disabled=!1),p(g)}),{root:o,title:a,body:s,status:u,cancel:d,download:h,upgrade:m,close:v,done:y}}export{$e as apply,Re as prepare,lr as start};
@@ -0,0 +1 @@
1
+ import{b as T}from"./c-LKSL4AUJ.js";import{a as R}from"./c-I2SCCUEW.js";import{c as G,d as h,e as M,f as _,i as N}from"./c-EK63G3CG.js";import"./c-VHNSBD2M.js";var U="page-format-command",b="This document uses a newer page format; update the editor in the other tabs to keep writing",D=s=>({status:"upgrade-required",code:h,required:s,minimum:s,message:b});function J({host:s,capability:A=1,supported:O=()=>!0,installed:y=()=>null,revision:w=()=>null,lane:E=null}={}){if(!s||typeof s.activate!="function")throw new TypeError("format-gate: a host adapter is required");let t=0,f=null,l=!1,o=null,d=!1,g=Promise.resolve(!1),c=null,i=!1;function p(e){return t=Math.max(t,M(e)),N(t),t>=1&&P(),t}function P(){return d||i||(d=!0,l=!0,g=m(null)),g}async function F(){try{let e=await s.read();p(e?.floor??_(e?.html))}catch{}return t}async function S(){try{let e=await s.capabilities();return Array.isArray(e)?e:[]}catch{return[]}}async function k(){try{return await O()!==!1}catch{return!1}}async function q(){if(i)return{status:"disposed",retry:!1};if(!await k())return{status:"unsupported-host",code:"page-format-unsupported",extension:G};if(await F(),t>=1)return await P(),{status:"active",floor:t};let e=await S(),a=T({floor:t,required:1,capability:A,admitted:e});if(!a.ok)return D(a.minimum);let u={revision:w(),installed:y()},n;try{n=await s.activate({floor:1,capability:A,revision:u.revision,installed:u.installed})}catch(x){return{status:"failed",code:"page-format-activation-failed",error:x,retry:!0}}return!n||n.accepted!==!0?n?.code===h?D(1):{status:"failed",code:n?.code??"page-format-activation-failed",retry:!0}:i?(d=!0,p(1),{status:"disposed",retry:!1}):(d=!0,p(1),l=!0,o=n.receipt??null,await m(o),{status:"active",floor:t,receipt:o})}async function m(e){if(!E||!l)return!1;if(c)return c;let a=e??o;c=(async()=>{try{let u=await E.switchScope(1,{covered:!!a,receipt:a});if(u&&(u.status==="switched"||u.status==="already"))return l=!1,o=null,!0}catch{}return!1})();try{return await c}finally{c=null}}function v(){return i?Promise.resolve({status:"disposed",retry:!1}):t>=1?m(null).then(()=>({status:"active",floor:t})):(f||(f=q().finally(()=>{f=null})),f)}return{get floor(){return t},get disposed(){return i},note:p,read:F,activate:v,async run(e){let a={revision:w(),installed:y()},u=R({id:U,isPending:()=>!0});try{let n=await v();return n.status!=="active"?n:i?{status:"disposed",retry:!1}:w()!==a.revision||y()!==a.installed?{status:"retry",code:"format-gate-stale",retry:!0}:{status:"applied",floor:t,result:await e?.apply?.(a)}}finally{u.dispose()}},async retry(){return i?{status:"disposed",retry:!1}:await m(null)?{status:"active",floor:t}:v()},dispose(){return i=!0,l=!1,o=null,{status:"disposed"}}}}export{J as createFormatGate};
@@ -0,0 +1 @@
1
+ var f="X-Clay-Page-Format";var p="clay-page-format",u="page-format-v1",m="page-format-upgrade-required",o=e=>Number.isSafeInteger(e)&&e>0?e:0,s=e=>/<meta\b[^>]*\bname\s*=\s*["']?clay-page-format["']?[^>]*>/i.exec(e);function P(e){return typeof e=="number"?o(e):typeof e!="string"||!/^\s*\d+\s*$/.test(e)?0:o(Number(e))}function x(e){if(typeof e!="string")return 0;let n=s(e);if(!n)return 0;let t=/\bcontent\s*=\s*["']?(\d+)/i.exec(n[0]);return t?o(Number(t[1])):0}function _(e,n){let t=o(n);if(typeof e!="string"||!t)return e;let r=s(e);if(r&&x(r[0])===t)return e;let i=`<meta name="${p}" content="${t}">`;if(r)return e.slice(0,r.index)+i+e.slice(r.index+r[0].length);let c=/<\/head\s*>/i.exec(e)||/<body\b/i.exec(e);return c?e.slice(0,c.index)+i+e.slice(c.index):i+e}var a=0,R=()=>a;function T(e){return a=Math.max(a,o(e)),a}export{f as a,p as b,u as c,m as d,P as e,x as f,_ as g,R as h,T as i};
@@ -0,0 +1,13 @@
1
+ import{N as _,ea as A,ja as D,na as F,o as O,sa as T}from"./c-QIXT3Q7C.js";import{a as L,b as I}from"./c-MCOOHCSG.js";import"./c-VHNSBD2M.js";var P="\uFFFC",R='@{"type":"hard_break"}',q={b:"strong",i:"em",s:"strike",c:"code"},z=new Set(["paragraph","heading","list_item","toggle","quote","callout","code_block"]),B=new Set(["paragraph","heading","list_item","quote","callout","code_block","toggle","divider","toc","image","file","table","chart","board","tool","preserved"]),X=new Set(["\\","`","*","_","[","]","(",")","#","!",">","|","<","&"]),U=new Set(["-","+","=","~"]);function E(n){let s=String(n??""),i="",u="";for(let c of s){let a=X.has(c);!a&&u===""&&U.has(c)&&(a=!0),!a&&c==="."&&u!==""&&/^\d+$/.test(u)&&(a=!0),i+=a?`\\${c}`:c,u=c===`
2
+ `?"":u+c}return i}function W(n){let s=String(n),i=(s.match(/`+/g)??[]).reduce((a,f)=>Math.max(a,f.length),0),u="`".repeat(i+1),c=/^[`\s]|[`\s]$/.test(s)?" ":"";return`${u}${c}${s}${c}${u}`}function Y(n,s=""){let i=String(n??"").replace(/\r\n?/g,`
3
+ `).replace(/\n$/,""),u=(i.match(/`+/g)??[]).reduce((f,k)=>Math.max(f,k.length),0),c="`".repeat(Math.max(3,u+1)),a=String(s??"").trim().split(/\s+/)[0].replace(/`/g,"");return`${c}${a}
4
+ ${i}
5
+ ${c}`}var N=n=>/[\s()<>]/.test(n)?`<${n.trim().replace(/</g,"%3C").replace(/>/g,"%3E")}>`:n;function G(n){let s={},i=null,u=[];for(let c of O(n)){if(c.name===void 0){c.code==="a"?i=String(c.attrs?.[0]??""):q[c.code]?s[q[c.code]]=!0:u.push(c.code);continue}if(c.name==="mention"){u.push("mention");continue}c.name!=="date"&&u.push(c.name)}return{codes:s,href:i,dropped:u}}function S(n,s){let i=typeof n.c=="string"?n.c:"",u=D(n.m,i.length)??[],c="";for(let a=0;a<i.length;){let f=u[a]??"";if(i[a]===P&&f[0]==="@"){f===R?c+=`\\
6
+ `:s("inline object"),a++;continue}let k=a+1;for(;k<i.length&&(u[k]??"")===f&&!(i[k]===P&&f[0]==="@");)k++;let h=i.slice(a,k),{codes:$,href:g,dropped:C}=G(f);for(let t of C)s(t);let w;if($.code){w=W(h);for(let t of["strong","em","strike"])$[t]&&s(t)}else{let t=E(h),r=t.slice(0,t.length-t.trimStart().length),e=t.slice(t.trimEnd().length),o=t.slice(r.length,t.length-e.length);o&&($.em&&(o=`*${o}*`),$.strong&&(o=`**${o}**`),$.strike&&(o=`~~${o}~~`)),w=r+o+e}g&&(w=`[${w}](${N(g)})`),c+=w,a=k}return c}var J=(n,s=2)=>Math.min(6,Math.max(1,Number.isInteger(n)?n:s));function M(n,s){if(n.t==="toc")return A(n,s);if(n.t==="chart"){let i=T([n,...s.filter(c=>c.t==="table")]),u=i.indexOf(`
7
+ <table`);return u<0?i:i.slice(0,u)}return T([n])}var Q=n=>{let s=[];return n.pageIcon!=null&&n.pageIcon!==""&&s.push("Page icon"),(n.pageCoverSrc!=null||n.pageCoverAlt!=null||n.pageCoverX!=null||n.pageCoverY!=null)&&s.push("Page cover"),s};function V(n,s){let i=[],u=n.indexOf(s),c=new Map(n.map(a=>[a.id,a]));for(let a=u+1;a<n.length;a++){let f=n[a].parent??null,k=!1;for(let h=0;f&&h<64;h++){if(f===s.id){k=!0;break}f=c.get(f)?.parent??null}if(!k)break;i.push(n[a])}return i}function H(n){let s=F(n??{}),i=s.filter(r=>r&&typeof r.t=="string"),u=i.find(r=>r.t==="heading"&&(r.level??2)===1&&(r.parent??null)===null)??null,c=[],a=[],f=(r,e)=>c.push({block:r.id??null,type:r.t,name:e}),k=r=>{let e=new Set;return o=>{e.has(o)||(e.add(o),a.push({block:r.id??null,type:r.t,name:o}))}},h=[],$=!1,g=r=>{h.length&&h[h.length-1]!==""&&h.push(""),h.push(...String(r).split(`
8
+ `)),$=!1},C=r=>{!$&&h.length&&h[h.length-1]!==""&&h.push(""),h.push(r),$=!0},w=new Set;for(let r of s){if(!r||typeof r.t!="string"||w.has(r.id))continue;let e=r,o=k(e),d=e.t;if(d==="opaque_block"||!B.has(d)){o(`opaque record (${String(e.raw?.t??d)})`);let l=z.has(d)?S(e,o):typeof e.c=="string"?E(e.c):"";l.trim()&&g(l);continue}if(d==="paragraph"){g(S(e,o));continue}if(d==="heading"){let l=e.id===u?.id?Q(e):[];if(l.length){for(let p of l)f(e,p);g(M(e,s));continue}e.pageIcon!=null&&e.pageIcon!==""&&o("heading icon"),g(`${"#".repeat(J(e.level))} ${S(e,o)}`.trimEnd());continue}if(d==="toggle"){let l=e.level===1||e.level===2||e.level===3?e.level:null;if(l){o("toggle collapse"),g(`${"#".repeat(l)} ${S(e,o)}`);continue}f(e,"Toggle");let p=V(i,e);for(let x of p)w.add(x.id);g(T([e,...p]));continue}if(d==="list_item"){e.owner!=null&&o("owner"),e.due!=null&&o("due date");let l=Math.max(0,Math.min(8,Number.isInteger(e.indent)?e.indent:0)),p=e.kind==="ordered"?"1.":"-",x=e.kind==="check"?e.checked?" [x]":" [ ]":"";C(`${" ".repeat(l)}${p}${x} ${S(e,o)}`.trimEnd());continue}if(d==="quote"){let l=S(e,o).split(`
9
+ `).map(p=>p?`> ${p}`:">").join(`
10
+ `);g(l);continue}if(d==="code_block"){g(Y(e.c,e.lang));continue}if(d==="divider"){g("---");continue}if(d==="image"){let l=String(e.src??"");if(e.width!=null&&o("image width"),e.align!=null&&o("image alignment"),!l){o("image address");let m=String(e.alt??"");m&&g(E(m));continue}let p=E(e.alt??""),x=e.caption?` "${String(e.caption).replace(/"/g,'\\"')}"`:"";g(`![${p}](${N(l)}${x})`);continue}if(d==="file"){e.size!=null&&o("file size"),e.mime!=null&&o("file type");let l=String(e.src??""),p=E(e.name||"file");g(l?`[${p}](${N(l)})`:p);continue}if(d==="table"){let l=Array.isArray(e.cols)?e.cols:[],p=Array.isArray(e.rows)?e.rows:[];for(let b of l)b.kind!=null&&o("column kind"),b.width!=null&&o("column width");if(e.sort!=null&&o("sort"),!l.length){o("empty table");continue}let x=b=>(typeof b=="string"?E(b):b&&typeof b=="object"?S(b,o):"").replace(/\n/g," ").trim(),m=l.map(b=>E(b.name??"")).join(" | "),y=l.map(()=>"---").join(" | "),v=p.map(b=>`| ${l.map(j=>x(b.cells?.[j.id])).join(" | ")} |`);g([`| ${m} |`,`| ${y} |`,...v].join(`
11
+ `));continue}if(d==="toc"){f(e,"Table of contents"),g(A(e,s));continue}if(d==="chart"){f(e,"Chart"),g(M(e,s));continue}if(d==="board"){f(e,"Board"),g(M(e,s));continue}if(d==="tool"){f(e,"Tool"),g(M(e,s));continue}if(d==="preserved"){f(e,"Raw HTML"),g(M(e,s));continue}d==="callout"&&(f(e,"Callout"),g(M(e,s)))}let t=h.join(`
12
+ `).replace(/^\n+/,"").replace(/\n+$/,"");return{text:t?`${t}
13
+ `:"",extensions:c,losses:a,blocks:i.length}}function K(n="page"){return`${String(n??"").replace(/[\\/:*?"<>|\u0000-\u001f]+/g,"-").replace(/^[.\s]+/,"").replace(/[.\s]+$/,"")||"page"}.md`}function se({view:n=null,download:s=I}={}){if(!n)return{run:()=>Promise.resolve({ok:!1,code:"not-editing"}),dispose(){}};let i=n.dom.ownerDocument,u=null,c=!1;function a(){let t=u;if(!t)return!1;u=null;for(let[r,e,o,d]of t.listen)r.removeEventListener(e,o,d);return t.panel.remove(),!0}function f(){return a()?(n.focus?.(),{ok:!0,cancelled:!0}):{ok:!1,code:"cancelled"}}function k(t){let r=[],e=(p,x)=>{let m=i.createElement("div");return m.className=p,m.textContent=x,m};r.push(e("page-menu-title","Export as Markdown"));let o=[`${t.report.blocks} block${t.report.blocks===1?"":"s"}`];t.report.extensions.length&&o.push(`${t.report.extensions.length} kept as HTML`),t.report.losses.length&&o.push(`${t.report.losses.length} lost`),r.push(e("page-menu-title page-export-summary",o.join(" \xB7 ")));let d=(p,x,m)=>{if(!m.length)return;let y=i.createElement("div");y.className=p,y.append(e("page-menu-title",x));for(let v of m){let b=e("page-export-row",v.name);b.dataset.block=v.block??"",b.dataset.type=v.type??"",y.append(b)}r.push(y)};if(d("page-export-extensions","Kept as HTML",t.report.extensions),d("page-export-losses","Not kept in Markdown",t.report.losses),!t.report.extensions.length&&!t.report.losses.length&&r.push(e("page-export-row","Everything here is written as Markdown.")),t.notice){let p=i.createElement("p");p.className="page-export-error",p.setAttribute("role","alert"),p.textContent=t.notice,r.push(p)}let l=(p,x)=>{let m=i.createElement("button");return m.type="button",m.className="page-menu-item",m.dataset.export=p,m.textContent=x,m.addEventListener("mousedown",y=>y.preventDefault()),m.addEventListener("click",()=>p==="download"?h():f()),m};r.push(l("download",`Download ${t.name}`),l("cancel","Cancel")),t.panel.replaceChildren(...r)}function h(){let t=u;return t?s({html:t.report.text,name:t.name,type:"text/markdown"})?(a(),n.focus?.(),{ok:!0,downloaded:!0}):(t.notice="That download could not be made.",k(t),{ok:!1,code:"download-failed"}):{ok:!1,code:"no-export"}}function $(t){!u||t.isComposing||t.keyCode===229||(t.key==="Escape"?(t.preventDefault(),t.stopPropagation(),f()):t.key==="Enter"&&!t.target?.closest?.("[data-export]")&&(t.preventDefault(),t.stopPropagation(),h()))}function g(t,r){let e=i.createElement("div");e.className="page-menu page-export-preview",e.setAttribute("role","dialog"),e.setAttribute("aria-label","Export Markdown");let o={report:t,name:r,panel:e,notice:null,listen:[]};u=o;let d=(l,p,x,m)=>{l.addEventListener(p,x,m),o.listen.push([l,p,x,m])};return d(i,"keydown",l=>$(l),!0),d(i,"mousedown",l=>{o.panel.contains(l.target)||f()},!0),(n.dom.parentElement??i.body).appendChild(e),k(o),e.querySelector('[data-export="download"]')?.focus?.(),{ok:!0,preview:!0}}function C(){return n.composing?new Promise(t=>{let r=()=>{n.dom.removeEventListener("compositionend",r),t()};n.dom.addEventListener("compositionend",r)}):Promise.resolve()}async function w(){if(c||n.isDestroyed)return{ok:!1,code:"not-editing"};if(a(),await C(),c||n.isDestroyed)return{ok:!1,code:"not-editing"};let t=_(n.state.doc),r;try{r=H(t)}catch(e){return{ok:!1,code:"export-failed",error:e}}return g(r,K(L()))}return{async run(t){return w(t)},dispose(){c=!0,a()}}}export{se as createFeature};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f}from"./c-SPZPGD3R.js";import{g as a}from"./c-4TXNLX4K.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-MWXFLW4J.js";import"./c-ZK4GIZH2.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-AMU3BPPR.js";import"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-VHNSBD2M.js";export{e as ChartView,d as chartFromSlash,a as chartTables,b as insertChartAfterTable,f as refreshCharts,c as tableLabel};
@@ -0,0 +1,3 @@
1
+ import{b as Ae,g as nt,h as ot,i as Ue,j as de,k as ze,s as sn,u as rn,v as st,w as cn}from"./c-L5VFATT6.js";import{a as Wt,b as Xt,c as Ht,d as Qt,e as At,f as Zt}from"./c-7K4SCQB7.js";import{a as Lt,b as Pt,c as Gt,d as It,e as qt,f as xt,g as He,h as Je,i as Qe,j as Ze,o as Ve,s as Ke,u as et,v as re,w as St,x as ve,y as tt}from"./c-WMRJKQ2V.js";import{$ as tn,aa as nn,fa as Ct,ja as on,m as se,oa as Oe,y as en}from"./c-QIXT3Q7C.js";import{a as Fe,b as zt,c as oe,d as Xe}from"./c-57XDY6HC.js";var Le="page-origins",no="page-undo-overlap-repair",ln=(e,t)=>JSON.stringify(["span",e,t]),jt=(e,t)=>JSON.stringify(["alias",e,t]),an=(e,t)=>JSON.stringify(["boundary",e,t]),oo=["copy","removed","restore"],fn=/^(?:0|[1-9]\d*)$/,me=(e,t)=>`${e}.${t}`,q=e=>Number.isSafeInteger(e)&&e>=0,so=e=>Number.isSafeInteger(e)&&e>0,ro=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),rt=e=>new Error(`Conflicting immutable origin record: ${e}`),co=e=>{if(typeof e!="string")return!1;let t=e.indexOf(".");if(t<1||t===e.length-1)return!1;let n=e.slice(0,t),s=e.slice(t+1);return fn.test(n)&&fn.test(s)&&q(Number(n))&&q(Number(s))},Mt=e=>{if(!ro(e))return null;for(let t of Object.keys(e))if(t!=="blockId"&&t!=="kind"&&t!=="recoveryOf")return null;return typeof e.blockId!="string"||!e.blockId||!oo.includes(e.kind)||e.recoveryOf!==void 0&&!co(e.recoveryOf)?null:e.recoveryOf===void 0?{blockId:e.blockId,kind:e.kind}:{blockId:e.blockId,kind:e.kind,recoveryOf:e.recoveryOf}},io=(e,t)=>e.blockId===t.blockId&&e.kind===t.kind&&e.recoveryOf===t.recoveryOf,lo=e=>{let t;try{t=JSON.parse(e)}catch{return null}return!Array.isArray(t)||t.length!==3||t[0]!=="boundary"&&t[0]!=="alias"?null:q(t[1])&&q(t[2])?t:null},ao=e=>{if(typeof e!="string"||e.charCodeAt(0)!==91)return null;let t;try{t=JSON.parse(e)}catch{return null}return!Array.isArray(t)||t.length!==3||t[0]!=="span"&&t[0]!=="alias"&&t[0]!=="boundary"?null:q(t[1])&&q(t[2])?t:null};function Ne(e){let t=new Map,n=new Map,s=new Map,c=new Map,r=(y,k)=>{let b=0,A=y.length;for(;b<A;){let w=b+A>>1;y[w].clock<k?b=w+1:A=w}return b},l=(y,k)=>{let b=0,A=y.length;for(;b<A;){let w=b+A>>1;y[w]<k?b=w+1:A=w}return b},a=(y,k,b)=>{let A=s.get(y)??[],w=l(A,k),$=A[w]===k;b&&!$?A.splice(w,0,k):!b&&$&&A.splice(w,1),A.length?s.set(y,A):s.delete(y)},u=[],f=new Map,g=new Map,I=new Map,h=(y,k)=>{let b=f.get(y);if(b===void 0){let x=lo(y);b=x?{kind:x[0],client:x[1],clock:x[2],live:!1}:null,f.set(y,b),b&&u.push(b)}if(!b||b.live===k)return;b.live=k;let A=g.get(b.client)??g.set(b.client,new Map).get(b.client),w=I.get(b.client)??I.set(b.client,[]).get(b.client),$=(A.get(b.clock)??0)+(k?1:-1);$?A.set(b.clock,$):A.delete(b.clock);let B=l(w,b.clock);k&&$===1?w.splice(B,0,b.clock):!k&&$===0&&w.splice(B,1),w.length||(I.delete(b.client),g.delete(b.client))},S=(y,k)=>{h(y,k!==void 0);let b=ao(y);if(!b)return;let[A,w,$]=b;if(A==="alias"){let P=!!(k&&q(k.sourceClient)&&q(k.sourceClock));P?n.set(me(w,$),{client:k.sourceClient,clock:k.sourceClock}):n.delete(me(w,$)),a(w,$,P);return}if(A==="boundary"){let P=Mt(k);P?c.set(me(w,$),P):c.delete(me(w,$));return}let B=t.get(w)??[],x=r(B,$);B[x]?.clock===$&&B.splice(x,1),k&&so(k.length)&&q(k.sourceClient)&&q(k.sourceClock)&&B.splice(r(B,$),0,{client:w,clock:$,length:k.length,sourceClient:k.sourceClient,sourceClock:k.sourceClock}),B.length?t.set(w,B):t.delete(w)};for(let y of e._map.keys())S(y,e.get(y));let j=y=>{for(let k of y.keysChanged)S(k,e.get(k))};e.observe(j);let N=(y,k)=>{let b=s.get(y);return b!==void 0&&b[l(b,k)]===k},T=y=>{let k=N(y.client,y.clock)?n.get(me(y.client,y.clock)):void 0;if(k)return{client:k.client,clock:k.clock};let b=t.get(y.client);if(!b)return{client:y.client,clock:y.clock};let A=0,w=b.length-1,$=-1;for(;A<=w;){let P=A+w>>1;b[P].clock<=y.clock?($=P,A=P+1):w=P-1}if($<0)return{client:y.client,clock:y.clock};let B=b[$],x=y.clock-B.clock;return x>=B.length?{client:y.client,clock:y.clock}:{client:B.sourceClient,clock:B.sourceClock+x}},F=(y,k,b)=>{let A=[],w=(V,X,be)=>{let pe=A[A.length-1];pe&&pe.client===V&&pe.clock+pe.length===X?pe.length+=be:A.push({client:V,clock:X,length:be})},$=t.get(y)??[],B=s.get(y)??[],x=k+b,P=r($,k+1)-1,D=l(B,k),H=k;for(;H<x;){if(D<B.length&&B[D]===H){let V=n.get(me(y,H));w(V.client,V.clock,1),H+=1,D+=1}else{let V=x;D<B.length&&B[D]<V&&(V=B[D]),P+1<$.length&&$[P+1].clock<V&&(V=$[P+1].clock);let X=P>=0?$[P]:null;X&&H<X.clock+X.length?(V=Math.min(V,X.clock+X.length),w(X.sourceClient,X.sourceClock+H-X.clock,V-H)):w(y,H,V-H),H=V}for(;P+1<$.length&&$[P+1].clock<=H;)P+=1}return A},J=y=>{if(!y||!q(y.client)||!q(y.clock))return null;if(!N(y.client,y.clock)){let w=c.get(me(y.client,y.clock));return w?{...w}:null}let k=me(y.client,y.clock),b=new Set;for(;!b.has(k);){b.add(k);let w=n.get(k);if(!w)break;k=me(w.client,w.clock)}if(b.has(k)&&n.has(k))return null;let A=c.get(k);return A?{...A}:null},W=(y,k,b)=>{let A=ln(y,k),w=e.get(A);if(w!==void 0&&(w.length!==b.length||w.sourceClient!==b.sourceClient||w.sourceClock!==b.sourceClock))throw rt(A);let $=t.get(y)??[],B=r($,k);for(let x of[$[B-1],$[B]])if(x&&x.clock!==k&&x.clock<k+b.length&&k<x.clock+x.length)throw rt(A);w===void 0&&e.set(A,b)};return{origins:e,resolve:T,resolveRange:F,recordSpans:y=>{let k=[],b=()=>{if(!k.length)return;let A=k[0],w={length:k.length,sourceClient:A.source.client,sourceClock:A.source.clock};if(!q(w.sourceClock+w.length-1))throw new Error(`Unsafe origin span: ${ln(A.dest.client,A.dest.clock)}`);W(A.dest.client,A.dest.clock,w),k.length=0};for(let A of y){if(!A?.dest||!A?.source)throw new Error("Invalid origin destination");let w=A.dest,$=A.source;if(!q(w.client)||!q(w.clock)||!q($.client)||!q($.clock))throw new Error("Invalid origin destination");let B=T($),x=k[k.length-1];x&&x.dest.client===w.client&&x.dest.clock+1===w.clock&&x.source.client===B.client&&x.source.clock+1===B.clock?k.push({dest:w,source:B}):(b(),k.push({dest:w,source:B}))}b()},recordAlias:(y,k)=>{if(!y||!k||!q(y.client)||!q(y.clock)||!q(k.client)||!q(k.clock))throw new Error("Invalid origin destination");let b=T(k),A=jt(y.client,y.clock),w=e.get(A);if(w!==void 0&&(w.sourceClient!==b.client||w.sourceClock!==b.clock))throw rt(A);w===void 0&&e.set(A,{sourceClient:b.client,sourceClock:b.clock})},recordBoundary:(y,k)=>{if(!y||!q(y.client)||!q(y.clock))throw new Error("Invalid origin destination");let b=Mt(k);if(!b)throw new Error(`Invalid boundary record: ${an(y.client,y.clock)}`);let A=an(y.client,y.clock),w=e.get(A);if(w===void 0){e.set(A,b);return}let $=Mt(w);if(!$||!io($,b))throw rt(A)},boundaryOf:J,markers:()=>{for(let y of e.doc?._transactionCleanups??[])if(y.changed.has(e))return null;return{records:u,clocks:I}},get size(){return e.size},dispose(){e.unobserve(j)}}}function es(e,t,n){let s=[],c=0;for(let r=e._start;r&&c<n;r=r.right){if(r.deleted||!r.countable)continue;let l=c;if(c+=r.length,c<=t)continue;let a=Math.max(0,t-l),u=Math.min(r.length,n-l);for(let f=a;f<u;f++)s.push({client:r.id.client,clock:r.id.clock+f})}return s}var fo=(e,t,n)=>e.some(s=>s.actor===t||s.client!==n.client||n.clock<s.clock||n.clock>=s.clock+s.length?!1:s.sv.some(([c,r])=>c===n.client&&r>n.clock)),uo=(e,t)=>{let n=0;for(let s=e._start;s;s=s.right)if(!(s.deleted||!s.countable)){if(s.id.client===t.client&&s.id.clock<=t.clock&&t.clock<s.id.clock+s.length)return n+t.clock-s.id.clock;n+=s.length}return null},po=(e,t)=>{let n=[];for(let c of t){let r=uo(e.flow,c);r!==null&&n.push(r)}n.sort((c,r)=>c-r);let s=[];for(let c of n){let r=s[s.length-1];r&&c<=r[1]?r[1]=Math.max(r[1],c+1):s.push([c,c+1])}for(let c=s.length-1;c>=0;c--){let[r,l]=s[c];l>r&&e.flow.delete(r,l-r)}};function ts(e,t,n=Ne(e.origins),s=()=>[]){let c=r=>{if(r.origin!==t||!t.currStackItem)return;let l=[],a=[],u=[],f=s(e.gone);Gt(r,t.currStackItem.deletions,g=>{if(!(g instanceof tt)||g.parent!==e.flow||!g.countable||!g.redone)return;let I=g.content instanceof re&&g.content.embed?.b!==void 0;for(let h=0;h<g.length;h++){let S={client:g.id.client,clock:g.id.clock+h},j=n.resolve(S),N={client:g.redone.client,clock:g.redone.clock+h},T=Ve(e.ydoc.store,N);for(;T instanceof tt&&T.redone;)N={client:T.redone.client,clock:T.redone.clock+N.clock-T.id.clock},T=Ve(e.ydoc.store,N);if(!(!(T instanceof tt)||T.deleted)&&!(N.clock<(r.beforeState.get(N.client)??0))){if(!I&&fo(f,e.ydoc.clientID,S)){u.push(N);continue}(I?a:l).push({dest:N,source:j})}}}),(l.length||a.length)&&e.ydoc.transact(()=>{l.length&&n.recordSpans(l);for(let g of a)n.recordAlias(g.dest,g.source)},Le),u.length&&e.ydoc.transact(()=>po(e,u),no)};return e.ydoc.on("beforeObserverCalls",c),()=>e.ydoc.off("beforeObserverCalls",c)}var at=e=>Lt(e),Ie=e=>Pt(e),it=12*1024,go="page-recovery",lt=e=>Fe.exec(e)?.[1]??e;function as(e){return{v:1,g:0,y:{seed:at(Je(e))}}}var te=class extends Error{constructor(t,n){super(n),this.name="YDecodeError",this.code=t}};function ho(e){if(e?.v!==1||!e.y||typeof e.y!="object"||Array.isArray(e.y))throw new te("invalid-value","Expected a version 1 Yjs page value");let t=new Map,n=new Set;for(let[s,c]of Object.entries(e.y)){if(typeof c!="string")throw new te("invalid-update",`Invalid Yjs update: ${s}`);let r=Fe.exec(s);if(!r){n.add(s);continue}let l=Number(r[2]),a=Number(r[3]);if(!Number.isSafeInteger(l)||!Number.isSafeInteger(a)||a<1||l>=a)throw new te("invalid-update",`Invalid Yjs update part: ${s}`);let u=t.get(r[1])??{count:a,indices:new Set};if(u.count!==a||u.indices.has(l))throw new te("invalid-update",`Conflicting Yjs update parts: ${r[1]}`);u.indices.add(l),t.set(r[1],u)}for(let[s,c]of t){if(n.has(s))throw new te("invalid-update",`Conflicting Yjs update forms: ${s}`);if(c.indices.size!==c.count)throw new te("incomplete-update",`Incomplete Yjs update: ${s}`)}return oe(e.y)}function dn(e,{strict:t=!1}={}){let n=t?ho(e):oe(e.y),s=new xt;try{for(let[c,r]of n){let l=t?r.replace(/[\t\n\f\r ]/g,""):r;if(t&&!zt(l))throw new te("invalid-update",`Invalid base64 in Yjs update: ${c}`);He(s,Ie(l),Ae)}if(t&&(s.store.pendingStructs||s.store.pendingDs))throw new te("unresolved-update","Yjs page updates have missing prerequisites");return s}catch(c){throw s.destroy(),t&&!(c instanceof te)?new te("invalid-update",`Invalid Yjs page update: ${c.message}`):c}}var un=typeof TextEncoder=="function"?new TextEncoder:null,yo=e=>un?un.encode(e).length:e.length*2,mo=(e,t)=>qt(It(e.store),It(t.store)),ko=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,s]of e)if(t.get(n)!==s)return!1;return!0};function fs({store:e,ydoc:t,compact:n={},setTimer:s=setTimeout,clearTimer:c=clearTimeout,onStopped:r=()=>{},stats:l={applied:0,offered:0,compactions:0},journal:a=null,onLocalUpdate:u=()=>{}}){let f=oe(e.value.y),g=new Set,I=null,h=i=>{I||(I=i,r(i))},S=!f.some(([i])=>i[0]==="m"),j=0,N=t.clientID.toString(36),T=Math.floor(Math.random()*36**6).toString(36),F=e.room?.compaction?.v===1?"host":"legacy",J=i=>F==="host"?`${i}${N}-${T}-${(j++).toString(36)}`:`${i}${N}-${(j++).toString(36)}`,W=null,U=[],Y=!1,R=e.value.g,z=new Set,y=(i,p)=>{if(p.length<=it)return[[i,p]];let C=Math.ceil(p.length/it);return Array.from({length:C},(O,E)=>[`${i}.${E}.${C}`,p.slice(E*it,(E+1)*it)])},k=(i,p)=>{S=!0,g.add(i),z.add(i);let C=y(i,at(p));e.handle.update(O=>{for(let[E,_]of C)O.y[E]=_})},b=(i,p)=>{g.add(i),z.add(i);let C=at(p);e.handle.update(O=>{O.y[i]=C})},A=i=>{let p=i.path;return!Array.isArray(p)||p.length!==2||p[0]!=="y"?!0:z.has(p[1])},w=()=>e.pending.some(i=>A(i)),$=()=>F==="host"&&e.handle.status?.mode!=="file",B=()=>{if(!U.length)return;let i=U.length===1?U[0]:Ke(U);U=[],b(J("u"),i)},x=()=>{if(!$()||I||w()||Y&&(Y=!1,ge())||!U.length)return;let i=U.length===1?U[0]:Ke(U);U=[],b(J("u"),i)};for(let[i]of f)g.add(i);let P=(i,p)=>{p!==Ae&&p!==Le&&u(i),p!==Ae&&p!==Le&&p!==go&&a?.local(i),!(I||p===Ae||p===Le)&&($()?(U.push(i),x()):F==="host"?(U.push(i),B()):k(J("u"),i))};t.on("updateV2",P);let D=(i,p)=>{if(I||g.has(i))return;S=!0,g.add(i),l.applied++;let C=Ie(p);He(t,C,Ae),a?.dependency(C)},H=!1,V=!1,X=(i,p)=>{H||=i,V||=p,!W&&(W=s(()=>{W=null,H&&ge(),F==="legacy"&&he()},0))},be=()=>{ge(),F==="legacy"&&he()},pe=i=>{let p=Qt(t);return p.complete&&Ht(Xt(oe(i??{}).map(([C,O])=>qe(C,O))),p)};function ge(){if(I||$()&&w())return!1;let i=e.value.y;if(pe(i))return H=!1,V=!1,!1;let p=new xt;for(let[,ue]of oe(i))He(p,Ie(ue),Ae);let C=Ze(p),O=Qe(Ze(t)),E=Qe(C);if(ko(O,E)&&mo(t,p))return p.destroy(),H=!1,V=!1,!1;let _=Je(t,C);return p.destroy(),l.offered++,F==="host"?(U=[],b(J("r"),_)):k(J("r"),_),H=!1,V=!1,!0}let we={keys:32,room:3840*1024,...n},ee=null,Se=0,Re=256,ie=new Map,vt=256,fe=new Map,De=i=>e.handle.update(p=>{for(let C of i)delete p.y[C]}),je=(i,p)=>Object.keys(i).filter(C=>p.has(lt(C))),ne=(i,p)=>{let C=e.value.y??{};De(p.filter(O=>O in C&&C[O]===i[O]))},qe=(i,p)=>{let C=fe.get(i);if(C&&C.value===p)return C.ranges;fe.size>=vt&&fe.delete(fe.keys().next().value);let O=Wt(Ie(p));return fe.set(i,{value:p,ranges:O}),O};function le(){let i=e.authoritative.y??{},p=e.value.y??{};for(let _ of z)_ in p||z.delete(_);let C=new Map(oe(i)),O=ee?[ee.key,...ee.parts.map(([_])=>_),...ee.inputs.keys()]:[],E=new Set([...Object.keys(i),...C.keys(),...z,...O]);for(let _ of g)E.has(_)||g.delete(_);for(let[_,ue]of ie)(!E.has(_)||C.get(_)!==ue.value)&&ie.delete(_);for(let[_,ue]of fe)(!E.has(_)||C.has(_)&&C.get(_)!==ue.value)&&fe.delete(_)}function Ee(i,p,C,O){let E=ie.get(i);return E&&E.value!==p&&(ie.delete(i),E=null),E||(ie.size>=Re&&ie.delete(ie.keys().next().value),E={value:p,folds:new Map},ie.set(i,E)),E.folds.has(C)||E.folds.set(C,Et(O,Ie(p))),E.folds.get(C)}let _e=(i,p)=>{for(let[C,O]of p.held)if(i[C]!==void 0&&i[C]!==O)return!1;return!0},Te=i=>{let p=Ie(i.merged);for(let[C,O]of i.inputs)if(O!==null&&!Ee(C,O,i.key,p))return!1;return!0};function We(i){let p=ee,C=Xe({v:1,y:i}).y,O=p.parts.filter(([E,_])=>i[E]===_&&C[E]===_);return O.length!==p.parts.length?e.pending.length?!1:(ee=null,O.length&&ne(i,O.map(([E])=>E)),Se=oe(i).length+we.keys,le(),!0):e.pending.length?!1:!_e(i,p)||!Te(p)?(ee=null,O.length&&ne(i,O.map(([E])=>E)),Se=oe(i).length+we.keys,le(),!0):(ee=null,ne(i,je(i,p.inputs)),le(),!0)}function Ye(i,p,C){let O=p.filter(([Q])=>Q[0]==="m"),E=new Map(p),_=new Map(O),ue=Q=>{let ye=_.get(Q);return typeof ye=="string"&&_.set(Q,Ke([Ie(ye)])),_.get(Q)},Be=(Q,ye,L)=>Ee(Q,ye,L,ue(L)),$e=new Set;for(let[Q,ye]of p)if(!(!C&&Q[0]!=="m")){for(let[L]of O)if(!(L===Q||$e.has(L)||!Be(Q,ye,L))&&!(Q[0]==="m"&&Q<L&&Be(L,E.get(L),Q))){$e.add(Q);break}}return $e.size?(ne(i,je(i,$e)),!0):!1}function he(){if(I||!S||e.value.g!==R)return!1;let i=e.authoritative.y;if(ee)return We(i);let p=oe(i),C=p.length>Math.max(we.keys,Se);if(!C&&p.filter(([L])=>L[0]==="m").length<2)return!1;if(Ye(i,p,C))return le(),!0;if(!C)return!1;let O=at(Ke(p.map(([,L])=>Ie(L)))),E=J("m"),_=y(E,O),ue={...e.value,y:{...e.value.y}};for(let[L,Ot]of _)ue.y[L]=Ot;if(yo(JSON.stringify(ue))>we.room)return Se=p.length+we.keys,!1;let Be=Xe({v:1,y:i}).y,$e=Object.keys(i).filter(L=>!(L in Be)).map(lt).filter(L=>L[0]==="m"),Q=new Map(p);for(let L of $e)Q.set(L,null);let ye=new Map;for(let L of je(i,Q))Q.get(lt(L))!==null&&ye.set(L,Be[L]??i[L]);return ee={key:E,parts:_,merged:O,inputs:Q,held:ye},g.add(E),e.handle.update(L=>{for(let[Ot,to]of _)L.y[Ot]=to}),l.compactions++,!0}let o=i=>{let p=new Set;for(let[C,O]of oe(i??{}))for(let[E,_]of qe(C,O).items)_[0][0]===0&&p.add(E);return p},m=new Map(f),d=i=>{let p=o(i),C=[...Qe(Ze(t)).keys()];return!p.size||!C.length||C.some(O=>p.has(O))?!0:oe(i??{}).some(([O,E])=>m.get(O)===E)},v=e.onRebase(i=>{if(I)return;if(i.room){let O=F;F=i.room.compaction?.v===1?"host":"legacy",O==="host"&&F==="legacy"&&U.length&&s(()=>{if(I||F!=="legacy"||!U.length)return;let E=U.length===1?U[0]:Ke(U);U=[],k(J("u"),E)},0)}let p=i.source==="remote"&&i.frame?i.frame.ops:null,C=p&&p.every(O=>O.path[0]==="y"&&O.path.length===2&&!Fe.test(O.path[1]));if(!C&&i.cause!=="refused"&&!d(i.next.y)){h("lineage");return}if(C)for(let O of p)O.op==="set"&&D(O.path[1],O.value);else for(let[O,E]of oe(i.next.y??{}))D(O,E);le(),X(i.source!=="remote"||!p,i.source!=="remote"),x()}),M=e.onDelivery(i=>{if(i.phase!=="refused")return;if(F==="host"){if(i.code==="page-full"||i.code==="compaction-failed"){h(i.code);return}Y=!0,X(!0,!1);return}if(i.code!=="too-large"||I){le();return}h("too-large");let p=e.authoritative.y??{},C=Xe({v:1,y:p}).y,O=Object.keys(e.value.y??{}).filter(_=>!(_ in p)),E=Object.keys(p).filter(_=>Fe.test(_)&&!(_ in C)&&lt(_).slice(1).startsWith(`${N}-`));(O.length||E.length)&&De([...O,...E]),le()}),K=e.onConfirm(()=>{x()});return{known:g,stats:l,settle:be,reconcile:ge,get reconcilePending(){return V},get stopped(){return I},get pending(){return U.length>0},_diagnostics:()=>({known:g.size,cover:ie.size,fold:ee?ee.parts.length:0,generation:R}),compact:he,dispose(){v(),M(),K(),t.off("updateV2",P),W&&c(W)}}}var Yt=class extends Error{constructor(t,n){super(n),this.name="PageProofError",this.code=t}},Z=(e,t)=>{throw new Yt(e,t)},pn=/^[0-9a-f]{64}$/,gn=typeof TextEncoder=="function"?new TextEncoder:null,$t=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,hn=e=>typeof e=="string"?e:JSON.stringify(e),bo=e=>Array.isArray(e)?[...e]:e,wo=e=>({v:e.v,g:e.g,y:{...e.y??{}}});function Et(e,t){return Zt(At(e),t)}async function ut(e){let t=await globalThis.crypto.subtle.digest("SHA-256",e);return[...new Uint8Array(t)].map(n=>n.toString(16).padStart(2,"0")).join("")}var vo=4,ft=[],Oo=(e,t)=>{if(e.v!==t.v||e.g!==t.g)return!1;let n=Object.keys(t.y??{});if(n.length!==e.y.size)return!1;for(let s of n)if(e.y.get(s)!==t.y[s])return!1;return!0};function yn(e){let t=e&&typeof e=="object"&&e.y&&typeof e.y=="object"?ft.find(c=>Oo(c,e)):null;if(t)return t.bytes;let n;try{n=dn(e,{strict:!0})}catch(c){Z("invalid-state",`The accepted page state does not decode: ${c.message}`)}let s;try{s=Je(n),At(s,n)}finally{n.destroy()}return ft.length>=vo&&ft.shift(),ft.push({v:e.v,g:e.g,y:new Map(Object.entries(e.y)),bytes:s}),s}var Io=(e,t)=>!!(e&&t)&&!!(e.host&&e.documentId&&e.principalId)&&e.host===t.host&&e.documentId===t.documentId&&e.principalId===t.principalId,xo=(e,t)=>!!(e&&t)&&typeof e.generation=="string"&&!!e.generation&&e.generation===t.generation;async function ys({capture:e,records:t=[],accepted:n,article:s,state:c,receipt:r,saved:l=!0}={}){let a=[];for(let f of t){(!f||f.id===void 0||typeof f.revision!="number")&&Z("invalid-record","A proof names each record by id and revision");let g=$t(f.update);(!g||!g.length)&&Z("invalid-record","A proof needs the bytes each record owns"),a.push({id:bo(f.id),revision:f.revision,update:g.slice(),context:f.context??null})}typeof s!="string"&&Z("missing-article","A proof names the final outgoing article");let u=yn(c);return{saved:l===!0,capture:e,accepted:n,article:s,state:wo(c),stateDigest:await ut(u),articleDigest:await ut(gn.encode(s)),receipt:r,records:a}}async function So(e){(!e||typeof e!="object"||Array.isArray(e))&&Z("missing-proof","A page checkpoint needs a proof"),e.saved!==!0&&Z("not-saved","Only a save that succeeded under admission makes a proof"),(typeof e.capture!="string"||!e.capture)&&Z("missing-capture","A proof belongs to the capture it saved");let t=e.receipt;(!t||typeof t.file!="string"||!t.file||typeof t.pageState!="string"||!t.pageState)&&Z("missing-receipt","A proof names the persisted file and page-state pair");let n=e.accepted;(!n||!n.authority||!n.lineage||typeof n.lineage.generation!="string"||!n.lineage.generation)&&Z("missing-identity","A proof names the authority and generation it was saved under"),typeof e.article!="string"&&Z("missing-article","A proof names the final outgoing article"),Array.isArray(e.records)||Z("missing-records","A proof names the records it covers"),(typeof e.stateDigest!="string"||!pn.test(e.stateDigest))&&Z("missing-digest","A proof carries the accepted state digest"),(typeof e.articleDigest!="string"||!pn.test(e.articleDigest))&&Z("missing-digest","A proof carries the final article digest");let s=yn(e.state);await ut(s)!==e.stateDigest&&Z("state-digest-mismatch","The page state is not the one the proof was made over"),await ut(gn.encode(e.article))!==e.articleDigest&&Z("article-digest-mismatch","The article is not the one the proof was made over");let c=new Map;for(let r of e.records){(!r||r.id===void 0||typeof r.revision!="number")&&Z("invalid-record","A proof names each record by id and revision");let l=$t(r.update);(!l||!l.length)&&Z("invalid-record","A proof needs the bytes each record owns"),c.set(hn(r.id),r)}return{stateBytes:s,entries:c,accepted:n}}function Ao(e,t){let n=t.context;if(!n||!Io(n.authority,e.accepted.authority)||!xo(n.lineage,e.accepted.lineage))return!1;let s=$t(t.update);return!!s&&s.length>0&&Et(e.stateBytes,s)}async function ms(e,t=[]){let n=await So(e);return(t||[]).filter(s=>{if(!s||s.id===void 0||typeof s.revision!="number")return!1;let c=n.entries.get(hn(s.id));return!!c&&c.revision===s.revision&&Ao(n,c)})}var pt=Object.freeze({row:Object.freeze(["alive","pos"]),col:Object.freeze(["alive","name","kind","width","pos"])}),bn=["name","kind","width","pos"],Co=new Set(["kind","width"]),Ce=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Me=e=>typeof e=="string"&&e.length>0&&!["__proto__","constructor","prototype"].includes(e),Pe=e=>{throw new te("unsupported-content",`Unsupported table field: ${e}`)},wn=e=>e===null||typeof e!="object"?e:JSON.parse(JSON.stringify(e)),ke=(e,t,n,s)=>JSON.stringify([e,t,n,s]);function vn(e){if(typeof e=="string")return!0;if(!Ce(e)||Object.keys(e).sort().join(",")!=="c,m"||typeof e.c!="string"||!Array.isArray(e.m)||!e.m.every(Array.isArray))return!1;let t=on(e.m,e.c.length);return t?t.every((n,s)=>{if(typeof n!="string")return!1;if(n.startsWith("@"))return n===nn&&e.c[s]===tn;try{return en(se,n),!0}catch{return!1}}):!1}var On=(e,t)=>e==="alive"?typeof t=="boolean":e==="width"?t===null||typeof t=="number"&&Number.isFinite(t)&&t>0:e==="kind"&&t===null||typeof t=="string";function mn(e,t){if(Object.keys(e).length)return;let[n]=Object.keys(t).sort((s,c)=>{let r=t[s].pos??"",l=t[c].pos??"";return r!==l?r<l?-1:1:s<c?-1:s>c?1:0});n&&(e[n]=t[n])}function Mo(e,t){let n;try{n=JSON.parse(e)}catch{return null}if(!Array.isArray(n)||n.length!==4)return null;let[s,c,r,l]=n;return!Me(s)||!Me(r)?null:c==="cell"?Me(l)&&vn(t)?s:null:Object.hasOwn(pt,c)&&pt[c].includes(l)&&On(l,t)?s:null}var kn=new WeakMap,jo=e=>{let t=kn.get(e);if(t)return t;let n=new Map,s=new Map,c=new Set,r=a=>{let u=n.get(a);if(!u){let f=null;try{f=JSON.parse(a)}catch{f=null}let g=Array.isArray(f)&&f.length===4&&Me(f[0])?f[0]:null;u={key:a,tuple:f,live:!1,value:void 0},n.set(a,u),g!==null&&(s.get(g)??s.set(g,[]).get(g)).push(u)}u.live=e.has(a),u.value=u.live?e.get(a):void 0,u.live&&Mo(a,u.value)===null?c.add(a):c.delete(a)};for(let a of e._map.keys())r(a);e.observe(a=>{for(let u of a.keysChanged)r(u)});let l={owned(a){for(let u of e.doc._transactionCleanups)for(let f of u.changed.get(e)??[])r(f);return c.size?null:s.get(a)??[]}};return kn.set(e,l),l},Eo=(e,t)=>t!==null&&e instanceof et&&e.doc?jo(e).owned(t):null;function In(e,t=null,n=null){let s=new Map,c=new Map,r=new Map,l=(h,S,j,N)=>{if(h==="cell"){let J=r.get(S)??new Map;J.set(j,N),r.set(S,J);return}let T=h==="row"?s:c,F=T.get(S)??{};F[j]=N,T.set(S,F)},a=Eo(e,t);if(a)for(let h of a)h.live&&l(h.tuple[1],h.tuple[2],h.tuple[3],h.value);else for(let[h,S]of e){let j;try{j=JSON.parse(h)}catch{Pe(h)}(!Array.isArray(j)||j.length!==4)&&Pe(h);let[N,T,F,J]=j;(!Me(N)||!Me(F))&&Pe(h),T==="cell"?(!Me(J)||!vn(S))&&Pe(h):(!Object.hasOwn(pt,T)||!pt[T].includes(J)||!On(J,S))&&Pe(h),N===t&&l(T,F,J,S)}let u={...Ce(n?.cols)?n.cols:{}},f={...Ce(n?.rows)?n.rows:{}},g={},I={};for(let[h,S]of c){let j=Ce(u[h])?{...u[h]}:{};Object.hasOwn(j,"pos")||(j.pos=""),Object.hasOwn(j,"name")||(j.name="");for(let N of bn)Object.hasOwn(S,N)&&(S[N]===null?delete j[N]:j[N]=S[N]);if(S.alive===!1||!Object.hasOwn(u,h)&&S.alive!==!0){S.alive===!1&&(g[h]=j),delete u[h];continue}u[h]=j}for(let h of new Set([...s.keys(),...r.keys()])){let S=s.get(h)??{},j={pos:"",cells:{},...Ce(f[h])?f[h]:{}};Object.hasOwn(S,"pos")&&(j.pos=S.pos);let N=r.get(h);if(N&&(j.cells={...Ce(j.cells)?j.cells:{},...Object.fromEntries([...N].map(([T,F])=>[T,wn(F)]))}),S.alive===!1||!Object.hasOwn(f,h)&&S.alive!==!0){S.alive===!1&&(I[h]=j),delete f[h];continue}f[h]=j}return mn(u,g),mn(f,I),{cols:u,rows:f}}var dt=(e,t)=>e?.[t]??(Co.has(t)?null:"");function Yo(e,t,n,s,c){let r=[],l=(h,S)=>t.has(h)?t.get(h):S,a=(h,S)=>r.push([h,wn(S)]),u=s?.cols??{},f=c?.cols??{},g=s?.rows??{},I=c?.rows??{};for(let h of new Set([...Object.keys(u),...Object.keys(f)])){let S=u[h],j=f[h];if(!j){S&&a(ke(e,"col",h,"alive"),!1);continue}(!S||l(ke(e,"col",h,"alive"),!0)===!1)&&a(ke(e,"col",h,"alive"),!0);for(let N of bn){let T=ke(e,"col",h,N),F=S?dt(S,N):l(T,dt(n?.cols?.[h],N));Oe(F)!==Oe(dt(j,N))&&a(T,dt(j,N))}}for(let h of new Set([...Object.keys(g),...Object.keys(I)])){let S=g[h],j=I[h];if(!j){S&&a(ke(e,"row",h,"alive"),!1);continue}(!S||l(ke(e,"row",h,"alive"),!0)===!1)&&a(ke(e,"row",h,"alive"),!0);let N=ke(e,"row",h,"pos"),T=j.pos??"";l(N,n?.rows?.[h]?.pos??"")!==T&&a(N,T);let F=Ce(j.cells)?j.cells:{};for(let J of Object.keys(f)){let W=ke(e,"cell",h,J),U=F[J]??"",Y=S&&u[J]?S.cells?.[J]??"":l(W,n?.rows?.[h]?.cells?.[J]??"");Oe(Y)!==Oe(U)&&a(W,U)}}return r}function $o(e,t){let n=e.attrs.get(t);return{cols:n?.get("cols")??{},rows:n?.get("rows")??{}}}function Ss(e,t,n,s){let c=$o(e,t);for(let[r,l]of Yo(t,e.tableFields,c,n,s))e.tableFields.set(r,l)}var Nt=Object.freeze({column:Object.freeze(["alive","name","pos"]),card:Object.freeze(["alive","title","owner","due","placement"])}),xn={column:new Set(Nt.column),card:new Set(Nt.card)},Ko=[["column","columns"],["card","cards"]],Rt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Sn=e=>typeof e=="string"&&e.length>0&&!["__proto__","constructor","prototype"].includes(e),gt=e=>{throw new te("unsupported-content",`Unsupported board field: ${e}`)},No=e=>e===null||typeof e!="object"?e:JSON.parse(JSON.stringify(e)),Kt=(e,t,n,s)=>JSON.stringify([e,t,n,s]);function Cn(e,t){let n=new Map;for(let[s,c]of e){let r;try{r=JSON.parse(s)}catch{gt(s)}(!Array.isArray(r)||r.length!==4)&&gt(s);let[l,a,u,f]=r;if((!Sn(l)||!Sn(u)||!Object.hasOwn(xn,a)||!xn[a].has(f))&&gt(s),(f==="alive"?typeof c!="boolean":f==="placement"?!Rt(c)||Object.keys(c).sort().join(",")!=="columnId,pos"||typeof c.columnId!="string"||typeof c.pos!="string":f==="owner"||f==="due"?c!==null&&typeof c!="string":typeof c!="string")&&gt(s),l!==t)continue;let g=n.get(a)??new Map,I=g.get(u)??{};I[f]=c,g.set(u,I),n.set(a,g)}return n}var Mn=e=>({pos:e.pos??"",name:e.name??""}),jn=e=>({pos:e.placement?.pos??"",col:e.placement?.columnId??"",title:e.title??"",...e.owner!=null?{owner:e.owner}:{},...e.due!=null?{due:e.due}:{}}),ht=(e,t,n,s)=>Object.fromEntries([...e.get(t)??[]].filter(([,c])=>c.alive!==!1===s).map(([c,r])=>[c,n(r)]));function En(e,t=null){let n=Cn(e,t),s=ht(n,"column",Mn,!0),c=ht(n,"card",jn,!0),r=Ct(s),l=[...new Set(Object.values(c).map(u=>u.col))].filter(u=>!Object.hasOwn(s,u)).sort(),a=[...r,...l].flatMap(u=>Ct(Object.fromEntries(Object.entries(c).filter(([,f])=>f.col===u))));return{columns:Object.fromEntries(r.map(u=>[u,s[u]])),cards:Object.fromEntries(a.map(u=>[u,c[u]]))}}function js(e,t){let n=Cn(e,t);return{columns:ht(n,"column",Mn,!1),cards:ht(n,"card",jn,!1)}}var Yn={name:"",pos:"",title:"",owner:null,due:null,placement:{columnId:"",pos:""}},An=(e,t,n)=>e==="card"&&n==="placement"?{columnId:t.col??"",pos:t.pos??""}:t[n]??Yn[n];function Ro(e,t,n,s){let c=[];for(let[r,l]of Ko){let a=Rt(n?.[l])?n[l]:{},u=Rt(s?.[l])?s[l]:{};for(let f of new Set([...Object.keys(a),...Object.keys(u)])){let g=a[f],I=u[f];if(!I){g&&c.push([Kt(e,r,f,"alive"),!1]);continue}g||c.push([Kt(e,r,f,"alive"),!0]);for(let h of Nt[r]){if(h==="alive")continue;let S=Kt(e,r,f,h),j=An(r,I,h),N=g?An(r,g,h):t.has(S)?t.get(S):Yn[h];Oe(N)!==Oe(j)&&c.push([S,No(j)])}}}return c}function Es(e,t,n,s){for(let[c,r]of Ro(t,e.boardFields,n,s))e.boardFields.set(c,r)}var $n=e=>{let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)},Kn=(e,t)=>e.id.client===t.client&&t.clock>=e.id.clock&&t.clock<e.id.clock+e.length,Do=e=>{if(typeof e!="string"||e.charCodeAt(0)!==91)return null;let t;try{t=JSON.parse(e)}catch{return null}return Array.isArray(t)&&t.length===2&&t[0]===yt&&typeof t[1]=="string"?t[1]:null},_o=e=>e.reduce((t,n)=>n.brk.client<t.brk.client||n.brk.client===t.brk.client&&n.brk.clock<t.brk.clock?n:t);function _n(e,t=null){let n=t?null:Ne(e.origins);try{return To(e,n??t)}finally{n&&n.dispose()}}function To(e,t){let n=e.ydoc.store,s=Dt(e.gone),c=new Map,r=new Map;for(let o=e.flow._start;o;o=o.right){if(o.deleted||!(o.content instanceof re)||o.content.embed.b===void 0)continue;r.set(o.content.embed.b,(r.get(o.content.embed.b)??0)+1);let m=de(t.resolve(o.id)),d=c.get(m);(!d||o.id.client<d.id.client||o.id.client===d.id.client&&o.id.clock<d.id.clock)&&c.set(m,o)}let l=new Set(c.keys()),a=new Set,u=[],f=(o,m)=>{let d=`${o}.${m}`,v=t.boundaryOf({client:o,clock:m});!v||v.kind!=="copy"||(s.copyActive.has(d)?v.recoveryOf&&a.add(v.recoveryOf):l.has(d)&&u.push({key:Nn(d),sourceKey:d,source:{client:o,clock:m},operationId:null,blockId:v.blockId,end:null,sv:[],legacy:!1,implicit:!0}))},g=t.markers?.()??null,I=new Map;if(g)for(let o of g.records)o.live&&o.kind==="boundary"&&f(o.client,o.clock);else for(let o of e.origins.keys()){let m;try{m=JSON.parse(o)}catch{continue}if(!Array.isArray(m)||m.length!==3||m[0]!=="boundary"&&m[0]!=="alias")continue;let[,d,v]=m;if(!Number.isSafeInteger(d)||d<0||!Number.isSafeInteger(v)||v<0)continue;m[0]==="boundary"&&f(d,v),(I.get(d)??I.set(d,new Set).get(d)).add(v)}let h=[],S=new Set(u.map(o=>o.key));for(let o of s.restores)for(let m of o.covers){let d=Do(m);d===null||S.has(m)||!c.has(d)||(S.add(m),h.push({key:m,sourceKey:d,source:ze(d),operationId:null,blockId:c.get(d).content.embed.b,end:null,sv:[],legacy:!1,implicit:!0}))}let j=u.length||h.length?[...s.removals,...u,...h]:s.removals,N=new Map,T=new Map,F=new Map;for(let o of j){(F.get(o.sourceKey)??F.set(o.sourceKey,[]).get(o.sourceKey)).push(o);let d=null;if(o.implicit)d=c.get(o.sourceKey);else try{d=Ve(n,o.source)}catch{d=null}let v=de(t.resolve(o.source)),M=c.get(v);if((!d||d.deleted)&&M?.content.embed.b===o.blockId&&(d=M),!d)continue;if(o.legacy){!d.deleted&&d.content instanceof re&&d.content.embed.b===o.blockId&&de(t.resolve(d.id))===v&&N.set(d,{key:o.key,blockId:o.blockId,end:o.end?ze(o.end):null});continue}(T.get(d)??T.set(d,[]).get(d)).push(o)}let J=new Map,W=new Set(s.restores.map(o=>o.sourceKey)),U=(o,m)=>{let d=Dn(m);if(d===null)return null;let v=t.boundaryOf({client:o.id.client,clock:o.id.clock});return v&&v.blockId===m&&v.recoveryOf===d?v:null},Y=(o,m)=>{let d=U(o,m);return d&&d.kind==="restore"?d.recoveryOf:null},R=(o,m)=>{let d=U(o,m);return d&&d.kind==="copy"?d.recoveryOf:null},z=(o,m)=>{let d=Y(o,m);return d!==null&&W.has(d)&&F.has(d)?d:null};for(let o of s.restores){let m=J.get(o.sourceKey)??J.set(o.sourceKey,new Set).get(o.sourceKey);for(let d of o.covers)m.add(d)}let y=new Map;if(W.size)for(let o=e.flow._start;o;o=o.right){if(o.deleted)continue;let m=o.content instanceof re?z(o,o.content.embed&&o.content.embed.b):null;if(m===null)continue;(y.get(m)??y.set(m,[]).get(m)).push(o)}let k=o=>{let m=F.get(o);if(!m||!m.length)return!1;let d=J.get(o);if(!d)return!1;for(let v of m)if(!d.has(v.key))return!1;return(y.get(o)?.length??0)>0||a.has(o)},b=[],A=[],w=[],$=[],B=[],x=null,P="start",D=null,H=0,V={},X=null,be=()=>{for(let o in V)return{...V};return null},pe=o=>{let m=e.attrs.get(o);return m&&m.get("t")||"paragraph"},ge=o=>{o&&(x&&!x.atom?x.runs.push({hole:o}):b.push({kind:"h",len:o,key:null}))},we=(o,m,d=!1)=>{let v=_t(o,F.get(o)??[],s),M=`recovered:${o}`,K=v?v.type:"paragraph",i=!Object.hasOwn(se.nodes,K),p=be();x&&(x.fmtOut=p),x={kind:"b",id:M,baseId:M,brk:{client:m.id.client,clock:m.id.clock},implicit:!1,runs:[],len:1,atom:!i&&!se.nodes[K]?.isTextblock,opaque:i,recovered:!0,restored:!d,sourceKey:o,t:K,fields:v?v.attrs:null,fmtIn:p,fmtOut:null},b.push(x),P=M},ee=(o,m,d)=>{let v=be();x&&(x.fmtOut=v),x={kind:"b",id:o,baseId:o,brk:m,implicit:d,runs:[],len:d?0:1,atom:!1,items:!d&&(r.get(o)??0)>1?[]:null,fmtIn:v,fmtOut:null},d?x.t="paragraph":(x.t=pe(o),x.opaque=!Object.hasOwn(se.nodes,x.t),x.atom=!x.opaque&&!se.nodes[x.t]?.isTextblock),b.push(x),P=o},Se=()=>{D&&(D.len&&(D.resume?D.resume.runs.push({hole:D.len}):b.push({kind:"h",len:D.len,key:D.active[0]?.key})),x=D.resume,D=null)},Re=o=>{o.legacy&&o.text&&A.push({key:o.key,id:o.blockId,text:o.text,h:$n(o.text)}),w.push({key:o.key,sourceKey:o.sourceKey,blockId:o.blockId,end:o.end,sv:o.sv,at:o.at,live:o.live,items:o.items})},ie=(o,m,d=-1)=>Kn(o,m)&&m.clock>d?!0:fe(o).some(v=>{if(v.clock<=d||!e.origins.has(jt(v.client,v.clock)))return!1;let M=t.resolve(v);return M.client===m.client&&M.clock===m.clock}),vt=g?g.clocks:new Map([...I].map(([o,m])=>[o,[...m].sort((d,v)=>d-v)])),fe=o=>{let m=vt.get(o.id.client)??[],d=0,v=m.length;for(;d<v;){let K=d+v>>1;m[K]<o.id.clock?d=K+1:v=K}let M=[];for(let K=d;K<m.length&&m[K]<o.id.clock+o.length;K++)M.push({client:o.id.client,clock:m[K]});return M},De=(o,m=-1)=>o.deleted?fe(o).flatMap(d=>{if(d.clock<=m)return[];let v=de(t.resolve(d)),M=t.boundaryOf(d);return!M||M.kind!=="removed"&&M.kind!=="copy"||l.has(v)?[]:[{blockId:M.blockId,sourceKey:v}]}):[],je=(o,m,{deletedEdges:d,boundary:v=!1,edge:M,after:K=-1})=>m.end?ie(o,m.end,K):m.implicit?v||d.some(i=>i.sourceKey!==m.sourceKey):v&&M!==m.blockId||d.some(i=>i.blockId!==m.blockId),ne=[],qe=o=>({blockId:o.blockId,end:o.end?ze(o.end):null,implicit:o.implicit===!0,sourceKey:o.sourceKey});for(let o=e.flow._start;o;o=o.right){let m=H;if(!o.deleted&&o.countable&&(H+=o.length),D||ne.length){let K=!o.deleted&&o.content instanceof re?o.content.embed.b:void 0,i=K!==void 0&&Y(o,K)===null,p=De(o),C=O=>je(o,O,{deletedEdges:p,boundary:i,edge:K});if(D){let O=[];for(let E of D.active)C(E)?Re(E):O.push(E);D.active=O,O.length||Se()}for(let O=ne.length-1;O>=0;O--)ne[O].active=ne[O].active.filter(E=>!C(E)),ne[O].active.length||ne.splice(O,1)}let d=T.get(o);if(d){if(o.deleted&&B.push({client:o.id.client,clock:o.id.clock,len:o.length}),!D&&k(d[0].sourceKey)){o.deleted||ge(o.length),ne.push({active:d.map(qe),sourceKey:d[0].sourceKey,root:null});continue}!D&&o.deleted&&$.push({client:o.id.client,clock:o.id.clock});for(let K of d){let i={legacy:!1,implicit:K.implicit===!0,key:K.key,sourceKey:K.sourceKey,blockId:K.blockId,end:K.end?ze(K.end):null,sv:K.sv,at:m,live:!o.deleted,items:[]},p=o.deleted&&Kn(o,K.source)?K.source.clock:null;if(p!==null&&je(o,i,{deletedEdges:De(o,p),after:p})){Re(i);continue}D?D.active.push(i):D={active:[i],len:0,resume:x}}D&&!o.deleted&&(D.len+=o.length);continue}let v=N.get(o);if(v){if(o.deleted&&B.push({client:o.id.client,clock:o.id.clock,len:o.length}),!D&&k(v.key)){o.deleted||ge(o.length),ne.push({active:[{blockId:v.blockId,end:v.end}],sourceKey:v.key,root:null});continue}let K={legacy:!0,key:v.key,sourceKey:v.key,blockId:v.blockId,end:v.end,sv:[],at:m,live:!0,items:[],text:""};D?D.active.push(K):D={active:[K],len:0,resume:x},D.len+=1;continue}if(o.deleted)continue;let M=o.content;if(M instanceof St){M.value===null?delete V[M.key]:V[M.key]=M.value,X=null;continue}if(D){if(M instanceof ve||M instanceof re){let K=M instanceof ve?M.str:M.embed.b!==void 0?"\xB6":`
2
+ `,i={...V};for(let p of D.active)p.legacy&&(p.text+=K),p.items.push({at:m,id:de(o.id),client:o.id.client,clock:o.id.clock,length:o.length,kind:M instanceof ve?"text":M.embed.b!==void 0?"marker":"br",text:M instanceof ve?M.str:null,blockId:M instanceof re&&M.embed.b!==void 0?M.embed.b:null,raw:i});D.len+=o.length}continue}if(M instanceof St){M.value===null?delete V[M.key]:V[M.key]=M.value;continue}if(M instanceof re){let K=z(o,M.embed.b);if(K!==null){let C=ne.find(O=>O.sourceKey===K&&!O.root);C&&!a.has(K)?(we(K,o),C.root=x):ge(o.length);continue}if(Y(o,M.embed.b)!==null){ge(o.length);continue}let i=R(o,M.embed.b);if(i!==null){we(i,o,!0);continue}let p=M.embed;p.b!==void 0?ee(p.b,{client:o.id.client,clock:o.id.clock},!1):((!x||x.atom)&&ee(`~${P}`,null,!0),x.runs.push({br:!0}),x.items&&x.items.push({at:m,id:de(o.id),client:o.id.client,clock:o.id.clock,length:o.length,kind:"br",text:null,blockId:null,raw:{...V}}),x.len+=1);continue}if(M instanceof ve){(!x||x.atom)&&ee(`~${P}`,null,!0);let K=x.t==="code_block";if(!X||X.code!==K){let i=st(V,x.t);X={code:K,marks:i,mk:rn(i)}}x.runs.push({text:M.str,marks:X.marks,mk:X.mk}),x.items&&x.items.push({at:m,id:de(o.id),client:o.id.client,clock:o.id.clock,length:o.length,kind:"text",text:M.str,blockId:null,raw:{...V}}),x.len+=M.str.length}}if(D){for(let o of D.active)Re(o);Se()}x&&(x.fmtOut=be());let le=new Map;for(let o of b)o.kind!=="b"||o.implicit||(le.get(o.baseId)??le.set(o.baseId,[]).get(o.baseId)).push(o);let Ee=o=>o.runs.map(m=>m.br?`
3
+ `:m.hole?"":m.text).join(""),_e=new Map,Te=[];for(let[o,m]of le){if(m.length<2)continue;let d=_o(m);for(let v of m)if(v!==d&&(v.hide=!0,(_e.get(o)??_e.set(o,[]).get(o)).push(de(v.brk)),!(Ue(v.runs,d.runs)&&v.t===d.t)&&Ee(v)&&(A.push({key:`d${v.brk.client}.${v.brk.clock}`,id:o,text:Ee(v),h:$n(Ee(v)),copy:!0}),v.items?.length))){let M=de(t.resolve(v.brk)),K=Rn(M);Te.push({key:K,sourceKey:M,source:{client:v.brk.client,clock:v.brk.clock},operationId:null,blockId:o,end:null,sv:[],legacy:!1,implicit:!0}),w.push({key:K,sourceKey:M,blockId:o,end:null,sv:[],at:v.items[0].at,live:!0,items:v.items})}}let We=[],Ye=[],he=0;for(let o of b){if(o.kind==="h"){Ye.push({at:he,len:o.len});continue}if(o.hide){Ye.push({at:he,len:o.len+o.runs.reduce((d,v)=>d+(v.hole??0),0)});continue}We.push(o);let m=o.implicit?0:1;for(let d of o.runs)d.hole?Ye.push({at:he+m,len:d.hole}):m+=d.br?1:d.text.length;he+=o.len}return{visible:We,holes:Ye,orphans:A,tokens:he,copies:_e,hidden:w,removals:Te.length?[...j,...Te]:j,fences:$,stops:B}}var Jt="remove",Pn="restore",Vt="copy-active",yt="copy-lost",Gn="attr",qn="text-delete",mt=class extends Error{constructor(t){super(t),this.name="RecoveryError"}},G=e=>{throw new mt(e)},xe=e=>Number.isSafeInteger(e)&&e>=0,Bo=e=>Number.isSafeInteger(e)&&e>0,Tn=/^(?:0|[1-9]\d*)$/,Wn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),ce=e=>e===null||typeof e!="object"?e:JSON.parse(JSON.stringify(e)),kt=(e,t)=>e<t?-1:e>t?1:0,Xn=e=>[...e].sort(kt),Bn=e=>`${e.client}.${e.clock}`,Fo=e=>JSON.stringify(["author",e]),Ps=(e,t)=>JSON.stringify([Jt,e,t]),Gs=(e,t)=>JSON.stringify([Pn,e,t]),Nn=e=>JSON.stringify([Vt,e]),Rn=e=>JSON.stringify([yt,e]),qs=(e,t,n)=>JSON.stringify([qn,e,t,n]),Ws=(e,t)=>JSON.stringify([Gn,e,t]);function ae(e){if(typeof e!="string")return null;let t=e.indexOf(".");if(t<1||t===e.length-1)return null;let n=e.slice(0,t),s=e.slice(t+1);if(!Tn.test(n)||!Tn.test(s))return null;let c=Number(n),r=Number(s);return xe(c)&&xe(r)?{client:c,clock:r}:null}var Ge=(e,t,n)=>{Wn(e)||G(`Invalid gone record: ${n}`);for(let s of Object.keys(e))t.includes(s)||G(`Unsupported gone field ${s} in ${n}`)},Fn=(e,t)=>{Array.isArray(e)||G(`Invalid state vector in ${t}`);let n=[],s=-1;for(let c of e){(!Array.isArray(c)||c.length!==2)&&G(`Invalid state vector in ${t}`);let[r,l]=c;(!xe(r)||!xe(l)||r<=s)&&G(`Invalid state vector in ${t}`),s=r,n.push([r,l])}return n},Jo=e=>{if(typeof e!="string")return!1;if(e.charCodeAt(0)!==91)return ae(e)!==null;let t;try{t=JSON.parse(e)}catch{return!1}return!Array.isArray(t)||!ae(t[1])?!1:t[0]===Jt?t.length===3&&typeof t[2]=="string"&&t[2]!=="":(t[0]===Vt||t[0]===yt)&&t.length===2},Hn=(e,t,n)=>{if(t.charCodeAt(0)===91){let r=null;try{r=JSON.parse(t)}catch{G(`Malformed gone key: ${t}`)}if((!Array.isArray(r)||typeof r[0]!="string")&&G(`Malformed gone key: ${t}`),r[0]===Jt){(r.length!==3||typeof r[2]!="string"||!r[2])&&G(`Malformed gone key: ${t}`);let l=ae(r[1]);l||G(`Malformed gone key: ${t}`),Ge(e,["blockId","end","sv"],t),(typeof e.blockId!="string"||!e.blockId)&&G(`Invalid removal record: ${t}`);let a=e.end??null;a!==null&&!ae(a)&&G(`Invalid removal record: ${t}`),n.removals.push({key:t,sourceKey:r[1],source:l,operationId:r[2],blockId:e.blockId,end:a,sv:Fn(e.sv,t),legacy:!1});return}if(r[0]===Pn){(r.length!==3||typeof r[2]!="string"||!r[2])&&G(`Malformed gone key: ${t}`),ae(r[1])||G(`Malformed gone key: ${t}`),Ge(e,["covers","baseline"],t),(!Array.isArray(e.covers)||e.covers.some(a=>!Jo(a)))&&G(`Invalid restore record: ${t}`);let l=e.baseline??{};Ge(l,["type","attrs"],t),(typeof l.type!="string"||!Wn(l.attrs))&&G(`Invalid restore record: ${t}`),n.restores.push({key:t,sourceKey:r[1],operationId:r[2],covers:Xn(e.covers),baseline:{type:l.type,attrs:ce(l.attrs)}});return}if(r[0]===Vt){(r.length!==2||!ae(r[1]))&&G(`Malformed gone key: ${t}`),e!==!0&&G(`Invalid copy-active record: ${t}`),n.copyActive.add(r[1]);return}if(r[0]===qn){(r.length!==4||!xe(r[1])||!xe(r[2])||typeof r[3]!="string"||!r[3])&&G(`Malformed gone key: ${t}`),Ge(e,["length","actor","sv"],t),(!Bo(e.length)||!xe(r[2]+e.length-1))&&G(`Invalid text-delete record: ${t}`),xe(e.actor)||G(`Invalid text-delete record: ${t}`),n.textDeletes.push({key:t,client:r[1],clock:r[2],length:e.length,actor:e.actor,sv:Fn(e.sv,t)});return}if(r[0]===Gn){(r.length!==3||!ae(r[1])||typeof r[2]!="string"||!r[2])&&G(`Malformed gone key: ${t}`),e===void 0&&G(`Invalid attribute override: ${t}`);let l=n.attrs.get(r[1])??new Map;l.set(r[2],ce(e)),n.attrs.set(r[1],l);return}G(`Unsupported gone record: ${t}`)}let s=ae(t);s||G(`Malformed gone key: ${t}`),Ge(e,["b","e"],t),(typeof e.b!="string"||!e.b)&&G(`Invalid gone record: ${t}`);let c=e.e??null;c!==null&&!ae(c)&&G(`Invalid gone record: ${t}`),n.removals.push({key:t,sourceKey:t,source:s,operationId:null,blockId:e.b,end:c,sv:[],legacy:!0})},Ut=()=>({removals:[],restores:[],copyActive:new Set,attrs:new Map,textDeletes:[]}),Tt=e=>{if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){for(let t of Object.keys(e))Tt(e[t]);Object.freeze(e)}return e},Bt=(e,t)=>{let n=Ut();try{Hn(e,t,n)}catch(s){if(!(s instanceof mt))throw s;return null}for(let s of[n.removals,n.restores,n.textDeletes])for(let c of s)Tt(c);for(let s of n.attrs.values())for(let c of s.values())Tt(c);return n},Jn=new WeakMap,bt=(e,t)=>{for(let n of t.removals)e.removals.push(n);for(let n of t.restores)e.restores.push(n);for(let n of t.textDeletes)e.textDeletes.push(n);for(let n of t.copyActive)e.copyActive.add(n);for(let[n,s]of t.attrs){let c=e.attrs.get(n)??new Map;for(let[r,l]of s)c.set(r,l);e.attrs.set(n,c)}},Vn=new WeakMap,Vo=e=>{let t=Vn.get(e);if(t)return t;let n=new Map,s=null,c=[],r=a=>{let u=e.has(a),f=u?e.get(a):void 0,g=n.get(a);if(g&&g.live===u&&g.value===f)return;let I=u?Bt(f,a):null;if(!g){let h={live:u,value:f,record:I};n.set(a,h),u&&I&&s&&c.push(I);return}g.live=u,g.value=f,g.record=I,s=null};for(let a of e._map.keys())r(a);e.observe(a=>{for(let u of a.keysChanged)r(u)});let l={intents(){for(let a of e.doc._transactionCleanups)for(let u of a.changed.get(e)??[])r(u);if(s){if(c.length){for(let a of c)bt(s,a);c=[]}}else{s=Ut();for(let a of n.values())a.record&&bt(s,a.record);c=[]}return{removals:s.removals.slice(),restores:s.restores.slice(),copyActive:new Set(s.copyActive),attrs:new Map([...s.attrs].map(([a,u])=>[a,new Map(u)])),textDeletes:s.textDeletes.slice()}}};return Vn.set(e,l),l};function Dt(e,{strict:t=!1,kept:n=!0}={}){let s=Ut();if(t)return e.forEach((l,a)=>Hn(l,a,s)),s;if(n&&e instanceof et&&e.doc)return Vo(e).intents();if(!n)return e.forEach((l,a)=>{let u=Bt(l,a);u&&bt(s,u)}),s;let c=Jn.get(e)??new Map,r=new Map;return e.forEach((l,a)=>{let u=c.get(a),f=u&&u.value===l?u:{value:l,record:Bt(l,a)};r.set(a,f),f.record&&bt(s,f.record)}),Jn.set(e,r),s}var Ft=e=>{if(Array.isArray(e))return e.map(Ft);if(e!==null&&typeof e=="object"){let t={};for(let n of Object.keys(e).sort())t[n]=Ft(e[n]);return t}return e},Uo=e=>JSON.stringify(Ft(e)),wt=e=>se.nodes[e]??se.nodes.paragraph,zo=(e,t,n=null)=>{let s=e.attrs.get(t),c=n?.get("t"),r=s&&s.get("t")||"paragraph",l=typeof c=="string"&&se.nodes[c]?c:r,a=wt(l),u={};for(let f of nt(a))u[f]=ce(s&&s.has(f)?s.get(f):ot(a,f));if(l==="table"&&Object.assign(u,ce(In(e.tableFields,t,{cols:u.cols,rows:u.rows}))),l==="board"&&Object.assign(u,ce(En(e.boardFields,t))),n)for(let[f,g]of n)f!=="t"&&Object.hasOwn(u,f)&&(u[f]=ce(g));return{id:t,type:l,attrs:u}},Lo=e=>{let t={};if(!e)return t;for(let n of[...e.keys()].sort())t[n]=ce(e.get(n));return t},Un="recovered:",Dn=e=>typeof e=="string"&&e.startsWith(Un)?e.slice(Un.length):null;function _t(e,t,n){let s=new Set(t.map(I=>I.key)),c=null;for(let I of n.restores){if(I.sourceKey!==e)continue;let h=I.covers.reduce((S,j)=>S+(s.has(j)?1:0),0);(!c||h>c.count||h===c.count&&kt(I.key,c.restore.key)<0)&&(c={restore:I,count:h})}if(!c)return null;let r=n.attrs.get(e),l=r?.get("t"),a=se.nodes[c.restore.baseline.type]?c.restore.baseline.type:"paragraph",u=typeof l=="string"&&se.nodes[l]?l:a,f=wt(u),g={};for(let I of nt(f))r&&r.has(I)?g[I]=ce(r.get(I)):Object.hasOwn(c.restore.baseline.attrs,I)?g[I]=ce(c.restore.baseline.attrs[I]):g[I]=ce(ot(f,I));return{type:u,attrs:g,key:c.restore.key}}var Po=e=>{let t={};for(let n of Object.keys(e).sort())t[n]=ce(e[n]);return t},Go=(e,t)=>t.some(n=>e.clock>=(n.get(e.client)??0)),qo=e=>{let t=[];for(let[n,s]of e.sort((c,r)=>c[0]-r[0])){let c=t[t.length-1];c&&n<=c.end?c.end=Math.max(c.end,s):t.push({start:n,end:s})}return t},Wo=(e,t)=>{let n=0,s=e.length-1;for(;n<=s;){let c=n+s>>1,r=e[c];if(t<r.start)s=c-1;else if(t>=r.end)n=c+1;else return!0}return!1},Xo=(e,t,n)=>{let s=cn(t,e.length).physicalRanges(0,t.tokens),c=new Map,r=(f,g,I)=>{for(let h of n.resolveRange(f.id.client,f.id.clock+g,I-g)){let S=c.get(h.client);S?S.push([h.clock,h.clock+h.length]):c.set(h.client,[[h.clock,h.clock+h.length]])}},l=0,a=0;for(let f=e._start;f&&a<s.length;f=f.right){if(f.deleted||!f.countable)continue;let g=l;l+=f.length;let I=f.content,h=I instanceof ve;if(!h&&!(I instanceof re)||!h&&I.embed.b!==void 0)continue;for(;a<s.length&&s[a][1]<=g;)a++;let S=a;for(;S<s.length&&s[S][0]<l&&(r(f,Math.max(g,s[S][0])-g,Math.min(l,s[S][1])-g),!(s[S][1]>=l));)S++;a=S}let u=new Map;for(let[f,g]of c)u.set(f,qo(g));return(f,g)=>{let I=u.get(f);return I?Wo(I,g):!1}},zn=(e,t,n,s,c)=>{let r=e.resolve({client:t.client,clock:t.clock}),l=t.kind==="text"?sn(st(t.raw,s)):{},a=!Go(t,n);return{client:t.client,clock:t.clock,length:t.length,sourceClient:r.client,sourceClock:r.clock,baseline:a,displaced:!a&&!c(r.client,r.clock),kind:t.kind,text:t.kind==="text"?t.text:null,marks:l,raw:Po(t.raw)}},Ln=(e,t)=>{let n=e[e.length-1];if(n&&n.kind===t.kind&&n.baseline===t.baseline&&n.displaced===t.displaced&&n.client===t.client&&n.clock+n.length===t.clock&&n.sourceClient===t.sourceClient&&n.sourceClock+n.length===t.sourceClock&&Ue(n.marks,t.marks)&&Ue(n.raw,t.raw)){n.length+=t.length,n.kind==="text"&&(n.text+=t.text);return}e.push(t)},Ho=(e,t)=>({id:Bn(e),length:e.length,source:Bn({client:e.sourceClient,clock:e.sourceClock}),baseline:e.baseline,displaced:e.displaced,kind:e.kind,...e.kind==="text"?{text:e.text}:{},marks:e.marks,raw:e.raw,author:t(e.sourceClient)});function Qn(e,t,n,s,c,r,l,a){let u=(Y,R,z=null)=>{let y=t.boundaryOf(R);if(!y||y.blockId!==Y||!y.recoveryOf)return zo(e,Y,z);let k=_t(y.recoveryOf,a.get(y.recoveryOf)??[],r),b=typeof z?.get("t")=="string"&&se.nodes[z.get("t")]?z.get("t"):k?.type??"paragraph",A={};for(let w of nt(wt(b)))A[w]=ce(z?.has(w)?z.get(w):k&&Object.hasOwn(k.attrs,w)?k.attrs[w]:ot(wt(b),w));return{id:Y,type:b,attrs:A}},f=Y=>{let R=e.origins.get(Fo(Y));return typeof R=="string"&&R?R:null},g=[...s].sort((Y,R)=>kt(Y.key,R.key)),I=g[0].blockId,h=r.attrs.get(n),S=Lo(h),j=u(I,g[0].source,h),N=new Map(g.map(Y=>[Y.key,new Map(Y.sv)])),T=new Map;for(let Y of g){let R=c.get(Y.key);if(!R)continue;let z=N.get(Y.key);for(let y of R.items){let k=T.get(y.id);k?k.vectors.push(z):T.set(y.id,{item:y,vectors:[z]})}}let F=[...T.values()].sort((Y,R)=>Y.item.at-R.item.at),J=[{...j,author:f(t.resolve(g[0].source).client),runs:[]}],W=J[0];for(let Y of F){let R=Y.item;if(R.kind==="marker"){if(t.boundaryOf({client:R.client,clock:R.clock})?.kind==="restore"||!R.blockId||R.blockId===W.id)continue;W={...u(R.blockId,{client:R.client,clock:R.clock}),author:f(t.resolve({client:R.client,clock:R.clock}).client),runs:[]},J.push(W);continue}if(R.kind==="text")for(let z=0;z<R.length;z++)Ln(W.runs,zn(t,{...R,clock:R.clock+z,length:1,text:R.text[z]},Y.vectors,W.type,l));else Ln(W.runs,zn(t,R,Y.vectors,W.type,l))}let U={source:n,blockId:I,type:j.type,attrs:j.attrs,author:J[0].author,blocks:J.map(Y=>({id:Y.id,type:Y.type,attrs:Y.attrs,author:Y.author,runs:Y.runs.map(R=>Ho(R,f))})),removals:g.map(Y=>({key:Y.key,operationId:Y.operationId,end:Y.end,sv:Y.sv.map(([R,z])=>[R,z])})),restores:r.restores.filter(Y=>Y.covers.some(R=>g.some(z=>z.key===R))).sort((Y,R)=>kt(Y.key,R.key)).map(Y=>({key:Y.key,covers:Xn(Y.covers)})),copyActive:r.copyActive.has(n),overrides:S,recoverable:J.some(Y=>Y.runs.some(R=>R.displaced))};return{...U,revision:Uo(U)}}var Qo=(e,t)=>{for(let[n,s]of e)if(n===t)return s;return 0},Zo=(e,t)=>{for(let n of t.items)if(n.kind!=="marker"&&n.clock+n.length-1>=Qo(e.sv,n.client))return!0;return!1},Zn=(e,t)=>{let n=ae(e.source),s=ae(t.source);return n.client-s.client||n.clock-s.clock};function eo(e,t,n){let s=n.walked??_n(e,t),c=n.intents??Dt(e.gone,{strict:n.strict===!0}),r=new Map;for(let f of s.hidden??[])r.set(f.key,f);let l=new Map;for(let f of s.removals??c.removals){let g=l.get(f.sourceKey);g?g.push(f):l.set(f.sourceKey,[f])}let a=null;return{intents:c,hidden:r,groups:l,visible:(f,g)=>(a||(a=Xo(e.flow,s,t)),a(f,g))}}function Xs(e,t={}){let n=t.index??Ne(e.origins);try{let{intents:s,hidden:c,groups:r,visible:l}=eo(e,n,t),a=new Map;for(let[u,f]of r)a.set(u,Qn(e,n,u,f,c,s,l,r));return{sources:a,list:[...a.values()].sort(Zn),intents:s}}finally{t.index||n.dispose()}}function Hs(e,t={}){let n=t.index??Ne(e.origins);try{let{intents:s,hidden:c,groups:r,visible:l}=eo(e,n,t),a=[];for(let[u,f]of r){if(!f.some(I=>c.has(I.key)&&Zo(I,c.get(I.key))))continue;let g=Qn(e,n,u,f,c,s,l,r);g.recoverable&&a.push(g)}return{list:a.sort(Zn),intents:s}}finally{t.index||n.dispose()}}export{Ne as a,es as b,ts as c,Et as d,ut as e,yn as f,ys as g,ms as h,at as i,Ie as j,it as k,go as l,as as m,te as n,dn as o,fs as p,Mo as q,In as r,$o as s,Ss as t,Kt as u,En as v,js as w,Es as x,mt as y,Bn as z,Fo as A,Ps as B,Gs as C,Nn as D,qs as E,Ws as F,ae as G,Dt as H,Uo as I,Un as J,Dn as K,_t as L,Xs as M,Hs as N,_n as O};
@@ -1 +1 @@
1
- import{a as r}from"./c-WYFDLITL.js";import{a as p}from"./c-HT33EQRN.js";import{i as u}from"./c-7O6AFR65.js";import{n as d,o as l}from"./c-DCFSEJZG.js";var n=0,g=0,c=!1,m=!1,y=!1,i=!1;function o(){!u||i||(i=!0,queueMicrotask(()=>{if(i=!1,typeof document>"u")return;let e=C();if(e===y)return;y=e;let t=document.documentElement;e?t.setAttribute("unsaved","true"):t.removeAttribute("unsaved"),document.dispatchEvent(new CustomEvent(e?"clay:dirty":"clay:clean"))}))}var T=`input${r}, textarea${r}, select${r}`,h=`${d}, ${l}`,a=new WeakMap;function v(){let e=[];for(let t of document.querySelectorAll(T))t.closest(h)||e.push(t);return e}function E(e){let t=e.target;!t||t.nodeType!==1||(t.matches("input, textarea, select")||t.isContentEditable)&&(t.closest(h)||(n++,o()))}function x(){m||(m=!0,p.onAnyChange({omitChangeDetails:!0,require:"dirty"},()=>{c||(n++,o())}),document.addEventListener("input",E,!0),document.addEventListener("change",E,!0))}function L(){c=!0}function k(){c=!1}function f(e){return e instanceof HTMLSelectElement?Array.from(e.selectedOptions,t=>t.value).join("\0"):e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")?e.checked?"1":"0":e.value}function M(e){return e instanceof HTMLSelectElement?Array.from(e.options).every(t=>t.selected===t.defaultSelected):e instanceof HTMLInputElement?e.type==="checkbox"||e.type==="radio"?e.checked===e.defaultChecked:e.value===e.defaultValue:e instanceof HTMLTextAreaElement?e.hasAttribute("data-value")?e.value===e.getAttribute("data-value"):e.value===e.defaultValue:!0}function S(){for(let e of v()){let t=f(e);if(a.get(e)!==t){if(M(e)){a.set(e,t);continue}return!0}}return!1}function C(){return n>g||S()}function D(){return n}function O(){let e=[];for(let t of v())e.push([t,f(t)]);return{gen:n,probe:e}}function b(){n++,o()}function H(e){if(e){n===e.gen&&(g=e.gen);for(let[t,s]of e.probe)f(t)===s&&a.set(t,s);o()}}typeof document<"u"&&u&&x();typeof window<"u"&&(window.clay=window.clay||{},window.clay.markDirty=b);export{x as a,L as b,k as c,C as d,D as e,O as f,b as g,H as h};
1
+ import{a as r}from"./c-WYFDLITL.js";import{a as p}from"./c-ZWIOJGMT.js";import{f as u}from"./c-3O7OBDCM.js";import{n as d,o as l}from"./c-DCFSEJZG.js";var n=0,g=0,c=!1,m=!1,y=!1,i=!1;function o(){!u||i||(i=!0,queueMicrotask(()=>{if(i=!1,typeof document>"u")return;let e=C();if(e===y)return;y=e;let t=document.documentElement;e?t.setAttribute("unsaved","true"):t.removeAttribute("unsaved"),document.dispatchEvent(new CustomEvent(e?"clay:dirty":"clay:clean"))}))}var T=`input${r}, textarea${r}, select${r}`,h=`${d}, ${l}`,a=new WeakMap;function v(){let e=[];for(let t of document.querySelectorAll(T))t.closest(h)||e.push(t);return e}function E(e){let t=e.target;!t||t.nodeType!==1||(t.matches("input, textarea, select")||t.isContentEditable)&&(t.closest(h)||(n++,o()))}function x(){m||(m=!0,p.onAnyChange({omitChangeDetails:!0,require:"dirty"},()=>{c||(n++,o())}),document.addEventListener("input",E,!0),document.addEventListener("change",E,!0))}function L(){c=!0}function k(){c=!1}function f(e){return e instanceof HTMLSelectElement?Array.from(e.selectedOptions,t=>t.value).join("\0"):e instanceof HTMLInputElement&&(e.type==="checkbox"||e.type==="radio")?e.checked?"1":"0":e.value}function M(e){return e instanceof HTMLSelectElement?Array.from(e.options).every(t=>t.selected===t.defaultSelected):e instanceof HTMLInputElement?e.type==="checkbox"||e.type==="radio"?e.checked===e.defaultChecked:e.value===e.defaultValue:e instanceof HTMLTextAreaElement?e.hasAttribute("data-value")?e.value===e.getAttribute("data-value"):e.value===e.defaultValue:!0}function S(){for(let e of v()){let t=f(e);if(a.get(e)!==t){if(M(e)){a.set(e,t);continue}return!0}}return!1}function C(){return n>g||S()}function D(){return n}function O(){let e=[];for(let t of v())e.push([t,f(t)]);return{gen:n,probe:e}}function b(){n++,o()}function H(e){if(e){n===e.gen&&(g=e.gen);for(let[t,s]of e.probe)f(t)===s&&a.set(t,s);o()}}typeof document<"u"&&u&&x();typeof window<"u"&&(window.clay=window.clay||{},window.clay.markDirty=b);export{x as a,L as b,k as c,C as d,D as e,O as f,b as g,H as h};
@@ -1,2 +1,2 @@
1
- import{a as S,d as k}from"./c-LRPUO2MX.js";var D=24576,I=8192,v=["title","html","css","javascript","fallbackHtml","summary"],$=e=>new TextEncoder().encode(JSON.stringify(e)).length,J=0,g=class extends Error{constructor(o){super(o),this.name="ToolStateError",this.code=o}};function H(e){return!e||typeof e!="object"||Array.isArray(e)||Object.keys(e).length!==v.length||!v.every(o=>Object.hasOwn(e,o)&&typeof e[o]=="string")?{ok:!1,code:"invalid-artifact"}:$(e)<=D?{ok:!0}:{ok:!1,code:"artifact-too-large"}}function C(e){try{let o=S(e);return $(o)<=I?{ok:!0}:{ok:!1,code:"state-too-large"}}catch{return{ok:!1,code:"invalid-state"}}}function x(e){if(!Array.isArray(e)||e.some(o=>typeof o!="string"&&!(Number.isSafeInteger(o)&&o>=0)))throw new TypeError("tool state path must be an array of strings or non-negative integers");return e.slice()}function E(e,o){try{let c={state:e===void 0?{}:S(e)};k(c,{...o,path:["state",...o.path]});let a=C(c.state);if(!a.ok)throw new g(a.code)}catch(c){throw c instanceof g?c:new g("invalid-state")}}function F(e,o,c){let a=[o,c];return Object.freeze({get data(){return e.data?.[o]?.[c]},set(l,i){let r=x(l);E(e.data?.[o]?.[c],{op:"set",path:r,value:i}),e.set([...a,...r],i)},delete(l){e.delete([...a,...x(l)])},add(l,i=1){let r=x(l);if(!r.length||typeof i!="number"||!Number.isFinite(i))throw new g("invalid-state");E(e.data?.[o]?.[c],{op:"add",path:r,n:i}),e.add([...a,...r],i)}})}function z(e){let o=S(e??{}),c=new Set,a=()=>{for(let i of[...c])i()},l=i=>{let r={state:o};k(r,{...i,path:["state",...i.path]});let d=C(r.state);if(!d.ok)throw new g(d.code);o=r.state,a()};return Object.freeze({get data(){return S(o)},set(i,r){l({op:"set",path:x(i),value:r})},delete(i){l({op:"del",path:x(i)})},add(i,r=1){let d=x(i);if(!d.length||typeof r!="number"||!Number.isFinite(r))throw new g("invalid-state");l({op:"add",path:d,n:r})},on(i,r){if(i!=="change"||typeof r!="function")throw new TypeError("reader state supports on(change, fn)");return c.add(r),()=>c.delete(r)}})}function q(e){let o=[],c=0,a=null,l=0;for(let i=0;i<e.length;i++){let r=e[i];a?r===a&&e[i-1]!=="\\"&&(a=null):r==='"'||r==="'"?a=r:r==="("||r==="["?l++:r===")"||r==="]"?l--:r===","&&l===0&&(o.push(e.slice(c,i).trim()),c=i+1)}return o.push(e.slice(c).trim()),o.filter(Boolean)}function L(e,o){let c="",a=0;for(;a<e.length;){let l=e.indexOf("{",a);if(l<0){c+=e.slice(a);break}let i=e.slice(a,l).trim(),r=1,d=l+1,u=null;for(;d<e.length&&r;d++){let w=e[d];u?w===u&&e[d-1]!=="\\"&&(u=null):w==='"'||w==="'"?u=w:w==="{"?r++:w==="}"&&r--}let y=e.slice(l+1,d-1);/^@(?:media|supports|container)\b/i.test(i)?c+=`${i}{${L(y,o)}}`:i.startsWith("@")?c+=`${i}{${y}}`:c+=`${q(i).map(w=>`${o} ${w}`).join(", ")}{${y}}`,a=d}return c}function M({root:e,artifact:o,mode:c,state:a,tables:l=()=>[],onError:i=()=>{},setTimer:r=setTimeout,clearTimer:d=clearTimeout}){let u={change:new Set,tables:new Set},y=new Set,w,T=!1,j=()=>{if(T)return;T=!0;for(let f of y)d(f);y.clear();for(let f of Object.values(u))f.clear();let s=w;w=null,typeof s=="function"&&s()},t=s=>{if(!T)for(let f of[...u[s]])f()},m=()=>Object.freeze(S(l()).map(s=>N(s))),p=Object.freeze({root:e,mode:c,state:a,on(s,f){if(!Object.hasOwn(u,s)||typeof f!="function")throw new TypeError("unknown tool event");return u[s].add(f),()=>u[s].delete(f)},table(s){return m().find(f=>f.id===s)??null},tables:m,schedule(s,f){if(T)return null;let n=r(()=>{y.delete(n),T||s()},f);return y.add(n),n}});try{e.innerHTML=o.html;let s=e.ownerDocument.createElement("style"),f=String(++J),n=`[data-tool-scope="${f}"]`;e.setAttribute("data-tool-scope",f),s.textContent=L(o.css,n),e.prepend(s);let A=`${o.javascript}
1
+ import{a as S,d as k}from"./c-3LDGIBMN.js";var D=24576,I=8192,v=["title","html","css","javascript","fallbackHtml","summary"],$=e=>new TextEncoder().encode(JSON.stringify(e)).length,J=0,g=class extends Error{constructor(o){super(o),this.name="ToolStateError",this.code=o}};function H(e){return!e||typeof e!="object"||Array.isArray(e)||Object.keys(e).length!==v.length||!v.every(o=>Object.hasOwn(e,o)&&typeof e[o]=="string")?{ok:!1,code:"invalid-artifact"}:$(e)<=D?{ok:!0}:{ok:!1,code:"artifact-too-large"}}function C(e){try{let o=S(e);return $(o)<=I?{ok:!0}:{ok:!1,code:"state-too-large"}}catch{return{ok:!1,code:"invalid-state"}}}function x(e){if(!Array.isArray(e)||e.some(o=>typeof o!="string"&&!(Number.isSafeInteger(o)&&o>=0)))throw new TypeError("tool state path must be an array of strings or non-negative integers");return e.slice()}function E(e,o){try{let c={state:e===void 0?{}:S(e)};k(c,{...o,path:["state",...o.path]});let a=C(c.state);if(!a.ok)throw new g(a.code)}catch(c){throw c instanceof g?c:new g("invalid-state")}}function F(e,o,c){let a=[o,c];return Object.freeze({get data(){return e.data?.[o]?.[c]},set(l,i){let r=x(l);E(e.data?.[o]?.[c],{op:"set",path:r,value:i}),e.set([...a,...r],i)},delete(l){e.delete([...a,...x(l)])},add(l,i=1){let r=x(l);if(!r.length||typeof i!="number"||!Number.isFinite(i))throw new g("invalid-state");E(e.data?.[o]?.[c],{op:"add",path:r,n:i}),e.add([...a,...r],i)}})}function z(e){let o=S(e??{}),c=new Set,a=()=>{for(let i of[...c])i()},l=i=>{let r={state:o};k(r,{...i,path:["state",...i.path]});let d=C(r.state);if(!d.ok)throw new g(d.code);o=r.state,a()};return Object.freeze({get data(){return S(o)},set(i,r){l({op:"set",path:x(i),value:r})},delete(i){l({op:"del",path:x(i)})},add(i,r=1){let d=x(i);if(!d.length||typeof r!="number"||!Number.isFinite(r))throw new g("invalid-state");l({op:"add",path:d,n:r})},on(i,r){if(i!=="change"||typeof r!="function")throw new TypeError("reader state supports on(change, fn)");return c.add(r),()=>c.delete(r)}})}function q(e){let o=[],c=0,a=null,l=0;for(let i=0;i<e.length;i++){let r=e[i];a?r===a&&e[i-1]!=="\\"&&(a=null):r==='"'||r==="'"?a=r:r==="("||r==="["?l++:r===")"||r==="]"?l--:r===","&&l===0&&(o.push(e.slice(c,i).trim()),c=i+1)}return o.push(e.slice(c).trim()),o.filter(Boolean)}function L(e,o){let c="",a=0;for(;a<e.length;){let l=e.indexOf("{",a);if(l<0){c+=e.slice(a);break}let i=e.slice(a,l).trim(),r=1,d=l+1,u=null;for(;d<e.length&&r;d++){let w=e[d];u?w===u&&e[d-1]!=="\\"&&(u=null):w==='"'||w==="'"?u=w:w==="{"?r++:w==="}"&&r--}let y=e.slice(l+1,d-1);/^@(?:media|supports|container)\b/i.test(i)?c+=`${i}{${L(y,o)}}`:i.startsWith("@")?c+=`${i}{${y}}`:c+=`${q(i).map(w=>`${o} ${w}`).join(", ")}{${y}}`,a=d}return c}function M({root:e,artifact:o,mode:c,state:a,tables:l=()=>[],onError:i=()=>{},setTimer:r=setTimeout,clearTimer:d=clearTimeout}){let u={change:new Set,tables:new Set},y=new Set,w,T=!1,j=()=>{if(T)return;T=!0;for(let f of y)d(f);y.clear();for(let f of Object.values(u))f.clear();let s=w;w=null,typeof s=="function"&&s()},t=s=>{if(!T)for(let f of[...u[s]])f()},m=()=>Object.freeze(S(l()).map(s=>N(s))),p=Object.freeze({root:e,mode:c,state:a,on(s,f){if(!Object.hasOwn(u,s)||typeof f!="function")throw new TypeError("unknown tool event");return u[s].add(f),()=>u[s].delete(f)},table(s){return m().find(f=>f.id===s)??null},tables:m,schedule(s,f){if(T)return null;let n=r(()=>{y.delete(n),T||s()},f);return y.add(n),n}});try{e.innerHTML=o.html;let s=e.ownerDocument.createElement("style"),f=String(++J),n=`[data-tool-scope="${f}"]`;e.setAttribute("data-tool-scope",f),s.textContent=L(o.css,n),e.prepend(s);let A=`${o.javascript}
2
2
  ;return typeof mount === "function" ? mount : undefined;`,h=new Function("tool",A)(p),b=typeof h=="function"?h:h?.mount;if(typeof b!="function")throw new TypeError("tool script must define mount(tool)");w=b(p)}catch(s){try{j()}catch(f){i(f)}i(s),e.innerHTML=`${o.fallbackHtml}<p data-tool-error>Tool could not start</p>`}return{notifyState:()=>t("change"),notifyTables:()=>t("tables"),dispose:j}}function N(e){if(e&&typeof e=="object"){for(let o of Object.values(e))N(o);Object.freeze(e)}return e}function K({store:e=null,mode:o,tables:c=()=>[]}){let a=new Set,l=new Set,i=!1,r=null,d=null,u=(t,m,p)=>{let s=`${t}:${m}`;l.has(s)||(l.add(s),console.warn(`clayjs: tool ${t} revision ${m} failed`,p))},y=(t,m)=>{u(t.id,t.rev,m),t.readerOff?.(),t.readerOff=null;try{t.runtime?.dispose()}catch(s){u(t.id,t.rev,s)}t.runtime=null,t.root.innerHTML=t.artifact?.fallbackHtml??"";let p=t.root.ownerDocument.createElement("p");p.setAttribute("data-tool-error",""),p.textContent="Tool could not start",t.root.append(p)},w=()=>{for(let t of a){if(t.disposed||o==="view")continue;let m=e?.data?.[t.id]?.[t.rev],p=JSON.stringify(m);if(p!==t.signature){t.signature=p;try{t.runtime&&m!==void 0?t.runtime.notifyState():t.render()}catch(s){y(t,s)}}}},T=e?.on?.("change",w)??(()=>{});return{mount(t,{id:m,artifact:p,rev:s,seed:f={}}){if(i)throw new Error("tool host is disposed");let n={root:t,id:m,artifact:p,rev:s,seed:f,runtime:null,readerOff:null,disposed:!1,signature:void 0},A=h=>{let b=t.ownerDocument.createElement("p");b.setAttribute("data-tool-note",""),b.textContent=h,t.append(b)};n.render=()=>{n.readerOff?.(),n.readerOff=null;try{n.runtime?.dispose()}catch(O){u(n.id,n.rev,O)}if(n.runtime=null,t.removeAttribute("data-tool-scope"),H(n.artifact).ok===!1){t.textContent="Tool unavailable",u(n.id,n.rev,new Error("invalid artifact"));return}let h=e?.data?.[n.id]?.[n.rev];if(n.signature=JSON.stringify(h),o==="edit"&&e&&h===void 0){t.innerHTML=n.artifact.fallbackHtml,A("Waiting for this tool's state\u2026");return}let b=o==="edit"&&e?F(e,n.id,n.rev):z(h??n.seed??{});n.runtime=M({root:t,artifact:n.artifact,mode:o,state:b,tables:c,onError:O=>u(n.id,n.rev,O)}),n.readerOff=b.on?.("change",()=>{try{n.runtime?.notifyState()}catch(O){y(n,O)}})??null,o==="edit"&&!e&&A("This document can't save tool state")};try{n.render()}catch(h){y(n,h)}return a.add(n),{update({artifact:h,rev:b}){if(!n.disposed&&!(b===n.rev&&h===n.artifact)){n.artifact=h,n.rev=b;try{n.render()}catch(O){y(n,O)}}},dispose(){if(!n.disposed){n.disposed=!0,a.delete(n),n.readerOff?.();try{n.runtime?.dispose()}catch(h){u(n.id,n.rev,h)}n.runtime=null}}}},tablesChanged(){if(i||r!==null||!a.size)return;let t=[...a][0]?.root.ownerDocument.defaultView??globalThis;d=t,r=(t.requestAnimationFrame?.bind(t)??(p=>t.setTimeout(p,0)))(()=>{r=null;for(let p of a)try{p.runtime?.notifyTables()}catch(s){y(p,s)}})},dispose(){if(!i){i=!0,T(),r!==null&&(d.cancelAnimationFrame?d.cancelAnimationFrame(r):d.clearTimeout(r),r=null);for(let t of[...a]){t.disposed=!0,t.readerOff?.();try{t.runtime?.dispose()}catch(m){u(t.id,t.rev,m)}}a.clear()}}}}export{H as a,C as b,K as c};
@@ -0,0 +1 @@
1
+ import{a}from"./c-CAS3NND4.js";import"./c-B7J4K2AE.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-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{a as replace};
@@ -0,0 +1 @@
1
+ import{c as a}from"./c-GBKB5WDL.js";import"./c-3LDGIBMN.js";import"./c-VHNSBD2M.js";export{a as createToolHost};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"./c-UY4QX42B.js";import"./c-L7JL5TL3.js";import"./c-BJ7YQ5QZ.js";import"./c-4JZDZFF6.js";import"./c-VAK7SG37.js";import"./c-MHI3GYKF.js";import"./c-NUHP2XDB.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as default,b as dismissPersistent,a as toastPersistent};
@@ -1 +1 @@
1
- import{a as f,b as u}from"./c-7SWMYKAI.js";import{b as l}from"./c-UGHH4MB3.js";import{a as s}from"./c-HT33EQRN.js";var c=(t=[])=>i=>{let e=(i.getAttribute("clay")??"").split(/\s+/).filter(Boolean),n=["no-dirty",...t].filter(r=>!e.includes(r));n.length&&i.setAttribute("clay",[...e,...n].join(" "))},p=c();function S(t,i){return y(t,i)}function b(t,i,e,n=[]){return y(t,i,e,n)}function y(t,i,e,n=[]){let r=typeof i=="string",a=r?{name:t,legacyId:e}:{href:f(t)},d=e===void 0?[]:document.querySelectorAll(`style[id="${e}"]:not([data-name])`);s.pause();try{l(a);for(let o of d)o.dataset.name=t;if(r){let o=u(t,i,c(n));return e!==void 0&&(o.id=e),o}return u(t,o=>{p(o),o.getAttribute("href")!==t&&o.setAttribute("href",t)})}finally{s.resume()}}export{S as a,b};
1
+ import{a as f,b as u}from"./c-7SWMYKAI.js";import{b as l}from"./c-UGHH4MB3.js";import{a as s}from"./c-ZWIOJGMT.js";var c=(t=[])=>i=>{let e=(i.getAttribute("clay")??"").split(/\s+/).filter(Boolean),n=["no-dirty",...t].filter(r=>!e.includes(r));n.length&&i.setAttribute("clay",[...e,...n].join(" "))},p=c();function S(t,i){return y(t,i)}function b(t,i,e,n=[]){return y(t,i,e,n)}function y(t,i,e,n=[]){let r=typeof i=="string",a=r?{name:t,legacyId:e}:{href:f(t)},d=e===void 0?[]:document.querySelectorAll(`style[id="${e}"]:not([data-name])`);s.pause();try{l(a);for(let o of d)o.dataset.name=t;if(r){let o=u(t,i,c(n));return e!==void 0&&(o.id=e),o}return u(t,o=>{p(o),o.getAttribute("href")!==t&&o.setAttribute("href",t)})}finally{s.resume()}}export{S as a,b};
@@ -0,0 +1 @@
1
+ var r="Untitled";function s(i,{custom:l=!1,currentTitle:n="",keepWithoutHeading:f=!1}={}){if(l)return n;let e=i.find(t=>t.t==="heading"&&(t.level??2)===1&&t.parent==null);return!e&&f&&!["",r].includes(String(n).trim())?n:String(e?.c??"").replace(/[\s\uFFFC]+/gu," ").trim()||r}export{r as a,s as b};
@@ -0,0 +1,4 @@
1
+ import{b as de}from"./c-A7LS5UZW.js";import{a as I,b as Le,c as U,d as ve}from"./c-7K4SCQB7.js";import{a as Z,b as L,f as ye,g as ge,h as Ye,s as qe}from"./c-WMRJKQ2V.js";import{a as he}from"./c-TCCA5BZN.js";import{a as C,b as V,c as Te,d as Ce,f as Ne,g as Pe,k as $,m as H,p as _e}from"./c-3LDGIBMN.js";import{a as X,b as $e,c as Y}from"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function Ue(a,y){return!y||!Number.isInteger(y.seq)?null:y.seq>=(a.last??0)?[]:y.seq<(a.floor??0)?null:a.log.filter(p=>p.seq>y.seq).map(p=>({seq:p.seq,ops:p.ops}))}var k=Object.freeze({version:1,loose:32,soft:16,activeBytes:3840*1024,deleteReserve:64*1024,newPerFrame:4,tailFloor:64*1024,leaseMs:60*1e3,retired:8192}),Ke=Object.freeze({"checkpoint-required":503,"page-full":409,"compaction-failed":409,"page-immutable":409,"page-batch":409,"page-update-invalid":422,"page-upgrade":404}),be=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,je=/^[ctf][0-9a-z]{8}-[0-9a-z]+(-[0-9a-z]+)?$/,ht=/^(seed|c[0-9a-z]{8}-[0-9a-z]+)$/,me=a=>ht.test(a);function ee(a,y=k){let p=0,f=0,u=0,c=0;for(let d of Object.keys(a)){if(X.test(d)){u++;continue}me(d)?p++:f++,!be.test(d)&&!je.test(d)&&d!=="seed"&&c++}return{checkpoints:p,loose:f,parts:u,legacy:c,normal:u===0&&p<=1&&f<=y.loose}}function ze(a,{overflow:y=!1}={},p=k){let f=ee(a,p),u=Y(a),c=u.filter(([m])=>me(m)),d=u.filter(([m])=>!me(m)),w=d.reduce((m,[,b])=>m+b.length,0),g=c.reduce((m,[,b])=>m+b.length,0);return!f.normal||y||w>Math.max(p.tailFloor,g/4)?{kind:"full",sources:u}:d.length<2||f.loose<p.soft?null:{kind:"tail",sources:d}}function De({kind:a,sources:y,encode:p=Ye}){let f=y.map(([,c])=>L(c));if(a==="tail"){let c=qe(f),d=I(c);for(let w of f)if(!U(d,I(w)))return{failure:"not-covered"};return{update:Z(c)}}let u=new ye({gc:!0});try{for(let g of f)ge(u,g);if(u.store.pendingStructs||u.store.pendingDs){let g=qe(f),v=I(g);for(let m of f)if(!U(v,I(m)))return{failure:"not-covered"};return{update:Z(g),pending:!0}}let c=ve(u);for(let g of f)if(!U(c,I(g)))return{failure:"not-covered"};let d=Z(p(u)),w=new ye({gc:!0});try{ge(w,L(d));let g=ve(w);if(!g.complete)return{failure:"not-covered"};for(let v of f)if(!U(g,I(v)))return{failure:"not-covered"}}finally{w.destroy()}return{update:d}}catch(c){return{failure:"invalid-update",message:c?.message||String(c)}}finally{u.destroy()}}function we(a){if(typeof a!="string"||!$e(a))return null;try{let{items:y,deletes:p}=I(L(a)),f=0;for(let u of p.values())for(let[c,d]of u)f+=d-c;return{deleted:f,inserts:y.size>0}}catch{return null}}function Ve({y:a,ops:y,state:p,limits:f}){if(p.compaction!==f.version)return{error:"page-upgrade"};let u=0,c=0,d=!1;for(let g of y){let v=g.path?.[1];if(g.op!=="set"||typeof v!="string"||!be.test(v))return{error:"page-immutable"};if(Object.hasOwn(a,v)){if(a[v]!==g.value)return{error:"page-immutable"};continue}if(p.retired.has(v))return{error:"page-immutable"};let m=we(g.value);if(!m)return{error:"page-update-invalid"};u+=1,c+=m.deleted,d||=m.inserts}if(u>f.newPerFrame)return{error:"page-batch"};if(p.failed)return{added:u,deleted:c,inserts:d,limit:f.activeBytes+(d?0:f.deleteReserve),shape:null,failed:!0};let w=ee(a,f);return!w.normal||w.loose+u>f.loose?{error:"checkpoint-required",retryAfter:0}:{added:u,deleted:c,inserts:d,limit:f.activeBytes+(d?0:f.deleteReserve),shape:w}}var yt=a=>be.test(a)||je.test(a);function He(a=256){let y=new Map;return(p,f)=>{let u=y.get(p);if(u&&u.value===f)return u.ranges;let c=I(L(f));return y.delete(p),y.set(p,{value:f,ranges:c}),y.size>a&&y.delete(y.keys().next().value),c}}function Je({y:a,fileY:y,retired:p,rangesFor:f,keyFor:u=(c,d)=>d}){let c=Y(a),d=new Map(c),w=null,g=[];for(let[v,m]of Y(y??{})){if(d.get(v)===m||p.has(v)&&yt(v))continue;let b;try{b=I(L(m))}catch{continue}w??=Le(c.map(([r,O])=>f(r,O))),U(w,b)||g.push([v,m])}return g.map(([v,m],b)=>[u(b,v),m])}var Ge=5,gt=2e3,qt=500,vt=1024,mt=256*1024;function te(a,y){let p=[],f=()=>{for(let u=p.length-1;u>=0;u--)Pe(p[u])};try{for(let u of y){let c=Ne(a,u);c&&(p.push(c),a=c.root)}}catch(u){throw f(),u}return{value:a,undo:f}}var Qe=new TextEncoder,Xe="page-format:1",Ze="page-rooms:2";function Tt(a=0,y=window.location.pathname){let p="clay-live:"+y;return`${a>=1?`${p}:${Xe}`:p}:${Ze}`}function bt(a){typeof requestIdleCallback=="function"?requestIdleCallback(a,{timeout:1e3}):setTimeout(a,0)}var J=a=>!!a&&typeof a=="object"&&typeof a.y=="object"&&a.y!==null&&!Array.isArray(a.y);function Ct(){return typeof BroadcastChannel=="function"&&typeof navigator<"u"&&typeof navigator.locks?.request=="function"}function We(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}function Nt({seed:a,key:y="clay-live:"+window.location.pathname,channel:p=null,floor:f=0,rooms:u=!1}){let c=We(),d=f>=1?1:0,w=e=>`${y}${e>=1?`:${Xe}`:""}${u?`:${Ze}`:""}`,g=w(d),v=null,m=null,b=null,r=null,O=!1,ne=null,K=!1,R=null,et=0,j=0,N=new Map,G=new Map,Q=new Set,P=new Map,s={epoch:null,seq:0,sequencer:null,closedBy:null,stale:!1,seen:new Map,stores:new Map};function A(e){v?.post({...e,version:Ge})}function oe(e,t){for(t.bytes=Qe.encode(JSON.stringify(t.ops)).length,e.log.push(t),e.logBytes+=t.bytes;e.log.length>vt||e.logBytes>mt;){let o=e.log.shift();e.logBytes-=o.bytes,e.floor=o.seq}}function re(e){let t=s.stores.get(e.name);t&&(t.value=te(t.value,e.ops).value,t.last=e.seq,t.ephemeral||oe(t,{seq:e.seq,ops:e.ops})),s.seq=e.seq;let o=e.name+`
2
+ `+e.from;(s.seen.get(o)??0)<e.n&&s.seen.set(o,e.n)}function tt(e){let t={};for(let[o,l]of s.seen){let n=o.indexOf(`
3
+ `);o.slice(0,n)===e&&(t[o.slice(n+1)]=l)}return t}let ke=e=>e.behind||e.landed===null?-1:e.landed;function z(e){let t={},o={};for(let[n,i]of s.stores)t[n]={value:C(i.value),ephemeral:i.ephemeral,seen:tt(n),last:i.last,landed:ke(i)},n==="page"&&J(i.value)&&(t[n].compaction={v:k.version,loose:k.loose,activeBytes:k.activeBytes}),o[n]={log:i.log,last:i.last,landed:i.landed,floor:i.floor,behind:i.behind,file:i.file,inFile:i.inFile};let l={epoch:r.epoch,seq:r.seq,writer:c,stores:t,mirror:{seen:[...s.seen],stores:o}};if(e!==void 0){let n=e&&e.epoch===s.epoch&&Number.isInteger(e.seq)?e.seq:0,i={};for(let[q,h]of s.stores)i[q]=Ue(h,{seq:n});l.moves=i}return l}function Oe(e,t){return e?.file?t.seq!=null&&e.file.seq!=null?t.seq<=e.file.seq:e.file.hash===H($(he(t.text))):!1}function nt(){for(let[e,t]of P)try{Oe(s.stores.get(e),t)&&P.delete(e)}catch{P.delete(e)}}function se(e){if(r||!e||typeof e.epoch!="string"||!Number.isInteger(e.seq)||!e.mirror||Q.has(e.epoch)||e.epoch===s.epoch&&e.seq<s.seq)return!1;s.epoch!==null&&e.epoch!==s.epoch&&Q.add(s.epoch);let t=new Map;for(let[o,l]of Object.entries(e.stores||{})){let n=e.mirror.stores?.[o]||{},i=Array.isArray(n.log)?n.log:[];t.set(o,{value:C(l.value),ephemeral:l.ephemeral===!0,log:i,logBytes:i.reduce((q,h)=>q+(h.bytes||0),0),last:Number.isInteger(n.last)?n.last:0,landed:Number.isInteger(n.landed)?n.landed:null,floor:Number.isInteger(n.floor)?n.floor:0,behind:n.behind===!0,file:n.file||null,inFile:Array.isArray(n.inFile)?[...n.inFile]:[]})}return s={epoch:e.epoch,seq:e.seq,sequencer:e.writer??null,closedBy:null,stale:!1,seen:new Map(e.mirror.seen||[]),stores:t},nt(),j+=1,!0}function le(){let e=z();A({type:"data-state",state:e}),b.state(e)}function ie(){s.epoch!==null&&Q.add(s.epoch),s.epoch=We(),s.seq=0;for(let e of s.stores.values())e.log=[],e.logBytes=0,e.last=0,e.landed=null,e.floor=0,e.behind=!0,e.file=null,e.inFile=[]}function ot({fresh:e}){let t=s.epoch===null;t&&ie();for(let[l,n]of a())s.stores.has(l)||s.stores.set(l,{value:C(n.value),ephemeral:n.ephemeral,log:[],logBytes:0,last:0,landed:0,floor:0,behind:!1,file:null,inFile:[]});s.stale=!1,s.sequencer=c,s.closedBy=null;let o=new Map;for(let[l,n]of s.seen)o.set(l,{n,seq:0});r={epoch:s.epoch,seq:s.seq,lastN:o,host:st()};for(let[l,n]of P){let i=s.stores.get(l);if(!(!i||i.ephemeral)){try{if(Oe(i,n))continue}catch{continue}Ae(l,n)}}P.clear(),e&&!t&&(ie(),r.epoch=s.epoch,r.seq=0),j+=1,le()}function Se(){ie(),r.epoch=s.epoch,r.seq=0,j+=1,le()}function ce(){r&&(A({type:"closed",from:c,state:z()}),r=null,ne?.(),ne=null)}function rt(e){return s.closedBy!==null&&(e===null||s.closedBy===e)?Promise.resolve(!0):new Promise(t=>{let o=setTimeout(()=>{R=null,t(!1)},qt);R={sequencer:e,resolve(l){clearTimeout(o),R=null,t(l)}}})}function ae(){K||O||(K=!0,navigator.locks.request(g,async()=>{if(O)return;let e=await rt(s.sequencer);if(!O)return ot({fresh:s.epoch===null||!e}),new Promise(t=>{ne=t})}).catch(()=>{}).finally(()=>{K=!1}))}let st=()=>({retired:new Set,lastFull:null,deletesSince:0,failed:null,ranges:He(),task:null,overflow:!1}),lt=()=>{let e=s.stores.get("page");return e&&!e.ephemeral&&J(e.value)?e:null},ue=e=>Qe.encode($(e)).length,fe=(e,t=0)=>({status:Ke[e]??409,body:{code:e},retryAfter:t});function _(e=!1){if(!r)return;let t=r.host;if(t.overflow||=e,t.task)return;let o=r;t.task=bt(()=>{t.task=null;let l=t.overflow;t.overflow=!1,!(O||r!==o||t.failed)&&it(t,{overflow:l})})}function it(e,{overflow:t}){let o=lt();if(!o)return;let l=ze(o.value.y,{overflow:t},k);if(!l)return;let n=De({kind:l.kind,sources:l.sources});if(typeof n.update!="string"){e.failed={reason:n.failure};return}ct(e,o,l,n.update)}function ct(e,t,o,l){let n=t.value.y,i=new Map(o.sources),q=Object.keys(n).filter(F=>{let D=X.exec(F);return i.has(D?D[1]:F)||D&&o.kind==="full"}),h=new Map(Y(Object.fromEntries(q.map(F=>[F,n[F]]))));for(let[F,D]of i)if(h.get(F)!==D)return;if(!we(l))return;let x=`${o.kind==="full"?"c":"t"}${H(r.epoch).slice(0,8)}-${(r.seq+1).toString(36)}`;if(Object.hasOwn(n,x))return;let B=[...q.map(F=>V({op:"del",path:["y",F]})),V({op:"set",path:["y",x],value:l})],M=ue(t.value),E;try{E=te(t.value,B)}catch{return}let S=ue(E.value);if(E.undo(),S>k.activeBytes&&S>M){o.kind==="full"&&q.length===Object.keys(n).length&&(e.lastFull={bytes:M,seq:r.seq},e.deletesSince=0);return}let T=!t.behind&&t.landed===t.last;for(let[F]of o.sources)e.retired.add(F),e.retired.size>k.retired&&e.retired.delete(e.retired.values().next().value);r.seq+=1,o.kind==="full"&&(e.lastFull={bytes:S,seq:r.seq},e.deletesSince=0);let pe={epoch:r.epoch,seq:r.seq,name:"page",ops:B,from:"compactor",n:0,kind:o.kind};re(pe),T&&(t.landed=r.seq),A({type:"data",data:pe}),b.frame(C(pe)),T&&(W(["page"]),A({type:"landed",name:"page",at:{epoch:r.epoch,seq:r.seq}}));let Re=ee(t.value.y,k);(Re.loose>=k.soft||!Re.normal)&&_()}function xe(e,t){if(!t||typeof t.name!="string"||!Number.isInteger(t.n)||t.n<1||!Array.isArray(t.ops)||!t.ops.length)return{status:400,body:{error:"bad-frame"},retryAfter:0};let o=s.stores.get(t.name);if(!o)return{status:404,body:{error:"unknown-store"},retryAfter:0};let l=t.name+`
4
+ `+e,n=r.lastN.get(l);if(n&&t.n<=n.n)return{status:200,body:{duplicate:!0,seq:n.seq,epoch:r.epoch},retryAfter:0};let i;try{i=t.ops.map(V)}catch(E){return{status:422,body:{error:E.message},retryAfter:0}}let q=r.host,h=t.name==="page"&&J(o.value)?Ve({y:o.value.y,ops:i,state:{...q,compaction:t.compaction},limits:k}):null;if(h?.error)return h.error==="checkpoint-required"&&_(),fe(h.error,h.retryAfter);let x;try{x=te(o.value,i)}catch(E){return{status:422,body:{error:E.message},retryAfter:0}}let B=h?ue(x.value):0;if(x.undo(),h&&B>h.limit)return h.failed||q.lastFull&&q.deletesSince===0?fe("page-full"):(_(!0),fe("checkpoint-required"));r.seq+=1,r.lastN.set(l,{n:t.n,seq:r.seq});let M={epoch:r.epoch,seq:r.seq,name:t.name,ops:i,from:e,n:t.n};return re(M),A({type:"data",data:M}),b.frame(C(M)),h&&(q.deletesSince+=h.deleted,!h.failed&&B>k.activeBytes?_(!0):!h.failed&&h.shape.loose+h.added>=k.soft&&_()),{status:200,body:{seq:r.seq,epoch:r.epoch},retryAfter:0}}function W(e){if(!r||!e.length)return;let t={};for(let o of e){let l=s.stores.get(o);l&&(t[o]=ke(l))}b.writer({epoch:r.epoch,writer:c,landed:t})}function Fe(e,t){let o=s.stores.get(e);return!o||o.ephemeral||!t||t.epoch!==s.epoch||!Number.isInteger(t.seq)||!o.behind&&o.landed!==null&&t.seq<=o.landed?!1:(o.landed=t.seq,o.behind=!1,!0)}function Ae(e,{text:t,at:o,seq:l}){let n=s.stores.get(e);if(!n||n.ephemeral)return null;let i;try{i=C(he(t))}catch{return null}if(i===null||typeof i!="object"||Array.isArray(i)!==Array.isArray(n.value))return null;let q={seq:l??null,hash:H($(i))};if(e==="page"&&J(n.value)&&J(i))return at(n,i,q);let h=!!o&&o.epoch===s.epoch&&o.seq<=r.seq,x=h&&o.hash===q.hash,B=h?o.seq:n.behind?null:n.landed;if(B===null||B<n.floor){let S=!n.behind;return n.behind=!0,n.file=q,{changed:!1,moved:S}}let M=n.log.filter(S=>S.seq>B&&(x||!n.inFile.includes(S.seq)));x&&(n.inFile=[]);for(let S of M)for(let T of S.ops)try{Te(i,T),i=Ce(i,T)}catch{}let E=!1;if($(i)!==$(n.value)){let S=_e(n.value,i);n.value=i,r.seq+=1,s.seq=r.seq,n.last=r.seq,oe(n,{seq:r.seq,ops:S}),n.inFile=[...n.inFile.filter(T=>T>n.floor),r.seq],E=!0}return n.landed=M.length?B:n.last,n.behind=!1,n.file=q,{changed:E,moved:!0}}function at(e,t,o){if(t.g!==e.value.g)return null;let l=r.host,n=Je({y:e.value.y,fileY:t.y,retired:l.retired,rangesFor:l.ranges,keyFor:h=>`f${H(r.epoch).slice(0,8)}-${(r.seq+1).toString(36)}-${h.toString(36)}`});e.file=o;let i=new Set,q=[];for(let[h,x]of n)Object.hasOwn(e.value.y,h)||i.has(h)||(i.add(h),q.push(V({op:"set",path:["y",h],value:x})));return q.length?(e.value=te(e.value,q).value,r.seq+=1,s.seq=r.seq,e.last=r.seq,oe(e,{seq:r.seq,ops:q}),e.inFile=[...e.inFile.filter(h=>h>e.floor),r.seq],l.lastFull=null,_(),{changed:!0,moved:!0}):{changed:!1,moved:!1}}function ut(e){let t=!1,o=[];for(let[l,n]of e){let i=s.stores.get(l);if(!i||i.ephemeral)continue;if(!r){P.set(l,n);continue}let q=Ae(l,n);q&&(q.changed?t=!0:q.moved&&o.push(l))}t?le():W(o)}function Be(e){return new Promise(t=>{let o=++et,l=setTimeout(()=>{N.delete(o),G.delete(o),t(null)},gt);e.type==="post"&&G.set(o,s.sequencer),N.set(o,n=>{clearTimeout(l),N.delete(o),G.delete(o),t(n)}),A({...e,from:c,rid:o})})}function ft(e){if(!(!e||typeof e.name!="string"||typeof e.epoch!="string"||!Number.isInteger(e.seq))&&!(r||Q.has(e.epoch))){if(e.epoch!==s.epoch)s.stale=!0;else if(!s.stale&&e.seq===s.seq+1)try{re(e)}catch{s.stale=!0}else e.seq>s.seq&&(s.stale=!0);b.frame(e)}}function pt(e,t){if(!(typeof e!="string"||!t)){se(t)&&(s.closedBy=e,b.state(t));for(let[o,l]of G)l===e&&N.get(o)?.(null);R&&(R.sequencer===null||R.sequencer===e)&&R.resolve(s.closedBy===e)}}function Ee({data:e}){if(!(O||!e||e.version!==Ge)){if(r&&(e.type==="data"&&e.data?.epoch===r.epoch||(e.type==="data-state"||e.type==="closed")&&e.state?.epoch===r.epoch&&e.state.writer!==c)){Se();return}if(!r&&e.type==="data-state"&&e.state?.epoch===s.epoch&&e.state.writer!==s.sequencer&&Number.isInteger(e.state.seq)&&e.state.seq<s.seq){A({type:"forked",epoch:s.epoch,to:e.state.writer});return}if(e.type==="forked"){r&&e.epoch===r.epoch&&e.to===c&&Se();return}e.type==="data"?ft(e.data):e.type==="data-state"?se(e.state)&&b.state(e.state):e.type==="closed"?pt(e.from,e.state):e.type==="landed"?typeof e.name=="string"&&Fe(e.name,e.at)&&W([e.name]):e.type==="answer"?e.to===c&&N.get(e.rid)?.(e.result):r&&e.type==="post"?e.epoch===r.epoch&&A({type:"answer",to:e.from,rid:e.rid,result:xe(e.from,e.frame)}):r&&e.type==="state-request"&&A({type:"answer",to:e.from,rid:e.rid,result:z(e.since)})}}function Ie(){ce()}function Me(e){!e.persisted||O||r||K||(s.sequencer=null,s.closedBy=null,ae(),b.close(),b.open({clientId:c,lane:"live"}))}function dt(e,{covered:t=!1}={}){let o=e>=1?1:0,l={floor:d,scope:g};return o<=d?{status:"already",...l}:O||!v?{status:"refused",code:"lane-stopped",...l}:p?{status:"refused",code:"shared-channel",...l}:t?(ce(),m?.(),g=w(o),d=o,v=de(g),m=v.subscribe("durable",n=>Ee({data:n})),s.sequencer=s.closedBy=null,K=!1,ae(),b.close(),b.open({clientId:c,lane:"live"}),{status:"switched",floor:d,scope:g}):{status:"refused",code:"uncovered",...l}}return{clientId:c,get scope(){return g},get floor(){return d},switchScope:dt,start(e){return b=e,v=p??de(g),m=v.subscribe("durable",t=>Ee({data:t})),window.addEventListener("pagehide",Ie),window.addEventListener("pageshow",Me),ae(),b.open({clientId:c,lane:"live"}),()=>{ce(),O=!0,R?.resolve(!1),window.removeEventListener("pagehide",Ie),window.removeEventListener("pageshow",Me);for(let t of N.values())t(null);m?.(),m=null,v=null}},async send(e,t){return r?xe(c,t):await Be({type:"post",frame:t,epoch:s.epoch})||{status:0,body:null,retryAfter:0}},async fetchState(e,t=null){if(r)return z(t);let o=j,l=await Be({type:"state-request",since:t});return r?z(t):o!==j||!se(l)?null:l},fileFrame(e){O||ut(e)},landed(e,t){O||!t||(Fe(e,t)&&W([e]),A({type:"landed",name:e,at:{epoch:t.epoch,seq:t.seq}}))},get isSequencer(){return r!==null}}}export{qt as CLOSE_WAIT_MS,Xe as FORMAT_SCOPE,mt as LOG_BYTES,vt as LOG_ENTRIES,gt as REQUEST_MS,Ze as ROOM_SCOPE,Tt as localLaneKey,Ct as localLaneSupported,Nt as localTransport};
@@ -0,0 +1 @@
1
+ import{B as g}from"./c-AMU3BPPR.js";import"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var p=(t,r)=>{let s=-1;return t.forEach((n,l,c)=>{n.attrs.id===r&&(s=c)}),s};function y(t,r,s){let n=t.state,l=p(n.doc,r);if(l<0)return!1;let c=0;for(let e=0;e<l;e++)c+=n.doc.child(e).nodeSize;let a=n.doc.child(l);return t.dispatch(g(n.tr.setNodeMarkup(c,null,{...a.attrs,...s}))),!0}function b(t,r){let s=p(t.state.doc,r);if(s<0)return!1;let n=t.dom.parentElement,l=n.ownerDocument,c=0;for(let o=0;o<s;o++)c+=t.state.doc.child(o).nodeSize;let a=l.createElement("div");a.className="page-link",a.dataset.mode="alt";let e=l.createElement("input");e.className="page-link-input",e.type="text",e.value=t.state.doc.child(s).attrs.alt||"",e.placeholder="Describe the image",e.setAttribute("aria-label","Alt text"),a.append(e);let d=t.nodeDOM(c)?.getBoundingClientRect?.(),u=n.getBoundingClientRect();d&&(a.style.setProperty("--page-pop-x",`${d.left-u.left}px`),a.style.setProperty("--page-pop-y",`${d.bottom-u.top+6}px`)),n.append(a);let f=!1,i=(o,h=!0)=>{if(f)return;f=!0;let m=e.value.trim();a.remove();let x=p(t.state.doc,r);o&&x>=0&&m!==t.state.doc.child(x).attrs.alt&&y(t,r,{alt:m}),h&&t.focus()};return e.addEventListener("keydown",o=>{o.key==="Enter"?(o.preventDefault(),i(!0)):o.key==="Escape"&&(o.preventDefault(),o.stopPropagation(),i(!1))}),e.addEventListener("blur",()=>i(!0,!1)),e.focus(),!0}export{b as openAltEditor,y as setImageAttrs};
@@ -0,0 +1 @@
1
+ import{c as A}from"./c-KBS3UV6B.js";import{j as b}from"./c-4TXNLX4K.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-MWXFLW4J.js";import"./c-ZK4GIZH2.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as x}from"./c-AMU3BPPR.js";import{b as h}from"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function S(o){let s=String(o??""),n=typeof Intl<"u"&&typeof Intl.Segmenter=="function"?new Intl.Segmenter("en",{granularity:"grapheme"}):null;return n?[...n.segment(s)].map(a=>a.segment):[...s]}var I=o=>S(o).length===1&&!/^\s*$/.test(String(o??""));function L(o){let s=[];for(let[n,a]of Object.entries(o??{}))for(let u of Array.isArray(a)?a:[]){let[f,m,d=""]=u??[];typeof f!="string"||typeof m!="string"||s.push({id:`${n}:${m}`,char:f,name:`${f} ${m}`,keywords:`${m} ${d}`})}return s}var P=(o,s)=>{let n=String(s??"").trim().toLowerCase();return n?o.filter(a=>a.char===n||a.keywords.toLowerCase().includes(n)):o};function T(o=()=>import("./c-SZGYW5HT.js")){let s=null;return()=>(s??=Promise.resolve().then(()=>o()).then(n=>L(n.EMOJI)).catch(n=>{throw s=null,n}),s)}function w({view:o=null,load:s=()=>import("./c-SZGYW5HT.js")}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let n=o.dom.ownerDocument,a=T(s),u=null;function f(t){let e=o.state,r=e.selection;if(r.from!==t.from||r.to!==t.to||t.from<0||t.to>e.doc.content.size)return null;let c=e.doc.resolve(t.from),i=e.doc.resolve(t.to);return!c.parent.isTextblock||c.parent!==i.parent?null:{from:t.from,to:t.to}}function m(t){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},r=o.coordsAtPos(t.from);return{x:Math.max(8,r.left-e.left),y:r.bottom+6-e.top}}catch{return null}}function d(t){let e=t.picker.activeId();e?o.dom.setAttribute("aria-activedescendant",e):o.dom.getAttribute("aria-activedescendant")?.startsWith(t.picker.el.id)&&o.dom.removeAttribute("aria-activedescendant")}function l(){let t=u;if(t){u=null;for(let[e,r,c,i]of t.listen)e.removeEventListener(r,c,i);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function j(t,e){let r=o.state.tr.insertText(e,t.from,t.to);return r.setSelection(h.TextSelection.create(r.doc,t.from+e.length)),o.dispatch(x(r)),o.focus(),{ok:!0,emoji:e}}function p(t){let e=u;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),c=f(e);return!r||c===null||!I(r.char)?(l(),r?c===null?{ok:!1,code:"stale-target"}:{ok:!1,code:"invalid-emoji"}:{ok:!1,code:"no-emoji"}):(l(),j(c,r.char))}function E(t){let e=u;if(!e||b(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),d(e)):t.key==="Enter"?(r(),p(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),l())}async function $(t={}){l();let e={from:o.state.selection.from,to:o.state.selection.to,picker:null,listen:[]};e.picker=A({document:n,label:"Insert an emoji",empty:"No emoji found",onPick:i=>p(i)}),u=e;let r=(i,k,g,y)=>{i.addEventListener(k,g,y),e.listen.push([i,k,g,y])};r(n,"keydown",i=>E(i),!0),r(o.dom,"input",()=>l()),r(n,"mousedown",i=>{e.picker.el.contains(i.target)||l()},!0),(o.dom.parentElement??n.body).appendChild(e.picker.el);let c;try{c=await a()}catch(i){return l(),{ok:!1,code:"unavailable",error:i}}return u!==e?{ok:!1,code:"not-editing"}:f(e)===null?(l(),{ok:!1,code:"stale-target"}):(e.picker.show(P(c,t?.query),m(e)),d(e),{ok:!0,picker:!0})}return{async run(t){return $(t)},dispose(){l()}}}export{w as createFeature,L as emojiEntries,T as emojiLibrary,P as filterEmoji,S as graphemes,I as isEmojiText};
@@ -0,0 +1 @@
1
+ import{a,b}from"./c-BRLCTNMC.js";import"./c-QHWJ5ZIJ.js";import"./c-CJFDLD43.js";import"./c-BJ7YQ5QZ.js";import"./c-4JZDZFF6.js";import"./c-VAK7SG37.js";import"./c-MHI3GYKF.js";import"./c-46XYM55L.js";import"./c-NUHP2XDB.js";import"./c-VHNSBD2M.js";export{a as SURFACE_THEME,b as default};
@@ -0,0 +1 @@
1
+ import{a as d}from"./c-WNTYKCDG.js";import"./c-PZ4XEPUP.js";import{g as w,l as v,n as x,q as s}from"./c-BJ7YQ5QZ.js";import{a as p}from"./c-4JZDZFF6.js";import{e as f}from"./c-VAK7SG37.js";import{b as m}from"./c-MHI3GYKF.js";import"./c-MCOOHCSG.js";import{b as c}from"./c-NUHP2XDB.js";import{f as l}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var $="Download a copy, then reduce its size; saving still works.",b="Download a copy to keep your work.",t=null,a=null,i=null,r=null;function h(e){return typeof e!="number"||!Number.isFinite(e)||e<0?"an unknown size":e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.max(1,Math.round(e/1024))} KB`:`${e} bytes`}function z({bytes:e,maxBytes:n,state:S}){let u=`At the last save attempt: ${h(e)} of ${h(n)}.`;return S==="over"?`This host can't save a file this size. ${u} ${b}`:`This file is getting large. ${u} ${$}`}function o(){if(!t)return;let e=window.visualViewport,n=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;c(t,"bottom",`calc(${16+n}px + env(safe-area-inset-bottom,0px))`)}function y(){d({})}function A(){t=v("div",["position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483000","display:flex","align-items:center","gap:10px 12px","width:max-content","max-width:calc(100vw - 24px)","flex-wrap:wrap","padding:8px 8px 8px 14px","text-align:left",`color-scheme:${p()}`]),t.setAttribute("clay","editor-ui"),t.setAttribute("data-clay-save-size",""),t.setAttribute("role","status"),a=x("span",[],""),i=w("Download my copy",{small:!0,onClick:y}),s(i,!1,"inline-flex"),t.append(a,i),document.body.appendChild(t),o(),window.visualViewport?.addEventListener("resize",o),window.visualViewport?.addEventListener("scroll",o)}function M(e){t||A(),a.textContent=z(e),s(i,e.state==="over","inline-flex"),o(),m(t,{background:f.surface})}function E(){t&&(window.visualViewport?.removeEventListener("resize",o),window.visualViewport?.removeEventListener("scroll",o),t.remove(),t=null,a=null,i=null)}function g(e){let n=e?.detail;n&&(n.state==="near"||n.state==="over"?M(n):E())}function k(){l||L()}function N(e){l&&(r||=new AbortController,document.addEventListener("clay:save-size",g,{signal:r.signal}),document.addEventListener("clay:modechange",k,{signal:r.signal}),e?.type==="clay:save-size"&&g(e))}function L(){r?.abort(),r=null,E()}export{N as start,L as stop};
@@ -0,0 +1 @@
1
+ var s=new Map,u=0;function l({id:e="",isPending:n,flush:o=null}){let t=++u;s.set(t,{id:e,isPending:n,flush:o});let r=!1;return{changed(){r||document.dispatchEvent(new CustomEvent("clay:unsaved-state-changed",{detail:{pending:i()}}))},dispose(){r||(r=!0,s.delete(t))}}}function a(e){try{return!!e.isPending()}catch(n){return console.error(`[clay] unsaved-state check "${e.id}" threw`,n),!0}}function i(){return[...s.values()].filter(a).map(e=>e.id)}function c(){for(let e of s.values())if(a(e))return!0;return!1}async function d(e={}){let n=[...s.values()].filter(t=>typeof t.flush=="function"&&a(t));return{ok:(await Promise.all(n.map(t=>Promise.resolve().then(()=>t.flush(e)).catch(()=>({ok:!1}))))).every(t=>t?.ok!==!1),pending:i()}}typeof window<"u"&&(window.clay=window.clay||{},window.clay.registerUnsavedState=l);export{l as a,i as b,c,d};