@panphora/clayjs 1.26.1 → 1.26.2

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 (98) 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 +4 -3
  11. package/dist/m/{c-EQ5NBOGA.js → c-26W3BMWK.js} +1 -1
  12. package/dist/m/{c-AQVQKFKB.js → c-3JQY5MB2.js} +1 -1
  13. package/dist/m/{c-MKAUC6DB.js → c-3KG4SDZ5.js} +1 -1
  14. package/dist/m/{c-HYNM5U6B.js → c-5CJCIAFK.js} +1 -1
  15. package/dist/m/{c-O3DPFZCE.js → c-6266A3CU.js} +1 -1
  16. package/dist/m/{c-WOJ2RTV4.js → c-627JDXWT.js} +1 -1
  17. package/dist/m/{c-MMEVDN6D.js → c-7PZS45FY.js} +1 -1
  18. package/dist/m/{c-NYJ577NL.js → c-7RJCYD4F.js} +1 -1
  19. package/dist/m/{c-EHAR4RJJ.js → c-CKG4NF7J.js} +2 -2
  20. package/dist/m/{c-EXZOA6XY.js → c-E37MV4WS.js} +1 -1
  21. package/dist/m/{c-N4GEJMXW.js → c-EFXPKDJP.js} +1 -1
  22. package/dist/m/{c-ZPI7M5U5.js → c-G426P2SE.js} +1 -1
  23. package/dist/m/{c-BJ2RRQBQ.js → c-GXOUAT7E.js} +1 -1
  24. package/dist/m/{c-VU4WEWPH.js → c-H25R2UF3.js} +1 -1
  25. package/dist/m/{c-VO6RSFCO.js → c-HBSBQBD7.js} +1 -1
  26. package/dist/m/{c-CL5LSATX.js → c-I4ZVJZC7.js} +1 -1
  27. package/dist/m/{c-67TBU56I.js → c-I62KCFMW.js} +1 -1
  28. package/dist/m/{c-Y3MPVURA.js → c-IJ4VUYDN.js} +1 -1
  29. package/dist/m/{c-FC5RUFPR.js → c-IOJOJTPL.js} +1 -1
  30. package/dist/m/{c-HXGNH6GY.js → c-IPCSVZAB.js} +1 -1
  31. package/dist/m/c-JEWSJHMK.js +1 -0
  32. package/dist/m/{c-3F3AADKG.js → c-JOA4OJGK.js} +1 -1
  33. package/dist/m/{c-GFASNR55.js → c-JUSHNY3I.js} +1 -1
  34. package/dist/m/{c-7RHOMAMR.js → c-K5HRHUTK.js} +1 -1
  35. package/dist/m/{c-H3M6UDNV.js → c-KFXW6SZO.js} +1 -1
  36. package/dist/m/{c-EAV7A6BT.js → c-MB5FZ2PD.js} +1 -1
  37. package/dist/m/{c-2EPHRF47.js → c-MIQYK2VM.js} +1 -1
  38. package/dist/m/{c-ARO6CPMA.js → c-O3BSWMVD.js} +1 -1
  39. package/dist/m/{c-U35T5NAY.js → c-O54PVIAQ.js} +1 -1
  40. package/dist/m/{c-H4M2T4A6.js → c-OEEJRV2M.js} +1 -1
  41. package/dist/m/{c-KU3PX7LL.js → c-OSGTRM4C.js} +1 -1
  42. package/dist/m/{c-YZGWSCMT.js → c-QLGTY326.js} +1 -1
  43. package/dist/m/{c-WOWGGNCJ.js → c-RC37IFYT.js} +1 -1
  44. package/dist/m/{c-SMLAJASY.js → c-RHYX6KUH.js} +1 -1
  45. package/dist/m/{c-RGFPLQGV.js → c-SMCZC3V6.js} +1 -1
  46. package/dist/m/{c-P73XPAOA.js → c-T6RRRHX7.js} +1 -1
  47. package/dist/m/{c-3S5TNRZA.js → c-USO6XV23.js} +1 -1
  48. package/dist/m/{c-ZFAPQQIB.js → c-VPUSMVKE.js} +1 -1
  49. package/dist/m/{c-YYIN4NAF.js → c-VXJJ7BJL.js} +1 -1
  50. package/dist/m/{c-EEWPNUM2.js → c-W3DMFFGK.js} +1 -1
  51. package/dist/m/{c-755ZOHOM.js → c-W5HY5JHM.js} +1 -1
  52. package/dist/m/{c-C5UGNOC2.js → c-WJVW76R6.js} +1 -1
  53. package/dist/m/{c-Q2CB57UG.js → c-X3WLDGBX.js} +1 -1
  54. package/dist/m/{c-SRW5OBCF.js → c-XLVZN7DT.js} +1 -1
  55. package/dist/m/{c-3WX5FABT.js → c-YIFBOWQE.js} +1 -1
  56. package/dist/m/{c-34J5HC7N.js → c-YJS2V3MX.js} +1 -1
  57. package/dist/m/core/{admin-attrs-43JBA6JB.js → admin-attrs-H26XE2AE.js} +1 -1
  58. package/dist/m/core/{autosave-HD7Y7UNV.js → autosave-U5UIKPM3.js} +1 -1
  59. package/dist/m/core/{conflict-notice-UNDOD4BL.js → conflict-notice-HTF6CECH.js} +1 -1
  60. package/dist/m/core/{host-permission-5BYP24GC.js → host-permission-JHMPKRPO.js} +1 -1
  61. package/dist/m/core/{is-edit-mode-73OXKK5H.js → is-edit-mode-QBJUFMVF.js} +1 -1
  62. package/dist/m/core/{persist-MX3VYVBN.js → persist-TRXZPS6T.js} +1 -1
  63. package/dist/m/core/{recovery-VZF7RJZF.js → recovery-YJS7CI66.js} +1 -1
  64. package/dist/m/core/{save-JZ7R4ET2.js → save-KY3ZMPU4.js} +1 -1
  65. package/dist/m/core/{save-core-I4N6S4ED.js → save-core-LBW6DNJ6.js} +1 -1
  66. package/dist/m/core/{site-edits-C22O53GS.js → site-edits-M44KWAQN.js} +1 -1
  67. package/dist/m/core/{unsaved-warning-BP6ZY3PG.js → unsaved-warning-2X7NJNHZ.js} +1 -1
  68. package/dist/m/internals/{index-3LAVREAU.js → index-CDXUFQZK.js} +1 -1
  69. package/dist/m/{loader-RHUGUKXI.js → loader-CRCEH7TD.js} +1 -1
  70. package/dist/m/manifest-6D031725.js +1 -0
  71. package/dist/m/{manifest-edit-93AA79D7.js → manifest-edit-A75598BC.js} +1 -1
  72. package/dist/m/manifest.json +584 -584
  73. package/dist/m/plugins/{ai-edit-WDV2GLDU.js → ai-edit-T2SM7TRD.js} +1 -1
  74. package/dist/m/plugins/{demo-LMCMBILC.js → demo-57MJ3GOO.js} +1 -1
  75. package/dist/m/plugins/{indicator-OLPZ4WFI.js → indicator-D5PZJGVS.js} +1 -1
  76. package/dist/m/plugins/{live-DF5YS5AH.js → live-J52JO243.js} +1 -1
  77. package/dist/m/plugins/{menu-ESEFQARM.js → menu-KCCEDUMJ.js} +1 -1
  78. package/dist/m/plugins/{page-GZSU77JS.js → page-F7JG3JZX.js} +2 -2
  79. package/dist/m/plugins/{page-view-7MM3FEAR.js → page-view-QPRXXAT3.js} +1 -1
  80. package/dist/m/plugins/{people-EBWE337I.js → people-FEMXINJK.js} +1 -1
  81. package/dist/m/plugins/{richclay-MXH2GFAZ.js → richclay-XL64ZGOZ.js} +2 -2
  82. package/dist/m/plugins/{sortable-BAG3MSWS.js → sortable-HE7Q4KKP.js} +1 -1
  83. package/dist/m/plugins/{source-OYHDXKTB.js → source-5RTLTD75.js} +1 -1
  84. package/dist/m/plugins/{undo-KLHAGV75.js → undo-5MFW3OD5.js} +1 -1
  85. package/dist/m/plugins/{upgrade-SZQJYEQQ.js → upgrade-ORK24FK6.js} +1 -1
  86. package/dist/m/plugins/{upload-NZET3DNQ.js → upload-YMBDWTLR.js} +1 -1
  87. package/dist/m/plugins/{visitor-drafts-ZE6PCAFP.js → visitor-drafts-DCVGLCBX.js} +2 -2
  88. package/dist/m/plugins/{visitor-drafts-owner-TLECTYWS.js → visitor-drafts-owner-QLF6IALP.js} +1 -1
  89. package/dist/m/plugins/{visitor-menu-5XY57JQA.js → visitor-menu-VNWJZ6PV.js} +1 -1
  90. package/dist/m/plugins/{wire-S5ATC4QI.js → wire-I3TDGBGZ.js} +1 -1
  91. package/dist/m/{reader-core-AHOAP5DH.js → reader-core-7JOVUCEQ.js} +2 -2
  92. package/dist/m/sync/{live-sync-RZQSDMZW.js → live-sync-2UYQQSD7.js} +1 -1
  93. package/dist/offline-manifest.json +377 -377
  94. package/package.json +1 -1
  95. package/src/core/mode-receipt.js +7 -5
  96. package/dist/m/c-C7SUMNMI.js +0 -1
  97. package/dist/m/manifest-D70FE013.js +0 -1
  98. /package/dist/m/plugins/{richclay-MXH2GFAZ.js.LEGAL.txt → richclay-XL64ZGOZ.js.LEGAL.txt} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-C5UGNOC2.js";import{a as Ke,c as F,d as ze,f as le,h as Te,j as Ce,l as Ge,m as d}from"../c-J2ZW4HMR.js";import"../c-A5LASUEZ.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-RGFPLQGV.js";import{a as de,b as Ve}from"../c-FILLTJA7.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-FC5RUFPR.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-EHAR4RJJ.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-UW6MMZ4V.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=`
1
+ import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-WJVW76R6.js";import{a as Ke,c as F,d as ze,f as le,h as Te,j as Ce,l as Ge,m as d}from"../c-J2ZW4HMR.js";import"../c-A5LASUEZ.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-SMCZC3V6.js";import{a as de,b as Ve}from"../c-FILLTJA7.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-IOJOJTPL.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-T6RRRHX7.js";import"../c-G426P2SE.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-MZCOGNZL.js";import"../c-CKG4NF7J.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-OSGTRM4C.js";import"../c-26W3BMWK.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-JEWSJHMK.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-UW6MMZ4V.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-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
+ import{b as l}from"../c-JAX2667S.js";import{f as i}from"../c-JEWSJHMK.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{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-SYVF6ZMF.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-JEWSJHMK.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-SYVF6ZMF.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-SRW5OBCF.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-FC5RUFPR.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-EHAR4RJJ.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-UW6MMZ4V.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
+ 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-XLVZN7DT.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-IOJOJTPL.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-T6RRRHX7.js";import"../c-G426P2SE.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-CKG4NF7J.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-OSGTRM4C.js";import"../c-26W3BMWK.js";import"../c-IJUK2GPW.js";import"../c-JEWSJHMK.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-UW6MMZ4V.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-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-JZ7R4ET2.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-47M4QHCK.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-MKAUC6DB.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
+ 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-26W3BMWK.js";import{b as Q,c as ee,f as ie,g as le}from"../c-JEWSJHMK.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-X3WLDGBX.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-RHYX6KUH.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-KY3ZMPU4.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-47M4QHCK.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-3KG4SDZ5.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-JHMPKRPO.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 Ot}from"../c-VPXCXBDT.js";import{a as At,b as Et,c as Rt}from"../c-N362HNGO.js";import{e as de}from"../c-Z6MROEQ4.js";import{a as Tt}from"../c-Q26XHBLQ.js";import{c as St}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as xe,b as G,d as R}from"../c-JC4RZW4E.js";import{a as Pe,b as Ie}from"../c-RHMPKZZ7.js";import{a as jt}from"../c-L4WQSC27.js";import{d as gt,e as yt,i as ht,j as He,n as N,o as mt,q as ue,r as wt,s as vt,t as Fe,u as bt,v as kt}from"../c-SRW5OBCF.js";import"../c-JKZJIUIP.js";import{a as ie}from"../c-TCCA5BZN.js";import{k as De}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as pt}from"../c-FILLTJA7.js";import{a as st}from"../c-NUHP2XDB.js";import{B as dt,F as ft,d as Ce,e as it,f as se,h as ut,n as Le,o as ce}from"../c-FC5RUFPR.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as ct}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 X}from"../c-MZCOGNZL.js";import{d as le}from"../c-EHAR4RJJ.js";import{a as nt}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as je,c as lt,d as Oe}from"../c-KU3PX7LL.js";import{d as Re}from"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{b as C,k as at}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import{E as U}from"../c-UW6MMZ4V.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 Ar=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"}),Pt=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,fe="Can't save here. Your edits are still in this tab.",pe="Still trying to save. Your edits are safe in this tab.";function $({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Ar[t]??"error"}function It(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(u=>!u.closest("template")&&!u.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 ge(){let{forSave:e}=U({emitForSync:!1});return await Ie({html:It(e),name:`${Pe()}.html`})}async function _e(e){return await Ie({html:It(e),name:`${Pe()}.html`})}async function xt(){try{let{forSave:e}=U({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 Ct="clay.page.author",Ne="clay.page.author.owned.",Lt=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Dt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(Ne)&&t.push(n.slice(Ne.length))}let o=e.getItem(Ct);return(!o||!t.includes(o))&&(o=Lt(),e.setItem(Ne+o,"1"),e.setItem(Ct,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Lt();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Er=new Set([P.ready,P.blocked,P.error]),Ht=0,_t=()=>globalThis.performance?.now?.()??Date.now();function Nt({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Ht+=1,{installId:Ht,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:_t(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Me(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function M(e,t,o=null){if(Er.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=_t(),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 qe(e,t){let o=M(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Mt(e,t){return M(e,P.error,t)}function I(e,t){return typeof t=="function"&&e.disposers.push(t),t}function Ve(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 ye(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 Rr(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function z(e,t,o){return t.cancelled?null:(Rr(e,o),qe(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)&&ye(a,t),n))}function jr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,u=k=>{n||(n=!0,o(k))};if(a.aborted)return u({cancelled:!0});a.addEventListener("abort",()=>u({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,E)=>{k.then(j=>{if(!n){if(!j.ok)return u({result:j,branch:k});g[E]=j,b-=1,b===0&&u({results:g})}})})})}async function qt(e,t,{activate:o=!0}={}){ye("document:boot",e),M(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return qe(e,a.reason);let n=a.source;M(e,P.joining);let u=await jr(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(u.cancelled||!p(e))return null;if(!u.results){try{e.controller.abort()}catch(D){console.error("clayjs: page boot abort failed",D)}return z(e,u.result,t)}let[g,b]=u.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return z(e,k,t);e.mounted=k.view??null,M(e,P.adopting);let E=await t.adoptSource(e,n,k);if(!p(e))return null;if(!E.ok)return z(e,E,t);if(!o){if(t.prepareInput){let D=await t.prepareInput(e,k);if(!p(e))return null;if(!D.ok)return z(e,D,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let j=await t.enableInput(e,k);return p(e)?j.ok?(ye("document:input-ready",e),M(e,P.ready)):z(e,j,t):null}function Vt(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?(ye("document:input-ready",e),M(e,P.ready)):qe(e,o?.reason??"input-refused")}var K="article[data-blockeditor]",Q='script[type="application/json"][merge="blockeditor"][clay~="live"]',Bt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},$e="Changes cannot be stored on this device. Download a copy to keep them.",Or=45e3,Pr="Couldn't save",Ir="Offline, will retry",zt="This page was changed outside the editor. Reload to see it.",xr="That change is too large to share, so it was not saved. Reload the page to keep editing.",Kt="Download your copy to add pictures and files.",Wt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:Kt}),Cr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Ut="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.",Lr="Some changes you made were replaced by a change made outside the editor.",Qt="The page was changed outside the editor; reload to see it.",Dr=150,Hr="Loading the editor\u2026",Je="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function We(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 L=null,$t=null;function q(){return $t??=import("../c-YYIN4NAF.js").then(e=>L=e),$t}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Rt(o);a&&t.add(a)}),[...t]}function B(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function _r(e,t){B(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"),st(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=Hr,t.prepend(o),e.statusNote=o},Dr)}var ve=0,S=null,me=null,Nr=8e3,Mr=8e3,qr="AI tool making isn't available on this page right now.";function Vr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let u=e();u||Date.now()-a>=t?o(u||null):setTimeout(n,50)};n()})}function Br(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((u,g)=>{n<0&&u.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Z(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Zt(){R(Pr),R(Ir)}function er(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,R(pe)}function Wr(e,t,o){Zt(),Z("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(pe,"warning")},Or))}function tr(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),R(pe,{now:t}),R(fe,{now:t}),R($e,{now:t})}function Ye(e,t,o,a="blocked"){er(e),Zt(),Z(a,t,o),G(a==="unavailable"?$e:fe,"error",{detail:o,actions:[{label:"Download copy",onClick:ge},{label:"Copy text",onClick:xt}]})}function Ur(e){er(e),R(fe),R($e),Z("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(K);return o?n.length!==1&&!a.querySelector(Q):n.length!==1||a.querySelector(Q)?!1:n[0].getAttribute("data-rev")!==t}function $r(e){if(!e.store||!L)return e.savedRev;try{return L.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function rr(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,Le(Qt))}async function Jr(e){if(!e.tabValue)return await ge();let{forSave:t}=U({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(K);if(a.length!==1)return await ge();let n=L.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 _e(`<!DOCTYPE html>
2
- ${o.documentElement.outerHTML}`)}function Xe(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,rr(e);let a={label:"Download your copy",onClick:()=>Jr(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var Ue=e=>Xe(e,zt),Yr=e=>Xe(e,xr),Xr=(e,t)=>{Z("blocked",t,Ut),Xe(e,Ut,{reload:!1})};function he(e,t,o,a){t==="saved"?Ur(e):t==="retrying"?Wr(e,o,a):t==="blocked"&&Ye(e,o,a)}function x(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}var V=()=>window.clay?.undo?.pageHistory===!0;function or(e){if(V()){let u=window.clay.undo;return{undo:()=>u.undo(),redo:()=>u.redo(),get canUndo(){return!!u.canUndo},get canRedo(){return!!u.canRedo}}}let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let u=e.view;return!!(u&&!u.isDestroyed&&de(u.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 Jt(e){if(V())return;let t=or(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function zr(e){let t=(a,n)=>{n!=="error"&&Ce(a),he(e,n,a.detail?.code??null,a.detail?.msg??"")};x(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return Ce(a);t(a,$({code:n}))}),x(e,"clay:save-offline",a=>{t(a,$({code:a.detail?.code??null,offline:!0}))}),x(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.msg??"")});let o=a=>{Kr(e,a)};x(e,"clay:save-conflict",o),x(e,"clay:save-error",o),x(e,"clay:save-saved",a=>{he(e,$({ok:!0}),null,a.detail?.msg??""),e.savedRev=$r(e),e.adoption?.saved(dt())}),x(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){Ue(e);return}let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.message??"")})}async function ar(){if(C)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(K);if(!a)return null;let n=o.querySelector(Q),u=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(u&&!/^W\//.test(u)?u:null);return{article:a,value:n?ie(n.textContent):null,etag:g}}async function Kr(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 ar();if(!n||!p(e))return;let u=await q();if(!p(e))return;let g=n.value??u.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&lt(b),e.store.rebase(g,{source:"state"}),await ft()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function ze(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&L)try{let n=L.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 Ke(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&&Tt.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{mt("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 Yt(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,B(e),Ke(e),ze(e)}function Ge(){ve+=1;let e=S;if(S=null,le("Blockeditor-Write",null),He(null),!!e){Ve(e),tr(e),R(zt);for(let t of e.notices?.values()??[])R(t);if(e.savesHeld&&(e.savesHeld=!1,ce({replay:!1,reason:Qt})),e.titleObserver?.dispose(),e.titleObserver=null,B(e),e.sessionHeld&&ce({replay:!1,reason:Je}),e.autosaveSuspended&&se(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}Ke(e),ze(e)}}var Be=null;function Qe(){return Be||(Be=Promise.all([import("../c-GY36NO7C.js"),import("../c-EHJWIGWN.js"),import("../c-FUN6AKFE.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Be}async function Qr(e,t){let o=globalThis.window?.clay?.recovery??null;if(C||!o||!t)return null;let a=await Qe();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 Xt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Qe();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return to(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Zr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Zr(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}),u=n.watch(o?.dom??null);return I(e,()=>{u(),n.destroy()}),e.recoveryPanel=n,n}function eo(e){He(async({capture:t,state:o,article:a,etag:n})=>{let u=e.binding?.journal;if(!u)return;let g=await Qe(),b=g?await u.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-Q2CB57UG.js"),E=await g.proof.checkpointAccepted({channel:u.channel,records:u.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});E.ok&&(u.retire(E.retired),e.pageStatus?.checkpoint(),await u.rebase?.(g.replay.journalBase(E.proof.state)))})}function to(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:Pt,onState:a=>Z(a),onUnavailable:a=>Ye(e,a,"","unavailable")}),I(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function nr(e,t){if(We(t))return!1;if(De(e.authoritative)===De(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 ro(e,t){let o=null,a=null,n=null,u=null,g=null,b=null,k=null,E=[],j=null,D=null,J=null,ee=null,te=null,ir=new Promise(r=>{u=r});e.editorReadyResolve=u,I(e,()=>u?.()),I(e,()=>B(e));let re=null,ke=null;e.loadFormatGate=()=>re?Promise.resolve(re):(ke??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-GFASNR55.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return re=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let d=vt();return d?d.switchScope(c,{...f,covered:!!f?.covered||!wt()}):{status:"refused",code:"lane-unavailable"}}}}),re}).catch(r=>{throw ke=null,r}),ke);let Ze='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ur=()=>J||(J=(async()=>{if(!document.querySelector(Ze)){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(Ze))try{j=window.clay.live("blockeditor.tools"),await j.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:j,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:d})=>({id:c,cols:f,rows:d}))});return e.toolHost=s,s})().catch(r=>{throw J=null,r}),J),oe='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',et=["assignees","dates"],W=null,Se={assignees:!0,dates:!0},ae=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function dr(){let r=document.querySelector(oe);if(!r)return ae(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return ae(l)}function ne(r){Se=ae(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of et)Se[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Te=()=>W||(W=(async()=>{if(!document.querySelector(oe)){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),W=null,null}return p(e)?(ne(r.data),r.on("change",()=>ne(r.data)),r):null})(),W);e.settings={read:()=>({...Se}),set:async(r,l)=>{if(!et.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Te();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...ae(s.data),[r]:l!==!1};s.set([r],c[r]),ne(c)}};let Y=new Map,fr=r=>{if(Y.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;Y.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=Y.get(r);s&&(Y.delete(r),R(s))},()=>{})}}]})};e.notices=Y;let Ae=async({target:r=null,remove:l=null}={})=>{if(ee&&n&&l&&ee.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?ee.heldSlashRange(n.state):null,c=await(D??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),d=window.clay?.aiEdit||await Vr(()=>window.clay?.aiEdit,Mr);if(p(e)){if(!d?.openTarget){xe(qr,"warning");return}d.openTarget(f)}},Ee=()=>Ot(o);function pr(r){let l=document.querySelectorAll(K),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(K):l,f=s?s.querySelectorAll(Q):document.querySelectorAll(Q);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let d=c.length===1&&f.length===0;if(c.length!==1||!d&&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(!d){try{i=ie(v?.textContent)}catch{i=null}let A=We(i);if(A)return{ok:!1,reason:A}}let y={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:d,seedValue:null};return y.ready=(async()=>{let A=await q();if(!p(r))return{ok:!1,cancelled:!0};if(d){try{let h=await Re(),O=h?.extensions?.includes("blockeditor-recovery-v1")&&h.document?.blockeditorState?.href,H=r.context?.represented?r.context.represented.etag:Oe()??je();if(O&&H){let{readPageState:F}=await import("../c-EHJWIGWN.js"),_=await F({href:O,etag:H});if(!p(r))return{ok:!1,cancelled:!0};if(_.ok){if(_.etag!==H)return{ok:!1,reason:"etag-mismatch"};i=ie(_.tag),y.persisted=!0}else if(_.code!=="no-blockeditor-state")return{ok:!1,reason:_.code}}else if(O){let F=await ar();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(y.article))return{ok:!1,reason:"stale-document"};i=F.value,y.persisted=i!==null}i=y.seedValue=i??A.seedPageFromArticle(y.article.cloneNode(!0))}catch(h){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",h),{ok:!1,reason:"invalid-blockeditor-source"}}let T=We(i);if(T)return{ok:!1,reason:T};y.tags=[i]}try{y.blocks=A.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}})(),_r(r,w),{ok:!0,source:y}}async function gr(r,l){let s=q();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,d=[...new Set(Object.values(l.blocks).map(m=>Et(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>At[m].load(),install:async(m,v)=>{if(n||await ir,!p(r)||!n)return null;let i=()=>V()?window.clay.undo.undo():a.undo(),y=()=>V()?window.clay.undo.redo():a.redo(),A={view:n,upload:C?Wt:t.upload,board:a.board,undo:i,redo:y,revise:Ee()?T=>{Ae({target:{toolId:T}})}:null};return m==="tool"&&(A.toolHost=await ur(),!p(r))?null:w.installPageFeature(A,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),fr(v)}});for(let m of d)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-UF3CIA6V.js"),te=w.setEditorActive,ee={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:d,code:f}:{ok:!1,cancelled:!0}}async function yr(r,l){let s=q();try{o=C?{spec:null,extensions:["blockeditor"],document:null}:await Re()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Ye(r,Bt.code,Bt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),le("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 d,w=!0;try{if(l.seeded){let h=ht("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:Oe()??je()},persisted:l.persisted});r.staged=h,d=h.handle}else{let h=N("blockeditor")===null;w=h,d=window.clay.live("blockeditor"),h&&(r.pageStore=N("blockeditor"))}}catch(h){return console.warn("clayjs: page plugin could not open the page store",h),{ok:!1,reason:"missing-blockeditor-store"}}try{await d.ready}catch(h){return console.warn("clayjs: page plugin could not join the page room",h),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=N("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!nr(N("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=N("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,y=null,A=async h=>{let O=await h();return i=O?.ok===!1,y?.changed(),O};g=Dt();let T=await Qr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:h=>{r.tabValue=f.yValueOf(a.ydoc),h==="lineage"?(ue()?.abandon?.("blockeditor"),Ue(r)):h==="blockeditor-full"||h==="compaction-failed"?Xr(r,h):Yr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:kt,requestExitCheckpoint:h=>bt({name:v.name,...h}),journal:T,exitClosed:()=>!ut(),registerUnsavedState:h=>(y=ct({id:h.id,isPending:()=>i||h.isPending(),flush:O=>A(()=>h.flush(O))}),y)}),r.binding=a,T&&eo(r),r.flush=h=>A(()=>a.flush(h)),zr(r),{ok:!0,store:v,handle:d}):{ok:!1,cancelled:!0}}function hr(r,l){import("../c-67TBU56I.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 mr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=jt(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,x(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&Ue(r)}),E=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),d=null;try{d=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:()=>V()?window.clay.undo.undo():a.undo(),redo:()=>V()?window.clay.undo.redo():a.redo(),board:a.board,editable:!1,features:b,upload:C?Wt:t.upload,onAiTool:Ee()?(i,y)=>{Ae({remove:y})}:null,mediaNote:C?Kt:null,reviseTool:Ee()?i=>{Ae({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=d,r.view=d,D=import("../c-UEKJWXCB.js").then(({createPageAi:i})=>!p(r)||r.view!==d?null:(r.pageAi=i({getView:()=>r.view,store:()=>j,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ne(dr()),document.querySelector(oe)?Te().catch(()=>null):x(r,"clay:sync-applied",()=>{!W&&document.querySelector(oe)&&Te().catch(()=>null)});let w=d.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),X.pause();try{if(!s.featureIds.length)for(let i of E)i.remove();w&&c.appendChild(w)}finally{X.resume()}s.refreshView?.(d),a.attach(d);let m=a.bridge?.um;if(m){let i=L.createHistoryBridge({um:m,undo:()=>a.undo(),redo:()=>a.redo(),article:c,focus:()=>r.view?.focus?.()});I(r,i.dispose)}if(m){let i=()=>Jt(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),I(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=de(d.state);return I(r,St(d,{update:i=>{let y=de(i.state);y!==v&&(v=y,V()&&(y?r.releaseHold=window.clay.undo.hold():(r.releaseHold?.(),r.releaseHold=null)),Jt(r))}})),I(r,()=>{r.releaseHold?.(),r.releaseHold=null}),hr(r,d),u(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Br(d),r.recover=s.code.createRecoverList({binding:a,mount:d.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(d,i),onStale:()=>xe("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(d),{ok:!0,view:d,featureIds:s.featureIds}}async function wr(r,l){try{let s=await q(),{HyperMorph:c}=await pt(),f=s.blocksFromYValue(r.store.authoritative),d=s.readBack(f,document),w=s.mergePageModels(l.baseItems,d,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(d)}catch{return!1}}async function vr(r,l){let s=await q();return await wr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,d=null,w=!1,m=v=>{w||(w=!0,d&&clearTimeout(d),d=null,f?.(),f=null,c(v))};I(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),d=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 br(r,l,s){let c=await q(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),d=f.kind==="adopt",w=async()=>{let y=await gt();if(!y||!p(r))return;if(y.status.writer===null){let T=r.store.value.y,h=Object.keys(T),O=a.ydoc.clientID.toString(36),H=r.store.room?.compaction?.v===1?h.find(_=>Cr.test(_))??`u${O}-claim-0`:h.length?h[0]:`claim-${O}`,F=Object.hasOwn(T,H)?T[H]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",H],F),y.release("blockeditor")}let A;await Promise.race([yt(),new Promise(T=>{A=setTimeout(T,Nr)})]),clearTimeout(A)},m=d?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let y=ue();return!y||y.status.writer===null?!0:y.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>U({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:y=>ue()?.adopted?.("blockeditor",y,r.store.mark),notice:y=>{y.copy&&G(Lr,"warning",{actions:[{label:"Download your copy",onClick:()=>_e(y.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await vr(r,f)),!i.ok&&p(r)?Yt(r):p(r)&&await Xt(r),i):(await Xt(r),{ok:!0,outcome:"unchanged"})}async function tt(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(!Me(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(d=>!c.has(d));return f.length&&(await Promise.allSettled(f.map(d=>b.ensure(d))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function rt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{X.pause();try{for(let f of E)f.remove();s&&(s.style.visibility="")}finally{X.resume()}};return r.replaced?(c(),rr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Me(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,te?.(l.view,!0),r.inputOpen=!0,B(r),{ok:!0})}function kr(r){return r.inputOpen?(te?.(r.view,!1,{quiesce:!0}),!0):!1}function Sr(r){return r.inputOpen?(te?.(r.view,!0),!0):!1}async function Tr(r,l){let s=await tt(r,l);return s.ok?rt(r,l):s}let ot={readSource:pr,loadEditorAssets:gr,prepareAuthority:yr,mountAndAttach:mr,adoptSource:br,prepareInput:tt,openInput:rt,closeInput:kr,resumeInput:Sr,enableInput:Tr,release:r=>{r.view||Yt(r)}};return e.steps=ot,ot}async function oo(e,t={},{activate:o=!0}={}){return qt(e,ro(e,t),{activate:o})}function lr(e={},{activate:t=!0,context:o=null}={}){Ge(),me=null;let a=++ve,n={...Nt({gen:a,isCurrent:()=>a===ve&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&B(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 u=oo(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),me=Mt(n,"boot-failed"),S===n&&Ge(),me));return{inst:n,boot:u}}function sr(e={}){return lr(e).boot}function ao(e){if(S===e&&(S=null,ve+=1),le("Blockeditor-Write",null),Ve(e),tr(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,B(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,Ke(e),ze(e)}function we(e){e.sessionHeld&&(e.sessionHeld=!1,ce({replay:!1,reason:Je}))}function cr(e,{held:t=!0}={}){return{enable(){t&&(we(e),Vt(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,it())},resume(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),e.steps?.resumeInput?.(e)},dispose(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),ao(e)}}}function no(e=null,t={}){Le(Je);let{inst:o,boot:a}=lr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=cr(o,{held:!0});be.ready=a.then(()=>be.status);let u=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return u.catch(()=>{we(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:u,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?cr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:no(t,e)}}}var be={ready:null,install:sr,get status(){return S?.result??me},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?or(S):null},get settings(){return S?.settings??null}};nt(e=>{let t=S?.binding;if(!t?.filePending())return;let o=L?.acceptedPageState(e);o&&t.acceptFile(o)});C&&(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,u]of Object.entries(t)){let g=N(n);if(g)try{(n==="blockeditor"?nr(g,u):g.rebase(u,{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")));be.ready=at()?sr():null;var _o=be;export{Ut as PAGE_FULL_MESSAGE,Nr as WRITER_WAIT_MS,ro as createSteps,_o as default,Fo as modeParticipant,be as page,Fo as pageParticipant,no as preparePageSession};
1
+ import{a as Ot}from"../c-VPXCXBDT.js";import{a as At,b as Et,c as Rt}from"../c-N362HNGO.js";import{e as de}from"../c-Z6MROEQ4.js";import{a as Tt}from"../c-Q26XHBLQ.js";import{c as St}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as xe,b as G,d as R}from"../c-JC4RZW4E.js";import{a as Pe,b as Ie}from"../c-RHMPKZZ7.js";import{a as jt}from"../c-L4WQSC27.js";import{d as gt,e as yt,i as ht,j as He,n as N,o as mt,q as ue,r as wt,s as vt,t as Fe,u as bt,v as kt}from"../c-XLVZN7DT.js";import"../c-JKZJIUIP.js";import{a as ie}from"../c-TCCA5BZN.js";import{k as De}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as pt}from"../c-FILLTJA7.js";import{a as st}from"../c-NUHP2XDB.js";import{B as dt,F as ft,d as Ce,e as it,f as se,h as ut,n as Le,o as ce}from"../c-IOJOJTPL.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as ct}from"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-T6RRRHX7.js";import"../c-G426P2SE.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as X}from"../c-MZCOGNZL.js";import{d as le}from"../c-CKG4NF7J.js";import{a as nt}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as je,c as lt,d as Oe}from"../c-OSGTRM4C.js";import{d as Re}from"../c-26W3BMWK.js";import"../c-IJUK2GPW.js";import{b as C,k as at}from"../c-JEWSJHMK.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import{E as U}from"../c-UW6MMZ4V.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 Ar=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"}),Pt=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,fe="Can't save here. Your edits are still in this tab.",pe="Still trying to save. Your edits are safe in this tab.";function $({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Ar[t]??"error"}function It(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(u=>!u.closest("template")&&!u.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 ge(){let{forSave:e}=U({emitForSync:!1});return await Ie({html:It(e),name:`${Pe()}.html`})}async function _e(e){return await Ie({html:It(e),name:`${Pe()}.html`})}async function xt(){try{let{forSave:e}=U({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 Ct="clay.page.author",Ne="clay.page.author.owned.",Lt=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Dt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(Ne)&&t.push(n.slice(Ne.length))}let o=e.getItem(Ct);return(!o||!t.includes(o))&&(o=Lt(),e.setItem(Ne+o,"1"),e.setItem(Ct,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Lt();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Er=new Set([P.ready,P.blocked,P.error]),Ht=0,_t=()=>globalThis.performance?.now?.()??Date.now();function Nt({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Ht+=1,{installId:Ht,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:_t(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Me(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function M(e,t,o=null){if(Er.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=_t(),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 qe(e,t){let o=M(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Mt(e,t){return M(e,P.error,t)}function I(e,t){return typeof t=="function"&&e.disposers.push(t),t}function Ve(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 ye(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 Rr(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function z(e,t,o){return t.cancelled?null:(Rr(e,o),qe(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)&&ye(a,t),n))}function jr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,u=k=>{n||(n=!0,o(k))};if(a.aborted)return u({cancelled:!0});a.addEventListener("abort",()=>u({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,E)=>{k.then(j=>{if(!n){if(!j.ok)return u({result:j,branch:k});g[E]=j,b-=1,b===0&&u({results:g})}})})})}async function qt(e,t,{activate:o=!0}={}){ye("document:boot",e),M(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return qe(e,a.reason);let n=a.source;M(e,P.joining);let u=await jr(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(u.cancelled||!p(e))return null;if(!u.results){try{e.controller.abort()}catch(D){console.error("clayjs: page boot abort failed",D)}return z(e,u.result,t)}let[g,b]=u.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return z(e,k,t);e.mounted=k.view??null,M(e,P.adopting);let E=await t.adoptSource(e,n,k);if(!p(e))return null;if(!E.ok)return z(e,E,t);if(!o){if(t.prepareInput){let D=await t.prepareInput(e,k);if(!p(e))return null;if(!D.ok)return z(e,D,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let j=await t.enableInput(e,k);return p(e)?j.ok?(ye("document:input-ready",e),M(e,P.ready)):z(e,j,t):null}function Vt(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?(ye("document:input-ready",e),M(e,P.ready)):qe(e,o?.reason??"input-refused")}var K="article[data-blockeditor]",Q='script[type="application/json"][merge="blockeditor"][clay~="live"]',Bt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},$e="Changes cannot be stored on this device. Download a copy to keep them.",Or=45e3,Pr="Couldn't save",Ir="Offline, will retry",zt="This page was changed outside the editor. Reload to see it.",xr="That change is too large to share, so it was not saved. Reload the page to keep editing.",Kt="Download your copy to add pictures and files.",Wt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:Kt}),Cr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Ut="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.",Lr="Some changes you made were replaced by a change made outside the editor.",Qt="The page was changed outside the editor; reload to see it.",Dr=150,Hr="Loading the editor\u2026",Je="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function We(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 L=null,$t=null;function q(){return $t??=import("../c-VXJJ7BJL.js").then(e=>L=e),$t}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Rt(o);a&&t.add(a)}),[...t]}function B(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function _r(e,t){B(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"),st(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=Hr,t.prepend(o),e.statusNote=o},Dr)}var ve=0,S=null,me=null,Nr=8e3,Mr=8e3,qr="AI tool making isn't available on this page right now.";function Vr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let u=e();u||Date.now()-a>=t?o(u||null):setTimeout(n,50)};n()})}function Br(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((u,g)=>{n<0&&u.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Z(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Zt(){R(Pr),R(Ir)}function er(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,R(pe)}function Wr(e,t,o){Zt(),Z("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(pe,"warning")},Or))}function tr(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),R(pe,{now:t}),R(fe,{now:t}),R($e,{now:t})}function Ye(e,t,o,a="blocked"){er(e),Zt(),Z(a,t,o),G(a==="unavailable"?$e:fe,"error",{detail:o,actions:[{label:"Download copy",onClick:ge},{label:"Copy text",onClick:xt}]})}function Ur(e){er(e),R(fe),R($e),Z("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(K);return o?n.length!==1&&!a.querySelector(Q):n.length!==1||a.querySelector(Q)?!1:n[0].getAttribute("data-rev")!==t}function $r(e){if(!e.store||!L)return e.savedRev;try{return L.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function rr(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,Le(Qt))}async function Jr(e){if(!e.tabValue)return await ge();let{forSave:t}=U({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(K);if(a.length!==1)return await ge();let n=L.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 _e(`<!DOCTYPE html>
2
+ ${o.documentElement.outerHTML}`)}function Xe(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,rr(e);let a={label:"Download your copy",onClick:()=>Jr(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var Ue=e=>Xe(e,zt),Yr=e=>Xe(e,xr),Xr=(e,t)=>{Z("blocked",t,Ut),Xe(e,Ut,{reload:!1})};function he(e,t,o,a){t==="saved"?Ur(e):t==="retrying"?Wr(e,o,a):t==="blocked"&&Ye(e,o,a)}function x(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}var V=()=>window.clay?.undo?.pageHistory===!0;function or(e){if(V()){let u=window.clay.undo;return{undo:()=>u.undo(),redo:()=>u.redo(),get canUndo(){return!!u.canUndo},get canRedo(){return!!u.canRedo}}}let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let u=e.view;return!!(u&&!u.isDestroyed&&de(u.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 Jt(e){if(V())return;let t=or(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function zr(e){let t=(a,n)=>{n!=="error"&&Ce(a),he(e,n,a.detail?.code??null,a.detail?.msg??"")};x(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return Ce(a);t(a,$({code:n}))}),x(e,"clay:save-offline",a=>{t(a,$({code:a.detail?.code??null,offline:!0}))}),x(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.msg??"")});let o=a=>{Kr(e,a)};x(e,"clay:save-conflict",o),x(e,"clay:save-error",o),x(e,"clay:save-saved",a=>{he(e,$({ok:!0}),null,a.detail?.msg??""),e.savedRev=$r(e),e.adoption?.saved(dt())}),x(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){Ue(e);return}let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.message??"")})}async function ar(){if(C)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(K);if(!a)return null;let n=o.querySelector(Q),u=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(u&&!/^W\//.test(u)?u:null);return{article:a,value:n?ie(n.textContent):null,etag:g}}async function Kr(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 ar();if(!n||!p(e))return;let u=await q();if(!p(e))return;let g=n.value??u.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&lt(b),e.store.rebase(g,{source:"state"}),await ft()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function ze(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&L)try{let n=L.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 Ke(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&&Tt.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{mt("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 Yt(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,B(e),Ke(e),ze(e)}function Ge(){ve+=1;let e=S;if(S=null,le("Blockeditor-Write",null),He(null),!!e){Ve(e),tr(e),R(zt);for(let t of e.notices?.values()??[])R(t);if(e.savesHeld&&(e.savesHeld=!1,ce({replay:!1,reason:Qt})),e.titleObserver?.dispose(),e.titleObserver=null,B(e),e.sessionHeld&&ce({replay:!1,reason:Je}),e.autosaveSuspended&&se(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}Ke(e),ze(e)}}var Be=null;function Qe(){return Be||(Be=Promise.all([import("../c-GY36NO7C.js"),import("../c-EHJWIGWN.js"),import("../c-FUN6AKFE.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Be}async function Qr(e,t){let o=globalThis.window?.clay?.recovery??null;if(C||!o||!t)return null;let a=await Qe();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 Xt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Qe();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return to(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Zr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Zr(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}),u=n.watch(o?.dom??null);return I(e,()=>{u(),n.destroy()}),e.recoveryPanel=n,n}function eo(e){He(async({capture:t,state:o,article:a,etag:n})=>{let u=e.binding?.journal;if(!u)return;let g=await Qe(),b=g?await u.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-X3WLDGBX.js"),E=await g.proof.checkpointAccepted({channel:u.channel,records:u.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});E.ok&&(u.retire(E.retired),e.pageStatus?.checkpoint(),await u.rebase?.(g.replay.journalBase(E.proof.state)))})}function to(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:Pt,onState:a=>Z(a),onUnavailable:a=>Ye(e,a,"","unavailable")}),I(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function nr(e,t){if(We(t))return!1;if(De(e.authoritative)===De(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 ro(e,t){let o=null,a=null,n=null,u=null,g=null,b=null,k=null,E=[],j=null,D=null,J=null,ee=null,te=null,ir=new Promise(r=>{u=r});e.editorReadyResolve=u,I(e,()=>u?.()),I(e,()=>B(e));let re=null,ke=null;e.loadFormatGate=()=>re?Promise.resolve(re):(ke??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-JUSHNY3I.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return re=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let d=vt();return d?d.switchScope(c,{...f,covered:!!f?.covered||!wt()}):{status:"refused",code:"lane-unavailable"}}}}),re}).catch(r=>{throw ke=null,r}),ke);let Ze='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ur=()=>J||(J=(async()=>{if(!document.querySelector(Ze)){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(Ze))try{j=window.clay.live("blockeditor.tools"),await j.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:j,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:d})=>({id:c,cols:f,rows:d}))});return e.toolHost=s,s})().catch(r=>{throw J=null,r}),J),oe='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',et=["assignees","dates"],W=null,Se={assignees:!0,dates:!0},ae=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function dr(){let r=document.querySelector(oe);if(!r)return ae(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return ae(l)}function ne(r){Se=ae(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of et)Se[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Te=()=>W||(W=(async()=>{if(!document.querySelector(oe)){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),W=null,null}return p(e)?(ne(r.data),r.on("change",()=>ne(r.data)),r):null})(),W);e.settings={read:()=>({...Se}),set:async(r,l)=>{if(!et.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Te();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...ae(s.data),[r]:l!==!1};s.set([r],c[r]),ne(c)}};let Y=new Map,fr=r=>{if(Y.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;Y.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=Y.get(r);s&&(Y.delete(r),R(s))},()=>{})}}]})};e.notices=Y;let Ae=async({target:r=null,remove:l=null}={})=>{if(ee&&n&&l&&ee.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?ee.heldSlashRange(n.state):null,c=await(D??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),d=window.clay?.aiEdit||await Vr(()=>window.clay?.aiEdit,Mr);if(p(e)){if(!d?.openTarget){xe(qr,"warning");return}d.openTarget(f)}},Ee=()=>Ot(o);function pr(r){let l=document.querySelectorAll(K),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(K):l,f=s?s.querySelectorAll(Q):document.querySelectorAll(Q);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let d=c.length===1&&f.length===0;if(c.length!==1||!d&&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(!d){try{i=ie(v?.textContent)}catch{i=null}let A=We(i);if(A)return{ok:!1,reason:A}}let y={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:d,seedValue:null};return y.ready=(async()=>{let A=await q();if(!p(r))return{ok:!1,cancelled:!0};if(d){try{let h=await Re(),O=h?.extensions?.includes("blockeditor-recovery-v1")&&h.document?.blockeditorState?.href,H=r.context?.represented?r.context.represented.etag:Oe()??je();if(O&&H){let{readPageState:F}=await import("../c-EHJWIGWN.js"),_=await F({href:O,etag:H});if(!p(r))return{ok:!1,cancelled:!0};if(_.ok){if(_.etag!==H)return{ok:!1,reason:"etag-mismatch"};i=ie(_.tag),y.persisted=!0}else if(_.code!=="no-blockeditor-state")return{ok:!1,reason:_.code}}else if(O){let F=await ar();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(y.article))return{ok:!1,reason:"stale-document"};i=F.value,y.persisted=i!==null}i=y.seedValue=i??A.seedPageFromArticle(y.article.cloneNode(!0))}catch(h){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",h),{ok:!1,reason:"invalid-blockeditor-source"}}let T=We(i);if(T)return{ok:!1,reason:T};y.tags=[i]}try{y.blocks=A.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}})(),_r(r,w),{ok:!0,source:y}}async function gr(r,l){let s=q();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,d=[...new Set(Object.values(l.blocks).map(m=>Et(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>At[m].load(),install:async(m,v)=>{if(n||await ir,!p(r)||!n)return null;let i=()=>V()?window.clay.undo.undo():a.undo(),y=()=>V()?window.clay.undo.redo():a.redo(),A={view:n,upload:C?Wt:t.upload,board:a.board,undo:i,redo:y,revise:Ee()?T=>{Ae({target:{toolId:T}})}:null};return m==="tool"&&(A.toolHost=await ur(),!p(r))?null:w.installPageFeature(A,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),fr(v)}});for(let m of d)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-UF3CIA6V.js"),te=w.setEditorActive,ee={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:d,code:f}:{ok:!1,cancelled:!0}}async function yr(r,l){let s=q();try{o=C?{spec:null,extensions:["blockeditor"],document:null}:await Re()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Ye(r,Bt.code,Bt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),le("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 d,w=!0;try{if(l.seeded){let h=ht("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:Oe()??je()},persisted:l.persisted});r.staged=h,d=h.handle}else{let h=N("blockeditor")===null;w=h,d=window.clay.live("blockeditor"),h&&(r.pageStore=N("blockeditor"))}}catch(h){return console.warn("clayjs: page plugin could not open the page store",h),{ok:!1,reason:"missing-blockeditor-store"}}try{await d.ready}catch(h){return console.warn("clayjs: page plugin could not join the page room",h),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=N("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!nr(N("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=N("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,y=null,A=async h=>{let O=await h();return i=O?.ok===!1,y?.changed(),O};g=Dt();let T=await Qr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:h=>{r.tabValue=f.yValueOf(a.ydoc),h==="lineage"?(ue()?.abandon?.("blockeditor"),Ue(r)):h==="blockeditor-full"||h==="compaction-failed"?Xr(r,h):Yr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:kt,requestExitCheckpoint:h=>bt({name:v.name,...h}),journal:T,exitClosed:()=>!ut(),registerUnsavedState:h=>(y=ct({id:h.id,isPending:()=>i||h.isPending(),flush:O=>A(()=>h.flush(O))}),y)}),r.binding=a,T&&eo(r),r.flush=h=>A(()=>a.flush(h)),zr(r),{ok:!0,store:v,handle:d}):{ok:!1,cancelled:!0}}function hr(r,l){import("../c-I62KCFMW.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 mr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=jt(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,x(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&Ue(r)}),E=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),d=null;try{d=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:()=>V()?window.clay.undo.undo():a.undo(),redo:()=>V()?window.clay.undo.redo():a.redo(),board:a.board,editable:!1,features:b,upload:C?Wt:t.upload,onAiTool:Ee()?(i,y)=>{Ae({remove:y})}:null,mediaNote:C?Kt:null,reviseTool:Ee()?i=>{Ae({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=d,r.view=d,D=import("../c-UEKJWXCB.js").then(({createPageAi:i})=>!p(r)||r.view!==d?null:(r.pageAi=i({getView:()=>r.view,store:()=>j,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ne(dr()),document.querySelector(oe)?Te().catch(()=>null):x(r,"clay:sync-applied",()=>{!W&&document.querySelector(oe)&&Te().catch(()=>null)});let w=d.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),X.pause();try{if(!s.featureIds.length)for(let i of E)i.remove();w&&c.appendChild(w)}finally{X.resume()}s.refreshView?.(d),a.attach(d);let m=a.bridge?.um;if(m){let i=L.createHistoryBridge({um:m,undo:()=>a.undo(),redo:()=>a.redo(),article:c,focus:()=>r.view?.focus?.()});I(r,i.dispose)}if(m){let i=()=>Jt(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),I(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=de(d.state);return I(r,St(d,{update:i=>{let y=de(i.state);y!==v&&(v=y,V()&&(y?r.releaseHold=window.clay.undo.hold():(r.releaseHold?.(),r.releaseHold=null)),Jt(r))}})),I(r,()=>{r.releaseHold?.(),r.releaseHold=null}),hr(r,d),u(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Br(d),r.recover=s.code.createRecoverList({binding:a,mount:d.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(d,i),onStale:()=>xe("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(d),{ok:!0,view:d,featureIds:s.featureIds}}async function wr(r,l){try{let s=await q(),{HyperMorph:c}=await pt(),f=s.blocksFromYValue(r.store.authoritative),d=s.readBack(f,document),w=s.mergePageModels(l.baseItems,d,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(d)}catch{return!1}}async function vr(r,l){let s=await q();return await wr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,d=null,w=!1,m=v=>{w||(w=!0,d&&clearTimeout(d),d=null,f?.(),f=null,c(v))};I(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),d=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 br(r,l,s){let c=await q(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),d=f.kind==="adopt",w=async()=>{let y=await gt();if(!y||!p(r))return;if(y.status.writer===null){let T=r.store.value.y,h=Object.keys(T),O=a.ydoc.clientID.toString(36),H=r.store.room?.compaction?.v===1?h.find(_=>Cr.test(_))??`u${O}-claim-0`:h.length?h[0]:`claim-${O}`,F=Object.hasOwn(T,H)?T[H]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",H],F),y.release("blockeditor")}let A;await Promise.race([yt(),new Promise(T=>{A=setTimeout(T,Nr)})]),clearTimeout(A)},m=d?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let y=ue();return!y||y.status.writer===null?!0:y.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>U({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:y=>ue()?.adopted?.("blockeditor",y,r.store.mark),notice:y=>{y.copy&&G(Lr,"warning",{actions:[{label:"Download your copy",onClick:()=>_e(y.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await vr(r,f)),!i.ok&&p(r)?Yt(r):p(r)&&await Xt(r),i):(await Xt(r),{ok:!0,outcome:"unchanged"})}async function tt(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(!Me(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(d=>!c.has(d));return f.length&&(await Promise.allSettled(f.map(d=>b.ensure(d))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function rt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{X.pause();try{for(let f of E)f.remove();s&&(s.style.visibility="")}finally{X.resume()}};return r.replaced?(c(),rr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Me(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,te?.(l.view,!0),r.inputOpen=!0,B(r),{ok:!0})}function kr(r){return r.inputOpen?(te?.(r.view,!1,{quiesce:!0}),!0):!1}function Sr(r){return r.inputOpen?(te?.(r.view,!0),!0):!1}async function Tr(r,l){let s=await tt(r,l);return s.ok?rt(r,l):s}let ot={readSource:pr,loadEditorAssets:gr,prepareAuthority:yr,mountAndAttach:mr,adoptSource:br,prepareInput:tt,openInput:rt,closeInput:kr,resumeInput:Sr,enableInput:Tr,release:r=>{r.view||Yt(r)}};return e.steps=ot,ot}async function oo(e,t={},{activate:o=!0}={}){return qt(e,ro(e,t),{activate:o})}function lr(e={},{activate:t=!0,context:o=null}={}){Ge(),me=null;let a=++ve,n={...Nt({gen:a,isCurrent:()=>a===ve&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&B(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 u=oo(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),me=Mt(n,"boot-failed"),S===n&&Ge(),me));return{inst:n,boot:u}}function sr(e={}){return lr(e).boot}function ao(e){if(S===e&&(S=null,ve+=1),le("Blockeditor-Write",null),Ve(e),tr(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,B(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,Ke(e),ze(e)}function we(e){e.sessionHeld&&(e.sessionHeld=!1,ce({replay:!1,reason:Je}))}function cr(e,{held:t=!0}={}){return{enable(){t&&(we(e),Vt(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,it())},resume(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),e.steps?.resumeInput?.(e)},dispose(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),ao(e)}}}function no(e=null,t={}){Le(Je);let{inst:o,boot:a}=lr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=cr(o,{held:!0});be.ready=a.then(()=>be.status);let u=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return u.catch(()=>{we(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:u,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?cr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:no(t,e)}}}var be={ready:null,install:sr,get status(){return S?.result??me},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?or(S):null},get settings(){return S?.settings??null}};nt(e=>{let t=S?.binding;if(!t?.filePending())return;let o=L?.acceptedPageState(e);o&&t.acceptFile(o)});C&&(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,u]of Object.entries(t)){let g=N(n);if(g)try{(n==="blockeditor"?nr(g,u):g.rebase(u,{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")));be.ready=at()?sr():null;var _o=be;export{Ut as PAGE_FULL_MESSAGE,Nr as WRITER_WAIT_MS,ro as createSteps,_o as default,Fo as modeParticipant,be as page,Fo as pageParticipant,no as preparePageSession};
@@ -1 +1 @@
1
- import{a as ie}from"../c-L4WQSC27.js";import{b as be,c as me,d as ve,e as le,g as Se}from"../c-ARO6CPMA.js";import"../c-EQ5NBOGA.js";import"../c-C7SUMNMI.js";import{a as ge}from"../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 we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var _=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let u=new URL(e||window.location.href,r);return u.protocol==="http:"||u.protocol==="https:"?u.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:_(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:u=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!_(r),s=ze(u);if(g===null){let n={ready:null,get represented(){return s},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=s.seq??0,L=0,P=0,z=f,x=v,C=0,T=!1,E=null,A=null,t=null,a=!1,h=null,d=null,c=null,b=null,k=[],O=n=>!T&&n===C;function N(n,l={}){T||typeof x!="function"||x({state:n,...l})}function $(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,c=null}function se(n,l){if(b){b.update(n);return}k.push(n),!c&&(c=Promise.all([import("../c-SMLAJASY.js"),import("../c-WOWGGNCJ.js")]).then(([i,w])=>{if(!O(l))return null;h=i.presence,b=w.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let G of k.splice(0))b.update(G);return b}).catch(()=>(c=null,null)))}function K(){if($(),!E)return;let n=E;E=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function F(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(T)return!1;let l={bytes:n.bytes,etag:_(n.etag),seq:Y(n.seq)};if(typeof l.bytes!="string"||l.bytes==="")return N("recoverable",{reason:"invalid-bytes",seq:l.seq}),!1;if(l.bytes===s.bytes&&l.etag===s.etag&&l.seq===s.seq)return!0;let i=!1;try{i=z(Object.freeze(l))===!0}catch{i=!1}return i?(s=Object.freeze(l),N("applied",{seq:s.seq,etag:s.etag}),!0):(N("recoverable",{reason:"refused",seq:l.seq,etag:l.etag}),!1)}function H(n,l){if(l==="startup")return null;let i=Math.max(n.seq??0,q);return i>0?i:null}function ae(n,l){t=n,a=!0,N("recoverable",{reason:l,seq:n.seq??null})}function U(n){T||(t={kind:n.kind,seq:Y(n.seq)},a=!1,B())}function B(){if(T||A||a||!t)return;let n=C,l=t;t=null;let i=new AbortController;A={controller:i};let w=L,G=q,D=j=>{if(A&&A.controller===i&&(A=null),!(!O(n)||i.signal.aborted)){if(j==null){ae(l,"repair-failed");return}if(L!==w||q!==G){if(P+=1,P<=Re){t=t??{kind:l.kind,seq:H(l,l.kind)},B();return}V(j.text,{kind:l.kind,seq:H(l,l.kind)},j.etag),B();return}V(j.text,l,j.etag),B()}};fetch(g,{cache:"no-store",signal:i.signal}).then(j=>j.ok?j.text().then(W=>({text:W,etag:_(j.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function V(n,l,i){let G=Me(n)??(/^W\//.test(i??"")?null:_(i))??(n===s.bytes?s.etag:null),D=l.kind==="startup"?s.seq:l.seq??s.seq;re({bytes:n,etag:G,seq:D})&&(S=!1,P=0,a=!1,N("current",{seq:s.seq,etag:s.etag}))}function o(n,l){let i={bytes:s.bytes,etag:n??s.etag,seq:l??s.seq};i.etag===s.etag&&i.seq===s.seq||(s=Object.freeze(i),N("current",{seq:s.seq,etag:s.etag}))}function p(n,l,i){let w=_(l);if(!(i!==null&&s.seq!==null&&i<=s.seq)){if(!S&&w!==null&&s.etag!==null){if(w!==s.etag){U({kind:"unmatched",seq:i});return}S=!0}if(n===s.bytes){o(w,i);return}re({bytes:n,etag:w,seq:i})&&(S=!0)}}function y(n,l){let i=n.data;if(i&&i.kind==="external-change"){typeof i.html=="string"?p(i.html,i.etag,l):U({kind:"notice",seq:l});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&U({kind:"notice",seq:l})}function R(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{N("recoverable",{reason:"bad-json"});return}if(!i||typeof i!="object"||Array.isArray(i)){N("recoverable",{reason:"bad-frame"});return}let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.type==="notification"){y(i,w);return}if(i.error){N("recoverable",{reason:"server-error",seq:w});return}if(typeof i.html!="string"){_(i.etag)?U({kind:"notice",seq:w}):N("recoverable",{reason:"bad-frame",seq:w});return}p(i.html,i.etag,w)}function Q(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{return}if(!i||typeof i!="object")return;let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.resync===!0){U({kind:"resync",seq:w});return}i.startup===!0&&U({kind:"startup",seq:null})}function M(n){if(O(n)){if(N("open",{seq:s.seq,etag:s.etag}),a){a=!1,B();return}s.bytes===null&&!m&&U({kind:"startup",seq:null})}}let I={ready:null,get represented(){return s},adopt({onSnapshot:n,onStatus:l}={}){return typeof n=="function"&&(z=n),typeof l=="function"&&(x=l),I},start(){T=!1;let n=++C;return K(),F(),t=null,a=!1,L=0,P=0,q=s.seq??0,I.ready=Se().then(l=>{if(!O(n))return I;let i=Ce(),w=Ie(),G=l.profile.streamPath(g,we,i,w),D=new be(new URL(G,window.location.origin).href,{shared:l.sharedSync,sharedData:l.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return E=D,D.onopen=()=>M(n),D.onerror=()=>{O(n)&&N("reconnecting")},D.onmessage=j=>R(j.data,n),D.addEventListener("cursor",j=>Q(j.data,n)),D.addEventListener("presence",j=>{if(!O(n))return;let W;try{W=JSON.parse(j.data)}catch{return}W&&typeof W=="object"&&!Array.isArray(W)&&se(W,n)}),I}),I},stop(){T||(T=!0,C++,K(),F(),t=null,a=!1)}};return I}var Ue="article[data-blockeditor]",Ve='section[data-type="tool"][data-id]',Ne=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Le(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),u={};try{u=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:u.rev??null,artifact:u.artifact??null,state:u.state??{},signature:JSON.stringify(u.artifact??null),invalid:!1}}function ue(e){let r=new Map,u=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!u.has(v)){if(r.has(v)){r.delete(v),u.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="blockeditor.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,u=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(u.has(m))continue;if(r.has(m)){r.delete(m),u.add(m);continue}r.set(m,g)}Ne.has(g.tagName)&&f(g)}};return f(e),r}function xe(e){let r=new Set,u=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),Ne.has(v.tagName)&&u(v)}};return u(e),r}function X(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let u=(r.defaultView??globalThis).DOMParser;if(typeof u!="function")return{ok:!1,reason:"parser"};let f=new u().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let s=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:s,toolState:s.size?ce(f):{}}}var fe=(e,r)=>{let u=ne(e),f=ne(r);return!u.invalid&&!f.invalid&&u.rev===f.rev&&u.signature===f.signature};function Te(e,{article:r,readerOpen:u=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let a=t.getAttribute("data-id");u.has(a)&&t.hasAttribute("open")!==u.get(a)&&t.toggleAttribute("open",u.get(a))}let g=Je(r),m=new Set,s=!1,S=t=>(s=!0,t.cloneNode(!0)),q=(t,a)=>{let h=xe(t);for(let d of a.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let c=xe(d);for(let b of h)if(c.has(b))return d}return null},L=(t,a)=>{for(let h of a.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,a,h=null)=>{for(let{name:d,value:c}of[...a.attributes])d===h||t.getAttribute(d)===c||(t.setAttribute(d,c),s=!0);for(let{name:d}of[...t.attributes])d===h||a.hasAttribute(d)||(t.removeAttribute(d),s=!0)},z=(t,a,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),c=d(a.childNodes[h])?a.childNodes[h]:[...a.childNodes].find(d);return c?(m.add(c),c):t.cloneNode(!0)},x=(t,a)=>{let h=[],d=[...a.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(z(O,t,k));continue}let N=A(O,t);m.add(N),h.push(N)}let c=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!c.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),s=!0}for(let k of[...t.childNodes])c.has(k)||(k.remove(),s=!0)},C=t=>{s=!0;let a=t.cloneNode(!1);return x(a,t),a},T=(t,a)=>{s=!0;let h=t.getAttribute("data-id"),d=u.has(h)?u.get(h):a.hasAttribute("open");P(t,a,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),x(t,a)},E=(t,a)=>{s=!0,P(t,a),x(t,a)};function A(t,a){let h=t.getAttribute("data-id");if(h){let c=g.get(h);return!c||m.has(c)||c===a||c.contains(a)?S(t):(m.add(c),ke(c)&&ke(t)?v(c,t)?c:S(t):c.tagName!==t.tagName?S(t):c.isEqualNode(t)?c:t.tagName==="DETAILS"?(T(c,t),c):t.tagName==="LI"?(E(c,t),c):qe.has(t.tagName)?(P(c,t),x(c,t),c):S(t))}if(qe.has(t.tagName)){let c=q(t,a);return c?(m.add(c),P(c,t),x(c,t),c):C(t)}let d=L(t,a);return d?(m.add(d),d.isEqualNode(t)?d:(s=!0,S(t))):S(t)}if(x(r,e.article),f){f.clear();for(let[t,a]of e.savedOpen)f.set(t,a)}for(let t of[...u.keys()])e.savedOpen.has(t)||u.delete(t);return{changed:s}}var je="article[data-blockeditor]",Be='section[data-type="tool"][data-id]',Ee='script[type="application/json"][merge="blockeditor"]',de=["live-at","live-by"];var Fe=(e,r)=>import("../c-2OJMOUPC.js").then(u=>u.followTocLink(e,r)),He=e=>{import("../c-CL5LSATX.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),Ge=(e,r)=>{let u=e.source.querySelector(Ee),f=r.querySelector(Ee);if(!u)return f?(f.remove(),!0):!1;if(f){let g=de.map(s=>u.getAttribute(s));return f.textContent===u.textContent&&de.every((s,S)=>f.getAttribute(s)===g[S])?!1:(f.textContent!==u.textContent&&(f.textContent=u.textContent),de.forEach((s,S)=>{g[S]===null?f.removeAttribute(s):f.setAttribute(s,g[S])}),!0)}let v=r.querySelector(je);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(u,!0),v),!0):!1};function We({doc:e,article:r,represented:u=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:s=()=>{}}){let S=new Map,q=new Map,L=new Map,P={data:{}},z=[],x=null,C=null,T=0,E=!1,A=m,t=null,a=pe(u),h=null,d=s,c=!1,b=(o,p)=>{let y=e.defaultView??globalThis;e.dispatchEvent(new y.CustomEvent(o,{detail:p}))},k=()=>{for(let o of L.values())try{o.instance?.dispose?.()}catch{}L.clear()},O=()=>x?Promise.resolve(x):(C||(C=import("../c-FQAQRXGK.js").then(({createToolHost:o})=>E?null:(x=o({store:P,mode:"view"}),x)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),N=o=>{for(let[p,y]of L){let R=o.get(p);if(!R||R.invalid||R.rev!==y.rev||R.signature!==y.signature){try{y.instance?.dispose?.()}catch{}L.delete(p)}}},$=(o,p)=>{let y=[];for(let[Q,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):y.push([Q,M]);if(!y.length)return;P.data=p??{};let R=++T;O().then(Q=>{if(!(E||!Q||R!==T))for(let[M,I]of y){if(L.has(M))continue;let n=[...r.querySelectorAll(Be)].find(l=>l.getAttribute("data-id")===M);if(n)try{let l=Q.mount(n,{id:M,artifact:I.artifact,rev:I.rev,seed:I.state??{}});L.set(M,{rev:I.rev,signature:I.signature,instance:l})}catch(l){console.warn(`clayjs: tool ${M} could not mount`,l)}}})},se=(o,p)=>{let y=L.get(o.getAttribute("data-id"));if(!y)return fe(o,p);let R=Le(p);return!R.invalid&&R.rev===y.rev&&R.signature===y.signature},K=o=>{o?.state==="current"&&(a=pe({bytes:a.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},F=o=>{Te(o,{article:r,readerOpen:S,savedOpen:q,keepTool:se}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),Ge(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let p=a.bytes?X(a.bytes,e):null;if(p?.ok)try{F(p)}catch(y){console.warn("clayjs: the reader could not restore the previous file",y)}b("clay:reader-status",{state:"blocked"})};function H(o){if(E||c)return!1;let p=X(o.bytes,e);if(!p.ok||r.querySelector(".blockeditor-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;N(p.tools);try{F(p)}catch(y){return re(y),!1}return a=pe(o),a.etag&&He(a.etag),$(p.tools,p.toolState),b("clay:reader-status",{state:"applied",etag:a.etag,seq:a.seq}),!0}let ae=()=>a.bytes===null?!1:(V.stop(),!0),U=o=>{let p=o.target;if(p.tagName!=="DETAILS"||!r.contains(p))return;let y=p.getAttribute("data-id");y&&(p.open===q.get(y)?S.delete(y):S.set(y,p.open))};e.addEventListener("toggle",U,!0),z.push(["toggle",U,!0]);let B=o=>{let p=o.target.closest?.('a[href^="#blockeditor-block-"], a[href^="#"]');!p||!r.contains(p)||!p.closest('nav[aria-label="Table of contents"]')||(o.preventDefault(),Fe(r,p.getAttribute("href")))};if(e.addEventListener("click",B),z.push(["click",B]),u){let o=X(u.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);F(o),$(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));$(ue(r),ce(e))}let V={ready:null,get represented(){return a},yieldArticle(){return E||c?!1:(T++,k(),c=!0,d(),!0)},reclaimArticle(){if(E||!c)return!1;if(d=ie(r,"reader"),c=!1,a.bytes!==null){let o=X(a.bytes,e);o.ok&&(F(o),$(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):E?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-NYJ577NL.js").then(({readerHandoff:p})=>p({stream:A,options:o,apply:H,retire:ae,yieldArticle:V.yieldArticle,reclaimArticle:V.reclaimArticle})),h)},stop(){if(E)return t;E=!0,h=null,T++,A?.stop(),A=null;for(let[o,p,y]of z)e.removeEventListener(o,p,y);z.length=0,k();try{x?.dispose()}catch{}return x=null,c||d(),c=!1,d=()=>!1,t=Object.freeze({...a}),t}};if(V.ready=Promise.resolve(V),f){let o=p=>{let y=p.detail;typeof y?.html=="string"&&(y.source&&y.source!=="disk"&&y.lane!=="saved"||H({bytes:y.html,etag:y.etag??null,seq:y.seq??null}))};f.addEventListener("clay:sync-applied",o),z.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:H,onStatus:K}):(A=Ae({documentURL:v,servedEtag:g,represented:a.bytes?a:null,onSnapshot:H,onStatus:K}),A.start());return V}function oe({represented:e=null,documentURL:r,servedEtag:u=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(je);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-blockeditor]");let s=m[0];if(s.querySelector(".blockeditor-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=X(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(s,"reader");try{return We({doc:g,article:s,represented:e,feed:v,documentURL:r,servedEtag:u,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-blockeditor]").length===1;function _e(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable"||r?.state==="reconnecting")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function $e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Xe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Ke({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,_e(),he=e?Xe(r):Qe(r),Z=e?he:Promise.resolve(null),Z)}function ct(e={}){return Ye(),Ke(e)}function ft(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ye(){ye=!0,Oe||te?.(null),$e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ft as prepareHandoff,Z as ready,ct as restart,Ke as start,Ye as stop};
1
+ import{a as ie}from"../c-L4WQSC27.js";import{b as be,c as me,d as ve,e as le,g as Se}from"../c-O3BSWMVD.js";import"../c-26W3BMWK.js";import"../c-JEWSJHMK.js";import{a as ge}from"../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 we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var _=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let u=new URL(e||window.location.href,r);return u.protocol==="http:"||u.protocol==="https:"?u.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:_(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:u=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!_(r),s=ze(u);if(g===null){let n={ready:null,get represented(){return s},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=s.seq??0,L=0,P=0,z=f,x=v,C=0,T=!1,E=null,A=null,t=null,a=!1,h=null,d=null,c=null,b=null,k=[],O=n=>!T&&n===C;function N(n,l={}){T||typeof x!="function"||x({state:n,...l})}function $(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,c=null}function se(n,l){if(b){b.update(n);return}k.push(n),!c&&(c=Promise.all([import("../c-RHYX6KUH.js"),import("../c-RC37IFYT.js")]).then(([i,w])=>{if(!O(l))return null;h=i.presence,b=w.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let G of k.splice(0))b.update(G);return b}).catch(()=>(c=null,null)))}function K(){if($(),!E)return;let n=E;E=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function F(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(T)return!1;let l={bytes:n.bytes,etag:_(n.etag),seq:Y(n.seq)};if(typeof l.bytes!="string"||l.bytes==="")return N("recoverable",{reason:"invalid-bytes",seq:l.seq}),!1;if(l.bytes===s.bytes&&l.etag===s.etag&&l.seq===s.seq)return!0;let i=!1;try{i=z(Object.freeze(l))===!0}catch{i=!1}return i?(s=Object.freeze(l),N("applied",{seq:s.seq,etag:s.etag}),!0):(N("recoverable",{reason:"refused",seq:l.seq,etag:l.etag}),!1)}function H(n,l){if(l==="startup")return null;let i=Math.max(n.seq??0,q);return i>0?i:null}function ae(n,l){t=n,a=!0,N("recoverable",{reason:l,seq:n.seq??null})}function U(n){T||(t={kind:n.kind,seq:Y(n.seq)},a=!1,B())}function B(){if(T||A||a||!t)return;let n=C,l=t;t=null;let i=new AbortController;A={controller:i};let w=L,G=q,D=j=>{if(A&&A.controller===i&&(A=null),!(!O(n)||i.signal.aborted)){if(j==null){ae(l,"repair-failed");return}if(L!==w||q!==G){if(P+=1,P<=Re){t=t??{kind:l.kind,seq:H(l,l.kind)},B();return}V(j.text,{kind:l.kind,seq:H(l,l.kind)},j.etag),B();return}V(j.text,l,j.etag),B()}};fetch(g,{cache:"no-store",signal:i.signal}).then(j=>j.ok?j.text().then(W=>({text:W,etag:_(j.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function V(n,l,i){let G=Me(n)??(/^W\//.test(i??"")?null:_(i))??(n===s.bytes?s.etag:null),D=l.kind==="startup"?s.seq:l.seq??s.seq;re({bytes:n,etag:G,seq:D})&&(S=!1,P=0,a=!1,N("current",{seq:s.seq,etag:s.etag}))}function o(n,l){let i={bytes:s.bytes,etag:n??s.etag,seq:l??s.seq};i.etag===s.etag&&i.seq===s.seq||(s=Object.freeze(i),N("current",{seq:s.seq,etag:s.etag}))}function p(n,l,i){let w=_(l);if(!(i!==null&&s.seq!==null&&i<=s.seq)){if(!S&&w!==null&&s.etag!==null){if(w!==s.etag){U({kind:"unmatched",seq:i});return}S=!0}if(n===s.bytes){o(w,i);return}re({bytes:n,etag:w,seq:i})&&(S=!0)}}function y(n,l){let i=n.data;if(i&&i.kind==="external-change"){typeof i.html=="string"?p(i.html,i.etag,l):U({kind:"notice",seq:l});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&U({kind:"notice",seq:l})}function R(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{N("recoverable",{reason:"bad-json"});return}if(!i||typeof i!="object"||Array.isArray(i)){N("recoverable",{reason:"bad-frame"});return}let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.type==="notification"){y(i,w);return}if(i.error){N("recoverable",{reason:"server-error",seq:w});return}if(typeof i.html!="string"){_(i.etag)?U({kind:"notice",seq:w}):N("recoverable",{reason:"bad-frame",seq:w});return}p(i.html,i.etag,w)}function Q(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{return}if(!i||typeof i!="object")return;let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.resync===!0){U({kind:"resync",seq:w});return}i.startup===!0&&U({kind:"startup",seq:null})}function M(n){if(O(n)){if(N("open",{seq:s.seq,etag:s.etag}),a){a=!1,B();return}s.bytes===null&&!m&&U({kind:"startup",seq:null})}}let I={ready:null,get represented(){return s},adopt({onSnapshot:n,onStatus:l}={}){return typeof n=="function"&&(z=n),typeof l=="function"&&(x=l),I},start(){T=!1;let n=++C;return K(),F(),t=null,a=!1,L=0,P=0,q=s.seq??0,I.ready=Se().then(l=>{if(!O(n))return I;let i=Ce(),w=Ie(),G=l.profile.streamPath(g,we,i,w),D=new be(new URL(G,window.location.origin).href,{shared:l.sharedSync,sharedData:l.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return E=D,D.onopen=()=>M(n),D.onerror=()=>{O(n)&&N("reconnecting")},D.onmessage=j=>R(j.data,n),D.addEventListener("cursor",j=>Q(j.data,n)),D.addEventListener("presence",j=>{if(!O(n))return;let W;try{W=JSON.parse(j.data)}catch{return}W&&typeof W=="object"&&!Array.isArray(W)&&se(W,n)}),I}),I},stop(){T||(T=!0,C++,K(),F(),t=null,a=!1)}};return I}var Ue="article[data-blockeditor]",Ve='section[data-type="tool"][data-id]',Ne=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Le(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),u={};try{u=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:u.rev??null,artifact:u.artifact??null,state:u.state??{},signature:JSON.stringify(u.artifact??null),invalid:!1}}function ue(e){let r=new Map,u=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!u.has(v)){if(r.has(v)){r.delete(v),u.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="blockeditor.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,u=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(u.has(m))continue;if(r.has(m)){r.delete(m),u.add(m);continue}r.set(m,g)}Ne.has(g.tagName)&&f(g)}};return f(e),r}function xe(e){let r=new Set,u=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),Ne.has(v.tagName)&&u(v)}};return u(e),r}function X(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let u=(r.defaultView??globalThis).DOMParser;if(typeof u!="function")return{ok:!1,reason:"parser"};let f=new u().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let s=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:s,toolState:s.size?ce(f):{}}}var fe=(e,r)=>{let u=ne(e),f=ne(r);return!u.invalid&&!f.invalid&&u.rev===f.rev&&u.signature===f.signature};function Te(e,{article:r,readerOpen:u=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let a=t.getAttribute("data-id");u.has(a)&&t.hasAttribute("open")!==u.get(a)&&t.toggleAttribute("open",u.get(a))}let g=Je(r),m=new Set,s=!1,S=t=>(s=!0,t.cloneNode(!0)),q=(t,a)=>{let h=xe(t);for(let d of a.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let c=xe(d);for(let b of h)if(c.has(b))return d}return null},L=(t,a)=>{for(let h of a.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,a,h=null)=>{for(let{name:d,value:c}of[...a.attributes])d===h||t.getAttribute(d)===c||(t.setAttribute(d,c),s=!0);for(let{name:d}of[...t.attributes])d===h||a.hasAttribute(d)||(t.removeAttribute(d),s=!0)},z=(t,a,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),c=d(a.childNodes[h])?a.childNodes[h]:[...a.childNodes].find(d);return c?(m.add(c),c):t.cloneNode(!0)},x=(t,a)=>{let h=[],d=[...a.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(z(O,t,k));continue}let N=A(O,t);m.add(N),h.push(N)}let c=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!c.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),s=!0}for(let k of[...t.childNodes])c.has(k)||(k.remove(),s=!0)},C=t=>{s=!0;let a=t.cloneNode(!1);return x(a,t),a},T=(t,a)=>{s=!0;let h=t.getAttribute("data-id"),d=u.has(h)?u.get(h):a.hasAttribute("open");P(t,a,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),x(t,a)},E=(t,a)=>{s=!0,P(t,a),x(t,a)};function A(t,a){let h=t.getAttribute("data-id");if(h){let c=g.get(h);return!c||m.has(c)||c===a||c.contains(a)?S(t):(m.add(c),ke(c)&&ke(t)?v(c,t)?c:S(t):c.tagName!==t.tagName?S(t):c.isEqualNode(t)?c:t.tagName==="DETAILS"?(T(c,t),c):t.tagName==="LI"?(E(c,t),c):qe.has(t.tagName)?(P(c,t),x(c,t),c):S(t))}if(qe.has(t.tagName)){let c=q(t,a);return c?(m.add(c),P(c,t),x(c,t),c):C(t)}let d=L(t,a);return d?(m.add(d),d.isEqualNode(t)?d:(s=!0,S(t))):S(t)}if(x(r,e.article),f){f.clear();for(let[t,a]of e.savedOpen)f.set(t,a)}for(let t of[...u.keys()])e.savedOpen.has(t)||u.delete(t);return{changed:s}}var je="article[data-blockeditor]",Be='section[data-type="tool"][data-id]',Ee='script[type="application/json"][merge="blockeditor"]',de=["live-at","live-by"];var Fe=(e,r)=>import("../c-2OJMOUPC.js").then(u=>u.followTocLink(e,r)),He=e=>{import("../c-I4ZVJZC7.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),Ge=(e,r)=>{let u=e.source.querySelector(Ee),f=r.querySelector(Ee);if(!u)return f?(f.remove(),!0):!1;if(f){let g=de.map(s=>u.getAttribute(s));return f.textContent===u.textContent&&de.every((s,S)=>f.getAttribute(s)===g[S])?!1:(f.textContent!==u.textContent&&(f.textContent=u.textContent),de.forEach((s,S)=>{g[S]===null?f.removeAttribute(s):f.setAttribute(s,g[S])}),!0)}let v=r.querySelector(je);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(u,!0),v),!0):!1};function We({doc:e,article:r,represented:u=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:s=()=>{}}){let S=new Map,q=new Map,L=new Map,P={data:{}},z=[],x=null,C=null,T=0,E=!1,A=m,t=null,a=pe(u),h=null,d=s,c=!1,b=(o,p)=>{let y=e.defaultView??globalThis;e.dispatchEvent(new y.CustomEvent(o,{detail:p}))},k=()=>{for(let o of L.values())try{o.instance?.dispose?.()}catch{}L.clear()},O=()=>x?Promise.resolve(x):(C||(C=import("../c-FQAQRXGK.js").then(({createToolHost:o})=>E?null:(x=o({store:P,mode:"view"}),x)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),N=o=>{for(let[p,y]of L){let R=o.get(p);if(!R||R.invalid||R.rev!==y.rev||R.signature!==y.signature){try{y.instance?.dispose?.()}catch{}L.delete(p)}}},$=(o,p)=>{let y=[];for(let[Q,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):y.push([Q,M]);if(!y.length)return;P.data=p??{};let R=++T;O().then(Q=>{if(!(E||!Q||R!==T))for(let[M,I]of y){if(L.has(M))continue;let n=[...r.querySelectorAll(Be)].find(l=>l.getAttribute("data-id")===M);if(n)try{let l=Q.mount(n,{id:M,artifact:I.artifact,rev:I.rev,seed:I.state??{}});L.set(M,{rev:I.rev,signature:I.signature,instance:l})}catch(l){console.warn(`clayjs: tool ${M} could not mount`,l)}}})},se=(o,p)=>{let y=L.get(o.getAttribute("data-id"));if(!y)return fe(o,p);let R=Le(p);return!R.invalid&&R.rev===y.rev&&R.signature===y.signature},K=o=>{o?.state==="current"&&(a=pe({bytes:a.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},F=o=>{Te(o,{article:r,readerOpen:S,savedOpen:q,keepTool:se}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),Ge(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let p=a.bytes?X(a.bytes,e):null;if(p?.ok)try{F(p)}catch(y){console.warn("clayjs: the reader could not restore the previous file",y)}b("clay:reader-status",{state:"blocked"})};function H(o){if(E||c)return!1;let p=X(o.bytes,e);if(!p.ok||r.querySelector(".blockeditor-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;N(p.tools);try{F(p)}catch(y){return re(y),!1}return a=pe(o),a.etag&&He(a.etag),$(p.tools,p.toolState),b("clay:reader-status",{state:"applied",etag:a.etag,seq:a.seq}),!0}let ae=()=>a.bytes===null?!1:(V.stop(),!0),U=o=>{let p=o.target;if(p.tagName!=="DETAILS"||!r.contains(p))return;let y=p.getAttribute("data-id");y&&(p.open===q.get(y)?S.delete(y):S.set(y,p.open))};e.addEventListener("toggle",U,!0),z.push(["toggle",U,!0]);let B=o=>{let p=o.target.closest?.('a[href^="#blockeditor-block-"], a[href^="#"]');!p||!r.contains(p)||!p.closest('nav[aria-label="Table of contents"]')||(o.preventDefault(),Fe(r,p.getAttribute("href")))};if(e.addEventListener("click",B),z.push(["click",B]),u){let o=X(u.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);F(o),$(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));$(ue(r),ce(e))}let V={ready:null,get represented(){return a},yieldArticle(){return E||c?!1:(T++,k(),c=!0,d(),!0)},reclaimArticle(){if(E||!c)return!1;if(d=ie(r,"reader"),c=!1,a.bytes!==null){let o=X(a.bytes,e);o.ok&&(F(o),$(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):E?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-7RJCYD4F.js").then(({readerHandoff:p})=>p({stream:A,options:o,apply:H,retire:ae,yieldArticle:V.yieldArticle,reclaimArticle:V.reclaimArticle})),h)},stop(){if(E)return t;E=!0,h=null,T++,A?.stop(),A=null;for(let[o,p,y]of z)e.removeEventListener(o,p,y);z.length=0,k();try{x?.dispose()}catch{}return x=null,c||d(),c=!1,d=()=>!1,t=Object.freeze({...a}),t}};if(V.ready=Promise.resolve(V),f){let o=p=>{let y=p.detail;typeof y?.html=="string"&&(y.source&&y.source!=="disk"&&y.lane!=="saved"||H({bytes:y.html,etag:y.etag??null,seq:y.seq??null}))};f.addEventListener("clay:sync-applied",o),z.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:H,onStatus:K}):(A=Ae({documentURL:v,servedEtag:g,represented:a.bytes?a:null,onSnapshot:H,onStatus:K}),A.start());return V}function oe({represented:e=null,documentURL:r,servedEtag:u=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(je);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-blockeditor]");let s=m[0];if(s.querySelector(".blockeditor-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=X(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(s,"reader");try{return We({doc:g,article:s,represented:e,feed:v,documentURL:r,servedEtag:u,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-blockeditor]").length===1;function _e(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable"||r?.state==="reconnecting")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function $e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Xe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Ke({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,_e(),he=e?Xe(r):Qe(r),Z=e?he:Promise.resolve(null),Z)}function ct(e={}){return Ye(),Ke(e)}function ft(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ye(){ye=!0,Oe||te?.(null),$e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ft as prepareHandoff,Z as ready,ct as restart,Ke as start,Ye as stop};