@panphora/clayjs 1.22.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) 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 +1228 -715
  11. package/dist/m/attrs/{save-freeze-MTFVVYV5.js → save-freeze-JZHKRQLR.js} +1 -1
  12. package/dist/m/{c-TV7JHSRL.js → c-24PMUJIV.js} +1 -1
  13. package/dist/m/{c-NBNRLZXO.js → c-2AYVYEI4.js} +1 -1
  14. package/dist/m/{c-VIW5X35H.js → c-2L6O5PDS.js} +1 -1
  15. package/dist/m/{c-FNIGX4FI.js → c-2RYOGUQM.js} +1 -1
  16. package/dist/m/{c-LDUNOR57.js → c-2Z22FCFK.js} +13 -25
  17. package/dist/m/{c-DKFSOJCV.js → c-2ZVOEU4M.js} +1 -1
  18. package/dist/m/{c-BJPZCWAV.js → c-37NAONZA.js} +1 -1
  19. package/dist/m/{c-CSNE5EIF.js → c-4PO3YGDC.js} +1 -1
  20. package/dist/m/{c-UWT4CXQ4.js → c-5OJ7YF2N.js} +1 -1
  21. package/dist/m/{c-CAWNFER6.js → c-5TIZ2I64.js} +1 -1
  22. package/dist/m/{c-ZO6VL2SC.js → c-5WMXEKFH.js} +1 -1
  23. package/dist/m/{c-4TWARTLS.js → c-6RDOKLN7.js} +1 -1
  24. package/dist/m/{c-6RC66MYY.js → c-6TYGD5AB.js} +1 -1
  25. package/dist/m/c-A4IP6MBC.js +1 -0
  26. package/dist/m/{c-ZAHTFCXQ.js → c-ALDVFPWL.js} +1 -1
  27. package/dist/m/{c-LV5MABYD.js → c-AYVGD6A6.js} +1 -1
  28. package/dist/m/{c-N33TPVTL.js → c-B6O7AJYG.js} +1 -1
  29. package/dist/m/{c-P3WATEDR.js → c-BCGWJYXW.js} +1 -1
  30. package/dist/m/{c-4OGEVKR3.js → c-BGKAT2FL.js} +1 -1
  31. package/dist/m/{c-N7Y52HJH.js → c-BXYSDKAN.js} +1 -1
  32. package/dist/m/c-CRPIDGXC.js +78 -0
  33. package/dist/m/c-CUMXGHVD.js +1 -0
  34. package/dist/m/{c-Q5KAQJAG.js → c-DTMZ3ZHI.js} +1 -1
  35. package/dist/m/{c-GY4ODHO2.js → c-ELYIIYRS.js} +1 -1
  36. package/dist/m/{c-67LGZ52V.js → c-FCSZ3DC5.js} +1 -1
  37. package/dist/m/{c-NLWEZYKJ.js → c-FQGHR32O.js} +1 -1
  38. package/dist/m/{c-PCEMXY2K.js → c-G4PWUDD5.js} +1 -1
  39. package/dist/m/{c-6KBKYLPO.js → c-G6COVIZB.js} +1 -1
  40. package/dist/m/c-GBTVCJXC.js +1 -0
  41. package/dist/m/c-GC2HICFJ.js +1 -0
  42. package/dist/m/{c-TMT5TL65.js → c-HCNWJE4A.js} +2 -2
  43. package/dist/m/{c-DZBZ57EE.js → c-JCOQVZYS.js} +1 -1
  44. package/dist/m/{c-FAXQU7MQ.js → c-JGHEACGK.js} +1 -1
  45. package/dist/m/{c-PWBJVHA4.js → c-JGLX6TBK.js} +1 -1
  46. package/dist/m/c-JNRKHYWO.js +1 -0
  47. package/dist/m/{c-6UEFPHHE.js → c-KDXIJEEF.js} +1 -1
  48. package/dist/m/{c-FMCPQ4VT.js → c-L4KMT7FO.js} +2 -2
  49. package/dist/m/{c-OI2BYWVV.js → c-LCYPMULG.js} +1 -1
  50. package/dist/m/{c-4RFZROCF.js → c-LIGQYZ7M.js} +4 -4
  51. package/dist/m/{c-QHVCUTJV.js → c-LKIWEPAV.js} +1 -1
  52. package/dist/m/{c-EDSPKYMA.js → c-LUXAB2XI.js} +1 -1
  53. package/dist/m/{c-DEAFCHDO.js → c-LWIDDWAR.js} +2 -2
  54. package/dist/m/c-MPSKIU2I.js +1 -0
  55. package/dist/m/{c-6PBXRWDX.js → c-NK33MMYF.js} +1 -1
  56. package/dist/m/{c-F5AER2ID.js → c-NQLWOHLH.js} +1 -1
  57. package/dist/m/{c-L7K5EXU2.js → c-NTHUTABN.js} +1 -1
  58. package/dist/m/{c-4PHDUV3H.js → c-NW54NHKE.js} +1 -1
  59. package/dist/m/{c-3AXJDL2P.js → c-OG6GFSUX.js} +1 -1
  60. package/dist/m/{c-MTQHWQC3.js → c-OKEGUICD.js} +1 -1
  61. package/dist/m/c-OPONJ2UK.js +128 -0
  62. package/dist/m/{c-LF6HNVPU.js → c-OWQWOGYI.js} +1 -1
  63. package/dist/m/{c-FDAXZ2PM.js → c-P6Q2ZTFQ.js} +1 -1
  64. package/dist/m/c-PKCCHJ5X.js +1 -0
  65. package/dist/m/c-PWJSJEJU.js +1 -0
  66. package/dist/m/{c-Z7RJANGO.js → c-PXLTUYZC.js} +1 -1
  67. package/dist/m/c-QEN6HZCA.js +1 -0
  68. package/dist/m/{c-26KVJS6J.js → c-QGAPG7OM.js} +1 -1
  69. package/dist/m/{c-HWR6GMGK.js → c-QIR5CAKM.js} +1 -1
  70. package/dist/m/{c-QJFYVCJO.js → c-QM5LXRDT.js} +1 -1
  71. package/dist/m/{c-MRURHLKV.js → c-QUGCKMWF.js} +1 -1
  72. package/dist/m/{c-KE33W4RE.js → c-QYYUVLVG.js} +1 -1
  73. package/dist/m/c-RO73MKKR.js +1 -0
  74. package/dist/m/c-SBCBXKOZ.js +26 -0
  75. package/dist/m/{c-XDVAZDUE.js → c-SGRIYOAJ.js} +1 -1
  76. package/dist/m/c-SKF5HL4I.js +4 -0
  77. package/dist/m/{c-IWTTOC2V.js → c-SRPC3VBE.js} +1 -1
  78. package/dist/m/{c-XZJ5IK6Q.js → c-T5NK2TVY.js} +1 -1
  79. package/dist/m/{c-VFES2BP5.js → c-TANBH7FI.js} +1 -1
  80. package/dist/m/{c-H6DXQEH2.js → c-THGQQDYY.js} +1 -1
  81. package/dist/m/{c-BV6FQQXM.js → c-TSBVMWAH.js} +1 -1
  82. package/dist/m/{c-QTC6VGA4.js → c-UD5JZTDL.js} +1 -1
  83. package/dist/m/{c-ZYEJLZEY.js → c-UDGEFWNU.js} +1 -1
  84. package/dist/m/{c-ZSCBEB7I.js → c-UHUNXWKN.js} +1 -1
  85. package/dist/m/{c-FWFJUU3T.js → c-VIRFF5HG.js} +1 -1
  86. package/dist/m/{c-GPTKI7AQ.js → c-VYJ7O4RI.js} +1 -1
  87. package/dist/m/{c-TUGVINJR.js → c-W5E5P2TZ.js} +1 -1
  88. package/dist/m/{c-WWE67K5Y.js → c-W7IPVCAA.js} +1 -1
  89. package/dist/m/{c-HAVGDXAL.js → c-WJ5DRBHT.js} +1 -1
  90. package/dist/m/{c-V2J5C5MT.js → c-WQZTI5P2.js} +1 -1
  91. package/dist/m/c-X5WC4PX5.js +1 -0
  92. package/dist/m/{c-ZKELCT4T.js → c-XCFQEWW6.js} +2 -2
  93. package/dist/m/c-XLQ3BDMM.js +1 -0
  94. package/dist/m/{c-FLBUYV3P.js → c-XX75FFNL.js} +1 -1
  95. package/dist/m/{c-JHJR5BQX.js → c-YK2L436K.js} +1 -1
  96. package/dist/m/{c-MEWUGR4D.js → c-YYMZWQLR.js} +1 -1
  97. package/dist/m/core/{admin-attrs-ZG7R5V3E.js → admin-attrs-U7IJNYBG.js} +1 -1
  98. package/dist/m/core/{autosave-GI3WNJYN.js → autosave-F5YQCKVL.js} +1 -1
  99. package/dist/m/core/{conflict-notice-CEI3XY6A.js → conflict-notice-42H4ASLA.js} +1 -1
  100. package/dist/m/core/{persist-3OPWJKZS.js → persist-CJXIL7D4.js} +1 -1
  101. package/dist/m/core/{save-OJ5NSLS7.js → save-ESPSQPLV.js} +1 -1
  102. package/dist/m/core/{save-core-DX3RFVO3.js → save-core-6SQHOR6W.js} +1 -1
  103. package/dist/m/core/snapshot-FJP5IJL3.js +1 -0
  104. package/dist/m/core/{unsaved-warning-HGYH7O4H.js → unsaved-warning-HNQVTA2D.js} +1 -1
  105. package/dist/m/internals/{index-V4WC44FU.js → index-NRPNDTSA.js} +1 -1
  106. package/dist/m/loader-FBDE2UAB.js +1 -0
  107. package/dist/m/manifest-1D2F5CA5.js +1 -0
  108. package/dist/m/manifest-edit-F7CC5CFD.js +1 -0
  109. package/dist/m/manifest.json +1090 -1020
  110. package/dist/m/page/{editor-BQEPCJLG.js → editor-OSKOW6RS.js} +2 -2
  111. package/dist/m/plugins/{ai-edit-45A2J6LC.js → ai-edit-VV4QTINH.js} +1 -1
  112. package/dist/m/plugins/{cms-IFTKWF4S.js → cms-H7DTMUQX.js} +1 -1
  113. package/dist/m/plugins/{indicator-IPZJ35K6.js → indicator-WVPGMOZ7.js} +1 -1
  114. package/dist/m/plugins/{live-GPQXSXSM.js → live-DCUBKXY4.js} +1 -1
  115. package/dist/m/plugins/menu-Q4MFFQ6E.js +1 -0
  116. package/dist/m/plugins/{page-BAVLWCP6.js → page-OAWUJQEL.js} +2 -2
  117. package/dist/m/plugins/{page-view-P3UGJFDZ.js → page-view-DZ26ZDDQ.js} +1 -1
  118. package/dist/m/plugins/{people-Z4RGVQAV.js → people-5XRNRP5U.js} +1 -1
  119. package/dist/m/plugins/{quickcrop-E34PUYA3.js → quickcrop-WWF5I422.js} +2 -2
  120. package/dist/m/plugins/{richclay-S4NVJYIK.js → richclay-PGOOJ4OK.js} +2 -2
  121. package/dist/m/plugins/{sortable-WJZZBM7R.js → sortable-266HY6TR.js} +1 -1
  122. package/dist/m/plugins/{source-KVN6YNTY.js → source-6BKMK4PO.js} +1 -1
  123. package/dist/m/plugins/{upgrade-KTSICB22.js → upgrade-BNZVFHMZ.js} +1 -1
  124. package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +20 -0
  125. package/dist/m/plugins/{visitor-drafts-owner-MZP45XSG.js → visitor-drafts-owner-Z5B2OQBR.js} +1 -1
  126. package/dist/m/plugins/visitor-menu-4LQMKLPP.js +1 -0
  127. package/dist/m/plugins/{wire-SYVIBNSE.js → wire-W2EV36KZ.js} +1 -1
  128. package/dist/m/{reader-core-RUIFH32Y.js → reader-core-POFQCKRV.js} +2 -2
  129. package/dist/m/sync/{live-sync-RGQMMWK2.js → live-sync-XGUPHI3I.js} +1 -1
  130. package/dist/m/ui/{index-EZGLEM5P.js → index-VGYAKAKI.js} +1 -1
  131. package/dist/offline-manifest.json +636 -570
  132. package/docs/guide.md +36 -25
  133. package/package.json +1 -1
  134. package/src/core/save-replace.js +5 -2
  135. package/src/core/serialize-steps.js +10 -2
  136. package/src/core/snapshot.js +37 -1
  137. package/src/core/upgrade-run.js +16 -2
  138. package/src/loader-logic.js +6 -2
  139. package/src/plugins/menu/dom-items.js +45 -0
  140. package/src/plugins/menu/looks.js +32 -0
  141. package/src/plugins/menu/shell-style.js +143 -0
  142. package/src/plugins/menu/shell.js +398 -0
  143. package/src/plugins/menu/style.js +15 -116
  144. package/src/plugins/menu/variants.js +56 -10
  145. package/src/plugins/menu/visitor.js +78 -0
  146. package/src/plugins/menu.js +21 -313
  147. package/src/plugins/visitor-drafts/inert.js +1 -0
  148. package/src/plugins/visitor-drafts/intro-style.js +6 -0
  149. package/src/plugins/visitor-drafts/intro.js +77 -25
  150. package/src/plugins/visitor-drafts/owner-chip.js +18 -23
  151. package/src/plugins/visitor-drafts/prompt.js +2 -2
  152. package/src/plugins/visitor-drafts/store.js +58 -5
  153. package/src/plugins/visitor-drafts.js +1 -0
  154. package/src/plugins/visitor-menu.js +13 -0
  155. package/src/sync/live-sync.js +2 -1
  156. package/src/sync/page-relay.js +2 -2
  157. package/src/ui/page-colour.js +17 -9
  158. package/dist/m/c-5AQYL27I.js +0 -1
  159. package/dist/m/c-DP4X4JID.js +0 -1
  160. package/dist/m/c-ECY5AZMH.js +0 -1
  161. package/dist/m/c-EGTIAL6P.js +0 -1
  162. package/dist/m/c-HDWZEJHM.js +0 -183
  163. package/dist/m/c-ILGQ3UXQ.js +0 -1
  164. package/dist/m/c-JFST6QE7.js +0 -1
  165. package/dist/m/c-JH5FF4NL.js +0 -20
  166. package/dist/m/c-KV7R47FR.js +0 -1
  167. package/dist/m/c-MHI3GYKF.js +0 -1
  168. package/dist/m/c-NNNR7OXA.js +0 -3
  169. package/dist/m/c-VSPAFOKU.js +0 -1
  170. package/dist/m/core/snapshot-O7II2AGG.js +0 -1
  171. package/dist/m/loader-V6VI46HU.js +0 -1
  172. package/dist/m/manifest-83C18DED.js +0 -1
  173. package/dist/m/manifest-edit-B28C1985.js +0 -1
  174. package/dist/m/plugins/menu-UN3KRCOF.js +0 -1
  175. package/dist/m/plugins/visitor-drafts-2AWNT23K.js +0 -20
  176. /package/dist/m/plugins/{quickcrop-E34PUYA3.js.LEGAL.txt → quickcrop-WWF5I422.js.LEGAL.txt} +0 -0
  177. /package/dist/m/plugins/{richclay-S4NVJYIK.js.LEGAL.txt → richclay-PGOOJ4OK.js.LEGAL.txt} +0 -0
