@panphora/clayjs 1.24.1 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/clay-dom.js +1 -1
  3. package/dist/clay-events.js +1 -1
  4. package/dist/clay-internals.js +1 -1
  5. package/dist/clay-options.js +1 -1
  6. package/dist/clay-router.js +1 -1
  7. package/dist/clay-ui.js +1 -1
  8. package/dist/clay-utils.js +1 -1
  9. package/dist/clay.js +1 -1
  10. package/dist/clay.standalone.js +2044 -1247
  11. package/dist/m/attrs/{refetch-on-save-DPGJJMGN.js → refetch-on-save-5CBFUJUF.js} +1 -1
  12. package/dist/m/attrs/save-freeze-MH3AOD56.js +1 -0
  13. package/dist/m/{c-SXGEWPFC.js → c-3E2IK5HU.js} +1 -1
  14. package/dist/m/{c-A4L7APIU.js → c-4AE2A2LK.js} +1 -1
  15. package/dist/m/{c-YDW4VCHP.js → c-4Q6QIODW.js} +1 -1
  16. package/dist/m/{c-RO73MKKR.js → c-52OC3OH3.js} +1 -1
  17. package/dist/m/{c-ZGCO4J3H.js → c-5PZYDWTW.js} +1 -1
  18. package/dist/m/c-5Q5XBN56.js +1 -0
  19. package/dist/m/c-5SZ6KFR5.js +1 -0
  20. package/dist/m/{c-ZRGEN6QQ.js → c-AI3H6ETU.js} +2 -2
  21. package/dist/m/{c-7V6MGMX2.js → c-BCWYEG6P.js} +1 -1
  22. package/dist/m/{c-C5AKJVRH.js → c-BJ2RRQBQ.js} +1 -1
  23. package/dist/m/{c-CTGRDT6E.js → c-C6YZNU6E.js} +1 -1
  24. package/dist/m/{c-EDE45NM7.js → c-C7SUMNMI.js} +1 -1
  25. package/dist/m/c-CITLTVQ4.js +4 -0
  26. package/dist/m/{c-STRI73GQ.js → c-CL5LSATX.js} +1 -1
  27. package/dist/m/{c-Z4G2UK6T.js → c-CU33V6RW.js} +1 -1
  28. package/dist/m/{c-6LEYVQJK.js → c-D62HRSZK.js} +1 -1
  29. package/dist/m/{c-DD26VXAP.js → c-DT7E76Z2.js} +1 -1
  30. package/dist/m/{c-P2HKMJAW.js → c-EAV7A6BT.js} +1 -1
  31. package/dist/m/{c-QQFHEODI.js → c-EQ5NBOGA.js} +1 -1
  32. package/dist/m/{c-KQKKIVLW.js → c-FBOO2UY3.js} +1 -1
  33. package/dist/m/{c-JQF2EUCG.js → c-FJDTDGDA.js} +1 -1
  34. package/dist/m/{c-MQKSKQHG.js → c-FKTALXNV.js} +1 -1
  35. package/dist/m/{c-HL6BLJNA.js → c-GDNZEOOZ.js} +1 -1
  36. package/dist/m/{c-SUXHUL7U.js → c-GEAG5XAK.js} +1 -1
  37. package/dist/m/{c-LSVN3OLG.js → c-GY4BREDT.js} +1 -1
  38. package/dist/m/{c-4PO3YGDC.js → c-HGG7M2S3.js} +1 -1
  39. package/dist/m/{c-DDS23EY6.js → c-HXGNH6GY.js} +1 -1
  40. package/dist/m/{c-FLEIU6CG.js → c-IESDKFO6.js} +1 -1
  41. package/dist/m/{c-CJ7QYEWI.js → c-IJHF4IO6.js} +1 -1
  42. package/dist/m/{c-SGGGCIVD.js → c-IL5IVTOG.js} +1 -1
  43. package/dist/m/c-JB5YU57S.js +1 -0
  44. package/dist/m/{c-MP6S4AZU.js → c-JD2VFAYG.js} +2 -2
  45. package/dist/m/{c-CV4T65JE.js → c-JWW6BHWD.js} +3 -3
  46. package/dist/m/{c-42ZNV7LI.js → c-K4M76VPM.js} +1 -1
  47. package/dist/m/{c-6IJEVE6B.js → c-KU3PX7LL.js} +1 -1
  48. package/dist/m/{c-2PVGJFI5.js → c-KYTVZT4D.js} +1 -1
  49. package/dist/m/{c-BGN7RCTJ.js → c-M7ITYKMF.js} +1 -1
  50. package/dist/m/c-MFB74XVN.js +3 -0
  51. package/dist/m/c-MOP5KBWZ.js +1 -0
  52. package/dist/m/{c-YLHTD3KX.js → c-MUM53J5J.js} +1 -1
  53. package/dist/m/{c-YK2L436K.js → c-MV7TEUTD.js} +1 -1
  54. package/dist/m/{c-LA2BW7UY.js → c-MZCOGNZL.js} +1 -1
  55. package/dist/m/{c-XW5TIYYB.js → c-N4GEJMXW.js} +1 -1
  56. package/dist/m/{c-NQAPWM7O.js → c-NADLYVAH.js} +1 -1
  57. package/dist/m/{c-RS77ODLY.js → c-NL4I4KNG.js} +1 -1
  58. package/dist/m/{c-X75G43SZ.js → c-O2QZDVZ2.js} +1 -1
  59. package/dist/m/{c-LTSPHVAK.js → c-OBMZASYQ.js} +1 -1
  60. package/dist/m/{c-LUXAB2XI.js → c-ORLPQFNU.js} +1 -1
  61. package/dist/m/c-P73XPAOA.js +1 -0
  62. package/dist/m/{c-PWJSJEJU.js → c-PNZIJFG7.js} +1 -1
  63. package/dist/m/{c-ZKKAF4UT.js → c-PRZNJUYZ.js} +2 -2
  64. package/dist/m/{c-B7GOFGQR.js → c-Q2CB57UG.js} +1 -1
  65. package/dist/m/{c-TWCXBWS3.js → c-QCDVDZIR.js} +1 -1
  66. package/dist/m/{c-UOOIF2AL.js → c-QDVG4NAZ.js} +1 -1
  67. package/dist/m/c-QWB53KRW.js +1 -0
  68. package/dist/m/{c-GNI7WHKF.js → c-RGAALCDU.js} +1 -1
  69. package/dist/m/c-RHPHMTF2.js +2 -0
  70. package/dist/m/{c-3UW5EJ77.js → c-RWJ3OSCP.js} +1 -1
  71. package/dist/m/{c-5FXEKU4Y.js → c-SEVOS4UE.js} +1 -1
  72. package/dist/m/{c-HDVH3MVC.js → c-SFYTKRU7.js} +1 -1
  73. package/dist/m/{c-47IBJGPQ.js → c-SFZRY6RT.js} +1 -1
  74. package/dist/m/{c-QENKN7QI.js → c-SGG6MUXW.js} +1 -1
  75. package/dist/m/c-SMLAJASY.js +1 -0
  76. package/dist/m/{c-DFKBGSN2.js → c-SUAC5RSG.js} +1 -1
  77. package/dist/m/{c-6RGEQNVV.js → c-SXZYVXD6.js} +1 -1
  78. package/dist/m/{c-ZFO5RW6G.js → c-TCFVG3I4.js} +1 -1
  79. package/dist/m/{c-OCYG4NBQ.js → c-TLQINES7.js} +2 -2
  80. package/dist/m/c-U4TWEIKZ.js +1 -0
  81. package/dist/m/{c-MQYEDF3Q.js → c-U65PREMC.js} +1 -1
  82. package/dist/m/{c-PDBNCJCT.js → c-U7F66I64.js} +1 -1
  83. package/dist/m/{c-LATNQ6Q5.js → c-UD4VDBGJ.js} +1 -1
  84. package/dist/m/{c-PCNJETUA.js → c-V2FPBRO6.js} +1 -1
  85. package/dist/m/{c-ND3Q2G2I.js → c-V4B3RUWB.js} +1 -1
  86. package/dist/m/{c-JWDCQL6J.js → c-V5L6HWVL.js} +1 -1
  87. package/dist/m/c-VMXCX52Q.js +1 -0
  88. package/dist/m/{c-CZHTXGJS.js → c-VO6RSFCO.js} +1 -1
  89. package/dist/m/c-WDFQ7PBU.js +1 -0
  90. package/dist/m/{c-OG6GFSUX.js → c-WGQVSKKC.js} +1 -1
  91. package/dist/m/c-WSTUCBHV.js +1 -0
  92. package/dist/m/{c-FEC6LGFF.js → c-WVCT3ITX.js} +1 -1
  93. package/dist/m/{c-SE3SIY7Y.js → c-X3V4RWMA.js} +1 -1
  94. package/dist/m/{c-HIX5H5L7.js → c-XHZIKRCV.js} +1 -1
  95. package/dist/m/{c-2BLVA6IN.js → c-XQTERKQA.js} +1 -1
  96. package/dist/m/{c-PYG2NGWU.js → c-YFO6ZJLQ.js} +1 -1
  97. package/dist/m/{c-7CM4GMTS.js → c-YX2MC7YL.js} +1 -1
  98. package/dist/m/{c-OYHI67B6.js → c-YYGUHSZR.js} +1 -1
  99. package/dist/m/{c-YYMZWQLR.js → c-Z2OZFX3N.js} +1 -1
  100. package/dist/m/{c-AT7GLQGV.js → c-ZEA3DCG3.js} +1 -1
  101. package/dist/m/{c-T3P3AXEW.js → c-ZJG6C2WL.js} +1 -1
  102. package/dist/m/{c-FVPNX2GO.js → c-ZORVIXUR.js} +1 -1
  103. package/dist/m/{c-SKMIR5HQ.js → c-ZPI7M5U5.js} +1 -1
  104. package/dist/m/core/{admin-attrs-ONRWVXPK.js → admin-attrs-ZI6K6UGM.js} +1 -1
  105. package/dist/m/core/{autosave-TBKAAAFB.js → autosave-BSM2ABJL.js} +1 -1
  106. package/dist/m/core/{conflict-notice-FOEE6I7E.js → conflict-notice-7EQLDYPA.js} +1 -1
  107. package/dist/m/core/draft-mode-M5XNYBMY.js +1 -0
  108. package/dist/m/core/{host-permission-X4BENZEU.js → host-permission-5BYP24GC.js} +1 -1
  109. package/dist/m/core/{is-edit-mode-FFHCQ5DR.js → is-edit-mode-73OXKK5H.js} +1 -1
  110. package/dist/m/core/{persist-6ILUR34S.js → persist-2SZO3PCE.js} +1 -1
  111. package/dist/m/core/{recovery-APWADU4K.js → recovery-VZF7RJZF.js} +1 -1
  112. package/dist/m/core/{save-6HT2LABE.js → save-K6Q47J2X.js} +1 -1
  113. package/dist/m/core/{save-core-EVMNZQ4V.js → save-core-U3Z44XBO.js} +1 -1
  114. package/dist/m/core/{site-edits-G4BOZMV4.js → site-edits-CFMF6GHD.js} +1 -1
  115. package/dist/m/core/{snapshot-FJP5IJL3.js → snapshot-PWCHYFL6.js} +1 -1
  116. package/dist/m/core/unsaved-warning-2WRZLJH5.js +1 -0
  117. package/dist/m/events/{index-B6TGDYMG.js → index-YKQIBZE5.js} +1 -1
  118. package/dist/m/internals/index-FSLC4M7J.js +1 -0
  119. package/dist/m/lib/{cache-bust-NH7VBWHO.js → cache-bust-BL4KUQAJ.js} +1 -1
  120. package/dist/m/{loader-GLLVDUZA.js → loader-RC54UV7H.js} +1 -1
  121. package/dist/m/manifest-3B84C829.js +1 -0
  122. package/dist/m/manifest-edit-1CB79AD4.js +1 -0
  123. package/dist/m/manifest.json +1165 -1115
  124. package/dist/m/options/{options-55LQHSJ4.js → options-LKIZ7YTG.js} +1 -1
  125. package/dist/m/page/{editor-KAZDJNND.js → editor-PKSPJ2XJ.js} +2 -2
  126. package/dist/m/plugins/{ai-edit-LABECCSN.js → ai-edit-3LG6MGS3.js} +1 -1
  127. package/dist/m/plugins/{demo-T7B4RIKL.js → demo-LMCMBILC.js} +1 -1
  128. package/dist/m/plugins/{derive-6LPJOCAV.js → derive-7DR5TUDH.js} +1 -1
  129. package/dist/m/plugins/{indicator-J4ABFARX.js → indicator-CTKX4EY7.js} +1 -1
  130. package/dist/m/plugins/{live-PGBIEMGB.js → live-IFLL6YN5.js} +1 -1
  131. package/dist/m/plugins/{menu-YZL3X2AJ.js → menu-YJZ3JWBC.js} +1 -1
  132. package/dist/m/plugins/{page-WOCNX2IN.js → page-GTDPYGE4.js} +2 -2
  133. package/dist/m/plugins/{page-view-SJODOOGE.js → page-view-NMCCU6MF.js} +1 -1
  134. package/dist/m/plugins/{people-C4TCWFOQ.js → people-6WIWCZEG.js} +1 -1
  135. package/dist/m/plugins/{richclay-Y2NV44NA.js → richclay-L3BZMX4I.js} +2 -2
  136. package/dist/m/plugins/{sortable-XCHQG65Z.js → sortable-365SRRL3.js} +1 -1
  137. package/dist/m/plugins/{source-YK7MO23W.js → source-7LSGOV46.js} +1 -1
  138. package/dist/m/plugins/{undo-VLRBQNPN.js → undo-UES4KS7B.js} +1 -1
  139. package/dist/m/plugins/{upgrade-NNTJBSK2.js → upgrade-MMPZUCDM.js} +1 -1
  140. package/dist/m/plugins/{upload-ZKKJV76X.js → upload-NZET3DNQ.js} +1 -1
  141. package/dist/m/plugins/visitor-drafts-V5YB7XDH.js +20 -0
  142. package/dist/m/plugins/{visitor-drafts-owner-LHUHFU3L.js → visitor-drafts-owner-TLECTYWS.js} +1 -1
  143. package/dist/m/plugins/{visitor-menu-FY4KM2SW.js → visitor-menu-QDV2MYJN.js} +1 -1
  144. package/dist/m/plugins/wire-3YGUO3GE.js +1 -0
  145. package/dist/m/{reader-core-T2S3JC4E.js → reader-core-VR7EL4WV.js} +2 -2
  146. package/dist/m/sync/live-sync-XMXXZS3G.js +1 -0
  147. package/dist/m/vendor/sap-core.vendor-JANUQULT.js +7 -0
  148. package/dist/offline-manifest.json +665 -635
  149. package/docs/guide.md +1 -0
  150. package/entries/sap.js +6 -5
  151. package/package.json +1 -1
  152. package/src/core/draft-mode.js +5 -0
  153. package/src/core/save-core.js +10 -10
  154. package/src/core/save.js +1 -1
  155. package/src/lib/dirty-gate.js +19 -0
  156. package/src/plugins/menu/visitor.js +33 -1
  157. package/src/plugins/visitor-drafts/commit.js +50 -3
  158. package/src/plugins/visitor-drafts/idb.js +8 -2
  159. package/src/plugins/visitor-drafts/recovery-menu.js +118 -0
  160. package/src/plugins/visitor-drafts/recovery.js +64 -0
  161. package/src/plugins/visitor-drafts/session.js +61 -13
  162. package/src/plugins/visitor-drafts/store.js +44 -8
  163. package/src/plugins/visitor-drafts.js +34 -5
  164. package/src/sync/live-sync.js +1 -1
  165. package/src/sync/wire-profile.js +9 -4
  166. package/src/vendor/sap-core.vendor.js +6 -5
  167. package/src/vendor/sap-ownership.vendor.js +181 -11
  168. package/tool-generation/system.md +1 -1
  169. package/dist/m/attrs/save-freeze-JZHKRQLR.js +0 -1
  170. package/dist/m/c-6Q6RGFBF.js +0 -1
  171. package/dist/m/c-APGHGDZM.js +0 -1
  172. package/dist/m/c-EILLN2H2.js +0 -1
  173. package/dist/m/c-HTLYXCUH.js +0 -1
  174. package/dist/m/c-MFOSMAVM.js +0 -3
  175. package/dist/m/c-R23UHMXG.js +0 -1
  176. package/dist/m/c-SGH3UTF3.js +0 -1
  177. package/dist/m/c-U4NTUVDZ.js +0 -1
  178. package/dist/m/c-V2U3F4QX.js +0 -1
  179. package/dist/m/c-VG5XIN4T.js +0 -1
  180. package/dist/m/c-VHSMPITY.js +0 -1
  181. package/dist/m/core/draft-mode-4MCL3LYI.js +0 -1
  182. package/dist/m/core/unsaved-warning-ITZDIZ2I.js +0 -1
  183. package/dist/m/internals/index-HS3CQDFW.js +0 -1
  184. package/dist/m/manifest-50FF1C45.js +0 -1
  185. package/dist/m/manifest-edit-BE1A621D.js +0 -1
  186. package/dist/m/plugins/visitor-drafts-RTZNONHT.js +0 -20
  187. package/dist/m/plugins/wire-M2NR354P.js +0 -1
  188. package/dist/m/sync/live-sync-Z64YREWQ.js +0 -1
  189. package/dist/m/vendor/sap-core.vendor-QAEPMETX.js +0 -6
  190. /package/dist/m/plugins/{richclay-Y2NV44NA.js.LEGAL.txt → richclay-L3BZMX4I.js.LEGAL.txt} +0 -0
