@panphora/clayjs 1.19.0 → 1.20.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 (176) 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 +8186 -8076
  11. package/dist/m/attrs/{refetch-on-save-ZUE7PSCI.js → refetch-on-save-DPGJJMGN.js} +1 -1
  12. package/dist/m/attrs/save-freeze-MTFVVYV5.js +1 -0
  13. package/dist/m/{c-DHUCEMXE.js → c-2VB555FG.js} +1 -1
  14. package/dist/m/{c-KGHVFRR3.js → c-3AXJDL2P.js} +1 -1
  15. package/dist/m/{c-FOOE4GML.js → c-3GJ4XARY.js} +1 -1
  16. package/dist/m/c-3TWCKFOP.js +1 -0
  17. package/dist/m/{c-LPCZOYTX.js → c-3YH6JSIL.js} +1 -1
  18. package/dist/m/{c-AIWN4QN4.js → c-44B5ODN7.js} +2 -2
  19. package/dist/m/{c-S2U6NJU4.js → c-62HZW5DH.js} +1 -1
  20. package/dist/m/{c-ZGDYHKG3.js → c-67ILSNPR.js} +1 -1
  21. package/dist/m/c-67LGZ52V.js +20 -0
  22. package/dist/m/{c-ZRUQ5FSU.js → c-7SXYQCN4.js} +1 -1
  23. package/dist/m/{c-LACAAQFB.js → c-AL4RBJF2.js} +1 -1
  24. package/dist/m/{c-L42OLXWM.js → c-ANNFZFLN.js} +1 -1
  25. package/dist/m/{c-QO4HNGCQ.js → c-B4VYNXTQ.js} +1 -1
  26. package/dist/m/{c-7PRJCA3E.js → c-BJPZCWAV.js} +1 -1
  27. package/dist/m/{c-V52FE5FI.js → c-BTLFLLML.js} +1 -1
  28. package/dist/m/c-C4IIQZGJ.js +1 -0
  29. package/dist/m/{c-5T6NZHNM.js → c-CAWNFER6.js} +1 -1
  30. package/dist/m/c-CSNE5EIF.js +1 -0
  31. package/dist/m/{c-DVYGFTSK.js → c-DDDOKPI6.js} +2 -2
  32. package/dist/m/{c-2RARVIAK.js → c-DHXPDLW6.js} +1 -1
  33. package/dist/m/{c-WCXLG3MV.js → c-E4IBSAQM.js} +1 -1
  34. package/dist/m/{c-IVTRVENZ.js → c-EDSPKYMA.js} +1 -1
  35. package/dist/m/{c-2Y4DOHSY.js → c-EFD6QNTE.js} +1 -1
  36. package/dist/m/{c-7MG5RU63.js → c-EGTIAL6P.js} +1 -1
  37. package/dist/m/{c-FCNAO2MI.js → c-EOCKLMKX.js} +1 -1
  38. package/dist/m/{c-UXFUJEZO.js → c-EOCZ2YVL.js} +1 -1
  39. package/dist/m/{c-K72SY2TL.js → c-EZ7B5AZT.js} +1 -1
  40. package/dist/m/{c-UPD33ZPE.js → c-FDAXZ2PM.js} +1 -1
  41. package/dist/m/{c-P3CK66NT.js → c-FNVQAACK.js} +1 -1
  42. package/dist/m/c-FSWRGBVQ.js +1 -0
  43. package/dist/m/c-FTWGYI5E.js +1 -0
  44. package/dist/m/{c-WKNRJX3C.js → c-GKEATME6.js} +1 -1
  45. package/dist/m/{c-QINHDETP.js → c-GPGYKER7.js} +1 -1
  46. package/dist/m/{c-FWKHM4E7.js → c-GSRLXYWL.js} +1 -1
  47. package/dist/m/{c-B7J4K2AE.js → c-GVPNDIKJ.js} +2 -2
  48. package/dist/m/{c-FTQKI7SP.js → c-I2IFKJX2.js} +1 -1
  49. package/dist/m/c-ICMAOOGK.js +1 -0
  50. package/dist/m/{c-HUISJXHF.js → c-J3BXFTZS.js} +1 -1
  51. package/dist/m/{c-BIJALSRD.js → c-JDZDF2QM.js} +1 -1
  52. package/dist/m/{c-UDHIVLYH.js → c-JH5FF4NL.js} +1 -1
  53. package/dist/m/{c-OYRZ7XG2.js → c-JHJR5BQX.js} +1 -1
  54. package/dist/m/{c-V44KWI2L.js → c-JOH753EJ.js} +2 -2
  55. package/dist/m/{c-P3OFYUMA.js → c-JUE7B4OX.js} +1 -1
  56. package/dist/m/c-K76AUL4I.js +7 -0
  57. package/dist/m/{c-ZWIOJGMT.js → c-LA2BW7UY.js} +1 -1
  58. package/dist/m/{c-ICJYHABF.js → c-LDUNOR57.js} +1 -1
  59. package/dist/m/{c-XSZKP646.js → c-LIBE4HPD.js} +1 -1
  60. package/dist/m/c-LPUJXRXW.js +1 -0
  61. package/dist/m/{c-JK3PHE7J.js → c-LQU7TXIH.js} +1 -1
  62. package/dist/m/{c-5ZQV7KC4.js → c-LV5MABYD.js} +1 -1
  63. package/dist/m/{c-GWNC3UGL.js → c-M4FSPNQ2.js} +1 -1
  64. package/dist/m/{c-2KIEGNC4.js → c-MEWUGR4D.js} +1 -1
  65. package/dist/m/c-MIL4B2JQ.js +1 -0
  66. package/dist/m/{c-IVMD3FEM.js → c-N7Y52HJH.js} +1 -1
  67. package/dist/m/{c-O4JMKN6U.js → c-NFR673TL.js} +2 -2
  68. package/dist/m/{c-ZKNBMNN3.js → c-NLZ5AN4L.js} +1 -1
  69. package/dist/m/{c-RRZJWFLE.js → c-OABVRYOT.js} +1 -1
  70. package/dist/m/c-PIVIYLTY.js +1 -0
  71. package/dist/m/{c-L7JL5TL3.js → c-QY7F6EN6.js} +1 -1
  72. package/dist/m/{c-UY4QX42B.js → c-RG6XUZFA.js} +1 -1
  73. package/dist/m/c-RHMPKZZ7.js +1 -0
  74. package/dist/m/{c-TJAXGIRV.js → c-RQRMPZXD.js} +1 -1
  75. package/dist/m/{c-GY422N3Q.js → c-RS77ODLY.js} +1 -1
  76. package/dist/m/{c-BAUBNYXK.js → c-RT3C74GY.js} +1 -1
  77. package/dist/m/{c-CAS3NND4.js → c-S5IEIZCN.js} +1 -1
  78. package/dist/m/{c-HXPHZN7Q.js → c-SBSMJIPC.js} +1 -1
  79. package/dist/m/c-SFKI6OLM.js +2 -0
  80. package/dist/m/{c-4FJTBE6I.js → c-SJPD46ZO.js} +4 -4
  81. package/dist/m/{c-JCP3XDSJ.js → c-SO63UGPQ.js} +1 -1
  82. package/dist/m/{c-PLP4JKFC.js → c-TUGVINJR.js} +1 -1
  83. package/dist/m/{c-Q26MME6N.js → c-TWCXBWS3.js} +1 -1
  84. package/dist/m/{c-GNDL3TKB.js → c-U5X57T4L.js} +1 -1
  85. package/dist/m/{c-ZS4US2XV.js → c-UXEVJ63W.js} +1 -1
  86. package/dist/m/{c-KJJPV77R.js → c-V2J5C5MT.js} +1 -1
  87. package/dist/m/{c-7PYNAULW.js → c-VBLFAQD2.js} +1 -1
  88. package/dist/m/{c-ERQSNR6K.js → c-VQCEOGKH.js} +2 -2
  89. package/dist/m/{c-YVZ2L7CE.js → c-VSPAFOKU.js} +1 -1
  90. package/dist/m/{c-L6FLIUXP.js → c-VY6XRBOW.js} +1 -1
  91. package/dist/m/{c-2KL3BD52.js → c-W23KVGUO.js} +1 -1
  92. package/dist/m/{c-AXGY2WTB.js → c-W3K23S72.js} +1 -1
  93. package/dist/m/c-WFMRX5RZ.js +1 -0
  94. package/dist/m/{c-BWFVSBDF.js → c-WN3MXOLT.js} +1 -1
  95. package/dist/m/{c-MIKZEG5I.js → c-XD5MOROJ.js} +1 -1
  96. package/dist/m/{c-CQQDL6O4.js → c-XQSXKIKM.js} +1 -1
  97. package/dist/m/{c-I4MQHOEY.js → c-Y33LUUIQ.js} +1 -1
  98. package/dist/m/{c-JDARJDOT.js → c-YQUJ74R3.js} +1 -1
  99. package/dist/m/{c-F6G2OGYG.js → c-YSB6JKV2.js} +2 -2
  100. package/dist/m/{c-WQWIRWO3.js → c-Z32V4MHK.js} +1 -1
  101. package/dist/m/{c-BHZYSHW4.js → c-ZJLU56DV.js} +1 -1
  102. package/dist/m/{c-DKLS74XB.js → c-ZQXNHZZT.js} +2 -2
  103. package/dist/m/{c-TNEM3RNM.js → c-ZSCBEB7I.js} +1 -1
  104. package/dist/m/core/{admin-attrs-YY7T5FGU.js → admin-attrs-ZG7R5V3E.js} +1 -1
  105. package/dist/m/core/{autosave-RVJPYLRT.js → autosave-VPORYJSE.js} +1 -1
  106. package/dist/m/core/{conflict-notice-2WGT52LH.js → conflict-notice-JMAZLVRX.js} +1 -1
  107. package/dist/m/core/{persist-UKXV5KLA.js → persist-3OPWJKZS.js} +1 -1
  108. package/dist/m/core/{recovery-ZOUOJVIX.js → recovery-DRFZRJED.js} +1 -1
  109. package/dist/m/core/{save-A5JXV6ME.js → save-AOJBDSOK.js} +1 -1
  110. package/dist/m/core/{save-core-MKRPSEEO.js → save-core-IOCMXO5L.js} +1 -1
  111. package/dist/m/core/{snapshot-NU3YM6GR.js → snapshot-O7II2AGG.js} +1 -1
  112. package/dist/m/core/unsaved-warning-U5VUJFOE.js +1 -0
  113. package/dist/m/events/{index-RN2JNGBV.js → index-B6TGDYMG.js} +1 -1
  114. package/dist/m/internals/{index-TGLQINN3.js → index-HDRANDWE.js} +1 -1
  115. package/dist/m/lib/{cache-bust-MUMFXZK6.js → cache-bust-NH7VBWHO.js} +1 -1
  116. package/dist/m/lib/{region-policy-SB2AWVG5.js → region-policy-KWBPROWF.js} +1 -1
  117. package/dist/m/{loader-34YPFKOH.js → loader-DZZLUBVB.js} +1 -1
  118. package/dist/m/manifest-3AEF5191.js +1 -0
  119. package/dist/m/manifest-edit-29A26F22.js +1 -0
  120. package/dist/m/manifest.json +1202 -1158
  121. package/dist/m/options/{options-EJMS3K24.js → options-55LQHSJ4.js} +1 -1
  122. package/dist/m/page/{editor-WRQGHDSG.js → editor-EY2WAAGB.js} +2 -2
  123. package/dist/m/plugins/{ai-edit-X2L2KIEP.js → ai-edit-J5VLSW5I.js} +1 -1
  124. package/dist/m/plugins/{demo-OYO5GCAO.js → demo-42BSYQ7T.js} +1 -1
  125. package/dist/m/plugins/{live-7C36XEI2.js → live-5EZN2EYP.js} +1 -1
  126. package/dist/m/plugins/menu-KGWKT6CS.js +1 -0
  127. package/dist/m/plugins/{page-BSW6MGDO.js → page-LVW5DWA4.js} +2 -2
  128. package/dist/m/plugins/{page-view-WFZVTPQK.js → page-view-5KQ76IJB.js} +1 -1
  129. package/dist/m/plugins/{sortable-4S6SQC3D.js → sortable-WJZZBM7R.js} +1 -1
  130. package/dist/m/plugins/{source-TJXOIOYY.js → source-CCEUM3OR.js} +1 -1
  131. package/dist/m/plugins/{undo-NLPGCJQY.js → undo-3JEYK5QY.js} +1 -1
  132. package/dist/m/plugins/{upgrade-HSUNDNJD.js → upgrade-NW556WJD.js} +1 -1
  133. package/dist/m/plugins/{upload-NHGJXZK2.js → upload-TTCQRIM5.js} +1 -1
  134. package/dist/m/plugins/{visitor-drafts-BW43DGY3.js → visitor-drafts-2AWNT23K.js} +2 -2
  135. package/dist/m/plugins/{visitor-drafts-owner-7ODQG7JX.js → visitor-drafts-owner-MZP45XSG.js} +1 -1
  136. package/dist/m/plugins/{wire-6OSIL3I7.js → wire-VRYPY6EJ.js} +1 -1
  137. package/dist/m/{reader-core-PLZYLYLT.js → reader-core-2GXY7SHY.js} +2 -2
  138. package/dist/m/sync/{live-sync-UXNI6ZF6.js → live-sync-SKPMFYOO.js} +1 -1
  139. package/dist/m/ui/{index-IVWN2QC4.js → index-QNIPDHXQ.js} +1 -1
  140. package/dist/offline-manifest.json +634 -610
  141. package/docs/guide.md +24 -8
  142. package/package.json +3 -2
  143. package/src/core/conflict-download.js +8 -7
  144. package/src/core/conflict-notice-ui.js +4 -4
  145. package/src/core/copy-content.js +103 -0
  146. package/src/core/download.js +14 -2
  147. package/src/core/save-size-notice.js +2 -2
  148. package/src/core/upgrade-run.js +5 -1
  149. package/src/lib/region-policy.js +1 -1
  150. package/src/page/features/export-html.js +4 -4
  151. package/src/page/features/export-markdown.js +2 -2
  152. package/src/page/recovery-ui.js +2 -2
  153. package/src/page/save-states.js +4 -4
  154. package/src/plugins/menu/actions.js +1 -1
  155. package/src/plugins/page.js +4 -4
  156. package/src/plugins/visitor-drafts/prompt.js +12 -12
  157. package/src/plugins/wire.js +3 -1
  158. package/dist/m/attrs/save-freeze-LWGF6XUN.js +0 -1
  159. package/dist/m/c-DCFSEJZG.js +0 -1
  160. package/dist/m/c-EXEDYU4H.js +0 -1
  161. package/dist/m/c-GRXHHFPO.js +0 -1
  162. package/dist/m/c-HT2DKBV2.js +0 -1
  163. package/dist/m/c-MCOOHCSG.js +0 -1
  164. package/dist/m/c-MMXKAX2W.js +0 -1
  165. package/dist/m/c-VE7RKNKZ.js +0 -7
  166. package/dist/m/c-VR2BJ4AN.js +0 -1
  167. package/dist/m/c-WGW764WX.js +0 -1
  168. package/dist/m/c-WNTYKCDG.js +0 -1
  169. package/dist/m/c-YBSS55KU.js +0 -20
  170. package/dist/m/core/unsaved-warning-4ZPEV7BF.js +0 -1
  171. package/dist/m/manifest-0D166F4F.js +0 -1
  172. package/dist/m/manifest-edit-3877153E.js +0 -1
  173. package/dist/m/plugins/menu-MFC4DI5E.js +0 -1
  174. /package/dist/m/{c-QTTJYJMA.js → c-FILLTJA7.js} +0 -0
  175. /package/dist/m/{c-5JLFROUB.js → c-X5LNHET5.js} +0 -0
  176. /package/dist/m/plugins/{people-JCHVPF7P.js → people-C7TVBBMR.js} +0 -0