@@ -1 +1 @@
1
- import{a}from"../c-JHJR5BQX.js";import"../c-TWCXBWS3.js";import"../c-LA2BW7UY.js";import"../c-IJUK2GPW.js";import"../c-EGTIAL6P.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as default};
1
+ import{a}from"../c-YK2L436K.js";import"../c-TWCXBWS3.js";import"../c-LA2BW7UY.js";import"../c-IJUK2GPW.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as default};
@@ -1,2 +1,2 @@
1
- import{a as u}from"./c-VJYEVRYK.js";import{B as M}from"./c-TMT5TL65.js";import{b,d as x,m as v}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var{Plugin:R}=b,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--page-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--page-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let p=o.attrs.id,d=t.nodeDOM(r);d&&i.set(p,d);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,l=`${g}
1
+ import{a as u}from"./c-VJYEVRYK.js";import{B as M}from"./c-HCNWJE4A.js";import{b,d as x,m as v}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var{Plugin:R}=b,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--page-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--page-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let p=o.attrs.id,d=t.nodeDOM(r);d&&i.set(p,d);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,l=`${g}
2
2
  ${k}`,w=this.cache.get(l);if(w)for(let h of w){let S=A(h);S&&h.content&&e.push(D.inline(r+1+h.offset,r+1+h.offset+h.content.length,{style:S}))}else{if(e.push(...c.find(r,r+o.nodeSize)),this.io&&!this.visible.has(p)||this.pending.has(l))return;this.pending.add(l),this.run(k,g).then(h=>h.flat(),()=>[]).then(h=>{this.pending.delete(l),this.cache.set(l,h),this.cache.size>H&&this.cache.delete(this.cache.keys().next().value),this.schedule(0)})}}),this.track(i);let a=o=>o.map(r=>`${r.from}:${r.to}:${r.type.attrs.style}`).join("|");a(e)!==a(u.getState(t.state).find())&&t.dispatch(t.state.tr.setMeta(u,e).setMeta("addToHistory",!1))}track(t){if(this.io){for(let[e,i]of this.targets)t.get(e)!==i&&(this.io.unobserve(i),this.targets.delete(e),this.visible.delete(e));for(let[e,i]of t)this.targets.get(e)!==i&&(this.targets.set(e,i),this.io.observe(i))}}destroy(){clearTimeout(this.timer),this.io?.disconnect()}};function j(s,{tokenize:t=P,delay:e=300}={}){let i=new y(s,t,e),c=s.dispatch.bind(s),a=s.state.doc,o=p=>{if(c(p),s.state.doc===a)return;let d={doc:a};a=s.state.doc,i.update(s,d)};s.dispatch=o;let r=i.destroy.bind(i);return i.destroy=()=>{s.dispatch===o&&(s.dispatch=c),r()},i}var f=class{constructor(t,e,i){this.node=t,this.view=e,this.getPos=i;let c=e.dom.ownerDocument;this.dom=c.createElement("pre"),this.contentDOM=c.createElement("code"),this.select=c.createElement("select"),this.select.className="page-code-lang",this.select.contentEditable="false",this.select.setAttribute("aria-label","Code language");for(let[a,o]of O)this.select.append(new Option(o,a));this.select.addEventListener("change",()=>this.setLang(this.select.value)),this.dom.append(this.select,this.contentDOM),this.render(t)}render(t){this.node=t,this.dom.dataset.id=t.attrs.id??"";let e=m(t.attrs.lang);e?this.dom.dataset.lang=e:delete this.dom.dataset.lang,this.select.value=e}setLang(t){let e=this.getPos();e==null||t===m(this.node.attrs.lang)||(this.view.dispatch(M(this.view.state.tr.setNodeMarkup(e,null,{...this.node.attrs,lang:t}))),this.view.focus())}update(t){return t.type!==this.node.type?!1:(this.render(t),!0)}stopEvent(t){return this.select.contains(t.target)}ignoreMutation(t){return t.type!=="selection"&&this.select.contains(t.target)}};function X({view:s=null,highlight:t={}}={}){let e=s?j(s,t):null;return{id:"code",nodeViews:{code_block:(i,c,a)=>new f(i,c,a)},css:null,dispose(){e?.destroy()}}}export{X as createFeature};
@@ -1 +1 @@
1
- import{c as A}from"./c-KBS3UV6B.js";import{j as b}from"./c-4RFZROCF.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-4TWARTLS.js";import"./c-Q5KAQJAG.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as x}from"./c-TMT5TL65.js";import{b as h}from"./c-QIXT3Q7C.js";import"./c-OI2BYWVV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function S(o){let s=String(o??""),n=typeof Intl<"u"&&typeof Intl.Segmenter=="function"?new Intl.Segmenter("en",{granularity:"grapheme"}):null;return n?[...n.segment(s)].map(a=>a.segment):[...s]}var I=o=>S(o).length===1&&!/^\s*$/.test(String(o??""));function L(o){let s=[];for(let[n,a]of Object.entries(o??{}))for(let u of Array.isArray(a)?a:[]){let[f,m,d=""]=u??[];typeof f!="string"||typeof m!="string"||s.push({id:`${n}:${m}`,char:f,name:`${f} ${m}`,keywords:`${m} ${d}`})}return s}var P=(o,s)=>{let n=String(s??"").trim().toLowerCase();return n?o.filter(a=>a.char===n||a.keywords.toLowerCase().includes(n)):o};function T(o=()=>import("./c-SZGYW5HT.js")){let s=null;return()=>(s??=Promise.resolve().then(()=>o()).then(n=>L(n.EMOJI)).catch(n=>{throw s=null,n}),s)}function w({view:o=null,load:s=()=>import("./c-SZGYW5HT.js")}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let n=o.dom.ownerDocument,a=T(s),u=null;function f(t){let e=o.state,r=e.selection;if(r.from!==t.from||r.to!==t.to||t.from<0||t.to>e.doc.content.size)return null;let c=e.doc.resolve(t.from),i=e.doc.resolve(t.to);return!c.parent.isTextblock||c.parent!==i.parent?null:{from:t.from,to:t.to}}function m(t){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},r=o.coordsAtPos(t.from);return{x:Math.max(8,r.left-e.left),y:r.bottom+6-e.top}}catch{return null}}function d(t){let e=t.picker.activeId();e?o.dom.setAttribute("aria-activedescendant",e):o.dom.getAttribute("aria-activedescendant")?.startsWith(t.picker.el.id)&&o.dom.removeAttribute("aria-activedescendant")}function l(){let t=u;if(t){u=null;for(let[e,r,c,i]of t.listen)e.removeEventListener(r,c,i);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function j(t,e){let r=o.state.tr.insertText(e,t.from,t.to);return r.setSelection(h.TextSelection.create(r.doc,t.from+e.length)),o.dispatch(x(r)),o.focus(),{ok:!0,emoji:e}}function p(t){let e=u;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),c=f(e);return!r||c===null||!I(r.char)?(l(),r?c===null?{ok:!1,code:"stale-target"}:{ok:!1,code:"invalid-emoji"}:{ok:!1,code:"no-emoji"}):(l(),j(c,r.char))}function E(t){let e=u;if(!e||b(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),d(e)):t.key==="Enter"?(r(),p(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),l())}async function $(t={}){l();let e={from:o.state.selection.from,to:o.state.selection.to,picker:null,listen:[]};e.picker=A({document:n,label:"Insert an emoji",empty:"No emoji found",onPick:i=>p(i)}),u=e;let r=(i,k,g,y)=>{i.addEventListener(k,g,y),e.listen.push([i,k,g,y])};r(n,"keydown",i=>E(i),!0),r(o.dom,"input",()=>l()),r(n,"mousedown",i=>{e.picker.el.contains(i.target)||l()},!0),(o.dom.parentElement??n.body).appendChild(e.picker.el);let c;try{c=await a()}catch(i){return l(),{ok:!1,code:"unavailable",error:i}}return u!==e?{ok:!1,code:"not-editing"}:f(e)===null?(l(),{ok:!1,code:"stale-target"}):(e.picker.show(P(c,t?.query),m(e)),d(e),{ok:!0,picker:!0})}return{async run(t){return $(t)},dispose(){l()}}}export{w as createFeature,L as emojiEntries,T as emojiLibrary,P as filterEmoji,S as graphemes,I as isEmojiText};
1
+ import{c as A}from"./c-KBS3UV6B.js";import{j as b}from"./c-LIGQYZ7M.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-6RDOKLN7.js";import"./c-DTMZ3ZHI.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as x}from"./c-HCNWJE4A.js";import{b as h}from"./c-QIXT3Q7C.js";import"./c-LCYPMULG.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function S(o){let s=String(o??""),n=typeof Intl<"u"&&typeof Intl.Segmenter=="function"?new Intl.Segmenter("en",{granularity:"grapheme"}):null;return n?[...n.segment(s)].map(a=>a.segment):[...s]}var I=o=>S(o).length===1&&!/^\s*$/.test(String(o??""));function L(o){let s=[];for(let[n,a]of Object.entries(o??{}))for(let u of Array.isArray(a)?a:[]){let[f,m,d=""]=u??[];typeof f!="string"||typeof m!="string"||s.push({id:`${n}:${m}`,char:f,name:`${f} ${m}`,keywords:`${m} ${d}`})}return s}var P=(o,s)=>{let n=String(s??"").trim().toLowerCase();return n?o.filter(a=>a.char===n||a.keywords.toLowerCase().includes(n)):o};function T(o=()=>import("./c-SZGYW5HT.js")){let s=null;return()=>(s??=Promise.resolve().then(()=>o()).then(n=>L(n.EMOJI)).catch(n=>{throw s=null,n}),s)}function w({view:o=null,load:s=()=>import("./c-SZGYW5HT.js")}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let n=o.dom.ownerDocument,a=T(s),u=null;function f(t){let e=o.state,r=e.selection;if(r.from!==t.from||r.to!==t.to||t.from<0||t.to>e.doc.content.size)return null;let c=e.doc.resolve(t.from),i=e.doc.resolve(t.to);return!c.parent.isTextblock||c.parent!==i.parent?null:{from:t.from,to:t.to}}function m(t){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},r=o.coordsAtPos(t.from);return{x:Math.max(8,r.left-e.left),y:r.bottom+6-e.top}}catch{return null}}function d(t){let e=t.picker.activeId();e?o.dom.setAttribute("aria-activedescendant",e):o.dom.getAttribute("aria-activedescendant")?.startsWith(t.picker.el.id)&&o.dom.removeAttribute("aria-activedescendant")}function l(){let t=u;if(t){u=null;for(let[e,r,c,i]of t.listen)e.removeEventListener(r,c,i);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function j(t,e){let r=o.state.tr.insertText(e,t.from,t.to);return r.setSelection(h.TextSelection.create(r.doc,t.from+e.length)),o.dispatch(x(r)),o.focus(),{ok:!0,emoji:e}}function p(t){let e=u;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),c=f(e);return!r||c===null||!I(r.char)?(l(),r?c===null?{ok:!1,code:"stale-target"}:{ok:!1,code:"invalid-emoji"}:{ok:!1,code:"no-emoji"}):(l(),j(c,r.char))}function E(t){let e=u;if(!e||b(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),d(e)):t.key==="Enter"?(r(),p(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),l())}async function $(t={}){l();let e={from:o.state.selection.from,to:o.state.selection.to,picker:null,listen:[]};e.picker=A({document:n,label:"Insert an emoji",empty:"No emoji found",onPick:i=>p(i)}),u=e;let r=(i,k,g,y)=>{i.addEventListener(k,g,y),e.listen.push([i,k,g,y])};r(n,"keydown",i=>E(i),!0),r(o.dom,"input",()=>l()),r(n,"mousedown",i=>{e.picker.el.contains(i.target)||l()},!0),(o.dom.parentElement??n.body).appendChild(e.picker.el);let c;try{c=await a()}catch(i){return l(),{ok:!1,code:"unavailable",error:i}}return u!==e?{ok:!1,code:"not-editing"}:f(e)===null?(l(),{ok:!1,code:"stale-target"}):(e.picker.show(P(c,t?.query),m(e)),d(e),{ok:!0,picker:!0})}return{async run(t){return $(t)},dispose(){l()}}}export{w as createFeature,L as emojiEntries,T as emojiLibrary,P as filterEmoji,S as graphemes,I as isEmojiText};
@@ -1,4 +1,4 @@
1
- import{a as Ot,c as Tt,d as Rt,e as Pt,f as be,g as $t}from"./c-JKZJIUIP.js";import{a as Z}from"./c-TCCA5BZN.js";import{a as T,b as Fe,c as Ye,d as Be,e as ke,f as Ct,g as ze,h as Mt,i as K,j as Ae,k as R,l as Lt,m as _t,n as Ve,o as ue}from"./c-3LDGIBMN.js";import{d as qt}from"./c-57XDY6HC.js";import{e as Et}from"./c-LZJPNR2W.js";import{E as Je,J as Ue,f as xt,q as Ie}from"./c-DKFSOJCV.js";import{a as We}from"./c-I2SCCUEW.js";import{e as De,f as He,j as bt,k as kt,l as At,x as St}from"./c-ZKELCT4T.js";import{a as yt}from"./c-ATKAOH23.js";import{a as Ne}from"./c-EK63G3CG.js";import{a as je,c as wt}from"./c-NQJRVJ56.js";import{e as we,k as vt}from"./c-XGH4GS2T.js";import{f as Q}from"./c-3O7OBDCM.js";import{f as mt,k as gt}from"./c-EGTIAL6P.js";var mn=new Set(["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"]),gn=/^(0|[1-9]\d*)$/,U=e=>e!==null&&typeof e=="object",ee=e=>Array.isArray(e)?"a list":"an object";function J(e,t){let r=e;for(let o of t){if(!U(r))return;Array.isArray(r)?r=r[Number(o)]:r=Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0}return r}var Se=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),yn=(e,t)=>R(e)===R(t);function jt(e,t){let r=[];try{for(let o of t){let n=Ct(e,o);n&&(r.push(n),e=n.root)}return r}catch{return Ke(r),null}}function Ke(e){let t;for(let r=e.length-1;r>=0;r--)t=ze(e[r]);return t}function vn(e,t,r){let o=[];for(let n of e){if(n.at===null||Array.isArray(n.at))return null;let s=o.find(a=>a.path.length===n.path.length&&K(a.path,n.path));if(s){if(s.removed&&n.kind!=="remove")return null;n.kind==="remove"&&(s.removed=!0);continue}if(o.some(a=>K(a.path,n.path)))return null;o.push({path:n.path,at:n.at,key:n.key,had:n.kind!=="add",old:n.old,removed:n.kind==="remove"})}for(let n of o){if(n.has=Se(n.at,n.key),n.had&&n.has&&n.removed||(n.into=J(r,n.path.slice(0,-1)),!U(n.into)||Array.isArray(n.into)||Se(n.into,n.key)!==n.had))return null;let s=n.path.slice(0,-1);for(let a of t){let i=a.op.path;if(K(n.path,i)||a.op.op==="del"&&i.length<=n.path.length&&K(i.slice(0,-1),n.path)&&Array.isArray(J(r,i.slice(0,-1))))return null;if(!n.had&&n.has&&i.length>s.length&&K(s,i)){let c=i[s.length];if(i.length===s.length+1&&a.op.op==="del"||!Se(n.at,String(c)))return null}}}return o}function wn(e,t){if(t.op==="set"){let r=J(e,t.path);if(U(r)&&U(t.value)&&Array.isArray(r)===Array.isArray(t.value)){Ae(r,T(t.value));return}}Be(e,t)}function Ge({name:e,value:t,ephemeral:r=!1}){if(!U(t))throw new TypeError(`clay.live("${e}"): the tag must hold a JSON object or list`);let o=T(t),n=null,s=T(t),a=!0,i=[],c=1,d=null,h="file",w=new Set,A=new Set,b=new Set,x=new Set,E=new Set,v=new WeakMap;function O(l,u){let f={source:l,ops:u};for(let g of[...w])try{g(f)}catch(S){console.error(`clay.live("${e}"): a change listener threw`,S)}}function I(){let l=T(o),u=[];for(let f of i)try{Ye(l,f.op),l=Be(l,f.op),u.push(f)}catch{}i=u,Ae(s,l),a=!0}function N(l){for(let u of[...b])try{u(l)}catch(f){console.error(`clay.live("${e}"): a rebase listener threw`,f)}}function se(l,{source:u="remote",confirmed:f=0,through:g,drop:S,dropIds:$,frame:V=null,room:L=null,cause:ce=null}={}){if(!U(l)||ee(l)!==ee(s))return console.warn(`clay.live("${e}"): ignored an incoming value that is not ${ee(s)}`),!1;L&&(n=L);let me=T(s),ge=o;if(o=T(l),S)i=i.filter(_=>_.id<S[0]||_.id>S[1]);else if($){let _=new Set($);i=i.filter(ye=>!_.has(ye.id))}else i=g===void 0?i.slice(f):i.filter(_=>_.id>g);return I(),N({source:u,frame:V,room:L,cause:ce,prev:ge,before:_=>J(ge,_),next:o}),Lt(me,s)||O(u,null),!0}function ie(l){let u=T(o);for(let f=l.length-1;f>=0;f--){let g=l[f];ze({...g,at:J(u,g.path.slice(0,-1))})}return u}function ae(l){for(let u of[...A])try{u(l)}catch(f){console.error(`clay.live("${e}"): a transport threw`,f)}O("local",l)}function C(l){let u=l.map(Fe);for(let f of u)if(f.path.length===0&&ee(f.value)!==ee(s))throw new TypeError(`clay.live("${e}"): the whole value must stay ${ee(s)}`);u.length===1?Ye(s,u[0]):ke(T(s),u);for(let f of u)wn(s,f);i.push(...u.map(f=>({id:c++,op:f}))),d?d.push(...u):ae(u)}function B(l,u){let f=v.get(l);f||v.set(l,f=new Map);let g=JSON.stringify(u),S=f.get(g);return S||(S=new Proxy(l,Ce(u)),f.set(g,S)),S}function Ce(l){return{get(u,f){if(Array.isArray(u)&&mn.has(f))return(...S)=>{let $=T(u),V=Array.prototype[f].apply($,S);return C([{op:"set",path:l,value:$}]),V===$?B(u,l):V};let g=u[f];return typeof f=="symbol"||!U(g)||!Object.prototype.hasOwnProperty.call(u,f)?g:B(g,[...l,Array.isArray(u)?Number(f):f])},set(u,f,g){if(typeof f=="symbol")throw new TypeError(`clay.live("${e}"): symbol keys are not JSON`);if(Array.isArray(u)){if(f==="length"){let S=T(u);return S.length=g,C([{op:"set",path:l,value:S}]),!0}if(!gn.test(f))throw new TypeError(`clay.live("${e}"): "${f}" is not a list index`);return C([{op:"set",path:[...l,Number(f)],value:g}]),!0}return C([{op:"set",path:[...l,f],value:g}]),!0},deleteProperty(u,f){if(typeof f=="symbol")return!0;if(Array.isArray(u))throw new TypeError(`clay.live("${e}"): remove a list item with splice`);return C([{op:"del",path:[...l,f]}]),!0},defineProperty(){throw new TypeError(`clay.live("${e}"): assign values instead of defining properties`)},setPrototypeOf(){return!1},preventExtensions(){return!1}}}let le=B(s,[]),X,Me=new Promise(l=>{X=l}),y=Object.freeze({name:e,ephemeral:r,ready:Me,get data(){return le},get status(){return{mode:h}},set(l,u){C([{op:"set",path:l,value:u}])},delete(l){C([{op:"del",path:l}])},add(l,u=1){C([{op:"add",path:l,n:u}])},update(l){if(typeof l!="function")throw new TypeError(`clay.live("${e}"): update() takes a function`);if(d)return l(le);d=[];let u=i.length,f=c,g;try{if(g=l(le),g&&typeof g.then=="function")throw new TypeError(`clay.live("${e}"): update() runs synchronously; do async work before calling it`)}catch($){throw d=null,i.length=u,c=f,I(),$}let S=Mt(d);return d=null,i.length=u,c=f,i.push(...S.map($=>({id:c++,op:$}))),S.length&&ae(S),g},on(l,u){if(l!=="change")throw new TypeError(`clay.live("${e}"): the only event is "change"`);if(typeof u!="function")throw new TypeError(`clay.live("${e}"): on() takes a function`);return w.add(u),()=>w.delete(u)},off(l,u){w.delete(u)},toJSON(){return T(s)}});return X(y),{handle:y,name:e,ephemeral:r,get value(){return s},get authoritative(){return o},get room(){return n},get pending(){return i.map(l=>l.op)},pendingEntries(){return i.map(l=>({id:l.id,op:l.op}))},get mark(){return c-1},setMode(l){h=l,l!=="fast"&&(n=null)},onLocal(l){return A.add(l),()=>A.delete(l)},confirm(l){let u=i.filter(f=>f.id<=l);if(u.length){try{o=ke(T(o),u.map(f=>f.op))}catch{o=T(s),a=!1}i=i.filter(f=>f.id>l);for(let f of[...x])try{f({through:l})}catch(g){console.error(`clay.live("${e}"): a confirmation listener threw`,g)}}},onConfirm(l){return x.add(l),()=>x.delete(l)},rebase:se,checkOps(l){let u;try{u=l.map(Fe)}catch{return null}let f=jt(o,u);return f?(Ke(f),u):null},rebaseOps(l,{source:u="remote",confirmed:f=0,through:g,frame:S=null,room:$=null,cause:V=null}={}){let L=jt(o,l);if(!L)return!1;let ce=g===void 0?i.slice(f):i.filter(k=>k.id>g),me=i.length-ce.length,ge=L.some(k=>k.at===null),_=a&&!ge&&me===l.length&&l.every((k,D)=>yn(k,i[D].op)),ye=a&&!_&&me===0?vn(L,ce,s):null;if(!_&&!ye)return Ke(L),se(ke(T(o),l),{source:u,confirmed:f,through:g,frame:S,room:$,cause:V});i=ce;let Le=!1;for(let k of ye??[]){let D=k.into;if(k.has){let ht=k.at[k.key];(!k.had||R(k.old)!==R(ht))&&(Le=!0);let qe=k.had?D[k.key]:void 0,ve=T(ht),hn=U(qe)&&U(ve)&&Array.isArray(qe)===Array.isArray(ve);Object.defineProperty(D,k.key,{value:hn?Ae(qe,ve):ve,enumerable:!0,writable:!0,configurable:!0})}else k.had&&(Le=!0,delete D[k.key])}let fn=null,_e=()=>fn??=ie(L),dn=L.some(k=>Array.isArray(k.at)&&k.kind!=="put"),pn=k=>{if(dn)return J(_e(),k);for(let D of L)if(K(D.path,k))return D.path.length>k.length?J(_e(),k):J(D.old,k.slice(D.path.length));return J(o,k)};return $&&(n=$),N({source:u,frame:S,room:$,cause:V,get prev(){return _e()},before:pn,next:o}),Le&&O(u,null),!0},onRebase(l){return b.add(l),()=>b.delete(l)},onDelivery(l){return E.add(l),()=>E.delete(l)},deliver(l){for(let u of[...E])try{u(l)}catch(f){console.error(`clay.live("${e}"): a delivery listener threw`,f)}}}}function Nt({needsSave:e,blocked:t,save:r,saveNow:o,now:n=()=>Date.now(),setTimer:s=setTimeout,clearTimer:a=clearTimeout}){let i=null,c=null,d=!1,h=!1,w=0;function A(v){let O=v&&!v.ok&&v.msgType==="skipped";return w=v?.ok||O?0:n()+8e3,O?1e3:8e3}function b(v){i=v,c!==null&&a(c),c=s(E,Math.max(0,v-n()))}function x(){c!==null&&a(c),c=null,i=null}async function E(){if(c=null,i=null,!e())return;if(t()){b(n()+1e3);return}d=!0;let v=null;try{v=await r()}catch{v=null}finally{d=!1}let O=A(v);e()&&b(n()+O)}return{changed(){i===null&&!d&&b(n()+8e3)},flush(){d||!e()||t()||(x(),d=!0,h=!0,Promise.resolve().then(o).catch(()=>null).then(v=>{d=!1,h=!1;let O=A(v);e()&&b(n()+O)}))},soon(){if(d)return;let v=Math.max(n(),w);(i===null||v<i)&&b(v)},within(v){if(d)return;let O=Math.max(n()+v,w);(i===null||O<i)&&b(O)},get flushing(){return h},get deadline(){return i}}}var te=[0,1e4,3e4],bn=6e3,kn=2;async function An(e){let t=globalThis.crypto&&globalThis.crypto.subtle;if(!t)return null;try{let r=new TextEncoder().encode(String(e)),o=await t.digest("SHA-256",r),n=new Uint8Array(o),s="";for(let a=0;a<n.length;a+=1)s+=n[a].toString(16).padStart(2,"0");return s}catch{return null}}function Sn(e){let t=[];for(let r of e||[]){let o=r&&r.saveId;if(typeof o=="string"&&o&&!t.includes(o)&&t.push(o),t.length>=kn)break}return t}function xn(e,t,r){return!!(e&&typeof e=="object"&&e.saveId===t&&e.requestHash===r&&e.status==="applied")}function Dt({query:e,digest:t=An,now:r=()=>Date.now(),setTimer:o=setTimeout,clearTimer:n=clearTimeout}={}){function s({captureId:a,html:i,attempts:c,initialOutcome:d,startedAt:h,onApplied:w,onUnknown:A}){let b=h+45e3,x=Sn(c),E=new Set,v=new Set,O=i,I=null,N=!1;function se(y,l){try{typeof y=="function"&&y(l)}catch(u){console.error("clayjs: save-history callback failed:",u)}}function ie(){N=!0,O=null;for(let y of E)n(y);E.clear();for(let y of v)y.abort();v.clear()}function ae(y,l){N||(ie(),se(w,{captureId:a,saveId:y,requestHash:l}))}function C(y){N||(ie(),se(A,{captureId:a,reason:y}))}function B(y,l){let u=null;return u=o(()=>{u!==null&&E.delete(u),y()},Math.max(0,l)),E.add(u),u}function Ce(y){y!==null&&(n(y),E.delete(y))}async function le(y){if(N)return;let l=b-r();if(l<=0)return;let u=new AbortController;v.add(u);let f=B(()=>u.abort(),Math.min(bn,l)),g=null;try{g=await e({saveId:y,requestHash:I,signal:u.signal})}catch{g=null}finally{Ce(f),v.delete(u)}N||xn(g,y,I)&&ae(y,I)}function X(){if(!N&&!(r()>=b))for(let y of x)le(y)}async function Me(){let y=null;try{y=await t(O)}catch{y=null}if(O=null,N)return;if(typeof y!="string"||!y){C("unavailable");return}if(I=y,d&&typeof d=="object"&&d.status==="applied"&&d.requestHash===I&&x.includes(d.saveId)){ae(d.saveId,I);return}let l=r()-h;if(l>=45e3){C("expired");return}let u=-1;for(let f=0;f<te.length;f+=1)te[f]<=l&&(u=f);if(u<0){for(let f=0;f<te.length;f+=1)B(X,h+te[f]-r());return}X();for(let f=u+1;f<te.length;f+=1)B(X,h+te[f]-r())}return B(()=>C("expired"),b-r()),Me(),{cancel(){ie()}}}return{start:s}}var En="/_/sync/data";function Wt(){return new URL(En,window.location.origin)}async function On(e,t){let r=Wt();r.searchParams.set("client-id",e);try{let o=await fetch(r.href,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","Document-URL":window.location.href,[Ne]:String(1)},body:JSON.stringify(t)}),n=null;try{n=await o.json()}catch{}let s=Number(o.headers?.get?.("Retry-After"))||0;return{status:o.status,body:n,retryAfter:s}}catch{return{status:0,body:null,retryAfter:0}}}async function Tn(e,t=null,{signal:r}={}){let o=Wt();e&&o.searchParams.set("client-id",e),t&&typeof t.epoch=="string"&&Number.isInteger(t.seq)&&o.searchParams.set("since",`${t.epoch}:${t.seq}`),o.searchParams.set("compaction","1");try{let n=await fetch(o.href,{credentials:"same-origin",cache:"no-store",headers:{"Document-URL":window.location.href,[Ne]:String(1)},signal:r});if(!n.ok){let a=null;try{a=await n.json()}catch{}return{status:n.status,code:a?.code??null,retryAfter:Number(n.headers?.get?.("Retry-After"))||0}}let s=await n.json();return s&&typeof s.epoch=="string"&&s.conn===null?null:s}catch{return null}}function It(){return{start(e){return Et({open(t){t.lane==="live"&&e.open(t)},close:()=>e.close(),event(t,r){t==="data"?e.frame(r):t==="data-state"?e.state(r):t==="data-writer"&&e.writer(r)}})},send:On,fetchState:Tn}}var Pn=()=>Promise.all([import("./c-NWX3MFT4.js"),import("./c-HG2C77BM.js")]).then(([e,t])=>({createFastLane:e.createFastLane,localTransport:t.localTransport,localLaneSupported:t.localLaneSupported})),$n=/^[A-Za-z0-9_.:-]{1,64}$/,m=new Map,Kt="save_"+[...crypto.getRandomValues(new Uint32Array(4))].map(e=>e.toString(16).padStart(8,"0")).join(""),Qe=0,Cn=0,Mn=45e3;function rt(e){let t=ue(e.getAttribute("live-at"));if(!t||t.hash!==Qn(e.textContent))return null;let r=e.getAttribute("live-by"),o=r===null?null:be(r);return r!==null&&!o?null:o&&o.v!==2?{disk:!0}:{epoch:t.epoch,seq:t.seq,frames:Rt(o),ancestors:Pt(o)}}function Ln(e,t){let r=e.leftAt;if(!r||r.disk)return null;let o=p?.pendingFrames(e.store.name,r,{reserve:t})??{frames:[],complete:!0};if(!o.complete)return null;let n=Ot(r.frames??[],o.frames),s=r.ancestors??[],a=R(e.store.value),i=JSON.stringify([r.epoch,r.seq,n,s,e.store.mark,a]);if(e.capture?.key===i)return e.capture.value;let c={v:2,frames:n,ancestors:s,capture:[Kt,Qe+1]},d=$t(c),h=d?{at:Ve(r.epoch,r.seq,a),by:d}:null;return e.capture={key:i,value:h},h}var z=new Map,F=null,q=null,H=null,_n=Dt({query:e=>vt?.(e)??null}),j=new Map;function Gt(e){if(!e.captureOps.size)return;let t=new Set(e.store.pendingEntries().map(r=>r.id));for(let[r,o]of e.captureOps)o.ids=o.ids.filter(n=>t.has(n)),o.ids.length||e.captureOps.delete(r);[...e.captureOps.values()].some(r=>r.ended)||pe(e)}var Xt=(e,t)=>F===null||!He()?!1:z.get(F)?.get(e)?.key===t;function fe(e){let t=m.get(e);if(!t||!t.captureOps.size)return[];let r=new Set(t.store.pendingEntries().map(n=>n.id)),o=new Set;for(let[n,s]of t.captureOps)if(!(!s.ended&&!Xt(e,n)))for(let a of s.ids)r.has(a)&&o.add(a);return[...o]}function ot(e){for(let[t,r]of e.captureOps)if(r.ended)return[t,r];return null}We({id:"live:held",isPending:()=>[...m.values()].some(e=>ot(e))});var Jt=e=>[...e.captureOps].some(([t,r])=>!r.ended&&Xt(e.store.name,t));function qn({op:e,path:t,n:r,value:o}){let n=t.length?t.join("."):"the whole value",s=e==="add"?`${n} + ${r}`:e==="del"?`${n} removed`:`${n} = ${JSON.stringify(o)}`;return s.length>60?`${s.slice(0,57)}...`:s}function st(e){clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,re(e)},Mn)}function pe(e){clearTimeout(e.timer),e.timer=null}function re(e,{read:t=!0}={}){let r=e.store.name,o=fe(r);if(pe(e),e.withheld=!1,e.reading=!1,en(e),o.length){let n=e.store.pendingEntries().filter(c=>o.includes(c.id)).map(c=>c.op);e.store.handle.status.mode==="file"&&(e.leftAt=null),e.store.rebase(e.store.authoritative,{source:"state",dropIds:o});let s=n.slice(0,5).map(qn).join("; "),a=n.length>5?` and ${n.length-5} more`:"",i=`A save of "${r}" ended without an answer, so ${n.length===1?"this edit was":"these edits were"} not sent again: ${s}${a}. Check the value, and redo ${n.length===1?"it":"any"} if missing.`;console.warn(`clay.live("${r}"): ${i}`,n),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-uncertain",ops:n,message:i}}))}t&&p?.release(r,{read:p.roomBound(r)})}function de(e){Gt(e);let t=e.store.name;if(e.recovery&&!Nn(e)&&en(e),!(!e.withheld||e.reading||fe(t).length)){if(!p?.roomBound(t)){e.withheld=!1,pe(e);return}e.reading=!0,st(e),p.release(t,{read:!0})}}function jn(e){let t=m.get(e);t&&(it(t),!(!t.withheld&&!t.reading)&&(t.withheld=!1,t.reading=!1,[...t.captureOps.values()].some(r=>r.ended)||pe(t)))}function Qt(){for(let e of m.values())if(e.recovery||e.historicalRefreshPending)return!0;return!1}function Nn(e){let t=new Set(e.store.pendingEntries().map(o=>o.id));return e.recovery.targets.find(({name:o})=>o===e.store.name)?.ids.some(o=>t.has(o))??!1}function Dn(e){if(!H||H.captureId!==e||typeof H.html!="string")return null;let t=[];for(let[r,o]of H.qualified)!m.get(r)||!o.length||t.push({name:r,ids:[...o],saved:H.saved.get(r)});return t.length?{captureId:e,html:H.html,targets:t}:null}function Ee(){H&&(H.html=null)}function Hn(e,t){Zt(e);let r=e.store.name;e.refreshTimer=setTimeout(()=>{if(e.refreshTimer=null,!e.historicalRefreshPending)return;let o=`The save of "${r}" that ended without an answer did happen, but the value the file holds now must load before newer edits can be saved.`;console.warn(`clay.live("${r}"): ${o}`),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-history-refresh-required",message:o}}))},Math.max(0,t-Date.now()))}function it(e){e.historicalRefreshPending&&(e.historicalRefreshPending=!1,Zt(e))}function Zt(e){e.refreshTimer!==null&&(clearTimeout(e.refreshTimer),e.refreshTimer=null)}function en(e){let t=e.recovery;t&&(e.recovery=null,!t.targets.some(r=>m.get(r.name)?.recovery===t)&&(j.delete(t.captureId),t.run?.cancel()))}function tn(e){if(e==null)return;let t=j.get(e);if(t){j.delete(e);for(let r of t.targets){let o=m.get(r.name);o&&o.recovery===t&&(o.recovery=null)}t.run?.cancel()}}function Wn(e,{result:t,attempts:r,startedAt:o}){let{captureId:n,html:s}=e,a={captureId:n,deadline:o+45e3,targets:e.targets,run:null};j.set(n,a);for(let i of e.targets){let c=m.get(i.name);pe(c),c.recovery=a}we("save-history").then(i=>{if(j.get(n)===a){if(e.html=null,!i)return Ut(n);a.run=_n.start({captureId:n,html:s,attempts:r,initialOutcome:t?.saveOutcome??null,startedAt:o,onApplied:({saveId:c,requestHash:d})=>In(n,c,d),onUnknown:({reason:c})=>Jn(n,c)})}},()=>{e.html=null,Ut(n)})}function In(e,t,r){let o=j.get(e);if(o){j.delete(e);for(let n of o.targets){let s=m.get(n.name);if(!s||s.recovery!==o)continue;s.recovery=null,s.historicalRefreshPending=!0;let a=new Set(s.store.pendingEntries().map(c=>c.id)),i=n.ids.filter(c=>a.has(c));if(s.store.rebase(JSON.parse(n.saved),{source:"state",dropIds:i}),!p){it(s);continue}p.release(s.store.name,{read:!0}),Hn(s,o.deadline)}}}function Ut(e){let t=j.get(e);if(t){j.delete(e);for(let r of t.targets){let o=m.get(r.name);if(!(!o||o.recovery!==t)){if(o.recovery=null,!p?.roomBound(o.store.name)){re(o,{read:!1});continue}o.withheld=!0,o.reading=!0,st(o),p.release(o.store.name,{read:!0})}}}}function Jn(e,t){let r=j.get(e);if(r){j.delete(e);for(let o of r.targets){let n=m.get(o.name);!n||n.recovery!==r||(n.recovery=null,re(n))}}}function Un(e,t,r){let o=e.captureOps.get(t),n=e.store.name;if(!o){e.store.handle.status.mode==="file"&&(e.leftAt=null);return}if(o.ended=!0,r?.has(n)){e.withheld=!0,e.reading=!0;return}if(!p?.roomBound(n)){re(e,{read:!1});return}e.withheld=!0,e.reading=!0,st(e),p.release(n,{read:!0})}function Ze(e){if(Array.isArray(e))return e.map(Ze);if(e===null||typeof e!="object")return e;let t={};for(let r of Object.keys(e).sort())t[r]=Ze(e[r]);return t}function at(e){try{return JSON.stringify(Ze(Z(e)))}catch{return null}}var P=null,he=()=>!P||P.admitted;function Fn(){if(!Q||!he())return!1;for(let e of m.values())if(!e.store.ephemeral){if(e.store.handle.status.mode==="fast"){if(p?.isWriter()&&e.landed<e.last)return!0}else if(e.store.pending.length>0)return!0}return!1}var et=new Set;function nn(){for(let e of[...et])e()}var M=Nt({needsSave:Fn,blocked:()=>!he()||!Ue()||Ie()||xt()||Qt(),save:()=>Je().finally(nn),saveNow:()=>De(!0,()=>Je())}),p=null,tt=!1,xe=0,Oe=null,lt=!1,W=null,ct=!1;function Re(){return[...m.values()].filter(e=>!e.store.ephemeral)}function rn(){if(!P||P.admitted||!p||p.status.stopped)return!1;for(let e of Re())if(e.store.handle.status.mode==="fast"&&e.store.pending.length>0)return!0;return!1}async function on({timeoutMs:e=5e3}={}){let t=Date.now()+e,r=()=>{for(let o of Re())o.store.handle.status.mode==="fast"&&o.store.pending.length>0&&p?.release(o.store.name)};for(r();rn();){if(Date.now()>=t)return{ok:!1,code:"timeout"};await new Promise(o=>setTimeout(o,5)),r()}return{ok:!0}}We({id:"live:writer",isPending:rn,flush:on});function Yn(){for(let e of m.values()){e.framesSince=!1;let t=e.store.pendingEntries().map(r=>r.id);t.length&&e.store.rebase(e.store.authoritative,{source:"state",dropIds:t})}}function Bn(){let e=p;p=null,tt=!1,xe++,Oe=null,W=null,lt=!1,Te=null,ut=null,ne=null,G=null,e?.stop()}function Pr(){return{id:"clay:live",order:200,prepare(e={}){if(e.initial===!0)return P||(P={admitted:!0}),Yt(P,{adopted:!0});sn();let t={admitted:!1,wantsLane:!0};return P=t,Yn(),Pe(),Yt(t)}}}function Ft(){for(let e of Re())e.store.pending.length>0&&p?.release(e.store.name)}function Yt(e,{adopted:t=!1}={}){return{enable(){t||P!==e||(e.admitted=!0,Pe(),Ft())},quiesce(){if(P===e)return e.admitted=!1,on()},resume(){P===e&&(e.admitted=!0,Ft())},dispose(){P===e&&(P=null,Bn())}}}var Te=null,ut=null,ne=null,G=null;function sn(){Te=new Promise(e=>{ne=e}),ut=new Promise(e=>{G=e})}function ft(){return Te||sn(),{laneReady:Te,writerReady:ut}}function $r(){return ft().laneReady}function Cr(){return ft().writerReady}function Bt(){for(let e of m.values())if(!e.store.ephemeral&&e.store.handle.status.mode==="fast"&&e.landed===-1){M.soon();return}M.changed()}function Xe(e,t){e.store.rebase(e.store.authoritative,{source:"state",through:t})}function dt(e,t,r=null){if(e)for(let[o,n]of e){let s=m.get(o);!s||n.mode!=="file"||(t||n.maybeLanded?Un(s,n.key,r):(s.captureOps.delete(n.key),de(s)),s.store.handle.status.mode==="fast"&&p?.release(o))}}function oe(e){let t=z.get(e);return z.delete(e),F===e&&(F=null),q===e&&(q=null),t}function an(e,t=null){let r=t??F??q;r!==null&&dt(oe(r),e)}function zn(e,t){let r=e?.code,o=r==="page-converting"||r==="page-capacity";return r==="save-already-applied"||e?.hadTimeout===!0||t!==!1&&!o&&!(e?.status>=400&&e?.status<500)}function zt(e){return{transport:e,entries:m,onWriter:()=>{M.changed(),p&&p.status.writer!==null&&G?.(p)},onApplied:Bt,onLanded:()=>{Bt(),nn()},onCheckpoint:()=>M.soon(),onLeave:(t,r)=>{let o=m.get(t);o?.store.handle.status.mode==="fast"&&(o.leftAt={...r,frames:[],ancestors:[]})},held:t=>fe(t).length>0,heldIds:fe,hold:t=>{let r=m.get(t);return r?r.recovery?!0:Jt(r)?(r.withheld=!0,!0):(re(r,{read:!1}),!1):!1},taken:jn,onStop:()=>{for(let t of m.values())it(t),!t.recovery&&(Jt(t)||re(t,{read:!1}))}}}function Vn(){let e=new Map;for(let[t,r]of Y(document,{warn:!1})){let o=m.get(t);if(o){e.set(t,{value:o.store.authoritative,ephemeral:o.store.ephemeral});continue}try{let n=Z(r.element.textContent);n!==null&&typeof n=="object"&&e.set(t,{value:n,ephemeral:r.ephemeral})}catch{}}for(let[t,r]of m)r.staged||e.set(t,{value:r.store.authoritative,ephemeral:r.store.ephemeral});return e}function Pe(){if(ft(),tt||!(P?P.admitted||P.wantsLane:Q))return;tt=!0;let e=++xe;we("live-data").then(async t=>{let r=t&&await we("live-provenance");if(e!==xe)return;Oe=t,lt=r;let o=await Pn().catch(()=>null);if(e===xe){if(!o){ne?.(null),G?.(null);return}if(t)p=o.createFastLane(zt(It()));else if(o.localLaneSupported())W=o.localTransport({seed:Vn,rooms:!0,floor:document.querySelector('meta[name="clay-page-format"]')?.getAttribute("content")}),p=o.createFastLane(zt(W));else{ne?.(null),G?.(null);return}for(let n of Y(document,{warn:!1}).keys())if(!m.has(n))try{cn(n)}catch{}for(let[n,s]of m)s.historicalRefreshPending&&p.release(n,{read:!0});p.start(),ne?.(p),p.status.writer!==null&&G?.(p)}}).catch(()=>{ne?.(null),G?.(null)})}function Kn(e){let t=(e||"").split(";")[0].trim().toLowerCase();return t==="application/json"||t.endsWith("+json")}function Y(e=document,{warn:t=!0}={}){let r=new Map,o=new Set;for(let n of e.querySelectorAll('script[merge][clay~="live"]')){if(n.hasAttribute("src")||!Kn(n.getAttribute("type")))continue;let s=n.getAttribute("merge");if($n.test(s)){if(r.has(s)){o.add(s);continue}r.set(s,{name:s,ephemeral:n.getAttribute("clay").split(/\s+/).includes("ephemeral"),element:n})}}for(let n of o)t&&console.warn(`clay.live: more than one live tag is named "${n}", so none of them is live`),r.delete(n);return r}function $e(e){return new DOMParser().parseFromString(e,"text/html")}function Gn(e){let t=e.store.handle.status.mode==="fast",r=t?e.store.authoritative:e.store.value,o=t&&/^page(\.[0-9]+)?$/.test(e.store.name)?qt(r):r;return e.layout==="lines"?Xn(o):e.layout==="pretty"?JSON.stringify(o,null,2).replace(/</g,"\\u003c"):R(o)}var Vt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Xn(e){return Vt(e)?`{${Object.entries(e).map(([r,o])=>!Vt(o)||!Object.keys(o).length?`${R(r)}:${R(o)}`:`${R(r)}:{
1
+ import{a as Ot,c as Tt,d as Rt,e as Pt,f as be,g as $t}from"./c-JKZJIUIP.js";import{a as Z}from"./c-TCCA5BZN.js";import{a as T,b as Fe,c as Ye,d as Be,e as ke,f as Ct,g as ze,h as Mt,i as K,j as Ae,k as R,l as Lt,m as _t,n as Ve,o as ue}from"./c-3LDGIBMN.js";import{d as qt}from"./c-57XDY6HC.js";import{e as Et}from"./c-LZJPNR2W.js";import{E as Je,J as Ue,f as xt,q as Ie}from"./c-2ZVOEU4M.js";import{a as We}from"./c-I2SCCUEW.js";import{e as De,f as He,j as bt,k as kt,l as At,x as St}from"./c-XCFQEWW6.js";import{a as yt}from"./c-ATKAOH23.js";import{a as Ne}from"./c-EK63G3CG.js";import{a as je,c as wt}from"./c-NQJRVJ56.js";import{e as we,k as vt}from"./c-XGH4GS2T.js";import{f as Q}from"./c-3O7OBDCM.js";import{f as mt,k as gt}from"./c-PWJSJEJU.js";var mn=new Set(["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"]),gn=/^(0|[1-9]\d*)$/,U=e=>e!==null&&typeof e=="object",ee=e=>Array.isArray(e)?"a list":"an object";function J(e,t){let r=e;for(let o of t){if(!U(r))return;Array.isArray(r)?r=r[Number(o)]:r=Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0}return r}var Se=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),yn=(e,t)=>R(e)===R(t);function jt(e,t){let r=[];try{for(let o of t){let n=Ct(e,o);n&&(r.push(n),e=n.root)}return r}catch{return Ke(r),null}}function Ke(e){let t;for(let r=e.length-1;r>=0;r--)t=ze(e[r]);return t}function vn(e,t,r){let o=[];for(let n of e){if(n.at===null||Array.isArray(n.at))return null;let s=o.find(a=>a.path.length===n.path.length&&K(a.path,n.path));if(s){if(s.removed&&n.kind!=="remove")return null;n.kind==="remove"&&(s.removed=!0);continue}if(o.some(a=>K(a.path,n.path)))return null;o.push({path:n.path,at:n.at,key:n.key,had:n.kind!=="add",old:n.old,removed:n.kind==="remove"})}for(let n of o){if(n.has=Se(n.at,n.key),n.had&&n.has&&n.removed||(n.into=J(r,n.path.slice(0,-1)),!U(n.into)||Array.isArray(n.into)||Se(n.into,n.key)!==n.had))return null;let s=n.path.slice(0,-1);for(let a of t){let i=a.op.path;if(K(n.path,i)||a.op.op==="del"&&i.length<=n.path.length&&K(i.slice(0,-1),n.path)&&Array.isArray(J(r,i.slice(0,-1))))return null;if(!n.had&&n.has&&i.length>s.length&&K(s,i)){let c=i[s.length];if(i.length===s.length+1&&a.op.op==="del"||!Se(n.at,String(c)))return null}}}return o}function wn(e,t){if(t.op==="set"){let r=J(e,t.path);if(U(r)&&U(t.value)&&Array.isArray(r)===Array.isArray(t.value)){Ae(r,T(t.value));return}}Be(e,t)}function Ge({name:e,value:t,ephemeral:r=!1}){if(!U(t))throw new TypeError(`clay.live("${e}"): the tag must hold a JSON object or list`);let o=T(t),n=null,s=T(t),a=!0,i=[],c=1,d=null,h="file",w=new Set,A=new Set,b=new Set,x=new Set,E=new Set,v=new WeakMap;function O(l,u){let f={source:l,ops:u};for(let g of[...w])try{g(f)}catch(S){console.error(`clay.live("${e}"): a change listener threw`,S)}}function I(){let l=T(o),u=[];for(let f of i)try{Ye(l,f.op),l=Be(l,f.op),u.push(f)}catch{}i=u,Ae(s,l),a=!0}function N(l){for(let u of[...b])try{u(l)}catch(f){console.error(`clay.live("${e}"): a rebase listener threw`,f)}}function se(l,{source:u="remote",confirmed:f=0,through:g,drop:S,dropIds:$,frame:V=null,room:L=null,cause:ce=null}={}){if(!U(l)||ee(l)!==ee(s))return console.warn(`clay.live("${e}"): ignored an incoming value that is not ${ee(s)}`),!1;L&&(n=L);let me=T(s),ge=o;if(o=T(l),S)i=i.filter(_=>_.id<S[0]||_.id>S[1]);else if($){let _=new Set($);i=i.filter(ye=>!_.has(ye.id))}else i=g===void 0?i.slice(f):i.filter(_=>_.id>g);return I(),N({source:u,frame:V,room:L,cause:ce,prev:ge,before:_=>J(ge,_),next:o}),Lt(me,s)||O(u,null),!0}function ie(l){let u=T(o);for(let f=l.length-1;f>=0;f--){let g=l[f];ze({...g,at:J(u,g.path.slice(0,-1))})}return u}function ae(l){for(let u of[...A])try{u(l)}catch(f){console.error(`clay.live("${e}"): a transport threw`,f)}O("local",l)}function C(l){let u=l.map(Fe);for(let f of u)if(f.path.length===0&&ee(f.value)!==ee(s))throw new TypeError(`clay.live("${e}"): the whole value must stay ${ee(s)}`);u.length===1?Ye(s,u[0]):ke(T(s),u);for(let f of u)wn(s,f);i.push(...u.map(f=>({id:c++,op:f}))),d?d.push(...u):ae(u)}function B(l,u){let f=v.get(l);f||v.set(l,f=new Map);let g=JSON.stringify(u),S=f.get(g);return S||(S=new Proxy(l,Ce(u)),f.set(g,S)),S}function Ce(l){return{get(u,f){if(Array.isArray(u)&&mn.has(f))return(...S)=>{let $=T(u),V=Array.prototype[f].apply($,S);return C([{op:"set",path:l,value:$}]),V===$?B(u,l):V};let g=u[f];return typeof f=="symbol"||!U(g)||!Object.prototype.hasOwnProperty.call(u,f)?g:B(g,[...l,Array.isArray(u)?Number(f):f])},set(u,f,g){if(typeof f=="symbol")throw new TypeError(`clay.live("${e}"): symbol keys are not JSON`);if(Array.isArray(u)){if(f==="length"){let S=T(u);return S.length=g,C([{op:"set",path:l,value:S}]),!0}if(!gn.test(f))throw new TypeError(`clay.live("${e}"): "${f}" is not a list index`);return C([{op:"set",path:[...l,Number(f)],value:g}]),!0}return C([{op:"set",path:[...l,f],value:g}]),!0},deleteProperty(u,f){if(typeof f=="symbol")return!0;if(Array.isArray(u))throw new TypeError(`clay.live("${e}"): remove a list item with splice`);return C([{op:"del",path:[...l,f]}]),!0},defineProperty(){throw new TypeError(`clay.live("${e}"): assign values instead of defining properties`)},setPrototypeOf(){return!1},preventExtensions(){return!1}}}let le=B(s,[]),X,Me=new Promise(l=>{X=l}),y=Object.freeze({name:e,ephemeral:r,ready:Me,get data(){return le},get status(){return{mode:h}},set(l,u){C([{op:"set",path:l,value:u}])},delete(l){C([{op:"del",path:l}])},add(l,u=1){C([{op:"add",path:l,n:u}])},update(l){if(typeof l!="function")throw new TypeError(`clay.live("${e}"): update() takes a function`);if(d)return l(le);d=[];let u=i.length,f=c,g;try{if(g=l(le),g&&typeof g.then=="function")throw new TypeError(`clay.live("${e}"): update() runs synchronously; do async work before calling it`)}catch($){throw d=null,i.length=u,c=f,I(),$}let S=Mt(d);return d=null,i.length=u,c=f,i.push(...S.map($=>({id:c++,op:$}))),S.length&&ae(S),g},on(l,u){if(l!=="change")throw new TypeError(`clay.live("${e}"): the only event is "change"`);if(typeof u!="function")throw new TypeError(`clay.live("${e}"): on() takes a function`);return w.add(u),()=>w.delete(u)},off(l,u){w.delete(u)},toJSON(){return T(s)}});return X(y),{handle:y,name:e,ephemeral:r,get value(){return s},get authoritative(){return o},get room(){return n},get pending(){return i.map(l=>l.op)},pendingEntries(){return i.map(l=>({id:l.id,op:l.op}))},get mark(){return c-1},setMode(l){h=l,l!=="fast"&&(n=null)},onLocal(l){return A.add(l),()=>A.delete(l)},confirm(l){let u=i.filter(f=>f.id<=l);if(u.length){try{o=ke(T(o),u.map(f=>f.op))}catch{o=T(s),a=!1}i=i.filter(f=>f.id>l);for(let f of[...x])try{f({through:l})}catch(g){console.error(`clay.live("${e}"): a confirmation listener threw`,g)}}},onConfirm(l){return x.add(l),()=>x.delete(l)},rebase:se,checkOps(l){let u;try{u=l.map(Fe)}catch{return null}let f=jt(o,u);return f?(Ke(f),u):null},rebaseOps(l,{source:u="remote",confirmed:f=0,through:g,frame:S=null,room:$=null,cause:V=null}={}){let L=jt(o,l);if(!L)return!1;let ce=g===void 0?i.slice(f):i.filter(k=>k.id>g),me=i.length-ce.length,ge=L.some(k=>k.at===null),_=a&&!ge&&me===l.length&&l.every((k,D)=>yn(k,i[D].op)),ye=a&&!_&&me===0?vn(L,ce,s):null;if(!_&&!ye)return Ke(L),se(ke(T(o),l),{source:u,confirmed:f,through:g,frame:S,room:$,cause:V});i=ce;let Le=!1;for(let k of ye??[]){let D=k.into;if(k.has){let ht=k.at[k.key];(!k.had||R(k.old)!==R(ht))&&(Le=!0);let qe=k.had?D[k.key]:void 0,ve=T(ht),hn=U(qe)&&U(ve)&&Array.isArray(qe)===Array.isArray(ve);Object.defineProperty(D,k.key,{value:hn?Ae(qe,ve):ve,enumerable:!0,writable:!0,configurable:!0})}else k.had&&(Le=!0,delete D[k.key])}let fn=null,_e=()=>fn??=ie(L),dn=L.some(k=>Array.isArray(k.at)&&k.kind!=="put"),pn=k=>{if(dn)return J(_e(),k);for(let D of L)if(K(D.path,k))return D.path.length>k.length?J(_e(),k):J(D.old,k.slice(D.path.length));return J(o,k)};return $&&(n=$),N({source:u,frame:S,room:$,cause:V,get prev(){return _e()},before:pn,next:o}),Le&&O(u,null),!0},onRebase(l){return b.add(l),()=>b.delete(l)},onDelivery(l){return E.add(l),()=>E.delete(l)},deliver(l){for(let u of[...E])try{u(l)}catch(f){console.error(`clay.live("${e}"): a delivery listener threw`,f)}}}}function Nt({needsSave:e,blocked:t,save:r,saveNow:o,now:n=()=>Date.now(),setTimer:s=setTimeout,clearTimer:a=clearTimeout}){let i=null,c=null,d=!1,h=!1,w=0;function A(v){let O=v&&!v.ok&&v.msgType==="skipped";return w=v?.ok||O?0:n()+8e3,O?1e3:8e3}function b(v){i=v,c!==null&&a(c),c=s(E,Math.max(0,v-n()))}function x(){c!==null&&a(c),c=null,i=null}async function E(){if(c=null,i=null,!e())return;if(t()){b(n()+1e3);return}d=!0;let v=null;try{v=await r()}catch{v=null}finally{d=!1}let O=A(v);e()&&b(n()+O)}return{changed(){i===null&&!d&&b(n()+8e3)},flush(){d||!e()||t()||(x(),d=!0,h=!0,Promise.resolve().then(o).catch(()=>null).then(v=>{d=!1,h=!1;let O=A(v);e()&&b(n()+O)}))},soon(){if(d)return;let v=Math.max(n(),w);(i===null||v<i)&&b(v)},within(v){if(d)return;let O=Math.max(n()+v,w);(i===null||O<i)&&b(O)},get flushing(){return h},get deadline(){return i}}}var te=[0,1e4,3e4],bn=6e3,kn=2;async function An(e){let t=globalThis.crypto&&globalThis.crypto.subtle;if(!t)return null;try{let r=new TextEncoder().encode(String(e)),o=await t.digest("SHA-256",r),n=new Uint8Array(o),s="";for(let a=0;a<n.length;a+=1)s+=n[a].toString(16).padStart(2,"0");return s}catch{return null}}function Sn(e){let t=[];for(let r of e||[]){let o=r&&r.saveId;if(typeof o=="string"&&o&&!t.includes(o)&&t.push(o),t.length>=kn)break}return t}function xn(e,t,r){return!!(e&&typeof e=="object"&&e.saveId===t&&e.requestHash===r&&e.status==="applied")}function Dt({query:e,digest:t=An,now:r=()=>Date.now(),setTimer:o=setTimeout,clearTimer:n=clearTimeout}={}){function s({captureId:a,html:i,attempts:c,initialOutcome:d,startedAt:h,onApplied:w,onUnknown:A}){let b=h+45e3,x=Sn(c),E=new Set,v=new Set,O=i,I=null,N=!1;function se(y,l){try{typeof y=="function"&&y(l)}catch(u){console.error("clayjs: save-history callback failed:",u)}}function ie(){N=!0,O=null;for(let y of E)n(y);E.clear();for(let y of v)y.abort();v.clear()}function ae(y,l){N||(ie(),se(w,{captureId:a,saveId:y,requestHash:l}))}function C(y){N||(ie(),se(A,{captureId:a,reason:y}))}function B(y,l){let u=null;return u=o(()=>{u!==null&&E.delete(u),y()},Math.max(0,l)),E.add(u),u}function Ce(y){y!==null&&(n(y),E.delete(y))}async function le(y){if(N)return;let l=b-r();if(l<=0)return;let u=new AbortController;v.add(u);let f=B(()=>u.abort(),Math.min(bn,l)),g=null;try{g=await e({saveId:y,requestHash:I,signal:u.signal})}catch{g=null}finally{Ce(f),v.delete(u)}N||xn(g,y,I)&&ae(y,I)}function X(){if(!N&&!(r()>=b))for(let y of x)le(y)}async function Me(){let y=null;try{y=await t(O)}catch{y=null}if(O=null,N)return;if(typeof y!="string"||!y){C("unavailable");return}if(I=y,d&&typeof d=="object"&&d.status==="applied"&&d.requestHash===I&&x.includes(d.saveId)){ae(d.saveId,I);return}let l=r()-h;if(l>=45e3){C("expired");return}let u=-1;for(let f=0;f<te.length;f+=1)te[f]<=l&&(u=f);if(u<0){for(let f=0;f<te.length;f+=1)B(X,h+te[f]-r());return}X();for(let f=u+1;f<te.length;f+=1)B(X,h+te[f]-r())}return B(()=>C("expired"),b-r()),Me(),{cancel(){ie()}}}return{start:s}}var En="/_/sync/data";function Wt(){return new URL(En,window.location.origin)}async function On(e,t){let r=Wt();r.searchParams.set("client-id",e);try{let o=await fetch(r.href,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","Document-URL":window.location.href,[Ne]:String(1)},body:JSON.stringify(t)}),n=null;try{n=await o.json()}catch{}let s=Number(o.headers?.get?.("Retry-After"))||0;return{status:o.status,body:n,retryAfter:s}}catch{return{status:0,body:null,retryAfter:0}}}async function Tn(e,t=null,{signal:r}={}){let o=Wt();e&&o.searchParams.set("client-id",e),t&&typeof t.epoch=="string"&&Number.isInteger(t.seq)&&o.searchParams.set("since",`${t.epoch}:${t.seq}`),o.searchParams.set("compaction","1");try{let n=await fetch(o.href,{credentials:"same-origin",cache:"no-store",headers:{"Document-URL":window.location.href,[Ne]:String(1)},signal:r});if(!n.ok){let a=null;try{a=await n.json()}catch{}return{status:n.status,code:a?.code??null,retryAfter:Number(n.headers?.get?.("Retry-After"))||0}}let s=await n.json();return s&&typeof s.epoch=="string"&&s.conn===null?null:s}catch{return null}}function It(){return{start(e){return Et({open(t){t.lane==="live"&&e.open(t)},close:()=>e.close(),event(t,r){t==="data"?e.frame(r):t==="data-state"?e.state(r):t==="data-writer"&&e.writer(r)}})},send:On,fetchState:Tn}}var Pn=()=>Promise.all([import("./c-NWX3MFT4.js"),import("./c-HG2C77BM.js")]).then(([e,t])=>({createFastLane:e.createFastLane,localTransport:t.localTransport,localLaneSupported:t.localLaneSupported})),$n=/^[A-Za-z0-9_.:-]{1,64}$/,m=new Map,Kt="save_"+[...crypto.getRandomValues(new Uint32Array(4))].map(e=>e.toString(16).padStart(8,"0")).join(""),Qe=0,Cn=0,Mn=45e3;function rt(e){let t=ue(e.getAttribute("live-at"));if(!t||t.hash!==Qn(e.textContent))return null;let r=e.getAttribute("live-by"),o=r===null?null:be(r);return r!==null&&!o?null:o&&o.v!==2?{disk:!0}:{epoch:t.epoch,seq:t.seq,frames:Rt(o),ancestors:Pt(o)}}function Ln(e,t){let r=e.leftAt;if(!r||r.disk)return null;let o=p?.pendingFrames(e.store.name,r,{reserve:t})??{frames:[],complete:!0};if(!o.complete)return null;let n=Ot(r.frames??[],o.frames),s=r.ancestors??[],a=R(e.store.value),i=JSON.stringify([r.epoch,r.seq,n,s,e.store.mark,a]);if(e.capture?.key===i)return e.capture.value;let c={v:2,frames:n,ancestors:s,capture:[Kt,Qe+1]},d=$t(c),h=d?{at:Ve(r.epoch,r.seq,a),by:d}:null;return e.capture={key:i,value:h},h}var z=new Map,F=null,q=null,H=null,_n=Dt({query:e=>vt?.(e)??null}),j=new Map;function Gt(e){if(!e.captureOps.size)return;let t=new Set(e.store.pendingEntries().map(r=>r.id));for(let[r,o]of e.captureOps)o.ids=o.ids.filter(n=>t.has(n)),o.ids.length||e.captureOps.delete(r);[...e.captureOps.values()].some(r=>r.ended)||pe(e)}var Xt=(e,t)=>F===null||!He()?!1:z.get(F)?.get(e)?.key===t;function fe(e){let t=m.get(e);if(!t||!t.captureOps.size)return[];let r=new Set(t.store.pendingEntries().map(n=>n.id)),o=new Set;for(let[n,s]of t.captureOps)if(!(!s.ended&&!Xt(e,n)))for(let a of s.ids)r.has(a)&&o.add(a);return[...o]}function ot(e){for(let[t,r]of e.captureOps)if(r.ended)return[t,r];return null}We({id:"live:held",isPending:()=>[...m.values()].some(e=>ot(e))});var Jt=e=>[...e.captureOps].some(([t,r])=>!r.ended&&Xt(e.store.name,t));function qn({op:e,path:t,n:r,value:o}){let n=t.length?t.join("."):"the whole value",s=e==="add"?`${n} + ${r}`:e==="del"?`${n} removed`:`${n} = ${JSON.stringify(o)}`;return s.length>60?`${s.slice(0,57)}...`:s}function st(e){clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,re(e)},Mn)}function pe(e){clearTimeout(e.timer),e.timer=null}function re(e,{read:t=!0}={}){let r=e.store.name,o=fe(r);if(pe(e),e.withheld=!1,e.reading=!1,en(e),o.length){let n=e.store.pendingEntries().filter(c=>o.includes(c.id)).map(c=>c.op);e.store.handle.status.mode==="file"&&(e.leftAt=null),e.store.rebase(e.store.authoritative,{source:"state",dropIds:o});let s=n.slice(0,5).map(qn).join("; "),a=n.length>5?` and ${n.length-5} more`:"",i=`A save of "${r}" ended without an answer, so ${n.length===1?"this edit was":"these edits were"} not sent again: ${s}${a}. Check the value, and redo ${n.length===1?"it":"any"} if missing.`;console.warn(`clay.live("${r}"): ${i}`,n),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-uncertain",ops:n,message:i}}))}t&&p?.release(r,{read:p.roomBound(r)})}function de(e){Gt(e);let t=e.store.name;if(e.recovery&&!Nn(e)&&en(e),!(!e.withheld||e.reading||fe(t).length)){if(!p?.roomBound(t)){e.withheld=!1,pe(e);return}e.reading=!0,st(e),p.release(t,{read:!0})}}function jn(e){let t=m.get(e);t&&(it(t),!(!t.withheld&&!t.reading)&&(t.withheld=!1,t.reading=!1,[...t.captureOps.values()].some(r=>r.ended)||pe(t)))}function Qt(){for(let e of m.values())if(e.recovery||e.historicalRefreshPending)return!0;return!1}function Nn(e){let t=new Set(e.store.pendingEntries().map(o=>o.id));return e.recovery.targets.find(({name:o})=>o===e.store.name)?.ids.some(o=>t.has(o))??!1}function Dn(e){if(!H||H.captureId!==e||typeof H.html!="string")return null;let t=[];for(let[r,o]of H.qualified)!m.get(r)||!o.length||t.push({name:r,ids:[...o],saved:H.saved.get(r)});return t.length?{captureId:e,html:H.html,targets:t}:null}function Ee(){H&&(H.html=null)}function Hn(e,t){Zt(e);let r=e.store.name;e.refreshTimer=setTimeout(()=>{if(e.refreshTimer=null,!e.historicalRefreshPending)return;let o=`The save of "${r}" that ended without an answer did happen, but the value the file holds now must load before newer edits can be saved.`;console.warn(`clay.live("${r}"): ${o}`),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-history-refresh-required",message:o}}))},Math.max(0,t-Date.now()))}function it(e){e.historicalRefreshPending&&(e.historicalRefreshPending=!1,Zt(e))}function Zt(e){e.refreshTimer!==null&&(clearTimeout(e.refreshTimer),e.refreshTimer=null)}function en(e){let t=e.recovery;t&&(e.recovery=null,!t.targets.some(r=>m.get(r.name)?.recovery===t)&&(j.delete(t.captureId),t.run?.cancel()))}function tn(e){if(e==null)return;let t=j.get(e);if(t){j.delete(e);for(let r of t.targets){let o=m.get(r.name);o&&o.recovery===t&&(o.recovery=null)}t.run?.cancel()}}function Wn(e,{result:t,attempts:r,startedAt:o}){let{captureId:n,html:s}=e,a={captureId:n,deadline:o+45e3,targets:e.targets,run:null};j.set(n,a);for(let i of e.targets){let c=m.get(i.name);pe(c),c.recovery=a}we("save-history").then(i=>{if(j.get(n)===a){if(e.html=null,!i)return Ut(n);a.run=_n.start({captureId:n,html:s,attempts:r,initialOutcome:t?.saveOutcome??null,startedAt:o,onApplied:({saveId:c,requestHash:d})=>In(n,c,d),onUnknown:({reason:c})=>Jn(n,c)})}},()=>{e.html=null,Ut(n)})}function In(e,t,r){let o=j.get(e);if(o){j.delete(e);for(let n of o.targets){let s=m.get(n.name);if(!s||s.recovery!==o)continue;s.recovery=null,s.historicalRefreshPending=!0;let a=new Set(s.store.pendingEntries().map(c=>c.id)),i=n.ids.filter(c=>a.has(c));if(s.store.rebase(JSON.parse(n.saved),{source:"state",dropIds:i}),!p){it(s);continue}p.release(s.store.name,{read:!0}),Hn(s,o.deadline)}}}function Ut(e){let t=j.get(e);if(t){j.delete(e);for(let r of t.targets){let o=m.get(r.name);if(!(!o||o.recovery!==t)){if(o.recovery=null,!p?.roomBound(o.store.name)){re(o,{read:!1});continue}o.withheld=!0,o.reading=!0,st(o),p.release(o.store.name,{read:!0})}}}}function Jn(e,t){let r=j.get(e);if(r){j.delete(e);for(let o of r.targets){let n=m.get(o.name);!n||n.recovery!==r||(n.recovery=null,re(n))}}}function Un(e,t,r){let o=e.captureOps.get(t),n=e.store.name;if(!o){e.store.handle.status.mode==="file"&&(e.leftAt=null);return}if(o.ended=!0,r?.has(n)){e.withheld=!0,e.reading=!0;return}if(!p?.roomBound(n)){re(e,{read:!1});return}e.withheld=!0,e.reading=!0,st(e),p.release(n,{read:!0})}function Ze(e){if(Array.isArray(e))return e.map(Ze);if(e===null||typeof e!="object")return e;let t={};for(let r of Object.keys(e).sort())t[r]=Ze(e[r]);return t}function at(e){try{return JSON.stringify(Ze(Z(e)))}catch{return null}}var P=null,he=()=>!P||P.admitted;function Fn(){if(!Q||!he())return!1;for(let e of m.values())if(!e.store.ephemeral){if(e.store.handle.status.mode==="fast"){if(p?.isWriter()&&e.landed<e.last)return!0}else if(e.store.pending.length>0)return!0}return!1}var et=new Set;function nn(){for(let e of[...et])e()}var M=Nt({needsSave:Fn,blocked:()=>!he()||!Ue()||Ie()||xt()||Qt(),save:()=>Je().finally(nn),saveNow:()=>De(!0,()=>Je())}),p=null,tt=!1,xe=0,Oe=null,lt=!1,W=null,ct=!1;function Re(){return[...m.values()].filter(e=>!e.store.ephemeral)}function rn(){if(!P||P.admitted||!p||p.status.stopped)return!1;for(let e of Re())if(e.store.handle.status.mode==="fast"&&e.store.pending.length>0)return!0;return!1}async function on({timeoutMs:e=5e3}={}){let t=Date.now()+e,r=()=>{for(let o of Re())o.store.handle.status.mode==="fast"&&o.store.pending.length>0&&p?.release(o.store.name)};for(r();rn();){if(Date.now()>=t)return{ok:!1,code:"timeout"};await new Promise(o=>setTimeout(o,5)),r()}return{ok:!0}}We({id:"live:writer",isPending:rn,flush:on});function Yn(){for(let e of m.values()){e.framesSince=!1;let t=e.store.pendingEntries().map(r=>r.id);t.length&&e.store.rebase(e.store.authoritative,{source:"state",dropIds:t})}}function Bn(){let e=p;p=null,tt=!1,xe++,Oe=null,W=null,lt=!1,Te=null,ut=null,ne=null,G=null,e?.stop()}function Pr(){return{id:"clay:live",order:200,prepare(e={}){if(e.initial===!0)return P||(P={admitted:!0}),Yt(P,{adopted:!0});sn();let t={admitted:!1,wantsLane:!0};return P=t,Yn(),Pe(),Yt(t)}}}function Ft(){for(let e of Re())e.store.pending.length>0&&p?.release(e.store.name)}function Yt(e,{adopted:t=!1}={}){return{enable(){t||P!==e||(e.admitted=!0,Pe(),Ft())},quiesce(){if(P===e)return e.admitted=!1,on()},resume(){P===e&&(e.admitted=!0,Ft())},dispose(){P===e&&(P=null,Bn())}}}var Te=null,ut=null,ne=null,G=null;function sn(){Te=new Promise(e=>{ne=e}),ut=new Promise(e=>{G=e})}function ft(){return Te||sn(),{laneReady:Te,writerReady:ut}}function $r(){return ft().laneReady}function Cr(){return ft().writerReady}function Bt(){for(let e of m.values())if(!e.store.ephemeral&&e.store.handle.status.mode==="fast"&&e.landed===-1){M.soon();return}M.changed()}function Xe(e,t){e.store.rebase(e.store.authoritative,{source:"state",through:t})}function dt(e,t,r=null){if(e)for(let[o,n]of e){let s=m.get(o);!s||n.mode!=="file"||(t||n.maybeLanded?Un(s,n.key,r):(s.captureOps.delete(n.key),de(s)),s.store.handle.status.mode==="fast"&&p?.release(o))}}function oe(e){let t=z.get(e);return z.delete(e),F===e&&(F=null),q===e&&(q=null),t}function an(e,t=null){let r=t??F??q;r!==null&&dt(oe(r),e)}function zn(e,t){let r=e?.code,o=r==="page-converting"||r==="page-capacity";return r==="save-already-applied"||e?.hadTimeout===!0||t!==!1&&!o&&!(e?.status>=400&&e?.status<500)}function zt(e){return{transport:e,entries:m,onWriter:()=>{M.changed(),p&&p.status.writer!==null&&G?.(p)},onApplied:Bt,onLanded:()=>{Bt(),nn()},onCheckpoint:()=>M.soon(),onLeave:(t,r)=>{let o=m.get(t);o?.store.handle.status.mode==="fast"&&(o.leftAt={...r,frames:[],ancestors:[]})},held:t=>fe(t).length>0,heldIds:fe,hold:t=>{let r=m.get(t);return r?r.recovery?!0:Jt(r)?(r.withheld=!0,!0):(re(r,{read:!1}),!1):!1},taken:jn,onStop:()=>{for(let t of m.values())it(t),!t.recovery&&(Jt(t)||re(t,{read:!1}))}}}function Vn(){let e=new Map;for(let[t,r]of Y(document,{warn:!1})){let o=m.get(t);if(o){e.set(t,{value:o.store.authoritative,ephemeral:o.store.ephemeral});continue}try{let n=Z(r.element.textContent);n!==null&&typeof n=="object"&&e.set(t,{value:n,ephemeral:r.ephemeral})}catch{}}for(let[t,r]of m)r.staged||e.set(t,{value:r.store.authoritative,ephemeral:r.store.ephemeral});return e}function Pe(){if(ft(),tt||!(P?P.admitted||P.wantsLane:Q))return;tt=!0;let e=++xe;we("live-data").then(async t=>{let r=t&&await we("live-provenance");if(e!==xe)return;Oe=t,lt=r;let o=await Pn().catch(()=>null);if(e===xe){if(!o){ne?.(null),G?.(null);return}if(t)p=o.createFastLane(zt(It()));else if(o.localLaneSupported())W=o.localTransport({seed:Vn,rooms:!0,floor:document.querySelector('meta[name="clay-page-format"]')?.getAttribute("content")}),p=o.createFastLane(zt(W));else{ne?.(null),G?.(null);return}for(let n of Y(document,{warn:!1}).keys())if(!m.has(n))try{cn(n)}catch{}for(let[n,s]of m)s.historicalRefreshPending&&p.release(n,{read:!0});p.start(),ne?.(p),p.status.writer!==null&&G?.(p)}}).catch(()=>{ne?.(null),G?.(null)})}function Kn(e){let t=(e||"").split(";")[0].trim().toLowerCase();return t==="application/json"||t.endsWith("+json")}function Y(e=document,{warn:t=!0}={}){let r=new Map,o=new Set;for(let n of e.querySelectorAll('script[merge][clay~="live"]')){if(n.hasAttribute("src")||!Kn(n.getAttribute("type")))continue;let s=n.getAttribute("merge");if($n.test(s)){if(r.has(s)){o.add(s);continue}r.set(s,{name:s,ephemeral:n.getAttribute("clay").split(/\s+/).includes("ephemeral"),element:n})}}for(let n of o)t&&console.warn(`clay.live: more than one live tag is named "${n}", so none of them is live`),r.delete(n);return r}function $e(e){return new DOMParser().parseFromString(e,"text/html")}function Gn(e){let t=e.store.handle.status.mode==="fast",r=t?e.store.authoritative:e.store.value,o=t&&/^page(\.[0-9]+)?$/.test(e.store.name)?qt(r):r;return e.layout==="lines"?Xn(o):e.layout==="pretty"?JSON.stringify(o,null,2).replace(/</g,"\\u003c"):R(o)}var Vt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Xn(e){return Vt(e)?`{${Object.entries(e).map(([r,o])=>!Vt(o)||!Object.keys(o).length?`${R(r)}:${R(o)}`:`${R(r)}:{
2
2
  ${Object.entries(o).map(([n,s])=>`${R(n)}:${R(s)}`).join(`,
3
3
  `)}
4
4
  }`).join(`,
@@ -1,2 +1,2 @@
1
- import{w as b}from"./c-4RFZROCF.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-4TWARTLS.js";import"./c-Q5KAQJAG.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{d as M}from"./c-TMT5TL65.js";import{e as x,m as f,u as k,w as g}from"./c-QIXT3Q7C.js";import{a as T}from"./c-OI2BYWVV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var $="page-step",l=t=>x.closeHistory(t).setMeta($,!0),y=(t,e)=>!!t&&Object.keys(t.type.attrs).every(r=>t.attrs[r]===e[r]);function C(t,e,r){let o=t.state,{from:n,to:a,empty:u,$from:s}=o.selection,c=o.tr;if(u)y(e.isInSet(o.storedMarks||s.marks()),r)?c.removeStoredMark(e):c.addStoredMark(e.create(r));else{let i=!0;o.doc.nodesBetween(n,a,h=>{i&&h.isText&&!y(e.isInSet(h.marks),r)&&(i=!1)}),i?c.removeMark(n,a,e):c.addMark(n,a,e.create(r))}return t.dispatch(l(c)),!0}function F(t,e){let r=t.state,o=r.tr;return r.selection.empty?o.removeStoredMark(e):o.removeMark(r.selection.from,r.selection.to,e),t.dispatch(l(o)),!0}function p(t,e){let r=t.runFormatCommand;return typeof r!="function"?Promise.resolve({status:"unsupported-host",code:"page-format-unsupported",retry:!1}):r(e)}function A(t,e,r={},{reset:o=!1}={}){let n=f.marks[e];return n?t.editable?g(t.state,n)?p(t,()=>o?F(t,n):C(t,n,r)):Promise.resolve({status:"refused",code:"mark-not-allowed"}):Promise.resolve({status:"refused",code:"not-editable"}):Promise.resolve({status:"refused",code:"unsupported-format"})}function B(t,e,r,o){let n=t.state.doc,a=()=>{if(t.isDestroyed)return!1;let s=t.state;return s.selection.from!==r||s.selection.to!==o?!1:(t.dispatch(s.tr.replaceSelection(e).scrollIntoView()),!0)},u=()=>{let s=e.content.textBetween(0,e.content.size,`
1
+ import{w as b}from"./c-LIGQYZ7M.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-6RDOKLN7.js";import"./c-DTMZ3ZHI.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{d as M}from"./c-HCNWJE4A.js";import{e as x,m as f,u as k,w as g}from"./c-QIXT3Q7C.js";import{a as T}from"./c-LCYPMULG.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var $="page-step",l=t=>x.closeHistory(t).setMeta($,!0),y=(t,e)=>!!t&&Object.keys(t.type.attrs).every(r=>t.attrs[r]===e[r]);function C(t,e,r){let o=t.state,{from:n,to:a,empty:u,$from:s}=o.selection,c=o.tr;if(u)y(e.isInSet(o.storedMarks||s.marks()),r)?c.removeStoredMark(e):c.addStoredMark(e.create(r));else{let i=!0;o.doc.nodesBetween(n,a,h=>{i&&h.isText&&!y(e.isInSet(h.marks),r)&&(i=!1)}),i?c.removeMark(n,a,e):c.addMark(n,a,e.create(r))}return t.dispatch(l(c)),!0}function F(t,e){let r=t.state,o=r.tr;return r.selection.empty?o.removeStoredMark(e):o.removeMark(r.selection.from,r.selection.to,e),t.dispatch(l(o)),!0}function p(t,e){let r=t.runFormatCommand;return typeof r!="function"?Promise.resolve({status:"unsupported-host",code:"page-format-unsupported",retry:!1}):r(e)}function A(t,e,r={},{reset:o=!1}={}){let n=f.marks[e];return n?t.editable?g(t.state,n)?p(t,()=>o?F(t,n):C(t,n,r)):Promise.resolve({status:"refused",code:"mark-not-allowed"}):Promise.resolve({status:"refused",code:"not-editable"}):Promise.resolve({status:"refused",code:"unsupported-format"})}function B(t,e,r,o){let n=t.state.doc,a=()=>{if(t.isDestroyed)return!1;let s=t.state;return s.selection.from!==r||s.selection.to!==o?!1:(t.dispatch(s.tr.replaceSelection(e).scrollIntoView()),!0)},u=()=>{let s=e.content.textBetween(0,e.content.size,`
2
2
  `," ");return!t.isDestroyed&&s&&t.state.doc===n&&t.dispatch(t.state.tr.insertText(s,r,o)),!1};p(t,a).then(s=>{s?.status!=="applied"&&(m(t,s?.message??"That format isn\u2019t available here."),u())},u)}function H(t,e,{at:r,from:o,to:n},a){let u=()=>{if(e.isDestroyed)return!1;let s=e.state,c=s.doc.nodeAt(r);if(!c||c.type!==f.nodes.paragraph||c.textContent!=='"')return a();let i=s.tr.delete(r+1,r+2).setNodeMarkup(r,f.nodes.quote,c.attrs);return e.dispatch(l(i.setMeta(t,{transform:i,from:o,to:n,text:" "}))),!0};e.runFormatCommand(u).then(s=>{s?.status!=="applied"&&(s&&m(e,S(s)),a())},a)}var N="This text can\u2019t take that format.",S=t=>t.status==="upgrade-required"?t.message:t.code==="mark-not-allowed"?N:"That format isn\u2019t available here.",m=(t,e)=>{t.isDestroyed||(M(t,e),T(e,"error"))},P=(t,e)=>{e?.status!=="applied"&&m(t,S(e??{}))},d=(t,e,r={},o=void 0)=>{A(t,e,r,o).then(n=>P(t,n))},O=(t,e)=>{p(t,e).then(r=>P(t,r))};function j(t,e,r){if(e==="underline")return d(t,e);let o=e==="text_color"?"Text":"Highlight",n=e==="text_color"?"Automatic":"No highlight";return b(t,r,[...k.map(a=>({key:`${e}_${a}`,label:`${o}: ${a[0].toUpperCase()}${a.slice(1)}`,icon:"\u25CF",run:u=>d(u,e,{color:a})})),{key:`${e}_none`,label:n,icon:"\xD7",run:a=>d(a,e,{},{reset:!0})}])}export{A as formatMark,O as gateTurn,j as nativeMenu,B as pasteFormats,H as quoteFromSpace,m as refuse,p as runFormat,d as runNative};
@@ -1,27 +1,15 @@
1
- import{a as u,b as m,c as g,d as b}from"./c-Y6F2FORL.js";import{b as v}from"./c-QY7F6EN6.js";import{b as y}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var c={draft:"You're seeing a private draft, like a visitor.",draftAction:"Edit the original",edit:"You're editing the original. Visitors get these changes.",editAction:"Back to my draft",close:"Hide this note"},k=`.clay-owner {
2
- --hcp-ground: #FDF8F0;
3
- --hcp-surface: #FFFCF6;
4
- --hcp-sunk: #F4ECDF;
5
- --hcp-ink: #2B241B;
6
- --hcp-ink-2: #4A4033;
7
- --hcp-muted: #6B5942;
8
- --hcp-line: #E8DCC6;
9
- --hcp-line-2: #D8C8AF;
10
- --hcp-brass: #8F6310;
11
- --hcp-shadow: 0 1px 2px rgba(23, 28, 36, .06), 0 14px 34px -14px rgba(43, 36, 27, .32);
1
+ import{a as u,b as m,c as b,d as k}from"./c-Y6F2FORL.js";import{b as y}from"./c-QY7F6EN6.js";import{d as v}from"./c-PKCCHJ5X.js";import{b as g}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var A=.8,c={draft:"You're seeing a private draft, like a visitor.",draftAction:"Edit the original",edit:"You're editing the original. Visitors get these changes.",editAction:"Back to my draft",close:"Hide this note"},L=`.clay-owner {
2
+ --hcp-surface: light-dark(#FFFCF6, #11131E);
3
+ --hcp-ground: var(--bevel-surface, var(--hcp-surface));
4
+ --hcp-ink: light-dark(#2B241B, #ECEAF2);
5
+ --hcp-ink-2: light-dark(#4A4033, #C9CDE0);
6
+ --hcp-muted: light-dark(#6B5942, #8A90AB);
7
+ --hcp-line-2: color-mix(in srgb, var(--hcp-ink) 22%, var(--hcp-ground));
8
+ --hcp-brass: light-dark(#8F6310, #D9A445);
9
+ --hcp-shadow: 0 1px 2px light-dark(rgba(23, 28, 36, .06), rgba(0, 0, 0, .4)), 0 14px 34px -14px light-dark(rgba(43, 36, 27, .32), rgba(0, 0, 0, .7));
12
10
  --hcp-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
13
11
  --hcp-lift: 0px;
14
- color-scheme: light;
15
- }
16
- @media (prefers-color-scheme: dark) {
17
- .clay-owner {
18
- --hcp-surface: #11131E; --hcp-sunk: #1A1D2C;
19
- --hcp-ink: #ECEAF2; --hcp-ink-2: #C9CDE0; --hcp-muted: #8A90AB;
20
- --hcp-line: #262B42; --hcp-line-2: #353B52;
21
- --hcp-brass: #D9A445;
22
- --hcp-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 16px 38px -14px rgba(0, 0, 0, .7);
23
- color-scheme: dark;
24
- }
12
+ color-scheme: light dark;
25
13
  }
26
14
  .clay-owner, .clay-owner *, .clay-owner *::before, .clay-owner *::after {
27
15
  box-sizing: border-box; margin: 0; padding: 0; border: 0;
@@ -34,8 +22,8 @@ import{a as u,b as m,c as g,d as b}from"./c-Y6F2FORL.js";import{b as v}from"./c-
34
22
  max-width: min(460px, calc(100vw - 24px));
35
23
  padding: 8px 8px 8px 12px;
36
24
  font-family: var(--hcp-sans); font-size: 13px; font-weight: 400; line-height: 1.45;
37
- color: var(--hcp-ink-2); text-align: left; background: var(--hcp-surface);
38
- border: 1px solid var(--hcp-line-2); border-left: 3px solid var(--hcp-brass);
25
+ color: var(--hcp-ink-2); text-align: left; background: var(--hcp-ground);
26
+ border: 1px solid var(--hcp-line-2);
39
27
  box-shadow: var(--hcp-shadow);
40
28
  -webkit-font-smoothing: antialiased;
41
29
  }
@@ -64,4 +52,4 @@ import{a as u,b as m,c as g,d as b}from"./c-Y6F2FORL.js";import{b as v}from"./c-
64
52
  @media (prefers-reduced-motion: reduce) { .clay-owner { transition: none; } }
65
53
  @media (forced-colors: active) { .clay-owner { border: 1px solid CanvasText; } }
66
54
  @media print { .clay-owner { display: none; } }
67
- `,C=()=>document.querySelector('clay-editor-ui[data-clay-ui="owner"]')?.shadowRoot.getElementById("clay-owner")??null;function F(){if(C())return null;let s=y,e=document.createElement("div");e.id="clay-owner",e.className="clay-owner",e.setAttribute("clay","editor-ui"),e.setAttribute("sap-ignore",""),e.setAttribute("role","status");let l=document.createElement("span");l.className="clay-owner__lead",l.textContent=s?c.draft:c.edit;let a=document.createElement("button");a.type="button",a.className="clay-owner__action",a.textContent=s?c.draftAction:c.editAction,a.addEventListener("click",()=>{let n=window.clay&&window.clay.visitorDrafts;n&&(s?n.editOriginal():n.backToDraft())});let r=document.createElement("button");r.type="button",r.className="clay-owner__x",r.setAttribute("aria-label",c.close),r.textContent="\xD7",r.addEventListener("click",()=>{f.remove(),p(),_()}),e.append(l,a,r);let f=v({name:"owner",content:e,css:[k],attributes:{"sap-ignore":""}}),i=document.createElement("style");i.id="clay-owner-vars",i.setAttribute("clay","editor-ui"),document.head.appendChild(i);let x="";function E(n){let o=`:root { --clay-owner-room: ${Math.ceil(e.getBoundingClientRect().height)+16}px; }`;i.textContent!==o&&(i.textContent=o),x!==o+n&&(x=o+n,m())}function _(){i.remove(),m()}let d=0;function t(){d||(d=requestAnimationFrame(()=>{d=0;let n=g(24,w=>e.contains(w)||w.closest("#hcp")),o=b(e.getBoundingClientRect()),h=o>=window.innerHeight/3;o&&!h&&(n=Math.max(n,o-4)),e.style.visibility=h?"hidden":"",e.style.setProperty("--hcp-lift",n+"px"),E(h?-1:n)}))}function p(){removeEventListener("scroll",t),removeEventListener("resize",t),document.removeEventListener(u,t),document.removeEventListener("transitionend",t,!0),document.removeEventListener("pointerup",t,!0),window.removeEventListener("hashchange",t)}return addEventListener("scroll",t,{passive:!0}),addEventListener("resize",t),document.addEventListener(u,t),document.addEventListener("transitionend",t,!0),document.addEventListener("pointerup",t,!0),window.addEventListener("hashchange",t),e.addEventListener("transitionend",t),t(),e.liftOff=p,e.unmount=()=>{p(),f.remove()},e}export{c as COPY,F as mountOwnerChip,C as ownerChip};
55
+ `,B=()=>document.querySelector('clay-editor-ui[data-clay-ui="owner"]')?.shadowRoot.getElementById("clay-owner")??null;function D(){if(B())return null;let l=g,e=document.createElement("div");e.id="clay-owner",e.className="clay-owner",e.setAttribute("clay","editor-ui"),e.setAttribute("sap-ignore",""),e.setAttribute("role","status");let s=document.createElement("span");s.className="clay-owner__lead",s.textContent=l?c.draft:c.edit;let a=document.createElement("button");a.type="button",a.className="clay-owner__action",a.textContent=l?c.draftAction:c.editAction,a.addEventListener("click",()=>{let n=window.clay&&window.clay.visitorDrafts;n&&(l?n.editOriginal():n.backToDraft())});let r=document.createElement("button");r.type="button",r.className="clay-owner__x",r.setAttribute("aria-label",c.close),r.textContent="\xD7",r.addEventListener("click",()=>{f.remove(),p(),_()}),e.append(s,a,r);let f=y({name:"owner",content:e,css:[L],attributes:{"sap-ignore":""}}),i=document.createElement("style");i.id="clay-owner-vars",i.setAttribute("clay","editor-ui"),document.head.appendChild(i);let x="";function E(n){let o=`:root { --clay-owner-room: ${Math.ceil(e.getBoundingClientRect().height)+16}px; }`;i.textContent!==o&&(i.textContent=o),x!==o+n&&(x=o+n,m())}function _(){i.remove(),m()}let d=0;function t(){d||(d=requestAnimationFrame(()=>{d=0;let n=b(24,w=>e.contains(w)||w.closest("#hcp")),o=k(e.getBoundingClientRect()),h=o>=window.innerHeight/3;o&&!h&&(n=Math.max(n,o-4)),e.style.visibility=h?"hidden":"",e.style.setProperty("--hcp-lift",n+"px"),E(h?-1:n)}))}function p(){C?.(),removeEventListener("scroll",t),removeEventListener("resize",t),document.removeEventListener(u,t),document.removeEventListener("transitionend",t,!0),document.removeEventListener("pointerup",t,!0),window.removeEventListener("hashchange",t)}addEventListener("scroll",t,{passive:!0}),addEventListener("resize",t),document.addEventListener(u,t),document.addEventListener("transitionend",t,!0),document.addEventListener("pointerup",t,!0),window.addEventListener("hashchange",t),e.addEventListener("transitionend",t),t();let C=v(e,e,void 0,A);return e.liftOff=p,e.unmount=()=>{p(),f.remove()},e}export{c as COPY,D as mountOwnerChip,B as ownerChip};
@@ -1 +1 @@
1
- import{a as Gt}from"./c-4ASQPRQL.js";import{a as Dt}from"./c-GQ6F6IDK.js";import{c as F}from"./c-I2SCCUEW.js";import{b as He}from"./c-5VYOWDTI.js";import{a as Wt,d as ne,e as Be,f as b,h as N}from"./c-GSRLXYWL.js";import{a as Ge,b as Qt,c as Vt,d as $t}from"./c-X5LNHET5.js";import{a as Kt}from"./c-UGHH4MB3.js";import{a as Pt}from"./c-LA2BW7UY.js";import{a as Ot,e as Rt,f as P,g as bt,h as Nt,i as Ft,l as Ut,t as qt,v as Bt,w as Ht}from"./c-ZKELCT4T.js";import{b as It,h as qe}from"./c-EK63G3CG.js";import{a as Fe,c as kt,g as Lt,h as Ue}from"./c-NQJRVJ56.js";import{a as Oe,f as Ie,h as Q}from"./c-IJUK2GPW.js";import{b as K,e as Ct,f as w}from"./c-3O7OBDCM.js";import{i as At,k as Tt}from"./c-N7JPUPGC.js";import{D as Ne,h as Re,q as be,t as _t,x as V,y as me}from"./c-EGTIAL6P.js";import{d as xt}from"./c-VG5XIN4T.js";import{a as pe}from"./c-2YYDMLNZ.js";import{d as St,e as yt,g as Et,h as wt}from"./c-HA6INT6J.js";import{k as Mt}from"./c-ICMAOOGK.js";var hn="clay:debug:autosave";function ve(){try{return localStorage.getItem(hn)==="true"}catch{return!1}}function ge(){return import("./c-CFHW5AMY.js").catch(e=>(console.warn("[autosave-debug] Failed to load the debug logger:",e),null))}function he(e,t){ve()&&ge().then(n=>n?.logSaveCheck(e,t))}function re(e,t=""){ve()&&ge().then(n=>n?.logBaseline(e,t))}function Yt(e,t){ve()&&ge().then(n=>n?.logUnloadDiffSync(e,t))}function zt(){ve()&&ge().then(e=>e?.preloadIfEnabled())}var U=Number.NEGATIVE_INFINITY;function Sn({firstDirtyAt:e=U,lastActivityAt:t=U,finishedAt:n=U,costMs:o=0}={}){let r=e??U,i=t??U,a=n??U,f=Math.min(3e4,Math.max(1200,4*o)),u=Math.max(i,a)+1500,m=Math.max(r+1e4,a+f);return Math.max(a+1200,Math.min(u,m))}function Xt({now:e=()=>Date.now(),setTimer:t=(r,i)=>setTimeout(r,i),clearTimer:n=r=>clearTimeout(r),run:o=()=>{}}={}){let r=null,i=null,a=U,f=0,u=null,m=null,c=!1,p=!1;function S(){return Sn({firstDirtyAt:r,lastActivityAt:i,finishedAt:a,costMs:f})}function y(){if(!c||p)return;let E=S();if(u!==null){if(m===E)return;n(u)}m=E,u=t(d,Math.max(0,E-e()))}function d(){if(u=null,m=null,!(!c||p)){if(e()<S()){y();return}g()}}function g(){c=!1,p=!0,r=null,i=null;let E;try{E=o()}catch{l();return}Promise.resolve(E).then(l,l)}function l(){p=!1,a=e(),c&&y()}function s({at:E=e()}={}){r===null&&(r=E),i=E,c=!0,y()}function v(){c=!0,y()}function M(E){E>0&&(f=Math.max(E,f*.8))}return{noteActivity:s,request:v,noteCost:M,dueAt:S,costEstimate:()=>f,pending:()=>c||p,running:()=>p}}be(e=>{for(let t of wt)e.removeAttribute(t)});be(e=>{for(let t of[...St,...yt,...Et])e.removeAttribute(t)});var x=null;function A(e,t="",n="",o=null){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus",e);let r=new CustomEvent(`clay:save-${e}`,{detail:{msg:t,msgType:n,timestamp:Date.now(),...o||{}}});document.dispatchEvent(r)}function nt(){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","offline")}function yn(){x=setTimeout(()=>{A("saving")},500)}window.addEventListener("offline",()=>{nt()});window.addEventListener("online",()=>{document.documentElement.getAttribute("savestatus")==="offline"&&I().then(e=>{e.msgType==="skipped"&&document.documentElement.getAttribute("savestatus")==="offline"&&document.documentElement.setAttribute("savestatus","saved")})});var q=!1,L="",C="",ie=0,Ee=new Set,D=!1,k=!1,we=!1,B=0,$e=!1;function En(){B++}function rn(){B!==0&&(B--,!(B>0)&&(fe&&(fe=!1,J=setTimeout(dt,0)),$e&&($e=!1,ke())))}function wn(){return B>0}var $=0,te=!1,ae=!1,Ae=!1;function de(e=null){return $===0||an(e)}function rt(){return te}function An(){if(te)return!0;try{let e=V({flushUndo:!1});return gt(e)?!1:e!==C}catch{return!0}}function Tn(){let e="idle",t=0;return{get phase(){return e},get open(){return e==="open"},changedWhileClosed(){return e==="quiesced"&&Be()!==t},start(){e==="idle"&&(e="open")},quiesce(){e==="open"&&(e="quiesced",t=Be(),$++)},resume(){e==="quiesced"&&(e="open",$--,!($>0)&&(Wn(),tn()))},stop(){if(e==="stopped")return;let n=e==="quiesced";(n||e==="open")&&An()&&(Ae=!0),e="stopped",n&&($--,$===0&&tn())}}}var jt=!1,oe=null,Ye=null,ze=!1;function Ir(e=R){if(!oe||oe.generation!==e)return null;let{bytes:t,etag:n}=oe;return{bytes:t,etag:n}}function Rr({represented:e}={}){let t=b(),{forComparison:n,forDirty:o}=me(),r=typeof e?.etag=="string"&&e.etag?e.etag:null;return!(ze&&r!==null&&r!==Ye)&&Ae&&(n!==L||o!==C)?{ok:!1,code:"pending-input"}:(Ae=!1,ue(n,o),W=n,Z=!1,pt=!0,Ye=r,ze=!0,N(t),document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:baseline-settled")),{ok:!0})}var ot=Promise.resolve(!1),Te=!1,Cn=()=>(Te=!0,Lt().catch(()=>!1).then(e=>(Te=!1,e)));function br(){return{id:"clay:save",order:10,prepare(e={}){let t=Tn();return e.initial===!0&&t.start(),{enable(){ot=Cn();let n=e.represented?.etag;typeof n=="string"&&n&&kt(n),e.initial!==!0&&(Mn(),t.start())},quiesce:()=>t.quiesce(),resume:()=>t.resume(),dispose:()=>t.stop()}}}}function Mn(){jt||(jt=!0,Wt(),Oe(),vn(),gn())}var O=0,Xe=!1,Ce=!1,st="Waiting for the AI edit to be kept or reverted",Y=new Map;function Nr(e=st){O++,Y.set(e,(Y.get(e)||0)+1)}function Fr({replay:e=!0,reason:t=st}={}){let n=Y.get(t)||0;if(n===0||(n===1?Y.delete(t):Y.set(t,n-1),O--,O>0))return;let o=Xe,r=Ce;Xe=!1,Ce=!1,e&&(o?I():r&&ke())}function Ur(){return O>0}function it(){return O===0?null:Y.keys().next().value||st}function on(e,t){if(O===0)return!1;Xe=!0,Q();let n=h(it());return e(n),t(n),n}var H=!1,se=null;function xn(e){se=e??null,!H&&(H=!0,En())}function Pn(){H&&(H=!1,se=null,rn())}function je(){return H}function qr(e){if(!H||se&&e!==se)return;H=!1,se=null,!He()&&ne()||(document.documentElement.getAttribute("savestatus")==="conflict"&&document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:save-conflict-resolved",{detail:{timestamp:Date.now()}}))),document.dispatchEvent(new CustomEvent("clay:save-conflict-released",{detail:{etag:e??null}})),rn()}function h(e){return{ok:!1,msg:e,msgType:"skipped",code:null,etag:null}}function at(e){return(ne()||F())&&(te=!0),h(e)}function sn(){return{ok:!1,msg:"You are not allowed to save this document.",msgType:"forbidden",code:"forbidden",status:403,sent:!1,etag:null}}function ut(){return Ct()===!1}var lt=new Set,R=0;function Br(){return R}function Hr(e){typeof e=="number"&&(R=e)}function _n(e=R){let t=Object.freeze({generation:e});return lt.add(t),t}function Dn(e){lt.delete(e)}function an(e){return!!e&&lt.has(e)&&e.generation===R}function z(e,t){e!=null&&$t({captureId:e,ok:t.ok===!0,etag:t.etag??null})}function kn(e,t,n,o,r,i=null,a=null,f=!1){if(z(a,e),e.ok)te=!1,ue(t,n),Me=i,oe={bytes:i,etag:Fe(),generation:R},Ye=oe.etag,ze=!0,Ae=!1,q=!1,N(r),A("saved",e.msg||"Saved",e.msgType,{etag:e.etag??null,captureId:a}),re(o,`${L.length} chars`),Pn();else if(e.msgType==="conflict"){if(f){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","saved");return}xn(e.conflictEtag),A("conflict",e.msg,e.msgType,{hadTimeout:e.hadTimeout===!0,changedBy:e.changedBy??null,afterTimeout:e.afterTimeout===!0,etag:e.conflictEtag??null,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a})}else if(e.msgType!=="skipped"){let u={status:e.status??null,hadTimeout:e.hadTimeout===!0,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a};navigator.onLine?A("error",e.msg,"",u):A("offline",e.msg,"",u)}}function un(){if(!(!D&&!k)&&!Ut()){if(D){D=!1,k=!1,I();return}k=!1,et.request()}}function Gr(){return q}function Wr(e){q=e}function Kr(){return L}function ft(){return C}var Me=null;function Qr(){return Me}function ue(e,t){L=e,C=t,ie++}function Vr(e){ue(e,e)}var G=()=>typeof performance<"u"&&performance.now?performance.now():Date.now();var Ln=4,Jt="Save cancelled: the page changed while it prepared",X=null,le=null,We=null,ln=!1;function fn(){return We||(We=import("./c-3AXJDL2P.js").then(e=>(le=e,e),e=>(ln=!0,console.info("clayjs: sliced save off ("+(e&&e.message?e.message:e)+"); saves prepare in one task"),null))),We}function On(){try{return performance.getEntriesByType("navigation")[0]?.decodedBodySize||0}catch{return 0}}var In=()=>typeof Me=="string"?Me.length:On();function xe(){return ln||document.hidden||Ft()?!1:In()>=307200}function Zt(e,t,n){return n?"morph":R!==t.generation||!w?"mode":de(e.permit)?ut()?"refused":ie!==t.baselines?"newer save":Math.max(qe(),e.pageFormatFloor)>t.floor?"floor":null:"session"}function Rn(e=150,t=2e3){return new Promise(n=>{let o=G(),r=null,i=()=>{document.removeEventListener("clay:sync-applied",a),n()},a=()=>{clearTimeout(r),r=setTimeout(i,Math.max(0,Math.min(e,t-(G()-o))))};document.addEventListener("clay:sync-applied",a),a()})}async function ct({explicit:e,forced:t=!1,forSave:n,forComparison:o,forDirty:r,captureId:i,gateToken:a,costMs:f,pageFormatFloor:u=0,quietConflict:m=!1,laneHeld:c=!1,lane:p=null,capture:S,noteRecovery:y,release:d,callback:g}){if(y(),e&&!t){if(q=r!==C,he("savePage dirty check",!q),!q){Q(),N(a),d();let s=h("No changes to save");return z(i,s),typeof g=="function"&&g(s),{result:s,dispatched:!1}}}else if(!e){let s=!Z||o!==W,v=o!==L;if(he("throttled vs baseline",!s),he("throttled vs lastSave",!v),!(s&&v)){let M=!1;try{M=!v&&(!document.querySelector(Mt)||ne()&&r===C)}catch(ht){console.error("savePageThrottled: dirty domain check failed",ht)}M&&N(a),et.noteCost(f),d();let E=h("No changes to save");return z(i,E),typeof g=="function"&&g(E),{result:E,dispatched:!1}}if(q=!0,!c&&P()){D=!0,d();let M=h("Save already in progress");return z(i,M),typeof g=="function"&&g(M),{result:M,dispatched:!1}}}yn();let l={forComparison:o,forDirty:r};return Ee.add(l),we=!0,new Promise(s=>{qt(n,i,v=>{we=!1,Ee.delete(l);let M=G();kn(v,l.forComparison,l.forDirty,t?"updated after force save":"updated after save",a,n,i,m),e||et.noteCost(f+(G()-M)),typeof g=="function"&&g(v),s({result:v,dispatched:!0}),c||un()},{capture:S,pageFormatFloor:u,lane:p})})}async function bn(e,t){let n={over:!1},o=()=>{n.over=!0};document.addEventListener("clay:sync-applied",o);try{for(let i=0;i<2;i++){let a=b(),f={generation:R,baselines:ie,floor:Math.max(qe(),e.pageFormatFloor)},u=le.beginSaveCapture({requestRefresh:!0,forRequest:!0,pageFormatMarker:f.floor?{name:It,content:String(f.floor)}:null});Qt(u.captureId);let m=null,c={get aborted(){let d=Zt(e,f,n.over);return d&&(m=d),!!d}},p;try{p=await le.runPreparedSteps(u.steps(),{budgetMs:Ln,signal:c})}catch(d){console.error(`${e.explicit?"savePage":"savePageThrottled"}: preparing the save failed`,d),u.drop();let g={msg:d&&d.message?d.message:"Save failed",msgType:"error",code:d?.code??null,etag:null};return A("error",g.msg,"",{sent:!1,code:g.code}),z(u.captureId,g),typeof e.callback=="function"&&e.callback(g),{result:g,dispatched:!1}}let S=p.aborted?m:Zt(e,f,n.over);if(!S){let d=p.result;return await ct({explicit:e.explicit,forced:e.forced,forSave:d.forSave,forComparison:d.forComparison,forDirty:d.forDirty,captureId:d.captureId,gateToken:a,costMs:p.activeMs,pageFormatFloor:e.pageFormatFloor,quietConflict:e.quietConflict,laneHeld:!0,lane:t,capture:d,noteRecovery:()=>Vt(d.captureId,d.forSave),release:()=>u.drop(),callback:e.callback})}u.drop();let y=h(Jt);if(S==="session"&&(ae=!0),z(u.captureId,y),!(S==="floor"&&i===0)){if(S==="morph"&&e.explicit&&i===0){await Rn(),n.over=!1;continue}return typeof e.callback=="function"&&e.callback(y),{result:y,dispatched:!1}}}let r=h(Jt);return typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}}finally{document.removeEventListener("clay:sync-applied",o),Nt(t)}}function cn(e){let t=bt();if(!t)return!1;let n=bn(e,t).catch(o=>{console.error("save: preparing the save failed",o);let r={msg:o&&o.message?o.message:"Save failed",msgType:"error",code:o?.code??null,etag:null};return A("error",r.msg,"",{sent:!1,code:r.code}),typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}});return X=n,n.then(o=>{X===n&&(X=null),e.resolve(o.result),e.settleSoonQueued(o.result),(o.dispatched||D||k||_e.length)&&un()}),!0}function De(e,t=()=>{}){return Te?ot.then(()=>De(e,t)):ee?ce.then(()=>Pe(e,t)):Pe(e,t)}function Pe({kind:e,permit:t=null},n=()=>{}){let o=e==="explicit";return new Promise(r=>{if(!w&&!window.clay?.testMode){o&&Q();let s=h("Not in edit mode");return T().forEach(v=>v(s)),n(s),r(s)}if(!de(t)){ae=!0;let s=at("Save session is quiesced");return o&&T().forEach(v=>v(s)),n(s),r(s)}if(ut()){o&&Q();let s=sn();return A("error",s.msg,"",{code:s.code,status:s.status,sent:!1}),T().forEach(v=>v(s)),n(s),r(s)}if(o){let s=on(n,r);if(s){T().forEach(v=>v(s));return}if(P()){D=!0;let v=h("Save already in progress");return n(v),r(v)}}else{if(O>0){Ce=!0;let s=h(it());return n(s),r(s)}if(P()&&!Z&&we){k=!0;let s=h("Save already in progress");return n(s),r(s)}if(X){k=!0;let s=h("Save already in progress");return n(s),r(s)}if(!Z&&!ne()){let s=h("No changes to save");return n(s),r(s)}}let i=window.clay?.source?.ensureForSave?.();if(i)return i.then(()=>r(Pe({kind:e,permit:t},n)));if(xe()&&!le){fn().then(()=>r(Pe({kind:e,permit:t},n)));return}let a=o?T():[],f=s=>a.forEach(v=>v(s));if(!navigator.onLine&&nt(),xe()&&cn({explicit:o,forced:!1,permit:t,pageFormatFloor:0,quietConflict:!1,settleSoonQueued:f,callback:n,resolve:r}))return;let m=G(),c,p,S,y,d,g=b();try{c=Ne({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(s){console.error(`${o?"savePage":"savePageThrottled"}: captureForSaveAndComparison failed`,s),o?(Q(),A("error",s.message,"",{sent:!1,code:s.code??null})):A("error",s.message);let v={msg:s.message,msgType:"error",code:o?s.code??null:null,etag:null};typeof n=="function"&&n(v),r(v),f(v);return}let l=G()-m;ct({explicit:o,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:l,capture:c,noteRecovery:()=>Ge({captureId:d,html:p}),release:()=>Re(c),callback:n}).then(s=>{r(s.result),f(s.result)})})}function I(e=()=>{}){return De({kind:"explicit"},e)}function Nn(e,t=()=>{}){return De({kind:"explicit",permit:e},t)}function j(e=()=>{},{quietConflict:t=!1,pageFormatFloor:n=0,permit:o=null}={}){return Te?ot.then(()=>j(e,{quietConflict:t,pageFormatFloor:n,permit:o})):new Promise(r=>{if(!w&&!window.clay?.testMode){let l=h("Not in edit mode");return T().forEach(s=>s(l)),e(l),r(l)}if(!de(o)||o&&!an(o)){let l=at("Save session is quiesced");return T().forEach(s=>s(l)),e(l),r(l)}if(ut()){let l=sn();return A("error",l.msg,"",{code:l.code,status:l.status,sent:!1}),T().forEach(s=>s(l)),e(l),r(l)}let i=on(e,r);if(i){T().forEach(l=>l(i));return}if(P()){D=!0;let l=h("Save already in progress");return T().forEach(s=>s(l)),e(l),r(l)}let a=window.clay?.source?.ensureForSave?.();if(a)return a.then(()=>r(j(e,{quietConflict:t,pageFormatFloor:n,permit:o})));if(!navigator.onLine&&nt(),xe()&&!le){fn().then(()=>r(j(e,{quietConflict:t,pageFormatFloor:n,permit:o})));return}let u=T(),m=l=>u.forEach(s=>s(l));if(xe()&&cn({explicit:!0,forced:!0,permit:o,pageFormatFloor:n,quietConflict:t,settleSoonQueued:m,callback:e,resolve:r}))return;let c,p,S,y,d,g=b();try{c=Ne({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(l){console.error("savePageForce: captureForSaveAndComparison failed",l),A("error",l.message,"",{sent:!1,code:l.code??null});let s={msg:l.message,msgType:"error",code:l.code??null,etag:null};typeof e=="function"&&e(s),r(s),m(s);return}ct({explicit:!0,forced:!0,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:0,pageFormatFloor:n,quietConflict:t,capture:c,noteRecovery:()=>Ge({captureId:d,html:p}),release:()=>Re(c),callback:e}).then(l=>{r(l.result),m(l.result)})})}Ht(e=>j(()=>{},{permit:e}));function Fn(e){let t=["clay:save-saved","clay:save-error","clay:save-offline","clay:save-conflict"];return new Promise((n,o)=>{let r=null,i=()=>{clearTimeout(r);for(let u of t)document.removeEventListener(u,a)},a=()=>{i(),n()},f=e-Date.now();if(f<=0){o(Object.assign(new Error("Save timed out."),{state:"failed"}));return}r=setTimeout(()=>{i(),o(Object.assign(new Error("Save timed out."),{state:"failed"}))},f);for(let u of t)document.addEventListener(u,a)})}function _(e,t){return Object.assign(new Error(e),{state:t})}function Un(e,t){return new Promise((n,o)=>{let r=t-Date.now();if(r<=0)return o(_("Save timed out.","failed"));let i=setTimeout(()=>{document.removeEventListener(e,a),o(_("Save timed out.","failed"))},r),a=()=>{clearTimeout(i),n()};document.addEventListener(e,a,{once:!0})})}async function $r({keepalive:e=!1,timeoutMs:t=15e3,permit:n=null}={}){if(!w)return{state:"view",etag:null};let o=Date.now()+t,r=n||_n(),i={over:!1},a=null,f=new Promise((u,m)=>{a=setTimeout(()=>m(_("Save timed out.","failed")),Math.max(0,t))});try{return await Promise.race([qn(e,o,r,i),f])}catch(u){throw u&&typeof u.state=="string"?u:_(u?.message||"Save failed","failed")}finally{i.over=!0,clearTimeout(a),n||Dn(r)}}async function qn(e,t,n,o={over:!1}){if(dn()||await Un("clay:baseline-settled",t),o.over)return null;let r=!1,i=null;for(let a=0;a<4;a++){if(X&&(await X,o.over)||P()&&(await Fn(t),o.over))return null;if(je())throw _("This document has a conflict to resolve.","conflict");let f=b();if(!tt()){if(N(f),F())throw _("This document has unsaved work a save cannot write.","blocked");return te=!1,{state:r?"saved":"clean",etag:i??Fe()}}if(o.over)return null;let u=await Rt(e,()=>Nn(n));if(u.msgType!=="skipped"){if(!u.ok)throw _(u.msg||"Save failed",u.msgType==="conflict"||je()?"conflict":"failed");r=!0,i=u.etag??null}}throw _("The document kept changing while saving.","failed")}async function Yr(e=()=>{}){return await Ue({fresh:!0}),j(e)}function zr(e){!w||K||Bt(e,t=>{t.ok?window.location.reload():t.msgType==="skipped"?A("error",t.msg||"Template not saved"):A("error",t.msg||"Failed to save template")})}var Bn=Dt(e=>De({kind:"automatic"},e),1200),Hn=250,Gn=1e3,J=null,en=0,Je=[],_e=[],fe=!1,T=()=>{let e=_e;return _e=[],e};function dt(){if(J=null,B>0||!de()){fe=!0;return}let e=Je;if(Je=[],P()){_e.push(...e),I();return}I().then(t=>e.forEach(n=>n(t)))}function Xr(){let e=Date.now();return J===null?en=e:clearTimeout(J),new Promise(t=>{Je.push(t),J=setTimeout(dt,Math.max(0,Math.min(Hn,en+Gn-e)))})}function Wn(){ae&&(ae=!1,ke())}function tn(){fe&&(fe=!1,J=setTimeout(dt,0))}var W="",Z=!0,pt=!1;function dn(){return pt}var Ke=!1,Kn=250,Qn=1250,Qe=null,pn="clay:paint-heal:"+location.pathname;function mn(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)|0;return String(t>>>0)}function Vn(e){try{return localStorage.getItem(pn)===mn(e)}catch{return!1}}function $n(e){try{localStorage.setItem(pn,mn(e))}catch{}}function Yn(){return xt(_t({flushUndo:!1}))}function jr(e){!w||K||(clearTimeout(Qe),Qe=setTimeout(async()=>{Qe=null,ee&&await ce;let t=typeof e=="function"?e():e;t==null||!He()||!dn()||je()||wn()||V({flushUndo:!1})===C&&t!==Yn()&&(Vn(t)||($n(t),j(()=>{},{quietConflict:!0})))},Kn+Math.random()*Qn))}var Se=null,Ve=null,ee=0,ce=Promise.resolve(),mt=!1,vt=[];function zn(){return Ve??=import("./c-KNPDOMDY.js").catch(e=>(Ve=null,console.error("style-comparisons failed to load",e),null)),Ve}async function Xn(e){try{if(Se||(Se=(await zn())?.styleComparisonStripper??null),!Se)return;let t=Se(e);L=t(L),C=t(C),W=t(W);for(let n of Ee)n.forComparison=t(n.forComparison),n.forDirty=t(n.forDirty)}catch(t){console.error("style adoption failed",t)}finally{ee--,vt.shift()}}var ye=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;");function jn(e){if(e.name!==void 0){let n=[`data-name="${ye(e.name)}"`];return e.legacyId!==void 0&&n.push(`id="${ye(e.legacyId)}"`),n}let t=[ye(e.href)];try{let{pathname:n}=new URL(e.href);n&&t.push(ye(n))}catch{}return t}function Jn(e){let t=[L,C,W];for(let n of Ee)t.push(n.forComparison,n.forDirty);return t.some(n=>n&&e.some(o=>o&&n.includes(o)))}function Zn(e,t){let n=[];for(let{markers:i,tag:a}of t)for(let f of i)for(let u=e.indexOf(f);u>=0;u=e.indexOf(f,u+f.length)){let m=e.lastIndexOf("<",u);if(m<0||e.slice(m+1,m+1+a.length).toLowerCase()!==a)continue;let c=a==="style"?e.indexOf("</style",u):u;if(c<0)continue;let p=e.indexOf(">",c);p>=0&&n.push([m,p+1])}n.sort((i,a)=>i[0]-a[0]);let o="",r=0;for(let[i,a]of n)i<r||(o+=e.slice(r,i),r=a);return o+e.slice(r)}Kt(e=>{let t=jn(e);Jn(t)&&(ee||(mt=!1),ee++,vt.push({markers:t,tag:e.name!==void 0?"style":"link"}),ce=ce.then(()=>Xn(e)))});function Jr(){return ce}function gt(e){return!ee||mt||F()||P()||D||k||te||typeof e!="string"?!1:e===Zn(C,vt)}var er=500,tr=3e3,nr=1e4,Ze=null;function rr(){pe.holdSettle=!1,Ze&&Ze()}function nn(){if(!w)return;let e=!1,t=null,{forComparison:n,forDirty:o}=me();ue(n,o);let r=ie;W=n,re("immediate capture",`${n.length} chars`);let i=["keydown","pointerdown","drop","input","change","paste"],a=new Set(["Shift","Control","Alt","Meta"]),f=c=>{c.type==="keydown"&&a.has(c.key)||(mt=!0,e||(Ke=!0))};i.forEach(c=>document.addEventListener(c,f,!0));let u=()=>{if(!e){if(e=!0,t&&t(),!Ke&&ie===r){let c=b(),{forComparison:p,forDirty:S}=me();ue(p,S),W=p,N(c),re("settled capture",`${p.length} chars`)}else re("settled skipped",Ke?"user edited":"save occurred during settle");Z=!1,document.documentElement.setAttribute("savestatus","saved"),pt=!0,document.dispatchEvent(new CustomEvent("clay:baseline-settled"))}};Ze=u;let m=()=>{pe.holdSettle||u()};t=Pt.onAnyChange({debounce:er,omitChangeDetails:!0,require:"autosave"},m),setTimeout(()=>{e||m()},tr),setTimeout(()=>{!e&&pe.holdSettle&&rr()},nr)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",nn):nn();function ke(e=()=>{}){if(!w){let t=h("Not in edit mode");return e(t),Promise.resolve(t)}if(O>0){Ce=!0;let t=h(it());return e(t),Promise.resolve(t)}if(!de()){ae=!0;let t=at("Save session is quiesced");return e(t),Promise.resolve(t)}if(B>0){$e=!0;let t=h("Autosave suspended");return e(t),Promise.resolve(t)}if(!Z&&we){k=!0;let t=h("Save already in progress");return e(t),Promise.resolve(t)}return Bn(e).catch(t=>{let n={ok:!1,msg:t?.message||"Save failed",msgType:"error",code:null,etag:null};return A("error",n.msg),n})}var et=Xt({now:G,run:()=>ke()});function vn(){document.addEventListener("keydown",function(e){if((window.navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)&&e.keyCode==83){if(!w)return;e.preventDefault(),e.isTrusted&&Ie(),I()}})}function gn(){document.addEventListener("click",e=>{e.target.closest("[trigger-save]")&&(e.isTrusted&&Ie(),I())})}function or(){w&&(Ue(),Ot(),Oe(),vn(),gn())}or();var Zr=I;var Le=!1;function ao({isCurrent:e,reload:t}){return e()?(Le=!0,setTimeout(()=>{Le=!1},1e3),t(),!0):!1}zt();function sr(){return rt()?!0:w?F()?!0:K?Tt():window.clay?.demo?!1:tt():!1}function tt(){if(!w)return!1;try{let e=V();return gt(e)?!1:e!==ft()}catch{return!0}}window.addEventListener("beforeunload",e=>{if(!w&&!rt())return;if(Le){Le=!1;return}if(!((!K||At())&&!sr())&&(e.preventDefault(),e.returnValue="",!window.clay?.demo&&!F()))try{let n=V(),o=ft();n!==o&&Yt(n,o)}catch{}});export{ao as a,sr as b,tt as c,En as d,rn as e,wn as f,de as g,rt as h,Tn as i,Ir as j,Rr as k,br as l,Nr as m,Fr as n,Ur as o,it as p,je as q,qr as r,Br as s,Hr as t,_n as u,Dn as v,Gr as w,Wr as x,Kr as y,ft as z,Qr as A,ue as B,Vr as C,I as D,j as E,$r as F,Yr as G,zr as H,Xr as I,dn as J,Yn as K,jr as L,Jr as M,gt as N,rr as O,ke as P,et as Q,vn as R,gn as S,or as T,Zr as U};
1
+ import{a as Gt}from"./c-4ASQPRQL.js";import{a as Dt}from"./c-GQ6F6IDK.js";import{c as F}from"./c-I2SCCUEW.js";import{b as He}from"./c-5VYOWDTI.js";import{a as Wt,d as ne,e as Be,f as b,h as N}from"./c-GSRLXYWL.js";import{a as Ge,b as Qt,c as Vt,d as $t}from"./c-X5LNHET5.js";import{a as Kt}from"./c-UGHH4MB3.js";import{a as Pt}from"./c-LA2BW7UY.js";import{a as Ot,e as Rt,f as P,g as bt,h as Nt,i as Ft,l as Ut,t as qt,v as Bt,w as Ht}from"./c-XCFQEWW6.js";import{b as It,h as qe}from"./c-EK63G3CG.js";import{a as Fe,c as kt,g as Lt,h as Ue}from"./c-NQJRVJ56.js";import{a as Oe,f as Ie,h as Q}from"./c-IJUK2GPW.js";import{b as K,e as Ct,f as w}from"./c-3O7OBDCM.js";import{i as At,k as Tt}from"./c-N7JPUPGC.js";import{E as Ne,h as Re,r as be,u as _t,y as V,z as me}from"./c-PWJSJEJU.js";import{d as xt}from"./c-VG5XIN4T.js";import{a as pe}from"./c-2YYDMLNZ.js";import{d as St,e as yt,g as Et,h as wt}from"./c-HA6INT6J.js";import{k as Mt}from"./c-ICMAOOGK.js";var hn="clay:debug:autosave";function ve(){try{return localStorage.getItem(hn)==="true"}catch{return!1}}function ge(){return import("./c-CFHW5AMY.js").catch(e=>(console.warn("[autosave-debug] Failed to load the debug logger:",e),null))}function he(e,t){ve()&&ge().then(n=>n?.logSaveCheck(e,t))}function re(e,t=""){ve()&&ge().then(n=>n?.logBaseline(e,t))}function Yt(e,t){ve()&&ge().then(n=>n?.logUnloadDiffSync(e,t))}function zt(){ve()&&ge().then(e=>e?.preloadIfEnabled())}var U=Number.NEGATIVE_INFINITY;function Sn({firstDirtyAt:e=U,lastActivityAt:t=U,finishedAt:n=U,costMs:o=0}={}){let r=e??U,i=t??U,a=n??U,f=Math.min(3e4,Math.max(1200,4*o)),u=Math.max(i,a)+1500,m=Math.max(r+1e4,a+f);return Math.max(a+1200,Math.min(u,m))}function Xt({now:e=()=>Date.now(),setTimer:t=(r,i)=>setTimeout(r,i),clearTimer:n=r=>clearTimeout(r),run:o=()=>{}}={}){let r=null,i=null,a=U,f=0,u=null,m=null,c=!1,p=!1;function S(){return Sn({firstDirtyAt:r,lastActivityAt:i,finishedAt:a,costMs:f})}function y(){if(!c||p)return;let E=S();if(u!==null){if(m===E)return;n(u)}m=E,u=t(d,Math.max(0,E-e()))}function d(){if(u=null,m=null,!(!c||p)){if(e()<S()){y();return}g()}}function g(){c=!1,p=!0,r=null,i=null;let E;try{E=o()}catch{l();return}Promise.resolve(E).then(l,l)}function l(){p=!1,a=e(),c&&y()}function s({at:E=e()}={}){r===null&&(r=E),i=E,c=!0,y()}function v(){c=!0,y()}function M(E){E>0&&(f=Math.max(E,f*.8))}return{noteActivity:s,request:v,noteCost:M,dueAt:S,costEstimate:()=>f,pending:()=>c||p,running:()=>p}}be(e=>{for(let t of wt)e.removeAttribute(t)});be(e=>{for(let t of[...St,...yt,...Et])e.removeAttribute(t)});var x=null;function A(e,t="",n="",o=null){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus",e);let r=new CustomEvent(`clay:save-${e}`,{detail:{msg:t,msgType:n,timestamp:Date.now(),...o||{}}});document.dispatchEvent(r)}function nt(){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","offline")}function yn(){x=setTimeout(()=>{A("saving")},500)}window.addEventListener("offline",()=>{nt()});window.addEventListener("online",()=>{document.documentElement.getAttribute("savestatus")==="offline"&&I().then(e=>{e.msgType==="skipped"&&document.documentElement.getAttribute("savestatus")==="offline"&&document.documentElement.setAttribute("savestatus","saved")})});var q=!1,L="",C="",ie=0,Ee=new Set,D=!1,k=!1,we=!1,B=0,$e=!1;function En(){B++}function rn(){B!==0&&(B--,!(B>0)&&(fe&&(fe=!1,J=setTimeout(dt,0)),$e&&($e=!1,ke())))}function wn(){return B>0}var $=0,te=!1,ae=!1,Ae=!1;function de(e=null){return $===0||an(e)}function rt(){return te}function An(){if(te)return!0;try{let e=V({flushUndo:!1});return gt(e)?!1:e!==C}catch{return!0}}function Tn(){let e="idle",t=0;return{get phase(){return e},get open(){return e==="open"},changedWhileClosed(){return e==="quiesced"&&Be()!==t},start(){e==="idle"&&(e="open")},quiesce(){e==="open"&&(e="quiesced",t=Be(),$++)},resume(){e==="quiesced"&&(e="open",$--,!($>0)&&(Wn(),tn()))},stop(){if(e==="stopped")return;let n=e==="quiesced";(n||e==="open")&&An()&&(Ae=!0),e="stopped",n&&($--,$===0&&tn())}}}var jt=!1,oe=null,Ye=null,ze=!1;function Ir(e=R){if(!oe||oe.generation!==e)return null;let{bytes:t,etag:n}=oe;return{bytes:t,etag:n}}function Rr({represented:e}={}){let t=b(),{forComparison:n,forDirty:o}=me(),r=typeof e?.etag=="string"&&e.etag?e.etag:null;return!(ze&&r!==null&&r!==Ye)&&Ae&&(n!==L||o!==C)?{ok:!1,code:"pending-input"}:(Ae=!1,ue(n,o),W=n,Z=!1,pt=!0,Ye=r,ze=!0,N(t),document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:baseline-settled")),{ok:!0})}var ot=Promise.resolve(!1),Te=!1,Cn=()=>(Te=!0,Lt().catch(()=>!1).then(e=>(Te=!1,e)));function br(){return{id:"clay:save",order:10,prepare(e={}){let t=Tn();return e.initial===!0&&t.start(),{enable(){ot=Cn();let n=e.represented?.etag;typeof n=="string"&&n&&kt(n),e.initial!==!0&&(Mn(),t.start())},quiesce:()=>t.quiesce(),resume:()=>t.resume(),dispose:()=>t.stop()}}}}function Mn(){jt||(jt=!0,Wt(),Oe(),vn(),gn())}var O=0,Xe=!1,Ce=!1,st="Waiting for the AI edit to be kept or reverted",Y=new Map;function Nr(e=st){O++,Y.set(e,(Y.get(e)||0)+1)}function Fr({replay:e=!0,reason:t=st}={}){let n=Y.get(t)||0;if(n===0||(n===1?Y.delete(t):Y.set(t,n-1),O--,O>0))return;let o=Xe,r=Ce;Xe=!1,Ce=!1,e&&(o?I():r&&ke())}function Ur(){return O>0}function it(){return O===0?null:Y.keys().next().value||st}function on(e,t){if(O===0)return!1;Xe=!0,Q();let n=h(it());return e(n),t(n),n}var H=!1,se=null;function xn(e){se=e??null,!H&&(H=!0,En())}function Pn(){H&&(H=!1,se=null,rn())}function je(){return H}function qr(e){if(!H||se&&e!==se)return;H=!1,se=null,!He()&&ne()||(document.documentElement.getAttribute("savestatus")==="conflict"&&document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:save-conflict-resolved",{detail:{timestamp:Date.now()}}))),document.dispatchEvent(new CustomEvent("clay:save-conflict-released",{detail:{etag:e??null}})),rn()}function h(e){return{ok:!1,msg:e,msgType:"skipped",code:null,etag:null}}function at(e){return(ne()||F())&&(te=!0),h(e)}function sn(){return{ok:!1,msg:"You are not allowed to save this document.",msgType:"forbidden",code:"forbidden",status:403,sent:!1,etag:null}}function ut(){return Ct()===!1}var lt=new Set,R=0;function Br(){return R}function Hr(e){typeof e=="number"&&(R=e)}function _n(e=R){let t=Object.freeze({generation:e});return lt.add(t),t}function Dn(e){lt.delete(e)}function an(e){return!!e&&lt.has(e)&&e.generation===R}function z(e,t){e!=null&&$t({captureId:e,ok:t.ok===!0,etag:t.etag??null})}function kn(e,t,n,o,r,i=null,a=null,f=!1){if(z(a,e),e.ok)te=!1,ue(t,n),Me=i,oe={bytes:i,etag:Fe(),generation:R},Ye=oe.etag,ze=!0,Ae=!1,q=!1,N(r),A("saved",e.msg||"Saved",e.msgType,{etag:e.etag??null,captureId:a}),re(o,`${L.length} chars`),Pn();else if(e.msgType==="conflict"){if(f){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","saved");return}xn(e.conflictEtag),A("conflict",e.msg,e.msgType,{hadTimeout:e.hadTimeout===!0,changedBy:e.changedBy??null,afterTimeout:e.afterTimeout===!0,etag:e.conflictEtag??null,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a})}else if(e.msgType!=="skipped"){let u={status:e.status??null,hadTimeout:e.hadTimeout===!0,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a};navigator.onLine?A("error",e.msg,"",u):A("offline",e.msg,"",u)}}function un(){if(!(!D&&!k)&&!Ut()){if(D){D=!1,k=!1,I();return}k=!1,et.request()}}function Gr(){return q}function Wr(e){q=e}function Kr(){return L}function ft(){return C}var Me=null;function Qr(){return Me}function ue(e,t){L=e,C=t,ie++}function Vr(e){ue(e,e)}var G=()=>typeof performance<"u"&&performance.now?performance.now():Date.now();var Ln=4,Jt="Save cancelled: the page changed while it prepared",X=null,le=null,We=null,ln=!1;function fn(){return We||(We=import("./c-OG6GFSUX.js").then(e=>(le=e,e),e=>(ln=!0,console.info("clayjs: sliced save off ("+(e&&e.message?e.message:e)+"); saves prepare in one task"),null))),We}function On(){try{return performance.getEntriesByType("navigation")[0]?.decodedBodySize||0}catch{return 0}}var In=()=>typeof Me=="string"?Me.length:On();function xe(){return ln||document.hidden||Ft()?!1:In()>=307200}function Zt(e,t,n){return n?"morph":R!==t.generation||!w?"mode":de(e.permit)?ut()?"refused":ie!==t.baselines?"newer save":Math.max(qe(),e.pageFormatFloor)>t.floor?"floor":null:"session"}function Rn(e=150,t=2e3){return new Promise(n=>{let o=G(),r=null,i=()=>{document.removeEventListener("clay:sync-applied",a),n()},a=()=>{clearTimeout(r),r=setTimeout(i,Math.max(0,Math.min(e,t-(G()-o))))};document.addEventListener("clay:sync-applied",a),a()})}async function ct({explicit:e,forced:t=!1,forSave:n,forComparison:o,forDirty:r,captureId:i,gateToken:a,costMs:f,pageFormatFloor:u=0,quietConflict:m=!1,laneHeld:c=!1,lane:p=null,capture:S,noteRecovery:y,release:d,callback:g}){if(y(),e&&!t){if(q=r!==C,he("savePage dirty check",!q),!q){Q(),N(a),d();let s=h("No changes to save");return z(i,s),typeof g=="function"&&g(s),{result:s,dispatched:!1}}}else if(!e){let s=!Z||o!==W,v=o!==L;if(he("throttled vs baseline",!s),he("throttled vs lastSave",!v),!(s&&v)){let M=!1;try{M=!v&&(!document.querySelector(Mt)||ne()&&r===C)}catch(ht){console.error("savePageThrottled: dirty domain check failed",ht)}M&&N(a),et.noteCost(f),d();let E=h("No changes to save");return z(i,E),typeof g=="function"&&g(E),{result:E,dispatched:!1}}if(q=!0,!c&&P()){D=!0,d();let M=h("Save already in progress");return z(i,M),typeof g=="function"&&g(M),{result:M,dispatched:!1}}}yn();let l={forComparison:o,forDirty:r};return Ee.add(l),we=!0,new Promise(s=>{qt(n,i,v=>{we=!1,Ee.delete(l);let M=G();kn(v,l.forComparison,l.forDirty,t?"updated after force save":"updated after save",a,n,i,m),e||et.noteCost(f+(G()-M)),typeof g=="function"&&g(v),s({result:v,dispatched:!0}),c||un()},{capture:S,pageFormatFloor:u,lane:p})})}async function bn(e,t){let n={over:!1},o=()=>{n.over=!0};document.addEventListener("clay:sync-applied",o);try{for(let i=0;i<2;i++){let a=b(),f={generation:R,baselines:ie,floor:Math.max(qe(),e.pageFormatFloor)},u=le.beginSaveCapture({requestRefresh:!0,forRequest:!0,pageFormatMarker:f.floor?{name:It,content:String(f.floor)}:null});Qt(u.captureId);let m=null,c={get aborted(){let d=Zt(e,f,n.over);return d&&(m=d),!!d}},p;try{p=await le.runPreparedSteps(u.steps(),{budgetMs:Ln,signal:c})}catch(d){console.error(`${e.explicit?"savePage":"savePageThrottled"}: preparing the save failed`,d),u.drop();let g={msg:d&&d.message?d.message:"Save failed",msgType:"error",code:d?.code??null,etag:null};return A("error",g.msg,"",{sent:!1,code:g.code}),z(u.captureId,g),typeof e.callback=="function"&&e.callback(g),{result:g,dispatched:!1}}let S=p.aborted?m:Zt(e,f,n.over);if(!S){let d=p.result;return await ct({explicit:e.explicit,forced:e.forced,forSave:d.forSave,forComparison:d.forComparison,forDirty:d.forDirty,captureId:d.captureId,gateToken:a,costMs:p.activeMs,pageFormatFloor:e.pageFormatFloor,quietConflict:e.quietConflict,laneHeld:!0,lane:t,capture:d,noteRecovery:()=>Vt(d.captureId,d.forSave),release:()=>u.drop(),callback:e.callback})}u.drop();let y=h(Jt);if(S==="session"&&(ae=!0),z(u.captureId,y),!(S==="floor"&&i===0)){if(S==="morph"&&e.explicit&&i===0){await Rn(),n.over=!1;continue}return typeof e.callback=="function"&&e.callback(y),{result:y,dispatched:!1}}}let r=h(Jt);return typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}}finally{document.removeEventListener("clay:sync-applied",o),Nt(t)}}function cn(e){let t=bt();if(!t)return!1;let n=bn(e,t).catch(o=>{console.error("save: preparing the save failed",o);let r={msg:o&&o.message?o.message:"Save failed",msgType:"error",code:o?.code??null,etag:null};return A("error",r.msg,"",{sent:!1,code:r.code}),typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}});return X=n,n.then(o=>{X===n&&(X=null),e.resolve(o.result),e.settleSoonQueued(o.result),(o.dispatched||D||k||_e.length)&&un()}),!0}function De(e,t=()=>{}){return Te?ot.then(()=>De(e,t)):ee?ce.then(()=>Pe(e,t)):Pe(e,t)}function Pe({kind:e,permit:t=null},n=()=>{}){let o=e==="explicit";return new Promise(r=>{if(!w&&!window.clay?.testMode){o&&Q();let s=h("Not in edit mode");return T().forEach(v=>v(s)),n(s),r(s)}if(!de(t)){ae=!0;let s=at("Save session is quiesced");return o&&T().forEach(v=>v(s)),n(s),r(s)}if(ut()){o&&Q();let s=sn();return A("error",s.msg,"",{code:s.code,status:s.status,sent:!1}),T().forEach(v=>v(s)),n(s),r(s)}if(o){let s=on(n,r);if(s){T().forEach(v=>v(s));return}if(P()){D=!0;let v=h("Save already in progress");return n(v),r(v)}}else{if(O>0){Ce=!0;let s=h(it());return n(s),r(s)}if(P()&&!Z&&we){k=!0;let s=h("Save already in progress");return n(s),r(s)}if(X){k=!0;let s=h("Save already in progress");return n(s),r(s)}if(!Z&&!ne()){let s=h("No changes to save");return n(s),r(s)}}let i=window.clay?.source?.ensureForSave?.();if(i)return i.then(()=>r(Pe({kind:e,permit:t},n)));if(xe()&&!le){fn().then(()=>r(Pe({kind:e,permit:t},n)));return}let a=o?T():[],f=s=>a.forEach(v=>v(s));if(!navigator.onLine&&nt(),xe()&&cn({explicit:o,forced:!1,permit:t,pageFormatFloor:0,quietConflict:!1,settleSoonQueued:f,callback:n,resolve:r}))return;let m=G(),c,p,S,y,d,g=b();try{c=Ne({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(s){console.error(`${o?"savePage":"savePageThrottled"}: captureForSaveAndComparison failed`,s),o?(Q(),A("error",s.message,"",{sent:!1,code:s.code??null})):A("error",s.message);let v={msg:s.message,msgType:"error",code:o?s.code??null:null,etag:null};typeof n=="function"&&n(v),r(v),f(v);return}let l=G()-m;ct({explicit:o,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:l,capture:c,noteRecovery:()=>Ge({captureId:d,html:p}),release:()=>Re(c),callback:n}).then(s=>{r(s.result),f(s.result)})})}function I(e=()=>{}){return De({kind:"explicit"},e)}function Nn(e,t=()=>{}){return De({kind:"explicit",permit:e},t)}function j(e=()=>{},{quietConflict:t=!1,pageFormatFloor:n=0,permit:o=null}={}){return Te?ot.then(()=>j(e,{quietConflict:t,pageFormatFloor:n,permit:o})):new Promise(r=>{if(!w&&!window.clay?.testMode){let l=h("Not in edit mode");return T().forEach(s=>s(l)),e(l),r(l)}if(!de(o)||o&&!an(o)){let l=at("Save session is quiesced");return T().forEach(s=>s(l)),e(l),r(l)}if(ut()){let l=sn();return A("error",l.msg,"",{code:l.code,status:l.status,sent:!1}),T().forEach(s=>s(l)),e(l),r(l)}let i=on(e,r);if(i){T().forEach(l=>l(i));return}if(P()){D=!0;let l=h("Save already in progress");return T().forEach(s=>s(l)),e(l),r(l)}let a=window.clay?.source?.ensureForSave?.();if(a)return a.then(()=>r(j(e,{quietConflict:t,pageFormatFloor:n,permit:o})));if(!navigator.onLine&&nt(),xe()&&!le){fn().then(()=>r(j(e,{quietConflict:t,pageFormatFloor:n,permit:o})));return}let u=T(),m=l=>u.forEach(s=>s(l));if(xe()&&cn({explicit:!0,forced:!0,permit:o,pageFormatFloor:n,quietConflict:t,settleSoonQueued:m,callback:e,resolve:r}))return;let c,p,S,y,d,g=b();try{c=Ne({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(l){console.error("savePageForce: captureForSaveAndComparison failed",l),A("error",l.message,"",{sent:!1,code:l.code??null});let s={msg:l.message,msgType:"error",code:l.code??null,etag:null};typeof e=="function"&&e(s),r(s),m(s);return}ct({explicit:!0,forced:!0,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:0,pageFormatFloor:n,quietConflict:t,capture:c,noteRecovery:()=>Ge({captureId:d,html:p}),release:()=>Re(c),callback:e}).then(l=>{r(l.result),m(l.result)})})}Ht(e=>j(()=>{},{permit:e}));function Fn(e){let t=["clay:save-saved","clay:save-error","clay:save-offline","clay:save-conflict"];return new Promise((n,o)=>{let r=null,i=()=>{clearTimeout(r);for(let u of t)document.removeEventListener(u,a)},a=()=>{i(),n()},f=e-Date.now();if(f<=0){o(Object.assign(new Error("Save timed out."),{state:"failed"}));return}r=setTimeout(()=>{i(),o(Object.assign(new Error("Save timed out."),{state:"failed"}))},f);for(let u of t)document.addEventListener(u,a)})}function _(e,t){return Object.assign(new Error(e),{state:t})}function Un(e,t){return new Promise((n,o)=>{let r=t-Date.now();if(r<=0)return o(_("Save timed out.","failed"));let i=setTimeout(()=>{document.removeEventListener(e,a),o(_("Save timed out.","failed"))},r),a=()=>{clearTimeout(i),n()};document.addEventListener(e,a,{once:!0})})}async function $r({keepalive:e=!1,timeoutMs:t=15e3,permit:n=null}={}){if(!w)return{state:"view",etag:null};let o=Date.now()+t,r=n||_n(),i={over:!1},a=null,f=new Promise((u,m)=>{a=setTimeout(()=>m(_("Save timed out.","failed")),Math.max(0,t))});try{return await Promise.race([qn(e,o,r,i),f])}catch(u){throw u&&typeof u.state=="string"?u:_(u?.message||"Save failed","failed")}finally{i.over=!0,clearTimeout(a),n||Dn(r)}}async function qn(e,t,n,o={over:!1}){if(dn()||await Un("clay:baseline-settled",t),o.over)return null;let r=!1,i=null;for(let a=0;a<4;a++){if(X&&(await X,o.over)||P()&&(await Fn(t),o.over))return null;if(je())throw _("This document has a conflict to resolve.","conflict");let f=b();if(!tt()){if(N(f),F())throw _("This document has unsaved work a save cannot write.","blocked");return te=!1,{state:r?"saved":"clean",etag:i??Fe()}}if(o.over)return null;let u=await Rt(e,()=>Nn(n));if(u.msgType!=="skipped"){if(!u.ok)throw _(u.msg||"Save failed",u.msgType==="conflict"||je()?"conflict":"failed");r=!0,i=u.etag??null}}throw _("The document kept changing while saving.","failed")}async function Yr(e=()=>{}){return await Ue({fresh:!0}),j(e)}function zr(e){!w||K||Bt(e,t=>{t.ok?window.location.reload():t.msgType==="skipped"?A("error",t.msg||"Template not saved"):A("error",t.msg||"Failed to save template")})}var Bn=Dt(e=>De({kind:"automatic"},e),1200),Hn=250,Gn=1e3,J=null,en=0,Je=[],_e=[],fe=!1,T=()=>{let e=_e;return _e=[],e};function dt(){if(J=null,B>0||!de()){fe=!0;return}let e=Je;if(Je=[],P()){_e.push(...e),I();return}I().then(t=>e.forEach(n=>n(t)))}function Xr(){let e=Date.now();return J===null?en=e:clearTimeout(J),new Promise(t=>{Je.push(t),J=setTimeout(dt,Math.max(0,Math.min(Hn,en+Gn-e)))})}function Wn(){ae&&(ae=!1,ke())}function tn(){fe&&(fe=!1,J=setTimeout(dt,0))}var W="",Z=!0,pt=!1;function dn(){return pt}var Ke=!1,Kn=250,Qn=1250,Qe=null,pn="clay:paint-heal:"+location.pathname;function mn(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)|0;return String(t>>>0)}function Vn(e){try{return localStorage.getItem(pn)===mn(e)}catch{return!1}}function $n(e){try{localStorage.setItem(pn,mn(e))}catch{}}function Yn(){return xt(_t({flushUndo:!1}))}function jr(e){!w||K||(clearTimeout(Qe),Qe=setTimeout(async()=>{Qe=null,ee&&await ce;let t=typeof e=="function"?e():e;t==null||!He()||!dn()||je()||wn()||V({flushUndo:!1})===C&&t!==Yn()&&(Vn(t)||($n(t),j(()=>{},{quietConflict:!0})))},Kn+Math.random()*Qn))}var Se=null,Ve=null,ee=0,ce=Promise.resolve(),mt=!1,vt=[];function zn(){return Ve??=import("./c-KNPDOMDY.js").catch(e=>(Ve=null,console.error("style-comparisons failed to load",e),null)),Ve}async function Xn(e){try{if(Se||(Se=(await zn())?.styleComparisonStripper??null),!Se)return;let t=Se(e);L=t(L),C=t(C),W=t(W);for(let n of Ee)n.forComparison=t(n.forComparison),n.forDirty=t(n.forDirty)}catch(t){console.error("style adoption failed",t)}finally{ee--,vt.shift()}}var ye=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;");function jn(e){if(e.name!==void 0){let n=[`data-name="${ye(e.name)}"`];return e.legacyId!==void 0&&n.push(`id="${ye(e.legacyId)}"`),n}let t=[ye(e.href)];try{let{pathname:n}=new URL(e.href);n&&t.push(ye(n))}catch{}return t}function Jn(e){let t=[L,C,W];for(let n of Ee)t.push(n.forComparison,n.forDirty);return t.some(n=>n&&e.some(o=>o&&n.includes(o)))}function Zn(e,t){let n=[];for(let{markers:i,tag:a}of t)for(let f of i)for(let u=e.indexOf(f);u>=0;u=e.indexOf(f,u+f.length)){let m=e.lastIndexOf("<",u);if(m<0||e.slice(m+1,m+1+a.length).toLowerCase()!==a)continue;let c=a==="style"?e.indexOf("</style",u):u;if(c<0)continue;let p=e.indexOf(">",c);p>=0&&n.push([m,p+1])}n.sort((i,a)=>i[0]-a[0]);let o="",r=0;for(let[i,a]of n)i<r||(o+=e.slice(r,i),r=a);return o+e.slice(r)}Kt(e=>{let t=jn(e);Jn(t)&&(ee||(mt=!1),ee++,vt.push({markers:t,tag:e.name!==void 0?"style":"link"}),ce=ce.then(()=>Xn(e)))});function Jr(){return ce}function gt(e){return!ee||mt||F()||P()||D||k||te||typeof e!="string"?!1:e===Zn(C,vt)}var er=500,tr=3e3,nr=1e4,Ze=null;function rr(){pe.holdSettle=!1,Ze&&Ze()}function nn(){if(!w)return;let e=!1,t=null,{forComparison:n,forDirty:o}=me();ue(n,o);let r=ie;W=n,re("immediate capture",`${n.length} chars`);let i=["keydown","pointerdown","drop","input","change","paste"],a=new Set(["Shift","Control","Alt","Meta"]),f=c=>{c.type==="keydown"&&a.has(c.key)||(mt=!0,e||(Ke=!0))};i.forEach(c=>document.addEventListener(c,f,!0));let u=()=>{if(!e){if(e=!0,t&&t(),!Ke&&ie===r){let c=b(),{forComparison:p,forDirty:S}=me();ue(p,S),W=p,N(c),re("settled capture",`${p.length} chars`)}else re("settled skipped",Ke?"user edited":"save occurred during settle");Z=!1,document.documentElement.setAttribute("savestatus","saved"),pt=!0,document.dispatchEvent(new CustomEvent("clay:baseline-settled"))}};Ze=u;let m=()=>{pe.holdSettle||u()};t=Pt.onAnyChange({debounce:er,omitChangeDetails:!0,require:"autosave"},m),setTimeout(()=>{e||m()},tr),setTimeout(()=>{!e&&pe.holdSettle&&rr()},nr)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",nn):nn();function ke(e=()=>{}){if(!w){let t=h("Not in edit mode");return e(t),Promise.resolve(t)}if(O>0){Ce=!0;let t=h(it());return e(t),Promise.resolve(t)}if(!de()){ae=!0;let t=at("Save session is quiesced");return e(t),Promise.resolve(t)}if(B>0){$e=!0;let t=h("Autosave suspended");return e(t),Promise.resolve(t)}if(!Z&&we){k=!0;let t=h("Save already in progress");return e(t),Promise.resolve(t)}return Bn(e).catch(t=>{let n={ok:!1,msg:t?.message||"Save failed",msgType:"error",code:null,etag:null};return A("error",n.msg),n})}var et=Xt({now:G,run:()=>ke()});function vn(){document.addEventListener("keydown",function(e){if((window.navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)&&e.keyCode==83){if(!w)return;e.preventDefault(),e.isTrusted&&Ie(),I()}})}function gn(){document.addEventListener("click",e=>{e.target.closest("[trigger-save]")&&(e.isTrusted&&Ie(),I())})}function or(){w&&(Ue(),Ot(),Oe(),vn(),gn())}or();var Zr=I;var Le=!1;function ao({isCurrent:e,reload:t}){return e()?(Le=!0,setTimeout(()=>{Le=!1},1e3),t(),!0):!1}zt();function sr(){return rt()?!0:w?F()?!0:K?Tt():window.clay?.demo?!1:tt():!1}function tt(){if(!w)return!1;try{let e=V();return gt(e)?!1:e!==ft()}catch{return!0}}window.addEventListener("beforeunload",e=>{if(!w&&!rt())return;if(Le){Le=!1;return}if(!((!K||At())&&!sr())&&(e.preventDefault(),e.returnValue="",!window.clay?.demo&&!F()))try{let n=V(),o=ft();n!==o&&Yt(n,o)}catch{}});export{ao as a,sr as b,tt as c,En as d,rn as e,wn as f,de as g,rt as h,Tn as i,Ir as j,Rr as k,br as l,Nr as m,Fr as n,Ur as o,it as p,je as q,qr as r,Br as s,Hr as t,_n as u,Dn as v,Gr as w,Wr as x,Kr as y,ft as z,Qr as A,ue as B,Vr as C,I as D,j as E,$r as F,Yr as G,zr as H,Xr as I,dn as J,Yn as K,jr as L,Jr as M,gt as N,rr as O,ke as P,et as Q,vn as R,gn as S,or as T,Zr as U};
@@ -1 +1 @@
1
- import{d as b,e as m}from"./c-FDAXZ2PM.js";import"./c-L3F5ZLIV.js";import"./c-IW6GGOU2.js";import"./c-HAWFNBYG.js";import{e as h,f as d,g as l,h as w}from"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-QIXT3Q7C.js";import"./c-TCCA5BZN.js";import"./c-57XDY6HC.js";import"./c-JHJR5BQX.js";import"./c-TWCXBWS3.js";import"./c-LA2BW7UY.js";import"./c-IJUK2GPW.js";import{c as T}from"./c-BPF2NSPV.js";import{e as v}from"./c-EGTIAL6P.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";v(b);var x=1,y=class extends Error{constructor(a,n){super(n),this.name="PageCheckpointError",this.code=a}},k=(e,a)=>{throw new y(e,a)},t=(e,a)=>({ok:!1,code:e,message:a}),A=/^[0-9a-f]{64}$/,j=/^[0-9a-f]{32}$/,E=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function I(e){return{v:e.v,g:e.g,y:{...e.y??{}}}}function H(e){let a;try{a=JSON.parse(e)}catch{k("invalid-state","The page state is not JSON")}return(!E(a)||a.v!==1)&&k("invalid-state","Expected a version 1 Yjs page value"),{state:I(a),bytes:d(a)}}var S=e=>e==null?"":String(e);async function N({href:e,etag:a,fetch:n=globalThis.fetch,signal:s=null}={}){if(typeof a!="string"||!a)return t("missing-etag","A conditional read needs the accepted ETag");if(typeof e!="string"||!e)return t("no-page-state","This host names no page-state resource");if(typeof n!="function")return t("unavailable","This tab cannot read the page state");let i=globalThis.location?.href??"http://localhost/",p;try{p=new URL(e,i).href}catch{return t("no-page-state","The page-state resource is not a URL")}let c=T(),o;try{o=await n(p,{method:"GET",credentials:c?"omit":"same-origin",headers:{"If-Match":a,"Document-URL":globalThis.location?.href??i},cache:"no-store",redirect:"manual",signal:s})}catch{return t("unavailable","The page-state request did not complete")}if(!o||typeof o.status!="number")return t("unavailable","The page-state request did not answer");if(o.status===412)return t("etag-mismatch","Another version of this document is stored");if(o.status===428)return t("etag-required","The host needs a condition this read cannot send");if(o.status===404)return t("no-page-state","This host keeps no page state");if(!o.ok)return t("unavailable",`The host answered ${o.status}`);let r;try{r=JSON.parse(await o.text())}catch{return t("invalid-state","The page-state answer is not JSON")}return!E(r)||r.version!==x?t("unsupported-version","Unknown page-state version"):typeof r.tag!="string"||!r.tag?t("invalid-state","The page-state answer carries no page tag"):typeof r.stateHash!="string"||!A.test(r.stateHash)?t("invalid-state","The page-state answer carries no state digest"):typeof r.generation!="string"||!j.test(r.generation)?t("invalid-state","The page-state answer carries no generation"):typeof r.etag!="string"||!r.etag?t("invalid-state","The page-state answer carries no ETag"):Object.hasOwn(r,"documentId")?{ok:!0,version:r.version,documentId:r.documentId,generation:r.generation,etag:r.etag,stateHash:r.stateHash,tag:r.tag}:t("invalid-state","The page-state answer carries no document identity")}async function _(e,{accepted:a,article:n,etag:s}={}){if(!e||e.ok!==!0)return t(e?.code??"unavailable",e?.message??"The page state was not read");let i=a?.authority;if(!(i?.scope==="path"&&e.documentId==null)&&S(e.documentId)!==S(i?.documentId))return t("foreign-document","The page state belongs to another document");if(typeof a?.lineage?.generation!="string"||e.generation!==a.lineage.generation)return t("foreign-generation","The page state belongs to another generation");if(e.etag!==s)return t("etag-mismatch","The page state belongs to another version of this document");let c,o;try{({state:o,bytes:c}=H(e.tag))}catch(u){return t(u?.code??"invalid-state",u?.message??"The page state does not decode")}if(await h(c)!==e.stateHash)return t("state-digest-mismatch","The page state is not the one the host hashed");if(typeof n!="string")return t("missing-article","A proof names the final outgoing article");let r;try{r=m(o)}catch(u){return t("invalid-state",u?.message??"The page state does not project")}return r!==n?t("article-mismatch","The page state does not project to the accepted article"):{ok:!0,state:o,receipt:{file:e.etag,pageState:e.stateHash}}}async function O(e,a){let n=(a||[]).map(({id:s,revision:i})=>({id:s,revision:i}));try{return{ok:!0,proof:e,covered:await w(e,n)}}catch(s){return t(s?.code??"invalid-proof",s?.message??"The proof does not validate")}}async function R({capture:e,records:a=[],accepted:n,article:s,state:i=null,etag:p=null}={}){if(!i)return t("no-capture-state","No page state was pinned to this capture");if(typeof p!="string"||!p)return t("missing-etag","An accepted save with no ETag proves no stored pair");if(typeof s!="string")return t("missing-article","The accepted bytes hold no article");let c,o;try{c=m(i),o=d(i)}catch(u){return t(u?.code??"invalid-state",u?.message??"The pinned page state does not decode")}if(c!==s)return t("article-mismatch","The pinned page state does not project to the accepted article");let r;try{r=await l({capture:e,records:a,accepted:n,article:s,state:i,receipt:{file:p,pageState:await h(o)}})}catch(u){return t(u?.code??"invalid-proof",u?.message??"The proof could not be built")}return O(r,a)}async function B({read:e,capture:a,records:n=[],accepted:s,article:i,etag:p=null}={}){let c=await _(e,{accepted:s,article:i,etag:p});if(!c.ok)return c;let o;try{o=await l({capture:a,records:n,accepted:s,article:i,state:c.state,receipt:c.receipt})}catch(r){return t(r?.code??"invalid-proof",r?.message??"The proof could not be built")}return O(o,n)}async function G({channel:e,records:a=[],capture:n,accepted:s,article:i,state:p=null,etag:c=null,href:o=null,read:r=N,fetch:u}={}){if(!e||typeof e.checkpoint!="function")return{ok:!1,code:"no-channel",retired:[],proof:null};let f=await R({capture:n,records:a,accepted:s,article:i,state:p,etag:c});if(!f.ok){let P=await r({href:o,etag:c,fetch:u});f=await B({read:P,capture:n,records:a,accepted:s,article:i,etag:c})}if(!f.ok)return{ok:!1,code:f.code,retired:[],proof:null};let g=await e.checkpoint({records:f.covered,proof:f.proof});return!g||g.ok!==!0?{ok:!1,code:g?.code??"checkpoint-failed",retired:[],proof:f.proof}:{ok:!0,retired:g.retired??[],proof:f.proof}}export{x as PAGE_STATE_VERSION,y as PageCheckpointError,R as captureProof,G as checkpointAccepted,N as readPageState,B as refetchedProof,_ as verifyPageState};
1
+ import{d as b,e as m}from"./c-P6Q2ZTFQ.js";import"./c-L3F5ZLIV.js";import"./c-IW6GGOU2.js";import"./c-HAWFNBYG.js";import{e as h,f as d,g as l,h as w}from"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-QIXT3Q7C.js";import"./c-TCCA5BZN.js";import"./c-57XDY6HC.js";import"./c-YK2L436K.js";import"./c-TWCXBWS3.js";import"./c-LA2BW7UY.js";import"./c-IJUK2GPW.js";import{c as T}from"./c-BPF2NSPV.js";import{e as v}from"./c-PWJSJEJU.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";v(b);var x=1,y=class extends Error{constructor(a,n){super(n),this.name="PageCheckpointError",this.code=a}},k=(e,a)=>{throw new y(e,a)},t=(e,a)=>({ok:!1,code:e,message:a}),A=/^[0-9a-f]{64}$/,j=/^[0-9a-f]{32}$/,E=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function I(e){return{v:e.v,g:e.g,y:{...e.y??{}}}}function H(e){let a;try{a=JSON.parse(e)}catch{k("invalid-state","The page state is not JSON")}return(!E(a)||a.v!==1)&&k("invalid-state","Expected a version 1 Yjs page value"),{state:I(a),bytes:d(a)}}var S=e=>e==null?"":String(e);async function N({href:e,etag:a,fetch:n=globalThis.fetch,signal:s=null}={}){if(typeof a!="string"||!a)return t("missing-etag","A conditional read needs the accepted ETag");if(typeof e!="string"||!e)return t("no-page-state","This host names no page-state resource");if(typeof n!="function")return t("unavailable","This tab cannot read the page state");let i=globalThis.location?.href??"http://localhost/",p;try{p=new URL(e,i).href}catch{return t("no-page-state","The page-state resource is not a URL")}let c=T(),o;try{o=await n(p,{method:"GET",credentials:c?"omit":"same-origin",headers:{"If-Match":a,"Document-URL":globalThis.location?.href??i},cache:"no-store",redirect:"manual",signal:s})}catch{return t("unavailable","The page-state request did not complete")}if(!o||typeof o.status!="number")return t("unavailable","The page-state request did not answer");if(o.status===412)return t("etag-mismatch","Another version of this document is stored");if(o.status===428)return t("etag-required","The host needs a condition this read cannot send");if(o.status===404)return t("no-page-state","This host keeps no page state");if(!o.ok)return t("unavailable",`The host answered ${o.status}`);let r;try{r=JSON.parse(await o.text())}catch{return t("invalid-state","The page-state answer is not JSON")}return!E(r)||r.version!==x?t("unsupported-version","Unknown page-state version"):typeof r.tag!="string"||!r.tag?t("invalid-state","The page-state answer carries no page tag"):typeof r.stateHash!="string"||!A.test(r.stateHash)?t("invalid-state","The page-state answer carries no state digest"):typeof r.generation!="string"||!j.test(r.generation)?t("invalid-state","The page-state answer carries no generation"):typeof r.etag!="string"||!r.etag?t("invalid-state","The page-state answer carries no ETag"):Object.hasOwn(r,"documentId")?{ok:!0,version:r.version,documentId:r.documentId,generation:r.generation,etag:r.etag,stateHash:r.stateHash,tag:r.tag}:t("invalid-state","The page-state answer carries no document identity")}async function _(e,{accepted:a,article:n,etag:s}={}){if(!e||e.ok!==!0)return t(e?.code??"unavailable",e?.message??"The page state was not read");let i=a?.authority;if(!(i?.scope==="path"&&e.documentId==null)&&S(e.documentId)!==S(i?.documentId))return t("foreign-document","The page state belongs to another document");if(typeof a?.lineage?.generation!="string"||e.generation!==a.lineage.generation)return t("foreign-generation","The page state belongs to another generation");if(e.etag!==s)return t("etag-mismatch","The page state belongs to another version of this document");let c,o;try{({state:o,bytes:c}=H(e.tag))}catch(u){return t(u?.code??"invalid-state",u?.message??"The page state does not decode")}if(await h(c)!==e.stateHash)return t("state-digest-mismatch","The page state is not the one the host hashed");if(typeof n!="string")return t("missing-article","A proof names the final outgoing article");let r;try{r=m(o)}catch(u){return t("invalid-state",u?.message??"The page state does not project")}return r!==n?t("article-mismatch","The page state does not project to the accepted article"):{ok:!0,state:o,receipt:{file:e.etag,pageState:e.stateHash}}}async function O(e,a){let n=(a||[]).map(({id:s,revision:i})=>({id:s,revision:i}));try{return{ok:!0,proof:e,covered:await w(e,n)}}catch(s){return t(s?.code??"invalid-proof",s?.message??"The proof does not validate")}}async function R({capture:e,records:a=[],accepted:n,article:s,state:i=null,etag:p=null}={}){if(!i)return t("no-capture-state","No page state was pinned to this capture");if(typeof p!="string"||!p)return t("missing-etag","An accepted save with no ETag proves no stored pair");if(typeof s!="string")return t("missing-article","The accepted bytes hold no article");let c,o;try{c=m(i),o=d(i)}catch(u){return t(u?.code??"invalid-state",u?.message??"The pinned page state does not decode")}if(c!==s)return t("article-mismatch","The pinned page state does not project to the accepted article");let r;try{r=await l({capture:e,records:a,accepted:n,article:s,state:i,receipt:{file:p,pageState:await h(o)}})}catch(u){return t(u?.code??"invalid-proof",u?.message??"The proof could not be built")}return O(r,a)}async function B({read:e,capture:a,records:n=[],accepted:s,article:i,etag:p=null}={}){let c=await _(e,{accepted:s,article:i,etag:p});if(!c.ok)return c;let o;try{o=await l({capture:a,records:n,accepted:s,article:i,state:c.state,receipt:c.receipt})}catch(r){return t(r?.code??"invalid-proof",r?.message??"The proof could not be built")}return O(o,n)}async function G({channel:e,records:a=[],capture:n,accepted:s,article:i,state:p=null,etag:c=null,href:o=null,read:r=N,fetch:u}={}){if(!e||typeof e.checkpoint!="function")return{ok:!1,code:"no-channel",retired:[],proof:null};let f=await R({capture:n,records:a,accepted:s,article:i,state:p,etag:c});if(!f.ok){let P=await r({href:o,etag:c,fetch:u});f=await B({read:P,capture:n,records:a,accepted:s,article:i,etag:c})}if(!f.ok)return{ok:!1,code:f.code,retired:[],proof:null};let g=await e.checkpoint({records:f.covered,proof:f.proof});return!g||g.ok!==!0?{ok:!1,code:g?.code??"checkpoint-failed",retired:[],proof:f.proof}:{ok:!0,retired:g.retired??[],proof:f.proof}}export{x as PAGE_STATE_VERSION,y as PageCheckpointError,R as captureProof,G as checkpointAccepted,N as readPageState,B as refetchedProof,_ as verifyPageState};
@@ -1 +1 @@
1
- import{b as m}from"./c-PZ4XEPUP.js";import{a as c}from"./c-SFKI6OLM.js";import{a as p,b as y}from"./c-RHMPKZZ7.js";import{K as f,L as d}from"./c-EGTIAL6P.js";function g(e=new Date){let t=r=>String(r).padStart(2,"0");return`${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function h(e,t){let n=`<script type="application/json" id="clay-lost-edits" clay="no-save">${JSON.stringify(t).replace(/</g,"\\u003c")}<\/script>`,s=e.lastIndexOf("</body>");return s>=0?e.slice(0,s)+n+e.slice(s):e+n}function j(e,{refused:t=!1}={}){let r=window.clay?.conflicts||null,n=[],s=new Set;for(let o of e){let a=r?.recoveryOf(o.id);a&&!s.has(a.id)&&(s.add(a.id),n.push(a))}n.sort((o,a)=>(o.ticket||0)-(a.ticket||0));let u=o=>c(f(o.recoveryRoot??o.root,{prepared:o.domain==="save"})),i,l;t||!n.length?(i=c(d()),l=n):(i=u(n[n.length-1]),l=n.slice(0,-1));let w=e.map(o=>{if(o.kind==="apply-incomplete")return{id:o.id,kind:"apply-incomplete",name:"Sync update that did not finish",error:o.error??null};let{id:a,name:$,kind:S,yours:O,now:b,sentence:k}=m(o);return{id:a,name:$,kind:S,yours:O,now:b,sentence:k}}),v={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!!t,edits:w,earlierPages:l.map(o=>({applyId:o.id,source:o.source,html:u(o)}))};return{html:h(i,v),name:`${p()}-${t?"my-version":"my-copy"}-${g()}.html`}}async function I({html:e=null,edits:t=[]}={}){try{let r=c(typeof e=="string"?e:d()),n={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!1,edits:Array.isArray(t)?t:[],earlierPages:[]};return await y({html:h(r,n),name:`${p()}-my-copy-${g()}.html`})}catch(r){return console.error("clayjs: could not build the download",r),!1}}async function C(e,{refused:t=!1}={}){try{let{html:r,name:n}=j(e,{refused:t});return await y({html:r,name:n})}catch(r){return console.error("clayjs: could not build the download",r),!1}}export{I as a,C as b};
1
+ import{b as m}from"./c-PZ4XEPUP.js";import{a as c}from"./c-SFKI6OLM.js";import{a as p,b as y}from"./c-RHMPKZZ7.js";import{L as f,M as d}from"./c-PWJSJEJU.js";function g(e=new Date){let t=r=>String(r).padStart(2,"0");return`${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}-${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function h(e,t){let n=`<script type="application/json" id="clay-lost-edits" clay="no-save">${JSON.stringify(t).replace(/</g,"\\u003c")}<\/script>`,s=e.lastIndexOf("</body>");return s>=0?e.slice(0,s)+n+e.slice(s):e+n}function j(e,{refused:t=!1}={}){let r=window.clay?.conflicts||null,n=[],s=new Set;for(let o of e){let a=r?.recoveryOf(o.id);a&&!s.has(a.id)&&(s.add(a.id),n.push(a))}n.sort((o,a)=>(o.ticket||0)-(a.ticket||0));let u=o=>c(f(o.recoveryRoot??o.root,{prepared:o.domain==="save"})),i,l;t||!n.length?(i=c(d()),l=n):(i=u(n[n.length-1]),l=n.slice(0,-1));let w=e.map(o=>{if(o.kind==="apply-incomplete")return{id:o.id,kind:"apply-incomplete",name:"Sync update that did not finish",error:o.error??null};let{id:a,name:$,kind:S,yours:O,now:b,sentence:k}=m(o);return{id:a,name:$,kind:S,yours:O,now:b,sentence:k}}),v={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!!t,edits:w,earlierPages:l.map(o=>({applyId:o.id,source:o.source,html:u(o)}))};return{html:h(i,v),name:`${p()}-${t?"my-version":"my-copy"}-${g()}.html`}}async function I({html:e=null,edits:t=[]}={}){try{let r=c(typeof e=="string"?e:d()),n={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!1,edits:Array.isArray(t)?t:[],earlierPages:[]};return await y({html:h(r,n),name:`${p()}-my-copy-${g()}.html`})}catch(r){return console.error("clayjs: could not build the download",r),!1}}async function C(e,{refused:t=!1}={}){try{let{html:r,name:n}=j(e,{refused:t});return await y({html:r,name:n})}catch(r){return console.error("clayjs: could not build the download",r),!1}}export{I as a,C as b};
@@ -1 +1 @@
1
- import{B as g}from"./c-TMT5TL65.js";import"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var p=(t,r)=>{let s=-1;return t.forEach((n,l,c)=>{n.attrs.id===r&&(s=c)}),s};function y(t,r,s){let n=t.state,l=p(n.doc,r);if(l<0)return!1;let c=0;for(let e=0;e<l;e++)c+=n.doc.child(e).nodeSize;let a=n.doc.child(l);return t.dispatch(g(n.tr.setNodeMarkup(c,null,{...a.attrs,...s}))),!0}function b(t,r){let s=p(t.state.doc,r);if(s<0)return!1;let n=t.dom.parentElement,l=n.ownerDocument,c=0;for(let o=0;o<s;o++)c+=t.state.doc.child(o).nodeSize;let a=l.createElement("div");a.className="page-link",a.dataset.mode="alt";let e=l.createElement("input");e.className="page-link-input",e.type="text",e.value=t.state.doc.child(s).attrs.alt||"",e.placeholder="Describe the image",e.setAttribute("aria-label","Alt text"),a.append(e);let d=t.nodeDOM(c)?.getBoundingClientRect?.(),u=n.getBoundingClientRect();d&&(a.style.setProperty("--page-pop-x",`${d.left-u.left}px`),a.style.setProperty("--page-pop-y",`${d.bottom-u.top+6}px`)),n.append(a);let f=!1,i=(o,h=!0)=>{if(f)return;f=!0;let m=e.value.trim();a.remove();let x=p(t.state.doc,r);o&&x>=0&&m!==t.state.doc.child(x).attrs.alt&&y(t,r,{alt:m}),h&&t.focus()};return e.addEventListener("keydown",o=>{o.key==="Enter"?(o.preventDefault(),i(!0)):o.key==="Escape"&&(o.preventDefault(),o.stopPropagation(),i(!1))}),e.addEventListener("blur",()=>i(!0,!1)),e.focus(),!0}export{b as openAltEditor,y as setImageAttrs};
1
+ import{B as g}from"./c-HCNWJE4A.js";import"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var p=(t,r)=>{let s=-1;return t.forEach((n,l,c)=>{n.attrs.id===r&&(s=c)}),s};function y(t,r,s){let n=t.state,l=p(n.doc,r);if(l<0)return!1;let c=0;for(let e=0;e<l;e++)c+=n.doc.child(e).nodeSize;let a=n.doc.child(l);return t.dispatch(g(n.tr.setNodeMarkup(c,null,{...a.attrs,...s}))),!0}function b(t,r){let s=p(t.state.doc,r);if(s<0)return!1;let n=t.dom.parentElement,l=n.ownerDocument,c=0;for(let o=0;o<s;o++)c+=t.state.doc.child(o).nodeSize;let a=l.createElement("div");a.className="page-link",a.dataset.mode="alt";let e=l.createElement("input");e.className="page-link-input",e.type="text",e.value=t.state.doc.child(s).attrs.alt||"",e.placeholder="Describe the image",e.setAttribute("aria-label","Alt text"),a.append(e);let d=t.nodeDOM(c)?.getBoundingClientRect?.(),u=n.getBoundingClientRect();d&&(a.style.setProperty("--page-pop-x",`${d.left-u.left}px`),a.style.setProperty("--page-pop-y",`${d.bottom-u.top+6}px`)),n.append(a);let f=!1,i=(o,h=!0)=>{if(f)return;f=!0;let m=e.value.trim();a.remove();let x=p(t.state.doc,r);o&&x>=0&&m!==t.state.doc.child(x).attrs.alt&&y(t,r,{alt:m}),h&&t.focus()};return e.addEventListener("keydown",o=>{o.key==="Enter"?(o.preventDefault(),i(!0)):o.key==="Escape"&&(o.preventDefault(),o.stopPropagation(),i(!1))}),e.addEventListener("blur",()=>i(!0,!1)),e.focus(),!0}export{b as openAltEditor,y as setImageAttrs};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"./c-LV5MABYD.js";import"./c-N326R2JD.js";import"./c-I2SCCUEW.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as beginApply,d as completeApply,f as conflicts,e as failApply,a as loadEdit,b as registerContext};
1
+ import{a,b,c,d,e,f}from"./c-AYVGD6A6.js";import"./c-N326R2JD.js";import"./c-I2SCCUEW.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as beginApply,d as completeApply,f as conflicts,e as failApply,a as loadEdit,b as registerContext};
@@ -1,4 +1,4 @@
1
- import{b as K}from"./c-Q5KAQJAG.js";import{c as O}from"./c-W4JCVLAB.js";import{d as g}from"./c-TMT5TL65.js";import{I as C,m as y}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var z=`
1
+ import{b as K}from"./c-DTMZ3ZHI.js";import{c as O}from"./c-W4JCVLAB.js";import{d as g}from"./c-HCNWJE4A.js";import{I as C,m as y}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var z=`
2
2
  :where(article[data-page], .page-shell) { --page-board-lane: 274px; --page-board-gap: 14px; --page-board-radius: 8px; --page-board-panel: 360px; }
3
3
  .page-editor .page-board { margin-block: 1.1em 1.5em; font-size: 15px; line-height: 1.4; white-space: normal; }
4
4
  :is(.page-board, .page-board-panel) .i { flex: none; width: 16px; height: 16px; }
@@ -1 +1 @@
1
- import{B as h,d as f,h as x}from"./c-TMT5TL65.js";import{J as g,b as E,l as I,m as $}from"./c-QIXT3Q7C.js";var{Plugin:B,PluginKey:j}=E,k=$.nodes,m=new j("page-media"),L=1.5*1024*1024,u=new WeakMap,C=new WeakMap,U=(t,o)=>{let s=t.resolve(Math.max(0,Math.min(o,t.content.size)));return s.depth===0?s.pos:s.after(1)};function b(t,o){let s=x(t.doc),e=s[Math.min(o,s.length-1)],a=e.node.type===k.paragraph&&e.node.content.size===0;return{hostId:e.node.attrs.id,at:a?e.at:s[e.subEnd].end,parent:e.node.attrs.parent??null,replaceId:a?e.node.attrs.id:null}}var O={init:()=>({items:[],placed:{},picker:null}),apply(t,o){let{items:s,placed:e,picker:a}=o;if(t.docChanged&&(s=s.map(r=>({...r,pos:U(t.doc,t.mapping.map(r.pos,-1))}))),a&&t.docChanged&&(a={...a,place:{...a.place,at:U(t.doc,t.mapping.map(a.place.at,-1))}},a.remove)){let r=t.mapping.map(a.remove.from,1),c=t.mapping.map(a.remove.to,-1);a=r<=c&&t.doc.textBetween(r,c)===a.remove.text?{...a,remove:{...a.remove,from:r,to:c}}:null}let n=t.getMeta(m);if(n?.picker!==void 0&&(a=n.picker),n?.add&&(s=[...s,...n.add]),n?.update&&(s=s.map(r=>r.id===n.update.id?{...r,...n.update}:r)),n?.placed){let{id:r,at:c,size:d,blockId:p}=n.placed,i=o.items.find(l=>l.id===r);s=s.filter(l=>l.id!==r).map(l=>i&&l.pos===c&&l.group===i.group&&l.order>i.order?{...l,pos:l.pos+d}:l),i&&(e={...e,[i.group]:[...e[i.group]||[],p]})}n?.remove&&(s=s.filter(r=>r.id!==n.remove));for(let r of Object.keys(e))s.some(c=>c.group===r)||(e={...e},delete e[r]);return{items:s,placed:e,picker:a}}};function R(t,o,s){if(!o)return;let e=null,a=null;t.doc.forEach((n,r)=>{n.attrs.id===o&&e&&s.includes(e.attrs.id)&&(a={n,off:r}),e=n}),a&&a.n.type===k.paragraph&&a.n.content.size===0&&t.delete(a.off,a.off+a.n.nodeSize)}function P(t,o,s){let{items:e,placed:a}=m.getState(t),n=e.find(i=>i.id===o);if(!n)return null;let r=U(t.doc,n.pos),c=g(),d=(n.kind==="image"?k.image:k.file).create({...s,id:c,pos:null,parent:n.parent}),p=t.tr.insert(r,d);return e.some(i=>i.group===n.group&&i.id!==o)||R(p,n.replaceId,[...a[n.group]||[],c]),h(p).setMeta(m,{placed:{id:o,at:r,size:d.nodeSize,blockId:c}})}function F(t,o){let{items:s,placed:e}=m.getState(t),a=s.find(r=>r.id===o);if(!a)return null;let n=t.tr;return s.some(r=>r.group===a.group&&r.id!==o)||R(n,a.replaceId,e[a.group]||[]),n.docChanged&&h(n),n.setMeta(m,{remove:o})}function y(t,o,s=b(t.state,t.state.selection.$head.index(0))){if(o=[...o].filter(Boolean),!o.length)return!1;let e=g("g"),a=o.map((n,r)=>{let c=/^image\//.test(n.type||"")?"image":"file";return{id:g("u"),pos:s.at,group:e,order:r,file:n,kind:c,name:n.name||(c==="image"?"image":"file"),parent:s.parent,replaceId:s.replaceId,state:"uploading",percent:0,preview:c==="image"&&globalThis.URL?.createObjectURL?URL.createObjectURL(n):null}});t.dispatch(t.state.tr.setMeta(m,{add:a}));for(let n of a)H(t,n);return f(t,o.length===1?`Uploading ${a[0].name}`:`Uploading ${o.length} files`),!0}var z=(t,o)=>m.getState(t.state).items.find(s=>s.id===o),M=(t,o,s)=>t.dispatch(t.state.tr.setMeta(m,{update:{id:o,...s}})),A=(t,o)=>t.kind==="image"?{src:o,alt:"",caption:""}:{src:o,name:t.name,size:t.file.size??null,mime:t.file.type||null};function T(t,o,s){t.preview&&URL.revokeObjectURL?.(t.preview),s&&o.dispatch(s)}async function H(t,o){let s=u.get(t),e=new AbortController;s.aborts.set(o.id,e);let a=-5,n=({percent:d})=>{d-a<5&&d!==100||(a=d,u.has(t)&&z(t,o.id)&&M(t,o.id,{percent:d}))},r;try{r=await s.upload(o.file,{onProgress:n,signal:e.signal})}catch{r={code:"network",msg:"Upload failed"}}if(s.aborts.delete(o.id),!u.has(t)||!z(t,o.id))return;if(r?.ok){let d=I(r.uploads?.[0]?.url);if(d){T(o,t,P(t.state,o.id,A(o,d))),f(t,`${o.name} added`);return}r={code:"bad-response",msg:"The upload returned an invalid address"}}if((!r||typeof r!="object")&&(r={code:"bad-response",msg:"The upload returned an invalid response"}),r.code==="aborted")return T(o,t,F(t.state,o.id));if(r.code==="unsupported"){let d=/^image\/(png|jpeg|gif|webp)$/i.test(o.file.type)&&o.file.size<=L,p=d?"This host doesn't store files. You can keep this image inside the document, which makes the document larger.":o.kind==="image"&&o.file.size>L?"This host doesn't store files, and this image is over 1.5 MB, too large to keep inside the document.":"This host doesn't store files.";M(t,o.id,{state:d?"embed-choice":"error",code:r.code,message:p}),f(t,`${o.name}: ${p}`);return}let c=r.code==="timeout"?"The upload timed out. It may have arrived; trying again is safe.":r.msg||"Upload failed";M(t,o.id,{state:"error",code:r.code,message:c}),f(t,`${o.name}: ${c}`)}var Y=t=>t.replace(/<(meta|style|img)\b[^>]*>/gi,"").replace(/<[^>]+>/g,"").trim()!=="";function Q({upload:t,features:o=null}){let s=e=>{!o||o.has("media")||!u.has(e)||o.ensure("media").catch(()=>{})};return new B({key:m,state:O,view(e){let n=e.dom.ownerDocument.createElement("input");n.type="file",n.multiple=!0,n.hidden=!0,n.className="page-file-input",e.dom.parentElement.append(n),u.set(e,{upload:t,aborts:new Map,input:n}),n.addEventListener("change",()=>{let c=[...n.files??[]],d=m.getState(e.state).picker;if(e.dispatch(e.state.tr.setMeta(m,{picker:null})),c.length&&d){let{remove:p}=d;p&&e.state.doc.textBetween(p.from,p.to)===p.text&&e.dispatch(h(e.state.tr.delete(p.from,p.to)));let i=_(e.state.doc,d.place.hostId);(!d.place.hostId||i>=0)&&(y(e,c,i>=0?b(e.state,i):d.place),s(e))}n.value="",e.focus()}),n.addEventListener("cancel",()=>e.dispatch(e.state.tr.setMeta(m,{picker:null})));let r=c=>{let d=c.target.closest?.(".page-upload-btn");if(!d)return;c.preventDefault();let p=C.get(e),i=d.dataset.upload;d.dataset.act==="retry"?p?.retryUpload(e,i):d.dataset.act==="embed"?p?.embedUpload(e,i):p?.cancelUpload(e,i)};return e.dom.addEventListener("click",r),{destroy(){e.dom.removeEventListener("click",r);let c=u.get(e);u.delete(e);for(let d of m.getState(e.state).items)d.preview&&URL.revokeObjectURL?.(d.preview);for(let d of c.aborts.values())d.abort();n.remove()}}},props:{handlePaste(e,a){let n=a.clipboardData,r=[...n?.files??[]];if(!r.length||e.state.selection.$from.parent.type.spec.code||Y(n.getData("text/html")||""))return!1;let c=b(e.state,e.state.selection.$head.index(0));return a.preventDefault(),y(e,r,c),s(e),!0},handleDrop(e,a,n,r){let c=[...a.dataTransfer?.files??[]];if(r||!c.length)return!1;let d=e.posAtCoords({left:a.clientX,top:a.clientY});if(!d)return!1;let p=x(e.state.doc),i=Math.min(e.state.doc.resolve(d.pos).index(0),p.length-1),l=e.nodeDOM(p[i].at)?.getBoundingClientRect?.(),D=l&&a.clientY<l.top+l.height/2;a.preventDefault();let S={at:D?p[i].at:p[p[i].subEnd].end,parent:p[i].node.attrs.parent??null,replaceId:null};return y(e,c,S),s(e),!0}}})}var _=(t,o)=>{let s=-1;return t.forEach((e,a,n)=>{e.attrs.id===o&&(s=n)}),s};function V(t,o,s=b(t.state,t.state.selection.$head.index(0)),e=null){let a=u.get(t);if(!a)return!1;let n={place:s,remove:e&&{...e,text:t.state.doc.textBetween(e.from,e.to)}};return t.dispatch(t.state.tr.setMeta(m,{picker:n})),a.input.accept=o,a.input.click(),!0}export{m as a,L as b,u as c,C as d,U as e,b as f,P as g,F as h,z as i,M as j,A as k,T as l,H as m,Q as n,V as o};
1
+ import{B as h,d as f,h as x}from"./c-HCNWJE4A.js";import{J as g,b as E,l as I,m as $}from"./c-QIXT3Q7C.js";var{Plugin:B,PluginKey:j}=E,k=$.nodes,m=new j("page-media"),L=1.5*1024*1024,u=new WeakMap,C=new WeakMap,U=(t,o)=>{let s=t.resolve(Math.max(0,Math.min(o,t.content.size)));return s.depth===0?s.pos:s.after(1)};function b(t,o){let s=x(t.doc),e=s[Math.min(o,s.length-1)],a=e.node.type===k.paragraph&&e.node.content.size===0;return{hostId:e.node.attrs.id,at:a?e.at:s[e.subEnd].end,parent:e.node.attrs.parent??null,replaceId:a?e.node.attrs.id:null}}var O={init:()=>({items:[],placed:{},picker:null}),apply(t,o){let{items:s,placed:e,picker:a}=o;if(t.docChanged&&(s=s.map(r=>({...r,pos:U(t.doc,t.mapping.map(r.pos,-1))}))),a&&t.docChanged&&(a={...a,place:{...a.place,at:U(t.doc,t.mapping.map(a.place.at,-1))}},a.remove)){let r=t.mapping.map(a.remove.from,1),c=t.mapping.map(a.remove.to,-1);a=r<=c&&t.doc.textBetween(r,c)===a.remove.text?{...a,remove:{...a.remove,from:r,to:c}}:null}let n=t.getMeta(m);if(n?.picker!==void 0&&(a=n.picker),n?.add&&(s=[...s,...n.add]),n?.update&&(s=s.map(r=>r.id===n.update.id?{...r,...n.update}:r)),n?.placed){let{id:r,at:c,size:d,blockId:p}=n.placed,i=o.items.find(l=>l.id===r);s=s.filter(l=>l.id!==r).map(l=>i&&l.pos===c&&l.group===i.group&&l.order>i.order?{...l,pos:l.pos+d}:l),i&&(e={...e,[i.group]:[...e[i.group]||[],p]})}n?.remove&&(s=s.filter(r=>r.id!==n.remove));for(let r of Object.keys(e))s.some(c=>c.group===r)||(e={...e},delete e[r]);return{items:s,placed:e,picker:a}}};function R(t,o,s){if(!o)return;let e=null,a=null;t.doc.forEach((n,r)=>{n.attrs.id===o&&e&&s.includes(e.attrs.id)&&(a={n,off:r}),e=n}),a&&a.n.type===k.paragraph&&a.n.content.size===0&&t.delete(a.off,a.off+a.n.nodeSize)}function P(t,o,s){let{items:e,placed:a}=m.getState(t),n=e.find(i=>i.id===o);if(!n)return null;let r=U(t.doc,n.pos),c=g(),d=(n.kind==="image"?k.image:k.file).create({...s,id:c,pos:null,parent:n.parent}),p=t.tr.insert(r,d);return e.some(i=>i.group===n.group&&i.id!==o)||R(p,n.replaceId,[...a[n.group]||[],c]),h(p).setMeta(m,{placed:{id:o,at:r,size:d.nodeSize,blockId:c}})}function F(t,o){let{items:s,placed:e}=m.getState(t),a=s.find(r=>r.id===o);if(!a)return null;let n=t.tr;return s.some(r=>r.group===a.group&&r.id!==o)||R(n,a.replaceId,e[a.group]||[]),n.docChanged&&h(n),n.setMeta(m,{remove:o})}function y(t,o,s=b(t.state,t.state.selection.$head.index(0))){if(o=[...o].filter(Boolean),!o.length)return!1;let e=g("g"),a=o.map((n,r)=>{let c=/^image\//.test(n.type||"")?"image":"file";return{id:g("u"),pos:s.at,group:e,order:r,file:n,kind:c,name:n.name||(c==="image"?"image":"file"),parent:s.parent,replaceId:s.replaceId,state:"uploading",percent:0,preview:c==="image"&&globalThis.URL?.createObjectURL?URL.createObjectURL(n):null}});t.dispatch(t.state.tr.setMeta(m,{add:a}));for(let n of a)H(t,n);return f(t,o.length===1?`Uploading ${a[0].name}`:`Uploading ${o.length} files`),!0}var z=(t,o)=>m.getState(t.state).items.find(s=>s.id===o),M=(t,o,s)=>t.dispatch(t.state.tr.setMeta(m,{update:{id:o,...s}})),A=(t,o)=>t.kind==="image"?{src:o,alt:"",caption:""}:{src:o,name:t.name,size:t.file.size??null,mime:t.file.type||null};function T(t,o,s){t.preview&&URL.revokeObjectURL?.(t.preview),s&&o.dispatch(s)}async function H(t,o){let s=u.get(t),e=new AbortController;s.aborts.set(o.id,e);let a=-5,n=({percent:d})=>{d-a<5&&d!==100||(a=d,u.has(t)&&z(t,o.id)&&M(t,o.id,{percent:d}))},r;try{r=await s.upload(o.file,{onProgress:n,signal:e.signal})}catch{r={code:"network",msg:"Upload failed"}}if(s.aborts.delete(o.id),!u.has(t)||!z(t,o.id))return;if(r?.ok){let d=I(r.uploads?.[0]?.url);if(d){T(o,t,P(t.state,o.id,A(o,d))),f(t,`${o.name} added`);return}r={code:"bad-response",msg:"The upload returned an invalid address"}}if((!r||typeof r!="object")&&(r={code:"bad-response",msg:"The upload returned an invalid response"}),r.code==="aborted")return T(o,t,F(t.state,o.id));if(r.code==="unsupported"){let d=/^image\/(png|jpeg|gif|webp)$/i.test(o.file.type)&&o.file.size<=L,p=d?"This host doesn't store files. You can keep this image inside the document, which makes the document larger.":o.kind==="image"&&o.file.size>L?"This host doesn't store files, and this image is over 1.5 MB, too large to keep inside the document.":"This host doesn't store files.";M(t,o.id,{state:d?"embed-choice":"error",code:r.code,message:p}),f(t,`${o.name}: ${p}`);return}let c=r.code==="timeout"?"The upload timed out. It may have arrived; trying again is safe.":r.msg||"Upload failed";M(t,o.id,{state:"error",code:r.code,message:c}),f(t,`${o.name}: ${c}`)}var Y=t=>t.replace(/<(meta|style|img)\b[^>]*>/gi,"").replace(/<[^>]+>/g,"").trim()!=="";function Q({upload:t,features:o=null}){let s=e=>{!o||o.has("media")||!u.has(e)||o.ensure("media").catch(()=>{})};return new B({key:m,state:O,view(e){let n=e.dom.ownerDocument.createElement("input");n.type="file",n.multiple=!0,n.hidden=!0,n.className="page-file-input",e.dom.parentElement.append(n),u.set(e,{upload:t,aborts:new Map,input:n}),n.addEventListener("change",()=>{let c=[...n.files??[]],d=m.getState(e.state).picker;if(e.dispatch(e.state.tr.setMeta(m,{picker:null})),c.length&&d){let{remove:p}=d;p&&e.state.doc.textBetween(p.from,p.to)===p.text&&e.dispatch(h(e.state.tr.delete(p.from,p.to)));let i=_(e.state.doc,d.place.hostId);(!d.place.hostId||i>=0)&&(y(e,c,i>=0?b(e.state,i):d.place),s(e))}n.value="",e.focus()}),n.addEventListener("cancel",()=>e.dispatch(e.state.tr.setMeta(m,{picker:null})));let r=c=>{let d=c.target.closest?.(".page-upload-btn");if(!d)return;c.preventDefault();let p=C.get(e),i=d.dataset.upload;d.dataset.act==="retry"?p?.retryUpload(e,i):d.dataset.act==="embed"?p?.embedUpload(e,i):p?.cancelUpload(e,i)};return e.dom.addEventListener("click",r),{destroy(){e.dom.removeEventListener("click",r);let c=u.get(e);u.delete(e);for(let d of m.getState(e.state).items)d.preview&&URL.revokeObjectURL?.(d.preview);for(let d of c.aborts.values())d.abort();n.remove()}}},props:{handlePaste(e,a){let n=a.clipboardData,r=[...n?.files??[]];if(!r.length||e.state.selection.$from.parent.type.spec.code||Y(n.getData("text/html")||""))return!1;let c=b(e.state,e.state.selection.$head.index(0));return a.preventDefault(),y(e,r,c),s(e),!0},handleDrop(e,a,n,r){let c=[...a.dataTransfer?.files??[]];if(r||!c.length)return!1;let d=e.posAtCoords({left:a.clientX,top:a.clientY});if(!d)return!1;let p=x(e.state.doc),i=Math.min(e.state.doc.resolve(d.pos).index(0),p.length-1),l=e.nodeDOM(p[i].at)?.getBoundingClientRect?.(),D=l&&a.clientY<l.top+l.height/2;a.preventDefault();let S={at:D?p[i].at:p[p[i].subEnd].end,parent:p[i].node.attrs.parent??null,replaceId:null};return y(e,c,S),s(e),!0}}})}var _=(t,o)=>{let s=-1;return t.forEach((e,a,n)=>{e.attrs.id===o&&(s=n)}),s};function V(t,o,s=b(t.state,t.state.selection.$head.index(0)),e=null){let a=u.get(t);if(!a)return!1;let n={place:s,remove:e&&{...e,text:t.state.doc.textBetween(e.from,e.to)}};return t.dispatch(t.state.tr.setMeta(m,{picker:n})),a.input.accept=o,a.input.click(),!0}export{m as a,L as b,u as c,C as d,U as e,b as f,P as g,F as h,z as i,M as j,A as k,T as l,H as m,Q as n,V as o};
@@ -1 +1 @@
1
- import{d as R}from"./c-QHWJ5ZIJ.js";import{a as Y,c as j}from"./c-6KBKYLPO.js";import{g as P,q as k}from"./c-IHUWUKIU.js";import{b as H}from"./c-NUHP2XDB.js";var z=Symbol("clay.surfaceTheme"),L=(()=>{"use strict";let r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];class d{constructor({targetModal:e,triggers:t=[],onShow:n=()=>{},onClose:u=()=>{},openTrigger:o="data-micromodal-trigger",closeTrigger:x="data-micromodal-close",openClass:F="is-open",disableScroll:E=!1,disableFocus:M=!1,awaitCloseAnimation:C=!1,awaitOpenAnimation:c=!1,debugMode:p=!1}){this.modal=typeof e=="string"?document.getElementById(e):e,this.config={debugMode:p,disableScroll:E,openTrigger:o,closeTrigger:x,openClass:F,onShow:n,onClose:u,awaitCloseAnimation:C,awaitOpenAnimation:c,disableFocus:M},t.length>0&&this.registerTriggers(...t),this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this)}registerTriggers(...e){e.filter(Boolean).forEach(t=>{t.addEventListener("click",n=>this.showModal(n))})}showModal(e=null){if(this.activeElement=document.activeElement,this.modal.setAttribute("aria-hidden","false"),this.scrollBehaviour("disable"),this.addEventListeners(),this.config.awaitOpenAnimation){let t=()=>{this.modal.removeEventListener("animationend",t,!1),this.setFocusToFirstNode()};this.modal.addEventListener("animationend",t,!1)}else this.setFocusToFirstNode();this.config.onShow(this.modal,this.activeElement,e)}closeModal(e=null){this.modal.setAttribute("aria-hidden","true"),this.removeEventListeners(),this.scrollBehaviour("enable"),this.config.onClose(this.modal,this.activeElement,e)}scrollBehaviour(e){if(!this.config.disableScroll)return;let t=document.querySelector("body");switch(e){case"enable":Object.assign(t.style,{overflow:""});break;case"disable":Object.assign(t.style,{overflow:"hidden"});break;default:}}addEventListeners(){this.modal.addEventListener("touchstart",this.onClick),this.modal.addEventListener("click",this.onClick),document.addEventListener("keydown",this.onKeydown)}removeEventListeners(){this.modal&&(this.modal.removeEventListener("touchstart",this.onClick),this.modal.removeEventListener("click",this.onClick)),document.removeEventListener("keydown",this.onKeydown)}onClick(e){(e.target.hasAttribute(this.config.closeTrigger)||e.target.parentNode.hasAttribute(this.config.closeTrigger))&&(e.preventDefault(),e.stopPropagation(),this.closeModal(e))}onKeydown(e){e.keyCode===27&&this.closeModal(e),e.keyCode===9&&this.retainFocus(e)}getFocusableNodes(){let e=this.modal.querySelectorAll(r);return Array(...e)}setFocusToFirstNode(){if(this.config.disableFocus)return;let e=this.getFocusableNodes();if(e.length===0)return;let t=e.filter(n=>!n.hasAttribute(this.config.closeTrigger));t.length>0&&t[0].focus(),t.length===0&&e[0].focus()}retainFocus(e){let t=this.getFocusableNodes();if(t.length!==0)if(t=t.filter(n=>n.offsetParent!==null),!this.modal.contains(document.activeElement))t[0].focus();else{let n=t.indexOf(document.activeElement);e.shiftKey&&n===0&&(t[t.length-1].focus(),e.preventDefault()),!e.shiftKey&&t.length>0&&n===t.length-1&&(t[0].focus(),e.preventDefault())}}}let l=null,g=(i,e)=>{let t=[];return i.forEach(n=>{let u=n.attributes[e].value;t[u]===void 0&&(t[u]=[]),t[u].push(n)}),t},f=i=>{if(!document.getElementById(i))return console.warn(`MicroModal: \u2757Seems like you have missed %c'${i}'`,"background-color: #f8f9fa;color: #50596c;font-weight: bold;","ID somewhere in your code. Refer example below to resolve it."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",`<div class="modal" id="${i}"></div>`),!1},a=i=>{if(i.length<=0)return console.warn("MicroModal: \u2757Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<a href="#" data-micromodal-trigger="my-modal"></a>'),!1},m=(i,e)=>{if(a(i),!e)return!0;for(let t in e)f(t);return!0};return{init:i=>{let e=Object.assign({},{openTrigger:"data-micromodal-trigger"},i),t=[...document.querySelectorAll(`[${e.openTrigger}]`)],n=g(t,e.openTrigger);if(!(e.debugMode===!0&&m(t,n)===!1))for(let u in n){let o=n[u];e.targetModal=u,e.triggers=[...o],l=new d(e)}},show:(i,e)=>{let t=e||{};t.targetModal=i,!(t.debugMode===!0&&f(i)===!1)&&(l&&l.removeEventListeners(),l=new d(t),l.showModal())},close:()=>{l&&(l.closeModal(),l=null)}}})(),G=(()=>{let r="",d="",l="",g="100",f="",a="",m="",b,T=!0,v=!0,i=!1,e=[],t=[],n=[];return{isShowing:!1,open(){let o=e,x=t,F=n;e=[],t=[],n=[];let E=!1,M=()=>{E||(E=!0,x.forEach(s=>s()))};(this.isShowing||document.querySelector("[data-clay-modal]"))&&(this._dismiss?.(),this._cleanupListeners?.(),document.querySelectorAll("[data-clay-modal]").forEach(s=>{Y.get(s)?.(),s.remove()}),this.isShowing=!1,document.body.style.overflow=""),this._dismiss=M;let C=b===void 0?R():b,c=j({zIndex:g,closable:!!f,titled:!!a,...m?{width:m}:{},theme:C}),p=c.root,q=c.overlay,N=c.panel,O=c.body,A=c.footer,$=c.close,D={theme:C,parts:["dialog.button"],labelParts:["dialog.buttonLabel"]},y=P("",D),w=P("",{variant:"primary",...D});w.type="submit",A.append(y,w);let S=(s,h)=>{h instanceof Node?s.append(h):s.innerHTML=h};S(O,r),S(w.firstChild,d),S(y.firstChild,l),a&&S(c.heading,a),a&&N.setAttribute("aria-label",c.heading.textContent.trim()),k(O,!(r===""||r==null),"block"),(r===""||r==null)&&a&&H(A,"border-top","0"),document.body.prepend(p);let B=!1;function I(s){B=q.contains(s.target)&&!N.contains(s.target)}function _(s){(y.contains(s.target)||$?.contains(s.target)||T&&B&&!N.contains(s.target)&&q.contains(s.target))&&L.close(),B=!1}function K(s){if(p.contains(s.target)){s.preventDefault();let h=!0;for(let V of o)try{if(V()===!1){h=!1;break}}catch{h=!1;break}h&&(E=!0,L.close())}}document.addEventListener("mousedown",I),document.addEventListener("click",_),document.addEventListener("submit",K),this._cleanupListeners=()=>{document.removeEventListener("mousedown",I),document.removeEventListener("click",_),document.removeEventListener("submit",K)};function U(){k(A,!!(d||l),"flex"),k(w,!!d,"inline-flex"),k(y,!!l,"inline-flex")}if(U(),L.show(p,{disableScroll:v,disableFocus:!0,onClose:s=>{M(),p.remove(),r="",d="",l="",g="100",f="",a="",m="",b=void 0,T=!0,v=!0,i=!1,this.isShowing=!1,document.removeEventListener("mousedown",I),document.removeEventListener("click",_),document.removeEventListener("submit",K),this._cleanupListeners=null,this._dismiss=null}}),this.isShowing=!0,F.forEach(s=>s()),!i){let s=O.querySelector(":is(input,textarea,button):not([hidden])")||[w,y].find(h=>!h.hidden);s?.focus(),s?.setSelectionRange?.(-1,-1)}},close(){L.close()},get html(){return r},set html(o){r=o},get closeHtml(){return f},set closeHtml(o){f=o},get title(){return a},set title(o){a=o},get width(){return m},set width(o){m=o},get[z](){return b},set[z](o){b=o},get yes(){return d},set yes(o){d=o},get no(){return l},set no(o){l=o},get zIndex(){return g},set zIndex(o){g=o},get disableFocus(){return i},set disableFocus(o){i=o},get disableScroll(){return v},set disableScroll(o){v=o},get onYes(){return o=>{e.push(o)}},set onYes(o){e=[o]},get onNo(){return o=>{t.push(o)}},set onNo(o){t=[o]},get onOpen(){return o=>{n.push(o)}},set onOpen(o){n=[o]}}})(),ee=G;export{z as a,ee as b};
1
+ import{d as R}from"./c-QHWJ5ZIJ.js";import{a as Y,c as j}from"./c-G6COVIZB.js";import{g as P,q as k}from"./c-IHUWUKIU.js";import{b as H}from"./c-NUHP2XDB.js";var z=Symbol("clay.surfaceTheme"),L=(()=>{"use strict";let r=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];class d{constructor({targetModal:e,triggers:t=[],onShow:n=()=>{},onClose:u=()=>{},openTrigger:o="data-micromodal-trigger",closeTrigger:x="data-micromodal-close",openClass:F="is-open",disableScroll:E=!1,disableFocus:M=!1,awaitCloseAnimation:C=!1,awaitOpenAnimation:c=!1,debugMode:p=!1}){this.modal=typeof e=="string"?document.getElementById(e):e,this.config={debugMode:p,disableScroll:E,openTrigger:o,closeTrigger:x,openClass:F,onShow:n,onClose:u,awaitCloseAnimation:C,awaitOpenAnimation:c,disableFocus:M},t.length>0&&this.registerTriggers(...t),this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this)}registerTriggers(...e){e.filter(Boolean).forEach(t=>{t.addEventListener("click",n=>this.showModal(n))})}showModal(e=null){if(this.activeElement=document.activeElement,this.modal.setAttribute("aria-hidden","false"),this.scrollBehaviour("disable"),this.addEventListeners(),this.config.awaitOpenAnimation){let t=()=>{this.modal.removeEventListener("animationend",t,!1),this.setFocusToFirstNode()};this.modal.addEventListener("animationend",t,!1)}else this.setFocusToFirstNode();this.config.onShow(this.modal,this.activeElement,e)}closeModal(e=null){this.modal.setAttribute("aria-hidden","true"),this.removeEventListeners(),this.scrollBehaviour("enable"),this.config.onClose(this.modal,this.activeElement,e)}scrollBehaviour(e){if(!this.config.disableScroll)return;let t=document.querySelector("body");switch(e){case"enable":Object.assign(t.style,{overflow:""});break;case"disable":Object.assign(t.style,{overflow:"hidden"});break;default:}}addEventListeners(){this.modal.addEventListener("touchstart",this.onClick),this.modal.addEventListener("click",this.onClick),document.addEventListener("keydown",this.onKeydown)}removeEventListeners(){this.modal&&(this.modal.removeEventListener("touchstart",this.onClick),this.modal.removeEventListener("click",this.onClick)),document.removeEventListener("keydown",this.onKeydown)}onClick(e){(e.target.hasAttribute(this.config.closeTrigger)||e.target.parentNode.hasAttribute(this.config.closeTrigger))&&(e.preventDefault(),e.stopPropagation(),this.closeModal(e))}onKeydown(e){e.keyCode===27&&this.closeModal(e),e.keyCode===9&&this.retainFocus(e)}getFocusableNodes(){let e=this.modal.querySelectorAll(r);return Array(...e)}setFocusToFirstNode(){if(this.config.disableFocus)return;let e=this.getFocusableNodes();if(e.length===0)return;let t=e.filter(n=>!n.hasAttribute(this.config.closeTrigger));t.length>0&&t[0].focus(),t.length===0&&e[0].focus()}retainFocus(e){let t=this.getFocusableNodes();if(t.length!==0)if(t=t.filter(n=>n.offsetParent!==null),!this.modal.contains(document.activeElement))t[0].focus();else{let n=t.indexOf(document.activeElement);e.shiftKey&&n===0&&(t[t.length-1].focus(),e.preventDefault()),!e.shiftKey&&t.length>0&&n===t.length-1&&(t[0].focus(),e.preventDefault())}}}let l=null,g=(i,e)=>{let t=[];return i.forEach(n=>{let u=n.attributes[e].value;t[u]===void 0&&(t[u]=[]),t[u].push(n)}),t},f=i=>{if(!document.getElementById(i))return console.warn(`MicroModal: \u2757Seems like you have missed %c'${i}'`,"background-color: #f8f9fa;color: #50596c;font-weight: bold;","ID somewhere in your code. Refer example below to resolve it."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",`<div class="modal" id="${i}"></div>`),!1},a=i=>{if(i.length<=0)return console.warn("MicroModal: \u2757Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<a href="#" data-micromodal-trigger="my-modal"></a>'),!1},m=(i,e)=>{if(a(i),!e)return!0;for(let t in e)f(t);return!0};return{init:i=>{let e=Object.assign({},{openTrigger:"data-micromodal-trigger"},i),t=[...document.querySelectorAll(`[${e.openTrigger}]`)],n=g(t,e.openTrigger);if(!(e.debugMode===!0&&m(t,n)===!1))for(let u in n){let o=n[u];e.targetModal=u,e.triggers=[...o],l=new d(e)}},show:(i,e)=>{let t=e||{};t.targetModal=i,!(t.debugMode===!0&&f(i)===!1)&&(l&&l.removeEventListeners(),l=new d(t),l.showModal())},close:()=>{l&&(l.closeModal(),l=null)}}})(),G=(()=>{let r="",d="",l="",g="100",f="",a="",m="",b,T=!0,v=!0,i=!1,e=[],t=[],n=[];return{isShowing:!1,open(){let o=e,x=t,F=n;e=[],t=[],n=[];let E=!1,M=()=>{E||(E=!0,x.forEach(s=>s()))};(this.isShowing||document.querySelector("[data-clay-modal]"))&&(this._dismiss?.(),this._cleanupListeners?.(),document.querySelectorAll("[data-clay-modal]").forEach(s=>{Y.get(s)?.(),s.remove()}),this.isShowing=!1,document.body.style.overflow=""),this._dismiss=M;let C=b===void 0?R():b,c=j({zIndex:g,closable:!!f,titled:!!a,...m?{width:m}:{},theme:C}),p=c.root,q=c.overlay,N=c.panel,O=c.body,A=c.footer,$=c.close,D={theme:C,parts:["dialog.button"],labelParts:["dialog.buttonLabel"]},y=P("",D),w=P("",{variant:"primary",...D});w.type="submit",A.append(y,w);let S=(s,h)=>{h instanceof Node?s.append(h):s.innerHTML=h};S(O,r),S(w.firstChild,d),S(y.firstChild,l),a&&S(c.heading,a),a&&N.setAttribute("aria-label",c.heading.textContent.trim()),k(O,!(r===""||r==null),"block"),(r===""||r==null)&&a&&H(A,"border-top","0"),document.body.prepend(p);let B=!1;function I(s){B=q.contains(s.target)&&!N.contains(s.target)}function _(s){(y.contains(s.target)||$?.contains(s.target)||T&&B&&!N.contains(s.target)&&q.contains(s.target))&&L.close(),B=!1}function K(s){if(p.contains(s.target)){s.preventDefault();let h=!0;for(let V of o)try{if(V()===!1){h=!1;break}}catch{h=!1;break}h&&(E=!0,L.close())}}document.addEventListener("mousedown",I),document.addEventListener("click",_),document.addEventListener("submit",K),this._cleanupListeners=()=>{document.removeEventListener("mousedown",I),document.removeEventListener("click",_),document.removeEventListener("submit",K)};function U(){k(A,!!(d||l),"flex"),k(w,!!d,"inline-flex"),k(y,!!l,"inline-flex")}if(U(),L.show(p,{disableScroll:v,disableFocus:!0,onClose:s=>{M(),p.remove(),r="",d="",l="",g="100",f="",a="",m="",b=void 0,T=!0,v=!0,i=!1,this.isShowing=!1,document.removeEventListener("mousedown",I),document.removeEventListener("click",_),document.removeEventListener("submit",K),this._cleanupListeners=null,this._dismiss=null}}),this.isShowing=!0,F.forEach(s=>s()),!i){let s=O.querySelector(":is(input,textarea,button):not([hidden])")||[w,y].find(h=>!h.hidden);s?.focus(),s?.setSelectionRange?.(-1,-1)}},close(){L.close()},get html(){return r},set html(o){r=o},get closeHtml(){return f},set closeHtml(o){f=o},get title(){return a},set title(o){a=o},get width(){return m},set width(o){m=o},get[z](){return b},set[z](o){b=o},get yes(){return d},set yes(o){d=o},get no(){return l},set no(o){l=o},get zIndex(){return g},set zIndex(o){g=o},get disableFocus(){return i},set disableFocus(o){i=o},get disableScroll(){return v},set disableScroll(o){v=o},get onYes(){return o=>{e.push(o)}},set onYes(o){e=[o]},get onNo(){return o=>{t.push(o)}},set onNo(o){t=[o]},get onOpen(){return o=>{n.push(o)}},set onOpen(o){n=[o]}}})(),ee=G;export{z as a,ee as b};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f}from"./c-W7IPVCAA.js";import{g as a}from"./c-LIGQYZ7M.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-6RDOKLN7.js";import"./c-DTMZ3ZHI.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-HCNWJE4A.js";import"./c-QIXT3Q7C.js";import"./c-LCYPMULG.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-VHNSBD2M.js";export{e as ChartView,d as chartFromSlash,a as chartTables,b as insertChartAfterTable,f as refreshCharts,c as tableLabel};