@panphora/clayjs 1.24.0 → 1.25.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 +16610 -14400
- package/dist/m/attrs/{refetch-on-save-DPGJJMGN.js → refetch-on-save-5CBFUJUF.js} +1 -1
- package/dist/m/attrs/save-freeze-MH3AOD56.js +1 -0
- package/dist/m/c-277QP5ET.js +1 -0
- package/dist/m/{c-SXGEWPFC.js → c-3E2IK5HU.js} +1 -1
- package/dist/m/{c-A4L7APIU.js → c-4AE2A2LK.js} +1 -1
- package/dist/m/{c-DZPO22O3.js → c-4Q6QIODW.js} +1 -1
- package/dist/m/{c-RO73MKKR.js → c-52OC3OH3.js} +1 -1
- package/dist/m/{c-VNAYHV2J.js → c-5PZYDWTW.js} +1 -1
- package/dist/m/c-5Q5XBN56.js +1 -0
- package/dist/m/c-5SZ6KFR5.js +1 -0
- package/dist/m/{c-ZRGEN6QQ.js → c-AI3H6ETU.js} +2 -2
- package/dist/m/{c-7V6MGMX2.js → c-BCWYEG6P.js} +1 -1
- package/dist/m/{c-A7N5TNSL.js → c-BJ2RRQBQ.js} +1 -1
- package/dist/m/{c-CTGRDT6E.js → c-C6YZNU6E.js} +1 -1
- package/dist/m/{c-DLBX4JCJ.js → c-C7SUMNMI.js} +1 -1
- package/dist/m/c-CITLTVQ4.js +4 -0
- package/dist/m/{c-TWOXQQKV.js → c-CL5LSATX.js} +1 -1
- package/dist/m/c-CU33V6RW.js +4 -0
- package/dist/m/{c-2R4OBWIP.js → c-D62HRSZK.js} +1 -1
- package/dist/m/{c-DD26VXAP.js → c-DT7E76Z2.js} +1 -1
- package/dist/m/{c-54ZZZYUN.js → c-EAV7A6BT.js} +1 -1
- package/dist/m/{c-RBPZNU2D.js → c-EQ5NBOGA.js} +1 -1
- package/dist/m/{c-KQKKIVLW.js → c-FBOO2UY3.js} +1 -1
- package/dist/m/{c-RTSRGGTP.js → c-FJDTDGDA.js} +1 -1
- package/dist/m/{c-MQKSKQHG.js → c-FKTALXNV.js} +1 -1
- package/dist/m/{c-GNIVHLEJ.js → c-GDNZEOOZ.js} +1 -1
- package/dist/m/{c-SUXHUL7U.js → c-GEAG5XAK.js} +1 -1
- package/dist/m/{c-UM7VZDTW.js → c-GY4BREDT.js} +1 -1
- package/dist/m/{c-4PO3YGDC.js → c-HGG7M2S3.js} +1 -1
- package/dist/m/c-HKSLOVU4.js +1 -0
- package/dist/m/{c-KJHVB2KG.js → c-HXGNH6GY.js} +1 -1
- package/dist/m/{c-FLEIU6CG.js → c-IESDKFO6.js} +1 -1
- package/dist/m/{c-SNVDWMM3.js → c-IJHF4IO6.js} +1 -1
- package/dist/m/{c-SGGGCIVD.js → c-IL5IVTOG.js} +1 -1
- package/dist/m/c-JB5YU57S.js +1 -0
- package/dist/m/{c-MP6S4AZU.js → c-JD2VFAYG.js} +2 -2
- package/dist/m/{c-CV4T65JE.js → c-JWW6BHWD.js} +3 -3
- package/dist/m/{c-GM7OA6EJ.js → c-K4M76VPM.js} +1 -1
- package/dist/m/{c-RXTPKCMC.js → c-KU3PX7LL.js} +1 -1
- package/dist/m/{c-2PVGJFI5.js → c-KYTVZT4D.js} +1 -1
- package/dist/m/{c-RJKKRWHW.js → c-M7ITYKMF.js} +1 -1
- package/dist/m/c-MFB74XVN.js +3 -0
- package/dist/m/c-MOP5KBWZ.js +1 -0
- package/dist/m/{c-YB3CDTDZ.js → c-MUM53J5J.js} +1 -1
- package/dist/m/{c-YK2L436K.js → c-MV7TEUTD.js} +1 -1
- package/dist/m/{c-LA2BW7UY.js → c-MZCOGNZL.js} +1 -1
- package/dist/m/{c-YGGO2G2L.js → c-N4GEJMXW.js} +1 -1
- package/dist/m/{c-NQAPWM7O.js → c-NADLYVAH.js} +1 -1
- package/dist/m/{c-RS77ODLY.js → c-NL4I4KNG.js} +1 -1
- package/dist/m/{c-6UPEKW6O.js → c-O2QZDVZ2.js} +1 -1
- package/dist/m/{c-LTSPHVAK.js → c-OBMZASYQ.js} +1 -1
- package/dist/m/{c-LUXAB2XI.js → c-ORLPQFNU.js} +1 -1
- package/dist/m/c-P73XPAOA.js +1 -0
- package/dist/m/{c-PWJSJEJU.js → c-PNZIJFG7.js} +1 -1
- package/dist/m/{c-ZKKAF4UT.js → c-PRZNJUYZ.js} +2 -2
- package/dist/m/{c-Q6VNQDJE.js → c-Q2CB57UG.js} +1 -1
- package/dist/m/{c-TWCXBWS3.js → c-QCDVDZIR.js} +1 -1
- package/dist/m/{c-P5NKFRL4.js → c-QDVG4NAZ.js} +1 -1
- package/dist/m/c-QWB53KRW.js +1 -0
- package/dist/m/{c-GNI7WHKF.js → c-RGAALCDU.js} +1 -1
- package/dist/m/c-RHPHMTF2.js +2 -0
- package/dist/m/{c-BULK5J4M.js → c-RWJ3OSCP.js} +1 -1
- package/dist/m/{c-5FXEKU4Y.js → c-SEVOS4UE.js} +1 -1
- package/dist/m/{c-PMRRMT72.js → c-SFYTKRU7.js} +1 -1
- package/dist/m/{c-47IBJGPQ.js → c-SFZRY6RT.js} +1 -1
- package/dist/m/{c-QENKN7QI.js → c-SGG6MUXW.js} +1 -1
- package/dist/m/c-SMLAJASY.js +1 -0
- package/dist/m/{c-VSEUFJAO.js → c-SUAC5RSG.js} +1 -1
- package/dist/m/{c-6RGEQNVV.js → c-SXZYVXD6.js} +1 -1
- package/dist/m/{c-ZFO5RW6G.js → c-TCFVG3I4.js} +1 -1
- package/dist/m/{c-PZRWZZRO.js → c-TLQINES7.js} +2 -2
- package/dist/m/c-U4TWEIKZ.js +1 -0
- package/dist/m/{c-FZRZPIFS.js → c-U65PREMC.js} +1 -1
- package/dist/m/{c-7YETSAVY.js → c-U7F66I64.js} +1 -1
- package/dist/m/{c-WOELSNWS.js → c-UD4VDBGJ.js} +1 -1
- package/dist/m/{c-VI3BJHCM.js → c-V2FPBRO6.js} +1 -1
- package/dist/m/{c-2OIKXOY6.js → c-V4B3RUWB.js} +1 -1
- package/dist/m/{c-O5ARALMJ.js → c-V5L6HWVL.js} +1 -1
- package/dist/m/c-VMXCX52Q.js +1 -0
- package/dist/m/{c-PVJMJL3P.js → c-VO6RSFCO.js} +1 -1
- package/dist/m/c-WDFQ7PBU.js +1 -0
- package/dist/m/{c-OG6GFSUX.js → c-WGQVSKKC.js} +1 -1
- package/dist/m/c-WSTUCBHV.js +1 -0
- package/dist/m/{c-EY5KDUZF.js → c-WVCT3ITX.js} +1 -1
- package/dist/m/{c-SE3SIY7Y.js → c-X3V4RWMA.js} +1 -1
- package/dist/m/{c-HIX5H5L7.js → c-XHZIKRCV.js} +1 -1
- package/dist/m/{c-2BLVA6IN.js → c-XQTERKQA.js} +1 -1
- package/dist/m/{c-A5ZBFICF.js → c-YFO6ZJLQ.js} +1 -1
- package/dist/m/{c-PD5AKHY3.js → c-YX2MC7YL.js} +1 -1
- package/dist/m/{c-OYHI67B6.js → c-YYGUHSZR.js} +1 -1
- package/dist/m/{c-YYMZWQLR.js → c-Z2OZFX3N.js} +1 -1
- package/dist/m/{c-AT7GLQGV.js → c-ZEA3DCG3.js} +1 -1
- package/dist/m/{c-75N3KG35.js → c-ZJG6C2WL.js} +1 -1
- package/dist/m/{c-FVPNX2GO.js → c-ZORVIXUR.js} +1 -1
- package/dist/m/{c-FV46ZKGX.js → c-ZPI7M5U5.js} +1 -1
- package/dist/m/core/{admin-attrs-5UGMYCKW.js → admin-attrs-ZI6K6UGM.js} +1 -1
- package/dist/m/core/{autosave-4P66VXX7.js → autosave-BSM2ABJL.js} +1 -1
- package/dist/m/core/{conflict-notice-BAR23OWH.js → conflict-notice-7EQLDYPA.js} +1 -1
- package/dist/m/core/draft-mode-M5XNYBMY.js +1 -0
- package/dist/m/core/{host-permission-3HE4CFD6.js → host-permission-5BYP24GC.js} +1 -1
- package/dist/m/core/{is-edit-mode-GK7IFFMT.js → is-edit-mode-73OXKK5H.js} +1 -1
- package/dist/m/core/{persist-AIJGTKKI.js → persist-2SZO3PCE.js} +1 -1
- package/dist/m/core/{recovery-LPB6X72P.js → recovery-VZF7RJZF.js} +1 -1
- package/dist/m/core/{save-FV4ZCKBI.js → save-K6Q47J2X.js} +1 -1
- package/dist/m/core/{save-core-K7XFAWQ4.js → save-core-U3Z44XBO.js} +1 -1
- package/dist/m/core/{site-edits-TEQORBJU.js → site-edits-CFMF6GHD.js} +1 -1
- package/dist/m/core/{snapshot-FJP5IJL3.js → snapshot-PWCHYFL6.js} +1 -1
- package/dist/m/core/unsaved-warning-2WRZLJH5.js +1 -0
- package/dist/m/events/{index-B6TGDYMG.js → index-YKQIBZE5.js} +1 -1
- package/dist/m/internals/index-FSLC4M7J.js +1 -0
- package/dist/m/lib/{cache-bust-NH7VBWHO.js → cache-bust-BL4KUQAJ.js} +1 -1
- package/dist/m/loader-RC54UV7H.js +1 -0
- package/dist/m/manifest-3B84C829.js +1 -0
- package/dist/m/manifest-edit-1CB79AD4.js +1 -0
- package/dist/m/manifest.json +1215 -1129
- package/dist/m/options/{options-55LQHSJ4.js → options-LKIZ7YTG.js} +1 -1
- package/dist/m/page/{editor-KAZDJNND.js → editor-PKSPJ2XJ.js} +2 -2
- package/dist/m/plugins/{ai-edit-CUKQQWJX.js → ai-edit-3LG6MGS3.js} +1 -1
- package/dist/m/plugins/{cms-JANMGPHM.js → cms-T2HLI7JG.js} +16 -16
- package/dist/m/plugins/{demo-JIR7DXJA.js → demo-LMCMBILC.js} +1 -1
- package/dist/m/plugins/{derive-QVI3LI3A.js → derive-7DR5TUDH.js} +1 -1
- package/dist/m/plugins/{indicator-DAKZGAWI.js → indicator-CTKX4EY7.js} +1 -1
- package/dist/m/plugins/{live-UAJGWRNP.js → live-IFLL6YN5.js} +1 -1
- package/dist/m/plugins/{menu-BFJ644YX.js → menu-YJZ3JWBC.js} +1 -1
- package/dist/m/plugins/page-GTDPYGE4.js +2 -0
- package/dist/m/plugins/{page-view-OYN7Z5TS.js → page-view-NMCCU6MF.js} +1 -1
- package/dist/m/plugins/{people-VBDR5Y22.js → people-6WIWCZEG.js} +1 -1
- package/dist/m/plugins/{richclay-CBLZRFB4.js → richclay-L3BZMX4I.js} +3 -3
- package/dist/m/plugins/sortable-365SRRL3.js +1 -0
- package/dist/m/plugins/{source-ZXDD7F6X.js → source-7LSGOV46.js} +1 -1
- package/dist/m/plugins/{undo-5JI5G7CQ.js → undo-UES4KS7B.js} +1 -1
- package/dist/m/plugins/{upgrade-6B6QS3NR.js → upgrade-MMPZUCDM.js} +1 -1
- package/dist/m/plugins/{upload-DNJNW6H3.js → upload-NZET3DNQ.js} +1 -1
- package/dist/m/plugins/visitor-drafts-V5YB7XDH.js +20 -0
- package/dist/m/plugins/{visitor-drafts-owner-VIAZC3CF.js → visitor-drafts-owner-TLECTYWS.js} +1 -1
- package/dist/m/plugins/{visitor-menu-ZHKWIKKY.js → visitor-menu-QDV2MYJN.js} +1 -1
- package/dist/m/plugins/wire-3YGUO3GE.js +1 -0
- package/dist/m/{reader-core-F6RY3V64.js → reader-core-VR7EL4WV.js} +2 -2
- package/dist/m/sync/live-sync-XMXXZS3G.js +1 -0
- package/dist/m/vendor/sap-core.vendor-JANUQULT.js +7 -0
- package/dist/offline-manifest.json +724 -664
- package/docs/guide.md +1 -0
- package/entries/clay-data.js +1 -1
- package/entries/sap.js +6 -5
- package/package.json +2 -2
- package/src/core/draft-mode.js +11 -0
- package/src/core/save-core.js +16 -17
- package/src/core/save.js +1 -1
- package/src/core/unsaved-warning.js +2 -2
- package/src/lib/dirty-gate.js +19 -0
- package/src/lib/idb-error-code.js +20 -0
- package/src/loader.js +2 -0
- package/src/plugins/menu/visitor.js +33 -1
- package/src/plugins/page.js +19 -5
- package/src/plugins/sortable.js +7 -0
- package/src/plugins/visitor-drafts/commit.js +350 -0
- package/src/plugins/visitor-drafts/idb.js +227 -0
- package/src/plugins/visitor-drafts/prompt.js +23 -3
- package/src/plugins/visitor-drafts/recovery-menu.js +118 -0
- package/src/plugins/visitor-drafts/recovery.js +64 -0
- package/src/plugins/visitor-drafts/session.js +393 -0
- package/src/plugins/visitor-drafts/store.js +247 -27
- package/src/plugins/visitor-drafts.js +177 -28
- package/src/sync/live-sync.js +1 -1
- package/src/sync/wire-profile.js +9 -4
- package/src/vendor/hyper-html-api-data.vendor.js +1 -1
- package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
- package/src/vendor/hypercms.vendor.js +16 -16
- package/src/vendor/richclay.vendor.js +1 -1
- package/src/vendor/sap-core.vendor.js +6 -5
- package/src/vendor/sap-ownership.vendor.js +181 -11
- package/tool-generation/system.md +1 -1
- package/dist/m/attrs/save-freeze-JZHKRQLR.js +0 -1
- package/dist/m/c-234RSEIW.js +0 -1
- package/dist/m/c-2YIJ6ZA6.js +0 -1
- package/dist/m/c-H2H7TI6O.js +0 -1
- package/dist/m/c-HSNGLIFB.js +0 -3
- package/dist/m/c-JMDKPBMC.js +0 -4
- package/dist/m/c-LO4C4J77.js +0 -1
- package/dist/m/c-N7JPUPGC.js +0 -1
- package/dist/m/c-NEXFVJIT.js +0 -1
- package/dist/m/c-R23UHMXG.js +0 -1
- package/dist/m/c-T527QHOB.js +0 -1
- package/dist/m/c-V2U3F4QX.js +0 -1
- package/dist/m/c-VG5XIN4T.js +0 -1
- package/dist/m/c-YINHPF4V.js +0 -1
- package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
- package/dist/m/core/unsaved-warning-FF63QGKI.js +0 -1
- package/dist/m/internals/index-AX4CG7B2.js +0 -1
- package/dist/m/loader-5IA5OJ3J.js +0 -1
- package/dist/m/manifest-98258645.js +0 -1
- package/dist/m/manifest-edit-ABF56000.js +0 -1
- package/dist/m/plugins/page-ZBIYHGK4.js +0 -2
- package/dist/m/plugins/sortable-HDOQ6GAC.js +0 -1
- package/dist/m/plugins/visitor-drafts-A5FDQ2G7.js +0 -20
- package/dist/m/plugins/wire-XOT7XKJL.js +0 -1
- package/dist/m/sync/live-sync-M2PP2IWY.js +0 -1
- package/dist/m/vendor/sap-core.vendor-OA5SKL7Q.js +0 -6
- /package/dist/m/plugins/{richclay-CBLZRFB4.js.LEGAL.txt → richclay-L3BZMX4I.js.LEGAL.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as m}from"../c-7SWMYKAI.js";import{a as f}from"../c-
|
|
1
|
+
import{c as m}from"../c-7SWMYKAI.js";import{a as f}from"../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 w="option-visibility",y=[{prefix:"option-not",kind:"show-not"},{prefix:"option",kind:"show"},{prefix:"show-when",kind:"show"},{prefix:"hide-when",kind:"hide"}];function x(t,e){let n=null;for(let o of y)if(t.startsWith(o.prefix+":")){n=o;break}if(!n)return null;let r=t.slice(n.prefix.length+1),i=e,s=i.split("|");return{name:r,rawValue:i,values:s,kind:n.kind,prefix:n.prefix,negated:n.kind==="show-not"}}var h={debug:!1,_started:!1,_unsubscribe:null,log(...t){this.debug&&console.log("[OptionVisibility]",...t)},findOptionAttributes(){let t=new Map;try{let e=document.evaluate('//*[@*[starts-with(name(), "option:") or starts-with(name(), "option-not:") or starts-with(name(), "show-when:") or starts-with(name(), "hide-when:")]]',document.documentElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let n=0;n<e.snapshotLength;n++){let r=e.snapshotItem(n);for(let i of r.attributes){let s=x(i.name,i.value);if(!s)continue;let o=`${s.prefix}:${s.name}=${s.rawValue}`;t.has(o)||t.set(o,s)}}}catch(e){this.log("XPath error, falling back to empty",e)}return[...t.values()]},generateCSS(t){return t.length?t.map(e=>{let{name:n,rawValue:r,values:i}=e,s=e.kind||(e.negated?"show-not":"show"),o=e.prefix||(s==="show-not"?"option-not":s==="hide"?"hide-when":"option"),a=CSS.escape(n),b=CSS.escape(r),u=`[${CSS.escape(o)}\\:${a}="${b}"]`,S=i.map(c=>`[${a}="${CSS.escape(c)}"]`),g=i.map(c=>`[${a}="${CSS.escape(c)}"] *`),p=[...S,...g].join(",");if(s==="hide")return`${u}:is(${p}){display:none!important}`;let l;if(s==="show-not"){let c=i.map($=>`[${a}="${CSS.escape($)}"]`).join(","),d=`[${a}]:not(${c})`;l=`${d},${d} *`}else l=p;return`${u}:not(:is(${l})){display:none!important}`}).join(""):""},update(){try{let t=this.findOptionAttributes(),e=this.generateCSS(t);m(w,e,n=>{n.setAttribute("clay","no-watch")}),this.log(`Generated ${t.length} rules`)}catch(t){console.error("[OptionVisibility] Error generating rules:",t)}},start(){if(!this._started){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.start(),{once:!0});return}this._started=!0,this.update(),this._unsubscribe=f.onAnyChange({debounce:200,selectorFilter:t=>[...t.attributes].some(e=>e.name.startsWith("option:")||e.name.startsWith("option-not:")||e.name.startsWith("show-when:")||e.name.startsWith("hide-when:")),omitChangeDetails:!0,require:"observed",pausable:!1},()=>this.update()),this.log("Started")}},stop(){if(!this._started)return;this._started=!1,this._unsubscribe&&(this._unsubscribe(),this._unsubscribe=null);let t=document.querySelector(`style[data-name="${w}"]`);t&&t.remove(),this.log("Stopped")}};window.clay.optionVisibility=h;var O=h;function _(){h.start()}_();export{O as default,_ as init,x as parseOptionAttribute};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ho,c as R}from"../c-
|
|
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 Do,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-JWW6BHWD.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-DT7E76Z2.js";import"../c-C6YZNU6E.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 q,k as yo,p as zo,x as Eo}from"../c-AI3H6ETU.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 V,c as Mo,d as T}from"../c-SXZYVXD6.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 D,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-WCG6AKA7.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:Ho}=m,_o="Type / for blocks",No="Untitled",Wo="To do";function Uo(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":No})))}),r}function Xo(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":Wo}))}),e}function Fo(o=_o){return new h.Plugin({props:{decorations(e){let r=Xo(e.doc),t=Uo(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 n=d.before(1);r.push($.node(n,n+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?Ho.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",Go=[1,2,3,4,5,6,7,8],Yo=`
|
|
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 @@ ${Go.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
|
-
`,Qo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),Zo=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-
|
|
307
|
+
`,Qo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),Zo=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-TCFVG3I4.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),oe=({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":Qo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":Zo}),ee=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),re={Backspace:y.chainCommands(ee,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},te=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Ko=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 ie(){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 de({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:n},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:n}),z=Ko.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 le(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=Mo(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 ce({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,n=!0,s=!1,u=0,x=a=>{let b=t.get(a);return b||(b=Promise.resolve(o(a)),t.set(a,b),b.catch(()=>{t.get(a)===b&&t.delete(a)})),b},z=()=>(c??=R({load:x,install:(a,b)=>b.createFeature(e(d)),reportError:r??((a,b)=>console.error(`clayjs: the ${b} command failed to load`,a))}),c),E=()=>{let a=u,b=d.state.selection;return{revision:a,selection:b,valid:()=>n&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(b)}};function A(a,b){a.doc!==b.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,b){if(!n||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(b):{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(n){n=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function M(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(n=!0)},quiesce:v,leave:M,dispose(){M(),s=!0,n=!1,t.clear()}}}var _=new WeakMap;function ae(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 _e(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 ne(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 be({upload:o=te,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:n=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ae(u):null,vo(),ne(n),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),D.keymap(re),So,To,D.keymap(Po),D.keymap(oe({history:r,undo:t,redo:i})),D.keymap(y.baseKeymap),yo(),eo(),Do(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),ie(),s?le(s):null].filter(Boolean)}function pe(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:be(e)})}function Ne(o){!o||o.isDestroyed||o.updateState(o.state)}function We(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 ke(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,n=o.state.doc.nodeAt(c);return n?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...n.attrs,checked:!n.attrs.checked})),!0):!1}function Ue(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:n=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:M=null,formatGate:a=null}={}){let b=o.ownerDocument;L(Oo,Jo,Oo,["editor-ui"]);let p=b.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=M??R({load:l=>V[l].load(),install:(l,f)=>de({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ce({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(V))for(let f of l.views??l.types)N[f]=(B,Ro,qo,Vo,$o)=>{let W=K.get(B.type.name);return W?W(B,Ro,qo,Vo,$o):new H(B,K)};k=new m.EditorView(p,{state:pe(e,{upload:t,highlight:i,doc:d,history:n,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:ke,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(q)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(q));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Ko.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Io=k.destroy.bind(k),C=null,I=!1,Lo=()=>(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 Lo();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(),Io()},k}export{Jo as PAGE_EDITOR_CSS,pe as blockeditorState,Ue as createPageEditor,de as installPageFeature,O as lazyViewsKey,ie as lazyViewsPlugin,be as pagePlugins,Ne as refreshMountedView,_e as runPageCommand,We as setEditorActive};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-VSEUFJAO.js";import{e as Ke,g as F,h as ze,j as le,l as Te,n as Ce,p as Ge,q as d}from"../c-MR75YPRT.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-RTSRGGTP.js";import{a as de,b as Ve}from"../c-QTTJYJMA.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-TWCXBWS3.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-2YIJ6ZA6.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-LO4C4J77.js";import"../c-FV46ZKGX.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-LA2BW7UY.js";import"../c-HSNGLIFB.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-RXTPKCMC.js";import"../c-RBPZNU2D.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-DLBX4JCJ.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(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 xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;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(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(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 r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,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(ee))}})):Mt(e.el,t,s),Ue()}function kt(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 r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(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})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.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(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
|
|
1
|
+
import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-SUAC5RSG.js";import{e as Ke,g as F,h as ze,j as le,l as Te,n as Ce,p as Ge,q as d}from"../c-MR75YPRT.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-FJDTDGDA.js";import{a as de,b as Ve}from"../c-QTTJYJMA.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-QCDVDZIR.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-VMXCX52Q.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{a as Ee}from"../c-MZCOGNZL.js";import"../c-MFB74XVN.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(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 xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;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(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(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 r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,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(ee))}})):Mt(e.el,t,s),Ue()}function kt(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 r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(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})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.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(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
|
|
2
2
|
[editmode\\:contenteditable][contenteditable]:focus {
|
|
3
3
|
outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
|
|
4
4
|
}
|