@panphora/clayjs 1.25.1 → 1.26.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 (105) 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 +1141 -345
  11. package/dist/m/c-2EPHRF47.js +1 -0
  12. package/dist/m/{c-2GB34XL4.js → c-2SUFMUZX.js} +2 -2
  13. package/dist/m/{c-BHLYQGTA.js → c-3S3647J6.js} +1 -1
  14. package/dist/m/{c-QL4NYM2L.js → c-3S5TNRZA.js} +1 -1
  15. package/dist/m/{c-3Y234AUB.js → c-3XGLJAS7.js} +2 -2
  16. package/dist/m/{c-O4YIDULY.js → c-42WBOKFM.js} +1 -1
  17. package/dist/m/{c-42RLKGEY.js → c-4TP3UXBT.js} +1 -1
  18. package/dist/m/{c-ASGHHLFX.js → c-5ELELG2F.js} +1 -1
  19. package/dist/m/{c-T5IWJOMW.js → c-5ZYLTN3Q.js} +1 -1
  20. package/dist/m/{c-DDCYVLGG.js → c-67TBU56I.js} +1 -1
  21. package/dist/m/{c-WNOLMHI2.js → c-6BGJAJ67.js} +1 -1
  22. package/dist/m/{c-XS7G6U3Z.js → c-ABOBD7F3.js} +1 -1
  23. package/dist/m/{c-5IIEOPIV.js → c-ARO6CPMA.js} +1 -1
  24. package/dist/m/{c-XUZMRQ7O.js → c-BCS3AZQZ.js} +1 -1
  25. package/dist/m/c-BOS7GONO.js +1 -0
  26. package/dist/m/{c-NICICT4P.js → c-DEYHCYJB.js} +1 -1
  27. package/dist/m/{c-T7LOTEWO.js → c-DZT6W2NG.js} +1 -1
  28. package/dist/m/c-EHJWIGWN.js +1 -0
  29. package/dist/m/{c-V2V5FKXX.js → c-EIUKME3W.js} +1 -1
  30. package/dist/m/{c-ASMLERFA.js → c-EXZOA6XY.js} +1 -1
  31. package/dist/m/{c-STAPQ2X6.js → c-EYFMAR3M.js} +1 -1
  32. package/dist/m/{c-DVMDYRAE.js → c-FUN6AKFE.js} +1 -1
  33. package/dist/m/{c-XMIDHEKF.js → c-GY36NO7C.js} +1 -1
  34. package/dist/m/{c-TWB5ZQU4.js → c-H47C6PJZ.js} +1 -1
  35. package/dist/m/c-KD2ME5UN.js +2 -0
  36. package/dist/m/{c-GO635CRU.js → c-LAKBBJOU.js} +2 -2
  37. package/dist/m/{c-GNFDX6SU.js → c-LETPPG2F.js} +1 -1
  38. package/dist/m/{c-LS7IVQVW.js → c-MMV5JULA.js} +1 -1
  39. package/dist/m/{c-NEQRFC4O.js → c-MVVEIJUU.js} +1 -1
  40. package/dist/m/{c-XCOQNISP.js → c-N362HNGO.js} +1 -1
  41. package/dist/m/{c-7K4SCQB7.js → c-ND3W7D5U.js} +1 -1
  42. package/dist/m/{c-4NAYDOWH.js → c-NNHNXD6M.js} +1 -1
  43. package/dist/m/{c-DAUQ6JZ3.js → c-NYJ577NL.js} +1 -1
  44. package/dist/m/{c-3AAQJAKJ.js → c-PWILUN4T.js} +1 -1
  45. package/dist/m/{c-7Z2625LX.js → c-QA3Q3MDI.js} +1 -1
  46. package/dist/m/{c-2A2ATCIH.js → c-QKOKMQXA.js} +1 -1
  47. package/dist/m/{c-TGIMBAWE.js → c-RBWVF4N5.js} +1 -1
  48. package/dist/m/{c-A5IYL7JI.js → c-SPOEDIMP.js} +1 -1
  49. package/dist/m/{c-ZJ7726FO.js → c-SRW5OBCF.js} +1 -1
  50. package/dist/m/{c-A3OKSYRI.js → c-SYOA4T7V.js} +1 -1
  51. package/dist/m/{c-MHTO3QAD.js → c-TJ5PFOJ2.js} +1 -1
  52. package/dist/m/{c-NW4ZFKCY.js → c-TKV273YU.js} +1 -1
  53. package/dist/m/{c-D4N4UJCQ.js → c-UEKJWXCB.js} +2 -2
  54. package/dist/m/{c-44WITKWQ.js → c-V4DBV5ZV.js} +1 -1
  55. package/dist/m/c-WHMZCRQD.js +6 -0
  56. package/dist/m/{c-WMRJKQ2V.js → c-WHQUZM2V.js} +1 -1
  57. package/dist/m/{c-C27EVUQ6.js → c-XHD7XJTE.js} +1 -1
  58. package/dist/m/{c-PP3CUF3U.js → c-XONFK3WC.js} +1 -1
  59. package/dist/m/c-YYIN4NAF.js +30 -0
  60. package/dist/m/c-ZFAPQQIB.js +1 -0
  61. package/dist/m/core/{conflict-notice-Y2NTMDGJ.js → conflict-notice-UNDOD4BL.js} +1 -1
  62. package/dist/m/core/site-edits-C22O53GS.js +1 -0
  63. package/dist/m/loader-DCKCZKY6.js +1 -0
  64. package/dist/m/{manifest-A27A4278.js → manifest-7954CBE3.js} +1 -1
  65. package/dist/m/{manifest-edit-E8A61EB4.js → manifest-edit-93AA79D7.js} +1 -1
  66. package/dist/m/manifest.json +442 -441
  67. package/dist/m/page/{editor-HS2CAV3W.js → editor-UF3CIA6V.js} +2 -2
  68. package/dist/m/plugins/{cms-4KET6RZT.js → cms-KG6TCTR3.js} +1 -1
  69. package/dist/m/plugins/{live-CO4VJS46.js → live-DF5YS5AH.js} +1 -1
  70. package/dist/m/plugins/page-GZSU77JS.js +2 -0
  71. package/dist/m/plugins/{page-view-6KNTXABH.js → page-view-7MM3FEAR.js} +1 -1
  72. package/dist/m/plugins/{quickcrop-VNRXGRPC.js → quickcrop-UHURKA2F.js} +2 -2
  73. package/dist/m/plugins/richclay-MXH2GFAZ.js +549 -0
  74. package/dist/m/plugins/undo-KLHAGV75.js +1 -0
  75. package/dist/m/sync/{live-sync-DX4K5GDB.js → live-sync-RZQSDMZW.js} +1 -1
  76. package/dist/offline-manifest.json +360 -360
  77. package/package.json +1 -1
  78. package/src/core/site-edits.js +1 -1
  79. package/src/loader-logic.js +0 -13
  80. package/src/page/boot-pack.js +1 -0
  81. package/src/page/history-intent.js +111 -4
  82. package/src/page/ybind/bridge.js +14 -7
  83. package/src/page/ybind/moves.js +437 -3
  84. package/src/page/ybind/origins.js +1 -1
  85. package/src/page/ybind/recovery.js +1 -1
  86. package/src/plugins/page.js +48 -4
  87. package/src/plugins/richclay.js +136 -0
  88. package/src/plugins/undo.js +169 -7
  89. package/src/recovery/undo.js +14 -7
  90. package/src/sync/live-sync.js +24 -0
  91. package/src/ui/vendor-skin.js +9 -4
  92. package/dist/m/c-3XNTQQEJ.js +0 -1
  93. package/dist/m/c-4OZZ7ENT.js +0 -30
  94. package/dist/m/c-D2OPWOWO.js +0 -2
  95. package/dist/m/c-LUBZU4AZ.js +0 -6
  96. package/dist/m/c-LYNLY3MR.js +0 -1
  97. package/dist/m/c-MLMJUNRV.js +0 -1
  98. package/dist/m/c-V5L6HWVL.js +0 -1
  99. package/dist/m/core/site-edits-TIJDPG6H.js +0 -1
  100. package/dist/m/loader-7ORQVRCK.js +0 -1
  101. package/dist/m/plugins/page-L3VKIQU2.js +0 -2
  102. package/dist/m/plugins/richclay-V6WKJTUF.js +0 -549
  103. package/dist/m/plugins/undo-WUK2NLBA.js +0 -1
  104. /package/dist/m/plugins/{quickcrop-VNRXGRPC.js.LEGAL.txt → quickcrop-UHURKA2F.js.LEGAL.txt} +0 -0
  105. /package/dist/m/plugins/{richclay-V6WKJTUF.js.LEGAL.txt → richclay-MXH2GFAZ.js.LEGAL.txt} +0 -0
@@ -1,4 +1,4 @@
1
- import{b as pe}from"./c-A7LS5UZW.js";import{a as I,b as Le,c as U,d as ve}from"./c-7K4SCQB7.js";import{a as Z,b as L,f as ye,g as ge,h as Ye,s as qe}from"./c-WMRJKQ2V.js";import{a as he}from"./c-TCCA5BZN.js";import{a as C,b as V,c as Te,d as Ce,f as Ne,g as Pe,k as $,m as H,p as _e}from"./c-3LDGIBMN.js";import{a as X,b as $e,c as Y}from"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function Ue(a,y){return!y||!Number.isInteger(y.seq)?null:y.seq>=(a.last??0)?[]:y.seq<(a.floor??0)?null:a.log.filter(d=>d.seq>y.seq).map(d=>({seq:d.seq,ops:d.ops}))}var k=Object.freeze({version:1,loose:32,soft:16,activeBytes:3840*1024,deleteReserve:64*1024,newPerFrame:4,tailFloor:64*1024,leaseMs:60*1e3,retired:8192}),Ke=Object.freeze({"checkpoint-required":503,"blockeditor-full":409,"compaction-failed":409,"blockeditor-immutable":409,"blockeditor-batch":409,"blockeditor-update-invalid":422,"blockeditor-upgrade":404}),me=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,je=/^[ctf][0-9a-z]{8}-[0-9a-z]+(-[0-9a-z]+)?$/,ht=/^(seed|c[0-9a-z]{8}-[0-9a-z]+)$/,be=a=>ht.test(a);function ee(a,y=k){let d=0,f=0,u=0,c=0;for(let p of Object.keys(a)){if(X.test(p)){u++;continue}be(p)?d++:f++,!me.test(p)&&!je.test(p)&&p!=="seed"&&c++}return{checkpoints:d,loose:f,parts:u,legacy:c,normal:u===0&&d<=1&&f<=y.loose}}function ze(a,{overflow:y=!1}={},d=k){let f=ee(a,d),u=Y(a),c=u.filter(([b])=>be(b)),p=u.filter(([b])=>!be(b)),w=p.reduce((b,[,m])=>b+m.length,0),g=c.reduce((b,[,m])=>b+m.length,0);return!f.normal||y||w>Math.max(d.tailFloor,g/4)?{kind:"full",sources:u}:p.length<2||f.loose<d.soft?null:{kind:"tail",sources:p}}function De({kind:a,sources:y,encode:d=Ye}){let f=y.map(([,c])=>L(c));if(a==="tail"){let c=qe(f),p=I(c);for(let w of f)if(!U(p,I(w)))return{failure:"not-covered"};return{update:Z(c)}}let u=new ye({gc:!0});try{for(let g of f)ge(u,g);if(u.store.pendingStructs||u.store.pendingDs){let g=qe(f),v=I(g);for(let b of f)if(!U(v,I(b)))return{failure:"not-covered"};return{update:Z(g),pending:!0}}let c=ve(u);for(let g of f)if(!U(c,I(g)))return{failure:"not-covered"};let p=Z(d(u)),w=new ye({gc:!0});try{ge(w,L(p));let g=ve(w);if(!g.complete)return{failure:"not-covered"};for(let v of f)if(!U(g,I(v)))return{failure:"not-covered"}}finally{w.destroy()}return{update:p}}catch(c){return{failure:"invalid-update",message:c?.message||String(c)}}finally{u.destroy()}}function we(a){if(typeof a!="string"||!$e(a))return null;try{let{items:y,deletes:d}=I(L(a)),f=0;for(let u of d.values())for(let[c,p]of u)f+=p-c;return{deleted:f,inserts:y.size>0}}catch{return null}}function Ve({y:a,ops:y,state:d,limits:f}){if(d.compaction!==f.version)return{error:"blockeditor-upgrade"};let u=0,c=0,p=!1;for(let g of y){let v=g.path?.[1];if(g.op!=="set"||typeof v!="string"||!me.test(v))return{error:"blockeditor-immutable"};if(Object.hasOwn(a,v)){if(a[v]!==g.value)return{error:"blockeditor-immutable"};continue}if(d.retired.has(v))return{error:"blockeditor-immutable"};let b=we(g.value);if(!b)return{error:"blockeditor-update-invalid"};u+=1,c+=b.deleted,p||=b.inserts}if(u>f.newPerFrame)return{error:"blockeditor-batch"};if(d.failed)return{added:u,deleted:c,inserts:p,limit:f.activeBytes+(p?0:f.deleteReserve),shape:null,failed:!0};let w=ee(a,f);return!w.normal||w.loose+u>f.loose?{error:"checkpoint-required",retryAfter:0}:{added:u,deleted:c,inserts:p,limit:f.activeBytes+(p?0:f.deleteReserve),shape:w}}var yt=a=>me.test(a)||je.test(a);function He(a=256){let y=new Map;return(d,f)=>{let u=y.get(d);if(u&&u.value===f)return u.ranges;let c=I(L(f));return y.delete(d),y.set(d,{value:f,ranges:c}),y.size>a&&y.delete(y.keys().next().value),c}}function Je({y:a,fileY:y,retired:d,rangesFor:f,keyFor:u=(c,p)=>p}){let c=Y(a),p=new Map(c),w=null,g=[];for(let[v,b]of Y(y??{})){if(p.get(v)===b||d.has(v)&&yt(v))continue;let m;try{m=I(L(b))}catch{continue}w??=Le(c.map(([r,O])=>f(r,O))),U(w,m)||g.push([v,b])}return g.map(([v,b],m)=>[u(m,v),b])}var Ge=5,gt=2e3,qt=500,vt=1024,bt=256*1024;function te(a,y){let d=[],f=()=>{for(let u=d.length-1;u>=0;u--)Pe(d[u])};try{for(let u of y){let c=Ne(a,u);c&&(d.push(c),a=c.root)}}catch(u){throw f(),u}return{value:a,undo:f}}var Qe=new TextEncoder,Xe="blockeditor-format:1",Ze="blockeditor-rooms:2";function Tt(a=0,y=window.location.pathname){let d="clay-live:"+y;return`${a>=1?`${d}:${Xe}`:d}:${Ze}`}function mt(a){typeof requestIdleCallback=="function"?requestIdleCallback(a,{timeout:1e3}):setTimeout(a,0)}var J=a=>!!a&&typeof a=="object"&&typeof a.y=="object"&&a.y!==null&&!Array.isArray(a.y);function Ct(){return typeof BroadcastChannel=="function"&&typeof navigator<"u"&&typeof navigator.locks?.request=="function"}function We(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}function Nt({seed:a,key:y="clay-live:"+window.location.pathname,channel:d=null,floor:f=0,rooms:u=!1}){let c=We(),p=f>=1?1:0,w=e=>`${y}${e>=1?`:${Xe}`:""}${u?`:${Ze}`:""}`,g=w(p),v=null,b=null,m=null,r=null,O=!1,oe=null,K=!1,R=null,et=0,j=0,N=new Map,G=new Map,Q=new Set,P=new Map,s={epoch:null,seq:0,sequencer:null,closedBy:null,stale:!1,seen:new Map,stores:new Map};function A(e){v?.post({...e,version:Ge})}function ne(e,t){for(t.bytes=Qe.encode(JSON.stringify(t.ops)).length,e.log.push(t),e.logBytes+=t.bytes;e.log.length>vt||e.logBytes>bt;){let n=e.log.shift();e.logBytes-=n.bytes,e.floor=n.seq}}function re(e){let t=s.stores.get(e.name);t&&(t.value=te(t.value,e.ops).value,t.last=e.seq,t.ephemeral||ne(t,{seq:e.seq,ops:e.ops})),s.seq=e.seq;let n=e.name+`
1
+ import{b as pe}from"./c-A7LS5UZW.js";import{a as I,b as Le,c as U,d as ve}from"./c-ND3W7D5U.js";import{a as Z,b as L,i as ye,j as ge,k as Ye,w as qe}from"./c-WHQUZM2V.js";import{a as he}from"./c-TCCA5BZN.js";import{a as C,b as V,c as Te,d as Ce,f as Ne,g as Pe,k as $,m as H,p as _e}from"./c-3LDGIBMN.js";import{a as X,b as $e,c as Y}from"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function Ue(a,y){return!y||!Number.isInteger(y.seq)?null:y.seq>=(a.last??0)?[]:y.seq<(a.floor??0)?null:a.log.filter(d=>d.seq>y.seq).map(d=>({seq:d.seq,ops:d.ops}))}var k=Object.freeze({version:1,loose:32,soft:16,activeBytes:3840*1024,deleteReserve:64*1024,newPerFrame:4,tailFloor:64*1024,leaseMs:60*1e3,retired:8192}),Ke=Object.freeze({"checkpoint-required":503,"blockeditor-full":409,"compaction-failed":409,"blockeditor-immutable":409,"blockeditor-batch":409,"blockeditor-update-invalid":422,"blockeditor-upgrade":404}),me=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,je=/^[ctf][0-9a-z]{8}-[0-9a-z]+(-[0-9a-z]+)?$/,ht=/^(seed|c[0-9a-z]{8}-[0-9a-z]+)$/,be=a=>ht.test(a);function ee(a,y=k){let d=0,f=0,u=0,c=0;for(let p of Object.keys(a)){if(X.test(p)){u++;continue}be(p)?d++:f++,!me.test(p)&&!je.test(p)&&p!=="seed"&&c++}return{checkpoints:d,loose:f,parts:u,legacy:c,normal:u===0&&d<=1&&f<=y.loose}}function ze(a,{overflow:y=!1}={},d=k){let f=ee(a,d),u=Y(a),c=u.filter(([b])=>be(b)),p=u.filter(([b])=>!be(b)),w=p.reduce((b,[,m])=>b+m.length,0),g=c.reduce((b,[,m])=>b+m.length,0);return!f.normal||y||w>Math.max(d.tailFloor,g/4)?{kind:"full",sources:u}:p.length<2||f.loose<d.soft?null:{kind:"tail",sources:p}}function De({kind:a,sources:y,encode:d=Ye}){let f=y.map(([,c])=>L(c));if(a==="tail"){let c=qe(f),p=I(c);for(let w of f)if(!U(p,I(w)))return{failure:"not-covered"};return{update:Z(c)}}let u=new ye({gc:!0});try{for(let g of f)ge(u,g);if(u.store.pendingStructs||u.store.pendingDs){let g=qe(f),v=I(g);for(let b of f)if(!U(v,I(b)))return{failure:"not-covered"};return{update:Z(g),pending:!0}}let c=ve(u);for(let g of f)if(!U(c,I(g)))return{failure:"not-covered"};let p=Z(d(u)),w=new ye({gc:!0});try{ge(w,L(p));let g=ve(w);if(!g.complete)return{failure:"not-covered"};for(let v of f)if(!U(g,I(v)))return{failure:"not-covered"}}finally{w.destroy()}return{update:p}}catch(c){return{failure:"invalid-update",message:c?.message||String(c)}}finally{u.destroy()}}function we(a){if(typeof a!="string"||!$e(a))return null;try{let{items:y,deletes:d}=I(L(a)),f=0;for(let u of d.values())for(let[c,p]of u)f+=p-c;return{deleted:f,inserts:y.size>0}}catch{return null}}function Ve({y:a,ops:y,state:d,limits:f}){if(d.compaction!==f.version)return{error:"blockeditor-upgrade"};let u=0,c=0,p=!1;for(let g of y){let v=g.path?.[1];if(g.op!=="set"||typeof v!="string"||!me.test(v))return{error:"blockeditor-immutable"};if(Object.hasOwn(a,v)){if(a[v]!==g.value)return{error:"blockeditor-immutable"};continue}if(d.retired.has(v))return{error:"blockeditor-immutable"};let b=we(g.value);if(!b)return{error:"blockeditor-update-invalid"};u+=1,c+=b.deleted,p||=b.inserts}if(u>f.newPerFrame)return{error:"blockeditor-batch"};if(d.failed)return{added:u,deleted:c,inserts:p,limit:f.activeBytes+(p?0:f.deleteReserve),shape:null,failed:!0};let w=ee(a,f);return!w.normal||w.loose+u>f.loose?{error:"checkpoint-required",retryAfter:0}:{added:u,deleted:c,inserts:p,limit:f.activeBytes+(p?0:f.deleteReserve),shape:w}}var yt=a=>me.test(a)||je.test(a);function He(a=256){let y=new Map;return(d,f)=>{let u=y.get(d);if(u&&u.value===f)return u.ranges;let c=I(L(f));return y.delete(d),y.set(d,{value:f,ranges:c}),y.size>a&&y.delete(y.keys().next().value),c}}function Je({y:a,fileY:y,retired:d,rangesFor:f,keyFor:u=(c,p)=>p}){let c=Y(a),p=new Map(c),w=null,g=[];for(let[v,b]of Y(y??{})){if(p.get(v)===b||d.has(v)&&yt(v))continue;let m;try{m=I(L(b))}catch{continue}w??=Le(c.map(([r,O])=>f(r,O))),U(w,m)||g.push([v,b])}return g.map(([v,b],m)=>[u(m,v),b])}var Ge=5,gt=2e3,qt=500,vt=1024,bt=256*1024;function te(a,y){let d=[],f=()=>{for(let u=d.length-1;u>=0;u--)Pe(d[u])};try{for(let u of y){let c=Ne(a,u);c&&(d.push(c),a=c.root)}}catch(u){throw f(),u}return{value:a,undo:f}}var Qe=new TextEncoder,Xe="blockeditor-format:1",Ze="blockeditor-rooms:2";function Tt(a=0,y=window.location.pathname){let d="clay-live:"+y;return`${a>=1?`${d}:${Xe}`:d}:${Ze}`}function mt(a){typeof requestIdleCallback=="function"?requestIdleCallback(a,{timeout:1e3}):setTimeout(a,0)}var J=a=>!!a&&typeof a=="object"&&typeof a.y=="object"&&a.y!==null&&!Array.isArray(a.y);function Ct(){return typeof BroadcastChannel=="function"&&typeof navigator<"u"&&typeof navigator.locks?.request=="function"}function We(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}function Nt({seed:a,key:y="clay-live:"+window.location.pathname,channel:d=null,floor:f=0,rooms:u=!1}){let c=We(),p=f>=1?1:0,w=e=>`${y}${e>=1?`:${Xe}`:""}${u?`:${Ze}`:""}`,g=w(p),v=null,b=null,m=null,r=null,O=!1,oe=null,K=!1,R=null,et=0,j=0,N=new Map,G=new Map,Q=new Set,P=new Map,s={epoch:null,seq:0,sequencer:null,closedBy:null,stale:!1,seen:new Map,stores:new Map};function A(e){v?.post({...e,version:Ge})}function ne(e,t){for(t.bytes=Qe.encode(JSON.stringify(t.ops)).length,e.log.push(t),e.logBytes+=t.bytes;e.log.length>vt||e.logBytes>bt;){let n=e.log.shift();e.logBytes-=n.bytes,e.floor=n.seq}}function re(e){let t=s.stores.get(e.name);t&&(t.value=te(t.value,e.ops).value,t.last=e.seq,t.ephemeral||ne(t,{seq:e.seq,ops:e.ops})),s.seq=e.seq;let n=e.name+`
2
2
  `+e.from;(s.seen.get(n)??0)<e.n&&s.seen.set(n,e.n)}function tt(e){let t={};for(let[n,l]of s.seen){let o=n.indexOf(`