@@ -1 +1 @@
1
- import{c as m}from"../c-7SWMYKAI.js";import{a as f}from"../c-LA2BW7UY.js";import"../c-IJUK2GPW.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 w="option-visibility",y=[{prefix:"option-not",kind:"show-not"},{prefix:"option",kind:"show"},{prefix:"show-when",kind:"show"},{prefix:"hide-when",kind:"hide"}];function x(t,e){let n=null;for(let o of y)if(t.startsWith(o.prefix+":")){n=o;break}if(!n)return null;let r=t.slice(n.prefix.length+1),i=e,s=i.split("|");return{name:r,rawValue:i,values:s,kind:n.kind,prefix:n.prefix,negated:n.kind==="show-not"}}var h={debug:!1,_started:!1,_unsubscribe:null,log(...t){this.debug&&console.log("[OptionVisibility]",...t)},findOptionAttributes(){let t=new Map;try{let e=document.evaluate('//*[@*[starts-with(name(), "option:") or starts-with(name(), "option-not:") or starts-with(name(), "show-when:") or starts-with(name(), "hide-when:")]]',document.documentElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let n=0;n<e.snapshotLength;n++){let r=e.snapshotItem(n);for(let i of r.attributes){let s=x(i.name,i.value);if(!s)continue;let o=`${s.prefix}:${s.name}=${s.rawValue}`;t.has(o)||t.set(o,s)}}}catch(e){this.log("XPath error, falling back to empty",e)}return[...t.values()]},generateCSS(t){return t.length?t.map(e=>{let{name:n,rawValue:r,values:i}=e,s=e.kind||(e.negated?"show-not":"show"),o=e.prefix||(s==="show-not"?"option-not":s==="hide"?"hide-when":"option"),a=CSS.escape(n),b=CSS.escape(r),u=`[${CSS.escape(o)}\\:${a}="${b}"]`,S=i.map(c=>`[${a}="${CSS.escape(c)}"]`),g=i.map(c=>`[${a}="${CSS.escape(c)}"] *`),p=[...S,...g].join(",");if(s==="hide")return`${u}:is(${p}){display:none!important}`;let l;if(s==="show-not"){let c=i.map($=>`[${a}="${CSS.escape($)}"]`).join(","),d=`[${a}]:not(${c})`;l=`${d},${d} *`}else l=p;return`${u}:not(:is(${l})){display:none!important}`}).join(""):""},update(){try{let t=this.findOptionAttributes(),e=this.generateCSS(t);m(w,e,n=>{n.setAttribute("clay","no-watch")}),this.log(`Generated ${t.length} rules`)}catch(t){console.error("[OptionVisibility] Error generating rules:",t)}},start(){if(!this._started){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.start(),{once:!0});return}this._started=!0,this.update(),this._unsubscribe=f.onAnyChange({debounce:200,selectorFilter:t=>[...t.attributes].some(e=>e.name.startsWith("option:")||e.name.startsWith("option-not:")||e.name.startsWith("show-when:")||e.name.startsWith("hide-when:")),omitChangeDetails:!0,require:"observed",pausable:!1},()=>this.update()),this.log("Started")}},stop(){if(!this._started)return;this._started=!1,this._unsubscribe&&(this._unsubscribe(),this._unsubscribe=null);let t=document.querySelector(`style[data-name="${w}"]`);t&&t.remove(),this.log("Stopped")}};window.clay.optionVisibility=h;var O=h;function _(){h.start()}_();export{O as default,_ as init,x as parseOptionAttribute};
1
+ import{c as m}from"../c-7SWMYKAI.js";import{a as f}from"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var w="option-visibility",y=[{prefix:"option-not",kind:"show-not"},{prefix:"option",kind:"show"},{prefix:"show-when",kind:"show"},{prefix:"hide-when",kind:"hide"}];function x(t,e){let n=null;for(let o of y)if(t.startsWith(o.prefix+":")){n=o;break}if(!n)return null;let r=t.slice(n.prefix.length+1),i=e,s=i.split("|");return{name:r,rawValue:i,values:s,kind:n.kind,prefix:n.prefix,negated:n.kind==="show-not"}}var h={debug:!1,_started:!1,_unsubscribe:null,log(...t){this.debug&&console.log("[OptionVisibility]",...t)},findOptionAttributes(){let t=new Map;try{let e=document.evaluate('//*[@*[starts-with(name(), "option:") or starts-with(name(), "option-not:") or starts-with(name(), "show-when:") or starts-with(name(), "hide-when:")]]',document.documentElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let n=0;n<e.snapshotLength;n++){let r=e.snapshotItem(n);for(let i of r.attributes){let s=x(i.name,i.value);if(!s)continue;let o=`${s.prefix}:${s.name}=${s.rawValue}`;t.has(o)||t.set(o,s)}}}catch(e){this.log("XPath error, falling back to empty",e)}return[...t.values()]},generateCSS(t){return t.length?t.map(e=>{let{name:n,rawValue:r,values:i}=e,s=e.kind||(e.negated?"show-not":"show"),o=e.prefix||(s==="show-not"?"option-not":s==="hide"?"hide-when":"option"),a=CSS.escape(n),b=CSS.escape(r),u=`[${CSS.escape(o)}\\:${a}="${b}"]`,S=i.map(c=>`[${a}="${CSS.escape(c)}"]`),g=i.map(c=>`[${a}="${CSS.escape(c)}"] *`),p=[...S,...g].join(",");if(s==="hide")return`${u}:is(${p}){display:none!important}`;let l;if(s==="show-not"){let c=i.map($=>`[${a}="${CSS.escape($)}"]`).join(","),d=`[${a}]:not(${c})`;l=`${d},${d} *`}else l=p;return`${u}:not(:is(${l})){display:none!important}`}).join(""):""},update(){try{let t=this.findOptionAttributes(),e=this.generateCSS(t);m(w,e,n=>{n.setAttribute("clay","no-watch")}),this.log(`Generated ${t.length} rules`)}catch(t){console.error("[OptionVisibility] Error generating rules:",t)}},start(){if(!this._started){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.start(),{once:!0});return}this._started=!0,this.update(),this._unsubscribe=f.onAnyChange({debounce:200,selectorFilter:t=>[...t.attributes].some(e=>e.name.startsWith("option:")||e.name.startsWith("option-not:")||e.name.startsWith("show-when:")||e.name.startsWith("hide-when:")),omitChangeDetails:!0,require:"observed",pausable:!1},()=>this.update()),this.log("Started")}},stop(){if(!this._started)return;this._started=!1,this._unsubscribe&&(this._unsubscribe(),this._unsubscribe=null);let t=document.querySelector(`style[data-name="${w}"]`);t&&t.remove(),this.log("Stopped")}};window.clay.optionVisibility=h;var O=h;function _(){h.start()}_();export{O as default,_ as init,x as parseOptionAttribute};
@@ -1,4 +1,4 @@
1
- import{a as ho,c as R}from"../c-LTSPHVAK.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{P as So,Q as Do,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,t as vo,y as wo}from"../c-CV4T65JE.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-DD26VXAP.js";import"../c-CTGRDT6E.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as q,k as yo,p as zo,x as Eo}from"../c-ZRGEN6QQ.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as V,c as Mo,d as T}from"../c-6RGEQNVV.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as D,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-WCG6AKA7.js";import"../c-57XDY6HC.js";import{b as L}from"../c-RS77ODLY.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-IJUK2GPW.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{Decoration:$,DecorationSet:Ho}=m,_o="Type / for blocks",No="Untitled",Wo="To do";function Uo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":No})))}),r}function Xo(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Wo}))}),e}function Fo(o=_o){return new h.Plugin({props:{decorations(e){let r=Xo(e.doc),t=Uo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let n=d.before(1);r.push($.node(n,n+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?Ho.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Go=[1,2,3,4,5,6,7,8],Yo=`
1
+ import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{P as So,Q as Do,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,t as vo,y as wo}from"../c-JWW6BHWD.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-DT7E76Z2.js";import"../c-C6YZNU6E.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as q,k as yo,p as zo,x as Eo}from"../c-AI3H6ETU.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as V,c as Mo,d as T}from"../c-SXZYVXD6.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as D,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-WCG6AKA7.js";import"../c-57XDY6HC.js";import{b as L}from"../c-NL4I4KNG.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:$,DecorationSet:Ho}=m,_o="Type / for blocks",No="Untitled",Wo="To do";function Uo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":No})))}),r}function Xo(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Wo}))}),e}function Fo(o=_o){return new h.Plugin({props:{decorations(e){let r=Xo(e.doc),t=Uo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let n=d.before(1);r.push($.node(n,n+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?Ho.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Go=[1,2,3,4,5,6,7,8],Yo=`
2
2
  --blockeditor-bg: #F7F6F2; --blockeditor-ink: #23221F; --blockeditor-ink-soft: #6B6862; --blockeditor-ink-faint: #9B968C;
3
3
  --blockeditor-rule: rgba(35, 34, 31, 0.10); --blockeditor-accent: #2F5E9E; --blockeditor-link: #164583; --blockeditor-selection: rgba(88, 120, 170, 0.20);
4
4
  --blockeditor-check-border: rgba(35, 34, 31, 0.35); --blockeditor-check-fill: #23221F; --blockeditor-check-ink: #F7F6F2;
@@ -304,4 +304,4 @@ ${Go.map(o=>`:where(article[data-blockeditor], .blockeditor-editor) .blockeditor
304
304
  .blockeditor-dock, .blockeditor-plus, .blockeditor-grip, .blockeditor-toggle-button, .blockeditor-image-handle, .blockeditor-upload-bar > span, .blockeditor-board-person { transition: none; }
305
305
  }
306
306
  }
307
- `,Qo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),Zo=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-ZFO5RW6G.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),oe=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Qo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":Zo}),ee=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),re={Backspace:y.chainCommands(ee,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},te=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Ko=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function ie(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function de({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:n},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:n}),z=Ko.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function le(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Mo(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ce({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,n=!0,s=!1,u=0,x=a=>{let b=t.get(a);return b||(b=Promise.resolve(o(a)),t.set(a,b),b.catch(()=>{t.get(a)===b&&t.delete(a)})),b},z=()=>(c??=R({load:x,install:(a,b)=>b.createFeature(e(d)),reportError:r??((a,b)=>console.error(`clayjs: the ${b} command failed to load`,a))}),c),E=()=>{let a=u,b=d.state.selection;return{revision:a,selection:b,valid:()=>n&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(b)}};function A(a,b){a.doc!==b.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,b){if(!n||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(b):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(n){n=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function M(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(n=!0)},quiesce:v,leave:M,dispose(){M(),s=!0,n=!1,t.clear()}}}var _=new WeakMap;function ae(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function _e(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function ne(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function be({upload:o=te,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:n=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ae(u):null,vo(),ne(n),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),D.keymap(re),So,To,D.keymap(Po),D.keymap(oe({history:r,undo:t,redo:i})),D.keymap(y.baseKeymap),yo(),eo(),Do(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),ie(),s?le(s):null].filter(Boolean)}function pe(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:be(e)})}function Ne(o){!o||o.isDestroyed||o.updateState(o.state)}function We(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function ke(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,n=o.state.doc.nodeAt(c);return n?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...n.attrs,checked:!n.attrs.checked})),!0):!1}function Ue(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:n=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:M=null,formatGate:a=null}={}){let b=o.ownerDocument;L(Oo,Jo,Oo,["editor-ui"]);let p=b.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=M??R({load:l=>V[l].load(),install:(l,f)=>de({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ce({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(V))for(let f of l.views??l.types)N[f]=(B,Ro,qo,Vo,$o)=>{let W=K.get(B.type.name);return W?W(B,Ro,qo,Vo,$o):new H(B,K)};k=new m.EditorView(p,{state:pe(e,{upload:t,highlight:i,doc:d,history:n,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:ke,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(q)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(q));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Ko.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Io=k.destroy.bind(k),C=null,I=!1,Lo=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Lo();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Io()},k}export{Jo as PAGE_EDITOR_CSS,pe as blockeditorState,Ue as createPageEditor,de as installPageFeature,O as lazyViewsKey,ie as lazyViewsPlugin,be as pagePlugins,Ne as refreshMountedView,_e as runPageCommand,We as setEditorActive};
307
+ `,Qo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),Zo=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-TCFVG3I4.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),oe=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Qo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":Zo}),ee=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),re={Backspace:y.chainCommands(ee,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},te=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Ko=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function ie(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function de({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:n},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:n}),z=Ko.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function le(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Mo(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ce({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,n=!0,s=!1,u=0,x=a=>{let b=t.get(a);return b||(b=Promise.resolve(o(a)),t.set(a,b),b.catch(()=>{t.get(a)===b&&t.delete(a)})),b},z=()=>(c??=R({load:x,install:(a,b)=>b.createFeature(e(d)),reportError:r??((a,b)=>console.error(`clayjs: the ${b} command failed to load`,a))}),c),E=()=>{let a=u,b=d.state.selection;return{revision:a,selection:b,valid:()=>n&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(b)}};function A(a,b){a.doc!==b.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,b){if(!n||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(b):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(n){n=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function M(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(n=!0)},quiesce:v,leave:M,dispose(){M(),s=!0,n=!1,t.clear()}}}var _=new WeakMap;function ae(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function _e(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function ne(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function be({upload:o=te,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:n=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ae(u):null,vo(),ne(n),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),D.keymap(re),So,To,D.keymap(Po),D.keymap(oe({history:r,undo:t,redo:i})),D.keymap(y.baseKeymap),yo(),eo(),Do(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),ie(),s?le(s):null].filter(Boolean)}function pe(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:be(e)})}function Ne(o){!o||o.isDestroyed||o.updateState(o.state)}function We(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function ke(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,n=o.state.doc.nodeAt(c);return n?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...n.attrs,checked:!n.attrs.checked})),!0):!1}function Ue(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:n=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:M=null,formatGate:a=null}={}){let b=o.ownerDocument;L(Oo,Jo,Oo,["editor-ui"]);let p=b.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=M??R({load:l=>V[l].load(),install:(l,f)=>de({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ce({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(V))for(let f of l.views??l.types)N[f]=(B,Ro,qo,Vo,$o)=>{let W=K.get(B.type.name);return W?W(B,Ro,qo,Vo,$o):new H(B,K)};k=new m.EditorView(p,{state:pe(e,{upload:t,highlight:i,doc:d,history:n,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:ke,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(q)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(q));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Ko.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Io=k.destroy.bind(k),C=null,I=!1,Lo=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Lo();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Io()},k}export{Jo as PAGE_EDITOR_CSS,pe as blockeditorState,Ue as createPageEditor,de as installPageFeature,O as lazyViewsKey,ie as lazyViewsPlugin,be as pagePlugins,Ne as refreshMountedView,_e as runPageCommand,We as setEditorActive};
@@ -1,4 +1,4 @@
1
- import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-DFKBGSN2.js";import{e as Ke,g as F,h as ze,j as le,l as Te,n as Ce,p as Ge,q as d}from"../c-MR75YPRT.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-JQF2EUCG.js";import{a as de,b as Ve}from"../c-QTTJYJMA.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-TWCXBWS3.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-HTLYXCUH.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-6Q6RGFBF.js";import"../c-SKMIR5HQ.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-LA2BW7UY.js";import"../c-MFOSMAVM.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-6IJEVE6B.js";import"../c-QQFHEODI.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(e){if(e===document.body)return"document";let t=e.getAttribute("data-edit-id");if(t)return t;let n=e.closest("[data-edit-id]");return n?n.getAttribute("data-edit-id")+" \u203A "+e.tagName.toLowerCase():e.id?"#"+e.id:e.tagName.toLowerCase()}function xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;let t=e.commonAncestorContainer;if(t.nodeType!==1&&(t=t.parentElement),!t||!document.body.contains(t))return null;if(t===document.body)return document.body;if(t.closest("[data-clay-ai-edit]")||t.closest(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(e,t){if(!e||!t||!t.contains(e.commonAncestorContainer))return;let n=e.toString();if(!n.trim())return;let i=document.createRange();i.selectNodeContents(t),i.setEnd(e.startContainer,e.startOffset);let r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,handle:!1};e.docMode?(typeof t=="string"&&(t=new DOMParser().parseFromString(t,"text/html").body),i.morph(document.body,t,{morphStyle:"outerHTML",restoreFocus:document.activeElement?.localName!=="clay-editor-ui",scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(ee))}})):Mt(e.el,t,s),Ue()}function kt(e,t){let n=e.search(new RegExp("<"+t+"(\\s|>)","i"));if(n===-1)return null;let i=e.slice(n).replace(/\s*`{1,3}\s*$/,"");if(t.toLowerCase()==="body")return new DOMParser().parseFromString(i,"text/html").body;let r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(e,t,n){let i=n?new DOMParser().parseFromString(t,"text/html").body:(()=>{let s=document.createElement("template");return s.innerHTML=t,s.content.firstElementChild})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.docMode){let i=document.createElement("template");i.innerHTML=e.html||"",i.content.children.length>1&&t.push("reply had extra root elements \u2014 kept the first")}if(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
1
+ import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-SUAC5RSG.js";import{e as Ke,g as F,h as ze,j as le,l as Te,n as Ce,p as Ge,q as d}from"../c-MR75YPRT.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-FJDTDGDA.js";import{a as de,b as Ve}from"../c-QTTJYJMA.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-QCDVDZIR.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-VMXCX52Q.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-MZCOGNZL.js";import"../c-MFB74XVN.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(e){if(e===document.body)return"document";let t=e.getAttribute("data-edit-id");if(t)return t;let n=e.closest("[data-edit-id]");return n?n.getAttribute("data-edit-id")+" \u203A "+e.tagName.toLowerCase():e.id?"#"+e.id:e.tagName.toLowerCase()}function xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;let t=e.commonAncestorContainer;if(t.nodeType!==1&&(t=t.parentElement),!t||!document.body.contains(t))return null;if(t===document.body)return document.body;if(t.closest("[data-clay-ai-edit]")||t.closest(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(e,t){if(!e||!t||!t.contains(e.commonAncestorContainer))return;let n=e.toString();if(!n.trim())return;let i=document.createRange();i.selectNodeContents(t),i.setEnd(e.startContainer,e.startOffset);let r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,handle:!1};e.docMode?(typeof t=="string"&&(t=new DOMParser().parseFromString(t,"text/html").body),i.morph(document.body,t,{morphStyle:"outerHTML",restoreFocus:document.activeElement?.localName!=="clay-editor-ui",scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(ee))}})):Mt(e.el,t,s),Ue()}function kt(e,t){let n=e.search(new RegExp("<"+t+"(\\s|>)","i"));if(n===-1)return null;let i=e.slice(n).replace(/\s*`{1,3}\s*$/,"");if(t.toLowerCase()==="body")return new DOMParser().parseFromString(i,"text/html").body;let r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(e,t,n){let i=n?new DOMParser().parseFromString(t,"text/html").body:(()=>{let s=document.createElement("template");return s.innerHTML=t,s.content.firstElementChild})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.docMode){let i=document.createElement("template");i.innerHTML=e.html||"",i.content.children.length>1&&t.push("reply had extra root elements \u2014 kept the first")}if(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
2
2
  [editmode\\:contenteditable][contenteditable]:focus {
3
3
  outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
4
4
  }
@@ -1 +1 @@
1
- import{b as l}from"../c-JAX2667S.js";import{f as i}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import{h as c}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var r="clay:demo:"+(document.documentElement.getAttribute("demo-key")||window.location.pathname),y=800,h=[c,"[data-richclay-toolbar]","[data-richclay-menu]","[data-richclay-dialog]","[data-richclay-live]","[data-richclay-float]","#squire-selection-start","#squire-selection-end",".squire-image-resize-container"].join(","),a=!1,d=null;document.addEventListener("clay:snapshot-ready",e=>{d=e.detail.documentElement.querySelector("body")?.outerHTML||null});function p(e){return typeof e=="string"?e:""}var f=window.fetch.bind(window);function g(e){let t=typeof e=="string"?e:e&&e.url||"";try{let o=new URL(t,window.location.href).pathname;return o==="/_/save"||o.startsWith("/_/save/")}catch{return!1}}window.fetch=(e,t={})=>(t.method||e&&e.method||"GET").toUpperCase()!=="POST"||!g(e)?f(e,t):new Promise(n=>{setTimeout(()=>{if(a){a=!1,n(new Response(JSON.stringify({msg:"Server not responding",msgType:"error"}),{status:503,headers:{"Content-Type":"application/json"}}));return}let m=d||p(t.body),s=new DOMParser().parseFromString(m,"text/html");s.querySelectorAll(h).forEach(u=>u.remove());try{localStorage.setItem(r,s.body.outerHTML)}catch{n(new Response(JSON.stringify({msg:"Couldn't save in this browser (storage is full or blocked)",msgType:"error"}),{status:507,headers:{"Content-Type":"application/json"}}));return}n(new Response(JSON.stringify({msg:"Saved in your browser",msgType:"success"}),{status:200,headers:{"Content-Type":"application/json"}}))},y)});async function w(){let e=localStorage.getItem(r);if(!e)return;let t=new DOMParser().parseFromString(e,"text/html");if(!i)for(let o of t.querySelectorAll(":is([editable], [clay-editable])[contenteditable]"))o.removeAttribute("contenteditable");await l(document.body,t.body,{morphStyle:"outerHTML",ignoreActiveValue:!0,scripts:{handle:!0,matchMode:"smart"}})}var v=w(),E={key:r,failNext(){a=!0},reset(){localStorage.removeItem(r),window.location.reload()}};export{E as demo,v as ready};
1
+ import{b as l}from"../c-JAX2667S.js";import{f as i}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import{h as c}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var r="clay:demo:"+(document.documentElement.getAttribute("demo-key")||window.location.pathname),y=800,h=[c,"[data-richclay-toolbar]","[data-richclay-menu]","[data-richclay-dialog]","[data-richclay-live]","[data-richclay-float]","#squire-selection-start","#squire-selection-end",".squire-image-resize-container"].join(","),a=!1,d=null;document.addEventListener("clay:snapshot-ready",e=>{d=e.detail.documentElement.querySelector("body")?.outerHTML||null});function p(e){return typeof e=="string"?e:""}var f=window.fetch.bind(window);function g(e){let t=typeof e=="string"?e:e&&e.url||"";try{let o=new URL(t,window.location.href).pathname;return o==="/_/save"||o.startsWith("/_/save/")}catch{return!1}}window.fetch=(e,t={})=>(t.method||e&&e.method||"GET").toUpperCase()!=="POST"||!g(e)?f(e,t):new Promise(n=>{setTimeout(()=>{if(a){a=!1,n(new Response(JSON.stringify({msg:"Server not responding",msgType:"error"}),{status:503,headers:{"Content-Type":"application/json"}}));return}let m=d||p(t.body),s=new DOMParser().parseFromString(m,"text/html");s.querySelectorAll(h).forEach(u=>u.remove());try{localStorage.setItem(r,s.body.outerHTML)}catch{n(new Response(JSON.stringify({msg:"Couldn't save in this browser (storage is full or blocked)",msgType:"error"}),{status:507,headers:{"Content-Type":"application/json"}}));return}n(new Response(JSON.stringify({msg:"Saved in your browser",msgType:"success"}),{status:200,headers:{"Content-Type":"application/json"}}))},y)});async function w(){let e=localStorage.getItem(r);if(!e)return;let t=new DOMParser().parseFromString(e,"text/html");if(!i)for(let o of t.querySelectorAll(":is([editable], [clay-editable])[contenteditable]"))o.removeAttribute("contenteditable");await l(document.body,t.body,{morphStyle:"outerHTML",ignoreActiveValue:!0,scripts:{handle:!0,matchMode:"smart"}})}var v=w(),E={key:r,failNext(){a=!0},reset(){localStorage.removeItem(r),window.location.reload()}};export{E as demo,v as ready};
@@ -1 +1 @@
1
- import"../c-VHNSBD2M.js";function n(){let o=window.Sap;return!!(o&&!o.core||window.clay?.loaded?.sap)}var a=n()?null:import("../vendor/sap-core.vendor-QAEPMETX.js").then(()=>{});export{a as ready};
1
+ import"../c-VHNSBD2M.js";function n(){let o=window.Sap;return!!(o&&!o.core||window.clay?.loaded?.sap)}var a=n()?null:import("../vendor/sap-core.vendor-JANUQULT.js").then(()=>{});export{a as ready};
@@ -1 +1 @@
1
- import{a as c}from"../c-5KXDKC5G.js";import{a as s}from"../c-VKEDWYDF.js";import{k as a}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var u=["saving","saved","error","offline","retrying","blocked"],d=null,i=()=>d??=import("../c-NHXOBD6A.js"),o=(e,t)=>{i().then(r=>{n&&r.show(e,t)},()=>{})},f=new Set(["blocked","unavailable"]),p=e=>{if(!f.has(e))return o(e);i().then(t=>{n&&t.standDown()},()=>{})},n=null;function l(){if(c.chip=!0,n)return;n=new AbortController;let{signal:e}=n;for(let t of["beforeinput","keydown","pointerdown"])document.addEventListener(t,i,{signal:e,once:!0,capture:!0});for(let t of u)document.addEventListener("clay:save-"+t,r=>o(t,r.detail),{signal:e});document.addEventListener("clay:blockeditor-save-state",t=>p(t.detail?.state),{signal:e}),document.addEventListener("clay:save-status",t=>o(t.detail?.state),{signal:e})}function m(){n?.abort(),n=null,d?.then(e=>e.remove(),()=>{})}function v(){a()&&l()}function w(){return{id:"clay:indicator",order:700,prepare(e={}){return{enable(){e.initial!==!0&&l()},quiesce(){},resume(){},dispose(){m()}}}}}s(v);export{w as indicatorParticipant,w as modeParticipant};
1
+ import{a as c}from"../c-5KXDKC5G.js";import{a as s}from"../c-VKEDWYDF.js";import{k as a}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var u=["saving","saved","error","offline","retrying","blocked"],d=null,i=()=>d??=import("../c-NHXOBD6A.js"),o=(e,t)=>{i().then(r=>{n&&r.show(e,t)},()=>{})},f=new Set(["blocked","unavailable"]),p=e=>{if(!f.has(e))return o(e);i().then(t=>{n&&t.standDown()},()=>{})},n=null;function l(){if(c.chip=!0,n)return;n=new AbortController;let{signal:e}=n;for(let t of["beforeinput","keydown","pointerdown"])document.addEventListener(t,i,{signal:e,once:!0,capture:!0});for(let t of u)document.addEventListener("clay:save-"+t,r=>o(t,r.detail),{signal:e});document.addEventListener("clay:blockeditor-save-state",t=>p(t.detail?.state),{signal:e}),document.addEventListener("clay:save-status",t=>o(t.detail?.state),{signal:e})}function m(){n?.abort(),n=null,d?.then(e=>e.remove(),()=>{})}function v(){a()&&l()}function w(){return{id:"clay:indicator",order:700,prepare(e={}){return{enable(){e.initial!==!0&&l()},quiesce(){},resume(){},dispose(){m()}}}}}s(v);export{w as indicatorParticipant,w as modeParticipant};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-7CM4GMTS.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-HTLYXCUH.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-6Q6RGFBF.js";import"../c-SKMIR5HQ.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-MFOSMAVM.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-6IJEVE6B.js";import"../c-QQFHEODI.js";import"../c-IJUK2GPW.js";import"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-YX2MC7YL.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-VMXCX52Q.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-MFB74XVN.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
@@ -1 +1 @@
1
- import{a as we,b as G}from"../c-QTEUO2K6.js";import{a as he,b as ae,c as be}from"../c-X6MOYATI.js";import{a as te,g as ne,h as oe,i as Ee,k as ke}from"../c-DIKR7H57.js";import{a as I}from"../c-AQLFEATB.js";import{a as W,b as D,c as _,d as ge,f as ve,g as V}from"../c-CUMXGHVD.js";import{b as pe,c as ye}from"../c-RVMWGXEJ.js";import"../c-QY7F6EN6.js";import{a as de,b as me}from"../c-RHMPKZZ7.js";import{d as fe}from"../c-PKCCHJ5X.js";import{a as ce}from"../c-VKEDWYDF.js";import{d as ue}from"../c-QQFHEODI.js";import{b as Q,c as ee,f as ie,g as le}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ae=new Set(["top-left","top-right","bottom-left","bottom-right"]),Ue=4,xe="menu-corner";function _e(t,e,l,m){return`${e<m/2?"top":"bottom"}-${t<l/2?"left":"right"}`}function De(t,e){let[l,m]=t.split("-");if(e==="ArrowUp")l="top";else if(e==="ArrowDown")l="bottom";else if(e==="ArrowLeft")m="left";else if(e==="ArrowRight")m="right";else return null;return`${l}-${m}`}function Be(t){let e=null;try{e=t?t.get(xe):null}catch{}return Ae.has(e)?e:"top-right"}function He(t){let e=document.createElement("div");e.className="clay-menu-spots",e.setAttribute("clay","editor-ui"),e.setAttribute("aria-hidden","true");for(let l of Ae){let m=document.createElement("span");m.className="clay-menu-spot",m.dataset.to=l,e.append(m)}return t.append(e),e}function Se({dock:t,container:e=document.body,grip:l,storage:m,onMove:h,onDragStart:E}){function n(s,{remember:d=!0}={}){if(t.dataset.corner=s,d)try{m&&m.set(xe,s)}catch{}h&&h(s)}n(Be(m),{remember:!1}),l.addEventListener("keydown",s=>{let d=De(t.dataset.corner,s.key);d&&(s.preventDefault(),d!==t.dataset.corner&&n(d))});let o=null;l.addEventListener("pointerdown",s=>{if(s.button!==0||s.isPrimary===!1)return;let d=t.getBoundingClientRect();if(o={id:s.pointerId,x:s.clientX,y:s.clientY,dx:s.clientX-d.left,dy:s.clientY-d.top,w:d.width,h:d.height,moving:!1,spots:null,near:null},l.setPointerCapture)try{l.setPointerCapture(s.pointerId)}catch{}}),l.addEventListener("pointermove",s=>{if(!o||s.pointerId!==o.id)return;if(!o.moving){if(Math.hypot(s.clientX-o.x,s.clientY-o.y)<Ue)return;o.moving=!0,t.setAttribute("data-dragging",""),o.spots=He(e),o.spots.style.setProperty("color-scheme",getComputedStyle(t).colorScheme),E&&E()}let d=s.clientX-o.dx,$=s.clientY-o.dy;Object.assign(t.style,{left:`${d}px`,top:`${$}px`,right:"auto",bottom:"auto"}),o.near=_e(d+o.w/2,$+o.h/2,window.innerWidth,window.innerHeight);for(let A of o.spots.children)A.toggleAttribute("data-near",A.dataset.to===o.near)});let b=s=>d=>{if(!o||d.pointerId!==o.id)return;let{moving:$,near:A,spots:P}=o;if(o=null,!!$){P.remove(),t.removeAttribute("data-dragging");for(let N of["left","top","right","bottom"])t.style.removeProperty(N);s&&A?n(A):n(t.dataset.corner,{remember:!1})}};return l.addEventListener("pointerup",b(!0)),l.addEventListener("pointercancel",b(!1)),l.addEventListener("lostpointercapture",b(!1)),{setCorner:n}}var z="menu-resume",Ye=5e3,Fe=8e3,R=()=>window.clay||{},Ce=()=>R().storage&&R().storage.session,B=t=>{let e=R().editPlugins;return Array.isArray(e)&&e.includes(t)};function se(t,e=Ye){return new Promise(l=>{let m=Date.now(),h=()=>{let E=t();E||Date.now()-m>=e?l(E||null):setTimeout(h,50)};h()})}function Ie(t=Fe){let e=R().blockeditor;if(!e)return Promise.resolve(!0);let l=Date.now();return new Promise(m=>{let h=!1,E=b=>{h||(h=!0,clearTimeout(o),m(b))},n=()=>{if(!h){if(R().blockeditor?.ai)return E(!0);if(Date.now()-l>=t)return E(!1);setTimeout(n,50)}},o=setTimeout(()=>E(!1),t);Promise.resolve(e.ready).catch(()=>null).then(n,n)})}function Le({addItem:t,note:e,currentMode:l}){let m=new Map,h=null;async function E(a,i){if(l()==="edit")return i();let x=Ce();x&&x.set(z,a);let w;try{w=await R().setMode?.("edit")}catch(T){w={ok:!1,message:T&&T.message}}if(!(w&&w.ok!==!1&&w.reloading)){if(x&&x.remove(z),!w||w.ok===!1){let T=w?I(w):"Couldn't switch modes.";T&&e(T);return}return i()}}function n(a,i){return m.set(a,i),h===a&&(h=null,l()==="edit"&&i()),()=>E(a,i)}let o={canUndo:!1,canRedo:!1},b=!1,s=()=>B("blockeditor")&&R().blockeditor?.history?R().blockeditor.history:B("undo")?R().undo:null;function d(){if(!B("blockeditor")&&!B("undo"))return;let a=l()==="edit"&&s();!b&&a&&typeof a.canUndo=="boolean"&&(o={canUndo:a.canUndo,canRedo:!!a.canRedo}),t({id:"clay.undo",pair:[{id:"clay.undo.undo",label:"Undo",keys:G("\u2318Z","Ctrl+Z"),disabled:!(a&&o.canUndo),run:()=>s()?.undo()},{id:"clay.undo.redo",label:"Redo",keys:G("\u2318\u21E7Z","Ctrl+Shift+Z"),disabled:!(a&&o.canRedo),run:()=>s()?.redo()}]})}document.addEventListener("clay:undo-change",a=>{let i=a.detail||{};b=!0,o={canUndo:!!i.canUndo,canRedo:!!i.canRedo},d()}),document.addEventListener("clay:modechange",d),d(),B("ai-edit")&&(async()=>{let a=R().aiEdit||(l()==="edit"?await se(()=>R().aiEdit):null);if(a?.available){if(!await a.available())return}else if(!a&&B("blockeditor")){let i=await ue();if(!(Array.isArray(i.document?.helpers)&&i.document.helpers.some(w=>w&&w.name==="ai-edit"&&(w.state==="ready"||w.state==="unavailable"))))return}t({id:"clay.ai",label:"Ask AI to improve this page",keys:G("\u2318J","Ctrl+J"),run:n("ai",async()=>{let i=await se(()=>R().aiEdit);(i&&(B("blockeditor")||R().blockeditor)?await Ie():!!i)&&await i.pick()||e("Ask AI isn't available on this page right now.")})})})(),B("cms")&&R().cms?.hasRules?.(document)&&t({id:"clay.cms",label:"Open the CMS (Edit content)",run:n("cms",async()=>{let a=await se(()=>R().cms),i=null;try{i=a?await a.open():{ok:!1}}catch{i={ok:!1}}i&&i.ok===!1&&e("Couldn't open the CMS. Try again.")})});let $=/<script\b[^>]*>[\s\S]*?<\/script>\n?/gi,A=a=>{let i=a.slice(0,a.indexOf(">")+1);return/\bmerge="blockeditor(?:\.\d+)?"/.test(i)&&/\bclay="[^"]*\blive\b/.test(i)},P=a=>/<article\b[^>]*\bdata-blockeditor\b/.test(a)?a.replace($,i=>A(i)?"":i):a;t({id:"clay.download",label:"Download a copy",run:async()=>{let a=null;try{if(typeof R().getHTML=="function")a=R().getHTML();else{let i=await fetch(location.href,{cache:"no-store",credentials:"same-origin"});i.ok&&(a=await i.text())}}catch{}typeof a=="string"&&/^https?:$/.test(location.protocol)&&(a=P(a),a=a.replace(/(^|[^\w./:-])\/_\/uploads\//g,`$1${location.origin}/_/uploads/`)),(typeof a!="string"||!await me({html:a,name:`${de()}.html`}))&&e("Couldn't build the download. Try again.")}});async function N(a){let i=null;try{let x=await fetch(a,{method:"POST",credentials:"same-origin",headers:{"Document-URL":location.href}});if(i=await x.json().catch(()=>null),x.ok&&i?.ok!==!1){typeof i?.href=="string"&&window.open(i.href,"_blank","noopener");return}}catch{}e(typeof i?.message=="string"&&i.message?i.message:"Couldn't do that. Try again.")}let M=(a,i,x)=>{x?.href?t({id:a,label:i,href:x.href}):x?.post&&t({id:a,label:i,run:()=>N(x.post)})};import("../c-B7GOFGQR.js").then(({hostActions:a})=>a()).then(a=>{M("clay.code","Open the code editor",a.codeEditor),M("clay.duplicate","Duplicate as a new page",a.duplicate),M("clay.export","Export as zip",a.export),M("clay.reveal",we(),a.reveal),M("clay.versions","Version history\u2026",a.versions)}).catch(()=>{});let g=Ce(),q=g&&g.get(z);if(q){g.remove(z);let a=m.get(q);a&&l()==="edit"?a():a||(h=q)}return{inEditMode:E,resumable:n,refresh:d}}var Ke='<svg viewBox="0 0 256 256" aria-hidden="true" focusable="false"><path d="M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128 50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z"/></svg>',We=3,X=(t,e,l)=>`${t} ${t===1?e:l}`;function re(t){let e=document.createElement("span");e.className="clay-avatar",e.setAttribute("aria-hidden","true");let l=pe(t.id);return e.style.setProperty("color",l),e.style.setProperty("border-color",l),e.style.setProperty("background","var(--bevel-surface)"),e.textContent=ye(t.name),e}function Re({root:t,capsule:e,addItem:l,removeItem:m,closeMenu:h,note:E}){let n={supported:!1,people:[],anonymous:0},o=null,b=null,s=null,d=!1,$=()=>window.clay&&window.clay.people,A=()=>window.clay&&window.clay.me||null,P=()=>{try{return!!$()?.canRename?.()}catch{return!1}},N=()=>n.people.length+n.anonymous,M=()=>document.documentElement.hasAttribute("clay-menu-roster");function g({restore:y=!0}={}){o&&(o.remove(),o=null,d=!1,s?.setAttribute("aria-expanded","false"),y&&b&&b.isConnected&&b.focus(),b=null)}function q(){let y=A();if(!y||!y.name)return null;let f=document.createElement("div");f.className="clay-people-me";let S=document.createElement("span");S.className="clay-people-me-label",S.textContent="Your edits are signed as";let k=document.createElement("div");if(k.className="clay-people-me-row",f.append(S,k),d){let p=document.createElement("input");p.className="clay-people-input",p.type="text",p.value=y.name,p.setAttribute("aria-label","Your name"),p.maxLength=120;let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary",v.textContent="Save";let L=()=>{try{$().rename(p.value)}catch(O){E(O&&O.code==="not-renamable"?"This name comes from your account, so it can't be changed here.":"Use a name of 1 to 120 characters that isn't an email address."),p.focus();return}d=!1,a(),o?.querySelector(".clay-people-me .clay-menu-btn")?.focus()};v.addEventListener("click",L),p.addEventListener("keydown",O=>{O.key==="Enter"&&(O.preventDefault(),L())}),k.append(p,v),queueMicrotask(()=>{p.isConnected&&(p.focus(),p.select())})}else{let p=document.createElement("span");if(p.className="clay-people-me-name",p.textContent=y.name,k.append(re(y),p),P()){let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small",v.textContent="Change",v.addEventListener("click",()=>{d=!0,a()}),k.append(v)}}return f}function a(){if(!o)return;let y=N();o.textContent="";let f=document.createElement("div");f.className="clay-people-head";let S=document.createElement("h3");S.className="clay-people-title",S.textContent="Who's here";let k=document.createElement("span");k.className="clay-people-sum",k.textContent=X(y,"person","people");let p=document.createElement("button");if(p.type="button",p.className="clay-people-close",p.setAttribute("aria-label","Close"),p.innerHTML=Ke,p.addEventListener("click",()=>g()),f.append(S,k,p),o.append(f),n.people.length){let L=document.createElement("ul");L.className="clay-people-list";for(let O of n.people){let u=document.createElement("li");u.className="clay-people-row";let r=document.createElement("span");r.className="clay-people-who";let c=document.createElement("strong");if(c.textContent=O.name,O.you){let C=document.createElement("span");C.textContent="(you)",c.append(C)}r.append(c),u.append(re(O),r),L.append(u)}o.append(L)}if(n.anonymous>0){let L=document.createElement("p");L.className="clay-people-anon",L.textContent=n.anonymous===1?"1 other person is here without a shared name.":`${n.anonymous} others are here without a shared name.`,o.append(L)}let v=q();v&&o.append(v)}function i(y){if(h(),o){g();return}b=y,o=document.createElement("div"),o.className="clay-people",o.setAttribute("role","dialog"),o.setAttribute("aria-label","Who's here"),o.addEventListener("keydown",f=>{f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),d?(d=!1,a(),o.querySelector(".clay-people-me .clay-menu-btn")?.focus()):g())}),a(),t.append(o),s?.setAttribute("aria-expanded",y===s?"true":"false"),o.querySelector(".clay-people-close").focus()}function x(){if(!(M()&&n.supported&&N()>1)){s?.remove(),s=null;return}s||(s=document.createElement("button"),s.type="button",s.className="clay-roster",s.setAttribute("aria-haspopup","dialog"),s.setAttribute("aria-expanded",o?"true":"false"),s.addEventListener("click",()=>i(s)),t.insertBefore(s,e));let f=n.people.slice(0,We),S=N()-f.length,k=document.createElement("span");k.className="clay-roster-faces";for(let v of f)k.append(re(v));s.textContent="",s.append(k),S>0&&s.append(X(S,"other","others"));let p=f.map(v=>v.name);s.setAttribute("aria-label",`Who's here: ${p.join(", ")}${S>0?`${p.length?" and ":""}${X(S,"other","others")}`:""}`)}let w=null;function T(){let y=N();if(n.supported&&(y>1||P())){let f=y>1?`Who's here (${X(y,"person","people")})`:"Who's here";f!==w&&(w=f,l({id:"clay.people",label:f,run:()=>i(e.querySelector(".clay-menu-goo"))}))}else w!==null&&m("clay.people"),w=null,g({restore:!1});if(x(),o&&!d){let f=t.getRootNode().activeElement,S=f&&o.contains(f)?f.classList[0]:null;a(),S&&o.querySelector(`.${S}`)?.focus()}}return document.addEventListener("click",y=>{o&&!y.composedPath().includes(t)&&g({restore:!1})}),document.addEventListener("clay:people",()=>{d||T()}),import("../c-APGHGDZM.js").then(({presence:y})=>{y.subscribe(f=>{n=f||n,T()})}).catch(()=>{}),{close:g}}var Z="variants-choose",je="Change the page look",Ge="Keep one page look",Ve='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect x="4" width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect x="4" y="8" width="2" height="2"/></svg>',ze='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect x="4" y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect y="8" width="2" height="2"/></svg>',U=()=>D().map(_),j=t=>{let e=D().find(l=>_(l)===t);return e?ge(e):`Variant ${t}`};function H(){let t=D(),e=t.find(l=>l.getAttribute("media")!==W);return e?_(e):t.length?_(t[0]):null}function Pe(t,e){let l=window.clay&&window.clay.undo;l&&typeof l.commit=="function"?l.commit(t,e):e(),!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}async function Xe(){let t=await import("../core/save-6HT2LABE.js");for(;!t.baselineSettled();)await new Promise(e=>document.addEventListener("clay:baseline-settled",e,{once:!0}))}function Ze(t){let e=t.map(j);return e.length<2?e.join(""):`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`}function Ne({root:t,capsule:e,addItem:l,removeItem:m,note:h,currentMode:E}){ve();let n=null,o=null,b=null,s=null,d=null,$=!!document.querySelector("[clay-menu-slot]")?.hasAttribute("clay-menu-looks"),A=()=>E()==="edit",P=()=>n??H(),N=()=>window.clay&&window.clay.storage&&window.clay.storage.session;function M(){let u=H();n!==null&&n===u&&(n=null),b?.remove(),b=null;for(let c of D()){if(!c.sheet)continue;let C=c.getAttribute("media")!==W;c.sheet.disabled=C&&(_(c)!==u||n!==null)}if(n===null)return;let r=D().find(c=>_(c)===n);if(!r)return n=null,M();b=document.createElement("style"),b.setAttribute("clay","editor-ui"),b.dataset.clayVariantPreview=n,b.textContent=r.textContent,r.after(b)}function g(){document.dispatchEvent(new CustomEvent("clay:variant-change",{detail:{active:H(),shown:P()}}))}function q(u){return A()?U().includes(u)?(o=n=null,Pe(je,()=>{V(u);for(let r of D())_(r)===u?r.removeAttribute("media"):r.getAttribute("media")!==W&&r.setAttribute("media",W)}),k(),{ok:!0}):{ok:!1,code:"unknown-variant"}:{ok:!1,code:"not-editing"}}function a(u){return u!==null&&!U().includes(u)?{ok:!1,code:"unknown-variant"}:(n=u,k(),{ok:!0})}function i(u){o=n=null,Pe(Ge,()=>{V(u);for(let r of D())_(r)===u?(r.removeAttribute("clay-variant"),r.removeAttribute("media"),r.sheet&&(r.sheet.disabled=!1)):r.remove()}),k()}function x(){if(!A())return Promise.resolve({ok:!1,code:"not-editing"});let u=H(),r=U().filter(C=>C!==u);if(!r.length)return Promise.resolve({ok:!1,code:"unknown-variant"});let c=`Keep ${j(u)} and delete ${Ze(r)}? The switcher goes away. Version history still has them.`;return import("../c-FYDKYW6E.js").then(C=>C.consent(c)).then(()=>(i(u),{ok:!0}),()=>({ok:!1,code:"cancelled"}))}async function w(){let u=n,r=window.clay;if(u===null||!r||typeof r.setMode!="function")return;N()?.set(Z,u);let c;try{c=await r.setMode("edit")}catch(C){c={ok:!1,message:C&&C.message}}if(!(c&&c.reloading)&&c&&c.ok===!1){N()?.remove(Z);let C=I(c);C&&h(C)}}async function T(){let u=N(),r=u?.get(Z);r!=null&&(u.remove(Z),!(!A()||!U().includes(r))&&(o=n=r,k(),await Xe(),!(o!==r||!L())&&(o=null,A()&&U().includes(r)&&q(r))))}function y(u){let r=U(),c=r[(r.indexOf(P())+u+r.length)%r.length];A()?q(c):a(c)}function f(){let u=document.createElement("div");u.className="clay-variants",u.setAttribute("role","group"),u.setAttribute("aria-label","Page look"),u.innerHTML=`<button type="button" class="clay-variants-step" data-step="-1" aria-label="Previous look">${Ve}</button><span class="clay-variants-name" aria-live="polite"></span><button type="button" class="clay-variants-step" data-step="1" aria-label="Next look">${ze}</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary clay-variants-use" hidden>Use this look</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-variants-keep" hidden>Keep</button>`;for(let r of u.querySelectorAll(".clay-variants-step"))r.addEventListener("click",()=>y(Number(r.dataset.step)));return u.querySelector(".clay-variants-use").addEventListener("click",w),u.querySelector(".clay-variants-keep").addEventListener("click",()=>x()),u}function S(){let u=U();if(d=p(),u.length<2){s?.remove(),s=null,m("clay.look"),m("clay.look.use");return}if(t.hasAttribute("data-embedded")){let J=P();$?l({id:"clay.look",section:"start",stepper:{label:"Theme:",value:j(J),prev:()=>y(-1),next:()=>y(1),prevLabel:"Previous theme",nextLabel:"Next theme"}}):m("clay.look"),!A()&&n!==null?l({id:"clay.look.use",section:"start",label:"Use this look",run:w}):m("clay.look.use");return}s||(s=f()),s.isConnected||t.insertBefore(s,t.querySelector(".clay-roster")??e);let r=P(),c=s.querySelector(".clay-variants-name");c.textContent=`${j(r)} `;let C=document.createElement("small");C.textContent=`(${u.indexOf(r)+1}/${u.length})`,c.append(C),s.querySelector(".clay-variants-use").hidden=A()||n===null,s.querySelector(".clay-variants-keep").hidden=!A()}function k(){M(),S(),g()}let p=()=>`${U().join(",")}|${H()}|${P()}`,v=null,L=()=>window.clay?.variants===v;document.addEventListener("clay:modechange",()=>{L()&&(A()?(n=o,T()):o=null,k())});let O=()=>{document.documentElement.hasAttribute("look")&&U().length>1&&V(H())};document.addEventListener("clay:sync-applied",()=>{L()&&(O(),k())}),document.addEventListener("clay:undo-change",()=>{!L()||p()===d||(O(),k())}),v=window.clay.variants={list:()=>{let u=H();return U().map(r=>({name:r,label:j(r),active:r===u}))},get active(){return H()},get shown(){return P()},preview:a,choose:q,keep:x},U().length>=2&&(A()&&T(),k())}var Je="[clay-menu-item]:not([cms-template])",$e=()=>window.clay?.mode==="edit"||window.clay?.mode==="draft";async function Qe(t){if(await window.clay?.ready,!$e()||!t.isConnected)return!1;let e=window.clay?.undo;return e&&typeof e.commit=="function"?e.commit("Remove this item",()=>t.remove()):t.remove(),window.clay?.save?.soon?.(),!0}function Te({addItem:t,removeItem:e,beforeOpen:l}){let m=new Set;function h(){let E=new Set;for(let n of document.querySelectorAll(Je)){let o=n.getAttribute("data-id")||n.id;if(!o){console.warn("[clay] A clay-menu-item needs a data-id or an id.",n);continue}let b=`dom.${o}`;E.add(b);let s=n.getAttribute("clay-menu-dismiss");t({id:b,label:n.textContent.trim(),href:n.getAttribute("href")||"",section:n.getAttribute("clay-menu-section")||void 0,quiet:n.hasAttribute("clay-menu-quiet"),run:n.hasAttribute("href")?null:()=>n.click(),dismiss:s&&$e()?{label:s,run:()=>Qe(n)}:void 0})}for(let n of m)E.has(n)||e(n);m.clear();for(let n of E)m.add(n)}l.push(h);for(let E of["clay:drafts-restored","clay:sync-applied","clay:modechange"])document.addEventListener(E,h);h()}var et=!0,tt=12,nt='<svg viewBox="0 0 6 12" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="4" width="2" height="2"/><rect y="5" width="2" height="2"/><rect x="4" y="5" width="2" height="2"/><rect y="10" width="2" height="2"/><rect x="4" y="10" width="2" height="2"/></svg>',ot=[["clay.undo","clay.cms","clay.ai","clay.code"],["seo","clay.share","clay.people"],["clay.duplicate","clay.download","clay.export","clay.reveal"],["clay.versions"],null,["clay.mode"],["upgrade"]],F=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:le;function at(){if(document.querySelector('clay-editor-ui[data-clay-ui="menu"]'))return;let t=ke({sections:ot,capsuleStart:`<button type="button" class="clay-menu-grip" aria-label="Move the menu. Drag it, or use the arrow keys to move it to another corner.">${nt}</button><button type="button" class="clay-menu-edit" part="edit" role="switch" aria-checked="false">`+Ee+'<span class="clay-menu-label">Edit</span></button><span class="clay-menu-divider" aria-hidden="true"></span>'}),{root:e,goo:l,slot:m,embedded:h,skin:E,addItem:n,removeItem:o,open:b,close:s,note:d,beforeOpen:$,focusedEl:A,mount:P}=t,N=h&&m.hasAttribute("no-edit-switch"),M=e.querySelector(".clay-menu-grip"),g=e.querySelector(".clay-menu-edit");h&&(M.hidden=!0,N&&(g.hidden=!0,e.querySelector(".clay-menu-divider").hidden=!0));let q=null,a=null;$.push(()=>{a?.close({restore:!1}),q?.refresh()});let i=!1,x=()=>{e.hidden=!ee&&F()!=="edit"};function w(){g.setAttribute("aria-checked",F()==="edit"?"true":"false"),N&&n({id:"clay.mode",label:"Edit mode",toggle:!0,checked:F()==="edit",run:()=>g.click()})}w(),document.addEventListener("clay:modechange",w),g.addEventListener("click",async()=>{if(i)return;let c=g.getAttribute("aria-checked"),C=A()===g,J=F()==="edit"?"view":"edit";i=!0,g.setAttribute("aria-busy","true"),g.disabled=!0;let Y;try{Y=await window.clay?.setMode?.(J)}catch(K){Y={ok:!1,message:K&&K.message}}if(!(Y&&Y.reloading))if(i=!1,g.removeAttribute("aria-busy"),g.disabled=!1,C&&g.isConnected&&!A()&&document.activeElement===document.body&&g.focus(),Y&&Y.ok===!1){g.setAttribute("aria-checked",c);let K=I(Y);K&&d(K)}else w()});let T=document,y=null,f=null;function S(c){e.dataset.corner.startsWith("top")?e.style.top=`${Math.round(c.getBoundingClientRect().bottom)+tt}px`:e.style.removeProperty("top")}let k=()=>{f?S(f):e.style.removeProperty("top")};function p(){if(!e.isConnected)return;let c=T.querySelector(".clay-intro");if(c!==f){if(y&&(y.disconnect(),y=null),f=c,!c){e.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(y=new ResizeObserver(()=>S(c)),y.observe(c)),S(c)}}let v=document.createElement("style");v.id="clay-menu-vars",v.setAttribute("clay","editor-ui"),document.head.append(v);function L(){let c=e.getBoundingClientRect();v.textContent=`:root { --clay-menu-width: ${Math.ceil(c.width)}px; --clay-menu-height: ${Math.ceil(c.height)}px; }`}let u=P(h?[te,ae,E??ne,oe]:[te,ae,be,ne,oe]);h||(Se({dock:e,container:u.shadow,grip:M,storage:window.clay.storage&&window.clay.storage.local,onMove:k,onDragStart:()=>{s(),a?.close({restore:!1})}}),L(),typeof ResizeObserver=="function"&&new ResizeObserver(L).observe(e),new MutationObserver(p).observe(T.body,{childList:!0}),p()),E||fe(e,e.querySelector(".clay-menu"),he);let r=()=>import("../c-HDVH3MVC.js").then(c=>c.open({returnFocus:l}));if(q=Le({addItem:n,note:d,currentMode:F}),a=Re({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,closeMenu:s,note:d}),Ne({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,note:d,currentMode:F}),Te({addItem:n,removeItem:o,beforeOpen:$}),et){n({id:"seo",label:"SEO settings\u2026",run:r});let c=window.clay.storage&&window.clay.storage.session;c&&c.get("reopen-seo")===!0&&(c.remove("reopen-seo"),r().catch(()=>{}))}qe=x,F()!=="edit"&&import("../core/host-permission-X4BENZEU.js").then(c=>c.checkHostPermission()).catch(()=>{}),window.clay.menu={addItem:n,removeItem:o,open:b,close:s,note:d,embedded:h,button:l},document.dispatchEvent(new CustomEvent("clay:menu-ready"))}var Me=!1,qe=null,st=()=>(ee||ie)&&!Q;function Oe(){Me||!st()||(Me=!0,at())}Q||(ce(Oe),document.addEventListener("clay:capabilitychange",()=>{Oe(),qe?.()}));
1
+ import{a as we,b as G}from"../c-QTEUO2K6.js";import{a as he,b as ae,c as be}from"../c-X6MOYATI.js";import{a as te,g as ne,h as oe,i as Ee,k as ke}from"../c-DIKR7H57.js";import{a as I}from"../c-AQLFEATB.js";import{a as W,b as D,c as _,d as ge,f as ve,g as V}from"../c-CUMXGHVD.js";import{b as pe,c as ye}from"../c-RVMWGXEJ.js";import"../c-QY7F6EN6.js";import{a as de,b as me}from"../c-RHMPKZZ7.js";import{d as fe}from"../c-PKCCHJ5X.js";import{a as ce}from"../c-VKEDWYDF.js";import{d as ue}from"../c-EQ5NBOGA.js";import{b as Q,c as ee,f as ie,g as le}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ae=new Set(["top-left","top-right","bottom-left","bottom-right"]),Ue=4,xe="menu-corner";function _e(t,e,l,m){return`${e<m/2?"top":"bottom"}-${t<l/2?"left":"right"}`}function De(t,e){let[l,m]=t.split("-");if(e==="ArrowUp")l="top";else if(e==="ArrowDown")l="bottom";else if(e==="ArrowLeft")m="left";else if(e==="ArrowRight")m="right";else return null;return`${l}-${m}`}function Be(t){let e=null;try{e=t?t.get(xe):null}catch{}return Ae.has(e)?e:"top-right"}function He(t){let e=document.createElement("div");e.className="clay-menu-spots",e.setAttribute("clay","editor-ui"),e.setAttribute("aria-hidden","true");for(let l of Ae){let m=document.createElement("span");m.className="clay-menu-spot",m.dataset.to=l,e.append(m)}return t.append(e),e}function Se({dock:t,container:e=document.body,grip:l,storage:m,onMove:h,onDragStart:E}){function n(s,{remember:d=!0}={}){if(t.dataset.corner=s,d)try{m&&m.set(xe,s)}catch{}h&&h(s)}n(Be(m),{remember:!1}),l.addEventListener("keydown",s=>{let d=De(t.dataset.corner,s.key);d&&(s.preventDefault(),d!==t.dataset.corner&&n(d))});let o=null;l.addEventListener("pointerdown",s=>{if(s.button!==0||s.isPrimary===!1)return;let d=t.getBoundingClientRect();if(o={id:s.pointerId,x:s.clientX,y:s.clientY,dx:s.clientX-d.left,dy:s.clientY-d.top,w:d.width,h:d.height,moving:!1,spots:null,near:null},l.setPointerCapture)try{l.setPointerCapture(s.pointerId)}catch{}}),l.addEventListener("pointermove",s=>{if(!o||s.pointerId!==o.id)return;if(!o.moving){if(Math.hypot(s.clientX-o.x,s.clientY-o.y)<Ue)return;o.moving=!0,t.setAttribute("data-dragging",""),o.spots=He(e),o.spots.style.setProperty("color-scheme",getComputedStyle(t).colorScheme),E&&E()}let d=s.clientX-o.dx,$=s.clientY-o.dy;Object.assign(t.style,{left:`${d}px`,top:`${$}px`,right:"auto",bottom:"auto"}),o.near=_e(d+o.w/2,$+o.h/2,window.innerWidth,window.innerHeight);for(let A of o.spots.children)A.toggleAttribute("data-near",A.dataset.to===o.near)});let b=s=>d=>{if(!o||d.pointerId!==o.id)return;let{moving:$,near:A,spots:P}=o;if(o=null,!!$){P.remove(),t.removeAttribute("data-dragging");for(let N of["left","top","right","bottom"])t.style.removeProperty(N);s&&A?n(A):n(t.dataset.corner,{remember:!1})}};return l.addEventListener("pointerup",b(!0)),l.addEventListener("pointercancel",b(!1)),l.addEventListener("lostpointercapture",b(!1)),{setCorner:n}}var z="menu-resume",Ye=5e3,Fe=8e3,R=()=>window.clay||{},Ce=()=>R().storage&&R().storage.session,B=t=>{let e=R().editPlugins;return Array.isArray(e)&&e.includes(t)};function se(t,e=Ye){return new Promise(l=>{let m=Date.now(),h=()=>{let E=t();E||Date.now()-m>=e?l(E||null):setTimeout(h,50)};h()})}function Ie(t=Fe){let e=R().blockeditor;if(!e)return Promise.resolve(!0);let l=Date.now();return new Promise(m=>{let h=!1,E=b=>{h||(h=!0,clearTimeout(o),m(b))},n=()=>{if(!h){if(R().blockeditor?.ai)return E(!0);if(Date.now()-l>=t)return E(!1);setTimeout(n,50)}},o=setTimeout(()=>E(!1),t);Promise.resolve(e.ready).catch(()=>null).then(n,n)})}function Le({addItem:t,note:e,currentMode:l}){let m=new Map,h=null;async function E(a,i){if(l()==="edit")return i();let x=Ce();x&&x.set(z,a);let w;try{w=await R().setMode?.("edit")}catch(T){w={ok:!1,message:T&&T.message}}if(!(w&&w.ok!==!1&&w.reloading)){if(x&&x.remove(z),!w||w.ok===!1){let T=w?I(w):"Couldn't switch modes.";T&&e(T);return}return i()}}function n(a,i){return m.set(a,i),h===a&&(h=null,l()==="edit"&&i()),()=>E(a,i)}let o={canUndo:!1,canRedo:!1},b=!1,s=()=>B("blockeditor")&&R().blockeditor?.history?R().blockeditor.history:B("undo")?R().undo:null;function d(){if(!B("blockeditor")&&!B("undo"))return;let a=l()==="edit"&&s();!b&&a&&typeof a.canUndo=="boolean"&&(o={canUndo:a.canUndo,canRedo:!!a.canRedo}),t({id:"clay.undo",pair:[{id:"clay.undo.undo",label:"Undo",keys:G("\u2318Z","Ctrl+Z"),disabled:!(a&&o.canUndo),run:()=>s()?.undo()},{id:"clay.undo.redo",label:"Redo",keys:G("\u2318\u21E7Z","Ctrl+Shift+Z"),disabled:!(a&&o.canRedo),run:()=>s()?.redo()}]})}document.addEventListener("clay:undo-change",a=>{let i=a.detail||{};b=!0,o={canUndo:!!i.canUndo,canRedo:!!i.canRedo},d()}),document.addEventListener("clay:modechange",d),d(),B("ai-edit")&&(async()=>{let a=R().aiEdit||(l()==="edit"?await se(()=>R().aiEdit):null);if(a?.available){if(!await a.available())return}else if(!a&&B("blockeditor")){let i=await ue();if(!(Array.isArray(i.document?.helpers)&&i.document.helpers.some(w=>w&&w.name==="ai-edit"&&(w.state==="ready"||w.state==="unavailable"))))return}t({id:"clay.ai",label:"Ask AI to improve this page",keys:G("\u2318J","Ctrl+J"),run:n("ai",async()=>{let i=await se(()=>R().aiEdit);(i&&(B("blockeditor")||R().blockeditor)?await Ie():!!i)&&await i.pick()||e("Ask AI isn't available on this page right now.")})})})(),B("cms")&&R().cms?.hasRules?.(document)&&t({id:"clay.cms",label:"Open the CMS (Edit content)",run:n("cms",async()=>{let a=await se(()=>R().cms),i=null;try{i=a?await a.open():{ok:!1}}catch{i={ok:!1}}i&&i.ok===!1&&e("Couldn't open the CMS. Try again.")})});let $=/<script\b[^>]*>[\s\S]*?<\/script>\n?/gi,A=a=>{let i=a.slice(0,a.indexOf(">")+1);return/\bmerge="blockeditor(?:\.\d+)?"/.test(i)&&/\bclay="[^"]*\blive\b/.test(i)},P=a=>/<article\b[^>]*\bdata-blockeditor\b/.test(a)?a.replace($,i=>A(i)?"":i):a;t({id:"clay.download",label:"Download a copy",run:async()=>{let a=null;try{if(typeof R().getHTML=="function")a=R().getHTML();else{let i=await fetch(location.href,{cache:"no-store",credentials:"same-origin"});i.ok&&(a=await i.text())}}catch{}typeof a=="string"&&/^https?:$/.test(location.protocol)&&(a=P(a),a=a.replace(/(^|[^\w./:-])\/_\/uploads\//g,`$1${location.origin}/_/uploads/`)),(typeof a!="string"||!await me({html:a,name:`${de()}.html`}))&&e("Couldn't build the download. Try again.")}});async function N(a){let i=null;try{let x=await fetch(a,{method:"POST",credentials:"same-origin",headers:{"Document-URL":location.href}});if(i=await x.json().catch(()=>null),x.ok&&i?.ok!==!1){typeof i?.href=="string"&&window.open(i.href,"_blank","noopener");return}}catch{}e(typeof i?.message=="string"&&i.message?i.message:"Couldn't do that. Try again.")}let M=(a,i,x)=>{x?.href?t({id:a,label:i,href:x.href}):x?.post&&t({id:a,label:i,run:()=>N(x.post)})};import("../c-Q2CB57UG.js").then(({hostActions:a})=>a()).then(a=>{M("clay.code","Open the code editor",a.codeEditor),M("clay.duplicate","Duplicate as a new page",a.duplicate),M("clay.export","Export as zip",a.export),M("clay.reveal",we(),a.reveal),M("clay.versions","Version history\u2026",a.versions)}).catch(()=>{});let g=Ce(),q=g&&g.get(z);if(q){g.remove(z);let a=m.get(q);a&&l()==="edit"?a():a||(h=q)}return{inEditMode:E,resumable:n,refresh:d}}var Ke='<svg viewBox="0 0 256 256" aria-hidden="true" focusable="false"><path d="M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128 50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z"/></svg>',We=3,X=(t,e,l)=>`${t} ${t===1?e:l}`;function re(t){let e=document.createElement("span");e.className="clay-avatar",e.setAttribute("aria-hidden","true");let l=pe(t.id);return e.style.setProperty("color",l),e.style.setProperty("border-color",l),e.style.setProperty("background","var(--bevel-surface)"),e.textContent=ye(t.name),e}function Re({root:t,capsule:e,addItem:l,removeItem:m,closeMenu:h,note:E}){let n={supported:!1,people:[],anonymous:0},o=null,b=null,s=null,d=!1,$=()=>window.clay&&window.clay.people,A=()=>window.clay&&window.clay.me||null,P=()=>{try{return!!$()?.canRename?.()}catch{return!1}},N=()=>n.people.length+n.anonymous,M=()=>document.documentElement.hasAttribute("clay-menu-roster");function g({restore:y=!0}={}){o&&(o.remove(),o=null,d=!1,s?.setAttribute("aria-expanded","false"),y&&b&&b.isConnected&&b.focus(),b=null)}function q(){let y=A();if(!y||!y.name)return null;let f=document.createElement("div");f.className="clay-people-me";let S=document.createElement("span");S.className="clay-people-me-label",S.textContent="Your edits are signed as";let k=document.createElement("div");if(k.className="clay-people-me-row",f.append(S,k),d){let p=document.createElement("input");p.className="clay-people-input",p.type="text",p.value=y.name,p.setAttribute("aria-label","Your name"),p.maxLength=120;let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary",v.textContent="Save";let L=()=>{try{$().rename(p.value)}catch(O){E(O&&O.code==="not-renamable"?"This name comes from your account, so it can't be changed here.":"Use a name of 1 to 120 characters that isn't an email address."),p.focus();return}d=!1,a(),o?.querySelector(".clay-people-me .clay-menu-btn")?.focus()};v.addEventListener("click",L),p.addEventListener("keydown",O=>{O.key==="Enter"&&(O.preventDefault(),L())}),k.append(p,v),queueMicrotask(()=>{p.isConnected&&(p.focus(),p.select())})}else{let p=document.createElement("span");if(p.className="clay-people-me-name",p.textContent=y.name,k.append(re(y),p),P()){let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small",v.textContent="Change",v.addEventListener("click",()=>{d=!0,a()}),k.append(v)}}return f}function a(){if(!o)return;let y=N();o.textContent="";let f=document.createElement("div");f.className="clay-people-head";let S=document.createElement("h3");S.className="clay-people-title",S.textContent="Who's here";let k=document.createElement("span");k.className="clay-people-sum",k.textContent=X(y,"person","people");let p=document.createElement("button");if(p.type="button",p.className="clay-people-close",p.setAttribute("aria-label","Close"),p.innerHTML=Ke,p.addEventListener("click",()=>g()),f.append(S,k,p),o.append(f),n.people.length){let L=document.createElement("ul");L.className="clay-people-list";for(let O of n.people){let u=document.createElement("li");u.className="clay-people-row";let r=document.createElement("span");r.className="clay-people-who";let c=document.createElement("strong");if(c.textContent=O.name,O.you){let C=document.createElement("span");C.textContent="(you)",c.append(C)}r.append(c),u.append(re(O),r),L.append(u)}o.append(L)}if(n.anonymous>0){let L=document.createElement("p");L.className="clay-people-anon",L.textContent=n.anonymous===1?"1 other person is here without a shared name.":`${n.anonymous} others are here without a shared name.`,o.append(L)}let v=q();v&&o.append(v)}function i(y){if(h(),o){g();return}b=y,o=document.createElement("div"),o.className="clay-people",o.setAttribute("role","dialog"),o.setAttribute("aria-label","Who's here"),o.addEventListener("keydown",f=>{f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),d?(d=!1,a(),o.querySelector(".clay-people-me .clay-menu-btn")?.focus()):g())}),a(),t.append(o),s?.setAttribute("aria-expanded",y===s?"true":"false"),o.querySelector(".clay-people-close").focus()}function x(){if(!(M()&&n.supported&&N()>1)){s?.remove(),s=null;return}s||(s=document.createElement("button"),s.type="button",s.className="clay-roster",s.setAttribute("aria-haspopup","dialog"),s.setAttribute("aria-expanded",o?"true":"false"),s.addEventListener("click",()=>i(s)),t.insertBefore(s,e));let f=n.people.slice(0,We),S=N()-f.length,k=document.createElement("span");k.className="clay-roster-faces";for(let v of f)k.append(re(v));s.textContent="",s.append(k),S>0&&s.append(X(S,"other","others"));let p=f.map(v=>v.name);s.setAttribute("aria-label",`Who's here: ${p.join(", ")}${S>0?`${p.length?" and ":""}${X(S,"other","others")}`:""}`)}let w=null;function T(){let y=N();if(n.supported&&(y>1||P())){let f=y>1?`Who's here (${X(y,"person","people")})`:"Who's here";f!==w&&(w=f,l({id:"clay.people",label:f,run:()=>i(e.querySelector(".clay-menu-goo"))}))}else w!==null&&m("clay.people"),w=null,g({restore:!1});if(x(),o&&!d){let f=t.getRootNode().activeElement,S=f&&o.contains(f)?f.classList[0]:null;a(),S&&o.querySelector(`.${S}`)?.focus()}}return document.addEventListener("click",y=>{o&&!y.composedPath().includes(t)&&g({restore:!1})}),document.addEventListener("clay:people",()=>{d||T()}),import("../c-SMLAJASY.js").then(({presence:y})=>{y.subscribe(f=>{n=f||n,T()})}).catch(()=>{}),{close:g}}var Z="variants-choose",je="Change the page look",Ge="Keep one page look",Ve='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect x="4" width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect x="4" y="8" width="2" height="2"/></svg>',ze='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect x="4" y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect y="8" width="2" height="2"/></svg>',U=()=>D().map(_),j=t=>{let e=D().find(l=>_(l)===t);return e?ge(e):`Variant ${t}`};function H(){let t=D(),e=t.find(l=>l.getAttribute("media")!==W);return e?_(e):t.length?_(t[0]):null}function Pe(t,e){let l=window.clay&&window.clay.undo;l&&typeof l.commit=="function"?l.commit(t,e):e(),!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}async function Xe(){let t=await import("../core/save-K6Q47J2X.js");for(;!t.baselineSettled();)await new Promise(e=>document.addEventListener("clay:baseline-settled",e,{once:!0}))}function Ze(t){let e=t.map(j);return e.length<2?e.join(""):`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`}function Ne({root:t,capsule:e,addItem:l,removeItem:m,note:h,currentMode:E}){ve();let n=null,o=null,b=null,s=null,d=null,$=!!document.querySelector("[clay-menu-slot]")?.hasAttribute("clay-menu-looks"),A=()=>E()==="edit",P=()=>n??H(),N=()=>window.clay&&window.clay.storage&&window.clay.storage.session;function M(){let u=H();n!==null&&n===u&&(n=null),b?.remove(),b=null;for(let c of D()){if(!c.sheet)continue;let C=c.getAttribute("media")!==W;c.sheet.disabled=C&&(_(c)!==u||n!==null)}if(n===null)return;let r=D().find(c=>_(c)===n);if(!r)return n=null,M();b=document.createElement("style"),b.setAttribute("clay","editor-ui"),b.dataset.clayVariantPreview=n,b.textContent=r.textContent,r.after(b)}function g(){document.dispatchEvent(new CustomEvent("clay:variant-change",{detail:{active:H(),shown:P()}}))}function q(u){return A()?U().includes(u)?(o=n=null,Pe(je,()=>{V(u);for(let r of D())_(r)===u?r.removeAttribute("media"):r.getAttribute("media")!==W&&r.setAttribute("media",W)}),k(),{ok:!0}):{ok:!1,code:"unknown-variant"}:{ok:!1,code:"not-editing"}}function a(u){return u!==null&&!U().includes(u)?{ok:!1,code:"unknown-variant"}:(n=u,k(),{ok:!0})}function i(u){o=n=null,Pe(Ge,()=>{V(u);for(let r of D())_(r)===u?(r.removeAttribute("clay-variant"),r.removeAttribute("media"),r.sheet&&(r.sheet.disabled=!1)):r.remove()}),k()}function x(){if(!A())return Promise.resolve({ok:!1,code:"not-editing"});let u=H(),r=U().filter(C=>C!==u);if(!r.length)return Promise.resolve({ok:!1,code:"unknown-variant"});let c=`Keep ${j(u)} and delete ${Ze(r)}? The switcher goes away. Version history still has them.`;return import("../c-FYDKYW6E.js").then(C=>C.consent(c)).then(()=>(i(u),{ok:!0}),()=>({ok:!1,code:"cancelled"}))}async function w(){let u=n,r=window.clay;if(u===null||!r||typeof r.setMode!="function")return;N()?.set(Z,u);let c;try{c=await r.setMode("edit")}catch(C){c={ok:!1,message:C&&C.message}}if(!(c&&c.reloading)&&c&&c.ok===!1){N()?.remove(Z);let C=I(c);C&&h(C)}}async function T(){let u=N(),r=u?.get(Z);r!=null&&(u.remove(Z),!(!A()||!U().includes(r))&&(o=n=r,k(),await Xe(),!(o!==r||!L())&&(o=null,A()&&U().includes(r)&&q(r))))}function y(u){let r=U(),c=r[(r.indexOf(P())+u+r.length)%r.length];A()?q(c):a(c)}function f(){let u=document.createElement("div");u.className="clay-variants",u.setAttribute("role","group"),u.setAttribute("aria-label","Page look"),u.innerHTML=`<button type="button" class="clay-variants-step" data-step="-1" aria-label="Previous look">${Ve}</button><span class="clay-variants-name" aria-live="polite"></span><button type="button" class="clay-variants-step" data-step="1" aria-label="Next look">${ze}</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary clay-variants-use" hidden>Use this look</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-variants-keep" hidden>Keep</button>`;for(let r of u.querySelectorAll(".clay-variants-step"))r.addEventListener("click",()=>y(Number(r.dataset.step)));return u.querySelector(".clay-variants-use").addEventListener("click",w),u.querySelector(".clay-variants-keep").addEventListener("click",()=>x()),u}function S(){let u=U();if(d=p(),u.length<2){s?.remove(),s=null,m("clay.look"),m("clay.look.use");return}if(t.hasAttribute("data-embedded")){let J=P();$?l({id:"clay.look",section:"start",stepper:{label:"Theme:",value:j(J),prev:()=>y(-1),next:()=>y(1),prevLabel:"Previous theme",nextLabel:"Next theme"}}):m("clay.look"),!A()&&n!==null?l({id:"clay.look.use",section:"start",label:"Use this look",run:w}):m("clay.look.use");return}s||(s=f()),s.isConnected||t.insertBefore(s,t.querySelector(".clay-roster")??e);let r=P(),c=s.querySelector(".clay-variants-name");c.textContent=`${j(r)} `;let C=document.createElement("small");C.textContent=`(${u.indexOf(r)+1}/${u.length})`,c.append(C),s.querySelector(".clay-variants-use").hidden=A()||n===null,s.querySelector(".clay-variants-keep").hidden=!A()}function k(){M(),S(),g()}let p=()=>`${U().join(",")}|${H()}|${P()}`,v=null,L=()=>window.clay?.variants===v;document.addEventListener("clay:modechange",()=>{L()&&(A()?(n=o,T()):o=null,k())});let O=()=>{document.documentElement.hasAttribute("look")&&U().length>1&&V(H())};document.addEventListener("clay:sync-applied",()=>{L()&&(O(),k())}),document.addEventListener("clay:undo-change",()=>{!L()||p()===d||(O(),k())}),v=window.clay.variants={list:()=>{let u=H();return U().map(r=>({name:r,label:j(r),active:r===u}))},get active(){return H()},get shown(){return P()},preview:a,choose:q,keep:x},U().length>=2&&(A()&&T(),k())}var Je="[clay-menu-item]:not([cms-template])",$e=()=>window.clay?.mode==="edit"||window.clay?.mode==="draft";async function Qe(t){if(await window.clay?.ready,!$e()||!t.isConnected)return!1;let e=window.clay?.undo;return e&&typeof e.commit=="function"?e.commit("Remove this item",()=>t.remove()):t.remove(),window.clay?.save?.soon?.(),!0}function Te({addItem:t,removeItem:e,beforeOpen:l}){let m=new Set;function h(){let E=new Set;for(let n of document.querySelectorAll(Je)){let o=n.getAttribute("data-id")||n.id;if(!o){console.warn("[clay] A clay-menu-item needs a data-id or an id.",n);continue}let b=`dom.${o}`;E.add(b);let s=n.getAttribute("clay-menu-dismiss");t({id:b,label:n.textContent.trim(),href:n.getAttribute("href")||"",section:n.getAttribute("clay-menu-section")||void 0,quiet:n.hasAttribute("clay-menu-quiet"),run:n.hasAttribute("href")?null:()=>n.click(),dismiss:s&&$e()?{label:s,run:()=>Qe(n)}:void 0})}for(let n of m)E.has(n)||e(n);m.clear();for(let n of E)m.add(n)}l.push(h);for(let E of["clay:drafts-restored","clay:sync-applied","clay:modechange"])document.addEventListener(E,h);h()}var et=!0,tt=12,nt='<svg viewBox="0 0 6 12" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="4" width="2" height="2"/><rect y="5" width="2" height="2"/><rect x="4" y="5" width="2" height="2"/><rect y="10" width="2" height="2"/><rect x="4" y="10" width="2" height="2"/></svg>',ot=[["clay.undo","clay.cms","clay.ai","clay.code"],["seo","clay.share","clay.people"],["clay.duplicate","clay.download","clay.export","clay.reveal"],["clay.versions"],null,["clay.mode"],["upgrade"]],F=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:le;function at(){if(document.querySelector('clay-editor-ui[data-clay-ui="menu"]'))return;let t=ke({sections:ot,capsuleStart:`<button type="button" class="clay-menu-grip" aria-label="Move the menu. Drag it, or use the arrow keys to move it to another corner.">${nt}</button><button type="button" class="clay-menu-edit" part="edit" role="switch" aria-checked="false">`+Ee+'<span class="clay-menu-label">Edit</span></button><span class="clay-menu-divider" aria-hidden="true"></span>'}),{root:e,goo:l,slot:m,embedded:h,skin:E,addItem:n,removeItem:o,open:b,close:s,note:d,beforeOpen:$,focusedEl:A,mount:P}=t,N=h&&m.hasAttribute("no-edit-switch"),M=e.querySelector(".clay-menu-grip"),g=e.querySelector(".clay-menu-edit");h&&(M.hidden=!0,N&&(g.hidden=!0,e.querySelector(".clay-menu-divider").hidden=!0));let q=null,a=null;$.push(()=>{a?.close({restore:!1}),q?.refresh()});let i=!1,x=()=>{e.hidden=!ee&&F()!=="edit"};function w(){g.setAttribute("aria-checked",F()==="edit"?"true":"false"),N&&n({id:"clay.mode",label:"Edit mode",toggle:!0,checked:F()==="edit",run:()=>g.click()})}w(),document.addEventListener("clay:modechange",w),g.addEventListener("click",async()=>{if(i)return;let c=g.getAttribute("aria-checked"),C=A()===g,J=F()==="edit"?"view":"edit";i=!0,g.setAttribute("aria-busy","true"),g.disabled=!0;let Y;try{Y=await window.clay?.setMode?.(J)}catch(K){Y={ok:!1,message:K&&K.message}}if(!(Y&&Y.reloading))if(i=!1,g.removeAttribute("aria-busy"),g.disabled=!1,C&&g.isConnected&&!A()&&document.activeElement===document.body&&g.focus(),Y&&Y.ok===!1){g.setAttribute("aria-checked",c);let K=I(Y);K&&d(K)}else w()});let T=document,y=null,f=null;function S(c){e.dataset.corner.startsWith("top")?e.style.top=`${Math.round(c.getBoundingClientRect().bottom)+tt}px`:e.style.removeProperty("top")}let k=()=>{f?S(f):e.style.removeProperty("top")};function p(){if(!e.isConnected)return;let c=T.querySelector(".clay-intro");if(c!==f){if(y&&(y.disconnect(),y=null),f=c,!c){e.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(y=new ResizeObserver(()=>S(c)),y.observe(c)),S(c)}}let v=document.createElement("style");v.id="clay-menu-vars",v.setAttribute("clay","editor-ui"),document.head.append(v);function L(){let c=e.getBoundingClientRect();v.textContent=`:root { --clay-menu-width: ${Math.ceil(c.width)}px; --clay-menu-height: ${Math.ceil(c.height)}px; }`}let u=P(h?[te,ae,E??ne,oe]:[te,ae,be,ne,oe]);h||(Se({dock:e,container:u.shadow,grip:M,storage:window.clay.storage&&window.clay.storage.local,onMove:k,onDragStart:()=>{s(),a?.close({restore:!1})}}),L(),typeof ResizeObserver=="function"&&new ResizeObserver(L).observe(e),new MutationObserver(p).observe(T.body,{childList:!0}),p()),E||fe(e,e.querySelector(".clay-menu"),he);let r=()=>import("../c-SFYTKRU7.js").then(c=>c.open({returnFocus:l}));if(q=Le({addItem:n,note:d,currentMode:F}),a=Re({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,closeMenu:s,note:d}),Ne({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,note:d,currentMode:F}),Te({addItem:n,removeItem:o,beforeOpen:$}),et){n({id:"seo",label:"SEO settings\u2026",run:r});let c=window.clay.storage&&window.clay.storage.session;c&&c.get("reopen-seo")===!0&&(c.remove("reopen-seo"),r().catch(()=>{}))}qe=x,F()!=="edit"&&import("../core/host-permission-5BYP24GC.js").then(c=>c.checkHostPermission()).catch(()=>{}),window.clay.menu={addItem:n,removeItem:o,open:b,close:s,note:d,embedded:h,button:l},document.dispatchEvent(new CustomEvent("clay:menu-ready"))}var Me=!1,qe=null,st=()=>(ee||ie)&&!Q;function Oe(){Me||!st()||(Me=!0,at())}Q||(ce(Oe),document.addEventListener("clay:capabilitychange",()=>{Oe(),qe?.()}));
@@ -1,2 +1,2 @@
1
- import{a as jt}from"../c-VPXCXBDT.js";import{a as Tt,b as At,c as Et}from"../c-6RGEQNVV.js";import{e as ue}from"../c-Z6MROEQ4.js";import{a as St}from"../c-Q26XHBLQ.js";import{c as kt}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as Ie,b as G,d as E}from"../c-WCG6AKA7.js";import{a as Oe,b as Pe}from"../c-RHMPKZZ7.js";import{a as Rt}from"../c-L4WQSC27.js";import{d as pt,e as gt,i as yt,j as De,n as _,o as ht,q as ie,r as mt,s as wt,t as Fe,u as vt,v as bt}from"../c-7CM4GMTS.js";import"../c-JKZJIUIP.js";import{a as ce}from"../c-TCCA5BZN.js";import{k as Le}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as ft}from"../c-QTTJYJMA.js";import{a as lt}from"../c-NUHP2XDB.js";import{B as ut,F as dt,d as xe,e as ct,f as le,h as it,n as Ce,o as se}from"../c-HTLYXCUH.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as st}from"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-6Q6RGFBF.js";import"../c-SKMIR5HQ.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Y}from"../c-LA2BW7UY.js";import{d as ne}from"../c-MFOSMAVM.js";import{a as at}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as Re,c as nt,d as je}from"../c-6IJEVE6B.js";import{d as Ee}from"../c-QQFHEODI.js";import"../c-IJUK2GPW.js";import{b as x,k as ot}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import{E as W}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";var Tr=Object.freeze({"blockeditor-converting":"retrying","blockeditor-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","blockeditor-condition-required":"blocked","blockeditor-conversion-refused":"blocked","blockeditor-conversion-required":"blocked","blockeditor-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked","blockeditor-full":"blocked","compaction-failed":"blocked"}),Ot=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,de="Can't save here. Your edits are still in this tab.",fe="Still trying to save. Your edits are safe in this tab.";function U({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Tr[t]??"error"}function Pt(e){let t;try{t=new DOMParser().parseFromString(e,"text/html")}catch{return e}let o=[...t.querySelectorAll('script[type="application/json"][merge="blockeditor"][clay~="live"]')].filter(d=>!d.closest("template")&&!d.closest("noscript"));if(o.length!==1)return e;let a=o[0].outerHTML,n=e.indexOf(a);return n<0||e.indexOf(a,n+1)!==-1?e:e.slice(0,n)+e.slice(n+a.length)}async function pe(){let{forSave:e}=W({emitForSync:!1});return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function He(e){return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function It(){try{let{forSave:e}=W({emitForSync:!1}),o=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-blockeditor]");return o.length!==1?!1:(await navigator.clipboard.writeText(o[0].textContent),!0)}catch{return!1}}var xt="clay.page.author",_e="clay.page.author.owned.",Ct=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Lt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(_e)&&t.push(n.slice(_e.length))}let o=e.getItem(xt);return(!o||!t.includes(o))&&(o=Ct(),e.setItem(_e+o,"1"),e.setItem(xt,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Ct();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Ar=new Set([P.ready,P.blocked,P.error]),Dt=0,Ht=()=>globalThis.performance?.now?.()??Date.now();function _t({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Dt+=1,{installId:Dt,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:Ht(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Ne(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function N(e,t,o=null){if(Ar.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=Ht(),e.result=Object.freeze({phase:t,reason:o??null,installId:e.installId,at:e.at});try{e.onPhase?.(e.result)}catch(a){console.error("clayjs: page boot phase callback failed",a)}return e.result}function Me(e,t){let o=N(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Nt(e,t){return N(e,P.error,t)}function C(e,t){return typeof t=="function"&&e.disposers.push(t),t}function qe(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(o){console.error("clayjs: page boot abort failed",o)}let t=e.disposers.splice(0).reverse();for(let o of t)try{o()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function ge(e,t){let o=globalThis.performance;if(typeof o?.mark=="function")try{o.mark(e,{detail:{installId:t.installId}})}catch{try{o.mark(e)}catch{return}}}function Er(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function X(e,t,o){return t.cancelled?null:(Er(e,o),Me(e,t.reason??"boot-incomplete"))}function Ft(e,t,o,a=null){return Promise.resolve(e).then(n=>n??{ok:!1,reason:o},n=>(console.error(`clayjs: page boot ${o}`,n),{ok:!1,reason:o})).then(n=>(n.ok&&a&&p(t)&&ge(a,t),n))}function Rr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,d=k=>{n||(n=!0,o(k))};if(a.aborted)return d({cancelled:!0});a.addEventListener("abort",()=>d({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,A)=>{k.then(R=>{if(!n){if(!R.ok)return d({result:R,branch:k});g[A]=R,b-=1,b===0&&d({results:g})}})})})}async function Mt(e,t,{activate:o=!0}={}){ge("document:boot",e),N(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return Me(e,a.reason);let n=a.source;N(e,P.joining);let d=await Rr(e,[Ft(t.loadEditorAssets(e,n),e,"editor-assets-failed","document:assets-ready"),Ft(t.prepareAuthority(e,n),e,"authority-failed","document:authority-ready")]);if(d.cancelled||!p(e))return null;if(!d.results){try{e.controller.abort()}catch(L){console.error("clayjs: page boot abort failed",L)}return X(e,d.result,t)}let[g,b]=d.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return X(e,k,t);e.mounted=k.view??null,N(e,P.adopting);let A=await t.adoptSource(e,n,k);if(!p(e))return null;if(!A.ok)return X(e,A,t);if(!o){if(t.prepareInput){let L=await t.prepareInput(e,k);if(!p(e))return null;if(!L.ok)return X(e,L,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let R=await t.enableInput(e,k);return p(e)?R.ok?(ge("document:input-ready",e),N(e,P.ready)):X(e,R,t):null}function qt(e){let t=e.deferred;if(e.deferred=null,!t||!p(e))return e.result??null;let o=e.steps?.openInput?.(e,t);return o?.ok?(ge("document:input-ready",e),N(e,P.ready)):Me(e,o?.reason??"input-refused")}var z="article[data-blockeditor]",K='script[type="application/json"][merge="blockeditor"][clay~="live"]',Vt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},Ue="Changes cannot be stored on this device. Download a copy to keep them.",jr=45e3,Or="Couldn't save",Pr="Offline, will retry",Xt="This page was changed outside the editor. Reload to see it.",Ir="That change is too large to share, so it was not saved. Reload the page to keep editing.",zt="Download your copy to add pictures and files.",Bt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:zt}),xr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Wt="This document is full, though your changes are still here to download. To edit again, reload this tab after another editor, or the owner in another browser, deletes content.",Cr="Some changes you made were replaced by a change made outside the editor.",Kt="The page was changed outside the editor; reload to see it.",Lr=150,Dr="Loading the editor\u2026",$e="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Be(e){return Gt(e)?e.v!==1||!Gt(e.y)||Object.hasOwn(e,"blocks")||Object.hasOwn(e,"deleted")?(console.warn("clayjs: page plugin: the page tag is not a strict Yjs page, leaving the page as saved HTML"),"unsupported-blockeditor-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-blockeditor-json")}var q=null,Ut=null;function M(){return Ut??=import("../c-OCYG4NBQ.js").then(e=>q=e),Ut}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Et(o);a&&t.add(a)}),[...t]}function V(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function Hr(e,t){V(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let o=t.ownerDocument.createElement("div");o.className="blockeditor-boot-status",o.setAttribute("clay","editor-ui"),o.setAttribute("sap-ignore",""),o.setAttribute("role","status"),lt(o,["display:block","margin:0 0 1em","font:500 13px/1.6 system-ui, sans-serif","color:color-mix(in srgb, currentColor 55%, transparent)","user-select:none"]),o.textContent=Dr,t.prepend(o),e.statusNote=o},Lr)}var we=0,S=null,he=null,_r=8e3,Nr=8e3,Mr="AI tool making isn't available on this page right now.";function qr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let d=e();d||Date.now()-a>=t?o(d||null):setTimeout(n,50)};n()})}function Vr(e,t=globalThis.location){let o=t?.hash?.slice(1);if(!o)return;let a;try{a=decodeURIComponent(o)}catch{return}let n=-1;e.state.doc.forEach((d,g)=>{n<0&&d.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Q(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Qt(){E(Or),E(Pr)}function Zt(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,E(fe)}function Br(e,t,o){Qt(),Q("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(fe,"warning")},jr))}function er(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),E(fe,{now:t}),E(de,{now:t}),E(Ue,{now:t})}function Je(e,t,o,a="blocked"){Zt(e),Qt(),Q(a,t,o),G(a==="unavailable"?Ue:de,"error",{detail:o,actions:[{label:"Download copy",onClick:pe},{label:"Copy text",onClick:It}]})}function Wr(e){Zt(e),E(de),E(Ue),Q("saved",null,"")}function Gr(e,t,o=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let n=a.querySelectorAll(z);return o?n.length!==1&&!a.querySelector(K):n.length!==1||a.querySelector(K)?!1:n[0].getAttribute("data-rev")!==t}function Ur(e){if(!e.store||!q)return e.savedRev;try{return q.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function tr(e){let t=e.view;t&&(t.setProps({editable:()=>!1}),t.setProps({dispatchTransaction:o=>t.updateState(t.state.apply(o))}));try{e.binding?.dispose()}catch(o){console.error("clayjs: page plugin binding failed to dispose",o)}e.savesHeld||(e.savesHeld=!0,Ce(Kt))}async function $r(e){if(!e.tabValue)return await pe();let{forSave:t}=W({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(z);if(a.length!==1)return await pe();let n=q.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=n.html,n.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",n.rev),await He(`<!DOCTYPE html>
2
- ${o.documentElement.outerHTML}`)}function Ye(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,tr(e);let a={label:"Download your copy",onClick:()=>$r(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var We=e=>Ye(e,Xt),Jr=e=>Ye(e,Ir),Yr=(e,t)=>{Q("blocked",t,Wt),Ye(e,Wt,{reload:!1})};function ye(e,t,o,a){t==="saved"?Wr(e):t==="retrying"?Br(e,o,a):t==="blocked"&&Je(e,o,a)}function I(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}function rr(e){let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let d=e.view;return!!(d&&!d.isDestroyed&&ue(d.state))},n=()=>e.view?.focus?.();return{undo:()=>{t.undo()&&n()},redo:()=>{t.redo()&&n()},get canUndo(){return o.undoStack.length>0&&!a()},get canRedo(){return o.redoStack.length>0&&!a()}}}function $t(e){let t=rr(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function Xr(e){let t=(a,n)=>{n!=="error"&&xe(a),ye(e,n,a.detail?.code??null,a.detail?.msg??"")};I(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return xe(a);t(a,U({code:n}))}),I(e,"clay:save-offline",a=>{t(a,U({code:a.detail?.code??null,offline:!0}))}),I(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.msg??"")});let o=a=>{zr(e,a)};I(e,"clay:save-conflict",o),I(e,"clay:save-error",o),I(e,"clay:save-saved",a=>{ye(e,U({ok:!0}),null,a.detail?.msg??""),e.savedRev=Ur(e),e.adoption?.saved(ut())}),I(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){We(e);return}let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.message??"")})}async function or(){if(x)return null;let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let t=await e.text(),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelector(z);if(!a)return null;let n=o.querySelector(K),d=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(d&&!/^W\//.test(d)?d:null);return{article:a,value:n?ce(n.textContent):null,etag:g}}async function zr(e,t){let o=e.staged;if(!o||e.staleRetry||e.replaced)return;let a=t?.detail?.code??null;if(!(a!=="blockeditor-lineage-stale"&&a!=="conflict")&&!(!e.store||!o.isPending())){e.staleRetry=!0;try{let n=await or();if(!n||!p(e))return;let d=await M();if(!p(e))return;let g=n.value??d.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&nt(b),e.store.rebase(g,{source:"state"}),await dt()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function Xe(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&q)try{let n=q.renderFromTags([JSON.stringify(e.store.value)]);o=n.html,a=n.rev}catch(n){console.error("clayjs: page plugin could not render the saved article",n)}t.innerHTML=o,a==null?t.removeAttribute("data-rev"):t.setAttribute("data-rev",a)}function ze(e){for(let[t,o]of e.listeners)document.removeEventListener(t,o);e.listeners=[];try{e.adoption?.dispose()}catch(t){console.error("clayjs: page plugin adoption failed to dispose",t)}e.adoption=null;try{e.recover?.destroy()}catch(t){console.error("clayjs: page plugin recover list failed to dispose",t)}if(e.recover=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&St.delete(e.view),e.article){let t=e.article.querySelector(".blockeditor-shell");t&&t.remove()}try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}try{e.binding?.ydoc?.destroy()}catch(t){console.error("clayjs: page plugin document failed to destroy",t)}try{e.staged?.close()}catch(t){console.error("clayjs: page plugin staged store failed to close",t)}if(e.staged=null,e.pageStore){try{ht("blockeditor",e.pageStore)}catch(t){console.error("clayjs: page plugin store failed to close",t)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function Jt(e){let t=e.view;if(t&&!t.isDestroyed&&typeof t.destroy=="function")try{t.destroy()}catch(o){console.error("clayjs: page plugin view failed to destroy",o)}e.titleObserver?.dispose(),e.titleObserver=null,V(e),ze(e),Xe(e)}function Ge(){we+=1;let e=S;if(S=null,ne("Blockeditor-Write",null),De(null),!!e){qe(e),er(e),E(Xt);for(let t of e.notices?.values()??[])E(t);if(e.savesHeld&&(e.savesHeld=!1,se({replay:!1,reason:Kt})),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.sessionHeld&&se({replay:!1,reason:$e}),e.autosaveSuspended&&le(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}ze(e),Xe(e)}}var Ve=null;function Ke(){return Ve||(Ve=Promise.all([import("../c-XMIDHEKF.js"),import("../c-5FXEKU4Y.js"),import("../c-KQKKIVLW.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Ve}async function Kr(e,t){let o=globalThis.window?.clay?.recovery??null;if(x||!o||!t)return null;let a=await Ke();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:o,base:a.replay.journalBase(t.value)})}catch(n){return console.warn("clayjs: page journal could not open",n),null}}async function Yt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Ke();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return eo(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Qr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Qr(e,t){if(e.recoveryPanel)return e.recoveryPanel;let o=e.view,a=o?.dom.closest(".blockeditor-shell")??e.article;if(!a)return null;let n=t.createRecoveryReview({mount:a,getView:()=>e.view&&!e.view.isDestroyed?e.view:null,getJournal:()=>e.binding?.journal??null,isCurrent:()=>p(e)&&e.inputOpen&&!!e.view&&!e.view.isDestroyed}),d=n.watch(o?.dom??null);return C(e,()=>{d(),n.destroy()}),e.recoveryPanel=n,n}function Zr(e){De(async({capture:t,state:o,article:a,etag:n})=>{let d=e.binding?.journal;if(!d)return;let g=await Ke(),b=g?await d.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-B7GOFGQR.js"),A=await g.proof.checkpointAccepted({channel:d.channel,records:d.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});A.ok&&(d.retire(A.retired),e.pageStatus?.checkpoint(),await d.rebase?.(g.replay.journalBase(A.proof.state)))})}function eo(e,t){let o=e.binding?.journal;return!o||e.pageStatus?e.pageStatus??null:(e.pageStatus=t.replay.watchJournal({journal:o,store:e.store,reduce:Ot,onState:a=>Q(a),onUnavailable:a=>Je(e,a,"","unavailable")}),C(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function ar(e,t){if(Be(t))return!1;if(Le(e.authoritative)===Le(t))return!0;try{return e.rebase(t,{source:"state"})}catch(o){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",o),!1}}function to(e,t){let o=null,a=null,n=null,d=null,g=null,b=null,k=null,A=[],R=null,L=null,$=null,Z=null,ee=null,cr=new Promise(r=>{d=r});e.editorReadyResolve=d,C(e,()=>d?.()),C(e,()=>V(e));let te=null,be=null;e.loadFormatGate=()=>te?Promise.resolve(te):(be??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-ND3Q2G2I.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return te=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let u=wt();return u?u.switchScope(c,{...f,covered:!!f?.covered||!mt()}):{status:"refused",code:"lane-unavailable"}}}}),te}).catch(r=>{throw be=null,r}),be);let Qe='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ir=()=>$||($=(async()=>{if(!document.querySelector(Qe)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","blockeditor.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Qe))try{R=window.clay.live("blockeditor.tools"),await R.ready}catch(c){console.warn("clayjs: page plugin could not open the tool store",c)}if(!p(e))return null;let[{createToolHost:r},{tablesFromDoc:l}]=await Promise.all([import("../c-FQAQRXGK.js"),import("../c-YNIEIPBS.js")]);if(!p(e))return null;let s=r({store:R,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:u})=>({id:c,cols:f,rows:u}))});return e.toolHost=s,s})().catch(r=>{throw $=null,r}),$),re='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',Ze=["assignees","dates"],B=null,ke={assignees:!0,dates:!0},oe=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function ur(){let r=document.querySelector(re);if(!r)return oe(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return oe(l)}function ae(r){ke=oe(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of Ze)ke[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Se=()=>B||(B=(async()=>{if(!document.querySelector(re)){let l=document.createElement("script");l.setAttribute("type","application/json"),l.setAttribute("merge","blockeditor.settings"),l.setAttribute("clay","live"),l.textContent="{}",document.head.appendChild(l)}let r=null;try{r=window.clay.live("blockeditor.settings"),await r.ready}catch(l){return console.warn("clayjs: page plugin could not open the settings store",l),B=null,null}return p(e)?(ae(r.data),r.on("change",()=>ae(r.data)),r):null})(),B);e.settings={read:()=>({...ke}),set:async(r,l)=>{if(!Ze.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Se();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...oe(s.data),[r]:l!==!1};s.set([r],c[r]),ae(c)}};let J=new Map,dr=r=>{if(J.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;J.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=J.get(r);s&&(J.delete(r),E(s))},()=>{})}}]})};e.notices=J;let Te=async({target:r=null,remove:l=null}={})=>{if(Z&&n&&l&&Z.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?Z.heldSlashRange(n.state):null,c=await(L??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),u=window.clay?.aiEdit||await qr(()=>window.clay?.aiEdit,Nr);if(p(e)){if(!u?.openTarget){Ie(Mr,"warning");return}u.openTarget(f)}},Ae=()=>jt(o);function fr(r){let l=document.querySelectorAll(z),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(z):l,f=s?s.querySelectorAll(K):document.querySelectorAll(K);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let u=c.length===1&&f.length===0;if(c.length!==1||!u&&f.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-blockeditor] and one merge="blockeditor" live tag; found ${c.length} article(s) and ${f.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-blockeditor"};let w=l[0];if(!w)return{ok:!1,reason:"no-blockeditor"};let m=c[0],v=f[0],i=null;if(!u){try{i=ce(v?.textContent)}catch{i=null}let j=Be(i);if(j)return{ok:!1,reason:j}}let h={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:u,seedValue:null};return h.ready=(async()=>{let j=await M();if(!p(r))return{ok:!1,cancelled:!0};if(u){try{let y=await Ee(),O=y?.extensions?.includes("blockeditor-recovery-v1")&&y.document?.blockeditorState?.href,D=r.context?.represented?r.context.represented.etag:je()??Re();if(O&&D){let{readPageState:F}=await import("../c-5FXEKU4Y.js"),H=await F({href:O,etag:D});if(!p(r))return{ok:!1,cancelled:!0};if(H.ok){if(H.etag!==D)return{ok:!1,reason:"etag-mismatch"};i=ce(H.tag),h.persisted=!0}else if(H.code!=="no-blockeditor-state")return{ok:!1,reason:H.code}}else if(O){let F=await or();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(h.article))return{ok:!1,reason:"stale-document"};i=F.value,h.persisted=i!==null}i=h.seedValue=i??j.seedPageFromArticle(h.article.cloneNode(!0))}catch(y){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",y),{ok:!1,reason:"invalid-blockeditor-source"}}let T=Be(i);if(T)return{ok:!1,reason:T};h.tags=[i]}try{h.blocks=j.blocksFromYValue(i)}catch(T){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",T),{ok:!1,reason:"invalid-blockeditor-json"}}return{ok:!0}})(),Hr(r,w),{ok:!0,source:h}}async function pr(r,l){let s=M();s.catch(()=>null);let c=await l.ready;if(!c.ok)return c;if(!p(r))return{ok:!1,cancelled:!0};let f=await s,u=[...new Set(Object.values(l.blocks).map(m=>At(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>Tt[m].load(),install:async(m,v)=>{if(n||await cr,!p(r)||!n)return null;let i={view:n,upload:x?Bt:t.upload,board:a.board,undo:a.undo,redo:a.redo,revise:Ae()?h=>{Te({target:{toolId:h}})}:null};return m==="tool"&&(i.toolHost=await ir(),!p(r))?null:w.installPageFeature(i,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),dr(v)}});for(let m of u)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-KAZDJNND.js"),ee=w.setEditorActive,Z={holdSlashRange:f.holdSlashRange,heldSlashRange:f.heldSlashRange}}catch(m){return console.error("clayjs: page plugin could not load the editor",m),{ok:!1,reason:"editor-assets-failed"}}return p(r)?{ok:!0,editor:w.createPageEditor,refreshView:w.refreshMountedView,featureIds:u,code:f}:{ok:!1,cancelled:!0}}async function gr(r,l){let s=M();try{o=x?{spec:null,extensions:["blockeditor"],document:null}:await Ee()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Je(r,Vt.code,Vt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),ne("Blockeditor-Write","v1");let c=null,f=null;if(l.seeded){if(c=await l.ready,!c.ok)return c;if(f=await s,!p(r))return{ok:!1,cancelled:!0}}let u,w=!0;try{if(l.seeded){let y=yt("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:je()??Re()},persisted:l.persisted});r.staged=y,u=y.handle}else{let y=_("blockeditor")===null;w=y,u=window.clay.live("blockeditor"),y&&(r.pageStore=_("blockeditor"))}}catch(y){return console.warn("clayjs: page plugin could not open the page store",y),{ok:!1,reason:"missing-blockeditor-store"}}try{await u.ready}catch(y){return console.warn("clayjs: page plugin could not join the page room",y),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=_("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!ar(_("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=_("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,h=null,j=async y=>{let O=await y();return i=O?.ok===!1,h?.changed(),O};g=Lt();let T=await Kr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:y=>{r.tabValue=f.yValueOf(a.ydoc),y==="lineage"?(ie()?.abandon?.("blockeditor"),We(r)):y==="blockeditor-full"||y==="compaction-failed"?Yr(r,y):Jr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:bt,requestExitCheckpoint:y=>vt({name:v.name,...y}),journal:T,exitClosed:()=>!it(),registerUnsavedState:y=>(h=st({id:y.id,isPending:()=>i||y.isPending(),flush:O=>j(()=>y.flush(O))}),h)}),r.binding=a,T&&Zr(r),r.flush=y=>j(()=>a.flush(y)),Xr(r),{ok:!0,store:v,handle:u}):{ok:!1,cancelled:!0}}function yr(r,l){import("../c-ZGCO4J3H.js").then(async s=>{if(r.view!==l)return;let c=await s.installPageAwareness({binding:r.binding,view:l});if(c){if(r.view!==l||l.isDestroyed){c.dispose();return}r.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function hr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=Rt(c,"editor")}catch(i){return console.error("clayjs: page plugin could not claim the article",i),{ok:!1,reason:"article-owned"}}r.source=l,r.article=c,r.bootHtml=l.article.innerHTML,r.bootRev=l.article.getAttribute("data-rev"),r.savedRev=r.bootRev,I(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&We(r)}),A=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),u=null;try{u=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:a.undo,redo:a.redo,board:a.board,editable:!1,features:b,upload:x?Bt:t.upload,onAiTool:Ae()?(i,h)=>{Te({remove:h})}:null,mediaNote:x?zt:null,reviseTool:Ae()?i=>{Te({target:{toolId:i}})}:null,formatGate:r.loadFormatGate})}catch(i){return console.error("clayjs: page plugin could not mount the editor",i),f.replaceChildren(),r.releaseArticle?.(),r.releaseArticle=null,r.article=null,{ok:!1,reason:"mount-failed"}}n=u,r.view=u,L=import("../c-ZKKAF4UT.js").then(({createPageAi:i})=>!p(r)||r.view!==u?null:(r.pageAi=i({getView:()=>r.view,store:()=>R,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ae(ur()),document.querySelector(re)?Se().catch(()=>null):I(r,"clay:sync-applied",()=>{!B&&document.querySelector(re)&&Se().catch(()=>null)});let w=u.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),Y.pause();try{if(!s.featureIds.length)for(let i of A)i.remove();w&&c.appendChild(w)}finally{Y.resume()}s.refreshView?.(u),a.attach(u);let m=a.bridge?.um;if(m){let i=()=>$t(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),C(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=ue(u.state);return C(r,kt(u,{update:i=>{let h=ue(i.state);h!==v&&(v=h,$t(r))}})),yr(r,u),d(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Vr(u),r.recover=s.code.createRecoverList({binding:a,mount:u.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(u,i),onStale:()=>Ie("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(u),{ok:!0,view:u,featureIds:s.featureIds}}async function mr(r,l){try{let s=await M(),{HyperMorph:c}=await ft(),f=s.blocksFromYValue(r.store.authoritative),u=s.readBack(f,document),w=s.mergePageModels(l.baseItems,u,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(u)}catch{return!1}}async function wr(r,l){let s=await M();return await mr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,u=null,w=!1,m=v=>{w||(w=!0,u&&clearTimeout(u),u=null,f?.(),f=null,c(v))};C(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),u=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),m({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function vr(r,l,s){let c=await M(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),u=f.kind==="adopt",w=async()=>{let h=await pt();if(!h||!p(r))return;if(h.status.writer===null){let T=r.store.value.y,y=Object.keys(T),O=a.ydoc.clientID.toString(36),D=r.store.room?.compaction?.v===1?y.find(H=>xr.test(H))??`u${O}-claim-0`:y.length?y[0]:`claim-${O}`,F=Object.hasOwn(T,D)?T[D]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",D],F),h.release("blockeditor")}let j;await Promise.race([gt(),new Promise(T=>{j=setTimeout(T,_r)})]),clearTimeout(j)},m=u?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let h=ie();return!h||h.status.writer===null?!0:h.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>W({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:h=>ie()?.adopted?.("blockeditor",h,r.store.mark),notice:h=>{h.copy&&G(Cr,"warning",{actions:[{label:"Download your copy",onClick:()=>He(h.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await wr(r,f)),!i.ok&&p(r)?Jt(r):p(r)&&await Yt(r),i):(await Yt(r),{ok:!0,outcome:"unchanged"})}async function et(r,l){if(r.replaced)return{ok:!1,reason:"blockeditor-replaced"};if(await k,!p(r))return{ok:!1,cancelled:!0};let s=l.view.dom.closest(".blockeditor-shell");if(!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(l.featureIds??[]),f=Fr(l.view.state.doc).filter(u=>!c.has(u));return f.length&&(await Promise.allSettled(f.map(u=>b.ensure(u))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function tt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{Y.pause();try{for(let f of A)f.remove();s&&(s.style.visibility="")}finally{Y.resume()}};return r.replaced?(c(),tr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,ee?.(l.view,!0),r.inputOpen=!0,V(r),{ok:!0})}function br(r){return r.inputOpen?(ee?.(r.view,!1,{quiesce:!0}),!0):!1}function kr(r){return r.inputOpen?(ee?.(r.view,!0),!0):!1}async function Sr(r,l){let s=await et(r,l);return s.ok?tt(r,l):s}let rt={readSource:fr,loadEditorAssets:pr,prepareAuthority:gr,mountAndAttach:hr,adoptSource:vr,prepareInput:et,openInput:tt,closeInput:br,resumeInput:kr,enableInput:Sr,release:r=>{r.view||Jt(r)}};return e.steps=rt,rt}async function ro(e,t={},{activate:o=!0}={}){return Mt(e,to(e,t),{activate:o})}function nr(e={},{activate:t=!0,context:o=null}={}){Ge(),he=null;let a=++we,n={..._t({gen:a,isCurrent:()=>a===we&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&V(n),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,pageAi:null,bootHtml:"",bootRev:null,savedRev:null,staged:null,pageStore:null,releaseArticle:null,replaced:!1,savesHeld:!1,flush:null,loadFormatGate:null,listeners:[],retryTimer:null,retryShown:!1,statusTimer:null,statusNote:null,notices:null,editorReadyResolve:null,context:o,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};S=n;let d=ro(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),he=Nt(n,"boot-failed"),S===n&&Ge(),he));return{inst:n,boot:d}}function lr(e={}){return nr(e).boot}function oo(e){if(S===e&&(S=null,we+=1),ne("Blockeditor-Write",null),qe(e),er(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.view=null,ze(e),Xe(e)}function me(e){e.sessionHeld&&(e.sessionHeld=!1,se({replay:!1,reason:$e}))}function sr(e,{held:t=!0}={}){return{enable(){t&&(me(e),qt(e))},quiesce(){if(e.view?.composing)throw Object.assign(new Error("clayjs: a composition is still in progress"),{code:"composition"});e.steps?.closeInput?.(e),e.autosaveSuspended||(e.autosaveSuspended=!0,ct())},resume(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),e.steps?.resumeInput?.(e)},dispose(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),oo(e)}}}function ao(e=null,t={}){Ce($e);let{inst:o,boot:a}=nr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=sr(o,{held:!0});ve.ready=a.then(()=>ve.status);let d=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return d.catch(()=>{me(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:d,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?sr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:ao(t,e)}}}var ve={ready:null,install:lr,get status(){return S?.result??he},flush(e={}){let t=S;return!t||!t.flush?Promise.resolve({ok:!1,code:"disposed"}):t.flush(e)},dispose:Ge,get view(){return S?.view??null},get ai(){return S?.pageAi??null},get history(){return S?rr(S):null},get settings(){return S?.settings??null}};at(e=>{let t=S?.binding;if(!t?.filePending())return;let o=q?.acceptedPageState(e);o&&t.acceptFile(o)});x&&(document.addEventListener("clay:drafts-blockeditor-external",e=>{let{live:t,adopted:o}=e.detail||{};if(!t||typeof t!="object")return;let a=!0;for(let[n,d]of Object.entries(t)){let g=_(n);if(g)try{(n==="blockeditor"?ar(g,d):g.rebase(d,{source:"state"}))===!1&&(a=!1)}catch(b){console.warn("clayjs: another tab's page could not join this one",b),a=!1}}a&&S?.binding?.provider?.settle?.(),a&&o?.()}),document.dispatchEvent(new CustomEvent("clay:drafts-blockeditor-listening")));ve.ready=ot()?lr():null;var Ho=ve;export{Wt as PAGE_FULL_MESSAGE,_r as WRITER_WAIT_MS,to as createSteps,Ho as default,Fo as modeParticipant,ve as page,Fo as pageParticipant,ao as preparePageSession};
1
+ import{a as jt}from"../c-VPXCXBDT.js";import{a as Tt,b as At,c as Et}from"../c-SXZYVXD6.js";import{e as ue}from"../c-Z6MROEQ4.js";import{a as St}from"../c-Q26XHBLQ.js";import{c as kt}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as Ie,b as G,d as E}from"../c-WCG6AKA7.js";import{a as Oe,b as Pe}from"../c-RHMPKZZ7.js";import{a as Rt}from"../c-L4WQSC27.js";import{d as pt,e as gt,i as yt,j as De,n as _,o as ht,q as ie,r as mt,s as wt,t as Fe,u as vt,v as bt}from"../c-YX2MC7YL.js";import"../c-JKZJIUIP.js";import{a as ce}from"../c-TCCA5BZN.js";import{k as Le}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as ft}from"../c-QTTJYJMA.js";import{a as lt}from"../c-NUHP2XDB.js";import{B as ut,F as dt,d as xe,e as ct,f as le,h as it,n as Ce,o as se}from"../c-VMXCX52Q.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as st}from"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Y}from"../c-MZCOGNZL.js";import{d as ne}from"../c-MFB74XVN.js";import{a as at}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as Re,c as nt,d as je}from"../c-KU3PX7LL.js";import{d as Ee}from"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{b as x,k as ot}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import{E as W}from"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Tr=Object.freeze({"blockeditor-converting":"retrying","blockeditor-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","blockeditor-condition-required":"blocked","blockeditor-conversion-refused":"blocked","blockeditor-conversion-required":"blocked","blockeditor-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked","blockeditor-full":"blocked","compaction-failed":"blocked"}),Ot=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,de="Can't save here. Your edits are still in this tab.",fe="Still trying to save. Your edits are safe in this tab.";function U({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Tr[t]??"error"}function Pt(e){let t;try{t=new DOMParser().parseFromString(e,"text/html")}catch{return e}let o=[...t.querySelectorAll('script[type="application/json"][merge="blockeditor"][clay~="live"]')].filter(d=>!d.closest("template")&&!d.closest("noscript"));if(o.length!==1)return e;let a=o[0].outerHTML,n=e.indexOf(a);return n<0||e.indexOf(a,n+1)!==-1?e:e.slice(0,n)+e.slice(n+a.length)}async function pe(){let{forSave:e}=W({emitForSync:!1});return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function He(e){return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function It(){try{let{forSave:e}=W({emitForSync:!1}),o=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-blockeditor]");return o.length!==1?!1:(await navigator.clipboard.writeText(o[0].textContent),!0)}catch{return!1}}var xt="clay.page.author",_e="clay.page.author.owned.",Ct=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Lt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(_e)&&t.push(n.slice(_e.length))}let o=e.getItem(xt);return(!o||!t.includes(o))&&(o=Ct(),e.setItem(_e+o,"1"),e.setItem(xt,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Ct();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Ar=new Set([P.ready,P.blocked,P.error]),Dt=0,Ht=()=>globalThis.performance?.now?.()??Date.now();function _t({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Dt+=1,{installId:Dt,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:Ht(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Ne(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function N(e,t,o=null){if(Ar.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=Ht(),e.result=Object.freeze({phase:t,reason:o??null,installId:e.installId,at:e.at});try{e.onPhase?.(e.result)}catch(a){console.error("clayjs: page boot phase callback failed",a)}return e.result}function Me(e,t){let o=N(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Nt(e,t){return N(e,P.error,t)}function C(e,t){return typeof t=="function"&&e.disposers.push(t),t}function qe(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(o){console.error("clayjs: page boot abort failed",o)}let t=e.disposers.splice(0).reverse();for(let o of t)try{o()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function ge(e,t){let o=globalThis.performance;if(typeof o?.mark=="function")try{o.mark(e,{detail:{installId:t.installId}})}catch{try{o.mark(e)}catch{return}}}function Er(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function X(e,t,o){return t.cancelled?null:(Er(e,o),Me(e,t.reason??"boot-incomplete"))}function Ft(e,t,o,a=null){return Promise.resolve(e).then(n=>n??{ok:!1,reason:o},n=>(console.error(`clayjs: page boot ${o}`,n),{ok:!1,reason:o})).then(n=>(n.ok&&a&&p(t)&&ge(a,t),n))}function Rr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,d=k=>{n||(n=!0,o(k))};if(a.aborted)return d({cancelled:!0});a.addEventListener("abort",()=>d({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,A)=>{k.then(R=>{if(!n){if(!R.ok)return d({result:R,branch:k});g[A]=R,b-=1,b===0&&d({results:g})}})})})}async function Mt(e,t,{activate:o=!0}={}){ge("document:boot",e),N(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return Me(e,a.reason);let n=a.source;N(e,P.joining);let d=await Rr(e,[Ft(t.loadEditorAssets(e,n),e,"editor-assets-failed","document:assets-ready"),Ft(t.prepareAuthority(e,n),e,"authority-failed","document:authority-ready")]);if(d.cancelled||!p(e))return null;if(!d.results){try{e.controller.abort()}catch(L){console.error("clayjs: page boot abort failed",L)}return X(e,d.result,t)}let[g,b]=d.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return X(e,k,t);e.mounted=k.view??null,N(e,P.adopting);let A=await t.adoptSource(e,n,k);if(!p(e))return null;if(!A.ok)return X(e,A,t);if(!o){if(t.prepareInput){let L=await t.prepareInput(e,k);if(!p(e))return null;if(!L.ok)return X(e,L,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let R=await t.enableInput(e,k);return p(e)?R.ok?(ge("document:input-ready",e),N(e,P.ready)):X(e,R,t):null}function qt(e){let t=e.deferred;if(e.deferred=null,!t||!p(e))return e.result??null;let o=e.steps?.openInput?.(e,t);return o?.ok?(ge("document:input-ready",e),N(e,P.ready)):Me(e,o?.reason??"input-refused")}var z="article[data-blockeditor]",K='script[type="application/json"][merge="blockeditor"][clay~="live"]',Vt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},Ue="Changes cannot be stored on this device. Download a copy to keep them.",jr=45e3,Or="Couldn't save",Pr="Offline, will retry",Xt="This page was changed outside the editor. Reload to see it.",Ir="That change is too large to share, so it was not saved. Reload the page to keep editing.",zt="Download your copy to add pictures and files.",Bt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:zt}),xr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Wt="This document is full, though your changes are still here to download. To edit again, reload this tab after another editor, or the owner in another browser, deletes content.",Cr="Some changes you made were replaced by a change made outside the editor.",Kt="The page was changed outside the editor; reload to see it.",Lr=150,Dr="Loading the editor\u2026",$e="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Be(e){return Gt(e)?e.v!==1||!Gt(e.y)||Object.hasOwn(e,"blocks")||Object.hasOwn(e,"deleted")?(console.warn("clayjs: page plugin: the page tag is not a strict Yjs page, leaving the page as saved HTML"),"unsupported-blockeditor-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-blockeditor-json")}var q=null,Ut=null;function M(){return Ut??=import("../c-TLQINES7.js").then(e=>q=e),Ut}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Et(o);a&&t.add(a)}),[...t]}function V(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function Hr(e,t){V(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let o=t.ownerDocument.createElement("div");o.className="blockeditor-boot-status",o.setAttribute("clay","editor-ui"),o.setAttribute("sap-ignore",""),o.setAttribute("role","status"),lt(o,["display:block","margin:0 0 1em","font:500 13px/1.6 system-ui, sans-serif","color:color-mix(in srgb, currentColor 55%, transparent)","user-select:none"]),o.textContent=Dr,t.prepend(o),e.statusNote=o},Lr)}var we=0,S=null,he=null,_r=8e3,Nr=8e3,Mr="AI tool making isn't available on this page right now.";function qr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let d=e();d||Date.now()-a>=t?o(d||null):setTimeout(n,50)};n()})}function Vr(e,t=globalThis.location){let o=t?.hash?.slice(1);if(!o)return;let a;try{a=decodeURIComponent(o)}catch{return}let n=-1;e.state.doc.forEach((d,g)=>{n<0&&d.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Q(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Qt(){E(Or),E(Pr)}function Zt(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,E(fe)}function Br(e,t,o){Qt(),Q("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(fe,"warning")},jr))}function er(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),E(fe,{now:t}),E(de,{now:t}),E(Ue,{now:t})}function Je(e,t,o,a="blocked"){Zt(e),Qt(),Q(a,t,o),G(a==="unavailable"?Ue:de,"error",{detail:o,actions:[{label:"Download copy",onClick:pe},{label:"Copy text",onClick:It}]})}function Wr(e){Zt(e),E(de),E(Ue),Q("saved",null,"")}function Gr(e,t,o=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let n=a.querySelectorAll(z);return o?n.length!==1&&!a.querySelector(K):n.length!==1||a.querySelector(K)?!1:n[0].getAttribute("data-rev")!==t}function Ur(e){if(!e.store||!q)return e.savedRev;try{return q.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function tr(e){let t=e.view;t&&(t.setProps({editable:()=>!1}),t.setProps({dispatchTransaction:o=>t.updateState(t.state.apply(o))}));try{e.binding?.dispose()}catch(o){console.error("clayjs: page plugin binding failed to dispose",o)}e.savesHeld||(e.savesHeld=!0,Ce(Kt))}async function $r(e){if(!e.tabValue)return await pe();let{forSave:t}=W({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(z);if(a.length!==1)return await pe();let n=q.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=n.html,n.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",n.rev),await He(`<!DOCTYPE html>
2
+ ${o.documentElement.outerHTML}`)}function Ye(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,tr(e);let a={label:"Download your copy",onClick:()=>$r(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var We=e=>Ye(e,Xt),Jr=e=>Ye(e,Ir),Yr=(e,t)=>{Q("blocked",t,Wt),Ye(e,Wt,{reload:!1})};function ye(e,t,o,a){t==="saved"?Wr(e):t==="retrying"?Br(e,o,a):t==="blocked"&&Je(e,o,a)}function I(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}function rr(e){let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let d=e.view;return!!(d&&!d.isDestroyed&&ue(d.state))},n=()=>e.view?.focus?.();return{undo:()=>{t.undo()&&n()},redo:()=>{t.redo()&&n()},get canUndo(){return o.undoStack.length>0&&!a()},get canRedo(){return o.redoStack.length>0&&!a()}}}function $t(e){let t=rr(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function Xr(e){let t=(a,n)=>{n!=="error"&&xe(a),ye(e,n,a.detail?.code??null,a.detail?.msg??"")};I(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return xe(a);t(a,U({code:n}))}),I(e,"clay:save-offline",a=>{t(a,U({code:a.detail?.code??null,offline:!0}))}),I(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.msg??"")});let o=a=>{zr(e,a)};I(e,"clay:save-conflict",o),I(e,"clay:save-error",o),I(e,"clay:save-saved",a=>{ye(e,U({ok:!0}),null,a.detail?.msg??""),e.savedRev=Ur(e),e.adoption?.saved(ut())}),I(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){We(e);return}let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.message??"")})}async function or(){if(x)return null;let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let t=await e.text(),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelector(z);if(!a)return null;let n=o.querySelector(K),d=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(d&&!/^W\//.test(d)?d:null);return{article:a,value:n?ce(n.textContent):null,etag:g}}async function zr(e,t){let o=e.staged;if(!o||e.staleRetry||e.replaced)return;let a=t?.detail?.code??null;if(!(a!=="blockeditor-lineage-stale"&&a!=="conflict")&&!(!e.store||!o.isPending())){e.staleRetry=!0;try{let n=await or();if(!n||!p(e))return;let d=await M();if(!p(e))return;let g=n.value??d.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&nt(b),e.store.rebase(g,{source:"state"}),await dt()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function Xe(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&q)try{let n=q.renderFromTags([JSON.stringify(e.store.value)]);o=n.html,a=n.rev}catch(n){console.error("clayjs: page plugin could not render the saved article",n)}t.innerHTML=o,a==null?t.removeAttribute("data-rev"):t.setAttribute("data-rev",a)}function ze(e){for(let[t,o]of e.listeners)document.removeEventListener(t,o);e.listeners=[];try{e.adoption?.dispose()}catch(t){console.error("clayjs: page plugin adoption failed to dispose",t)}e.adoption=null;try{e.recover?.destroy()}catch(t){console.error("clayjs: page plugin recover list failed to dispose",t)}if(e.recover=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&St.delete(e.view),e.article){let t=e.article.querySelector(".blockeditor-shell");t&&t.remove()}try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}try{e.binding?.ydoc?.destroy()}catch(t){console.error("clayjs: page plugin document failed to destroy",t)}try{e.staged?.close()}catch(t){console.error("clayjs: page plugin staged store failed to close",t)}if(e.staged=null,e.pageStore){try{ht("blockeditor",e.pageStore)}catch(t){console.error("clayjs: page plugin store failed to close",t)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function Jt(e){let t=e.view;if(t&&!t.isDestroyed&&typeof t.destroy=="function")try{t.destroy()}catch(o){console.error("clayjs: page plugin view failed to destroy",o)}e.titleObserver?.dispose(),e.titleObserver=null,V(e),ze(e),Xe(e)}function Ge(){we+=1;let e=S;if(S=null,ne("Blockeditor-Write",null),De(null),!!e){qe(e),er(e),E(Xt);for(let t of e.notices?.values()??[])E(t);if(e.savesHeld&&(e.savesHeld=!1,se({replay:!1,reason:Kt})),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.sessionHeld&&se({replay:!1,reason:$e}),e.autosaveSuspended&&le(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}ze(e),Xe(e)}}var Ve=null;function Ke(){return Ve||(Ve=Promise.all([import("../c-XMIDHEKF.js"),import("../c-SEVOS4UE.js"),import("../c-FBOO2UY3.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Ve}async function Kr(e,t){let o=globalThis.window?.clay?.recovery??null;if(x||!o||!t)return null;let a=await Ke();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:o,base:a.replay.journalBase(t.value)})}catch(n){return console.warn("clayjs: page journal could not open",n),null}}async function Yt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Ke();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return eo(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Qr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Qr(e,t){if(e.recoveryPanel)return e.recoveryPanel;let o=e.view,a=o?.dom.closest(".blockeditor-shell")??e.article;if(!a)return null;let n=t.createRecoveryReview({mount:a,getView:()=>e.view&&!e.view.isDestroyed?e.view:null,getJournal:()=>e.binding?.journal??null,isCurrent:()=>p(e)&&e.inputOpen&&!!e.view&&!e.view.isDestroyed}),d=n.watch(o?.dom??null);return C(e,()=>{d(),n.destroy()}),e.recoveryPanel=n,n}function Zr(e){De(async({capture:t,state:o,article:a,etag:n})=>{let d=e.binding?.journal;if(!d)return;let g=await Ke(),b=g?await d.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-Q2CB57UG.js"),A=await g.proof.checkpointAccepted({channel:d.channel,records:d.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});A.ok&&(d.retire(A.retired),e.pageStatus?.checkpoint(),await d.rebase?.(g.replay.journalBase(A.proof.state)))})}function eo(e,t){let o=e.binding?.journal;return!o||e.pageStatus?e.pageStatus??null:(e.pageStatus=t.replay.watchJournal({journal:o,store:e.store,reduce:Ot,onState:a=>Q(a),onUnavailable:a=>Je(e,a,"","unavailable")}),C(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function ar(e,t){if(Be(t))return!1;if(Le(e.authoritative)===Le(t))return!0;try{return e.rebase(t,{source:"state"})}catch(o){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",o),!1}}function to(e,t){let o=null,a=null,n=null,d=null,g=null,b=null,k=null,A=[],R=null,L=null,$=null,Z=null,ee=null,cr=new Promise(r=>{d=r});e.editorReadyResolve=d,C(e,()=>d?.()),C(e,()=>V(e));let te=null,be=null;e.loadFormatGate=()=>te?Promise.resolve(te):(be??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-V4B3RUWB.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return te=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let u=wt();return u?u.switchScope(c,{...f,covered:!!f?.covered||!mt()}):{status:"refused",code:"lane-unavailable"}}}}),te}).catch(r=>{throw be=null,r}),be);let Qe='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ir=()=>$||($=(async()=>{if(!document.querySelector(Qe)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","blockeditor.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Qe))try{R=window.clay.live("blockeditor.tools"),await R.ready}catch(c){console.warn("clayjs: page plugin could not open the tool store",c)}if(!p(e))return null;let[{createToolHost:r},{tablesFromDoc:l}]=await Promise.all([import("../c-FQAQRXGK.js"),import("../c-YNIEIPBS.js")]);if(!p(e))return null;let s=r({store:R,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:u})=>({id:c,cols:f,rows:u}))});return e.toolHost=s,s})().catch(r=>{throw $=null,r}),$),re='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',Ze=["assignees","dates"],B=null,ke={assignees:!0,dates:!0},oe=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function ur(){let r=document.querySelector(re);if(!r)return oe(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return oe(l)}function ae(r){ke=oe(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of Ze)ke[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Se=()=>B||(B=(async()=>{if(!document.querySelector(re)){let l=document.createElement("script");l.setAttribute("type","application/json"),l.setAttribute("merge","blockeditor.settings"),l.setAttribute("clay","live"),l.textContent="{}",document.head.appendChild(l)}let r=null;try{r=window.clay.live("blockeditor.settings"),await r.ready}catch(l){return console.warn("clayjs: page plugin could not open the settings store",l),B=null,null}return p(e)?(ae(r.data),r.on("change",()=>ae(r.data)),r):null})(),B);e.settings={read:()=>({...ke}),set:async(r,l)=>{if(!Ze.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Se();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...oe(s.data),[r]:l!==!1};s.set([r],c[r]),ae(c)}};let J=new Map,dr=r=>{if(J.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;J.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=J.get(r);s&&(J.delete(r),E(s))},()=>{})}}]})};e.notices=J;let Te=async({target:r=null,remove:l=null}={})=>{if(Z&&n&&l&&Z.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?Z.heldSlashRange(n.state):null,c=await(L??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),u=window.clay?.aiEdit||await qr(()=>window.clay?.aiEdit,Nr);if(p(e)){if(!u?.openTarget){Ie(Mr,"warning");return}u.openTarget(f)}},Ae=()=>jt(o);function fr(r){let l=document.querySelectorAll(z),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(z):l,f=s?s.querySelectorAll(K):document.querySelectorAll(K);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let u=c.length===1&&f.length===0;if(c.length!==1||!u&&f.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-blockeditor] and one merge="blockeditor" live tag; found ${c.length} article(s) and ${f.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-blockeditor"};let w=l[0];if(!w)return{ok:!1,reason:"no-blockeditor"};let m=c[0],v=f[0],i=null;if(!u){try{i=ce(v?.textContent)}catch{i=null}let j=Be(i);if(j)return{ok:!1,reason:j}}let h={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:u,seedValue:null};return h.ready=(async()=>{let j=await M();if(!p(r))return{ok:!1,cancelled:!0};if(u){try{let y=await Ee(),O=y?.extensions?.includes("blockeditor-recovery-v1")&&y.document?.blockeditorState?.href,D=r.context?.represented?r.context.represented.etag:je()??Re();if(O&&D){let{readPageState:F}=await import("../c-SEVOS4UE.js"),H=await F({href:O,etag:D});if(!p(r))return{ok:!1,cancelled:!0};if(H.ok){if(H.etag!==D)return{ok:!1,reason:"etag-mismatch"};i=ce(H.tag),h.persisted=!0}else if(H.code!=="no-blockeditor-state")return{ok:!1,reason:H.code}}else if(O){let F=await or();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(h.article))return{ok:!1,reason:"stale-document"};i=F.value,h.persisted=i!==null}i=h.seedValue=i??j.seedPageFromArticle(h.article.cloneNode(!0))}catch(y){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",y),{ok:!1,reason:"invalid-blockeditor-source"}}let T=Be(i);if(T)return{ok:!1,reason:T};h.tags=[i]}try{h.blocks=j.blocksFromYValue(i)}catch(T){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",T),{ok:!1,reason:"invalid-blockeditor-json"}}return{ok:!0}})(),Hr(r,w),{ok:!0,source:h}}async function pr(r,l){let s=M();s.catch(()=>null);let c=await l.ready;if(!c.ok)return c;if(!p(r))return{ok:!1,cancelled:!0};let f=await s,u=[...new Set(Object.values(l.blocks).map(m=>At(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>Tt[m].load(),install:async(m,v)=>{if(n||await cr,!p(r)||!n)return null;let i={view:n,upload:x?Bt:t.upload,board:a.board,undo:a.undo,redo:a.redo,revise:Ae()?h=>{Te({target:{toolId:h}})}:null};return m==="tool"&&(i.toolHost=await ir(),!p(r))?null:w.installPageFeature(i,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),dr(v)}});for(let m of u)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-PKSPJ2XJ.js"),ee=w.setEditorActive,Z={holdSlashRange:f.holdSlashRange,heldSlashRange:f.heldSlashRange}}catch(m){return console.error("clayjs: page plugin could not load the editor",m),{ok:!1,reason:"editor-assets-failed"}}return p(r)?{ok:!0,editor:w.createPageEditor,refreshView:w.refreshMountedView,featureIds:u,code:f}:{ok:!1,cancelled:!0}}async function gr(r,l){let s=M();try{o=x?{spec:null,extensions:["blockeditor"],document:null}:await Ee()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Je(r,Vt.code,Vt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),ne("Blockeditor-Write","v1");let c=null,f=null;if(l.seeded){if(c=await l.ready,!c.ok)return c;if(f=await s,!p(r))return{ok:!1,cancelled:!0}}let u,w=!0;try{if(l.seeded){let y=yt("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:je()??Re()},persisted:l.persisted});r.staged=y,u=y.handle}else{let y=_("blockeditor")===null;w=y,u=window.clay.live("blockeditor"),y&&(r.pageStore=_("blockeditor"))}}catch(y){return console.warn("clayjs: page plugin could not open the page store",y),{ok:!1,reason:"missing-blockeditor-store"}}try{await u.ready}catch(y){return console.warn("clayjs: page plugin could not join the page room",y),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=_("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!ar(_("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=_("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,h=null,j=async y=>{let O=await y();return i=O?.ok===!1,h?.changed(),O};g=Lt();let T=await Kr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:y=>{r.tabValue=f.yValueOf(a.ydoc),y==="lineage"?(ie()?.abandon?.("blockeditor"),We(r)):y==="blockeditor-full"||y==="compaction-failed"?Yr(r,y):Jr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:bt,requestExitCheckpoint:y=>vt({name:v.name,...y}),journal:T,exitClosed:()=>!it(),registerUnsavedState:y=>(h=st({id:y.id,isPending:()=>i||y.isPending(),flush:O=>j(()=>y.flush(O))}),h)}),r.binding=a,T&&Zr(r),r.flush=y=>j(()=>a.flush(y)),Xr(r),{ok:!0,store:v,handle:u}):{ok:!1,cancelled:!0}}function yr(r,l){import("../c-5PZYDWTW.js").then(async s=>{if(r.view!==l)return;let c=await s.installPageAwareness({binding:r.binding,view:l});if(c){if(r.view!==l||l.isDestroyed){c.dispose();return}r.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function hr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=Rt(c,"editor")}catch(i){return console.error("clayjs: page plugin could not claim the article",i),{ok:!1,reason:"article-owned"}}r.source=l,r.article=c,r.bootHtml=l.article.innerHTML,r.bootRev=l.article.getAttribute("data-rev"),r.savedRev=r.bootRev,I(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&We(r)}),A=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),u=null;try{u=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:a.undo,redo:a.redo,board:a.board,editable:!1,features:b,upload:x?Bt:t.upload,onAiTool:Ae()?(i,h)=>{Te({remove:h})}:null,mediaNote:x?zt:null,reviseTool:Ae()?i=>{Te({target:{toolId:i}})}:null,formatGate:r.loadFormatGate})}catch(i){return console.error("clayjs: page plugin could not mount the editor",i),f.replaceChildren(),r.releaseArticle?.(),r.releaseArticle=null,r.article=null,{ok:!1,reason:"mount-failed"}}n=u,r.view=u,L=import("../c-PRZNJUYZ.js").then(({createPageAi:i})=>!p(r)||r.view!==u?null:(r.pageAi=i({getView:()=>r.view,store:()=>R,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ae(ur()),document.querySelector(re)?Se().catch(()=>null):I(r,"clay:sync-applied",()=>{!B&&document.querySelector(re)&&Se().catch(()=>null)});let w=u.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),Y.pause();try{if(!s.featureIds.length)for(let i of A)i.remove();w&&c.appendChild(w)}finally{Y.resume()}s.refreshView?.(u),a.attach(u);let m=a.bridge?.um;if(m){let i=()=>$t(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),C(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=ue(u.state);return C(r,kt(u,{update:i=>{let h=ue(i.state);h!==v&&(v=h,$t(r))}})),yr(r,u),d(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Vr(u),r.recover=s.code.createRecoverList({binding:a,mount:u.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(u,i),onStale:()=>Ie("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(u),{ok:!0,view:u,featureIds:s.featureIds}}async function mr(r,l){try{let s=await M(),{HyperMorph:c}=await ft(),f=s.blocksFromYValue(r.store.authoritative),u=s.readBack(f,document),w=s.mergePageModels(l.baseItems,u,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(u)}catch{return!1}}async function wr(r,l){let s=await M();return await mr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,u=null,w=!1,m=v=>{w||(w=!0,u&&clearTimeout(u),u=null,f?.(),f=null,c(v))};C(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),u=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),m({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function vr(r,l,s){let c=await M(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),u=f.kind==="adopt",w=async()=>{let h=await pt();if(!h||!p(r))return;if(h.status.writer===null){let T=r.store.value.y,y=Object.keys(T),O=a.ydoc.clientID.toString(36),D=r.store.room?.compaction?.v===1?y.find(H=>xr.test(H))??`u${O}-claim-0`:y.length?y[0]:`claim-${O}`,F=Object.hasOwn(T,D)?T[D]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",D],F),h.release("blockeditor")}let j;await Promise.race([gt(),new Promise(T=>{j=setTimeout(T,_r)})]),clearTimeout(j)},m=u?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let h=ie();return!h||h.status.writer===null?!0:h.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>W({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:h=>ie()?.adopted?.("blockeditor",h,r.store.mark),notice:h=>{h.copy&&G(Cr,"warning",{actions:[{label:"Download your copy",onClick:()=>He(h.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await wr(r,f)),!i.ok&&p(r)?Jt(r):p(r)&&await Yt(r),i):(await Yt(r),{ok:!0,outcome:"unchanged"})}async function et(r,l){if(r.replaced)return{ok:!1,reason:"blockeditor-replaced"};if(await k,!p(r))return{ok:!1,cancelled:!0};let s=l.view.dom.closest(".blockeditor-shell");if(!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(l.featureIds??[]),f=Fr(l.view.state.doc).filter(u=>!c.has(u));return f.length&&(await Promise.allSettled(f.map(u=>b.ensure(u))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function tt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{Y.pause();try{for(let f of A)f.remove();s&&(s.style.visibility="")}finally{Y.resume()}};return r.replaced?(c(),tr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,ee?.(l.view,!0),r.inputOpen=!0,V(r),{ok:!0})}function br(r){return r.inputOpen?(ee?.(r.view,!1,{quiesce:!0}),!0):!1}function kr(r){return r.inputOpen?(ee?.(r.view,!0),!0):!1}async function Sr(r,l){let s=await et(r,l);return s.ok?tt(r,l):s}let rt={readSource:fr,loadEditorAssets:pr,prepareAuthority:gr,mountAndAttach:hr,adoptSource:vr,prepareInput:et,openInput:tt,closeInput:br,resumeInput:kr,enableInput:Sr,release:r=>{r.view||Jt(r)}};return e.steps=rt,rt}async function ro(e,t={},{activate:o=!0}={}){return Mt(e,to(e,t),{activate:o})}function nr(e={},{activate:t=!0,context:o=null}={}){Ge(),he=null;let a=++we,n={..._t({gen:a,isCurrent:()=>a===we&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&V(n),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,pageAi:null,bootHtml:"",bootRev:null,savedRev:null,staged:null,pageStore:null,releaseArticle:null,replaced:!1,savesHeld:!1,flush:null,loadFormatGate:null,listeners:[],retryTimer:null,retryShown:!1,statusTimer:null,statusNote:null,notices:null,editorReadyResolve:null,context:o,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};S=n;let d=ro(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),he=Nt(n,"boot-failed"),S===n&&Ge(),he));return{inst:n,boot:d}}function lr(e={}){return nr(e).boot}function oo(e){if(S===e&&(S=null,we+=1),ne("Blockeditor-Write",null),qe(e),er(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.view=null,ze(e),Xe(e)}function me(e){e.sessionHeld&&(e.sessionHeld=!1,se({replay:!1,reason:$e}))}function sr(e,{held:t=!0}={}){return{enable(){t&&(me(e),qt(e))},quiesce(){if(e.view?.composing)throw Object.assign(new Error("clayjs: a composition is still in progress"),{code:"composition"});e.steps?.closeInput?.(e),e.autosaveSuspended||(e.autosaveSuspended=!0,ct())},resume(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),e.steps?.resumeInput?.(e)},dispose(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),oo(e)}}}function ao(e=null,t={}){Ce($e);let{inst:o,boot:a}=nr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=sr(o,{held:!0});ve.ready=a.then(()=>ve.status);let d=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return d.catch(()=>{me(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:d,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?sr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:ao(t,e)}}}var ve={ready:null,install:lr,get status(){return S?.result??he},flush(e={}){let t=S;return!t||!t.flush?Promise.resolve({ok:!1,code:"disposed"}):t.flush(e)},dispose:Ge,get view(){return S?.view??null},get ai(){return S?.pageAi??null},get history(){return S?rr(S):null},get settings(){return S?.settings??null}};at(e=>{let t=S?.binding;if(!t?.filePending())return;let o=q?.acceptedPageState(e);o&&t.acceptFile(o)});x&&(document.addEventListener("clay:drafts-blockeditor-external",e=>{let{live:t,adopted:o}=e.detail||{};if(!t||typeof t!="object")return;let a=!0;for(let[n,d]of Object.entries(t)){let g=_(n);if(g)try{(n==="blockeditor"?ar(g,d):g.rebase(d,{source:"state"}))===!1&&(a=!1)}catch(b){console.warn("clayjs: another tab's page could not join this one",b),a=!1}}a&&S?.binding?.provider?.settle?.(),a&&o?.()}),document.dispatchEvent(new CustomEvent("clay:drafts-blockeditor-listening")));ve.ready=ot()?lr():null;var Ho=ve;export{Wt as PAGE_FULL_MESSAGE,_r as WRITER_WAIT_MS,to as createSteps,Ho as default,Fo as modeParticipant,ve as page,Fo as pageParticipant,ao as preparePageSession};