@panphora/clayjs 1.20.0 → 1.22.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.
- package/dist/all.js +1 -1
- package/dist/clay-dom.js +1 -1
- package/dist/clay-events.js +1 -1
- package/dist/clay-internals.js +1 -1
- package/dist/clay-options.js +1 -1
- package/dist/clay-router.js +1 -1
- package/dist/clay-ui.js +1 -1
- package/dist/clay-utils.js +1 -1
- package/dist/clay.js +1 -1
- package/dist/clay.standalone.js +7865 -8022
- package/dist/m/{c-JOH753EJ.js → c-26KVJS6J.js} +1 -1
- package/dist/m/{c-ZE46QDIH.js → c-3TLG3OLG.js} +1 -1
- package/dist/m/{c-RT3C74GY.js → c-4OGEVKR3.js} +1 -1
- package/dist/m/{c-Y33LUUIQ.js → c-4PHDUV3H.js} +1 -1
- package/dist/m/{c-SJPD46ZO.js → c-4RFZROCF.js} +4 -4
- package/dist/m/{c-XQSXKIKM.js → c-4TWARTLS.js} +1 -1
- package/dist/m/{c-S5IEIZCN.js → c-5AQYL27I.js} +1 -1
- package/dist/m/{c-OJYM642Q.js → c-5FKRZNJV.js} +1 -1
- package/dist/m/{c-CJFDLD43.js → c-6KBKYLPO.js} +1 -1
- package/dist/m/{c-DHXPDLW6.js → c-6PBXRWDX.js} +1 -1
- package/dist/m/{c-BRLCTNMC.js → c-6RC66MYY.js} +1 -1
- package/dist/m/{c-PIVIYLTY.js → c-6UEFPHHE.js} +1 -1
- package/dist/m/{c-YQUJ74R3.js → c-BV6FQQXM.js} +1 -1
- package/dist/m/{c-YSB6JKV2.js → c-DEAFCHDO.js} +2 -2
- package/dist/m/{c-NLZ5AN4L.js → c-DKFSOJCV.js} +1 -1
- package/dist/m/c-DP4X4JID.js +1 -0
- package/dist/m/{c-LIBE4HPD.js → c-DZBZ57EE.js} +1 -1
- package/dist/m/c-ECY5AZMH.js +1 -0
- package/dist/m/{c-VAK7SG37.js → c-EUGJVHDD.js} +1 -1
- package/dist/m/{c-GPGYKER7.js → c-F5AER2ID.js} +1 -1
- package/dist/m/{c-RG6XUZFA.js → c-FAXQU7MQ.js} +1 -1
- package/dist/m/{c-XD5MOROJ.js → c-FLBUYV3P.js} +1 -1
- package/dist/m/{c-NFR673TL.js → c-FMCPQ4VT.js} +2 -2
- package/dist/m/{c-VBLFAQD2.js → c-FNIGX4FI.js} +1 -1
- package/dist/m/{c-BTLFLLML.js → c-FWFJUU3T.js} +1 -1
- package/dist/m/{c-2VB555FG.js → c-GPTKI7AQ.js} +1 -1
- package/dist/m/{c-EZ7B5AZT.js → c-GY4ODHO2.js} +1 -1
- package/dist/m/{c-5734MF2P.js → c-H6DXQEH2.js} +1 -1
- package/dist/m/{c-Z32V4MHK.js → c-HAVGDXAL.js} +1 -1
- package/dist/m/{c-D3E4WJ4M.js → c-HDWZEJHM.js} +49 -32
- package/dist/m/{c-W23KVGUO.js → c-HWR6GMGK.js} +1 -1
- package/dist/m/{c-BJ7YQ5QZ.js → c-IHUWUKIU.js} +1 -1
- package/dist/m/{c-AL4RBJF2.js → c-ILGQ3UXQ.js} +1 -1
- package/dist/m/{c-W3K23S72.js → c-IWTTOC2V.js} +1 -1
- package/dist/m/c-JFST6QE7.js +1 -0
- package/dist/m/{c-FNVQAACK.js → c-KE33W4RE.js} +1 -1
- package/dist/m/c-KV7R47FR.js +1 -0
- package/dist/m/{c-LPUJXRXW.js → c-L7K5EXU2.js} +1 -1
- package/dist/m/{c-3YH6JSIL.js → c-LF6HNVPU.js} +1 -1
- package/dist/m/{c-MIL4B2JQ.js → c-MRURHLKV.js} +1 -1
- package/dist/m/{c-LQU7TXIH.js → c-N33TPVTL.js} +1 -1
- package/dist/m/{c-EOCZ2YVL.js → c-NBNRLZXO.js} +1 -1
- package/dist/m/{c-JUE7B4OX.js → c-NLWEZYKJ.js} +1 -1
- package/dist/m/{c-DDDOKPI6.js → c-NNNR7OXA.js} +1 -1
- package/dist/m/{c-E4IBSAQM.js → c-OI2BYWVV.js} +1 -1
- package/dist/m/{c-SBSMJIPC.js → c-P3WATEDR.js} +1 -1
- package/dist/m/{c-ZJLU56DV.js → c-PCEMXY2K.js} +1 -1
- package/dist/m/{c-3GJ4XARY.js → c-PWBJVHA4.js} +1 -1
- package/dist/m/{c-67ILSNPR.js → c-Q5KAQJAG.js} +1 -1
- package/dist/m/{c-U5X57T4L.js → c-QHVCUTJV.js} +1 -1
- package/dist/m/{c-GKEATME6.js → c-QJFYVCJO.js} +1 -1
- package/dist/m/{c-VY6XRBOW.js → c-QTC6VGA4.js} +1 -1
- package/dist/m/{c-44B5ODN7.js → c-TMT5TL65.js} +2 -2
- package/dist/m/{c-OABVRYOT.js → c-TV7JHSRL.js} +1 -1
- package/dist/m/{c-SO63UGPQ.js → c-UWT4CXQ4.js} +1 -1
- package/dist/m/{c-EFD6QNTE.js → c-VFES2BP5.js} +1 -1
- package/dist/m/{c-UXEVJ63W.js → c-VIW5X35H.js} +1 -1
- package/dist/m/{c-EOCKLMKX.js → c-WWE67K5Y.js} +1 -1
- package/dist/m/{c-J3BXFTZS.js → c-XDVAZDUE.js} +1 -1
- package/dist/m/{c-K76AUL4I.js → c-XZJ5IK6Q.js} +1 -1
- package/dist/m/{c-2ZZBC45O.js → c-Z7RJANGO.js} +1 -1
- package/dist/m/{c-I2IFKJX2.js → c-ZAHTFCXQ.js} +1 -1
- package/dist/m/{c-GVPNDIKJ.js → c-ZKELCT4T.js} +1 -1
- package/dist/m/{c-7SXYQCN4.js → c-ZO6VL2SC.js} +1 -1
- package/dist/m/{c-M4FSPNQ2.js → c-ZYEJLZEY.js} +1 -1
- package/dist/m/core/{autosave-VPORYJSE.js → autosave-GI3WNJYN.js} +1 -1
- package/dist/m/core/{conflict-notice-JMAZLVRX.js → conflict-notice-CEI3XY6A.js} +1 -1
- package/dist/m/core/{save-AOJBDSOK.js → save-OJ5NSLS7.js} +1 -1
- package/dist/m/core/{save-core-IOCMXO5L.js → save-core-DX3RFVO3.js} +1 -1
- package/dist/m/core/{unsaved-warning-U5VUJFOE.js → unsaved-warning-HGYH7O4H.js} +1 -1
- package/dist/m/internals/{index-HDRANDWE.js → index-V4WC44FU.js} +1 -1
- package/dist/m/loader-V6VI46HU.js +1 -0
- package/dist/m/{manifest-3AEF5191.js → manifest-83C18DED.js} +1 -1
- package/dist/m/{manifest-edit-29A26F22.js → manifest-edit-B28C1985.js} +1 -1
- package/dist/m/manifest.json +567 -567
- package/dist/m/page/{editor-EY2WAAGB.js → editor-BQEPCJLG.js} +2 -2
- package/dist/m/plugins/ai-edit-45A2J6LC.js +6 -0
- package/dist/m/plugins/cms-IFTKWF4S.js +2235 -0
- package/dist/m/plugins/{derive-FRE5JJQE.js → derive-QVI3LI3A.js} +1 -1
- package/dist/m/plugins/{indicator-4VDXWYTD.js → indicator-IPZJ35K6.js} +1 -1
- package/dist/m/plugins/{live-5EZN2EYP.js → live-GPQXSXSM.js} +1 -1
- package/dist/m/plugins/menu-UN3KRCOF.js +1 -0
- package/dist/m/plugins/{page-LVW5DWA4.js → page-BAVLWCP6.js} +2 -2
- package/dist/m/plugins/{page-view-5KQ76IJB.js → page-view-P3UGJFDZ.js} +1 -1
- package/dist/m/plugins/{people-C7TVBBMR.js → people-Z4RGVQAV.js} +1 -1
- package/dist/m/plugins/{quickcrop-BQ5YYFCH.js → quickcrop-E34PUYA3.js} +2 -2
- package/dist/m/plugins/{richclay-KLGETK77.js → richclay-S4NVJYIK.js} +2 -2
- package/dist/m/plugins/{source-CCEUM3OR.js → source-KVN6YNTY.js} +1 -1
- package/dist/m/plugins/{upgrade-NW556WJD.js → upgrade-KTSICB22.js} +1 -1
- package/dist/m/plugins/{wire-VRYPY6EJ.js → wire-SYVIBNSE.js} +1 -1
- package/dist/m/{reader-core-2GXY7SHY.js → reader-core-RUIFH32Y.js} +2 -2
- package/dist/m/sync/{live-sync-SKPMFYOO.js → live-sync-RGQMMWK2.js} +1 -1
- package/dist/m/ui/{index-QNIPDHXQ.js → index-EZGLEM5P.js} +1 -1
- package/dist/m/vendor/{sap-core.vendor-RN4ZVY4X.js → sap-core.vendor-OA5SKL7Q.js} +1 -1
- package/dist/offline-manifest.json +463 -469
- package/docs/guide.md +16 -8
- package/entries/sap.js +1 -1
- package/package.json +2 -2
- package/src/loader-logic.js +4 -1
- package/src/plugins/ai-edit.js +6 -17
- package/src/plugins/cms.js +3 -6
- package/src/plugins/menu/style.js +59 -31
- package/src/plugins/menu.js +131 -28
- package/src/ui/bevel.js +1 -1
- package/src/ui/skins/cms.js +1 -1
- package/src/ui/skins/quickcrop.js +1 -1
- package/src/ui/skins/richclay.js +1 -1
- package/src/vendor/hypercms.vendor.js +16 -69
- package/src/vendor/sap-core.vendor.js +1 -1
- package/dist/m/c-FSWRGBVQ.js +0 -1
- package/dist/m/c-HMYWIHFG.js +0 -1
- package/dist/m/c-M6FNQCTQ.js +0 -1
- package/dist/m/c-WFMRX5RZ.js +0 -1
- package/dist/m/loader-DZZLUBVB.js +0 -1
- package/dist/m/plugins/ai-edit-J5VLSW5I.js +0 -6
- package/dist/m/plugins/cms-LRAOZHT7.js +0 -2293
- package/dist/m/plugins/menu-KGWKT6CS.js +0 -1
- package/src/ui/skins/cms-toggle.js +0 -15
- /package/dist/m/plugins/{quickcrop-BQ5YYFCH.js.LEGAL.txt → quickcrop-E34PUYA3.js.LEGAL.txt} +0 -0
- /package/dist/m/plugins/{richclay-KLGETK77.js.LEGAL.txt → richclay-S4NVJYIK.js.LEGAL.txt} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as se,c as L}from"../c-JDZDF2QM.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as he}from"../c-VJYEVRYK.js";import{P as Pe,Q as Ce,f as te,j as ge,k as de,l as le,m as ce,o as ue,r as be,t as fe,y as me}from"../c-
|
|
1
|
+
import{a as se,c as L}from"../c-JDZDF2QM.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as he}from"../c-VJYEVRYK.js";import{P as Pe,Q as Ce,f as te,j as ge,k as de,l as le,m as ce,o as ue,r as be,t as fe,y as me}from"../c-4RFZROCF.js";import"../c-EXKHPOVC.js";import"../c-L5VFATT6.js";import{n as oe}from"../c-4TWARTLS.js";import"../c-Q5KAQJAG.js";import{a as pe,b as ie,d as ne}from"../c-W4JCVLAB.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as ze,B as Ee,H as Ae,b as ae,c as re,f as R,k as ve,o as ke,w as we,z as ye}from"../c-TMT5TL65.js";import{G as Y,J,N as Q,P as Z,S as ee,a as W,b as u,d as v,e as B,f as D,g as w,h as U,i as X,m as b,w as G}from"../c-QIXT3Q7C.js";import{a as q,c as Be,d as F}from"../c-L7K5EXU2.js";import{a as xe}from"../c-BYTKL6UX.js";import"../c-OI2BYWVV.js";import"../c-57XDY6HC.js";import{b as I}from"../c-RS77ODLY.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-IJUK2GPW.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:V,DecorationSet:qe}=v,Ve="Type / for blocks",$e="Untitled",He="To do";function _e(e){let a=!1,r=null;return e.forEach((o,t)=>{a||o.type!==b.nodes.heading||o.attrs.level!==1||(o.attrs.parent??null)!==null||(a=!0,o.content.size||(r=V.node(t,t+o.nodeSize,{class:"page-title-placeholder","data-placeholder":$e})))}),r}function Ne(e){let a=[];return e.forEach((r,o)=>{r.type!==b.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||a.push(V.node(o,o+r.nodeSize,{class:"page-check-placeholder","data-placeholder":He}))}),a}function Se(e=Ve){return new u.Plugin({props:{decorations(a){let r=Ne(a.doc),o=_e(a.doc);o&&r.push(o);let{selection:t}=a;if(t.empty){let p=t.$from;if(p.depth===1){let n=p.parent;if(n.type===b.nodes.paragraph&&!n.content.size){let d=p.before(1);r.push(V.node(d,d+n.nodeSize,{class:"page-placeholder","data-placeholder":e}))}}}return r.length?qe.create(a.doc,r):null}}})}var De=new u.Plugin({props:{handleKeyDown(e,a){if(!(a.metaKey||a.ctrlKey)||!a.shiftKey||a.altKey)return!1;let r=a.key.toLowerCase()==="o"?"owner":a.key.toLowerCase()==="d"?"date":null;if(!r||e.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let o of pe.get(e)??[])if(o.focusControl?.(e,r))return!0;return!1}}});var Me="page-editor-style",We=[1,2,3,4,5,6,7,8],Ue=`
|
|
2
2
|
--page-bg: #F7F6F2; --page-ink: #23221F; --page-ink-soft: #6B6862; --page-ink-faint: #9B968C;
|
|
3
3
|
--page-rule: rgba(35, 34, 31, 0.10); --page-accent: #2F5E9E; --page-link: #164583; --page-selection: rgba(88, 120, 170, 0.20);
|
|
4
4
|
--page-check-border: rgba(35, 34, 31, 0.35); --page-check-fill: #23221F; --page-check-ink: #F7F6F2;
|
|
@@ -301,4 +301,4 @@ ${We.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
|
|
|
301
301
|
.page-dock, .page-plus, .page-grip, .page-toggle-button, .page-image-handle, .page-upload-bar > span, .page-board-person { transition: none; }
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
|
-
`,Ge=(e,a)=>(a&&a(e.tr.replaceSelectionWith(b.nodes.hard_break.create()).scrollIntoView()),!0),Ye=(e,a,r)=>!a||!r?.editable||!G(e,b.marks.underline)?!1:(import("../c-
|
|
304
|
+
`,Ge=(e,a)=>(a&&a(e.tr.replaceSelectionWith(b.nodes.hard_break.create()).scrollIntoView()),!0),Ye=(e,a,r)=>!a||!r?.editable||!G(e,b.marks.underline)?!1:(import("../c-FNIGX4FI.js").then(({formatMark:o,refuse:t})=>o(r,"underline").then(p=>{p?.status!=="applied"&&t(r,p?.message??"That format isn\u2019t available here.")}),()=>null),!0),Je=({history:e=!0,undo:a,redo:r}={})=>({"Mod-z":e?B.undo:()=>(a?.(),!0),"Shift-Mod-z":e?B.redo:()=>(r?.(),!0),"Mod-y":e?B.redo:()=>(r?.(),!0),"Shift-Enter":Ge,"Mod-b":w.toggleMark(b.marks.strong),"Mod-i":w.toggleMark(b.marks.em),"Mod-u":Ye}),Qe=(e,a,r)=>ge(null,r)?!1:U.undoInputRule(e,a&&(o=>a(Ee(o)))),Ze={Backspace:w.chainCommands(Qe,ce),"Mod-e":w.toggleMark(b.marks.code),"Mod-Shift-s":w.toggleMark(b.marks.strike)},ea=(e,a)=>globalThis.clay?.upload?.(e,a)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Te=new WeakMap,T=new u.PluginKey("lazyViews"),$=class{constructor(a,r){this.node=a,this.type=a.type,this.registry=r;let{dom:o,contentDOM:t}=W.DOMSerializer.renderSpec(document,a.type.spec.toDOM(a));this.dom=o,this.contentDOM=t??null}update(a){return a.type===this.type&&!this.registry.has(a.type.name)}};function aa(){return new u.Plugin({key:T,state:{init:()=>v.DecorationSet.empty,apply(e){let a=e.getMeta(T);if(!a)return v.DecorationSet.empty;let r=[];return e.doc.forEach((o,t)=>{a.types.includes(o.type.name)&&r.push(v.Decoration.node(t,t+o.nodeSize,{},{lazyView:r.length+1}))}),v.DecorationSet.create(e.doc,r)}},props:{decorations:e=>T.getState(e)}})}function ra({view:e,upload:a,toolHost:r,board:o=null,undo:t=null,redo:p=null,revise:n=null,highlight:d},s,m){let x=m.createFeature({view:e,upload:a,toolHost:r,board:o,undo:t,redo:p,revise:n,highlight:d}),y=Te.get(e),z=()=>{if(x.css&&I(`page-feature-${s}`,x.css,`page-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let A=Object.keys(x.nodeViews);for(let k of A)y.set(k,x.nodeViews[k]);e.dispatch(e.state.tr.setMeta(T,{types:A}).setMeta("addToHistory",!1))},E=()=>{e.isDestroyed||(e.composing?setTimeout(E,25):z())};return e.composing?e.dom.addEventListener("compositionend",()=>setTimeout(E,25),{once:!0}):z(),x}function oa(e){return new u.Plugin({view(a){let r=new Set,o=()=>{for(let p of r)e.has(p)&&r.delete(p);a.state.doc.forEach(p=>{let n=Be(p);!n||e.has(n)||r.has(n)||e.ensure(n).catch(()=>{r.add(n)})})},t=a.state.doc;return o(),{update(){a.state.doc!==t&&(t=a.state.doc,o())}}}})}function ta({load:e=()=>Promise.reject(new Error("page: this editor has no command module")),context:a=()=>({}),reportError:r}={}){let o=new Map,t=new Set,p=null,n=null,d=!0,s=!1,m=0,x=l=>{let g=o.get(l);return g||(g=Promise.resolve(e(l)),o.set(l,g),g.catch(()=>{o.get(l)===g&&o.delete(l)})),g},y=()=>(n??=L({load:x,install:(l,g)=>g.createFeature(a(p)),reportError:r??((l,g)=>console.error(`clayjs: the ${g} command failed to load`,l))}),n),z=()=>{let l=m,g=p.state.selection;return{revision:l,selection:g,valid:()=>d&&!s&&!p.isDestroyed&&m===l&&p.state.selection.eq(g)}};function E(l,g){l.doc!==g.doc&&(m+=1);for(let h of t)h.lease.valid()||(t.delete(h),h.controller.abort({ok:!1,code:"stale-target"}))}async function A(l,g){if(!d||s||!p||p.isDestroyed)return{ok:!1,code:"not-editing"};let h={lease:z(),controller:new AbortController};t.add(h);try{let c=await y().ensure(l,{signal:h.controller.signal});return c?h.lease.valid()?await c.run(g):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(c){return h.controller.signal.aborted?h.controller.signal.reason:{ok:!1,code:"unavailable",error:c}}finally{t.delete(h)}}function k(){if(d){d=!1;for(let l of t)l.controller.abort({ok:!1,code:"not-editing"});t.clear()}}function S(){k(),n?.dispose(),n=null}return{attach(l){p=l},observe:E,run:A,enter(){s||(d=!0)},quiesce:k,leave:S,dispose(){S(),s=!0,d=!1,o.clear()}}}var H=new WeakMap;function pa(e){return new u.Plugin({view:()=>({update:(a,r)=>e.observe(a.state,r)}),props:{handleTextInput(a,r,o,t){return t!=="@"||a.composing||!Object.hasOwn(F,"mentions")?!1:(a.dispatch(a.state.tr.insertText("@",r,o)),e.run("mentions",{from:r,to:r+1}),!0)}}})}function qa(e,a,r){let o=e?H.get(e):null;return o?Object.hasOwn(F,a)?o.run(a,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function ia(e){return new u.Plugin({view(a){let r=e?()=>e.tablesChanged():()=>xe.get(a)?.tablesChanged?.(),o=a.state.doc;return{update(t){t.state.doc!==o&&(o=t.state.doc,r())}}}})}function na({upload:e=ea,highlight:a,history:r=!0,undo:o,redo:t,onAiTool:p=null,toolHost:n=null,features:d=null,commandHost:s=null}={}){return[re(),me({onAiTool:p}),s?pa(s):null,fe(),ia(n),ae(),ue(),Ae(),de(),le(),Se(),se(),D.keymap(Ze),Pe,De,D.keymap(ze),D.keymap(Je({history:r,undo:o,redo:t})),D.keymap(w.baseKeymap),ve(),ee(),Ce(),ne(),te({upload:e}),we(),oe({upload:e,features:d}),he(),ye(),be(),r?B.history():null,X.gapCursor(),aa(),d?oa(d):null].filter(Boolean)}function ga(e,a={}){let r=e&&Object.keys(e).length?e:{[J()]:{t:"paragraph",pos:Y(),c:""}},o=a.doc??Z(b,r);return u.EditorState.create({doc:o,plugins:na(a)})}function Va(e){!e||e.isDestroyed||e.updateState(e.state)}function $a(e,a,{quiesce:r=!1}={}){if(!e||e.isDestroyed)return!1;let o=a===!0;e.setProps({editable:()=>o});let t=H.get(e);return o?t?.enter():r?t?.quiesce():t?.leave(),o}function da(e,a){let r=a.target.closest?.('.page-li[data-kind="check"]');if(!r||!e.dom.contains(r))return!1;let o=r.getBoundingClientRect(),t=parseFloat(getComputedStyle(r).paddingInlineStart)||0,p=getComputedStyle(r).direction==="rtl"?o.right-a.clientX:a.clientX-o.left;if(p<0||p>t)return!1;let n=e.posAtDOM(r,0)-1,d=e.state.doc.nodeAt(n);return d?(a.preventDefault(),e.dispatch(e.state.tr.setNodeMarkup(n,null,{...d.attrs,checked:!d.attrs.checked})),!0):!1}function Ha(e,{blocks:a=null,onChange:r=null,upload:o,highlight:t,doc:p,dispatch:n,history:d=!0,undo:s,redo:m,editable:x=!0,toolHost:y=null,onAiTool:z=null,reviseTool:E=null,board:A=null,features:k=null,formatGate:S=null}={}){let l=e.ownerDocument;I(Me,Xe,Me,["editor-ui"]);let g=l.createElement("div");g.className="page-shell",g.setAttribute("clay","editor-ui"),g.setAttribute("sap-ignore",""),e.appendChild(g);let h=!1,c=null,O=k??L({load:i=>q[i].load(),install:(i,f)=>ra({view:c,upload:o,toolHost:y,board:A,undo:s,redo:m,revise:E,highlight:t},i,f)}),M=ta({load:i=>F[i].load(),context:i=>({view:i,upload:o})}),j=new Map,_={};for(let i of Object.values(q))for(let f of i.views??i.types)_[f]=(C,Ke,Ie,Le,Re)=>{let N=j.get(C.type.name);return N?N(C,Ke,Ie,Le,Re):new $(C,j)};c=new v.EditorView(g,{state:ga(a,{upload:o,highlight:t,doc:p,history:d,undo:s,redo:m,onAiTool:z,toolHost:y,features:O,commandHost:M}),attributes:{class:"page-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:_,handleDOMEvents:{mousedown:da,dragstart(i,f){let C=i.state.selection;return C instanceof u.NodeSelection||C instanceof ke?(f.preventDefault(),!0):!1}},dispatchTransaction(i){if(n){n(i);return}h&&i.docChanged&&!i.getMeta(R)&&B.closeHistory(i),i.docChanged&&(h=!!i.getMeta(R));let f=c.state.doc;c.updateState(c.state.apply(i)),r&&c.state.doc!==f&&r(Q(c.state.doc))}}),Te.set(c,j),ie.set(c,O),M.attach(c),H.set(c,M);let Oe=c.destroy.bind(c),P=null,K=!1,je=()=>(P||(P=Promise.resolve().then(()=>S()).catch(i=>{throw P=null,i})),P);return c.runFormatCommand=async i=>{if(K)return{status:"disposed",retry:!1};if(!S)return{status:"unsupported-host",code:"page-format-unsupported",retry:!1};let f=await je();return K?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:i})},c.destroy=()=>{K=!0,P&&P.then(i=>i?.dispose?.(),()=>{}),M.dispose(),O.dispose(),Oe()},c}export{Xe as PAGE_EDITOR_CSS,Ha as createPageEditor,ra as installPageFeature,T as lazyViewsKey,aa as lazyViewsPlugin,na as pagePlugins,ga as pageState,Va as refreshMountedView,qa as runPageCommand,$a as setEditorActive};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as ve}from"../c-AQYCG7QW.js";import{c as Ee}from"../c-ZAHTFCXQ.js";import{e as Pe,g as H,h as _e,j as oe,l as xe,n as ye,p as $e,q as d}from"../c-IHUWUKIU.js";import{a as De}from"../c-4JZDZFF6.js";import{b as $,c as we,d as ie,e as w,f as Fe}from"../c-EUGJVHDD.js";import{b as T}from"../c-MHI3GYKF.js";import{b as Ke}from"../c-TUGVINJR.js";import{a as ae,b as We}from"../c-FILLTJA7.js";import{b as m}from"../c-NUHP2XDB.js";import"../c-TWCXBWS3.js";import{a as Ne}from"../c-VKEDWYDF.js";import{m as Be,n as re}from"../c-DKFSOJCV.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-GSRLXYWL.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as be}from"../c-LA2BW7UY.js";import"../c-ZKELCT4T.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import{k as He}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-EGTIAL6P.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as U,o as Ie}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ye="ai-edit",ft="h1,h2,h3,h4,h5,h6,p,figure",pt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",ht="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",Je="script,style,template,textarea,input,select,button,iframe,svg,math",mt=900*1024,gt="This section is too large for AI editing; select a smaller part.",bt="The save did not finish; the edit is still on the page.",wt=0,a=null,r,g,c,y,E,h,b,v,L,N,F,D,M,I={},p=null,R=null,k=null,se=!1,te=new WeakMap,he=new Set,f=null,j=null,x=null,_,P,de=null,C=null,K=null,A=null,X=null,ce=[],W=null,Te=0;function Xe(e){te.delete(e),he.delete(e)}function Le(e,t){if(!t){Xe(e);return}te.set(e,t),he.add(e)}var Qe="clay-ai-edit",ze="AI editing is turned off. Turn it on from the app\u2019s menu.";async function Ze(){let t=(await Ee.helpers()).find(n=>n.name===Ye);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}function xt(){be.pause()}function Ae(){be.resume()}function le(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(ft);return n&&t.contains(n)?n:t}function yt(e){if(e===document.body)return"document";let t=e.getAttribute("data-edit-id");if(t)return t;let n=e.closest("[data-edit-id]");return n?n.getAttribute("data-edit-id")+" \u203A "+e.tagName.toLowerCase():e.id?"#"+e.id:e.tagName.toLowerCase()}function me(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function et(e){let t=e.commonAncestorContainer;if(t.nodeType!==1&&(t=t.parentElement),!t||!document.body.contains(t))return null;if(t===document.body)return document.body;if(t.closest("[data-clay-ai-edit]")||t.closest(U)||t.closest(Je))return null;if(t.closest("[data-edit-id]"))return le(t);let n=t.closest(pt)||t.closest(ht);return n&&n!==document.body?n:null}function tt(e,t){if(!e||!t||!t.contains(e.commonAncestorContainer))return;let n=e.toString();if(!n.trim())return;let i=document.createRange();i.selectNodeContents(t),i.setEnd(e.startContainer,e.startOffset);let o=i.toString().length;return{text:n,start:o,end:o+n.length}}function ue(e){let t=me();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return tt(t,e)}}function nt(){let e=document.body.cloneNode(!0);return e.querySelectorAll(U).forEach(t=>t.remove()),e.outerHTML}function vt(e,t,n){let{HyperMorph:i}=ae();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function fe(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:o}=ae(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:o,handle:!1};e.docMode?(typeof t=="string"&&(t=new DOMParser().parseFromString(t,"text/html").body),i.morph(document.body,t,{morphStyle:"outerHTML",restoreFocus:document.activeElement?.localName!=="clay-editor-ui",scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(U))}})):vt(e.el,t,s),Ke()}function Et(e,t){let n=e.search(new RegExp("<"+t+"(\\s|>)","i"));if(n===-1)return null;let i=e.slice(n).replace(/\s*`{1,3}\s*$/,"");if(t.toLowerCase()==="body")return new DOMParser().parseFromString(i,"text/html").body;let o=document.createElement("template");o.innerHTML=i;let s=o.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ct(e,t,n){let i=e===document.body,o=[...t.matchAll(/(?<![\w\u00C0-\u024F.@\/:-])@([\w.-]*[/.][\w./-]*)/g)].map(u=>u[1].replace(/\.+$/,"")).filter(u=>u!=="page").filter(u=>/[/.]/.test(u)),s=i?nt():e.outerHTML,l={id:"req-"+Date.now().toString(36)+"-"+ ++wt,editId:yt(e),tag:e.tagName.toLowerCase(),elementHTML:s,comment:t,contextRefs:o};return n&&(l.quote=n.text,Number.isInteger(n.start)&&(l.selection={start:n.start,end:n.end})),!i&&/(?<![\w\u00C0-\u024F.@\/:-])@page(?![\w\/-]|\.\w)/.test(t)&&(l.page=!0),{id:l.id,el:e,docMode:i,tag:l.tag,reassertId:i?null:e.getAttribute("data-edit-id"),snapshot:s,payload:l,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function St(e,t,n){if(a=Ct(e,t,n),new Blob([JSON.stringify(a.payload)]).size>mt){a=null,pe(gt,"warn");return}if(Le(e,t),$t(),a.paused=!0,xt(),R={},Z("working"),O("Sending\u2026"),a.payload.page&&await window.clay.save(),!a)return;let i=Ee.send(a.payload,{helper:Ye,onStatus:({text:s})=>{a?.handle===i&&O(s)}});a.handle=i;let o=await i.done;!a||a.handle!==i||(await We(),!(!a||a.handle!==i)&&(o.state==="done"?kt(o.result||{}):o.state==="cancelled"?J("HTML Clay stopped this edit."):J(o.error||"the helper reported an error")))}var Tt=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Lt=new Set(["iframe","frame","object","embed","base","link"]);function At(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Mt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Ce(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Ge(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let o=i.tagName.toLowerCase();o==="script"?Mt(i)&&n("script "+Ce(i)+"|"+i.textContent.trim()):(Lt.has(o)||o==="meta"&&i.hasAttribute("http-equiv")||(o==="animate"||o==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(o+" "+Ce(i));for(let s of i.attributes){let l=s.name.toLowerCase();Tt.test(l)?n(o+" "+l+"="+s.value.trim()):l==="srcdoc"?n(o+" srcdoc="+s.value):At(s.value)&&n(o+" "+l+"="+s.value)}}return t}function Ot(e,t,n){let i=n?new DOMParser().parseFromString(t,"text/html").body:(()=>{let s=document.createElement("template");return s.innerHTML=t,s.content.firstElementChild})(),o=i?Ge(i):new Map;for(let[s,l]of Ge(e))if(l>(o.get(s)||0))return!0;return!1}var Rt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function kt(e){if(!a||a.state!=="requesting")return;a.state="deciding";let t=[],n=Et(e.html||"",a.tag);if(!n){J(`reply is not a single <${a.tag}> element`);return}if(!a.docMode){let i=document.createElement("template");i.innerHTML=e.html||"",i.content.children.length>1&&t.push("reply had extra root elements \u2014 kept the first")}if(a.reassertId&&n.setAttribute("data-edit-id",a.reassertId),Ot(n,a.snapshot,a.docMode)){J(Rt);return}Be(),a.held=!0,a.finalCandidate=n;try{fe(a,n)}catch(i){J("the reply could not be applied: "+(i?.message||i));return}S(),Xe(a.el),Z("ready"),O(Ht(t,e.model),t.length?"warn":"")}function Ht(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function J(e){a&&(ne(),Z("error"),O(e,"warn"))}function ne(){let e=a;if(a=null,!!e)try{(e.state==="requesting"||e.state==="deciding")&&ae()&&fe(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ae(),e.held&&re(),S()}}async function it(){let e=a;if(!e)return;a=null;let t=e.docMode?nt():e.el.outerHTML;try{fe(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ae(),e.held&&re({replay:!1})}fe(e,t),S(),Z("saving"),O("Saving\u2026");let n=R,i=await window.clay.save();if(n===R){if(i&&i.ok===!1){Z("error"),O(i.msg||bt,"warn");return}O(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),_t()}}function ot(){a?.handle?.cancel(),ne(),q()}var qe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${ie}`];function B(e,t,n){return e.setAttribute(t,n),e}function It(){let{signal:e}=X;W=document.createElement("style"),W.setAttribute("clay",Pe),W.textContent=`
|
|
2
|
+
[editmode\\:contenteditable][contenteditable]:focus {
|
|
3
|
+
outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
|
|
4
|
+
}
|
|
5
|
+
::highlight(clay-ai-edit) { background-color: ${w["brass-soft"]} !important; }
|
|
6
|
+
`,document.head.appendChild(W);let t=`color-scheme:${De()}`;g=B(oe("div",["box-sizing:content-box","position:fixed","z-index:99998","pointer-events:none",`border:2px solid ${w.brass}`,"border-radius:0",t]),"data-clay-ai-edit","ring"),d(g,!1),r=B(xe("div",["position:fixed","z-index:99999","width:min(28rem, calc(100vw - 32px))","padding:12px","border-radius:12px",`box-shadow:${ie}`,`font:13px/1.5 ${$}`,t]),"data-clay-ai-edit","panel"),d(r,!1),r.setAttribute("role","dialog"),r.setAttribute("aria-label","AI edit");let n=(u,V)=>B(u,"data-clay-ai-edit-part",V);E=n(oe("div",["position:absolute","width:12px","height:12px","pointer-events:none",`background:${w.surface}`,`border-left:1px solid ${w["line-2"]}`,`border-top:1px solid ${w["line-2"]}`]),"pointer"),d(E,!1),c=n($e("textarea",{rules:["flex:1","min-width:0","min-height:40px","max-height:9.5em","resize:none","overflow-y:auto","padding:8px 12px",`font:15px/1.45 ${$}`]}),"input"),c.rows=1,c.placeholder="Describe the change",c.setAttribute("aria-label","Describe the change"),c.title="Enter sends \xB7 Shift+Enter adds a line \xB7 @fable or @codex picks another agent \xB7 @file.ext adds context",y=n(ye("div",["display:block","margin-top:0",`color:${w.muted}`,`font:12.5px/1.5 ${we}`]),"status"),y.setAttribute("role","status"),y.setAttribute("aria-live","polite"),I.send=n(H("Send",{variant:"primary",extra:["min-height:40px","flex:none"]}),"send"),d(I.send,!0,"inline-flex");let i=oe("div",["display:flex","align-items:flex-start","gap:8px"]);i.append(c,I.send),r.append(E,i,y),v=B(xe("div",["position:fixed","left:50%","bottom:16px","transform:translateX(-50%)","z-index:99999","width:min(35rem, calc(100vw - 32px))","padding:8px 10px","border-radius:12px","gap:8px","align-items:center",`box-shadow:${ie}`,`font:13px/1.5 ${$}`,t]),"data-clay-ai-edit","status-bar"),d(v,!1,"flex"),L=n(ye("div",["display:block","flex:1","min-width:0","overflow:hidden","text-overflow:ellipsis","white-space:nowrap",`color:${w.muted}`,`font:12.5px/1.5 ${we}`]),"bar-status"),L.setAttribute("role","status"),L.setAttribute("aria-live","polite"),N=n(H("Stop",{extra:["flex:none"]}),"bar-stop"),F=n(H("Keep",{variant:"primary",extra:["flex:none"]}),"bar-keep"),D=n(H("Revert",{variant:"quiet",extra:["flex:none"]}),"bar-revert"),M=n(_e(Fe.toastClose,{label:"Dismiss error"}),"bar-close"),M.pin({flex:"none"});for(let u of[N,F,D,M])d(u,!1,"inline-flex");v.append(L,N,F,D,M),h=B(H("AI",{small:!0,extra:["position:fixed","width:26px","height:26px",`font:600 11px/1 ${$}`,...qe,t]}),"data-clay-ai-edit","chip"),h.title="Comment on this (\u2318J)",d(h,!1,"inline-grid"),b=B(H("AI",{extra:["position:fixed","width:40px","height:40px",`font:600 14px/1 ${$}`,...qe,t]}),"data-clay-ai-edit","bubble"),b.title="Comment on the whole page",Se(),document.body.append(g,r,v,h,b),z(),I.send.addEventListener("click",Ve),N.addEventListener("click",ot),F.addEventListener("click",it),D.addEventListener("click",()=>{ne(),q()}),M.addEventListener("click",()=>{p==="error"&&q()}),c.addEventListener("keydown",u=>{u.key==="Enter"&&!u.shiftKey&&(u.preventDefault(),I.send.hidden||Ve())}),c.addEventListener("input",Q),h.addEventListener("mousedown",u=>u.preventDefault()),h.addEventListener("click",()=>{let u=j,V=P;G(),u&&!a&&!p&&ee(u,V||ue(u))}),b.addEventListener("click",()=>{if(!(a||p)){if(!r.hidden&&f===document.body){c.value.trim()?c.focus():Y();return}ee(document.body,ue(document.body))}}),window.addEventListener("scroll",()=>{S(),G()},{passive:!0,signal:e}),window.addEventListener("resize",()=>{Se(),r&&!r.hidden&&Q(),S()},{passive:!0,signal:e});let o=()=>{Se(),S()};document.addEventListener("hcms:open",()=>{o(),setTimeout(o,350)},{signal:e}),document.addEventListener("hcms:close",()=>{o(),setTimeout(o,350)},{signal:e});let s=new MutationObserver(()=>z());s.observe(document.body,{childList:!0}),ce.push(s);let l=new MutationObserver(()=>{f&&!f.isConnected&&st()});l.observe(document.body,{childList:!0,subtree:!0}),ce.push(l)}function rt(){f?.isConnected&&S()}function Q(){m(c,"height","auto"),c.value&&m(c,"height",c.scrollHeight+2+"px"),rt()}function z(){let e=b?.ownerDocument;if(!e)return;let t=!p&&A==="ready"&&!!e.querySelector("[data-edit-id]");d(b,t,"inline-grid"),t&&T(b)}function Nt(e){!e||typeof window.Highlight!="function"||!window.CSS?.highlights||window.CSS.highlights.set(Qe,new window.Highlight(e))}function ge(){window.CSS?.highlights?.delete(Qe)}function at(){let e=A==="ready";c.disabled=!e,e?y.textContent===ze&&pe(""):pe(ze,"warn"),d(I.send,e,"inline-flex"),z()}function Ft(){Ze().then(e=>{r&&(A=e||"unavailable",!r.hidden&&!a?at():z())}).catch(()=>{})}function Se(){b&&(b.pin({right:"16px",bottom:"16px"}),T(b))}function Dt(e){clearTimeout(x),x=null,j=e,P=void 0;let t=e.getBoundingClientRect();h.pin({left:Math.min(t.right+8,window.innerWidth-34)+"px",top:Math.max(8,t.top)+"px"}),d(h,!0,"inline-grid"),T(h)}function G(){clearTimeout(x),x=null,d(h,!1,"inline-grid"),j=null,P=void 0}function je(){h.hidden||x||(x=setTimeout(G,400))}function Pt(){if(a||p||!r.hidden||A!=="ready"||lt())return;let e=me(),t=e&&et(e),n=t&&tt(e,t);if(!n){P&&G();return}let i=typeof e.getClientRects=="function"?e.getClientRects():[],o=i.length?i[i.length-1]:t.getBoundingClientRect();clearTimeout(x),x=null,j=t,P=n,h.pin({left:Math.min(o.right+6,window.innerWidth-34)+"px",top:Math.max(8,o.top+o.height/2-13)+"px"}),d(h,!0,"inline-grid"),T(h)}function pe(e,t){m(y,"margin-top",e?"8px":"0"),y.textContent=e||"",t==="warn"?y.setAttribute("data-tone","warn"):y.removeAttribute("data-tone"),m(y,"color",t==="warn"?w.ox:w.muted),rt()}function O(e,t){L.textContent=e||"",t==="warn"?L.setAttribute("data-tone","warn"):L.removeAttribute("data-tone"),m(L,"color",t==="warn"?w.ox:w.muted)}function Z(e){clearTimeout(k),k=null;let t=!!p,n=document.activeElement;p=e;let i={working:[N],ready:[F,D],error:[M],saving:[]}[e]||[],o=[N,F,D,M];for(let l of o)d(l,i.includes(l),"inline-flex");G(),d(v,!0,"flex"),z(),S(),T(v);let s=i[0];s&&(!t||o.includes(n)&&!i.includes(n))&&s.focus({preventScroll:!0})}function _t(){clearTimeout(k);let e=R;k=setTimeout(()=>{e&&e===R&&q()},1500)}function q(e){e!==void 0&&e!==R||(clearTimeout(k),k=null,R=null,r.hidden||Me(),p=null,d(v,!1,"flex"),O(""),f=null,C=null,K=null,_=void 0,ge(),d(r,!1),c.value="",d(g,!1),d(E,!1),z())}function S(){if(!f)return;if(!f.isConnected){st();return}if(f===document.body){if(d(g,!1),d(E,!1),r.hidden)return;let Re=b.getBoundingClientRect(),ke=r.offsetWidth||480;m(r,"left",Math.max(16,Math.min((Re.right||window.innerWidth-16)-ke,window.innerWidth-ke-16))+"px"),m(r,"top",Math.max(16,(Re.top||window.innerHeight-56)-(r.offsetHeight||120)-12)+"px");return}let e=f.getBoundingClientRect();if(d(g,!!p||!_||!!a),m(g,"left",e.left-5+"px"),m(g,"top",e.top-5+"px"),m(g,"width",e.width+6+"px"),m(g,"height",e.height+6+"px"),r.hidden)return;let t=C&&C.startContainer.isConnected&&typeof C.getBoundingClientRect=="function"?C.getBoundingClientRect():null,n=t&&(t.width||t.height)?t:e,i=r.offsetWidth||480,o=Math.max(16,Math.min(n.left,window.innerWidth-i-16)),s=n.bottom+10,l=r.offsetHeight||120;s+l>window.innerHeight-16&&(s=Math.max(16,n.top-l-10)),m(r,"left",o+"px"),m(r,"top",s+"px");let u=s>=n.bottom,V=Math.max(14,Math.min(n.left+10-o,i-28));d(E,!0),m(E,"left",V+"px"),m(E,"top",u?"-7px":l-6+"px"),m(E,"transform",u?"rotate(45deg)":"rotate(225deg)")}function ee(e,t){!r.hidden&&f&&f!==e&&Me();let n=t?me():null,i=document.activeElement;K=i&&i!==document.body&&!r.contains(i)?i:null,f=e,C=n?n.cloneRange():null,G(),d(r,!0),_=t;let o=t?t.text.trim().length>400?t.text.trim().slice(0,400)+"\u2026":t.text.trim():"";r.dataset.quote=o,pe(""),c.value=te.get(e)||"",Nt(C),at(),S(),Q(),T(r),T(g),c.focus(),Ft()}function Me(){f&&Le(f,c.value)}function Y(){a&&(a.handle?.cancel(),ne());let e=K,t=r.contains(document.activeElement);Me(),f=null,C=null,K=null,_=void 0,ge(),d(r,!1),d(g,!1),c.value="",Q(),t&&e&&e.isConnected&&e.focus({preventScroll:!0})}function $t(){C=null,K=null,_=void 0,ge(),d(r,!1),c.value="",Q(),S(),T(g)}function st(){let e=a;e&&(e.handle?.cancel(),ne()),q()}function Ve(){let e=c.value.trim();!e||!f||a||A!=="ready"||St(f,e,_)}var Bt=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent||"");function Wt(e){return!(Bt?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey)||e.shiftKey||e.altKey||e.repeat||e.isComposing?!1:e.code==="KeyJ"||(e.key||"").toLowerCase()==="j"}function lt(){let e=ve();return!e||e===document.body?!1:r&&r.contains(e)?!r.hidden:e.matches("input,textarea,select")}var Kt='[data-clay-modal], dialog[open], [aria-modal="true"]',zt='input,textarea,select,[contenteditable=""],[contenteditable="true"]';function Gt(e){if(e.defaultPrevented||document.querySelector(Kt))return!1;let t=ve();return!t||t===document.body||r.contains(t)||v.contains(t)?!0:t.isContentEditable===!0?!1:!t.matches(zt)}function qt(){let{signal:e}=X;document.addEventListener("pointerdown",n=>{se=r.contains(n.target)},{capture:!0,signal:e}),document.addEventListener("click",n=>{let i=se;if(se=!1,i||r.contains(n.target)||v.contains(n.target)||h.contains(n.target)||b.contains(n.target)||a||p)return;let o=n.target.closest?.("[data-edit-id]"),s=o?le(n.target):null;if(o&&s===o){let l=!r.hidden&&o===f;r.hidden||Y(),l||ee(o,ue(o))}else r.hidden||Y()},{signal:e});let t=0;document.addEventListener("mousemove",n=>{let i=Date.now();if(i-t<80)return;if(t=i,a||p||!r.hidden){je();return}if(A!=="ready"||P)return;if(h.contains(n.target)){clearTimeout(x),x=null;return}let o=le(n.target);o?Dt(o):je()},{signal:e}),document.addEventListener("keydown",n=>{if(Wt(n)){if(p||a||lt())return;f&&!f.isConnected&&Y();let i=me(),o=i?et(i):null;if(!o){let s=window.getSelection(),l=s&&s.anchorNode;l&&l.nodeType!==1&&(l=l.parentElement),o=l&&le(l)||j}if(!o)return;n.preventDefault(),ee(o,ue(o));return}if(n.key==="Escape"&&Gt(n)){if(p==="working"){ot();return}if(p==="ready"){it();return}if(p==="error"){q();return}p||r.hidden||Y()}},{signal:e}),document.addEventListener("selectionchange",()=>{clearTimeout(de),de=setTimeout(Pt,150)},{signal:e})}async function dt(){let e=++Te;return A=await Ze(),e===Te}function ct(){!A||r||(X=new AbortController,It(),qt())}async function Oe(){!He()||r||await dt()&&ct()}function Ue(e){return e instanceof Element&&e.ownerDocument===document&&document.body.contains(e)&&!e.closest("[data-clay-ai-edit]")&&!e.closest(U)&&!e.closest(Ie)&&!e.closest(Je)}async function jt(e,{prompt:t}={}){return!Ue(e)||(await Oe(),await new Promise(n=>setTimeout(n,0)),!r||a||p||!Ue(e))?!1:!r.hidden&&f===e?(c.focus(),!0):(typeof t=="string"&&!te.has(e)&&Le(e,t),ee(e,null),!0)}function Vt(){Te++;let e=a;a=null;try{e?.handle?.cancel(),e&&(e.paused&&Ae(),e.held&&re())}catch{}clearTimeout(de),de=null,clearTimeout(x),x=null,clearTimeout(k),k=null,ge(),X?.abort(),X=null;for(let t of ce)t.disconnect();ce=[];for(let t of[W,g,r,v,h,b])t?.remove();W=g=r=c=y=E=v=L=null,N=F=D=M=h=b=null,I={},p=null,R=null,f=null,C=null,K=null,_=void 0,j=null,P=void 0,se=!1,A=null,te=new WeakMap,he.clear()}function sn(){return{id:"clay:ai-edit",order:950,prepare(e={}){let t=e.initial===!0;return{ready:t?ut:dt(),enable(){t||ct()},quiesce(){let n=r&&!r.hidden&&c.value.trim()!==""||[...he].some(o=>o.isConnected),i=[];if(a&&i.push(a.id),p==="saving"&&i.push("save"),n&&i.push("prompt"),!!i.length)throw Object.assign(new Error("clay.aiEdit: an edit here is still unresolved"),{code:"pending-input",pending:i})},resume(){},dispose(){Vt()}}}}}var ut=null;Ne(()=>{ut=Oe().then(()=>{},()=>{})});var ln={init:Oe,open:jt};export{ln as aiEdit,sn as aiEditParticipant,sn as modeParticipant};
|