@@ -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-ZKNBMNN3.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-B7J4K2AE.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-7MG5RU63.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-NLZ5AN4L.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-GVPNDIKJ.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)}:{
2
2
  ${Object.entries(o).map(([n,s])=>`${R(n)}:${R(s)}`).join(`,
3
3
  `)}
4
4
  }`).join(`,
@@ -1 +1 @@
1
- import{a as w}from"./c-UGNV5MFB.js";import{b as m,c as v}from"./c-TNEM3RNM.js";import"./c-VKEDWYDF.js";import{m as f,o as y}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var L="script[editmode\\:resource]";function d(e=document){let t=[...e.querySelectorAll(L)];return{reversible:t.length===0,scripts:t}}function R(e=document){return{enable(){m(e)},quiesce(){},resume(){},dispose(){v()}}}function g(e=document){return{id:"clay:resources",order:100,prepare(){let{reversible:t}=d(e);if(!t)throw Object.assign(new Error("clay.modeLifecycle: an editmode:resource script cannot be re-run"),{code:"unsupported-plugin"});return R(e)}}}var b=!1,S=()=>{let e=new Set;for(let t of f()){if(typeof t?.then=="function")continue;let n=t?.id;if(typeof n!="string"||typeof t?.prepare!="function"||e.has(n))return!1;e.add(n)}return!0},j=e=>[...e?.edit?.core??[],...e?.edit?.plugins??[],...e?.edit?.late??[],...e?.view?.plugins??[],...e?.view?.late??[]];function A(e){return[...new Set(j(e))].filter(t=>w(t)===null)}function T(e){return S()&&A(e).length===0&&d().reversible}function _(){b||(b=!0,y(g()))}var l=()=>Object.assign(new Error("clay.modeLifecycle: the import was cancelled"),{name:"AbortError",code:"aborted"}),O=15e3,E=(e,t)=>Object.assign(new Error(`clayjs: ${e}`),{code:t}),q=(e,t)=>new Promise((n,s)=>{if(t?.aborted)return s(l());let o=()=>s(l());t?.addEventListener?.("abort",o),Promise.resolve(e).then(i=>{t?.removeEventListener?.("abort",o),n(i)},i=>{t?.removeEventListener?.("abort",o),s(i)})}),h=e=>!e?.represented||e.represented.bytes===null,P=e=>e&&(e.liveSync??e.default??e)||null;async function k(e,t={}){let n=t.signal,s={signal:n,deadline:O},o=e?.loaded?.["plugins/page-view.js"];if(o?.ready){await q(o.acquired,n);let a=await o.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}let i=P(e?.loaded?.["sync/live-sync.js"]);if(i&&!i.isDestroyed&&i.lane==="saved"){let a=await i.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}return null}function I(e,t=null){let n=e?.loaded?.["plugins/page-view.js"],s=Array.isArray(e?.view?.plugins)?e.view.plugins.includes("sync/live-sync.js"):!!e?.loaded?.["sync/live-sync.js"];if(n&&((n.restart??n.start)({sync:s,represented:t}),!s))return;let o=P(e?.loaded?.["sync/live-sync.js"]);if(o)return o.start(o.currentFile,{lane:"saved",represented:t})}async function V(e,t,{signal:n}={}){let s=e.inflight||=new Map,o=[],i=()=>{if(n?.aborted)throw l()},a=e.loadEditHints?.();if(a)try{await a}catch{}let u=r=>{if(!s.has(r)){let c=Promise.resolve().then(()=>e.modules[r]()).catch(x=>{throw s.delete(r),x});s.set(r,c)}return s.get(r)};for(let r of t.core??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,c.install?.()}e.attachEditCore(e.loaded);for(let r of t.plugins??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}let p=(t.late??[]).filter(r=>!e.loaded[r]);if(p.length){i();try{await e.late}catch{}for(let r of p){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}}return o}export{V as importPlan,T as liveAllowed,_ as openResources,k as prepareReader,I as startReader,A as unsupportedPaths};
1
+ import{a as w}from"./c-UGNV5MFB.js";import{b as m,c as v}from"./c-ZSCBEB7I.js";import"./c-VKEDWYDF.js";import{m as f,o as y}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.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";var L="script[editmode\\:resource]";function d(e=document){let t=[...e.querySelectorAll(L)];return{reversible:t.length===0,scripts:t}}function R(e=document){return{enable(){m(e)},quiesce(){},resume(){},dispose(){v()}}}function g(e=document){return{id:"clay:resources",order:100,prepare(){let{reversible:t}=d(e);if(!t)throw Object.assign(new Error("clay.modeLifecycle: an editmode:resource script cannot be re-run"),{code:"unsupported-plugin"});return R(e)}}}var b=!1,S=()=>{let e=new Set;for(let t of f()){if(typeof t?.then=="function")continue;let n=t?.id;if(typeof n!="string"||typeof t?.prepare!="function"||e.has(n))return!1;e.add(n)}return!0},j=e=>[...e?.edit?.core??[],...e?.edit?.plugins??[],...e?.edit?.late??[],...e?.view?.plugins??[],...e?.view?.late??[]];function A(e){return[...new Set(j(e))].filter(t=>w(t)===null)}function T(e){return S()&&A(e).length===0&&d().reversible}function _(){b||(b=!0,y(g()))}var l=()=>Object.assign(new Error("clay.modeLifecycle: the import was cancelled"),{name:"AbortError",code:"aborted"}),O=15e3,E=(e,t)=>Object.assign(new Error(`clayjs: ${e}`),{code:t}),q=(e,t)=>new Promise((n,s)=>{if(t?.aborted)return s(l());let o=()=>s(l());t?.addEventListener?.("abort",o),Promise.resolve(e).then(i=>{t?.removeEventListener?.("abort",o),n(i)},i=>{t?.removeEventListener?.("abort",o),s(i)})}),h=e=>!e?.represented||e.represented.bytes===null,P=e=>e&&(e.liveSync??e.default??e)||null;async function k(e,t={}){let n=t.signal,s={signal:n,deadline:O},o=e?.loaded?.["plugins/page-view.js"];if(o?.ready){await q(o.acquired,n);let a=await o.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}let i=P(e?.loaded?.["sync/live-sync.js"]);if(i&&!i.isDestroyed&&i.lane==="saved"){let a=await i.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}return null}function I(e,t=null){let n=e?.loaded?.["plugins/page-view.js"],s=Array.isArray(e?.view?.plugins)?e.view.plugins.includes("sync/live-sync.js"):!!e?.loaded?.["sync/live-sync.js"];if(n&&((n.restart??n.start)({sync:s,represented:t}),!s))return;let o=P(e?.loaded?.["sync/live-sync.js"]);if(o)return o.start(o.currentFile,{lane:"saved",represented:t})}async function V(e,t,{signal:n}={}){let s=e.inflight||=new Map,o=[],i=()=>{if(n?.aborted)throw l()},a=e.loadEditHints?.();if(a)try{await a}catch{}let u=r=>{if(!s.has(r)){let c=Promise.resolve().then(()=>e.modules[r]()).catch(x=>{throw s.delete(r),x});s.set(r,c)}return s.get(r)};for(let r of t.core??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,c.install?.()}e.attachEditCore(e.loaded);for(let r of t.plugins??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}let p=(t.late??[]).filter(r=>!e.loaded[r]);if(p.length){i();try{await e.late}catch{}for(let r of p){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}}return o}export{V as importPlan,T as liveAllowed,_ as openResources,k as prepareReader,I as startReader,A as unsupportedPaths};
@@ -1,2 +1,2 @@
1
- import{w as b}from"./c-4FJTBE6I.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-CQQDL6O4.js";import"./c-ZGDYHKG3.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{d as M}from"./c-AIWN4QN4.js";import{e as x,m as f,u as k,w as g}from"./c-QIXT3Q7C.js";import{a as T}from"./c-WCXLG3MV.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-SJPD46ZO.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-XQSXKIKM.js";import"./c-67ILSNPR.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{d as M}from"./c-44B5ODN7.js";import{e as x,m as f,u as k,w as g}from"./c-QIXT3Q7C.js";import{a as T}from"./c-E4IBSAQM.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,4 +1,4 @@
1
- import{N as _,ea as A,ja as D,na as F,o as O,sa as T}from"./c-QIXT3Q7C.js";import{a as L,b as I}from"./c-MCOOHCSG.js";import"./c-VHNSBD2M.js";var P="\uFFFC",R='@{"type":"hard_break"}',q={b:"strong",i:"em",s:"strike",c:"code"},z=new Set(["paragraph","heading","list_item","toggle","quote","callout","code_block"]),B=new Set(["paragraph","heading","list_item","quote","callout","code_block","toggle","divider","toc","image","file","table","chart","board","tool","preserved"]),X=new Set(["\\","`","*","_","[","]","(",")","#","!",">","|","<","&"]),U=new Set(["-","+","=","~"]);function E(n){let s=String(n??""),i="",u="";for(let c of s){let a=X.has(c);!a&&u===""&&U.has(c)&&(a=!0),!a&&c==="."&&u!==""&&/^\d+$/.test(u)&&(a=!0),i+=a?`\\${c}`:c,u=c===`
1
+ import{N as _,ea as A,ja as D,na as F,o as O,sa as T}from"./c-QIXT3Q7C.js";import{a as L,b as I}from"./c-RHMPKZZ7.js";import"./c-VHNSBD2M.js";var P="\uFFFC",R='@{"type":"hard_break"}',q={b:"strong",i:"em",s:"strike",c:"code"},z=new Set(["paragraph","heading","list_item","toggle","quote","callout","code_block"]),B=new Set(["paragraph","heading","list_item","quote","callout","code_block","toggle","divider","toc","image","file","table","chart","board","tool","preserved"]),X=new Set(["\\","`","*","_","[","]","(",")","#","!",">","|","<","&"]),U=new Set(["-","+","=","~"]);function E(n){let s=String(n??""),i="",u="";for(let c of s){let a=X.has(c);!a&&u===""&&U.has(c)&&(a=!0),!a&&c==="."&&u!==""&&/^\d+$/.test(u)&&(a=!0),i+=a?`\\${c}`:c,u=c===`
2
2
  `?"":u+c}return i}function W(n){let s=String(n),i=(s.match(/`+/g)??[]).reduce((a,f)=>Math.max(a,f.length),0),u="`".repeat(i+1),c=/^[`\s]|[`\s]$/.test(s)?" ":"";return`${u}${c}${s}${c}${u}`}function Y(n,s=""){let i=String(n??"").replace(/\r\n?/g,`
3
3
  `).replace(/\n$/,""),u=(i.match(/`+/g)??[]).reduce((f,k)=>Math.max(f,k.length),0),c="`".repeat(Math.max(3,u+1)),a=String(s??"").trim().split(/\s+/)[0].replace(/`/g,"");return`${c}${a}
4
4
  ${i}
@@ -10,4 +10,4 @@ ${c}`}var N=n=>/[\s()<>]/.test(n)?`<${n.trim().replace(/</g,"%3C").replace(/>/g,
10
10
  `);g(l);continue}if(d==="code_block"){g(Y(e.c,e.lang));continue}if(d==="divider"){g("---");continue}if(d==="image"){let l=String(e.src??"");if(e.width!=null&&o("image width"),e.align!=null&&o("image alignment"),!l){o("image address");let m=String(e.alt??"");m&&g(E(m));continue}let p=E(e.alt??""),x=e.caption?` "${String(e.caption).replace(/"/g,'\\"')}"`:"";g(`![${p}](${N(l)}${x})`);continue}if(d==="file"){e.size!=null&&o("file size"),e.mime!=null&&o("file type");let l=String(e.src??""),p=E(e.name||"file");g(l?`[${p}](${N(l)})`:p);continue}if(d==="table"){let l=Array.isArray(e.cols)?e.cols:[],p=Array.isArray(e.rows)?e.rows:[];for(let b of l)b.kind!=null&&o("column kind"),b.width!=null&&o("column width");if(e.sort!=null&&o("sort"),!l.length){o("empty table");continue}let x=b=>(typeof b=="string"?E(b):b&&typeof b=="object"?S(b,o):"").replace(/\n/g," ").trim(),m=l.map(b=>E(b.name??"")).join(" | "),y=l.map(()=>"---").join(" | "),v=p.map(b=>`| ${l.map(j=>x(b.cells?.[j.id])).join(" | ")} |`);g([`| ${m} |`,`| ${y} |`,...v].join(`
11
11
  `));continue}if(d==="toc"){f(e,"Table of contents"),g(A(e,s));continue}if(d==="chart"){f(e,"Chart"),g(M(e,s));continue}if(d==="board"){f(e,"Board"),g(M(e,s));continue}if(d==="tool"){f(e,"Tool"),g(M(e,s));continue}if(d==="preserved"){f(e,"Raw HTML"),g(M(e,s));continue}d==="callout"&&(f(e,"Callout"),g(M(e,s)))}let t=h.join(`
12
12
  `).replace(/^\n+/,"").replace(/\n+$/,"");return{text:t?`${t}
13
- `:"",extensions:c,losses:a,blocks:i.length}}function K(n="page"){return`${String(n??"").replace(/[\\/:*?"<>|\u0000-\u001f]+/g,"-").replace(/^[.\s]+/,"").replace(/[.\s]+$/,"")||"page"}.md`}function se({view:n=null,download:s=I}={}){if(!n)return{run:()=>Promise.resolve({ok:!1,code:"not-editing"}),dispose(){}};let i=n.dom.ownerDocument,u=null,c=!1;function a(){let t=u;if(!t)return!1;u=null;for(let[r,e,o,d]of t.listen)r.removeEventListener(e,o,d);return t.panel.remove(),!0}function f(){return a()?(n.focus?.(),{ok:!0,cancelled:!0}):{ok:!1,code:"cancelled"}}function k(t){let r=[],e=(p,x)=>{let m=i.createElement("div");return m.className=p,m.textContent=x,m};r.push(e("page-menu-title","Export as Markdown"));let o=[`${t.report.blocks} block${t.report.blocks===1?"":"s"}`];t.report.extensions.length&&o.push(`${t.report.extensions.length} kept as HTML`),t.report.losses.length&&o.push(`${t.report.losses.length} lost`),r.push(e("page-menu-title page-export-summary",o.join(" \xB7 ")));let d=(p,x,m)=>{if(!m.length)return;let y=i.createElement("div");y.className=p,y.append(e("page-menu-title",x));for(let v of m){let b=e("page-export-row",v.name);b.dataset.block=v.block??"",b.dataset.type=v.type??"",y.append(b)}r.push(y)};if(d("page-export-extensions","Kept as HTML",t.report.extensions),d("page-export-losses","Not kept in Markdown",t.report.losses),!t.report.extensions.length&&!t.report.losses.length&&r.push(e("page-export-row","Everything here is written as Markdown.")),t.notice){let p=i.createElement("p");p.className="page-export-error",p.setAttribute("role","alert"),p.textContent=t.notice,r.push(p)}let l=(p,x)=>{let m=i.createElement("button");return m.type="button",m.className="page-menu-item",m.dataset.export=p,m.textContent=x,m.addEventListener("mousedown",y=>y.preventDefault()),m.addEventListener("click",()=>p==="download"?h():f()),m};r.push(l("download",`Download ${t.name}`),l("cancel","Cancel")),t.panel.replaceChildren(...r)}function h(){let t=u;return t?s({html:t.report.text,name:t.name,type:"text/markdown"})?(a(),n.focus?.(),{ok:!0,downloaded:!0}):(t.notice="That download could not be made.",k(t),{ok:!1,code:"download-failed"}):{ok:!1,code:"no-export"}}function $(t){!u||t.isComposing||t.keyCode===229||(t.key==="Escape"?(t.preventDefault(),t.stopPropagation(),f()):t.key==="Enter"&&!t.target?.closest?.("[data-export]")&&(t.preventDefault(),t.stopPropagation(),h()))}function g(t,r){let e=i.createElement("div");e.className="page-menu page-export-preview",e.setAttribute("role","dialog"),e.setAttribute("aria-label","Export Markdown");let o={report:t,name:r,panel:e,notice:null,listen:[]};u=o;let d=(l,p,x,m)=>{l.addEventListener(p,x,m),o.listen.push([l,p,x,m])};return d(i,"keydown",l=>$(l),!0),d(i,"mousedown",l=>{o.panel.contains(l.target)||f()},!0),(n.dom.parentElement??i.body).appendChild(e),k(o),e.querySelector('[data-export="download"]')?.focus?.(),{ok:!0,preview:!0}}function C(){return n.composing?new Promise(t=>{let r=()=>{n.dom.removeEventListener("compositionend",r),t()};n.dom.addEventListener("compositionend",r)}):Promise.resolve()}async function w(){if(c||n.isDestroyed)return{ok:!1,code:"not-editing"};if(a(),await C(),c||n.isDestroyed)return{ok:!1,code:"not-editing"};let t=_(n.state.doc),r;try{r=H(t)}catch(e){return{ok:!1,code:"export-failed",error:e}}return g(r,K(L()))}return{async run(t){return w(t)},dispose(){c=!0,a()}}}export{se as createFeature};
13
+ `:"",extensions:c,losses:a,blocks:i.length}}function K(n="page"){return`${String(n??"").replace(/[\\/:*?"<>|\u0000-\u001f]+/g,"-").replace(/^[.\s]+/,"").replace(/[.\s]+$/,"")||"page"}.md`}function se({view:n=null,download:s=I}={}){if(!n)return{run:()=>Promise.resolve({ok:!1,code:"not-editing"}),dispose(){}};let i=n.dom.ownerDocument,u=null,c=!1;function a(){let t=u;if(!t)return!1;u=null;for(let[r,e,o,d]of t.listen)r.removeEventListener(e,o,d);return t.panel.remove(),!0}function f(){return a()?(n.focus?.(),{ok:!0,cancelled:!0}):{ok:!1,code:"cancelled"}}function k(t){let r=[],e=(p,x)=>{let m=i.createElement("div");return m.className=p,m.textContent=x,m};r.push(e("page-menu-title","Export as Markdown"));let o=[`${t.report.blocks} block${t.report.blocks===1?"":"s"}`];t.report.extensions.length&&o.push(`${t.report.extensions.length} kept as HTML`),t.report.losses.length&&o.push(`${t.report.losses.length} lost`),r.push(e("page-menu-title page-export-summary",o.join(" \xB7 ")));let d=(p,x,m)=>{if(!m.length)return;let y=i.createElement("div");y.className=p,y.append(e("page-menu-title",x));for(let v of m){let b=e("page-export-row",v.name);b.dataset.block=v.block??"",b.dataset.type=v.type??"",y.append(b)}r.push(y)};if(d("page-export-extensions","Kept as HTML",t.report.extensions),d("page-export-losses","Not kept in Markdown",t.report.losses),!t.report.extensions.length&&!t.report.losses.length&&r.push(e("page-export-row","Everything here is written as Markdown.")),t.notice){let p=i.createElement("p");p.className="page-export-error",p.setAttribute("role","alert"),p.textContent=t.notice,r.push(p)}let l=(p,x)=>{let m=i.createElement("button");return m.type="button",m.className="page-menu-item",m.dataset.export=p,m.textContent=x,m.addEventListener("mousedown",y=>y.preventDefault()),m.addEventListener("click",()=>p==="download"?h():f()),m};r.push(l("download",`Download ${t.name}`),l("cancel","Cancel")),t.panel.replaceChildren(...r)}async function h(){let t=u;return t?await s({html:t.report.text,name:t.name,type:"text/markdown"})?(a(),n.focus?.(),{ok:!0,downloaded:!0}):(t.notice="That download could not be made.",k(t),{ok:!1,code:"download-failed"}):{ok:!1,code:"no-export"}}function $(t){!u||t.isComposing||t.keyCode===229||(t.key==="Escape"?(t.preventDefault(),t.stopPropagation(),f()):t.key==="Enter"&&!t.target?.closest?.("[data-export]")&&(t.preventDefault(),t.stopPropagation(),h()))}function g(t,r){let e=i.createElement("div");e.className="page-menu page-export-preview",e.setAttribute("role","dialog"),e.setAttribute("aria-label","Export Markdown");let o={report:t,name:r,panel:e,notice:null,listen:[]};u=o;let d=(l,p,x,m)=>{l.addEventListener(p,x,m),o.listen.push([l,p,x,m])};return d(i,"keydown",l=>$(l),!0),d(i,"mousedown",l=>{o.panel.contains(l.target)||f()},!0),(n.dom.parentElement??i.body).appendChild(e),k(o),e.querySelector('[data-export="download"]')?.focus?.(),{ok:!0,preview:!0}}function C(){return n.composing?new Promise(t=>{let r=()=>{n.dom.removeEventListener("compositionend",r),t()};n.dom.addEventListener("compositionend",r)}):Promise.resolve()}async function w(){if(c||n.isDestroyed)return{ok:!1,code:"not-editing"};if(a(),await C(),c||n.isDestroyed)return{ok:!1,code:"not-editing"};let t=_(n.state.doc),r;try{r=H(t)}catch(e){return{ok:!1,code:"export-failed",error:e}}return g(r,K(L()))}return{async run(t){return w(t)},dispose(){c=!0,a()}}}export{se as createFeature};
@@ -1 +1 @@
1
- import{n as a,o as p,r as l,u as f}from"./c-7MG5RU63.js";import{i as c}from"./c-HA6INT6J.js";var y="http://www.w3.org/1999/xhtml",T=64*1024,u=256;function d(e){return e.namespaceURI===y&&e.localName!=="template"&&e.getElementsByTagName("*").length>=u}function*h(e,t,s,o){for(let n of e.childNodes){if(n.nodeType===1&&d(n)){yield*m(n,s,o);continue}let r;n.nodeType===1?r=n.outerHTML:(t.replaceChildren(n.cloneNode(!1)),r=t.innerHTML),s.push(r),o.bytes+=r.length,o.bytes>=T&&(o.bytes=0,yield)}}function*m(e,t,s){let o=l(e,!1),n=o.outerHTML,r=`</${o.localName}>`;t.push(n.slice(0,n.length-r.length)),yield*h(e,o,t,s),t.push(r)}function*i(e){let t=["<!DOCTYPE html>"];return yield*m(e,t,{bytes:0}),t.join("")}function*g(e){let t=a(e);if(!t.length)return yield*i(e);let s=p(t),o;try{o=yield*i(e)}finally{for(let[n,r]of t)n.replaceChildren(...r)}for(let[n,r]of s)o=o.split(n).join(r);return o}function*E(e){return f(e),yield*i(e)}function*L(e){let t=l(e,!1);for(let r of c)t.removeAttribute(r);let s=t.outerHTML,o=`</${t.localName}>`,n=["<!DOCTYPE html>",s.slice(0,s.length-o.length)];return yield*h(e,l(e,!1),n,{bytes:0}),n.push(o),n.join("")}export{i as a,g as b,E as c,L as d};
1
+ import{n as a,o as p,r as l,u as f}from"./c-EGTIAL6P.js";import{i as c}from"./c-HA6INT6J.js";var y="http://www.w3.org/1999/xhtml",T=64*1024,u=256;function d(e){return e.namespaceURI===y&&e.localName!=="template"&&e.getElementsByTagName("*").length>=u}function*h(e,t,s,o){for(let n of e.childNodes){if(n.nodeType===1&&d(n)){yield*m(n,s,o);continue}let r;n.nodeType===1?r=n.outerHTML:(t.replaceChildren(n.cloneNode(!1)),r=t.innerHTML),s.push(r),o.bytes+=r.length,o.bytes>=T&&(o.bytes=0,yield)}}function*m(e,t,s){let o=l(e,!1),n=o.outerHTML,r=`</${o.localName}>`;t.push(n.slice(0,n.length-r.length)),yield*h(e,o,t,s),t.push(r)}function*i(e){let t=["<!DOCTYPE html>"];return yield*m(e,t,{bytes:0}),t.join("")}function*g(e){let t=a(e);if(!t.length)return yield*i(e);let s=p(t),o;try{o=yield*i(e)}finally{for(let[n,r]of t)n.replaceChildren(...r)}for(let[n,r]of s)o=o.split(n).join(r);return o}function*E(e){return f(e),yield*i(e)}function*L(e){let t=l(e,!1);for(let r of c)t.removeAttribute(r);let s=t.outerHTML,o=`</${t.localName}>`,n=["<!DOCTYPE html>",s.slice(0,s.length-o.length)];return yield*h(e,l(e,!1),n,{bytes:0}),n.push(o),n.join("")}export{i as a,g as b,E as c,L as d};
@@ -1 +1 @@
1
- import{d as t,e as o}from"./c-FCNAO2MI.js";import"./c-4FJTBE6I.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-CQQDL6O4.js";import"./c-ZGDYHKG3.js";import{c as e}from"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-AIWN4QN4.js";import"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-VHNSBD2M.js";function c({view:r=null}={}){let a=r?e(r,{update:o}):()=>{};return{id:"chart",nodeViews:{chart:(i,n,d)=>new t(i,n,d)},dispose(){a()}}}export{c as createFeature};
1
+ import{d as t,e as o}from"./c-EOCKLMKX.js";import"./c-SJPD46ZO.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-XQSXKIKM.js";import"./c-67ILSNPR.js";import{c as e}from"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-44B5ODN7.js";import"./c-QIXT3Q7C.js";import"./c-E4IBSAQM.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-VHNSBD2M.js";function c({view:r=null}={}){let a=r?e(r,{update:o}):()=>{};return{id:"chart",nodeViews:{chart:(i,n,d)=>new t(i,n,d)},dispose(){a()}}}export{c as createFeature};
@@ -1 +1 @@
1
- import{c as x}from"./c-UY4QX42B.js";import{a as b,b as e}from"./c-BRLCTNMC.js";import{d as y}from"./c-QHWJ5ZIJ.js";import{a as T}from"./c-UL2YUY52.js";import{g as H,j as u,n as w,p as N}from"./c-BJ7YQ5QZ.js";import{b as h,c as k,e as m}from"./c-VAK7SG37.js";import{a as v}from"./c-VKEDWYDF.js";function O(t,r,n="",o=!1,l="",a="OK"){let i=y(),c=u("div",["display:flex","flex-direction:column","gap:14px",`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`],{theme:i,parts:["dialog.content"],role:"text"}),s=null;o&&(s=N("input",{rules:["display:block","width:100%","margin:0"],theme:i,parts:["dialog.input"]}),s.setAttribute("value",String(l)),s.required=!0,c.append(s)),c.insertAdjacentHTML("beforeend",n),e.title=t,e.html=o||n?c:"",e.width="440px",e[b]=i,e.closeHtml="x",e.no="Cancel",e.yes=a;let d=new Promise((f,g)=>{e.onYes(()=>{let p;if(o&&(p=s.value,!p))return!1;if(r)try{r(p)}catch(C){return x(C.message||"An error occurred","error"),!1}return setTimeout(()=>f(p),0),!0}),e.onNo=()=>{setTimeout(g,0)}});return e.open(),setTimeout(()=>{let f=document.querySelector("[data-clay-modal]");f&&f.addEventListener("click",g=>{let p=g.target.closest("[data-copy]");p&&(T(p.dataset.copy),x("Copied","success"))})},0),d.catch(()=>{}),d}function q(t,r,n="",o=""){return O(t,r,o,!0,n,"OK")}function B(t,r,n=""){return O(t,r,n,!1,"","Confirm")}function F(t,...r){let n=y(),o=u("div",["display:flex","flex-direction:column","gap:12px"],{theme:n,parts:["dialog.content"]});for(let a of r){let i=w("div",[`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`,"overflow-wrap:anywhere"],void 0,{theme:n});i.innerHTML=a,o.append(i)}e.title=t,e.html=r.length?o:"",e.width="470px",e[b]=n,e.closeHtml="x",e.yes="OK";let l=new Promise((a,i)=>{e.onYes(()=>(setTimeout(a,0),!0)),e.onNo=()=>{setTimeout(i,0)}});return e.open(),l.catch(()=>{}),l}function R(t,r,n=""){let o=y(),l=u("div",["display:block"],{theme:o,parts:["dialog.content"]}),a=u("div",["display:block","max-width:100%","overflow-x:auto","margin:0 0 14px","padding:14px 16px",`background:${m.sunk}`,`border:1px solid ${m["line-2"]}`],{theme:o,parts:["dialog.well"],role:"well"}),i=w("pre",["display:block","margin:0","white-space:nowrap",`font:13px/1.6 ${k}`],void 0,{theme:o,parts:["dialog.code"],role:"code"});i.innerHTML=r,a.append(i);let c=H("Copy",{small:!0,extra:["margin:0 0 14px"],theme:o,parts:["dialog.button","dialog.copyButton"],labelParts:["dialog.buttonLabel"],onClick:()=>{T(r),x("Copied to clipboard!","success")}});l.append(a,c),l.insertAdjacentHTML("beforeend",n||""),e.title=t,e.html=l,e.width="540px",e[b]=o,e.closeHtml="x",e.yes="";let s=new Promise(d=>{e.onYes(()=>(setTimeout(d,0),!0)),e.onNo=()=>{setTimeout(d,0)}});return e.open(),s}function M(){v(()=>{let t=document.querySelector("[data-clay-modal]");t&&(t.remove(),document.body.style.overflow="")})}M();export{q as a,B as b,F as c,R as d,M as e};
1
+ import{a as b,b as e}from"./c-BRLCTNMC.js";import{d as y}from"./c-QHWJ5ZIJ.js";import{c as x}from"./c-RG6XUZFA.js";import{a as T}from"./c-UL2YUY52.js";import{g as H,j as u,n as w,p as N}from"./c-BJ7YQ5QZ.js";import{b as h,c as k,e as m}from"./c-VAK7SG37.js";import{a as v}from"./c-VKEDWYDF.js";function O(t,r,n="",o=!1,l="",a="OK"){let i=y(),c=u("div",["display:flex","flex-direction:column","gap:14px",`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`],{theme:i,parts:["dialog.content"],role:"text"}),s=null;o&&(s=N("input",{rules:["display:block","width:100%","margin:0"],theme:i,parts:["dialog.input"]}),s.setAttribute("value",String(l)),s.required=!0,c.append(s)),c.insertAdjacentHTML("beforeend",n),e.title=t,e.html=o||n?c:"",e.width="440px",e[b]=i,e.closeHtml="x",e.no="Cancel",e.yes=a;let d=new Promise((f,g)=>{e.onYes(()=>{let p;if(o&&(p=s.value,!p))return!1;if(r)try{r(p)}catch(C){return x(C.message||"An error occurred","error"),!1}return setTimeout(()=>f(p),0),!0}),e.onNo=()=>{setTimeout(g,0)}});return e.open(),setTimeout(()=>{let f=document.querySelector("[data-clay-modal]");f&&f.addEventListener("click",g=>{let p=g.target.closest("[data-copy]");p&&(T(p.dataset.copy),x("Copied","success"))})},0),d.catch(()=>{}),d}function q(t,r,n="",o=""){return O(t,r,o,!0,n,"OK")}function B(t,r,n=""){return O(t,r,n,!1,"","Confirm")}function F(t,...r){let n=y(),o=u("div",["display:flex","flex-direction:column","gap:12px"],{theme:n,parts:["dialog.content"]});for(let a of r){let i=w("div",[`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`,"overflow-wrap:anywhere"],void 0,{theme:n});i.innerHTML=a,o.append(i)}e.title=t,e.html=r.length?o:"",e.width="470px",e[b]=n,e.closeHtml="x",e.yes="OK";let l=new Promise((a,i)=>{e.onYes(()=>(setTimeout(a,0),!0)),e.onNo=()=>{setTimeout(i,0)}});return e.open(),l.catch(()=>{}),l}function R(t,r,n=""){let o=y(),l=u("div",["display:block"],{theme:o,parts:["dialog.content"]}),a=u("div",["display:block","max-width:100%","overflow-x:auto","margin:0 0 14px","padding:14px 16px",`background:${m.sunk}`,`border:1px solid ${m["line-2"]}`],{theme:o,parts:["dialog.well"],role:"well"}),i=w("pre",["display:block","margin:0","white-space:nowrap",`font:13px/1.6 ${k}`],void 0,{theme:o,parts:["dialog.code"],role:"code"});i.innerHTML=r,a.append(i);let c=H("Copy",{small:!0,extra:["margin:0 0 14px"],theme:o,parts:["dialog.button","dialog.copyButton"],labelParts:["dialog.buttonLabel"],onClick:()=>{T(r),x("Copied to clipboard!","success")}});l.append(a,c),l.insertAdjacentHTML("beforeend",n||""),e.title=t,e.html=l,e.width="540px",e[b]=o,e.closeHtml="x",e.yes="";let s=new Promise(d=>{e.onYes(()=>(setTimeout(d,0),!0)),e.onNo=()=>{setTimeout(d,0)}});return e.open(),s}function M(){v(()=>{let t=document.querySelector("[data-clay-modal]");t&&(t.remove(),document.body.style.overflow="")})}M();export{q as a,B as b,F as c,R as d,M as e};
@@ -1 +1 @@
1
- import{a as ae}from"./c-LKSL4AUJ.js";import{i as ne,j as re}from"./c-4FJTBE6I.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-CQQDL6O4.js";import"./c-ZGDYHKG3.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as se}from"./c-AIWN4QN4.js";import{A as J,H as D,I as Z,J as N,O as ee,b as Y,j as U,k as G,m as K,na as te,ra as oe,x as Q}from"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import{a as W}from"./c-I2SCCUEW.js";import"./c-EK63G3CG.js";import"./c-VHNSBD2M.js";var be="iframe, frame, frameset, object, embed, applet, meta, base, link, form, style, animate, set, animateMotion, animateTransform, portal",ye=/^(srcdoc|data|formaction|codebase|archive|ping|background|poster|lowsrc|dynsrc)$/i,we=/^\s*(javascript|vbscript|data):/i;function xe(o){let l=document.createElement("template");l.innerHTML=o;for(let a of l.content.querySelectorAll(be))a.remove();for(let a of l.content.querySelectorAll("*"))for(let{name:i,value:h}of[...a.attributes])(ye.test(i)||we.test(h.replace(/[\u0000-\u0020]/g,"")))&&a.removeAttribute(i);return l.innerHTML}var F=2*1024*1024,ce=32,le=1e4,P=class extends Error{constructor(l,a){super(a),this.name="MarkdownImportError",this.code=l}},pe="\uFFFC",de={type:"hard_break"},ue=new Set(["paragraph","heading","list","blockquote","code","table","hr","html","def","space"]),Me=new TextEncoder,ie=K.marks,fe=o=>o.slice().sort((l,a)=>l.type.rank-a.type.rank);function j(o,l,a){return o.some(i=>i.type===ie[l])?o:fe([...o,ie[l].create(a)])}function Se(o,{images:l=!0,refused:a=[],unsupported:i=[]}={}){let h=[],k="",z=[],S=()=>{k&&h.push({c:k,m:z}),k="",z=[]},O=(A,g)=>{let p=String(A??"");if(!p)return;let C=Q(fe(g));k+=p;for(let b=0;b<p.length;b++)z.push(C)},$=A=>{k+=pe,z.push("@"+JSON.stringify(A))},E=(A,g)=>{for(let p of A??[]){let C=p?.type;if(typeof C!="string")throw new P("malformed-input","A Markdown token has no type.");switch(C){case"text":Array.isArray(p.tokens)?E(p.tokens.filter(b=>typeof b?.type=="string"&&!ue.has(b.type)),g):O(p.text,g);break;case"escape":O(p.text,g);break;case"strong":E(p.tokens,j(g,"strong"));break;case"em":E(p.tokens,j(g,"em"));break;case"del":case"strike":E(p.tokens,j(g,"strike"));break;case"codespan":O(p.text,j(g,"code"));break;case"br":$(de);break;case"link":{let b=U(p.href);b?E(p.tokens,j(g,"link",{href:b})):(a.push({type:"link",href:String(p.href??"")}),E(p.tokens,g));break}case"image":{let b={src:String(p.href??""),alt:String(p.text??""),title:p.title??""};if(!l){O(b.alt,g);break}S(),h.push({image:b});break}case"html":O(p.text??p.raw,g);break;case"checkbox":break;default:i.push({type:C,text:String(p.raw??p.text??"")}),O(p.raw??p.text,g);break}}};return E(o,[]),S(),{parts:h}}function me(o){if(!Array.isArray(o))throw new P("malformed-input","Markdown import needs the lexer's token list.");let l=0;for(let e of o){if(!e||typeof e!="object"||typeof e.type!="string")throw new P("malformed-input","A Markdown token has no type.");l+=Me.encode(String(e.raw??"")).length}if(l>F)throw new P("input-too-large",`Markdown import is limited to ${F} bytes; this file is ${l}.`);let a=[],i=[],h=[],k=new Set,z=e=>{let t=N(e);for(;k.has(t);)t=N(e);return k.add(t),t},S=e=>{if(a.length+1>le)throw new P("too-many-blocks",`Markdown import is limited to ${le} blocks.`);a.push(e)},O=e=>{let t=e.depth+1;if(t>ce)throw new P("nesting-too-deep",`Markdown import is limited to ${ce} levels of nesting.`);return t},$=(e,t,{c:n,m:u})=>{let r={t:e,...t,c:n};return u.some(Boolean)&&(r.m=J(u)),r},E=e=>{let t=G(e.src);return t?{t:"image",src:t,...e.alt?{alt:e.alt}:{},...e.title?{caption:e.title}:{}}:(h.push({type:"image",href:e.src}),e.alt?$("paragraph",{},{c:e.alt,m:[]}):null)},A=(e,t,n)=>{for(let u of n.parts){if(!u.image){S($(e,t,u));continue}let r=E(u.image);r&&S(r)}},g=(e,t)=>A(t.quote?"quote":"paragraph",{},e),p=(e,t={})=>Se(e,{refused:h,unsupported:i,...t}),C=e=>{let t=String(e.raw??e.text??"");i.push({type:e.type,text:t}),S({t:"code_block",lang:"markdown",c:t})},b=(e,t)=>{for(let n of e??[]){let u=n?.type;if(typeof u!="string")throw new P("malformed-input","A Markdown token has no type.");switch(u){case"space":break;case"heading":{let r=Math.min(6,Math.max(1,Number.parseInt(n.depth,10)||1));A("heading",r===2?{}:{level:r},p(n.tokens,{images:!1}));break}case"paragraph":case"text":g(p(n.tokens??[n]),t);break;case"hr":S({t:"divider"});break;case"code":S({t:"code_block",...n.lang?{lang:String(n.lang)}:{},c:String(n.text??"")});break;case"html":{let r=String(n.text??n.raw??"");i.push({type:"HTML block cleaned",text:r}),S({t:"preserved",html:xe(oe(document).fallback(r))});break}case"blockquote":{let r=O(t);b(n.tokens,{...t,depth:r,quote:!0});break}case"list":{let r=O(t),s=t.indent??0,f=n.ordered?"ordered":"bullet";for(let c of n.items??[]){let m={c:"",m:[]},d=[];for(let y of c?.tokens??[]){let M=y?.type;if(!(M==="checkbox"||M==="space"))if(M==="text"||M==="paragraph"){m.c&&(m={c:m.c+pe,m:[...m.m,"@"+JSON.stringify(de)]});let v=M==="paragraph"?y.tokens??[]:[y];for(let x of p(v,{images:!1}).parts)m={c:m.c+x.c,m:[...m.m,...x.m]};d.push(...(y.tokens??[]).filter(x=>typeof x?.type=="string"&&ue.has(x.type)&&x.type!=="space"))}else d.push(y)}let w=c?.task?"check":f,B={...w==="bullet"?{}:{kind:w},...s?{indent:s}:{},...c?.task&&c.checked?{checked:!0}:{}};S($("list_item",B,m)),d.length&&b(d,{...t,depth:r,indent:s+1,quote:!1})}break}case"table":{let r=n.header??[];if(!r.length){C(n);break}let s=y=>p(y,{images:!1}).parts[0]??{c:"",m:[]},f=r.map(()=>z("c")),c=D(null,null,r.length),m=Object.fromEntries(f.map((y,M)=>[y,{pos:c[M],name:s(r[M]?.tokens).c}])),d=n.rows?.length?n.rows:[[]],w=D(null,null,d.length),B=d.map(y=>Object.fromEntries(f.map((M,v)=>{let x=s(y?.[v]?.tokens);return[M,x.m.some(Boolean)?{c:x.c,m:J(x.m)}:x.c]})));S({t:"table",cols:m,rows:Object.fromEntries(B.map((y,M)=>[z("r"),{pos:w[M],cells:y}]))});break}default:C(n);break}}};b(o,{depth:0,indent:0,quote:!1});let _=D(null,null,a.length),R={};return a.forEach((e,t)=>{R[z("b")]={...e,pos:_[t]}}),{blocks:R,unsupported:i,refused:h}}var Ee="markdown-import-preview",Te=new TextEncoder,Ae=o=>{let l=String(o??"").replace(/\s+/g," ").trim();return l.length>60?`${l.slice(0,60)}\u2026`:l},Oe=o=>typeof o.text=="function"?o.text():new Promise((l,a)=>{let i=new FileReader;i.onload=()=>l(i.result),i.onerror=()=>a(i.error),i.readAsText(o)}),ze=()=>globalThis.clay?.assets?.load?.("marked")??import("./c-XN6MBKI6.js"),$e=(o,l)=>{let a=-1;return o.forEach((i,h,k)=>{a<0&&i.attrs.id===l&&(a=k)}),a};function Ce(o){let l=o.selection.$from;if(l.depth>=1)return{node:l.node(1),at:l.before(1),textblock:l.parent.isTextblock};let a=Math.min(l.index(0),Math.max(0,o.doc.childCount-1)),i=0;for(let h=0;h<a;h++)i+=o.doc.child(h).nodeSize;return{node:o.doc.child(a),at:i,textblock:!1}}function ve(o){let{node:l,at:a,textblock:i}=Ce(o),h=o.selection,k=i?Math.max(0,h.from-a-1):0;return{id:l.attrs.id,textblock:i,size:l.isTextblock?l.content.size:0,fromOff:k,toOff:i?Math.max(k,h.to-a-1):0}}var Pe=o=>{try{return ae(te(o))>0}catch{return!0}},Be=o=>o?.code==="page-format-upgrade-required"?"This document needs a newer page format before Markdown can be added. The preview stays open.":o?.code==="page-format-unsupported"?"This host cannot record the newer page format this file needs. The preview stays open.":o?.code==="stale-target"?"The place this import was started from changed. The preview stays open.":o?.code==="empty-import"?"This file holds nothing that can be inserted.":"The Markdown could not be inserted. The preview stays open.";function Ue({view:o=null,load:l=ze}={}){if(!o)return{run:()=>Promise.resolve({ok:!1,code:"not-editing"}),dispose(){}};let a=o.dom.ownerDocument,i=null,h=null,k=!1,z=W({id:Ee,isPending:()=>i!==null}),S=()=>h??=Promise.resolve().then(l).catch(e=>{throw h=null,e});function O(){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},t=o.coordsAtPos(Math.min(o.state.selection.from,o.state.doc.content.size));return{x:Math.max(8,t.left-e.left),y:t.bottom+6-e.top}}catch{return null}}function $(){let e=i;if(!e)return!1;i=null;for(let[t,n,u,r]of e.listen)t.removeEventListener(n,u,r);return e.panel.remove(),!0}function E(){return $()?(o.focus?.(),{ok:!0,cancelled:!0}):{ok:!1,code:"cancelled"}}function A(e){let t=[],n=(c,m)=>{let d=a.createElement("div");return d.className=c,d.textContent=m,d};if(t.push(n("page-menu-title",e.error?"Couldn't read that Markdown":`Import ${e.name}`)),!e.error){let c=[`${e.count} block${e.count===1?"":"s"}`];e.unsupported.length&&c.push(`${e.unsupported.length} kept as written`),e.refused.length&&c.push(`${e.refused.length} address${e.refused.length===1?"":"es"} left out`),t.push(n("page-menu-title page-import-summary",c.join(" \xB7 ")))}let u=(c,m)=>{let d=a.createElement("div");return d.className=c,d.replaceChildren(...m.map(w=>n("page-import-row",w))),d};e.unsupported.length&&t.push(u("page-import-unsupported",e.unsupported.map(c=>`${c.type}: ${Ae(c.text)}`))),e.refused.length&&t.push(u("page-import-refused",e.refused.map(c=>`${c.type}: ${c.href}`)));let r=e.error??e.notice??null;if(r){let c=a.createElement("p");c.className="page-import-error",c.setAttribute("role","alert"),c.textContent=r,t.push(c)}let s=(c,m)=>{let d=a.createElement("button");return d.type="button",d.className="page-menu-item",d.dataset.import=c,d.textContent=m,d.addEventListener("mousedown",w=>w.preventDefault()),d.addEventListener("click",()=>c==="insert"?p():E()),d},f=s("insert","Insert at the selection");f.disabled=!!e.error,t.push(f,s("cancel","Cancel")),e.panel.replaceChildren(...t)}function g(e,t){let n=o.state,u=n.doc,r=$e(u,e.id);if(r<0)return{ok:!1,code:"stale-target"};let s=u.child(r);if(e.textblock?!s.isTextblock||s.content.size!==e.size:s.isTextblock)return{ok:!1,code:"stale-target"};let f=Z(t).map(T=>ee(K,T,{...t[T],pos:null,parent:null}));if(!f.length)return{ok:!1,code:"empty-import"};let c=0;for(let T=0;T<r;T++)c+=u.child(T).nodeSize;let m=u.maybeChild(r+1),d=s.type.name==="toggle",w=e.textblock&&!d&&s.content.size>0,B=w||e.textblock&&!d&&s.content.size===0,y=w?Math.min(e.fromOff,s.content.size):0,M=w?Math.min(Math.max(y,e.toOff),s.content.size):0,v=w&&y>0?s.type.create({...s.attrs},s.content.cut(0,y)):null,x=w?s.content.cut(M):null,I=x&&x.size?s.type.create({...s.attrs,id:N(),pos:null},x):null,he=w&&!v?r>0?u.child(r-1).attrs.pos:null:s.attrs.pos,V=D(he,m?.attrs.pos??null,f.length+(I?1:0)),ke=d?s.attrs.id:s.attrs.parent??null,L=f.map((T,ge)=>T.type.create({...T.attrs,pos:V[ge],parent:ke},T.content,T.marks)),H=I?I.type.create({...I.attrs,pos:V[f.length]},I.content,I.marks):null,q=n.tr;B?q.replaceWith(c,c+s.nodeSize,[...v?[v]:[],...L,...H?[H]:[]]):q.insert(c+s.nodeSize,L),d&&!s.attrs.open&&L.length>0&&q.setNodeMarkup(c,null,{...s.attrs,open:!0});let X=c+(B?v?v.nodeSize:0:s.nodeSize);for(let T of L)X+=T.nodeSize;return q.setSelection(Y.TextSelection.near(q.doc.resolve(H?X:Math.max(0,X-1)),H?1:-1)),o.dispatch(se(q).scrollIntoView()),o.focus?.(),{ok:!0,blocks:L.length}}async function p(){let e=i;if(!e||e.error)return e?{ok:!1,code:"no-import"}:{ok:!1,code:"not-editing"};e.notice&&(e.notice=null,A(e));let t=()=>g(e.target,e.blocks),n=e.floor?await ne(o,t):t();return n?.ok?($(),n):(i===e&&(e.notice=Be(n),A(e)),n??{ok:!1,code:"import-failed"})}function C(e){!i||re(e,o)||(e.key==="Escape"?(e.preventDefault(),e.stopPropagation(),E()):e.key==="Enter"&&!e.target?.closest?.("[data-import]")&&(e.preventDefault(),e.stopPropagation(),p()))}function b(){return new Promise(e=>{let t=a.createElement("input");t.type="file",t.accept=".md,.markdown,text/markdown,text/plain",t.hidden=!0,t.className="page-markdown-input";let n=u=>{t.remove(),e(u)};t.addEventListener("change",()=>n(t.files?.[0]??null)),t.addEventListener("cancel",()=>n(null)),(o.dom.parentElement??a.body).appendChild(t),t.click()})}async function _(e,t=null){e.error=t;let n=a.createElement("div");n.className="page-menu page-import-preview",n.setAttribute("role","dialog"),n.setAttribute("aria-label","Import Markdown"),e.panel=n,i=e;let u=(f,c,m,d)=>{f.addEventListener(c,m,d),e.listen.push([f,c,m,d])};u(a,"keydown",f=>C(f),!0),u(a,"mousedown",f=>{e.panel.contains(f.target)||E()},!0),(o.dom.parentElement??a.body).appendChild(n),A(e);let r=O();r&&(n.style.setProperty("--page-pop-x",`${r.x}px`),n.style.setProperty("--page-pop-y",`${r.y}px`));let s=n.querySelector('[data-import="insert"]');return s&&!s.disabled&&s.focus?.(),{ok:!0,preview:!0}}async function R(e={}){if(k||o.isDestroyed)return{ok:!1,code:"not-editing"};$();let t=ve(o.state),n=e?.file??await b();if(!n)return{ok:!1,code:"cancelled"};if(typeof n.size=="number"&&n.size>F)return{ok:!1,code:"input-too-large"};let u;try{u=await Oe(n)}catch(f){return{ok:!1,code:"unreadable",error:f}}if(k||o.isDestroyed)return{ok:!1,code:"not-editing"};if(Te.encode(u).length>F)return{ok:!1,code:"input-too-large"};let r={target:t,name:String(n.name??"Markdown"),blocks:{},count:0,unsupported:[],refused:[],floor:0,panel:null,error:null,notice:null,listen:[]},s;try{let f=await S();s=me(new f.Marked().lexer(u))}catch(f){return k||o.isDestroyed?{ok:!1,code:"not-editing"}:_(r,String(f?.message??"The Markdown could not be read."))}return k||o.isDestroyed?{ok:!1,code:"not-editing"}:(r.blocks=s.blocks,r.count=Object.keys(s.blocks).length,r.unsupported=s.unsupported,r.refused=s.refused,r.floor=Pe(s.blocks)?1:0,_(r))}return{async run(e){return R(e)},dispose(){k=!0,$(),z.dispose()}}}export{Ue as createFeature};
1
+ import{a as ae}from"./c-LKSL4AUJ.js";import{i as ne,j as re}from"./c-SJPD46ZO.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-XQSXKIKM.js";import"./c-67ILSNPR.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as se}from"./c-44B5ODN7.js";import{A as J,H as D,I as Z,J as N,O as ee,b as Y,j as U,k as G,m as K,na as te,ra as oe,x as Q}from"./c-QIXT3Q7C.js";import"./c-E4IBSAQM.js";import"./c-57XDY6HC.js";import{a as W}from"./c-I2SCCUEW.js";import"./c-EK63G3CG.js";import"./c-VHNSBD2M.js";var be="iframe, frame, frameset, object, embed, applet, meta, base, link, form, style, animate, set, animateMotion, animateTransform, portal",ye=/^(srcdoc|data|formaction|codebase|archive|ping|background|poster|lowsrc|dynsrc)$/i,we=/^\s*(javascript|vbscript|data):/i;function xe(o){let l=document.createElement("template");l.innerHTML=o;for(let a of l.content.querySelectorAll(be))a.remove();for(let a of l.content.querySelectorAll("*"))for(let{name:i,value:h}of[...a.attributes])(ye.test(i)||we.test(h.replace(/[\u0000-\u0020]/g,"")))&&a.removeAttribute(i);return l.innerHTML}var F=2*1024*1024,ce=32,le=1e4,P=class extends Error{constructor(l,a){super(a),this.name="MarkdownImportError",this.code=l}},pe="\uFFFC",de={type:"hard_break"},ue=new Set(["paragraph","heading","list","blockquote","code","table","hr","html","def","space"]),Me=new TextEncoder,ie=K.marks,fe=o=>o.slice().sort((l,a)=>l.type.rank-a.type.rank);function j(o,l,a){return o.some(i=>i.type===ie[l])?o:fe([...o,ie[l].create(a)])}function Se(o,{images:l=!0,refused:a=[],unsupported:i=[]}={}){let h=[],k="",z=[],S=()=>{k&&h.push({c:k,m:z}),k="",z=[]},O=(A,g)=>{let p=String(A??"");if(!p)return;let C=Q(fe(g));k+=p;for(let b=0;b<p.length;b++)z.push(C)},$=A=>{k+=pe,z.push("@"+JSON.stringify(A))},E=(A,g)=>{for(let p of A??[]){let C=p?.type;if(typeof C!="string")throw new P("malformed-input","A Markdown token has no type.");switch(C){case"text":Array.isArray(p.tokens)?E(p.tokens.filter(b=>typeof b?.type=="string"&&!ue.has(b.type)),g):O(p.text,g);break;case"escape":O(p.text,g);break;case"strong":E(p.tokens,j(g,"strong"));break;case"em":E(p.tokens,j(g,"em"));break;case"del":case"strike":E(p.tokens,j(g,"strike"));break;case"codespan":O(p.text,j(g,"code"));break;case"br":$(de);break;case"link":{let b=U(p.href);b?E(p.tokens,j(g,"link",{href:b})):(a.push({type:"link",href:String(p.href??"")}),E(p.tokens,g));break}case"image":{let b={src:String(p.href??""),alt:String(p.text??""),title:p.title??""};if(!l){O(b.alt,g);break}S(),h.push({image:b});break}case"html":O(p.text??p.raw,g);break;case"checkbox":break;default:i.push({type:C,text:String(p.raw??p.text??"")}),O(p.raw??p.text,g);break}}};return E(o,[]),S(),{parts:h}}function me(o){if(!Array.isArray(o))throw new P("malformed-input","Markdown import needs the lexer's token list.");let l=0;for(let e of o){if(!e||typeof e!="object"||typeof e.type!="string")throw new P("malformed-input","A Markdown token has no type.");l+=Me.encode(String(e.raw??"")).length}if(l>F)throw new P("input-too-large",`Markdown import is limited to ${F} bytes; this file is ${l}.`);let a=[],i=[],h=[],k=new Set,z=e=>{let t=N(e);for(;k.has(t);)t=N(e);return k.add(t),t},S=e=>{if(a.length+1>le)throw new P("too-many-blocks",`Markdown import is limited to ${le} blocks.`);a.push(e)},O=e=>{let t=e.depth+1;if(t>ce)throw new P("nesting-too-deep",`Markdown import is limited to ${ce} levels of nesting.`);return t},$=(e,t,{c:n,m:u})=>{let r={t:e,...t,c:n};return u.some(Boolean)&&(r.m=J(u)),r},E=e=>{let t=G(e.src);return t?{t:"image",src:t,...e.alt?{alt:e.alt}:{},...e.title?{caption:e.title}:{}}:(h.push({type:"image",href:e.src}),e.alt?$("paragraph",{},{c:e.alt,m:[]}):null)},A=(e,t,n)=>{for(let u of n.parts){if(!u.image){S($(e,t,u));continue}let r=E(u.image);r&&S(r)}},g=(e,t)=>A(t.quote?"quote":"paragraph",{},e),p=(e,t={})=>Se(e,{refused:h,unsupported:i,...t}),C=e=>{let t=String(e.raw??e.text??"");i.push({type:e.type,text:t}),S({t:"code_block",lang:"markdown",c:t})},b=(e,t)=>{for(let n of e??[]){let u=n?.type;if(typeof u!="string")throw new P("malformed-input","A Markdown token has no type.");switch(u){case"space":break;case"heading":{let r=Math.min(6,Math.max(1,Number.parseInt(n.depth,10)||1));A("heading",r===2?{}:{level:r},p(n.tokens,{images:!1}));break}case"paragraph":case"text":g(p(n.tokens??[n]),t);break;case"hr":S({t:"divider"});break;case"code":S({t:"code_block",...n.lang?{lang:String(n.lang)}:{},c:String(n.text??"")});break;case"html":{let r=String(n.text??n.raw??"");i.push({type:"HTML block cleaned",text:r}),S({t:"preserved",html:xe(oe(document).fallback(r))});break}case"blockquote":{let r=O(t);b(n.tokens,{...t,depth:r,quote:!0});break}case"list":{let r=O(t),s=t.indent??0,f=n.ordered?"ordered":"bullet";for(let c of n.items??[]){let m={c:"",m:[]},d=[];for(let y of c?.tokens??[]){let M=y?.type;if(!(M==="checkbox"||M==="space"))if(M==="text"||M==="paragraph"){m.c&&(m={c:m.c+pe,m:[...m.m,"@"+JSON.stringify(de)]});let v=M==="paragraph"?y.tokens??[]:[y];for(let x of p(v,{images:!1}).parts)m={c:m.c+x.c,m:[...m.m,...x.m]};d.push(...(y.tokens??[]).filter(x=>typeof x?.type=="string"&&ue.has(x.type)&&x.type!=="space"))}else d.push(y)}let w=c?.task?"check":f,B={...w==="bullet"?{}:{kind:w},...s?{indent:s}:{},...c?.task&&c.checked?{checked:!0}:{}};S($("list_item",B,m)),d.length&&b(d,{...t,depth:r,indent:s+1,quote:!1})}break}case"table":{let r=n.header??[];if(!r.length){C(n);break}let s=y=>p(y,{images:!1}).parts[0]??{c:"",m:[]},f=r.map(()=>z("c")),c=D(null,null,r.length),m=Object.fromEntries(f.map((y,M)=>[y,{pos:c[M],name:s(r[M]?.tokens).c}])),d=n.rows?.length?n.rows:[[]],w=D(null,null,d.length),B=d.map(y=>Object.fromEntries(f.map((M,v)=>{let x=s(y?.[v]?.tokens);return[M,x.m.some(Boolean)?{c:x.c,m:J(x.m)}:x.c]})));S({t:"table",cols:m,rows:Object.fromEntries(B.map((y,M)=>[z("r"),{pos:w[M],cells:y}]))});break}default:C(n);break}}};b(o,{depth:0,indent:0,quote:!1});let _=D(null,null,a.length),R={};return a.forEach((e,t)=>{R[z("b")]={...e,pos:_[t]}}),{blocks:R,unsupported:i,refused:h}}var Ee="markdown-import-preview",Te=new TextEncoder,Ae=o=>{let l=String(o??"").replace(/\s+/g," ").trim();return l.length>60?`${l.slice(0,60)}\u2026`:l},Oe=o=>typeof o.text=="function"?o.text():new Promise((l,a)=>{let i=new FileReader;i.onload=()=>l(i.result),i.onerror=()=>a(i.error),i.readAsText(o)}),ze=()=>globalThis.clay?.assets?.load?.("marked")??import("./c-XN6MBKI6.js"),$e=(o,l)=>{let a=-1;return o.forEach((i,h,k)=>{a<0&&i.attrs.id===l&&(a=k)}),a};function Ce(o){let l=o.selection.$from;if(l.depth>=1)return{node:l.node(1),at:l.before(1),textblock:l.parent.isTextblock};let a=Math.min(l.index(0),Math.max(0,o.doc.childCount-1)),i=0;for(let h=0;h<a;h++)i+=o.doc.child(h).nodeSize;return{node:o.doc.child(a),at:i,textblock:!1}}function ve(o){let{node:l,at:a,textblock:i}=Ce(o),h=o.selection,k=i?Math.max(0,h.from-a-1):0;return{id:l.attrs.id,textblock:i,size:l.isTextblock?l.content.size:0,fromOff:k,toOff:i?Math.max(k,h.to-a-1):0}}var Pe=o=>{try{return ae(te(o))>0}catch{return!0}},Be=o=>o?.code==="page-format-upgrade-required"?"This document needs a newer page format before Markdown can be added. The preview stays open.":o?.code==="page-format-unsupported"?"This host cannot record the newer page format this file needs. The preview stays open.":o?.code==="stale-target"?"The place this import was started from changed. The preview stays open.":o?.code==="empty-import"?"This file holds nothing that can be inserted.":"The Markdown could not be inserted. The preview stays open.";function Ue({view:o=null,load:l=ze}={}){if(!o)return{run:()=>Promise.resolve({ok:!1,code:"not-editing"}),dispose(){}};let a=o.dom.ownerDocument,i=null,h=null,k=!1,z=W({id:Ee,isPending:()=>i!==null}),S=()=>h??=Promise.resolve().then(l).catch(e=>{throw h=null,e});function O(){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},t=o.coordsAtPos(Math.min(o.state.selection.from,o.state.doc.content.size));return{x:Math.max(8,t.left-e.left),y:t.bottom+6-e.top}}catch{return null}}function $(){let e=i;if(!e)return!1;i=null;for(let[t,n,u,r]of e.listen)t.removeEventListener(n,u,r);return e.panel.remove(),!0}function E(){return $()?(o.focus?.(),{ok:!0,cancelled:!0}):{ok:!1,code:"cancelled"}}function A(e){let t=[],n=(c,m)=>{let d=a.createElement("div");return d.className=c,d.textContent=m,d};if(t.push(n("page-menu-title",e.error?"Couldn't read that Markdown":`Import ${e.name}`)),!e.error){let c=[`${e.count} block${e.count===1?"":"s"}`];e.unsupported.length&&c.push(`${e.unsupported.length} kept as written`),e.refused.length&&c.push(`${e.refused.length} address${e.refused.length===1?"":"es"} left out`),t.push(n("page-menu-title page-import-summary",c.join(" \xB7 ")))}let u=(c,m)=>{let d=a.createElement("div");return d.className=c,d.replaceChildren(...m.map(w=>n("page-import-row",w))),d};e.unsupported.length&&t.push(u("page-import-unsupported",e.unsupported.map(c=>`${c.type}: ${Ae(c.text)}`))),e.refused.length&&t.push(u("page-import-refused",e.refused.map(c=>`${c.type}: ${c.href}`)));let r=e.error??e.notice??null;if(r){let c=a.createElement("p");c.className="page-import-error",c.setAttribute("role","alert"),c.textContent=r,t.push(c)}let s=(c,m)=>{let d=a.createElement("button");return d.type="button",d.className="page-menu-item",d.dataset.import=c,d.textContent=m,d.addEventListener("mousedown",w=>w.preventDefault()),d.addEventListener("click",()=>c==="insert"?p():E()),d},f=s("insert","Insert at the selection");f.disabled=!!e.error,t.push(f,s("cancel","Cancel")),e.panel.replaceChildren(...t)}function g(e,t){let n=o.state,u=n.doc,r=$e(u,e.id);if(r<0)return{ok:!1,code:"stale-target"};let s=u.child(r);if(e.textblock?!s.isTextblock||s.content.size!==e.size:s.isTextblock)return{ok:!1,code:"stale-target"};let f=Z(t).map(T=>ee(K,T,{...t[T],pos:null,parent:null}));if(!f.length)return{ok:!1,code:"empty-import"};let c=0;for(let T=0;T<r;T++)c+=u.child(T).nodeSize;let m=u.maybeChild(r+1),d=s.type.name==="toggle",w=e.textblock&&!d&&s.content.size>0,B=w||e.textblock&&!d&&s.content.size===0,y=w?Math.min(e.fromOff,s.content.size):0,M=w?Math.min(Math.max(y,e.toOff),s.content.size):0,v=w&&y>0?s.type.create({...s.attrs},s.content.cut(0,y)):null,x=w?s.content.cut(M):null,I=x&&x.size?s.type.create({...s.attrs,id:N(),pos:null},x):null,he=w&&!v?r>0?u.child(r-1).attrs.pos:null:s.attrs.pos,V=D(he,m?.attrs.pos??null,f.length+(I?1:0)),ke=d?s.attrs.id:s.attrs.parent??null,L=f.map((T,ge)=>T.type.create({...T.attrs,pos:V[ge],parent:ke},T.content,T.marks)),H=I?I.type.create({...I.attrs,pos:V[f.length]},I.content,I.marks):null,q=n.tr;B?q.replaceWith(c,c+s.nodeSize,[...v?[v]:[],...L,...H?[H]:[]]):q.insert(c+s.nodeSize,L),d&&!s.attrs.open&&L.length>0&&q.setNodeMarkup(c,null,{...s.attrs,open:!0});let X=c+(B?v?v.nodeSize:0:s.nodeSize);for(let T of L)X+=T.nodeSize;return q.setSelection(Y.TextSelection.near(q.doc.resolve(H?X:Math.max(0,X-1)),H?1:-1)),o.dispatch(se(q).scrollIntoView()),o.focus?.(),{ok:!0,blocks:L.length}}async function p(){let e=i;if(!e||e.error)return e?{ok:!1,code:"no-import"}:{ok:!1,code:"not-editing"};e.notice&&(e.notice=null,A(e));let t=()=>g(e.target,e.blocks),n=e.floor?await ne(o,t):t();return n?.ok?($(),n):(i===e&&(e.notice=Be(n),A(e)),n??{ok:!1,code:"import-failed"})}function C(e){!i||re(e,o)||(e.key==="Escape"?(e.preventDefault(),e.stopPropagation(),E()):e.key==="Enter"&&!e.target?.closest?.("[data-import]")&&(e.preventDefault(),e.stopPropagation(),p()))}function b(){return new Promise(e=>{let t=a.createElement("input");t.type="file",t.accept=".md,.markdown,text/markdown,text/plain",t.hidden=!0,t.className="page-markdown-input";let n=u=>{t.remove(),e(u)};t.addEventListener("change",()=>n(t.files?.[0]??null)),t.addEventListener("cancel",()=>n(null)),(o.dom.parentElement??a.body).appendChild(t),t.click()})}async function _(e,t=null){e.error=t;let n=a.createElement("div");n.className="page-menu page-import-preview",n.setAttribute("role","dialog"),n.setAttribute("aria-label","Import Markdown"),e.panel=n,i=e;let u=(f,c,m,d)=>{f.addEventListener(c,m,d),e.listen.push([f,c,m,d])};u(a,"keydown",f=>C(f),!0),u(a,"mousedown",f=>{e.panel.contains(f.target)||E()},!0),(o.dom.parentElement??a.body).appendChild(n),A(e);let r=O();r&&(n.style.setProperty("--page-pop-x",`${r.x}px`),n.style.setProperty("--page-pop-y",`${r.y}px`));let s=n.querySelector('[data-import="insert"]');return s&&!s.disabled&&s.focus?.(),{ok:!0,preview:!0}}async function R(e={}){if(k||o.isDestroyed)return{ok:!1,code:"not-editing"};$();let t=ve(o.state),n=e?.file??await b();if(!n)return{ok:!1,code:"cancelled"};if(typeof n.size=="number"&&n.size>F)return{ok:!1,code:"input-too-large"};let u;try{u=await Oe(n)}catch(f){return{ok:!1,code:"unreadable",error:f}}if(k||o.isDestroyed)return{ok:!1,code:"not-editing"};if(Te.encode(u).length>F)return{ok:!1,code:"input-too-large"};let r={target:t,name:String(n.name??"Markdown"),blocks:{},count:0,unsupported:[],refused:[],floor:0,panel:null,error:null,notice:null,listen:[]},s;try{let f=await S();s=me(new f.Marked().lexer(u))}catch(f){return k||o.isDestroyed?{ok:!1,code:"not-editing"}:_(r,String(f?.message??"The Markdown could not be read."))}return k||o.isDestroyed?{ok:!1,code:"not-editing"}:(r.blocks=s.blocks,r.count=Object.keys(s.blocks).length,r.unsupported=s.unsupported,r.refused=s.refused,r.floor=Pe(s.blocks)?1:0,_(r))}return{async run(e){return R(e)},dispose(){k=!0,$(),z.dispose()}}}export{Ue as createFeature};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f}from"./c-EOCKLMKX.js";import{g as a}from"./c-SJPD46ZO.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-XQSXKIKM.js";import"./c-67ILSNPR.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-44B5ODN7.js";import"./c-QIXT3Q7C.js";import"./c-E4IBSAQM.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};
@@ -1 +1 @@
1
- import{a as l,o as c}from"./c-DCFSEJZG.js";var u=/^\d{1,4}(?:\.\d{1,4}){0,63}$/,f=64,d=9999,E=new Set(["INPUT","TEXTAREA","SELECT"]),p='[contenteditable]:not([contenteditable="false"])',i=`${c}, ${l}`,s=e=>Array.from(e.children).filter(n=>!n.matches(i));function a(e){if(!e||e.nodeType!==1||typeof e.closest!="function")return null;if(E.has(e.tagName))return e;let n=e.closest(p);if(!n)return null;let o=typeof document.getSelection=="function"?document.getSelection():null,t=o&&o.rangeCount?o.focusNode:null;if(t&&t.nodeType!==1&&(t=t.parentElement),!t||t===n||!n.contains(t))return n;for(;t.parentElement&&t.parentElement!==n;)t=t.parentElement;return t.parentElement===n?t:n}function O(e){let n=document.body;if(!e||!n||e===n||!n.contains(e)||e.closest(i))return null;let o=[];for(let t=e;t!==n;t=t.parentElement){let r=s(t.parentElement).indexOf(t);if(r<0||r>d||o.length===f)return null;o.unshift(r)}return o.join(".")}function N(e){if(typeof e!="string"||!u.test(e)||!document.body)return null;let n=document.body;for(let o of e.split("."))if(n=s(n)[Number(o)],!n)return null;return n}export{u as a,a as b,O as c,N as d};
1
+ import{a as l,o as c}from"./c-ICMAOOGK.js";var u=/^\d{1,4}(?:\.\d{1,4}){0,63}$/,f=64,d=9999,E=new Set(["INPUT","TEXTAREA","SELECT"]),p='[contenteditable]:not([contenteditable="false"])',i=`${c}, ${l}`,s=e=>Array.from(e.children).filter(n=>!n.matches(i));function a(e){if(!e||e.nodeType!==1||typeof e.closest!="function")return null;if(E.has(e.tagName))return e;let n=e.closest(p);if(!n)return null;let o=typeof document.getSelection=="function"?document.getSelection():null,t=o&&o.rangeCount?o.focusNode:null;if(t&&t.nodeType!==1&&(t=t.parentElement),!t||t===n||!n.contains(t))return n;for(;t.parentElement&&t.parentElement!==n;)t=t.parentElement;return t.parentElement===n?t:n}function O(e){let n=document.body;if(!e||!n||e===n||!n.contains(e)||e.closest(i))return null;let o=[];for(let t=e;t!==n;t=t.parentElement){let r=s(t.parentElement).indexOf(t);if(r<0||r>d||o.length===f)return null;o.unshift(r)}return o.join(".")}function N(e){if(typeof e!="string"||!u.test(e)||!document.body)return null;let n=document.body;for(let o of e.split("."))if(n=s(n)[Number(o)],!n)return null;return n}export{u as a,a as b,O as c,N as d};
@@ -1,2 +1,2 @@
1
- import{a as E,b as S,c as P}from"./c-KBS3UV6B.js";import{i as A,j as q}from"./c-4FJTBE6I.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-CQQDL6O4.js";import"./c-ZGDYHKG3.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as T}from"./c-AIWN4QN4.js";import{b as k,m as x}from"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var R=/^[A-Za-z0-9_-]{8,64}$/,D="@",F=100;function _({view:o=null}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let f=o.dom.ownerDocument,y=()=>globalThis.clay?.people??null,l=null;function d(t){let e=o.state;if(!e.selection.empty)return null;let r=e.selection.head;if(r<=t.from||r-t.from>F+1||r>e.doc.content.size)return null;let n=e.doc.resolve(t.from);return!n.parent.isTextblock||n.parent.type.spec.code||r>n.end()||r<n.start()||n.parentOffset&&!/\s/.test(e.doc.textBetween(t.from-1,t.from,"",`
1
+ import{a as E,b as S,c as P}from"./c-KBS3UV6B.js";import{i as A,j as q}from"./c-SJPD46ZO.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-XQSXKIKM.js";import"./c-67ILSNPR.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as T}from"./c-44B5ODN7.js";import{b as k,m as x}from"./c-QIXT3Q7C.js";import"./c-E4IBSAQM.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var R=/^[A-Za-z0-9_-]{8,64}$/,D="@",F=100;function _({view:o=null}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let f=o.dom.ownerDocument,y=()=>globalThis.clay?.people??null,l=null;function d(t){let e=o.state;if(!e.selection.empty)return null;let r=e.selection.head;if(r<=t.from||r-t.from>F+1||r>e.doc.content.size)return null;let n=e.doc.resolve(t.from);return!n.parent.isTextblock||n.parent.type.spec.code||r>n.end()||r<n.start()||n.parentOffset&&!/\s/.test(e.doc.textBetween(t.from-1,t.from,"",`
2
2
  `))||e.doc.textBetween(t.from,t.from+1)!==D?null:{head:r,query:e.doc.textBetween(t.from+1,r)}}function $(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 h(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 m(t){t.picker.show(S(E(t.saved,t.allowed),t.query),$(t)),h(t)}function i(){let t=l;if(t){l=null;for(let[e,r,n,s]of t.listen)e.removeEventListener(r,n,s);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function p(){let t=l;if(!t||o.composing)return;let e=d(t);if(!e)return i();t.query=e.query,m(t)}async function g(t){let e=l;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),n=d(e);if(!(r&&n&&n.query===e.query&&R.test(String(r.id??""))&&String(r.name??"").trim()))return i(),{ok:!1,code:r?"stale-target":"no-person"};let c=String(r.name).trim();return i(),A(o,()=>{let u=d(e);if(!u||u.query!==e.query)return{ok:!1,code:"stale-target"};let a=o.state.tr.insertText(c,e.from,u.head);return a.addMark(e.from,e.from+c.length,x.marks.mention.create({id:r.id})),a.insertText(" ",e.from+c.length),a.setSelection(k.TextSelection.create(a.doc,e.from+c.length+1)),o.dispatch(T(a)),o.focus(),{ok:!0,id:r.id,label:c}})}function B(t){let e=l;if(!e||q(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),h(e)):t.key==="Enter"?(r(),g(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),i())}function I(t){let e=y()?.available;e&&Promise.resolve().then(()=>e()).then(r=>{l===t&&(t.allowed=Array.isArray(r)?r:null,m(t))}).catch(()=>{})}function M(t){i();let e=P({document:f,onPick:c=>g(c)}),r={from:t,picker:e,query:"",allowed:null,saved:[],listen:[]};try{r.saved=y()?.list?.()??[]}catch{r.saved=[]}l=r;let n=(c,u,a,b)=>{c.addEventListener(u,a,b),r.listen.push([c,u,a,b])};n(f,"keydown",c=>B(c),!0),n(o.dom,"input",()=>p()),n(o.dom,"keyup",()=>p()),n(o.dom,"compositionend",()=>p()),n(f,"mousedown",c=>{r.picker.el.contains(c.target)||i()},!0),(o.dom.parentElement??f.body).appendChild(e.el);let s=d(r);return s?(r.query=s.query,m(r),I(r),{ok:!0,picker:!0}):(i(),{ok:!1,code:"stale-target"})}return{async run(t={}){let e=Number.isInteger(t?.from)?t.from:null;if(e===null){let r=o.state,n=r.selection.$from;if(!r.selection.empty||!n.parent.isTextblock||n.parent.type.spec.code)return{ok:!1,code:"stale-target"};e=r.selection.from;let s=o.state.tr.insertText(D);s.setSelection(k.TextSelection.create(s.doc,e+1)),o.dispatch(s)}return M(e)},dispose(){i()}}}export{_ as createFeature};
@@ -1 +1 @@
1
- import{B as h,d as f,h as x}from"./c-AIWN4QN4.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-44B5ODN7.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"./c-VHNSBD2M.js";var l=(e,n)=>Object.assign(new Error(`clayjs: ${e}`),{code:n}),u=(e,n)=>!e||n.seq===null||e.seq===null||n.seq>e.seq?n:e;function a({stream:e,apply:n,retire:f,yieldArticle:i=()=>!1,reclaimArticle:s=()=>!1}){let t=null,r=!1;e.adopt({onSnapshot:o=>(t=u(t,o),!0)});let d=()=>{let o=t;return t=null,o};return{get represented(){return e.represented},get held(){return t??e.represented},yieldArticle(){return r||!i()?!1:(r=!0,!0)},reclaimArticle(){return!r||!s()?!1:(r=!1,!0)},reconcile(){let o=d();return o&&!n(o)?Promise.reject(l("the switch could not apply the saved file","load-failed")):Promise.resolve()},resume(){e.adopt({onSnapshot:n});let o=d();o&&n(o)},commit(){if(!r){let o=d();if(o&&!n(o))return!1}return e.represented.bytes===null?!1:(e.stop(),f())}}}async function c({stream:e,options:n,apply:f,retire:i,yieldArticle:s=()=>!1,reclaimArticle:t=()=>!1}){if(e)return a({stream:e,apply:f,retire:i,yieldArticle:s,reclaimArticle:t});let r=await import("./sync/live-sync-UXNI6ZF6.js").then(({liveSync:d})=>d.prepareHandoff(n));return{get represented(){return r.represented},get held(){return r.held},yieldArticle:s,reclaimArticle:t,reconcile:()=>r.reconcile(),resume:()=>r.resume(),commit:()=>r.commit()&&i()}}async function p(e,{signal:n,deadline:f=15e3}={}){let i=Date.now()+f;for(;e._morphInFlight;){if(n?.aborted)throw e._handoffHeld=!1,l("the switch was cancelled","aborted");if(Date.now()>=i)throw e._handoffHeld=!1,l("the apply did not settle","timeout");await new Promise(t=>setTimeout(t,1))}let s=()=>e._pendingHtml!=null||e._pendingExternal!=null;return{get represented(){return e._represented},get held(){let t=e._represented;return e._pendingHtml!=null&&(t=u(t,{bytes:e._pendingHtml,etag:e._pendingEtag??null,seq:e._pendingSeq??null})),e._pendingExternal&&(t=u(t,{bytes:e._pendingExternal.html,etag:e._pendingExternal.etag??null,seq:e._pendingExternal.seq??null})),t},async reconcile(){if(!(!e._handoff||e.isDestroyed)){for(let t=0;t<8;t++){if(e._morphInFlight){await new Promise(r=>setTimeout(r,1));continue}if(!s())return;await e._runPending()}if(s())throw l("the held frame could not be applied","load-failed")}},resume(){e._handoff&&(e._handoff=null,e._handoffHeld=!1,e._scheduleNextFrame())},commit(){return e._represented.bytes?(e._handoff=null,e._handoffHeld=!1,e.stop(),!0):!1}}}export{p as engineHandoff,c as readerHandoff};
1
+ import"./c-VHNSBD2M.js";var l=(e,n)=>Object.assign(new Error(`clayjs: ${e}`),{code:n}),u=(e,n)=>!e||n.seq===null||e.seq===null||n.seq>e.seq?n:e;function a({stream:e,apply:n,retire:f,yieldArticle:i=()=>!1,reclaimArticle:s=()=>!1}){let t=null,r=!1;e.adopt({onSnapshot:o=>(t=u(t,o),!0)});let d=()=>{let o=t;return t=null,o};return{get represented(){return e.represented},get held(){return t??e.represented},yieldArticle(){return r||!i()?!1:(r=!0,!0)},reclaimArticle(){return!r||!s()?!1:(r=!1,!0)},reconcile(){let o=d();return o&&!n(o)?Promise.reject(l("the switch could not apply the saved file","load-failed")):Promise.resolve()},resume(){e.adopt({onSnapshot:n});let o=d();o&&n(o)},commit(){if(!r){let o=d();if(o&&!n(o))return!1}return e.represented.bytes===null?!1:(e.stop(),f())}}}async function c({stream:e,options:n,apply:f,retire:i,yieldArticle:s=()=>!1,reclaimArticle:t=()=>!1}){if(e)return a({stream:e,apply:f,retire:i,yieldArticle:s,reclaimArticle:t});let r=await import("./sync/live-sync-SKPMFYOO.js").then(({liveSync:d})=>d.prepareHandoff(n));return{get represented(){return r.represented},get held(){return r.held},yieldArticle:s,reclaimArticle:t,reconcile:()=>r.reconcile(),resume:()=>r.resume(),commit:()=>r.commit()&&i()}}async function p(e,{signal:n,deadline:f=15e3}={}){let i=Date.now()+f;for(;e._morphInFlight;){if(n?.aborted)throw e._handoffHeld=!1,l("the switch was cancelled","aborted");if(Date.now()>=i)throw e._handoffHeld=!1,l("the apply did not settle","timeout");await new Promise(t=>setTimeout(t,1))}let s=()=>e._pendingHtml!=null||e._pendingExternal!=null;return{get represented(){return e._represented},get held(){let t=e._represented;return e._pendingHtml!=null&&(t=u(t,{bytes:e._pendingHtml,etag:e._pendingEtag??null,seq:e._pendingSeq??null})),e._pendingExternal&&(t=u(t,{bytes:e._pendingExternal.html,etag:e._pendingExternal.etag??null,seq:e._pendingExternal.seq??null})),t},async reconcile(){if(!(!e._handoff||e.isDestroyed)){for(let t=0;t<8;t++){if(e._morphInFlight){await new Promise(r=>setTimeout(r,1));continue}if(!s())return;await e._runPending()}if(s())throw l("the held frame could not be applied","load-failed")}},resume(){e._handoff&&(e._handoff=null,e._handoffHeld=!1,e._scheduleNextFrame())},commit(){return e._represented.bytes?(e._handoff=null,e._handoffHeld=!1,e.stop(),!0):!1}}}export{p as engineHandoff,c as readerHandoff};
@@ -1 +1 @@
1
- import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-A5JXV6ME.js"),import("./core/save-core-MKRPSEEO.js"),import("./c-R27DWQKX.js"),import("./core/unsaved-warning-4ZPEV7BF.js"),import("./core/is-edit-mode-GCX6767E.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-GCX6767E.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};
1
+ import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-AOJBDSOK.js"),import("./core/save-core-IOCMXO5L.js"),import("./c-R27DWQKX.js"),import("./core/unsaved-warning-U5VUJFOE.js"),import("./core/is-edit-mode-GCX6767E.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-GCX6767E.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};