@panphora/clayjs 1.23.0 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/blockeditor/themes/light-1.css +431 -0
  3. package/dist/clay-dom.js +1 -1
  4. package/dist/clay-events.js +1 -1
  5. package/dist/clay-internals.js +1 -1
  6. package/dist/clay-options.js +1 -1
  7. package/dist/clay-router.js +1 -1
  8. package/dist/clay-ui.js +1 -1
  9. package/dist/clay-utils.js +1 -1
  10. package/dist/clay.js +1 -1
  11. package/dist/clay.standalone.js +30285 -26613
  12. package/dist/m/c-277QP5ET.js +1 -0
  13. package/dist/m/c-2BLVA6IN.js +5 -0
  14. package/dist/m/c-2OJMOUPC.js +1 -0
  15. package/dist/m/c-2PVGJFI5.js +1 -0
  16. package/dist/m/{c-AYVGD6A6.js → c-3UW5EJ77.js} +1 -1
  17. package/dist/m/{c-T5NK2TVY.js → c-42ZNV7LI.js} +1 -1
  18. package/dist/m/{c-3TLG3OLG.js → c-46LJAZZJ.js} +1 -1
  19. package/dist/m/c-47IBJGPQ.js +1 -0
  20. package/dist/m/c-5FXEKU4Y.js +1 -0
  21. package/dist/m/c-5KXDKC5G.js +1 -0
  22. package/dist/m/{c-EUGJVHDD.js → c-5RZNFTWD.js} +1 -1
  23. package/dist/m/c-65LJU2H2.js +72 -0
  24. package/dist/m/{c-NQJRVJ56.js → c-6IJEVE6B.js} +1 -1
  25. package/dist/m/{c-NW54NHKE.js → c-6LEYVQJK.js} +1 -1
  26. package/dist/m/{c-GSRLXYWL.js → c-6Q6RGFBF.js} +1 -1
  27. package/dist/m/c-6RGEQNVV.js +1 -0
  28. package/dist/m/c-7CM4GMTS.js +6 -0
  29. package/dist/m/c-7NCWENHV.js +1 -0
  30. package/dist/m/c-7V6MGMX2.js +1 -0
  31. package/dist/m/{c-LKSL4AUJ.js → c-7WZSUTYP.js} +1 -1
  32. package/dist/m/c-A4L7APIU.js +1 -0
  33. package/dist/m/c-APGHGDZM.js +1 -0
  34. package/dist/m/c-AT7GLQGV.js +34 -0
  35. package/dist/m/{c-ZRXJD4G6.js → c-B7GOFGQR.js} +1 -1
  36. package/dist/m/{c-KDXIJEEF.js → c-BGN7RCTJ.js} +1 -1
  37. package/dist/m/c-BKM46LUJ.js +1 -0
  38. package/dist/m/c-BOMQIQ3V.js +1 -0
  39. package/dist/m/{c-62HZW5DH.js → c-C5AKJVRH.js} +1 -1
  40. package/dist/m/{c-BXYSDKAN.js → c-CJ7QYEWI.js} +1 -1
  41. package/dist/m/c-CTGRDT6E.js +1 -0
  42. package/dist/m/c-CV4T65JE.js +6 -0
  43. package/dist/m/c-CVSWLX3X.js +1 -0
  44. package/dist/m/c-CZHTXGJS.js +1 -0
  45. package/dist/m/c-D7NT5S4F.js +1 -0
  46. package/dist/m/c-DD26VXAP.js +1 -0
  47. package/dist/m/{c-ANNFZFLN.js → c-DDS23EY6.js} +1 -1
  48. package/dist/m/{c-ALDVFPWL.js → c-DFKBGSN2.js} +1 -1
  49. package/dist/m/c-DIKR7H57.js +147 -0
  50. package/dist/m/c-DXPOFLEJ.js +1 -0
  51. package/dist/m/c-EDE45NM7.js +1 -0
  52. package/dist/m/c-EILLN2H2.js +1 -0
  53. package/dist/m/c-EODTTNVA.js +1 -0
  54. package/dist/m/{c-G6COVIZB.js → c-ESK4S67I.js} +1 -1
  55. package/dist/m/c-FDWR3FL7.js +1 -0
  56. package/dist/m/{c-WQZTI5P2.js → c-FEC6LGFF.js} +1 -1
  57. package/dist/m/c-FLEIU6CG.js +1 -0
  58. package/dist/m/c-FQAQRXGK.js +1 -0
  59. package/dist/m/{c-W4JCVLAB.js → c-FSQXFG5T.js} +1 -1
  60. package/dist/m/c-FVPNX2GO.js +135 -0
  61. package/dist/m/c-FYDKYW6E.js +1 -0
  62. package/dist/m/c-GNI7WHKF.js +32 -0
  63. package/dist/m/c-GO635CRU.js +3 -0
  64. package/dist/m/c-H3FNLBHN.js +2 -0
  65. package/dist/m/c-HDVH3MVC.js +72 -0
  66. package/dist/m/c-HIX5H5L7.js +1 -0
  67. package/dist/m/c-HKSLOVU4.js +1 -0
  68. package/dist/m/{c-SGRIYOAJ.js → c-HL6BLJNA.js} +1 -1
  69. package/dist/m/c-HTLYXCUH.js +1 -0
  70. package/dist/m/{c-QIR5CAKM.js → c-IUL7PU4P.js} +1 -1
  71. package/dist/m/c-IXO7EI2Q.js +1 -0
  72. package/dist/m/{c-W5E5P2TZ.js → c-JQF2EUCG.js} +1 -1
  73. package/dist/m/{c-NEL7HQW3.js → c-JWDCQL6J.js} +1 -1
  74. package/dist/m/c-KQKKIVLW.js +20 -0
  75. package/dist/m/c-LATNQ6Q5.js +1 -0
  76. package/dist/m/c-LD6UVV5R.js +1 -0
  77. package/dist/m/c-LS7IVQVW.js +1 -0
  78. package/dist/m/{c-JCOQVZYS.js → c-LSVN3OLG.js} +1 -1
  79. package/dist/m/{c-JDZDF2QM.js → c-LTSPHVAK.js} +1 -1
  80. package/dist/m/c-MFOSMAVM.js +3 -0
  81. package/dist/m/c-MJ7GVE46.js +1 -0
  82. package/dist/m/c-MP6S4AZU.js +6 -0
  83. package/dist/m/c-MQKSKQHG.js +2 -0
  84. package/dist/m/{c-UHUNXWKN.js → c-MQYEDF3Q.js} +1 -1
  85. package/dist/m/{c-IHUWUKIU.js → c-MR75YPRT.js} +1 -1
  86. package/dist/m/c-ND3Q2G2I.js +1 -0
  87. package/dist/m/c-NEQRFC4O.js +1 -0
  88. package/dist/m/{c-5FKRZNJV.js → c-NFQFV7OP.js} +1 -1
  89. package/dist/m/c-NHXOBD6A.js +1 -0
  90. package/dist/m/{c-QIKT6SKM.js → c-NICICT4P.js} +1 -1
  91. package/dist/m/c-NQAPWM7O.js +1 -0
  92. package/dist/m/{c-QUGCKMWF.js → c-NVU3DORS.js} +1 -1
  93. package/dist/m/{c-LWIDDWAR.js → c-OCYG4NBQ.js} +22 -22
  94. package/dist/m/c-OH2FPYSY.js +19 -0
  95. package/dist/m/c-OYHI67B6.js +1 -0
  96. package/dist/m/{c-R2XUODVY.js → c-OYW5MFPZ.js} +1 -1
  97. package/dist/m/{c-5B4YBZXC.js → c-P2HKMJAW.js} +1 -1
  98. package/dist/m/{c-TSBVMWAH.js → c-PCNJETUA.js} +1 -1
  99. package/dist/m/c-PDBNCJCT.js +1 -0
  100. package/dist/m/c-PGSBXHUE.js +1 -0
  101. package/dist/m/{c-5TIZ2I64.js → c-PYG2NGWU.js} +1 -1
  102. package/dist/m/c-Q26XHBLQ.js +1 -0
  103. package/dist/m/c-Q6BG3ZLO.js +1 -0
  104. package/dist/m/c-QENKN7QI.js +1 -0
  105. package/dist/m/c-QQFHEODI.js +1 -0
  106. package/dist/m/c-QTEUO2K6.js +1 -0
  107. package/dist/m/c-R23UHMXG.js +1 -0
  108. package/dist/m/c-RETTCOWO.js +10 -0
  109. package/dist/m/c-SE3SIY7Y.js +7 -0
  110. package/dist/m/{c-XX75FFNL.js → c-SGGGCIVD.js} +1 -1
  111. package/dist/m/c-SGH3UTF3.js +1 -0
  112. package/dist/m/c-SIM7Z3U7.js +1 -0
  113. package/dist/m/{c-X5LNHET5.js → c-SKMIR5HQ.js} +1 -1
  114. package/dist/m/{c-R27DWQKX.js → c-STRI73GQ.js} +1 -1
  115. package/dist/m/c-SUXHUL7U.js +1 -0
  116. package/dist/m/c-SXGEWPFC.js +10 -0
  117. package/dist/m/c-SXNSSHPP.js +1 -0
  118. package/dist/m/c-T3P3AXEW.js +1 -0
  119. package/dist/m/{c-PXLTUYZC.js → c-TFLRT5JX.js} +1 -1
  120. package/dist/m/{c-YCLU4UNT.js → c-TGIMBAWE.js} +1 -1
  121. package/dist/m/c-TGSHHFO6.js +1 -0
  122. package/dist/m/c-U4NTUVDZ.js +1 -0
  123. package/dist/m/c-UOOIF2AL.js +1 -0
  124. package/dist/m/{c-6TYGD5AB.js → c-UOUUI265.js} +1 -1
  125. package/dist/m/c-V2U3F4QX.js +1 -0
  126. package/dist/m/c-V2V5FKXX.js +1 -0
  127. package/dist/m/c-VBXRXTVS.js +26 -0
  128. package/dist/m/c-VHSMPITY.js +1 -0
  129. package/dist/m/c-VPXCXBDT.js +1 -0
  130. package/dist/m/c-WCG6AKA7.js +1 -0
  131. package/dist/m/c-WNOLMHI2.js +1 -0
  132. package/dist/m/{c-CRPIDGXC.js → c-X6MOYATI.js} +1 -1
  133. package/dist/m/{c-FQGHR32O.js → c-X75G43SZ.js} +1 -1
  134. package/dist/m/c-XB6EAIAR.js +13 -0
  135. package/dist/m/c-XMIDHEKF.js +1 -0
  136. package/dist/m/c-XUZMRQ7O.js +4 -0
  137. package/dist/m/{c-2Z22FCFK.js → c-XW5TIYYB.js} +1 -1
  138. package/dist/m/c-YDW4VCHP.js +1 -0
  139. package/dist/m/{c-QGAPG7OM.js → c-YLHTD3KX.js} +1 -1
  140. package/dist/m/c-YNIEIPBS.js +1 -0
  141. package/dist/m/c-Z4G2UK6T.js +4 -0
  142. package/dist/m/c-Z6MROEQ4.js +1 -0
  143. package/dist/m/c-ZFO5RW6G.js +2 -0
  144. package/dist/m/c-ZGCO4J3H.js +8 -0
  145. package/dist/m/c-ZKKAF4UT.js +3 -0
  146. package/dist/m/c-ZRGEN6QQ.js +4 -0
  147. package/dist/m/core/{admin-attrs-U7IJNYBG.js → admin-attrs-ONRWVXPK.js} +1 -1
  148. package/dist/m/core/{autosave-F5YQCKVL.js → autosave-TBKAAAFB.js} +1 -1
  149. package/dist/m/core/conflict-notice-FOEE6I7E.js +1 -0
  150. package/dist/m/core/draft-mode-4MCL3LYI.js +1 -0
  151. package/dist/m/core/{host-permission-6EVJGNPL.js → host-permission-X4BENZEU.js} +1 -1
  152. package/dist/m/core/{is-edit-mode-GCX6767E.js → is-edit-mode-FFHCQ5DR.js} +1 -1
  153. package/dist/m/core/{persist-CJXIL7D4.js → persist-6ILUR34S.js} +1 -1
  154. package/dist/m/core/{recovery-DRFZRJED.js → recovery-APWADU4K.js} +1 -1
  155. package/dist/m/core/save-6HT2LABE.js +1 -0
  156. package/dist/m/core/save-core-EVMNZQ4V.js +1 -0
  157. package/dist/m/core/site-edits-G4BOZMV4.js +1 -0
  158. package/dist/m/core/{unsaved-warning-HNQVTA2D.js → unsaved-warning-ITZDIZ2I.js} +1 -1
  159. package/dist/m/internals/{index-NRPNDTSA.js → index-HS3CQDFW.js} +1 -1
  160. package/dist/m/loader-GLLVDUZA.js +1 -0
  161. package/dist/m/manifest-50FF1C45.js +1 -0
  162. package/dist/m/manifest-edit-BE1A621D.js +1 -0
  163. package/dist/m/manifest.json +2072 -1811
  164. package/dist/m/page/editor-KAZDJNND.js +307 -0
  165. package/dist/m/plugins/ai-edit-LABECCSN.js +6 -0
  166. package/dist/m/plugins/{cms-H7DTMUQX.js → cms-T2HLI7JG.js} +16 -16
  167. package/dist/m/plugins/{demo-42BSYQ7T.js → demo-T7B4RIKL.js} +1 -1
  168. package/dist/m/plugins/{derive-QVI3LI3A.js → derive-6LPJOCAV.js} +1 -1
  169. package/dist/m/plugins/indicator-J4ABFARX.js +1 -0
  170. package/dist/m/plugins/{live-DCUBKXY4.js → live-PGBIEMGB.js} +1 -1
  171. package/dist/m/plugins/menu-YZL3X2AJ.js +1 -0
  172. package/dist/m/plugins/page-WOCNX2IN.js +2 -0
  173. package/dist/m/plugins/page-view-SJODOOGE.js +1 -0
  174. package/dist/m/plugins/{people-5XRNRP5U.js → people-C4TCWFOQ.js} +1 -1
  175. package/dist/m/plugins/{quickcrop-WWF5I422.js → quickcrop-X5MRIBAP.js} +2 -2
  176. package/dist/m/plugins/richclay-Y2NV44NA.js +549 -0
  177. package/dist/m/plugins/sortable-XCHQG65Z.js +1 -0
  178. package/dist/m/plugins/{source-6BKMK4PO.js → source-YK7MO23W.js} +1 -1
  179. package/dist/m/plugins/{undo-3JEYK5QY.js → undo-VLRBQNPN.js} +1 -1
  180. package/dist/m/plugins/upgrade-NNTJBSK2.js +1 -0
  181. package/dist/m/plugins/{upload-TTCQRIM5.js → upload-ZKKJV76X.js} +1 -1
  182. package/dist/m/plugins/visitor-drafts-RTZNONHT.js +20 -0
  183. package/dist/m/plugins/{visitor-drafts-owner-Z5B2OQBR.js → visitor-drafts-owner-LHUHFU3L.js} +1 -1
  184. package/dist/m/plugins/{visitor-menu-4LQMKLPP.js → visitor-menu-FY4KM2SW.js} +1 -1
  185. package/dist/m/plugins/wire-M2NR354P.js +1 -0
  186. package/dist/m/{reader-core-POFQCKRV.js → reader-core-T2S3JC4E.js} +2 -2
  187. package/dist/m/sync/live-sync-Z64YREWQ.js +1 -0
  188. package/dist/m/ui/index-MGTWOW2C.js +1 -0
  189. package/dist/m/vendor/{sap-core.vendor-OA5SKL7Q.js → sap-core.vendor-QAEPMETX.js} +1 -1
  190. package/dist/offline-manifest.json +1250 -1082
  191. package/dist/server/core.cjs +132 -109
  192. package/dist/server/page-compaction-worker.cjs +5 -5
  193. package/dist/server/rooms.mjs +3 -1
  194. package/docs/guide.md +89 -44
  195. package/entries/clay-data.js +1 -1
  196. package/entries/sap.js +1 -1
  197. package/package.json +5 -3
  198. package/src/blockeditor/themes/content.css +70 -0
  199. package/src/blockeditor/themes/light-1.css +431 -0
  200. package/src/blockeditor/themes/light-1.source.css +270 -0
  201. package/src/blockeditor/themes/light-2.css +211 -0
  202. package/src/blockeditor/themes/light-3.css +130 -0
  203. package/src/blockeditor/themes/light-4.css +299 -0
  204. package/src/core/conflict-notice.js +28 -0
  205. package/src/core/draft-mode.js +6 -0
  206. package/src/core/host-meta.js +6 -6
  207. package/src/core/is-edit-mode.js +9 -3
  208. package/src/core/mode-support.js +3 -0
  209. package/src/core/mode-switch.js +4 -4
  210. package/src/core/mode-transition.js +3 -1
  211. package/src/core/page-format-wire.js +1 -1
  212. package/src/core/page-format.js +8 -8
  213. package/src/core/save-accepted.js +6 -7
  214. package/src/core/save-core.js +52 -23
  215. package/src/core/save-failure-notice.js +37 -0
  216. package/src/core/save-feedback.js +6 -0
  217. package/src/core/save-replace.js +1 -1
  218. package/src/core/save-size.js +2 -2
  219. package/src/core/save.js +78 -15
  220. package/src/core/site-edits.js +166 -0
  221. package/src/core/unsaved-warning.js +2 -2
  222. package/src/core/upgrade-run.js +4 -4
  223. package/src/lib/ai-comment.js +23 -0
  224. package/src/lib/effect.js +8 -0
  225. package/src/lib/idb-error-code.js +20 -0
  226. package/src/live/fast-lane.js +10 -10
  227. package/src/live/local-lane.js +10 -10
  228. package/src/live/page-compaction.js +8 -8
  229. package/src/live/server-lane.js +1 -1
  230. package/src/loader-logic.js +48 -18
  231. package/src/loader.js +11 -6
  232. package/src/page/adopt-boot.js +1 -1
  233. package/src/page/adopt.js +2 -2
  234. package/src/page/ai-area.js +182 -0
  235. package/src/page/ai-preview.js +80 -0
  236. package/src/page/ai-surface.js +257 -0
  237. package/src/page/ai-tool.js +308 -145
  238. package/src/page/announce.js +2 -2
  239. package/src/page/awareness.js +18 -18
  240. package/src/page/blocks.js +35 -34
  241. package/src/page/blocksel.js +2 -2
  242. package/src/page/board-drag.js +11 -11
  243. package/src/page/board-face.js +1 -1
  244. package/src/page/board-panel.js +26 -26
  245. package/src/page/board-style.js +127 -127
  246. package/src/page/board-view.js +48 -48
  247. package/src/page/chart.js +29 -29
  248. package/src/page/checkpoint-proof.js +19 -19
  249. package/src/page/chrome.js +74 -65
  250. package/src/page/clipboard-shape.js +1 -1
  251. package/src/page/csv-import.js +4 -4
  252. package/src/page/drag.js +5 -5
  253. package/src/page/editor.js +301 -296
  254. package/src/page/export-html.js +8 -8
  255. package/src/page/features/checklist.js +36 -36
  256. package/src/page/features/export-html.js +19 -19
  257. package/src/page/features/export-markdown.js +10 -10
  258. package/src/page/features/import-markdown.js +13 -13
  259. package/src/page/features/media.js +50 -50
  260. package/src/page/features/table.js +17 -17
  261. package/src/page/features/title-cover.js +17 -17
  262. package/src/page/features/title-icon.js +7 -7
  263. package/src/page/features/toc.js +1 -1
  264. package/src/page/features/tool.js +42 -18
  265. package/src/page/format-command.js +4 -4
  266. package/src/page/format-gate.js +6 -6
  267. package/src/page/format-host.js +6 -6
  268. package/src/page/format-level.js +3 -3
  269. package/src/page/format-native-commands.js +2 -2
  270. package/src/page/highlight-slot.js +1 -1
  271. package/src/page/highlight.js +4 -4
  272. package/src/page/history-intent.js +2 -2
  273. package/src/page/image-actions.js +4 -4
  274. package/src/page/link.js +10 -10
  275. package/src/page/media.js +3 -3
  276. package/src/page/mention-picker.js +7 -7
  277. package/src/page/merge.js +1 -1
  278. package/src/page/placeholder.js +3 -3
  279. package/src/page/projection.js +11 -11
  280. package/src/page/reader-patch.js +2 -2
  281. package/src/page/recover.js +26 -26
  282. package/src/page/recovery-ui.js +28 -28
  283. package/src/page/rich/chart.js +1 -1
  284. package/src/page/rich/page-tool.js +21 -6
  285. package/src/page/rich/tool-runtime.js +3 -2
  286. package/src/page/save-projection.js +2 -2
  287. package/src/page/save-states.js +9 -9
  288. package/src/page/schema.js +9 -9
  289. package/src/page/table-style.js +21 -21
  290. package/src/page/toc-link.js +1 -1
  291. package/src/page/tool-capability.js +8 -3
  292. package/src/page/tool-transport.js +52 -0
  293. package/src/page/tool-views.js +4 -0
  294. package/src/page/tools.js +6 -1
  295. package/src/page/view.js +6 -6
  296. package/src/page/ybind/binding.js +1 -1
  297. package/src/page/ybind/conversion.js +1 -1
  298. package/src/page/ybind/layout.js +4 -4
  299. package/src/page/ybind/migrate.js +1 -1
  300. package/src/page/ybind/origins.js +2 -2
  301. package/src/page/ybind/provider.js +2 -2
  302. package/src/page/ybind/recovery-proof.js +3 -3
  303. package/src/page/ybind/recovery-replay.js +2 -2
  304. package/src/plugins/ai-edit/picker.js +235 -0
  305. package/src/plugins/ai-edit.js +220 -34
  306. package/src/plugins/indicator-chip.js +39 -34
  307. package/src/plugins/indicator.js +13 -4
  308. package/src/plugins/live.js +21 -13
  309. package/src/plugins/menu/actions.js +89 -17
  310. package/src/plugins/menu/seo.js +32 -6
  311. package/src/plugins/menu/shell-style.js +26 -7
  312. package/src/plugins/menu/shell.js +12 -7
  313. package/src/plugins/menu/variants.js +6 -10
  314. package/src/plugins/menu/visitor.js +44 -34
  315. package/src/plugins/menu.js +3 -2
  316. package/src/plugins/page-view.js +2 -2
  317. package/src/plugins/page.js +257 -98
  318. package/src/plugins/sortable.js +7 -0
  319. package/src/plugins/upgrade.js +2 -1
  320. package/src/plugins/visitor-drafts/commit.js +303 -0
  321. package/src/plugins/visitor-drafts/idb.js +221 -0
  322. package/src/plugins/visitor-drafts/intro-style.js +1 -1
  323. package/src/plugins/visitor-drafts/intro.js +8 -25
  324. package/src/plugins/visitor-drafts/prompt.js +30 -4
  325. package/src/plugins/visitor-drafts/session.js +345 -0
  326. package/src/plugins/visitor-drafts/store.js +351 -32
  327. package/src/plugins/visitor-drafts.js +158 -27
  328. package/src/server/checkpoint/index.js +8 -8
  329. package/src/server/rooms/index.js +2 -2
  330. package/src/server/rooms/live-data-rooms.js +35 -35
  331. package/src/server/rooms/live-page-history.js +2 -2
  332. package/src/server/rooms/page-admission.js +34 -6
  333. package/src/server/rooms/page-conversion.js +1 -1
  334. package/src/server/rooms/page-lineage.js +4 -4
  335. package/src/server/rooms/page-rebase.js +4 -4
  336. package/src/server/rooms/page-room-conformance.js +14 -14
  337. package/src/server/rooms/page-state.js +2 -2
  338. package/src/server/rooms/page-write-admission.js +7 -7
  339. package/src/server/rooms/page-write-guard.js +3 -3
  340. package/src/sync/data-guard-notice.js +265 -0
  341. package/src/sync/live-sync.js +54 -11
  342. package/src/sync/page-relay.js +4 -4
  343. package/src/sync/presence-store.js +1 -1
  344. package/src/sync/presence-target.js +3 -3
  345. package/src/sync/presence.js +1 -1
  346. package/src/sync/stream.js +54 -13
  347. package/src/sync/wire-profile.js +8 -3
  348. package/src/ui/bevel.js +1 -1
  349. package/src/ui/index.js +9 -10
  350. package/src/ui/skins/cms.js +1 -1
  351. package/src/ui/skins/quickcrop.js +1 -1
  352. package/src/ui/skins/richclay.js +2 -2
  353. package/src/ui/toast-lazy.js +12 -3
  354. package/src/ui/toast.js +9 -3
  355. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  356. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  357. package/src/vendor/hypercms.vendor.js +16 -16
  358. package/src/vendor/richclay.vendor.js +48 -20
  359. package/src/vendor/sap-core.vendor.js +1 -1
  360. package/tool-generation/context.md +44 -0
  361. package/tool-generation/system.md +23 -0
  362. package/dist/m/c-24PMUJIV.js +0 -2
  363. package/dist/m/c-2AYVYEI4.js +0 -1
  364. package/dist/m/c-2AZDZWCK.js +0 -1
  365. package/dist/m/c-2L6O5PDS.js +0 -6
  366. package/dist/m/c-2RYOGUQM.js +0 -2
  367. package/dist/m/c-2ZVOEU4M.js +0 -1
  368. package/dist/m/c-37NAONZA.js +0 -1
  369. package/dist/m/c-3GJ4SDE2.js +0 -1
  370. package/dist/m/c-3O7OBDCM.js +0 -1
  371. package/dist/m/c-5OJ7YF2N.js +0 -1
  372. package/dist/m/c-5WMXEKFH.js +0 -135
  373. package/dist/m/c-6RDOKLN7.js +0 -1
  374. package/dist/m/c-A4IP6MBC.js +0 -1
  375. package/dist/m/c-A6L3FMUS.js +0 -1
  376. package/dist/m/c-ATKAOH23.js +0 -1
  377. package/dist/m/c-B6O7AJYG.js +0 -32
  378. package/dist/m/c-BCGWJYXW.js +0 -1
  379. package/dist/m/c-BGKAT2FL.js +0 -7
  380. package/dist/m/c-BYTKL6UX.js +0 -1
  381. package/dist/m/c-DHBRA6DL.js +0 -1
  382. package/dist/m/c-DTMZ3ZHI.js +0 -1
  383. package/dist/m/c-E3ZXARWA.js +0 -1
  384. package/dist/m/c-EK63G3CG.js +0 -1
  385. package/dist/m/c-ELYIIYRS.js +0 -1
  386. package/dist/m/c-EXKHPOVC.js +0 -3
  387. package/dist/m/c-FCSZ3DC5.js +0 -20
  388. package/dist/m/c-FTWGYI5E.js +0 -1
  389. package/dist/m/c-G4PWUDD5.js +0 -1
  390. package/dist/m/c-GBKB5WDL.js +0 -2
  391. package/dist/m/c-GBTVCJXC.js +0 -1
  392. package/dist/m/c-GC2HICFJ.js +0 -1
  393. package/dist/m/c-GRWMD6O5.js +0 -1
  394. package/dist/m/c-HCNWJE4A.js +0 -4
  395. package/dist/m/c-HG2C77BM.js +0 -4
  396. package/dist/m/c-JGHEACGK.js +0 -1
  397. package/dist/m/c-JGLX6TBK.js +0 -1
  398. package/dist/m/c-JNRKHYWO.js +0 -1
  399. package/dist/m/c-KBS3UV6B.js +0 -1
  400. package/dist/m/c-KQ7E3PYY.js +0 -1
  401. package/dist/m/c-L3F5ZLIV.js +0 -1
  402. package/dist/m/c-L4KMT7FO.js +0 -6
  403. package/dist/m/c-L5VFATT6.js +0 -1
  404. package/dist/m/c-LCYPMULG.js +0 -1
  405. package/dist/m/c-LIGQYZ7M.js +0 -6
  406. package/dist/m/c-LKIWEPAV.js +0 -1
  407. package/dist/m/c-MPSKIU2I.js +0 -1
  408. package/dist/m/c-N7JPUPGC.js +0 -1
  409. package/dist/m/c-NK33MMYF.js +0 -1
  410. package/dist/m/c-NQLWOHLH.js +0 -10
  411. package/dist/m/c-NTHUTABN.js +0 -1
  412. package/dist/m/c-NWX3MFT4.js +0 -1
  413. package/dist/m/c-OKXI52N7.js +0 -1
  414. package/dist/m/c-OPONJ2UK.js +0 -128
  415. package/dist/m/c-OWQWOGYI.js +0 -1
  416. package/dist/m/c-P6Q2ZTFQ.js +0 -1
  417. package/dist/m/c-QEN6HZCA.js +0 -1
  418. package/dist/m/c-QIXT3Q7C.js +0 -28
  419. package/dist/m/c-QM5LXRDT.js +0 -9
  420. package/dist/m/c-QYYUVLVG.js +0 -1
  421. package/dist/m/c-RQRMPZXD.js +0 -1
  422. package/dist/m/c-SBCBXKOZ.js +0 -26
  423. package/dist/m/c-SKF5HL4I.js +0 -4
  424. package/dist/m/c-SRPC3VBE.js +0 -1
  425. package/dist/m/c-TANBH7FI.js +0 -1
  426. package/dist/m/c-THGQQDYY.js +0 -1
  427. package/dist/m/c-UD5JZTDL.js +0 -1
  428. package/dist/m/c-UDGEFWNU.js +0 -1
  429. package/dist/m/c-UGNV5MFB.js +0 -1
  430. package/dist/m/c-VIRFF5HG.js +0 -8
  431. package/dist/m/c-VJYEVRYK.js +0 -1
  432. package/dist/m/c-VQCEOGKH.js +0 -13
  433. package/dist/m/c-VYJ7O4RI.js +0 -34
  434. package/dist/m/c-W7IPVCAA.js +0 -1
  435. package/dist/m/c-WBGWGOM7.js +0 -1
  436. package/dist/m/c-WJ5DRBHT.js +0 -72
  437. package/dist/m/c-X5WC4PX5.js +0 -1
  438. package/dist/m/c-XCFQEWW6.js +0 -3
  439. package/dist/m/c-XGH4GS2T.js +0 -1
  440. package/dist/m/c-XLQ3BDMM.js +0 -1
  441. package/dist/m/c-ZQXNHZZT.js +0 -72
  442. package/dist/m/core/conflict-notice-42H4ASLA.js +0 -1
  443. package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
  444. package/dist/m/core/save-ESPSQPLV.js +0 -1
  445. package/dist/m/core/save-core-6SQHOR6W.js +0 -1
  446. package/dist/m/loader-FBDE2UAB.js +0 -1
  447. package/dist/m/manifest-1D2F5CA5.js +0 -1
  448. package/dist/m/manifest-edit-F7CC5CFD.js +0 -1
  449. package/dist/m/page/editor-OSKOW6RS.js +0 -304
  450. package/dist/m/plugins/ai-edit-VV4QTINH.js +0 -6
  451. package/dist/m/plugins/indicator-WVPGMOZ7.js +0 -1
  452. package/dist/m/plugins/menu-Q4MFFQ6E.js +0 -1
  453. package/dist/m/plugins/page-OAWUJQEL.js +0 -2
  454. package/dist/m/plugins/page-view-DZ26ZDDQ.js +0 -1
  455. package/dist/m/plugins/richclay-PGOOJ4OK.js +0 -517
  456. package/dist/m/plugins/sortable-266HY6TR.js +0 -1
  457. package/dist/m/plugins/upgrade-BNZVFHMZ.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +0 -20
  459. package/dist/m/plugins/wire-W2EV36KZ.js +0 -1
  460. package/dist/m/sync/live-sync-XGUPHI3I.js +0 -1
  461. package/dist/m/ui/index-VGYAKAKI.js +0 -1
  462. package/dist/page/themes/light-1.css +0 -431
  463. package/src/page/themes/content.css +0 -70
  464. package/src/page/themes/light-1.css +0 -431
  465. package/src/page/themes/light-1.source.css +0 -270
  466. package/src/page/themes/light-2.css +0 -211
  467. package/src/page/themes/light-3.css +0 -130
  468. package/src/page/themes/light-4.css +0 -299
  469. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  470. /package/dist/m/plugins/{quickcrop-WWF5I422.js.LEGAL.txt → quickcrop-X5MRIBAP.js.LEGAL.txt} +0 -0
  471. /package/dist/m/plugins/{richclay-PGOOJ4OK.js.LEGAL.txt → richclay-Y2NV44NA.js.LEGAL.txt} +0 -0
