@panphora/clayjs 1.17.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 (467) 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 +72474 -62090
  11. package/dist/m/attrs/{save-freeze-MYNVXREN.js → save-freeze-LWGF6XUN.js} +1 -1
  12. package/dist/m/c-2GRUM77Q.js +30 -0
  13. package/dist/m/c-2KIEGNC4.js +1 -0
  14. package/dist/m/{c-AMSNPOCX.js → c-2KL3BD52.js} +1 -1
  15. package/dist/m/c-2ZZBC45O.js +1 -0
  16. package/dist/m/c-372N6H3B.js +1 -0
  17. package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
  18. package/dist/m/c-3LDGIBMN.js +1 -0
  19. package/dist/m/c-3O7OBDCM.js +1 -0
  20. package/dist/m/c-4ASQPRQL.js +1 -0
  21. package/dist/m/c-4TXNLX4K.js +6 -0
  22. package/dist/m/c-4YU3BR4D.js +6 -0
  23. package/dist/m/c-5734MF2P.js +1 -0
  24. package/dist/m/c-57XDY6HC.js +1 -0
  25. package/dist/m/{c-KAU6E43D.js → c-5B4YBZXC.js} +1 -1
  26. package/dist/m/c-5ONTYIUI.js +1 -0
  27. package/dist/m/c-5OOVFCJM.js +1 -0
  28. package/dist/m/{c-3XIRD4NU.js → c-5T6NZHNM.js} +1 -1
  29. package/dist/m/{c-74MGYWZF.js → c-5ZQV7KC4.js} +1 -1
  30. package/dist/m/{c-7OLLJPWP.js → c-6DB2OLRJ.js} +1 -1
  31. package/dist/m/c-6DNRCPNM.js +1 -0
  32. package/dist/m/c-6UGWFMQC.js +2 -0
  33. package/dist/m/c-7K4SCQB7.js +1 -0
  34. package/dist/m/c-7MG5RU63.js +1 -0
  35. package/dist/m/c-7PRJCA3E.js +1 -0
  36. package/dist/m/c-A6L3FMUS.js +1 -0
  37. package/dist/m/c-AMU3BPPR.js +4 -0
  38. package/dist/m/{c-Y5HBBIQ4.js → c-AMYEFA2E.js} +1 -1
  39. package/dist/m/c-AQYCG7QW.js +1 -0
  40. package/dist/m/c-ATKAOH23.js +1 -0
  41. package/dist/m/c-B5CS55WR.js +1 -0
  42. package/dist/m/c-B5UJQT7W.js +1 -0
  43. package/dist/m/c-B7J4K2AE.js +3 -0
  44. package/dist/m/c-BHZYSHW4.js +1 -0
  45. package/dist/m/{c-VHM5XQHK.js → c-BIJALSRD.js} +1 -1
  46. package/dist/m/c-BJ7YQ5QZ.js +1 -0
  47. package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
  48. package/dist/m/{c-VE6ZMYMC.js → c-BUAYFEV5.js} +1 -1
  49. package/dist/m/c-C6IPRG34.js +1 -0
  50. package/dist/m/{c-KU3ZFADW.js → c-CAS3NND4.js} +1 -1
  51. package/dist/m/{c-PS5ARVWR.js → c-CCQ25GFY.js} +1 -1
  52. package/dist/m/c-CJFDLD43.js +1 -0
  53. package/dist/m/c-COPTL5WB.js +1 -0
  54. package/dist/m/c-D3E4WJ4M.js +166 -0
  55. package/dist/m/c-D5IKEKXW.js +7 -0
  56. package/dist/m/c-DHBRA6DL.js +1 -0
  57. package/dist/m/c-DKLS74XB.js +72 -0
  58. package/dist/m/c-DVYGFTSK.js +3 -0
  59. package/dist/m/c-E3ZXARWA.js +1 -0
  60. package/dist/m/c-EK63G3CG.js +1 -0
  61. package/dist/m/c-ERQSNR6K.js +13 -0
  62. package/dist/m/c-EVYAISP3.js +1 -0
  63. package/dist/m/c-EXKHPOVC.js +3 -0
  64. package/dist/m/{c-QJ4OM3G6.js → c-FWKHM4E7.js} +1 -1
  65. package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
  66. package/dist/m/c-GNDL3TKB.js +1 -0
  67. package/dist/m/c-GRWMD6O5.js +1 -0
  68. package/dist/m/c-GRXHHFPO.js +1 -0
  69. package/dist/m/c-HG2C77BM.js +4 -0
  70. package/dist/m/c-HHGJBU4D.js +1 -0
  71. package/dist/m/c-HMV6P4RX.js +1 -0
  72. package/dist/m/c-HMYWIHFG.js +1 -0
  73. package/dist/m/c-HT2DKBV2.js +1 -0
  74. package/dist/m/c-I2SCCUEW.js +1 -0
  75. package/dist/m/{c-TJ6WOJL3.js → c-ICJYHABF.js} +2 -2
  76. package/dist/m/c-IMZCWYHR.js +7 -0
  77. package/dist/m/c-IVMD3FEM.js +1 -0
  78. package/dist/m/{c-WDC5GVKU.js → c-IVTRVENZ.js} +1 -1
  79. package/dist/m/c-JKZJIUIP.js +1 -0
  80. package/dist/m/{c-UDUUJPFZ.js → c-JNLX3RJB.js} +1 -1
  81. package/dist/m/c-K3ADYNLU.js +1 -0
  82. package/dist/m/c-KGHVFRR3.js +1 -0
  83. package/dist/m/{c-5QWQ7A5L.js → c-KJJPV77R.js} +1 -1
  84. package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
  85. package/dist/m/{c-EZU56NQV.js → c-KP64LT2A.js} +2 -2
  86. package/dist/m/c-KQ7E3PYY.js +1 -0
  87. package/dist/m/c-L3F5ZLIV.js +1 -0
  88. package/dist/m/{c-3RUU4TPX.js → c-L42OLXWM.js} +3 -2
  89. package/dist/m/c-L5VFATT6.js +1 -0
  90. package/dist/m/c-L7JL5TL3.js +3 -0
  91. package/dist/m/c-LKSL4AUJ.js +1 -0
  92. package/dist/m/c-M6FNQCTQ.js +1 -0
  93. package/dist/m/c-MCOOHCSG.js +1 -0
  94. package/dist/m/c-MHI3GYKF.js +1 -0
  95. package/dist/m/c-MWXFLW4J.js +1 -0
  96. package/dist/m/{c-5RJFTLSF.js → c-NEL7HQW3.js} +1 -1
  97. package/dist/m/{c-DCXOXBF3.js → c-NQJRVJ56.js} +1 -1
  98. package/dist/m/c-NWX3MFT4.js +1 -0
  99. package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
  100. package/dist/m/c-OKXI52N7.js +1 -0
  101. package/dist/m/{c-R3L7ZJGB.js → c-OPLUZR3A.js} +1 -1
  102. package/dist/m/{c-GSFIGKOP.js → c-OTMKN2OO.js} +1 -1
  103. package/dist/m/{c-6NC5I2TV.js → c-OYRZ7XG2.js} +1 -1
  104. package/dist/m/{c-EVCQ3BKA.js → c-P3OFYUMA.js} +1 -1
  105. package/dist/m/c-PLN76GF3.js +6 -0
  106. package/dist/m/c-PLP4JKFC.js +1 -0
  107. package/dist/m/c-Q26MME6N.js +1 -0
  108. package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
  109. package/dist/m/{c-FRLHSY7E.js → c-QIKT6SKM.js} +1 -1
  110. package/dist/m/c-QIXT3Q7C.js +28 -0
  111. package/dist/m/c-QO4HNGCQ.js +1 -0
  112. package/dist/m/{c-JU3NK25H.js → c-R27DWQKX.js} +1 -1
  113. package/dist/m/{c-RSMOODDU.js → c-R2XUODVY.js} +1 -1
  114. package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
  115. package/dist/m/c-RND3G2S2.js +1 -0
  116. package/dist/m/{c-Q622NS2Y.js → c-S2U6NJU4.js} +1 -1
  117. package/dist/m/c-SPZPGD3R.js +1 -0
  118. package/dist/m/c-SW4YEG2D.js +8 -0
  119. package/dist/m/c-T637T7SN.js +1 -0
  120. package/dist/m/c-TJAXGIRV.js +1 -0
  121. package/dist/m/{c-RYUXUUBX.js → c-TNEM3RNM.js} +1 -1
  122. package/dist/m/c-TTB5EK4S.js +32 -0
  123. package/dist/m/c-U7SHNWDH.js +1 -0
  124. package/dist/m/c-UDHIVLYH.js +20 -0
  125. package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
  126. package/dist/m/{c-QICP2YR5.js → c-UORXLSD3.js} +1 -1
  127. package/dist/m/c-UPD33ZPE.js +1 -0
  128. package/dist/m/c-URSMSFCB.js +1 -0
  129. package/dist/m/c-UY4QX42B.js +1 -0
  130. package/dist/m/c-V44KWI2L.js +4 -0
  131. package/dist/m/c-VILENZTD.js +1 -0
  132. package/dist/m/{c-HDDEEL77.js → c-VJYEVRYK.js} +1 -1
  133. package/dist/m/{c-SMBZG5X4.js → c-VR2BJ4AN.js} +1 -1
  134. package/dist/m/c-W4JCVLAB.js +1 -0
  135. package/dist/m/c-W6DQSHXI.js +135 -0
  136. package/dist/m/c-WBGWGOM7.js +1 -0
  137. package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
  138. package/dist/m/c-WGW764WX.js +1 -0
  139. package/dist/m/c-WMRJKQ2V.js +5 -0
  140. package/dist/m/c-WNTYKCDG.js +1 -0
  141. package/dist/m/c-WQWIRWO3.js +72 -0
  142. package/dist/m/c-X5LNHET5.js +1 -0
  143. package/dist/m/{c-I2ZATQCD.js → c-X5TSXZYJ.js} +2 -2
  144. package/dist/m/c-XGH4GS2T.js +1 -0
  145. package/dist/m/c-Y6F2FORL.js +1 -0
  146. package/dist/m/c-YBKHUAK7.js +10 -0
  147. package/dist/m/c-YBSS55KU.js +20 -0
  148. package/dist/m/c-YCLU4UNT.js +2 -0
  149. package/dist/m/c-YVZ2L7CE.js +1 -0
  150. package/dist/m/c-ZK4GIZH2.js +1 -0
  151. package/dist/m/c-ZRXJD4G6.js +1 -0
  152. package/dist/m/c-ZWBI4HYK.js +1 -0
  153. package/dist/m/core/{admin-attrs-QHOKPJ7W.js → admin-attrs-YY7T5FGU.js} +1 -1
  154. package/dist/m/core/autosave-S6OMNDCK.js +1 -0
  155. package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
  156. package/dist/m/core/{host-permission-FNXVEFNE.js → host-permission-6EVJGNPL.js} +1 -1
  157. package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
  158. package/dist/m/core/{persist-JFYRHMRJ.js → persist-UKXV5KLA.js} +1 -1
  159. package/dist/m/core/recovery-DRFZRJED.js +1 -0
  160. package/dist/m/core/save-LYY7K6U7.js +1 -0
  161. package/dist/m/core/save-core-MKRPSEEO.js +1 -0
  162. package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
  163. package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
  164. package/dist/m/internals/{index-PVXGPUDA.js → index-TGLQINN3.js} +1 -1
  165. package/dist/m/loader-3BBNZZGM.js +1 -0
  166. package/dist/m/manifest-F449FF98.js +1 -0
  167. package/dist/m/manifest-edit-4396A009.js +1 -0
  168. package/dist/m/manifest.json +2111 -1573
  169. package/dist/m/page/{editor-NNJA4OKD.js → editor-6LRB3GE4.js} +123 -21
  170. package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
  171. package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
  172. package/dist/m/plugins/{demo-RM5IR6AO.js → demo-OYO5GCAO.js} +1 -1
  173. package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
  174. package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
  175. package/dist/m/plugins/live-AD4H6XSL.js +1 -0
  176. package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
  177. package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
  178. package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
  179. package/dist/m/plugins/{people-SGPJKANK.js → people-JCHVPF7P.js} +1 -1
  180. package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
  181. package/dist/m/plugins/{richclay-NRQDSWX6.js → richclay-KLGETK77.js} +2 -2
  182. package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
  183. package/dist/m/plugins/source-TJXOIOYY.js +1 -0
  184. package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
  185. package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
  186. package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
  187. package/dist/m/plugins/{upload-WLYKK6TL.js → upload-NHGJXZK2.js} +1 -1
  188. package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
  189. package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
  190. package/dist/m/plugins/{wire-4N6GYAF6.js → wire-VBWXEXU2.js} +1 -1
  191. package/dist/m/reader-core-4W2KYEWQ.js +77 -0
  192. package/dist/m/route/route-62CHXL5B.js +1 -0
  193. package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
  194. package/dist/m/ui/index-IVWN2QC4.js +1 -0
  195. package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
  196. package/dist/offline-manifest.json +1367 -930
  197. package/dist/page/themes/light-1.css +8 -7
  198. package/dist/server/core.cjs +1440 -288
  199. package/dist/server/offline-runtime.cjs +63 -63
  200. package/dist/server/offline-runtime.mjs +63 -63
  201. package/dist/server/page-compaction-worker.cjs +3710 -0
  202. package/dist/server/rooms.mjs +5 -0
  203. package/docs/guide.md +653 -101
  204. package/entries/sap.js +5 -5
  205. package/package.json +1 -1
  206. package/src/core/admin-contenteditable.js +5 -2
  207. package/src/core/admin-inputs.js +1 -0
  208. package/src/core/admin-onclick.js +2 -1
  209. package/src/core/conflict-notice-ui.js +4 -7
  210. package/src/core/download.js +2 -2
  211. package/src/core/host-meta.js +38 -0
  212. package/src/core/is-edit-mode.js +17 -1
  213. package/src/core/mode-key.js +125 -19
  214. package/src/core/mode-support.js +5 -0
  215. package/src/core/mode-transition.js +20 -6
  216. package/src/core/preserve-authored.js +4 -4
  217. package/src/core/recovery.js +121 -33
  218. package/src/core/save-accepted.js +33 -0
  219. package/src/core/save-core.js +106 -31
  220. package/src/core/save-job.js +108 -0
  221. package/src/core/save-prepare.js +53 -0
  222. package/src/core/save-size-notice.js +3 -1
  223. package/src/core/save-slices.js +15 -0
  224. package/src/core/save.js +557 -127
  225. package/src/core/serialize-steps.js +109 -0
  226. package/src/core/snapshot.js +170 -39
  227. package/src/core/source-map.js +83 -38
  228. package/src/core/stale-host-notice.js +1 -0
  229. package/src/core/upgrade-run.js +59 -8
  230. package/src/dom/active-element.js +5 -0
  231. package/src/lib/assets.js +1 -0
  232. package/src/lib/slice.js +65 -0
  233. package/src/lib/uimotion.js +774 -0
  234. package/src/lib/unsaved-state.js +2 -2
  235. package/src/live/fast-lane.js +10 -3
  236. package/src/live/local-lane.js +202 -11
  237. package/src/live/ops.js +16 -0
  238. package/src/live/page-compaction.js +162 -0
  239. package/src/live/server-lane.js +1 -0
  240. package/src/live/store.js +11 -3
  241. package/src/loader-logic.js +3 -1
  242. package/src/loader.js +14 -4
  243. package/src/page/adopt-boot.js +2 -1
  244. package/src/page/awareness.js +33 -2
  245. package/src/page/blocks.js +89 -27
  246. package/src/page/boot-pack.js +1 -1
  247. package/src/page/chart-tables.js +21 -3
  248. package/src/page/chart.js +406 -63
  249. package/src/page/checklist.js +10 -135
  250. package/src/page/checkpoint-proof.js +7 -1
  251. package/src/page/chrome.js +250 -51
  252. package/src/page/clipboard-shape.js +126 -0
  253. package/src/page/drag.js +33 -3
  254. package/src/page/editor.js +136 -25
  255. package/src/page/export-assets.js +357 -0
  256. package/src/page/export-html.js +209 -0
  257. package/src/page/export-markdown.js +361 -0
  258. package/src/page/features/checklist.js +428 -0
  259. package/src/page/features/export-html.js +189 -0
  260. package/src/page/features/export-markdown.js +169 -0
  261. package/src/page/features/import-markdown.js +349 -0
  262. package/src/page/features/media.js +61 -5
  263. package/src/page/features/registry.js +18 -0
  264. package/src/page/features/table.js +373 -83
  265. package/src/page/features/title-cover.js +331 -0
  266. package/src/page/features/title-icon.js +213 -0
  267. package/src/page/features/toc.js +87 -0
  268. package/src/page/format-command.js +25 -1
  269. package/src/page/format-gate.js +68 -18
  270. package/src/page/format-host.js +17 -0
  271. package/src/page/format-native-commands.js +21 -5
  272. package/src/page/image-actions.js +64 -0
  273. package/src/page/import-markdown.js +262 -0
  274. package/src/page/items.js +135 -17
  275. package/src/page/markdown.js +6 -2
  276. package/src/page/media.js +35 -119
  277. package/src/page/placeholder.js +14 -1
  278. package/src/page/projection.js +98 -10
  279. package/src/page/recover.js +10 -12
  280. package/src/page/recovery-ui.js +464 -0
  281. package/src/page/rich/chart.js +63 -7
  282. package/src/page/save-projection.js +28 -0
  283. package/src/page/save-states.js +13 -3
  284. package/src/page/schema.js +19 -3
  285. package/src/page/table-paste.js +3 -1
  286. package/src/page/table-style.js +4 -4
  287. package/src/page/table.js +44 -2
  288. package/src/page/themes/light-1.css +8 -7
  289. package/src/page/themes/light-1.source.css +8 -7
  290. package/src/page/toc-link.js +31 -0
  291. package/src/page/toc.js +5 -0
  292. package/src/page/view-hooks.js +38 -12
  293. package/src/page/view.js +13 -0
  294. package/src/page/ybind/binding.js +88 -5
  295. package/src/page/ybind/bridge.js +187 -20
  296. package/src/page/ybind/containment.js +162 -0
  297. package/src/page/ybind/doc.js +17 -9
  298. package/src/page/ybind/file-debt.js +63 -0
  299. package/src/page/ybind/layout.js +7 -2
  300. package/src/page/ybind/marks.js +1 -1
  301. package/src/page/ybind/moves.js +5 -4
  302. package/src/page/ybind/origins.js +106 -4
  303. package/src/page/ybind/parts.js +8 -1
  304. package/src/page/ybind/provider.js +113 -17
  305. package/src/page/ybind/recovery-proof.js +32 -9
  306. package/src/page/ybind/recovery-replay.js +558 -15
  307. package/src/page/ybind/recovery.js +174 -45
  308. package/src/page/ybind/table.js +67 -11
  309. package/src/page/ybind/walk-delta.js +258 -0
  310. package/src/page/ybind/walk.js +54 -29
  311. package/src/page/ybind/writer.js +1 -1
  312. package/src/plugins/ai-edit.js +13 -9
  313. package/src/plugins/indicator-chip.js +91 -0
  314. package/src/plugins/indicator.js +13 -80
  315. package/src/plugins/live.js +89 -14
  316. package/src/plugins/menu/actions.js +196 -0
  317. package/src/plugins/menu/people.js +279 -0
  318. package/src/plugins/menu/placement.js +121 -0
  319. package/src/plugins/menu/preferences.js +9 -0
  320. package/src/plugins/menu/seo.js +316 -397
  321. package/src/plugins/menu/style.js +171 -0
  322. package/src/plugins/menu/variants.js +296 -0
  323. package/src/plugins/menu.js +186 -183
  324. package/src/plugins/page-view.js +3 -2
  325. package/src/plugins/page.js +249 -44
  326. package/src/plugins/sortable.js +8 -1
  327. package/src/plugins/source.js +6 -0
  328. package/src/plugins/upgrade.js +51 -17
  329. package/src/plugins/upload-ui.js +12 -17
  330. package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
  331. package/src/plugins/visitor-drafts/intro-style.js +7 -2
  332. package/src/plugins/visitor-drafts/intro.js +5 -3
  333. package/src/plugins/visitor-drafts/owner-chip.js +8 -12
  334. package/src/plugins/visitor-drafts/prompt.js +11 -9
  335. package/src/plugins/visitor-drafts/source.js +4 -3
  336. package/src/plugins/visitor-drafts/store.js +138 -9
  337. package/src/plugins/visitor-drafts/ui-memory.js +2 -2
  338. package/src/plugins/visitor-drafts-owner.js +4 -6
  339. package/src/plugins/visitor-drafts.js +5 -3
  340. package/src/recovery/store.js +1 -1
  341. package/src/route/route.js +4 -0
  342. package/src/server/rooms/index.js +5 -1
  343. package/src/server/rooms/live-data-rooms.js +302 -50
  344. package/src/server/rooms/page-compaction-worker.js +12 -0
  345. package/src/server/rooms/page-compactor.js +92 -0
  346. package/src/server/rooms/page-room-conformance.js +461 -0
  347. package/src/source/parse-steps.js +94 -0
  348. package/src/source/session.js +233 -57
  349. package/src/sync/editing-sender.js +12 -0
  350. package/src/sync/live-sync-edit.js +22 -2
  351. package/src/sync/live-sync.js +150 -23
  352. package/src/sync/page-relay.js +52 -0
  353. package/src/sync/presence-store.js +44 -4
  354. package/src/sync/presence.js +6 -3
  355. package/src/sync/saved-stream.js +11 -6
  356. package/src/ui/bevel-controls.js +1 -0
  357. package/src/ui/bevel-dialog.js +5 -2
  358. package/src/ui/editor-ui.js +77 -0
  359. package/src/ui/page-colour.js +281 -0
  360. package/src/ui/toast.js +16 -7
  361. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  362. package/src/vendor/hyper-undo.vendor.js +1 -1
  363. package/src/vendor/hypercms.vendor.js +9 -9
  364. package/src/vendor/parse5.vendor.js +2 -2
  365. package/src/vendor/sap-core.vendor.js +5 -5
  366. package/dist/m/c-2SPVQSHC.js +0 -1
  367. package/dist/m/c-336SGU5W.js +0 -1
  368. package/dist/m/c-3H6BZDNJ.js +0 -6
  369. package/dist/m/c-4DFEJ2PO.js +0 -3
  370. package/dist/m/c-56QRZTZH.js +0 -1
  371. package/dist/m/c-5J4E7O4Y.js +0 -4
  372. package/dist/m/c-5LKDWQTL.js +0 -19
  373. package/dist/m/c-5V3MOVJT.js +0 -1
  374. package/dist/m/c-6AZOGAPE.js +0 -1
  375. package/dist/m/c-6CRUUXOX.js +0 -5
  376. package/dist/m/c-6HMB24EV.js +0 -1
  377. package/dist/m/c-6KEVEQ7L.js +0 -1
  378. package/dist/m/c-A3E3NIMC.js +0 -1
  379. package/dist/m/c-BQ6LOBEE.js +0 -1
  380. package/dist/m/c-BTDI4Y23.js +0 -1
  381. package/dist/m/c-CJ3A7ZKE.js +0 -1
  382. package/dist/m/c-CQHPGKX2.js +0 -1
  383. package/dist/m/c-DFS4XZJV.js +0 -2
  384. package/dist/m/c-DNENWY4O.js +0 -1
  385. package/dist/m/c-E4LIR5X5.js +0 -1
  386. package/dist/m/c-FDNHHZY5.js +0 -1
  387. package/dist/m/c-FROJUZMV.js +0 -1
  388. package/dist/m/c-G2JPKCTP.js +0 -1
  389. package/dist/m/c-GB6TU7WV.js +0 -1
  390. package/dist/m/c-GFJJEBTU.js +0 -1
  391. package/dist/m/c-GJAEGGXY.js +0 -1
  392. package/dist/m/c-GOWBDM6J.js +0 -1
  393. package/dist/m/c-HFKUVACH.js +0 -1
  394. package/dist/m/c-HHDFCNHV.js +0 -1
  395. package/dist/m/c-IEM4NTCS.js +0 -1
  396. package/dist/m/c-JDCX26UP.js +0 -25
  397. package/dist/m/c-KGVGROZT.js +0 -1
  398. package/dist/m/c-KQ6TYJAP.js +0 -135
  399. package/dist/m/c-LFPHCXY3.js +0 -1
  400. package/dist/m/c-LRPUO2MX.js +0 -1
  401. package/dist/m/c-LWLBHLVC.js +0 -3
  402. package/dist/m/c-M2L47S2X.js +0 -7
  403. package/dist/m/c-MFP2ZWD4.js +0 -1
  404. package/dist/m/c-MKSQ4Y57.js +0 -1
  405. package/dist/m/c-NUFFJVVJ.js +0 -1
  406. package/dist/m/c-NUHSPT5P.js +0 -1
  407. package/dist/m/c-O72HVYSA.js +0 -1
  408. package/dist/m/c-OIBUTDXI.js +0 -1
  409. package/dist/m/c-OW5QIGG3.js +0 -1
  410. package/dist/m/c-PGRCK73F.js +0 -1
  411. package/dist/m/c-Q7NQD65V.js +0 -1
  412. package/dist/m/c-QH63LQOS.js +0 -1
  413. package/dist/m/c-R7IWVINQ.js +0 -1
  414. package/dist/m/c-RM7J7BV2.js +0 -1
  415. package/dist/m/c-S4ZEH46B.js +0 -9
  416. package/dist/m/c-SDAXDM2D.js +0 -1
  417. package/dist/m/c-SMGU7RT3.js +0 -235
  418. package/dist/m/c-SPIORRYS.js +0 -1
  419. package/dist/m/c-SWLRT66R.js +0 -1
  420. package/dist/m/c-TCJTVAFN.js +0 -1
  421. package/dist/m/c-TQEMVJCS.js +0 -1
  422. package/dist/m/c-TYLXX4NF.js +0 -21
  423. package/dist/m/c-U62OB4BT.js +0 -1
  424. package/dist/m/c-U6YWUAR3.js +0 -8
  425. package/dist/m/c-UDCSU5G5.js +0 -2
  426. package/dist/m/c-VI5RMSVY.js +0 -1
  427. package/dist/m/c-VRZN56XY.js +0 -1
  428. package/dist/m/c-W5MCHEGA.js +0 -1
  429. package/dist/m/c-WNYBLIOZ.js +0 -1
  430. package/dist/m/c-WWXIDH4O.js +0 -28
  431. package/dist/m/c-XCNTK76U.js +0 -1
  432. package/dist/m/c-XMS6DPBR.js +0 -1
  433. package/dist/m/c-ZUCOKOHT.js +0 -1
  434. package/dist/m/c-ZVPVXTJF.js +0 -4
  435. package/dist/m/c-ZVRKXKM7.js +0 -1
  436. package/dist/m/core/autosave-HRYGUWV6.js +0 -1
  437. package/dist/m/core/conflict-notice-6MROJN2L.js +0 -1
  438. package/dist/m/core/is-edit-mode-KTWA3O5N.js +0 -1
  439. package/dist/m/core/recovery-FLTCC2OC.js +0 -1
  440. package/dist/m/core/save-HQZ4S667.js +0 -1
  441. package/dist/m/core/save-core-KGQWFUNH.js +0 -1
  442. package/dist/m/core/snapshot-EGQZNT45.js +0 -1
  443. package/dist/m/core/unsaved-warning-IDJLD66H.js +0 -1
  444. package/dist/m/loader-S4I7GKXR.js +0 -1
  445. package/dist/m/manifest-4C419D67.js +0 -1
  446. package/dist/m/manifest-edit-B077F288.js +0 -1
  447. package/dist/m/plugins/ai-edit-QN4PMMNL.js +0 -6
  448. package/dist/m/plugins/indicator-URDBBOQO.js +0 -1
  449. package/dist/m/plugins/live-HFWD4OIH.js +0 -1
  450. package/dist/m/plugins/menu-3HIEQSI6.js +0 -138
  451. package/dist/m/plugins/page-JOKB6XPR.js +0 -2
  452. package/dist/m/plugins/page-view-NXOJHNW6.js +0 -1
  453. package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
  454. package/dist/m/plugins/sortable-GWT4PWDV.js +0 -1
  455. package/dist/m/plugins/source-4ZRSAIYM.js +0 -1
  456. package/dist/m/plugins/undo-VDA5P7FH.js +0 -1
  457. package/dist/m/plugins/upgrade-W7FG5VFG.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-LIDY7NH6.js +0 -21
  459. package/dist/m/plugins/visitor-drafts-owner-ZXCKBZE7.js +0 -1
  460. package/dist/m/reader-core-DXYCURFF.js +0 -68
  461. package/dist/m/route/route-KOCZSEGN.js +0 -1
  462. package/dist/m/sync/live-sync-J7VMYTKS.js +0 -1
  463. package/dist/m/ui/index-3JLVI27O.js +0 -1
  464. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
  465. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  466. /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
  467. /package/dist/m/plugins/{richclay-NRQDSWX6.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
@@ -1,138 +0,0 @@
1
- import{a as q}from"../c-AQLFEATB.js";import{a as R}from"../c-VKEDWYDF.js";import{b as x,c as O,e as L,f as z}from"../c-OW5QIGG3.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 B='<svg xmlns="http://www.w3.org/2000/svg" viewBox="-45.87 -57.96 100.26 60.98" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M44.35 -4.56Q40.03 -0.52 34.69 -0.39Q29.34 -0.25 24.81 -0.14Q20.27 -0.02 15.6 0Q10.93 0.02 6.41 0Q1.89 -0.02 -2.79 -0.02Q-7.48 -0.02 -12.11 -0.14Q-16.73 -0.25 -21.64 -0.27Q-26.55 -0.3 -31.72 -2.25Q-36.88 -4.2 -39.87 -9.12Q-42.87 -14.03 -42.8 -19.61Q-42.74 -25.18 -40.43 -29.94Q-38.12 -34.69 -34.82 -38.78Q-31.52 -42.87 -27.25 -45.6Q-22.98 -48.33 -18.35 -50.59Q-13.73 -52.85 -8.7 -53.88Q-3.68 -54.91 1.32 -54.93Q6.32 -54.96 11.44 -54.56Q16.55 -54.16 21.35 -52.2Q26.16 -50.24 30.69 -48.01Q35.22 -45.78 38.99 -42.18Q42.76 -38.59 45.67 -34.37Q48.59 -30.15 49.99 -24.87Q51.39 -19.59 50.04 -14.09Q48.68 -8.6 44.35 -4.56ZM0.66 -30.49C0.5 -28.73 -0.88 -27.42 -2.42 -27.57C-3.96 -27.71 -5.08 -29.25 -4.91 -31.01C-4.75 -32.77 -3.36 -34.08 -1.83 -33.94C-0.29 -33.79 0.83 -32.25 0.66 -30.49ZM13.61 -29.28C13.44 -27.52 12.06 -26.21 10.52 -26.35C8.98 -26.5 7.87 -28.04 8.03 -29.8C8.2 -31.56 9.58 -32.87 11.12 -32.73C12.66 -32.58 13.77 -31.04 13.61 -29.28ZM-1.23 -17.71Q-0.62 -17.35 -0.03 -17.08Q0.56 -16.81 1.15 -16.54Q1.73 -16.28 2.4 -16Q3.07 -15.72 3.87 -15.6Q4.66 -15.48 5.4 -15.55Q6.13 -15.62 6.77 -15.79Q7.41 -15.96 7.97 -16.23Q8.53 -16.5 9 -16.91Q9.46 -17.32 9.73 -17.9Q9.99 -18.47 10.08 -19.12Q10.17 -19.77 10.08 -20.42Q9.99 -21.06 9.45 -21.32Q8.91 -21.58 8.27 -21.38Q7.63 -21.17 6.99 -20.91Q6.36 -20.65 5.7 -20.61Q5.04 -20.56 4.33 -20.73Q3.62 -20.9 2.92 -21.14Q2.23 -21.39 1.54 -21.68Q0.85 -21.97 0.16 -22.27Q-0.52 -22.56 -1.22 -22.79Q-1.92 -23.03 -2.49 -22.61Q-3.05 -22.19 -3.23 -21.5Q-3.4 -20.81 -3.2 -20.09Q-3.01 -19.38 -3.02 -19.15Q-3.02 -18.93 -2.42 -18.5Q-1.83 -18.06 -1.23 -17.71Z"/></svg>';var _=!0,$=6e3,U=12,G=`.clay-menu {
2
- position: fixed;
3
- top: max(12px, env(safe-area-inset-top));
4
- right: max(12px, env(safe-area-inset-right));
5
- z-index: 2147482000;
6
- display: flex;
7
- align-items: center;
8
- flex-wrap: nowrap;
9
- gap: 8px;
10
- font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
11
- font-size: 13px;
12
- line-height: 1;
13
- color: var(--clay-ui-fg, #1F2328);
14
- }
15
- .clay-menu-edit {
16
- display: inline-flex;
17
- align-items: center;
18
- gap: 8px;
19
- margin: 0;
20
- padding: 0;
21
- border: 0;
22
- font: inherit;
23
- color: inherit;
24
- background: none;
25
- cursor: pointer;
26
- }
27
- .clay-menu-edit:disabled { cursor: progress; opacity: .7; }
28
- .clay-menu-track {
29
- position: relative;
30
- display: block;
31
- box-sizing: border-box;
32
- width: 52px;
33
- height: 32px;
34
- border: 1px solid rgba(23, 28, 36, .16);
35
- border-radius: 999px;
36
- background: var(--clay-ui-bg, #F4F4F5);
37
- transition: background-color .15s ease, border-color .15s ease;
38
- }
39
- .clay-menu-thumb {
40
- position: absolute;
41
- top: 2px;
42
- left: 2px;
43
- width: 26px;
44
- height: 26px;
45
- border-radius: 50%;
46
- background: #FAFAFB;
47
- box-shadow: 0 1px 2px rgba(23, 28, 36, .35);
48
- transition: transform .15s ease;
49
- }
50
- .clay-menu-edit[aria-checked="true"] .clay-menu-track {
51
- border-color: transparent;
52
- background: var(--clay-ui-accent, #2F6FEB);
53
- }
54
- .clay-menu-edit[aria-checked="true"] .clay-menu-thumb { transform: translateX(20px); }
55
- .clay-menu-label { font-size: 13px; line-height: 1; }
56
- .clay-menu-goo {
57
- position: relative;
58
- display: inline-flex;
59
- align-items: center;
60
- justify-content: center;
61
- box-sizing: border-box;
62
- width: 32px;
63
- height: 32px;
64
- margin: 0;
65
- padding: 0;
66
- border: 1px solid rgba(23, 28, 36, .16);
67
- border-radius: 50%;
68
- color: inherit;
69
- background: var(--clay-ui-bg, #F4F4F5);
70
- cursor: pointer;
71
- }
72
- .clay-menu-goo svg { display: block; width: 18px; height: auto; }
73
- .clay-menu-dot {
74
- position: absolute;
75
- top: 1px;
76
- right: 1px;
77
- width: 8px;
78
- height: 8px;
79
- border-radius: 50%;
80
- background: var(--clay-ui-accent, #2F6FEB);
81
- }
82
- .clay-menu-list {
83
- position: absolute;
84
- top: calc(100% + 8px);
85
- right: 0;
86
- min-width: 184px;
87
- margin: 0;
88
- padding: 4px;
89
- border: 1px solid rgba(23, 28, 36, .16);
90
- border-radius: 10px;
91
- background: var(--clay-ui-bg, #F4F4F5);
92
- box-shadow: 0 10px 28px -14px rgba(23, 28, 36, .5);
93
- }
94
- .clay-menu-list button {
95
- display: block;
96
- width: 100%;
97
- padding: 8px 10px;
98
- border: 0;
99
- border-radius: 6px;
100
- font: inherit;
101
- text-align: left;
102
- color: inherit;
103
- background: none;
104
- cursor: pointer;
105
- }
106
- .clay-menu-list button:hover,
107
- .clay-menu-list button:focus-visible { outline: none; background: rgba(23, 28, 36, .08); }
108
- .clay-menu-note {
109
- position: absolute;
110
- top: calc(100% + 8px);
111
- right: 0;
112
- max-width: 260px;
113
- padding: 8px 10px;
114
- border: 1px solid rgba(23, 28, 36, .16);
115
- border-radius: 8px;
116
- line-height: 1.4;
117
- text-align: left;
118
- background: var(--clay-ui-bg, #F4F4F5);
119
- box-shadow: 0 10px 28px -14px rgba(23, 28, 36, .5);
120
- }
121
- @media (pointer: coarse) {
122
- .clay-menu-edit { min-height: 44px; padding: 6px 0; }
123
- .clay-menu-goo { width: 44px; height: 44px; }
124
- }
125
- @media (prefers-color-scheme: dark) {
126
- .clay-menu { color: var(--clay-ui-fg, #E9E9EC); }
127
- .clay-menu-track,
128
- .clay-menu-goo,
129
- .clay-menu-list,
130
- .clay-menu-note { border-color: rgba(233, 233, 236, .16); background: var(--clay-ui-bg, #26282C); }
131
- .clay-menu-track { background: rgba(233, 233, 236, .22); }
132
- .clay-menu-thumb { background: #E9E9EC; }
133
- .clay-menu-list button:hover,
134
- .clay-menu-list button:focus-visible { background: rgba(233, 233, 236, .12); }
135
- }
136
- @media (prefers-reduced-motion: reduce) {
137
- .clay-menu-track, .clay-menu-thumb { transition: none; }
138
- }`,D=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:z;function P(){if(document.getElementById("clay-menu-style"))return;let t=document.createElement("style");t.id="clay-menu-style",t.setAttribute("clay","editor-ui"),t.textContent=G,document.head.append(t)}function j(){if(document.querySelector(".clay-menu"))return;P();let t=document.createElement("div");t.className="clay-menu",t.setAttribute("clay","editor-ui"),t.setAttribute("clay-mode-toggle",""),t.innerHTML=`<button type="button" class="clay-menu-edit" role="switch" aria-checked="false"><span class="clay-menu-track" aria-hidden="true"><span class="clay-menu-thumb"></span></span><span class="clay-menu-label">Edit</span></button><button type="button" class="clay-menu-goo" aria-haspopup="menu" aria-expanded="false" aria-label="Clay menu">${B}</button><div class="clay-menu-list" role="menu" hidden></div><div class="clay-menu-note" role="status" hidden></div>`;let a=t.querySelector(".clay-menu-edit"),l=t.querySelector(".clay-menu-goo"),i=t.querySelector(".clay-menu-list"),p=t.querySelector(".clay-menu-note"),b=new Map,c=()=>!i.hidden;function w(e){i.hidden=!e,l.setAttribute("aria-expanded",e?"true":"false")}let Q=()=>[...i.querySelectorAll('[role="menuitem"]')];function m(e){let r=Q();r.length&&r[(e+r.length)%r.length].focus()}function s(){c()&&w(!1)}function f(){c()||w(!0)}function N(){let e=i.contains(document.activeElement);i.textContent="";for(let o of b.values()){let u=document.createElement("button");u.type="button",u.setAttribute("role","menuitem"),u.dataset.menuId=o.id,u.textContent=o.label,u.addEventListener("click",()=>{s(),o.run&&o.run()}),i.append(u)}let r=l.querySelector(".clay-menu-dot"),n=[...b.values()].some(o=>o.badge);if(n&&!r){let o=document.createElement("span");o.className="clay-menu-dot",l.append(o)}else!n&&r&&r.remove();e&&m(0)}function v({id:e,label:r,run:n,badge:o}={}){return e?(b.set(e,{id:e,label:String(r??""),run:typeof n=="function"?n:null,badge:!!o}),N(),e):null}function Z(e){e&&(p.textContent=e,p.hidden=!1,clearTimeout(k),k=setTimeout(()=>{p.hidden=!0,p.textContent=""},$))}let k=0,g=!1;function h(){a.setAttribute("aria-checked",D()==="edit"?"true":"false")}h(),document.addEventListener("clay:modechange",h),a.addEventListener("click",async()=>{if(g)return;let e=a.getAttribute("aria-checked"),r=D()==="edit"?"view":"edit";g=!0,a.setAttribute("aria-busy","true"),a.disabled=!0;let n;try{n=await window.clay?.setMode?.(r)}catch(o){n={ok:!1,message:o&&o.message}}if(!(n&&n.reloading))if(g=!1,a.removeAttribute("aria-busy"),a.disabled=!1,n&&n.ok===!1){a.setAttribute("aria-checked",e);let o=q(n);o&&Z(o)}else h()}),l.addEventListener("click",()=>{c()?s():f()}),document.addEventListener("click",e=>{c()&&!t.contains(e.target)&&s()}),t.addEventListener("keydown",e=>{if(e.key==="Escape"){if(!c())return;e.preventDefault(),s(),l.focus();return}if(e.target===l&&(e.key==="Enter"||e.key===" ")){e.preventDefault(),c()?s():(f(),m(0));return}if(!c())return;if(e.key==="Enter"&&i.contains(e.target)){e.preventDefault(),e.target.click();return}let r=Q();if(!r.length)return;let n=r.indexOf(document.activeElement);e.key==="ArrowDown"?(e.preventDefault(),m(n<0?0:n+1)):e.key==="ArrowUp"&&(e.preventDefault(),m(n<0?r.length-1:n-1))});let E=document,d=null,C=null;function F(e){t.style.top=`${Math.round(e.getBoundingClientRect().bottom)+U}px`}function M(){if(!t.isConnected)return;let e=E.querySelector(".clay-intro");if(e!==C){if(d&&(d.disconnect(),d=null),C=e,!e){t.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(d=new ResizeObserver(()=>F(e)),d.observe(e)),F(e)}}let y=document.createElement("style");y.id="clay-menu-vars",y.setAttribute("clay","editor-ui"),document.head.append(y);function A(){let e=t.getBoundingClientRect();y.textContent=`:root { --clay-menu-width: ${Math.ceil(e.width)}px; --clay-menu-height: ${Math.ceil(e.height)}px; }`}document.body.append(t),A(),typeof ResizeObserver=="function"&&new ResizeObserver(A).observe(t),new MutationObserver(M).observe(E.body,{childList:!0}),M();let S=()=>import("../c-SMGU7RT3.js").then(e=>e.open());if(_){v({id:"seo",label:"SEO settings\u2026",run:S});let e=window.clay.storage&&window.clay.storage.session;e&&e.get("reopen-seo")===!0&&(e.remove("reopen-seo"),S().catch(()=>{}))}window.clay.menu={addItem:v,open:f,close:s}}var I=!1,H=()=>(O||L)&&!x;function T(){I||!H()||(I=!0,j())}x||(R(T),document.addEventListener("clay:capabilitychange",T));
@@ -1,2 +0,0 @@
1
- import{a as we}from"../c-3GJ4SDE2.js";import{a as de,b as fe}from"../c-MFP2ZWD4.js";import{a as tr,b as me}from"../c-U62OB4BT.js";import{a as rr}from"../c-BYTKL6UX.js";import{a as er,b as F,c as O}from"../c-4L3BTFRK.js";import{a as or}from"../c-L4WQSC27.js";import{d as Xe,e as ze,i as Ke,j as ye,n as D,o as Qe,q as K,r as he,s as Ze}from"../c-S4ZEH46B.js";import{a as Ue}from"../c-TCCA5BZN.js";import{k as ge}from"../c-LRPUO2MX.js";import"../c-A7LS5UZW.js";import"../c-5V3MOVJT.js";import"../c-LZJPNR2W.js";import{b as $e}from"../c-FILLTJA7.js";import{a as Be}from"../c-NUHP2XDB.js";import{A as Ye,E as Je,d as Ge,e as X,m as pe,n as z}from"../c-TCJTVAFN.js";import"../c-GQ6F6IDK.js";import{a as We}from"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-QJ4OM3G6.js";import"../c-MKSQ4Y57.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import{d as U}from"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import{a as _e,c as qe,d as Ve}from"../c-DCXOXBF3.js";import{d as Ne}from"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import{j as Me}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{s as H}from"../c-SPIORRYS.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 $r=Object.freeze({"page-converting":"retrying","page-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","page-condition-required":"blocked","page-conversion-refused":"blocked","page-conversion-required":"blocked","page-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked"}),Q="Can't save here. Your edits are still in this tab.",Z="Still trying to save. Your edits are safe in this tab.";function M({ok:e=!1,code:r=null,offline:t=!1}={}){return e?"saved":t?"retrying":$r[r]??"error"}function ar(e){let r;try{r=new DOMParser().parseFromString(e,"text/html")}catch{return e}let t=[...r.querySelectorAll('script[type="application/json"][merge="page"][clay~="live"]')].filter(f=>!f.closest("template")&&!f.closest("noscript"));if(t.length!==1)return e;let a=t[0].outerHTML,l=e.indexOf(a);return l<0||e.indexOf(a,l+1)!==-1?e:e.slice(0,l)+e.slice(l+a.length)}function ee(){let{forSave:e}=H();return fe({html:ar(e),name:`${de()}.html`})}function ve(e){return fe({html:ar(e),name:`${de()}.html`})}async function lr(){try{let{forSave:e}=H(),t=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-page]");return t.length!==1?!1:(await navigator.clipboard.writeText(t[0].textContent),!0)}catch{return!1}}var nr="clay.page.author",be="clay.page.author.owned.",sr=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function cr(e=globalThis.localStorage){try{let r=[];for(let a=0;a<e.length;a++){let l=e.key(a);l&&l.startsWith(be)&&r.push(l.slice(be.length))}let t=e.getItem(nr);return(!t||!r.includes(t))&&(t=sr(),e.setItem(be+t,"1"),e.setItem(nr,t),r.push(t)),{token:t,owned:r.sort()}}catch{let r=sr();return{token:r,owned:[r]}}}var E=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Ur=new Set([E.ready,E.blocked,E.error]),ir=0,dr=()=>globalThis.performance?.now?.()??Date.now();function fr({gen:e=0,isCurrent:r=()=>!0,onPhase:t=null}={}){return ir+=1,{installId:ir,gen:e,isCurrent:r,onPhase:typeof t=="function"?t:null,phase:E.loading,result:null,at:dr(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function ke(e,r){return p(e)&&!!r?.view&&e.mounted===r.view}function C(e,r,t=null){if(Ur.has(e.phase)&&e.result)return e.result;e.phase=r,e.at=dr(),e.result=Object.freeze({phase:r,reason:t??null,installId:e.installId,at:e.at});try{e.onPhase?.(e.result)}catch(a){console.error("clayjs: page boot phase callback failed",a)}return e.result}function Te(e,r){let t=C(e,E.blocked,r);return e.editorReadyResolve?.(),t}function pr(e,r){return C(e,E.error,r)}function te(e,r){return typeof r=="function"&&e.disposers.push(r),r}function Se(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(t){console.error("clayjs: page boot abort failed",t)}let r=e.disposers.splice(0).reverse();for(let t of r)try{t()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function re(e,r){let t=globalThis.performance;if(typeof t?.mark=="function")try{t.mark(e,{detail:{installId:r.installId}})}catch{try{t.mark(e)}catch{return}}}function Xr(e,r){try{r.release?.(e)}catch(t){console.error("clayjs: page boot release failed",t)}}function V(e,r,t){return r.cancelled?null:(Xr(e,t),Te(e,r.reason??"boot-incomplete"))}function ur(e,r,t,a=null){return Promise.resolve(e).then(l=>l??{ok:!1,reason:t},l=>(console.error(`clayjs: page boot ${t}`,l),{ok:!1,reason:t})).then(l=>(l.ok&&a&&p(r)&&re(a,r),l))}function zr(e,r){return new Promise(t=>{let a=e.controller.signal,l=!1,f=k=>{l||(l=!0,t(k))};if(a.aborted)return f({cancelled:!0});a.addEventListener("abort",()=>f({cancelled:!0}),{once:!0});let g=new Array(r.length),b=r.length;r.forEach((k,A)=>{k.then(R=>{if(!l){if(!R.ok)return f({result:R,branch:k});g[A]=R,b-=1,b===0&&f({results:g})}})})})}async function gr(e,r,{activate:t=!0}={}){re("document:boot",e),C(e,E.loading);let a=r.readSource(e);if(!p(e))return null;if(!a.ok)return Te(e,a.reason);let l=a.source;C(e,E.joining);let f=await zr(e,[ur(r.loadEditorAssets(e,l),e,"editor-assets-failed","document:assets-ready"),ur(r.prepareAuthority(e,l),e,"authority-failed","document:authority-ready")]);if(f.cancelled||!p(e))return null;if(!f.results){try{e.controller.abort()}catch(P){console.error("clayjs: page boot abort failed",P)}return V(e,f.result,r)}let[g,b]=f.results,k=r.mountAndAttach(e,l,g,b);if(!p(e))return null;if(!k.ok)return V(e,k,r);e.mounted=k.view??null,C(e,E.adopting);let A=await r.adoptSource(e,l,k);if(!p(e))return null;if(!A.ok)return V(e,A,r);if(!t){if(r.prepareInput){let P=await r.prepareInput(e,k);if(!p(e))return null;if(!P.ok)return V(e,P,r)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let R=await r.enableInput(e,k);return p(e)?R.ok?(re("document:input-ready",e),C(e,E.ready)):V(e,R,r):null}function yr(e){let r=e.deferred;if(e.deferred=null,!r||!p(e))return e.result??null;let t=e.steps?.openInput?.(e,r);return t?.ok?(re("document:input-ready",e),C(e,E.ready)):Te(e,t?.reason??"input-refused")}var W="article[data-page]",le='script[type="application/json"][merge="page"][clay~="live"]',hr={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},Kr=45e3,Qr="Couldn't save",Zr="Offline, not saved",kr="This page was changed outside the editor. Reload to see it.",et="That change is too large to share, so it was not saved. Reload the page to keep editing.",rt="Some changes you made were replaced by a change made outside the editor.",Tr="The page was changed outside the editor; reload to see it.",tt=150,ot="Loading the editor\u2026",Oe="the page session has not committed yet",mr=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Ae(e){return mr(e)?e.v!==1||!mr(e.y)||Object.hasOwn(e,"blocks")||Object.hasOwn(e,"deleted")?(console.warn("clayjs: page plugin: the page tag is not a strict Yjs page, leaving the page as saved HTML"),"unsupported-page-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-page-json")}var N=null,wr=null;function x(){return wr??=import("../c-TYLXX4NF.js").then(e=>N=e),wr}function at(e){let r=new Set;return e.forEach(t=>{let a=me(t.type.name);a&&r.add(a)}),[...r]}function L(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function lt(e,r){L(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let t=r.ownerDocument.createElement("div");t.className="page-boot-status",t.setAttribute("clay","editor-ui"),t.setAttribute("sap-ignore",""),t.setAttribute("role","status"),Be(t,["display:block","margin:0 0 1em","font:500 13px/1.6 system-ui, sans-serif","color:color-mix(in srgb, currentColor 55%, transparent)","user-select:none"]),t.textContent=ot,r.prepend(t),e.statusNote=t},tt)}var ne=0,j=null,oe=null,nt=8e3;function st(e,r=globalThis.location){let t=r?.hash?.slice(1);if(!t)return;let a;try{a=decodeURIComponent(t)}catch{return}let l=-1;e.state.doc.forEach((f,g)=>{l<0&&f.attrs.id===a&&(l=g)}),!(l<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(l)?.scrollIntoView?.({block:"start"}))}function Pe(e,r,t){document.dispatchEvent(new CustomEvent("clay:page-save-state",{detail:{state:e,code:r,message:t}}))}function Sr(){O(Qr),O(Zr)}function Ar(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,O(Z)}function ct(e,r,t){Sr(),Pe("retrying",r,t),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,F(Z,"warning")},Kr))}function Rr(e,r,t){Ar(e),Sr(),Pe("blocked",r,t),F(Q,"error",{detail:t,actions:[{label:"Download a copy",onClick:ee},{label:"Copy text",onClick:lr}]})}function it(e){Ar(e),O(Q),Pe("saved",null,"")}function ut(e,r,t=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let l=a.querySelectorAll(W);return t?l.length!==1&&!a.querySelector(le):l.length!==1||a.querySelector(le)?!1:l[0].getAttribute("data-rev")!==r}function dt(e){if(!e.store||!N)return e.savedRev;try{return N.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function Er(e){let r=e.view;r&&(r.setProps({editable:()=>!1}),r.setProps({dispatchTransaction:t=>r.updateState(r.state.apply(t))}));try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}e.savesHeld||(e.savesHeld=!0,pe(Tr))}function ft(e){if(!e.tabValue)return ee();let{forSave:r}=H(),t=new DOMParser().parseFromString(r,"text/html"),a=t.querySelectorAll(W);if(a.length!==1)return ee();let l=N.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=l.html,l.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",l.rev),ve(`<!DOCTYPE html>
2
- ${t.documentElement.outerHTML}`)}function jr(e,r){e.replaced||(e.replaced=!0,Er(e),F(r,"warning",{actions:[{label:"Reload",onClick:()=>window.location.reload()},{label:"Download your copy",onClick:()=>ft(e)}]}))}var Ee=e=>jr(e,kr),pt=e=>jr(e,et);function B(e,r,t,a){r==="saved"?it(e):r==="retrying"?ct(e,t,a):r==="blocked"&&Rr(e,t,a)}function I(e,r,t){document.addEventListener(r,t),e.listeners.push([r,t])}function gt(e){I(e,"clay:save-error",t=>{let a=t.detail?.code??null;a!=="page-nothing-to-write"&&B(e,M({code:a}),a,t.detail?.msg??"")}),I(e,"clay:save-offline",t=>{let a=t.detail?.code??null;B(e,M({code:a,offline:!0}),a,t.detail?.msg??"")}),I(e,"clay:save-conflict",t=>{let a=t.detail?.code??null;B(e,M({code:a}),a,t.detail?.msg??"")});let r=t=>{ht(e,t)};I(e,"clay:save-conflict",r),I(e,"clay:save-error",r),I(e,"clay:save-saved",t=>{B(e,M({ok:!0}),null,t.detail?.msg??""),e.savedRev=dt(e),e.adoption?.saved(Ye())}),I(e,"clay:live-notice",t=>{if(t.detail?.name!=="page"||t.detail?.code==="op-too-large")return;if(t.detail?.code==="unknown-store"){Ee(e);return}let a=t.detail?.code??null;B(e,M({code:a}),a,t.detail?.message??"")})}async function yt(){let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let r=await e.text(),a=new DOMParser().parseFromString(r,"text/html").querySelector(W);return a?{article:a,etag:e.headers?.get?.("etag")||null}:null}async function ht(e,r){let t=e.staged;if(!t||e.staleRetry||e.replaced)return;let a=r?.detail?.code??null;if(!(a!=="page-lineage-stale"&&a!=="conflict")&&!(!e.store||!t.isPending())){e.staleRetry=!0;try{let l=await yt();if(!l||!p(e))return;let f=await x();if(!p(e))return;let g=f.seedPageFromArticle(l.article.cloneNode(!0)),b=l.etag??r?.detail?.etag??null;b&&qe(b),e.store.rebase(g,{source:"state"}),await Je()}catch(l){console.warn("clayjs: page plugin could not offer the refused first write again",l)}}}function Ie(e){let r=e.article;if(!r)return;let t=e.bootHtml,a=e.bootRev;if(e.store&&N)try{let l=N.renderFromTags([JSON.stringify(e.store.value)]);t=l.html,a=l.rev}catch(l){console.error("clayjs: page plugin could not render the saved article",l)}r.innerHTML=t,a==null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",a)}function Ce(e){for(let[r,t]of e.listeners)document.removeEventListener(r,t);e.listeners=[];try{e.adoption?.dispose()}catch(r){console.error("clayjs: page plugin adoption failed to dispose",r)}e.adoption=null;try{e.recover?.destroy()}catch(r){console.error("clayjs: page plugin recover list failed to dispose",r)}if(e.recover=null,e.aiTool?.dispose(),e.aiTool=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&rr.delete(e.view),e.article){let r=e.article.querySelector(".page-shell");r&&r.remove()}try{e.binding?.dispose()}catch(r){console.error("clayjs: page plugin binding failed to dispose",r)}try{e.binding?.ydoc?.destroy()}catch(r){console.error("clayjs: page plugin document failed to destroy",r)}try{e.staged?.close()}catch(r){console.error("clayjs: page plugin staged store failed to close",r)}if(e.staged=null,e.pageStore){try{Qe("page",e.pageStore)}catch(r){console.error("clayjs: page plugin store failed to close",r)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function vr(e){let r=e.view;if(r&&!r.isDestroyed&&typeof r.destroy=="function")try{r.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.titleObserver?.dispose(),e.titleObserver=null,L(e),Ce(e),Ie(e)}function je(){ne+=1;let e=j;if(j=null,U("Page-Write",null),ye(null),!!e){Se(e),e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),O(Z),O(Q),O(kr);for(let r of e.notices?.values()??[])O(r);if(e.savesHeld&&(e.savesHeld=!1,z({replay:!1,reason:Tr})),e.titleObserver?.dispose(),e.titleObserver=null,L(e),e.sessionHeld&&z({replay:!1,reason:Oe}),e.autosaveSuspended&&X(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(r){console.error("clayjs: page plugin view failed to destroy",r)}Ce(e),Ie(e)}}var Re=null;function xe(){return Re||(Re=Promise.all([import("../c-ZVRKXKM7.js"),import("../c-GB6TU7WV.js")]).then(([e,r])=>({replay:e,proof:r})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Re}async function mt(e,r){let t=globalThis.window?.clay?.recovery??null;if(!t||!r)return null;let a=await xe();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:t,base:a.replay.journalBase(r.value)})}catch(l){return console.warn("clayjs: page journal could not open",l),null}}async function br(e){let r=e.binding?.journal;if(!r||!e.store)return{replayed:[],review:[]};let t=await xe();if(!t)return{replayed:[],review:[]};let a=await t.replay.replayInto({journal:r,state:e.store.value,into:e.binding.ydoc});return a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),a}function wt(e){ye(async({capture:r,state:t,article:a,etag:l})=>{let f=e.binding?.journal;if(!f)return;let g=await xe(),b=g?await f.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-6AZOGAPE.js"),A=await g.proof.checkpointAccepted({channel:f.channel,records:f.records(),capture:r,accepted:b,article:a,state:t,etag:l,href:await k()});A.ok&&f.retire(A.retired)})}function vt(e,r){let t=null,a=null,l=null,f=null,g=null,b=null,k=null,A=[],R=null,P=null,_=null,G=null,Y=null,Cr=new Promise(o=>{f=o});e.editorReadyResolve=f,te(e,()=>f?.()),te(e,()=>L(e));let J=null,ce=null;e.loadFormatGate=()=>J?Promise.resolve(J):(ce??=Promise.all([import("../c-QH63LQOS.js"),import("../c-CQHPGKX2.js")]).then(([{createFormatGate:o},{createFormatHost:n}])=>{let s=n();return J=o({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null}),J}).catch(o=>{throw ce=null,o}),ce);let Le='script[type="application/json"][merge="page.tools"][clay~="live"]',xr=()=>_||(_=(async()=>{if(!document.querySelector(Le)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","page.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Le))try{R=window.clay.live("page.tools"),await R.ready}catch(c){console.warn("clayjs: page plugin could not open the tool store",c)}if(!p(e))return null;let[{createToolHost:o},{tablesFromDoc:n}]=await Promise.all([import("../c-GOWBDM6J.js"),import("../c-VI5RMSVY.js")]);if(!p(e))return null;let s=o({store:R,mode:"edit",tables:()=>n(l?.state.doc??a.doc()).map(({id:c,cols:d,rows:i})=>({id:c,cols:d,rows:i}))});if(e.toolHost=s,we(t)){let{createAiTool:c}=await import("../c-QICP2YR5.js");if(!p(e))return null;let d=window.clay?.wire?.pageTool??r.transport??null;P=c({getView:()=>e.view,store:R,transport:d,acceptState:r.acceptState}),e.aiTool=P}return s})().catch(o=>{throw _=null,o}),_),q=new Map,Lr=o=>{if(q.has(o))return;let n=`The ${o} controls could not load. Reload the page after saving.`;q.set(o,n),F(n,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(o).then(()=>{let s=q.get(o);s&&(q.delete(o),O(s))},()=>{})}}]})};e.notices=q;let ie=async({target:o=null,remove:n=null}={})=>{G&&l&&n&&G.holdSlashRange(l,n),await b.ensure("tool").catch(()=>{}),!(!p(e)||!P||!l)&&P.open({target:o,remove:n?G.heldSlashRange(l.state):null})},ue=()=>we(t);function Hr(o){let n=document.querySelectorAll(W),s=typeof o.context?.represented?.bytes=="string"?new DOMParser().parseFromString(o.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(W):n,d=s?s.querySelectorAll(le):document.querySelectorAll(le);if(!c.length&&!d.length)return{ok:!1,reason:"no-page"};let i=c.length===1&&d.length===0;if(c.length!==1||!i&&d.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-page] and one merge="page" live tag; found ${c.length} article(s) and ${d.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-page"};let y=n[0];if(!y)return{ok:!1,reason:"no-page"};let u=c[0],w=d[0],v=null;if(!i){try{v=Ue(w?.textContent)}catch{v=null}let T=Ae(v);if(T)return{ok:!1,reason:T}}let m={article:u.cloneNode(!0),tags:v?[v]:null,element:y,blocks:null,seeded:i,seedValue:null};return m.ready=(async()=>{let T=await x();if(!p(o))return{ok:!1,cancelled:!0};if(i){try{v=m.seedValue=T.seedPageFromArticle(m.article.cloneNode(!0))}catch(h){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",h),{ok:!1,reason:"invalid-page-source"}}let S=Ae(v);if(S)return{ok:!1,reason:S};m.tags=[v]}try{m.blocks=T.blocksFromYValue(v)}catch(S){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",S),{ok:!1,reason:"invalid-page-json"}}return{ok:!0}})(),lt(o,y),{ok:!0,source:m}}function Dr(o,n){if(Ae(n))return!1;if(ge(o.authoritative)===ge(n))return!0;try{return o.rebase(n,{source:"state"})}catch(s){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",s),!1}}async function Fr(o,n){let s=x();s.catch(()=>null);let c=await n.ready;if(!c.ok)return c;if(!p(o))return{ok:!1,cancelled:!0};let d=await s,i=[...new Set(Object.values(n.blocks).map(u=>me(u.t)).filter(Boolean))];b=d.createFeatureLoader({load:u=>tr[u].load(),install:async(u,w)=>{if(l||await Cr,!p(o)||!l)return null;let v={view:l,upload:r.upload,board:a.board,undo:a.undo,redo:a.redo,revise:ue()?(m,T)=>{ie({target:{toolId:m,rev:T}})}:null};return u==="tool"&&(v.toolHost=await xr(),!p(o))?null:y.installPageFeature(v,u,w)},reportError:(u,w)=>{console.error("clayjs: an editor feature failed to load",u),Lr(w)}});for(let u of i)b.prepare(u).catch(()=>null);let y=null;try{y=await import("../page/editor-NNJA4OKD.js"),Y=y.setEditorActive,G={holdSlashRange:d.holdSlashRange,heldSlashRange:d.heldSlashRange}}catch(u){return console.error("clayjs: page plugin could not load the editor",u),{ok:!1,reason:"editor-assets-failed"}}return p(o)?{ok:!0,editor:y.createPageEditor,refreshView:y.refreshMountedView,featureIds:i,code:d}:{ok:!1,cancelled:!0}}async function Mr(o,n){let s=x();try{t=await Ne()}catch{t=null}if(!p(o))return{ok:!1,cancelled:!0};if(!t||!Array.isArray(t.extensions)||!t.extensions.includes("page"))return Rr(o,hr.code,hr.message),{ok:!1,reason:"missing-capability"};o.mergeTagless=!t.extensions.includes("live-data"),U("Page-Write","v1");let c=null,d=null;if(n.seeded){if(c=await n.ready,!c.ok)return c;if(d=await s,!p(o))return{ok:!1,cancelled:!0}}let i,y=!0;try{if(n.seeded){let h=Ke("page",{value:n.seedValue,represented:r.represented??{bytes:n.article.outerHTML,etag:Ve()??_e()}});o.staged=h,i=h.handle}else{let h=D("page")===null;y=h,i=window.clay.live("page"),h&&(o.pageStore=D("page"))}}catch(h){return console.warn("clayjs: page plugin could not open the page store",h),{ok:!1,reason:"missing-page-store"}}try{await i.ready}catch(h){return console.warn("clayjs: page plugin could not join the page room",h),{ok:!1,reason:"admission-failed"}}if(!p(o))return{ok:!1,cancelled:!0};if(c??=await n.ready,!c.ok)return c;let u=D("page")?.handle?.status?.mode==="fast";if(!y&&!u&&!Dr(D("page"),n.tags?.[0]))return{ok:!1,reason:"stale-store"};if(d??=await s,!p(o))return{ok:!1,cancelled:!0};let w=D("page");if(!w)return{ok:!1,reason:"missing-page-store"};o.store=w;let v=!1,m=null,T=async h=>{let $=await h();return v=$?.ok===!1,m?.changed(),$};g=cr();let S=await mt(t,w);return p(o)?(a=d.createYPageBinding({store:w,onStopped:h=>{o.tabValue=d.yValueOf(a.ydoc),h==="lineage"?(K()?.abandon?.("page"),Ee(o)):pt(o)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:he,requestCheckpoint:Ze,journal:S,registerUnsavedState:h=>(m=We({id:h.id,isPending:()=>v||h.isPending(),flush:()=>T(()=>h.flush())}),m)}),o.binding=a,S&&wt(o),o.flush=h=>T(()=>a.flush(h)),gt(o),{ok:!0,store:w,handle:i}):{ok:!1,cancelled:!0}}function Nr(o,n){import("../c-U6YWUAR3.js").then(async s=>{if(o.view!==n)return;let c=await s.installPageAwareness({binding:o.binding,view:n});if(c){if(o.view!==n||n.isDestroyed){c.dispose();return}o.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function _r(o,n,s){let c=n.element;o.context?.reader?.yieldArticle?.();try{o.releaseArticle=or(c,"editor")}catch(u){return console.error("clayjs: page plugin could not claim the article",u),{ok:!1,reason:"article-owned"}}o.source=n,o.article=c,o.bootHtml=n.article.innerHTML,o.bootRev=n.article.getAttribute("data-rev"),o.savedRev=o.bootRev,I(o,"clay:sync-applied",u=>{o.replaced||ut(u.detail?.html,o.savedRev,o.mergeTagless)&&Ee(o)}),A=[...c.childNodes].filter(u=>u!==o.statusNote);let d=c.ownerDocument.createElement("div"),i=null;try{i=s.editor(d,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:a.undo,redo:a.redo,board:a.board,editable:!1,features:b,onAiTool:ue()?(u,w)=>{ie({remove:w})}:null,reviseTool:ue()?(u,w)=>{ie({target:{toolId:u,rev:w}})}:null,formatGate:o.loadFormatGate})}catch(u){return console.error("clayjs: page plugin could not mount the editor",u),d.replaceChildren(),o.releaseArticle?.(),o.releaseArticle=null,o.article=null,{ok:!1,reason:"mount-failed"}}l=i,o.view=i;let y=i.dom.closest(".page-shell");if(y&&(y.inert=!0),s.featureIds.length&&y&&(y.style.visibility="hidden"),!s.featureIds.length)for(let u of A)u.remove();return y&&c.appendChild(y),s.refreshView?.(i),a.attach(i),Nr(o,i),f(),k=Promise.allSettled(s.featureIds.map(u=>b.ensure(u))),st(i),o.recover=s.code.createRecoverList({binding:a,mount:i.dom.closest(".page-shell")??c,ownTokens:[g.token,...g.owned],onRestored:u=>s.code.focusBlock(i,u),onStale:()=>er("That change was updated. The list now shows the latest version.","warning")}),o.titleObserver=s.code.observeDocumentTitle(i),{ok:!0,view:i,featureIds:s.featureIds}}async function qr(o,n){try{let s=await x(),{HyperMorph:c}=await $e(),d=s.blocksFromYValue(o.store.authoritative),i=s.readBack(d,document),y=s.mergePageModels(n.baseItems,i,n.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(y.items)===s.canon(i)}catch{return!1}}async function Vr(o,n){let s=await x();return await qr(o,n)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let d=null,i=null,y=!1,u=w=>{y||(y=!0,i&&clearTimeout(i),i=null,d?.(),d=null,c(w))};te(o,()=>u({ok:!1,cancelled:!0})),d=o.store.onRebase(w=>{w.source==="remote"&&u({ok:!0,outcome:"writer-adopts"})}),i=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),u({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function Br(o,n,s){let c=await x(),d=c.classifyFile(n.article,n.tags),i=d.kind==="adopt",y=async()=>{let m=await Xe();if(!m||!p(o))return;if(m.status.writer===null){let S=o.store.value.y,h=Object.keys(S),$=h.length?h[0]:`claim-${a.ydoc.clientID.toString(36)}`,Jr=h.length?S[h[0]]:c.yValueOf(a.ydoc).y.seed;o.store.handle.set(["y",$],Jr),m.release("page")}let T;await Promise.race([ze(),new Promise(S=>{T=setTimeout(S,nt)})]),clearTimeout(T)},u=i?y():Promise.resolve(),w=c.installAdoption({view:s.view,source:n,ready:u,isAdopter:()=>{let m=K();return!m||m.status.writer===null?!0:m.isWriter()},requestCheckpoint:()=>he(0),snapshot:()=>H().forSave,mergeTagless:o.mergeTagless,writerReady:y,adopted:m=>K()?.adopted?.("page",m,o.store.mark),notice:m=>{m.copy&&F(rt,"warning",{actions:[{label:"Download your copy",onClick:()=>ve(m.copy)}]})}});o.adoption=w;let v=await w.idle();return v?(v.outcome==="writer-adopts"&&(v=await Vr(o,d)),!v.ok&&p(o)?vr(o):p(o)&&await br(o),v):(await br(o),{ok:!0,outcome:"unchanged"})}async function He(o,n){if(o.replaced)return{ok:!1,reason:"page-replaced"};if(await k,!p(o))return{ok:!1,cancelled:!0};let s=n.view.dom.closest(".page-shell");if(!ke(o,n)||!s||!s.isConnected||n.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(n.featureIds??[]),d=at(n.view.state.doc).filter(i=>!c.has(i));return d.length&&(await Promise.allSettled(d.map(i=>b.ensure(i))),!p(o))?{ok:!1,cancelled:!0}:{ok:!0}}function De(o,n){let s=n.view.dom.closest(".page-shell"),c=()=>{for(let d of A)d.remove();s&&(s.style.visibility="")};return o.replaced?(c(),Er(o),{ok:!1,reason:"page-replaced"}):o.inputOpen?{ok:!0}:!ke(o,n)||!s||!s.isConnected||n.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,Y?.(n.view,!0),o.inputOpen=!0,L(o),{ok:!0})}function Wr(o){return o.inputOpen?(Y?.(o.view,!1),!0):!1}function Gr(o){return o.inputOpen?(Y?.(o.view,!0),!0):!1}async function Yr(o,n){let s=await He(o,n);return s.ok?De(o,n):s}let Fe={readSource:Hr,loadEditorAssets:Fr,prepareAuthority:Mr,mountAndAttach:_r,adoptSource:Br,prepareInput:He,openInput:De,closeInput:Wr,resumeInput:Gr,enableInput:Yr,release:o=>{o.view||vr(o)}};return e.steps=Fe,Fe}async function bt(e,r={},{activate:t=!0}={}){return gr(e,vt(e,r),{activate:t})}function Or(e={},{activate:r=!0,context:t=null}={}){je(),oe=null;let a=++ne,l={...fr({gen:a,isCurrent:()=>a===ne&&(t?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&L(l),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,aiTool:null,bootHtml:"",bootRev:null,savedRev:null,staged:null,pageStore:null,releaseArticle:null,replaced:!1,savesHeld:!1,flush:null,loadFormatGate:null,listeners:[],retryTimer:null,retryShown:!1,statusTimer:null,statusNote:null,notices:null,editorReadyResolve:null,context:t,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};j=l;let f=bt(l,e,{activate:r}).catch(g=>(console.error("clayjs: page plugin failed to install",g),oe=pr(l,"boot-failed"),j===l&&je(),oe));return{inst:l,boot:f}}function Pr(e={}){return Or(e).boot}function kt(e){if(j===e&&(j=null,ne+=1),U("Page-Write",null),Se(e),e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.titleObserver?.dispose(),e.titleObserver=null,L(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(r){console.error("clayjs: page plugin view failed to destroy",r)}e.view=null,Ce(e),Ie(e)}function ae(e){e.sessionHeld&&(e.sessionHeld=!1,z({replay:!1,reason:Oe}))}function Ir(e,{held:r=!0}={}){return{enable(){r&&(ae(e),yr(e))},quiesce(){if(e.view?.composing)throw Object.assign(new Error("clayjs: a composition is still in progress"),{code:"composition"});e.steps?.closeInput?.(e),e.autosaveSuspended||(e.autosaveSuspended=!0,Ge())},resume(){ae(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,X()),e.steps?.resumeInput?.(e)},dispose(){ae(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,X()),kt(e)}}}function Tt(e=null,r={}){pe(Oe);let{inst:t,boot:a}=Or(r,{activate:!1,context:e});t.sessionHeld=!0;let l=Ir(t,{held:!0});se.ready=a.then(()=>se.status);let f=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return f.catch(()=>{ae(t);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:f,...l}}function Xt(e={}){return{id:"clay:page",order:400,prepare(r={}){return r.initial===!0?j?Ir(j,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:Tt(r,e)}}}var se={ready:null,install:Pr,get status(){return j?.result??oe},flush(e={}){let r=j;return!r||!r.flush?Promise.resolve({ok:!1,code:"disposed"}):r.flush(e)},dispose:je,get view(){return j?.view??null}};se.ready=Me()?Pr():null;var zt=se;export{nt as WRITER_WAIT_MS,vt as createSteps,zt as default,Xt as modeParticipant,se as page,Xt as pageParticipant,Tt as preparePageSession};
@@ -1 +0,0 @@
1
- import{a as be,b as me,c as ve,d as le,f as Se}from"../c-7OLLJPWP.js";import{a as ie}from"../c-L4WQSC27.js";import"../c-VRZN56XY.js";import"../c-OW5QIGG3.js";import{a as ge}from"../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 we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var W=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let c=new URL(e||window.location.href,r);return c.protocol==="http:"||c.protocol==="https:"?c.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:W(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:c=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!W(r),a=ze(c);if(g===null){let n={ready:null,get represented(){return a},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=a.seq??0,E=0,P=0,U=f,N=v,C=0,j=!1,L=null,A=null,t=null,s=!1,h=null,d=null,i=null,b=null,k=[],O=n=>!j&&n===C;function x(n,u={}){j||typeof N!="function"||N({state:n,...u})}function _(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,i=null}function ae(n){if(b){b.update(n);return}k.push(n),!i&&(i=Promise.all([import("../c-SMBZG5X4.js"),import("../c-HFKUVACH.js")]).then(([u,l])=>{h=u.presence,b=l.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let w of k.splice(0))b.update(w);return b}).catch(()=>(i=null,null)))}function X(){if(_(),!L)return;let n=L;L=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function B(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(j)return!1;let u={bytes:n.bytes,etag:W(n.etag),seq:Y(n.seq)};if(typeof u.bytes!="string"||u.bytes==="")return x("recoverable",{reason:"invalid-bytes",seq:u.seq}),!1;if(u.bytes===a.bytes&&u.etag===a.etag&&u.seq===a.seq)return!0;let l=!1;try{l=U(Object.freeze(u))===!0}catch{l=!1}return l?(a=Object.freeze(u),x("applied",{seq:a.seq,etag:a.etag}),!0):(x("recoverable",{reason:"refused",seq:u.seq,etag:u.etag}),!1)}function F(n,u){if(u==="startup")return null;let l=Math.max(n.seq??0,q);return l>0?l:null}function se(n,u){t=n,s=!0,x("recoverable",{reason:u,seq:n.seq??null})}function z(n){j||(t={kind:n.kind,seq:Y(n.seq)},s=!1,R())}function R(){if(j||A||s||!t)return;let n=C,u=t;t=null;let l=new AbortController;A={controller:l};let w=E,K=q,D=T=>{if(A&&A.controller===l&&(A=null),!(!O(n)||l.signal.aborted)){if(T==null){se(u,"repair-failed");return}if(E!==w||q!==K){if(P+=1,P<=Re){t=t??{kind:u.kind,seq:F(u,u.kind)},R();return}o(T.text,{kind:u.kind,seq:F(u,u.kind)},T.etag),R();return}o(T.text,u,T.etag),R()}};fetch(g,{cache:"no-store",signal:l.signal}).then(T=>T.ok?T.text().then(G=>({text:G,etag:W(T.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function o(n,u,l){let K=W(l)??Me(n)??(n===a.bytes?a.etag:null),D=u.kind==="startup"?a.seq:u.seq??a.seq;re({bytes:n,etag:K,seq:D})&&(S=!1,P=0,s=!1,x("current",{seq:a.seq,etag:a.etag}))}function y(n,u){let l={bytes:a.bytes,etag:n??a.etag,seq:u??a.seq};l.etag===a.etag&&l.seq===a.seq||(a=Object.freeze(l),x("current",{seq:a.seq,etag:a.etag}))}function p(n,u,l){let w=W(u);if(!(l!==null&&a.seq!==null&&l<=a.seq)){if(!S&&w!==null&&a.etag!==null){if(w!==a.etag){z({kind:"unmatched",seq:l});return}S=!0}if(n===a.bytes){y(w,l);return}re({bytes:n,etag:w,seq:l})&&(S=!0)}}function I(n,u){let l=n.data;if(l&&l.kind==="external-change"){typeof l.html=="string"?p(l.html,l.etag,u):z({kind:"notice",seq:u});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&z({kind:"notice",seq:u})}function $(n,u){if(!O(u))return;E++;let l;try{l=JSON.parse(n)}catch{x("recoverable",{reason:"bad-json"});return}if(!l||typeof l!="object"||Array.isArray(l)){x("recoverable",{reason:"bad-frame"});return}let w=Y(l.seq);if(w!==null&&w>q&&(q=w),l.type==="notification"){I(l,w);return}if(l.error){x("recoverable",{reason:"server-error",seq:w});return}if(typeof l.html!="string"){W(l.etag)?z({kind:"notice",seq:w}):x("recoverable",{reason:"bad-frame",seq:w});return}p(l.html,l.etag,w)}function M(n,u){if(!O(u))return;E++;let l;try{l=JSON.parse(n)}catch{return}if(!l||typeof l!="object")return;let w=Y(l.seq);if(w!==null&&w>q&&(q=w),l.resync===!0){z({kind:"resync",seq:w});return}l.startup===!0&&z({kind:"startup",seq:null})}function H(n){if(O(n)){if(x("open",{seq:a.seq,etag:a.etag}),s){s=!1,R();return}a.bytes===null&&!m&&z({kind:"startup",seq:null})}}let V={ready:null,get represented(){return a},adopt({onSnapshot:n,onStatus:u}={}){return typeof n=="function"&&(U=n),typeof u=="function"&&(N=u),V},start(){j=!1;let n=++C;return X(),B(),t=null,s=!1,E=0,P=0,q=a.seq??0,V.ready=Se().then(u=>{if(!O(n))return V;let l=Ce(),w=Ie(),K=u.profile.streamPath(g,we,l,w),D=new be(new URL(K,window.location.origin).href,{shared:u.sharedSync,sharedData:u.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return L=D,D.onopen=()=>H(n),D.onerror=()=>{O(n)&&x("reconnecting")},D.onmessage=T=>$(T.data,n),D.addEventListener("cursor",T=>M(T.data,n)),D.addEventListener("presence",T=>{if(!O(n))return;let G;try{G=JSON.parse(T.data)}catch{return}G&&typeof G=="object"&&!Array.isArray(G)&&ae(G)}),V}),V},stop(){j||(j=!0,C++,X(),B(),t=null,s=!1)}};return V}var Ue="article[data-page]",Ve='section[data-type="tool"][data-id]',xe=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Ee(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),c={};try{c=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:c.rev??null,artifact:c.artifact??null,state:c.state??{},signature:JSON.stringify(c.artifact??null),invalid:!1}}function ue(e){let r=new Map,c=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!c.has(v)){if(r.has(v)){r.delete(v),c.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="page.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,c=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(c.has(m))continue;if(r.has(m)){r.delete(m),c.add(m);continue}r.set(m,g)}xe.has(g.tagName)&&f(g)}};return f(e),r}function Ne(e){let r=new Set,c=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),xe.has(v.tagName)&&c(v)}};return c(e),r}function Q(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let c=(r.defaultView??globalThis).DOMParser;if(typeof c!="function")return{ok:!1,reason:"parser"};let f=new c().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let a=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:a,toolState:a.size?ce(f):{}}}var fe=(e,r)=>{let c=ne(e),f=ne(r);return!c.invalid&&!f.invalid&&c.rev===f.rev&&c.signature===f.signature};function je(e,{article:r,readerOpen:c=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let s=t.getAttribute("data-id");c.has(s)&&t.hasAttribute("open")!==c.get(s)&&t.toggleAttribute("open",c.get(s))}let g=Je(r),m=new Set,a=!1,S=t=>(a=!0,t.cloneNode(!0)),q=(t,s)=>{let h=Ne(t);for(let d of s.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let i=Ne(d);for(let b of h)if(i.has(b))return d}return null},E=(t,s)=>{for(let h of s.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,s,h=null)=>{for(let{name:d,value:i}of[...s.attributes])d===h||t.getAttribute(d)===i||(t.setAttribute(d,i),a=!0);for(let{name:d}of[...t.attributes])d===h||s.hasAttribute(d)||(t.removeAttribute(d),a=!0)},U=(t,s,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),i=d(s.childNodes[h])?s.childNodes[h]:[...s.childNodes].find(d);return i?(m.add(i),i):t.cloneNode(!0)},N=(t,s)=>{let h=[],d=[...s.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(U(O,t,k));continue}let x=A(O,t);m.add(x),h.push(x)}let i=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!i.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),a=!0}for(let k of[...t.childNodes])i.has(k)||(k.remove(),a=!0)},C=t=>{a=!0;let s=t.cloneNode(!1);return N(s,t),s},j=(t,s)=>{a=!0;let h=t.getAttribute("data-id"),d=c.has(h)?c.get(h):s.hasAttribute("open");P(t,s,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),N(t,s)},L=(t,s)=>{a=!0,P(t,s),N(t,s)};function A(t,s){let h=t.getAttribute("data-id");if(h){let i=g.get(h);return!i||m.has(i)||i===s||i.contains(s)?S(t):(m.add(i),ke(i)&&ke(t)?v(i,t)?i:S(t):i.tagName!==t.tagName?S(t):i.isEqualNode(t)?i:t.tagName==="DETAILS"?(j(i,t),i):t.tagName==="LI"?(L(i,t),i):qe.has(t.tagName)?(P(i,t),N(i,t),i):S(t))}if(qe.has(t.tagName)){let i=q(t,s);return i?(m.add(i),P(i,t),N(i,t),i):C(t)}let d=E(t,s);return d?(m.add(d),d.isEqualNode(t)?d:(a=!0,S(t))):S(t)}if(N(r,e.article),f){f.clear();for(let[t,s]of e.savedOpen)f.set(t,s)}for(let t of[...c.keys()])e.savedOpen.has(t)||c.delete(t);return{changed:a}}var Te="article[data-page]",Be='section[data-type="tool"][data-id]',Le='script[type="application/json"][merge="page"]',de=["live-at","live-by"];var Fe=e=>{import("../c-JU3NK25H.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),He=(e,r)=>{let c=e.source.querySelector(Le),f=r.querySelector(Le);if(!c)return f?(f.remove(),!0):!1;if(f){let g=de.map(a=>c.getAttribute(a));return f.textContent===c.textContent&&de.every((a,S)=>f.getAttribute(a)===g[S])?!1:(f.textContent!==c.textContent&&(f.textContent=c.textContent),de.forEach((a,S)=>{g[S]===null?f.removeAttribute(a):f.setAttribute(a,g[S])}),!0)}let v=r.querySelector(Te);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(c,!0),v),!0):!1};function Ge({doc:e,article:r,represented:c=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:a=()=>{}}){let S=new Map,q=new Map,E=new Map,P={data:{}},U=[],N=null,C=null,j=0,L=!1,A=m,t=null,s=pe(c),h=null,d=a,i=!1,b=(o,y)=>{let p=e.defaultView??globalThis;e.dispatchEvent(new p.CustomEvent(o,{detail:y}))},k=()=>{for(let o of E.values())try{o.instance?.dispose?.()}catch{}E.clear()},O=()=>N?Promise.resolve(N):(C||(C=import("../c-GOWBDM6J.js").then(({createToolHost:o})=>L?null:(N=o({store:P,mode:"view"}),N)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),x=o=>{for(let[y,p]of E){let I=o.get(y);if(!I||I.invalid||I.rev!==p.rev||I.signature!==p.signature){try{p.instance?.dispose?.()}catch{}E.delete(y)}}},_=(o,y)=>{let p=[];for(let[$,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):p.push([$,M]);if(!p.length)return;P.data=y??{};let I=++j;O().then($=>{if(!(L||!$||I!==j))for(let[M,H]of p){if(E.has(M))continue;let V=[...r.querySelectorAll(Be)].find(n=>n.getAttribute("data-id")===M);if(V)try{let n=$.mount(V,{id:M,artifact:H.artifact,rev:H.rev,seed:H.state??{}});E.set(M,{rev:H.rev,signature:H.signature,instance:n})}catch(n){console.warn(`clayjs: tool ${M} could not mount`,n)}}})},ae=(o,y)=>{let p=E.get(o.getAttribute("data-id"));if(!p)return fe(o,y);let I=Ee(y);return!I.invalid&&I.rev===p.rev&&I.signature===p.signature},X=o=>{o?.state==="current"&&(s=pe({bytes:s.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},B=o=>{je(o,{article:r,readerOpen:S,savedOpen:q,keepTool:ae}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),He(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let y=s.bytes?Q(s.bytes,e):null;if(y?.ok)try{B(y)}catch(p){console.warn("clayjs: the reader could not restore the previous file",p)}b("clay:reader-status",{state:"blocked"})};function F(o){if(L||i)return!1;let y=Q(o.bytes,e);if(!y.ok||r.querySelector(".page-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;x(y.tools);try{B(y)}catch(p){return re(p),!1}return s=pe(o),s.etag&&Fe(s.etag),_(y.tools,y.toolState),b("clay:reader-status",{state:"applied",etag:s.etag,seq:s.seq}),!0}let se=()=>s.bytes===null?!1:(R.stop(),!0),z=o=>{let y=o.target;if(y.tagName!=="DETAILS"||!r.contains(y))return;let p=y.getAttribute("data-id");p&&(y.open===q.get(p)?S.delete(p):S.set(p,y.open))};if(e.addEventListener("toggle",z,!0),U.push(["toggle",z,!0]),c){let o=Q(c.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);B(o),_(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));_(ue(r),ce(e))}let R={ready:null,get represented(){return s},yieldArticle(){return L||i?!1:(j++,k(),i=!0,d(),!0)},reclaimArticle(){if(L||!i)return!1;if(d=ie(r,"reader"),i=!1,s.bytes!==null){let o=Q(s.bytes,e);o.ok&&(B(o),_(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):L?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-GSFIGKOP.js").then(({readerHandoff:y})=>y({stream:A,options:o,apply:F,retire:se,yieldArticle:R.yieldArticle,reclaimArticle:R.reclaimArticle})),h)},stop(){if(L)return t;L=!0,h=null,j++,A?.stop(),A=null;for(let[o,y,p]of U)e.removeEventListener(o,y,p);U.length=0,k();try{N?.dispose()}catch{}return N=null,i||d(),i=!1,d=()=>!1,t=Object.freeze({...s}),t}};if(R.ready=Promise.resolve(R),f){let o=y=>{let p=y.detail;typeof p?.html=="string"&&(p.source&&p.source!=="disk"&&p.lane!=="saved"||F({bytes:p.html,etag:p.etag??null,seq:p.seq??null}))};f.addEventListener("clay:sync-applied",o),U.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:F,onStatus:X}):(A=Ae({documentURL:v,servedEtag:g,represented:s.bytes?s:null,onSnapshot:F,onStatus:X}),A.start());return R}function oe({represented:e=null,documentURL:r,servedEtag:c=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(Te);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-page]");let a=m[0];if(a.querySelector(".page-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=Q(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(a,"reader");try{return Ge({doc:g,article:a,represented:e,feed:v,documentURL:r,servedEtag:c,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-page]").length===1;function We(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function _e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function $e(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Xe({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,We(),he=e?Qe(r):$e(r),Z=e?he:Promise.resolve(null),Z)}function ut(e={}){return Ke(),Xe(e)}function ct(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ke(){ye=!0,Oe||te?.(null),_e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ct as prepareHandoff,Z as ready,ut as restart,Xe as start,Ke as stop};
@@ -1,26 +0,0 @@
1
- import{a as ot,b as rt,c as it}from"../c-LFPHCXY3.js";import{a as nt}from"../c-HPURYVZS.js";import{g as et}from"../c-OIBUTDXI.js";import"../c-4JZDZFF6.js";import"../c-VAK7SG37.js";import"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var qt=":root{--qc-surface:#f7f2ea;--qc-surface-hover:#efe7d8;--qc-border:#cdbfa6;--qc-text:#2b241b;--qc-text-hover:#463c2e;--qc-on-dark:#efe7d8;--qc-overlay:rgba(43,36,27,.6);--qc-dim:rgba(0,0,0,.55);--qc-radius:8px;--qc-crop-line:#fff;--qc-font:ui-sans-serif,system-ui,sans-serif;}.qc-css-probe{position:absolute;}.qc-backdrop{position:fixed;inset:0;background:var(--qc-overlay);display:grid;place-items:center;z-index:1000;animation:qc-fade .15s ease;}@keyframes qc-fade{from{opacity:0}}.qc-modal{background:var(--qc-surface);border:1px solid var(--qc-border);border-radius:var(--qc-radius);padding:16px;max-width:92vw;font-family:var(--qc-font);}.qc-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}.qc-btn{font:inherit;font-family:var(--qc-font);font-size:.85rem;padding:.3rem .75rem;border:1px solid var(--qc-border);border-radius:6px;background:var(--qc-surface);color:var(--qc-text);cursor:pointer;}.qc-btn:hover{background:var(--qc-surface-hover);}.qc-btn-primary{background:var(--qc-text);border-color:var(--qc-text);color:var(--qc-on-dark);font-weight:600;}.qc-btn-primary:hover{background:var(--qc-text-hover);border-color:var(--qc-text-hover);}.qc-stage{position:relative;line-height:0;user-select:none;-webkit-user-select:none;touch-action:none;}.qc-stage img{display:block;max-width:100%;pointer-events:none;}.qc-dim{position:absolute;inset:0;background:var(--qc-dim);pointer-events:none;}.qc-box{position:absolute;cursor:move;outline:1px solid var(--qc-crop-line);background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat;background-blend-mode:overlay;}.qc-handle{position:absolute;box-sizing:border-box;width:28px;height:28px;border:7px solid transparent;background:var(--qc-crop-line);background-clip:padding-box;border-radius:9px;}.qc-nw{left:-14px;top:-14px;cursor:nwse-resize;}.qc-ne{right:-14px;top:-14px;cursor:nesw-resize;}.qc-sw{left:-14px;bottom:-14px;cursor:nesw-resize;}.qc-se{right:-14px;bottom:-14px;cursor:nwse-resize;}.qc-mount{line-height:0;}",gt=["image/jpeg","image/png","image/webp"];var _=!1;function L(t,n="",e=""){let r=document.createElement(t);return n&&(r.className=n),e&&(r.textContent=e),r}function D(t,n,e){t.style.setProperty(n,e,"important")}function vt(t){return String(t).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function K(){if(document.querySelector("style[data-quickcrop]"))return;let t=L("div","qc-css-probe");t.style.display="none",document.body.append(t);let n=getComputedStyle(t).position==="absolute";if(t.remove(),n)return;let e=document.createElement("style");e.setAttribute("data-quickcrop",""),e.setAttribute("save-remove",""),e.setAttribute("snapshot-remove",""),e.textContent=qt,document.head.append(e)}var Y={open({content:t,confirmLabel:n,onConfirm:e,onCancel:r}){K();let i=L("div","qc-backdrop");i.setAttribute("save-remove",""),i.setAttribute("snapshot-remove","");let m=L("div","qc-modal"),u=L("div","qc-bar"),f=L("button","qc-btn qc-btn-primary",n);f.type="button",u.append(f),m.append(t,u),i.append(m),document.body.append(i);let E=q=>{q.key==="Escape"&&r()};return document.addEventListener("keydown",E),f.onclick=()=>e(),i.onclick=q=>{q.target===i&&r()},f.focus(),{close(){document.removeEventListener("keydown",E),i.remove()}}}};function at(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var xt='<svg viewBox="0 0 134 134" xmlns="http://www.w3.org/2000/svg"><path class="micromodal__close-bg" d="M132 132.5 1 1.5h131v131Z"/><path d="M83 27l24 24M107 27L83 51" stroke="#fff" stroke-width="6"/></svg>';function ct(t){let n=()=>t.isShowing&&!!document.querySelector(".micromodal-parent");return{fit(){if(n())return null;let e=window.innerWidth>=640?128:80;return{width:Math.max(120,Math.min(550,window.innerWidth-32)-4-e),height:Math.max(120,window.innerHeight-220)}},open(e){if(n())return Y.open(e);let{content:r,confirmLabel:i,onConfirm:m,onCancel:u}=e;K();let f=!1,E=C=>{f||(f=!0,document.removeEventListener("keydown",q,!0),C())},q=C=>{C.key==="Escape"&&(C.stopPropagation(),u())};return t.html='<div class="qc-mount"></div>',t.yes=vt(i),t.no="",t.closeHtml=xt,t.disableFocus=!0,t.onOpen(()=>{document.querySelector(".micromodal__content .qc-mount")?.append(r),document.querySelector(".micromodal-parent .micromodal__yes")?.focus(),document.addEventListener("keydown",q,!0)}),t.onYes(()=>(E(m),!0)),t.onNo(()=>{E(u)}),t.open(),{close(){f||(f=!0,document.removeEventListener("keydown",q,!0),t.close())}}}}}function yt(t){if(t==="builtin")return Y;if(t&&typeof t=="object"){if(at(t))return ct(t);if(typeof t.open=="function")return t;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}if(t==="auto")return at(window.themodal)?ct(window.themodal):Y;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}function wt(t,n={}){let{aspect:e=null,type:r,quality:i=.92,maxWidth:m=null,maxHeight:u=null,minSize:f=40,labels:E={},modal:q="auto"}=n,{confirm:C="Crop"}=E;if(!(t instanceof Blob))return Promise.reject(new TypeError("quickcrop: expected a File or Blob"));if(_)return Promise.reject(new Error("quickcrop: already open"));let S;try{S=yt(q)}catch(R){return Promise.reject(R)}_=!0;let A=r||(gt.includes(t.type)?t.type:"image/png"),F=URL.createObjectURL(t),a=new Image;return new Promise((R,z)=>{a.onerror=()=>{URL.revokeObjectURL(F),_=!1,z(new Error("quickcrop: could not decode image"))};function h(){let U=S.fit?S.fit():null,mt=Math.max(1,Math.min(U?.width??window.innerWidth*.86,a.naturalWidth)),ut=Math.max(1,U?.height??window.innerHeight*.72),N=Math.min(mt/a.naturalWidth,ut/a.naturalHeight,1),M=Math.max(1,Math.round(a.naturalWidth*N)),g=Math.max(1,Math.round(a.naturalHeight*N)),$=Math.min(f,M,g);K();let v=L("div","qc-stage");D(a,"width",M+"px"),D(a,"height",g+"px");let Q=L("div","qc-dim"),B=L("div","qc-box");for(let o of["nw","ne","sw","se"])B.appendChild(L("div","qc-handle qc-"+o));v.append(a,Q,B);let c,p;e?(c=Math.min(M,g*e),p=c/e,p>g&&(p=g,c=p*e)):(c=M,p=g);let y=(M-c)/2,w=(g-p)/2;Z();function Z(){D(B,"left",y+"px"),D(B,"top",w+"px"),D(B,"width",c+"px"),D(B,"height",p+"px"),D(Q,"clip-path",`polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0, ${y}px ${w}px, ${y}px ${w+p}px, ${y+c}px ${w+p}px, ${y+c}px ${w}px, ${y}px ${w}px)`)}let T=(o,b,d)=>Math.max(b,Math.min(d,o));v.addEventListener("pointerdown",o=>{let b=o.target.closest(".qc-handle"),d=o.target===B;if(!b&&!d)return;o.preventDefault(),v.setPointerCapture(o.pointerId);let s={px:o.clientX,py:o.clientY,x:y,y:w,w:c,h:p},l=b&&[...b.classList].find(W=>/^qc-(nw|ne|sw|se)$/.test(W))?.slice(3),x=W=>{if(!l)y=T(s.x+(W.clientX-s.px),0,M-c),w=T(s.y+(W.clientY-s.py),0,g-p);else{let O=l.includes("w")?s.x+s.w:s.x,H=l.includes("n")?s.y+s.h:s.y,P=l.includes("e"),X=l.includes("s"),G=v.getBoundingClientRect(),J=Math.abs(W.clientX-(G.left+O)),V=Math.abs(W.clientY-(G.top+H));if(e){let tt=Math.min(P?M-O:O,(X?g-H:H)*e),bt=Math.min(Math.max($,$*e),tt);c=T(Math.max(J,V*e),bt,tt),p=c/e}else c=T(J,$,P?M-O:O),p=T(V,$,X?g-H:H);y=P?O:O-c,w=X?H:H-p}Z()},k=()=>{v.removeEventListener("pointermove",x),v.removeEventListener("pointerup",k),v.removeEventListener("pointercancel",k)};v.addEventListener("pointermove",x),v.addEventListener("pointerup",k),v.addEventListener("pointercancel",k)});function ft(){let o=a.naturalWidth/M,b=a.naturalHeight/g,d=Math.round(c*o),s=Math.round(p*b),l=1;m&&d>m&&(l=m/d),u&&s*l>u&&(l=u/s),d*l*s*l>16777216&&(l=Math.sqrt(16777216/(d*s)));let x=document.createElement("canvas");x.width=Math.max(1,Math.round(d*l)),x.height=Math.max(1,Math.round(s*l));let k=x.getContext("2d");if(!k)throw new Error("quickcrop: crop too large for a canvas");return A==="image/jpeg"&&(k.fillStyle="#fff",k.fillRect(0,0,x.width,x.height)),k.imageSmoothingQuality="high",k.drawImage(a,y*o,w*b,c*o,p*b,0,0,x.width,x.height),x}let j=!1,I=()=>j?!1:(j=!0,ht.close(),URL.revokeObjectURL(F),_=!1,!0),ht=S.open({content:v,confirmLabel:C,onConfirm(){if(j)return;let o,b;try{o=ft(),b=o.toDataURL(A,i)}catch(d){I()&&z(d);return}I()&&o.toBlob(d=>{if(!d){z(new Error("quickcrop: image encoding failed"));return}R({blob:d,dataURL:b,width:o.width,height:o.height})},A,i)},onCancel(){I()&&R(null)}})}a.onload=()=>{try{h()}catch(U){URL.revokeObjectURL(F),_=!1,z(U)}},a.src=F})}var pt=wt;var st=[".qc-stage",".qc-backdrop"],dt=`@layer clay-skin{
2
- :is(.qc-stage, .qc-backdrop),:is(.qc-stage, .qc-backdrop) *{--qc-surface:light-dark(#FFFCF6, #11131E) !important;--qc-text:light-dark(#2B241B, #ECEAF2) !important;--qc-border:light-dark(#D8C8AF, #353B52) !important;--qc-radius:0px !important;--qc-font:system-ui,-apple-system,"Segoe UI",sans-serif !important;--qc-surface-hover:light-dark(#F4ECDF, #1A1D2C) !important;--qc-text-hover:color-mix(in srgb, light-dark(#2B241B, #ECEAF2), light-dark(#FDF8F0, #0B0C13) 12%) !important;--qc-on-dark:light-dark(#FDF8F0, #0B0C13) !important;--qc-overlay:color-mix(in srgb, light-dark(#FDF8F0, #0B0C13) 70%, transparent) !important;--qc-dim:rgba(0,0,0,.55) !important;--qc-crop-line:#fff !important}
3
- .qc-stage{margin-inline:auto !important;inline-size:fit-content !important;background:light-dark(#F4ECDF, #1A1D2C) !important}
4
- .qc-stage img{display:block !important;max-inline-size:100% !important}
5
- .qc-backdrop{position:fixed !important;inset:0 !important;background:var(--qc-overlay) !important;display:grid !important;place-items:center !important;z-index:1000 !important;animation:qc-fade .15s ease !important}
6
- .qc-modal{background:var(--qc-surface) !important;border:1px solid var(--qc-border) !important;border-radius:var(--qc-radius) !important;padding:16px !important;max-width:92vw !important;font-family:var(--qc-font) !important}
7
- .qc-bar{display:flex !important;justify-content:flex-end !important;gap:10px !important;margin-top:12px !important}
8
- .qc-btn{font:inherit !important;font-family:var(--qc-font) !important;font-size:.85rem !important;padding:.3rem .75rem !important;border:1px solid var(--qc-border) !important;border-radius:6px !important;background:var(--qc-surface) !important;color:var(--qc-text) !important;cursor:pointer !important}
9
- .qc-btn:hover{background:var(--qc-surface-hover) !important}
10
- .qc-btn-primary{background:var(--qc-text) !important;border-color:var(--qc-text) !important;color:var(--qc-on-dark) !important;font-weight:600 !important}
11
- .qc-btn-primary:hover{background:var(--qc-text-hover) !important;border-color:var(--qc-text-hover) !important}
12
- .qc-stage{position:relative !important;line-height:0 !important;user-select:none !important;-webkit-user-select:none !important;touch-action:none !important}
13
- .qc-stage img{display:block !important;max-width:100% !important;pointer-events:none !important}
14
- .qc-dim{position:absolute !important;inset:0 !important;background:var(--qc-dim) !important;pointer-events:none !important}
15
- .qc-box{position:absolute !important;cursor:move !important;outline:1px solid var(--qc-crop-line) !important;background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat !important;background-blend-mode:overlay !important}
16
- .qc-handle{position:absolute !important;box-sizing:border-box !important;width:28px !important;height:28px !important;border:7px solid transparent !important;background:var(--qc-crop-line) !important;background-clip:padding-box !important;border-radius:9px !important}
17
- .qc-nw{left:-14px !important;top:-14px !important;cursor:nwse-resize !important}
18
- .qc-ne{right:-14px !important;top:-14px !important;cursor:nesw-resize !important}
19
- .qc-sw{left:-14px !important;bottom:-14px !important;cursor:nesw-resize !important}
20
- .qc-se{right:-14px !important;bottom:-14px !important;cursor:nwse-resize !important}
21
- .qc-mount{line-height:0 !important}
22
- .qc-stage img[hidden]{display:none !important}
23
- .qc-backdrop[hidden]{display:none !important}
24
- .qc-bar[hidden]{display:none !important}
25
- }`;var lt=844;nt("quickcrop",dt,{roots:st});function kt(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var Et={fit(){let t=document.documentElement.clientWidth;return{width:Math.max(120,Math.min(lt,t-32)-2-44),height:Math.max(120,window.innerHeight-Math.min(96,window.innerHeight*.1)-200)}},open({content:t,confirmLabel:n,onConfirm:e,onCancel:r}){let{root:i,overlay:m,panel:u,heading:f,body:E,footer:q,close:C}=it({zIndex:"2147483001",width:`${lt}px`,closable:!0,titled:!0});f.textContent="Crop image",u.setAttribute("aria-label","Crop image"),E.append(t);let S=et(n,{variant:"primary",onClick:()=>e()});q.append(S),C.addEventListener("click",()=>r()),u.addEventListener("submit",h=>h.preventDefault());let A=!1;m.addEventListener("mousedown",h=>{A=h.target===m}),m.addEventListener("click",h=>{A&&h.target===m&&r(),A=!1});let F=h=>{if(h.key==="Tab"){h.stopPropagation(),rt(u,h);return}h.key==="Escape"&&(h.stopPropagation(),r())};document.addEventListener("keydown",F,!0);let a=document.body.style.overflow;document.body.style.overflow="hidden";let R=!1,z=()=>{R||(R=!0,document.removeEventListener("keydown",F,!0),document.body.style.overflow=a,i.remove())};return ot.set(i,()=>{z(),r()}),i.setAttribute("aria-hidden","false"),document.body.append(i),S.focus(),{close:z}}};function Mt(t,n={}){let e=n.modal??"auto",r=e==="auto"||kt(e);return pt(t,r?{...n,modal:Et}:n)}var Bt=Mt;export{Et as bevelCropAdapter,Bt as default,Mt as quickcrop};
26
- /*! For license information please see quickcrop-QNY3PKLD.js.LEGAL.txt */
@@ -1 +0,0 @@
1
- import{a as E,d as x,e as g,f as $,g as I}from"../c-7DJDKPGL.js";import{a as F}from"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.js";import{e as k,j as D}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{k as R}from"../c-SPIORRYS.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{e as O}from"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var T=O("history"),Q="[cms-template]",q=["draggable","style"],W=["pointerup","pointercancel","dragend","drop"],y=new Set,h=null,A=null,p=null;function N(e,t,n,r,i){let s={target:t,type:n,handler:r,options:i};return t.addEventListener(n,r,i),e.listeners.push(s),s}function z(e,t){t.target.removeEventListener(t.type,t.handler,t.options);let n=e.listeners.indexOf(t);n!==-1&&e.listeners.splice(n,1)}function U(e,t){let n=setTimeout(()=>{e.timers.delete(n),t()},0);return e.timers.add(n),n}function X(e,t){return{Sortable:e,root:t,admitted:!1,instances:new Set,listeners:[],timers:new Set,presses:new Set,stop:null}}var Y={admitted:!0,instances:new Set,listeners:[],timers:new Set,presses:new Set};function Z(e){return[e,...e.querySelectorAll("*")].filter(t=>!t.closest(T)).map(t=>[t,q.map(n=>t.getAttribute(n))])}function _(e){for(let[t,n]of e)q.forEach((r,i)=>{let s=n[i],a=t.getAttribute(r);if(a!==s)if(s===null){if(r==="style"&&a)return;t.removeAttribute(r)}else t.setAttribute(r,s)})}function H(e){return/^(UL|OL)$/.test(e.tagName)?"li":"*"}function C(e){return`> ${H(e)}:not(${T})`}function B(e,t){return!e||!t||t.nodeType!==1||!t.matches(H(e))?!1:!t.closest(T)&&!t.closest(Q)}function M(e,t){return!e||!t||t.parentElement!==e?!1:B(e,t)}function ee(e,t){let n=t.nextElementSibling;for(;n&&!M(e,n);)n=n.nextElementSibling;return n}function P(e,t){return Array.prototype.indexOf.call(e.children,t)}function V(e,t){if(t)try{new Function(`return (async function(evt) { ${t} })`)().call(e.from,e)}catch(n){console.error("Error in onsorted execution:",n)}e.from.dispatchEvent(new CustomEvent("clay:sorted",{bubbles:!0,detail:{item:e.item,from:e.from,to:e.to,oldIndex:e.oldIndex,newIndex:e.newIndex}})),e.from.dispatchEvent(new Event("input",{bubbles:!0}))}function j(e,t,n=Y){let r={};if(r.draggable=C(e),t.get(e))return;let i=e.getAttribute("sortable");i&&(r.group=i);let s=e.querySelectorAll("[sortable-handle]"),a=e.querySelectorAll("[sortable]");Array.from(s).some(o=>!Array.from(a).some(l=>l.contains(o)))&&(r.handle="[sortable-handle]");let c=e.getAttribute("onsorting");c&&(r.onMove=function(o){if(n.admitted)try{new Function(`return (async function(evt) { ${c} })`)().call(e,o)}catch(l){console.error("Error in onsorting execution:",l)}});let f=e.getAttribute("onsorted");r.onEnd=function(o){if(!n.admitted)return;let l={item:o.item,from:o.from,to:o.to,oldIndex:o.oldIndex,newIndex:o.newIndex},b=u;u=null,m&&(_(m),m=null),b&&(I(b,l),g(b)),V(l,f)};let d=null,u=null,m=null,w=!1,v=[],J=()=>{let o=u;u=null,m=null,g(o)},L=()=>{let o=d;d=null,o&&(n.presses.delete(o),y.delete(o),m=o),v.forEach(l=>z(n,l)),v=[],o&&U(n,()=>_(o))},K=()=>{w?x(u):(g(u),u=null),w=!1,L(),U(n,J)};N(n,e,"pointerdown",o=>{let l=o.target instanceof Element?o.target:null;for(;l&&l.parentElement!==e;)l=l.parentElement;!l||d||(d=Z(l),u=E(l),w=!1,n.presses.add(d),y.add(d),v=W.map(b=>N(n,document,b,K,!0)))},!0),r.onUnchoose=L,r.onStart=()=>{w=!0},t.create(e,r),n.instances.add(e)}function te(e,t,n=null){let r=f=>({ok:!1,code:f});if(!k||p&&!p.admitted)return r("not-editable");let i=document;if(!e||e.nodeType!==1||!e.isConnected||e.ownerDocument!==i)return r("detached");let s=e.parentElement;if(!s||!s.isConnected||!t||t.nodeType!==1||!t.isConnected||t.ownerDocument!==i)return r("detached");if(!s.hasAttribute("sortable")||!M(s,e)||!t.hasAttribute("sortable")||!B(t,e)||e===t||e.contains(t))return r("item");if(s!==t){let f=s.getAttribute("sortable");if(!f||f!==t.getAttribute("sortable"))return r("group")}if(n===e)return{ok:!0,moved:!1};if(n!==null&&!M(t,n))return r("anchor");if(s===t&&ee(s,e)===n)return{ok:!0,moved:!1};let a=P(s,e),S=E(e);x(S);let c;try{t.insertBefore(e,n),c={item:e,from:s,to:t,oldIndex:a,newIndex:P(t,e)},I(S,c)}finally{g(S)}return V(c,s.getAttribute("onsorted")),{ok:!0,moved:!0,...c}}function ne(){return h||(h=import("../vendor/Sortable.vendor-A755ITLN.js").then(e=>window.Sortable||e.default),h.catch(()=>{h=null})),h}function re(){return A||(R((e,{original:t})=>{for(let r of e.querySelectorAll("[sortable] .sortable-chosen, [sortable] .sortable-ghost, [sortable] .sortable-drag"))r.classList.remove("sortable-chosen","sortable-ghost","sortable-drag"),r.classList.length||r.removeAttribute("class");if(!y.size)return;let n=new Map;for(let r of y)for(let[i,s]of r)n.set(i,s);for(let r of e.querySelectorAll("[sortable] *")){let i=n.get(t(r));i&&q.forEach((s,a)=>{i[a]===null?r.removeAttribute(s):r.setAttribute(s,i[a])})}}),A=!0,A)}function se(e){return{enable(){if(!e.admitted){e.admitted=!0;for(let t of e.root.querySelectorAll("[sortable]"))j(t,e.Sortable,e);e.stop=F.onAddElement({selectorFilter:"[sortable]",debounce:200,require:"observed",pausable:!1},t=>{e.admitted&&t.forEach(({element:n})=>{j(n,e.Sortable,e)})})}},quiesce(){e.admitted=!1},resume(){e.admitted=!0},dispose(){e.admitted=!1,e.stop&&(e.stop(),e.stop=null);for(let t of[...e.listeners])z(e,t);for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.presses)y.delete(t);e.presses.clear(),$();for(let t of e.instances)e.Sortable?.get?.(t)?.destroy?.();e.instances.clear(),p===e&&(p=null)}}}var oe=e=>e?e.signal?.aborted?!0:typeof e.isCurrent=="function"&&!e.isCurrent():!1;function le(e=document){return{id:"clay:sortable",order:300,async prepare(t={}){if(t.initial===!0)return ie();let n=await ne();if(oe(t))throw Object.assign(new Error("clay:sortable prepared for a stale generation"),{code:"stale-document"});return re(),se(p||(p=X(n,e)))}}}async function ie(){let e=await ae;return{enable(){},quiesce:()=>e?.quiesce(),resume:()=>e?.resume(),dispose:()=>e?.dispose()}}async function G(){if(!D())return null;let e=await le().prepare();return e.enable(),e}var ae=G(),me=Object.freeze({move:te});var be=G;export{be as default,G as init,j as makeSortable,le as modeParticipant,te as move,ae as ready,me as sortable,le as sortableParticipant};
@@ -1 +0,0 @@
1
- import{g as p}from"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import"../c-DCXOXBF3.js";import"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import{j as d}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-SPIORRYS.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 g={installed:!1,refused:null,sourceBytes:null,paired:0,unresolved:0,unmatchedLive:0,unmatchedSource:0,attrDiffs:0,saves:0,reprints:0,lastReprint:null,partialReprints:0,lastPartialReprint:null,lastRenderMs:null,lastBytes:null,refreshes:0,timing:{fetch:null,model:null,pair:null,refresh:null}},l=null,c=null,i=null,u=d(),s=0,r=null,a=!1,o=null;function v(){return o??=import("../c-ZVPVXTJF.js").catch(e=>{throw o=null,e}),o}function f(e,t,n){typeof e=="string"&&(i=Object.freeze({bytes:e,etag:t??null,seq:n??null}))}function h(){if(r)return r;let e=s,t=c;return r=v().then(n=>(l=n,e!==s?(r=null,null):n.start({context:t,latest:()=>i}))).catch(n=>(r=null,console.info("clayjs: source map off ("+(n&&n.message?n.message:n)+"); saves use the full serialization"),null)).then(n=>(e===s&&(a=!0),n)),r}function x(){return!u||a?null:h()}function m(){s++,u=!1,a=!1,r=null,c=null,l&&l.release()}p((e,t)=>{f(e,i?i.etag:null,i?i.seq:null),l&&!l.installed()&&l.adoptAccepted(e,t)});document.addEventListener("clay:sync-applied",e=>{let t=e&&e.detail;!t||t.source!=="disk"||typeof t.html!="string"||(f(t.html,t.etag,t.seq),l&&!l.installed()&&l.adoptAccepted(t.html,null))});function y(e,t,n={}){return l?l.renderSave(e,t,n):t}var A={get ready(){return u?h():null},stats:()=>l?l.stats():{...g},text:()=>l?l.text():null,locate:e=>l?l.locateLive(e):null,unpaired:()=>l?l.unpaired():null,ensureForSave:x};function L(){return{id:"clay:source",order:30,prepare(e={}){let t=e&&e.represented;if(t&&(c={represented:t},f(t.bytes,t.etag,t.seq)),e&&e.initial===!0)return u=!0,{enable(){},quiesce(){},resume(){},dispose:m};let n=++s;return u=!1,a=!1,r=null,{enable(){n===s&&(u=!0)},quiesce(){},resume(){n===s&&(u=!0)},dispose(){n===s&&m()}}}}}var R=A;export{R as default,L as modeParticipant,y as renderSave,A as source,L as sourceParticipant};
@@ -1 +0,0 @@
1
- import{b as Ge,c as Ye}from"../c-7DJDKPGL.js";import{g as te}from"../c-QJ4OM3G6.js";import{a as ee}from"../c-WYFDLITL.js";import"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.js";import{j as Fe}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{a as Xe}from"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import{l as Je}from"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ze=(()=>{var d=Object.defineProperty,c=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,w=Object.prototype.hasOwnProperty,N=(e,r)=>{for(var t in r)d(e,t,{get:r[t],enumerable:!0})},B=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of b(r))!w.call(e,i)&&i!==t&&d(e,i,{get:()=>r[i],enumerable:!(n=c(r,i))||n.enumerable});return e},F=e=>B(d({},"__esModule",{value:!0}),e),C={};N(C,{default:()=>Ht,undo:()=>de});function X(e,r=null){let t=[];if(e.type==="attributes"){let n=e.target,i=e.attributeName,a=e.oldValue,l=n.getAttribute(i);return a==null&&l!=null?t.push({kind:"attr-add",target:n,name:i,newValue:l}):a!=null&&l==null?t.push({kind:"attr-remove",target:n,name:i,oldValue:a}):a!==l&&t.push({kind:"attr-set",target:n,name:i,oldValue:a,newValue:l}),t}if(e.type==="characterData")return t.push({kind:"text",target:e.target,oldValue:e.oldValue,newValue:e.target.data}),t;if(e.type==="childList"){let n=e.target,i=e.nextSibling,a=e.nextSibling;for(;a&&r?.(a);)a=a.nextSibling;let l=e.previousSibling;for(;l&&r?.(l);)l=l.previousSibling;let s=r?Array.from(e.addedNodes).filter(v=>!r(v)):Array.from(e.addedNodes),m=r?Array.from(e.removedNodes).filter(v=>!r(v)):Array.from(e.removedNodes);return s.length>0&&t.push({kind:"add",parent:n,nodes:s,before:i,afterAuthored:a,beforeAuthored:l,record:e}),m.length>0&&t.push({kind:"remove",parent:n,nodes:m,before:i,afterAuthored:a,beforeAuthored:l,record:e}),t}return t}function it(e,r=null){let t=[],n=new Map;for(let i of e){if(i.type==="attributes"){let a=i.target,l=i.attributeName,s=n.get(a);s||(s=new Map,n.set(a,s)),s.has(l)||(s.set(l,{idx:t.length,oldValue:i.oldValue}),t.push(null));continue}for(let a of X(i,r))t.push(a)}for(let[i,a]of n)for(let[l,s]of a){let m=s.oldValue,v=i.getAttribute(l),h=null;m===v?h=null:m==null?h={kind:"attr-add",target:i,name:l,newValue:v}:v==null?h={kind:"attr-remove",target:i,name:l,oldValue:m}:h={kind:"attr-set",target:i,name:l,oldValue:m,newValue:v},t[s.idx]=h}return t.filter(i=>i!=null)}function at(e){let r=[],t=new Map;for(let i of e){let a=be(i);if(a==null){r.push(i);continue}let l=t.get(i.target);l||(l=new Map,t.set(i.target,l));let s=l.get(a);if(s==null){let m=ve(i);if(m.oldValue===m.newValue)continue;l.set(a,r.length),r.push({...i,...m})}else r[s]={...r[s],newValue:ve(i).newValue}}let n=[];for(let i of r){if(be(i)==null){n.push(i);continue}i.oldValue!==i.newValue&&n.push(lt(i))}return n}var ut=new Set(["attr-set","attr-add","attr-remove","text","value"]);function be(e){return ut.has(e.kind)?e.kind==="text"?"#text":e.kind==="value"?`#${e.prop||"value"}`:e.name==null?null:`@${e.name}`:null}function ve(e){return e.kind==="attr-add"?{oldValue:null,newValue:e.newValue}:e.kind==="attr-remove"?{oldValue:e.oldValue,newValue:null}:{oldValue:e.oldValue,newValue:e.newValue}}function lt(e){return e.kind!=="attr-add"&&e.kind!=="attr-remove"?e:e.oldValue==null&&e.newValue!=null?{...e,kind:"attr-add"}:e.oldValue!=null&&e.newValue==null?{...e,kind:"attr-remove"}:{...e,kind:"attr-set"}}var ke=new WeakMap,dt=0;function O(e){let r=ke.get(e);return r||(r=`n${++dt}`,ke.set(e,r)),r}function x(e){return!!e&&typeof e=="object"&&typeof e.nodeType=="number"}function st(e){return e.kind==="add"||e.kind==="remove"}function Ae(e,r){let t=[],n=e.childNodes;if(!n)return t;for(let i of n)r&&r(i)||t.push(O(i));return t}function W(e,r,t=null,n=null){if(!x(e))return null;if(e.nodeType===3)return`#text:${JSON.stringify(e.data)}`;if(e.nodeType===8)return`#comment:${JSON.stringify(e.data)}`;if(e.nodeType!==1)return`#node:${e.nodeType}`;let i=[];if(e.attributes){for(let l of e.attributes)ct(l.name,e,r,t)||i.push(`${l.name}=${JSON.stringify(l.value)}`);i.sort()}let a=[];if(e.childNodes)for(let l of e.childNodes)ft(l,n)||a.push(W(l,r,t,n));return`<${String(e.tagName||"").toLowerCase()}${i.length?` ${i.join(" ")}`:""}>${a.join("")}</>`}function ne(e,r=[]){if(!x(e))return r;if(e.nodeType===1){let t=e.getAttribute&&e.getAttribute("data-id");t&&r.push(t)}if(e.childNodes)for(let t of e.childNodes)ne(t,r);return r}function ct(e,r,t,n=null){if(typeof t!="function")return!1;try{return!!t(e,r,n)}catch{return!1}}function ft(e,r){if(typeof r!="function")return!1;try{return!!r(e)}catch{return!1}}function Ee(e,r){if(typeof r!="function")return[];let t=[],n=i=>{if(!x(i))return;let a=!1;try{a=!!r(i)}catch{a=!1}if(a&&t.push(R(i,"protected")),i.childNodes)for(let l of i.childNodes)n(l)};for(let i of e)n(i);return t}function R(e,r,t=null){let n=e;n&&n.nodeType!==1&&(n=n.parentElement);let i=n&&typeof n.closest=="function"?n.closest("[data-id]"):null;return!i&&t&&typeof t.closest=="function"&&(i=t.closest("[data-id]")),{id:(i?i.getAttribute("data-id"):null)||null,kind:r||null}}function pt(e,r,t=null){return(e||[]).filter(x).map(n=>R(n,r,t))}function H(e){return{replayable:!1,reason:e,steps:[]}}function G(e,r){let t=[[r.afterAuthored,i=>i],[r.beforeAuthored,i=>i+1],[r.before,i=>i]],n=!1;for(let[i,a]of t){if(!x(i))continue;n=!0;let l=e.indexOf(O(i));if(l>=0)return a(l)}return n?null:e.length}function mt(e,r={}){let t=r.isIgnored||null,n=r.ignoreAttribute||null,i=at(e),a=[];for(let h of i){if(!st(h)){if(!x(h.target))return H("non-dom-target");continue}if(!x(h.parent))return H("non-dom-parent");let k=Array.from(h.nodes||[]).filter(x);if(k.length!==0){if(k.length!==Array.from(h.nodes||[]).length)return H("non-dom-node");a.push({primitive:h,nodes:k,parent:h.parent})}}if(gt(a))return H("in-record-move");let l=ht(a,t);if(!l)return H("ambiguous-structure");let s=yt(a,l),m=new Map(a.map(h=>[h.primitive,h])),v=[];for(let h of i){let k=m.get(h);if(!k){v.push(bt(h));continue}let V=s.get(k);if(V){V.at===k&&v.push(V.step);continue}v.push(wt(k,l.get(k),n,t))}return{replayable:!0,reason:null,steps:v}}function gt(e){let r=new Map;for(let t of e){let n=t.primitive.record;if(!n)continue;let i=r.get(n);i||(i=new Map,r.set(n,i));for(let a of t.nodes){let l=i.get(a);l||(l=new Set,i.set(a,l)),l.add(t.primitive.kind)}}for(let t of r.values())for(let n of t.values())if(n.size>1)return!0;return!1}function ht(e,r){let t=new Map;for(let i of e)t.has(i.parent)||t.set(i.parent,Ae(i.parent,r));let n=new Map;for(let i=e.length-1;i>=0;i--){let a=e[i],l=t.get(a.parent);if(!l)return null;let s=l.slice(),m;if(a.primitive.kind==="add"){let v=a.nodes.map(O);if(!v.every(h=>l.includes(h)))return null;m=l.filter(h=>!v.includes(h))}else{let v=G(s,a.primitive);if(v==null)return null;m=s.slice(),m.splice(v,0,...a.nodes.map(O))}n.set(a,{before:m,after:s}),t.set(a.parent,m)}return n}function yt(e,r){let t=new Map,n=new Map;e.forEach((a,l)=>{for(let s of a.nodes){let m=O(s);a.primitive.kind==="remove"?t.set(m,{item:a,index:l,node:s}):n.set(m,{item:a,index:l,node:s})}});let i=new Map;for(let[a,l]of t){let s=n.get(a);if(!s||s.index<l.index||l.item.nodes.length!==1||s.item.nodes.length!==1)continue;let m={type:"move",node:l.node,sourceParent:l.item.parent,destParent:s.item.parent,source:r.get(l.item),dest:r.get(s.item),sourceSlot:l.item.primitive,destSlot:s.item.primitive,targets:[R(l.node,"move")]};i.set(l.item,{step:m,at:s.item}),i.set(s.item,{step:m,at:s.item})}return i}function wt(e,r,t,n){let i=e.primitive.kind;return{type:i==="add"?"add":"restore",parent:e.parent,nodes:e.nodes,seqBefore:r.before,seqAfter:r.after,slot:e.primitive,content:e.nodes.map(a=>W(a,t,e.parent,n)),ids:i==="remove"?e.nodes.flatMap(a=>ne(a)):[],targets:pt(e.nodes,i==="add"?"added":"removed",e.parent)}}function bt(e){return{type:e.kind,primitive:e,targets:[R(e.target,e.name||e.prop||"text")]}}function vt(e,r,t={}){if(!e||!e.replayable)return{ok:!1,code:"unsupported",targets:[]};let n={isIgnored:t.isIgnored||null,ignoreAttribute:t.ignoreAttribute||null,isProtected:t.isProtected||null,inScope:t.inScope||(()=>!0),liveNodesWithIds:t.liveNodesWithIds||(()=>[]),sim:new Map,planned:new Map,operations:[]};for(let i=0;i<e.steps.length;i++){let a=e.steps[r==="undo"?e.steps.length-1-i:i],l=At(a,r,n);if(l)return{ok:!1,code:l.code,targets:l.targets}}return{ok:!0,operations:n.operations}}function q(e,r){return e.sim.has(r)||e.sim.set(r,Ae(r,e.isIgnored)),e.sim.get(r)}function Ve(e,r){for(let t=e;t;t=t.parentNode)if(r.planned.has(t))return r.planned.get(t);return r.inScope(e)}function Ne(e,r){return r.liveNodesWithIds(e).filter(t=>Ve(t,r)).length>0}function E(e,r){return{code:e,targets:r||[]}}function kt(e){return e.kind==="text"?e.target.data:e.kind==="value"?typeof e.read=="function"?e.read(e.target):e.target[e.prop||"value"]:e.target.getAttribute(e.name)}function At(e,r,t){let n=r==="undo";return e.type==="move"?Pt(e,n,t):e.type==="add"?Vt(e,n,t):e.type==="restore"?Nt(e,n,t):Et(e,n,t)}function Et(e,r,t){let n=e.primitive,i=r?n.newValue:n.oldValue,a=r?n.oldValue:n.newValue;return x(n.target)?Ve(n.target,t)?n.kind==="value"&&typeof n.write=="function"&&typeof n.read!="function"?E("unsupported",e.targets):kt(n)!==i?E("content-changed",e.targets):(n.kind==="value"?t.operations.push({type:"value",target:n.target,prop:n.prop||"value",value:a,read:n.read||null,write:n.write||null}):n.kind==="text"?t.operations.push({type:"text",target:n.target,data:a}):t.operations.push({type:"attr",target:n.target,name:n.name,value:a??null}),null):E("target-detached",e.targets):E("unsupported",e.targets)}function Vt(e,r,t){if(!x(e.parent)||!t.inScope(e.parent))return E("target-detached",e.targets);if(r){if(!$(q(t,e.parent),e.seqAfter))return E("structure-changed",e.targets);let s=Ee(e.nodes,t.isProtected);if(s.length>0)return E("protected",s);for(let m=0;m<e.nodes.length;m++)if(W(e.nodes[m],t.ignoreAttribute,e.parent,t.isIgnored)!==e.content[m])return E("content-changed",e.targets);for(let m of e.nodes)t.operations.push({type:"remove",node:m}),t.planned.set(m,!1);return t.sim.set(e.parent,e.seqBefore.slice()),null}if(!$(q(t,e.parent),e.seqBefore))return E("structure-changed",e.targets);for(let s of e.nodes)if(s.parentNode)return E("structure-changed",e.targets);let n=e.nodes.flatMap(s=>ne(s));if(n.length>0&&Ne(n,t))return E("duplicate-id",e.targets);let i=G(e.seqBefore,e.slot);if(i==null)return E("unsupported",e.targets);let a=e.seqBefore.slice(),l=i;for(let s of e.nodes)t.operations.push({type:"insert",parent:e.parent,node:s,beforeId:a[l]??null}),a=a.slice(0,l).concat(O(s),a.slice(l)),l+=1,t.planned.set(s,!0);return t.sim.set(e.parent,e.seqAfter.slice()),null}function Nt(e,r,t){if(!x(e.parent)||!t.inScope(e.parent))return E("target-detached",e.targets);if(r){if(!$(q(t,e.parent),e.seqAfter))return E("structure-changed",e.targets);for(let s=0;s<e.nodes.length;s++){let m=e.nodes[s];if(m.parentNode||W(m,t.ignoreAttribute,e.parent,t.isIgnored)!==e.content[s])return E("content-changed",e.targets)}if(e.ids.length>0&&Ne(e.ids,t))return E("duplicate-id",e.targets);let i=G(e.seqAfter,e.slot);if(i==null)return E("unsupported",e.targets);let a=e.seqAfter.slice(),l=i;for(let s of e.nodes)t.operations.push({type:"insert",parent:e.parent,node:s,beforeId:a[l]??null}),a=a.slice(0,l).concat(O(s),a.slice(l)),l+=1,t.planned.set(s,!0);return t.sim.set(e.parent,e.seqBefore.slice()),null}if(!$(q(t,e.parent),e.seqBefore))return E("structure-changed",e.targets);let n=Ee(e.nodes,t.isProtected);if(n.length>0)return E("protected",n);for(let i=0;i<e.nodes.length;i++){let a=e.nodes[i];if(a.parentNode!==e.parent||W(a,t.ignoreAttribute,e.parent,t.isIgnored)!==e.content[i])return E("content-changed",e.targets)}for(let i of e.nodes)t.operations.push({type:"remove",node:i}),t.planned.set(i,!1);return t.sim.set(e.parent,e.seqAfter.slice()),null}function xt(e,r){let t=e.indexOf(r);return t<0?null:e.slice(0,t).concat(e.slice(t+1))}function Pt(e,r,t){let n=O(e.node),i=r?e.destParent:e.sourceParent,a=r?e.sourceParent:e.destParent,l=q(t,i),s=q(t,a),m=r?e.dest.after:e.source.before,v=r?e.source.after:e.dest.before,h=r?e.sourceSlot:e.destSlot;if(!x(i)||!x(a)||!t.inScope(i)||!t.inScope(a))return E("target-detached",e.targets);if(!$(l,m))return E("structure-changed",e.targets);let k=i===a?xt(s,n):s;if(!$(k,v))return E("structure-changed",e.targets);let V=G(v,h);return V==null?E("unsupported",e.targets):(t.operations.push({type:"insert",parent:a,node:e.node,beforeId:v[V]??null}),t.planned.set(e.node,!0),r?(t.sim.set(a,e.source.before.slice()),i!==a&&t.sim.set(i,e.dest.before.slice())):(t.sim.set(a,e.dest.after.slice()),i!==a&&t.sim.set(i,e.source.after.slice())),null)}function $(e,r){if(!e||!r||e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==r[t])return!1;return!0}function St(e,r){for(let t of e.childNodes||[])if(O(t)===r)return t;return null}function xe(e,r){typeof e.write=="function"?e.write(e.target,r):e.target[e.prop]=r}function It(e){let r=[];try{for(let t of e)Rt(t,r);return{ok:!0}}catch(t){for(let n=r.length-1;n>=0;n--)try{r[n]()}catch{}return{ok:!1,error:t}}}function Rt(e,r){if(e.type==="attr"){let t=e.target.getAttribute(e.name);e.value==null?e.target.removeAttribute(e.name):e.target.setAttribute(e.name,e.value),r.push(()=>{t==null?e.target.removeAttribute(e.name):e.target.setAttribute(e.name,t)});return}if(e.type==="text"){let t=e.target.data;e.target.data=e.data,r.push(()=>{e.target.data=t});return}if(e.type==="value"){let t=typeof e.read=="function"?e.read(e.target):e.target[e.prop];xe(e,e.value),r.push(()=>xe(e,t));return}if(e.type==="insert"){let t=e.beforeId==null?null:St(e.parent,e.beforeId);if(e.beforeId!=null&&!t)throw new Error("hyper-undo: replay anchor vanished");let n=e.node.parentNode,i=e.node.nextSibling;e.parent.insertBefore(e.node,t),r.push(()=>{n?n.insertBefore(e.node,i&&i.parentNode===n?i:null):e.node.parentNode===e.parent&&e.parent.removeChild(e.node)});return}if(e.type==="remove"){let t=e.node.parentNode;if(!t)throw new Error("hyper-undo: replay target is no longer attached");let n=e.node.nextSibling;t.removeChild(e.node),r.push(()=>t.insertBefore(e.node,n))}}var Ct=['[src^="chrome-extension://"]','[href^="chrome-extension://"]','[src^="moz-extension://"]','[href^="moz-extension://"]','[src^="safari-web-extension://"]','[href^="safari-web-extension://"]','[id="1p-menu-live-region"]',"com-1password-button","com-1password-menu","com-1password-notification","grammarly-extension","grammarly-desktop-integration","lt-div","lt-card","lt-toolbar","lt-highlighter","[data-lastpass-root]","[data-lastpass-icon-root]","[data-dashlane-shadowhost]","[data-klarna-extension]",'[class*="klarna-extension"]',".skiptranslate","#goog-gt-tt",".goog-te-banner-frame",".goog-te-balloon-frame","style.darkreader","style[data-darkreader-mode]","style[data-darkreader-scheme]","#loom-companion-mv3","loom-container","[ext-id]"],Ot=["data-grammarly","data-lt","data-1p","data-com-onepassword","data-lastpass","data-lp","data-kwimpala","data-bitwarden","data-bw","data-dashlane","data-np","data-protonpass","data-proton-pass","data-keeper","data-rf","data-roboform","data-honey","data-rakuten","data-capital-one","data-wikibuy","data-klarna","data-darkreader","data-evernote","data-pocket","data-pin"],Mt=Ct.join(","),Tt=new RegExp("^(?:"+Ot.join("|")+")(?:-|$)"),$r=Object.freeze({data:Object.freeze({tokens:["no-data"],bundles:["editor-ui"]}),save:Object.freeze({tokens:["no-save"],bundles:["editor-ui"]}),snapshot:Object.freeze({tokens:["no-snapshot"],bundles:["editor-ui"]}),watch:Object.freeze({tokens:["no-watch"],bundles:["editor-ui"]}),undo:Object.freeze({tokens:["no-undo"],bundles:["editor-ui"]}),history:Object.freeze({tokens:[],bundles:["editor-ui"]})}),jt=Object.freeze({"editor-ui":Object.freeze(["no-data","no-save","no-snapshot","no-watch","no-undo"])}),qt=Object.freeze(["no-save","no-snapshot","no-trigger-autosave","no-dirty","no-watch","no-undo","no-data","freeze","editor-ui","live"]);function oe(e,r){if(!e||e.nodeType!==1)return!1;let t=e.getAttribute?.("clay");return!!(t&&t.split(/\s+/).includes(r)||e.hasAttribute?.(r))}function Pe(e,r){if(oe(e,r))return!0;for(let[t,n]of Object.entries(jt))if(n.includes(r)&&oe(e,t))return!0;return!1}function $t(e){return e==="clay"||qt.includes(e)}var Lt=["mutations-ignore","save-remove","save-ignore","save-freeze","no-undo","no-watch"];function Kt(){if(typeof window>"u")return null;let e=window.clay?.region||window.hyperclay?.region;return e&&typeof e.resolveRegionPolicy=="function"?e.resolveRegionPolicy:null}function ie(e){let r=Kt();if(r)try{if(!r(e).undoable)return!0}catch{}let t=e&&e.nodeType!==1?e.parentElement:e;if(t&&t.closest&&t.closest(Mt))return!0;for(;t&&t.nodeType===1;){if(Pe(t,"no-undo")||Pe(t,"no-watch"))return!0;for(let n of Lt)if(oe(t,n))return!0;t=t.parentElement}return!1}function zt(e){let r=e.target,t=r.cloneNode(!1),n=t;for(;r.parentElement;){r=r.parentElement;let i=r.cloneNode(!1);i.appendChild(t),t=i}return e.oldValue==null?n.removeAttribute(e.attributeName):n.setAttribute(e.attributeName,e.oldValue),ie(n)}function ae(e,r,t){if(t?.type==="attributes"&&$t(t.attributeName)){if(ie(e)&&zt(t))return!0}else if(ie(e))return!0;if(t&&t.type==="attributes"){if(t.attributeName&&Tt.test(t.attributeName.toLowerCase()))return!0;if(r)try{if(r(t.attributeName,t.target))return!0}catch{}}return!1}function Dt(){let e=new Map;function r(i,a){let l=e.get(i);return l||(l=new Set,e.set(i,l)),l.add(a),()=>t(i,a)}function t(i,a){let l=e.get(i);l&&l.delete(a)}function n(i,a){let l=e.get(i);if(l)for(let s of Array.from(l))try{s(a)}catch(m){console.error("[hyper-undo] listener threw",m)}}return{on:r,off:t,emit:n}}var _t={maxHistory:100,idleWindowMs:500,idleLabel:"Edit",recording:"automatic",ignoreAttribute:null,isProtected:null,ignoreNode:null,debug:!1};function Se(e){let r={..._t,...e};if(!r.scope)throw new Error("hyper-undo: scope is required");let t=Dt(),n=[],i=[],a=`u${Math.random().toString(36).slice(2,8)}`,l=0,s=null,m=[],v=null,h=null,k=0,V=!1,L=r.recording==="commands"?"commands":"automatic",S=null,K=!1;function P(...o){r.debug&&console.log("[hyper-undo]",...o)}function Jt(){V||(V=!0,h=Ft(z),h.observe(r.scope,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0}),P("started"))}function Ft(o){let u=typeof document<"u"&&r.scope===document.body,f=typeof window<"u"&&(window.clay?.Mutation||window.hyperclay?.Mutation)||null;return u&&f&&typeof f.createObserver=="function"?(P("sourcing records from the platform Mutation hub (shared observer)"),f.createObserver(o)):new MutationObserver(o)}function Oe(){V&&(V=!1,h&&(h.disconnect(),h=null),D(),n.length=0,i.length=0,m=[],s=null,S=null,K=!1,k=0,P("stopped"))}function Xt(){let o=r.scope;return!!(o&&o.nodeType===1&&o.isConnected===!1)}function z(o){Me(o,!1)}function Me(o,u){if(S){for(let g of o)S.records.push(g);return}if(L==="commands"||k>0)return;let f=se(Gt(o),u);if(f.length>0){for(let g of f)m.push(g);Te()}}function Gt(o){return typeof r.ignoreNode!="function"?o:o.filter(u=>{if(u.type!=="childList")return!0;let f=[...u.addedNodes,...u.removedNodes];return f.length===0?!0:!f.every(g=>Yt(g))})}function Yt(o){try{return!!r.ignoreNode(o)}catch{return!1}}function se(o,u=!1){let f=o.filter(g=>(mr(g.target)||u&&He(g.target))&&!ae(g.target,r.ignoreAttribute,g));return it(f,g=>ae(g,r.ignoreAttribute))}function Te(){D(),v=setTimeout(je,r.idleWindowMs)}function D(){v!=null&&(clearTimeout(v),v=null)}function je(){if(v=null,m.length===0)return;let o=m;m=[],Y(r.idleLabel,o)}function Y(o,u){let f=mt(u,{isIgnored:ce,ignoreAttribute:qe});if(f.steps.length===0)return P("commit",o,"with nothing to record"),t.emit("commit"),null;let g={id:`${a}-${++l}`,label:o,timestamp:Date.now(),primitives:u,certificate:f};for(n.push(g),i.length=0,s=null;n.length>r.maxHistory;)n.shift();return P("commit",o,"primitives:",u.length),t.emit("commit"),g}function ce(o){return ae(o,r.ignoreAttribute)}function qe(o,u,f=null){if(typeof r.ignoreAttribute!="function")return!1;try{return!!r.ignoreAttribute(o,u,f)}catch{return!1}}function Zt(o){if(typeof r.isProtected!="function")return!1;try{return!!r.isProtected(o)}catch{return!1}}function Qt(o,u){if(!V)throw new Error("hyper-undo: scope not started");if(L==="commands")return Ke(o,u,{honorPause:!0,receipt:!1});z(h.takeRecords()),_();let f=k===0?$e():null,g=u();if(g&&typeof g.then=="function")throw new Error("hyper-undo: commit() fn must be synchronous; returned a Promise");if(Me(h.takeRecords(),!0),f!=null&&Le(f),m.length===0){t.emit("commit");return}D();let A=m;m=[],Y(o,A)}function er(o){if(!V)throw new Error("hyper-undo: scope not started");if(!h)return;if(k>1){h.takeRecords();return}_();let u=se(h.takeRecords(),!0);u.length!==0&&(D(),Y(o,u))}function tr(){h&&h.takeRecords()}function fe(){let o=r.scope;return o&&o.ownerDocument||(typeof document<"u"?document:null)}function Z(){let o=fe();return!o||!o.head||typeof o.head.querySelector!="function"?null:o.head.querySelector("title")}function $e(){let o=Z();return o?o.textContent:null}function Le(o){let u=Z();if(!u||o==null)return;let f=u.textContent;f!==o&&De({kind:"value",target:u,prop:"textContent",oldValue:o,newValue:f})}function rr(o){if(!o)return null;let u=fe();if(!u||o.target!==u||o.prop!=="title")return o;let f=Z();return f?{kind:"value",target:f,prop:"textContent",oldValue:o.oldValue,newValue:o.newValue}:null}function nr(){if(typeof window>"u")return!1;let o=window.clay?.effect||window.hyperclay?.effect;return!!(o&&o.running)}function or(){h&&z(h.takeRecords()),_(),S={records:[],primitives:[]}}function ir(){let o=S;if(S=null,!o)return[];let u=se(o.records,!0);for(let f of o.primitives)u.push(f);return u}function Ke(o,u,{honorPause:f,receipt:g}){if(typeof u!="function")throw new Error("hyper-undo: command() needs a synchronous function");if(S)throw new Error("hyper-undo: command() cannot nest inside another command");if(K)throw new Error("hyper-undo: command() cannot run during undo or redo");if(nr())throw new Error("hyper-undo: command() cannot run inside a derived-effect context");if(u.constructor&&u.constructor.name==="AsyncFunction")throw new Error("hyper-undo: command() fn must be synchronous; it was declared async");let A=f&&k>0,I=A?null:$e();or();let M=[],j=null,U;try{try{U=u()}catch(wr){j=wr}if(h&&z(h.takeRecords()),U&&typeof U.then=="function"){try{U.then(void 0,()=>{})}catch{}j||(j=new Error("hyper-undo: command() fn must be synchronous; returned a Promise"))}A||Le(I)}finally{M=ir()}let Q=A||M.length===0?null:Y(o,M);if(j)throw j;return g?Q?{id:Q.id,label:Q.label}:null:Q}function ar(o,u){if(!V)throw new Error("hyper-undo: scope not started");return Ke(o,u,{honorPause:!1,receipt:!0})}function ur(o){if(o!=="automatic"&&o!=="commands")throw new Error("hyper-undo: setRecording() takes 'automatic' or 'commands'");if(S)throw new Error("hyper-undo: setRecording() cannot change while a command is running");return L===o||(_(),L=o,P("recording",o)),L}function ze(o){if(!V||!o||!S&&(k>0||L==="commands"))return;let u=rr(o);u&&De(u)}function De(o){if(S){S.primitives.push(o);return}m.push(o),Te()}function lr(o,{prop:u="value",oldValue:f,newValue:g,read:A,write:I}={}){!o||f===g||ze({kind:"value",target:o,prop:u,oldValue:f,newValue:g,read:A,write:I})}function _(){k===0&&h&&z(h.takeRecords()),m.length!==0&&(D(),je())}function _e(){k===0&&h&&z(h.takeRecords()),k++,P("paused",k)}function Ue(){k!==0&&(k--,k===0&&h&&h.takeRecords(),P("resumed",k))}function Be(o,u){if(Xt())return Oe(),{ok:!1,code:"disconnected"};_();let f=o==="undo"?n:i,g=o==="undo"?i:n,A=f.at(-1);if(!A)return{ok:!1,code:"empty"};if(u&&u!==A.id){let U=We(u)||A;return pe(U,o,"stale-entry")}let I;K=!0;try{I=vt(A.certificate,o,{isIgnored:ce,ignoreAttribute:qe,isProtected:Zt,inScope:gr,liveNodesWithIds:hr})}finally{K=!1}if(!I.ok)return pe(A,o,I.code,I.targets);_e();let M;K=!0;try{M=It(I.operations)}finally{K=!1,Ue()}if(!M.ok)return P(`${o} failed and was rolled back`,M.error),pe(A,o,"replay-error");f.pop(),g.push(A),s=null;let j={ok:!0,entryId:A.id,label:A.label,direction:o};return P(o,A.label),t.emit(o,j),j}function dr(o){return Be("undo",o&&o.entryId)}function sr(o){return Be("redo",o&&o.entryId)}function We(o){return n.find(u=>u.id===o)||i.find(u=>u.id===o)||null}function pe(o,u,f,g=[]){return s={entryId:o.id,direction:u,code:f,targets:g},P("refused",u,f),t.emit("refused",{entryId:o.id,label:o.label,direction:u,code:f,targets:g}),{ok:!1,code:f,entryId:o.id,label:o.label,direction:u}}function cr(o){if(!s||s.entryId!==o)return{ok:!1,code:"not-refused",entryId:o};let u=s.direction,f=u==="undo"?n:i,g=f.at(-1);return!g||g.id!==o?{ok:!1,code:"stale-entry",entryId:o}:(f.pop(),s=null,P("discarded",g.label),t.emit("discard",{entryId:o,label:g.label,direction:u}),{ok:!0,entryId:o,direction:u})}function fr(o){let u=We(o);if(!u||!u.certificate||!u.certificate.replayable)return null;let f=s&&s.entryId===u.id?{direction:s.direction,code:s.code,targets:(s.targets||[]).map(g=>({id:g.id??null,kind:g.kind??null}))}:null;return{id:u.id,label:u.label,timestamp:u.timestamp,refused:f,steps:u.certificate.steps.map(pr)}}function pr(o){if(o.type==="move")return{kind:"move",node:{id:R(o.node).id},from:{id:R(o.sourceParent).id},to:{id:R(o.destParent).id}};if(o.type==="add"||o.type==="restore")return{kind:o.type==="add"?"add":"remove",parent:{id:R(o.parent).id},nodes:o.nodes.map((I,M)=>({id:R(I).id,html:o.content[M]??null}))};let u=o.primitive,f={id:R(u.target).id},g=u.oldValue??null,A=u.newValue??null;return o.type==="value"?{kind:"value",target:f,prop:u.prop??"value",before:g,after:A}:o.type==="text"?{kind:"text",target:f,before:g,after:A}:o.type==="attr-set"||o.type==="attr-add"||o.type==="attr-remove"?{kind:"attribute",target:f,name:u.name??null,before:g,after:A}:{kind:o.type,target:f,before:g,after:A}}function mr(o){let u=r.scope;return!u||!o?!1:o===u||typeof u.contains=="function"&&u.contains(o)}function He(o){let u=fe(),f=u&&u.head;if(!f||!o)return!1;let g=o.nodeType===1?o:o.parentElement;for(;g&&g!==f;g=g.parentElement)if(g.localName==="title")return!1;return g===f}function gr(o){let u=r.scope;return!o||!u?!1:o===u||Z()===o||He(o)?!0:typeof u.contains=="function"?u.contains(o):!1}function hr(o){let u=r.scope;if(!o||o.length===0||typeof u?.querySelectorAll!="function")return[];let f=new Set(o),g=[];for(let A of u.querySelectorAll("[data-id]"))f.has(A.getAttribute("data-id"))&&(ce(A)||g.push(A));return g}function yr(){h&&h.takeRecords(),n.length=0,i.length=0,m=[],s=null,D(),P("cleared"),t.emit("clear")}return{_config:r,start:Jt,stop:Oe,commit:Qt,commitCaptured:er,discardCaptured:tr,flush:_,command:ar,setRecording:ur,record:ze,recordValue:lr,undo:dr,redo:sr,clear:yr,discard:cr,describe:fr,pause:_e,resume:Ue,on:t.on,off:t.off,get canUndo(){return n.length>0},get canRedo(){return i.length>0},get isPaused(){return k>0},get history(){return n.map(o=>{let u={id:o.id,label:o.label,timestamp:o.timestamp};return s&&s.entryId===o.id&&(u.refused={direction:s.direction,code:s.code,targets:s.targets}),u})},get future(){return i.map(o=>{let u={id:o.id,label:o.label,timestamp:o.timestamp};return s&&s.entryId===o.id&&(u.refused={direction:s.direction,code:s.code,targets:s.targets}),u}).reverse()},get scope(){return r.scope}}}function Ut(e){let r=typeof e.composedPath=="function"?e.composedPath():[],t=r.length>0?r:Bt(e.target);for(let n of t){if(!n||n.nodeType!==1)continue;let i=String(n.tagName||"").toUpperCase();if(i==="INPUT"||i==="TEXTAREA"||i==="SELECT"||n.isContentEditable===!0)return!0;let a=n.getAttribute&&n.getAttribute("contenteditable");if(a!=null&&String(a).toLowerCase()!=="false")return!0}return!1}function Bt(e){let r=[];for(let t=e;t;t=t.parentNode||(t.host??null))r.push(t);return r}function Wt(e,r){let t=n=>{let i=e.scope;if(i&&i.nodeType===1&&i.isConnected===!1){r&&r();return}if(n.defaultPrevented||n.isComposing||n.keyCode===229||Ut(n))return;let a=n.target,l=e._config.shadowKeydownIn;if(a&&a.closest&&Array.isArray(l))for(let m of l)try{if(a.closest(m))return}catch{}if(!(n.metaKey||n.ctrlKey))return;let s=(n.key||"").toLowerCase();if(s==="z"&&!n.shiftKey){n.preventDefault(),n.stopPropagation(),e.undo();return}if(s==="z"&&n.shiftKey){n.preventDefault(),n.stopPropagation(),e.redo();return}if(s==="y"&&!n.shiftKey){n.preventDefault(),n.stopPropagation(),e.redo();return}};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)}var ue=[".CodeMirror",".cm-editor",".monaco-editor",".ace_editor",".ql-editor",".tiptap",".ProseMirror",".overtype-input","[data-richclay-active]"],p=null,le=null,Ie=null,T=null;function Re(e,r){if(T){if(T.inst===e)return T.cleanup;throw new Error("hyper-undo: another scope already owns the global Cmd+Z binding (bindKeys: true). Stop it first, or use bindKeys: false for additional scopes.")}let t=Wt(e,r);return T={inst:e,cleanup:t},t}function Ce(e){T&&T.inst===e&&(T.cleanup(),T=null)}var de={defaults:{shadowKeydownIn:ue},start(e={}){let r=e.scope||(typeof document<"u"?document.body:null);if(!r)throw new Error("hyper-undo: no scope (need document.body or explicit { scope })");if(p){if(le===r)return console.warn("[hyper-undo] start() called again on existing singleton; ignoring new options"),p;throw new Error("hyper-undo: start() called with a different scope while the singleton is already started. Use undo.create({ scope }) for additional scopes, or call undo.stop() first.")}let t={...e,scope:r,shadowKeydownIn:e.shadowKeydownIn||ue};return p=Se(t),p.start(),le=r,e.bindKeys!==!1&&(Ie=Re(p,()=>de.stop())),p},stop(){p&&(Ce(p),Ie=null,p.stop(),p=null,le=null)},create(e={}){let r=e.scope||(typeof document<"u"?document.body:null);if(!r)throw new Error("hyper-undo: no scope (need document.body or explicit { scope })");let t={...e,scope:r,shadowKeydownIn:e.shadowKeydownIn||ue},n=Se(t),i=null,a={_config:n._config,commit:n.commit,command:n.command,setRecording:n.setRecording,commitCaptured:n.commitCaptured,discardCaptured:n.discardCaptured,flush:n.flush,record:n.record,recordValue:n.recordValue,undo:n.undo,redo:n.redo,clear:n.clear,discard:n.discard,describe:n.describe,pause:n.pause,resume:n.resume,on:n.on,off:n.off,get canUndo(){return n.canUndo},get canRedo(){return n.canRedo},get isPaused(){return n.isPaused},get history(){return n.history},get future(){return n.future},get scope(){return n.scope},start(){e.bindKeys&&(i=Re(n,()=>a.stop())),n.start()},stop(){Ce(n),i=null,n.stop()}};return a},commit(e,r){return p?p.commit(e,r):void 0},command(e,r){return p?p.command(e,r):void 0},setRecording(e){return p?p.setRecording(e):void 0},commitCaptured(e){return p?p.commitCaptured(e):void 0},discardCaptured(){return p?p.discardCaptured():void 0},record(e){return p?p.record(e):void 0},recordValue(e,r){return p?p.recordValue(e,r):void 0},undo(e){return p?p.undo(e):void 0},redo(e){return p?p.redo(e):void 0},clear(){return p?p.clear():void 0},discard(e){return p?p.discard(e):void 0},describe(e){return p?p.describe(e):void 0},pause(){return p?p.pause():void 0},resume(){return p?p.resume():void 0},flush(){return p?p.flush():void 0},on(e,r){return p?p.on(e,r):void 0},off(e,r){return p?p.off(e,r):void 0},get canUndo(){return p?p.canUndo:!1},get canRedo(){return p?p.canRedo:!1},get history(){return p?p.history:[]},get future(){return p?p.future:[]},get isPaused(){return p?p.isPaused:!1}},Ht=de;return F(C)})();window.__hyperclayNoAutoExport||(window.hyperclay=window.hyperclay||{},window.hyperclay.undo=Ze.undo,window.h=window.hyperclay);var y=Ze.undo;var ge=new Set,nt=(d={})=>{let c=d.ignoreAttribute;return{...d,ignoreAttribute:(b,w,N)=>ge.has(b)||Je(b,w)||Xe(w,b,N)||Ge(b,w)||(c?c(b,w,N):!1),isProtected:d.isProtected||br,ignoreNode:d.ignoreNode||Ye}};function br(d){let c=window.clay?.region?.resolveRegionPolicy;if(!c||d.nodeType!==1)return!1;let b=c(d);if(b.undoable!==!1||b.persist==="none")return!1;let w=d.parentElement;return!w||c(w).undoable!==!1}var vr=y.create.bind(y);y.create=d=>vr(nt(d));var he=null,kr=y.setRecording.bind(y);y.setRecording=d=>(he=d??null,kr(d));var Qe=()=>y.history.at(-1)?.id??null,Ar=y.command.bind(y);y.command=(d,c)=>{let b=Ar(d,c);return b&&te(),b};var Er=y.commit.bind(y),et=!1;y.commit=(d,c)=>{!et&&window.clay?.effect?.running&&(et=!0,console.warn(`clay.effect: undo.commit("${d}") was called inside an effect. Run commands from event handlers, not from an effect.`));let b=Qe(),w=Er(d,c);return(w||Qe()!==b)&&te(),w};var Vr=`input${ee}:not([type="password"]):not([type="hidden"]):not([type="file"]), textarea${ee}, select${ee}`;function Nr(){let d=c=>window.clay?.region?.resolveRegionPolicy?.(c)?.undoable!==!1;document.querySelectorAll(Vr).forEach(c=>{if(!d(c))return;if(c.tagName==="SELECT"){for(let C of c.options){let X=C.hasAttribute("selected");C.selected!==X&&(C.selected=X)}return}let b=(c.getAttribute("type")||"text").toLowerCase();if(c.tagName==="INPUT"&&(b==="checkbox"||b==="radio")){let C=c.hasAttribute("checked");c.checked!==C&&(c.checked=C);return}let w=c.tagName==="TEXTAREA"?c.getAttribute("data-value")??c.textContent:c.getAttribute("value")??"";if(c.value===w)return;let N=c===document.activeElement,B,F;try{B=c.selectionStart,F=c.selectionEnd}catch{}if(c.value=w,N&&B!=null)try{c.setSelectionRange(Math.min(B,w.length),Math.min(F,w.length))}catch{}})}var tt=d=>{d?.ok&&(te(),Nr())},rt=({entryId:d,label:c,direction:b,code:w})=>{document.dispatchEvent(new CustomEvent("clay:undo-refused",{detail:{ok:!1,code:w,entryId:d,label:c,direction:b}})),xr({ok:!1,code:w,entryId:d,label:c,direction:b})},me=null;function ot(){return me??=import("../c-5RJFTLSF.js").catch(d=>(me=null,console.error("clayjs: the undo recovery module could not be downloaded; a refused step stays in this tab only",d),null)),me}async function xr(d){let c={ok:!1,code:"unavailable"};try{let w=await ot();w&&(c=await w.keepRefusal(y,d))}catch{c={ok:!1,code:"error"}}let b=c?.ok===!0?{ok:!0,entryId:d.entryId,direction:d.direction}:{ok:!1,code:c?.code||"error",entryId:d.entryId,direction:d.direction};document.dispatchEvent(new CustomEvent("clay:undo-kept",{detail:b}))}var we=(d,c)=>(...b)=>ot().then(w=>w?w[d](...b):c,()=>c),Pr=we("keep",{ok:!1,code:"unavailable"});y.ignoreAttribute=d=>{let c=String(d||"");return c?(ge.add(c),()=>{ge.delete(c)}):()=>{}};y.keep=async d=>{let c=await Pr(d);return c?.ok===!0&&document.dispatchEvent(new CustomEvent("clay:undo-kept",{detail:{ok:!0,key:d?.key==null?null:`app:${d.key}`}})),c};y.kept=we("kept",{ok:!1,code:"unavailable",records:[]});y.dismissKept=we("dismissKept",{ok:!1,code:"unavailable"});var ye=new Set;y.reviewActions=d=>typeof d!="function"?()=>{}:(ye.add(d),()=>{ye.delete(d)});y.reviewActionsFor=d=>{let c=[];for(let b of ye){let w;try{w=b(d)}catch(N){console.error("clayjs: a review action could not describe itself; the copy stays reviewable",N);continue}for(let N of Array.isArray(w)?w:[])N&&typeof N.run=="function"&&N.label&&c.push(N)}return c};var Sr=["commit","undo","redo","refused","discard","clear"],re=()=>{let d=!!J?.started;document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:d&&y.canUndo,canRedo:d&&y.canRedo,undo:d&&y.history.at(-1)||null,redo:d&&y.future?.[0]||null}}))},J=null;function Ir(){return{started:!1,admitted:!1,subscriptions:[]}}var Rr=d=>d?d.signal?.aborted?!0:typeof d.isCurrent=="function"&&!d.isCurrent():!1;function Cr(){return typeof document>"u"||document.readyState!=="loading"?Promise.resolve():new Promise(d=>document.addEventListener("DOMContentLoaded",d,{once:!0}))}function Or(d){return{enable(){if(!d.started){d.started=!0,d.admitted=!0,y.start(nt({bindKeys:!0,...he?{recording:he}:{}}));for(let c of["undo","redo"])y.on(c,tt),d.subscriptions.push({type:c,handler:tt});y.on("refused",rt),d.subscriptions.push({type:"refused",handler:rt});for(let c of Sr)y.on(c,re),d.subscriptions.push({type:c,handler:re});re()}},quiesce(){d.admitted&&(d.admitted=!1,y.pause())},resume(){d.admitted||(d.admitted=!0,y.resume())},dispose(){if(d.admitted=!1,J===d&&(J=null),!!d.started){d.started=!1;for(let{type:c,handler:b}of d.subscriptions.splice(0))y.off(c,b);y.stop(),re()}}}}function Mr(){return{id:"clay:undo",order:350,async prepare(d={}){if(d.initial===!0)return Tr();if(await Cr(),Rr(d))throw Object.assign(new Error("clay:undo prepared for a stale generation"),{code:"stale-document"});return Or(J||(J=Ir()))}}}async function Tr(){let d=await qr;return{enable(){},quiesce:()=>d?.quiesce(),resume:()=>d?.resume(),dispose:()=>d?.dispose()}}async function jr(){if(!Fe()||typeof document>"u")return null;let d=await Mr().prepare();return d.enable(),d}var qr=jr();var Jr=y;export{Jr as default,jr as init,Mr as modeParticipant,qr as ready,Nr as restoreControls,y as undo,Mr as undoParticipant};
@@ -1 +0,0 @@
1
- import{a as y}from"../c-4WKFKEKF.js";import"../c-VHNSBD2M.js";var U="hha:upgrade-check:",L=1440*60*1e3,b="upgrade-dismissed",A="A new version of this template is available.";function g(t,e){let n=t.querySelector(`meta[name="${e}"]`),a=n?n.getAttribute("content"):null;return a&&a.trim()?a.trim():null}function C(t){try{let e=globalThis.localStorage.getItem(t);return e?JSON.parse(e):null}catch{return null}}function I(t,e){try{globalThis.localStorage.setItem(t,JSON.stringify(e))}catch{}}async function R(t){let e=globalThis.crypto&&globalThis.crypto.subtle;if(!e)return null;let n=await e.digest("SHA-256",t);return[...new Uint8Array(n)].map(a=>a.toString(16).padStart(2,"0")).join("")}async function E(t,e){try{let n=await t(e,{credentials:"omit"});return n.ok?n:null}catch{return null}}async function k(t,e,{fetchFn:n,now:a}){let r=new URL(t);r.pathname=r.pathname.replace(/\.html$/,".json");let u=`${U}${r.href}:${e}`,l=C(u);if(l&&typeof l.checkedAt=="number"&&a-l.checkedAt<L)return{latest:l.latest,latestUrl:r};let i=await E(n,r.href);if(!i)return{latest:null,latestUrl:r};let s=null;try{s=await i.json()}catch{return{latest:null,latestUrl:r}}return I(u,{checkedAt:a,latest:s}),{latest:s,latestUrl:r}}async function M({doc:t=document,loc:e=location,fetchFn:n=(r,u)=>fetch(r,u),now:a=Date.now()}={}){let r=typeof window<"u"&&window.clay||{};if(!r.canEdit||r.isDraftMode)return null;let u=g(t,"hyper-source"),l=g(t,"hyper-version");if(!u||!l)return null;let i;try{i=new URL(u,e?e.href:void 0)}catch{return null}if(!i.pathname.endsWith(".html")||e&&i.origin===e.origin&&i.pathname===e.pathname)return null;let s=new URL(i.href);s.pathname=s.pathname.replace(/\.html$/,".json");let{latest:o}=await k(i.href,l,{fetchFn:n,now:a});if(!o||typeof o!="object"||typeof o.version!="string"||!y(o.version,l))return null;let f=r.storage&&r.storage.local;if(f&&f.get(b)===o.version||typeof o.html!="string"||!o.html)return null;let h=new URL(o.html,s).href,m=await E(n,h);if(!m)return null;let p;try{p=await m.arrayBuffer()}catch{return null}let d=await R(p);return!d||d!==String(o.sha256||"").toLowerCase()?null:{version:o.version,html:h,sha256:d,latestUrl:s.href}}function P(t){let e=window.clay,n=e&&e.storage&&e.storage.local;n&&n.set(b,t)}function T(t){return!!(t&&Array.isArray(t.plugins)&&t.plugins.includes("menu"))}function S(t){return!!(t&&t.menu&&typeof t.menu.addItem=="function")}function $(t){return S(t)||!T(t)?Promise.resolve():new Promise(e=>{let n=a=>{!a.detail||a.detail.plugin!=="menu"||(document.removeEventListener("clay:plugin-ready",n),document.removeEventListener("clay:plugin-failed",n),e())};document.addEventListener("clay:plugin-ready",n),document.addEventListener("clay:plugin-failed",n)})}async function j(t,e=typeof window<"u"?window.clay:null){let n=()=>document.dispatchEvent(new CustomEvent("clay:upgrade-requested",{detail:t}));return await $(e),S(e)?(e.menu.addItem({id:"upgrade",label:`Upgrade to version ${t.version}`,badge:!0,run:n}),"menu"):e&&typeof e.toastPersistent=="function"?(e.toastPersistent(A,"info",{actions:[{label:"Upgrade",onClick:n},{label:"Not now",onClick:()=>P(t.version)}]}),"notice"):null}var w=!1;async function v(t={}){if(w)return null;w=!0;let e=window.clay;await Promise.resolve(e&&e.loaded&&e.loaded.ui).catch(()=>{});let n=await M(t).catch(()=>null);return n?(await j(n),n):null}async function O(t,e){return(await import("../c-NUHSPT5P.js")).replace(t,e)}function N(t){import("../c-UDCSU5G5.js").then(e=>e.start(t.detail)).catch(e=>console.error("clayjs: the upgrade could not start:",e))}var c=typeof window<"u"?window.clay:null;if(c&&c.canEdit&&!c.isDraftMode){document.addEventListener("clay:upgrade-requested",N);let t=c.ready;t&&typeof t.then=="function"?t.then(()=>v(),()=>{}):v()}export{j as announce,M as findUpdate,O as replace,v as start};