@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 @@
1
+ import{b as f}from"./c-PZ4XEPUP.js";import{a as d,b as p}from"./c-MCOOHCSG.js";import{K as y,L as i}from"./c-7MG5RU63.js";function m(e=new Date){let t=r=>String(r).padStart(2,"0");return`${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function g(e,t){let n=`<script type="application/json" id="clay-lost-edits" clay="no-save">${JSON.stringify(t).replace(/</g,"\\u003c")}<\/script>`,s=e.lastIndexOf("</body>");return s>=0?e.slice(0,s)+n+e.slice(s):e+n}function k(e,{refused:t=!1}={}){let r=window.clay?.conflicts||null,n=[],s=new Set;for(let o of e){let a=r?.recoveryOf(o.id);a&&!s.has(a.id)&&(s.add(a.id),n.push(a))}n.sort((o,a)=>(o.ticket||0)-(a.ticket||0));let u=o=>y(o.recoveryRoot??o.root,{prepared:o.domain==="save"}),c,l;t||!n.length?(c=i(),l=n):(c=u(n[n.length-1]),l=n.slice(0,-1));let h=e.map(o=>{if(o.kind==="apply-incomplete")return{id:o.id,kind:"apply-incomplete",name:"Sync update that did not finish",error:o.error??null};let{id:a,name:w,kind:$,yours:S,now:O,sentence:b}=f(o);return{id:a,name:w,kind:$,yours:S,now:O,sentence:b}}),v={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!!t,edits:h,earlierPages:l.map(o=>({applyId:o.id,source:o.source,html:u(o)}))};return{html:g(c,v),name:`${d()}-${t?"my-version":"my-copy"}-${m()}.html`}}function A({html:e=null,edits:t=[]}={}){try{let r=typeof e=="string"?e:i(),n={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!1,edits:Array.isArray(t)?t:[],earlierPages:[]};return p({html:g(r,n),name:`${d()}-my-copy-${m()}.html`})}catch(r){return console.error("clayjs: could not build the download",r),!1}}function D(e,{refused:t=!1}={}){try{let{html:r,name:n}=k(e,{refused:t});return p({html:r,name:n})}catch(r){return console.error("clayjs: could not build the download",r),!1}}export{A as a,D as b};
@@ -0,0 +1,72 @@
1
+ import{b as We}from"./c-HAWFNBYG.js";import{a as Ye,b as $e}from"./c-D3E4WJ4M.js";import{a as qe}from"./c-AQLFEATB.js";import{a as Ge}from"./c-AQYCG7QW.js";import{b as je}from"./c-L7JL5TL3.js";import{c as _e}from"./c-MHI3GYKF.js";import{b as Ke,c as Ve}from"./c-WCXLG3MV.js";import{a as Fe}from"./c-I2SCCUEW.js";import{d as Ne}from"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var xt=/^[a-z][a-z0-9+.-]*:/i,wt=["noindex","nofollow"],kt=["ogTitle","ogDescription","ogImage","ogImageAlt","siteName"],m=e=>e==null?"":String(e),O=e=>m(e).trim()!=="",T=e=>e.head||e.querySelector("head"),I=(e,t,o)=>Array.from(T(e).querySelectorAll("meta")).filter(i=>m(i.getAttribute(t)).trim().toLowerCase()===o),se=(e,t)=>Array.from(T(e).querySelectorAll("link")).filter(o=>m(o.getAttribute("rel")).trim().toLowerCase().split(/\s+/).includes(t)),ce=e=>Array.from(T(e).querySelectorAll("title")),pe=e=>I(e,"name","robots"),w=e=>e.remove();function $(e,t,o){let i=e.createElement("meta");return i.setAttribute(t,o),T(e).appendChild(i),i}function Et(e,t){let o=e.createElement("link");return o.setAttribute("rel",t),T(e).appendChild(o),o}function de(e,t,o,i){(I(e,t,o)[0]||$(e,t,o)).setAttribute("content",i)}function C(e,t,{trim:o=!1}={}){let i=c=>I(c,e,t);return{find:i,read(c){let d=i(c)[0];return d?m(d.getAttribute("content")):""},write(c,d){let f=i(c),p=m(d);if(!O(p)){f.forEach(w);return}(f[0]||$(c,e,t)).setAttribute("content",o?p.trim():p),f.slice(1).forEach(w)}}}var Je=e=>m(e.getAttribute("content")).split(",").map(t=>t.trim()).filter(Boolean);function At(e,t){let o=pe(e),i=(o[0]?Je(o[0]):[]).filter(p=>!wt.includes(p.toLowerCase())),c=[];t.index===!1&&c.push("noindex"),t.follow===!1&&c.push("nofollow");let d=c.concat(i);if(!d.length){o.forEach(w);return}(o[0]||$(e,"name","robots")).setAttribute("content",d.join(", ")),o.slice(1).forEach(w)}function Xe(e){let t=e==="noindex"?"index":"follow",o=t==="index"?"follow":"index";return{find:pe,read(i){let c=pe(i)[0];return c?!Je(c).some(d=>d.toLowerCase()===e):!0},write(i,c){let d={index:!0,follow:!0};d[t]=!!c,d[o]=x[o].read(i),At(i,d)}}}var Lt={find:ce,read(e){let t=ce(e)[0];return t?m(t.textContent):""},write(e,t){let o=ce(e),i=m(t);if(!O(i)){o.forEach(w);return}let c=o[0]||e.createElement("title");o.length||T(e).appendChild(c),c.textContent=i,o.slice(1).forEach(w)}},St={find(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?[t]:[]},read(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?m(t.getAttribute("lang")):""},write(e,t){let o=e.documentElement;if(!o)return;let i=m(t);if(!O(i)){o.removeAttribute("lang");return}o.setAttribute("lang",i.trim())}},Ct={find:e=>se(e,"canonical"),read(e){let t=se(e,"canonical")[0];return t?m(t.getAttribute("href")):""},write(e,t){let o=se(e,"canonical"),i=m(t);if(!O(i)){o.forEach(w);return}(o[0]||Et(e,"canonical")).setAttribute("href",i.trim()),o.slice(1).forEach(w)}},Y="clay-seo-title-mode",Ot={find:e=>I(e,"name",Y),read(e){return I(e,"name",Y).some(o=>m(o.getAttribute("content")).trim().toLowerCase()==="custom")?"custom":"derived"},write(e,t){let o=I(e,"name",Y);if(m(t).trim().toLowerCase()!=="custom"){o.forEach(w);return}(o[0]||$(e,"name",Y)).setAttribute("content","custom"),o.slice(1).forEach(w)}},x={title:Lt,description:C("name","description"),lang:St,canonical:Ct,index:Xe("noindex"),follow:Xe("nofollow"),ogTitle:C("property","og:title"),ogDescription:C("property","og:description"),ogImage:C("property","og:image",{trim:!0}),ogImageAlt:C("property","og:image:alt"),siteName:C("property","og:site_name"),twitterSite:C("name","twitter:site"),titleMode:Ot},Qe=Object.fromEntries(Object.keys(x).map(e=>[e,{read:x[e].read,write:x[e].write}]));function Ze(e){let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"}function ue(e){try{return new URL(e)}catch{return null}}function fe(e){return e.protocol==="http:"||e.protocol==="https:"}function et(e){let t=e.location&&e.location.href||e.URL||e.baseURI||"",o=ue(t);return!o||!fe(o)||Ze(o)?"":o.origin+o.pathname}function tt(e){let t=m(e).trim();if(!t)return"";let o=ue(t);return!o||!fe(o)?"Enter a full http: or https: address.":Ze(o)?"A localhost address cannot be a canonical URL.":""}function It(e,t){let o=m(e).trim();if(!o)return"";if(xt.test(o)){let i=ue(o);return!i||!fe(i)?"Use an http: or https: image address.":""}if(t)try{new URL(o,t)}catch{return"Use an http: or https: image address."}return""}function ot(e,t){let o=("canonical"in t?m(t.canonical).trim():x.canonical.read(e)).trim();return o&&!tt(o)?o:""}function Ut(e,t){let o=kt.some(d=>d in t&&O(t[d])),i="canonical"in t&&O(t.canonical);if(!o&&!i&&!("ogImage"in t))return;if(o||i){I(e,"property","og:type").length||de(e,"property","og:type","website");let d=ot(e,t)||et(e);d&&de(e,"property","og:url",d)}let c="ogImage"in t?t.ogImage:x.ogImage.read(e);de(e,"name","twitter:card",O(c)?"summary_large_image":"summary")}function H(e){let t={},o={};for(let i of Object.keys(x)){let c=x[i];t[i]=c.read(e),o[i]=c.find(e).length>0}return{values:t,present:o}}function G(e,t){let o=t||{},i=Object.keys(x).filter(p=>p in o),c={};if(i.includes("canonical")){let p=tt(o.canonical);p&&(c.canonical=p)}if(i.includes("ogImage")){let p=ot(e,o)||et(e),h=It(o.ogImage,p);h&&(c.ogImage=h)}if(Object.keys(c).length)return{normalized:[],errors:c};let d=[],f=new Set;for(let p of i){let h=x[p].find;h(e).length>1&&!f.has(h)&&(f.add(h),d.push(p))}for(let p of i)x[p].write(e,o[p]);return Ut(e,o),{normalized:d,errors:{}}}var nt="reopen-seo",zt="SEO and social sharing",Tt="SEO settings",it="SEO settings applied",dt=/^[a-z][a-z0-9+.-]*:/i,Mt="This site is hidden from search engines in your account settings, so this page stays hidden whatever you choose here.",Rt="Uploaded images are public to anyone with the link.",Pt="Paste the address of an image on the web.",Bt={title:{label:"Title",kind:"text",full:!0,count:60},description:{label:"Description",kind:"textarea",full:!0,count:160},ogTitle:{label:"Preview title",note:"Open Graph",kind:"text"},ogDescription:{label:"Preview description",note:"Open Graph",kind:"textarea",short:!0},ogImage:{label:"Preview image",note:"Open Graph",kind:"text",full:!0},canonical:{label:"Canonical URL",kind:"text"},lang:{label:"Language",kind:"text"},ogImageAlt:{label:"Image alt text",kind:"text"},siteName:{label:"Site name",kind:"text"},twitterSite:{label:"Social handle",kind:"text",placeholder:"@yourname"},index:{label:"Show in search results",kind:"checkbox"},follow:{label:"Let search engines follow links",kind:"checkbox"}},Dt=["title","description","ogTitle","ogDescription","ogImage"],Ht=["canonical","lang","ogImageAlt","siteName","twitterSite"],Nt=["index","follow"],_t=`.clay-seo { box-sizing: border-box; width: 100%; border-bottom: 1px solid var(--bevel-line-3); background: var(--bevel-surface); box-shadow: var(--clay-sheet-shadow); font-size: 13px; line-height: 1.45; container-type: inline-size; animation: clay-seo-in .2s ease-out; position: relative; z-index: 2147482001; grid-column: 1 / -1; flex: 0 0 100%; max-height: 85vh; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain; }
2
+ @keyframes clay-seo-in { from { margin-top: -40px; opacity: 0; } to { margin-top: 0; opacity: 1; } }
3
+ .clay-seo-inner { max-width: 1120px; margin: 0 auto; padding: 14px 20px 18px; }
4
+ .clay-seo-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--bevel-line-2); }
5
+ .clay-seo-heading { margin: 0; font: 500 19px/1.15 var(--bevel-font-serif); letter-spacing: -.01em; }
6
+ .clay-seo-actions { display: flex; gap: 8px; }
7
+ .clay-seo-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .9fr); gap: 22px; align-items: start; }
8
+ .clay-seo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
9
+ .clay-seo-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
10
+ .clay-seo-field.is-full { grid-column: 1 / -1; }
11
+ .clay-seo-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
12
+ .clay-seo-label-row label span { font-weight: 400; color: var(--bevel-muted); }
13
+ .clay-seo-field:has([aria-invalid="true"]) .clay-seo-label-row { color: var(--bevel-ox); }
14
+ .clay-seo-aside { display: inline-flex; align-items: baseline; gap: 10px; }
15
+ .clay-seo-count { font: 500 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); font-variant-numeric: tabular-nums; }
16
+ .clay-seo-count[data-over] { color: var(--bevel-ox); }
17
+ .clay-seo-derived { padding: 0; border: 0; background: none; color: var(--bevel-brass); font: 500 12px/1.3 var(--bevel-font-sans); text-decoration: underline; text-decoration-color: var(--bevel-line-3); text-underline-offset: 2px; cursor: pointer; }
18
+ .clay-seo-input { box-sizing: border-box; width: 100%; min-height: 32px; padding: 6px 9px; border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); color: var(--bevel-ink); font: 400 13px/1.45 var(--bevel-font-sans); }
19
+ textarea.clay-seo-input { min-height: 52px; resize: vertical; }
20
+ textarea.clay-seo-input.is-short { min-height: 32px; }
21
+ .clay-seo-input::placeholder { color: var(--bevel-faint); opacity: 1; }
22
+ .clay-seo-input:hover { border-color: var(--bevel-faint); }
23
+ .clay-seo-input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 1px; border-color: var(--bevel-brass); }
24
+ .clay-seo-input[aria-invalid="true"] { border-color: var(--bevel-ox); background: color-mix(in srgb, var(--bevel-ox-soft) 40%, var(--bevel-ground)); }
25
+ .clay-seo-error { margin: 0; font-size: 12px; font-weight: 500; color: var(--bevel-ox); }
26
+ .clay-seo-upload { display: flex; gap: 8px; }
27
+ .clay-seo-upload .clay-seo-input { flex: 1; min-width: 0; }
28
+ .clay-seo-note { margin: 0; font-size: 12px; color: var(--bevel-muted); }
29
+ .clay-seo-more { grid-column: 1 / -1; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); }
30
+ .clay-seo-more > summary { position: relative; display: flex; align-items: center; gap: 9px; padding: 6px 10px 6px 8px; list-style: none; font-size: 12.5px; font-weight: 500; cursor: pointer; user-select: none; }
31
+ .clay-seo-more > summary::-webkit-details-marker { display: none; }
32
+ .clay-seo-more > summary::before { content: ""; box-sizing: border-box; width: 20px; height: 20px; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); }
33
+ .clay-seo-more > summary::after { content: ""; position: absolute; left: 15px; top: 50%; width: 5px; height: 5px; border-right: 1.5px solid var(--bevel-ink); border-bottom: 1.5px solid var(--bevel-ink); transform: translateY(-50%) rotate(-45deg); }
34
+ .clay-seo-more[open] > summary { border-bottom: 1px solid var(--bevel-line); }
35
+ .clay-seo-more[open] > summary::before { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
36
+ .clay-seo-more[open] > summary::after { transform: translate(1px, -65%) rotate(45deg); }
37
+ .clay-seo-more-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 10px; background: var(--bevel-sunk); }
38
+ .clay-seo-checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 18px; }
39
+ .clay-seo-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
40
+ .clay-seo-check input { appearance: none; -webkit-appearance: none; position: relative; box-sizing: border-box; flex: none; width: 16px; height: 16px; margin: 0; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); cursor: pointer; }
41
+ .clay-seo-check input:checked { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
42
+ .clay-seo-check input:checked::after { content: ""; position: absolute; left: 3px; top: 0; width: 4px; height: 8px; border-right: 1.8px solid var(--bevel-ink); border-bottom: 1.8px solid var(--bevel-ink); transform: rotate(42deg); }
43
+ .clay-seo-check input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 2px; }
44
+ .clay-seo-preview { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
45
+ .clay-seo-preview-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
46
+ .clay-seo-preview-head span { font: 400 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); }
47
+ .clay-og { border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); overflow: hidden; }
48
+ .clay-og-image { position: relative; display: flex; align-items: flex-end; aspect-ratio: 1.91 / 1; max-height: 160px; width: 100%; padding: 10px 12px; box-sizing: border-box; overflow: hidden; background: var(--og-image, var(--bevel-brass-soft)); border-bottom: 1px solid var(--bevel-line-2); }
49
+ .clay-og-image[hidden] { display: none; }
50
+ .clay-og-image span { position: relative; font: 500 10.5px/1.3 var(--bevel-font-mono); padding: 2px 7px; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); color: var(--bevel-ink); }
51
+ .clay-og-body { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px 11px; }
52
+ .clay-og-host { font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
53
+ .clay-og-title { font: 600 14px/1.3 var(--bevel-font-sans); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
54
+ .clay-og-desc { font-size: 12.5px; line-height: 1.4; color: var(--bevel-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
55
+ .clay-seo-cardsize { margin: 0; font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
56
+
57
+ @container (max-width: 680px) {
58
+ .clay-seo-inner { padding: 12px 14px 16px; }
59
+ .clay-seo-grid, .clay-seo-fields, .clay-seo-more-grid { grid-template-columns: 1fr; }
60
+ .clay-seo-input { font-size: 16px; min-height: 40px; }
61
+ textarea.clay-seo-input { min-height: 96px; }
62
+ textarea.clay-seo-input.is-short { min-height: 40px; }
63
+ .clay-seo-check { font-size: 15px; }
64
+ }
65
+ .clay-og-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
66
+ .clay-seo-check > .clay-seo-check { display: inline-block; }
67
+ .clay-seo-conflict { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: var(--bevel-muted); }
68
+ .clay-seo-conflict[hidden] { display: none; }
69
+ .clay-seo-conflict p { margin: 0; flex-basis: 100%; }
70
+ .clay-seo-title-mode { margin: 0; font-size: 12px; color: var(--bevel-muted); }
71
+ @media (pointer: coarse), (max-width: 680px) { .clay-seo .clay-menu-btn { min-height: 40px; } .clay-seo :is(input, textarea, select) { font-size: 16px; } }
72
+ @media (prefers-reduced-motion: reduce) { .clay-seo { animation: none; transition: none; } }`,y=e=>e==null?"":String(e);function l(e,t,o){let i=document.createElement(e);return t&&(i.className=t),o!=null&&(i.textContent=o),i}var me=e=>{try{return new URL(e)}catch{return null}},pt=e=>!!e&&(e.protocol==="http:"||e.protocol==="https:"),Ft=e=>{let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"};function rt(e){let t=y(e).trim();if(!t)return"";let o=me(t);return!o||!pt(o)?"Enter a full http: or https: address.":Ft(o)?"A localhost address cannot be a canonical URL.":""}function at(e,t){let o=y(e).trim();if(!o)return"";if(dt.test(o)){let i=me(o);return!i||!pt(i)?"Use an http: or https: image address.":""}if(t)try{new URL(o,t)}catch{return"Use an http: or https: image address."}return""}function jt(){try{let e=new URL(location.href);return e.origin+e.pathname}catch{return""}}function lt(){return document.querySelectorAll("article[data-page]").length===1}var st="\uFFFC",ct=e=>[{t:"heading",level:1,parent:null,c:e}];function qt(e){if(e&&!e.isDestroyed){let d=e.state.doc;for(let f=0;f<d.childCount;f++){let p=d.child(f);if(p.type.name!=="heading"||p.attrs.level!==1||(p.attrs.parent??null)!==null)continue;let h="";return p.forEach(k=>{h+=k.isText?k.text:k.type.name==="hard_break"?st:""}),ct(h)}return[]}let t=document.querySelector("article[data-page]"),o=t&&[...t.children].find(d=>d.tagName==="H1");if(!o)return[];let i="",c=d=>{for(let f of d.childNodes)f.nodeType===3?i+=f.data:f.tagName==="BR"?i+=st:c(f)};return c(o),ct(i)}function Kt(){let e=window.clay&&window.clay.page&&window.clay.page.view;return We(qt(e))}function Vt(e){let t=me(y(e).trim());return t?t.hostname:""}function Wt(e,t){return typeof t=="boolean"?e==="index"?t?"Shown in search":"Hidden from search":e==="follow"?t?"Links followed":"Links not followed":t?"Yes":"No":y(t).trim()||"(empty)"}function ut(){!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}var Yt=e=>({...e});function $t(e){Ke(it,"success",{actions:[{label:"Undo",onClick:()=>{Ve(it),G(document,Yt(e)),ut()}}]})}function ao({returnFocus:e}={}){if(document.querySelector('clay-editor-ui[data-clay-ui="seo"]'))return;let t=H(document).values,o=e??Ge(),i=new Map,c=new Map,d=new Map,f=new Set,p=!1,h=null,k=!1,X="",ge=Fe({id:"seo",isPending:()=>!p&&Object.keys(Te()).length>0}),v=l("div","clay-seo");v.setAttribute("clay","editor-ui"),v.setAttribute("role","region"),v.setAttribute("aria-labelledby","clay-seo-heading");let M=l("button","clay-seo-derived","Use the first heading");M.type="button",M.hidden=!0;let U=l("button","clay-seo-upload-button clay-menu-btn","Upload image");U.type="button";let E=l("input","clay-seo-file");E.type="file",E.accept="image/*",E.hidden=!0,E.tabIndex=-1;let J=l("p","clay-seo-note",Rt);J.hidden=!0;let he=l("p","clay-seo-note",Pt),be=l("div","clay-seo-upload"),N=l("p","clay-seo-note");N.hidden=!0;let ye=l("p","clay-seo-cardsize clay-seo-note"),S=l("img");S.alt="";let _=l("div","clay-og-image");_.hidden=!0,_.append(S);let ve=l("span","clay-og-host"),xe=l("span","clay-og-title"),Q=l("span","clay-og-desc"),we=l("div","clay-og-body");we.append(ve,xe,Q);let ke=l("div","clay-og");ke.append(_,we);let Ee=l("span"),Ae=l("div","clay-seo-preview-head");Ae.append("Link preview",Ee);let Le=l("div","clay-seo-preview");Le.append(Ae,ke,ye);let F=l("div","clay-seo-fields"),Se=new Map;function Z(n){let r=Bt[n],a=`clay-seo-${n}`,s=l("div","clay-seo-field");r.full&&s.classList.add("is-full");let u=l(r.kind==="checkbox"?"input":r.kind==="textarea"?"textarea":"input",r.kind==="checkbox"?"clay-seo-check":"clay-seo-input");r.kind==="checkbox"?(u.type="checkbox",u.checked=t[n]!==!1):(r.kind!=="textarea"&&(u.type="text"),r.short&&(u.rows=1,u.classList.add("is-short")),u.value=y(t[n])),r.placeholder&&(u.placeholder=r.placeholder),u.id=a,u.dataset.key=n,window.clay&&window.clay.unsent&&u.setAttribute("unsent",`seo-${n}`),i.set(n,u);let b=l("p","clay-seo-error");b.hidden=!0,c.set(n,b);let g=l("div","clay-seo-conflict");g.hidden=!0;let z=l("p"),He=l("span","clay-seo-theirs");z.append("Changed elsewhere: ",He);let ie=l("button","clay-menu-btn clay-menu-btn-small clay-seo-theirs-button","Use theirs");ie.type="button";let re=l("button","clay-menu-btn clay-menu-btn-small clay-seo-mine-button","Keep mine");if(re.type="button",g.append(z,ie,re),d.set(n,{row:g,theirs:He}),ie.addEventListener("click",()=>{let L=H(document).values[n];r.kind==="checkbox"?u.checked=L!==!1:u.value=y(L),f.add(n),g.hidden=!0,P()}),re.addEventListener("click",()=>{f.add(n),g.hidden=!0}),r.kind==="checkbox"){let L=l("label","clay-seo-check");return L.append(u,r.label),s.append(L,b,g),s}let ae=l("div","clay-seo-label-row"),W=l("label");if(W.htmlFor=a,W.append(r.label),r.note&&W.append(" ",l("span",null,`(${r.note})`)),ae.append(W),r.count){let L=l("span","clay-seo-count");Se.set(n,{el:L,max:r.count});let le=l("span","clay-seo-aside");n==="title"&&le.append(M),le.append(L),ae.append(le)}return s.append(ae),n==="ogImage"?(be.append(u,U,E),s.append(be,he,J)):s.append(u),s.append(b,g),s}for(let n of Dt)F.append(Z(n));let R=l("details","clay-seo-more");R.append(l("summary",null,"More search and social fields"));let ee=l("div","clay-seo-more-grid");for(let n of Ht)ee.append(Z(n));let te=l("div","clay-seo-checks");for(let n of Nt)te.append(Z(n));te.append(N),ee.append(te),R.append(ee),F.append(R);let j=l("button","clay-seo-edit clay-menu-btn","Edit these settings");j.type="button";let q=l("button","clay-seo-cancel clay-menu-btn","Cancel");q.type="button";let oe=l("button","clay-seo-apply clay-menu-btn clay-menu-btn-primary","Done");oe.type="button";let Ce=l("div","clay-seo-actions");Ce.append(j,q,oe);let Oe=l("h2","clay-seo-heading",zt);Oe.id="clay-seo-heading";let Ie=l("div","clay-seo-bar");Ie.append(Oe,Ce);let Ue=l("div","clay-seo-grid");Ue.append(F,Le);let ze=l("div","clay-seo-inner");ze.append(Ie,Ue),v.append(ze);let A=n=>{let r=i.get(n);return r.type==="checkbox"?r.checked:r.value};function ne(){let n=y(A("canonical")).trim();return n&&!rt(n)?n:jt()}function ft(){let n=y(A("ogImage")).trim();if(!n||at(n,ne()))return"";if(dt.test(n))return n;try{return new URL(n,ne()||location.href).href}catch{return""}}function P(){let n=y(A("title")).trim(),r=y(A("description")).trim();i.get("ogTitle").placeholder=n,i.get("ogDescription").placeholder=r;for(let[u,b]of Se){let g=y(A(u)).trim().length;b.el.textContent=`${g} / ${b.max}`,g>b.max?b.el.dataset.over="":delete b.el.dataset.over}let a=ft();a?(S.src=a,S.hidden=!1):(S.removeAttribute("src"),S.hidden=!0),_.hidden=S.hidden,xe.textContent=y(A("ogTitle")).trim()||n||"Untitled page";let s=y(A("ogDescription")).trim()||r;Q.textContent=s,Q.hidden=!s,ve.textContent=Vt(A("canonical"))||location.host||"",Ee.textContent=a?"Large image card \xB7 1.91:1":"Summary card",ye.textContent=a?"Shared links show the large image.":"Add an image for the large card.",M.hidden=!(lt()&&Qe.titleMode.read(document)==="custom")}function Te(){let n={};for(let[r,a]of i){let s=a.type==="checkbox"?a.checked:a.value;s!==t[r]&&(n[r]=s)}return n}function mt(n){let r={};if("canonical"in n){let a=rt(n.canonical);a&&(r.canonical=a)}if("ogImage"in n){let a=at(n.ogImage,ne());a&&(r.ogImage=a)}return r}function gt(n){let r=H(document).values,a={};for(let s of Object.keys(n))f.has(s)||r[s]!==t[s]&&r[s]!==n[s]&&(a[s]=r[s]);return a}function Me(n){for(let r of Object.keys(n)){let a=i.get(r);if(a&&R.contains(a)){R.open=!0;return}}}function Re(n){Me(n);for(let[r,a]of c){let s=n[r]||"";a.textContent=s,a.hidden=!s,s?i.get(r)?.setAttribute("aria-invalid","true"):i.get(r)?.removeAttribute("aria-invalid")}}function ht(n){Me(n);for(let[r,a]of d){let s=n[r],u=s!==void 0;a.row.hidden=!u,a.theirs.textContent=u?Wt(r,s):""}}function bt(){if(!(window.clay&&window.clay.mode==="edit")){B();return}let n=Te(),a=lt()?X||("title"in n?"custom":""):"";for(let z of d.values())z.row.hidden=!0;if(Re({}),!Object.keys(n).length&&!a){B();return}let s=mt(n);if(Object.keys(s).length){Re(s);return}let u=gt(n);if(Object.keys(u).length){ht(u);return}let b=a?{...n,titleMode:a}:n,g=window.clay&&window.clay.undo;if(g&&typeof g.commit=="function")g.commit(Tt,()=>G(document,b));else{let z=H(document).values;G(document,b),$t(z)}B(),ut()}function yt(){let n=!!(window.clay&&window.clay.mode==="edit");U.hidden=!k||!n,he.hidden=k||!n,J.hidden=!k||!n||!/(^|\.)hyperclay\.com$/i.test(location.hostname)}function K(){let n=!!(window.clay&&window.clay.mode==="edit");for(let r of i.values())r.type==="checkbox"?r.disabled=!n:r.readOnly=!n;j.hidden=n,q.hidden=!n,yt()}function Pe(){p||(K(),k||Be())}function B(){p||(p=!0,ge.dispose(),document.removeEventListener("clay:modechange",Pe),V&&V.disconnect(),D.remove(),h?.remove(),o&&o.isConnected&&typeof o.focus=="function"&&o.focus())}async function vt(){let n;try{n=await fetch(location.href,{method:"HEAD"})}catch{return}if(p||!v.isConnected)return;let r=n&&n.headers&&typeof n.headers.get=="function"?n.headers.get("x-robots-tag"):"";!r||!/noindex/i.test(r)||(N.textContent=Mt,N.hidden=!1)}async function Be(){if(typeof(window.clay&&window.clay.upload)!="function")return;let r=null;try{r=await Ne()}catch{r=null}p||!v.isConnected||(k=!!(r&&Array.isArray(r.extensions)&&r.extensions.includes("upload")),K())}F.addEventListener("input",()=>{P(),ge.changed()}),i.get("title").addEventListener("input",()=>{X=""}),M.addEventListener("click",()=>{X="derived",i.get("title").value=Kt(),P()}),U.addEventListener("click",()=>E.click()),E.addEventListener("change",async()=>{let n=E.files&&E.files[0];if(!n)return;let r=window.clay&&window.clay.upload;if(typeof r!="function")return;U.disabled=!0;let a;try{a=await r(n)}catch{a=null}if(U.disabled=!1,p||!v.isConnected)return;let s=a&&a.ok&&Array.isArray(a.uploads)?a.uploads[0]:null;!s||!s.url||(i.get("ogImage").value=s.url,P())}),oe.addEventListener("click",bt),q.addEventListener("click",B),j.addEventListener("click",async()=>{let n=window.clay;if(!n||typeof n.setMode!="function")return;let r=n.storage&&n.storage.session;r&&r.set(nt,!0);let a;try{a=await n.setMode("edit")}catch{a=null}if(p||!!a&&a.ok!==!1&&!!a.reloading)return;r&&r.remove(nt);let u=qe(a);u&&(window.clay?.menu?.note||window.clay?.toast)?.(u,"error"),a&&a.ok!==!1&&K()});let D=document.createElement("style");D.id="clay-seo-vars",D.setAttribute("clay","editor-ui"),document.head.append(D);let V=null;function De(){D.textContent=`:root { --clay-seo-height: ${Math.ceil(v.getBoundingClientRect().height)}px; }`}v.addEventListener("keydown",n=>{n.key==="Escape"&&(n.preventDefault(),B())}),document.addEventListener("clay:modechange",Pe),_e(v,{x:0,y:0,width:innerWidth,height:Math.min(200,innerHeight)},Ye),h=je({name:"seo",content:v,css:[$e,_t],before:document.body.firstChild}),De(),typeof ResizeObserver=="function"&&(V=new ResizeObserver(De),V.observe(v)),P(),K(),i.get("title").focus(),vt(),Be()}export{ao as open};
@@ -0,0 +1 @@
1
+ import{g as Y}from"./c-3O7OBDCM.js";var me=500,ye=5e3,O="text";var _e=1024*1024,Se=256,Ae=1024*1024;function Be(){let s=globalThis.crypto?.randomUUID?.();return s||`wr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}var W="clay-recovery-writer:";function Me(s){let a=globalThis.navigator?.locks;typeof a?.request=="function"&&a.request(W+s,()=>new Promise(()=>{})).catch(()=>{})}async function Te(s){let a=globalThis.navigator?.locks;if(typeof a?.query!="function")return new Set;try{let{held:p=[]}=await a.query();return new Set(p.map(f=>f.name).filter(f=>typeof f=="string"&&f.startsWith(W)).map(f=>f.slice(W.length)).filter(f=>f!==s))}catch{return new Set}}function D(s){return Array.isArray(s)?s.join("\0"):String(s)}function F(s,a){return Array.isArray(s)&&Array.isArray(a)?s.length===a.length&&s.every((p,f)=>p===a[f]):s===a}function Ue(s){return globalThis.crypto?.randomUUID?.()??`rec-${s}-${Math.random().toString(36).slice(2)}`}function C(s){return s instanceof Uint8Array?new Uint8Array(s):s instanceof ArrayBuffer?s.slice(0):s}function V(s,a){if(s===a)return!0;if(!s||!a||typeof s!="object"||typeof a!="object")return!1;if(s instanceof Uint8Array||a instanceof Uint8Array){if(!(s instanceof Uint8Array)||!(a instanceof Uint8Array)||s.length!==a.length)return!1;for(let g=0;g<s.length;g++)if(s[g]!==a[g])return!1;return!0}let p=Object.keys(a),f=Object.keys(s);if(p.length!==f.length)return!1;for(let g=0;g<p.length;g++)if(p[g]!==f[g]||a[p[g]]!==s[f[g]])return!1;return!0}var B=new Set;function xe({captureId:s,html:a}={}){if(B.size)for(let p of B)p.capture(s,a)}function De(s){if(!(!B.size||s==null))for(let a of B)a.pinCapture(s)}function qe(s,a){if(!(!B.size||s==null))for(let p of B)p.coverCapture(s,a)}function ze({captureId:s,ok:a=!1,etag:p=null}={}){if(B.size)for(let f of B)f.settle(s,a===!0,p)}function Ce({mode:s=Y==="draft"?"draft":"edit",writerId:a=Be(),indexedDB:p,maxScopeBytes:f,maxDbBytes:g,now:E}={}){let S=new Map,Q=new Set,q=new Map,z=new Map,R=null,P=null,h=null,A={ok:!0,code:null,durable:!1};Me(a);function _(){return{ok:A.ok,code:A.code,durable:A.durable,usage:h?.status().usage??null,identityMismatch:P?P.check().ok===!1:!1}}function w(e){let n={channel:e.channel,status:_(),count:e.pending.size,revisions:[...e.pending.values()].map(({id:t,revision:o})=>({id:t,revision:o}))};for(let t of e.listeners)try{t(n)}catch{}for(let t of Q)try{t(n)}catch{}}function b(e){if(e&&e.ok){let t=A.ok;if(A={ok:!0,code:null,durable:!0},!t)for(let o of S.values())w(o);return}let n=e?.code||"error";if(A.ok||A.code!==n){A={ok:!1,code:n,durable:!1};for(let t of S.values())w(t);return}A={ok:!1,code:n,durable:!1}}async function G(){let[{createIdentity:e},{createStore:n}]=await Promise.all([import("./c-B3JM5ZXC.js"),import("./c-R7LBFMF5.js")]);P=e({mode:s,writerId:a}),h=n({scope:P.scope,indexedDB:p,maxScopeBytes:f,maxDbBytes:g,now:E});let t=await h.open();return t.ok?A={ok:!0,code:null,durable:!1}:b(t),t}function m(){return R||(R=G().catch(e=>({ok:!1,code:e?.name==="DataCloneError"?"uncloneable":"unavailable"}))),R}function I(e,n){let t;try{t=e.readSaved(n)}catch{return[]}if(!t||typeof t.get!="function")return[];let o=[];for(let r of e.held.values())r.kind===O&&t.has(r.key)&&V(t.get(r.key),r.payload)&&o.push({id:r.id,revision:r.revision});return o}function J(e){let n=[];for(let t of S.values())if(!(typeof t.readSaved!="function"||!t.held.size))for(let o of t.held.values())o.kind===O&&n.push({channel:t.channel,key:o.key,id:o.id,revision:o.revision,payload:o.payload});n.length&&z.set(e,n)}function Z(e,n){let t=z.get(e);if(z.delete(e),!t||typeof n!="string")return;let o=new Map,r=new Map;for(let i of t){if(!o.has(i.channel)){let u=S.get(i.channel),d=null;try{d=typeof u?.readSaved=="function"?u.readSaved(n):null}catch{d=null}o.set(i.channel,d&&typeof d.get=="function"?d:null)}let l=o.get(i.channel);if(!l||!l.has(i.key)||!V(l.get(i.key),i.payload))continue;let c=r.get(i.channel)??[];c.push({id:i.id,revision:i.revision}),r.set(i.channel,c)}r.size&&q.set(e,r)}function ee(e,n){if(e==null||typeof n!="string")return;let t=new Map;for(let o of S.values()){if(typeof o.readSaved!="function"||!o.held.size)continue;let r=I(o,n);r.length&&t.set(o.channel,r)}t.size&&q.set(e,t)}async function ne(e,n,t,o){if((await m()).ok){for(let{id:i,revision:l}of n){let c=await h.acknowledge(i,{revision:l,etag:t,captureId:o});b(c);let u=D(i),d=e.held.get(u);d&&d.revision<=l&&e.held.delete(u)}w(e)}}function te(e,n,t){z.delete(e);let o=q.get(e);if(!o||(q.delete(e),!n))return Promise.resolve();let r=[];for(let[i,l]of o){let c=S.get(i);if(!c)continue;let u=()=>ne(c,l,t,e);c.writing=c.writing.then(u,u),r.push(c.writing)}return Promise.all(r).then(()=>{},()=>{})}function oe(e){let n=E?.()??Date.now();e.burstStart||(e.burstStart=n);let t=Math.max(0,Math.min(me,e.burstStart+ye-n));e.timer&&clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,e.burstStart=0,$(e).catch(()=>{})},t)}function ie(e,{key:n,kind:t=O,baseEtag:o=null,base:r=null,payload:i=null,lineage:l=null}={}){let c=n==null?"":String(n);if(!c)throw new TypeError("clay.recovery.stage needs a key");let u=E?.()??Date.now(),d=++e.revision,k=t===O?[e.channel,c,a]:globalThis.crypto?.randomUUID?.()??`rec-${d}-${Math.random().toString(36).slice(2)}`,M=D(k),T=e.pending.get(M),y={id:k,kind:t,channel:e.channel,version:e.version,key:c,writerId:a,revision:d,status:"journaled",baseEtag:o,base:C(r),payload:C(i),lineage:l,created:T?.created??u,updated:u};return e.pending.set(M,y),e.held.set(M,{id:k,kind:t,key:c,revision:d,payload:y.payload}),oe(e),w(e),{id:k,revision:d}}async function re(e){let n=[...e.pending.values()];if(!n.length)return{ok:!0,stored:[]};let t=await m();if(!t.ok)return{ok:!1,code:t.code};let o=[],r=null;for(let i of n){let l=await h.put(i);if(l.ok){let c=D(i.id);if(e.pending.get(c)===i&&e.pending.delete(c),l.skipped){let u=e.held.get(c);u&&u.revision===i.revision&&e.held.delete(c)}else o.push({id:i.id,revision:i.revision})}else r=r||l.code||"error"}return b(r?{ok:!1,code:r}:{ok:!0}),w(e),r?{ok:!1,code:r}:{ok:!0,stored:o}}function X(e,n){return[e.channel,n,a]}function se(e,n,t,o,r){return{id:n,kind:"binary",channel:e.channel,version:e.version,writerId:a,revision:0,context:t,payload:{base:r??new Uint8Array(0),dependencies:new Uint8Array(0),owned:new Uint8Array(0)},acknowledged:null,created:o,updated:o}}function H(e,n,t){return e.batchQueue.size>=Se||e.queuedBytes+n.payload.byteLength>Ae?!1:(e.batchQueue.set(D(n.id),{record:n,capsule:t}),e.queuedBytes+=n.payload.byteLength,!0)}async function ce(e){if(!e.batchQueue.size)return{ok:!0};let n=await m();if(!n.ok)return{ok:!1,code:n.code};let t=[],o=null;for(let[r,i]of[...e.batchQueue.entries()]){let l=await h.appendBinary(i.record,i.capsule);if(!l.ok){o=o||l.code||"error";continue}e.batchQueue.delete(r),e.queuedBytes=Math.max(0,e.queuedBytes-i.record.payload.byteLength),!l.skipped&&(e.batches+=1,e.batchBytes+=i.record.payload.byteLength,t.push({id:i.record.id,revision:i.record.revision}))}return b(o?{ok:!1,code:o}:{ok:!0}),w(e),o?{ok:!1,code:o}:{ok:!0,stored:t}}async function ae(e,{key:n,context:t=null,update:o,origin:r="local",base:i=null}={}){let l=n==null?"":String(n);if(!l)throw new TypeError("clay.recovery.append needs a key");if(!(o instanceof Uint8Array)&&!(o instanceof ArrayBuffer))throw new TypeError("clay.recovery.append needs binary bytes");let c=E?.()??Date.now(),u=++e.revision,d=X(e,l),k={id:Ue(u),kind:"binary-batch",channel:e.channel,version:e.version,writerId:a,revision:u,capsuleId:d,origin:r==="dependency"?"dependency":"local",context:t,payload:C(o),updated:c},M=se(e,d,t,c,i==null?null:C(i)),T=await m();if(!T.ok)return H(e,k,M)?{ok:!1,code:T.code}:{ok:!1,code:"over-budget"};let y=await h.appendBinary(k,M);return b(y),w(e),y.ok?(e.batches+=1,e.batchBytes+=k.payload.byteLength,y.skipped?{ok:!0,id:k.id,revision:u,skipped:!0}:{ok:!0,id:k.id,revision:u}):H(e,k,M)?{ok:!1,code:y.code}:{ok:!1,code:y.code}}async function le(e,{records:n=[],authority:t=null,epoch:o=null,sequence:r=null}={}){let i=(n||[]).filter(u=>u&&u.id!==void 0&&typeof u.revision=="number");if(!i.length)return{ok:!0,acknowledged:0};let l=await m();if(!l.ok)return{ok:!1,code:l.code};let c=await h.acknowledgeBinary({channel:e.channel,version:e.version,writerId:a,records:i,authority:t,epoch:o,sequence:r});return b(c),w(e),c.ok?{ok:!0,acknowledged:c.acknowledged}:{ok:!1,code:c.code}}async function ue(e,{records:n=[],proof:t=null}={}){let o=(n||[]).filter(u=>u&&u.id!==void 0&&typeof u.revision=="number");if(!o.length)return{ok:!0,retired:[]};if(typeof e.validateCheckpoint!="function")return{ok:!0,retired:[]};let r;try{r=await e.validateCheckpoint(t,o.map(({id:u,revision:d})=>({id:u,revision:d})))}catch{return{ok:!1,code:"invalid",retired:[]}}if(!Array.isArray(r))return{ok:!1,code:"invalid",retired:[]};let i=o.filter(u=>r.some(d=>d&&d.revision===u.revision&&F(d.id,u.id)));if(!i.length)return{ok:!0,retired:[]};let l=await m();if(!l.ok)return{ok:!1,code:l.code,retired:[]};let c=await h.checkpointBinary({channel:e.channel,version:e.version,writerId:a,records:i});return b(c),w(e),c.ok?{ok:!0,retired:c.retired}:{ok:!1,code:c.code,retired:[]}}function L(e){return e&&typeof e.byteLength=="number"&&e.byteLength>0?e:null}async function K(e,n,t=null){for(let o=0;o<3;o++){let r=t?.capsuleId??null,i=[];for(let{id:v,revision:be}of n){let j=await h.get(v);if(!j.ok||!j.record)continue;let U=j.record;U.revision!==be||U.kind!=="binary-batch"||!U.capsuleId||(r||(r=U.capsuleId),F(r,U.capsuleId)&&i.push(U))}if(!r||!(i.length||t))return{ok:!0,retired:[]};let l=await h.get(r);if(!l.ok||!l.record)return{ok:!1,code:"missing"};let c=l.record,u=[L(c.payload?.owned),...i.filter(v=>v.origin!=="dependency").map(v=>L(v.payload))].filter(Boolean),d=[L(c.payload?.dependencies),...i.filter(v=>v.origin==="dependency").map(v=>L(v.payload))].filter(Boolean),k=u.length?C(await e.merge(u)):new Uint8Array(0),M=d.length?C(await e.merge(d)):new Uint8Array(0),T={base:c.payload?.base??new Uint8Array(0),dependencies:M,owned:k};t&&(T=await t.rebuild(T));let y=Math.max(e.revision,c.revision)+1;e.revision=y;let x=await h.compactBinary({channel:e.channel,version:e.version,capsuleId:r,expectedRevision:c.revision,replacement:{revision:y,updated:E?.()??Date.now(),context:t?.context,payload:T},inputs:i.map(v=>({id:v.id,revision:v.revision}))});if(x.ok)return i.length&&(e.batches=e.batchBytes=0),{ok:!0,retired:x.retired,revision:x.revision};if(x.code!=="stale")return{ok:!1,code:x.code}}return{ok:!1,code:"stale"}}async function de(e,{records:n=[]}={}){if(typeof e.merge!="function")return{ok:!1,code:"invalid",retired:[]};let t=(n||[]).filter(i=>i&&i.id!==void 0&&typeof i.revision=="number");if(!t.length)return{ok:!0,retired:[]};let o=await m();if(!o.ok)return{ok:!1,code:o.code,retired:[]};let r=await K(e,t);return b(r),w(e),r.ok?{ok:!0,retired:r.retired}:{ok:!1,code:r.code,retired:[]}}async function fe(e,{key:n,context:t,rebuild:o}={}){let r=await m(),i=r.ok?await K(e,[],{capsuleId:X(e,String(n)),context:t,rebuild:o}):r;return b(i),i}function $(e){e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0;let n=async()=>{let t=await ce(e);return t.ok?re(e):t};return e.writing=e.writing.then(n,n),e.writing}async function pe(e){let n=await m();if(!n.ok)return{ok:!1,code:n.code,records:[],status:_()};let t=await h.list();if(b(t),!t.ok)return{ok:!1,code:t.code,records:[],status:_()};let o=await Te(a);return{ok:!0,records:t.records.filter(i=>i.channel===e.channel&&!o.has(i.writerId)).map(i=>({...i,supported:i.version===e.version})),status:_()}}async function he(e,n,{revision:t}={}){let o=await m();if(!o.ok)return{ok:!1,code:o.code};e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0,await e.writing;let r=D(n),i=e.pending.get(r);i&&(t===void 0||i.revision===t)&&e.pending.delete(r);let l=e.held.get(r);l&&(t===void 0||l.revision===t)&&e.held.delete(r);let c=await h.remove(n,{revision:t});return b(c),w(e),c.ok?{ok:!0,id:n,revision:t}:{ok:!1,code:c.code}}function ke(e,n){return e.listeners.add(n),()=>e.listeners.delete(n)}function ge(e){e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0;let n=$(e).catch(()=>({ok:!1,code:"aborted"}));return e.listeners.clear(),S.delete(e.channel),S.size||B.delete(N),n}let N={capture:ee,settle:te,pinCapture:J,coverCapture:Z};function ve(e){return{channel:e.channel,version:e.version,stage:n=>ie(e,n),flush:()=>$(e),list:()=>pe(e),dismiss:(n,t)=>he(e,n,t),append:n=>ae(e,n),markAcknowledged:n=>le(e,n),checkpoint:n=>ue(e,n),compact:n=>de(e,n),rebase:n=>fe(e,n),subscribe:n=>ke(e,n),dispose:()=>ge(e)}}function we({channel:e,version:n=1,readSaved:t=null,describe:o=null,validateCheckpoint:r=null,merge:i=null}={}){if(!e||typeof e!="string")throw new TypeError("clay.recovery.register needs a channel name");let l=S.get(e);if(l)throw new Error(`clay.recovery: the "${e}" channel is already registered at version ${l.version}`);let c={channel:e,version:n,readSaved:t,describe:o,validateCheckpoint:r,merge:i,revision:0,pending:new Map,held:new Map,batchQueue:new Map,queuedBytes:0,batches:0,batchBytes:0,compaction:null,timer:null,burstStart:0,writing:Promise.resolve(),listeners:new Set};return S.set(e,c),B.add(N),m(),ve(c)}return{register:we,status:_,subscribe(e){return Q.add(e),()=>Q.delete(e)}}}var Pe=Ce();export{xe as a,De as b,qe as c,ze as d,Ce as e,Pe as f};
@@ -0,0 +1,2 @@
1
+ import{a as E,b as S,c as P}from"./c-KBS3UV6B.js";import{i as A,j as q}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 T}from"./c-AMU3BPPR.js";import{b as k,m as x}from"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var R=/^[A-Za-z0-9_-]{8,64}$/,D="@",F=100;function _({view:o=null}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let f=o.dom.ownerDocument,y=()=>globalThis.clay?.people??null,l=null;function d(t){let e=o.state;if(!e.selection.empty)return null;let r=e.selection.head;if(r<=t.from||r-t.from>F+1||r>e.doc.content.size)return null;let n=e.doc.resolve(t.from);return!n.parent.isTextblock||n.parent.type.spec.code||r>n.end()||r<n.start()||n.parentOffset&&!/\s/.test(e.doc.textBetween(t.from-1,t.from,"",`
2
+ `))||e.doc.textBetween(t.from,t.from+1)!==D?null:{head:r,query:e.doc.textBetween(t.from+1,r)}}function $(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 h(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 m(t){t.picker.show(S(E(t.saved,t.allowed),t.query),$(t)),h(t)}function i(){let t=l;if(t){l=null;for(let[e,r,n,s]of t.listen)e.removeEventListener(r,n,s);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function p(){let t=l;if(!t||o.composing)return;let e=d(t);if(!e)return i();t.query=e.query,m(t)}async function g(t){let e=l;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),n=d(e);if(!(r&&n&&n.query===e.query&&R.test(String(r.id??""))&&String(r.name??"").trim()))return i(),{ok:!1,code:r?"stale-target":"no-person"};let c=String(r.name).trim();return i(),A(o,()=>{let u=d(e);if(!u||u.query!==e.query)return{ok:!1,code:"stale-target"};let a=o.state.tr.insertText(c,e.from,u.head);return a.addMark(e.from,e.from+c.length,x.marks.mention.create({id:r.id})),a.insertText(" ",e.from+c.length),a.setSelection(k.TextSelection.create(a.doc,e.from+c.length+1)),o.dispatch(T(a)),o.focus(),{ok:!0,id:r.id,label:c}})}function B(t){let e=l;if(!e||q(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),h(e)):t.key==="Enter"?(r(),g(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),i())}function I(t){let e=y()?.available;e&&Promise.resolve().then(()=>e()).then(r=>{l===t&&(t.allowed=Array.isArray(r)?r:null,m(t))}).catch(()=>{})}function M(t){i();let e=P({document:f,onPick:c=>g(c)}),r={from:t,picker:e,query:"",allowed:null,saved:[],listen:[]};try{r.saved=y()?.list?.()??[]}catch{r.saved=[]}l=r;let n=(c,u,a,b)=>{c.addEventListener(u,a,b),r.listen.push([c,u,a,b])};n(f,"keydown",c=>B(c),!0),n(o.dom,"input",()=>p()),n(o.dom,"keyup",()=>p()),n(o.dom,"compositionend",()=>p()),n(f,"mousedown",c=>{r.picker.el.contains(c.target)||i()},!0),(o.dom.parentElement??f.body).appendChild(e.el);let s=d(r);return s?(r.query=s.query,m(r),I(r),{ok:!0,picker:!0}):(i(),{ok:!1,code:"stale-target"})}return{async run(t={}){let e=Number.isInteger(t?.from)?t.from:null;if(e===null){let r=o.state,n=r.selection.$from;if(!r.selection.empty||!n.parent.isTextblock||n.parent.type.spec.code)return{ok:!1,code:"stale-target"};e=r.selection.from;let s=o.state.tr.insertText(D);s.setSelection(k.TextSelection.create(s.doc,e+1)),o.dispatch(s)}return M(e)},dispose(){i()}}}export{_ as createFeature};
@@ -0,0 +1 @@
1
+ import{b as g}from"./c-3O7OBDCM.js";import{c as x}from"./c-BPF2NSPV.js";var y="/_/meta",v=6e3,A=new WeakMap,S=new WeakMap,O=new WeakMap,_=0;function f(t,e=s(),n=null,o=null){return A.set(e,t),n!==null&&S.set(e,n),o!==null&&O.set(e,o),e}function b(t){return A.get(t)??"none"}function R(t){return S.get(t)}function $(t){return O.get(t)??0}function s(){return{spec:null,extensions:[],document:null}}var h=null,m=null;function d({fresh:t=!1}={}){if(g)return Promise.resolve(s());if(!t)return h||(h=T().catch(s)),h;if(!m){let e=h;m=T().catch(s).finally(()=>{m=null}),h=m.then(async n=>{if(b(n)==="ok"||!e)return n;let o=await e;return b(o)==="ok"?o:n})}return m}async function P(t){return(await d()).extensions.includes(t)}async function D(){return(await d()).extensions.includes("page-format-v1")?1:0}async function C(){let t=await d();return t.extensions.includes("page-recovery-v1")&&t.document?.pageState?.href||null}async function H(){return(await d()).document?.versions===!0}var E=["codeEditor","versions","duplicate","reveal","export"];function M(t){if(typeof t!="string"||!t)return null;try{let e=new URL(t,location.href);return e.protocol==="http:"||e.protocol==="https:"?e:null}catch{return null}}async function N(){let e=(await d()).document?.actions,n={};if(!e||typeof e!="object")return n;for(let o of E){let i=M(e[o]?.href);if(i){n[o]={href:i.href};continue}let a=M(e[o]?.post);a&&a.origin===location.origin&&(n[o]={post:a.href})}return n}function W(){h=null,m=null}async function F({saveId:t,requestHash:e,signal:n}={}){if(g||typeof t!="string"||!t||typeof e!="string"||!e||!/^https?:$/.test(window.location.protocol)||n?.aborted)return null;let o=new AbortController,i=()=>o.abort(),a=setTimeout(i,v);n?.addEventListener("abort",i);try{let u=await d();if(b(u)!=="ok"||!u.extensions.includes("save-history")||o.signal.aborted)return null;let p=x(),r=p?`${y}/${p}`:y,w=await fetch(new URL(r,window.location.origin).href,{method:"GET",credentials:p?"omit":"same-origin",headers:{"Document-URL":window.location.href,"Save-ID":t,"Save-Request-Hash":e},cache:"no-store",redirect:"manual",signal:o.signal});if(!w.ok)return null;let k=await w.text();if(!k)return null;let c;try{c=JSON.parse(k)}catch{return null}if(!c||typeof c!="object"||typeof c.spec!="number"||!Array.isArray(c.extensions)||!c.extensions.includes("save-history"))return null;let l=c.document&&typeof c.document=="object"?c.document.saveOutcome:null;return!l||typeof l!="object"||l.saveId!==t||l.requestHash!==e||l.status!=="applied"&&l.status!=="unknown"?null:{saveId:t,requestHash:e,status:l.status}}catch{return null}finally{clearTimeout(a),n?.removeEventListener("abort",i)}}async function T(){let t=location.pathname,e=++_;if(!/^https?:$/.test(window.location.protocol))return f("none",s(),t,e);let n=x(),o=n?`${y}/${n}`:y,i=new AbortController,a=setTimeout(()=>i.abort(),v);try{let u=await fetch(new URL(o,window.location.origin).href,{method:"GET",credentials:n?"omit":"same-origin",headers:{"Document-URL":window.location.href},cache:"no-store",redirect:"manual",signal:i.signal});if(!u.ok)return f(u.status>=500?"failed":"none",s(),t,e);let p=await u.text();if(!p)return f("none",s(),t,e);let r;try{r=JSON.parse(p)}catch{return f("none",s(),t,e)}return!r||typeof r!="object"||typeof r.spec!="number"?f("none",s(),t,e):f("ok",{spec:r.spec,extensions:Array.isArray(r.extensions)?r.extensions:[],document:r.document&&typeof r.document=="object"?r.document:null},t,e)}catch{return f("failed",s(),t,e)}finally{clearTimeout(a)}}export{b as a,R as b,$ as c,d,P as e,D as f,C as g,H as h,N as i,W as j,F as k};
@@ -0,0 +1 @@
1
+ var l="clay:bottom-ui-changed";function u(){document.dispatchEvent(new CustomEvent(l))}function d(o,i,t){return(o.elementsFromPoint?o.elementsFromPoint(i,t):[]).filter(n=>n.getRootNode()===o).flatMap(n=>n.localName==="clay-editor-ui"&&n.shadowRoot?d(n.shadowRoot,i,t):[n])}function h(o,i){let t=window.innerHeight,r=0;for(let n of d(document,o,t-3))for(let e=n;e&&e!==document.body&&e!==document.documentElement&&!i(e);e=e.parentElement??e.getRootNode().host){let c=getComputedStyle(e).position;if(c==="fixed"||c==="sticky"){let a=Math.ceil(t-e.getBoundingClientRect().top);a<t/3&&(r=Math.max(r,a));break}}return r}function m(o){let i=document.querySelector('clay-editor-ui[data-clay-ui="download-prompt"]')?.shadowRoot.querySelector("#hcp:not([hidden])");if(!i)return 0;let t=i.getBoundingClientRect();return!t.width||!t.height||t.right<=o.left||t.left>=o.right?0:Math.ceil(window.innerHeight-t.top)}export{l as a,u as b,h as c,m as d};
@@ -0,0 +1,10 @@
1
+ import{b as F,c as M}from"./c-MWXFLW4J.js";import{B as N,d as $}from"./c-AMU3BPPR.js";import{G as U,J as A,k as X,l as Y,m as w}from"./c-QIXT3Q7C.js";import{b as P}from"./c-L7JL5TL3.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var k=5;function v(n){let u=0;for(let s=0;s<n.childCount;s++){let i=n.child(s);if(i.type===w.nodes.heading&&i.attrs.level===1&&i.attrs.parent==null)return{index:s,at:u,node:i};u+=i.nodeSize}return null}var O=`
2
+ :host{font:inherit !important;color:inherit !important}
3
+ .page-cover-panel{display:flex;align-items:center;gap:8px;margin:8px 0;padding:6px 10px;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}
4
+ .page-cover-msg{max-width:34ch}
5
+ .page-cover-bar{flex:1;height:2px;border-radius:1px;background:var(--page-rule);overflow:hidden}
6
+ .page-cover-bar>span{display:block;height:100%;background:var(--page-progress, var(--page-ink-soft));transition:width 200ms}
7
+ .page-cover-btn{border:0;padding:4px 8px;border-radius:6px;background:none;color:inherit;font:inherit;cursor:pointer}
8
+ .page-cover-btn:hover{background:var(--page-pop-hover)}
9
+ .page-cover-panel[data-state="error"] .page-cover-msg{color:var(--page-danger, #9E3B2F)}
10
+ `,h=n=>Math.min(100,Math.max(0,Math.round(n)));async function R(n,u){if(typeof n.runFormatCommand!="function")return{ok:!1,code:"page-format-unsupported"};let s=await n.runFormatCommand(u);return s?.status==="applied"?s.result:{ok:!1,code:s?.code??s?.status??"page-format-refused",retry:s?.retry===!0}}var _=n=>new Promise((u,s)=>{let i=new FileReader;i.onload=()=>u(i.result),i.onerror=()=>s(i.error),i.readAsDataURL(n)});function W({view:n=null,upload:u=null}={}){if(!n)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let s=n.dom.ownerDocument,i=null;function p(){let e=i;if(e){i=null;for(let[t,o,r,a]of e.listen)t.removeEventListener(o,r,a);e.abort?.abort(),e.input?.remove(),e.ui?.remove(),e.stopPick?.(),e.state==="position"&&z(e)}}let g=(e,t,o,r,a)=>{t.addEventListener(o,r,a),e.listen.push([t,o,r,a])},m=(e,t)=>{let o=s.createElement("button");return o.type="button",o.className="page-cover-btn",o.dataset.act=e,o.textContent=t,o};function f(e){let t=e.panel??(e.panel=s.createElement("div"));t.className="page-cover-panel",t.dataset.state=e.state,t.setAttribute("contenteditable","false"),t.setAttribute("role",e.state==="uploading"?"status":"alert"),t.textContent="";let o=s.createElement("span");if(o.className="page-cover-msg",o.textContent=e.message,t.append(o),e.state==="uploading"){let r=s.createElement("span");r.className="page-cover-bar",r.setAttribute("role","progressbar"),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("aria-valuenow",String(e.percent));let a=s.createElement("span");a.style.width=`${e.percent}%`,r.append(a),t.append(r,m("cancel","Cancel"))}else e.state==="embed-choice"?t.append(m("embed","Keep this image inside the document"),m("cancel","Close")):e.state==="position"?t.append(m("apply","Apply"),m("cancel","Cancel")):t.append(m("cancel","Close"));if(!e.ui){let r=n.dom.parentElement;e.ui=P({name:"page-cover",content:t,css:[O],parent:r??s.body,before:r?n.dom:null})}}function E(e){g(e,e.panel,"click",t=>{let o=t.target.closest?.("[data-act]");o&&(t.preventDefault(),o.dataset.act==="cancel"?p():o.dataset.act==="apply"?C(e):o.dataset.act==="embed"&&B(e))})}function D(e,t){let o=v(n.state.doc);if((o?o.node.attrs.id:null)!==e)return{ok:!1,code:"stale-target"};let r=n.state.tr;if(o)r.setNodeMarkup(o.at,null,{...o.node.attrs,...t});else{let a=n.state.doc.maybeChild(0);r.insert(0,w.nodes.heading.create({id:A(),pos:U(null,a?.attrs.pos??null),parent:null,level:1,...t}))}return n.dispatch(N(r)),{ok:!0,cover:!0}}async function S(e,t){let o=await R(n,()=>D(e.owner,t));return i===e&&p(),o?.ok&&$(n,"Cover added"),o}function T(e){return new Promise(t=>{let o=s.createElement("input");o.type="file",o.accept="image/*",o.className="page-cover-input",o.hidden=!0,(n.dom.parentElement??s.body).appendChild(o),e.input=o,e.stopPick=()=>t(null);let r=!1,a=d=>{r||(r=!0,t(d))};g(e,o,"change",()=>a([...o.files??[]][0]??null)),g(e,o,"cancel",()=>a(null)),o.click()})}async function j(e,t){let o=M.get(n),r=o?.upload??u;if(typeof r!="function")return p(),{ok:!1,code:"unavailable"};let a=new AbortController;e.abort=a,o?.aborts.set(e.id,a),e.message=`Uploading ${t.name||"the image"}`,f(e);let d=-5,y=({percent:l})=>{i!==e||l-d<5&&l!==100||(d=l,e.percent=l,f(e))},c;try{c=await r(t,{onProgress:y,signal:a.signal})}catch{c={code:"network",msg:"Upload failed"}}if(o?.aborts.delete(e.id),i!==e||n.isDestroyed)return{ok:!1,code:"not-editing"};if(c?.ok){let l=Y(c.uploads?.[0]?.url);if(l)return S(e,{pageCoverSrc:l,pageCoverAlt:"",pageCoverX:50,pageCoverY:50});c={code:"bad-response",msg:"The upload returned an invalid address"}}if((!c||typeof c!="object")&&(c={code:"bad-response",msg:"The upload returned an invalid response"}),c.code==="aborted")return p(),{ok:!1,code:"cancelled"};if(c.code==="unsupported"){let l=/^image\/(png|jpeg|gif|webp)$/i.test(t.type)&&t.size<=F;return e.state=l?"embed-choice":"error",e.file=l?t:null,e.message=l?"This host doesn't store files. You can keep this image inside the document, which makes the document larger.":"This host doesn't store files, and this image is too large to keep inside the document.",f(e),{ok:!1,code:"unsupported"}}return e.state="error",e.message=c.msg||"Upload failed",f(e),{ok:!1,code:c.code??"error"}}async function B(e){let t=e.file;if(!t)return;let o=await _(t);if(i!==e)return;let r=X(o);if(typeof r!="string"){e.state="error",e.message="That image could not be kept inside the document.",f(e);return}return S(e,{pageCoverSrc:r,pageCoverAlt:"",pageCoverX:50,pageCoverY:50})}function L(){p();let e={id:A("c"),owner:v(n.state.doc)?.node.attrs.id??null,state:"uploading",percent:0,message:"Choosing a cover",listen:[]};return i=e,g(e,s,"keydown",t=>{i!==e||t.key!=="Escape"||(t.preventDefault(),t.stopPropagation(),p())},!0),f(e),E(e),T(e).then(t=>{i===e&&(t?j(e,t):p())}),{ok:!0,picker:!0}}let x=()=>n.dom.querySelector("header[data-page-heading] img[data-page-cover]");function b(e){let t=x();t&&t.setAttribute("style",`object-position:${e.x}% ${e.y}%`)}function z(e){let t=v(n.state.doc),o=x();!o||!t||t.node.attrs.id!==e.owner||o.setAttribute("style",`object-position:${t.node.attrs.pageCoverX}% ${t.node.attrs.pageCoverY}%`)}async function C(e){if(i!==e)return{ok:!1,code:"not-editing"};let{x:t,y:o}=e;return p(),R(n,()=>D(e.owner,{pageCoverX:t,pageCoverY:o}))}function I(){p();let e=v(n.state.doc);if(!e||!e.node.attrs.pageCoverSrc)return{ok:!1,code:"no-cover"};let t={owner:e.node.attrs.id,state:"position",listen:[],x:e.node.attrs.pageCoverX,y:e.node.attrs.pageCoverY,message:"Drag the picture or use the arrow keys, then Apply"};i=t,f(t),E(t),g(t,s,"keydown",r=>{let a=()=>{r.preventDefault(),r.stopPropagation()};r.key==="Escape"?(a(),p()):r.key==="Enter"?(a(),C(t)):r.key==="ArrowLeft"?(a(),t.x=h(t.x-k),b(t)):r.key==="ArrowRight"?(a(),t.x=h(t.x+k),b(t)):r.key==="ArrowUp"?(a(),t.y=h(t.y-k),b(t)):r.key==="ArrowDown"&&(a(),t.y=h(t.y+k),b(t))},!0);let o=x();return o&&g(t,o,"pointerdown",r=>{let a=o.getBoundingClientRect();if(!a.width||!a.height)return;r.preventDefault();let d={px:r.clientX,py:r.clientY,x:t.x,y:t.y};g(t,s,"pointermove",y=>{t.x=h(d.x+(y.clientX-d.px)/a.width*100),t.y=h(d.y+(y.clientY-d.py)/a.height*100),b(t)}),g(t,s,"pointerup",()=>C(t))}),{ok:!0,position:!0}}return{run(e){return e?.act==="position"?I():L()},dispose(){p()}}}export{W as createFeature};
@@ -0,0 +1,20 @@
1
+ import{A as ee,D as te,G as oe,H as ne,I as re,i as J}from"./c-YCLU4UNT.js";import"./c-DHBRA6DL.js";import"./c-L3F5ZLIV.js";import{a as X}from"./c-WNTYKCDG.js";import"./c-PZ4XEPUP.js";import"./c-JRKY44DK.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{H as K,J as Q,O as Z,a as G,b as H,m as z}from"./c-QIXT3Q7C.js";import{b as Y}from"./c-L7JL5TL3.js";import"./c-MCOOHCSG.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.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 pe="Work from an earlier session could not be put back. Read it, download it, or recover it as a copy.",le=`
2
+ :host { font: inherit !important; color: inherit !important; }
3
+ .page-recovery-root { display: contents; }
4
+ .page-recovery { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: 999px; cursor: pointer; }
5
+ .page-recovery[hidden], .page-recovery-panel[hidden] { display: none; }
6
+ .page-recovery-panel { position: fixed; right: 16px; bottom: 64px; z-index: 21; width: min(420px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); padding: 8px; box-sizing: border-box; }
7
+ .page-recovery-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px; font-weight: 600; }
8
+ .page-recovery-note { margin: 0 6px 8px; font-size: 13px; opacity: .72; }
9
+ .page-recovery-failure { margin: 0 6px 8px; font-size: 13px; color: var(--page-warn, #b25b00); }
10
+ .page-recovery-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; min-height: 44px; padding: 8px 6px; border-top: 1px solid var(--page-chrome-line-rest); }
11
+ .page-recovery-meta { grid-column: 1; font-size: 12px; opacity: .72; }
12
+ .page-recovery-text { grid-column: 1; overflow-wrap: anywhere; white-space: pre-wrap; }
13
+ .page-recovery-row button, .page-recovery-head button { grid-column: 2; grid-row: 1 / span 2; min-height: 36px; padding: 0 12px; font: inherit; font-size: 14px; color: inherit; background: transparent; border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); cursor: pointer; }
14
+ .page-recovery-row.is-busy button { opacity: .6; cursor: progress; }
15
+ @media (max-width: 560px) {
16
+ .page-recovery { top: 12px; bottom: auto; min-height: 44px; }
17
+ .page-recovery-panel { left: 0; right: 0; bottom: 0; width: 100%; max-height: 70vh; border-radius: var(--page-chrome-radius) var(--page-chrome-radius) 0 0; }
18
+ .page-recovery-row button, .page-recovery-head button { min-height: 44px; }
19
+ }
20
+ `,ae=280,u=(i,r,o,s={})=>{let c=i.createElement(r);o&&(c.className=o);for(let[b,w]of Object.entries(s))c.setAttribute(b,w);return c},ue=i=>Object.keys(i).sort((r,o)=>{let s=typeof i[r]?.pos=="string"?i[r].pos:"",c=typeof i[o]?.pos=="string"?i[o].pos:"";return s!==c?s<c?-1:1:r<o?-1:r>o?1:0});function fe(i){let r=ue(i??{}),o=new Map(r.map(c=>[c,Q()])),s=K(null,null,r.length);return r.map((c,b)=>{let w=i[c],p=typeof w?.parent=="string"?o.get(w.parent)??null:null;return{...w,id:o.get(c),pos:s[b],parent:p}})}function ge(i){let r=[];for(let o of fe(i)){let s=null;try{s=Z(z,o.id,o)}catch{s=null}!s&&typeof o.c=="string"&&o.c&&(s=z.nodes.paragraph.create({id:o.id,pos:o.pos,parent:o.parent},z.text(o.c))),s&&r.push(s)}return r}function he(i,r){if(!i||!i.state)return{ok:!1,code:"no-editor"};let o=ge(r??{});if(!o.length)return{ok:!1,code:"nothing-to-copy"};let s=i.state,c=s.tr.insert(s.doc.content.size,G.Fragment.from(o));return c.setSelection(H.Selection.near(c.doc.resolve(c.doc.content.size-1))),i.dispatch(c.scrollIntoView()),{ok:!0,ids:o.map(b=>b.attrs.id)}}var ie=(i,r)=>{let o=u(i,"div","page-recovery-text");return o.textContent=r.length>ae?`${r.slice(0,ae)}\u2026`:r,o};async function ye(i){try{return await navigator.clipboard.writeText(i),!0}catch{}let r=globalThis.document?.createElement("textarea");if(!r)return!1;r.value=i,r.style.setProperty("position","fixed","important"),r.style.setProperty("opacity","0","important"),globalThis.document.body?.append(r),r.select();let o=!1;try{o=globalThis.document.execCommand?.("copy")===!0}catch{}return r.remove(),o}function Ee({mount:i,getView:r=()=>null,getJournal:o=()=>null,service:s=globalThis.window?.clay?.recovery??null,isCurrent:c=()=>!0,onCopied:b=()=>{},onCovered:w=()=>{}}={}){let p=i.ownerDocument,y=u(p,"button","page-recovery",{type:"button","aria-haspopup":"dialog","aria-expanded":"false"}),l=u(p,"div","page-recovery-panel",{role:"dialog","aria-label":"Recover work"});y.hidden=!0,l.hidden=!0;let $=u(p,"div","page-recovery-root");$.append(y,l);let se=Y({name:"page-recovery",content:$,css:[le],parent:i}),m=[],f=[],v=null,C=new Set,I=new Set,E=null,x=null,L=!1,_=()=>m.length+f.length,ce=()=>{if(E)return E;try{E=ee(s)}catch{E=null}return E},j=()=>{if(x)return x;try{x=ne({channel:oe(s),key:o()?.key??""})}catch{x=null}return x},T=()=>{l.hidden=!0,y.setAttribute("aria-expanded","false")},M=()=>{let e=[];for(let n of m)e.push({id:n.id,kind:"recovered-page",name:n.message,yours:n.text,now:"",sentence:n.message});let t="Text typed while composing never reached the page.";for(let n of f)e.push({id:n.id,kind:"composing",name:"Typed text",yours:n.text,now:"",sentence:t});X({html:null,edits:e})||(v="That download could not be made."),k()};async function O(e){if(!e||I.has(e.id)||C.has(e.id))return{ok:!1,code:"busy"};I.add(e.id),v=null,k();try{if(!c())return{ok:!1,code:"stale"};let t=o(),n=t?.channel??null,a=ce(),d=await te({channel:n,copies:a,source:{key:t?.key??"",id:e.id,revision:e.revision},insert:async()=>{if(!c())throw new Error("stale");let g=r();if(!g)throw new Error("no-editor");let h=t?.next?t.next():null,B=e.blocks??J({capsule:e.capsule,batches:e.batches??[]}),U=he(g,B);if(!U.ok)throw new Error(U.code);if(!h)throw new Error("no-journal");let D=await h;if(!D)throw new Error("not-stored");return{key:t?.key??"",id:D.id,revision:D.revision}}});return!d.ok&&!c()?{ok:!1,code:"stale"}:(d.ok?(C.add(e.id),b(e,d)):d.code==="insert-failed"?v="That copy could not be stored on this device. It is still here to try again.":d.code==="already-copied"?(C.add(e.id),v="This work was already recovered as a copy."):d.code==="covered"?w(e):d.code!=="stale"&&d.code!=="busy"&&(v="Recovery is unavailable here. Download the copy instead."),d)}finally{I.delete(e.id),L||k()}}async function V(e){if(!e||!x)return{ok:!1,code:"unavailable"};let t=f.find(n=>n.id===e.id);if(!t)return{ok:!1,code:"unknown"};try{let n=await x.channel.dismiss(t.id,{revision:t.revision});return n?.ok&&(f=f.filter(a=>a.id!==t.id)),k(),n}catch{return{ok:!1,code:"error"}}}let S=(e,t)=>{let n=u(p,"button","",{type:"button"});return n.textContent=e,n.addEventListener("click",t),n};function k(){l.replaceChildren();let e=u(p,"div","page-recovery-head");e.append(p.createTextNode("Recover work")),e.append(S("Download",M));let t=S("Close",()=>{T(),y.focus()});e.append(t);let n=u(p,"p","page-recovery-note");if(n.textContent=pe,l.append(e,n),v){let a=u(p,"p","page-recovery-failure");a.textContent=v,l.append(a)}for(let a of m){let d=u(p,"div","page-recovery-row",{"data-capsule":String(a.id)});I.has(a.id)&&d.classList.add("is-busy");let g=u(p,"div","page-recovery-meta");g.textContent=`${a.message}${C.has(a.id)?" \xB7 Recovered as a copy":""}`;let h=S("Recover as a copy",()=>O(a));h.disabled=I.has(a.id)||C.has(a.id),d.append(g,ie(p,a.text||"(no text)"),h),l.append(d)}for(let a of f){let d=u(p,"div","page-recovery-row",{"data-composing":a.blockId}),g=u(p,"div","page-recovery-meta");g.textContent="Text typed while composing. It never reached the page.",d.append(g,ie(p,a.text));let h=u(p,"div","");h.append(S("Copy",async()=>{await ye(a.text)||(v="Could not copy. Select the text instead."),k()}),S("Dismiss",()=>V(a))),d.append(h),l.append(d)}}let W=()=>_()?(l.hidden=!1,y.setAttribute("aria-expanded","true"),k(),l.querySelector("button")?.focus(),!0):!1;y.addEventListener("click",()=>l.hidden?W():T()),l.addEventListener("keydown",e=>{e.key==="Escape"&&(e.stopPropagation(),T(),y.focus())});let A=new Map,F=e=>{let n=e?.target?.closest?.("[data-id]")??null;return{blockId:n?.getAttribute?.("data-id")??null,text:n?.textContent??""}},R=e=>{let t=F(e);t.blockId&&(A.set(t.blockId,t.text),j()?.keep(t))},N=e=>{let t=F(e),n=A.get(t.blockId);A.delete(t.blockId);let a=j();if(!a)return;let d=o(),g=t.text||n||"",h=d?.covers?d.covers(t.blockId,g):!1;a.clear({blockId:t.blockId,text:g,covered:h}).then(B=>{B?.ok&&P()},()=>{})};function de(e){return e?(e.addEventListener("compositionstart",R),e.addEventListener("compositionupdate",R),e.addEventListener("compositionend",N),()=>{e.removeEventListener("compositionstart",R),e.removeEventListener("compositionupdate",R),e.removeEventListener("compositionend",N)}):()=>{}}async function P(){let e=j();if(!e||L)return f;let t=null;try{t=await e.list()}catch{t=null}return L||(f=t?.ok?re(t.records):[],q({rows:m,refreshText:!1})),f}function q({rows:e=m,refreshText:t=!0}={}){m=(e||[]).map(a=>({...a}));let n=_();return y.hidden=n===0,y.textContent=`Recover work (${n})`,n?l.hidden||k():T(),t&&P(),m}return{open:W,close:T,download:M,recover:O,dismiss:V,refresh:P,watch:de,update:q,get count(){return _()},get rows(){return m},get journaled(){return f},destroy(){L=!0,se.remove(),x=null,E=null}}}export{pe as REVIEW_TEXT,fe as copyBlocks,ge as copyNodes,Ee as createRecoveryReview,he as insertCopy};
@@ -0,0 +1,2 @@
1
+ import{a as K}from"./c-L3F5ZLIV.js";import{e as te,f as ne,g as oe}from"./c-JRKY44DK.js";import{d as N,e as L,f as R,h as ie,l as se}from"./c-EXKHPOVC.js";import{b as M}from"./c-L5VFATT6.js";import{a as T,b as re,f as $,g as O,h as G,i as P,r as I,s as B}from"./c-WMRJKQ2V.js";import{c as _}from"./c-57XDY6HC.js";import{a as ee}from"./c-I2SCCUEW.js";function F(e){let t=new Set;for(let[,n]of _(e?.y??{}))try{for(let o of P(I(re(n))).keys())t.add(o)}catch{}return t}function Ae(e,t){let n=F(e),o=F(t);if(!n.size||!o.size||[...o].some(r=>n.has(r)))return!0;let i=new Map(_(e?.y??{}));return _(t?.y??{}).some(([r,s])=>i.get(r)===s)}function ae(e,t){return!e||!t||!e.generation||!t.generation?!1:e.generation===t.generation&&e.baseDigest===t.baseDigest}async function ce(e,t){let n=t instanceof Uint8Array?t:new Uint8Array(0);return{generation:e,baseDigest:await L(n),baseVector:n.length?I(n):new Uint8Array(0)}}function le(e,t){let n=F(e),o=F(t);return!n.size||!o.size?!1:Ae(e,t)}var Se="page.yjs",Ie=1,Ue=64,Ve=1024*1024,Ye=e=>B(e),W=class extends Error{constructor(t,n){super(n),this.name="PageReplayError",this.code=t}},y=(e,t)=>{throw new W(e,t)},m=e=>typeof e=="string"?e:JSON.stringify(e),U=e=>e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):null,Oe=(e,t)=>m(e)===m(t);function z(e){let t=e.map(U).filter(n=>n&&n.length);return t.length?t.length===1?t[0].slice():B(t):new Uint8Array(0)}function H({capsule:e,batches:t=[]}={}){(!e||e.kind!=="binary"||!e.payload)&&y("invalid-capsule","Replay needs a binary capsule"),e.version!==void 0&&e.version!==1&&y("unknown-version",`Unknown page recovery capsule version: ${e.version}`);let n=[e.payload.dependencies],o=[e.payload.owned],i=new Set;for(let r of t){if((!r||r.kind!=="binary-batch"||!r.payload)&&y("invalid-batch","Replay reads binary batches only"),r.capsuleId!==void 0&&!Oe(r.capsuleId,e.id)&&y("foreign-batch","A batch belongs to another capsule"),r.id!==void 0){if(i.has(m(r.id)))continue;i.add(m(r.id))}r.origin==="dependency"?n.push(r.payload):o.push(r.payload)}return{id:e.id,context:e.context??null,revision:e.revision??0,acknowledged:e.acknowledged??null,base:z([e.payload.base]),dependencies:z(n),owned:z(o)}}function Pe({capsule:e,batches:t=[]}={}){let n=H({capsule:e,batches:t}),o=new $;try{for(let i of[n.base,n.dependencies,n.owned])i.length&&O(o,i,M);return(o.store.pendingStructs||o.store.pendingDs)&&y("unresolved-update","The capsule's updates are missing a prerequisite"),{v:1,g:0,y:{seed:T(G(o))}}}finally{o.destroy()}}function Ee({capsule:e,batches:t=[]}={}){return K(Pe({capsule:e,batches:t}))}function _e({capsule:e,batches:t=[],current:n}={}){let o=H({capsule:e,batches:t});o.context?.authority||y("missing-identity","A capsule with no authority is never replayed"),n?.context?.authority||y("missing-identity","Replay needs the page's own authority"),oe(o.context.authority,n.context.authority)||y("foreign-authority","This journal belongs to another document or account"),ae(o.context.lineage,n.context.lineage)||y("foreign-generation","This journal belongs to another generation of this page");let i=R(n.state);o.base.length&&!N(i,o.base)&&y("missing-base","The page no longer contains the journal's base"),o.owned.length||y("nothing-owned","This capsule owns no local work");let r=z([o.base,o.dependencies,o.owned]);return le(n.state,{v:1,g:0,y:{seed:T(r)}})||y("foreign-lineage","This journal shares no ancestry with this page"),o}function he(e=[]){let t=new Map,n=new Map;for(let o of e||[]){if(!o||o.supported===!1)continue;if(o.kind==="binary"){t.set(m(o.id),o);continue}if(o.kind!=="binary-batch"||o.capsuleId===void 0)continue;let i=m(o.capsuleId),r=n.get(i)??[];r.push(o),n.set(i,r)}return[...t.entries()].map(([o,i])=>({capsule:i,batches:n.get(o)??[]}))}function Te(e,t){for(let n of[t.base,t.dependencies,t.owned])n&&n.length&&O(e,n,se)}function Be(e,t){try{let{owned:n}=H({capsule:e.capsule,batches:e.batches});return n.length>0&&N(R(t.state),n)}catch{return!1}}function Me({records:e=[],current:t,into:n}={}){let o=[],i=[];for(let r of he(e)){let s;try{s=_e({capsule:r.capsule,batches:r.batches,current:t})}catch(l){if(l?.code==="nothing-owned"||l?.code==="foreign-generation"&&Be(r,t))continue;i.push({capsule:r.capsule,batches:r.batches,code:l?.code??"invalid-capsule",message:l?.message??"This journal cannot be replayed"});continue}Te(n,s),o.push({id:r.capsule.id,revision:s.revision,owned:s.owned.length})}return{replayed:o,review:i}}async function Ne({authority:e,generation:t=null,base:n=null,formatFloor:o=0}={}){let i=U(n)??new Uint8Array(0),r=typeof t=="string"&&t?t:await L(i);return{authority:e,lineage:await ce(r,i),formatFloor:o}}function Le({meta:e=null,location:t=globalThis.location,root:n=globalThis.document?.documentElement}={}){let o=t?.origin??"";if(!o)return null;let i=te(n),r=i?"host":"path",s=i?.identity??ne(t?.pathname??"/").identity;if(!s)return null;let l=e?.document?.people,u=l&&typeof l=="object"?l.me?.id??null:s;return u?{host:o,documentId:s,principalId:u,scope:r}:null}var ue=e=>typeof e=="string"?e:JSON.stringify(e);function Re(e,t){if(!t.length)return!0;let n=P(I(t)),o=P(I(e));for(let[i,r]of n)if((o.get(i)??0)<r)return!1;return!0}function de(e,t){let n=U(t);return!n||!n.length?new Uint8Array(0):N(e,n)?new Uint8Array(0):n}var wt=e=>R(e),fe=new WeakMap;function Fe(e){if(!e)return null;let t=fe.get(e);if(t)return t;let n=e.register({channel:Se,version:Ie,validateCheckpoint:ie,merge:Ye});return fe.set(e,n),n}function ze({channel:e,key:t,context:n,base:o=null,onChange:i=()=>{}}){let r=new Map,s=[],l=[],u=new Set,d=U(o)??new Uint8Array(0),f=null,k=null,b=0,S=0,g=!1,C=!0,E=!1,D=Promise.resolve(null),V=null,x=!1,v={channel:e,key:t,onChange:i,context:()=>ke.then(()=>f),local:a=>Z(a,"local"),dependency:a=>{g&&Z(a,"dependency")},records:()=>[...r.values()],names:J,next:()=>new Promise(a=>{l.push(a)}),covers:(a,c)=>{let p=[...r.values()].map(A=>A.update).filter(A=>A&&A.byteLength),h={kind:"binary",version:1,id:"journal",revision:0,payload:{base:d,dependencies:new Uint8Array(0),owned:p.length?B(p):new Uint8Array(0)}};return we([h],a,c)},pending:()=>u.size+(E?s.length:0)+(k?1:0),get failure(){return k},retire:q,rebase:be,compact:X,acknowledged:()=>x||!f||!r.size||typeof e.markAcknowledged!="function"?Promise.resolve(null):Promise.resolve(e.markAcknowledged({records:J(),authority:f.authority})).catch(()=>null),close:()=>{x=!0,s.length=0,Y(null)}},ke=Promise.resolve().then(()=>typeof n=="function"?n(d):n).catch(()=>null).then(a=>{if(f=a&&a.authority?a:null,!f)return x=!0,k="unavailable",s.length=0,v.onChange(),null;for(let c of s.splice(0))c(f);return f});function Y(a){for(let c of l.splice(0))c(a)}function q(a){for(let c of a||[]){let p=ue(c?.id),h=r.get(p);h&&(r.delete(p),b=Math.max(0,b-1),S=Math.max(0,S-(h.update?.byteLength??0)))}}function be(a){return D=D.then(()=>xe(U(a))).catch(()=>null),D}async function xe(a){if(x||!f||!a||!a.length||!Re(a,d))return null;E=!0;try{for(;u.size&&!x;)await v.next();if(x)return null;let c=typeof n=="function"?await n(a):n;if(!c||!c.authority)return null;if(g){let p=typeof e.rebase=="function"?await e.rebase({key:t,context:c,rebuild:h=>({base:a,dependencies:de(a,h.dependencies),owned:de(a,h.owned)})}):null;if(p?.code==="missing")C=!0;else if(!p?.ok)return null}d=a,f=c;for(let p of r.values())p.context=c;return c}finally{if(E=!1,f)for(let c of s.splice(0))c(f)}}function J(){return[...r.values()].map(({id:a,revision:c})=>({id:a,revision:c}))}function X(){if(V||x||!r.size||typeof e.compact!="function")return V;let a=J();return V=Promise.resolve().then(()=>e.compact({records:a})).then(c=>(c?.ok&&q(c.retired),c)).catch(()=>null).then(c=>(V=null,v.onChange(),c)),V}function ve(a,c,p,h){let A;try{A=e.append({key:t,context:a,update:c,origin:p,base:h?d:null})}catch{k="error",Y(null),v.onChange();return}let j={};u.add(j),Promise.resolve(A).then(w=>{if(u.delete(j),!w||w.ok!==!0){k=w?.code??"error",Y(null),v.onChange();return}k=null,w.skipped||(r.set(ue(w.id),{id:w.id,revision:w.revision,update:c,context:a}),b+=1,S+=c.byteLength),v.onChange(),Y({id:w.id,revision:w.revision}),(b>=Ue||S>=Ve)&&X()},()=>{u.delete(j),k="error",Y(null),v.onChange()})}function Q(a,c,p){let h=C;C=!1,ve(a,c,p,h)}function Z(a,c){x||!a||!a.byteLength||typeof e.append!="function"||(g=!0,f&&!E?Q(f,a,c):s.push(p=>Q(p,a,c)))}return v}function kt({meta:e=null,service:t=null,base:n=null,onChange:o=()=>{},location:i,root:r}={}){let s=Le({meta:e,location:i,root:r});if(!s)return null;let l=Fe(t);if(!l)return null;let u=e?.document?.pageState?.generation??null,d=Array.isArray(e?.extensions)&&e.extensions.includes("page-format-v1")?1:0;return ze({channel:l,key:[s.host,s.documentId].join(":"),context:f=>Ne({authority:s,generation:u,base:f,formatFloor:d}),base:n,onChange:o})}function bt({journal:e,store:t=null,reduce:n=()=>null,onState:o=()=>{},onUnavailable:i=()=>{}}={}){if(!e)return{checkpoint(){},state:()=>null,dispose(){}};let r={acknowledged:!1,checkpointed:!1},s=null,l=()=>{let g=e.failure??null,C=e.records().length;return n({unavailable:!!g,pending:g?0:e.pending(),journaled:r.acknowledged?0:C,acknowledged:r.acknowledged?C:0,checkpointed:r.checkpointed&&!C})},u=()=>{let g=l();return!g||g===s?s:(s=g,g==="unavailable"?i(e.failure):o(g),g)},d=e.onChange;e.onChange=()=>{d?.(),u()};let f=t?.onLocal?.(()=>{r.acknowledged=!1,r.checkpointed=!1,u()}),k=t?.onConfirm?.(()=>{r.acknowledged=!0,u()}),b=()=>!!e.failure,S=ee({id:"page:journal",isPending:()=>!b()&&e.pending()>0,flush:async()=>{if(b())return{ok:!0};for(;!b()&&e.pending()>0&&await e.next(););return await Promise.resolve(e.channel?.flush?.()).catch(()=>null),{ok:b()||e.pending()===0}}});return u(),{checkpoint(){r.checkpointed=!0,u()},state:l,dispose(){e.onChange=d,f?.(),k?.(),S.dispose()}}}async function xt({journal:e,state:t,into:n}={}){if(!e)return{replayed:[],review:[]};let o=await e.context();if(!o)return{replayed:[],review:[]};let i=await e.channel.list();return i?.ok?Me({records:i.records,current:{context:o,state:t},into:n}):{replayed:[],review:[]}}var pe=e=>typeof e?.pos=="string"?e.pos:"",He=e=>Object.keys(e).sort((t,n)=>{let o=pe(e[t]),i=pe(e[n]);return o!==i?o<i?-1:1:t<n?-1:t>n?1:0});function me(e){if(typeof e?.c=="string")return e.c;if(!e?.rows)return"";let t=[];for(let n of Object.values(e.rows))for(let o of Object.values(n?.cells??{})){let i=typeof o=="string"?o:typeof o?.c=="string"?o.c:"";i&&t.push(i)}return t.join(" ")}function De(e=[]){let t=new $;try{for(let n of he(e)){let o;try{o=H(n)}catch{continue}for(let i of[o.base,o.dependencies,o.owned])i.length&&O(t,i,M)}for(let n of e||[]){let o=U(n?.update);o&&o.length&&O(t,o,M)}return K({v:1,g:0,y:{seed:T(G(t))}})}catch{return null}finally{t.destroy()}}function Je({capsule:e,batches:t=[]}={}){let n;try{n=Ee({capsule:e,batches:t})}catch{return""}let o=[];for(let i of He(n)){let r=me(n[i]);r&&o.push(r)}return o.join(`
2
+ `)}function vt(e=[]){return(e||[]).map(t=>({id:t?.capsule?.id,revision:t?.capsule?.revision??0,code:t?.code??"invalid-capsule",message:t?.message??"This journal cannot be replayed",text:Je({capsule:t?.capsule,batches:t?.batches??[]}),capsule:t?.capsule??null,batches:t?.batches??[]}))}function we(e=[],t=null,n=""){let o=t==null?"":String(t),i=typeof n=="string"?n:"";if(!o||!i)return!1;let r=De(e);return!!(r&&r[o]&&me(r[o])===i)}var je="page.copy",$e=1,ge=new WeakMap;function Ct(e){if(!e)return null;let t=ge.get(e);if(t)return t;let n=e.register({channel:je,version:$e});return ge.set(e,n),n}var Ge=e=>`copy:${e?.key??""}:${m(e?.id)}`;function Ke({records:e=[],source:t=null}={}){if(!t||t.id===void 0)return null;for(let n of e||[]){let o=n?.payload;if(!(!o?.source||!o?.destination)&&o.source.key===t.key&&m(o.source.id)===m(t.id))return{record:n,source:o.source,destination:o.destination}}return null}function We({marker:e=null,records:t=[]}={}){if(!e?.destination)return"open";let n=e.destination.id;return(t||[]).some(i=>i&&m(i.id)===m(n))?"copied":"covered"}async function At({channel:e,copies:t,source:n,insert:o}={}){if(!e||!t||!n||typeof o!="function")return{ok:!1,code:"unavailable"};let i,r;try{[i,r]=await Promise.all([e.list(),t.list()])}catch{return{ok:!1,code:"unavailable"}}let s=Ke({records:r?.ok?r.records:[],source:n});if(s){let d=We({marker:s,records:i?.ok?i.records:[]});if(d==="copied")return{ok:!1,code:"already-copied",marker:s};if(d==="covered")return{ok:!1,code:"covered",marker:s}}let l;try{l=await o()}catch{return{ok:!1,code:"insert-failed"}}if(!l||l.revision===void 0||l.id===void 0)return{ok:!1,code:"insert-failed"};t.stage({key:Ge(n),kind:"text",payload:{source:{key:n.key??"",id:n.id,revision:n.revision??0},destination:{key:l.key??"",id:l.id,revision:l.revision}}});let u=await t.flush();return u?.ok?{ok:!0,destination:l}:{ok:!1,code:u?.code||"error",destination:l}}var qe="page.ime",Xe=1,Qe="composing:",ye=new WeakMap;function St(e){if(!e)return null;let t=ye.get(e);if(t)return t;let n=e.register({channel:qe,version:Xe});return ye.set(e,n),n}function It({channel:e=null,key:t=""}={}){if(!e)return null;async function n(o){let i;try{i=await e.list()}catch{return 0}if(!i?.ok)return 0;let r=0;for(let s of i.records)if(s?.payload?.blockId===o)try{(await e.dismiss(s.id,{revision:s.revision}))?.ok&&(r+=1)}catch{}return r}return{key:t,channel:e,keep({blockId:o=null,text:i=""}={}){let r=o==null?"":String(o),s=typeof i=="string"?i:"";return!r||!s?null:e.stage({key:`${Qe}${r}`,kind:"text",payload:{blockId:r,text:s}})},async clear({blockId:o=null,text:i="",covered:r=null,records:s=[]}={}){let l=o==null?"":String(o);if(!l)return{ok:!1,code:"invalid"};if(!(typeof r=="boolean"?r:we(s,l,i)))return{ok:!1,code:"not-covered"};let d=await n(l);return d?{ok:!0,retired:d}:{ok:!1,code:"not-covered"}},async list(){return e.list()},dispose(){return e.flush()}}}function Ut(e=[]){let t=[];for(let n of e||[]){if(!n||n.supported===!1)continue;let o=n.payload;!o||typeof o.text!="string"||!o.text||typeof o.blockId!="string"||!o.blockId||t.push({id:n.id,revision:n.revision,blockId:o.blockId,text:o.text})}return t}export{Se as a,Ie as b,Ue as c,Ve as d,Ye as e,W as f,H as g,Pe as h,Ee as i,_e as j,he as k,Te as l,Me as m,Ne as n,Le as o,wt as p,Fe as q,ze as r,kt as s,bt as t,xt as u,Je as v,vt as w,we as x,je as y,$e as z,Ct as A,Ke as B,We as C,At as D,qe as E,Xe as F,St as G,It as H,Ut as I};
@@ -0,0 +1 @@
1
+ import{n as a,o as p,r as l,u as f}from"./c-7MG5RU63.js";import{i as c}from"./c-HA6INT6J.js";var y="http://www.w3.org/1999/xhtml",T=64*1024,u=256;function d(e){return e.namespaceURI===y&&e.localName!=="template"&&e.getElementsByTagName("*").length>=u}function*h(e,t,s,o){for(let n of e.childNodes){if(n.nodeType===1&&d(n)){yield*m(n,s,o);continue}let r;n.nodeType===1?r=n.outerHTML:(t.replaceChildren(n.cloneNode(!1)),r=t.innerHTML),s.push(r),o.bytes+=r.length,o.bytes>=T&&(o.bytes=0,yield)}}function*m(e,t,s){let o=l(e,!1),n=o.outerHTML,r=`</${o.localName}>`;t.push(n.slice(0,n.length-r.length)),yield*h(e,o,t,s),t.push(r)}function*i(e){let t=["<!DOCTYPE html>"];return yield*m(e,t,{bytes:0}),t.join("")}function*g(e){let t=a(e);if(!t.length)return yield*i(e);let s=p(t),o;try{o=yield*i(e)}finally{for(let[n,r]of t)n.replaceChildren(...r)}for(let[n,r]of s)o=o.split(n).join(r);return o}function*E(e){return f(e),yield*i(e)}function*L(e){let t=l(e,!1);for(let r of c)t.removeAttribute(r);let s=t.outerHTML,o=`</${t.localName}>`,n=["<!DOCTYPE html>",s.slice(0,s.length-o.length)];return yield*h(e,l(e,!1),n,{bytes:0}),n.push(o),n.join("")}export{i as a,g as b,E as c,L as d};
@@ -0,0 +1 @@
1
+ import{B as H,C as X,d as M,g as L,h as O,j as D,l as I,m as R,n as x,o as C,p as A,q as N,s as $}from"./c-AMU3BPPR.js";import{m as B}from"./c-QIXT3Q7C.js";var _=new WeakMap;function v(s){let t=_.get(s);return t||_.set(s,t=O(s)),t}var F=B.nodes,w=s=>s.type===F.list_item,S=s=>s.type===F.toggle,y=s=>s.attrs.parent??null;function J(s,t,e){if(e<0)return[null];let n=[],i=s[e].node;S(i)&&i.attrs.open&&!s[e].hidden&&n.unshift(i.attrs.id);for(let r=y(i);r!==null&&!n.includes(r);){let c=s[t.get(r)];if(!c)break;n.unshift(r),r=y(c.node)}let o=[null];for(let r of n){let c=s[t.get(r)];if(!c.node.attrs.open||c.hidden)break;o.push(r)}return o}function Y(s,t,e,n){let i=y(s[t].node),o=w(s[t].node)?n.indent-s[t].node.attrs.indent:0;return r=>r.i<t||r.i>e||y(r.node)!==i?null:w(r.node)?{parent:n.parent,indent:r.node.attrs.indent+o}:{parent:n.parent}}function Q(s,t){let e=null;s.doc.forEach((n,i)=>{n.attrs.id===t&&S(n)&&(e={n,off:i})}),e&&!e.n.attrs.open&&s.setNodeMarkup(e.off,null,{...e.n.attrs,open:!0})}function P(s,t,e,n,i,o=null){let r=Y(t,e,n,i),c=t[e].at,d=t[n].end,h=o??new C(s.doc.resolve(c),s.doc.resolve(d)),a;if(i.at===c||i.at===d){a=s.tr;for(let l=e;l<=n;l++){let p=r(t[l]);p&&a.setNodeMarkup(t[l].at,null,{...t[l].node.attrs,...p})}a.setSelection(h.map(a.doc,a.mapping)),a.setMeta(L,A(t,e,n,i.at,r))}else a=N(s,t,e,n,i.at,r,h);if(i.open){Q(a,i.open);let l=a.getMeta(L);l&&a.setMeta(L,{...l,attrs:{...l.attrs,[i.open]:{open:!0}}})}return a}function K(s,t,e,n,i){if(i.parent!=null&&t.slice(e,n+1).some(a=>a.node.attrs.id===i.parent))return!1;let o=t[n].end-t[e].at,r=Y(t,e,n,i);for(let a=e;a<=n;a++)if(w(t[a].node)&&(r(t[a])?.indent??t[a].node.attrs.indent)>$)return!1;let c=P(s,t,e,n,i),h=i.at===t[e].at||i.at===t[n].end?t[e].at:i.at>t[e].at?i.at-o:i.at;return D(c.doc,s.doc).every(a=>a.at>=h&&a.at<h+o)}function U(s,t,e,n,i){let o=new Map;t.forEach(l=>{S(l.node)&&l.node.attrs.id&&o.set(l.node.attrs.id,l.i)});let r=i<0?s.doc.content.size:t[i].at;if(r>t[e].at&&r<t[n].end)return[];let c=(i<0?t.length:i)-1,d=J(t,o,c),h=d.indexOf(i<0?null:y(t[i].node)),a=[];for(let l of d.slice(Math.max(0,h))){let p=l===null?0:t[o.get(l)].depth+1,E=c>=0&&w(t[c].node)&&y(t[c].node)===l?t[c].node:null,f=w(t[e].node)&&E?E.attrs.indent+1:0;for(let u=0;u<=f;u++){let m={at:r,parent:l,indent:u,depth:p+(w(t[e].node)?u:0)};K(s,t,e,n,m)&&a.push(m)}}return a}function q(s,t,e,n,i){let o=t[i];if(!o||!S(o.node)||o.node.attrs.open||o.hidden||i>=e&&i<=n||o.at>t[e].at&&o.at<t[n].end)return null;let r=o.node.attrs.id,c={at:t[o.subEnd].end,parent:r,indent:0,depth:o.depth+1,open:r};return K(s,t,e,n,c)?c:null}function z(s,t){let e=null;for(let n of s)(!e||Math.abs(n.depth-t)<Math.abs(e.depth-t))&&(e=n);return e}var Z=4,tt=250,V=8,b=56,W=18;function et(s){for(let t=s.parentElement;t;t=t.parentElement){let e=getComputedStyle(t).overflowY;if((e==="auto"||e==="scroll")&&t.scrollHeight>t.clientHeight)return t}return s.ownerDocument.scrollingElement}var j=new WeakMap;function nt(s,t){let e=j.get(s);if(!e){e=[];for(let n of s){if(n.hidden)continue;let i=t.nodeDOM(n.at);i?.getBoundingClientRect&&e.push({i:n.i,dom:i})}j.set(s,e)}return e}function it(s,t){let e=0,n=s.length;for(;e<n;){let i=e+n>>1,o=s[i].dom.getBoundingClientRect();t<o.top+o.height/2?n=i:e=i+1}return e<s.length?e:-1}var G=class{constructor(t,e,{index:n,onClick:i}){this.view=t,this.grip=e,this.index=n,this.onClick=i,this.shell=t.dom.parentElement,this.line=document.createElement("div"),this.line.className="page-drop",this.line.hidden=!0,this.line.setAttribute("aria-hidden","true"),this.shell.append(this.line),this.state=null,this.onMove=o=>this.move(o),this.onUp=o=>this.end(o),this.onCancel=o=>{o.pointerId===this.state?.pointer&&this.cancel()},this.onKey=o=>{o.key==="Escape"&&this.state?.active&&(o.preventDefault(),o.stopPropagation(),this.cancel())},this.onOther=o=>{this.state&&o.pointerId!==this.state.pointer&&this.cancel()},this.onBlur=()=>this.cancel(),this.onScroll=()=>{this.state&&!this.state.active&&this.stop()},e.addEventListener("pointerdown",o=>this.start(o))}start(t){if(t.button!==0||this.state)return;let e=this.view.state,n=v(e.doc),i=e.selection,o=Math.min(this.index(),n.length-1),r=i instanceof C&&n[o].at>=i.from&&n[o].end<=i.to,{lo:c,hi:d}=r?i.span(e.doc):I(n,o,o);if(this.state={index:o,span:R(n,c,d),touch:t.pointerType==="touch",pointer:t.pointerId,x0:t.clientX,y0:t.clientY,x:t.clientX,y:t.clientY,hold:0,active:!1,raf:0,gap:void 0,targets:[],target:null},this.grip.setPointerCapture?.(t.pointerId),this.grip.addEventListener("pointermove",this.onMove),this.grip.addEventListener("pointerup",this.onUp),this.grip.addEventListener("pointercancel",this.onCancel),this.grip.addEventListener("lostpointercapture",this.onCancel),this.state.touch){let h=this.state;h.hold=setTimeout(()=>this.held(h),tt),window.addEventListener("pointerdown",this.onOther,!0),window.addEventListener("blur",this.onBlur),window.addEventListener("scroll",this.onScroll,!0)}t.preventDefault()}held(t){if(!(this.state!==t||t.active)){if(t.hold=0,Math.hypot(t.x-t.x0,t.y-t.y0)>V||!this.view.editable)return this.stop();this.begin()}}move(t){let e=this.state;if(!(!e||t.pointerId!==e.pointer)){if(e.x=t.clientX,e.y=t.clientY,e.touch&&!this.view.editable)return e.active?this.cancel():this.stop();if(!e.active){let n=Math.hypot(e.x-e.x0,e.y-e.y0);if(e.touch){n>V&&this.stop();return}if(n<=Z)return;this.begin()}this.track()}}begin(){let t=this.state;if(!t||t.active)return;let e=this.view.state,n=v(e.doc),i=x(n,t.span);if(!i)return this.cancel();t.active=!0,this.view.dispatch(e.tr.setSelection(X(e.doc,i.lo,i.hi))),this.shell.classList.add("is-dragging");let o=this.shell.appendChild(document.createElement("div"));o.style.cssText="position:absolute;visibility:hidden;width:var(--page-indent)",this.indentPx=o.getBoundingClientRect().width||27,o.remove(),this.scroller=et(this.view.dom),window.addEventListener("keydown",this.onKey,!0),this.loop(),this.track()}track(){let t=this.state,e=this.view,n=e.state;if(!t)return;let i=v(n.doc),o=x(i,t.span);if(!o)return this.cancel();let{lo:r,hi:c}=o,d=nt(i,e),h=it(d,t.y),a=-1,l=null,p=null,E=h<0?d.length:h+1;for(let k=Math.max(0,E-2);k<E;k++){let g=d[k].dom.getBoundingClientRect();t.y>=g.top+g.height/4&&t.y<=g.bottom-g.height/4&&(p={i:d[k].i,bottom:g.bottom}),l=g.bottom+2}h>=0&&(a=d[h].i,l=d[h].dom.getBoundingClientRect().top-2);let f=r<0?null:p&&q(n,i,r,c,p.i),u=f?`summary:${p.i}`:a;(u!==t.gap||n.doc!==t.doc)&&(t.gap=u,t.doc=n.doc,t.targets=r<0?[]:f?[f]:U(n,i,r,c,a)),f&&(l=p.bottom+2);let m=e.dom.getBoundingClientRect().left;t.target=z(t.targets,(t.x-m)/this.indentPx);let T=this.shell.getBoundingClientRect();if(!t.target||l===null){this.line.hidden=!0,this.shell.dataset.drop="none";return}this.shell.dataset.drop="ok",this.line.hidden=!1,this.line.style.setProperty("--page-drop-y",`${l-T.top}px`),this.line.style.setProperty("--page-drop-x",`${m-T.left+t.target.depth*this.indentPx}px`),this.line.style.setProperty("--page-drop-w",`${e.dom.getBoundingClientRect().right-m-t.target.depth*this.indentPx}px`)}loop(){let t=()=>{let e=this.state;if(!e?.active)return;if(e.touch&&!this.view.editable)return this.cancel();let n=this.scroller,i=n===n.ownerDocument.scrollingElement?{top:0,bottom:window.innerHeight}:n.getBoundingClientRect(),o=0;e.y<i.top+b?o=-W*Math.min(1,(i.top+b-e.y)/b):e.y>i.bottom-b&&(o=W*Math.min(1,(e.y-(i.bottom-b))/b)),o&&(n.scrollTop+=o,this.track()),e.raf=requestAnimationFrame(t)};this.state.raf=requestAnimationFrame(t)}end(t){let e=this.state;if(!e||t.pointerId!==e.pointer)return;if(!e.active){if(this.stop(),t.type==="pointerup"){let l=v(this.view.state.doc),p=x(l,e.span);p&&this.onClick(p.lo)}return}if(this.track(),this.state!==e)return;let n=e.target,i=this.view.state,o=v(i.doc),r=x(o,e.span);if(this.stop(),!n||!r)return;let{lo:c,hi:d}=r;if(!n.open&&(n.at===o[c].at||n.at===o[d].end)&&n.parent===(o[c].node.attrs.parent??null)&&(o[c].node.type.name!=="list_item"||n.indent===o[c].node.attrs.indent))return;if(this.view.dispatch(H(P(i,o,c,d,n)).scrollIntoView()),this.view.state.doc===i.doc)return M(this.view,"Move cancelled");let a=d-c+1;M(this.view,`Moved ${a} ${a===1?"block":"blocks"}`),this.view.focus()}cancel(){this.stop(),M(this.view,"Move cancelled")}stop(){let t=this.state;t&&(this.state=null,clearTimeout(t.hold),cancelAnimationFrame(t.raf),this.grip.removeEventListener("pointermove",this.onMove),this.grip.removeEventListener("pointerup",this.onUp),this.grip.removeEventListener("pointercancel",this.onCancel),this.grip.removeEventListener("lostpointercapture",this.onCancel),this.grip.releasePointerCapture?.(t.pointer),window.removeEventListener("pointerdown",this.onOther,!0),window.removeEventListener("blur",this.onBlur),window.removeEventListener("scroll",this.onScroll,!0),window.removeEventListener("keydown",this.onKey,!0),this.shell.classList.remove("is-dragging"),delete this.shell.dataset.drop,this.line.hidden=!0)}destroy(){this.stop(),this.line.remove()}};export{v as a,et as b,G as c};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{i as hostActions,d as hostMeta,c as hostMetaOrder,a as hostMetaOutcome,b as hostMetaPath,f as hostPageFormat,g as hostPageStateHref,e as hostSupports,h as hostVersions,k as querySaveOutcome,j as resetHostMeta};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"./c-6DNRCPNM.js";import"./c-VHNSBD2M.js";export{b as defaultYieldTask,a as drain,c as runSliced};
@@ -1 +1 @@
1
- import{b as O,c as N}from"./c-IJUK2GPW.js";import{g as v}from"./c-GHBCCVG4.js";import{a as y,h as k,j as C,k as R}from"./c-HA6INT6J.js";import{b as E,s as g,t as _,u as S,v as m}from"./c-DCFSEJZG.js";import{g as w}from"./c-WRBKEJD4.js";import{a as M}from"./c-VHNSBD2M.js";var L={};M(L,{default:()=>B});var P=document.createElement("div"),x=new Set(k);function T(e){if(e.type!=="attributes")return!1;let t=e.attributeName;return t===R||y(t,e.target)?!0:e.target===document.documentElement&&(x.has(t)||t.startsWith(C))}function A(e){return e.some(T)?e.filter(t=>!T(t)):e}var V={_callbacks:{anyChange:[],addOrRemove:[],addElement:[],removeElement:[],attribute:[]},_observing:!1,_pauseDepth:0,_hasNonPausable:!1,debug:!1,_rawSubscribers:[],_deferredChangeRecords:null,_deferredChangeScheduled:!1,pause(){this._pauseDepth===0&&this._deliverBeforePause(),this._pauseDepth++,typeof window<"u"&&window.clay?.undo?.pause&&window.clay.undo.pause(),this._log("Paused",this._pauseDepth)},_deliverBeforePause(){if(!this._observer)return;let e=this._observer.takeRecords();e.length&&this._onRecords(e)},dropQueued(){this._observer&&this._drainBrowserQueue(this)},resume(){this._pauseDepth!==0&&(this._pauseDepth--,this._pauseDepth===0&&this._observer&&this._drainBrowserQueue(this),typeof window<"u"&&window.clay?.undo?.resume&&window.clay.undo.resume(),this._log("Resumed",this._pauseDepth))},_log(e,t=null,s="log"){if(!this.debug)return;let i=`[Mutation ${new Date().toISOString()}]`;t?console[s](i,e,t):console[s](i,e)},_notify(e,t,s=!1){this._log(`Notifying ${this._callbacks[e].length} callbacks of type "${e}"`,{changes:t});for(let r of this._callbacks[e]){if(s&&r.pausable!==!1)continue;let{fn:i,debounce:u=0,maxWait:l=0,selectorFilter:n,omitChangeDetails:c,require:h,skip:d}=r,f=t.filter(o=>{if(h!=="observed"&&v(o))return!1;let a=m(this._policyForChange(o),h,d);if(!o.policyTransition)return!a;let b=m(o.previousPolicy,h,d);return!(a&&b)});if(!f.length){this._log("No changes passed the region policy, skipping callback");continue}if(n&&(this._log("Applying selector filter",{selectorFilter:n}),f=f.filter(o=>{if(typeof n=="string"){let a=o.element.matches?.(n)||!1;return this._log(`Selector "${n}" match:`,{element:o.element,matches:a}),a}if(typeof n=="function"){let a=n(o.element);return this._log("Custom filter match:",{element:o.element,matches:a}),a}return!1}),this._log("Changes after filtering:",{filteredChanges:f})),!f.length){this._log("No changes passed the filter, skipping callback");continue}if(u===0)try{c?i():i(f)}catch(o){this._log("Error in callback execution:",o,"error"),console.error("Error in Mutation callback:",o)}else{r.timeout&&(clearTimeout(r.timeout),r.timeout=null),r.firstPendingAt||(r.firstPendingAt=Date.now());let o=l>0?Math.max(0,Math.min(u,l-(Date.now()-r.firstPendingAt))):u;c?r.timeout=setTimeout(()=>{r.timeout=null,r.firstPendingAt=null;try{this._log("Executing debounced callback (no details)"),i()}catch(a){this._log("Error in callback execution:",a,"error"),console.error("Error in Mutation callback:",a)}},o):(r.pendingChanges||(r.pendingChanges=[]),r.pendingChanges.push(...f),r.timeout=setTimeout(()=>{let a=r.pendingChanges;r.pendingChanges=null,r.timeout=null,r.firstPendingAt=null;try{this._log("Executing debounced callback with changes:",{changes:a}),a&&a.length>0&&i(a)}catch(b){this._log("Error in callback execution:",b,"error"),console.error("Error in Mutation callback:",b)}},o))}}},_policyForChange(e){if(e.__policy)return e.__policy;let t=e.element,s=g(t);return e.parent&&t&&t.isConnected===!1&&(s=S(s,g(e.parent))),e.__policy=s,s},_onRecords(e){let t=A(e);t.length&&(this._fanOutRaw(t),this._handleMutations(t))},_fanOutRaw(e){if(!(!this._rawSubscribers.length||!e.length))for(let t of this._rawSubscribers)try{t.cb(e)}catch(s){this._log("Error in raw subscriber callback:",s,"error"),console.error("Error in Mutation raw subscriber:",s)}},_drainBrowserQueue(e){let t=A(this._observer?this._observer.takeRecords():[]),s=!!e&&this._rawSubscribers.indexOf(e)!==-1;if(t.length){for(let r of this._rawSubscribers)r!==e&&(r.buffer.push(...t),this._scheduleBufferFlush(r));s?this._deferChangeLane(t):this._hasNonPausable&&this._processMutations(t,!0)}if(s){let r=e.buffer;return e.buffer=[],r.length?r.concat(t):t}return t},_scheduleBufferFlush(e){e._flushScheduled||(e._flushScheduled=!0,queueMicrotask(()=>{if(e._flushScheduled=!1,!e.buffer.length)return;let t=e.buffer;e.buffer=[];try{e.cb(t)}catch(s){this._log("Error in raw subscriber flush:",s,"error"),console.error("Error in Mutation raw subscriber:",s)}}))},_deferChangeLane(e){this._deferredChangeRecords||(this._deferredChangeRecords=[]),this._deferredChangeRecords.push(...e),!this._deferredChangeScheduled&&(this._deferredChangeScheduled=!0,queueMicrotask(()=>{this._deferredChangeScheduled=!1;let t=this._deferredChangeRecords;this._deferredChangeRecords=null,t&&t.length&&this._handleMutations(t)}))},subscribeRaw(e){let t={cb:e,buffer:[],_flushScheduled:!1};return this._rawSubscribers.push(t),this._startObserving(),{drain:()=>this._drainBrowserQueue(t),unsubscribe:()=>{let s=this._rawSubscribers.indexOf(t);s!==-1&&this._rawSubscribers.splice(s,1)}}},createObserver(e){let t=null;return{observe:s=>{if(s!==document.body)throw new Error("Mutation.createObserver only supports observing document.body");this._startObserving(),t||(t=this.subscribeRaw(e))},disconnect:()=>{t&&(t.unsubscribe(),t=null)},takeRecords:()=>t?t.drain():[]}},_handleMutations(e){if(this._pauseDepth>0){if(!this._hasNonPausable){this._log(`Skipping ${e.length} mutations (paused)`);return}this._processMutations(e,!0);return}this._processMutations(e,!1)},_processMutations(e,t=!1){let s=[],r={add:[],remove:[],attribute:[],characterData:[]};for(let i of e){let u=i.type==="attributes"&&w(i.attributeName);if(!(!u&&_(i.target))&&!(i.type==="attributes"&&i.attributeName&&E.test(i.attributeName.toLowerCase()))){if(i.type==="characterData"){this._log("Processing characterData mutation",{element:i.target.parentElement,oldValue:i.oldValue,newValue:i.target.textContent});let l={type:"characterData",element:i.target.parentElement??P,oldValue:i.oldValue,newValue:i.target.textContent};s.push(l),r.characterData.push(l)}if(i.type==="childList"){this._log("Processing childList mutation",{addedNodes:i.addedNodes,removedNodes:i.removedNodes});for(let n of i.addedNodes)if(n.nodeType===1&&!_(n)){let c=[n,...n.querySelectorAll("*")];this._log(`Processing ${c.length} added nodes`,{addedNodes:c});for(let h of c){let d={type:"add",element:h,parent:i.target,previousSibling:i.previousSibling,nextSibling:i.nextSibling};s.push(d),r.add.push(d)}}for(let n of i.removedNodes)if(n.nodeType===1&&!_(n)){let c=[n,...n.querySelectorAll("*")];this._log(`Processing ${c.length} removed nodes`,{removedNodes:c});for(let h of c){let d={type:"remove",element:h,parent:i.target,previousSibling:i.previousSibling,nextSibling:i.nextSibling};s.push(d),r.remove.push(d)}}let l=!1;for(let n of i.addedNodes)if(n.nodeType===3){l=!0;break}if(!l){for(let n of i.removedNodes)if(n.nodeType===3){l=!0;break}}if(l&&i.target.nodeType===1){let n={type:"characterData",element:i.target,oldValue:void 0,newValue:i.target.textContent};s.push(n),r.characterData.push(n)}}if(i.type==="attributes"){this._log("Processing attribute mutation",{element:i.target,attribute:i.attributeName,oldValue:i.oldValue,newValue:i.target.getAttribute(i.attributeName)});let l={type:"attribute",element:i.target,attribute:i.attributeName,oldValue:i.oldValue,newValue:i.target.getAttribute(i.attributeName),policyTransition:u,previousPolicy:u?F(i):null};s.push(l),r.attribute.push(l)}}}if(s.length){if(this._log("Processing collected changes",{total:s.length,byType:{add:r.add.length,remove:r.remove.length,attribute:r.attribute.length}}),!t&&O()){for(let u of s)if(!v(u)&&!m(this._policyForChange(u),"dirty")){N();break}}this._notify("anyChange",s,t);let i=[...r.add,...r.remove];i.length&&this._notify("addOrRemove",i,t),r.add.length&&this._notify("addElement",r.add,t),r.remove.length&&this._notify("removeElement",r.remove,t),r.attribute.length&&this._notify("attribute",r.attribute,t)}},_observer:null,_initializeObserver(){this._observer||(this._log("Initializing MutationObserver"),this._observer=new MutationObserver(this._onRecords.bind(this)))},_addCallback(e,t={},s){this._log("Adding callback",{type:e,options:t}),t.debug&&(this.debug=!0);let r={fn:s,debounce:t.debounce||0,maxWait:t.maxWait||0,selectorFilter:t.selectorFilter,omitChangeDetails:t.omitChangeDetails,require:t.require,skip:t.skip,pausable:t.pausable!==!1,timeout:null,pendingChanges:null,firstPendingAt:null};return this._callbacks[e].push(r),this._recomputeHasNonPausable(),this._log(`Added callback to ${e}. Total callbacks:`,{[e]:this._callbacks[e].length}),this._startObserving(),()=>{this._log("Removing callback",{type:e});let i=this._callbacks[e].indexOf(r);i!==-1&&(clearTimeout(r.timeout),r.pendingChanges=null,this._callbacks[e].splice(i,1),this._recomputeHasNonPausable(),this._log(`Removed callback from ${e}. Remaining callbacks:`,{[e]:this._callbacks[e].length}))}},_recomputeHasNonPausable(){this._hasNonPausable=Object.values(this._callbacks).some(e=>e.some(t=>t.pausable===!1))},_startObserving(){if(this._observing){this._log("Already observing, skipping initialization");return}this._log("Starting observation"),this._initializeObserver(),this._observer.observe(document.documentElement,{childList:!0,attributes:!0,subtree:!0,characterData:!0,attributeOldValue:!0,characterDataOldValue:!0}),this._observing=!0,this._log("Observation started")},onAnyChange(e={},t){return this._addCallback("anyChange",e,t)},onAddOrRemove(e={},t){return this._addCallback("addOrRemove",e,t)},onAddElement(e={},t){return this._addCallback("addElement",e,t)},onRemoveElement(e={},t){return this._addCallback("removeElement",e,t)},onAttribute(e={},t){return this._addCallback("attribute",e,t)},ensureObserving(){this._startObserving()}},D=typeof window<"u"&&window.__clayMutation,p=D||V;if(typeof window<"u"&&!D){window.__clayMutation=p,window.clay=window.clay||{},window.clay.Mutation=p;try{document.dispatchEvent(new CustomEvent("clay:mutation-ready",{detail:{Mutation:p}}))}catch{}}var B=p;function F(e){let t=e.target,s=t.cloneNode(!1),r=s;for(;t.parentElement;){t=t.parentElement;let i=t.cloneNode(!1);i.appendChild(s),s=i}return e.oldValue==null?r.removeAttribute(e.attributeName):r.setAttribute(e.attributeName,e.oldValue),g(r)}export{B as a,L as b};
1
+ import{b as O,c as N}from"./c-IJUK2GPW.js";import{f as v}from"./c-VG5XIN4T.js";import{a as y,h as k,j as C,k as R}from"./c-HA6INT6J.js";import{b as E,s as g,t as _,u as S,v as m}from"./c-DCFSEJZG.js";import{g as w}from"./c-WRBKEJD4.js";import{a as M}from"./c-VHNSBD2M.js";var L={};M(L,{default:()=>B});var P=document.createElement("div"),x=new Set(k);function T(e){if(e.type!=="attributes")return!1;let t=e.attributeName;return t===R||y(t,e.target)?!0:e.target===document.documentElement&&(x.has(t)||t.startsWith(C))}function A(e){return e.some(T)?e.filter(t=>!T(t)):e}var V={_callbacks:{anyChange:[],addOrRemove:[],addElement:[],removeElement:[],attribute:[]},_observing:!1,_pauseDepth:0,_hasNonPausable:!1,debug:!1,_rawSubscribers:[],_deferredChangeRecords:null,_deferredChangeScheduled:!1,pause(){this._pauseDepth===0&&this._deliverBeforePause(),this._pauseDepth++,typeof window<"u"&&window.clay?.undo?.pause&&window.clay.undo.pause(),this._log("Paused",this._pauseDepth)},_deliverBeforePause(){if(!this._observer)return;let e=this._observer.takeRecords();e.length&&this._onRecords(e)},dropQueued(){this._observer&&this._drainBrowserQueue(this)},resume(){this._pauseDepth!==0&&(this._pauseDepth--,this._pauseDepth===0&&this._observer&&this._drainBrowserQueue(this),typeof window<"u"&&window.clay?.undo?.resume&&window.clay.undo.resume(),this._log("Resumed",this._pauseDepth))},_log(e,t=null,s="log"){if(!this.debug)return;let i=`[Mutation ${new Date().toISOString()}]`;t?console[s](i,e,t):console[s](i,e)},_notify(e,t,s=!1){this._log(`Notifying ${this._callbacks[e].length} callbacks of type "${e}"`,{changes:t});for(let r of this._callbacks[e]){if(s&&r.pausable!==!1)continue;let{fn:i,debounce:u=0,maxWait:l=0,selectorFilter:n,omitChangeDetails:c,require:h,skip:d}=r,f=t.filter(o=>{if(h!=="observed"&&v(o))return!1;let a=m(this._policyForChange(o),h,d);if(!o.policyTransition)return!a;let b=m(o.previousPolicy,h,d);return!(a&&b)});if(!f.length){this._log("No changes passed the region policy, skipping callback");continue}if(n&&(this._log("Applying selector filter",{selectorFilter:n}),f=f.filter(o=>{if(typeof n=="string"){let a=o.element.matches?.(n)||!1;return this._log(`Selector "${n}" match:`,{element:o.element,matches:a}),a}if(typeof n=="function"){let a=n(o.element);return this._log("Custom filter match:",{element:o.element,matches:a}),a}return!1}),this._log("Changes after filtering:",{filteredChanges:f})),!f.length){this._log("No changes passed the filter, skipping callback");continue}if(u===0)try{c?i():i(f)}catch(o){this._log("Error in callback execution:",o,"error"),console.error("Error in Mutation callback:",o)}else{r.timeout&&(clearTimeout(r.timeout),r.timeout=null),r.firstPendingAt||(r.firstPendingAt=Date.now());let o=l>0?Math.max(0,Math.min(u,l-(Date.now()-r.firstPendingAt))):u;c?r.timeout=setTimeout(()=>{r.timeout=null,r.firstPendingAt=null;try{this._log("Executing debounced callback (no details)"),i()}catch(a){this._log("Error in callback execution:",a,"error"),console.error("Error in Mutation callback:",a)}},o):(r.pendingChanges||(r.pendingChanges=[]),r.pendingChanges.push(...f),r.timeout=setTimeout(()=>{let a=r.pendingChanges;r.pendingChanges=null,r.timeout=null,r.firstPendingAt=null;try{this._log("Executing debounced callback with changes:",{changes:a}),a&&a.length>0&&i(a)}catch(b){this._log("Error in callback execution:",b,"error"),console.error("Error in Mutation callback:",b)}},o))}}},_policyForChange(e){if(e.__policy)return e.__policy;let t=e.element,s=g(t);return e.parent&&t&&t.isConnected===!1&&(s=S(s,g(e.parent))),e.__policy=s,s},_onRecords(e){let t=A(e);t.length&&(this._fanOutRaw(t),this._handleMutations(t))},_fanOutRaw(e){if(!(!this._rawSubscribers.length||!e.length))for(let t of this._rawSubscribers)try{t.cb(e)}catch(s){this._log("Error in raw subscriber callback:",s,"error"),console.error("Error in Mutation raw subscriber:",s)}},_drainBrowserQueue(e){let t=A(this._observer?this._observer.takeRecords():[]),s=!!e&&this._rawSubscribers.indexOf(e)!==-1;if(t.length){for(let r of this._rawSubscribers)r!==e&&(r.buffer.push(...t),this._scheduleBufferFlush(r));s?this._deferChangeLane(t):this._hasNonPausable&&this._processMutations(t,!0)}if(s){let r=e.buffer;return e.buffer=[],r.length?r.concat(t):t}return t},_scheduleBufferFlush(e){e._flushScheduled||(e._flushScheduled=!0,queueMicrotask(()=>{if(e._flushScheduled=!1,!e.buffer.length)return;let t=e.buffer;e.buffer=[];try{e.cb(t)}catch(s){this._log("Error in raw subscriber flush:",s,"error"),console.error("Error in Mutation raw subscriber:",s)}}))},_deferChangeLane(e){this._deferredChangeRecords||(this._deferredChangeRecords=[]),this._deferredChangeRecords.push(...e),!this._deferredChangeScheduled&&(this._deferredChangeScheduled=!0,queueMicrotask(()=>{this._deferredChangeScheduled=!1;let t=this._deferredChangeRecords;this._deferredChangeRecords=null,t&&t.length&&this._handleMutations(t)}))},subscribeRaw(e){let t={cb:e,buffer:[],_flushScheduled:!1};return this._rawSubscribers.push(t),this._startObserving(),{drain:()=>this._drainBrowserQueue(t),unsubscribe:()=>{let s=this._rawSubscribers.indexOf(t);s!==-1&&this._rawSubscribers.splice(s,1)}}},createObserver(e){let t=null;return{observe:s=>{if(s!==document.body)throw new Error("Mutation.createObserver only supports observing document.body");this._startObserving(),t||(t=this.subscribeRaw(e))},disconnect:()=>{t&&(t.unsubscribe(),t=null)},takeRecords:()=>t?t.drain():[]}},_handleMutations(e){if(this._pauseDepth>0){if(!this._hasNonPausable){this._log(`Skipping ${e.length} mutations (paused)`);return}this._processMutations(e,!0);return}this._processMutations(e,!1)},_processMutations(e,t=!1){let s=[],r={add:[],remove:[],attribute:[],characterData:[]};for(let i of e){let u=i.type==="attributes"&&w(i.attributeName);if(!(!u&&_(i.target))&&!(i.type==="attributes"&&i.attributeName&&E.test(i.attributeName.toLowerCase()))){if(i.type==="characterData"){this._log("Processing characterData mutation",{element:i.target.parentElement,oldValue:i.oldValue,newValue:i.target.textContent});let l={type:"characterData",element:i.target.parentElement??P,oldValue:i.oldValue,newValue:i.target.textContent};s.push(l),r.characterData.push(l)}if(i.type==="childList"){this._log("Processing childList mutation",{addedNodes:i.addedNodes,removedNodes:i.removedNodes});for(let n of i.addedNodes)if(n.nodeType===1&&!_(n)){let c=[n,...n.querySelectorAll("*")];this._log(`Processing ${c.length} added nodes`,{addedNodes:c});for(let h of c){let d={type:"add",element:h,parent:i.target,previousSibling:i.previousSibling,nextSibling:i.nextSibling};s.push(d),r.add.push(d)}}for(let n of i.removedNodes)if(n.nodeType===1&&!_(n)){let c=[n,...n.querySelectorAll("*")];this._log(`Processing ${c.length} removed nodes`,{removedNodes:c});for(let h of c){let d={type:"remove",element:h,parent:i.target,previousSibling:i.previousSibling,nextSibling:i.nextSibling};s.push(d),r.remove.push(d)}}let l=!1;for(let n of i.addedNodes)if(n.nodeType===3){l=!0;break}if(!l){for(let n of i.removedNodes)if(n.nodeType===3){l=!0;break}}if(l&&i.target.nodeType===1){let n={type:"characterData",element:i.target,oldValue:void 0,newValue:i.target.textContent};s.push(n),r.characterData.push(n)}}if(i.type==="attributes"){this._log("Processing attribute mutation",{element:i.target,attribute:i.attributeName,oldValue:i.oldValue,newValue:i.target.getAttribute(i.attributeName)});let l={type:"attribute",element:i.target,attribute:i.attributeName,oldValue:i.oldValue,newValue:i.target.getAttribute(i.attributeName),policyTransition:u,previousPolicy:u?F(i):null};s.push(l),r.attribute.push(l)}}}if(s.length){if(this._log("Processing collected changes",{total:s.length,byType:{add:r.add.length,remove:r.remove.length,attribute:r.attribute.length}}),!t&&O()){for(let u of s)if(!v(u)&&!m(this._policyForChange(u),"dirty")){N();break}}this._notify("anyChange",s,t);let i=[...r.add,...r.remove];i.length&&this._notify("addOrRemove",i,t),r.add.length&&this._notify("addElement",r.add,t),r.remove.length&&this._notify("removeElement",r.remove,t),r.attribute.length&&this._notify("attribute",r.attribute,t)}},_observer:null,_initializeObserver(){this._observer||(this._log("Initializing MutationObserver"),this._observer=new MutationObserver(this._onRecords.bind(this)))},_addCallback(e,t={},s){this._log("Adding callback",{type:e,options:t}),t.debug&&(this.debug=!0);let r={fn:s,debounce:t.debounce||0,maxWait:t.maxWait||0,selectorFilter:t.selectorFilter,omitChangeDetails:t.omitChangeDetails,require:t.require,skip:t.skip,pausable:t.pausable!==!1,timeout:null,pendingChanges:null,firstPendingAt:null};return this._callbacks[e].push(r),this._recomputeHasNonPausable(),this._log(`Added callback to ${e}. Total callbacks:`,{[e]:this._callbacks[e].length}),this._startObserving(),()=>{this._log("Removing callback",{type:e});let i=this._callbacks[e].indexOf(r);i!==-1&&(clearTimeout(r.timeout),r.pendingChanges=null,this._callbacks[e].splice(i,1),this._recomputeHasNonPausable(),this._log(`Removed callback from ${e}. Remaining callbacks:`,{[e]:this._callbacks[e].length}))}},_recomputeHasNonPausable(){this._hasNonPausable=Object.values(this._callbacks).some(e=>e.some(t=>t.pausable===!1))},_startObserving(){if(this._observing){this._log("Already observing, skipping initialization");return}this._log("Starting observation"),this._initializeObserver(),this._observer.observe(document.documentElement,{childList:!0,attributes:!0,subtree:!0,characterData:!0,attributeOldValue:!0,characterDataOldValue:!0}),this._observing=!0,this._log("Observation started")},onAnyChange(e={},t){return this._addCallback("anyChange",e,t)},onAddOrRemove(e={},t){return this._addCallback("addOrRemove",e,t)},onAddElement(e={},t){return this._addCallback("addElement",e,t)},onRemoveElement(e={},t){return this._addCallback("removeElement",e,t)},onAttribute(e={},t){return this._addCallback("attribute",e,t)},ensureObserving(){this._startObserving()}},D=typeof window<"u"&&window.__clayMutation,p=D||V;if(typeof window<"u"&&!D){window.__clayMutation=p,window.clay=window.clay||{},window.clay.Mutation=p;try{document.dispatchEvent(new CustomEvent("clay:mutation-ready",{detail:{Mutation:p}}))}catch{}}var B=p;function F(e){let t=e.target,s=t.cloneNode(!1),r=s;for(;t.parentElement;){t=t.parentElement;let i=t.cloneNode(!1);i.appendChild(s),s=i}return e.oldValue==null?r.removeAttribute(e.attributeName):r.setAttribute(e.attributeName,e.oldValue),g(r)}export{B as a,L as b};
@@ -0,0 +1 @@
1
+ import{a as b,b as C,c as O,d as L,e as R,f as A,g as S,h as T,i as I}from"../c-IVMD3FEM.js";import{a as l,b as u,c,d as f}from"../c-TNEM3RNM.js";import{a as d,b as E,c as m,d as p}from"../c-PLP4JKFC.js";import"../c-Q26MME6N.js";import"../c-VKEDWYDF.js";import{a}from"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.js";import{f as s}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 N=[d,R,A,b,l].join(", "),x=[E,S,C,u],o=null,n=null,i=!1,D=t=>{let e=t.parentNode||t;for(let q of x)q(e)};function r(){i=!0,!n&&(n=a.onAddElement({selectorFilter:N,require:"observed",pausable:!1,debounce:0},t=>{i&&t.forEach(({element:e})=>D(e))}))}function k(){i=!1,n&&(n(),n=null)}function h(){return o||(p(),I(),L(),f(),o={selector:N},s&&r(),o)}h();function w(t=document){return{enable(){for(let e of x)e(t);r()},quiesce(){i=!1},resume(){i=!0},dispose(){k(),m(),T(),O(),c()}}}function y(){return{id:"clay:controls",order:110,prepare(t={}){let e=w();return t.initial!==!0?e:{enable:()=>r(),quiesce:()=>e.quiesce(),resume:()=>e.resume(),dispose:()=>e.dispose()}}}}var F=h;export{w as controlsLease,F as default,h as init,h as install,y as modeParticipant};
@@ -0,0 +1 @@
1
+ import{Q as e,g as i}from"../c-T637T7SN.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import{a as p}from"../c-5VYOWDTI.js";import"../c-FWKHM4E7.js";import"../c-X5LNHET5.js";import{a as f,b as m}from"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as d}from"../c-ZWIOJGMT.js";import"../c-B7J4K2AE.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import{c}from"../c-IJUK2GPW.js";import{f as a}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{s as n,v as o}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";function y(){d.onAnyChange({debounce:0,omitChangeDetails:!0,require:"autosave"},()=>{i()&&e.noteActivity()})}function A(){document.addEventListener("input",t=>{t.target.closest(f)&&(t.isTrusted&&!o(n(t.target),"dirty")&&c(),i()&&e.noteActivity())},!0)}function g(){let t=v=>{if(!e.pending())return;let r=v.target;if(!r||typeof r.closest!="function")return;let s=r.closest("input, textarea, select, [contenteditable]");s&&(o(n(s),"dirty")||i()&&e.noteActivity())};document.addEventListener("input",t,!0),document.addEventListener("compositionupdate",t,!0)}var l=!1;function u(){l||document.documentElement.matches(m)&&a&&(l=!0,p(!0),y(),A(),g())}u();var C=u;function L(){return{id:"clay:autosave",order:20,prepare(t={}){return t.initial===!0?{enable(){},quiesce(){},resume(){},dispose(){}}:{enable:u,quiesce(){},resume(){},dispose(){}}}}}export{C as default,u as init,L as modeParticipant};
@@ -0,0 +1 @@
1
+ import{a as s}from"../c-VKEDWYDF.js";import{q as u}from"../c-T637T7SN.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-FWKHM4E7.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.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{f as d}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import{b as a}from"../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 c=()=>window.clay?.conflicts||null,o=!1,i=null,r=null;function e(n){o||(o=!0,m(),import("../c-D5IKEKXW.js").then(t=>{i=t,t.start(n)},t=>{console.error("clayjs: the conflict notice could not be downloaded; it will try again on the next conflict",t),o=!1,l()}))}function l(){r||=new AbortController;let{signal:n}=r;document.addEventListener("clay:sync-conflicts-changed",p,{signal:n}),document.addEventListener("clay:save-conflict",g,{signal:n}),document.addEventListener("clay:document-upgraded",h,{signal:n}),document.addEventListener("clay:undo-kept",y,{signal:n})}function m(){r?.abort(),r=null}function p(n){c()?.size&&e(n)}function g(n){e(n)}function h(n){e(n)}function y(n){n?.detail?.ok===!0&&e(n)}var v="conflicts",E="undo",f=n=>a.local.get(n)?.count>0;function w(){f(E)&&e(null),f(v)&&import("../c-OIDRZKAF.js").then(n=>{!o&&n.pendingConflicts()>0&&e(null)},()=>{})}function b(){let n=(c()?.list?.()??[]).filter(t=>!t.claimedBy).map(t=>t.id);return n.length?n:u()?["save"]:[]}function x(){return{id:"clay:conflict-notice",order:960,prepare(n={}){return{enable(){n.initial!==!0&&!i&&!o&&l()},quiesce(){let t=b();if(t.length)throw Object.assign(new Error("clay.conflict-notice: a conflict here is still unresolved"),{code:"conflict",pending:t})},resume(){},dispose(){m(),o=!1,i?.stop?.(),i=null}}}}}s(()=>{d&&(c()?.size?e(null):(l(),w()))});export{x as conflictNoticeParticipant,x as modeParticipant};
@@ -0,0 +1 @@
1
+ import{a as s,b as n,c as m,d as r}from"../c-XGH4GS2T.js";import{d as l}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var e=null,u=0;async function p({fresh:f=!1}={}){let o=location.pathname,t=await r({fresh:f});if(location.pathname!==o||n(t)!==o&&(t=await r({fresh:!0}),location.pathname!==o||n(t)!==o))return e;let a=s(t);if(a==="failed"||a==="ok"&&!t.document)return e;let i=a==="ok"?t.document.writable:void 0,c=m(t);return c<u||(u=c,e=typeof i=="boolean"?i:null,l(e)),e}export{p as checkHostPermission};
@@ -0,0 +1 @@
1
+ import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{b as canEdit,h as commitModeFacts,a as isDraftMode,e as isEditMode,g as isOwner,d as learnedHostWritable,f as mode,i as modeState,c as noteHostWritable,k as noteParticipantForget,l as peekModeParticipants,n as registerModeParticipant,o as siteVisibility,j as startsAtImport,m as takeModeParticipants};
@@ -1,3 +1,3 @@
1
- import{a as h}from"../c-WYFDLITL.js";import{i as m}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{i as b}from"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";function v(t){return(t.getAttribute("type")||"text").toLowerCase()}function d(t){let n=t.tagName;if(n==="INPUT"){let i=v(t);i==="checkbox"||i==="radio"?t.checked?t.setAttribute("checked",""):t.removeAttribute("checked"):t.setAttribute("value",t.value);return}if(n==="TEXTAREA"){t.setAttribute("data-value",t.value);return}if(n==="SELECT"){let i=t.options;for(let o=0;o<i.length;o++)i[o].selected?i[o].setAttribute("selected",""):i[o].removeAttribute("selected")}}function y(t,n=t){let i=t.tagName;if(i==="INPUT"){let o=v(t);o==="checkbox"||o==="radio"?n.checked?t.hasAttribute("checked")||t.setAttribute("checked",""):t.removeAttribute("checked"):n.value!==(t.getAttribute("value")??"")&&t.setAttribute("value",n.value);return}if(i==="TEXTAREA"){let o=n.value.startsWith(`
1
+ import{a as h}from"../c-WYFDLITL.js";import{f as m}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{k as b}from"../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";function v(t){return(t.getAttribute("type")||"text").toLowerCase()}function d(t){let n=t.tagName;if(n==="INPUT"){let i=v(t);i==="checkbox"||i==="radio"?t.checked?t.setAttribute("checked",""):t.removeAttribute("checked"):t.setAttribute("value",t.value);return}if(n==="TEXTAREA"){t.setAttribute("data-value",t.value);return}if(n==="SELECT"){let i=t.options;for(let o=0;o<i.length;o++)i[o].selected?i[o].setAttribute("selected",""):i[o].removeAttribute("selected")}}function y(t,n=t){let i=t.tagName;if(i==="INPUT"){let o=v(t);o==="checkbox"||o==="radio"?n.checked?t.hasAttribute("checked")||t.setAttribute("checked",""):t.removeAttribute("checked"):n.value!==(t.getAttribute("value")??"")&&t.setAttribute("value",n.value);return}if(i==="TEXTAREA"){let o=n.value.startsWith(`
2
2
  `)?`
3
3
  `+n.value:n.value;t.textContent!==o&&(t.textContent=o),t.removeAttribute("data-value");return}if(i==="SELECT"){let o=t.options,u=n.options;for(let s=0;s<o.length;s++)u[s]&&u[s].selected?o[s].hasAttribute("selected")||o[s].setAttribute("selected",""):o[s].removeAttribute("selected")}}function E(t=h){let n=`input${t}:not([type="password"]):not([type="hidden"]):not([type="file"])`,i=`textarea${t}`,o=`select${t}`,u=a=>{if(!m)return;let e=a.target;(e.matches(n)&&e.type!=="checkbox"&&e.type!=="radio"||e.matches(i))&&d(e)};document.addEventListener("input",u,!0);let s=a=>{if(!m)return;let e=a.target;if((e.matches(n)&&(e.type==="checkbox"||e.type==="radio")||e.matches(o))&&(d(e),e.type==="radio"&&e.name)){let c=e.form?[...e.form.elements]:[...document.getElementsByName(e.name)];for(let r of c)r!==e&&r.type==="radio"&&r.name===e.name&&r.form===e.form&&r.matches(n)&&d(r)}};document.addEventListener("change",s,!0);let x=[{target:document,type:"input",handler:u,options:!0},{target:document,type:"change",handler:s,options:!0}];return b((a,e)=>{let c=r=>{a.querySelectorAll(r).forEach(f=>{let A=e.original(f);A&&y(f,A)})};c(n),c(i);for(let r of a.querySelectorAll(o))if(e.original(r))for(let l of r.options){let f=e.original(l);f&&f.selected?l.hasAttribute("selected")||l.setAttribute("selected",""):l.removeAttribute("selected")}}),{stop(){for(let{target:a,type:e,handler:c,options:r}of x.splice(0))a.removeEventListener(e,c,r)}}}var p=null;function T(){return p||(p=E(h),p)}T();export{E as default,T as init,T as install};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f}from"../c-X5LNHET5.js";import"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{b as beginRecoveryCapture,e as createRecovery,c as finishRecoveryCapture,a as noteRecoveryCapture,d as noteRecoverySettled,f as recovery};
@@ -0,0 +1 @@
1
+ import{A as C,B as D,C as E,D as F,E as G,F as H,G as I,H as J,I as K,J as L,K as M,L as N,M as O,N as P,O as Q,P as R,Q as S,R as T,S as U,T as V,U as W,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p,o as q,p as r,q as s,r as t,s as u,t as v,u as w,v as x,w as y,x as z,y as A,z as B}from"../c-T637T7SN.js";import{a as e}from"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-FWKHM4E7.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import{b as c,c as d}from"../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{J as b,q as a}from"../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{e as SLICED_SAVE_MIN_BYTES,l as acceptedReceipt,a as addDocumentTransform,m as adoptEntryBaseline,h as autosaveIsSuspended,S as autosaveScheduler,L as baselineSettled,x as closeSavePermit,t as conflictResolvedBySync,M as currentPaintSignature,W as default,H as flushSave,C as getLastSavedBytes,A as getLastSavedContents,B as getLastSavedDirty,b as getPageContents,y as getUnsavedChanges,o as holdAllSaves,V as init,U as initHyperclaySaveButton,T as initSaveKeyboardShortcut,d as inspectSaveSize,s as isSaveConflicted,n as modeParticipant,w as openSavePermit,p as releaseAllSaves,Q as releaseBootSettle,J as replacePageWith,g as resumeAutosave,u as saveGeneration,r as saveHoldReason,c as saveLimits,I as saveOverwritingConflict,F as savePage,G as savePageForce,K as savePageSoon,R as savePageThrottled,k as saveSession,i as savesAdmitted,q as savesHeld,N as schedulePaintHeal,j as sessionParked,D as setLastSavedBaselines,E as setLastSavedContents,v as setSaveGeneration,z as setUnsavedChanges,P as styleAdoptionPending,O as styleAdoptionsSettled,f as suspendAutosave};
@@ -0,0 +1 @@
1
+ import{d as g,e as h,f as i,g as j,h as k,i as l,j as m,k as n,l as o,m as p,n as q,o as r,p as s,q as t,r as u,s as v,t as w,u as x,v as y,w as z,x as A}from"../c-B7J4K2AE.js";import{a as d}from"../c-ATKAOH23.js";import{b as e,h as f}from"../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{J as c,k as a,q as b}from"../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{e as PAGE_FORMAT_META,b as addDocumentTransform,u as buildSaveRequest,r as claimDocumentOperation,A as exitSave,c as getPageContents,i as isSaveInProgress,l as keepaliveHeld,f as knownPageFormatFloor,p as mintSaveId,d as onSaveAccepted,m as onSaveAttempt,n as onSaveOutcome,a as onSnapshot,t as operationKind,s as releaseDocumentOperation,k as releaseSaveLane,y as replacePageWith,j as reserveSaveLane,q as resetSaveAttempts,w as saveCapturedHtml,x as saveConversion,o as saveFateIsUnknown,v as saveHtml,z as setExitSave,g as setSaveHeader,h as withKeepalive};
@@ -0,0 +1 @@
1
+ import{A,B,C,D,E,F,G,H,I,J,K,L,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../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{q as addDocumentTransform,d as attachCaptureArtifact,j as canonicalizeReceived,g as captureArtifact,I as captureBodyForSync,w as captureForComparison,y as captureForComparisonAndDirty,x as captureForDirtyCheck,E as captureForMerge,F as captureForSave,D as captureForSaveAndComparison,f as capturePageState,L as captureRecoveryPage,t as captureSaveClone,s as captureSnapshot,r as clonePreventingOnclone,B as completeSaveCapture,H as copyCaptureClone,c as currentCaptureContext,a as currentCaptureId,J as getPageContents,n as noscriptBlocks,k as onSnapshot,b as originalSnapshotNode,u as prepareForCompare,z as prepareSaveCapture,A as readCapturePageState,h as releaseCaptureArtifact,C as releaseSaveCapture,p as runSaveRenderer,m as serializeClone,v as serializeForCompare,G as serializeForSync,K as serializeRecoveryClone,e as setCapturePageState,i as setCloneCanonicalizer,l as setSaveRenderer,o as swapNoscriptMarkers};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"../c-T637T7SN.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-FWKHM4E7.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.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{c as bytesUnsaved,b as hasUnsavedChanges,a as reloadAfterDiscard};
@@ -0,0 +1 @@
1
+ import{a as r}from"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.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";function l(){document.addEventListener("click",function(o){document.querySelectorAll("[onclickaway]").forEach(t=>{let e=o.target;do{if(e===t)return;e=e.parentNode}while(e);new Function(t.getAttribute("onclickaway")).call(t)})})}function u(){document.addEventListener("click",function(o){let n=o.target.closest("[onclickchildren]");if(n&&o.target!==n){let t=o.composedPath().find(e=>e.parentNode===n);new Function(n.getAttribute("onclickchildren")).call(t)}})}function d(){if(Node.prototype.__hyperclayOnclone)return;let o=Node.prototype.cloneNode;Node.prototype.__hyperclayOnclone=o,Node.prototype.cloneNode=function(t){let e=o.call(this,t);return e.nodeType===Node.ELEMENT_NODE&&(window.__preventOnclone||(n(e),e.querySelectorAll("[onclone]").forEach(n)),t&&(e.tagName==="TEXTAREA"?[e]:e.querySelectorAll("textarea[data-value]")).forEach(i=>{let a=i.getAttribute("data-value");a!==null&&(i.textContent=a,i.removeAttribute("data-value"))})),e};function n(t){let e=t.getAttribute("onclone");if(e)try{new Function(e).call(t)}catch(c){console.error("Error executing onclone:",c)}}}async function h(o){try{let n=o.getAttribute("onmutation");if(!n)return;await new Function(`return (async function() { ${n} })`)().call(o)}catch(n){console.error("Error in onmutation execution:",n)}}function s(){r.onAnyChange({require:"observed"},o=>{let n=new Set;for(let t of o){let e=t.type==="add"||t.type==="remove"?t.parent:t.element;for(;e&&e.nodeType===1;)e.hasAttribute("onmutation")&&n.add(e),e=e.parentElement}n.forEach(h)})}function f(){let o=async n=>{try{let t=n.getAttribute("onglobalmutation")||n.getAttribute("onpagemutation");await new Function(`return (async function() { ${t} })`)().call(n)}catch(t){console.error("Error in onglobalmutation/onpagemutation execution:",t)}};r.onAnyChange({debounce:200,omitChangeDetails:!0,require:"observed"},()=>{document.querySelectorAll("[onglobalmutation], [onpagemutation]").forEach(o)})}function g(o){document.readyState==="complete"?o():window.addEventListener("load",o)}var p=g;function m(){let o=async n=>{try{let t=n.getAttribute("onrender");await new Function(`return (async function() { ${t} })`)().call(n)}catch(t){console.error("Error in onrender execution:",t)}};p(()=>{document.querySelectorAll("[onrender]").forEach(o)}),r.onAddElement({selectorFilter:"[onrender]",debounce:200,require:"observed",pausable:!1},n=>{n.forEach(({element:t})=>o(t))})}function y(){l(),u(),d(),s(),f(),m()}y();var $=y;export{$ as default,y as init};
@@ -0,0 +1 @@
1
+ import{f as t,s as n,v as i}from"../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{F as o,q as a,s as e}from"../c-7MG5RU63.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{w as r}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var s=window.clay=window.clay||{};s.internals={captureSnapshot:e,captureForSave:o,addDocumentTransform:a,region:r,save:{saveHtml:n,replacePageWith:i,isSaveInProgress:t}};var l=s.internals;export{l as default};
@@ -0,0 +1 @@
1
+ import{a as e}from"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.js";import{a,b as n}from"../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";function u(t){let r=a(t);if(!r)return;let o=new URL(t.getAttribute(r),location.href);o.searchParams.set("v",Date.now()),e.pause();try{n(t,r,o.href)}finally{e.resume()}}var s=u;export{s as default};
@@ -0,0 +1 @@
1
+ import{f as W}from"./c-46XYM55L.js";import{a as J}from"./c-GY422N3Q.js";import"./c-7SWMYKAI.js";import{b as V}from"./c-QTTJYJMA.js";import{a as $}from"./c-VKEDWYDF.js";import"./c-UGHH4MB3.js";import"./c-ZWIOJGMT.js";import"./c-IJUK2GPW.js";import{b as F}from"./c-CYWLPPUS.js";import{i as H}from"./c-VG5XIN4T.js";import{a as G}from"./c-2YYDMLNZ.js";import{c as B,l as z}from"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var X={always:["lib/mutation.js","core/preserve-authored.js","core/edit-mode.js","core/mode-key.js","core/stale-host-notice.js","core/page-data.js"],editOnly:["core/snapshot.js","core/persist.js","core/admin-attrs.js","core/save-core.js","core/save.js","core/conflict-notice.js","core/recovery.js","core/unsaved-warning.js","core/autosave.js","attrs/save-freeze.js","attrs/onaftersave.js","attrs/refetch-on-save.js","attrs/add-from.js","lib/cache-bust.js"]},w={richclay:{path:"plugins/richclay.js",editOnly:!0,default:!0},indicator:{path:"plugins/indicator.js",editOnly:!0,default:!1},sync:{path:"sync/live-sync.js",editOnly:!1,default:!1},live:{path:"plugins/live.js",editOnly:!1,default:!1},page:{path:"plugins/page.js",editOnly:!0,default:!1},"page-view":{path:"plugins/page-view.js",editOnly:!1,default:!1,internal:!0},sortable:{path:"plugins/sortable.js",editOnly:!0,default:!1},undo:{path:"plugins/undo.js",editOnly:!0,default:!1},unsent:{path:"plugins/unsent.js",editOnly:!0,default:!1},cms:{path:"plugins/cms.js",editOnly:!1,default:!1},quickcrop:{path:"plugins/quickcrop.js",editOnly:!1,default:!1},upload:{path:"plugins/upload.js",editOnly:!0,default:!1},people:{path:"plugins/people.js",editOnly:!1,default:!1},menu:{path:"plugins/menu.js",editOnly:!1,default:!1},wire:{path:"plugins/wire.js",editOnly:!1,default:!1},message:{path:"plugins/message.js",editOnly:!1,default:!1},"ai-edit":{path:"plugins/ai-edit.js",editOnly:!0,default:!1},demo:{path:"plugins/demo.js",editOnly:!1,default:!1},source:{path:"plugins/source.js",editOnly:!0,default:!0},"visitor-drafts":{path:"plugins/visitor-drafts.js",ownerPath:"plugins/visitor-drafts-owner.js",editOnly:!1,default:!1},"bind-text":{path:"plugins/bind-text.js",editOnly:!0,default:!1},derive:{path:"plugins/derive.js",editOnly:!1,default:!1},upgrade:{path:"plugins/upgrade.js",editOnly:!1,default:!1}},b={"core/is-edit-mode.js":()=>import("./core/is-edit-mode-GCX6767E.js"),"core/draft-mode.js":()=>import("./core/draft-mode-WSQAT67S.js"),"lib/region-policy.js":()=>import("./lib/region-policy-SB2AWVG5.js"),"lib/mutation.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["lib/mutation.js"]),"core/edit-mode.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["core/edit-mode.js"]),"core/mode-key.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["core/mode-key.js"]),"core/stale-host-notice.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["core/stale-host-notice.js"]),"core/page-data.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["core/page-data.js"]),"core/preserve-authored.js":()=>import("./reader-core-4W2KYEWQ.js").then(t=>t.core["core/preserve-authored.js"]),"core/snapshot.js":()=>import("./core/snapshot-NU3YM6GR.js"),"core/save-core.js":()=>import("./core/save-core-MKRPSEEO.js"),"core/save.js":()=>import("./core/save-LYY7K6U7.js"),"core/conflict-notice.js":()=>import("./core/conflict-notice-IWHMHH43.js"),"core/recovery.js":()=>import("./core/recovery-DRFZRJED.js"),"core/unsaved-warning.js":()=>import("./core/unsaved-warning-7QTKEN7Z.js"),"core/persist.js":()=>import("./core/persist-UKXV5KLA.js"),"core/admin-attrs.js":()=>import("./core/admin-attrs-YY7T5FGU.js"),"core/autosave.js":()=>import("./core/autosave-S6OMNDCK.js"),"attrs/save-freeze.js":()=>import("./attrs/save-freeze-LWGF6XUN.js"),"attrs/onaftersave.js":()=>import("./attrs/onaftersave-OKSWEJQF.js"),"attrs/refetch-on-save.js":()=>import("./attrs/refetch-on-save-ZUE7PSCI.js"),"attrs/add-from.js":()=>import("./attrs/add-from-T5LJXFFI.js"),"lib/cache-bust.js":()=>import("./lib/cache-bust-MUMFXZK6.js"),"plugins/richclay.js":()=>import("./plugins/richclay-KLGETK77.js"),"plugins/indicator.js":()=>import("./plugins/indicator-4VDXWYTD.js"),"sync/live-sync.js":()=>import("./sync/live-sync-MO5DH33W.js"),"plugins/live.js":()=>import("./plugins/live-AD4H6XSL.js"),"plugins/page.js":()=>import("./plugins/page-MD3T2ZX3.js"),"plugins/page-view.js":()=>import("./plugins/page-view-PAWVZNFY.js"),"plugins/sortable.js":()=>import("./plugins/sortable-4S6SQC3D.js"),"plugins/undo.js":()=>import("./plugins/undo-NLPGCJQY.js"),"plugins/unsent.js":()=>import("./plugins/unsent-OA4RGBUT.js"),"plugins/cms.js":()=>import("./plugins/cms-LRAOZHT7.js"),"plugins/quickcrop.js":()=>import("./plugins/quickcrop-BQ5YYFCH.js"),"plugins/upload.js":()=>import("./plugins/upload-NHGJXZK2.js"),"plugins/people.js":()=>import("./plugins/people-JCHVPF7P.js"),"plugins/menu.js":()=>import("./plugins/menu-M5WW7DBF.js"),"plugins/wire.js":()=>import("./plugins/wire-VBWXEXU2.js"),"plugins/message.js":()=>import("./plugins/message-LQ6EDH4V.js"),"plugins/ai-edit.js":()=>import("./plugins/ai-edit-UTV7YO2I.js"),"plugins/demo.js":()=>import("./plugins/demo-OYO5GCAO.js"),"plugins/visitor-drafts.js":()=>import("./plugins/visitor-drafts-BW43DGY3.js"),"plugins/visitor-drafts-owner.js":()=>import("./plugins/visitor-drafts-owner-7ODQG7JX.js"),"plugins/bind-text.js":()=>import("./plugins/bind-text-NX46N5UV.js"),"plugins/source.js":()=>import("./plugins/source-TJXOIOYY.js"),"plugins/derive.js":()=>import("./plugins/derive-FRE5JJQE.js"),"plugins/upgrade.js":()=>import("./plugins/upgrade-HSUNDNJD.js")},ie=["visitor-drafts","richclay","indicator","sortable","undo","unsent","quickcrop","upload","people","menu","upgrade","cms","page-view","sync","live","page","message","wire","ai-edit","demo","derive","bind-text","source"],re={cms:["quickcrop","upload"],"ai-edit":["wire"],page:["live","sync","upload"]},ae={page:["richclay"]},ce=new Set(["source","sortable","menu","upgrade"]);function K(t,e,o,s){let u=t.get(e);if(u)for(let n of u.split(",")){let r=n.trim();if(r){if(!w[r]||w[r].internal){console.warn(`clayjs: unknown plugin "${r}"`);continue}s(o,r)}}}var le=["sync","live","page","upload","quickcrop","cms","people","menu","upgrade","wire","ai-edit","demo","source"],ue=["attrs/refetch-on-save.js","core/conflict-notice.js"],de="https://hyperclay.com/templates/";function P(t,e,{isDraftMode:o=!1,hasSap:s=!1,hasVariants:u=!1,canEdit:n=!1,templateSource:r=null}={}){let g=[...X.always];e&&g.push(...X.editOnly);let m=new Set;K(t,"plugins",m,(i,l)=>i.add(l));let a=new Set;K(t,"exclude",a,(i,l)=>i.add(l));let d=new Set(m);for(let[i,l]of Object.entries(w))l.default&&d.add(i);s&&d.add("derive"),u&&(e||n)&&d.add("menu"),a.has("wire")&&d.delete("ai-edit"),!e&&!o&&d.has("page")&&d.add("page-view");for(let i of[...d])if(!a.has(i)&&!(w[i].editOnly&&!e))for(let l of re[i]||[])d.add(l);for(let i of a)d.delete(i);if(o){for(let i of le)d.delete(i);for(let i of ue){let l=g.indexOf(i);l>-1&&g.splice(l,1)}d.add("visitor-drafts")}!o&&n&&!a.has("upgrade")&&r&&r.startsWith(de)&&d.add("upgrade");for(let[i,l]of Object.entries(ae))if(d.has(i))for(let v of l)m.has(v)||d.delete(v);let c=[],h=[];for(let i of ie){if(!d.has(i))continue;let l=w[i];l.editOnly&&!e||(ce.has(i)?h:c).push(l.ownerPath&&!o?l.ownerPath:l.path)}return{core:g,plugins:c,late:h}}var C="data-deleted-at",R=(t,e)=>window.clay?.undo?.commit?window.clay.undo.commit(t,e):e(),Q=(t,e)=>t.dispatchEvent(new CustomEvent(e,{bubbles:!0})),I=Object.assign((t,{at:e=new Date().toISOString()}={})=>(R("Move to Trash",()=>t.setAttribute(C,e)),Q(t,"clay:trashed"),{undo:()=>I.restore(t)}),{is:t=>!!t.getAttribute(C),restore(t){R("Restore",()=>t.removeAttribute(C)),Q(t,"clay:restored")},purge(t){R("Delete forever",()=>t.remove())}});var Y=50,pe=1e3,fe='[clay~="no-snapshot"], [no-snapshot], [snapshot-remove]',L=0,ge=t=>{let e=t.nodeType===1?t:t.parentElement;if(!e)return"a detached node";let o=e.localName;return e.id?o+="#"+e.id:e.classList.length&&(o+="."+[...e.classList].slice(0,2).join(".")),"<"+o+">"};function me(t){let e=window.clay?.region?.resolveRegionPolicy;if(!e)return null;let o=s=>!!s&&!s.closest(fe)&&e(s).dirtyTracked;for(let s of t){if(s.type==="attributes"&&z(s.attributeName,s.target))continue;let u=s.target.nodeType===1?s.target:s.target.parentElement;if(o(u)&&!(s.type==="childList"&&![...s.addedNodes,...s.removedNodes].some(n=>n.nodeType!==1||o(n))))return s.target}return null}function _(t){let e=window.clay,o=e.Mutation,s=new Set,u=(y,p)=>{s.has(y)||(s.add(y),console.warn("clay.effect: "+p))},n=!1,r=!1,g=0,m=0;L&&e.isEditMode&&console.warn("clay.effect: an effect was created inside another effect, so a new one starts on every run. Create effects once, in clay.start.");let a=()=>{let y=Date.now();y-g>pe&&(g=y,m=0),++m>Y&&u("loop",`this effect ran more than ${Y} times in a second. Something keeps changing the document, often a timer or async callback the effect started.`)},d=()=>{if(n=!1,r)return;let y=null;o.pause(),L++;try{e.isEditMode===!0&&(a(),s.has("saved")||(y=new MutationObserver(()=>{}),y.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0})));let p=t();p&&typeof p.then=="function"&&(v(),console.error("clay.effect: fn returned a promise. It must be synchronous, so this effect was stopped."))}catch(p){console.error("clay.effect:",p)}finally{L--,o.resume();let p=y?y.takeRecords():[];if(y?.disconnect(),p.length){let O=me(p);O&&u("saved",`this effect changed ${ge(O)}, which is saved with the file. Effect writes never mark the page unsaved, so a merge can leave it dirty with no save scheduled. Draw derived values inside clay="no-dirty" or clay="editor-ui".`)}}},c=()=>{n||r||(n=!0,queueMicrotask(d))},h=["undo","redo"],i=()=>{for(let y of h)e.undo?.on?.(y,c)},l=o.onAnyChange({debounce:0,require:"observed"},c);document.addEventListener("clay:sync-applied",c),document.addEventListener("clay:modechange",i),i();let v=()=>{r=!0,l(),document.removeEventListener("clay:sync-applied",c),document.removeEventListener("clay:modechange",i);for(let y of h)e.undo?.off?.(y,c)};return c(),v}Object.defineProperty(_,"running",{get:()=>L>0});var he={overtype:()=>import("./c-PQ5LK6QE.js"),marked:()=>import("./c-XN6MBKI6.js"),highlight:()=>import("./c-33JJ6CBX.js"),"highlight/bash":()=>import("./c-KI7M4AY3.js"),"highlight/css":()=>import("./c-H4LG442Q.js"),"highlight/javascript":()=>import("./c-VDSS4K3Z.js"),"highlight/json":()=>import("./c-NRPJEVJS.js"),"highlight/python":()=>import("./c-5YIHJ3TJ.js"),"highlight/xml":()=>import("./c-WN5AY3OZ.js"),uimotion:()=>import("./c-B5CS55WR.js")};function ye(t){let e=new Map;function o(s){return Object.hasOwn(t,s)?(e.has(s)||e.set(s,t[s]().catch(u=>{throw e.delete(s),u})),e.get(s)):Promise.reject(new Error(`clay.assets: no asset named "${s}"`))}return{load:o,names:()=>Object.keys(t)}}var Z=ye(he);function M(t,e){if(!t||!e)return t;let o={...e,...t};for(let s of["entries","imports","bootImports"])o[s]={...e[s],...t[s]};return o}var je="plugins/page.js";function k(t,e,{isEditMode:o=!1,isDraftMode:s=!1,hasSapJs:u=!1}={},n=document){if(!t?.entries)return 0;let r=[...e];for(let c of e)for(let h of t.bootImports?.[c]??[])u&&h==="vendor/sap-core.vendor.js"||r.push(h);o&&!s&&r.push(...t.editBootImports??[]),o&&!s&&e.includes(je)&&r.push(...t.editorBootImports??[]);let g=new Set,m=c=>{if(!(!c||g.has(c))){g.add(c);for(let h of t.imports?.[c]??[])m(h)}};for(let c of r)m(t.entries[c]);let a=new Set([...n.querySelectorAll('link[rel="modulepreload"]')].map(c=>c.href)),d=0;for(let c of g){let h=new URL(c,t.base).href;if(a.has(h))continue;let i=n.createElement("link");i.rel="modulepreload",i.href=h,i.setAttribute("clay","no-save"),n.head.append(i),d++}return d}var E=Object.fromEntries(Object.entries(w).flatMap(([t,e])=>e.ownerPath?[[e.path,t],[e.ownerPath,t]]:[[e.path,t]])),j={},ee=new Set;function se(t){ee.has(t)||(ee.add(t),document.dispatchEvent(new CustomEvent("clay:plugin-ready",{detail:{plugin:E[t]}})))}var ve=(t,e,o,s)=>()=>t().then(u=>(k(M(e,u),[...o.core,...o.plugins,...o.late],{isEditMode:!0,hasSapJs:s}),u));function we(){return new Promise(t=>$(t))}function A(){let t=document.querySelector('meta[name="hyper-source"]');return t?t.getAttribute("content"):null}async function He(t,e,o,s=null,u=null,n=null){W(),(await b["core/draft-mode.js"]()).noteBootParams(e),await we();let g=await b["core/is-edit-mode.js"](),{isEditMode:m,isDraftMode:a,isOwner:d,siteVisibility:c,canEdit:h}=g;m&&!a&&import("./core/host-permission-6EVJGNPL.js").then(f=>f.checkHostPermission()).catch(()=>{}),window.__hyperclayEditMode=m;let i=await b["lib/region-policy.js"](),l=!!document.querySelector("[sap]"),v=document.querySelectorAll("head style[clay-variant]").length>=2,y=!!document.querySelector('script[src*="sap.js"]');G.holdSettle=l&&m;let p=P(e,m,{isDraftMode:a,hasSap:l,hasVariants:v,canEdit:h,templateSource:A()});p.plugins.includes("plugins/demo.js")&&g.commitModeFacts({destination:"demo"}),k(M(s,u),[...p.core,...p.plugins],{isEditMode:m,isDraftMode:a,hasSapJs:y}),(m||a)&&!u&&n&&n().then(f=>k(M(s,f),[...p.core,...p.plugins],{isEditMode:m,isDraftMode:a,hasSapJs:y})).catch(()=>{});let O,oe=new Promise(f=>{O=f}),ne={sync:p.plugins.includes("sync/live-sync.js")};for(let f of p.core)j[f]=await b[f](),j[f].install?.();if(Se(j,{isDraftMode:a,isOwner:d,siteVisibility:c},i),te(j),document.documentElement.getAttribute("clay-mode-switch")==="live"){let f=P(e,!0,{isDraftMode:a,hasSap:l,hasVariants:v,canEdit:h,templateSource:A()});j["core/edit-mode.js"].noteLiveSwitch({edit:f,view:P(e,!1,{isDraftMode:a,hasSap:l,hasVariants:v,canEdit:h,templateSource:A()}),loaded:j,modules:b,attach:(S,D)=>{N(S,D);let T=E[S],x=window.clay.plugins;T&&Array.isArray(x)&&!x.includes(T)&&(window.clay.plugins=Object.freeze([...x,T]))},attachEditCore:te,announce:se,loadEditHints:n?ve(n,s,f,y):null,late:oe})}await j["core/edit-mode.js"].activateInitialMode(),window.clay.plugins=Object.freeze([...p.plugins,...p.late].map(f=>E[f]));let U=m?p:P(e,!0,{isDraftMode:a,hasSap:l,hasVariants:v,canEdit:h,templateSource:A()});window.clay.editPlugins=Object.freeze([...U.plugins,...U.late].map(f=>E[f]));for(let f of p.plugins){let S;try{S=await b[f]()}catch(D){console.error(`clayjs: plugin "${f}" failed to load, continuing without it:`,D);continue}j[f]=S,f==="plugins/page-view.js"&&S.start(ne),N(f,S,j)}await Promise.allSettled(p.plugins.map(f=>j[f]?.ready).filter(Boolean)),l&&Oe(j),Ee(g),o(window.clay),document.dispatchEvent(new CustomEvent("clay:ready",{detail:{clay:window.clay}})),p.late.length?be(p.late,g).then(O,O):O()}var q=(t,e)=>w[E[t]]?.editOnly&&!e.startsAtImport();async function be(t,e){try{await window.clay.page?.ready}catch{}for(let o of t)if(!q(o,e))try{let s=await b[o]();if(q(o,e)||(j[o]=s,N(o,s,j),await s.ready,q(o,e)))continue;se(o)}catch(s){console.error(`clayjs: plugin "${o}" failed to load, continuing without it:`,s),document.dispatchEvent(new CustomEvent("clay:plugin-failed",{detail:{plugin:E[o]}}))}}function Oe(t){let e=t["core/save.js"],o=null;try{o=e?e.currentPaintSignature():null}catch(s){console.error("clayjs: could not read the page's painted values:",s)}try{window.Sap&&typeof window.Sap.mount=="function"&&window.Sap.mount()}catch(s){console.error("clayjs: the derive engine failed to mount:",s)}finally{e?.releaseBootSettle()}e&&o!=null&&e.schedulePaintHeal(o)}function Se(t,{isDraftMode:e,isOwner:o,siteVisibility:s},u){let n=window.clay,r=t["lib/mutation.js"],g=t["core/edit-mode.js"];Object.assign(n,{toggleEditMode:g.toggleEditMode,setMode:g.setMode,modeLifecycle:g.modeLifecycle,isDraftMode:e,isOwner:o,siteVisibility:s,Mutation:r.default,region:u.windowRegionShape});for(let a of["mode","isEditMode","canEdit"])Object.defineProperty(n,a,{get:()=>g[a],enumerable:!0,configurable:!0});n.assets=Z;let m=t["core/page-data.js"];n.readData=m.readData,n.writeData=m.writeData,n.ephemeral=B,n.storage=F,n.host={get versions(){return import("./c-ZRXJD4G6.js").then(a=>a.hostVersions())}},n.trash=I,n.derived=H,n.effect=_,n.style=J,n.morph=(a,d,c)=>V().then(({morph:h})=>h(a,d,c))}function te(t){let e=window.clay,o=t["core/save.js"];if(o){let r=o.savePage||o.default;r.force=o.savePageForce,r.overwrite=o.saveOverwritingConflict,r.flush=o.flushSave,r.soon=o.savePageSoon,r.limits=o.saveLimits,r.inspect=o.inspectSaveSize,e.save!==r&&typeof e.save?.replace=="function"&&(r.replace=e.save.replace),e.save!==r&&(e.save=r)}e.hasUnsavedChanges=t["core/unsaved-warning.js"]?.hasUnsavedChanges??e.hasUnsavedChanges??(()=>!1);let s=t["core/snapshot.js"];s&&(e.getHTML||(e.getHTML=s.getPageContents),e.addDocumentTransform||(e.addDocumentTransform=s.addDocumentTransform),e.onSnapshot||(e.onSnapshot=s.onSnapshot));let u=t["lib/cache-bust.js"];u&&!e.cacheBust&&(e.cacheBust=u.default);let n=t["core/recovery.js"];n&&!e.recovery&&(e.recovery=n.recovery)}function N(t,e,o=j){let s=window.clay;t==="plugins/undo.js"?s.undo=e.undo||e.default:t==="plugins/unsent.js"?s.unsent=e.unsent:t==="sync/live-sync.js"?(s.morph=e.morph,s.conflicts=e.conflicts,o["core/page-data.js"].setPageDataLiveSync(e.liveSync)):t==="plugins/live.js"?s.live=e.live:t==="plugins/page.js"?s.page=e.page:t==="plugins/upgrade.js"?(s.save=s.save||{},s.save.replace=e.replace):t==="plugins/cms.js"?s.cms=e.cms||e.default:t==="plugins/upload.js"?s.upload=e.upload||e.default:t==="plugins/people.js"?(s.people=e.people,s.author=e.author,Object.defineProperty(s,"me",{get:e.currentMe,configurable:!0,enumerable:!0})):t==="plugins/message.js"?s.message=e.message:t==="plugins/wire.js"?s.wire=e.wire||e.default:t==="plugins/ai-edit.js"?s.aiEdit=e.aiEdit||e.default:t==="plugins/demo.js"?s.demo=e.demo:t==="plugins/richclay.js"?s.RichClay=e.RichClay||e.default:t==="plugins/quickcrop.js"?s.quickcrop=e.quickcrop||e.default:t==="plugins/sortable.js"?s.sortable=e.sortable:t==="plugins/source.js"?s.source=e.source||e.default:t==="plugins/visitor-drafts.js"||t==="plugins/visitor-drafts-owner.js"?s.visitorDrafts=e.visitorDrafts:t==="plugins/bind-text.js"&&(s.bindText=e.bindText)}function Ee(t){t.isEditMode||document.addEventListener("click",e=>{e.target.closest?.("[trigger-save]")&&(t.isEditMode||(console.info("clayjs: you're not the owner of this page; changes stay local"),document.dispatchEvent(new CustomEvent("clay:view-save-attempt"))))})}export{He as boot,Oe as mountDerivedEngine};