@@ -1,72 +0,0 @@
1
- import{b as We}from"./c-HAWFNBYG.js";import{a as Ye,d as $e}from"./c-CRPIDGXC.js";import"./c-OPONJ2UK.js";import{a as qe}from"./c-AQLFEATB.js";import{a as Ge}from"./c-AQYCG7QW.js";import{b as je}from"./c-QY7F6EN6.js";import{c as _e}from"./c-PKCCHJ5X.js";import{b as Ke,c as Ve}from"./c-LCYPMULG.js";import{a as Fe}from"./c-I2SCCUEW.js";import{d as Ne}from"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var xt=/^[a-z][a-z0-9+.-]*:/i,wt=["noindex","nofollow"],kt=["ogTitle","ogDescription","ogImage","ogImageAlt","siteName"],m=e=>e==null?"":String(e),O=e=>m(e).trim()!=="",T=e=>e.head||e.querySelector("head"),I=(e,t,o)=>Array.from(T(e).querySelectorAll("meta")).filter(i=>m(i.getAttribute(t)).trim().toLowerCase()===o),se=(e,t)=>Array.from(T(e).querySelectorAll("link")).filter(o=>m(o.getAttribute("rel")).trim().toLowerCase().split(/\s+/).includes(t)),ce=e=>Array.from(T(e).querySelectorAll("title")),pe=e=>I(e,"name","robots"),w=e=>e.remove();function $(e,t,o){let i=e.createElement("meta");return i.setAttribute(t,o),T(e).appendChild(i),i}function Et(e,t){let o=e.createElement("link");return o.setAttribute("rel",t),T(e).appendChild(o),o}function de(e,t,o,i){(I(e,t,o)[0]||$(e,t,o)).setAttribute("content",i)}function C(e,t,{trim:o=!1}={}){let i=c=>I(c,e,t);return{find:i,read(c){let d=i(c)[0];return d?m(d.getAttribute("content")):""},write(c,d){let f=i(c),p=m(d);if(!O(p)){f.forEach(w);return}(f[0]||$(c,e,t)).setAttribute("content",o?p.trim():p),f.slice(1).forEach(w)}}}var Je=e=>m(e.getAttribute("content")).split(",").map(t=>t.trim()).filter(Boolean);function At(e,t){let o=pe(e),i=(o[0]?Je(o[0]):[]).filter(p=>!wt.includes(p.toLowerCase())),c=[];t.index===!1&&c.push("noindex"),t.follow===!1&&c.push("nofollow");let d=c.concat(i);if(!d.length){o.forEach(w);return}(o[0]||$(e,"name","robots")).setAttribute("content",d.join(", ")),o.slice(1).forEach(w)}function Xe(e){let t=e==="noindex"?"index":"follow",o=t==="index"?"follow":"index";return{find:pe,read(i){let c=pe(i)[0];return c?!Je(c).some(d=>d.toLowerCase()===e):!0},write(i,c){let d={index:!0,follow:!0};d[t]=!!c,d[o]=x[o].read(i),At(i,d)}}}var Lt={find:ce,read(e){let t=ce(e)[0];return t?m(t.textContent):""},write(e,t){let o=ce(e),i=m(t);if(!O(i)){o.forEach(w);return}let c=o[0]||e.createElement("title");o.length||T(e).appendChild(c),c.textContent=i,o.slice(1).forEach(w)}},St={find(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?[t]:[]},read(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?m(t.getAttribute("lang")):""},write(e,t){let o=e.documentElement;if(!o)return;let i=m(t);if(!O(i)){o.removeAttribute("lang");return}o.setAttribute("lang",i.trim())}},Ct={find:e=>se(e,"canonical"),read(e){let t=se(e,"canonical")[0];return t?m(t.getAttribute("href")):""},write(e,t){let o=se(e,"canonical"),i=m(t);if(!O(i)){o.forEach(w);return}(o[0]||Et(e,"canonical")).setAttribute("href",i.trim()),o.slice(1).forEach(w)}},Y="clay-seo-title-mode",Ot={find:e=>I(e,"name",Y),read(e){return I(e,"name",Y).some(o=>m(o.getAttribute("content")).trim().toLowerCase()==="custom")?"custom":"derived"},write(e,t){let o=I(e,"name",Y);if(m(t).trim().toLowerCase()!=="custom"){o.forEach(w);return}(o[0]||$(e,"name",Y)).setAttribute("content","custom"),o.slice(1).forEach(w)}},x={title:Lt,description:C("name","description"),lang:St,canonical:Ct,index:Xe("noindex"),follow:Xe("nofollow"),ogTitle:C("property","og:title"),ogDescription:C("property","og:description"),ogImage:C("property","og:image",{trim:!0}),ogImageAlt:C("property","og:image:alt"),siteName:C("property","og:site_name"),twitterSite:C("name","twitter:site"),titleMode:Ot},Qe=Object.fromEntries(Object.keys(x).map(e=>[e,{read:x[e].read,write:x[e].write}]));function Ze(e){let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"}function ue(e){try{return new URL(e)}catch{return null}}function fe(e){return e.protocol==="http:"||e.protocol==="https:"}function et(e){let t=e.location&&e.location.href||e.URL||e.baseURI||"",o=ue(t);return!o||!fe(o)||Ze(o)?"":o.origin+o.pathname}function tt(e){let t=m(e).trim();if(!t)return"";let o=ue(t);return!o||!fe(o)?"Enter a full http: or https: address.":Ze(o)?"A localhost address cannot be a canonical URL.":""}function It(e,t){let o=m(e).trim();if(!o)return"";if(xt.test(o)){let i=ue(o);return!i||!fe(i)?"Use an http: or https: image address.":""}if(t)try{new URL(o,t)}catch{return"Use an http: or https: image address."}return""}function ot(e,t){let o=("canonical"in t?m(t.canonical).trim():x.canonical.read(e)).trim();return o&&!tt(o)?o:""}function Ut(e,t){let o=kt.some(d=>d in t&&O(t[d])),i="canonical"in t&&O(t.canonical);if(!o&&!i&&!("ogImage"in t))return;if(o||i){I(e,"property","og:type").length||de(e,"property","og:type","website");let d=ot(e,t)||et(e);d&&de(e,"property","og:url",d)}let c="ogImage"in t?t.ogImage:x.ogImage.read(e);de(e,"name","twitter:card",O(c)?"summary_large_image":"summary")}function H(e){let t={},o={};for(let i of Object.keys(x)){let c=x[i];t[i]=c.read(e),o[i]=c.find(e).length>0}return{values:t,present:o}}function G(e,t){let o=t||{},i=Object.keys(x).filter(p=>p in o),c={};if(i.includes("canonical")){let p=tt(o.canonical);p&&(c.canonical=p)}if(i.includes("ogImage")){let p=ot(e,o)||et(e),h=It(o.ogImage,p);h&&(c.ogImage=h)}if(Object.keys(c).length)return{normalized:[],errors:c};let d=[],f=new Set;for(let p of i){let h=x[p].find;h(e).length>1&&!f.has(h)&&(f.add(h),d.push(p))}for(let p of i)x[p].write(e,o[p]);return Ut(e,o),{normalized:d,errors:{}}}var nt="reopen-seo",zt="SEO and social sharing",Tt="SEO settings",it="SEO settings applied",dt=/^[a-z][a-z0-9+.-]*:/i,Mt="This site is hidden from search engines in your account settings, so this page stays hidden whatever you choose here.",Rt="Uploaded images are public to anyone with the link.",Pt="Paste the address of an image on the web.",Bt={title:{label:"Title",kind:"text",full:!0,count:60},description:{label:"Description",kind:"textarea",full:!0,count:160},ogTitle:{label:"Preview title",note:"Open Graph",kind:"text"},ogDescription:{label:"Preview description",note:"Open Graph",kind:"textarea",short:!0},ogImage:{label:"Preview image",note:"Open Graph",kind:"text",full:!0},canonical:{label:"Canonical URL",kind:"text"},lang:{label:"Language",kind:"text"},ogImageAlt:{label:"Image alt text",kind:"text"},siteName:{label:"Site name",kind:"text"},twitterSite:{label:"Social handle",kind:"text",placeholder:"@yourname"},index:{label:"Show in search results",kind:"checkbox"},follow:{label:"Let search engines follow links",kind:"checkbox"}},Dt=["title","description","ogTitle","ogDescription","ogImage"],Ht=["canonical","lang","ogImageAlt","siteName","twitterSite"],Nt=["index","follow"],_t=`.clay-seo { box-sizing: border-box; width: 100%; border-bottom: 1px solid var(--bevel-line-3); background: var(--bevel-surface); box-shadow: var(--clay-sheet-shadow); font-size: 13px; line-height: 1.45; container-type: inline-size; animation: clay-seo-in .2s ease-out; position: relative; z-index: 2147482001; grid-column: 1 / -1; flex: 0 0 100%; max-height: 85vh; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain; }
2
- @keyframes clay-seo-in { from { margin-top: -40px; opacity: 0; } to { margin-top: 0; opacity: 1; } }
3
- .clay-seo-inner { max-width: 1120px; margin: 0 auto; padding: 14px 20px 18px; }
4
- .clay-seo-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--bevel-line-2); }
5
- .clay-seo-heading { margin: 0; font: 500 19px/1.15 var(--bevel-font-serif); letter-spacing: -.01em; }
6
- .clay-seo-actions { display: flex; gap: 8px; }
7
- .clay-seo-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .9fr); gap: 22px; align-items: start; }
8
- .clay-seo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
9
- .clay-seo-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
10
- .clay-seo-field.is-full { grid-column: 1 / -1; }
11
- .clay-seo-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
12
- .clay-seo-label-row label span { font-weight: 400; color: var(--bevel-muted); }
13
- .clay-seo-field:has([aria-invalid="true"]) .clay-seo-label-row { color: var(--bevel-ox); }
14
- .clay-seo-aside { display: inline-flex; align-items: baseline; gap: 10px; }
15
- .clay-seo-count { font: 500 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); font-variant-numeric: tabular-nums; }
16
- .clay-seo-count[data-over] { color: var(--bevel-ox); }
17
- .clay-seo-derived { padding: 0; border: 0; background: none; color: var(--bevel-brass); font: 500 12px/1.3 var(--bevel-font-sans); text-decoration: underline; text-decoration-color: var(--bevel-line-3); text-underline-offset: 2px; cursor: pointer; }
18
- .clay-seo-input { box-sizing: border-box; width: 100%; min-height: 32px; padding: 6px 9px; border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); color: var(--bevel-ink); font: 400 13px/1.45 var(--bevel-font-sans); }
19
- textarea.clay-seo-input { min-height: 52px; resize: vertical; }
20
- textarea.clay-seo-input.is-short { min-height: 32px; }
21
- .clay-seo-input::placeholder { color: var(--bevel-faint); opacity: 1; }
22
- .clay-seo-input:hover { border-color: var(--bevel-faint); }
23
- .clay-seo-input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 1px; border-color: var(--bevel-brass); }
24
- .clay-seo-input[aria-invalid="true"] { border-color: var(--bevel-ox); background: color-mix(in srgb, var(--bevel-ox-soft) 40%, var(--bevel-ground)); }
25
- .clay-seo-error { margin: 0; font-size: 12px; font-weight: 500; color: var(--bevel-ox); }
26
- .clay-seo-upload { display: flex; gap: 8px; }
27
- .clay-seo-upload .clay-seo-input { flex: 1; min-width: 0; }
28
- .clay-seo-note { margin: 0; font-size: 12px; color: var(--bevel-muted); }
29
- .clay-seo-more { grid-column: 1 / -1; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); }
30
- .clay-seo-more > summary { position: relative; display: flex; align-items: center; gap: 9px; padding: 6px 10px 6px 8px; list-style: none; font-size: 12.5px; font-weight: 500; cursor: pointer; user-select: none; }
31
- .clay-seo-more > summary::-webkit-details-marker { display: none; }
32
- .clay-seo-more > summary::before { content: ""; box-sizing: border-box; width: 20px; height: 20px; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); }
33
- .clay-seo-more > summary::after { content: ""; position: absolute; left: 15px; top: 50%; width: 5px; height: 5px; border-right: 1.5px solid var(--bevel-ink); border-bottom: 1.5px solid var(--bevel-ink); transform: translateY(-50%) rotate(-45deg); }
34
- .clay-seo-more[open] > summary { border-bottom: 1px solid var(--bevel-line); }
35
- .clay-seo-more[open] > summary::before { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
36
- .clay-seo-more[open] > summary::after { transform: translate(1px, -65%) rotate(45deg); }
37
- .clay-seo-more-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 10px; background: var(--bevel-sunk); }
38
- .clay-seo-checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 18px; }
39
- .clay-seo-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
40
- .clay-seo-check input { appearance: none; -webkit-appearance: none; position: relative; box-sizing: border-box; flex: none; width: 16px; height: 16px; margin: 0; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); cursor: pointer; }
41
- .clay-seo-check input:checked { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
42
- .clay-seo-check input:checked::after { content: ""; position: absolute; left: 3px; top: 0; width: 4px; height: 8px; border-right: 1.8px solid var(--bevel-ink); border-bottom: 1.8px solid var(--bevel-ink); transform: rotate(42deg); }
43
- .clay-seo-check input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 2px; }
44
- .clay-seo-preview { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
45
- .clay-seo-preview-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
46
- .clay-seo-preview-head span { font: 400 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); }
47
- .clay-og { border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); overflow: hidden; }
48
- .clay-og-image { position: relative; display: flex; align-items: flex-end; aspect-ratio: 1.91 / 1; max-height: 160px; width: 100%; padding: 10px 12px; box-sizing: border-box; overflow: hidden; background: var(--og-image, var(--bevel-brass-soft)); border-bottom: 1px solid var(--bevel-line-2); }
49
- .clay-og-image[hidden] { display: none; }
50
- .clay-og-image span { position: relative; font: 500 10.5px/1.3 var(--bevel-font-mono); padding: 2px 7px; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); color: var(--bevel-ink); }
51
- .clay-og-body { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px 11px; }
52
- .clay-og-host { font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
53
- .clay-og-title { font: 600 14px/1.3 var(--bevel-font-sans); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
54
- .clay-og-desc { font-size: 12.5px; line-height: 1.4; color: var(--bevel-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
55
- .clay-seo-cardsize { margin: 0; font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
56
-
57
- @container (max-width: 680px) {
58
- .clay-seo-inner { padding: 12px 14px 16px; }
59
- .clay-seo-grid, .clay-seo-fields, .clay-seo-more-grid { grid-template-columns: 1fr; }
60
- .clay-seo-input { font-size: 16px; min-height: 40px; }
61
- textarea.clay-seo-input { min-height: 96px; }
62
- textarea.clay-seo-input.is-short { min-height: 40px; }
63
- .clay-seo-check { font-size: 15px; }
64
- }
65
- .clay-og-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
66
- .clay-seo-check > .clay-seo-check { display: inline-block; }
67
- .clay-seo-conflict { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: var(--bevel-muted); }
68
- .clay-seo-conflict[hidden] { display: none; }
69
- .clay-seo-conflict p { margin: 0; flex-basis: 100%; }
70
- .clay-seo-title-mode { margin: 0; font-size: 12px; color: var(--bevel-muted); }
71
- @media (pointer: coarse), (max-width: 680px) { .clay-seo .clay-menu-btn { min-height: 40px; } .clay-seo :is(input, textarea, select) { font-size: 16px; } }
72
- @media (prefers-reduced-motion: reduce) { .clay-seo { animation: none; transition: none; } }`,y=e=>e==null?"":String(e);function l(e,t,o){let i=document.createElement(e);return t&&(i.className=t),o!=null&&(i.textContent=o),i}var me=e=>{try{return new URL(e)}catch{return null}},pt=e=>!!e&&(e.protocol==="http:"||e.protocol==="https:"),Ft=e=>{let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"};function rt(e){let t=y(e).trim();if(!t)return"";let o=me(t);return!o||!pt(o)?"Enter a full http: or https: address.":Ft(o)?"A localhost address cannot be a canonical URL.":""}function at(e,t){let o=y(e).trim();if(!o)return"";if(dt.test(o)){let i=me(o);return!i||!pt(i)?"Use an http: or https: image address.":""}if(t)try{new URL(o,t)}catch{return"Use an http: or https: image address."}return""}function jt(){try{let e=new URL(location.href);return e.origin+e.pathname}catch{return""}}function lt(){return document.querySelectorAll("article[data-page]").length===1}var st="\uFFFC",ct=e=>[{t:"heading",level:1,parent:null,c:e}];function qt(e){if(e&&!e.isDestroyed){let d=e.state.doc;for(let f=0;f<d.childCount;f++){let p=d.child(f);if(p.type.name!=="heading"||p.attrs.level!==1||(p.attrs.parent??null)!==null)continue;let h="";return p.forEach(k=>{h+=k.isText?k.text:k.type.name==="hard_break"?st:""}),ct(h)}return[]}let t=document.querySelector("article[data-page]"),o=t&&[...t.children].find(d=>d.tagName==="H1");if(!o)return[];let i="",c=d=>{for(let f of d.childNodes)f.nodeType===3?i+=f.data:f.tagName==="BR"?i+=st:c(f)};return c(o),ct(i)}function Kt(){let e=window.clay&&window.clay.page&&window.clay.page.view;return We(qt(e))}function Vt(e){let t=me(y(e).trim());return t?t.hostname:""}function Wt(e,t){return typeof t=="boolean"?e==="index"?t?"Shown in search":"Hidden from search":e==="follow"?t?"Links followed":"Links not followed":t?"Yes":"No":y(t).trim()||"(empty)"}function ut(){!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}var Yt=e=>({...e});function $t(e){Ke(it,"success",{actions:[{label:"Undo",onClick:()=>{Ve(it),G(document,Yt(e)),ut()}}]})}function ao({returnFocus:e}={}){if(document.querySelector('clay-editor-ui[data-clay-ui="seo"]'))return;let t=H(document).values,o=e??Ge(),i=new Map,c=new Map,d=new Map,f=new Set,p=!1,h=null,k=!1,X="",ge=Fe({id:"seo",isPending:()=>!p&&Object.keys(Te()).length>0}),v=l("div","clay-seo");v.setAttribute("clay","editor-ui"),v.setAttribute("role","region"),v.setAttribute("aria-labelledby","clay-seo-heading");let M=l("button","clay-seo-derived","Use the first heading");M.type="button",M.hidden=!0;let U=l("button","clay-seo-upload-button clay-menu-btn","Upload image");U.type="button";let E=l("input","clay-seo-file");E.type="file",E.accept="image/*",E.hidden=!0,E.tabIndex=-1;let J=l("p","clay-seo-note",Rt);J.hidden=!0;let he=l("p","clay-seo-note",Pt),be=l("div","clay-seo-upload"),N=l("p","clay-seo-note");N.hidden=!0;let ye=l("p","clay-seo-cardsize clay-seo-note"),S=l("img");S.alt="";let _=l("div","clay-og-image");_.hidden=!0,_.append(S);let ve=l("span","clay-og-host"),xe=l("span","clay-og-title"),Q=l("span","clay-og-desc"),we=l("div","clay-og-body");we.append(ve,xe,Q);let ke=l("div","clay-og");ke.append(_,we);let Ee=l("span"),Ae=l("div","clay-seo-preview-head");Ae.append("Link preview",Ee);let Le=l("div","clay-seo-preview");Le.append(Ae,ke,ye);let F=l("div","clay-seo-fields"),Se=new Map;function Z(n){let r=Bt[n],a=`clay-seo-${n}`,s=l("div","clay-seo-field");r.full&&s.classList.add("is-full");let u=l(r.kind==="checkbox"?"input":r.kind==="textarea"?"textarea":"input",r.kind==="checkbox"?"clay-seo-check":"clay-seo-input");r.kind==="checkbox"?(u.type="checkbox",u.checked=t[n]!==!1):(r.kind!=="textarea"&&(u.type="text"),r.short&&(u.rows=1,u.classList.add("is-short")),u.value=y(t[n])),r.placeholder&&(u.placeholder=r.placeholder),u.id=a,u.dataset.key=n,window.clay&&window.clay.unsent&&u.setAttribute("unsent",`seo-${n}`),i.set(n,u);let b=l("p","clay-seo-error");b.hidden=!0,c.set(n,b);let g=l("div","clay-seo-conflict");g.hidden=!0;let z=l("p"),He=l("span","clay-seo-theirs");z.append("Changed elsewhere: ",He);let ie=l("button","clay-menu-btn clay-menu-btn-small clay-seo-theirs-button","Use theirs");ie.type="button";let re=l("button","clay-menu-btn clay-menu-btn-small clay-seo-mine-button","Keep mine");if(re.type="button",g.append(z,ie,re),d.set(n,{row:g,theirs:He}),ie.addEventListener("click",()=>{let L=H(document).values[n];r.kind==="checkbox"?u.checked=L!==!1:u.value=y(L),f.add(n),g.hidden=!0,P()}),re.addEventListener("click",()=>{f.add(n),g.hidden=!0}),r.kind==="checkbox"){let L=l("label","clay-seo-check");return L.append(u,r.label),s.append(L,b,g),s}let ae=l("div","clay-seo-label-row"),W=l("label");if(W.htmlFor=a,W.append(r.label),r.note&&W.append(" ",l("span",null,`(${r.note})`)),ae.append(W),r.count){let L=l("span","clay-seo-count");Se.set(n,{el:L,max:r.count});let le=l("span","clay-seo-aside");n==="title"&&le.append(M),le.append(L),ae.append(le)}return s.append(ae),n==="ogImage"?(be.append(u,U,E),s.append(be,he,J)):s.append(u),s.append(b,g),s}for(let n of Dt)F.append(Z(n));let R=l("details","clay-seo-more");R.append(l("summary",null,"More search and social fields"));let ee=l("div","clay-seo-more-grid");for(let n of Ht)ee.append(Z(n));let te=l("div","clay-seo-checks");for(let n of Nt)te.append(Z(n));te.append(N),ee.append(te),R.append(ee),F.append(R);let j=l("button","clay-seo-edit clay-menu-btn","Edit these settings");j.type="button";let q=l("button","clay-seo-cancel clay-menu-btn","Cancel");q.type="button";let oe=l("button","clay-seo-apply clay-menu-btn clay-menu-btn-primary","Done");oe.type="button";let Ce=l("div","clay-seo-actions");Ce.append(j,q,oe);let Oe=l("h2","clay-seo-heading",zt);Oe.id="clay-seo-heading";let Ie=l("div","clay-seo-bar");Ie.append(Oe,Ce);let Ue=l("div","clay-seo-grid");Ue.append(F,Le);let ze=l("div","clay-seo-inner");ze.append(Ie,Ue),v.append(ze);let A=n=>{let r=i.get(n);return r.type==="checkbox"?r.checked:r.value};function ne(){let n=y(A("canonical")).trim();return n&&!rt(n)?n:jt()}function ft(){let n=y(A("ogImage")).trim();if(!n||at(n,ne()))return"";if(dt.test(n))return n;try{return new URL(n,ne()||location.href).href}catch{return""}}function P(){let n=y(A("title")).trim(),r=y(A("description")).trim();i.get("ogTitle").placeholder=n,i.get("ogDescription").placeholder=r;for(let[u,b]of Se){let g=y(A(u)).trim().length;b.el.textContent=`${g} / ${b.max}`,g>b.max?b.el.dataset.over="":delete b.el.dataset.over}let a=ft();a?(S.src=a,S.hidden=!1):(S.removeAttribute("src"),S.hidden=!0),_.hidden=S.hidden,xe.textContent=y(A("ogTitle")).trim()||n||"Untitled page";let s=y(A("ogDescription")).trim()||r;Q.textContent=s,Q.hidden=!s,ve.textContent=Vt(A("canonical"))||location.host||"",Ee.textContent=a?"Large image card \xB7 1.91:1":"Summary card",ye.textContent=a?"Shared links show the large image.":"Add an image for the large card.",M.hidden=!(lt()&&Qe.titleMode.read(document)==="custom")}function Te(){let n={};for(let[r,a]of i){let s=a.type==="checkbox"?a.checked:a.value;s!==t[r]&&(n[r]=s)}return n}function mt(n){let r={};if("canonical"in n){let a=rt(n.canonical);a&&(r.canonical=a)}if("ogImage"in n){let a=at(n.ogImage,ne());a&&(r.ogImage=a)}return r}function gt(n){let r=H(document).values,a={};for(let s of Object.keys(n))f.has(s)||r[s]!==t[s]&&r[s]!==n[s]&&(a[s]=r[s]);return a}function Me(n){for(let r of Object.keys(n)){let a=i.get(r);if(a&&R.contains(a)){R.open=!0;return}}}function Re(n){Me(n);for(let[r,a]of c){let s=n[r]||"";a.textContent=s,a.hidden=!s,s?i.get(r)?.setAttribute("aria-invalid","true"):i.get(r)?.removeAttribute("aria-invalid")}}function ht(n){Me(n);for(let[r,a]of d){let s=n[r],u=s!==void 0;a.row.hidden=!u,a.theirs.textContent=u?Wt(r,s):""}}function bt(){if(!(window.clay&&window.clay.mode==="edit")){B();return}let n=Te(),a=lt()?X||("title"in n?"custom":""):"";for(let z of d.values())z.row.hidden=!0;if(Re({}),!Object.keys(n).length&&!a){B();return}let s=mt(n);if(Object.keys(s).length){Re(s);return}let u=gt(n);if(Object.keys(u).length){ht(u);return}let b=a?{...n,titleMode:a}:n,g=window.clay&&window.clay.undo;if(g&&typeof g.commit=="function")g.commit(Tt,()=>G(document,b));else{let z=H(document).values;G(document,b),$t(z)}B(),ut()}function yt(){let n=!!(window.clay&&window.clay.mode==="edit");U.hidden=!k||!n,he.hidden=k||!n,J.hidden=!k||!n||!/(^|\.)hyperclay\.com$/i.test(location.hostname)}function K(){let n=!!(window.clay&&window.clay.mode==="edit");for(let r of i.values())r.type==="checkbox"?r.disabled=!n:r.readOnly=!n;j.hidden=n,q.hidden=!n,yt()}function Pe(){p||(K(),k||Be())}function B(){p||(p=!0,ge.dispose(),document.removeEventListener("clay:modechange",Pe),V&&V.disconnect(),D.remove(),h?.remove(),o&&o.isConnected&&typeof o.focus=="function"&&o.focus())}async function vt(){let n;try{n=await fetch(location.href,{method:"HEAD"})}catch{return}if(p||!v.isConnected)return;let r=n&&n.headers&&typeof n.headers.get=="function"?n.headers.get("x-robots-tag"):"";!r||!/noindex/i.test(r)||(N.textContent=Mt,N.hidden=!1)}async function Be(){if(typeof(window.clay&&window.clay.upload)!="function")return;let r=null;try{r=await Ne()}catch{r=null}p||!v.isConnected||(k=!!(r&&Array.isArray(r.extensions)&&r.extensions.includes("upload")),K())}F.addEventListener("input",()=>{P(),ge.changed()}),i.get("title").addEventListener("input",()=>{X=""}),M.addEventListener("click",()=>{X="derived",i.get("title").value=Kt(),P()}),U.addEventListener("click",()=>E.click()),E.addEventListener("change",async()=>{let n=E.files&&E.files[0];if(!n)return;let r=window.clay&&window.clay.upload;if(typeof r!="function")return;U.disabled=!0;let a;try{a=await r(n)}catch{a=null}if(U.disabled=!1,p||!v.isConnected)return;let s=a&&a.ok&&Array.isArray(a.uploads)?a.uploads[0]:null;!s||!s.url||(i.get("ogImage").value=s.url,P())}),oe.addEventListener("click",bt),q.addEventListener("click",B),j.addEventListener("click",async()=>{let n=window.clay;if(!n||typeof n.setMode!="function")return;let r=n.storage&&n.storage.session;r&&r.set(nt,!0);let a;try{a=await n.setMode("edit")}catch{a=null}if(p||!!a&&a.ok!==!1&&!!a.reloading)return;r&&r.remove(nt);let u=qe(a);u&&(window.clay?.menu?.note||window.clay?.toast)?.(u,"error"),a&&a.ok!==!1&&K()});let D=document.createElement("style");D.id="clay-seo-vars",D.setAttribute("clay","editor-ui"),document.head.append(D);let V=null;function De(){D.textContent=`:root { --clay-seo-height: ${Math.ceil(v.getBoundingClientRect().height)}px; }`}v.addEventListener("keydown",n=>{n.key==="Escape"&&(n.preventDefault(),B())}),document.addEventListener("clay:modechange",Pe),_e(v,{x:0,y:0,width:innerWidth,height:Math.min(200,innerHeight)},Ye),h=je({name:"seo",content:v,css:[$e,_t],before:document.body.firstChild}),De(),typeof ResizeObserver=="function"&&(V=new ResizeObserver(De),V.observe(v)),P(),K(),i.get("title").focus(),vt(),Be()}export{ao as open};
@@ -1 +0,0 @@
1
- import{a,b}from"./c-6TYGD5AB.js";import"./c-QHWJ5ZIJ.js";import"./c-G6COVIZB.js";import"./c-IHUWUKIU.js";import"./c-4JZDZFF6.js";import"./c-EUGJVHDD.js";import"./c-PKCCHJ5X.js";import"./c-46XYM55L.js";import"./c-NUHP2XDB.js";import"./c-VHNSBD2M.js";export{a as SURFACE_THEME,b as default};
@@ -1,3 +0,0 @@
1
- import{b as U}from"./c-ATKAOH23.js";import{a as oe,g as ie,h as C}from"./c-EK63G3CG.js";import{a as ne,b as re,c as M}from"./c-NQJRVJ56.js";import{d as w}from"./c-XGH4GS2T.js";import{c as V,e as q,g as Z}from"./c-IJUK2GPW.js";import{b as R,f as N}from"./c-3O7OBDCM.js";import{c as X}from"./c-BPF2NSPV.js";import{g as Y}from"./c-N7JPUPGC.js";import{a as k,g as Q,h as ee,i as te}from"./c-PWJSJEJU.js";var D=null,ae=null,A=null;function we(e){let t=e?.document?.maxBytes;return Number.isSafeInteger(t)&&t>0?t:null}function se(e){return D=we(e),ae=e?.document?.maxBytesMeasures==="file"?"file":null,D}var Ae=/<script\b[^>]*\bmerge=(["'])page\1[^>]*>[\s\S]*?<\/script\s*>/i;function F(e,t=ae){if(t!=="file"||typeof e!="string")return e;let n=Ae.exec(e);if(!n)return e;let o=n.index,s=o+n[0].length,r=e.lastIndexOf(`
2
- `,o-1)+1,l=e.indexOf(`
3
- `,s),c=l===-1?e.length:l+1;return!/\S/.test(e.slice(r,o))&&!/\S/.test(e.slice(s,c))&&(o=r,s=c),e.slice(0,o)+e.slice(s)}function B(e,t){let n=new TextEncoder().encode(e).byteLength,o=Number.isSafeInteger(t)&&t>0;return{bytes:n,maxBytes:o?t:null,state:o?n>t?"over":n>=Math.ceil(t*.8)?"near":"ok":"unknown"}}function le(){return D}function P({fresh:e=!1}={}){return e?(A=w({fresh:!0}).then(se),A):(A||(A=w().then(se)),A)}function vt({fresh:e=!1}={}){return P({fresh:e}).then(t=>({maxBytes:t}))}async function yt(e){let t=await P();return B(F(e),t)}function ue(e){let t=new CustomEvent("clay:save-size",{detail:e});document.dispatchEvent(t),(e.state==="near"||e.state==="over")&&import("./c-KDXIJEEF.js").then(n=>n.start(t),()=>{})}var L="/_/clayjs/",Te=/[\u0000-\u001F\u007F]/,be=/^[\t\n\f\r ]|[\t\n\f\r ]$/,Oe=/^https:\/\/clayjs\.com\/v(\d+)\/([\s\S]*)$/,Ee=/^https:\/\/clayjs\.com\/(\d+)\.(\d+)\.(\d+)\/([\s\S]*)$/,ce=/^\/_\/clayjs\/(\d+)\.(\d+)\.(\d+)\/([\s\S]*)$/,$e=/%2e|%2f|%5c/i;function Re(e){if(typeof e!="string")return null;let t=/^(\d+)\.\d+\.\d+$/.exec(e);return t?t[1]:null}function ke(e){if(typeof e!="string"||e==="")return null;try{return new URL(e).origin}catch{return null}}function Me(e){let t=e.indexOf("#"),n=t<0?"":e.slice(t),o=t<0?e:e.slice(0,t),s=o.indexOf("?"),r=s<0?"":o.slice(s);return{head:s<0?o:o.slice(0,s),search:r,hash:n}}function Pe(e){if(e===""||e.includes("\\")||$e.test(e))return null;let t=e.split("/"),n=[];for(let o of t){if(o===""||o==="."||o==="..")return null;let s;try{s=decodeURIComponent(o)}catch{return null}if(s.includes("/")||s.includes("\\")||s==="."||s==="..")return null;n.push(s)}return n.join("/")}function T(e,{documentURL:t}={}){if(typeof e!="string"||e===""||be.test(e)||Te.test(e))return null;let{head:n,search:o,hash:s}=Me(e),r=null,l=null,c=null,u=null,i=Oe.exec(n);if(i&&(r="rolling",c=i[1],u=i[2]),r||(i=Ee.exec(n),i&&(r="exact",l=`${i[1]}.${i[2]}.${i[3]}`,c=i[1],u=i[4])),r||(i=ce.exec(n),i&&(r="local",l=`${i[1]}.${i[2]}.${i[3]}`,c=i[1],u=i[4])),!r){let d=ke(t);d&&n.startsWith(`${d}/`)&&(i=ce.exec(n.slice(d.length)),i&&(r="local",l=`${i[1]}.${i[2]}.${i[3]}`,c=i[1],u=i[4]))}if(!r)return null;let a=Pe(u);return a===null?null:{kind:r,major:c,version:l,rawPath:u,path:a,search:o,hash:s}}function Le(e,t){let n=e&&typeof e=="object"?e[t]:null;return n&&typeof n.files=="object"&&n.files?n.files:null}function je(e){return!e||typeof e!="object"?[]:Array.isArray(e.entries)?e.entries.filter(t=>t&&typeof t=="object"):[]}function Ie(e,t,n){if(!n)return!0;let o=Le(n,t);return!!(o&&Object.hasOwn(o,e.path))}function fe(e,{descriptor:t,releases:n,documentURL:o,aliases:s}={}){let r=T(e,{documentURL:o});if(!r||r.kind!=="local")return e;let l=je(t),c=Re(r.version);for(let u of l){if(u.local!==e||typeof u.original!="string")continue;let i=n?.[r.version]?.aliases??s;if(i&&typeof i=="object"&&!r.search&&!r.hash&&Object.hasOwn(i,u.original)&&i[u.original]===r.path)return u.original;let a=T(u.original);if(a&&!(a.kind!=="rolling"&&a.kind!=="exact")&&a.rawPath===r.rawPath&&a.search===r.search&&a.hash===r.hash&&!(a.kind==="rolling"?a.major!==c:a.version!==r.version)&&Ie(r,r.version,n))return a.kind==="exact"?u.original:`https://clayjs.com/v${a.major}/${r.rawPath}${r.search}${r.hash}`}for(let u of l){if(typeof u.original!="string")continue;let i=T(u.original);if(i&&!(i.kind!=="rolling"&&i.kind!=="exact")&&i.rawPath===r.rawPath&&!(i.kind==="rolling"?i.major!==c:i.version!==r.version))return i.kind==="rolling"?`https://clayjs.com/v${i.major}/${r.rawPath}${r.search}${r.hash}`:`https://clayjs.com/${i.version}/${r.rawPath}${r.search}${r.hash}`}return`https://clayjs.com/${r.version}/${r.rawPath}${r.search}${r.hash}`}var _e=Object.freeze({"https://cdn.jsdelivr.net/npm/overtype@2.6.1/dist/overtype.min.js":"compat/overtype-2.6.1.min.js","https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js":"compat/highlight-11.9.0.min.js","https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,300;0,400;0,500;0,600;1,400;1,500&family=IBM+Plex+Sans:wght@400;500;600&display=swap":"fonts/ibm-plex.css"}),J="clay-runtime-map",Ne=new Set(["stylesheet","preload","modulepreload"]),de=null,H=null;function Ue(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||typeof t!="object"||t.schema!==1?null:t}function Ce(){if(typeof document>"u")return null;let e=document.getElementById(J);if(!e)return null;let t=e.textContent??"";return t===de||(de=t,H=Ue(t)),H}var De=`script[src*="${L}"], link[href*="${L}"], #${J}`;function he(e){if(e.querySelector(De))return!0;for(let t of e.querySelectorAll("template"))if(he(t.content))return!0;return!1}function Fe(e){let t=[],n=[e];for(;n.length;){let o=n.pop();for(let s of o.children??[])t.push(s),n.push(s),s.content&&n.push(s.content)}return t}function Be(e){return e.tagName==="SCRIPT"&&e.hasAttribute("src")?"src":e.tagName!=="LINK"||!e.hasAttribute("href")?null:(e.getAttribute("rel")??"").toLowerCase().split(/\s+/).some(n=>Ne.has(n))?"href":null}function He(e){if(!e||!he(e))return;let t=[],n=!1;for(let r of Fe(e)){if(r.getAttribute("id")===J){r.remove();continue}let l=Be(r);l&&(t.push({element:r,name:l}),!n&&(r.getAttribute(l)??"").includes(L)&&(n=!0))}if(!n)return;let o=location.href,s=Ce();for(let{element:r,name:l}of t){let c=r.getAttribute(l),u=T(c,{documentURL:o});!u||u.kind!=="local"||r.setAttribute(l,fe(c,{descriptor:s,documentURL:o,aliases:_e}))}}te(He);var y=!1,E=null,pe="/_/save",ze=12e3,me=6e4,Ge=1024*1024,Se="text/plain;charset=UTF-8",j=null,$=!1,G=new Map;function Ft(e,t){t==null?G.delete(e):G.set(e,String(t))}async function Bt(e,t){$=!!e;try{return await t()}finally{$=!1}}function Ht(){return y}function Jt(){return y?null:(y=!0,E={reserved:!0},E)}function zt(e){!e||E!==e||(E=null,y=!1)}function Gt(){return $}var I=[],_=[];function Kt(e){return I.push(e),()=>{let t=I.indexOf(e);t>=0&&I.splice(t,1)}}function Wt(e){return _.push(e),()=>{let t=_.indexOf(e);t>=0&&_.splice(t,1)}}function Ke(e){for(let t of I)try{t(e)}catch(n){console.error("clayjs: onSaveAttempt hook failed:",n)}}function We(e){for(let t of _)try{t(e)}catch(n){console.error("clayjs: onSaveOutcome hook failed:",n)}}function ge(e){return{ok:!0,msg:e.msg??"Saved",msgType:e.msgType||"success",code:e.code??null,etag:e.etag??null}}var b=[],Xe=8,v=null;function Xt(){return v!==null}function ve(){let e=window.crypto?.randomUUID?.();if(e)return e;if(window.crypto?.getRandomValues){let n=new Uint8Array(16);return window.crypto.getRandomValues(n),Array.from(n,o=>o.toString(16).padStart(2,"0")).join("")}let t=()=>Math.random().toString(36).slice(2,12).padEnd(10,"0");return`${Date.now().toString(36)}-${t()}${t()}${t()}`}function Ye(e){b.push(e),b.length>Xe&&b.shift()}function Ve(e){return typeof e=="string"&&e!==""&&b.includes(e)}function Yt(){b.length=0,v=null}function K(e){let t=e.name==="AbortError",n=!t&&e.status===412,o=!t&&!n&&e.code==="save-already-applied";return{ok:!1,msg:t?"Server not responding":e.message||"Save failed",msgType:t||o?"unknown":n?"conflict":"error",code:t?"timeout":n?"conflict":e.code??null,changedBy:n?e.changedBy??null:null,afterTimeout:n&&v!==null,conflictEtag:n?e.etag??null:null,status:Number.isInteger(e.status)?e.status:null,hadTimeout:t||e.hadTimeout===!0,reason:e.reason??null,retryAfter:e.retryAfter??null,saveOutcome:e.saveOutcome??null,etag:null}}function O(e){return{ok:!1,msg:e,msgType:"skipped",code:null,etag:null}}function qe(e){let t=new Error(`This document is ${e.bytes} bytes; this host saves at most ${e.maxBytes}`);return t.code="save-too-large",{...K(t),sent:!1,size:e}}var S=null;function Ze(e){return S?null:(S={kind:e},S)}function Qe(e){S===e&&(S=null)}function et(){return S?S.kind:null}function tt(){return{ok:!1,msg:"Invalid page conversion metadata",msgType:"error",code:"invalid-header",etag:null}}var nt=3,rt=/^(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT|(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), \d{2}-(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{2} \d{2}:\d{2}:\d{2} GMT|(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (?: \d|\d{2}) \d{2}:\d{2}:\d{2} \d{4})$/;function ot(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;if(/^-?\d+$/.test(t))return Math.max(0,Math.min(3600,Number(t)));if(!rt.test(t))return null;let n=Date.parse(t);return Number.isNaN(n)?null:Math.max(0,Math.min(3600,Math.round((n-Date.now())/1e3)))}var it=/^[0-9a-f]{64}$/,st=/^[A-Za-z0-9-]{1,64}$/;function at(e){if(e==null)return{header:null};if(typeof e!="object")return{invalid:!0};let{source:t,base:n,epoch:o}=e;return typeof n!="string"||!it.test(n)?{invalid:!0}:t==="file"?o!=null?{invalid:!0}:{header:`v1; source=file; base=${n}`}:t==="room"?typeof o!="string"||!st.test(o)?{invalid:!0}:{header:`v1; source=room; base=${n}; epoch=${o}`}:{invalid:!0}}function lt(e,t,n,o,s,r=!1,l=null){let c=X(),u=c?`${pe}/${c}`:pe,i={method:"POST",credentials:c?"omit":"same-origin",signal:n,headers:{"Document-URL":window.location.href,"Page-URL":window.location.href,"Save-Trigger":t?"user":"auto","Save-ID":o,[oe]:String(1)},body:ut(e)};for(let[a,d]of G)i.headers[a]=d;return typeof i.body!="string"&&(i.headers["Content-Type"]=Se),l&&(i.headers["Page-Conversion"]=l),s&&(i.headers["If-Match"]=s),r&&e.length<me&&new Blob([e]).size<me&&(i.keepalive=!0),{url:ct(u),options:i}}function ut(e){if(e.length<Ge)return e;if(j&&j.content===e)return j.blob;let t=new Blob([e],{type:Se});return j={content:e,blob:t},t}function ye(){let e=ne();return re()&&e?e:null}function ct(e){let t=window.location.origin;return!t||t==="null"?e:new URL(e,t).href}function z(e,t){let n=JSON.stringify(t);return{ok:e>=200&&e<300,status:e,statusText:e===200?"OK":"Insufficient Storage",text:()=>Promise.resolve(n)}}function ft(e){let t=Y();return t?Promise.resolve().then(()=>{try{return t(e),z(200,{msg:"Saved in this browser",msgType:"success"})}catch(n){return z(507,{msg:"Couldn't save in this browser. Storage is full or turned off.",msgType:"error",code:n.code||"draft-storage"})}}):Promise.resolve(z(503,{msg:"Saving in this browser is not ready yet",msgType:"error",code:"draft-not-ready"}))}function dt(e,t,n,{captureId:o=null,conversionHeader:s=null,attempts:r=[]}={}){let l=new AbortController,c=setTimeout(()=>l.abort(),ze),u=q(),i=Z(),a=u||i,d=$;$=!1;let{url:m,options:x}=lt(e,a,l.signal,t,n,d,s);return Ye(t),R||(r.some(f=>f.saveId===t&&f.etag===(n??null))||r.push({saveId:t,etag:n??null}),Ke({captureId:o,saveId:t,html:e,etag:n??null})),(R?ft(e):fetch(m,x)).then(f=>f.text().then(p=>{let h={};if(p)try{h=JSON.parse(p)}catch{if(f.ok)throw new Error("Server sent a response that was not JSON")}if(!f.ok){let g=new Error(h.msg||h.error||`HTTP ${f.status}: ${f.statusText}`);throw g.code=f.status===413?"save-too-large":h.code??null,g.status=f.status,g.changedBy=h.changedBy??null,g.etag=h.etag??null,g.saveId=h.saveId??null,g.reason=typeof h.reason=="string"?h.reason:null,g.saveOutcome=h.saveOutcome??null,g.retryAfter=ot(f.headers?.get?.("Retry-After")),g}return M(h.etag??null),v=null,h})).catch(f=>{throw console.error("Failed to save page:",f),f.name==="AbortError"&&(v={saveId:t,etag:n}),a&&V(),f}).finally(()=>{clearTimeout(c)})}async function ht(){let e=v;if(!e)return{landed:null,resend:!1};let n=(await w({fresh:!0})).document,o=typeof n?.etag=="string"&&n.etag?n.etag:null;return o?n.saveId&&n.saveId===e.saveId?(M(o),v=null,{landed:{msg:"Saved",msgType:"success",etag:o},resend:!1}):(n.saveId&&(v=null),{landed:null,resend:!!e.etag,etag:e.etag}):{landed:null,resend:!1}}async function pt(e,{captureId:t=null,conversionHeader:n=null,attempts:o=[]}={}){let s=ve(),r=ye(),l=!1,c=!1,u=0,i=t??k();for(;;)try{return await dt(e,s,r,{captureId:t,conversionHeader:n,attempts:o})}catch(a){if(l&&(a.hadTimeout=!0),a.name==="AbortError"){if(l)throw a;let{landed:d,resend:m,etag:x}=await ht();if(d)return d;if(!m)throw a;r=x,l=!0;continue}if(a.status===412&&!c&&Ve(a.saveId)){M(a.etag??null),v=null,s=ve(),r=ye(),c=!0;continue}if(a.code==="page-converting"&&u<nt){if(k()!==i||(u+=1,await new Promise(d=>setTimeout(d,Math.max(0,a.retryAfter??1)*1e3)),k()!==i))throw a;continue}throw a}}function W(e,t,n,o,s=null,r=0,l=null){return e=ie(e,Math.max(C(),r)),new Promise(c=>{let u=[],i=Q(s),a=()=>l!==null&&E===l,d=()=>{a()||(y=!1)},m=(p,h=!1)=>{h&&U(e,t??null,i),ee(s),We({captureId:t??null,result:p,attempts:u,sent:u.length>0}),typeof n=="function"&&n(p),c(p)};if(!N&&!window.clay?.testMode)return m(O("Not in edit mode"));if(y&&!a())return m(O("Save already in progress"));let x=at(o);if(x.invalid)return m(tt());if(y=!0,window.clay?.testMode){setTimeout(()=>{d(),m(ge({msg:"Test mode: save skipped"}))},0);return}P();let f=B(F(e),le());if(ue(f),f.state==="over")return d(),m(qe(f));pt(e,{captureId:t,conversionHeader:x.header,attempts:u}).then(ge,K).then(p=>{d(),p.code==="save-too-large"&&!p.size&&(p.size=f),p.ok&&U(e,t??null,i),m(p)})})}function mt(e,t=()=>{}){return W(e,null,t,null)}function Vt(e,t,n=()=>{},{conversion:o,capture:s=null,pageFormatFloor:r,lane:l=null}={}){return W(e,t,n,o,s,r,l)}function qt({html:e,captureId:t,conversion:n}){return W(e,t??null,void 0,n)}function Zt(e,t=()=>{}){return new Promise(n=>{let o=null,s=r=>{Qe(o),typeof t=="function"&&t(r),n(r)};if(!N)return s(O("Not in edit mode"));if(et())return s(O("Another document operation is in progress"));if(y)return s(O("Save already in progress"));if(R)return s(!1);o=Ze("replace"),fetch(new URL(e,window.location.href).href).then(r=>{if(!r.ok)throw new Error(`Template fetch failed: HTTP ${r.status} ${r.statusText}`);return r.text()}).then(r=>mt(r)).then(s).catch(r=>{console.error("Failed to fetch template:",r),s(K(r))})})}var xe=null;function Qt(e){xe=e}function en(){return xe}export{P as a,vt as b,yt as c,Ft as d,Bt as e,Ht as f,Jt as g,zt as h,Gt as i,Kt as j,Wt as k,Xt as l,ve as m,Yt as n,Ze as o,Qe as p,et as q,lt as r,mt as s,Vt as t,qt as u,Zt as v,Qt as w,en as x};
@@ -1 +0,0 @@
1
- import{b as g}from"./c-3O7OBDCM.js";import{c as x}from"./c-BPF2NSPV.js";var y="/_/meta",v=6e3,A=new WeakMap,S=new WeakMap,O=new WeakMap,_=0;function f(t,e=s(),n=null,o=null){return A.set(e,t),n!==null&&S.set(e,n),o!==null&&O.set(e,o),e}function b(t){return A.get(t)??"none"}function R(t){return S.get(t)}function $(t){return O.get(t)??0}function s(){return{spec:null,extensions:[],document:null}}var h=null,m=null;function d({fresh:t=!1}={}){if(g)return Promise.resolve(s());if(!t)return h||(h=T().catch(s)),h;if(!m){let e=h;m=T().catch(s).finally(()=>{m=null}),h=m.then(async n=>{if(b(n)==="ok"||!e)return n;let o=await e;return b(o)==="ok"?o:n})}return m}async function P(t){return(await d()).extensions.includes(t)}async function D(){return(await d()).extensions.includes("page-format-v1")?1:0}async function C(){let t=await d();return t.extensions.includes("page-recovery-v1")&&t.document?.pageState?.href||null}async function H(){return(await d()).document?.versions===!0}var E=["codeEditor","versions","duplicate","reveal","export"];function M(t){if(typeof t!="string"||!t)return null;try{let e=new URL(t,location.href);return e.protocol==="http:"||e.protocol==="https:"?e:null}catch{return null}}async function N(){let e=(await d()).document?.actions,n={};if(!e||typeof e!="object")return n;for(let o of E){let i=M(e[o]?.href);if(i){n[o]={href:i.href};continue}let a=M(e[o]?.post);a&&a.origin===location.origin&&(n[o]={post:a.href})}return n}function W(){h=null,m=null}async function F({saveId:t,requestHash:e,signal:n}={}){if(g||typeof t!="string"||!t||typeof e!="string"||!e||!/^https?:$/.test(window.location.protocol)||n?.aborted)return null;let o=new AbortController,i=()=>o.abort(),a=setTimeout(i,v);n?.addEventListener("abort",i);try{let u=await d();if(b(u)!=="ok"||!u.extensions.includes("save-history")||o.signal.aborted)return null;let p=x(),r=p?`${y}/${p}`:y,w=await fetch(new URL(r,window.location.origin).href,{method:"GET",credentials:p?"omit":"same-origin",headers:{"Document-URL":window.location.href,"Save-ID":t,"Save-Request-Hash":e},cache:"no-store",redirect:"manual",signal:o.signal});if(!w.ok)return null;let k=await w.text();if(!k)return null;let c;try{c=JSON.parse(k)}catch{return null}if(!c||typeof c!="object"||typeof c.spec!="number"||!Array.isArray(c.extensions)||!c.extensions.includes("save-history"))return null;let l=c.document&&typeof c.document=="object"?c.document.saveOutcome:null;return!l||typeof l!="object"||l.saveId!==t||l.requestHash!==e||l.status!=="applied"&&l.status!=="unknown"?null:{saveId:t,requestHash:e,status:l.status}}catch{return null}finally{clearTimeout(a),n?.removeEventListener("abort",i)}}async function T(){let t=location.pathname,e=++_;if(!/^https?:$/.test(window.location.protocol))return f("none",s(),t,e);let n=x(),o=n?`${y}/${n}`:y,i=new AbortController,a=setTimeout(()=>i.abort(),v);try{let u=await fetch(new URL(o,window.location.origin).href,{method:"GET",credentials:n?"omit":"same-origin",headers:{"Document-URL":window.location.href},cache:"no-store",redirect:"manual",signal:i.signal});if(!u.ok)return f(u.status>=500?"failed":"none",s(),t,e);let p=await u.text();if(!p)return f("none",s(),t,e);let r;try{r=JSON.parse(p)}catch{return f("none",s(),t,e)}return!r||typeof r!="object"||typeof r.spec!="number"?f("none",s(),t,e):f("ok",{spec:r.spec,extensions:Array.isArray(r.extensions)?r.extensions:[],document:r.document&&typeof r.document=="object"?r.document:null},t,e)}catch{return f("failed",s(),t,e)}finally{clearTimeout(a)}}export{b as a,R as b,$ as c,d,P as e,D as f,C as g,H as h,N as i,W as j,F as k};
@@ -1 +0,0 @@
1
- import{a as Ke,b as de,d as ue,e as fe,f as tt}from"./c-NK33MMYF.js";import{a as Qe,b as Ze,c as ce,d as et}from"./c-LZJPNR2W.js";import{a as R,b as J}from"./c-FILLTJA7.js";import{b as Xe}from"./c-5VYOWDTI.js";import{b as oe,c as ae,d as x,f as he,g as Je,h as Ve}from"./c-GSRLXYWL.js";import{a as q}from"./c-LA2BW7UY.js";import{a as Oe}from"./c-ATKAOH23.js";import{a as je,f as ze,g as We,h as Ye}from"./c-EK63G3CG.js";import{a as se,b as Ue,c as M,d as re,e as le,h as $e}from"./c-NQJRVJ56.js";import{e as Ge}from"./c-XGH4GS2T.js";import{d as Pe}from"./c-IJUK2GPW.js";import{f as $,j as te}from"./c-3O7OBDCM.js";import{a as Te}from"./c-BPF2NSPV.js";import{E as Y,F as Be,H as T,I as Ne,b as D,j as ie,o as W,t as P,z as Me}from"./c-PWJSJEJU.js";import{a as Re,b as He,c as qe,e as j,g as z,h as ne}from"./c-VG5XIN4T.js";import{m as De,n as Ie}from"./c-HA6INT6J.js";import{a as Le,b as Ae,l as Ce,m as Fe}from"./c-ICMAOOGK.js";function nt(s){let e=new WeakMap,t=0,i=r=>e.get(r)||null,n=r=>{let l=e.get(r);return l||(l=`${s}:${++t}`,e.set(r,l)),l};return{idOf:i,ensure:n,adopt:(r,l)=>{r&&typeof l=="string"&&l&&e.set(r,l)},exportMap:(r,l)=>{let o={},a=[],h=[],c=(d,_)=>{let g=l(d);g&&(o[_]=n(g));let E=d.children;a.push(E.length),h.push(d.tagName.toLowerCase());for(let f=0;f<E.length;f++)c(E[f],_===""?String(f):`${_}.${f}`)};return c(r,""),o["~"]=a.join(","),o["^"]=h.join(","),o}}}function it(s,e){let t=new WeakMap;if(!s||!e||typeof e!="object"||Array.isArray(e))return t;let i=e["~"],n=typeof i=="string"?i.split(",").map(Number):null,r=n&&typeof e["^"]=="string"?e["^"].split(","):null,l=d=>Number.isInteger(d)&&d>=0,o=0,a=!1,h=d=>{let _=d;for(;_>0;){let g=n[o++];if(o>n.length||!l(g))return!1;_+=g-1}return!0},c=(d,_)=>{if(a)return;if(n){let f=o++,u=n[f];if(f>=n.length||!l(u)){a=!0;return}let S=!r||r[f]===d.tagName.toLowerCase();if(!S||u!==d.children.length){let w=S&&e[_];typeof w=="string"&&w&&t.set(d,w),h(u)||(a=!0);return}}let g=e[_];typeof g=="string"&&g&&t.set(d,g);let E=d.children;for(let f=0;f<E.length;f++)c(E[f],_===""?String(f):`${_}.${f}`)};return c(s,""),t}function mt(s){return e=>{for(let t of s){let i=t(e);if(typeof i=="string"&&i!=="")return i}return null}}var Mt=mt([s=>s.getAttribute("data-id"),s=>s.getAttribute("id")]);var vt=/^page(\.[0-9]+)?$/,st=s=>[...s.querySelectorAll('script[merge][clay~="live"]')].filter(e=>vt.test(e.getAttribute("merge")));function rt(s,e,t){if(!s.html.includes("data-page"))return s;let i=u=>W(new DOMParser().parseFromString(u,"text/html")),n=i(s.html),r=n.querySelector("article[data-page]");if(!r)return s;let l=i(e),o=l.querySelector("article[data-page]");if(!o)return null;let a=it(n.documentElement,s.identityMap),h=(u,S)=>{let w=n.importNode(S,!0),b=a.get(u);return b&&a.set(w,b),u.replaceWith(w),w},c=h(r,o),d=new Map(st(n).map(u=>[u.getAttribute("merge"),u]));for(let u of st(l)){let S=u.getAttribute("merge"),w=d.get(S);w?h(w,u):c.before(n.importNode(u,!0)),d.delete(S)}for(let u of d.values())u.remove();let _=n.querySelector("head > title"),g=l.querySelector("head > title");_&&g?h(_,g):g?n.head.append(n.importNode(g,!0)):_?.remove();let E=n.documentElement,f=t.exportMap(E,u=>{let S=a.get(u);return S?(t.adopt(u,S),u):null});return{...s,html:T(E),identityMap:f}}var St={"merge-tokens":"tokens","merge-max":"max"};function lt(s,e){if(!e.startsWith("data-")||e==="data-id"||!s?.closest)return null;for(let[t,i]of Object.entries(St)){let n=s.closest(`[${t}]`);if(n&&n.getAttribute(t).split(/\s+/).includes(e))return i}return null}var m=null,ot=null,B=new Map;function V(){return ot??=Promise.all([import("./c-5TIZ2I64.js"),import("./c-EJTGYSLN.js")]).then(([s,e])=>{m={...s,beginLineageCapture:e.beginLineageCapture};for(let t of[...B.keys()])B.set(t,s.registerContext(t));return m}),ot}var at=()=>m,I={get size(){return m?m.conflicts.size:0},list(){return m?m.conflicts.list():[]},get(s){return m?m.conflicts.get(s):null},acknowledge(s,e={}){if(m)return m.conflicts.acknowledge(s,e);if(!Array.isArray(s))throw new TypeError("clay.conflicts.acknowledge needs an array of ids");return{removedIds:[],remainingIds:[]}},claim(s,e={}){if(m)return m.conflicts.claim(s,e);if(!e.owner)throw new TypeError("clay.conflicts.claim needs an owner");return{release(){}}},registerContext(s){if(m)return m.conflicts.registerContext(s);if(typeof s!="function")throw new TypeError("clay.conflicts.registerContext needs a resolver function");return B.set(s,null),()=>{let e=B.get(s);B.delete(s),e&&e()}},contextFor(s,e){return m?m.conflicts.contextFor(s,e):null},recoveryOf(s){return m?m.conflicts.recoveryOf(s):null},hasPendingApply(){return m?m.conflicts.hasPendingApply():!1}};var y=null,pe=null;function H(){return pe??=new Promise(s=>setTimeout(s,0)).then(()=>import("./c-QYYUVLVG.js")).then(s=>y=s).catch(s=>{throw pe=null,s}),pe}var me=null,_e=null;function wt(){return _e??=import("./c-FTWGYI5E.js").then(s=>me=s.presence).catch(s=>{throw _e=null,s}),_e}var dt=te().phase==="entering";$&&!dt&&H().catch(()=>{});$&&V().catch(()=>{});var L=null,ge=null,Q=[];function ut(s){L.presence.update(s),L.editingMarker.update(s)}function kt(){return ge??=Promise.all([import("./c-G4PWUDD5.js"),import("./c-FQGHR32O.js")]).then(([s,e])=>{L={presence:s.presence,editingMarker:e.editingMarker};let t=Q;Q=[];for(let i of t)ut(i);return L}).catch(s=>{throw ge=null,s}),ge}function xt(s){if(L){ut(s);return}Q.push(s),kt().catch(()=>{})}var ht=Object.freeze({bytes:null,etag:null,seq:null}),bt=()=>({msg:"Not in edit mode",msgType:"skipped",code:null,etag:null}),ft=["[editor-ui]",'[clay~="editor-ui"]',"[save-ignore]","[snapshot-remove]","[no-snapshot]","[no-save]","[save-remove]","[freeze] *","[save-freeze] *",'[clay~="no-save"]','[clay~="no-snapshot"]','[clay~="freeze"] *',Ce,Le].join(","),pt='[clay~="freeze"], [freeze], [save-freeze]';function X(s){for(let e of s.querySelectorAll(pt))e.replaceChildren();return z()&&qe(s),s}function ct(s){if(s==null)return s;let e=typeof s=="string"?new DOMParser().parseFromString(s,"text/html"):s;return ie(e),W(e),X(e),e}var Dt=[Fe,'[clay~="no-watch"]',"[no-watch]","[mutations-ignore]"].join(","),It=(s,e,t)=>De(s,e,t)||Ae.test(e.toLowerCase()),_t=s=>s.getAttribute("data-id")||s.getAttribute("id")||null;function Tt(s){let e=new Map,t=n=>{if(n.matches(ft))return;let r=_t(n);r&&e.set(r,(e.get(r)||0)+1);let l=n.localName==="template"&&n.content?n.content.children:n.children;for(let o of l)t(o)},i=s.nodeType===9?[s.documentElement]:s.nodeType===11?s.children:[s];for(let n of i)n&&n.nodeType===1&&t(n);return e}var Lt=s=>e=>{let t=_t(e);if(!t)return null;let i=e.getRootNode(),n=s.get(i);return n||s.set(i,n=Tt(i)),n.get(t)===1?t:null},ye=s=>!!s&&typeof s=="object"&&!Array.isArray(s);function At(s){return typeof s!="string"||s===""?null:new DOMParser().parseFromString(s,"text/html").documentElement?.getAttribute("documentetag")||null}function Ct(s,e){e!=="live"||!s||!y||(y.enableContentEditable(s),y.enableOnClick(s),y.enableAdminInputs(s),y.enableAdminResources(s))}function Ft(){let{forComparison:s,forDirty:e}=Me({flushUndo:!1});return[s,e]}var Rt=1024*1024;function Ht(s,e,t,i,n){let r={sender:t,identityMap:i,...n?{etag:n}:{}};return e.length<Rt?JSON.stringify({[s.snapshotKey]:e,...r}):new Blob([`{${JSON.stringify(s.snapshotKey)}:`,JSON.stringify(e),`,${JSON.stringify(r).slice(1)}`],{type:"application/json"})}var ve=class{constructor(){this.sse=null,this.currentFile=null,this.lastHtml=null,this._diskBase=null,this._diskBaseTicket=0,this._agreeSeq=0,this._saveTicket=0,this._peerBaseTicket=0,this._acceptedSaveTicket=0,this._morphTicket=0,this.clientId=this.generateClientId(),this.resumeId=null,this._savedSnapshot?.abort?.abort(),this._savedSnapshot=null,this._sendInFlight=!1,this._queuedSend=null,this._profile=null,this._profilePromise=null,this._sharedData=!1,this._sharedSync=!1,this._liveData=!1,this._editing=null,this._presenceLease=null,this._presenceQuiesced=!1,this._ready=null,this._startGen=0,this.isPaused=!1,this.isDestroyed=!1,this.debug=!1,this._lane=$?"live":"saved",this._laneChosen=!1,this._snapshotHandler=null,this.lastSeenSeq=0,this._pendingHtml=null,this._pendingSeq=null,this._pendingIdentityMap=null,this._pendingEtag=null,this._pendingBy=null,this._morphInFlight=!1,this._rafHandle=null,this._represented=ht,this._handoff=null,this._handoffHeld=!1,this._pendingExternal=null,this._lastExternalSeq=0,this._saveEpoch=0,this._saveSavedHandler=null,this._saveConflictHandler=null,this._settledHandler=null,this._lastIdentityMap=null,this._applyGen=0,this._holdRetryPeer=null,this._holdRetryExt=null,this._servedFetchId=0,this._startupRetry=null,this._engineRetry=null,this._heldLive=!1,this._heldExt=!1,this.identity=nt(this.clientId),this.onConnect=null,this.onDisconnect=null,this.onUpdate=null,this.onError=null,this.onNotification=null}get unresolvedConflicts(){return I.list().filter(e=>e.kind!=="apply-incomplete")}_log(e,t=null){if(!this.debug)return;let i=`[LiveSync ${new Date().toISOString()}]`;t!==null?console.log(i,e,t):console.log(i,e)}generateClientId(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}generateResumeId(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}_seedBases(){if(x())return;let e=P({flushUndo:!1});this._setPeerBase(T(e),this.identity.exportMap(e,D),this._ticket()),this._setDiskBase(Y({emitForSync:!1}).forSave,this._ticket())}get lane(){return this._lane}set lane(e){this._lane=e,this._laneChosen=!0}start(e=null,{lane:t,represented:i}={}){if(this.isDestroyed=!1,(this.sse||this._snapshotHandler)&&this.cleanup(),this.currentFile=e||this.detectCurrentFile(),!this.currentFile){console.warn("[LiveSync] No file detected");return}let n=te().mode==="edit"?"live":"saved",r=this.lane==="live";this._lane=t||(this._laneChosen?this._lane:n),this.lastHtml=null,this._lastIdentityMap=null,this._peerBaseTicket=this._ticket(),this._diskBase=null,this._diskBaseTicket=this._ticket(),this._saveTicket=0,this._savedSnapshot?.abort?.abort(),this._savedSnapshot=null,this._applyGen++,this.lastSeenSeq=0,this._lastExternalSeq=0,this._represented=i?Object.freeze({bytes:i.bytes??null,etag:i.etag??null,seq:i.seq??null}):ht,this._acquireEmptySaved=r&&this.lane==="saved"&&this._represented.bytes===null,this._pendingExternal=null,this.resumeId=this.generateResumeId(),this.lane==="live"&&this._seedBases(),this.lane==="live"&&V().catch(()=>{}),console.log(`[LiveSync] Starting for: ${this.currentFile} (lane=${this.lane})`);let l=++this._startGen;if(this.lane==="live"&&!(y&&y.baselineSettled())){let o=this._applyGen,a=this._morphTicket,h=this._saveEpoch,c=this.lastHtml,d=this._diskBaseTicket,_=this._diskBase!==null;this._settledHandler=()=>{if(this._settledHandler=null,!(this.isDestroyed||this._startGen!==l)&&!Pe()&&!x()&&this._saveTicket===0&&this._morphTicket===a){if(c!==null&&this._applyGen===o&&this._saveEpoch===h&&this.lastHtml===c){let g=P({flushUndo:!1});this._setPeerBase(T(g),this.identity.exportMap(g,D),this._ticket())}_&&this._diskBaseTicket===d&&this._setDiskBase(Y({emitForSync:!1}).forSave,this._ticket())}},document.addEventListener("clay:baseline-settled",this._settledHandler,{once:!0})}this._ready=Promise.all([this.lane==="live"?H():null,this._resolveProfile()]).then(()=>{this.isDestroyed||this._startGen!==l||this.connect()}),this.lane==="live"&&(this.listenForSnapshots(),wt().then(o=>this._startPresence(o,l),()=>{}),this._saveSavedHandler=o=>{this._saveEpoch++;let a=this._saveTicket||this._ticket();this._saveTicket=0,a>this._acceptedSaveTicket&&(this._acceptedSaveTicket=a);let h=y?y.getLastSavedBytes():null;h!=null&&this._setDiskBase(h,a),this._relayCommit(o?.detail?.captureId,h)},document.addEventListener("clay:save-saved",this._saveSavedHandler),this._saveConflictHandler=o=>{let a=o.detail&&o.detail.etag;a&&queueMicrotask(()=>{this.isDestroyed||a===se()&&(y?.conflictResolvedBySync(a),this._saveAfterMerge(x(),!1))})},document.addEventListener("clay:save-conflict",this._saveConflictHandler))}cleanup(){if(this.sse&&(this.sse.close(),this.sse=null),ce(),Q=[],L&&(L.presence.clear(),L.editingMarker.clear()),this._editing&&(this._editing.stop(),this._editing=null),this._presenceLease){let e=this._presenceLease;this._presenceLease=null,typeof e.stop=="function"?e.stop():e.detach()}this._lastRoster=null,this._snapshotHandler&&(document.removeEventListener("clay:snapshot-ready",this._snapshotHandler),this._snapshotHandler=null),this._saveSavedHandler&&(document.removeEventListener("clay:save-saved",this._saveSavedHandler),this._saveSavedHandler=null),this._saveConflictHandler&&(document.removeEventListener("clay:save-conflict",this._saveConflictHandler),this._saveConflictHandler=null),this._settledHandler&&(document.removeEventListener("clay:baseline-settled",this._settledHandler),this._settledHandler=null),this._queuedSend=null,this._rafHandle!=null&&(this._cancelFrame(this._rafHandle),this._rafHandle=null),this._pendingHtml=null,this._pendingSeq=null,this._pendingIdentityMap=null,this._pendingBy=null,this._pendingExternal=null,this._handoff=null,this._handoffHeld=!1,clearTimeout(this._holdRetryPeer),clearTimeout(this._holdRetryExt),this._holdRetryPeer=null,this._holdRetryExt=null,clearTimeout(this._startupRetry),this._startupRetry=null,clearTimeout(this._engineRetry),this._engineRetry=null,this._servedFetchId++}detectCurrentFile(){let e=window.location.pathname;if(e==="/")return"index.html";e=e.replace(/^\//,"");let t=e.match(/^(.*?\.html(?:clay)?)/);return t?t[1]:e}_resolveProfile(){return this._profilePromise||(this._profilePromise=tt().then(e=>(this._sharedData=e.sharedData,this._sharedSync=e.sharedSync,this._liveData=e.liveData,this._profile=e.profile,this._log(`Wire profile: ${e.profile.name}`),e.profile))),this._profilePromise}_setHeld(e,t,i){let n=e==="live"?"_heldLive":"_heldExt";this[n]!==t&&(this[n]=t,!t&&!this._heldLive&&!this._heldExt&&$e({fresh:!0,clearIfMissing:!1}),document.dispatchEvent(new CustomEvent(t?"clay:sync-held":"clay:sync-resumed",{detail:{lane:e,el:i||null}})))}_applyEtagFrame(e){return typeof e.etag!="string"||typeof e.html=="string"?!1:(this._log("Dropping a stamp that arrived with no document: nothing proves this tab holds those bytes"),!0)}connect(){if(this.isDestroyed)return;let t=(this._profile||fe.legacy).streamPath(window.location.href,this.lane,this.resumeId,this.clientId);this.sse=new Ke(new URL(t,window.location.origin).href,{shared:this._sharedSync,sharedData:this._sharedData,documentURL:window.location.href,lane:this.lane,clientId:this.clientId,keepAliveWhenHidden:this._liveData&&this.lane==="live",startupCheck:!!Te}),this._acquireEmptySaved&&(this._acquireEmptySaved=!1,this._fetchServedDocument(void 0,{repair:!0})),this.sse.onopen=()=>{console.log("[LiveSync] Connected"),this._editing&&this._editing.reconnected(),me&&me.reconnect(),this.onConnect&&this.onConnect()},this.sse.addEventListener("open",()=>Ze({clientId:this.clientId,lane:this.lane})),this.sse.addEventListener("error",()=>ce());for(let i of Qe)this.sse.addEventListener(i,n=>{let r;try{r=JSON.parse(n.data)}catch{return}et(i,r)});this.sse.addEventListener("cursor",i=>{let n;try{n=JSON.parse(i.data)}catch{return}if(!n||n.resync!==!0&&n.startup!==!0)return;let r=n.resync===!0,l=n.startup===!0&&!r;console.log(r?"[LiveSync] Server could not replay everything; refetching the document":"[LiveSync] Checking the served document against the version this tab was served"),this._fetchServedDocument(typeof n.seq=="number"?n.seq:void 0,{repair:r,startup:l})}),this.sse.addEventListener("presence",i=>{let n;try{n=JSON.parse(i.data)}catch{return}xt(n),this._lastRoster=n,this._editing&&this._editing.roster(n)}),this.sse.onmessage=i=>{let n=JSON.parse(i.data),{seq:r}=n;if(typeof r=="number"&&r<=this.lastSeenSeq){this._log(`Dropping stale message: seq=${r}, lastSeen=${this.lastSeenSeq}`);return}if(typeof r=="number"&&(this.lastSeenSeq=r),n.type==="notification"){if(this._maybeAcceptExternalChange(n))return;this.handleNotification(n);return}if(n.error){console.error("[LiveSync] Server error:",n.error),this.onError&&this.onError(new Error(n.error));return}if(this._applyEtagFrame(n))return;let{html:l,sender:o,identityMap:a}=n;if(o===this.clientId){this._log("Ignoring own message (sender matches clientId)");return}if(typeof l!="string"){console.error("[LiveSync] Received invalid html, ignoring");return}let h=typeof n.etag=="string"&&n.etag?n.etag:null;if(this.lane==="live"&&!h&&Ue()){this._log(`Dropping an unstamped live frame on a stamping host (seq=${r})`);return}if(this.lane==="saved"&&l===this._represented.bytes){this._represented=Object.freeze({bytes:l,etag:h||null,seq:r??null}),M(h);return}if(h&&l===this.lastHtml){this._log(`Taking the stamp from a peer save of content already applied (seq=${r})`),M(h),y&&y.isSaveConflicted()&&(y.conflictResolvedBySync(h),this._saveAfterMerge(x(),!1));return}this._log(`Received update from: ${o} (my clientId: ${this.clientId}, seq=${r})`),this.applyUpdate(l,r,a,h,n.by),this.onUpdate&&this.onUpdate({html:l,sender:o,seq:r,identityMap:a,etag:h})},this.sse.onerror=()=>{this.sse.readyState===EventSource.CONNECTING?console.log("[LiveSync] Reconnecting..."):this.sse.readyState===EventSource.CLOSED&&(console.log("[LiveSync] Connection closed"),this.onError&&this.onError(new Error("Connection closed"))),this.onDisconnect&&this.onDisconnect()}}listenForSnapshots(){this._snapshotHandler=e=>{if(!e.detail||e.detail.forSave!==!0)return;this._saveTicket=this._ticket();let{documentElement:t}=e.detail;if(!t)return;this._log("snapshot-ready received, preparing to send");let i=this.identity.exportMap(t,D);this._savedSnapshot?.abort?.abort();let n={html:null,steps:null,copy:null,abort:null,identityMap:i,ticket:this._saveTicket,captureId:e.detail.captureId??null};if(e.detail.sliced){n.copy=Ne(t),n.abort=new AbortController;let{signal:r}=n.abort;Promise.all([import("./c-YYMZWQLR.js"),import("./c-ZWBI4HYK.js")]).then(([{serializeForSyncSteps:l},{runSliced:o}])=>{if(r.aborted||typeof n.html=="string")return;let a=(function*(){let h=yield*l(n.copy);n.html=h,n.steps=null})();return n.steps=a,o(a,{signal:r})}).catch(()=>{})}else n.html=T(t);this._savedSnapshot=n},document.addEventListener("clay:snapshot-ready",this._snapshotHandler)}_enqueueSend(e,t,i=null){if(!this._profile){this._queuedSend={html:e,identityMap:t,etag:i},this._resolveProfile().then(()=>this._flushQueuedSend());return}if(this._sendInFlight){this._queuedSend={html:e,identityMap:t,etag:i};return}this._postUpdate(e,t,i)}_flushQueuedSend(){if(this.isDestroyed||this._sendInFlight)return;let e=this._queuedSend;e&&(this._queuedSend=null,this._postUpdate(e.html,e.identityMap,e.etag))}_relayCommit(e=null,t=null){if(this.isDestroyed)return;let i=se(),n=this._savedSnapshot;if(n&&(n.captureId??null)!==(e??null)){this._log("Skipping send - snapshot belongs to a different capture");return}let r=n;if(this._savedSnapshot=null,r?.copy&&typeof r.html!="string")if(r.abort?.abort(),r.steps)for(let c=r.steps.next();!c.done;c=r.steps.next());else r.html=T(r.copy);if(!r||typeof r.html!="string")return;let l=r;if(typeof t=="string"){try{l=rt(r,t,this.identity)}catch(c){this._log(`Skipping send - page relay failed: ${c&&c.message}`);return}if(!l){this._log("Skipping send - accepted capture has no page article");return}}let o=qt(e)??t,a=typeof o=="string"?ze(o):0;l={...l,html:Pt(We(l.html,Math.max(Ye(),a)),o)};let h=!i&&l.html===this.lastHtml;if(this._setPeerBase(l.html,l.identityMap,l.ticket),h){this._log("Skipping send - HTML unchanged");return}this._enqueueSend(l.html,l.identityMap,i||null)}_postUpdate(e,t,i=null,n=0){this._log(`Sending update (HTML length: ${e.length})`),this._sendInFlight=!0;let r=!1,l=this._profile||fe.legacy;fetch(new URL(l.relayPath,window.location.origin).href,{method:"POST",headers:{"Content-Type":"application/json",[l.documentHeader]:window.location.href,[je]:String(1)},body:Ht(l,e,this.clientId,t,i)}).then(o=>{o.ok||(console.warn("[LiveSync] Save returned status:",o.status),r=o.status>=500||o.status===408||o.status===429)}).catch(o=>{console.error("[LiveSync] Save failed:",o),this.onError&&this.onError(o),r=!0}).finally(()=>{this._sendInFlight=!1;let o=this._queuedSend;if(this._queuedSend=null,o){this._postUpdate(o.html,o.identityMap,o.etag);return}!r||!i||n>=3||this.isDestroyed||(this._sendInFlight=!0,setTimeout(()=>{if(this._sendInFlight=!1,this.isDestroyed)return;let a=this._queuedSend;this._queuedSend=null,a?this._postUpdate(a.html,a.identityMap,a.etag):this._postUpdate(e,t,i,n+1)},500*2**n))})}_startPresence(e,t){return this.isDestroyed||this._startGen!==t||this._presenceLease?null:e.connect({send:i=>this._postPresence(i)}).then(i=>this.isDestroyed||this._startGen!==t?(typeof i?.stop=="function"?i.stop():i?.detach(),null):(this._presenceLease=i||null,Ge("presence-editing")),()=>!1).then(i=>{if(!(!i||this.isDestroyed||this._startGen!==t||this._editing))return H().then(n=>{this.isDestroyed||this._startGen!==t||this._editing||(this._editing=new n.EditingSender({}),this._presenceQuiesced?this._editing.stop():(this._editing.start(),this._editing.roster(this._lastRoster)))})})}_postPresence(e){let t=new URL("/_/presence",window.location.origin);return t.searchParams.set("client-id",this.clientId),fetch(t.href,{method:"POST",headers:{"Content-Type":"application/json","Document-URL":window.location.href},body:JSON.stringify(e)}).then(i=>i.ok,()=>!1)}_maybeAcceptExternalChange(e){if(this.lane!=="live")return!1;let t=e.data;return t&&t.kind==="external-change"?(typeof t.html=="string"?this._enqueueExternal(t.html,e.seq,t.etag,t.by):this._fetchExternalChange(e.seq),!0):typeof e.msg=="string"&&e.msg.endsWith("changed on disk outside this tab")?(this._fetchExternalChange(e.seq),!0):!1}_enqueueExternal(e,t,i,n){if(typeof t=="number"){if(t<=this._lastExternalSeq){this._log(`Dropping replayed external change: seq=${t}`);return}this._lastExternalSeq=t}this._pendingExternal={html:e,seq:t,saveEpoch:this._saveEpoch,etag:typeof i=="string"&&i?i:null,by:n??null},this._scheduleNextFrame()}_fetchExternalChange(e){if(typeof e=="number"){if(e<=this._lastExternalSeq)return;this._lastExternalSeq=e}this._fetchServedDocument(e)}_fetchServedDocument(e,{attempt:t=0,repair:i=!1,startup:n=!1}={}){if(n&&(this._morphInFlight||this._pendingHtml!=null||this._pendingExternal!=null)){this._retryStartup(t);return}let r=this._saveEpoch,l=this._startGen,o=this.lastSeenSeq,a=this._applyGen,h=++this._servedFetchId;i&&typeof e!="number"&&(e=this._lastExternalSeq),fetch(new URL(window.location.href),{cache:"no-store"}).then(c=>c.ok?c.text():null).then(c=>{if(this.isDestroyed||c==null||this._startGen!==l)return;let d=At(c),_=n||i&&!!d;if(_){if(h!==this._servedFetchId){i&&this._retryStartup(t+1,{repair:i,startup:n},typeof e=="number"?Math.max(e,this._lastExternalSeq):e);return}if(r!==this._saveEpoch||o!==this.lastSeenSeq||a!==this._applyGen||this._morphInFlight||this._pendingHtml!=null||this._pendingExternal!=null){this._retryStartup(t+1,{repair:i,startup:n},e);return}if(d){if(d===re()){(i||n)&&this.lane==="saved"&&(this._represented=Object.freeze({bytes:c,etag:d,seq:e??null}));return}}else if(!i)return}else if(typeof e=="number"&&e<this._lastExternalSeq){i&&t<3&&this._fetchServedDocument(this._lastExternalSeq,{attempt:t+1,repair:i,startup:n});return}else if(this._saveEpoch>r){t<3&&(console.log("[LiveSync] Refetching external change: own save landed mid-fetch"),this._fetchServedDocument(e,{attempt:t+1,repair:i,startup:n}));return}this._pendingExternal={html:c,seq:e,saveEpoch:r,etag:d,by:null,fetchOptions:{repair:i,startup:n,attempt:t,versionCheck:_},startGen:l,seenSeq:o,applyGen:a,fetchId:h},this._scheduleNextFrame()}).catch(c=>{this._log("External-change fetch failed",c),typeof e=="number"&&this._lastExternalSeq===e&&(this._lastExternalSeq=e-1)})}_retryStartup(e=0,t={startup:!0},i){this.isDestroyed||e>3||(clearTimeout(this._startupRetry),this._startupRetry=setTimeout(()=>{if(this._startupRetry=null,!this.isDestroyed){if(this._morphInFlight||this._pendingHtml!=null||this._pendingExternal!=null){this._retryStartup(e,t,i);return}this._fetchServedDocument(i,{...t,attempt:e})}},16))}applyUpdate(e,t,i,n,r){this.isDestroyed||(this._pendingHtml=e,this._pendingSeq=t,this._pendingIdentityMap=i,this._pendingEtag=n??null,this._pendingBy=r??null,this._scheduleNextFrame())}prepareHandoff(e={}){return this._handoff?Promise.resolve(this._handoff):this.isDestroyed?Promise.reject(new Error("LiveSync: stopped")):(this._handoffHeld=!0,this._rafHandle!=null&&(this._cancelFrame(this._rafHandle),this._rafHandle=null),import("./c-NW54NHKE.js").then(({engineHandoff:t})=>t(this,e)).then(t=>this._handoff=t))}_scheduleNextFrame(){this.isDestroyed||this._handoffHeld||this._rafHandle==null&&(this._morphInFlight||(this._rafHandle=this._requestFrame(()=>this._runPending())))}async _runPending(){if(this._rafHandle=null,this.isDestroyed)return;if(!R()){this._morphInFlight=!0;try{await J()}catch(r){this._log("Merge engine failed to load",r),this._engineRetry=setTimeout(()=>this._scheduleNextFrame(),2e3);return}finally{this._morphInFlight=!1}if(this.isDestroyed)return}let e=this._pendingExternal,t=e?.fetchOptions||null,i=!!(t?.startup||t?.versionCheck),n=!1;if(e!=null&&(i&&this._pendingHtml!=null?n=!1:this._pendingHtml==null?n=!0:n=!(typeof e.seq=="number"&&typeof this._pendingSeq=="number"&&this._pendingSeq<e.seq)),n)if(this._pendingExternal=null,typeof e.seq=="number"&&e.seq<this._lastExternalSeq)i&&t?.repair?this._retryStartup((t.attempt||0)+1,t,this._lastExternalSeq):this._log("Dropping superseded external change at drain");else if(i&&e.startGen!==this._startGen)this._log("Dropping superseded startup check at drain");else if(i&&e.fetchId!==this._servedFetchId)t?.repair?this._retryStartup((t.attempt||0)+1,t,this._lastExternalSeq):this._log("Dropping superseded startup check at drain");else if(i&&(e.saveEpoch!==this._saveEpoch||e.seenSeq!==this.lastSeenSeq||e.applyGen!==this._applyGen))this._retryStartup((t.attempt||0)+1,t,e.seq);else if(i&&e.etag!=null&&e.etag===re())this._log("Startup check found the same version: nothing to apply");else if(!i&&e.saveEpoch!==this._saveEpoch)console.log("[LiveSync] Refetching external change: own save landed after queue"),this._fetchServedDocument(e.seq,t||{});else{this._morphInFlight=!0;try{await this._doApplyExternal(e.html,e.seq,e.etag,e.by,t)}catch(r){console.error("[LiveSync] applyExternal failed:",r)}finally{this._morphInFlight=!1}}else{let r=this._pendingHtml,l=this._pendingSeq,o=this._pendingIdentityMap,a=this._pendingEtag,h=this._pendingBy;if(this._pendingHtml=null,this._pendingSeq=null,this._pendingIdentityMap=null,this._pendingEtag=null,this._pendingBy=null,r==null)return;this._morphInFlight=!0;try{await this._doApplyUpdate(r,l,o,a,h)}catch(c){console.error("[LiveSync] applyUpdate failed:",c)}finally{this._morphInFlight=!1}}!this.isDestroyed&&(this._pendingHtml!=null||this._pendingExternal!=null)&&this._scheduleNextFrame()}_ticket(){return++this._agreeSeq}_setDiskBase(e,t){t<=this._diskBaseTicket||(this._diskBase=e,this._diskBaseTicket=t)}_setPeerBase(e,t,i){return i<this._peerBaseTicket?!1:(this._peerBaseTicket=i,this.lastHtml=e,this._lastIdentityMap=t&&typeof t=="object"&&!Array.isArray(t)?t:null,!0)}_requestFrame(e){return typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(e):setTimeout(e,16)}_cancelFrame(e){if(typeof window<"u"&&typeof window.cancelAnimationFrame=="function"){window.cancelAnimationFrame(e);return}clearTimeout(e)}async _mergeIncoming(e,t,{base:i,baseIdentityMap:n=null,captureLocal:r,synthetic:l,source:o="peer",seq:a=null,etag:h=null,extra:c={}}){R()||await J();let{beginApply:d,completeApply:_,failApply:g,beginLineageCapture:E}=at()||await V(),f,u=p=>{f=E(I.list());try{let v=R().HyperMorph.mergeDocument({...p,lineage:f.lineage});return f.returned(),v}catch(v){throw f.invalidate(I.list()),f.finish(I.list()),v}},S=this.identity,w=Ie,b=Lt(new WeakMap),N=p=>ye(p)?{first:b,map:p,then:b}:b,O=l?p=>b(p)||S.idOf(D(p)||p)||null:b,A=e,Ee=new Map;if(ye(t)){A=new DOMParser().parseFromString(e,"text/html"),ie(A);let p=R().HyperMorph.importMap(A.documentElement,t);for(let v of A.querySelectorAll("[data-id], [id]")){let k=b(v),be=k&&p.get(v);be&&Ee.set(k,be)}}A=ct(A);let Z={live:document,remote:A,ignore:p=>p.matches(ft),opaque:p=>p.matches(pt)||z()&&He(p),remoteWins:p=>p.matches(Dt),ignoreAttribute:(p,v,k)=>It(p,v,k)||z()&&Re(k||p,v),attributeMerge:lt,protectFocusedValue:!0,restoreFocus:document.activeElement?.localName!=="clay-editor-ui",keepLiveOnly:o==="peer",scripts:{mergeTags:R().mergeTagRecognizers},hooks:{beforeAttributeUpdated:w},...c},we=this.lane==="live"&&x(),ke=he(),G,ee=null,F=null;if(i==null)G=u({...Z,base:null,local:{root:X(r()),toLive:D},identity:{local:O,remote:N(t)}});else if(we){let p=r(),v=p.cloneNode(!0);ee=X(p),F=d({source:o,seq:a,etag:h,root:ee,recoveryRoot:v,domain:o==="disk"?"save":"sync"});try{G=u({...Z,base:ct(i),local:{root:ee,toLive:D},identity:{base:N(n),local:O,remote:N(t)}})}catch(k){throw g(F,k),k}}else{let p=X(r()),v=p.ownerDocument;v.documentElement!==p&&v.replaceChild(p,v.documentElement),G=u({...Z,base:v,local:{root:p,toLive:D},fastPath:!0,identity:{base:O,local:O,remote:N(t)}})}let U=this._ticket();this._morphTicket=U;let C;try{C=await G}catch(p){f.invalidate(I.list());try{F&&g(F,p,{ticket:U})}finally{f.finish(I.list())}throw p}let gt=he().gen!==ke.gen,xe;try{f.prepareComplete(C,I.list()),xe=F?_(F,C.conflicts,{ticket:U}):[]}finally{f.finish(I.list())}this.lane==="live"&&C.localDiverged?Je():we&&!C.localDiverged&&Ve(ke);let yt=new Set(ye(t)?Object.values(t):[]);for(let[p,v]of C.identities){let k=yt.has(v)?v:Ee.get(v);k&&S.adopt(p,k)}return{report:C,ticket:U,typedDuringWait:gt,conflictIds:xe}}_saveAfterMerge(e,t){(e||t)&&Xe()&&(y?y.savePageThrottled():bt())}async _doApplyUpdate(e,t,i,n,r=null){if(de(e)){await ue();return}this.lane==="live"&&!y&&await H(),this._log("applyUpdate - pausing mutations and morphing"),this.isPaused=!0;let l=window.scrollX,o=window.scrollY;q.pause(),oe();let a=!1,h=!1,c=!1;try{if(this.lane==="live"&&x()&&this.lastHtml===null){console.log("[LiveSync] Holding incoming update: unsaved local edits and no baseline to merge against"),this._setHeld("live",!0,null);let f=this._saveEpoch,u=this.lastSeenSeq;clearTimeout(this._holdRetryPeer),this._holdRetryPeer=setTimeout(()=>{this._holdRetryPeer=null,!(this.isDestroyed||this._pendingHtml!=null)&&this._saveEpoch===f&&this.lastSeenSeq===u&&(this._pendingHtml=e,this._pendingSeq=t,this._pendingIdentityMap=i,this._pendingBy=r,this._scheduleNextFrame())},3e3);return}this._setHeld("live",!1);let{report:d,ticket:_,typedDuringWait:g,conflictIds:E}=await this._mergeIncoming(e,i,{base:this.lastHtml,baseIdentityMap:this._lastIdentityMap,captureLocal:()=>P({flushUndo:!1}),synthetic:!0,source:"peer",seq:t,etag:n});if(a=d.localDiverged,h=g,ne(),window.scrollTo(l,o),this._setPeerBase(e,i,_),this._applyGen++,this._acceptedSaveTicket>_||(typeof n=="string"&&n?(M(n),c=!0):le()),this.lane==="live"&&!a&&!x()){let{forSave:f,forComparison:u,forDirty:S}=Y({emitForSync:!1,flushUndo:!1});y.setLastSavedBaselines(u,S),this._setDiskBase(f,this._ticket())}this.lane==="saved"&&(this._represented=Object.freeze({bytes:e,etag:n||null,seq:t??null})),document.dispatchEvent(new CustomEvent("clay:sync-applied",{detail:{seq:t,source:this.lane==="saved"?"disk":"peer",lane:this.lane,by:r||null,html:e,report:d,unresolved:this.unresolvedConflicts,conflictIds:E}}))}finally{this._log("applyUpdate - morph complete, resuming mutations"),q.resume(),ae(),await new Promise(d=>setTimeout(d,0)),this.isPaused=!1}c&&y?.conflictResolvedBySync(n),this._saveAfterMerge(a,h)}async _doApplyExternal(e,t,i=null,n=null,r=null){if(de(e)){await ue();return}this.lane==="live"&&!y&&await H();let l=this._diskBase;this._log(`applyExternal - external disk change (seq=${t})`),this.isPaused=!0;let o=window.scrollX,a=window.scrollY;q.pause(),oe();let h=!1,c=!1,d=!1;try{if(this.lane==="live"&&x()&&this._diskBase===null){if(console.log("[LiveSync] Holding external change: unsaved local edits and no baseline to merge against"),this._setHeld("external",!0,null),r?.startup||r?.versionCheck){clearTimeout(this._holdRetryExt),this._holdRetryExt=setTimeout(()=>{if(this._holdRetryExt=null,this.isDestroyed)return;let S=typeof t=="number"?Math.max(t,this._lastExternalSeq):t;this._retryStartup(0,r,S)},3e3);return}let u=this._saveEpoch;clearTimeout(this._holdRetryExt),this._holdRetryExt=setTimeout(()=>{this._holdRetryExt=null,!(this.isDestroyed||this._pendingExternal!=null)&&(this._pendingExternal={html:e,seq:t,saveEpoch:u,etag:i,by:n},this._scheduleNextFrame())},3e3);return}this._setHeld("external",!1);let{report:_,ticket:g,typedDuringWait:E,conflictIds:f}=await this._mergeIncoming(e,null,{base:this._diskBase,captureLocal:()=>Be().saveClone,synthetic:!1,source:"disk",seq:t,etag:i,extra:{beforeApply:u=>Ct(u.documentElement,this.lane)}});if(h=_.localDiverged,c=E,ne(),this._setDiskBase(e,g),window.scrollTo(o,a),this._acceptedSaveTicket>g||(typeof i=="string"&&i?(M(i),d=!0):le()),this.lane==="live"&&!h&&!x()){y.setLastSavedBaselines(...Ft()),y.setUnsavedChanges(!1);let u=P({flushUndo:!1});this._setPeerBase(T(u),this.identity.exportMap(u,D),g),this._applyGen++}this.lane==="saved"&&(this._represented=Object.freeze({bytes:e,etag:i||null,seq:t??null})),document.dispatchEvent(new CustomEvent("clay:sync-applied",{detail:{seq:t,source:"disk",etag:typeof i=="string"&&i?i:null,by:n||null,html:e,report:_,conflictIds:f,unresolved:this.unresolvedConflicts}}))}finally{this._log("applyExternal - morph complete, resuming mutations"),q.resume(),ae(),await new Promise(_=>setTimeout(_,0)),this.isPaused=!1}d&&y?.conflictResolvedBySync(i),this._saveAfterMerge(h,c),l!=null&&j(l)===j(e)&&y&&y.schedulePaintHeal(()=>this._diskBase==null?null:j(this._diskBase))}handleNotification({msgType:e,msg:t,action:i,persistent:n,data:r}){this._log(`Notification received: ${e} - ${t}`),e==="data-loss"||(n&&window.toastPersistent?window.toastPersistent(t,e):window.toast?window.toast(t,e):console.log(`[LiveSync] Notification: ${t}`)),document.dispatchEvent(new CustomEvent("clay:notification",{detail:{msgType:e,msg:t,action:i,persistent:n,data:r}})),this.onNotification&&this.onNotification({msgType:e,msg:t,action:i,persistent:n,data:r})}stop(){this.cleanup(),this.isDestroyed=!0,console.log("[LiveSync] Stopped")}editParticipant(){return H().then(e=>e.syncParticipant(this))}},K=null;Oe((s,e)=>{K=typeof s=="string"?{html:s,captureId:e?.captureId??null}:null});var qt=s=>K&&(K.captureId??null)===(s??null)?K.html:null;function Pt(s,e){if(typeof e!="string"||e===s)return s;let t=i=>new DOMParser().parseFromString(i,"text/html").documentElement;return t(s).isEqualNode(t(e))?e:s}var Se=new ve;typeof window<"u"&&!dt&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Se.start()):Se.start());var gn=(s,e,t)=>J().then(({morph:i})=>i(s,e,t));var yn=Se;export{I as a,ft as b,Dt as c,ve as d,Se as e,gn as f,yn as g};
@@ -1,72 +0,0 @@
1
- import{b as N}from"./c-HAWFNBYG.js";import{N as q,na as U,ra as D,sa as j}from"./c-QIXT3Q7C.js";import{b as O}from"./c-QY7F6EN6.js";import{a as M,b as I}from"./c-RHMPKZZ7.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var E=class extends Error{constructor(t,o){super(o),this.name="PageExportError",this.code=t}},z=(e,t)=>{throw new E(e,t)},_=/^data:image\/(?:png|jpe?g|gif|webp);/i,G=/^(?:javascript|vbscript|data):/i,V=/^https?:\/\//i,Y=/^\/(?!\/)/,H=e=>String(e??"").trim().replace(/[\u0000-\u0020]/g,""),K=e=>_.test(e)||!G.test(e);function J(e){let t=H(e);if(!t||t.startsWith("#"))return null;if(_.test(t))return{url:t,inline:!0};if(/^\/\//.test(t))return{url:`https:${t}`,inline:!1};if(Y.test(t)||V.test(t))return{url:t,inline:!1}}var Q={img:"image",iframe:"embed",embed:"embed",object:"embed",video:"embed",audio:"embed",source:"embed",track:"embed"},Z={object:"data"},ee=/<(?:img|svg|video|audio|canvas|iframe|table)\b/i,te=/<(?:meta|style|img|br|hr|input)\b[^>]*>/gi,S=e=>e.closest?.("[data-id]")?.getAttribute("data-id")||null,re=(e,t)=>t?`${e} in block ${t}`:e;function oe(e){let t=[],o=new Set,i=(r,c,l)=>{let s=J(c);if(s===void 0&&z("unsafe-url",`The ${re(r,l)} points at ${String(c).trim().slice(0,120)}, which a reading copy cannot carry`),!s)return;let f=`${r}\0${s.url}`;o.has(f)||(o.add(f),t.push({kind:r,url:s.url,blockId:l??null,inline:s.inline}))};for(let r of e.querySelectorAll("*")){let c=r.tagName.toLowerCase(),l=Q[c];if(l&&i(l,r.getAttribute(Z[c]??"src"),S(r)),c==="img"||c==="source")for(let s of String(r.getAttribute("srcset")??"").split(","))i("image",s.trim().split(/\s+/)[0],S(r))}for(let r of e.querySelectorAll('[data-type="file"]'))i("attachment",r.getAttribute("data-src"),S(r)),i("attachment",r.querySelector("a[href]")?.getAttribute("href"),S(r));for(let r of e.querySelectorAll('figure[data-type="chart"]')){let c=S(r),l=`chart\0${c??""}`;o.has(l)||(o.add(l),t.push({kind:"chart",url:null,blockId:c??null,inline:!0}))}return t}function ne(e){for(let t of[...e.querySelectorAll("script, style, link, meta, base")])t.remove();for(let t of e.querySelectorAll("*"))for(let{name:o,value:i}of[...t.attributes]){let r=o.toLowerCase();if(r.startsWith("on")||r==="clay"||r==="merge"||r==="live"||r==="srcdoc"||r.startsWith("data-clay")||r.startsWith("clay-")){t.removeAttribute(o);continue}/^(href|src|action|formaction|poster|data-src|xlink:href)$/.test(r)&&!K(H(i))&&t.removeAttribute(o)}}function ae(e){for(let t of e.querySelectorAll('nav[data-type="toc"]'))for(let o of[...t.querySelectorAll("a")])o.replaceWith(o.ownerDocument.createTextNode(o.textContent))}var ie=e=>e.map(t=>t.t==="toggle"?{...t,open:!0}:t),se=(e,t)=>{let o=t.fallback(String(e??""));return ee.test(o)||o.replace(te,"").replace(/<[^>]+>/g,"").trim()!==""},le=e=>String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),ce=`:root { color-scheme: light dark; }
2
- body { margin: 0; background: #ffffff; color: #37352f; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.6; }
3
- article[data-page] { max-width: 46rem; margin: 0 auto; padding: 3rem 1.25rem 6rem; }
4
- article[data-page] > * { margin: 0.7em 0; }
5
- header[data-page-heading] { position: relative; margin-bottom: 1.6em; }
6
- header[data-page-heading] img[data-page-cover] { display: block; width: 100%; max-height: 18rem; object-fit: cover; border-radius: 6px; margin-bottom: 1em; }
7
- header[data-page-heading] span[data-page-icon] { display: block; font-size: 2.6em; line-height: 1.2; }
8
- h1, h2, h3, h4, h5, h6 { line-height: 1.25; font-weight: 650; margin: 1.2em 0 0.3em; }
9
- h1 { font-size: 2em; }
10
- h2 { font-size: 1.5em; }
11
- h3 { font-size: 1.2em; }
12
- p, li { max-width: 100%; }
13
- a { color: #0b6bcb; }
14
- blockquote { margin-left: 0; padding-left: 1em; border-left: 3px solid rgba(55, 53, 47, 0.2); color: #5b5952; }
15
- aside.page-callout { border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 6px; padding: 0.8em 1em; background: rgba(55, 53, 47, 0.04); }
16
- pre { overflow-x: auto; padding: 0.9em 1em; border-radius: 6px; background: rgba(55, 53, 47, 0.06); font-size: 0.9em; }
17
- code { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; font-size: 0.92em; }
18
- pre code { font-size: inherit; }
19
- details { margin: 0.4em 0; }
20
- details > summary { cursor: pointer; font-weight: 600; }
21
- details > summary h1, details > summary h2, details > summary h3 { display: inline; margin: 0; }
22
- hr { border: 0; border-top: 1px solid rgba(55, 53, 47, 0.18); }
23
- table { border-collapse: collapse; width: 100%; }
24
- th, td { border: 1px solid rgba(55, 53, 47, 0.18); padding: 0.4em 0.6em; text-align: left; vertical-align: top; }
25
- th { background: rgba(55, 53, 47, 0.04); font-weight: 600; }
26
- figure { margin: 1em 0; }
27
- figure img { max-width: 100%; height: auto; border-radius: 4px; }
28
- figcaption { font-size: 0.88em; color: #78766f; margin-top: 0.4em; }
29
- figure[data-type="chart"] svg { max-width: 100%; height: auto; }
30
- section[data-type="board"] { display: flex; gap: 1em; overflow-x: auto; align-items: flex-start; }
31
- section[data-type="board"] > div { min-width: 12rem; border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 6px; padding: 0.6em 0.8em; }
32
- section[data-type="board"] h4 { margin: 0 0 0.4em; font-size: 0.95em; }
33
- section[data-type="board"] ul { list-style: none; margin: 0; padding: 0; }
34
- section[data-type="board"] li { border: 1px solid rgba(55, 53, 47, 0.14); border-radius: 4px; padding: 0.4em 0.5em; margin-bottom: 0.4em; }
35
- nav[data-type="toc"] ul { list-style: none; padding-left: 0; }
36
- nav[data-type="toc"] ul ul { padding-left: 1.2em; }
37
- li > input[type="checkbox"] { margin-right: 0.4em; }
38
- [data-type="file"] a { display: inline-block; padding: 0.4em 0.7em; border: 1px solid rgba(55, 53, 47, 0.18); border-radius: 4px; }
39
- @media (prefers-color-scheme: dark) {
40
- body { background: #191919; color: #d4d4d4; }
41
- aside.page-callout, th, pre { background: rgba(255, 255, 255, 0.06); }
42
- th, td, section[data-type="board"] > div, section[data-type="board"] li, [data-type="file"] a { border-color: rgba(255, 255, 255, 0.16); }
43
- a { color: #6cb0f5; }
44
- }`;function de(e,t){return`<!DOCTYPE html>
45
- <html lang="en">
46
- <head>
47
- <meta charset="utf-8">
48
- <meta name="viewport" content="width=device-width, initial-scale=1">
49
- <title>${le(e)}</title>
50
- <style>
51
- ${ce}
52
- </style>
53
- </head>
54
- <body>
55
- <article data-page="1">
56
- ${t}
57
- </article>
58
- </body>
59
- </html>
60
- `}function B(e,{title:t=null,fallbackOf:o=null,doc:i=globalThis.document}={}){if(!Array.isArray(e))throw new TypeError("page: an export renders a projection model");let r=D(i),c=o??(u=>e.find(m=>m.id===u)?.artifact?.fallbackHtml??"");for(let u of e)u.t==="tool"&&!se(c(u.id),r)&&z("unsupported-tool",`Block ${u.id} holds a tool with no static rendering, which a reading copy cannot show`);let l=i.createElement("div");l.innerHTML=j(ie(e),{fallbackOf:c,clean:r});let s=oe(l);ne(l),ae(l);let f=t??N(e);return{html:de(f,l.innerHTML),title:f,resources:s}}var F=Object.freeze({perResource:20971520,total:52428800,timeout:1e4,inFlight:3}),ue=[/^image\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)$/i,/^font\/(?:woff2?|ttf|otf|sfnt|collection|eot)$/i,/^application\/(?:font-woff2?|vnd\.ms-fontobject|x-font-ttf|x-font-opentype|vnd\.ms-opentype)$/i,/^audio\/[a-z0-9][a-z0-9.+-]*$/i,/^video\/[a-z0-9][a-z0-9.+-]*$/i],fe=/^(?:text\/(?:html|javascript|css|xml|xsl)|application\/(?:xhtml\+xml|xml|javascript|ecmascript|x-javascript|wasm)|image\/svg\+xml)$|\+xml$/i;function pe(e,t="image"){let o=String(e??"").split(";")[0].trim();return o===""?!1:t==="attachment"?!fe.test(o):ue.some(i=>i.test(o))}function v(e,t=globalThis.document?.baseURI??null){let o=String(e??"").trim();if(!o||o.startsWith("#"))return null;try{let i=new URL(o,t??void 0);return i.hash="",i.href}catch{return null}}var me=e=>String(e??"").trim().replace(/[\u0000-\u0020]/g,""),ge=e=>/^(?:localhost|127(?:\.\d{1,3}){3}|0\.0\.0\.0|\[::1\]|::1)$/i.test(e||"")||/\.local$/i.test(e||""),L=e=>{try{return new URL(e).origin}catch{return null}},he=e=>{try{return new URL(e).hostname}catch{return null}},C=e=>e>=1024*1024?`${Math.round(e/(1024*1024))} MiB`:e>=1024?`${Math.round(e/1024)} KiB`:`${Math.round(e)} B`,A=e=>e.blockId?`The ${e.kind} in block ${e.blockId}`:`The ${e.kind}`,y=(e,t,o)=>({code:e,kind:t.kind??null,url:t.url??null,blockId:t.blockId??null,message:o});function be(e,t){let o=e.blockId??null,i=o?` in block ${o}`:"";return{code:"unsupported-embed",kind:"embed",url:e.url??null,blockId:o,message:`The embed${i} is a live frame, which a reading copy cannot carry${t?` (${t})`:""}`}}function ye(e){let t=e.blockId??null,o=t?` in block ${t}`:"";return{code:"unsupported-url",kind:e.kind??null,url:e.url??null,blockId:t,message:`The ${e.kind}${o} points at ${String(e.url??"").trim().slice(0,120)}, which is not an address a reading copy can fetch`}}var P=e=>e?e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e):new Uint8Array(0);function xe(e){let t="";for(let o=0;o<e.length;o+=32768)t+=String.fromCharCode(...e.subarray(o,o+32768));return globalThis.btoa(t)}var we=(e,t)=>`data:${String(e).split(";")[0].trim()};base64,${xe(t)}`;async function $e(e,t,o,i){let r=Number(e.headers?.get?.("content-length"));if(Number.isFinite(r)&&r>o.perResource)throw y("too-large",t.target,`${A(t.target)} at ${t.target.url} is larger than ${C(o.perResource)}`);let c=()=>{if(t.bytes>o.perResource)throw y("too-large",t.target,`${A(t.target)} at ${t.target.url} is larger than ${C(o.perResource)}`);if(i.exhausted||i.spent+i.live>i.total)throw i.exhausted=!0,y("total-too-large",t.target,`The page's resources together are larger than ${C(i.total)}`)},l=e.body?.getReader?.();if(!l){let m=P(typeof e.arrayBuffer=="function"?await e.arrayBuffer():e.body);t.bytes+=m.byteLength,i.live+=m.byteLength;try{c()}finally{i.live-=m.byteLength,t.bytes<=o.perResource&&(i.spent+=m.byteLength)}return m}let s=[];try{for(;;){let{done:m,value:x}=await l.read();if(m)break;let g=P(x);t.bytes+=g.byteLength,i.live+=g.byteLength,c(),s.push(g)}}catch(m){i.live-=t.bytes,t.bytes=0;try{await l.cancel?.()}catch{}throw m}i.live-=t.bytes,i.spent+=t.bytes;let f=new Uint8Array(t.bytes),u=0;for(let m of s)f.set(m,u),u+=m.byteLength;return f}async function Ae(e,{fetchImpl:t,baseOrigin:o,baseHost:i,limits:r,budget:c,run:l}){let{target:s,controller:f}=e;if(l.signal.aborted)return{target:s,loss:y("cancelled",s,`Reading ${s.url} was cancelled`)};let u=()=>f.abort();l.signal.aborted?f.abort():l.signal.addEventListener("abort",u,{once:!0});let m=setTimeout(()=>{e.timedOut=!0,f.abort()},r.timeout),x=o!=null&&L(s.url)===o;try{let g=await t(s.url,{credentials:x?"include":"omit",signal:f.signal});if(!g||g.ok===!1){let a=g?.status??0;throw y("missing-resource",s,`${A(s)} is not at ${s.url} (the host answered ${a||"nothing"})`)}let w=g.headers?.get?.("content-type")??"";if(!pe(w,s.kind))throw y("mime-refused",s,`${A(s)} at ${s.url} is ${String(w).split(";")[0].trim()||"of no stated type"}, which a reading copy does not carry`);let n=await $e(g,e,r,c);return{target:s,hit:{data:we(w,n),type:String(w).split(";")[0].trim(),bytes:n.byteLength}}}catch(g){return g&&typeof g.code=="string"&&typeof g.message=="string"?{target:s,loss:g}:e.timedOut?{target:s,loss:y("timeout",s,`${A(s)} at ${s.url} did not arrive within ${Math.round(r.timeout/1e3)} s`)}:l.signal.aborted||f.signal.aborted?{target:s,loss:y("cancelled",s,`Reading ${s.url} was cancelled`)}:x?ge(i)?{target:s,loss:y("offline-host",s,`${A(s)} at ${s.url} could not be read: this copy's host is not reachable`)}:{target:s,loss:y("unreachable",s,`${A(s)} at ${s.url} could not be read`)}:{target:s,loss:y("cross-origin-cors",s,`${A(s)} at ${s.url} could not be read: ${L(s.url)??"the other origin"} refused a cross-origin read`)}}finally{clearTimeout(m),l.signal.removeEventListener("abort",u)}}async function ke(e,t,o){let i=e.slice(),r=async()=>{for(;;){let c=i.shift();if(!c)return;await o(c)}};await Promise.all(Array.from({length:Math.max(1,Math.min(t,i.length))},r))}function ve(e,t,o){let i=new DOMParser().parseFromString(String(e??""),"text/html");for(let r of[...i.querySelectorAll("script, link, base, style[media]")])r.remove();for(let r of[...i.querySelectorAll("iframe, embed, object, video, audio, source, track, picture")])r.remove();for(let r of i.querySelectorAll("img")){let c=t.get(v(r.getAttribute("src"),o));c?r.setAttribute("src",c.data):r.removeAttribute("src"),r.removeAttribute("srcset"),r.removeAttribute("poster")}for(let r of i.querySelectorAll('[data-type="file"]')){let c=t.get(v(r.getAttribute("data-src"),o))??t.get(v(r.querySelector("a[href]")?.getAttribute("href"),o));if(c){r.setAttribute("data-src",c.data);let l=r.querySelector("a[href]");l&&l.setAttribute("href",c.data)}else r.removeAttribute("data-src"),r.querySelector("a[href]")?.removeAttribute("href")}for(let r of i.querySelectorAll("[style]")){let c=String(r.getAttribute("style")).split(";").filter(l=>!/url\s*\(|@import/i.test(l)).join(";").trim();c?r.setAttribute("style",c):r.removeAttribute("style")}return`<!DOCTYPE html>
61
- ${i.documentElement.outerHTML}`}var Se=[..."src srcset poster data data-src xlink:href".split(" "),"href"],Ee=e=>{let t=me(e);return!t||t.startsWith("#")?!1:!/^data:/i.test(t)};function Te(e){let t=new DOMParser().parseFromString(String(e??""),"text/html"),o=[];for(let i of t.querySelectorAll("*")){let r=i.tagName.toLowerCase();for(let l of Se){if(!i.hasAttribute(l)||l==="href"&&r!=="link"&&r!=="script"&&r!=="base"||l==="data"&&r!=="object"||l==="data-src"&&!i.closest?.('[data-type="file"]'))continue;let s=i.getAttribute(l),f=l==="srcset"?String(s).split(",").map(u=>u.trim().split(/\s+/)[0]):[s];for(let u of f)Ee(u)&&o.push({tag:r,attr:l,value:u})}let c=i.getAttribute("style");c&&/url\s*\(|@import/i.test(c)&&o.push({tag:r,attr:"style",value:c})}for(let i of t.querySelectorAll("style"))/url\s*\(|@import/i.test(i.textContent??"")&&o.push({tag:"style",attr:"text",value:i.textContent});return o}async function W(e,{resources:t=[],base:o=globalThis.document?.baseURI??null,fetch:i=globalThis.fetch,signal:r=null,limits:c=F}={}){let l={...F,...c??{}},s=[],f=new Set,u=a=>{let d=`${a.code}\0${a.blockId??""}\0${a.message}`;f.has(d)||(f.add(d),s.push(a))},m=new Map;for(let a of t??[]){if(!a||a.kind==="chart"||a.inline)continue;let d=a.url?v(a.url,o):null;if(a.kind==="embed"){u(be(a,d));continue}if(!d){u(ye(a));continue}let b=m.get(d)??{url:d,kind:a.kind,blockId:a.blockId??null};b.blockId??=a.blockId??null,m.set(d,b)}let x=[...m.values()],g=new Map,w={spent:0,live:0,total:l.total,exhausted:!1};if(x.length&&typeof i!="function")for(let a of x)u(y("unavailable",a,`${A(a)} at ${a.url} could not be read: this page cannot fetch it`));else if(x.length){let a=new AbortController,d=()=>a.abort();r&&(r.aborted?a.abort():r.addEventListener("abort",d,{once:!0}));let b=o?L(v(o,o)??o):null,$=o?he(v(o,o)??o):null,k=new Map;try{let h=x.map(p=>({target:p,controller:new AbortController,bytes:0,timedOut:!1}));await ke(h,l.inFlight,async p=>{a.signal.aborted||k.set(p.target.url,await Ae(p,{fetchImpl:i,baseOrigin:b,baseHost:$,limits:l,budget:w,run:a}))})}finally{r?.removeEventListener("abort",d)}for(let h of x){let p=k.get(h.url);p?.hit?g.set(h.url,p.hit):p?.loss?u(p.loss):a.signal.aborted?u(y("cancelled",h,`Reading ${h.url} was cancelled`)):u(y("unreachable",h,`${A(h)} at ${h.url} could not be read`))}}let n=ve(e,g,o);return{html:n,losses:s,remote:Te(n),embedded:g.size,bytes:w.spent}}var Ce=80,Le=/[\u0000-\u001f\u007f<>:"/\\|?*]+/g;function Re(e){let t=String(e??"").replace(Le," ").replace(/\s+/g," ").replace(/^\.+/,"").trim().slice(0,Ce).trim();if(t)return`${t}.html`;try{return`${M()}.html`}catch{return"page.html"}}var Me=`
62
- :host{font:inherit !important;color:inherit !important}
63
- .page-export-panel{max-width:46ch;margin:8px 0;padding:10px 12px;border:1px solid var(--page-pop-line);border-radius:8px;background:var(--page-pop-bg);color:var(--page-pop-ink);box-shadow:var(--page-pop-shadow);font-size:.88em}
64
- .page-export-title{margin:0 0 2px;font-weight:600}
65
- .page-export-when{margin:0 0 6px;color:var(--page-ink-soft)}
66
- .page-export-losses{margin:6px 0;padding-left:1.1em}
67
- .page-export-losses li{margin:2px 0}
68
- .page-export-acts{display:flex;gap:6px;margin-top:8px}
69
- .page-export-btn{border:0;padding:4px 8px;border-radius:6px;background:none;color:inherit;font:inherit;cursor:pointer}
70
- .page-export-btn:hover{background:var(--page-pop-hover)}
71
- .page-export-panel[data-state="loss"] .page-export-title{color:var(--page-danger, #9E3B2F)}
72
- `;function Be({view:e=null,download:t=I,fetch:o=null,now:i=()=>new Date}={}){if(!e)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let r=e.dom.ownerDocument,c=null,l=!1,s=(n,a,d,b)=>{a.addEventListener(d,b),n.listen.push([a,d,b])},f=(n,a)=>{let d=r.createElement("button");return d.type="button",d.className="page-export-btn",d.dataset.act=n,d.textContent=a,d};function u(){let n=c;if(n){c=null;for(let[a,d,b]of n.listen)a.removeEventListener(d,b);n.abort?.abort(),n.ui?.remove()}}function m(n){let a=n.panel??(n.panel=r.createElement("aside"));a.className="page-export-panel",a.dataset.state=n.ready?"ready":"loss",a.setAttribute("contenteditable","false"),a.setAttribute("role","dialog"),a.setAttribute("aria-modal","false"),a.setAttribute("aria-labelledby","page-export-title"),a.dataset.at=n.at.toISOString(),a.setAttribute("tabindex","-1"),a.textContent="";let d=r.createElement("p");d.className="page-export-title",d.id="page-export-title";let b=n.ready?"Reading copy":"This page cannot be a reading copy yet";d.textContent=n.title?`${b}: ${n.title}`:b;let $=r.createElement("p");$.className="page-export-when";let k=`${n.at.toLocaleString()} \xB7 ${n.embedded} ${n.embedded===1?"resource":"resources"} inside the file`;if($.textContent=k,a.append(d,$),n.losses.length){let T=r.createElement("ul");T.className="page-export-losses";for(let X of n.losses){let R=r.createElement("li");R.textContent=X.message,T.append(R)}a.append(T)}let h=r.createElement("div");h.className="page-export-acts",n.ready?h.append(f("download","Download"),f("close","Close")):h.append(f("retry","Try again"),f("close","Close")),a.append(h);let p=h.firstChild;n.ui||(n.ui=O({name:"page-export",content:a,css:[Me],parent:e.dom.parentElement??r.body})),(n.ready?p:a).focus?.()}function x(n){s(n,n.panel,"click",async a=>{let d=a.target.closest?.("[data-act]");d&&(a.preventDefault(),d.dataset.act==="close"?u():d.dataset.act==="download"?await g(n):d.dataset.act==="retry"&&w().catch(b=>console.error("clayjs: the reading copy could not be made",b)))}),s(n,r,"keydown",a=>{a.key!=="Escape"||c!==n||(a.preventDefault(),a.stopPropagation(),u())},!0)}async function g(n){if(!n.ready||l)return{ok:!1,code:"not-editing"};let a=await t({html:n.ready.html,name:n.ready.name});return u(),{ok:a===!0,downloaded:a===!0}}async function w(){if(l||e.isDestroyed)return{ok:!1,code:"not-editing"};u();let n={at:i(),title:"",panel:null,listen:[],abort:new AbortController,losses:[],embedded:0,ready:null},a=q(e.state.doc),d=U(a),b=r.baseURI,$;try{$=B(d,{fallbackOf:p=>typeof a[p]?.artifact?.fallbackHtml=="string"?a[p].artifact.fallbackHtml:"",doc:r})}catch(p){if(!(p instanceof E))throw p;return n.title=null,n.losses=[{code:p.code,message:p.message}],c=n,m(n),x(n),{ok:!1,code:p.code,message:p.message}}n.title=$.title||"Untitled",c=n;let k=o??globalThis.fetch,h=await W($.html,{resources:$.resources,base:b,fetch:k,signal:n.abort.signal});if(l||e.isDestroyed||c!==n)return{ok:!1,code:"not-editing"};n.embedded=h.embedded,n.losses=h.losses.slice();for(let p of h.remote??[])n.losses.push({code:"remote-reference",message:`The ${p.tag} in the reading copy still points at ${String(p.value).slice(0,120)}`});return n.losses.length||(n.ready={html:h.html,name:Re(n.title)}),m(n),x(n),n.ready?{ok:!0,title:n.title,name:n.ready.name,embedded:n.embedded}:{ok:!1,code:"resource-losses",losses:n.losses}}return{run:w,dispose(){l=!0,u()}}}export{Be as createFeature};
@@ -1 +0,0 @@
1
- import{a as s}from"../c-VKEDWYDF.js";import{q as u}from"../c-2ZVOEU4M.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-GSRLXYWL.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-XCFQEWW6.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import{f as d}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import{b as a}from"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var c=()=>window.clay?.conflicts||null,o=!1,i=null,r=null;function e(n){o||(o=!0,m(),import("../c-T5NK2TVY.js").then(t=>{i=t,t.start(n)},t=>{console.error("clayjs: the conflict notice could not be downloaded; it will try again on the next conflict",t),o=!1,l()}))}function l(){r||=new AbortController;let{signal:n}=r;document.addEventListener("clay:sync-conflicts-changed",p,{signal:n}),document.addEventListener("clay:save-conflict",g,{signal:n}),document.addEventListener("clay:document-upgraded",h,{signal:n}),document.addEventListener("clay:undo-kept",y,{signal:n})}function m(){r?.abort(),r=null}function p(n){c()?.size&&e(n)}function g(n){e(n)}function h(n){e(n)}function y(n){n?.detail?.ok===!0&&e(n)}var v="conflicts",E="undo",f=n=>a.local.get(n)?.count>0;function w(){f(E)&&e(null),f(v)&&import("../c-OIDRZKAF.js").then(n=>{!o&&n.pendingConflicts()>0&&e(null)},()=>{})}function b(){let n=(c()?.list?.()??[]).filter(t=>!t.claimedBy).map(t=>t.id);return n.length?n:u()?["save"]:[]}function x(){return{id:"clay:conflict-notice",order:960,prepare(n={}){return{enable(){n.initial!==!0&&!i&&!o&&l()},quiesce(){let t=b();if(t.length)throw Object.assign(new Error("clay.conflict-notice: a conflict here is still unresolved"),{code:"conflict",pending:t})},resume(){},dispose(){m(),o=!1,i?.stop?.(),i=null}}}}}s(()=>{d&&(c()?.size?e(null):(l(),w()))});export{x as conflictNoticeParticipant,x as modeParticipant};
@@ -1 +0,0 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k}from"../c-N7JPUPGC.js";import"../c-VHNSBD2M.js";export{a as DRAFT_ATTR,b as DRAFT_PLUGIN,e as draftEligible,d as draftSlot,k as draftStoreFailed,g as draftTransport,i as flushDraft,c as noteBootParams,h as setDraftFlush,j as setDraftStoreFailed,f as setDraftTransport};
@@ -1 +0,0 @@
1
- import{A as C,B as D,C as E,D as F,E as G,F as H,G as I,H as J,I as K,J as L,K as M,L as N,M as O,N as P,O as Q,P as R,Q as S,R as T,S as U,T as V,U as W,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p,o as q,p as r,q as s,r as t,s as u,t as v,u as w,v as x,w as y,x as z,y as A,z as B}from"../c-2ZVOEU4M.js";import{a as e}from"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-GSRLXYWL.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import{b as c,c as d}from"../c-XCFQEWW6.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{K as b,r as a}from"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{e as SLICED_SAVE_MIN_BYTES,l as acceptedReceipt,a as addDocumentTransform,m as adoptEntryBaseline,h as autosaveIsSuspended,S as autosaveScheduler,L as baselineSettled,x as closeSavePermit,t as conflictResolvedBySync,M as currentPaintSignature,W as default,H as flushSave,C as getLastSavedBytes,A as getLastSavedContents,B as getLastSavedDirty,b as getPageContents,y as getUnsavedChanges,o as holdAllSaves,V as init,U as initHyperclaySaveButton,T as initSaveKeyboardShortcut,d as inspectSaveSize,s as isSaveConflicted,n as modeParticipant,w as openSavePermit,p as releaseAllSaves,Q as releaseBootSettle,J as replacePageWith,g as resumeAutosave,u as saveGeneration,r as saveHoldReason,c as saveLimits,I as saveOverwritingConflict,F as savePage,G as savePageForce,K as savePageSoon,R as savePageThrottled,k as saveSession,i as savesAdmitted,q as savesHeld,N as schedulePaintHeal,j as sessionParked,D as setLastSavedBaselines,E as setLastSavedContents,v as setSaveGeneration,z as setUnsavedChanges,P as styleAdoptionPending,O as styleAdoptionsSettled,f as suspendAutosave};
@@ -1 +0,0 @@
1
- import{d as g,e as h,f as i,g as j,h as k,i as l,j as m,k as n,l as o,m as p,n as q,o as r,p as s,q as t,r as u,s as v,t as w,u as x,v as y,w as z,x as A}from"../c-XCFQEWW6.js";import{a as d}from"../c-ATKAOH23.js";import{b as e,h as f}from"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{K as c,k as a,r as b}from"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{e as PAGE_FORMAT_META,b as addDocumentTransform,u as buildSaveRequest,r as claimDocumentOperation,A as exitSave,c as getPageContents,i as isSaveInProgress,l as keepaliveHeld,f as knownPageFormatFloor,p as mintSaveId,d as onSaveAccepted,m as onSaveAttempt,n as onSaveOutcome,a as onSnapshot,t as operationKind,s as releaseDocumentOperation,k as releaseSaveLane,y as replacePageWith,j as reserveSaveLane,q as resetSaveAttempts,w as saveCapturedHtml,x as saveConversion,o as saveFateIsUnknown,v as saveHtml,z as setExitSave,g as setSaveHeader,h as withKeepalive};
@@ -1 +0,0 @@
1
- import{a as J}from"./c-RS77ODLY.js";import"./c-7SWMYKAI.js";import{f as W}from"./c-46XYM55L.js";import{b as V}from"./c-FILLTJA7.js";import{a as $}from"./c-VKEDWYDF.js";import"./c-UGHH4MB3.js";import"./c-LA2BW7UY.js";import"./c-IJUK2GPW.js";import{b as F}from"./c-CYWLPPUS.js";import{i as H}from"./c-VG5XIN4T.js";import{a as G}from"./c-2YYDMLNZ.js";import{c as B,l as z}from"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var X={always:["lib/mutation.js","core/preserve-authored.js","core/edit-mode.js","core/mode-key.js","core/stale-host-notice.js","core/page-data.js"],editOnly:["core/snapshot.js","core/persist.js","core/admin-attrs.js","core/save-core.js","core/save.js","core/conflict-notice.js","core/recovery.js","core/unsaved-warning.js","core/autosave.js","attrs/save-freeze.js","attrs/onaftersave.js","attrs/refetch-on-save.js","attrs/add-from.js","lib/cache-bust.js"]},w={richclay:{path:"plugins/richclay.js",editOnly:!0,default:!0},indicator:{path:"plugins/indicator.js",editOnly:!0,default:!1},sync:{path:"sync/live-sync.js",editOnly:!1,default:!1},live:{path:"plugins/live.js",editOnly:!1,default:!1},page:{path:"plugins/page.js",editOnly:!0,default:!1},"page-view":{path:"plugins/page-view.js",editOnly:!1,default:!1,internal:!0},sortable:{path:"plugins/sortable.js",editOnly:!0,default:!1},undo:{path:"plugins/undo.js",editOnly:!0,default:!1},unsent:{path:"plugins/unsent.js",editOnly:!0,default:!1},cms:{path:"plugins/cms.js",editOnly:!1,default:!1},quickcrop:{path:"plugins/quickcrop.js",editOnly:!1,default:!1},upload:{path:"plugins/upload.js",editOnly:!0,default:!1},people:{path:"plugins/people.js",editOnly:!1,default:!1},menu:{path:"plugins/menu.js",editOnly:!1,default:!1},wire:{path:"plugins/wire.js",editOnly:!1,default:!1},message:{path:"plugins/message.js",editOnly:!1,default:!1},like:{path:"plugins/like.js",editOnly:!1,default:!1},"ai-edit":{path:"plugins/ai-edit.js",editOnly:!0,default:!1},demo:{path:"plugins/demo.js",editOnly:!1,default:!1},source:{path:"plugins/source.js",editOnly:!0,default:!0},"visitor-drafts":{path:"plugins/visitor-drafts.js",ownerPath:"plugins/visitor-drafts-owner.js",editOnly:!1,default:!1},"visitor-menu":{path:"plugins/visitor-menu.js",editOnly:!0,draft:!0},"bind-text":{path:"plugins/bind-text.js",editOnly:!0,default:!1},derive:{path:"plugins/derive.js",editOnly:!1,default:!1},upgrade:{path:"plugins/upgrade.js",editOnly:!1,default:!1}},b={"core/is-edit-mode.js":()=>import("./core/is-edit-mode-GCX6767E.js"),"core/draft-mode.js":()=>import("./core/draft-mode-WSQAT67S.js"),"lib/region-policy.js":()=>import("./lib/region-policy-KWBPROWF.js"),"lib/mutation.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["lib/mutation.js"]),"core/edit-mode.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["core/edit-mode.js"]),"core/mode-key.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["core/mode-key.js"]),"core/stale-host-notice.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["core/stale-host-notice.js"]),"core/page-data.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["core/page-data.js"]),"core/preserve-authored.js":()=>import("./reader-core-POFQCKRV.js").then(t=>t.core["core/preserve-authored.js"]),"core/snapshot.js":()=>import("./core/snapshot-FJP5IJL3.js"),"core/save-core.js":()=>import("./core/save-core-6SQHOR6W.js"),"core/save.js":()=>import("./core/save-ESPSQPLV.js"),"core/conflict-notice.js":()=>import("./core/conflict-notice-42H4ASLA.js"),"core/recovery.js":()=>import("./core/recovery-DRFZRJED.js"),"core/unsaved-warning.js":()=>import("./core/unsaved-warning-HNQVTA2D.js"),"core/persist.js":()=>import("./core/persist-CJXIL7D4.js"),"core/admin-attrs.js":()=>import("./core/admin-attrs-U7IJNYBG.js"),"core/autosave.js":()=>import("./core/autosave-F5YQCKVL.js"),"attrs/save-freeze.js":()=>import("./attrs/save-freeze-JZHKRQLR.js"),"attrs/onaftersave.js":()=>import("./attrs/onaftersave-OKSWEJQF.js"),"attrs/refetch-on-save.js":()=>import("./attrs/refetch-on-save-DPGJJMGN.js"),"attrs/add-from.js":()=>import("./attrs/add-from-T5LJXFFI.js"),"lib/cache-bust.js":()=>import("./lib/cache-bust-NH7VBWHO.js"),"plugins/richclay.js":()=>import("./plugins/richclay-PGOOJ4OK.js"),"plugins/indicator.js":()=>import("./plugins/indicator-WVPGMOZ7.js"),"sync/live-sync.js":()=>import("./sync/live-sync-XGUPHI3I.js"),"plugins/live.js":()=>import("./plugins/live-DCUBKXY4.js"),"plugins/page.js":()=>import("./plugins/page-OAWUJQEL.js"),"plugins/page-view.js":()=>import("./plugins/page-view-DZ26ZDDQ.js"),"plugins/sortable.js":()=>import("./plugins/sortable-266HY6TR.js"),"plugins/undo.js":()=>import("./plugins/undo-3JEYK5QY.js"),"plugins/unsent.js":()=>import("./plugins/unsent-OA4RGBUT.js"),"plugins/cms.js":()=>import("./plugins/cms-H7DTMUQX.js"),"plugins/quickcrop.js":()=>import("./plugins/quickcrop-WWF5I422.js"),"plugins/upload.js":()=>import("./plugins/upload-TTCQRIM5.js"),"plugins/people.js":()=>import("./plugins/people-5XRNRP5U.js"),"plugins/menu.js":()=>import("./plugins/menu-Q4MFFQ6E.js"),"plugins/wire.js":()=>import("./plugins/wire-W2EV36KZ.js"),"plugins/message.js":()=>import("./plugins/message-LQ6EDH4V.js"),"plugins/like.js":()=>import("./plugins/like-EV7MTZ56.js"),"plugins/ai-edit.js":()=>import("./plugins/ai-edit-VV4QTINH.js"),"plugins/demo.js":()=>import("./plugins/demo-42BSYQ7T.js"),"plugins/visitor-drafts.js":()=>import("./plugins/visitor-drafts-2AUYKAIJ.js"),"plugins/visitor-drafts-owner.js":()=>import("./plugins/visitor-drafts-owner-Z5B2OQBR.js"),"plugins/visitor-menu.js":()=>import("./plugins/visitor-menu-4LQMKLPP.js"),"plugins/bind-text.js":()=>import("./plugins/bind-text-NX46N5UV.js"),"plugins/source.js":()=>import("./plugins/source-6BKMK4PO.js"),"plugins/derive.js":()=>import("./plugins/derive-QVI3LI3A.js"),"plugins/upgrade.js":()=>import("./plugins/upgrade-BNZVFHMZ.js")},ie=["visitor-drafts","visitor-menu","richclay","indicator","sortable","undo","unsent","quickcrop","upload","people","menu","upgrade","cms","page-view","sync","live","page","message","like","wire","ai-edit","demo","derive","bind-text","source"],re={cms:["quickcrop","upload","menu"],"ai-edit":["wire"],page:["live","sync","upload"]},ae={page:["richclay"]},ce=new Set(["source","sortable","menu","upgrade"]);function K(t,e,o,s){let u=t.get(e);if(u)for(let n of u.split(",")){let r=n.trim();if(r){if(!w[r]||w[r].internal){console.warn(`clayjs: unknown plugin "${r}"`);continue}s(o,r)}}}var le=["sync","live","page","upload","quickcrop","cms","people","menu","upgrade","wire","ai-edit","demo","source"],ue=["attrs/refetch-on-save.js","core/conflict-notice.js"],de="https://hyperclay.com/templates/";function P(t,e,{isDraftMode:o=!1,hasSap:s=!1,hasVariants:u=!1,canEdit:n=!1,templateSource:r=null}={}){let g=[...X.always];e&&g.push(...X.editOnly);let m=new Set;K(t,"plugins",m,(i,a)=>i.add(a));let c=new Set;K(t,"exclude",c,(i,a)=>i.add(a));let d=new Set(m);for(let[i,a]of Object.entries(w))a.default&&d.add(i);s&&d.add("derive"),u&&(e||n)&&d.add("menu"),c.has("wire")&&d.delete("ai-edit"),!e&&!o&&d.has("page")&&d.add("page-view");for(let i of[...d])if(!c.has(i)&&!(w[i].editOnly&&!e))for(let a of re[i]||[])d.add(a);for(let i of c)d.delete(i);if(o){for(let i of le)d.delete(i);for(let i of ue){let a=g.indexOf(i);a>-1&&g.splice(a,1)}d.add("visitor-drafts")}!o&&n&&!c.has("upgrade")&&r&&r.startsWith(de)&&d.add("upgrade");for(let[i,a]of Object.entries(ae))if(d.has(i))for(let v of a)m.has(v)||d.delete(v);let l=[],h=[];for(let i of ie){if(!d.has(i))continue;let a=w[i];a.editOnly&&!e||a.draft&&!o||(ce.has(i)?h:l).push(a.ownerPath&&!o?a.ownerPath:a.path)}return{core:g,plugins:l,late:h}}var C="data-deleted-at",R=(t,e)=>window.clay?.undo?.commit?window.clay.undo.commit(t,e):e(),Q=(t,e)=>t.dispatchEvent(new CustomEvent(e,{bubbles:!0})),I=Object.assign((t,{at:e=new Date().toISOString()}={})=>(R("Move to Trash",()=>t.setAttribute(C,e)),Q(t,"clay:trashed"),{undo:()=>I.restore(t)}),{is:t=>!!t.getAttribute(C),restore(t){R("Restore",()=>t.removeAttribute(C)),Q(t,"clay:restored")},purge(t){R("Delete forever",()=>t.remove())}});var Y=50,pe=1e3,fe='[clay~="no-snapshot"], [no-snapshot], [snapshot-remove]',k=0,ge=t=>{let e=t.nodeType===1?t:t.parentElement;if(!e)return"a detached node";let o=e.localName;return e.id?o+="#"+e.id:e.classList.length&&(o+="."+[...e.classList].slice(0,2).join(".")),"<"+o+">"};function me(t){let e=window.clay?.region?.resolveRegionPolicy;if(!e)return null;let o=s=>!!s&&!s.closest(fe)&&e(s).dirtyTracked;for(let s of t){if(s.type==="attributes"&&z(s.attributeName,s.target))continue;let u=s.target.nodeType===1?s.target:s.target.parentElement;if(o(u)&&!(s.type==="childList"&&![...s.addedNodes,...s.removedNodes].some(n=>n.nodeType!==1||o(n))))return s.target}return null}function _(t){let e=window.clay,o=e.Mutation,s=new Set,u=(y,p)=>{s.has(y)||(s.add(y),console.warn("clay.effect: "+p))},n=!1,r=!1,g=0,m=0;k&&e.isEditMode&&console.warn("clay.effect: an effect was created inside another effect, so a new one starts on every run. Create effects once, in clay.start.");let c=()=>{let y=Date.now();y-g>pe&&(g=y,m=0),++m>Y&&u("loop",`this effect ran more than ${Y} times in a second. Something keeps changing the document, often a timer or async callback the effect started.`)},d=()=>{if(n=!1,r)return;let y=null;o.pause(),k++;try{e.isEditMode===!0&&(c(),s.has("saved")||(y=new MutationObserver(()=>{}),y.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,characterData:!0})));let p=t();p&&typeof p.then=="function"&&(v(),console.error("clay.effect: fn returned a promise. It must be synchronous, so this effect was stopped."))}catch(p){console.error("clay.effect:",p)}finally{k--,o.resume();let p=y?y.takeRecords():[];if(y?.disconnect(),p.length){let O=me(p);O&&u("saved",`this effect changed ${ge(O)}, which is saved with the file. Effect writes never mark the page unsaved, so a merge can leave it dirty with no save scheduled. Draw derived values inside clay="no-dirty" or clay="editor-ui".`)}}},l=()=>{n||r||(n=!0,queueMicrotask(d))},h=["undo","redo"],i=()=>{for(let y of h)e.undo?.on?.(y,l)},a=o.onAnyChange({debounce:0,require:"observed"},l);document.addEventListener("clay:sync-applied",l),document.addEventListener("clay:modechange",i),i();let v=()=>{r=!0,a(),document.removeEventListener("clay:sync-applied",l),document.removeEventListener("clay:modechange",i);for(let y of h)e.undo?.off?.(y,l)};return l(),v}Object.defineProperty(_,"running",{get:()=>k>0});var he={overtype:()=>import("./c-PQ5LK6QE.js"),marked:()=>import("./c-XN6MBKI6.js"),highlight:()=>import("./c-33JJ6CBX.js"),"highlight/bash":()=>import("./c-KI7M4AY3.js"),"highlight/css":()=>import("./c-H4LG442Q.js"),"highlight/javascript":()=>import("./c-VDSS4K3Z.js"),"highlight/json":()=>import("./c-NRPJEVJS.js"),"highlight/python":()=>import("./c-5YIHJ3TJ.js"),"highlight/xml":()=>import("./c-WN5AY3OZ.js"),uimotion:()=>import("./c-B5CS55WR.js")};function ye(t){let e=new Map;function o(s){return Object.hasOwn(t,s)?(e.has(s)||e.set(s,t[s]().catch(u=>{throw e.delete(s),u})),e.get(s)):Promise.reject(new Error(`clay.assets: no asset named "${s}"`))}return{load:o,names:()=>Object.keys(t)}}var Z=ye(he);function L(t,e){if(!t||!e)return t;let o={...e,...t};for(let s of["entries","imports","bootImports"])o[s]={...e[s],...t[s]};return o}var je="plugins/page.js";function M(t,e,{isEditMode:o=!1,isDraftMode:s=!1,hasSapJs:u=!1}={},n=document){if(!t?.entries)return 0;let r=[...e];for(let l of e)for(let h of t.bootImports?.[l]??[])u&&h==="vendor/sap-core.vendor.js"||r.push(h);o&&!s&&r.push(...t.editBootImports??[]),o&&!s&&e.includes(je)&&r.push(...t.editorBootImports??[]);let g=new Set,m=l=>{if(!(!l||g.has(l))){g.add(l);for(let h of t.imports?.[l]??[])m(h)}};for(let l of r)m(t.entries[l]);let c=new Set([...n.querySelectorAll('link[rel="modulepreload"]')].map(l=>l.href)),d=0;for(let l of g){let h=new URL(l,t.base).href;if(c.has(h))continue;let i=n.createElement("link");i.rel="modulepreload",i.href=h,i.setAttribute("clay","no-save"),n.head.append(i),d++}return d}var E=Object.fromEntries(Object.entries(w).flatMap(([t,e])=>e.ownerPath?[[e.path,t],[e.ownerPath,t]]:[[e.path,t]])),j={},ee=new Set;function se(t){ee.has(t)||(ee.add(t),document.dispatchEvent(new CustomEvent("clay:plugin-ready",{detail:{plugin:E[t]}})))}var ve=(t,e,o,s)=>()=>t().then(u=>(M(L(e,u),[...o.core,...o.plugins,...o.late],{isEditMode:!0,hasSapJs:s}),u));function we(){return new Promise(t=>$(t))}function A(){let t=document.querySelector('meta[name="hyper-source"]');return t?t.getAttribute("content"):null}async function He(t,e,o,s=null,u=null,n=null){W(),(await b["core/draft-mode.js"]()).noteBootParams(e),await we();let g=await b["core/is-edit-mode.js"](),{isEditMode:m,isDraftMode:c,isOwner:d,siteVisibility:l,canEdit:h}=g;m&&!c&&import("./core/host-permission-6EVJGNPL.js").then(f=>f.checkHostPermission()).catch(()=>{}),window.__hyperclayEditMode=m;let i=await b["lib/region-policy.js"](),a=!!document.querySelector("[sap]"),v=document.querySelectorAll("head style[clay-variant]").length>=2,y=!!document.querySelector('script[src*="sap.js"]');G.holdSettle=a&&m;let p=P(e,m,{isDraftMode:c,hasSap:a,hasVariants:v,canEdit:h,templateSource:A()});p.plugins.includes("plugins/demo.js")&&g.commitModeFacts({destination:"demo"}),M(L(s,u),[...p.core,...p.plugins],{isEditMode:m,isDraftMode:c,hasSapJs:y}),(m||c)&&!u&&n&&n().then(f=>M(L(s,f),[...p.core,...p.plugins],{isEditMode:m,isDraftMode:c,hasSapJs:y})).catch(()=>{});let O,oe=new Promise(f=>{O=f}),ne={sync:p.plugins.includes("sync/live-sync.js")};for(let f of p.core)j[f]=await b[f](),j[f].install?.();if(Se(j,{isDraftMode:c,isOwner:d,siteVisibility:l},i),te(j),document.documentElement.getAttribute("clay-mode-switch")==="live"){let f=P(e,!0,{isDraftMode:c,hasSap:a,hasVariants:v,canEdit:h,templateSource:A()});j["core/edit-mode.js"].noteLiveSwitch({edit:f,view:P(e,!1,{isDraftMode:c,hasSap:a,hasVariants:v,canEdit:h,templateSource:A()}),loaded:j,modules:b,attach:(S,D)=>{N(S,D);let T=E[S],x=window.clay.plugins;T&&Array.isArray(x)&&!x.includes(T)&&(window.clay.plugins=Object.freeze([...x,T]))},attachEditCore:te,announce:se,loadEditHints:n?ve(n,s,f,y):null,late:oe})}await j["core/edit-mode.js"].activateInitialMode(),window.clay.plugins=Object.freeze([...p.plugins,...p.late].map(f=>E[f]));let U=m?p:P(e,!0,{isDraftMode:c,hasSap:a,hasVariants:v,canEdit:h,templateSource:A()});window.clay.editPlugins=Object.freeze([...U.plugins,...U.late].map(f=>E[f]));for(let f of p.plugins){let S;try{S=await b[f]()}catch(D){console.error(`clayjs: plugin "${f}" failed to load, continuing without it:`,D);continue}j[f]=S,f==="plugins/page-view.js"&&S.start(ne),N(f,S,j)}await Promise.allSettled(p.plugins.map(f=>j[f]?.ready).filter(Boolean)),a&&Oe(j),Ee(g),o(window.clay),document.dispatchEvent(new CustomEvent("clay:ready",{detail:{clay:window.clay}})),p.late.length?be(p.late,g).then(O,O):O()}var q=(t,e)=>w[E[t]]?.editOnly&&!e.startsAtImport();async function be(t,e){try{await window.clay.page?.ready}catch{}for(let o of t)if(!q(o,e))try{let s=await b[o]();if(q(o,e)||(j[o]=s,N(o,s,j),await s.ready,q(o,e)))continue;se(o)}catch(s){console.error(`clayjs: plugin "${o}" failed to load, continuing without it:`,s),document.dispatchEvent(new CustomEvent("clay:plugin-failed",{detail:{plugin:E[o]}}))}}function Oe(t){let e=t["core/save.js"],o=null;try{o=e?e.currentPaintSignature():null}catch(s){console.error("clayjs: could not read the page's painted values:",s)}try{window.Sap&&typeof window.Sap.mount=="function"&&window.Sap.mount()}catch(s){console.error("clayjs: the derive engine failed to mount:",s)}finally{e?.releaseBootSettle()}e&&o!=null&&e.schedulePaintHeal(o)}function Se(t,{isDraftMode:e,isOwner:o,siteVisibility:s},u){let n=window.clay,r=t["lib/mutation.js"],g=t["core/edit-mode.js"];Object.assign(n,{toggleEditMode:g.toggleEditMode,setMode:g.setMode,modeLifecycle:g.modeLifecycle,isDraftMode:e,isOwner:o,siteVisibility:s,Mutation:r.default,region:u.windowRegionShape});for(let c of["mode","isEditMode","canEdit"])Object.defineProperty(n,c,{get:()=>g[c],enumerable:!0,configurable:!0});n.assets=Z;let m=t["core/page-data.js"];n.readData=m.readData,n.writeData=m.writeData,n.ephemeral=B,n.storage=F,n.host={get versions(){return import("./c-ZRXJD4G6.js").then(c=>c.hostVersions())}},n.trash=I,n.derived=H,n.effect=_,n.style=J,n.morph=(c,d,l)=>V().then(({morph:h})=>h(c,d,l))}function te(t){let e=window.clay,o=t["core/save.js"];if(o){let r=o.savePage||o.default;r.force=o.savePageForce,r.overwrite=o.saveOverwritingConflict,r.flush=o.flushSave,r.soon=o.savePageSoon,r.limits=o.saveLimits,r.inspect=o.inspectSaveSize,e.save!==r&&typeof e.save?.replace=="function"&&(r.replace=e.save.replace),e.save!==r&&(e.save=r)}e.hasUnsavedChanges=t["core/unsaved-warning.js"]?.hasUnsavedChanges??e.hasUnsavedChanges??(()=>!1);let s=t["core/snapshot.js"];s&&(e.getHTML||(e.getHTML=s.getPageContents),e.addDocumentTransform||(e.addDocumentTransform=s.addDocumentTransform),e.onSnapshot||(e.onSnapshot=s.onSnapshot));let u=t["lib/cache-bust.js"];u&&!e.cacheBust&&(e.cacheBust=u.default);let n=t["core/recovery.js"];n&&!e.recovery&&(e.recovery=n.recovery)}function N(t,e,o=j){let s=window.clay;t==="plugins/undo.js"?s.undo=e.undo||e.default:t==="plugins/unsent.js"?s.unsent=e.unsent:t==="sync/live-sync.js"?(s.morph=e.morph,s.conflicts=e.conflicts,o["core/page-data.js"].setPageDataLiveSync(e.liveSync)):t==="plugins/live.js"?s.live=e.live:t==="plugins/page.js"?s.page=e.page:t==="plugins/upgrade.js"?(s.save=s.save||{},s.save.replace=e.replace):t==="plugins/cms.js"?s.cms=e.cms||e.default:t==="plugins/upload.js"?s.upload=e.upload||e.default:t==="plugins/people.js"?(s.people=e.people,s.author=e.author,Object.defineProperty(s,"me",{get:e.currentMe,configurable:!0,enumerable:!0})):t==="plugins/message.js"?s.message=e.message:t==="plugins/like.js"?s.like=e.like:t==="plugins/wire.js"?s.wire=e.wire||e.default:t==="plugins/ai-edit.js"?s.aiEdit=e.aiEdit||e.default:t==="plugins/demo.js"?s.demo=e.demo:t==="plugins/richclay.js"?s.RichClay=e.RichClay||e.default:t==="plugins/quickcrop.js"?s.quickcrop=e.quickcrop||e.default:t==="plugins/sortable.js"?s.sortable=e.sortable:t==="plugins/source.js"?s.source=e.source||e.default:t==="plugins/visitor-drafts.js"||t==="plugins/visitor-drafts-owner.js"?s.visitorDrafts=e.visitorDrafts:t==="plugins/bind-text.js"&&(s.bindText=e.bindText)}function Ee(t){t.isEditMode||document.addEventListener("click",e=>{e.target.closest?.("[trigger-save]")&&(t.isEditMode||(console.info("clayjs: you're not the owner of this page; changes stay local"),document.dispatchEvent(new CustomEvent("clay:view-save-attempt"))))})}export{He as boot,Oe as mountDerivedEngine};
@@ -1 +0,0 @@
1
- export default {"version":"1.23.0","entries":{"internals/index.js":"internals/index-NRPNDTSA.js","options/options.js":"options/options-55LQHSJ4.js","route/route.js":"route/route-62CHXL5B.js","ui/index.js":"ui/index-VGYAKAKI.js","utils/index.js":"utils/index-4TJCVLT7.js","vendor/sap-core.vendor.js":"vendor/sap-core.vendor-OA5SKL7Q.js","plugins/derive.js":"plugins/derive-QVI3LI3A.js","plugins/upgrade.js":"plugins/upgrade-BNZVFHMZ.js","dom/all.js":"dom/all-APS5ZSKP.js","dom/dom-helpers.js":"dom/dom-helpers-L7OSR6S4.js","events/index.js":"events/index-B6TGDYMG.js","plugins/menu.js":"plugins/menu-Q4MFFQ6E.js","plugins/wire.js":"plugins/wire-W2EV36KZ.js","plugins/message.js":"plugins/message-LQ6EDH4V.js","plugins/like.js":"plugins/like-EV7MTZ56.js","plugins/demo.js":"plugins/demo-42BSYQ7T.js","plugins/visitor-drafts.js":"plugins/visitor-drafts-2AUYKAIJ.js","plugins/visitor-drafts-owner.js":"plugins/visitor-drafts-owner-Z5B2OQBR.js","plugins/page-view.js":"plugins/page-view-DZ26ZDDQ.js","plugins/cms.js":"plugins/cms-H7DTMUQX.js","plugins/quickcrop.js":"plugins/quickcrop-WWF5I422.js","plugins/people.js":"plugins/people-5XRNRP5U.js","sync/live-sync.js":"sync/live-sync-XGUPHI3I.js","plugins/live.js":"plugins/live-DCUBKXY4.js","loader.js":"loader-FBDE2UAB.js","reader-core.js":"reader-core-POFQCKRV.js","lib/mutation.js":"reader-core-POFQCKRV.js","core/preserve-authored.js":"reader-core-POFQCKRV.js","core/edit-mode.js":"reader-core-POFQCKRV.js","core/mode-key.js":"reader-core-POFQCKRV.js","core/stale-host-notice.js":"reader-core-POFQCKRV.js","core/page-data.js":"reader-core-POFQCKRV.js"},"imports":{"internals/index-NRPNDTSA.js":["c-XCFQEWW6.js","c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-PWJSJEJU.js","c-XQXZAO7N.js","c-S7LK4KUE.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-XCFQEWW6.js":["c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-N7JPUPGC.js","c-PWJSJEJU.js"],"c-NQJRVJ56.js":["c-XGH4GS2T.js","c-3O7OBDCM.js","c-BPF2NSPV.js"],"c-XGH4GS2T.js":["c-3O7OBDCM.js","c-BPF2NSPV.js"],"c-3O7OBDCM.js":["c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js"],"c-BPF2NSPV.js":["c-HA6INT6J.js"],"c-HA6INT6J.js":["c-WRBKEJD4.js"],"c-PWJSJEJU.js":["c-XQXZAO7N.js","c-S7LK4KUE.js","c-VG5XIN4T.js","c-HA6INT6J.js","c-ICMAOOGK.js"],"c-XQXZAO7N.js":["c-WRBKEJD4.js"],"c-VG5XIN4T.js":["c-2YYDMLNZ.js"],"c-ICMAOOGK.js":["c-WRBKEJD4.js"],"options/options-55LQHSJ4.js":["c-7SWMYKAI.js","c-LA2BW7UY.js","c-IJUK2GPW.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-LA2BW7UY.js":["c-IJUK2GPW.js","c-VG5XIN4T.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"route/route-62CHXL5B.js":["c-VHNSBD2M.js"],"ui/index-VGYAKAKI.js":["c-QIR5CAKM.js","c-6TYGD5AB.js","c-QHWJ5ZIJ.js","c-JGHEACGK.js","c-UL2YUY52.js","c-QY7F6EN6.js","c-G6COVIZB.js","c-IHUWUKIU.js","c-4JZDZFF6.js","c-EUGJVHDD.js","c-PKCCHJ5X.js","c-2AZDZWCK.js","c-46XYM55L.js","c-NUHP2XDB.js","c-VKEDWYDF.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-QIR5CAKM.js":["c-6TYGD5AB.js","c-QHWJ5ZIJ.js","c-JGHEACGK.js","c-UL2YUY52.js","c-IHUWUKIU.js","c-EUGJVHDD.js","c-VKEDWYDF.js"],"c-6TYGD5AB.js":["c-QHWJ5ZIJ.js","c-G6COVIZB.js","c-IHUWUKIU.js","c-NUHP2XDB.js"],"c-QHWJ5ZIJ.js":["c-4JZDZFF6.js","c-46XYM55L.js"],"c-G6COVIZB.js":["c-IHUWUKIU.js","c-EUGJVHDD.js","c-PKCCHJ5X.js","c-NUHP2XDB.js"],"c-IHUWUKIU.js":["c-EUGJVHDD.js","c-NUHP2XDB.js"],"c-JGHEACGK.js":["c-QY7F6EN6.js","c-IHUWUKIU.js","c-EUGJVHDD.js","c-PKCCHJ5X.js","c-NUHP2XDB.js"],"c-QY7F6EN6.js":["c-ICMAOOGK.js"],"utils/index-4TJCVLT7.js":["c-UL2YUY52.js","c-GQ6F6IDK.js","c-P7KNDG34.js","c-VHNSBD2M.js"],"vendor/sap-core.vendor-OA5SKL7Q.js":["c-VHNSBD2M.js"],"plugins/derive-QVI3LI3A.js":["c-VHNSBD2M.js"],"plugins/upgrade-BNZVFHMZ.js":["c-3G2DGZUP.js","c-VHNSBD2M.js"],"dom/all-APS5ZSKP.js":["c-VHNSBD2M.js"],"dom/dom-helpers-L7OSR6S4.js":["c-XQXZAO7N.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"events/index-B6TGDYMG.js":["c-LA2BW7UY.js","c-IJUK2GPW.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"plugins/menu-Q4MFFQ6E.js":["c-JNRKHYWO.js","c-CRPIDGXC.js","c-OPONJ2UK.js","c-AQLFEATB.js","c-CUMXGHVD.js","c-QY7F6EN6.js","c-RVMWGXEJ.js","c-PKCCHJ5X.js","c-RHMPKZZ7.js","c-VKEDWYDF.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-JNRKHYWO.js":["c-QY7F6EN6.js"],"c-CRPIDGXC.js":["c-OPONJ2UK.js"],"plugins/wire-W2EV36KZ.js":["c-ALDVFPWL.js","c-XGH4GS2T.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-ALDVFPWL.js":["c-XGH4GS2T.js","c-3O7OBDCM.js","c-BPF2NSPV.js"],"plugins/message-LQ6EDH4V.js":["c-VHNSBD2M.js"],"plugins/like-EV7MTZ56.js":["c-VHNSBD2M.js"],"plugins/demo-42BSYQ7T.js":["c-JAX2667S.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"plugins/visitor-drafts-2AUYKAIJ.js":["c-Y6F2FORL.js","c-QY7F6EN6.js","c-OKEGUICD.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"plugins/visitor-drafts-owner-Z5B2OQBR.js":["c-OKEGUICD.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"plugins/page-view-DZ26ZDDQ.js":["c-NK33MMYF.js","c-L4WQSC27.js","c-XGH4GS2T.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-NK33MMYF.js":["c-XGH4GS2T.js","c-3O7OBDCM.js"],"plugins/cms-H7DTMUQX.js":["c-JAX2667S.js","c-5FKRZNJV.js","c-IHUWUKIU.js","c-4JZDZFF6.js","c-EUGJVHDD.js","c-PKCCHJ5X.js","c-NUHP2XDB.js","c-VHNSBD2M.js"],"c-5FKRZNJV.js":["c-IHUWUKIU.js","c-4JZDZFF6.js"],"plugins/quickcrop-WWF5I422.js":["c-G6COVIZB.js","c-5FKRZNJV.js","c-IHUWUKIU.js","c-4JZDZFF6.js","c-EUGJVHDD.js","c-PKCCHJ5X.js","c-NUHP2XDB.js","c-VHNSBD2M.js"],"plugins/people-5XRNRP5U.js":["c-RVMWGXEJ.js","c-XGH4GS2T.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"sync/live-sync-XGUPHI3I.js":["c-XLQ3BDMM.js","c-NK33MMYF.js","c-LZJPNR2W.js","c-FILLTJA7.js","c-5VYOWDTI.js","c-GSRLXYWL.js","c-WYFDLITL.js","c-LA2BW7UY.js","c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-PWJSJEJU.js","c-XQXZAO7N.js","c-S7LK4KUE.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-XLQ3BDMM.js":["c-NK33MMYF.js","c-LZJPNR2W.js","c-FILLTJA7.js","c-5VYOWDTI.js","c-GSRLXYWL.js","c-LA2BW7UY.js","c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-PWJSJEJU.js","c-VG5XIN4T.js","c-HA6INT6J.js","c-ICMAOOGK.js"],"c-GSRLXYWL.js":["c-WYFDLITL.js","c-LA2BW7UY.js","c-3O7OBDCM.js","c-ICMAOOGK.js"],"plugins/live-DCUBKXY4.js":["c-2L6O5PDS.js","c-JKZJIUIP.js","c-TCCA5BZN.js","c-3LDGIBMN.js","c-57XDY6HC.js","c-LZJPNR2W.js","c-2ZVOEU4M.js","c-4ASQPRQL.js","c-GQ6F6IDK.js","c-I2SCCUEW.js","c-5VYOWDTI.js","c-GSRLXYWL.js","c-X5LNHET5.js","c-WYFDLITL.js","c-UGHH4MB3.js","c-LA2BW7UY.js","c-XCFQEWW6.js","c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-PWJSJEJU.js","c-XQXZAO7N.js","c-S7LK4KUE.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-2L6O5PDS.js":["c-JKZJIUIP.js","c-TCCA5BZN.js","c-3LDGIBMN.js","c-57XDY6HC.js","c-LZJPNR2W.js","c-2ZVOEU4M.js","c-I2SCCUEW.js","c-XCFQEWW6.js","c-ATKAOH23.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-XGH4GS2T.js","c-3O7OBDCM.js","c-PWJSJEJU.js"],"c-2ZVOEU4M.js":["c-4ASQPRQL.js","c-GQ6F6IDK.js","c-I2SCCUEW.js","c-5VYOWDTI.js","c-GSRLXYWL.js","c-X5LNHET5.js","c-UGHH4MB3.js","c-LA2BW7UY.js","c-XCFQEWW6.js","c-EK63G3CG.js","c-NQJRVJ56.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-N7JPUPGC.js","c-PWJSJEJU.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js"],"c-X5LNHET5.js":["c-3O7OBDCM.js"],"loader-FBDE2UAB.js":["c-RS77ODLY.js","c-7SWMYKAI.js","c-46XYM55L.js","c-FILLTJA7.js","c-VKEDWYDF.js","c-UGHH4MB3.js","c-LA2BW7UY.js","c-IJUK2GPW.js","c-CYWLPPUS.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-RS77ODLY.js":["c-7SWMYKAI.js","c-UGHH4MB3.js","c-LA2BW7UY.js"],"reader-core-POFQCKRV.js":["c-NUHP2XDB.js","c-TWCXBWS3.js","c-VKEDWYDF.js","c-LA2BW7UY.js","c-XGH4GS2T.js","c-IJUK2GPW.js","c-3O7OBDCM.js","c-BPF2NSPV.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-WRBKEJD4.js","c-VHNSBD2M.js"],"c-TWCXBWS3.js":["c-LA2BW7UY.js","c-HA6INT6J.js","c-ICMAOOGK.js","c-VHNSBD2M.js"]},"bootImports":{"plugins/derive.js":["vendor/sap-core.vendor.js"]}};