3
3
  `);n.slice(0,o)===e&&(t[n.slice(o+1)]=l)}return t}let ke=e=>e.behind||e.landed===null?-1:e.landed;function z(e){let t={},n={};for(let[o,i]of s.stores)t[o]={value:C(i.value),ephemeral:i.ephemeral,seen:tt(o),last:i.last,landed:ke(i)},o==="blockeditor"&&J(i.value)&&(t[o].compaction={v:k.version,loose:k.loose,activeBytes:k.activeBytes}),n[o]={log:i.log,last:i.last,landed:i.landed,floor:i.floor,behind:i.behind,file:i.file,inFile:i.inFile};let l={epoch:r.epoch,seq:r.seq,writer:c,stores:t,mirror:{seen:[...s.seen],stores:n}};if(e!==void 0){let o=e&&e.epoch===s.epoch&&Number.isInteger(e.seq)?e.seq:0,i={};for(let[q,h]of s.stores)i[q]=Ue(h,{seq:o});l.moves=i}return l}function Oe(e,t){return e?.file?t.seq!=null&&e.file.seq!=null?t.seq<=e.file.seq:e.file.hash===H($(he(t.text))):!1}function ot(){for(let[e,t]of P)try{Oe(s.stores.get(e),t)&&P.delete(e)}catch{P.delete(e)}}function se(e){if(r||!e||typeof e.epoch!="string"||!Number.isInteger(e.seq)||!e.mirror||Q.has(e.epoch)||e.epoch===s.epoch&&e.seq<s.seq)return!1;s.epoch!==null&&e.epoch!==s.epoch&&Q.add(s.epoch);let t=new Map;for(let[n,l]of Object.entries(e.stores||{})){let o=e.mirror.stores?.[n]||{},i=Array.isArray(o.log)?o.log:[];t.set(n,{value:C(l.value),ephemeral:l.ephemeral===!0,log:i,logBytes:i.reduce((q,h)=>q+(h.bytes||0),0),last:Number.isInteger(o.last)?o.last:0,landed:Number.isInteger(o.landed)?o.landed:null,floor:Number.isInteger(o.floor)?o.floor:0,behind:o.behind===!0,file:o.file||null,inFile:Array.isArray(o.inFile)?[...o.inFile]:[]})}return s={epoch:e.epoch,seq:e.seq,sequencer:e.writer??null,closedBy:null,stale:!1,seen:new Map(e.mirror.seen||[]),stores:t},ot(),j+=1,!0}function le(){let e=z();A({type:"data-state",state:e}),m.state(e)}function ie(){s.epoch!==null&&Q.add(s.epoch),s.epoch=We(),s.seq=0;for(let e of s.stores.values())e.log=[],e.logBytes=0,e.last=0,e.landed=null,e.floor=0,e.behind=!0,e.file=null,e.inFile=[]}function nt({fresh:e}){let t=s.epoch===null;t&&ie();for(let[l,o]of a())s.stores.has(l)||s.stores.set(l,{value:C(o.value),ephemeral:o.ephemeral,log:[],logBytes:0,last:0,landed:0,floor:0,behind:!1,file:null,inFile:[]});s.stale=!1,s.sequencer=c,s.closedBy=null;let n=new Map;for(let[l,o]of s.seen)n.set(l,{n:o,seq:0});r={epoch:s.epoch,seq:s.seq,lastN:n,host:st()};for(let[l,o]of P){let i=s.stores.get(l);if(!(!i||i.ephemeral)){try{if(Oe(i,o))continue}catch{continue}Ae(l,o)}}P.clear(),e&&!t&&(ie(),r.epoch=s.epoch,r.seq=0),j+=1,le()}function Se(){ie(),r.epoch=s.epoch,r.seq=0,j+=1,le()}function ce(){r&&(A({type:"closed",from:c,state:z()}),r=null,oe?.(),oe=null)}function rt(e){return s.closedBy!==null&&(e===null||s.closedBy===e)?Promise.resolve(!0):new Promise(t=>{let n=setTimeout(()=>{R=null,t(!1)},qt);R={sequencer:e,resolve(l){clearTimeout(n),R=null,t(l)}}})}function ae(){K||O||(K=!0,navigator.locks.request(g,async()=>{if(O)return;let e=await rt(s.sequencer);if(!O)return nt({fresh:s.epoch===null||!e}),new Promise(t=>{oe=t})}).catch(()=>{}).finally(()=>{K=!1}))}let st=()=>({retired:new Set,lastFull:null,deletesSince:0,failed:null,ranges:He(),task:null,overflow:!1}),lt=()=>{let e=s.stores.get("blockeditor");return e&&!e.ephemeral&&J(e.value)?e:null},ue=e=>Qe.encode($(e)).length,fe=(e,t=0)=>({status:Ke[e]??409,body:{code:e},retryAfter:t});function _(e=!1){if(!r)return;let t=r.host;if(t.overflow||=e,t.task)return;let n=r;t.task=mt(()=>{t.task=null;let l=t.overflow;t.overflow=!1,!(O||r!==n||t.failed)&&it(t,{overflow:l})})}function it(e,{overflow:t}){let n=lt();if(!n)return;let l=ze(n.value.y,{overflow:t},k);if(!l)return;let o=De({kind:l.kind,sources:l.sources});if(typeof o.update!="string"){e.failed={reason:o.failure};return}ct(e,n,l,o.update)}function ct(e,t,n,l){let o=t.value.y,i=new Map(n.sources),q=Object.keys(o).filter(F=>{let D=X.exec(F);return i.has(D?D[1]:F)||D&&n.kind==="full"}),h=new Map(Y(Object.fromEntries(q.map(F=>[F,o[F]]))));for(let[F,D]of i)if(h.get(F)!==D)return;if(!we(l))return;let x=`${n.kind==="full"?"c":"t"}${H(r.epoch).slice(0,8)}-${(r.seq+1).toString(36)}`;if(Object.hasOwn(o,x))return;let B=[...q.map(F=>V({op:"del",path:["y",F]})),V({op:"set",path:["y",x],value:l})],M=ue(t.value),E;try{E=te(t.value,B)}catch{return}let S=ue(E.value);if(E.undo(),S>k.activeBytes&&S>M){n.kind==="full"&&q.length===Object.keys(o).length&&(e.lastFull={bytes:M,seq:r.seq},e.deletesSince=0);return}let T=!t.behind&&t.landed===t.last;for(let[F]of n.sources)e.retired.add(F),e.retired.size>k.retired&&e.retired.delete(e.retired.values().next().value);r.seq+=1,n.kind==="full"&&(e.lastFull={bytes:S,seq:r.seq},e.deletesSince=0);let de={epoch:r.epoch,seq:r.seq,name:"blockeditor",ops:B,from:"compactor",n:0,kind:n.kind};re(de),T&&(t.landed=r.seq),A({type:"data",data:de}),m.frame(C(de)),T&&(W(["blockeditor"]),A({type:"landed",name:"blockeditor",at:{epoch:r.epoch,seq:r.seq}}));let Re=ee(t.value.y,k);(Re.loose>=k.soft||!Re.normal)&&_()}function xe(e,t){if(!t||typeof t.name!="string"||!Number.isInteger(t.n)||t.n<1||!Array.isArray(t.ops)||!t.ops.length)return{status:400,body:{error:"bad-frame"},retryAfter:0};let n=s.stores.get(t.name);if(!n)return{status:404,body:{error:"unknown-store"},retryAfter:0};let l=t.name+`
