@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{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{P as So,Q as Mo,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,t as vo,y as wo}from"../c-LUBZU4AZ.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-T7LOTEWO.js";import"../c-A3OKSYRI.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as V,k as yo,p as zo,x as Eo}from"../c-3Y234AUB.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as q,c as Do,d as T}from"../c-XCOQNISP.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as M,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-JC4RZW4E.js";import"../c-57XDY6HC.js";import{b as L}from"../c-NL4I4KNG.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:$,DecorationSet:_o}=m,No="Type / for blocks",Wo="Untitled",Uo="To do";function Xo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":Wo})))}),r}function Go(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Uo}))}),e}function Fo(o=No){return new h.Plugin({props:{decorations(e){let r=Go(e.doc),t=Xo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let b=d.before(1);r.push($.node(b,b+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?_o.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Yo=[1,2,3,4,5,6,7,8],Jo=`
1
+ import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{Q as So,R as Mo,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,u as vo,z as wo}from"../c-WHMZCRQD.js";import"../c-LAKBBJOU.js";import"../c-EIUKME3W.js";import{n as io}from"../c-DZT6W2NG.js";import"../c-SYOA4T7V.js";import"../c-ND3W7D5U.js";import"../c-WHQUZM2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as V,k as yo,p as zo,x as Eo}from"../c-3XGLJAS7.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as q,c as Do,d as T}from"../c-N362HNGO.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as M,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-JC4RZW4E.js";import"../c-57XDY6HC.js";import{b as L}from"../c-NL4I4KNG.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:$,DecorationSet:_o}=m,No="Type / for blocks",Wo="Untitled",Uo="To do";function Xo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":Wo})))}),r}function Go(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Uo}))}),e}function Fo(o=No){return new h.Plugin({props:{decorations(e){let r=Go(e.doc),t=Xo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let b=d.before(1);r.push($.node(b,b+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?_o.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Yo=[1,2,3,4,5,6,7,8],Jo=`
2
2
  --blockeditor-bg: #F7F6F2; --blockeditor-ink: #23221F; --blockeditor-ink-soft: #6B6862; --blockeditor-ink-faint: #9B968C;
3
3
  --blockeditor-rule: rgba(35, 34, 31, 0.10); --blockeditor-accent: #2F5E9E; --blockeditor-link: #164583; --blockeditor-selection: rgba(88, 120, 170, 0.20);
4
4
  --blockeditor-check-border: rgba(35, 34, 31, 0.35); --blockeditor-check-fill: #23221F; --blockeditor-check-ink: #F7F6F2;
@@ -304,4 +304,4 @@ ${Yo.map(o=>`:where(article[data-blockeditor], .blockeditor-editor) .blockeditor
304
304
  .blockeditor-dock, .blockeditor-plus, .blockeditor-grip, .blockeditor-toggle-button, .blockeditor-image-handle, .blockeditor-upload-bar > span, .blockeditor-board-person { transition: none; }
305
305
  }
306
306
  }
307
- `,Zo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),oe=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-BHLYQGTA.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),ee=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Zo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":oe}),re=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),te={Backspace:y.chainCommands(re,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},ie=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Io=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function de(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function le({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:b},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:b}),z=Io.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function ce(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Do(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ae({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,b=!0,s=!1,u=0,x=a=>{let n=t.get(a);return n||(n=Promise.resolve(o(a)),t.set(a,n),n.catch(()=>{t.get(a)===n&&t.delete(a)})),n},z=()=>(c??=R({load:x,install:(a,n)=>n.createFeature(e(d)),reportError:r??((a,n)=>console.error(`clayjs: the ${n} command failed to load`,a))}),c),E=()=>{let a=u,n=d.state.selection;return{revision:a,selection:n,valid:()=>b&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(n)}};function A(a,n){a.doc!==n.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,n){if(!b||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(n):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(b){b=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function D(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(b=!0)},quiesce:v,leave:D,dispose(){D(),s=!0,b=!1,t.clear()}}}var _=new WeakMap;function ne(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function Ne(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function be(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function pe({upload:o=ie,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:b=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ne(u):null,vo(),be(b),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),M.keymap(te),So,To,M.keymap(Po),M.keymap(ee({history:r,undo:t,redo:i})),M.keymap(y.baseKeymap),yo(),eo(),Mo(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),de(),s?ce(s):null].filter(Boolean)}function ke(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:pe(e)})}function We(o){!o||o.isDestroyed||o.updateState(o.state)}function Ue(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function se(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,b=o.state.doc.nodeAt(c);return b?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...b.attrs,checked:!b.attrs.checked})),!0):!1}function Ko(o,e){let r=parseFloat(o.defaultView?.getComputedStyle(o.documentElement).scrollPaddingTop);return Number.isFinite(r)?Math.max(e,r):e}function Xe(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:b=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:D=null,formatGate:a=null}={}){let n=o.ownerDocument;L(Oo,Qo,Oo,["editor-ui"]);let p=n.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=D??R({load:l=>q[l].load(),install:(l,f)=>le({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ae({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(q))for(let f of l.views??l.types)N[f]=(B,Vo,qo,$o,Ho)=>{let W=K.get(B.type.name);return W?W(B,Vo,qo,$o,Ho):new H(B,K)};k=new m.EditorView(p,{state:ke(e,{upload:t,highlight:i,doc:d,history:b,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{get top(){return Ko(n,16)},bottom:96,left:5,right:5},scrollThreshold:{get top(){return Ko(n,16)},bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:se,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(V)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(V));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Io.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Lo=k.destroy.bind(k),C=null,I=!1,Ro=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Ro();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Lo()},k}export{Qo as PAGE_EDITOR_CSS,ke as blockeditorState,Xe as createPageEditor,le as installPageFeature,O as lazyViewsKey,de as lazyViewsPlugin,pe as pagePlugins,We as refreshMountedView,Ne as runPageCommand,Ue as setEditorActive};
307
+ `,Zo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),oe=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-3S3647J6.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),ee=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Zo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":oe}),re=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),te={Backspace:y.chainCommands(re,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},ie=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Io=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function de(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function le({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:b},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:b}),z=Io.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function ce(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Do(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ae({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,b=!0,s=!1,u=0,x=a=>{let n=t.get(a);return n||(n=Promise.resolve(o(a)),t.set(a,n),n.catch(()=>{t.get(a)===n&&t.delete(a)})),n},z=()=>(c??=R({load:x,install:(a,n)=>n.createFeature(e(d)),reportError:r??((a,n)=>console.error(`clayjs: the ${n} command failed to load`,a))}),c),E=()=>{let a=u,n=d.state.selection;return{revision:a,selection:n,valid:()=>b&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(n)}};function A(a,n){a.doc!==n.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,n){if(!b||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(n):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(b){b=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function D(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(b=!0)},quiesce:v,leave:D,dispose(){D(),s=!0,b=!1,t.clear()}}}var _=new WeakMap;function ne(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function Ne(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function be(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function pe({upload:o=ie,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:b=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ne(u):null,vo(),be(b),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),M.keymap(te),So,To,M.keymap(Po),M.keymap(ee({history:r,undo:t,redo:i})),M.keymap(y.baseKeymap),yo(),eo(),Mo(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),de(),s?ce(s):null].filter(Boolean)}function ke(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:pe(e)})}function We(o){!o||o.isDestroyed||o.updateState(o.state)}function Ue(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function se(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,b=o.state.doc.nodeAt(c);return b?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...b.attrs,checked:!b.attrs.checked})),!0):!1}function Ko(o,e){let r=parseFloat(o.defaultView?.getComputedStyle(o.documentElement).scrollPaddingTop);return Number.isFinite(r)?Math.max(e,r):e}function Xe(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:b=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:D=null,formatGate:a=null}={}){let n=o.ownerDocument;L(Oo,Qo,Oo,["editor-ui"]);let p=n.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=D??R({load:l=>q[l].load(),install:(l,f)=>le({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ae({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(q))for(let f of l.views??l.types)N[f]=(B,Vo,qo,$o,Ho)=>{let W=K.get(B.type.name);return W?W(B,Vo,qo,$o,Ho):new H(B,K)};k=new m.EditorView(p,{state:ke(e,{upload:t,highlight:i,doc:d,history:b,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{get top(){return Ko(n,16)},bottom:96,left:5,right:5},scrollThreshold:{get top(){return Ko(n,16)},bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:se,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(V)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(V));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Io.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Lo=k.destroy.bind(k),C=null,I=!1,Ro=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Ro();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Lo()},k}export{Qo as PAGE_EDITOR_CSS,ke as blockeditorState,Xe as createPageEditor,le as installPageFeature,O as lazyViewsKey,de as lazyViewsPlugin,pe as pagePlugins,We as refreshMountedView,Ne as runPageCommand,Ue as setEditorActive};
@@ -1,4 +1,4 @@
1
- import{b as qe,e as Jr}from"../c-JAX2667S.js";import{a as Xr}from"../c-D2OPWOWO.js";import"../c-J2ZW4HMR.js";import"../c-A5LASUEZ.js";import"../c-4JZDZFF6.js";import"../c-5RZNFTWD.js";import"../c-PKCCHJ5X.js";import"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var Kr=`@layer clay-skin{
1
+ import{b as qe,e as Jr}from"../c-JAX2667S.js";import{a as Xr}from"../c-KD2ME5UN.js";import"../c-J2ZW4HMR.js";import"../c-A5LASUEZ.js";import"../c-4JZDZFF6.js";import"../c-5RZNFTWD.js";import"../c-PKCCHJ5X.js";import"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var Kr=`@layer clay-skin{
2
2
  :is(.hcms-shell):not([data-theme]),:is(.hcms-shell):not([data-theme]) *{--mirk-canvas:light-dark(#FDF8F0, #0B0C13) !important;--mirk-bg:light-dark(#FFFCF6, #11131E) !important;--mirk-fg:light-dark(#2B241B, #ECEAF2) !important;--mirk-accent:light-dark(#F4ECDF, #1A1D2C) !important;--mirk-destructive:light-dark(#A83A2C, #FF5566) !important;--mirk-focus-color:light-dark(#8F6310, #D9A445) !important;--mirk-bevel-bg:light-dark(#F1E7D4, #22273E) !important;--mirk-bevel-fg:light-dark(#2B241B, #ECEAF2) !important;--mirk-bevel-tl:light-dark(#FFF9ED, #3C4260) !important;--mirk-bevel-br:light-dark(#D6C3A5, #1B2033) !important;--mirk-bevel-hover-bg:color-mix(in srgb, light-dark(#F1E7D4, #22273E), light-dark(#FFF9ED, #3C4260) 45%) !important;--mirk-pill-inner-top:light-dark(#FFF9ED, #3C4260) !important;--mirk-input-border:light-dark(#D8C8AF, #353B52) !important;--mirk-placeholder-color:light-dark(#9A8A70, #6A7090) !important;--mirk-ctrl-bg:light-dark(#6B5942, #8A90AB) !important;--mirk-toggle-bg:light-dark(#FCF8F1, #4A5275) !important;--mirk-toggle-hi:light-dark(#FFF9ED, #6C759A) !important;--mirk-toggle-lo:light-dark(#D6C3A5, #1B2033) !important;--mirk-mark-fg:light-dark(#2B241B, #ECEAF2) !important;--mirk-sortable-dot:light-dark(#D8C8AF, #353B52) !important;--mirk-sortable-shadow:light-dark(#D6C3A5, #1B2033) !important;--mirk-sortable-label:light-dark(#6B5942, #8A90AB) !important;--mirk-sortable-placeholder:light-dark(#9A8A70, #6A7090) !important;--mirk-slider-fill:light-dark(#F0E4CC, #3A2F17) !important;--mirk-slider-nub-bg:light-dark(#FCF8F1, #4A5275) !important;--mirk-slider-nub-hi:light-dark(#FFF9ED, #6C759A) !important;--mirk-slider-nub-lo:light-dark(#D6C3A5, #1B2033) !important;--mirk-chip-surface:light-dark(#FFFCF6, #11131E) !important;--mirk-chip-edge:light-dark(#D8C8AF, #353B52) !important;--mirk-chip-primary-bg:light-dark(#2B241B, #ECEAF2) !important;--mirk-chip-primary-fg:light-dark(#FDF8F0, #0B0C13) !important;--mirk-chip-alert:light-dark(#A83A2C, #FF5566) !important;--mirk-radius:0px !important;--mirk-focus-offset:2px !important}
3
3
  :is(.hcms-shell){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important}
4
4
  .hcms-shell .mirk-chip__actions .mirk-chip__action--primary{--mirk-bevel-bg:var(--mirk-chip-primary-bg) !important;--mirk-bevel-fg:var(--mirk-chip-primary-fg) !important;--mirk-bevel-tl:color-mix(in srgb, var(--mirk-chip-primary-bg), white 24%) !important;--mirk-bevel-br:color-mix(in srgb, var(--mirk-chip-primary-bg), black 32%) !important;--mirk-bevel-hover-bg:color-mix(in srgb, var(--mirk-chip-primary-bg), white 10%) !important}
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-ZJ7726FO.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-FC5RUFPR.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-EHAR4RJJ.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-UW6MMZ4V.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-SRW5OBCF.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-FC5RUFPR.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-EHAR4RJJ.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-UW6MMZ4V.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
@@ -0,0 +1,2 @@
1
+ import{a as Ot}from"../c-VPXCXBDT.js";import{a as At,b as Et,c as Rt}from"../c-N362HNGO.js";import{e as de}from"../c-Z6MROEQ4.js";import{a as Tt}from"../c-Q26XHBLQ.js";import{c as St}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as xe,b as G,d as R}from"../c-JC4RZW4E.js";import{a as Pe,b as Ie}from"../c-RHMPKZZ7.js";import{a as jt}from"../c-L4WQSC27.js";import{d as gt,e as yt,i as ht,j as He,n as N,o as mt,q as ue,r as wt,s as vt,t as Fe,u as bt,v as kt}from"../c-SRW5OBCF.js";import"../c-JKZJIUIP.js";import{a as ie}from"../c-TCCA5BZN.js";import{k as De}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as pt}from"../c-FILLTJA7.js";import{a as st}from"../c-NUHP2XDB.js";import{B as dt,F as ft,d as Ce,e as it,f as se,h as ut,n as Le,o as ce}from"../c-FC5RUFPR.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as ct}from"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as X}from"../c-MZCOGNZL.js";import{d as le}from"../c-EHAR4RJJ.js";import{a as nt}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as je,c as lt,d as Oe}from"../c-KU3PX7LL.js";import{d as Re}from"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{b as C,k as at}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import{E as U}from"../c-UW6MMZ4V.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ar=Object.freeze({"blockeditor-converting":"retrying","blockeditor-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","blockeditor-condition-required":"blocked","blockeditor-conversion-refused":"blocked","blockeditor-conversion-required":"blocked","blockeditor-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked","blockeditor-full":"blocked","compaction-failed":"blocked"}),Pt=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,fe="Can't save here. Your edits are still in this tab.",pe="Still trying to save. Your edits are safe in this tab.";function $({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Ar[t]??"error"}function It(e){let t;try{t=new DOMParser().parseFromString(e,"text/html")}catch{return e}let o=[...t.querySelectorAll('script[type="application/json"][merge="blockeditor"][clay~="live"]')].filter(u=>!u.closest("template")&&!u.closest("noscript"));if(o.length!==1)return e;let a=o[0].outerHTML,n=e.indexOf(a);return n<0||e.indexOf(a,n+1)!==-1?e:e.slice(0,n)+e.slice(n+a.length)}async function ge(){let{forSave:e}=U({emitForSync:!1});return await Ie({html:It(e),name:`${Pe()}.html`})}async function _e(e){return await Ie({html:It(e),name:`${Pe()}.html`})}async function xt(){try{let{forSave:e}=U({emitForSync:!1}),o=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-blockeditor]");return o.length!==1?!1:(await navigator.clipboard.writeText(o[0].textContent),!0)}catch{return!1}}var Ct="clay.page.author",Ne="clay.page.author.owned.",Lt=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Dt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(Ne)&&t.push(n.slice(Ne.length))}let o=e.getItem(Ct);return(!o||!t.includes(o))&&(o=Lt(),e.setItem(Ne+o,"1"),e.setItem(Ct,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Lt();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Er=new Set([P.ready,P.blocked,P.error]),Ht=0,_t=()=>globalThis.performance?.now?.()??Date.now();function Nt({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Ht+=1,{installId:Ht,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:_t(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Me(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function M(e,t,o=null){if(Er.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=_t(),e.result=Object.freeze({phase:t,reason:o??null,installId:e.installId,at:e.at});try{e.onPhase?.(e.result)}catch(a){console.error("clayjs: page boot phase callback failed",a)}return e.result}function qe(e,t){let o=M(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Mt(e,t){return M(e,P.error,t)}function I(e,t){return typeof t=="function"&&e.disposers.push(t),t}function Ve(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(o){console.error("clayjs: page boot abort failed",o)}let t=e.disposers.splice(0).reverse();for(let o of t)try{o()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function ye(e,t){let o=globalThis.performance;if(typeof o?.mark=="function")try{o.mark(e,{detail:{installId:t.installId}})}catch{try{o.mark(e)}catch{return}}}function Rr(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function z(e,t,o){return t.cancelled?null:(Rr(e,o),qe(e,t.reason??"boot-incomplete"))}function Ft(e,t,o,a=null){return Promise.resolve(e).then(n=>n??{ok:!1,reason:o},n=>(console.error(`clayjs: page boot ${o}`,n),{ok:!1,reason:o})).then(n=>(n.ok&&a&&p(t)&&ye(a,t),n))}function jr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,u=k=>{n||(n=!0,o(k))};if(a.aborted)return u({cancelled:!0});a.addEventListener("abort",()=>u({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,E)=>{k.then(j=>{if(!n){if(!j.ok)return u({result:j,branch:k});g[E]=j,b-=1,b===0&&u({results:g})}})})})}async function qt(e,t,{activate:o=!0}={}){ye("document:boot",e),M(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return qe(e,a.reason);let n=a.source;M(e,P.joining);let u=await jr(e,[Ft(t.loadEditorAssets(e,n),e,"editor-assets-failed","document:assets-ready"),Ft(t.prepareAuthority(e,n),e,"authority-failed","document:authority-ready")]);if(u.cancelled||!p(e))return null;if(!u.results){try{e.controller.abort()}catch(D){console.error("clayjs: page boot abort failed",D)}return z(e,u.result,t)}let[g,b]=u.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return z(e,k,t);e.mounted=k.view??null,M(e,P.adopting);let E=await t.adoptSource(e,n,k);if(!p(e))return null;if(!E.ok)return z(e,E,t);if(!o){if(t.prepareInput){let D=await t.prepareInput(e,k);if(!p(e))return null;if(!D.ok)return z(e,D,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let j=await t.enableInput(e,k);return p(e)?j.ok?(ye("document:input-ready",e),M(e,P.ready)):z(e,j,t):null}function Vt(e){let t=e.deferred;if(e.deferred=null,!t||!p(e))return e.result??null;let o=e.steps?.openInput?.(e,t);return o?.ok?(ye("document:input-ready",e),M(e,P.ready)):qe(e,o?.reason??"input-refused")}var K="article[data-blockeditor]",Q='script[type="application/json"][merge="blockeditor"][clay~="live"]',Bt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},$e="Changes cannot be stored on this device. Download a copy to keep them.",Or=45e3,Pr="Couldn't save",Ir="Offline, will retry",zt="This page was changed outside the editor. Reload to see it.",xr="That change is too large to share, so it was not saved. Reload the page to keep editing.",Kt="Download your copy to add pictures and files.",Wt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:Kt}),Cr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Ut="This document is full, though your changes are still here to download. To edit again, reload this tab after another editor, or the owner in another browser, deletes content.",Lr="Some changes you made were replaced by a change made outside the editor.",Qt="The page was changed outside the editor; reload to see it.",Dr=150,Hr="Loading the editor\u2026",Je="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function We(e){return Gt(e)?e.v!==1||!Gt(e.y)||Object.hasOwn(e,"blocks")||Object.hasOwn(e,"deleted")?(console.warn("clayjs: page plugin: the page tag is not a strict Yjs page, leaving the page as saved HTML"),"unsupported-blockeditor-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-blockeditor-json")}var L=null,$t=null;function q(){return $t??=import("../c-YYIN4NAF.js").then(e=>L=e),$t}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Rt(o);a&&t.add(a)}),[...t]}function B(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function _r(e,t){B(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let o=t.ownerDocument.createElement("div");o.className="blockeditor-boot-status",o.setAttribute("clay","editor-ui"),o.setAttribute("sap-ignore",""),o.setAttribute("role","status"),st(o,["display:block","margin:0 0 1em","font:500 13px/1.6 system-ui, sans-serif","color:color-mix(in srgb, currentColor 55%, transparent)","user-select:none"]),o.textContent=Hr,t.prepend(o),e.statusNote=o},Dr)}var ve=0,S=null,me=null,Nr=8e3,Mr=8e3,qr="AI tool making isn't available on this page right now.";function Vr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let u=e();u||Date.now()-a>=t?o(u||null):setTimeout(n,50)};n()})}function Br(e,t=globalThis.location){let o=t?.hash?.slice(1);if(!o)return;let a;try{a=decodeURIComponent(o)}catch{return}let n=-1;e.state.doc.forEach((u,g)=>{n<0&&u.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Z(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Zt(){R(Pr),R(Ir)}function er(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,R(pe)}function Wr(e,t,o){Zt(),Z("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(pe,"warning")},Or))}function tr(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),R(pe,{now:t}),R(fe,{now:t}),R($e,{now:t})}function Ye(e,t,o,a="blocked"){er(e),Zt(),Z(a,t,o),G(a==="unavailable"?$e:fe,"error",{detail:o,actions:[{label:"Download copy",onClick:ge},{label:"Copy text",onClick:xt}]})}function Ur(e){er(e),R(fe),R($e),Z("saved",null,"")}function Gr(e,t,o=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let n=a.querySelectorAll(K);return o?n.length!==1&&!a.querySelector(Q):n.length!==1||a.querySelector(Q)?!1:n[0].getAttribute("data-rev")!==t}function $r(e){if(!e.store||!L)return e.savedRev;try{return L.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function rr(e){let t=e.view;t&&(t.setProps({editable:()=>!1}),t.setProps({dispatchTransaction:o=>t.updateState(t.state.apply(o))}));try{e.binding?.dispose()}catch(o){console.error("clayjs: page plugin binding failed to dispose",o)}e.savesHeld||(e.savesHeld=!0,Le(Qt))}async function Jr(e){if(!e.tabValue)return await ge();let{forSave:t}=U({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(K);if(a.length!==1)return await ge();let n=L.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=n.html,n.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",n.rev),await _e(`<!DOCTYPE html>
2
+ ${o.documentElement.outerHTML}`)}function Xe(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,rr(e);let a={label:"Download your copy",onClick:()=>Jr(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var Ue=e=>Xe(e,zt),Yr=e=>Xe(e,xr),Xr=(e,t)=>{Z("blocked",t,Ut),Xe(e,Ut,{reload:!1})};function he(e,t,o,a){t==="saved"?Ur(e):t==="retrying"?Wr(e,o,a):t==="blocked"&&Ye(e,o,a)}function x(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}var V=()=>window.clay?.undo?.pageHistory===!0;function or(e){if(V()){let u=window.clay.undo;return{undo:()=>u.undo(),redo:()=>u.redo(),get canUndo(){return!!u.canUndo},get canRedo(){return!!u.canRedo}}}let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let u=e.view;return!!(u&&!u.isDestroyed&&de(u.state))},n=()=>e.view?.focus?.();return{undo:()=>{t.undo()&&n()},redo:()=>{t.redo()&&n()},get canUndo(){return o.undoStack.length>0&&!a()},get canRedo(){return o.redoStack.length>0&&!a()}}}function Jt(e){if(V())return;let t=or(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function zr(e){let t=(a,n)=>{n!=="error"&&Ce(a),he(e,n,a.detail?.code??null,a.detail?.msg??"")};x(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return Ce(a);t(a,$({code:n}))}),x(e,"clay:save-offline",a=>{t(a,$({code:a.detail?.code??null,offline:!0}))}),x(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.msg??"")});let o=a=>{Kr(e,a)};x(e,"clay:save-conflict",o),x(e,"clay:save-error",o),x(e,"clay:save-saved",a=>{he(e,$({ok:!0}),null,a.detail?.msg??""),e.savedRev=$r(e),e.adoption?.saved(dt())}),x(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){Ue(e);return}let n=a.detail?.code??null;he(e,$({code:n}),n,a.detail?.message??"")})}async function ar(){if(C)return null;let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let t=await e.text(),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelector(K);if(!a)return null;let n=o.querySelector(Q),u=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(u&&!/^W\//.test(u)?u:null);return{article:a,value:n?ie(n.textContent):null,etag:g}}async function Kr(e,t){let o=e.staged;if(!o||e.staleRetry||e.replaced)return;let a=t?.detail?.code??null;if(!(a!=="blockeditor-lineage-stale"&&a!=="conflict")&&!(!e.store||!o.isPending())){e.staleRetry=!0;try{let n=await ar();if(!n||!p(e))return;let u=await q();if(!p(e))return;let g=n.value??u.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&lt(b),e.store.rebase(g,{source:"state"}),await ft()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function ze(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&L)try{let n=L.renderFromTags([JSON.stringify(e.store.value)]);o=n.html,a=n.rev}catch(n){console.error("clayjs: page plugin could not render the saved article",n)}t.innerHTML=o,a==null?t.removeAttribute("data-rev"):t.setAttribute("data-rev",a)}function Ke(e){for(let[t,o]of e.listeners)document.removeEventListener(t,o);e.listeners=[];try{e.adoption?.dispose()}catch(t){console.error("clayjs: page plugin adoption failed to dispose",t)}e.adoption=null;try{e.recover?.destroy()}catch(t){console.error("clayjs: page plugin recover list failed to dispose",t)}if(e.recover=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&Tt.delete(e.view),e.article){let t=e.article.querySelector(".blockeditor-shell");t&&t.remove()}try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}try{e.binding?.ydoc?.destroy()}catch(t){console.error("clayjs: page plugin document failed to destroy",t)}try{e.staged?.close()}catch(t){console.error("clayjs: page plugin staged store failed to close",t)}if(e.staged=null,e.pageStore){try{mt("blockeditor",e.pageStore)}catch(t){console.error("clayjs: page plugin store failed to close",t)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function Yt(e){let t=e.view;if(t&&!t.isDestroyed&&typeof t.destroy=="function")try{t.destroy()}catch(o){console.error("clayjs: page plugin view failed to destroy",o)}e.titleObserver?.dispose(),e.titleObserver=null,B(e),Ke(e),ze(e)}function Ge(){ve+=1;let e=S;if(S=null,le("Blockeditor-Write",null),He(null),!!e){Ve(e),tr(e),R(zt);for(let t of e.notices?.values()??[])R(t);if(e.savesHeld&&(e.savesHeld=!1,ce({replay:!1,reason:Qt})),e.titleObserver?.dispose(),e.titleObserver=null,B(e),e.sessionHeld&&ce({replay:!1,reason:Je}),e.autosaveSuspended&&se(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}Ke(e),ze(e)}}var Be=null;function Qe(){return Be||(Be=Promise.all([import("../c-GY36NO7C.js"),import("../c-EHJWIGWN.js"),import("../c-FUN6AKFE.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Be}async function Qr(e,t){let o=globalThis.window?.clay?.recovery??null;if(C||!o||!t)return null;let a=await Qe();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:o,base:a.replay.journalBase(t.value)})}catch(n){return console.warn("clayjs: page journal could not open",n),null}}async function Xt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Qe();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return to(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Zr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Zr(e,t){if(e.recoveryPanel)return e.recoveryPanel;let o=e.view,a=o?.dom.closest(".blockeditor-shell")??e.article;if(!a)return null;let n=t.createRecoveryReview({mount:a,getView:()=>e.view&&!e.view.isDestroyed?e.view:null,getJournal:()=>e.binding?.journal??null,isCurrent:()=>p(e)&&e.inputOpen&&!!e.view&&!e.view.isDestroyed}),u=n.watch(o?.dom??null);return I(e,()=>{u(),n.destroy()}),e.recoveryPanel=n,n}function eo(e){He(async({capture:t,state:o,article:a,etag:n})=>{let u=e.binding?.journal;if(!u)return;let g=await Qe(),b=g?await u.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-Q2CB57UG.js"),E=await g.proof.checkpointAccepted({channel:u.channel,records:u.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});E.ok&&(u.retire(E.retired),e.pageStatus?.checkpoint(),await u.rebase?.(g.replay.journalBase(E.proof.state)))})}function to(e,t){let o=e.binding?.journal;return!o||e.pageStatus?e.pageStatus??null:(e.pageStatus=t.replay.watchJournal({journal:o,store:e.store,reduce:Pt,onState:a=>Z(a),onUnavailable:a=>Ye(e,a,"","unavailable")}),I(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function nr(e,t){if(We(t))return!1;if(De(e.authoritative)===De(t))return!0;try{return e.rebase(t,{source:"state"})}catch(o){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",o),!1}}function ro(e,t){let o=null,a=null,n=null,u=null,g=null,b=null,k=null,E=[],j=null,D=null,J=null,ee=null,te=null,ir=new Promise(r=>{u=r});e.editorReadyResolve=u,I(e,()=>u?.()),I(e,()=>B(e));let re=null,ke=null;e.loadFormatGate=()=>re?Promise.resolve(re):(ke??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-GFASNR55.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return re=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let d=vt();return d?d.switchScope(c,{...f,covered:!!f?.covered||!wt()}):{status:"refused",code:"lane-unavailable"}}}}),re}).catch(r=>{throw ke=null,r}),ke);let Ze='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ur=()=>J||(J=(async()=>{if(!document.querySelector(Ze)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","blockeditor.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Ze))try{j=window.clay.live("blockeditor.tools"),await j.ready}catch(c){console.warn("clayjs: page plugin could not open the tool store",c)}if(!p(e))return null;let[{createToolHost:r},{tablesFromDoc:l}]=await Promise.all([import("../c-FQAQRXGK.js"),import("../c-YNIEIPBS.js")]);if(!p(e))return null;let s=r({store:j,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:d})=>({id:c,cols:f,rows:d}))});return e.toolHost=s,s})().catch(r=>{throw J=null,r}),J),oe='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',et=["assignees","dates"],W=null,Se={assignees:!0,dates:!0},ae=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function dr(){let r=document.querySelector(oe);if(!r)return ae(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return ae(l)}function ne(r){Se=ae(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of et)Se[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Te=()=>W||(W=(async()=>{if(!document.querySelector(oe)){let l=document.createElement("script");l.setAttribute("type","application/json"),l.setAttribute("merge","blockeditor.settings"),l.setAttribute("clay","live"),l.textContent="{}",document.head.appendChild(l)}let r=null;try{r=window.clay.live("blockeditor.settings"),await r.ready}catch(l){return console.warn("clayjs: page plugin could not open the settings store",l),W=null,null}return p(e)?(ne(r.data),r.on("change",()=>ne(r.data)),r):null})(),W);e.settings={read:()=>({...Se}),set:async(r,l)=>{if(!et.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Te();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...ae(s.data),[r]:l!==!1};s.set([r],c[r]),ne(c)}};let Y=new Map,fr=r=>{if(Y.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;Y.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=Y.get(r);s&&(Y.delete(r),R(s))},()=>{})}}]})};e.notices=Y;let Ae=async({target:r=null,remove:l=null}={})=>{if(ee&&n&&l&&ee.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?ee.heldSlashRange(n.state):null,c=await(D??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),d=window.clay?.aiEdit||await Vr(()=>window.clay?.aiEdit,Mr);if(p(e)){if(!d?.openTarget){xe(qr,"warning");return}d.openTarget(f)}},Ee=()=>Ot(o);function pr(r){let l=document.querySelectorAll(K),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(K):l,f=s?s.querySelectorAll(Q):document.querySelectorAll(Q);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let d=c.length===1&&f.length===0;if(c.length!==1||!d&&f.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-blockeditor] and one merge="blockeditor" live tag; found ${c.length} article(s) and ${f.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-blockeditor"};let w=l[0];if(!w)return{ok:!1,reason:"no-blockeditor"};let m=c[0],v=f[0],i=null;if(!d){try{i=ie(v?.textContent)}catch{i=null}let A=We(i);if(A)return{ok:!1,reason:A}}let y={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:d,seedValue:null};return y.ready=(async()=>{let A=await q();if(!p(r))return{ok:!1,cancelled:!0};if(d){try{let h=await Re(),O=h?.extensions?.includes("blockeditor-recovery-v1")&&h.document?.blockeditorState?.href,H=r.context?.represented?r.context.represented.etag:Oe()??je();if(O&&H){let{readPageState:F}=await import("../c-EHJWIGWN.js"),_=await F({href:O,etag:H});if(!p(r))return{ok:!1,cancelled:!0};if(_.ok){if(_.etag!==H)return{ok:!1,reason:"etag-mismatch"};i=ie(_.tag),y.persisted=!0}else if(_.code!=="no-blockeditor-state")return{ok:!1,reason:_.code}}else if(O){let F=await ar();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(y.article))return{ok:!1,reason:"stale-document"};i=F.value,y.persisted=i!==null}i=y.seedValue=i??A.seedPageFromArticle(y.article.cloneNode(!0))}catch(h){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",h),{ok:!1,reason:"invalid-blockeditor-source"}}let T=We(i);if(T)return{ok:!1,reason:T};y.tags=[i]}try{y.blocks=A.blocksFromYValue(i)}catch(T){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",T),{ok:!1,reason:"invalid-blockeditor-json"}}return{ok:!0}})(),_r(r,w),{ok:!0,source:y}}async function gr(r,l){let s=q();s.catch(()=>null);let c=await l.ready;if(!c.ok)return c;if(!p(r))return{ok:!1,cancelled:!0};let f=await s,d=[...new Set(Object.values(l.blocks).map(m=>Et(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>At[m].load(),install:async(m,v)=>{if(n||await ir,!p(r)||!n)return null;let i=()=>V()?window.clay.undo.undo():a.undo(),y=()=>V()?window.clay.undo.redo():a.redo(),A={view:n,upload:C?Wt:t.upload,board:a.board,undo:i,redo:y,revise:Ee()?T=>{Ae({target:{toolId:T}})}:null};return m==="tool"&&(A.toolHost=await ur(),!p(r))?null:w.installPageFeature(A,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),fr(v)}});for(let m of d)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-UF3CIA6V.js"),te=w.setEditorActive,ee={holdSlashRange:f.holdSlashRange,heldSlashRange:f.heldSlashRange}}catch(m){return console.error("clayjs: page plugin could not load the editor",m),{ok:!1,reason:"editor-assets-failed"}}return p(r)?{ok:!0,editor:w.createPageEditor,refreshView:w.refreshMountedView,featureIds:d,code:f}:{ok:!1,cancelled:!0}}async function yr(r,l){let s=q();try{o=C?{spec:null,extensions:["blockeditor"],document:null}:await Re()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Ye(r,Bt.code,Bt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),le("Blockeditor-Write","v1");let c=null,f=null;if(l.seeded){if(c=await l.ready,!c.ok)return c;if(f=await s,!p(r))return{ok:!1,cancelled:!0}}let d,w=!0;try{if(l.seeded){let h=ht("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:Oe()??je()},persisted:l.persisted});r.staged=h,d=h.handle}else{let h=N("blockeditor")===null;w=h,d=window.clay.live("blockeditor"),h&&(r.pageStore=N("blockeditor"))}}catch(h){return console.warn("clayjs: page plugin could not open the page store",h),{ok:!1,reason:"missing-blockeditor-store"}}try{await d.ready}catch(h){return console.warn("clayjs: page plugin could not join the page room",h),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=N("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!nr(N("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=N("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,y=null,A=async h=>{let O=await h();return i=O?.ok===!1,y?.changed(),O};g=Dt();let T=await Qr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:h=>{r.tabValue=f.yValueOf(a.ydoc),h==="lineage"?(ue()?.abandon?.("blockeditor"),Ue(r)):h==="blockeditor-full"||h==="compaction-failed"?Xr(r,h):Yr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:kt,requestExitCheckpoint:h=>bt({name:v.name,...h}),journal:T,exitClosed:()=>!ut(),registerUnsavedState:h=>(y=ct({id:h.id,isPending:()=>i||h.isPending(),flush:O=>A(()=>h.flush(O))}),y)}),r.binding=a,T&&eo(r),r.flush=h=>A(()=>a.flush(h)),zr(r),{ok:!0,store:v,handle:d}):{ok:!1,cancelled:!0}}function hr(r,l){import("../c-67TBU56I.js").then(async s=>{if(r.view!==l)return;let c=await s.installPageAwareness({binding:r.binding,view:l});if(c){if(r.view!==l||l.isDestroyed){c.dispose();return}r.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function mr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=jt(c,"editor")}catch(i){return console.error("clayjs: page plugin could not claim the article",i),{ok:!1,reason:"article-owned"}}r.source=l,r.article=c,r.bootHtml=l.article.innerHTML,r.bootRev=l.article.getAttribute("data-rev"),r.savedRev=r.bootRev,x(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&Ue(r)}),E=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),d=null;try{d=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:()=>V()?window.clay.undo.undo():a.undo(),redo:()=>V()?window.clay.undo.redo():a.redo(),board:a.board,editable:!1,features:b,upload:C?Wt:t.upload,onAiTool:Ee()?(i,y)=>{Ae({remove:y})}:null,mediaNote:C?Kt:null,reviseTool:Ee()?i=>{Ae({target:{toolId:i}})}:null,formatGate:r.loadFormatGate})}catch(i){return console.error("clayjs: page plugin could not mount the editor",i),f.replaceChildren(),r.releaseArticle?.(),r.releaseArticle=null,r.article=null,{ok:!1,reason:"mount-failed"}}n=d,r.view=d,D=import("../c-UEKJWXCB.js").then(({createPageAi:i})=>!p(r)||r.view!==d?null:(r.pageAi=i({getView:()=>r.view,store:()=>j,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ne(dr()),document.querySelector(oe)?Te().catch(()=>null):x(r,"clay:sync-applied",()=>{!W&&document.querySelector(oe)&&Te().catch(()=>null)});let w=d.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),X.pause();try{if(!s.featureIds.length)for(let i of E)i.remove();w&&c.appendChild(w)}finally{X.resume()}s.refreshView?.(d),a.attach(d);let m=a.bridge?.um;if(m){let i=L.createHistoryBridge({um:m,undo:()=>a.undo(),redo:()=>a.redo(),article:c,focus:()=>r.view?.focus?.()});I(r,i.dispose)}if(m){let i=()=>Jt(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),I(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=de(d.state);return I(r,St(d,{update:i=>{let y=de(i.state);y!==v&&(v=y,V()&&(y?r.releaseHold=window.clay.undo.hold():(r.releaseHold?.(),r.releaseHold=null)),Jt(r))}})),I(r,()=>{r.releaseHold?.(),r.releaseHold=null}),hr(r,d),u(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Br(d),r.recover=s.code.createRecoverList({binding:a,mount:d.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(d,i),onStale:()=>xe("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(d),{ok:!0,view:d,featureIds:s.featureIds}}async function wr(r,l){try{let s=await q(),{HyperMorph:c}=await pt(),f=s.blocksFromYValue(r.store.authoritative),d=s.readBack(f,document),w=s.mergePageModels(l.baseItems,d,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(d)}catch{return!1}}async function vr(r,l){let s=await q();return await wr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,d=null,w=!1,m=v=>{w||(w=!0,d&&clearTimeout(d),d=null,f?.(),f=null,c(v))};I(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),d=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),m({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function br(r,l,s){let c=await q(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),d=f.kind==="adopt",w=async()=>{let y=await gt();if(!y||!p(r))return;if(y.status.writer===null){let T=r.store.value.y,h=Object.keys(T),O=a.ydoc.clientID.toString(36),H=r.store.room?.compaction?.v===1?h.find(_=>Cr.test(_))??`u${O}-claim-0`:h.length?h[0]:`claim-${O}`,F=Object.hasOwn(T,H)?T[H]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",H],F),y.release("blockeditor")}let A;await Promise.race([yt(),new Promise(T=>{A=setTimeout(T,Nr)})]),clearTimeout(A)},m=d?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let y=ue();return!y||y.status.writer===null?!0:y.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>U({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:y=>ue()?.adopted?.("blockeditor",y,r.store.mark),notice:y=>{y.copy&&G(Lr,"warning",{actions:[{label:"Download your copy",onClick:()=>_e(y.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await vr(r,f)),!i.ok&&p(r)?Yt(r):p(r)&&await Xt(r),i):(await Xt(r),{ok:!0,outcome:"unchanged"})}async function tt(r,l){if(r.replaced)return{ok:!1,reason:"blockeditor-replaced"};if(await k,!p(r))return{ok:!1,cancelled:!0};let s=l.view.dom.closest(".blockeditor-shell");if(!Me(r,l)||!s||!s.isConnected||l.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(l.featureIds??[]),f=Fr(l.view.state.doc).filter(d=>!c.has(d));return f.length&&(await Promise.allSettled(f.map(d=>b.ensure(d))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function rt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{X.pause();try{for(let f of E)f.remove();s&&(s.style.visibility="")}finally{X.resume()}};return r.replaced?(c(),rr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Me(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,te?.(l.view,!0),r.inputOpen=!0,B(r),{ok:!0})}function kr(r){return r.inputOpen?(te?.(r.view,!1,{quiesce:!0}),!0):!1}function Sr(r){return r.inputOpen?(te?.(r.view,!0),!0):!1}async function Tr(r,l){let s=await tt(r,l);return s.ok?rt(r,l):s}let ot={readSource:pr,loadEditorAssets:gr,prepareAuthority:yr,mountAndAttach:mr,adoptSource:br,prepareInput:tt,openInput:rt,closeInput:kr,resumeInput:Sr,enableInput:Tr,release:r=>{r.view||Yt(r)}};return e.steps=ot,ot}async function oo(e,t={},{activate:o=!0}={}){return qt(e,ro(e,t),{activate:o})}function lr(e={},{activate:t=!0,context:o=null}={}){Ge(),me=null;let a=++ve,n={...Nt({gen:a,isCurrent:()=>a===ve&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&B(n),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,pageAi:null,bootHtml:"",bootRev:null,savedRev:null,staged:null,pageStore:null,releaseArticle:null,replaced:!1,savesHeld:!1,flush:null,loadFormatGate:null,listeners:[],retryTimer:null,retryShown:!1,statusTimer:null,statusNote:null,notices:null,editorReadyResolve:null,context:o,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};S=n;let u=oo(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),me=Mt(n,"boot-failed"),S===n&&Ge(),me));return{inst:n,boot:u}}function sr(e={}){return lr(e).boot}function ao(e){if(S===e&&(S=null,ve+=1),le("Blockeditor-Write",null),Ve(e),tr(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,B(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.view=null,Ke(e),ze(e)}function we(e){e.sessionHeld&&(e.sessionHeld=!1,ce({replay:!1,reason:Je}))}function cr(e,{held:t=!0}={}){return{enable(){t&&(we(e),Vt(e))},quiesce(){if(e.view?.composing)throw Object.assign(new Error("clayjs: a composition is still in progress"),{code:"composition"});e.steps?.closeInput?.(e),e.autosaveSuspended||(e.autosaveSuspended=!0,it())},resume(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),e.steps?.resumeInput?.(e)},dispose(){we(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,se()),ao(e)}}}function no(e=null,t={}){Le(Je);let{inst:o,boot:a}=lr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=cr(o,{held:!0});be.ready=a.then(()=>be.status);let u=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return u.catch(()=>{we(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:u,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?cr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:no(t,e)}}}var be={ready:null,install:sr,get status(){return S?.result??me},flush(e={}){let t=S;return!t||!t.flush?Promise.resolve({ok:!1,code:"disposed"}):t.flush(e)},dispose:Ge,get view(){return S?.view??null},get ai(){return S?.pageAi??null},get history(){return S?or(S):null},get settings(){return S?.settings??null}};nt(e=>{let t=S?.binding;if(!t?.filePending())return;let o=L?.acceptedPageState(e);o&&t.acceptFile(o)});C&&(document.addEventListener("clay:drafts-blockeditor-external",e=>{let{live:t,adopted:o}=e.detail||{};if(!t||typeof t!="object")return;let a=!0;for(let[n,u]of Object.entries(t)){let g=N(n);if(g)try{(n==="blockeditor"?nr(g,u):g.rebase(u,{source:"state"}))===!1&&(a=!1)}catch(b){console.warn("clayjs: another tab's page could not join this one",b),a=!1}}a&&S?.binding?.provider?.settle?.(),a&&o?.()}),document.dispatchEvent(new CustomEvent("clay:drafts-blockeditor-listening")));be.ready=at()?sr():null;var _o=be;export{Ut as PAGE_FULL_MESSAGE,Nr as WRITER_WAIT_MS,ro as createSteps,_o as default,Fo as modeParticipant,be as page,Fo as pageParticipant,no as preparePageSession};
@@ -1 +1 @@
1
- import{a as ie}from"../c-L4WQSC27.js";import{b as be,c as me,d as ve,e as le,g as Se}from"../c-5IIEOPIV.js";import"../c-EQ5NBOGA.js";import"../c-C7SUMNMI.js";import{a as ge}from"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var _=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let u=new URL(e||window.location.href,r);return u.protocol==="http:"||u.protocol==="https:"?u.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:_(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:u=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!_(r),s=ze(u);if(g===null){let n={ready:null,get represented(){return s},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=s.seq??0,L=0,P=0,z=f,x=v,C=0,T=!1,E=null,A=null,t=null,a=!1,h=null,d=null,c=null,b=null,k=[],O=n=>!T&&n===C;function N(n,l={}){T||typeof x!="function"||x({state:n,...l})}function $(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,c=null}function se(n,l){if(b){b.update(n);return}k.push(n),!c&&(c=Promise.all([import("../c-SMLAJASY.js"),import("../c-WOWGGNCJ.js")]).then(([i,w])=>{if(!O(l))return null;h=i.presence,b=w.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let G of k.splice(0))b.update(G);return b}).catch(()=>(c=null,null)))}function K(){if($(),!E)return;let n=E;E=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function F(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(T)return!1;let l={bytes:n.bytes,etag:_(n.etag),seq:Y(n.seq)};if(typeof l.bytes!="string"||l.bytes==="")return N("recoverable",{reason:"invalid-bytes",seq:l.seq}),!1;if(l.bytes===s.bytes&&l.etag===s.etag&&l.seq===s.seq)return!0;let i=!1;try{i=z(Object.freeze(l))===!0}catch{i=!1}return i?(s=Object.freeze(l),N("applied",{seq:s.seq,etag:s.etag}),!0):(N("recoverable",{reason:"refused",seq:l.seq,etag:l.etag}),!1)}function H(n,l){if(l==="startup")return null;let i=Math.max(n.seq??0,q);return i>0?i:null}function ae(n,l){t=n,a=!0,N("recoverable",{reason:l,seq:n.seq??null})}function U(n){T||(t={kind:n.kind,seq:Y(n.seq)},a=!1,B())}function B(){if(T||A||a||!t)return;let n=C,l=t;t=null;let i=new AbortController;A={controller:i};let w=L,G=q,D=j=>{if(A&&A.controller===i&&(A=null),!(!O(n)||i.signal.aborted)){if(j==null){ae(l,"repair-failed");return}if(L!==w||q!==G){if(P+=1,P<=Re){t=t??{kind:l.kind,seq:H(l,l.kind)},B();return}V(j.text,{kind:l.kind,seq:H(l,l.kind)},j.etag),B();return}V(j.text,l,j.etag),B()}};fetch(g,{cache:"no-store",signal:i.signal}).then(j=>j.ok?j.text().then(W=>({text:W,etag:_(j.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function V(n,l,i){let G=Me(n)??(/^W\//.test(i??"")?null:_(i))??(n===s.bytes?s.etag:null),D=l.kind==="startup"?s.seq:l.seq??s.seq;re({bytes:n,etag:G,seq:D})&&(S=!1,P=0,a=!1,N("current",{seq:s.seq,etag:s.etag}))}function o(n,l){let i={bytes:s.bytes,etag:n??s.etag,seq:l??s.seq};i.etag===s.etag&&i.seq===s.seq||(s=Object.freeze(i),N("current",{seq:s.seq,etag:s.etag}))}function p(n,l,i){let w=_(l);if(!(i!==null&&s.seq!==null&&i<=s.seq)){if(!S&&w!==null&&s.etag!==null){if(w!==s.etag){U({kind:"unmatched",seq:i});return}S=!0}if(n===s.bytes){o(w,i);return}re({bytes:n,etag:w,seq:i})&&(S=!0)}}function y(n,l){let i=n.data;if(i&&i.kind==="external-change"){typeof i.html=="string"?p(i.html,i.etag,l):U({kind:"notice",seq:l});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&U({kind:"notice",seq:l})}function R(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{N("recoverable",{reason:"bad-json"});return}if(!i||typeof i!="object"||Array.isArray(i)){N("recoverable",{reason:"bad-frame"});return}let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.type==="notification"){y(i,w);return}if(i.error){N("recoverable",{reason:"server-error",seq:w});return}if(typeof i.html!="string"){_(i.etag)?U({kind:"notice",seq:w}):N("recoverable",{reason:"bad-frame",seq:w});return}p(i.html,i.etag,w)}function Q(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{return}if(!i||typeof i!="object")return;let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.resync===!0){U({kind:"resync",seq:w});return}i.startup===!0&&U({kind:"startup",seq:null})}function M(n){if(O(n)){if(N("open",{seq:s.seq,etag:s.etag}),a){a=!1,B();return}s.bytes===null&&!m&&U({kind:"startup",seq:null})}}let I={ready:null,get represented(){return s},adopt({onSnapshot:n,onStatus:l}={}){return typeof n=="function"&&(z=n),typeof l=="function"&&(x=l),I},start(){T=!1;let n=++C;return K(),F(),t=null,a=!1,L=0,P=0,q=s.seq??0,I.ready=Se().then(l=>{if(!O(n))return I;let i=Ce(),w=Ie(),G=l.profile.streamPath(g,we,i,w),D=new be(new URL(G,window.location.origin).href,{shared:l.sharedSync,sharedData:l.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return E=D,D.onopen=()=>M(n),D.onerror=()=>{O(n)&&N("reconnecting")},D.onmessage=j=>R(j.data,n),D.addEventListener("cursor",j=>Q(j.data,n)),D.addEventListener("presence",j=>{if(!O(n))return;let W;try{W=JSON.parse(j.data)}catch{return}W&&typeof W=="object"&&!Array.isArray(W)&&se(W,n)}),I}),I},stop(){T||(T=!0,C++,K(),F(),t=null,a=!1)}};return I}var Ue="article[data-blockeditor]",Ve='section[data-type="tool"][data-id]',Ne=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Le(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),u={};try{u=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:u.rev??null,artifact:u.artifact??null,state:u.state??{},signature:JSON.stringify(u.artifact??null),invalid:!1}}function ue(e){let r=new Map,u=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!u.has(v)){if(r.has(v)){r.delete(v),u.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="blockeditor.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,u=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(u.has(m))continue;if(r.has(m)){r.delete(m),u.add(m);continue}r.set(m,g)}Ne.has(g.tagName)&&f(g)}};return f(e),r}function xe(e){let r=new Set,u=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),Ne.has(v.tagName)&&u(v)}};return u(e),r}function X(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let u=(r.defaultView??globalThis).DOMParser;if(typeof u!="function")return{ok:!1,reason:"parser"};let f=new u().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let s=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:s,toolState:s.size?ce(f):{}}}var fe=(e,r)=>{let u=ne(e),f=ne(r);return!u.invalid&&!f.invalid&&u.rev===f.rev&&u.signature===f.signature};function Te(e,{article:r,readerOpen:u=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let a=t.getAttribute("data-id");u.has(a)&&t.hasAttribute("open")!==u.get(a)&&t.toggleAttribute("open",u.get(a))}let g=Je(r),m=new Set,s=!1,S=t=>(s=!0,t.cloneNode(!0)),q=(t,a)=>{let h=xe(t);for(let d of a.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let c=xe(d);for(let b of h)if(c.has(b))return d}return null},L=(t,a)=>{for(let h of a.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,a,h=null)=>{for(let{name:d,value:c}of[...a.attributes])d===h||t.getAttribute(d)===c||(t.setAttribute(d,c),s=!0);for(let{name:d}of[...t.attributes])d===h||a.hasAttribute(d)||(t.removeAttribute(d),s=!0)},z=(t,a,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),c=d(a.childNodes[h])?a.childNodes[h]:[...a.childNodes].find(d);return c?(m.add(c),c):t.cloneNode(!0)},x=(t,a)=>{let h=[],d=[...a.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(z(O,t,k));continue}let N=A(O,t);m.add(N),h.push(N)}let c=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!c.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),s=!0}for(let k of[...t.childNodes])c.has(k)||(k.remove(),s=!0)},C=t=>{s=!0;let a=t.cloneNode(!1);return x(a,t),a},T=(t,a)=>{s=!0;let h=t.getAttribute("data-id"),d=u.has(h)?u.get(h):a.hasAttribute("open");P(t,a,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),x(t,a)},E=(t,a)=>{s=!0,P(t,a),x(t,a)};function A(t,a){let h=t.getAttribute("data-id");if(h){let c=g.get(h);return!c||m.has(c)||c===a||c.contains(a)?S(t):(m.add(c),ke(c)&&ke(t)?v(c,t)?c:S(t):c.tagName!==t.tagName?S(t):c.isEqualNode(t)?c:t.tagName==="DETAILS"?(T(c,t),c):t.tagName==="LI"?(E(c,t),c):qe.has(t.tagName)?(P(c,t),x(c,t),c):S(t))}if(qe.has(t.tagName)){let c=q(t,a);return c?(m.add(c),P(c,t),x(c,t),c):C(t)}let d=L(t,a);return d?(m.add(d),d.isEqualNode(t)?d:(s=!0,S(t))):S(t)}if(x(r,e.article),f){f.clear();for(let[t,a]of e.savedOpen)f.set(t,a)}for(let t of[...u.keys()])e.savedOpen.has(t)||u.delete(t);return{changed:s}}var je="article[data-blockeditor]",Be='section[data-type="tool"][data-id]',Ee='script[type="application/json"][merge="blockeditor"]',de=["live-at","live-by"];var Fe=(e,r)=>import("../c-2OJMOUPC.js").then(u=>u.followTocLink(e,r)),He=e=>{import("../c-CL5LSATX.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),Ge=(e,r)=>{let u=e.source.querySelector(Ee),f=r.querySelector(Ee);if(!u)return f?(f.remove(),!0):!1;if(f){let g=de.map(s=>u.getAttribute(s));return f.textContent===u.textContent&&de.every((s,S)=>f.getAttribute(s)===g[S])?!1:(f.textContent!==u.textContent&&(f.textContent=u.textContent),de.forEach((s,S)=>{g[S]===null?f.removeAttribute(s):f.setAttribute(s,g[S])}),!0)}let v=r.querySelector(je);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(u,!0),v),!0):!1};function We({doc:e,article:r,represented:u=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:s=()=>{}}){let S=new Map,q=new Map,L=new Map,P={data:{}},z=[],x=null,C=null,T=0,E=!1,A=m,t=null,a=pe(u),h=null,d=s,c=!1,b=(o,p)=>{let y=e.defaultView??globalThis;e.dispatchEvent(new y.CustomEvent(o,{detail:p}))},k=()=>{for(let o of L.values())try{o.instance?.dispose?.()}catch{}L.clear()},O=()=>x?Promise.resolve(x):(C||(C=import("../c-FQAQRXGK.js").then(({createToolHost:o})=>E?null:(x=o({store:P,mode:"view"}),x)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),N=o=>{for(let[p,y]of L){let R=o.get(p);if(!R||R.invalid||R.rev!==y.rev||R.signature!==y.signature){try{y.instance?.dispose?.()}catch{}L.delete(p)}}},$=(o,p)=>{let y=[];for(let[Q,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):y.push([Q,M]);if(!y.length)return;P.data=p??{};let R=++T;O().then(Q=>{if(!(E||!Q||R!==T))for(let[M,I]of y){if(L.has(M))continue;let n=[...r.querySelectorAll(Be)].find(l=>l.getAttribute("data-id")===M);if(n)try{let l=Q.mount(n,{id:M,artifact:I.artifact,rev:I.rev,seed:I.state??{}});L.set(M,{rev:I.rev,signature:I.signature,instance:l})}catch(l){console.warn(`clayjs: tool ${M} could not mount`,l)}}})},se=(o,p)=>{let y=L.get(o.getAttribute("data-id"));if(!y)return fe(o,p);let R=Le(p);return!R.invalid&&R.rev===y.rev&&R.signature===y.signature},K=o=>{o?.state==="current"&&(a=pe({bytes:a.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},F=o=>{Te(o,{article:r,readerOpen:S,savedOpen:q,keepTool:se}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),Ge(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let p=a.bytes?X(a.bytes,e):null;if(p?.ok)try{F(p)}catch(y){console.warn("clayjs: the reader could not restore the previous file",y)}b("clay:reader-status",{state:"blocked"})};function H(o){if(E||c)return!1;let p=X(o.bytes,e);if(!p.ok||r.querySelector(".blockeditor-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;N(p.tools);try{F(p)}catch(y){return re(y),!1}return a=pe(o),a.etag&&He(a.etag),$(p.tools,p.toolState),b("clay:reader-status",{state:"applied",etag:a.etag,seq:a.seq}),!0}let ae=()=>a.bytes===null?!1:(V.stop(),!0),U=o=>{let p=o.target;if(p.tagName!=="DETAILS"||!r.contains(p))return;let y=p.getAttribute("data-id");y&&(p.open===q.get(y)?S.delete(y):S.set(y,p.open))};e.addEventListener("toggle",U,!0),z.push(["toggle",U,!0]);let B=o=>{let p=o.target.closest?.('a[href^="#blockeditor-block-"], a[href^="#"]');!p||!r.contains(p)||!p.closest('nav[aria-label="Table of contents"]')||(o.preventDefault(),Fe(r,p.getAttribute("href")))};if(e.addEventListener("click",B),z.push(["click",B]),u){let o=X(u.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);F(o),$(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));$(ue(r),ce(e))}let V={ready:null,get represented(){return a},yieldArticle(){return E||c?!1:(T++,k(),c=!0,d(),!0)},reclaimArticle(){if(E||!c)return!1;if(d=ie(r,"reader"),c=!1,a.bytes!==null){let o=X(a.bytes,e);o.ok&&(F(o),$(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):E?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-DAUQ6JZ3.js").then(({readerHandoff:p})=>p({stream:A,options:o,apply:H,retire:ae,yieldArticle:V.yieldArticle,reclaimArticle:V.reclaimArticle})),h)},stop(){if(E)return t;E=!0,h=null,T++,A?.stop(),A=null;for(let[o,p,y]of z)e.removeEventListener(o,p,y);z.length=0,k();try{x?.dispose()}catch{}return x=null,c||d(),c=!1,d=()=>!1,t=Object.freeze({...a}),t}};if(V.ready=Promise.resolve(V),f){let o=p=>{let y=p.detail;typeof y?.html=="string"&&(y.source&&y.source!=="disk"&&y.lane!=="saved"||H({bytes:y.html,etag:y.etag??null,seq:y.seq??null}))};f.addEventListener("clay:sync-applied",o),z.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:H,onStatus:K}):(A=Ae({documentURL:v,servedEtag:g,represented:a.bytes?a:null,onSnapshot:H,onStatus:K}),A.start());return V}function oe({represented:e=null,documentURL:r,servedEtag:u=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(je);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-blockeditor]");let s=m[0];if(s.querySelector(".blockeditor-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=X(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(s,"reader");try{return We({doc:g,article:s,represented:e,feed:v,documentURL:r,servedEtag:u,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-blockeditor]").length===1;function _e(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable"||r?.state==="reconnecting")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function $e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Xe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Ke({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,_e(),he=e?Xe(r):Qe(r),Z=e?he:Promise.resolve(null),Z)}function ct(e={}){return Ye(),Ke(e)}function ft(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ye(){ye=!0,Oe||te?.(null),$e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ft as prepareHandoff,Z as ready,ct as restart,Ke as start,Ye as stop};
1
+ import{a as ie}from"../c-L4WQSC27.js";import{b as be,c as me,d as ve,e as le,g as Se}from"../c-ARO6CPMA.js";import"../c-EQ5NBOGA.js";import"../c-C7SUMNMI.js";import{a as ge}from"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var _=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let u=new URL(e||window.location.href,r);return u.protocol==="http:"||u.protocol==="https:"?u.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:_(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:u=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!_(r),s=ze(u);if(g===null){let n={ready:null,get represented(){return s},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=s.seq??0,L=0,P=0,z=f,x=v,C=0,T=!1,E=null,A=null,t=null,a=!1,h=null,d=null,c=null,b=null,k=[],O=n=>!T&&n===C;function N(n,l={}){T||typeof x!="function"||x({state:n,...l})}function $(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,c=null}function se(n,l){if(b){b.update(n);return}k.push(n),!c&&(c=Promise.all([import("../c-SMLAJASY.js"),import("../c-WOWGGNCJ.js")]).then(([i,w])=>{if(!O(l))return null;h=i.presence,b=w.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let G of k.splice(0))b.update(G);return b}).catch(()=>(c=null,null)))}function K(){if($(),!E)return;let n=E;E=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function F(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(T)return!1;let l={bytes:n.bytes,etag:_(n.etag),seq:Y(n.seq)};if(typeof l.bytes!="string"||l.bytes==="")return N("recoverable",{reason:"invalid-bytes",seq:l.seq}),!1;if(l.bytes===s.bytes&&l.etag===s.etag&&l.seq===s.seq)return!0;let i=!1;try{i=z(Object.freeze(l))===!0}catch{i=!1}return i?(s=Object.freeze(l),N("applied",{seq:s.seq,etag:s.etag}),!0):(N("recoverable",{reason:"refused",seq:l.seq,etag:l.etag}),!1)}function H(n,l){if(l==="startup")return null;let i=Math.max(n.seq??0,q);return i>0?i:null}function ae(n,l){t=n,a=!0,N("recoverable",{reason:l,seq:n.seq??null})}function U(n){T||(t={kind:n.kind,seq:Y(n.seq)},a=!1,B())}function B(){if(T||A||a||!t)return;let n=C,l=t;t=null;let i=new AbortController;A={controller:i};let w=L,G=q,D=j=>{if(A&&A.controller===i&&(A=null),!(!O(n)||i.signal.aborted)){if(j==null){ae(l,"repair-failed");return}if(L!==w||q!==G){if(P+=1,P<=Re){t=t??{kind:l.kind,seq:H(l,l.kind)},B();return}V(j.text,{kind:l.kind,seq:H(l,l.kind)},j.etag),B();return}V(j.text,l,j.etag),B()}};fetch(g,{cache:"no-store",signal:i.signal}).then(j=>j.ok?j.text().then(W=>({text:W,etag:_(j.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function V(n,l,i){let G=Me(n)??(/^W\//.test(i??"")?null:_(i))??(n===s.bytes?s.etag:null),D=l.kind==="startup"?s.seq:l.seq??s.seq;re({bytes:n,etag:G,seq:D})&&(S=!1,P=0,a=!1,N("current",{seq:s.seq,etag:s.etag}))}function o(n,l){let i={bytes:s.bytes,etag:n??s.etag,seq:l??s.seq};i.etag===s.etag&&i.seq===s.seq||(s=Object.freeze(i),N("current",{seq:s.seq,etag:s.etag}))}function p(n,l,i){let w=_(l);if(!(i!==null&&s.seq!==null&&i<=s.seq)){if(!S&&w!==null&&s.etag!==null){if(w!==s.etag){U({kind:"unmatched",seq:i});return}S=!0}if(n===s.bytes){o(w,i);return}re({bytes:n,etag:w,seq:i})&&(S=!0)}}function y(n,l){let i=n.data;if(i&&i.kind==="external-change"){typeof i.html=="string"?p(i.html,i.etag,l):U({kind:"notice",seq:l});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&U({kind:"notice",seq:l})}function R(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{N("recoverable",{reason:"bad-json"});return}if(!i||typeof i!="object"||Array.isArray(i)){N("recoverable",{reason:"bad-frame"});return}let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.type==="notification"){y(i,w);return}if(i.error){N("recoverable",{reason:"server-error",seq:w});return}if(typeof i.html!="string"){_(i.etag)?U({kind:"notice",seq:w}):N("recoverable",{reason:"bad-frame",seq:w});return}p(i.html,i.etag,w)}function Q(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{return}if(!i||typeof i!="object")return;let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.resync===!0){U({kind:"resync",seq:w});return}i.startup===!0&&U({kind:"startup",seq:null})}function M(n){if(O(n)){if(N("open",{seq:s.seq,etag:s.etag}),a){a=!1,B();return}s.bytes===null&&!m&&U({kind:"startup",seq:null})}}let I={ready:null,get represented(){return s},adopt({onSnapshot:n,onStatus:l}={}){return typeof n=="function"&&(z=n),typeof l=="function"&&(x=l),I},start(){T=!1;let n=++C;return K(),F(),t=null,a=!1,L=0,P=0,q=s.seq??0,I.ready=Se().then(l=>{if(!O(n))return I;let i=Ce(),w=Ie(),G=l.profile.streamPath(g,we,i,w),D=new be(new URL(G,window.location.origin).href,{shared:l.sharedSync,sharedData:l.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return E=D,D.onopen=()=>M(n),D.onerror=()=>{O(n)&&N("reconnecting")},D.onmessage=j=>R(j.data,n),D.addEventListener("cursor",j=>Q(j.data,n)),D.addEventListener("presence",j=>{if(!O(n))return;let W;try{W=JSON.parse(j.data)}catch{return}W&&typeof W=="object"&&!Array.isArray(W)&&se(W,n)}),I}),I},stop(){T||(T=!0,C++,K(),F(),t=null,a=!1)}};return I}var Ue="article[data-blockeditor]",Ve='section[data-type="tool"][data-id]',Ne=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Le(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),u={};try{u=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:u.rev??null,artifact:u.artifact??null,state:u.state??{},signature:JSON.stringify(u.artifact??null),invalid:!1}}function ue(e){let r=new Map,u=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!u.has(v)){if(r.has(v)){r.delete(v),u.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="blockeditor.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,u=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(u.has(m))continue;if(r.has(m)){r.delete(m),u.add(m);continue}r.set(m,g)}Ne.has(g.tagName)&&f(g)}};return f(e),r}function xe(e){let r=new Set,u=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),Ne.has(v.tagName)&&u(v)}};return u(e),r}function X(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let u=(r.defaultView??globalThis).DOMParser;if(typeof u!="function")return{ok:!1,reason:"parser"};let f=new u().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let s=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:s,toolState:s.size?ce(f):{}}}var fe=(e,r)=>{let u=ne(e),f=ne(r);return!u.invalid&&!f.invalid&&u.rev===f.rev&&u.signature===f.signature};function Te(e,{article:r,readerOpen:u=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let a=t.getAttribute("data-id");u.has(a)&&t.hasAttribute("open")!==u.get(a)&&t.toggleAttribute("open",u.get(a))}let g=Je(r),m=new Set,s=!1,S=t=>(s=!0,t.cloneNode(!0)),q=(t,a)=>{let h=xe(t);for(let d of a.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let c=xe(d);for(let b of h)if(c.has(b))return d}return null},L=(t,a)=>{for(let h of a.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,a,h=null)=>{for(let{name:d,value:c}of[...a.attributes])d===h||t.getAttribute(d)===c||(t.setAttribute(d,c),s=!0);for(let{name:d}of[...t.attributes])d===h||a.hasAttribute(d)||(t.removeAttribute(d),s=!0)},z=(t,a,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),c=d(a.childNodes[h])?a.childNodes[h]:[...a.childNodes].find(d);return c?(m.add(c),c):t.cloneNode(!0)},x=(t,a)=>{let h=[],d=[...a.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(z(O,t,k));continue}let N=A(O,t);m.add(N),h.push(N)}let c=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!c.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),s=!0}for(let k of[...t.childNodes])c.has(k)||(k.remove(),s=!0)},C=t=>{s=!0;let a=t.cloneNode(!1);return x(a,t),a},T=(t,a)=>{s=!0;let h=t.getAttribute("data-id"),d=u.has(h)?u.get(h):a.hasAttribute("open");P(t,a,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),x(t,a)},E=(t,a)=>{s=!0,P(t,a),x(t,a)};function A(t,a){let h=t.getAttribute("data-id");if(h){let c=g.get(h);return!c||m.has(c)||c===a||c.contains(a)?S(t):(m.add(c),ke(c)&&ke(t)?v(c,t)?c:S(t):c.tagName!==t.tagName?S(t):c.isEqualNode(t)?c:t.tagName==="DETAILS"?(T(c,t),c):t.tagName==="LI"?(E(c,t),c):qe.has(t.tagName)?(P(c,t),x(c,t),c):S(t))}if(qe.has(t.tagName)){let c=q(t,a);return c?(m.add(c),P(c,t),x(c,t),c):C(t)}let d=L(t,a);return d?(m.add(d),d.isEqualNode(t)?d:(s=!0,S(t))):S(t)}if(x(r,e.article),f){f.clear();for(let[t,a]of e.savedOpen)f.set(t,a)}for(let t of[...u.keys()])e.savedOpen.has(t)||u.delete(t);return{changed:s}}var je="article[data-blockeditor]",Be='section[data-type="tool"][data-id]',Ee='script[type="application/json"][merge="blockeditor"]',de=["live-at","live-by"];var Fe=(e,r)=>import("../c-2OJMOUPC.js").then(u=>u.followTocLink(e,r)),He=e=>{import("../c-CL5LSATX.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),Ge=(e,r)=>{let u=e.source.querySelector(Ee),f=r.querySelector(Ee);if(!u)return f?(f.remove(),!0):!1;if(f){let g=de.map(s=>u.getAttribute(s));return f.textContent===u.textContent&&de.every((s,S)=>f.getAttribute(s)===g[S])?!1:(f.textContent!==u.textContent&&(f.textContent=u.textContent),de.forEach((s,S)=>{g[S]===null?f.removeAttribute(s):f.setAttribute(s,g[S])}),!0)}let v=r.querySelector(je);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(u,!0),v),!0):!1};function We({doc:e,article:r,represented:u=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:s=()=>{}}){let S=new Map,q=new Map,L=new Map,P={data:{}},z=[],x=null,C=null,T=0,E=!1,A=m,t=null,a=pe(u),h=null,d=s,c=!1,b=(o,p)=>{let y=e.defaultView??globalThis;e.dispatchEvent(new y.CustomEvent(o,{detail:p}))},k=()=>{for(let o of L.values())try{o.instance?.dispose?.()}catch{}L.clear()},O=()=>x?Promise.resolve(x):(C||(C=import("../c-FQAQRXGK.js").then(({createToolHost:o})=>E?null:(x=o({store:P,mode:"view"}),x)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),N=o=>{for(let[p,y]of L){let R=o.get(p);if(!R||R.invalid||R.rev!==y.rev||R.signature!==y.signature){try{y.instance?.dispose?.()}catch{}L.delete(p)}}},$=(o,p)=>{let y=[];for(let[Q,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):y.push([Q,M]);if(!y.length)return;P.data=p??{};let R=++T;O().then(Q=>{if(!(E||!Q||R!==T))for(let[M,I]of y){if(L.has(M))continue;let n=[...r.querySelectorAll(Be)].find(l=>l.getAttribute("data-id")===M);if(n)try{let l=Q.mount(n,{id:M,artifact:I.artifact,rev:I.rev,seed:I.state??{}});L.set(M,{rev:I.rev,signature:I.signature,instance:l})}catch(l){console.warn(`clayjs: tool ${M} could not mount`,l)}}})},se=(o,p)=>{let y=L.get(o.getAttribute("data-id"));if(!y)return fe(o,p);let R=Le(p);return!R.invalid&&R.rev===y.rev&&R.signature===y.signature},K=o=>{o?.state==="current"&&(a=pe({bytes:a.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},F=o=>{Te(o,{article:r,readerOpen:S,savedOpen:q,keepTool:se}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),Ge(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let p=a.bytes?X(a.bytes,e):null;if(p?.ok)try{F(p)}catch(y){console.warn("clayjs: the reader could not restore the previous file",y)}b("clay:reader-status",{state:"blocked"})};function H(o){if(E||c)return!1;let p=X(o.bytes,e);if(!p.ok||r.querySelector(".blockeditor-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;N(p.tools);try{F(p)}catch(y){return re(y),!1}return a=pe(o),a.etag&&He(a.etag),$(p.tools,p.toolState),b("clay:reader-status",{state:"applied",etag:a.etag,seq:a.seq}),!0}let ae=()=>a.bytes===null?!1:(V.stop(),!0),U=o=>{let p=o.target;if(p.tagName!=="DETAILS"||!r.contains(p))return;let y=p.getAttribute("data-id");y&&(p.open===q.get(y)?S.delete(y):S.set(y,p.open))};e.addEventListener("toggle",U,!0),z.push(["toggle",U,!0]);let B=o=>{let p=o.target.closest?.('a[href^="#blockeditor-block-"], a[href^="#"]');!p||!r.contains(p)||!p.closest('nav[aria-label="Table of contents"]')||(o.preventDefault(),Fe(r,p.getAttribute("href")))};if(e.addEventListener("click",B),z.push(["click",B]),u){let o=X(u.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);F(o),$(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));$(ue(r),ce(e))}let V={ready:null,get represented(){return a},yieldArticle(){return E||c?!1:(T++,k(),c=!0,d(),!0)},reclaimArticle(){if(E||!c)return!1;if(d=ie(r,"reader"),c=!1,a.bytes!==null){let o=X(a.bytes,e);o.ok&&(F(o),$(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):E?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-NYJ577NL.js").then(({readerHandoff:p})=>p({stream:A,options:o,apply:H,retire:ae,yieldArticle:V.yieldArticle,reclaimArticle:V.reclaimArticle})),h)},stop(){if(E)return t;E=!0,h=null,T++,A?.stop(),A=null;for(let[o,p,y]of z)e.removeEventListener(o,p,y);z.length=0,k();try{x?.dispose()}catch{}return x=null,c||d(),c=!1,d=()=>!1,t=Object.freeze({...a}),t}};if(V.ready=Promise.resolve(V),f){let o=p=>{let y=p.detail;typeof y?.html=="string"&&(y.source&&y.source!=="disk"&&y.lane!=="saved"||H({bytes:y.html,etag:y.etag??null,seq:y.seq??null}))};f.addEventListener("clay:sync-applied",o),z.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:H,onStatus:K}):(A=Ae({documentURL:v,servedEtag:g,represented:a.bytes?a:null,onSnapshot:H,onStatus:K}),A.start());return V}function oe({represented:e=null,documentURL:r,servedEtag:u=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(je);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-blockeditor]");let s=m[0];if(s.querySelector(".blockeditor-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=X(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(s,"reader");try{return We({doc:g,article:s,represented:e,feed:v,documentURL:r,servedEtag:u,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-blockeditor]").length===1;function _e(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable"||r?.state==="reconnecting")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function $e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Xe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Ke({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,_e(),he=e?Xe(r):Qe(r),Z=e?he:Promise.resolve(null),Z)}function ct(e={}){return Ye(),Ke(e)}function ft(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ye(){ye=!0,Oe||te?.(null),$e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ft as prepareHandoff,Z as ready,ct as restart,Ke as start,Ye as stop};
@@ -1,4 +1,4 @@
1
- import{a as st,b as dt,c as lt}from"../c-OZOACVUD.js";import{d as ct}from"../c-QHWJ5ZIJ.js";import{a as pt}from"../c-D2OPWOWO.js";import{c as at}from"../c-J2ZW4HMR.js";import{a as K,e as rt,f as it}from"../c-A5LASUEZ.js";import"../c-4JZDZFF6.js";import"../c-5RZNFTWD.js";import"../c-PKCCHJ5X.js";import"../c-46XYM55L.js";import{a as Y}from"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var Mt=":root{--qc-surface:#f7f2ea;--qc-surface-hover:#efe7d8;--qc-border:#cdbfa6;--qc-text:#2b241b;--qc-text-hover:#463c2e;--qc-on-dark:#efe7d8;--qc-overlay:rgba(43,36,27,.6);--qc-dim:rgba(0,0,0,.55);--qc-radius:8px;--qc-crop-line:#fff;--qc-font:ui-sans-serif,system-ui,sans-serif;}.qc-css-probe{position:absolute;}.qc-backdrop{position:fixed;inset:0;background:var(--qc-overlay);display:grid;place-items:center;z-index:1000;animation:qc-fade .15s ease;}@keyframes qc-fade{from{opacity:0}}.qc-modal{background:var(--qc-surface);border:1px solid var(--qc-border);border-radius:var(--qc-radius);padding:16px;max-width:92vw;font-family:var(--qc-font);}.qc-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}.qc-btn{font:inherit;font-family:var(--qc-font);font-size:.85rem;padding:.3rem .75rem;border:1px solid var(--qc-border);border-radius:6px;background:var(--qc-surface);color:var(--qc-text);cursor:pointer;}.qc-btn:hover{background:var(--qc-surface-hover);}.qc-btn-primary{background:var(--qc-text);border-color:var(--qc-text);color:var(--qc-on-dark);font-weight:600;}.qc-btn-primary:hover{background:var(--qc-text-hover);border-color:var(--qc-text-hover);}.qc-stage{position:relative;line-height:0;user-select:none;-webkit-user-select:none;touch-action:none;}.qc-stage img{display:block;max-width:100%;pointer-events:none;}.qc-dim{position:absolute;inset:0;background:var(--qc-dim);pointer-events:none;}.qc-box{position:absolute;cursor:move;outline:1px solid var(--qc-crop-line);background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat;background-blend-mode:overlay;}.qc-handle{position:absolute;box-sizing:border-box;width:28px;height:28px;border:7px solid transparent;background:var(--qc-crop-line);background-clip:padding-box;border-radius:9px;}.qc-nw{left:-14px;top:-14px;cursor:nwse-resize;}.qc-ne{right:-14px;top:-14px;cursor:nesw-resize;}.qc-sw{left:-14px;bottom:-14px;cursor:nesw-resize;}.qc-se{right:-14px;bottom:-14px;cursor:nwse-resize;}.qc-mount{line-height:0;}",Lt=["image/jpeg","image/png","image/webp"];var $=!1;function C(t,n="",e=""){let o=document.createElement(t);return n&&(o.className=n),e&&(o.textContent=e),o}function T(t,n,e){t.style.setProperty(n,e,"important")}function Ct(t){return String(t).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function Q(){if(document.querySelector("style[data-quickcrop]"))return;let t=C("div","qc-css-probe");t.style.display="none",document.body.append(t);let n=getComputedStyle(t).position==="absolute";if(t.remove(),n)return;let e=document.createElement("style");e.setAttribute("data-quickcrop",""),e.setAttribute("save-remove",""),e.setAttribute("snapshot-remove",""),e.textContent=Mt,document.head.append(e)}var N={open({content:t,confirmLabel:n,onConfirm:e,onCancel:o}){Q();let r=C("div","qc-backdrop");r.setAttribute("save-remove",""),r.setAttribute("snapshot-remove","");let p=C("div","qc-modal"),a=C("div","qc-bar"),c=C("button","qc-btn qc-btn-primary",n);c.type="button",a.append(c),p.append(t,a),r.append(p),document.body.append(r);let h=b=>{b.key==="Escape"&&o()};return document.addEventListener("keydown",h),c.onclick=()=>e(),r.onclick=b=>{b.target===r&&o()},c.focus(),{close(){document.removeEventListener("keydown",h),r.remove()}}}};function mt(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var St='<svg viewBox="0 0 134 134" xmlns="http://www.w3.org/2000/svg"><path class="micromodal__close-bg" d="M132 132.5 1 1.5h131v131Z"/><path d="M83 27l24 24M107 27L83 51" stroke="#fff" stroke-width="6"/></svg>';function ut(t){let n=()=>t.isShowing&&!!document.querySelector(".micromodal-parent");return{fit(){if(n())return null;let e=window.innerWidth>=640?128:80;return{width:Math.max(120,Math.min(550,window.innerWidth-32)-4-e),height:Math.max(120,window.innerHeight-220)}},open(e){if(n())return N.open(e);let{content:o,confirmLabel:r,onConfirm:p,onCancel:a}=e;Q();let c=!1,h=w=>{c||(c=!0,document.removeEventListener("keydown",b,!0),w())},b=w=>{w.key==="Escape"&&(w.stopPropagation(),a())};return t.html='<div class="qc-mount"></div>',t.yes=Ct(r),t.no="",t.closeHtml=St,t.disableFocus=!0,t.onOpen(()=>{document.querySelector(".micromodal__content .qc-mount")?.append(o),document.querySelector(".micromodal-parent .micromodal__yes")?.focus(),document.addEventListener("keydown",b,!0)}),t.onYes(()=>(h(p),!0)),t.onNo(()=>{h(a)}),t.open(),{close(){c||(c=!0,document.removeEventListener("keydown",b,!0),t.close())}}}}}function At(t){if(t==="builtin")return N;if(t&&typeof t=="object"){if(mt(t))return ut(t);if(typeof t.open=="function")return t;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}if(t==="auto")return mt(window.themodal)?ut(window.themodal):N;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}function Ft(t,n={}){let{aspect:e=null,type:o,quality:r=.92,maxWidth:p=null,maxHeight:a=null,minSize:c=40,labels:h={},modal:b="auto"}=n,{confirm:w="Crop"}=h;if(!(t instanceof Blob))return Promise.reject(new TypeError("quickcrop: expected a File or Blob"));if($)return Promise.reject(new Error("quickcrop: already open"));let S;try{S=At(b)}catch(R){return Promise.reject(R)}$=!0;let A=o||(Lt.includes(t.type)?t.type:"image/png"),F=URL.createObjectURL(t),s=new Image;return new Promise((R,B)=>{s.onerror=()=>{URL.revokeObjectURL(F),$=!1,B(new Error("quickcrop: could not decode image"))};function g(){let _=S.fit?S.fit():null,xt=Math.max(1,Math.min(_?.width??window.innerWidth*.86,s.naturalWidth)),yt=Math.max(1,_?.height??window.innerHeight*.72),G=Math.min(xt/s.naturalWidth,yt/s.naturalHeight,1),L=Math.max(1,Math.round(s.naturalWidth*G)),v=Math.max(1,Math.round(s.naturalHeight*G)),U=Math.min(c,L,v);Q();let x=C("div","qc-stage");T(s,"width",L+"px"),T(s,"height",v+"px");let J=C("div","qc-dim"),z=C("div","qc-box");for(let i of["nw","ne","sw","se"])z.appendChild(C("div","qc-handle qc-"+i));x.append(s,J,z);let d,l;e?(d=Math.min(L,v*e),l=d/e,l>v&&(l=v,d=l*e)):(d=L,l=v);let k=(L-d)/2,E=(v-l)/2;V();function V(){T(z,"left",k+"px"),T(z,"top",E+"px"),T(z,"width",d+"px"),T(z,"height",l+"px"),T(J,"clip-path",`polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0, ${k}px ${E}px, ${k}px ${E+l}px, ${k+d}px ${E+l}px, ${k+d}px ${E}px, ${k}px ${E}px)`)}let D=(i,q,u)=>Math.max(q,Math.min(u,i));x.addEventListener("pointerdown",i=>{let q=i.target.closest(".qc-handle"),u=i.target===z;if(!q&&!u)return;i.preventDefault(),x.setPointerCapture(i.pointerId);let m={px:i.clientX,py:i.clientY,x:k,y:E,w:d,h:l},f=q&&[...q.classList].find(W=>/^qc-(nw|ne|sw|se)$/.test(W))?.slice(3),y=W=>{if(!f)k=D(m.x+(W.clientX-m.px),0,L-d),E=D(m.y+(W.clientY-m.py),0,v-l);else{let H=f.includes("w")?m.x+m.w:m.x,O=f.includes("n")?m.y+m.h:m.y,I=f.includes("e"),X=f.includes("s"),tt=x.getBoundingClientRect(),et=Math.abs(W.clientX-(tt.left+H)),nt=Math.abs(W.clientY-(tt.top+O));if(e){let ot=Math.min(I?L-H:H,(X?v-O:O)*e),Et=Math.min(Math.max(U,U*e),ot);d=D(Math.max(et,nt*e),Et,ot),l=d/e}else d=D(et,U,I?L-H:H),l=D(nt,U,X?v-O:O);k=I?H:H-d,E=X?O:O-l}V()},M=()=>{x.removeEventListener("pointermove",y),x.removeEventListener("pointerup",M),x.removeEventListener("pointercancel",M)};x.addEventListener("pointermove",y),x.addEventListener("pointerup",M),x.addEventListener("pointercancel",M)});function wt(){let i=s.naturalWidth/L,q=s.naturalHeight/v,u=Math.round(d*i),m=Math.round(l*q),f=1;p&&u>p&&(f=p/u),a&&m*f>a&&(f=a/m),u*f*m*f>16777216&&(f=Math.sqrt(16777216/(u*m)));let y=document.createElement("canvas");y.width=Math.max(1,Math.round(u*f)),y.height=Math.max(1,Math.round(m*f));let M=y.getContext("2d");if(!M)throw new Error("quickcrop: crop too large for a canvas");return A==="image/jpeg"&&(M.fillStyle="#fff",M.fillRect(0,0,y.width,y.height)),M.imageSmoothingQuality="high",M.drawImage(s,k*i,E*q,d*i,l*q,0,0,y.width,y.height),y}let j=!1,P=()=>j?!1:(j=!0,kt.close(),URL.revokeObjectURL(F),$=!1,!0),kt=S.open({content:x,confirmLabel:w,onConfirm(){if(j)return;let i,q;try{i=wt(),q=i.toDataURL(A,r)}catch(u){P()&&B(u);return}P()&&i.toBlob(u=>{if(!u){B(new Error("quickcrop: image encoding failed"));return}R({blob:u,dataURL:q,width:i.width,height:i.height})},A,r)},onCancel(){P()&&R(null)}})}s.onload=()=>{try{g()}catch(_){URL.revokeObjectURL(F),$=!1,B(_)}},s.src=F})}var Z=Ft;var ft=[".qc-stage",".qc-backdrop"],ht=`@layer clay-skin{
1
+ import{a as st,b as dt,c as lt}from"../c-OZOACVUD.js";import{d as ct}from"../c-QHWJ5ZIJ.js";import{a as pt}from"../c-KD2ME5UN.js";import{c as at}from"../c-J2ZW4HMR.js";import{a as K,e as rt,f as it}from"../c-A5LASUEZ.js";import"../c-4JZDZFF6.js";import"../c-5RZNFTWD.js";import"../c-PKCCHJ5X.js";import"../c-46XYM55L.js";import{a as Y}from"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var Mt=":root{--qc-surface:#f7f2ea;--qc-surface-hover:#efe7d8;--qc-border:#cdbfa6;--qc-text:#2b241b;--qc-text-hover:#463c2e;--qc-on-dark:#efe7d8;--qc-overlay:rgba(43,36,27,.6);--qc-dim:rgba(0,0,0,.55);--qc-radius:8px;--qc-crop-line:#fff;--qc-font:ui-sans-serif,system-ui,sans-serif;}.qc-css-probe{position:absolute;}.qc-backdrop{position:fixed;inset:0;background:var(--qc-overlay);display:grid;place-items:center;z-index:1000;animation:qc-fade .15s ease;}@keyframes qc-fade{from{opacity:0}}.qc-modal{background:var(--qc-surface);border:1px solid var(--qc-border);border-radius:var(--qc-radius);padding:16px;max-width:92vw;font-family:var(--qc-font);}.qc-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}.qc-btn{font:inherit;font-family:var(--qc-font);font-size:.85rem;padding:.3rem .75rem;border:1px solid var(--qc-border);border-radius:6px;background:var(--qc-surface);color:var(--qc-text);cursor:pointer;}.qc-btn:hover{background:var(--qc-surface-hover);}.qc-btn-primary{background:var(--qc-text);border-color:var(--qc-text);color:var(--qc-on-dark);font-weight:600;}.qc-btn-primary:hover{background:var(--qc-text-hover);border-color:var(--qc-text-hover);}.qc-stage{position:relative;line-height:0;user-select:none;-webkit-user-select:none;touch-action:none;}.qc-stage img{display:block;max-width:100%;pointer-events:none;}.qc-dim{position:absolute;inset:0;background:var(--qc-dim);pointer-events:none;}.qc-box{position:absolute;cursor:move;outline:1px solid var(--qc-crop-line);background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat;background-blend-mode:overlay;}.qc-handle{position:absolute;box-sizing:border-box;width:28px;height:28px;border:7px solid transparent;background:var(--qc-crop-line);background-clip:padding-box;border-radius:9px;}.qc-nw{left:-14px;top:-14px;cursor:nwse-resize;}.qc-ne{right:-14px;top:-14px;cursor:nesw-resize;}.qc-sw{left:-14px;bottom:-14px;cursor:nesw-resize;}.qc-se{right:-14px;bottom:-14px;cursor:nwse-resize;}.qc-mount{line-height:0;}",Lt=["image/jpeg","image/png","image/webp"];var $=!1;function C(t,n="",e=""){let o=document.createElement(t);return n&&(o.className=n),e&&(o.textContent=e),o}function T(t,n,e){t.style.setProperty(n,e,"important")}function Ct(t){return String(t).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function Q(){if(document.querySelector("style[data-quickcrop]"))return;let t=C("div","qc-css-probe");t.style.display="none",document.body.append(t);let n=getComputedStyle(t).position==="absolute";if(t.remove(),n)return;let e=document.createElement("style");e.setAttribute("data-quickcrop",""),e.setAttribute("save-remove",""),e.setAttribute("snapshot-remove",""),e.textContent=Mt,document.head.append(e)}var N={open({content:t,confirmLabel:n,onConfirm:e,onCancel:o}){Q();let r=C("div","qc-backdrop");r.setAttribute("save-remove",""),r.setAttribute("snapshot-remove","");let p=C("div","qc-modal"),a=C("div","qc-bar"),c=C("button","qc-btn qc-btn-primary",n);c.type="button",a.append(c),p.append(t,a),r.append(p),document.body.append(r);let h=b=>{b.key==="Escape"&&o()};return document.addEventListener("keydown",h),c.onclick=()=>e(),r.onclick=b=>{b.target===r&&o()},c.focus(),{close(){document.removeEventListener("keydown",h),r.remove()}}}};function mt(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var St='<svg viewBox="0 0 134 134" xmlns="http://www.w3.org/2000/svg"><path class="micromodal__close-bg" d="M132 132.5 1 1.5h131v131Z"/><path d="M83 27l24 24M107 27L83 51" stroke="#fff" stroke-width="6"/></svg>';function ut(t){let n=()=>t.isShowing&&!!document.querySelector(".micromodal-parent");return{fit(){if(n())return null;let e=window.innerWidth>=640?128:80;return{width:Math.max(120,Math.min(550,window.innerWidth-32)-4-e),height:Math.max(120,window.innerHeight-220)}},open(e){if(n())return N.open(e);let{content:o,confirmLabel:r,onConfirm:p,onCancel:a}=e;Q();let c=!1,h=w=>{c||(c=!0,document.removeEventListener("keydown",b,!0),w())},b=w=>{w.key==="Escape"&&(w.stopPropagation(),a())};return t.html='<div class="qc-mount"></div>',t.yes=Ct(r),t.no="",t.closeHtml=St,t.disableFocus=!0,t.onOpen(()=>{document.querySelector(".micromodal__content .qc-mount")?.append(o),document.querySelector(".micromodal-parent .micromodal__yes")?.focus(),document.addEventListener("keydown",b,!0)}),t.onYes(()=>(h(p),!0)),t.onNo(()=>{h(a)}),t.open(),{close(){c||(c=!0,document.removeEventListener("keydown",b,!0),t.close())}}}}}function At(t){if(t==="builtin")return N;if(t&&typeof t=="object"){if(mt(t))return ut(t);if(typeof t.open=="function")return t;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}if(t==="auto")return mt(window.themodal)?ut(window.themodal):N;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}function Ft(t,n={}){let{aspect:e=null,type:o,quality:r=.92,maxWidth:p=null,maxHeight:a=null,minSize:c=40,labels:h={},modal:b="auto"}=n,{confirm:w="Crop"}=h;if(!(t instanceof Blob))return Promise.reject(new TypeError("quickcrop: expected a File or Blob"));if($)return Promise.reject(new Error("quickcrop: already open"));let S;try{S=At(b)}catch(R){return Promise.reject(R)}$=!0;let A=o||(Lt.includes(t.type)?t.type:"image/png"),F=URL.createObjectURL(t),s=new Image;return new Promise((R,B)=>{s.onerror=()=>{URL.revokeObjectURL(F),$=!1,B(new Error("quickcrop: could not decode image"))};function g(){let _=S.fit?S.fit():null,xt=Math.max(1,Math.min(_?.width??window.innerWidth*.86,s.naturalWidth)),yt=Math.max(1,_?.height??window.innerHeight*.72),G=Math.min(xt/s.naturalWidth,yt/s.naturalHeight,1),L=Math.max(1,Math.round(s.naturalWidth*G)),v=Math.max(1,Math.round(s.naturalHeight*G)),U=Math.min(c,L,v);Q();let x=C("div","qc-stage");T(s,"width",L+"px"),T(s,"height",v+"px");let J=C("div","qc-dim"),z=C("div","qc-box");for(let i of["nw","ne","sw","se"])z.appendChild(C("div","qc-handle qc-"+i));x.append(s,J,z);let d,l;e?(d=Math.min(L,v*e),l=d/e,l>v&&(l=v,d=l*e)):(d=L,l=v);let k=(L-d)/2,E=(v-l)/2;V();function V(){T(z,"left",k+"px"),T(z,"top",E+"px"),T(z,"width",d+"px"),T(z,"height",l+"px"),T(J,"clip-path",`polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0, ${k}px ${E}px, ${k}px ${E+l}px, ${k+d}px ${E+l}px, ${k+d}px ${E}px, ${k}px ${E}px)`)}let D=(i,q,u)=>Math.max(q,Math.min(u,i));x.addEventListener("pointerdown",i=>{let q=i.target.closest(".qc-handle"),u=i.target===z;if(!q&&!u)return;i.preventDefault(),x.setPointerCapture(i.pointerId);let m={px:i.clientX,py:i.clientY,x:k,y:E,w:d,h:l},f=q&&[...q.classList].find(W=>/^qc-(nw|ne|sw|se)$/.test(W))?.slice(3),y=W=>{if(!f)k=D(m.x+(W.clientX-m.px),0,L-d),E=D(m.y+(W.clientY-m.py),0,v-l);else{let H=f.includes("w")?m.x+m.w:m.x,O=f.includes("n")?m.y+m.h:m.y,I=f.includes("e"),X=f.includes("s"),tt=x.getBoundingClientRect(),et=Math.abs(W.clientX-(tt.left+H)),nt=Math.abs(W.clientY-(tt.top+O));if(e){let ot=Math.min(I?L-H:H,(X?v-O:O)*e),Et=Math.min(Math.max(U,U*e),ot);d=D(Math.max(et,nt*e),Et,ot),l=d/e}else d=D(et,U,I?L-H:H),l=D(nt,U,X?v-O:O);k=I?H:H-d,E=X?O:O-l}V()},M=()=>{x.removeEventListener("pointermove",y),x.removeEventListener("pointerup",M),x.removeEventListener("pointercancel",M)};x.addEventListener("pointermove",y),x.addEventListener("pointerup",M),x.addEventListener("pointercancel",M)});function wt(){let i=s.naturalWidth/L,q=s.naturalHeight/v,u=Math.round(d*i),m=Math.round(l*q),f=1;p&&u>p&&(f=p/u),a&&m*f>a&&(f=a/m),u*f*m*f>16777216&&(f=Math.sqrt(16777216/(u*m)));let y=document.createElement("canvas");y.width=Math.max(1,Math.round(u*f)),y.height=Math.max(1,Math.round(m*f));let M=y.getContext("2d");if(!M)throw new Error("quickcrop: crop too large for a canvas");return A==="image/jpeg"&&(M.fillStyle="#fff",M.fillRect(0,0,y.width,y.height)),M.imageSmoothingQuality="high",M.drawImage(s,k*i,E*q,d*i,l*q,0,0,y.width,y.height),y}let j=!1,P=()=>j?!1:(j=!0,kt.close(),URL.revokeObjectURL(F),$=!1,!0),kt=S.open({content:x,confirmLabel:w,onConfirm(){if(j)return;let i,q;try{i=wt(),q=i.toDataURL(A,r)}catch(u){P()&&B(u);return}P()&&i.toBlob(u=>{if(!u){B(new Error("quickcrop: image encoding failed"));return}R({blob:u,dataURL:q,width:i.width,height:i.height})},A,r)},onCancel(){P()&&R(null)}})}s.onload=()=>{try{g()}catch(_){URL.revokeObjectURL(F),$=!1,B(_)}},s.src=F})}var Z=Ft;var ft=[".qc-stage",".qc-backdrop"],ht=`@layer clay-skin{
2
2
  :is(.qc-stage, .qc-backdrop),:is(.qc-stage, .qc-backdrop) *{--qc-surface:light-dark(#FFFCF6, #11131E) !important;--qc-text:light-dark(#2B241B, #ECEAF2) !important;--qc-border:light-dark(#D8C8AF, #353B52) !important;--qc-radius:0px !important;--qc-font:system-ui,-apple-system,"Segoe UI",sans-serif !important;--qc-surface-hover:light-dark(#F4ECDF, #1A1D2C) !important;--qc-text-hover:color-mix(in srgb, light-dark(#2B241B, #ECEAF2), light-dark(#FDF8F0, #0B0C13) 12%) !important;--qc-on-dark:light-dark(#FDF8F0, #0B0C13) !important;--qc-overlay:color-mix(in srgb, light-dark(#FDF8F0, #0B0C13) 70%, transparent) !important;--qc-dim:rgba(0,0,0,.55) !important;--qc-crop-line:#fff !important}
3
3
  .qc-stage{margin-inline:auto !important;inline-size:fit-content !important;background:light-dark(#F4ECDF, #1A1D2C) !important}
4
4
  .qc-stage img{display:block !important;max-inline-size:100% !important}
@@ -23,4 +23,4 @@ import{a as st,b as dt,c as lt}from"../c-OZOACVUD.js";import{d as ct}from"../c-Q
23
23
  .qc-backdrop[hidden]{display:none !important}
24
24
  .qc-bar[hidden]{display:none !important}
25
25
  }`;var gt=844;pt("quickcrop",ht,{roots:ft});function Rt(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var bt="Crop image";function qt(t,n,e=null){let o=lt({zIndex:"2147483001",width:`${gt}px`,closable:!0,titled:!0,theme:t,surface:"crop"});o.heading.textContent=bt,o.panel.setAttribute("aria-label",bt);let r=at(n,{variant:"primary",onClick:e,theme:t,parts:["dialog.button","crop.button"],labelParts:["dialog.buttonLabel","crop.buttonLabel"]});return o.footer.append(r),{...o,confirm:r}}function Bt(t,n){if(!K(n))return;let e=(o,r)=>{o&&(it(o,n,r),Y(o,rt(n,r,{})))};e(t,["crop.stage"]),e(t.querySelector(":scope > img"),["crop.image"]),e(t.querySelector(".qc-dim"),["crop.dim"]),e(t.querySelector(".qc-box"),["crop.selection"]);for(let o of["nw","ne","sw","se"])e(t.querySelector(`.qc-handle.qc-${o}`),["crop.handle",`crop.handle.${o}`])}function zt(t,n){let{root:e,overlay:o,panel:r,body:p}=qt(t,n);e.setAttribute("aria-hidden","true"),Y(e,["visibility:hidden","pointer-events:none"]),document.body.append(e);try{let a=S=>parseFloat(S)||0,c=getComputedStyle(o),h=getComputedStyle(p),b=p.clientWidth-a(h.paddingLeft)-a(h.paddingRight),w=o.clientHeight-a(c.paddingTop)-a(c.paddingBottom)-r.offsetHeight;return{width:Math.max(1,Math.floor(b)),height:Math.max(1,Math.floor(w))}}finally{e.remove()}}function vt({theme:t=null,confirmLabel:n="Crop"}={}){return{fit(){if(K(t))return zt(t,n);let e=document.documentElement.clientWidth;return{width:Math.max(120,Math.min(gt,e-32)-2-44),height:Math.max(120,window.innerHeight-Math.min(96,window.innerHeight*.1)-200)}},open({content:e,confirmLabel:o,onConfirm:r,onCancel:p}){let{root:a,overlay:c,panel:h,body:b,close:w,confirm:S}=qt(t,o,()=>r());Bt(e,t),b.append(e),w.addEventListener("click",()=>p()),h.addEventListener("submit",g=>g.preventDefault());let A=!1;c.addEventListener("mousedown",g=>{A=g.target===c}),c.addEventListener("click",g=>{A&&g.target===c&&p(),A=!1});let F=g=>{if(g.key==="Tab"){g.stopPropagation(),dt(h,g);return}g.key==="Escape"&&(g.stopPropagation(),p())};document.addEventListener("keydown",F,!0);let s=document.body.style.overflow;document.body.style.overflow="hidden";let R=!1,B=()=>{R||(R=!0,document.removeEventListener("keydown",F,!0),document.body.style.overflow=s,a.remove())};return st.set(a,()=>{B(),p()}),a.setAttribute("aria-hidden","false"),document.body.append(a),S.focus(),{close:B}}}}var Xt=vt();function Ht(t,n={}){let e=n.modal??"auto";if(!(e==="auto"||Rt(e)))return Z(t,n);let r=vt({theme:ct(),confirmLabel:n.labels?.confirm??"Crop"});return Z(t,{...n,modal:r})}var Yt=Ht;export{Xt as bevelCropAdapter,vt as createCropAdapter,Yt as default,Ht as quickcrop};
26
- /*! For license information please see quickcrop-VNRXGRPC.js.LEGAL.txt */
26
+ /*! For license information please see quickcrop-UHURKA2F.js.LEGAL.txt */