4
4
  `+e,o=r.lastN.get(l);if(o&&t.n<=o.n)return{status:200,body:{duplicate:!0,seq:o.seq,epoch:r.epoch},retryAfter:0};let i;try{i=t.ops.map(V)}catch(E){return{status:422,body:{error:E.message},retryAfter:0}}let q=r.host,h=t.name==="blockeditor"&&J(n.value)?Ve({y:n.value.y,ops:i,state:{...q,compaction:t.compaction},limits:k}):null;if(h?.error)return h.error==="checkpoint-required"&&_(),fe(h.error,h.retryAfter);let x;try{x=te(n.value,i)}catch(E){return{status:422,body:{error:E.message},retryAfter:0}}let B=h?ue(x.value):0;if(x.undo(),h&&B>h.limit)return h.failed||q.lastFull&&q.deletesSince===0?fe("blockeditor-full"):(_(!0),fe("checkpoint-required"));r.seq+=1,r.lastN.set(l,{n:t.n,seq:r.seq});let M={epoch:r.epoch,seq:r.seq,name:t.name,ops:i,from:e,n:t.n};return re(M),A({type:"data",data:M}),m.frame(C(M)),h&&(q.deletesSince+=h.deleted,!h.failed&&B>k.activeBytes?_(!0):!h.failed&&h.shape.loose+h.added>=k.soft&&_()),{status:200,body:{seq:r.seq,epoch:r.epoch},retryAfter:0}}function W(e){if(!r||!e.length)return;let t={};for(let n of e){let l=s.stores.get(n);l&&(t[n]=ke(l))}m.writer({epoch:r.epoch,writer:c,landed:t})}function Fe(e,t){let n=s.stores.get(e);return!n||n.ephemeral||!t||t.epoch!==s.epoch||!Number.isInteger(t.seq)||!n.behind&&n.landed!==null&&t.seq<=n.landed?!1:(n.landed=t.seq,n.behind=!1,!0)}function Ae(e,{text:t,at:n,seq:l}){let o=s.stores.get(e);if(!o||o.ephemeral)return null;let i;try{i=C(he(t))}catch{return null}if(i===null||typeof i!="object"||Array.isArray(i)!==Array.isArray(o.value))return null;let q={seq:l??null,hash:H($(i))};if(e==="blockeditor"&&J(o.value)&&J(i))return at(o,i,q);let h=!!n&&n.epoch===s.epoch&&n.seq<=r.seq,x=h&&n.hash===q.hash,B=h?n.seq:o.behind?null:o.landed;if(B===null||B<o.floor){let S=!o.behind;return o.behind=!0,o.file=q,{changed:!1,moved:S}}let M=o.log.filter(S=>S.seq>B&&(x||!o.inFile.includes(S.seq)));x&&(o.inFile=[]);for(let S of M)for(let T of S.ops)try{Te(i,T),i=Ce(i,T)}catch{}let E=!1;if($(i)!==$(o.value)){let S=_e(o.value,i);o.value=i,r.seq+=1,s.seq=r.seq,o.last=r.seq,ne(o,{seq:r.seq,ops:S}),o.inFile=[...o.inFile.filter(T=>T>o.floor),r.seq],E=!0}return o.landed=M.length?B:o.last,o.behind=!1,o.file=q,{changed:E,moved:!0}}function at(e,t,n){if(t.g!==e.value.g)return null;let l=r.host,o=Je({y:e.value.y,fileY:t.y,retired:l.retired,rangesFor:l.ranges,keyFor:h=>`f${H(r.epoch).slice(0,8)}-${(r.seq+1).toString(36)}-${h.toString(36)}`});e.file=n;let i=new Set,q=[];for(let[h,x]of o)Object.hasOwn(e.value.y,h)||i.has(h)||(i.add(h),q.push(V({op:"set",path:["y",h],value:x})));return q.length?(e.value=te(e.value,q).value,r.seq+=1,s.seq=r.seq,e.last=r.seq,ne(e,{seq:r.seq,ops:q}),e.inFile=[...e.inFile.filter(h=>h>e.floor),r.seq],l.lastFull=null,_(),{changed:!0,moved:!0}):{changed:!1,moved:!1}}function ut(e){let t=!1,n=[];for(let[l,o]of e){let i=s.stores.get(l);if(!i||i.ephemeral)continue;if(!r){P.set(l,o);continue}let q=Ae(l,o);q&&(q.changed?t=!0:q.moved&&n.push(l))}t?le():W(n)}function Be(e){return new Promise(t=>{let n=++et,l=setTimeout(()=>{N.delete(n),G.delete(n),t(null)},gt);e.type==="post"&&G.set(n,s.sequencer),N.set(n,o=>{clearTimeout(l),N.delete(n),G.delete(n),t(o)}),A({...e,from:c,rid:n})})}function ft(e){if(!(!e||typeof e.name!="string"||typeof e.epoch!="string"||!Number.isInteger(e.seq))&&!(r||Q.has(e.epoch))){if(e.epoch!==s.epoch)s.stale=!0;else if(!s.stale&&e.seq===s.seq+1)try{re(e)}catch{s.stale=!0}else e.seq>s.seq&&(s.stale=!0);m.frame(e)}}function dt(e,t){if(!(typeof e!="string"||!t)){se(t)&&(s.closedBy=e,m.state(t));for(let[n,l]of G)l===e&&N.get(n)?.(null);R&&(R.sequencer===null||R.sequencer===e)&&R.resolve(s.closedBy===e)}}function Ee({data:e}){if(!(O||!e||e.version!==Ge)){if(r&&(e.type==="data"&&e.data?.epoch===r.epoch||(e.type==="data-state"||e.type==="closed")&&e.state?.epoch===r.epoch&&e.state.writer!==c)){Se();return}if(!r&&e.type==="data-state"&&e.state?.epoch===s.epoch&&e.state.writer!==s.sequencer&&Number.isInteger(e.state.seq)&&e.state.seq<s.seq){A({type:"forked",epoch:s.epoch,to:e.state.writer});return}if(e.type==="forked"){r&&e.epoch===r.epoch&&e.to===c&&Se();return}e.type==="data"?ft(e.data):e.type==="data-state"?se(e.state)&&m.state(e.state):e.type==="closed"?dt(e.from,e.state):e.type==="landed"?typeof e.name=="string"&&Fe(e.name,e.at)&&W([e.name]):e.type==="answer"?e.to===c&&N.get(e.rid)?.(e.result):r&&e.type==="post"?e.epoch===r.epoch&&A({type:"answer",to:e.from,rid:e.rid,result:xe(e.from,e.frame)}):r&&e.type==="state-request"&&A({type:"answer",to:e.from,rid:e.rid,result:z(e.since)})}}function Ie(){ce()}function Me(e){!e.persisted||O||r||K||(s.sequencer=null,s.closedBy=null,ae(),m.close(),m.open({clientId:c,lane:"live"}))}function pt(e,{covered:t=!1}={}){let n=e>=1?1:0,l={floor:p,scope:g};return n<=p?{status:"already",...l}:O||!v?{status:"refused",code:"lane-stopped",...l}:d?{status:"refused",code:"shared-channel",...l}:t?(ce(),b?.(),g=w(n),p=n,v=pe(g),b=v.subscribe("durable",o=>Ee({data:o})),s.sequencer=s.closedBy=null,K=!1,ae(),m.close(),m.open({clientId:c,lane:"live"}),{status:"switched",floor:p,scope:g}):{status:"refused",code:"uncovered",...l}}return{clientId:c,get scope(){return g},get floor(){return p},switchScope:pt,start(e){return m=e,v=d??pe(g),b=v.subscribe("durable",t=>Ee({data:t})),window.addEventListener("pagehide",Ie),window.addEventListener("pageshow",Me),ae(),m.open({clientId:c,lane:"live"}),()=>{ce(),O=!0,R?.resolve(!1),window.removeEventListener("pagehide",Ie),window.removeEventListener("pageshow",Me);for(let t of N.values())t(null);b?.(),b=null,v=null}},async send(e,t){return r?xe(c,t):await Be({type:"post",frame:t,epoch:s.epoch})||{status:0,body:null,retryAfter:0}},async fetchState(e,t=null){if(r)return z(t);let n=j,l=await Be({type:"state-request",since:t});return r?z(t):n!==j||!se(l)?null:l},fileFrame(e){O||ut(e)},landed(e,t){O||!t||(Fe(e,t)&&W([e]),A({type:"landed",name:e,at:{epoch:t.epoch,seq:t.seq}}))},get isSequencer(){return r!==null}}}export{qt as CLOSE_WAIT_MS,Xe as FORMAT_SCOPE,bt as LOG_BYTES,vt as LOG_ENTRIES,gt as REQUEST_MS,Ze as ROOM_SCOPE,Tt as localLaneKey,Ct as localLaneSupported,Nt as localTransport};
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f}from"./c-TKV273YU.js";import{g as a}from"./c-WHMZCRQD.js";import"./c-LAKBBJOU.js";import"./c-EIUKME3W.js";import"./c-DZT6W2NG.js";import"./c-SYOA4T7V.js";import"./c-ND3W7D5U.js";import"./c-WHQUZM2V.js";import"./c-3XGLJAS7.js";import"./c-OH2FPYSY.js";import"./c-FSQXFG5T.js";import"./c-RETTCOWO.js";import"./c-JC4RZW4E.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{g as T,i as O,t as d,u as g,w as _}from"./c-V2V5FKXX.js";import{D as z}from"./c-OH2FPYSY.js";var b=(t,n)=>{let e=new Map,r=[];for(let o of n??[]){let s=e.get(o.id)??[];s.push(o.implicit),e.set(o.id,s)}let c=new Map;return t.forEach(o=>{let s=o.attrs.id,i=c.get(s)??0;r.push(e.get(s)?.[i]??!1),c.set(s,i+1)}),r},A=t=>t.attrs.raw??null,j=t=>{let n=A(t);if(n){let r={...n};return delete r.t,delete r.pos,r}let e={};for(let r of T(t.type))e[r]=t.attrs[r];return t.type.name==="table"&&(e.rows=z(t).rows),e},y=t=>A(t)?.t??t.type.name;function K(t,n=new Map,e=null){let r=[],c=b(t,e);return t.forEach((o,s,i)=>{let a=c[i]&&!n.has(o.attrs.id),f=e?e[i]?.brk??null:null;a||r.push({k:"b",id:c[i]&&n.has(o.attrs.id)?n.get(o.attrs.id):o.attrs.id,t:y(o),attrs:j(o),brk:f}),o.isTextblock&&o.content.forEach(l=>{if(l.isText){let u=y(o)==="code_block"?[]:l.marks,m=g(u),p=d(u);for(let h=0;h<l.text.length;h++)r.push({k:"c",ch:l.text[h],mk:m,ma:p})}else l.type.name==="hard_break"&&r.push({k:"h"})})}),r}function w(t,n=new Map,e=null){let r=new Int32Array(t.content.size+1),c=0,o=b(t,e);return t.forEach((s,i,a)=>{let l=o[a]&&!n.has(s.attrs.id)?0:1;if(s.isTextblock){let u=s.content.size;r[i]=c;for(let m=0;m<=u;m++)r[i+1+m]=c+l+m;r[i+2+u]=c+l+u,c+=l+u}else r[i]=c,r[i+s.nodeSize]=c+l,c+=l}),r}function P(t,n,e){let r=t.resolve(n),c=t.resolve(e);if(r.depth!==1||c.depth!==1||r.index(0)!==c.index(0)||!r.parent.isTextblock)throw new RangeError("token range must stay inside one text block");let o=r.index(0),s=0,i=0,a=null;t.forEach((p,h,x)=>{x<o?s+=p.isTextblock?p.content.size+1:1:x===o&&(a=p,i=h)});let f=n-i-1,l=e-i-1,u=[],m=0;return a.content.forEach(p=>{let h=Math.max(0,f-m),x=Math.min(p.nodeSize,l-m);if(h<x)if(p.isText){let M=y(a)==="code_block"?[]:p.marks,I=g(M),S=d(M);for(let k=h;k<x;k++)u.push({k:"c",ch:p.text[k],mk:I,ma:S})}else p.type.name==="hard_break"&&u.push({k:"h"});m+=p.nodeSize}),{start:s+1+f,end:s+1+l,tokens:u}}var q=(t,n)=>t.k===n.k&&(t.k==="b"?t.id===n.id&&t.t===n.t&&O(t.attrs,n.attrs):t.k==="h"||t.ch===n.ch&&t.mk===n.mk),C=(t,n)=>{let e=n;for(let r of t)r.at<=n&&(e+=r.len);return e},E=(t,n)=>{let e=n;for(let r of t)r.at<n&&(e+=r.len);return e},N=(t,n,e)=>_({tokens:t,holes:n},e);var D=(t,n,e,r)=>E(n,w(t,new Map,r)[e]);function G(t,n,e,r,c=null){let o=0,s=e;for(;o<s;){let f=o+s+1>>1;E(n,f)<=r?o=f:s=f-1}let i=w(t,new Map,c),a=-1;for(let f=0;f<i.length;f++)if(!(i[f]<o)){if(i[f]>o)break;if(a<0&&(a=f),t.resolve(f).parent.inlineContent)return f}return a<0?t.content.size:a}var H=(t,n)=>{let e=t.resolve(n);return e.depth!==3||e.parent.type.name!=="table_cell"?null:{table:e.node(1).attrs.id,row:e.node(2).attrs.id,col:e.parent.attrs.col,offset:e.parentOffset}},R=(t,n)=>{let e=null;return t.forEach((r,c)=>{e!==null||r.type.name!=="table"||r.attrs.id!==n.table||r.forEach((o,s)=>{e!==null||o.attrs.id!==n.row||o.forEach((i,a)=>{e===null&&i.attrs.col===n.col&&(e={from:c+2+s+a,to:c+2+s+a+i.nodeSize,block:n.table,row:n.row,col:n.col})})})}),e},L=(t,n)=>{let e=R(t,n);if(!e)return null;let r=t.nodeAt(e.from);return e.from+1+Math.min(n.offset??0,r?r.content.size:0)};export{K as a,w as b,P as c,q as d,C as e,E as f,N as g,D as h,G as i,H as j,R as k,L as l};
1
+ import{g as T,i as O,t as d,u as g,w as _}from"./c-EIUKME3W.js";import{D as z}from"./c-OH2FPYSY.js";var b=(t,n)=>{let e=new Map,r=[];for(let o of n??[]){let s=e.get(o.id)??[];s.push(o.implicit),e.set(o.id,s)}let c=new Map;return t.forEach(o=>{let s=o.attrs.id,i=c.get(s)??0;r.push(e.get(s)?.[i]??!1),c.set(s,i+1)}),r},A=t=>t.attrs.raw??null,j=t=>{let n=A(t);if(n){let r={...n};return delete r.t,delete r.pos,r}let e={};for(let r of T(t.type))e[r]=t.attrs[r];return t.type.name==="table"&&(e.rows=z(t).rows),e},y=t=>A(t)?.t??t.type.name;function K(t,n=new Map,e=null){let r=[],c=b(t,e);return t.forEach((o,s,i)=>{let a=c[i]&&!n.has(o.attrs.id),f=e?e[i]?.brk??null:null;a||r.push({k:"b",id:c[i]&&n.has(o.attrs.id)?n.get(o.attrs.id):o.attrs.id,t:y(o),attrs:j(o),brk:f}),o.isTextblock&&o.content.forEach(l=>{if(l.isText){let u=y(o)==="code_block"?[]:l.marks,m=g(u),p=d(u);for(let h=0;h<l.text.length;h++)r.push({k:"c",ch:l.text[h],mk:m,ma:p})}else l.type.name==="hard_break"&&r.push({k:"h"})})}),r}function w(t,n=new Map,e=null){let r=new Int32Array(t.content.size+1),c=0,o=b(t,e);return t.forEach((s,i,a)=>{let l=o[a]&&!n.has(s.attrs.id)?0:1;if(s.isTextblock){let u=s.content.size;r[i]=c;for(let m=0;m<=u;m++)r[i+1+m]=c+l+m;r[i+2+u]=c+l+u,c+=l+u}else r[i]=c,r[i+s.nodeSize]=c+l,c+=l}),r}function P(t,n,e){let r=t.resolve(n),c=t.resolve(e);if(r.depth!==1||c.depth!==1||r.index(0)!==c.index(0)||!r.parent.isTextblock)throw new RangeError("token range must stay inside one text block");let o=r.index(0),s=0,i=0,a=null;t.forEach((p,h,x)=>{x<o?s+=p.isTextblock?p.content.size+1:1:x===o&&(a=p,i=h)});let f=n-i-1,l=e-i-1,u=[],m=0;return a.content.forEach(p=>{let h=Math.max(0,f-m),x=Math.min(p.nodeSize,l-m);if(h<x)if(p.isText){let M=y(a)==="code_block"?[]:p.marks,I=g(M),S=d(M);for(let k=h;k<x;k++)u.push({k:"c",ch:p.text[k],mk:I,ma:S})}else p.type.name==="hard_break"&&u.push({k:"h"});m+=p.nodeSize}),{start:s+1+f,end:s+1+l,tokens:u}}var q=(t,n)=>t.k===n.k&&(t.k==="b"?t.id===n.id&&t.t===n.t&&O(t.attrs,n.attrs):t.k==="h"||t.ch===n.ch&&t.mk===n.mk),C=(t,n)=>{let e=n;for(let r of t)r.at<=n&&(e+=r.len);return e},E=(t,n)=>{let e=n;for(let r of t)r.at<n&&(e+=r.len);return e},N=(t,n,e)=>_({tokens:t,holes:n},e);var D=(t,n,e,r)=>E(n,w(t,new Map,r)[e]);function G(t,n,e,r,c=null){let o=0,s=e;for(;o<s;){let f=o+s+1>>1;E(n,f)<=r?o=f:s=f-1}let i=w(t,new Map,c),a=-1;for(let f=0;f<i.length;f++)if(!(i[f]<o)){if(i[f]>o)break;if(a<0&&(a=f),t.resolve(f).parent.inlineContent)return f}return a<0?t.content.size:a}var H=(t,n)=>{let e=t.resolve(n);return e.depth!==3||e.parent.type.name!=="table_cell"?null:{table:e.node(1).attrs.id,row:e.node(2).attrs.id,col:e.parent.attrs.col,offset:e.parentOffset}},R=(t,n)=>{let e=null;return t.forEach((r,c)=>{e!==null||r.type.name!=="table"||r.attrs.id!==n.table||r.forEach((o,s)=>{e!==null||o.attrs.id!==n.row||o.forEach((i,a)=>{e===null&&i.attrs.col===n.col&&(e={from:c+2+s+a,to:c+2+s+a+i.nodeSize,block:n.table,row:n.row,col:n.col})})})}),e},L=(t,n)=>{let e=R(t,n);if(!e)return null;let r=t.nodeAt(e.from);return e.from+1+Math.min(n.offset??0,r?r.content.size:0)};export{K as a,w as b,P as c,q as d,C as e,E as f,N as g,D as h,G as i,H as j,R as k,L as l};
@@ -1 +1 @@
1
- import{C as h,d as f,h as x}from"./c-3Y234AUB.js";import{A as g,c as I,d as $}from"./c-OH2FPYSY.js";import{b as E}from"./c-RETTCOWO.js";var{Plugin:B,PluginKey:j}=E,k=$.nodes,m=new j("blockeditor-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="blockeditor-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?.(".blockeditor-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{C as h,d as f,h as x}from"./c-3XGLJAS7.js";import{A as g,c as I,d as $}from"./c-OH2FPYSY.js";import{b as E}from"./c-RETTCOWO.js";var{Plugin:B,PluginKey:j}=E,k=$.nodes,m=new j("blockeditor-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="blockeditor-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?.(".blockeditor-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};
@@ -0,0 +1 @@
1
+ import{d as v,e as m}from"./c-LETPPG2F.js";import"./c-MVVEIJUU.js";import"./c-IW6GGOU2.js";import"./c-HAWFNBYG.js";import{f as h,g as p,h as g,i as k}from"./c-LAKBBJOU.js";import"./c-EIUKME3W.js";import"./c-ND3W7D5U.js";import"./c-WHQUZM2V.js";import"./c-OH2FPYSY.js";import"./c-RETTCOWO.js";import"./c-TCCA5BZN.js";import"./c-57XDY6HC.js";import"./c-OZVK3TFI.js";import"./c-QCDVDZIR.js";import"./c-MZCOGNZL.js";import"./c-IJUK2GPW.js";import{c as b}from"./c-BPF2NSPV.js";import{e as T}from"./c-UW6MMZ4V.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";T(v);var x=1,y=class extends Error{constructor(o,n){super(n),this.name="PageCheckpointError",this.code=o}},w=(e,o)=>{throw new y(e,o)},t=(e,o)=>({ok:!1,code:e,message:o}),A=/^[0-9a-f]{64}$/,j=/^[0-9a-f]{32}$/,E=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function I(e){return{v:e.v,g:e.g,y:{...e.y??{}}}}function H(e){let o;try{o=JSON.parse(e)}catch{w("invalid-state","The page state is not JSON")}return(!E(o)||o.v!==1)&&w("invalid-state","Expected a version 1 Yjs page value"),{state:I(o),bytes:p(o)}}var S=e=>e==null?"":String(e);async function N({href:e,etag:o,fetch:n=globalThis.fetch,signal:i=null}={}){if(typeof o!="string"||!o)return t("missing-etag","A conditional read needs the accepted ETag");if(typeof e!="string"||!e)return t("no-blockeditor-state","This host names no blockeditor-state resource");if(typeof n!="function")return t("unavailable","This tab cannot read the page state");let s=globalThis.location?.href??"http://localhost/",d;try{d=new URL(e,s).href}catch{return t("no-blockeditor-state","The blockeditor-state resource is not a URL")}let c=b(),a;try{a=await n(d,{method:"GET",credentials:c?"omit":"same-origin",headers:{"If-Match":o,"Document-URL":globalThis.location?.href??s},cache:"no-store",redirect:"manual",signal:i})}catch{return t("unavailable","The blockeditor-state request did not complete")}if(!a||typeof a.status!="number")return t("unavailable","The blockeditor-state request did not answer");if(a.status===412)return t("etag-mismatch","Another version of this document is stored");if(a.status===428)return t("etag-required","The host needs a condition this read cannot send");if(a.status===404)return t("no-blockeditor-state","This host keeps no page state");if(!a.ok)return t("unavailable",`The host answered ${a.status}`);let r;try{r=JSON.parse(await a.text())}catch{return t("invalid-state","The blockeditor-state answer is not JSON")}return!E(r)||r.version!==x?t("unsupported-version","Unknown blockeditor-state version"):typeof r.tag!="string"||!r.tag?t("invalid-state","The blockeditor-state answer carries no page tag"):typeof r.stateHash!="string"||!A.test(r.stateHash)?t("invalid-state","The blockeditor-state answer carries no state digest"):typeof r.generation!="string"||!j.test(r.generation)?t("invalid-state","The blockeditor-state answer carries no generation"):typeof r.etag!="string"||!r.etag?t("invalid-state","The blockeditor-state answer carries no ETag"):Object.hasOwn(r,"documentId")?{ok:!0,version:r.version,documentId:r.documentId,generation:r.generation,etag:r.etag,stateHash:r.stateHash,tag:r.tag}:t("invalid-state","The blockeditor-state answer carries no document identity")}async function _(e,{accepted:o,article:n,etag:i}={}){if(!e||e.ok!==!0)return t(e?.code??"unavailable",e?.message??"The page state was not read");let s=o?.authority;if(!(s?.scope==="path"&&e.documentId==null)&&S(e.documentId)!==S(s?.documentId))return t("foreign-document","The page state belongs to another document");if(typeof o?.lineage?.generation!="string"||e.generation!==o.lineage.generation)return t("foreign-generation","The page state belongs to another generation");if(e.etag!==i)return t("etag-mismatch","The page state belongs to another version of this document");let c,a;try{({state:a,bytes:c}=H(e.tag))}catch(u){return t(u?.code??"invalid-state",u?.message??"The page state does not decode")}if(await h(c)!==e.stateHash)return t("state-digest-mismatch","The page state is not the one the host hashed");if(typeof n!="string")return t("missing-article","A proof names the final outgoing article");let r;try{r=m(a)}catch(u){return t("invalid-state",u?.message??"The page state does not project")}return r!==n?t("article-mismatch","The page state does not project to the accepted article"):{ok:!0,state:a,receipt:{file:e.etag,blockeditorState:e.stateHash}}}async function O(e,o){let n=(o||[]).map(({id:i,revision:s})=>({id:i,revision:s}));try{return{ok:!0,proof:e,covered:await k(e,n)}}catch(i){return t(i?.code??"invalid-proof",i?.message??"The proof does not validate")}}async function R({capture:e,records:o=[],accepted:n,article:i,state:s=null,etag:d=null}={}){if(!s)return t("no-capture-state","No page state was pinned to this capture");if(typeof d!="string"||!d)return t("missing-etag","An accepted save with no ETag proves no stored pair");if(typeof i!="string")return t("missing-article","The accepted bytes hold no article");let c,a;try{c=m(s),a=p(s)}catch(u){return t(u?.code??"invalid-state",u?.message??"The pinned page state does not decode")}if(c!==i)return t("article-mismatch","The pinned page state does not project to the accepted article");let r;try{r=await g({capture:e,records:o,accepted:n,article:i,state:s,receipt:{file:d,blockeditorState:await h(a)}})}catch(u){return t(u?.code??"invalid-proof",u?.message??"The proof could not be built")}return O(r,o)}async function B({read:e,capture:o,records:n=[],accepted:i,article:s,etag:d=null}={}){let c=await _(e,{accepted:i,article:s,etag:d});if(!c.ok)return c;let a;try{a=await g({capture:o,records:n,accepted:i,article:s,state:c.state,receipt:c.receipt})}catch(r){return t(r?.code??"invalid-proof",r?.message??"The proof could not be built")}return O(a,n)}async function G({channel:e,records:o=[],capture:n,accepted:i,article:s,state:d=null,etag:c=null,href:a=null,read:r=N,fetch:u}={}){if(!e||typeof e.checkpoint!="function")return{ok:!1,code:"no-channel",retired:[],proof:null};let l=await R({capture:n,records:o,accepted:i,article:s,state:d,etag:c});if(!l.ok){let P=await r({href:a,etag:c,fetch:u});l=await B({read:P,capture:n,records:o,accepted:i,article:s,etag:c})}if(!l.ok)return{ok:!1,code:l.code,retired:[],proof:null};let f=await e.checkpoint({records:l.covered,proof:l.proof});return!f||f.ok!==!0?{ok:!1,code:f?.code??"checkpoint-failed",retired:[],proof:l.proof}:{ok:!0,retired:f.retired??[],proof:l.proof}}export{x as PAGE_STATE_VERSION,y as PageCheckpointError,R as captureProof,G as checkpointAccepted,N as readPageState,B as refetchedProof,_ as verifyPageState};
@@ -1 +1 @@
1
- import{f as S}from"./c-WMRJKQ2V.js";import{d as k,g as A,h as j,i as E,j as M,k as w,m as $,v as N}from"./c-OH2FPYSY.js";var G="blockeditor-local",U="blockeditor-net",V="blockeditor-seed",B=N,Q=Symbol("blockeditor-history"),X=Object.freeze(["flow","attrs","gone","boardFields","tableFields","origins"]),Y=new Set(["id","pos"]),F=new WeakMap,Z=t=>{let s=F.get(t);return s||F.set(t,s=Object.freeze([...Object.keys(t.spec.attrs||{}).filter(r=>!Y.has(r)),...t.name==="table"?["rows"]:[]])),s},v=(t,s)=>t.name==="table"&&s==="rows"?{}:t.spec.attrs[s].default,tt=(t,s)=>t===s||JSON.stringify(t)===JSON.stringify(s),et=t=>`${t.client}.${t.clock}`,st=t=>{let s=t.indexOf(".");return{client:+t.slice(0,s),clock:+t.slice(s+1)}},ot=t=>t>=55296&&t<=56319,nt=t=>t>=56320&&t<=57343,_=0,rt=t=>`${t.ydoc.clientID.toString(36)}-${(_++).toString(36)}`,q=0,it=t=>`b${t.ydoc.clientID.toString(36)}${(q++).toString(36)}`;function at(t=new S){return{ydoc:t,flow:t.getText("flow"),attrs:t.getMap("attrs"),gone:t.getMap("gone"),boardFields:t.getMap("boardFields"),tableFields:t.getMap("tableFields"),origins:t.getMap("origins")}}var W=t=>t.split("!")[0].split("~")[0],L=t=>t.includes("!"),dt=t=>{let s={};for(let r of t)s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0;return s},ht=t=>{let s={};for(let r of t){if(A(r)){for(let[c,i]of Object.entries(E(r.attrs.entries)))s[c]=JSON.parse(JSON.stringify(i));continue}s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0}return s},ut=t=>t.map(s=>s.type.name+(s.attrs&&Object.keys(s.attrs).length?JSON.stringify(s.attrs):"")).sort().join("|");function gt(t,s){if(s==="code_block")return[];let r=new Map,c=new Set;for(let o of Object.keys(t))L(o)&&t[o]&&c.add(o.split("!")[0]);for(let o of Object.keys(t).sort()){let a=t[o];a==null||L(o)||c.has(o)||r.set(W(o),a)}let i=[],l=null;for(let[o,a]of r)k.marks[o]&&(!w.has(o)||$(o,a===!0?{}:a))?i.push(k.marks[o].create(a===!0?null:a)):(l??={})[o]=a;if(l){let o=M(l);o.length&&i.push(j(o))}return i}var h=t=>Number.isSafeInteger(t)&&t>=0,p=t=>{throw new RangeError(t)},T=t=>(t!=="before"&&t!=="after"&&p(`Unknown affinity: ${t}`),t),I=(t,s,r)=>{let c=0,i=t.length;for(;c<i;){let l=c+i>>1;s(t[l])<=r?c=l+1:i=l}return c};function bt(t,s){(!t||typeof t!="object"||!h(t.tokens))&&p("A projection map needs a walk result with a token count"),h(s)||p("A projection map needs a nonnegative physical length");let r=t.holes===void 0?[]:t.holes;Array.isArray(r)||p("A projection map needs the walk holes");let c=[],i=[],l=[0],o=0,a=0,b=-1,m=e=>{c.push({logicalStart:o,logicalLength:e,physicalStart:a,physicalLength:e,kind:"visible"}),o+=e,a+=e},J=e=>{let n=i[i.length-1];n&&n.at===o?(n.length+=e,n.end+=e,c[c.length-1].physicalLength+=e,l[l.length-1]+=e):(i.push({at:o,start:a,end:a+e,length:e}),c.push({logicalStart:o,logicalLength:0,physicalStart:a,physicalLength:e,kind:"hidden"}),l.push(l[l.length-1]+e)),a+=e};for(let e of r)(!e||typeof e!="object"||!h(e.at)||!h(e.len))&&p("Malformed walk hole"),e.at<b&&p("Walk holes are out of order"),e.at>t.tokens&&p("A walk hole sits past the logical length"),b=e.at,e.at>o&&m(e.at-o),e.len&&J(e.len);o<t.tokens&&m(t.tokens-o),a!==s&&p("Walk holes do not account for the physical length");let x=e=>I(i,n=>n.at,e),O=e=>I(i,n=>n.end,e),g=e=>e+l[x(e)],K=e=>{let n=i[x(e)-1];return n&&n.at===e?n:null},P=e=>{let n=i[O(e)];return n&&n.start<=e?n:null},R=(e,n)=>{let f=T(n);(!h(e)||e>t.tokens)&&p(`Logical position ${e} is outside the map`);let d=K(e);return d?f==="before"?d.start:d.end:g(e)},C=(e,n)=>{T(n),(!h(e)||e>s)&&p(`Physical position ${e} is outside the flow`);let f=P(e);return f?f.at:e-l[O(e)]},D=(e,n)=>{(!h(e)||!h(n)||e>t.tokens||n>t.tokens)&&p(`Logical range ${e}..${n} is outside the map`);let f=[];if(n<=e)return f;let d=g(e);for(let u of i)if(!(u.at<=e)){if(u.at>n)break;u.start>d&&f.push([d,u.start]),d=u.end}let y=g(n);return y>d&&f.push([d,y]),f};return{segments:c,logicalLength:t.tokens,physicalLength:s,toPhysical:R,toLogical:C,physicalRanges:D}}export{G as a,U as b,V as c,B as d,Q as e,X as f,Z as g,v as h,tt as i,et as j,st as k,ot as l,nt as m,rt as n,it as o,at as p,W as q,L as r,dt as s,ht as t,ut as u,gt as v,bt as w};
1
+ import{i as S}from"./c-WHQUZM2V.js";import{d as k,g as A,h as j,i as E,j as M,k as w,m as $,v as N}from"./c-OH2FPYSY.js";var G="blockeditor-local",U="blockeditor-net",V="blockeditor-seed",B=N,Q=Symbol("blockeditor-history"),X=Object.freeze(["flow","attrs","gone","boardFields","tableFields","origins"]),Y=new Set(["id","pos"]),F=new WeakMap,Z=t=>{let s=F.get(t);return s||F.set(t,s=Object.freeze([...Object.keys(t.spec.attrs||{}).filter(r=>!Y.has(r)),...t.name==="table"?["rows"]:[]])),s},v=(t,s)=>t.name==="table"&&s==="rows"?{}:t.spec.attrs[s].default,tt=(t,s)=>t===s||JSON.stringify(t)===JSON.stringify(s),et=t=>`${t.client}.${t.clock}`,st=t=>{let s=t.indexOf(".");return{client:+t.slice(0,s),clock:+t.slice(s+1)}},ot=t=>t>=55296&&t<=56319,nt=t=>t>=56320&&t<=57343,_=0,rt=t=>`${t.ydoc.clientID.toString(36)}-${(_++).toString(36)}`,q=0,it=t=>`b${t.ydoc.clientID.toString(36)}${(q++).toString(36)}`;function at(t=new S){return{ydoc:t,flow:t.getText("flow"),attrs:t.getMap("attrs"),gone:t.getMap("gone"),boardFields:t.getMap("boardFields"),tableFields:t.getMap("tableFields"),origins:t.getMap("origins")}}var W=t=>t.split("!")[0].split("~")[0],L=t=>t.includes("!"),dt=t=>{let s={};for(let r of t)s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0;return s},ht=t=>{let s={};for(let r of t){if(A(r)){for(let[c,i]of Object.entries(E(r.attrs.entries)))s[c]=JSON.parse(JSON.stringify(i));continue}s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0}return s},ut=t=>t.map(s=>s.type.name+(s.attrs&&Object.keys(s.attrs).length?JSON.stringify(s.attrs):"")).sort().join("|");function gt(t,s){if(s==="code_block")return[];let r=new Map,c=new Set;for(let o of Object.keys(t))L(o)&&t[o]&&c.add(o.split("!")[0]);for(let o of Object.keys(t).sort()){let a=t[o];a==null||L(o)||c.has(o)||r.set(W(o),a)}let i=[],l=null;for(let[o,a]of r)k.marks[o]&&(!w.has(o)||$(o,a===!0?{}:a))?i.push(k.marks[o].create(a===!0?null:a)):(l??={})[o]=a;if(l){let o=M(l);o.length&&i.push(j(o))}return i}var h=t=>Number.isSafeInteger(t)&&t>=0,p=t=>{throw new RangeError(t)},T=t=>(t!=="before"&&t!=="after"&&p(`Unknown affinity: ${t}`),t),I=(t,s,r)=>{let c=0,i=t.length;for(;c<i;){let l=c+i>>1;s(t[l])<=r?c=l+1:i=l}return c};function bt(t,s){(!t||typeof t!="object"||!h(t.tokens))&&p("A projection map needs a walk result with a token count"),h(s)||p("A projection map needs a nonnegative physical length");let r=t.holes===void 0?[]:t.holes;Array.isArray(r)||p("A projection map needs the walk holes");let c=[],i=[],l=[0],o=0,a=0,b=-1,m=e=>{c.push({logicalStart:o,logicalLength:e,physicalStart:a,physicalLength:e,kind:"visible"}),o+=e,a+=e},J=e=>{let n=i[i.length-1];n&&n.at===o?(n.length+=e,n.end+=e,c[c.length-1].physicalLength+=e,l[l.length-1]+=e):(i.push({at:o,start:a,end:a+e,length:e}),c.push({logicalStart:o,logicalLength:0,physicalStart:a,physicalLength:e,kind:"hidden"}),l.push(l[l.length-1]+e)),a+=e};for(let e of r)(!e||typeof e!="object"||!h(e.at)||!h(e.len))&&p("Malformed walk hole"),e.at<b&&p("Walk holes are out of order"),e.at>t.tokens&&p("A walk hole sits past the logical length"),b=e.at,e.at>o&&m(e.at-o),e.len&&J(e.len);o<t.tokens&&m(t.tokens-o),a!==s&&p("Walk holes do not account for the physical length");let x=e=>I(i,n=>n.at,e),O=e=>I(i,n=>n.end,e),g=e=>e+l[x(e)],K=e=>{let n=i[x(e)-1];return n&&n.at===e?n:null},P=e=>{let n=i[O(e)];return n&&n.start<=e?n:null},R=(e,n)=>{let f=T(n);(!h(e)||e>t.tokens)&&p(`Logical position ${e} is outside the map`);let d=K(e);return d?f==="before"?d.start:d.end:g(e)},C=(e,n)=>{T(n),(!h(e)||e>s)&&p(`Physical position ${e} is outside the flow`);let f=P(e);return f?f.at:e-l[O(e)]},D=(e,n)=>{(!h(e)||!h(n)||e>t.tokens||n>t.tokens)&&p(`Logical range ${e}..${n} is outside the map`);let f=[];if(n<=e)return f;let d=g(e);for(let u of i)if(!(u.at<=e)){if(u.at>n)break;u.start>d&&f.push([d,u.start]),d=u.end}let y=g(n);return y>d&&f.push([d,y]),f};return{segments:c,logicalLength:t.tokens,physicalLength:s,toPhysical:R,toLogical:C,physicalRanges:D}}export{G as a,U as b,V as c,B as d,Q as e,X as f,Z as g,v as h,tt as i,et as j,st as k,ot as l,nt as m,rt as n,it as o,at as p,W as q,L as r,dt as s,ht as t,ut as u,gt as v,bt as w};
@@ -1,4 +1,4 @@
1
- import{d as De,h as Je,i as et}from"./c-TRS6TM6O.js";import{a as Ue,b as We}from"./c-Y3J5LDKB.js";import{a as He,b as Ke}from"./c-PZ4XEPUP.js";import"./c-SFKI6OLM.js";import"./c-Q3XOWZEV.js";import"./c-RHMPKZZ7.js";import{d as Ze}from"./c-QHWJ5ZIJ.js";import{a as Se,b as je,c as V,d as Qe,h as pe,i as Le,j as u}from"./c-J2ZW4HMR.js";import{a as te,e as ce,f as de}from"./c-A5LASUEZ.js";import"./c-4JZDZFF6.js";import{b as W,c as ee,e as l,f as qe}from"./c-5RZNFTWD.js";import{b as Ge}from"./c-PKCCHJ5X.js";import"./c-46XYM55L.js";import{a as se,b as T,c as Ve}from"./c-NUHP2XDB.js";import{a as Xe,r as q}from"./c-FC5RUFPR.js";import"./c-4ASQPRQL.js";import"./c-GQ6F6IDK.js";import"./c-I2SCCUEW.js";import"./c-5VYOWDTI.js";import{f as Re}from"./c-P73XPAOA.js";import"./c-ZPI7M5U5.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-MZCOGNZL.js";import"./c-EHAR4RJJ.js";import"./c-LD6UVV5R.js";import"./c-PGSBXHUE.js";import"./c-KU3PX7LL.js";import"./c-EQ5NBOGA.js";import"./c-IJUK2GPW.js";import{f as Ye}from"./c-C7SUMNMI.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4TWEIKZ.js";import"./c-UW6MMZ4V.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var I="light-dark(#D08A1E, #E3A33F)",ht=5e3,gt=4e3,mt=500,wt={"another-tab":"in another tab","another-person":"by someone else","an-agent":"by an agent"},yt='<svg viewBox="0 0 12 12" width="12" height="12" aria-hidden="true"><path d="M2.5 9.5h7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="square"/></svg>',H=(e,t)=>`${e} ${t}${e===1?"":"s"}`,xt="This spot changed again. Review the latest edit or download your copy.",vt="A data value can't be put back from here. Download your copy to keep yours.",w="hidden",Y=!1,L=[],ne=new Set,B=new Set,m=null,Me=0,O=null,b=null,fe=null,h=null,R=!1,K=!1,Ce=!1,Q=new Map,he=0,ue=!1,ie=!1,k=null,X=null,D=null,Be=0,z=!1,ge=0,me=null,re=null,$=[],v=[],ae=!1,we=null,ye=null,c=null,a=null,P=null,G=new Map,M=()=>window.clay?.conflicts||null,ot=()=>$.reduce((e,t)=>e+t.conflicts.length,0)+v.length,_e=()=>{let e=window.clay?.undo;return e&&typeof e.kept=="function"?e:null},xe=()=>M()?.list().filter(e=>!e.claimedBy&&e.kind!=="apply-incomplete")??[],Ie=()=>M()?.list().filter(e=>!e.claimedBy&&e.kind==="apply-incomplete")??[];function Oe(){return O?"upgraded":m?"refused":xe().length?"replaced":Ie().length?"failed":$.length||v.length?"recovered":null}function g(e,t,n){let o=Ve(e,t,n);return t[0]==="all:initial"&&T(o,"color-scheme","inherit"),o.setAttribute("clay",Se),o}function _(e,t){return G.set(t,e),e}function j(e,t){return te(a)&&(de(e,a,t),se(e,ce(a,t,{}))),e}function le(){if(!c)return;let e=window.visualViewport,t=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;T(c,"bottom",`calc(${16+t}px + env(safe-area-inset-bottom,0px))`),re&&T(re,"max-height",`${Math.max(160,(e?.height||window.innerHeight)-32)}px`)}function bt(){c=g("div",["all:initial","position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483001","display:none","flex-direction:column","align-items:center","max-width:calc(100vw - 24px)",`font:14px/1.5 ${W}`,`color:${l.ink}`,"text-align:left"]),c.setAttribute("data-clay-conflict",""),document.body.appendChild(c),window.visualViewport?.addEventListener("resize",le),window.visualViewport?.addEventListener("scroll",le)}function d(){if(ue)return;ue=!0;let e=()=>{ue=!1,y()};typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,16)}function y(){a=Ze(),ie&&(ie=!1,m&&!q()&&(m=null));let e=Oe();if(e?w==="hidden"&&(w="bar"):(w="hidden",Y=!1,ne.clear(),B.clear(),L=[],x(),me=null,z=!1),!c){if(w==="hidden"&&!k||!document.body)return;bt()}!c.isConnected&&document.body&&document.body.appendChild(c);let t=document.activeElement,n=null;for(let[s,r]of G)r===t&&(n=s);let o=P?P.scrollTop:0;G=new Map,P=null,re=null,c.replaceChildren(),k?c.append(Tt(k)):w==="bar"?c.append(At(e)):w==="panel"&&c.append(Ct(e)),T(c,"display",k||w!=="hidden"?"flex":"none"),P&&(P.scrollTop=o);let i=D||n;i&&G.has(i)&&G.get(i).focus({preventScroll:!0}),k||(D=null),le(),te(a)?(de(c,a,["conflict.root"]),se(c,ce(a,["conflict.root"],{})),T(c,"color-scheme",a.scheme==="light dark"?"light":a.scheme)):(c.removeAttribute("data-clay-part"),Ge(c))}function it(){return j(g("span",["all:initial","display:inline-block","flex:none","width:8px","height:8px","border-radius:50%",`background:${I}`]),["conflict.dot"])}function rt(){return wt[m?.changedBy]||null}function kt(e,t){if(e==="upgraded")return O;if(e==="refused"){let n=rt();return!n&&m.afterTimeout?"This page changed elsewhere, possibly by your own save that timed out. Your edits here are safe.":`This page changed ${n||"elsewhere"}. Your edits here are safe.`}return e==="failed"?"A sync update did not finish. Your edits here are safe.":e==="recovered"?`${H(t,"change")} replaced before this page loaded ${t===1?"is":"are"} still here.`:`Another edit replaced ${H(t,"change")}.`}function $t(e,t){return e==="upgraded"?O:e==="refused"?`This page changed ${rt()||"elsewhere"}`:e==="failed"?"A sync update did not finish":e==="recovered"?`${H(t,"change")} kept from before this page loaded`:`Another edit replaced ${H(t,"change")}`}function Tt(e){let t=pe("div",["display:block",`background:${l["teal-soft"]}`,"padding:10px 14px","width:max-content","max-width:calc(100vw - 24px)"],{theme:a,parts:["conflict.panel"]});return te(a)&&se(t,[`background:${l["teal-soft"]}`]),t.setAttribute("role","status"),t.textContent=e,t}function At(e){let t=e==="failed"?Ie().length:e==="recovered"?ot():xe().length,n=pe("div",["display:flex","flex-wrap:wrap","align-items:center","gap:10px 12px","padding:8px 8px 8px 14px","width:max-content","max-width:calc(100vw - 24px)"],{theme:a,parts:["conflict.panel"]}),o=kt(e,t);return o!==me&&(n.setAttribute("role",e==="refused"?"alert":"status"),me=o),n.append(it(),u("span",[],o,{theme:a,parts:["conflict.text"]})),e==="upgraded"?(n.append(_(V("Reload",{variant:"primary",onClick:()=>window.location.reload(),theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"reload")),n):(n.append(_(V("Review",{onClick:Ot,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"review")),n)}function A(e,t,{variant:n="default",onClick:o,push:i=!1}={}){let r=window.innerWidth<480?["flex:1 1 100%",...n==="primary"?["order:-1"]:[]]:i?["margin-left:auto"]:[];return _(V(e,{variant:n,onClick:o,extra:r,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),t)}function E(e){return u("div",["display:block","padding:0 16px 12px",`color:${l["ink-2"]}`,"font-size:13.5px"],e,{theme:a,parts:["conflict.text"]})}function Ct(e){let t=e==="replaced"?xe():e==="failed"?Ie():[],n=e==="refused"?xe():t,o=e==="recovered"?ot():t.length;if(ne.size)for(let p of t)ne.has(p.id)||B.add(p.id);for(let p of[...B])t.some(F=>F.id===p)||B.delete(p);let i=$t(e,o),s=Math.max(160,(window.visualViewport?.height||window.innerHeight)-32),r=pe("div",["display:flex","flex-direction:column","width:520px","max-width:calc(100vw - 24px)",`max-height:${s}px`],{theme:a,parts:["conflict.panel"]});re=r,r.setAttribute("role","dialog"),r.setAttribute("aria-label",i);let f=j(g("div",["all:initial","display:flex","align-items:center","gap:8px","padding:12px 12px 8px 16px",`font:14px/1.5 ${W}`,`color:${l.ink}`]),["conflict.header"]),C=_(u("b",["font-weight:600","font-size:14.5px","outline:none"],i,{theme:a,parts:["conflict.title"]}),"title");C.setAttribute("tabindex","-1"),f.append(it(),C),e==="replaced"&&B.size&&f.append(u("span",[`font:600 10.5px/1 ${ee}`,"letter-spacing:.12em","text-transform:uppercase","padding:3px 6px",`color:color-mix(in srgb, ${l.brass} 80%, ${l.ink})`,`background:${l["brass-soft"]}`],`${B.size} new`));let J=g("span",["all:initial","display:inline-flex","margin-left:auto"]),Fe=_(Qe(yt,{label:"Minimize",onClick:at,theme:a,parts:["close","conflict.close"]}),"minimize");if(Fe.title="Minimize to the bar. Nothing is accepted until you choose.",J.append(Fe),f.append(J),r.append(f),e==="recovered")return Bt(r),r;if(e==="refused"){if(r.append(E("Your edits here are safe and not saved yet; nothing will be overwritten until you choose. Their version is not on this page, so there is no list of edits to compare. Keep yours, which saves over theirs, or accept theirs, which reloads the page and drops your unsaved edits.")),n.length&&r.append(E(`${H(n.length,"earlier replaced edit")} ${n.length===1?"is":"are"} also held in this tab. Download my copy includes them.`)),R&&r.append(E("That did not save either. Your edits here are still here.")),z&&r.append(E("Something changed on the page after your first press, so nothing was dropped. Press Accept theirs again if you still want their version.")),b){let p=j(g("div",["all:initial","display:block","margin:0 16px 12px","padding:8px 10px",`background:color-mix(in srgb, ${I} 14%, transparent)`,`color:${l.ink}`,`font:13px/1.5 ${W}`]),["conflict.warning"]);p.append(g("b",["all:initial","font:inherit","font-weight:700","color:inherit"],"This drops your unsaved edits."),document.createTextNode(" Download your copy first if you might want them. Press again to confirm.")),r.append(p)}}else e==="upgraded"?r.append(E("Its layout and code changed with it, so this page stops here. Reload to see the new version.")):e==="failed"?r.append(E("Part of an update from elsewhere could not be applied, so this page may be missing some of it. Your edits here are safe. Download a copy of the page as you had it, or accept to keep the page as it is.")):r.append(E("The page is showing the other edit. This stays until you choose. You can also save a copy of the page as you had it."));let N=j(g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]),["conflict.actions"]);if(e==="upgraded")return N.append(A("Reload","reload",{variant:"primary",onClick:()=>window.location.reload(),push:!0})),r.append(N),L=[],r;let ft=A(Ce?"Try again":K?"Downloaded":"Download my copy","download",{onClick:Yt});if(N.append(ft),e==="refused"){let p=A(h==="overwrite"?"Saving\u2026":R?"Try again":"Keep mine","keep",{onClick:Vt});p.setDisabled(h==="overwrite"),N.append(p,A(b?"Yes, drop my edits":"Accept theirs","accept",{variant:"primary",onClick:qt,push:!0}))}else{if(e==="replaced"){let p=M().hasPendingApply(),F=A(p?"Finishing the incoming edit\u2026":h==="revert"?"Putting back\u2026":"Revert to mine","revert",{onClick:Ft});F.setDisabled(p||h==="revert"),N.append(F)}N.append(A("Accept theirs","accept",{variant:"primary",onClick:Nt,push:!0}))}if(r.append(N),e==="replaced")if(Y)r.append(Et(t));else{let p=g("div",["all:initial","display:flex","align-items:center","gap:8px",`border-top:1px solid ${l.line}`,"padding:8px 10px 8px 16px",`color:${l.muted}`,`font:13px/1.5 ${W}`]),F=g("span",["all:initial","display:inline-flex","margin-left:auto"]);F.append(_(V("See the edits",{small:!0,onClick:lt,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"list")),p.append(g("span",["all:initial","font:inherit","color:inherit"],H(t.length,"edit")),F),r.append(p)}L=n.map(p=>p.id);for(let p of t)ne.add(p.id);return r}function Et(e){let t=Le(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`],{theme:a,parts:["conflict.well","conflict.list"]}),n=g("div",["all:initial","position:sticky","top:0","z-index:1","display:flex","align-items:center","gap:8px","padding:8px 12px",`background:${l.sunk}`,`border-bottom:1px solid ${l["line-2"]}`,`color:${l.muted}`,`font:600 10.5px/1 ${ee}`,"letter-spacing:.12em","text-transform:uppercase"]),o=g("span",["all:initial","display:inline-flex","margin-left:auto"]);return o.append(_(V("Hide",{small:!0,variant:"quiet",onClick:lt,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"list")),n.append(g("span",["all:initial","font:inherit","color:inherit","letter-spacing:inherit","text-transform:inherit"],"Replaced edits"),o),t.append(n),e.forEach((i,s)=>t.append(Pt(i,s))),P=t,t}function Ne(e){let t=e.context?.label||e.name||(e.context?.kind==="entry"?"Entry":"Edit");return e.context?.field?`${t} \xB7 ${e.context.field}`:t}var St={"content-changed":"the page changed there","structure-changed":"the structure changed there","target-detached":"that part of the page is gone","duplicate-id":"another part of the page now has the same id",protected:"that region keeps its own history",unsupported:"this kind of step cannot be put back"},Lt=e=>St[e]||"the page changed there";function Rt(e,t){let n=Array.isArray(e)?e:[];for(let o of n){if(!o||o.kind!=="text"&&o.kind!=="value")continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}for(let o of n){if(!o||o.kind!=="add"&&o.kind!=="remove")continue;let i=Array.isArray(o.nodes)?o.nodes.find(s=>typeof s?.html=="string"&&s.html):null;if(i)return{text:He(i.html).replace(/\s+/g," ").trim(),id:o.parent?.id??null}}for(let o of n){if(!o)continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}return{text:"",id:null}}function Dt(e){if(e==null||typeof document>"u")return"";let t=window.CSS?.escape?window.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),n=null;try{n=document.querySelector(`[data-id="${t}"]`)}catch{return""}if(!n)return"";let o=n.matches?.("input, textarea, select")?n.value:null;return(typeof o=="string"?o:n.textContent??"").replace(/\s+/g," ").trim()}function zt(e){let t=e?.payload&&typeof e.payload=="object"?e.payload:{},n=String(e?.key??""),o={id:e?.id,revision:e?.revision,record:e,kind:e?.kind??"conflict"};if(n.startsWith("app:"))return{...o,name:typeof t.label=="string"&&t.label?t.label:n.slice(4),sentence:"",yours:typeof t.text=="string"?t.text:"",now:""};let i=t.direction==="redo"?"redo":"undo",f=((Array.isArray(t.context)?t.context:[]).find(J=>typeof J?.label=="string"&&J.label)??null)?.label||typeof t.label=="string"&&t.label||"Edit",C=Rt(t.steps,i);return{...o,name:f,sentence:`The ${i} of "${f}" was not applied because ${Lt(t.code)}.`,yours:C.text,now:C.id==null?"":Dt(C.id)}}function Mt(e){let t=_e();if(!e.record||typeof t?.reviewActionsFor!="function")return[];try{return(t.reviewActionsFor(e.record)||[]).filter(n=>n&&typeof n.run=="function"&&n.label)}catch{return[]}}var tt=e=>({before:"",hit:e,after:"",cutBefore:!1,cutAfter:!1});function nt(e){let t=u("div",["display:block","padding:8px 12px 10px"],void 0,{theme:a,parts:["conflict.row"],role:null}),n=u("div",["display:flex","align-items:center","gap:8px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"],void 0,{theme:a,parts:["conflict.location"],role:null});if(n.append(u("span",[],Ne(e))),t.append(n),e.sentence&&t.append(u("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],e.sentence)),e.yours){let i=u("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${ee}`,...e.sentence?["margin-top:4px"]:[]]);i.append(...ve("Yours",tt(e.yours),{mine:!0})),e.now&&i.append(...ve("Now",tt(e.now),{mine:!1})),t.append(i)}let o=g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","margin-top:8px"]);return Mt(e).forEach((i,s)=>{let r=A(i.label,`run:${e.id}:${s}`,{onClick:()=>Wt(e,i,r)});o.append(r)}),o.append(A(we===e.id?"Copied":"Copy",`copy:${e.id}`,{onClick:()=>Kt(e)})),o.append(A("Dismiss",`dismiss:${e.id}`,{onClick:()=>st(e)})),t.append(o),t}function Bt(e){e.append(E($.length?"These copies were replaced before this page loaded. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.":"These copies were kept because an undo could not be put back or the page set them aside. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.")),ae&&e.append(E("That action did not run. The copy is still here."));let t=Le(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`],{theme:a,parts:["conflict.well","conflict.list"]});for(let o of $)for(let i of o.conflicts)t.append(nt(i));for(let o of v)t.append(nt(o));P=t,e.append(t);let n=j(g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]),["conflict.actions"]);($.some(o=>o.root)||v.length)&&n.append(A(K?"Downloaded":"Download my copy","download",{onClick:Ut})),e.append(n),L=[]}function ve(e,t,{mine:n}){let o=[u("span",[`color:${l.faint}`,`font-family:${W}`],e,{theme:a,parts:["conflict.valueLabel"],role:null})],i=u("span",["display:-webkit-box","-webkit-line-clamp:2","-webkit-box-orient:vertical","overflow:hidden","overflow-wrap:anywhere",...n?[`color:${l.ink}`]:[`color:${l.muted}`]],void 0,{theme:a,parts:[n?"conflict.mine":"conflict.theirs","conflict.value"],role:null}),s=(t.cutBefore?"\u2026":"")+t.before+t.hit+t.after+(t.cutAfter?"\u2026":"");i.title=s,t.before&&i.append(u("span",[`color:${l.faint}`],(t.cutBefore?"\u2026":"")+t.before,{theme:a,parts:["conflict.before"],role:null}));let r=u("span",n?[`background:color-mix(in srgb, ${I} 18%, transparent)`,"padding:0 4px"]:t.before||t.after?["text-decoration:underline",`text-decoration-color:color-mix(in srgb, ${I} 70%, transparent)`,"text-underline-offset:3px"]:[],t.hit||"(empty)",{theme:a,parts:["conflict.value"],role:null});return i.append(r),t.after&&i.append(u("span",[`color:${l.faint}`],t.after+(t.cutAfter?"\u2026":""),{theme:a,parts:["conflict.after"],role:null})),o.push(i),o}function Pt(e,t){let n=Ke(e),o=u("div",["display:block","padding:8px 12px 10px",...t?[`border-top:1px solid ${l.line}`]:[]],void 0,{theme:a,parts:["conflict.row"],role:null}),i=u("div",["display:flex","align-items:center","gap:4px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"],void 0,{theme:a,parts:["conflict.location"],role:null});if(i.append(u("span",[],n.name)),n.target&&n.target.isConnected&&i.append(_(_t(n),`eye:${e.id}`)),o.append(i),n.sentence&&o.append(u("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],n.sentence)),Q.has(e.id)&&o.append(u("div",["display:block","font-size:13px","margin-top:4px",`color:${I}`],Q.get(e.id))),n.yours){let s=u("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${ee}`,...n.sentence?["margin-top:4px"]:[]]);s.append(...ve("Yours",n.yours,{mine:!0})),n.now&&s.append(...ve("Now",n.now,{mine:!1})),o.append(s)}return o}function _t(e){let t=["all:initial","color-scheme:inherit","box-sizing:border-box","cursor:pointer","display:inline-grid","place-items:center","width:22px","height:20px",`color:${l.ink}`],n=g("button",t);n.type="button",n.innerHTML=qe.conflictEye,je(n.firstElementChild,16),n.setAttribute("aria-label",`Show ${e.name} on page`),n.title="Show on page";let o=["button","conflict.button"];de(n,a,o);let i=s=>{n.style.cssText="";let r=te(a)?[...t,...ce(a,o,{}),...s]:[...t,...s];for(let f of r){let C=f.indexOf(":");n.style.setProperty(f.slice(0,C),f.slice(C+1),"important")}};return n.addEventListener("pointerenter",()=>i([`background:color-mix(in srgb, ${I} 16%, transparent)`])),n.addEventListener("pointerleave",()=>i([])),n.addEventListener("focus",()=>i([`outline:2px solid ${l.brass}`,"outline-offset:1px"])),n.addEventListener("blur",()=>i([])),n.addEventListener("click",()=>It(e.target)),n}var S=null,be=null,ke=null;function $e(){clearTimeout(be),window.removeEventListener("scroll",oe,!0),window.removeEventListener("resize",oe),S?.remove(),S=null,ke=null}function oe(){if(!S||!ke)return;let e=ke.getBoundingClientRect();T(S,"left",`${e.left}px`),T(S,"top",`${e.top}px`),T(S,"width",`${e.width}px`),T(S,"height",`${e.height}px`)}function It(e){if($e(),!e||!e.isConnected)return;let n=!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches?"instant":"smooth",o=c?.getBoundingClientRect().top??0,i=c&&o>0?Math.max(0,window.innerHeight-o):0;if(!i)e.scrollIntoView?.({block:"center",behavior:n});else{e.scrollIntoView?.({block:"center",behavior:"instant"});let s=e.getBoundingClientRect(),r=window.innerHeight-i,f=s.height>r-24?s.top-12:s.top+s.height/2-r/2;window.scrollBy?.({top:f,behavior:n})}ke=e,S=j(g("div",["all:initial","color-scheme:inherit","position:fixed","pointer-events:none","z-index:2147483001",`outline:2px solid ${I}`,"outline-offset:3px",`background:color-mix(in srgb, ${I} 14%, transparent)`]),["conflict.previewRing"]),document.body.appendChild(S),oe(),window.addEventListener("scroll",oe,!0),window.addEventListener("resize",oe),be=setTimeout($e,2500)}function Ot(){O||(w="panel",D="title",y())}function at(){$e(),w="bar",x(),D="review",y()}function lt(){Y=!Y,Y&&B.clear(),y()}function Nt(){let e=M(),t=L.filter(n=>{let o=e?.get(n);return o&&!o.claimedBy});e&&t.length&&e.acknowledge(t,{reason:"accepted"}),w=Oe()?"bar":"hidden",D="review",d()}async function Ft(){let e=M();if(h||!e||e.hasPendingApply())return;let t=L.filter(r=>{let f=e.get(r);return f&&!f.claimedBy});if(!t.length)return;h="revert",y();let n=!0,o=r=>{n=!!c?.contains(r.target)};document.addEventListener("focus",o,!0);let i;try{let{revertConflicts:r}=await import("./c-QL4NYM2L.js");i=await r(t)}catch(r){console.error("[clay] Revert to mine did not finish",r),i={revertedIds:[],blockedIds:t,saveResult:null}}finally{document.removeEventListener("focus",o,!0)}h=null;for(let r of i.blockedIds)Q.set(r,M()?.get(r)?.kind==="json"?vt:xt);w=Oe()?"bar":"hidden",D=n?"review":null;let s=i.saveResult&&(i.saveResult.ok||i.saveResult.msg==="Save already in progress");i.revertedIds.length&&s?Ee(`Put back ${H(i.revertedIds.length,"change")}. Saving.`):y()}var Z=null;async function Yt(){let e=M(),t=m?e?.list()??[]:L.map(o=>e?.get(o)).filter(Boolean),n=await We(t,{refused:!!m});Ce=!n,K=n,clearTimeout(Z),n&&(Z=setTimeout(()=>{K=!1,d()},1200)),y()}async function U(){let e=null;if(De())try{e=await Je()}catch{e=null}let t=_e(),n=null;if(t)try{n=await t.kept()}catch{n=null}let o=!1;if(e?.ok?($=e.records,o=!0):!De()&&$.length&&($=[],o=!0),n?.ok){let i=(Array.isArray(n.records)?n.records:[]).filter(r=>r&&r.supported!==!1).map(zt);i.length===v.length&&i.every((r,f)=>r.id===v[f].id&&r.revision===v[f].revision)||(o=!0),v=i}else n&&v.length&&(v=[],o=!0);o&&d()}async function Ht(e){try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.setAttribute("clay",Se),t.style.setProperty("position","fixed","important"),t.style.setProperty("opacity","0","important"),document.body?.append(t),t.select();let n=!1;try{n=document.execCommand?.("copy")===!0}catch{}return t.remove(),n}async function Kt(e){let t=e.record?e.yours:`${Ne(e)}
1
+ import{d as De,h as Je,i as et}from"./c-TRS6TM6O.js";import{a as Ue,b as We}from"./c-Y3J5LDKB.js";import{a as He,b as Ke}from"./c-PZ4XEPUP.js";import"./c-SFKI6OLM.js";import"./c-Q3XOWZEV.js";import"./c-RHMPKZZ7.js";import{d as Ze}from"./c-QHWJ5ZIJ.js";import{a as Se,b as je,c as V,d as Qe,h as pe,i as Le,j as u}from"./c-J2ZW4HMR.js";import{a as te,e as ce,f as de}from"./c-A5LASUEZ.js";import"./c-4JZDZFF6.js";import{b as W,c as ee,e as l,f as qe}from"./c-5RZNFTWD.js";import{b as Ge}from"./c-PKCCHJ5X.js";import"./c-46XYM55L.js";import{a as se,b as T,c as Ve}from"./c-NUHP2XDB.js";import{a as Xe,r as q}from"./c-FC5RUFPR.js";import"./c-4ASQPRQL.js";import"./c-GQ6F6IDK.js";import"./c-I2SCCUEW.js";import"./c-5VYOWDTI.js";import{f as Re}from"./c-P73XPAOA.js";import"./c-ZPI7M5U5.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-MZCOGNZL.js";import"./c-EHAR4RJJ.js";import"./c-LD6UVV5R.js";import"./c-PGSBXHUE.js";import"./c-KU3PX7LL.js";import"./c-EQ5NBOGA.js";import"./c-IJUK2GPW.js";import{f as Ye}from"./c-C7SUMNMI.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4TWEIKZ.js";import"./c-UW6MMZ4V.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var I="light-dark(#D08A1E, #E3A33F)",ht=5e3,gt=4e3,mt=500,wt={"another-tab":"in another tab","another-person":"by someone else","an-agent":"by an agent"},yt='<svg viewBox="0 0 12 12" width="12" height="12" aria-hidden="true"><path d="M2.5 9.5h7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="square"/></svg>',H=(e,t)=>`${e} ${t}${e===1?"":"s"}`,xt="This spot changed again. Review the latest edit or download your copy.",vt="A data value can't be put back from here. Download your copy to keep yours.",w="hidden",Y=!1,L=[],ne=new Set,B=new Set,m=null,Me=0,O=null,b=null,fe=null,h=null,R=!1,K=!1,Ce=!1,Q=new Map,he=0,ue=!1,ie=!1,k=null,X=null,D=null,Be=0,z=!1,ge=0,me=null,re=null,$=[],v=[],ae=!1,we=null,ye=null,c=null,a=null,P=null,G=new Map,M=()=>window.clay?.conflicts||null,ot=()=>$.reduce((e,t)=>e+t.conflicts.length,0)+v.length,_e=()=>{let e=window.clay?.undo;return e&&typeof e.kept=="function"?e:null},xe=()=>M()?.list().filter(e=>!e.claimedBy&&e.kind!=="apply-incomplete")??[],Ie=()=>M()?.list().filter(e=>!e.claimedBy&&e.kind==="apply-incomplete")??[];function Oe(){return O?"upgraded":m?"refused":xe().length?"replaced":Ie().length?"failed":$.length||v.length?"recovered":null}function g(e,t,n){let o=Ve(e,t,n);return t[0]==="all:initial"&&T(o,"color-scheme","inherit"),o.setAttribute("clay",Se),o}function _(e,t){return G.set(t,e),e}function j(e,t){return te(a)&&(de(e,a,t),se(e,ce(a,t,{}))),e}function le(){if(!c)return;let e=window.visualViewport,t=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;T(c,"bottom",`calc(${16+t}px + env(safe-area-inset-bottom,0px))`),re&&T(re,"max-height",`${Math.max(160,(e?.height||window.innerHeight)-32)}px`)}function bt(){c=g("div",["all:initial","position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483001","display:none","flex-direction:column","align-items:center","max-width:calc(100vw - 24px)",`font:14px/1.5 ${W}`,`color:${l.ink}`,"text-align:left"]),c.setAttribute("data-clay-conflict",""),document.body.appendChild(c),window.visualViewport?.addEventListener("resize",le),window.visualViewport?.addEventListener("scroll",le)}function d(){if(ue)return;ue=!0;let e=()=>{ue=!1,y()};typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,16)}function y(){a=Ze(),ie&&(ie=!1,m&&!q()&&(m=null));let e=Oe();if(e?w==="hidden"&&(w="bar"):(w="hidden",Y=!1,ne.clear(),B.clear(),L=[],x(),me=null,z=!1),!c){if(w==="hidden"&&!k||!document.body)return;bt()}!c.isConnected&&document.body&&document.body.appendChild(c);let t=document.activeElement,n=null;for(let[s,r]of G)r===t&&(n=s);let o=P?P.scrollTop:0;G=new Map,P=null,re=null,c.replaceChildren(),k?c.append(Tt(k)):w==="bar"?c.append(At(e)):w==="panel"&&c.append(Ct(e)),T(c,"display",k||w!=="hidden"?"flex":"none"),P&&(P.scrollTop=o);let i=D||n;i&&G.has(i)&&G.get(i).focus({preventScroll:!0}),k||(D=null),le(),te(a)?(de(c,a,["conflict.root"]),se(c,ce(a,["conflict.root"],{})),T(c,"color-scheme",a.scheme==="light dark"?"light":a.scheme)):(c.removeAttribute("data-clay-part"),Ge(c))}function it(){return j(g("span",["all:initial","display:inline-block","flex:none","width:8px","height:8px","border-radius:50%",`background:${I}`]),["conflict.dot"])}function rt(){return wt[m?.changedBy]||null}function kt(e,t){if(e==="upgraded")return O;if(e==="refused"){let n=rt();return!n&&m.afterTimeout?"This page changed elsewhere, possibly by your own save that timed out. Your edits here are safe.":`This page changed ${n||"elsewhere"}. Your edits here are safe.`}return e==="failed"?"A sync update did not finish. Your edits here are safe.":e==="recovered"?`${H(t,"change")} replaced before this page loaded ${t===1?"is":"are"} still here.`:`Another edit replaced ${H(t,"change")}.`}function $t(e,t){return e==="upgraded"?O:e==="refused"?`This page changed ${rt()||"elsewhere"}`:e==="failed"?"A sync update did not finish":e==="recovered"?`${H(t,"change")} kept from before this page loaded`:`Another edit replaced ${H(t,"change")}`}function Tt(e){let t=pe("div",["display:block",`background:${l["teal-soft"]}`,"padding:10px 14px","width:max-content","max-width:calc(100vw - 24px)"],{theme:a,parts:["conflict.panel"]});return te(a)&&se(t,[`background:${l["teal-soft"]}`]),t.setAttribute("role","status"),t.textContent=e,t}function At(e){let t=e==="failed"?Ie().length:e==="recovered"?ot():xe().length,n=pe("div",["display:flex","flex-wrap:wrap","align-items:center","gap:10px 12px","padding:8px 8px 8px 14px","width:max-content","max-width:calc(100vw - 24px)"],{theme:a,parts:["conflict.panel"]}),o=kt(e,t);return o!==me&&(n.setAttribute("role",e==="refused"?"alert":"status"),me=o),n.append(it(),u("span",[],o,{theme:a,parts:["conflict.text"]})),e==="upgraded"?(n.append(_(V("Reload",{variant:"primary",onClick:()=>window.location.reload(),theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"reload")),n):(n.append(_(V("Review",{onClick:Ot,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"review")),n)}function A(e,t,{variant:n="default",onClick:o,push:i=!1}={}){let r=window.innerWidth<480?["flex:1 1 100%",...n==="primary"?["order:-1"]:[]]:i?["margin-left:auto"]:[];return _(V(e,{variant:n,onClick:o,extra:r,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),t)}function E(e){return u("div",["display:block","padding:0 16px 12px",`color:${l["ink-2"]}`,"font-size:13.5px"],e,{theme:a,parts:["conflict.text"]})}function Ct(e){let t=e==="replaced"?xe():e==="failed"?Ie():[],n=e==="refused"?xe():t,o=e==="recovered"?ot():t.length;if(ne.size)for(let p of t)ne.has(p.id)||B.add(p.id);for(let p of[...B])t.some(F=>F.id===p)||B.delete(p);let i=$t(e,o),s=Math.max(160,(window.visualViewport?.height||window.innerHeight)-32),r=pe("div",["display:flex","flex-direction:column","width:520px","max-width:calc(100vw - 24px)",`max-height:${s}px`],{theme:a,parts:["conflict.panel"]});re=r,r.setAttribute("role","dialog"),r.setAttribute("aria-label",i);let f=j(g("div",["all:initial","display:flex","align-items:center","gap:8px","padding:12px 12px 8px 16px",`font:14px/1.5 ${W}`,`color:${l.ink}`]),["conflict.header"]),C=_(u("b",["font-weight:600","font-size:14.5px","outline:none"],i,{theme:a,parts:["conflict.title"]}),"title");C.setAttribute("tabindex","-1"),f.append(it(),C),e==="replaced"&&B.size&&f.append(u("span",[`font:600 10.5px/1 ${ee}`,"letter-spacing:.12em","text-transform:uppercase","padding:3px 6px",`color:color-mix(in srgb, ${l.brass} 80%, ${l.ink})`,`background:${l["brass-soft"]}`],`${B.size} new`));let J=g("span",["all:initial","display:inline-flex","margin-left:auto"]),Fe=_(Qe(yt,{label:"Minimize",onClick:at,theme:a,parts:["close","conflict.close"]}),"minimize");if(Fe.title="Minimize to the bar. Nothing is accepted until you choose.",J.append(Fe),f.append(J),r.append(f),e==="recovered")return Bt(r),r;if(e==="refused"){if(r.append(E("Your edits here are safe and not saved yet; nothing will be overwritten until you choose. Their version is not on this page, so there is no list of edits to compare. Keep yours, which saves over theirs, or accept theirs, which reloads the page and drops your unsaved edits.")),n.length&&r.append(E(`${H(n.length,"earlier replaced edit")} ${n.length===1?"is":"are"} also held in this tab. Download my copy includes them.`)),R&&r.append(E("That did not save either. Your edits here are still here.")),z&&r.append(E("Something changed on the page after your first press, so nothing was dropped. Press Accept theirs again if you still want their version.")),b){let p=j(g("div",["all:initial","display:block","margin:0 16px 12px","padding:8px 10px",`background:color-mix(in srgb, ${I} 14%, transparent)`,`color:${l.ink}`,`font:13px/1.5 ${W}`]),["conflict.warning"]);p.append(g("b",["all:initial","font:inherit","font-weight:700","color:inherit"],"This drops your unsaved edits."),document.createTextNode(" Download your copy first if you might want them. Press again to confirm.")),r.append(p)}}else e==="upgraded"?r.append(E("Its layout and code changed with it, so this page stops here. Reload to see the new version.")):e==="failed"?r.append(E("Part of an update from elsewhere could not be applied, so this page may be missing some of it. Your edits here are safe. Download a copy of the page as you had it, or accept to keep the page as it is.")):r.append(E("The page is showing the other edit. This stays until you choose. You can also save a copy of the page as you had it."));let N=j(g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]),["conflict.actions"]);if(e==="upgraded")return N.append(A("Reload","reload",{variant:"primary",onClick:()=>window.location.reload(),push:!0})),r.append(N),L=[],r;let ft=A(Ce?"Try again":K?"Downloaded":"Download my copy","download",{onClick:Yt});if(N.append(ft),e==="refused"){let p=A(h==="overwrite"?"Saving\u2026":R?"Try again":"Keep mine","keep",{onClick:Vt});p.setDisabled(h==="overwrite"),N.append(p,A(b?"Yes, drop my edits":"Accept theirs","accept",{variant:"primary",onClick:qt,push:!0}))}else{if(e==="replaced"){let p=M().hasPendingApply(),F=A(p?"Finishing the incoming edit\u2026":h==="revert"?"Putting back\u2026":"Revert to mine","revert",{onClick:Ft});F.setDisabled(p||h==="revert"),N.append(F)}N.append(A("Accept theirs","accept",{variant:"primary",onClick:Nt,push:!0}))}if(r.append(N),e==="replaced")if(Y)r.append(Et(t));else{let p=g("div",["all:initial","display:flex","align-items:center","gap:8px",`border-top:1px solid ${l.line}`,"padding:8px 10px 8px 16px",`color:${l.muted}`,`font:13px/1.5 ${W}`]),F=g("span",["all:initial","display:inline-flex","margin-left:auto"]);F.append(_(V("See the edits",{small:!0,onClick:lt,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"list")),p.append(g("span",["all:initial","font:inherit","color:inherit"],H(t.length,"edit")),F),r.append(p)}L=n.map(p=>p.id);for(let p of t)ne.add(p.id);return r}function Et(e){let t=Le(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`],{theme:a,parts:["conflict.well","conflict.list"]}),n=g("div",["all:initial","position:sticky","top:0","z-index:1","display:flex","align-items:center","gap:8px","padding:8px 12px",`background:${l.sunk}`,`border-bottom:1px solid ${l["line-2"]}`,`color:${l.muted}`,`font:600 10.5px/1 ${ee}`,"letter-spacing:.12em","text-transform:uppercase"]),o=g("span",["all:initial","display:inline-flex","margin-left:auto"]);return o.append(_(V("Hide",{small:!0,variant:"quiet",onClick:lt,theme:a,parts:["conflict.button"],labelParts:["conflict.buttonLabel"]}),"list")),n.append(g("span",["all:initial","font:inherit","color:inherit","letter-spacing:inherit","text-transform:inherit"],"Replaced edits"),o),t.append(n),e.forEach((i,s)=>t.append(Pt(i,s))),P=t,t}function Ne(e){let t=e.context?.label||e.name||(e.context?.kind==="entry"?"Entry":"Edit");return e.context?.field?`${t} \xB7 ${e.context.field}`:t}var St={"content-changed":"the page changed there","structure-changed":"the structure changed there","target-detached":"that part of the page is gone","duplicate-id":"another part of the page now has the same id",protected:"that region keeps its own history",unsupported:"this kind of step cannot be put back"},Lt=e=>St[e]||"the page changed there";function Rt(e,t){let n=Array.isArray(e)?e:[];for(let o of n){if(!o||o.kind!=="text"&&o.kind!=="value")continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}for(let o of n){if(!o||o.kind!=="add"&&o.kind!=="remove")continue;let i=Array.isArray(o.nodes)?o.nodes.find(s=>typeof s?.html=="string"&&s.html):null;if(i)return{text:He(i.html).replace(/\s+/g," ").trim(),id:o.parent?.id??null}}for(let o of n){if(!o)continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}return{text:"",id:null}}function Dt(e){if(e==null||typeof document>"u")return"";let t=window.CSS?.escape?window.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),n=null;try{n=document.querySelector(`[data-id="${t}"]`)}catch{return""}if(!n)return"";let o=n.matches?.("input, textarea, select")?n.value:null;return(typeof o=="string"?o:n.textContent??"").replace(/\s+/g," ").trim()}function zt(e){let t=e?.payload&&typeof e.payload=="object"?e.payload:{},n=String(e?.key??""),o={id:e?.id,revision:e?.revision,record:e,kind:e?.kind??"conflict"};if(n.startsWith("app:"))return{...o,name:typeof t.label=="string"&&t.label?t.label:n.slice(4),sentence:"",yours:typeof t.text=="string"?t.text:"",now:""};let i=t.direction==="redo"?"redo":"undo",f=((Array.isArray(t.context)?t.context:[]).find(J=>typeof J?.label=="string"&&J.label)??null)?.label||typeof t.label=="string"&&t.label||"Edit",C=Rt(t.steps,i);return{...o,name:f,sentence:`The ${i} of "${f}" was not applied because ${Lt(t.code)}.`,yours:C.text,now:C.id==null?"":Dt(C.id)}}function Mt(e){let t=_e();if(!e.record||typeof t?.reviewActionsFor!="function")return[];try{return(t.reviewActionsFor(e.record)||[]).filter(n=>n&&typeof n.run=="function"&&n.label)}catch{return[]}}var tt=e=>({before:"",hit:e,after:"",cutBefore:!1,cutAfter:!1});function nt(e){let t=u("div",["display:block","padding:8px 12px 10px"],void 0,{theme:a,parts:["conflict.row"],role:null}),n=u("div",["display:flex","align-items:center","gap:8px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"],void 0,{theme:a,parts:["conflict.location"],role:null});if(n.append(u("span",[],Ne(e))),t.append(n),e.sentence&&t.append(u("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],e.sentence)),e.yours){let i=u("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${ee}`,...e.sentence?["margin-top:4px"]:[]]);i.append(...ve("Yours",tt(e.yours),{mine:!0})),e.now&&i.append(...ve("Now",tt(e.now),{mine:!1})),t.append(i)}let o=g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","margin-top:8px"]);return Mt(e).forEach((i,s)=>{let r=A(i.label,`run:${e.id}:${s}`,{onClick:()=>Wt(e,i,r)});o.append(r)}),o.append(A(we===e.id?"Copied":"Copy",`copy:${e.id}`,{onClick:()=>Kt(e)})),o.append(A("Dismiss",`dismiss:${e.id}`,{onClick:()=>st(e)})),t.append(o),t}function Bt(e){e.append(E($.length?"These copies were replaced before this page loaded. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.":"These copies were kept because an undo could not be put back or the page set them aside. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.")),ae&&e.append(E("That action did not run. The copy is still here."));let t=Le(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`],{theme:a,parts:["conflict.well","conflict.list"]});for(let o of $)for(let i of o.conflicts)t.append(nt(i));for(let o of v)t.append(nt(o));P=t,e.append(t);let n=j(g("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]),["conflict.actions"]);($.some(o=>o.root)||v.length)&&n.append(A(K?"Downloaded":"Download my copy","download",{onClick:Ut})),e.append(n),L=[]}function ve(e,t,{mine:n}){let o=[u("span",[`color:${l.faint}`,`font-family:${W}`],e,{theme:a,parts:["conflict.valueLabel"],role:null})],i=u("span",["display:-webkit-box","-webkit-line-clamp:2","-webkit-box-orient:vertical","overflow:hidden","overflow-wrap:anywhere",...n?[`color:${l.ink}`]:[`color:${l.muted}`]],void 0,{theme:a,parts:[n?"conflict.mine":"conflict.theirs","conflict.value"],role:null}),s=(t.cutBefore?"\u2026":"")+t.before+t.hit+t.after+(t.cutAfter?"\u2026":"");i.title=s,t.before&&i.append(u("span",[`color:${l.faint}`],(t.cutBefore?"\u2026":"")+t.before,{theme:a,parts:["conflict.before"],role:null}));let r=u("span",n?[`background:color-mix(in srgb, ${I} 18%, transparent)`,"padding:0 4px"]:t.before||t.after?["text-decoration:underline",`text-decoration-color:color-mix(in srgb, ${I} 70%, transparent)`,"text-underline-offset:3px"]:[],t.hit||"(empty)",{theme:a,parts:["conflict.value"],role:null});return i.append(r),t.after&&i.append(u("span",[`color:${l.faint}`],t.after+(t.cutAfter?"\u2026":""),{theme:a,parts:["conflict.after"],role:null})),o.push(i),o}function Pt(e,t){let n=Ke(e),o=u("div",["display:block","padding:8px 12px 10px",...t?[`border-top:1px solid ${l.line}`]:[]],void 0,{theme:a,parts:["conflict.row"],role:null}),i=u("div",["display:flex","align-items:center","gap:4px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"],void 0,{theme:a,parts:["conflict.location"],role:null});if(i.append(u("span",[],n.name)),n.target&&n.target.isConnected&&i.append(_(_t(n),`eye:${e.id}`)),o.append(i),n.sentence&&o.append(u("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],n.sentence)),Q.has(e.id)&&o.append(u("div",["display:block","font-size:13px","margin-top:4px",`color:${I}`],Q.get(e.id))),n.yours){let s=u("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${ee}`,...n.sentence?["margin-top:4px"]:[]]);s.append(...ve("Yours",n.yours,{mine:!0})),n.now&&s.append(...ve("Now",n.now,{mine:!1})),o.append(s)}return o}function _t(e){let t=["all:initial","color-scheme:inherit","box-sizing:border-box","cursor:pointer","display:inline-grid","place-items:center","width:22px","height:20px",`color:${l.ink}`],n=g("button",t);n.type="button",n.innerHTML=qe.conflictEye,je(n.firstElementChild,16),n.setAttribute("aria-label",`Show ${e.name} on page`),n.title="Show on page";let o=["button","conflict.button"];de(n,a,o);let i=s=>{n.style.cssText="";let r=te(a)?[...t,...ce(a,o,{}),...s]:[...t,...s];for(let f of r){let C=f.indexOf(":");n.style.setProperty(f.slice(0,C),f.slice(C+1),"important")}};return n.addEventListener("pointerenter",()=>i([`background:color-mix(in srgb, ${I} 16%, transparent)`])),n.addEventListener("pointerleave",()=>i([])),n.addEventListener("focus",()=>i([`outline:2px solid ${l.brass}`,"outline-offset:1px"])),n.addEventListener("blur",()=>i([])),n.addEventListener("click",()=>It(e.target)),n}var S=null,be=null,ke=null;function $e(){clearTimeout(be),window.removeEventListener("scroll",oe,!0),window.removeEventListener("resize",oe),S?.remove(),S=null,ke=null}function oe(){if(!S||!ke)return;let e=ke.getBoundingClientRect();T(S,"left",`${e.left}px`),T(S,"top",`${e.top}px`),T(S,"width",`${e.width}px`),T(S,"height",`${e.height}px`)}function It(e){if($e(),!e||!e.isConnected)return;let n=!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches?"instant":"smooth",o=c?.getBoundingClientRect().top??0,i=c&&o>0?Math.max(0,window.innerHeight-o):0;if(!i)e.scrollIntoView?.({block:"center",behavior:n});else{e.scrollIntoView?.({block:"center",behavior:"instant"});let s=e.getBoundingClientRect(),r=window.innerHeight-i,f=s.height>r-24?s.top-12:s.top+s.height/2-r/2;window.scrollBy?.({top:f,behavior:n})}ke=e,S=j(g("div",["all:initial","color-scheme:inherit","position:fixed","pointer-events:none","z-index:2147483001",`outline:2px solid ${I}`,"outline-offset:3px",`background:color-mix(in srgb, ${I} 14%, transparent)`]),["conflict.previewRing"]),document.body.appendChild(S),oe(),window.addEventListener("scroll",oe,!0),window.addEventListener("resize",oe),be=setTimeout($e,2500)}function Ot(){O||(w="panel",D="title",y())}function at(){$e(),w="bar",x(),D="review",y()}function lt(){Y=!Y,Y&&B.clear(),y()}function Nt(){let e=M(),t=L.filter(n=>{let o=e?.get(n);return o&&!o.claimedBy});e&&t.length&&e.acknowledge(t,{reason:"accepted"}),w=Oe()?"bar":"hidden",D="review",d()}async function Ft(){let e=M();if(h||!e||e.hasPendingApply())return;let t=L.filter(r=>{let f=e.get(r);return f&&!f.claimedBy});if(!t.length)return;h="revert",y();let n=!0,o=r=>{n=!!c?.contains(r.target)};document.addEventListener("focus",o,!0);let i;try{let{revertConflicts:r}=await import("./c-3S5TNRZA.js");i=await r(t)}catch(r){console.error("[clay] Revert to mine did not finish",r),i={revertedIds:[],blockedIds:t,saveResult:null}}finally{document.removeEventListener("focus",o,!0)}h=null;for(let r of i.blockedIds)Q.set(r,M()?.get(r)?.kind==="json"?vt:xt);w=Oe()?"bar":"hidden",D=n?"review":null;let s=i.saveResult&&(i.saveResult.ok||i.saveResult.msg==="Save already in progress");i.revertedIds.length&&s?Ee(`Put back ${H(i.revertedIds.length,"change")}. Saving.`):y()}var Z=null;async function Yt(){let e=M(),t=m?e?.list()??[]:L.map(o=>e?.get(o)).filter(Boolean),n=await We(t,{refused:!!m});Ce=!n,K=n,clearTimeout(Z),n&&(Z=setTimeout(()=>{K=!1,d()},1200)),y()}async function U(){let e=null;if(De())try{e=await Je()}catch{e=null}let t=_e(),n=null;if(t)try{n=await t.kept()}catch{n=null}let o=!1;if(e?.ok?($=e.records,o=!0):!De()&&$.length&&($=[],o=!0),n?.ok){let i=(Array.isArray(n.records)?n.records:[]).filter(r=>r&&r.supported!==!1).map(zt);i.length===v.length&&i.every((r,f)=>r.id===v[f].id&&r.revision===v[f].revision)||(o=!0),v=i}else n&&v.length&&(v=[],o=!0);o&&d()}async function Ht(e){try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.setAttribute("clay",Se),t.style.setProperty("position","fixed","important"),t.style.setProperty("opacity","0","important"),document.body?.append(t),t.select();let n=!1;try{n=document.execCommand?.("copy")===!0}catch{}return t.remove(),n}async function Kt(e){let t=e.record?e.yours:`${Ne(e)}
2
2
 
3
3
  Yours:
4
4
  ${e.yours}
@@ -1,2 +1,2 @@
1
- import{a as u}from"./c-7NCWENHV.js";import{C as M}from"./c-3Y234AUB.js";import{d as v}from"./c-OH2FPYSY.js";import{b as S,d as x}from"./c-RETTCOWO.js";import"./c-VHNSBD2M.js";var{Plugin:R}=S,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--blockeditor-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--blockeditor-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let d=o.attrs.id,p=t.nodeDOM(r);p&&i.set(d,p);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,h=`${g}
1
+ import{a as u}from"./c-7NCWENHV.js";import{C as M}from"./c-3XGLJAS7.js";import{d as v}from"./c-OH2FPYSY.js";import{b as S,d as x}from"./c-RETTCOWO.js";import"./c-VHNSBD2M.js";var{Plugin:R}=S,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--blockeditor-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--blockeditor-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let d=o.attrs.id,p=t.nodeDOM(r);p&&i.set(d,p);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,h=`${g}
2
2
  ${k}`,b=this.cache.get(h);if(b)for(let l of b){let w=A(l);w&&l.content&&e.push(D.inline(r+1+l.offset,r+1+l.offset+l.content.length,{style:w}))}else{if(e.push(...c.find(r,r+o.nodeSize)),this.io&&!this.visible.has(d)||this.pending.has(h))return;this.pending.add(h),this.run(k,g).then(l=>l.flat(),()=>[]).then(l=>{this.pending.delete(h),this.cache.set(h,l),this.cache.size>H&&this.cache.delete(this.cache.keys().next().value),this.schedule(0)})}}),this.track(i);let a=o=>o.map(r=>`${r.from}:${r.to}:${r.type.attrs.style}`).join("|");a(e)!==a(u.getState(t.state).find())&&t.dispatch(t.state.tr.setMeta(u,e).setMeta("addToHistory",!1))}track(t){if(this.io){for(let[e,i]of this.targets)t.get(e)!==i&&(this.io.unobserve(i),this.targets.delete(e),this.visible.delete(e));for(let[e,i]of t)this.targets.get(e)!==i&&(this.targets.set(e,i),this.io.observe(i))}}destroy(){clearTimeout(this.timer),this.io?.disconnect()}};function j(s,{tokenize:t=P,delay:e=300}={}){let i=new y(s,t,e),c=s.dispatch.bind(s),a=s.state.doc,o=d=>{if(c(d),s.state.doc===a)return;let p={doc:a};a=s.state.doc,i.update(s,p)};s.dispatch=o;let r=i.destroy.bind(i);return i.destroy=()=>{s.dispatch===o&&(s.dispatch=c),r()},i}var f=class{constructor(t,e,i){this.node=t,this.view=e,this.getPos=i;let c=e.dom.ownerDocument;this.dom=c.createElement("pre"),this.contentDOM=c.createElement("code"),this.select=c.createElement("select"),this.select.className="blockeditor-code-lang",this.select.contentEditable="false",this.select.setAttribute("aria-label","Code language");for(let[a,o]of O)this.select.append(new Option(o,a));this.select.addEventListener("change",()=>this.setLang(this.select.value)),this.dom.append(this.select,this.contentDOM),this.render(t)}render(t){this.node=t,this.dom.dataset.id=t.attrs.id??"";let e=m(t.attrs.lang);e?this.dom.dataset.lang=e:delete this.dom.dataset.lang,this.select.value=e}setLang(t){let e=this.getPos();e==null||t===m(this.node.attrs.lang)||(this.view.dispatch(M(this.view.state.tr.setNodeMarkup(e,null,{...this.node.attrs,lang:t}))),this.view.focus())}update(t){return t.type!==this.node.type?!1:(this.render(t),!0)}stopEvent(t){return this.select.contains(t.target)}ignoreMutation(t){return t.type!=="selection"&&this.select.contains(t.target)}};function X({view:s=null,highlight:t={}}={}){let e=s?j(s,t):null;return{id:"code",nodeViews:{code_block:(i,c,a)=>new f(i,c,a)},css:null,dispose(){e?.destroy()}}}export{X as createFeature};
@@ -1,4 +1,4 @@
1
- import{A as ee,D as oe,G as te,H as re,I as ne,i as J}from"./c-TGIMBAWE.js";import"./c-WNOLMHI2.js";import"./c-LS7IVQVW.js";import"./c-NEQRFC4O.js";import{a as X}from"./c-Y3J5LDKB.js";import"./c-PZ4XEPUP.js";import"./c-JRKY44DK.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{A as Q,F as Z,d as z,y as K}from"./c-OH2FPYSY.js";import"./c-SFKI6OLM.js";import"./c-Q3XOWZEV.js";import{b as Y}from"./c-QY7F6EN6.js";import{a as G,b as H}from"./c-RETTCOWO.js";import"./c-RHMPKZZ7.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-UW6MMZ4V.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var le="Work from an earlier session could not be put back. Read it, download it, or recover it as a copy.",pe=`
1
+ import{A as ee,D as oe,G as te,H as re,I as ne,i as J}from"./c-RBWVF4N5.js";import"./c-6BGJAJ67.js";import"./c-MMV5JULA.js";import"./c-MVVEIJUU.js";import{a as X}from"./c-Y3J5LDKB.js";import"./c-PZ4XEPUP.js";import"./c-JRKY44DK.js";import"./c-LAKBBJOU.js";import"./c-EIUKME3W.js";import"./c-ND3W7D5U.js";import"./c-WHQUZM2V.js";import{A as Q,F as Z,d as z,y as K}from"./c-OH2FPYSY.js";import"./c-SFKI6OLM.js";import"./c-Q3XOWZEV.js";import{b as Y}from"./c-QY7F6EN6.js";import{a as G,b as H}from"./c-RETTCOWO.js";import"./c-RHMPKZZ7.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-UW6MMZ4V.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var le="Work from an earlier session could not be put back. Read it, download it, or recover it as a copy.",pe=`
2
2
  :host { font: inherit !important; color: inherit !important; }
3
3
  .blockeditor-recovery-root { display: contents; }
4
4
  .blockeditor-recovery { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--blockeditor-ink); background: var(--blockeditor-pop-bg); border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: 999px; cursor: pointer; }
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./c-TGIMBAWE.js";import"./c-WNOLMHI2.js";import"./c-LS7IVQVW.js";import"./c-NEQRFC4O.js";import"./c-JRKY44DK.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-OH2FPYSY.js";import"./c-RETTCOWO.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as COMPACT_BATCHES,d as COMPACT_BYTES,y as COPY_CHANNEL,z as COPY_VERSION,E as IME_CHANNEL,F as IME_VERSION,a as PAGE_CHANNEL,b as PAGE_CHANNEL_VERSION,f as PageReplayError,g as accumulateCapsule,j as admitCapsule,l as applyCapsule,k as capsulesOf,C as copyState,x as coversText,r as createPageJournal,w as describeReview,I as imeEntries,p as journalBase,B as markerFor,e as mergePageUpdates,H as openImeShadow,s as openPageJournal,o as pageAuthority,q as pageChannel,A as pageCopyChannel,G as pageImeChannel,n as pageJournalContext,i as reconstructPage,v as reconstructText,D as recoverAsCopy,u as replayInto,m as replayJournals,h as replayPageValue,t as watchJournal};
1
+ import{A,B,C,D,E,F,G,H,I,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./c-RBWVF4N5.js";import"./c-6BGJAJ67.js";import"./c-MMV5JULA.js";import"./c-MVVEIJUU.js";import"./c-JRKY44DK.js";import"./c-LAKBBJOU.js";import"./c-EIUKME3W.js";import"./c-ND3W7D5U.js";import"./c-WHQUZM2V.js";import"./c-OH2FPYSY.js";import"./c-RETTCOWO.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as COMPACT_BATCHES,d as COMPACT_BYTES,y as COPY_CHANNEL,z as COPY_VERSION,E as IME_CHANNEL,F as IME_VERSION,a as PAGE_CHANNEL,b as PAGE_CHANNEL_VERSION,f as PageReplayError,g as accumulateCapsule,j as admitCapsule,l as applyCapsule,k as capsulesOf,C as copyState,x as coversText,r as createPageJournal,w as describeReview,I as imeEntries,p as journalBase,B as markerFor,e as mergePageUpdates,H as openImeShadow,s as openPageJournal,o as pageAuthority,q as pageChannel,A as pageCopyChannel,G as pageImeChannel,n as pageJournalContext,i as reconstructPage,v as reconstructText,D as recoverAsCopy,u as replayInto,m as replayJournals,h as replayPageValue,t as watchJournal};
@@ -1 +1 @@
1
- import{b as E,d as A,e as M,f as I}from"./c-LS7IVQVW.js";import"./c-NEQRFC4O.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{C as B}from"./c-3Y234AUB.js";import{E as m,fa as S,ia as L,ja as O,la as Y,ma as x}from"./c-OH2FPYSY.js";import"./c-RETTCOWO.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var Q="This element holds blocks from a document editor. Reply with the same outer div. Inside it use p, h1, h2, h3, ul, ol, li, blockquote, pre with code, details with summary, hr, table with thead, tbody, tr, th, td, and the inline tags strong, em, s, u, code, a. You may also keep any tag already in the element. Keep each data-id on the block it belongs to, and give a new block no data-id. An hr with data-clay-keep stands for something you cannot see: keep it where it belongs unless the request says to remove it. Keep each checkbox on a list item unless the request says to remove it. No classes, no style attributes, no scripts.",U=new Set(["image","file","chart","board","toc","tool","preserved"]),$=new Set(["paragraph","heading","list_item","quote","callout","code_block","toggle","divider","table"]),p=(r,t)=>({status:"refused",code:r,message:t}),H=({id:r,parent:t,...i})=>({...i,parent:t??null}),F=(r,t)=>S(H(r))===S(H(t)),K=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,P=["owner","due","pageIcon","pageCoverSrc","pageCoverAlt","pageCoverX","pageCoverY"],G=(r,t)=>{let i={...t};for(let d of P)(i[d]===void 0||i[d]===null)&&r[d]!==void 0&&(i[d]=r[d]);return i},V=(r,t)=>{let i=new Set(r.cols.map(o=>o.id).filter(Boolean)),d=r.cols.map((o,l)=>{if(o.id)return o;let n=t.cols[l];return!n?.id||i.has(n.id)?o:(i.add(n.id),{...o,id:n.id})}).map(o=>{let l=o.id?t.cols.find(h=>h.id===o.id):null;if(!l)return o;let n={...o};return n.kind===void 0&&l.kind!==void 0&&(n.kind=l.kind),n.width===void 0&&l.width!==void 0&&(n.width=l.width),n});return{...r,cols:d}};function Z(r,t,{dom:i=document}={}){let d=m(r);if(t.some(s=>d[s]?.t==="opaque_block"))return p("opaque","This area holds a block this editor cannot rewrite.");let o=I(A(d),i),l=new Set(t),n=o.filter(s=>l.has(s.id));if(n.length!==t.length)return p("not-found","Some of these blocks are no longer in the document.");let h=new Map,a=new Map,g=n.map(s=>{let w=d[s.id]?.t??s.t;return U.has(w)?(h.set(s.id,s),a.set(s.id,w),{id:s.id,t:"divider",parent:s.parent}):s});if(n.every(s=>h.has(s.id)))return p("no-text","This area holds nothing that can be rewritten.");let b=i.createElement("template");b.innerHTML=O(g,{clean:L(i)});for(let s of b.content.querySelectorAll("hr[data-id]")){let w=s.getAttribute("data-id");h.has(w)&&s.setAttribute("data-clay-keep",a.get(w))}let f=o.indexOf(n[0]),y=o.indexOf(n[n.length-1]);return y-f+1!==n.length?p("not-found","These blocks are not next to each other."):{status:"ok",capture:{ids:n.map(s=>s.id),blocks:d,baseItems:o,before:o.slice(0,f),span:n,after:o.slice(y+1),parent:n[0].parent??null,held:h,html:`<div data-clay-area>${b.innerHTML}</div>`}}}function N(r,t,i=document){let d=I(A(m(r)),i),o=new Map(d.map(a=>[a.id,a])),l=t.span.filter(a=>!o.has(a.id)||!F(a,o.get(a.id))).map(a=>a.id);if(l.length)return l;let n=d.findIndex(a=>a.id===t.ids[0]);return t.ids.every((a,g)=>d[n+g]?.id===a)?[]:[...t.ids]}function ee(r,t,i,{seed:d="",dom:o=document}={}){if(N(r.doc,t,o).length)return p("stale","These blocks changed while AI was working, so nothing was changed.");let n=o.createElement("template");n.innerHTML=i??"";let h=[...n.content.children],a=h.length===1?h[0]:null,g=a&&a.tagName==="DIV"&&(a.hasAttribute("data-clay-area")||!a.hasAttribute("data-id"))?a:null,b=o.createElement("article");b.append(...g?g.childNodes:n.content.childNodes);let f=Y(b);if(!f.length)return p("empty","AI did not write any blocks. Try again.");let y=new Set(t.ids);if(f=f.map(e=>e.id&&!y.has(e.id)?{...e,id:null}:e),f.some(e=>!(e.id&&t.held.has(e.id))&&!$.has(e.t)))return p("active","AI used formatting this editor cannot put in a document. Try again.");let s=new Map(t.span.map(e=>[e.id,e])),w=new Set(f.map(e=>e.id).filter(Boolean)),v=0,q=f.map(e=>{if(e.id){let R=t.ids.indexOf(e.id);return R>=0&&(v=R+1),e}let c=t.ids[v],D=c?s.get(c):null;return!c||w.has(c)||!D||D.t!==e.t?e:(w.add(c),v++,{...e,id:c})}).map(e=>{let c=e.id?s.get(e.id):null;return c?.t==="table"&&e.t==="table"&&Array.isArray(e.cols)&&Array.isArray(c.cols)?V(e,c):e}),k=new Set(t.baseItems.filter(e=>!s.has(e.id)).map(e=>e.id)),u=x(q,{seed:d,known:s,taken:k});for(let e=0;e<4&&u.some(c=>k.has(c.id));e++)u=x(q,{seed:K(),known:s,taken:k});if(u.some(e=>k.has(e.id)))return p("active","The new blocks from AI could not be added to the document. Try again.");u=u.map(e=>e.id&&t.held.has(e.id)?{...t.held.get(e.id)}:e),u=u.map(e=>{let c=e.id?s.get(e.id):null;return c&&c.t===e.t?G(c,e):e}),t.parent!==null&&(u=u.map(e=>e.parent?e:{...e,parent:t.parent}));let T=E(t.blocks,[...t.before,...u,...t.after],t.baseItems);if(!T)return p("no-change","AI did not change anything.");let C=M(r,T);if(!C)return p("no-change","AI did not change anything.");let _=new Map;return C.doc.forEach(e=>_.set(e.attrs.id,e)),{status:"ready",plan:T,reply:u,nodes:u.map(e=>_.get(e.id)).filter(Boolean)}}function te(r,t,i,d=document){let o=N(r.doc,t,d);if(o.length)return{status:"stale",ids:o};let l=A(m(r.doc)),n=I(l,d),h=n.findIndex(f=>f.id===t.ids[0]);if(h<0)return{status:"stale",ids:[...t.ids]};let a=h+t.ids.length-1,g=E(l,[...n.slice(0,h),...i.reply,...n.slice(a+1)],n);if(!g)return{status:"stale",ids:[]};let b=M(r,g);return b?{status:"ok",tr:B(b)}:{status:"stale",ids:[]}}export{Q as AREA_GUIDE,Z as captureArea,te as keepAreaTransaction,ee as proposeArea,N as staleIds};
1
+ import{b as E,d as A,e as M,f as I}from"./c-MMV5JULA.js";import"./c-MVVEIJUU.js";import"./c-LAKBBJOU.js";import"./c-EIUKME3W.js";import"./c-ND3W7D5U.js";import"./c-WHQUZM2V.js";import{C as B}from"./c-3XGLJAS7.js";import{E as m,fa as S,ia as L,ja as O,la as Y,ma as x}from"./c-OH2FPYSY.js";import"./c-RETTCOWO.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var Q="This element holds blocks from a document editor. Reply with the same outer div. Inside it use p, h1, h2, h3, ul, ol, li, blockquote, pre with code, details with summary, hr, table with thead, tbody, tr, th, td, and the inline tags strong, em, s, u, code, a. You may also keep any tag already in the element. Keep each data-id on the block it belongs to, and give a new block no data-id. An hr with data-clay-keep stands for something you cannot see: keep it where it belongs unless the request says to remove it. Keep each checkbox on a list item unless the request says to remove it. No classes, no style attributes, no scripts.",U=new Set(["image","file","chart","board","toc","tool","preserved"]),$=new Set(["paragraph","heading","list_item","quote","callout","code_block","toggle","divider","table"]),p=(r,t)=>({status:"refused",code:r,message:t}),H=({id:r,parent:t,...i})=>({...i,parent:t??null}),F=(r,t)=>S(H(r))===S(H(t)),K=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,P=["owner","due","pageIcon","pageCoverSrc","pageCoverAlt","pageCoverX","pageCoverY"],G=(r,t)=>{let i={...t};for(let d of P)(i[d]===void 0||i[d]===null)&&r[d]!==void 0&&(i[d]=r[d]);return i},V=(r,t)=>{let i=new Set(r.cols.map(o=>o.id).filter(Boolean)),d=r.cols.map((o,l)=>{if(o.id)return o;let n=t.cols[l];return!n?.id||i.has(n.id)?o:(i.add(n.id),{...o,id:n.id})}).map(o=>{let l=o.id?t.cols.find(h=>h.id===o.id):null;if(!l)return o;let n={...o};return n.kind===void 0&&l.kind!==void 0&&(n.kind=l.kind),n.width===void 0&&l.width!==void 0&&(n.width=l.width),n});return{...r,cols:d}};function Z(r,t,{dom:i=document}={}){let d=m(r);if(t.some(s=>d[s]?.t==="opaque_block"))return p("opaque","This area holds a block this editor cannot rewrite.");let o=I(A(d),i),l=new Set(t),n=o.filter(s=>l.has(s.id));if(n.length!==t.length)return p("not-found","Some of these blocks are no longer in the document.");let h=new Map,a=new Map,g=n.map(s=>{let w=d[s.id]?.t??s.t;return U.has(w)?(h.set(s.id,s),a.set(s.id,w),{id:s.id,t:"divider",parent:s.parent}):s});if(n.every(s=>h.has(s.id)))return p("no-text","This area holds nothing that can be rewritten.");let b=i.createElement("template");b.innerHTML=O(g,{clean:L(i)});for(let s of b.content.querySelectorAll("hr[data-id]")){let w=s.getAttribute("data-id");h.has(w)&&s.setAttribute("data-clay-keep",a.get(w))}let f=o.indexOf(n[0]),y=o.indexOf(n[n.length-1]);return y-f+1!==n.length?p("not-found","These blocks are not next to each other."):{status:"ok",capture:{ids:n.map(s=>s.id),blocks:d,baseItems:o,before:o.slice(0,f),span:n,after:o.slice(y+1),parent:n[0].parent??null,held:h,html:`<div data-clay-area>${b.innerHTML}</div>`}}}function N(r,t,i=document){let d=I(A(m(r)),i),o=new Map(d.map(a=>[a.id,a])),l=t.span.filter(a=>!o.has(a.id)||!F(a,o.get(a.id))).map(a=>a.id);if(l.length)return l;let n=d.findIndex(a=>a.id===t.ids[0]);return t.ids.every((a,g)=>d[n+g]?.id===a)?[]:[...t.ids]}function ee(r,t,i,{seed:d="",dom:o=document}={}){if(N(r.doc,t,o).length)return p("stale","These blocks changed while AI was working, so nothing was changed.");let n=o.createElement("template");n.innerHTML=i??"";let h=[...n.content.children],a=h.length===1?h[0]:null,g=a&&a.tagName==="DIV"&&(a.hasAttribute("data-clay-area")||!a.hasAttribute("data-id"))?a:null,b=o.createElement("article");b.append(...g?g.childNodes:n.content.childNodes);let f=Y(b);if(!f.length)return p("empty","AI did not write any blocks. Try again.");let y=new Set(t.ids);if(f=f.map(e=>e.id&&!y.has(e.id)?{...e,id:null}:e),f.some(e=>!(e.id&&t.held.has(e.id))&&!$.has(e.t)))return p("active","AI used formatting this editor cannot put in a document. Try again.");let s=new Map(t.span.map(e=>[e.id,e])),w=new Set(f.map(e=>e.id).filter(Boolean)),v=0,q=f.map(e=>{if(e.id){let R=t.ids.indexOf(e.id);return R>=0&&(v=R+1),e}let c=t.ids[v],D=c?s.get(c):null;return!c||w.has(c)||!D||D.t!==e.t?e:(w.add(c),v++,{...e,id:c})}).map(e=>{let c=e.id?s.get(e.id):null;return c?.t==="table"&&e.t==="table"&&Array.isArray(e.cols)&&Array.isArray(c.cols)?V(e,c):e}),k=new Set(t.baseItems.filter(e=>!s.has(e.id)).map(e=>e.id)),u=x(q,{seed:d,known:s,taken:k});for(let e=0;e<4&&u.some(c=>k.has(c.id));e++)u=x(q,{seed:K(),known:s,taken:k});if(u.some(e=>k.has(e.id)))return p("active","The new blocks from AI could not be added to the document. Try again.");u=u.map(e=>e.id&&t.held.has(e.id)?{...t.held.get(e.id)}:e),u=u.map(e=>{let c=e.id?s.get(e.id):null;return c&&c.t===e.t?G(c,e):e}),t.parent!==null&&(u=u.map(e=>e.parent?e:{...e,parent:t.parent}));let T=E(t.blocks,[...t.before,...u,...t.after],t.baseItems);if(!T)return p("no-change","AI did not change anything.");let C=M(r,T);if(!C)return p("no-change","AI did not change anything.");let _=new Map;return C.doc.forEach(e=>_.set(e.attrs.id,e)),{status:"ready",plan:T,reply:u,nodes:u.map(e=>_.get(e.id)).filter(Boolean)}}function te(r,t,i,d=document){let o=N(r.doc,t,d);if(o.length)return{status:"stale",ids:o};let l=A(m(r.doc)),n=I(l,d),h=n.findIndex(f=>f.id===t.ids[0]);if(h<0)return{status:"stale",ids:[...t.ids]};let a=h+t.ids.length-1,g=E(l,[...n.slice(0,h),...i.reply,...n.slice(a+1)],n);if(!g)return{status:"stale",ids:[]};let b=M(r,g);return b?{status:"ok",tr:B(b)}:{status:"stale",ids:[]}}export{Q as AREA_GUIDE,Z as captureArea,te as keepAreaTransaction,ee as proposeArea,N as staleIds};
@@ -0,0 +1,2 @@
1
+ import{a}from"./c-J2ZW4HMR.js";import{a as c}from"./c-4JZDZFF6.js";var s=e=>e.nodeType===1&&e.hasAttribute("data-clay-skin");function d(e){for(let t of e.childNodes)if(!s(t))return t;return null}function f(e,t){if(t.parentNode!==e)return!1;for(let n=t.previousSibling;n;n=n.previousSibling)if(!s(n))return!1;return!0}var u=new Map;function p(e){let t=`:is(${e.join(", ")})`;return`
2
+ @layer clay-skin{${t}{color-scheme:${c()} !important}${t}::selection,${t} ::selection{background-color:light-dark(#B4D5FE, #2F5A8C) !important;color:light-dark(#1A1C24, #F2F4F8) !important}}`}function m(e,t,{roots:n}={}){u.set(e,{css:t,roots:n});let i=document.head||document.documentElement,o=null;for(let l of i.querySelectorAll("style[data-clay-skin]"))l.getAttribute("data-clay-skin")===e&&(o=l);o||(o=document.createElement("style"),o.setAttribute("clay",a),o.setAttribute("data-clay-skin",e));let r=n?t+p(n):t;return o.textContent!==r&&(o.textContent=r),f(i,o)||i.insertBefore(o,d(i)),o}typeof document<"u"&&document.addEventListener("clay:sync-applied",()=>{for(let[e,{css:t,roots:n}]of u)m(e,t,{roots:n})});export{m as a};