efficient-easel 7.2.2 → 8.0.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 (81) hide show
  1. package/README.md +34 -3
  2. package/dist/autosave/index.d.ts +5 -5
  3. package/dist/autosave/index.js +1 -1
  4. package/dist/chrome/chrome.css +34 -0
  5. package/dist/chrome/index.d.ts +23 -4
  6. package/dist/chrome/index.js +1 -1
  7. package/dist/chunk-246ONJJH.js +58 -0
  8. package/dist/chunk-3NB2IEXA.js +1 -0
  9. package/dist/{chunk-QJITGBAT.js → chunk-3QK5R7RR.js} +3 -3
  10. package/dist/chunk-BHRC3ASL.js +1 -0
  11. package/dist/{chunk-MVQEEWTE.js → chunk-BRDCD4LK.js} +1 -1
  12. package/dist/{chunk-COCSEEXP.js → chunk-CVUMGA2T.js} +1 -1
  13. package/dist/{chunk-6TOYXESC.js → chunk-DPKWJTNX.js} +1 -1
  14. package/dist/chunk-HDUAODXJ.js +4 -0
  15. package/dist/{chunk-HS5DWUCH.js → chunk-JO6FBCVR.js} +1 -1
  16. package/dist/chunk-JTUUIVBZ.js +1 -0
  17. package/dist/{chunk-E4MAYJX5.js → chunk-NCQSBU3O.js} +1 -1
  18. package/dist/chunk-NDRZP6YR.js +1 -0
  19. package/dist/{chunk-6Z5VENIE.js → chunk-OGCROOTI.js} +1 -1
  20. package/dist/chunk-QVUVDBGA.js +23 -0
  21. package/dist/{chunk-LC62L4P2.js → chunk-R2G64ZNC.js} +1 -1
  22. package/dist/chunk-RKTF5XLP.js +1 -0
  23. package/dist/{chunk-JVTSUA2U.js → chunk-SQMUAXUS.js} +1 -1
  24. package/dist/chunk-THZ46DC5.js +2 -0
  25. package/dist/{chunk-PFNIVZPN.js → chunk-XTJCKV6Z.js} +1 -1
  26. package/dist/chunk-ZPXKNO5L.js +5 -0
  27. package/dist/{engine-DBxp_v6B.d.ts → engine-CvXpFE86.d.ts} +18 -0
  28. package/dist/{host-CiuzZJXj.d.ts → host-Ud6rLpph.d.ts} +6 -1
  29. package/dist/screen/components/AddBlockRow.js +1 -1
  30. package/dist/screen/components/AddSidePanel.js +1 -1
  31. package/dist/screen/components/MediaSidePanel.d.ts +2 -2
  32. package/dist/screen/components/MediaSidePanel.js +1 -1
  33. package/dist/screen/components/NodeContextMenu.d.ts +3 -3
  34. package/dist/screen/components/NodeContextMenu.js +1 -1
  35. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  36. package/dist/screen/components/SaveControls.d.ts +85 -0
  37. package/dist/screen/components/SaveControls.js +1 -0
  38. package/dist/screen/components/ScreenChrome.js +1 -1
  39. package/dist/screen/components/ScreenDocumentContext.d.ts +2 -2
  40. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  41. package/dist/screen/components/ScreenMount.d.ts +3 -3
  42. package/dist/screen/components/ScreenMount.js +1 -1
  43. package/dist/screen/components/ScreenStoreProvider.d.ts +3 -3
  44. package/dist/screen/components/SectionScreenShell.js +16 -16
  45. package/dist/screen/components/SidePanelHead.js +1 -1
  46. package/dist/screen/components/panel-widths.js +1 -1
  47. package/dist/screen/components/usePartBridge.d.ts +3 -3
  48. package/dist/screen/index.d.ts +4 -4
  49. package/dist/screen/index.js +1 -1
  50. package/dist/screen/lib/document-addressing.d.ts +2 -2
  51. package/dist/screen/lib/document-switch.d.ts +1 -1
  52. package/dist/screen/lib/host.d.ts +2 -2
  53. package/dist/screen/lib/key-scope.d.ts +16 -1
  54. package/dist/screen/lib/key-scope.js +1 -1
  55. package/dist/screen/lib/media-panel.d.ts +2 -2
  56. package/dist/screen/lib/media-picker.d.ts +2 -2
  57. package/dist/screen/lib/puck/device-fields.js +1 -1
  58. package/dist/screen/lib/puck/slot-child-name.js +1 -1
  59. package/dist/screen/lib/puck/style-clipboard.d.ts +3 -3
  60. package/dist/screen/lib/puck/style-clipboard.js +1 -1
  61. package/dist/screen/lib/save-status.d.ts +75 -0
  62. package/dist/screen/lib/save-status.js +1 -0
  63. package/dist/screen/lib/screen-parts.d.ts +63 -17
  64. package/dist/screen/screen.css +8 -0
  65. package/dist/screen/words.d.ts +62 -5
  66. package/dist/screen/words.js +1 -1
  67. package/dist/strings/catalogue.d.ts +3 -3
  68. package/dist/strings/catalogue.js +1 -1
  69. package/dist/strings/index.d.ts +3 -3
  70. package/dist/strings/index.js +1 -1
  71. package/dist/{types-Dt1CFR1S.d.ts → types-DGyDHiJV.d.ts} +13 -1
  72. package/dist/{words-CvFnwGSr.d.ts → words-pgIK0I6g.d.ts} +2 -2
  73. package/package.json +13 -3
  74. package/dist/chunk-5F3PKNT7.js +0 -1
  75. package/dist/chunk-64ZRPAWS.js +0 -2
  76. package/dist/chunk-BDTITTMW.js +0 -1
  77. package/dist/chunk-DOHYKMMH.js +0 -1
  78. package/dist/chunk-G24HQEX4.js +0 -62
  79. package/dist/chunk-LIH5SH6S.js +0 -5
  80. package/dist/chunk-TBF5CVPA.js +0 -1
  81. package/dist/chunk-UB4TLWVJ.js +0 -21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-easel",
3
- "version": "7.2.2",
3
+ "version": "8.0.0",
4
4
  "description": "Efficient Easel: the EFFICIENT editors' shared engine and chrome: the saved document as pure functions, the published renderer, and the editor frame, panels, Layers tree, text grammar and type-in-place box. Published as editor-shell up to 0.66.0 and as efficient-editor up to 0.95.0.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -212,6 +212,11 @@
212
212
  "import": "./dist/screen/components/PreviewPartsContext.js",
213
213
  "default": "./dist/screen/components/PreviewPartsContext.js"
214
214
  },
215
+ "./screen/components/SaveControls": {
216
+ "types": "./dist/screen/components/SaveControls.d.ts",
217
+ "import": "./dist/screen/components/SaveControls.js",
218
+ "default": "./dist/screen/components/SaveControls.js"
219
+ },
215
220
  "./screen/components/ScreenChrome": {
216
221
  "types": "./dist/screen/components/ScreenChrome.d.ts",
217
222
  "import": "./dist/screen/components/ScreenChrome.js",
@@ -482,6 +487,11 @@
482
487
  "import": "./dist/screen/lib/puck/use-section-ops.js",
483
488
  "default": "./dist/screen/lib/puck/use-section-ops.js"
484
489
  },
490
+ "./screen/lib/save-status": {
491
+ "types": "./dist/screen/lib/save-status.d.ts",
492
+ "import": "./dist/screen/lib/save-status.js",
493
+ "default": "./dist/screen/lib/save-status.js"
494
+ },
485
495
  "./screen/lib/screen-parts": {
486
496
  "types": "./dist/screen/lib/screen-parts.d.ts",
487
497
  "import": "./dist/screen/lib/screen-parts.js",
@@ -517,7 +527,7 @@
517
527
  "dist"
518
528
  ],
519
529
  "peerDependencies": {
520
- "efficient-shell": "^7.24.0",
530
+ "efficient-shell": "^7.38.0",
521
531
  "react": ">=18",
522
532
  "react-dom": ">=18"
523
533
  },
@@ -527,7 +537,7 @@
527
537
  "@types/node": "^22.0.0",
528
538
  "@types/react": "^18.2.0",
529
539
  "@types/react-dom": "^18.2.0",
530
- "efficient-shell": "^7.24.0",
540
+ "efficient-shell": "^7.38.0",
531
541
  "esbuild": "^0.27.0",
532
542
  "jsdom": "^26.1.0",
533
543
  "react": "^18.2.0",
@@ -1 +0,0 @@
1
- var e={title:"Add",contextBlocks:"Blocks for this place",contextAll:"Sections and blocks",done:"Done",doneDescription:"Close Add and go back",startBlank:"Start blank",templates:"Your templates",inside:({name:e})=>`Inside ${e}`,tile:({name:e})=>`Add ${e}`,hintBlocks:"Drag into the page, or click to add.",hint:"Drag onto the page, or click to add.",searchBlocks:"Search blocks",searchSections:"Search sections",addingTo:({name:e})=>`Adding to ${e}`,addingBefore:({name:e})=>`Adding before ${e}`,addingAtEnd:"Adding at the end of the page",addingHere:"Adding here"},t={loading:"Loading…",waitingForAuthorization:"Waiting for editor authorization…",missingTemplatePage:"Couldn’t open a page in this template.",missingPage:({slug:e})=>`No page with slug "${e}".`,missingDocument:"Couldn’t open this document.",loadFailed:({cause:e})=>`Could not load the document — ${e}`,noun:"page",pageSettings:"Page settings",header:"Header",footer:"Footer",pageSections:"Page",templateSections:"Template",addSection:"Add section",addSectionBefore:({name:e})=>`Add section before ${e}`,addSectionHere:"Add section here",done:"Done",copied:({name:e})=>`Copied ${e}`,pasteRefused:({name:e})=>`${e} can’t be pasted here.`,add:e,canvasAddBlock:"Add block",railMedia:"Media library",leftPanel:"Left panel",resizeLeftPanel:"Resize left panel",leave:{title:"Unsaved changes",body:"Your most recent edits haven’t finished saving yet. Save them before switching, or leave and discard them.",cancel:"Cancel",discard:"Discard & leave",save:"Save & leave",saving:"Saving…"},bar:{undo:"Undo",redo:"Redo",refresh:"Refresh",refreshTip:"Refresh the preview (reloads the canvas, keeps your place)",notSaving:"Not saving — see the notice above",retry:"Retry now",autoSaveOff:"Auto-save is off — click to turn it back on (saves your held edits)",autoSaveOn:"Auto-save is on — click to pause it",views:"Left panel views"},menu:{undo:"Undo",redo:"Redo",addSection:"Add section",collapseAll:"Collapse all layers",selectAll:"Select all",pinned:"Pinned — can’t be moved or deleted",clipboardRefused:"Your browser won’t let us read the clipboard — press ⌘V"},layers:"Layers",expandAll:"Expand all sections",collapseAll:"Collapse all sections",nothingToFold:"Nothing to fold on this page",editFooter:"Edit the site footer",rename:"Rename",deleteNamed:({name:e})=>`Delete ${e}`,hideNamed:({name:e})=>`Hide ${e}`,showNamed:({name:e})=>`Show ${e}`,addBlockHere:"Add block here",sectionFirst:({name:e})=>`“${e}” is already first`,sectionLast:({name:e})=>`“${e}” is already last`,sectionMoved:({name:e,n:t,total:a})=>`Moved “${e}” to position ${t} of ${a}`,sectionAdded:({name:e})=>`Added “${e}” section`,deleted:({name:e})=>`Deleted “${e}”`,resizeSettingsPanel:"Resize settings panel",sectionSettings:({name:e})=>`${e} settings`,headerSettings:"Header settings",addBlockMenu:"Add block",deviceNote:{tablet:"Tablet uses the desktop settings.",mobile:"Showing the phone settings for this section."}};export{e as DEFAULT_SCREEN_ADD_WORDS,t as DEFAULT_SCREEN_WORDS};
@@ -1,2 +0,0 @@
1
- import{routeSharedHostMessage as e}from"./chunk-S4AWJX4Q.js";import{describeLoadFailure as r,hostLoadRefusal as n}from"./chunk-ERR437B5.js";import{editLockOf as t}from"./chunk-GMCZXMOV.js";import{NO_DOCUMENT_ADDRESSING as o}from"./chunk-RLBXE4EU.js";import{saveStatusOf as u,resetForDocumentSwitch as a}from"./chunk-HNKB2ZYR.js";import{isExpiredSession as s}from"./chunk-CLOS6SSX.js";import{useAdminBridge as i}from"./chunk-VPFNZ7TB.js";import{useEaselSession as l}from"./chunk-O7Q4DDJT.js";import{backendOf as c,setSessionDocumentSite as d}from"./chunk-RSCMJIWS.js";import{useEaselHost as f}from"./chunk-U3JP4VGF.js";import{DEFAULT_SCREEN_WORDS as m}from"./chunk-5F3PKNT7.js";import{useAutosave as g}from"./chunk-BDTITTMW.js";import{canWriteDocument as k,newEaselClientId as v,reloadIfVersionMoved as p,openUnansweredClaim as h,FAIL_OPEN_RETRY_MS as y,CLAIM_FAIL_OPEN_MS as w,holderOf as S}from"./chunk-THWO5YVZ.js";import{useWords as b}from"./chunk-MFIRYGHW.js";import{createContext as I,useContext as P,useState as j,useMemo as T,useCallback as B,useEffect as R,useRef as O}from"react";import{jsx as C}from"react/jsx-runtime";var E={content:[],root:{},zones:{}};var H=I(null);function M(){const e=P(H);if(!e)throw new Error("useStorefrontDocument must be used within StorefrontDocumentProvider");return e}function A({target:I,addressing:P=o,onHostMessage:M,children:A}){const D=P,{homeSlug:F,entryMayBounce:N,entryBounce:V,onSwitch:L,tellsHost:W,adapterFor:J,migrateRenamedProps:X,describeMissing:Y,onLoadFailed:Z}=D,[x,G]=j(I),K=f(),U=l(),Q=T(()=>c(U),[U]),z=T(()=>t(U),[U]),_="template"===x.kind,q="template"===x.kind?x.id:null,$="template"===x.kind?x.pageSlug??F??"":"document"===x.kind?x.slug??"":x.slug,ee="page"===x.kind?x.siteId??null:null,re=U.blocks,ne=T(()=>J(x,Q,re),[J,Q,re,x.kind,"template"===x.kind?x.id:"document"===x.kind?x.record:x.siteId]),te=ne.capabilities,oe=B(e=>U.documentHooks?.stored?.(e)??e,[U]),ue="page"===x.kind?x.originSlug??null:null;R(()=>{d(U,ee)},[U,ee]);const ae=O(x);R(()=>{ae.current=x},[x]);const{token:se,tokenRef:ie,capabilities:le}=i({onMessage:r=>{if(M?.(r)||e(r))return;const n=r;if("storefront-editor:navigate"===n?.type){const e=r;e?.target&&Pr(e.target)}}}),ce=!U.usesBridgedToken||null!==se,de=ne.lock,fe=Boolean(Q.lock),[me,ge]=j(null),[ke,ve]=j(null),[pe,he]=j(null),[ye,we]=j(null),Se=b("screen",m),be=ye?function(e,r){if(null!==e.sentence)return e.sentence;if(!e.missing)return r.loadFailed({cause:e.cause});switch(e.target.kind){case"template":return r.missingTemplatePage;case"document":return r.missingDocument;default:return r.missingPage({slug:e.slug})}}(ye,Se):null,[Ie,Pe]=j(null),je=O(null),Te=O(null),[Be,Re]=j(!1),Oe=O(null),[Ce,Ee]=j(null),He=O(null),[Me,Ae]=j(null),De=O(null);R(()=>{De.current=Me},[Me]);const[Fe,Ne]=j(te.hasEditLock?{kind:"checking"}:{kind:"editing"}),Ve=O(Fe);R(()=>{Ve.current=Fe},[Fe]);const Le=O(()=>Promise.resolve(!1)),We=B(e=>{Te.current=e,Re(!0)},[]),Je=g({save:async({id:e,data:r})=>{if(k(Ve.current)){if(!await Le.current(e,r)){if(!k(Ve.current))return void We({id:e,data:r});throw new Error("page save did not land")}}else We({id:e,data:r})},onFailure:(e,r)=>{0===r&&K.send("storefront-editor:save-failed")}}),{state:Xe,push:Ye,flush:Ze,pause:xe,resume:Ge,stop:Ke,reset:Ue,retryNow:Qe,hasPending:ze}=Je,_e=O(Xe);R(()=>{_e.current=Xe},[Xe]);const qe=u(Xe),$e=B(()=>{const e=Te.current;e&&(Te.current=null,Re(!1),Ye(e))},[Ye]),er=O("");er.current||(er.current=v());const[rr,nr]=j(0),tr=O(!1),[or,ur]=j(N(I)),ar=O(!1);R(()=>{if(ar.current)return;ar.current=!0;const e=K.address.search(),r=V(I,e);r?K.address.load(r):N(I)&&ur(!1)},[I,K]);const sr=K.send;R(()=>{if(!ce)return;let e=!1;const t=ae.current,o=ne.resolve($),u=U.documentHooks?.opening?.({slug:$,isTemplate:_,capabilities:te});return o.then(async r=>{if(e)return;if(!r)return"page"===t.kind&&null!==F&&$!==F?void K.address.load({kind:"page",slug:F,siteId:ee??void 0}):(we({target:t,slug:$,missing:!0,sentence:Y?.(t)??null}),void Z?.(t,null));const n=r.readOnlyReason?r.readOnlyReason:null;je.current=n,Pe(n),ge(r.id),ve(r.kind??null),He.current=r.version??null;const o=r.layout,a=o&&Object.keys(o).length?o:E,s=X(a),i=u?await u(s):s;e||he(i)}).catch(o=>{e||(console.error("[storefront-editor] document load failed",o),we({target:t,slug:$,missing:!1,sentence:n(o,{slug:$},U),cause:r(o,U)}),Z?.(t,o))}),()=>{e=!0}},[ce,se,_,ne,$]);const ir=B(e=>new Promise(r=>{const n=Date.now(),t=setInterval(()=>{const o=ie.current;o&&o!==e?(clearInterval(t),r(o)):Date.now()-n>6e3&&(clearInterval(t),r(null))},200)}),[]),lr=B(async e=>{const r=ie.current;if(!r&&U.usesBridgedToken)return{ok:!1,error:new Error("no editor token")};try{return{ok:!0,value:await e(r??"")}}catch(n){if(s(n,U)){sr("storefront-editor:auth-expired");const n=r?await ir(r):null;if(n)try{return{ok:!0,value:await e(n)}}catch(e){return{ok:!1,error:e}}}return{ok:!1,error:n}}},[sr,ir,U]),cr=B(async e=>{const r=ie.current?await lr(e):{ok:!1};return r.ok||sr("storefront-editor:save-failed"),r.ok},[sr,lr]),dr=B(async(e,r,n=!1)=>{if(null!==je.current)return!1;if(!k(Ve.current))return!1;if(De.current)return!1;const t=await lr(()=>ne.saveLayout(e,r,He.current,er.current));if(t.ok)return He.current=t.value.version??He.current,!0;const o=z.readLockTaken(t.error);if(o){const e={kind:"takenover",holder:o};return Ve.current=e,Ne(e),!1}const u=z.readSaveConflict(t.error);if(u){if(u.savedByYou&&!n&&ne.rereadVersion){const n=await lr(()=>ne.rereadVersion(e));if(n.ok&&n.value)return He.current=n.value,Le.current(e,r,!0)}Ke(),De.current=u,Ae(u)}return!1},[ne,lr,Ke]);R(()=>{Le.current=dr},[dr]);const fr=B(e=>{if(null!==je.current)return;if(sr("storefront-editor:dirty"),!me)return;const r=oe(e);Oe.current=r,k(Ve.current)?Ye({id:me,data:r}):We({id:me,data:r})},[me,sr,We,Ye,oe]),mr=B(async()=>{k(Ve.current)&&$e();return await Ze()&&null==Te.current},[$e,Ze]),gr=O(mr);R(()=>{gr.current=mr},[mr]);const kr=O(lr);R(()=>{kr.current=lr},[lr]);const vr=B(()=>{K.address.reload()},[K]),pr=O(()=>Promise.resolve(!1));R(()=>{pr.current=()=>{const e=ne.rereadVersion;return me&&e?p({ours:He.current,stored:async()=>{const r=await kr.current(()=>e(me));return r.ok?r.value:null},hasPending:()=>null!=Te.current||ze(),reload:vr}):Promise.resolve(!1)}},[ne,me,ze,vr]);const hr=null!==Ie;R(()=>{if(!de||!me||!ce||hr)return;let e=!1,r=null,n=null;const t=er.current,o={claim:async e=>{const r=await kr.current(()=>de.claim(me,t,e));if(r.ok)return{heartbeat_seconds:r.value.heartbeatSeconds};throw r.error},cancelled:()=>e,currentAccess:()=>Ve.current,heldWrite:()=>({pending:null!=Te.current||ze(),autoSaveEnabled:!_e.current.paused,saveConflict:null!=De.current}),setAccess:e=>{Ve.current=e,Ne(e)},releaseHeldWrite:()=>{gr.current()},startHeartbeat:e=>{r&&clearInterval(r),r=setInterval(()=>{u(!1)},e)},stopHeartbeat:()=>{r&&(clearInterval(r),r=null)},reloadIfMoved:()=>{pr.current()}},u=z.makeClaimBeat(o),a=tr.current;return tr.current=!1,a||(Ne({kind:"checking"}),n=setTimeout(()=>{n=null,h(o)&&o.startHeartbeat(y)},w)),u(a).finally(()=>{n&&clearTimeout(n),n=null}),()=>{e=!0,n&&clearTimeout(n),r&&clearInterval(r),de.release(me,t).catch(()=>{})}},[me,de,ce,se,rr,hr]);const yr=B(()=>{de&&me&&(tr.current=!0,nr(e=>e+1))},[me,de]),wr=B(()=>{Ne(e=>{const r="blocked"===e.kind||"takenover"===e.kind?e.holder:null;return r?{kind:"readonly",holder:r}:e})},[]),Sr=B(()=>{_e.current.paused?(k(Ve.current)&&$e(),Ge()):xe()},[$e,xe,Ge]),br=B(()=>{Qe()},[Qe]),Ir=B(e=>{Oe.current=null,a("template"!==e.kind&&fe,{resetAutosave:()=>{Ue(),Te.current=null,Re(!1)},setVersion:e=>{He.current=e},setSaveConflict:Ae,setAccess:Ne}),L(e),G(e),je.current=null,Pe(null),ge(null),ve(null),he(null),we(null),K.address.show(e),"document"!==e.kind&&W(e)&&K.send("storefront-editor:navigated",{target:e})},[Ue,K,fe,L,W]),Pr=B(e=>{if(function(e,r,n){if(e.kind!==r.kind)return!1;if("template"===e.kind){const t=r;return e.id===t.id&&(e.pageSlug??n)===(t.pageSlug??n)}if("document"===e.kind){const n=r;return e.record===n.record&&(e.slug??"")===(n.slug??"")}const t=r;return e.slug===t.slug&&e.siteId===t.siteId}(e,ae.current,F))return;const r=null!=Te.current;if(!r&&!ze())return void Ir(e);const n=_e.current;r||n.paused||n.failed||n.stopped?Ee(e):Ze().then(r=>{r?Ir(e):Ee(e)})},[Ir,ze,Ze,F]),jr=B(()=>Ee(null),[]),Tr=B(()=>{Ee(e=>(e&&Ir(e),null))},[Ir]),Br=B(async()=>{const e=Ce;if(!e)return;await mr()&&(Ee(null),Ir(e))},[Ce,mr,Ir]),Rr=B(async e=>{if(null!==je.current)return;if(!me)return;if(!k(Ve.current)||De.current)return;const r=oe(e);if(!await dr(me,r))return void(De.current||sr("storefront-editor:save-failed"));const n=ne.publish;if(!te.canPublish||!n)return void sr("storefront-editor:saved");const t=await lr(()=>n(me,He.current??void 0));t.ok?(He.current=t.value.version??He.current,sr("storefront-editor:published")):sr("storefront-editor:save-failed")},[me,ne,te.canPublish,sr,dr,lr,oe]);/* @__PURE__ */
2
- return C(H.Provider,{value:{target:x,adapter:ne,capabilities:te,templateId:q,currentSlug:$,currentKind:ke,siteId:ee,ready:ce,token:se,tokenRef:ie,notifyParent:sr,bridgeCapabilities:le,runAuthed:cr,docId:me,data:pe,getLiveData:()=>Oe.current??pe,footerOriginSlug:ue,error:be,redirecting:or,saveStatus:qe,saveState:Xe,autoSaveEnabled:!Xe.paused,autoSaveStoppedByConflict:Xe.stopped,hasUnsavedEdits:Xe.pending||Be,toggleAutoSave:Sr,retrySave:br,onChange:fr,flushSave:mr,onPublish:Rr,access:Fe,readOnly:null!==S(Fe)||null!==Ie||null!==Me,readOnlyReason:Ie,takeOverEditing:yr,viewReadOnly:wr,saveConflict:Me,reloadFromServer:vr,navigate:Pr,pendingNav:Ce,cancelPendingNav:jr,discardAndNavigate:Tr,saveAndNavigate:Br},children:A})}export{H as ScreenDocumentContext,A as ScreenDocumentProvider,M as useScreenDocument};
@@ -1 +0,0 @@
1
- import{saveIndicator as e}from"./chunk-H6DDIBQ4.js";import{useRef as n,useEffect as t,useState as u,useSyncExternalStore as r,useMemo as l}from"react";var o=1e3,s=3e3,i=5e3,a=[2e3,5e3,15e3,3e4];function c(e,n=a){const t=n.length-1;return n[Number.isFinite(e)?Math.min(Math.max(Math.trunc(e),0),t):t]}var d={now:()=>Date.now(),setTimeout:(e,n)=>globalThis.setTimeout(e,n),clearTimeout:e=>globalThis.clearTimeout(e)};function f(e={}){const n=e.clock??d,t=e.debounceMs??1e3,u=e.maxWaitMs??3e3,r=e.unsavedAfterMs??5e3,l=e.retryDelays??a;let o=e.save??(()=>Promise.reject(new Error("autosave used before setSave"))),s=null,i=null,f=null,m=0,h=null,v=0,p=!1,w=!1,g=!1,b=!1,y=!1,T=!1,M=0,P=null,S=null;const E=/* @__PURE__ */new Set;let L=D();function D(){return{pending:null!==s,unsaved:T,failed:p,attempt:v,saved:w,paused:g,stopped:b}}function x(){if(y)return;const e=D();if(!Object.keys(e).every(n=>e[n]===L[n])){L=e;for(const e of[...E])e()}}function F(){null!==P&&n.clearTimeout(P),P=null}function N(e){F(),P=n.setTimeout(()=>{P=null,B()},e)}function j(){const e=n.now(),r=Math.min(m+t,(i??e)+u);N(Math.max(0,r-e))}function k(){if(null!==S&&n.clearTimeout(S),S=null,null===i)return void(T=!1);const e=i+r-n.now();T=e<=0,T||(S=n.setTimeout(()=>{S=null,T=!0,x()},e))}function B(){if(h)return h;if(y||b||!s)return Promise.resolve(null===s);F();const t=s,u=M;return f=null,h=Promise.resolve().then(()=>o(t.value)).then(()=>(u!==M||(h=null,w=!0,p=!1,v=0,s===t?(s=null,i=null):i=f??n.now(),f=null,k(),!s||g||b||y||j(),x()),!0),n=>{if(u!==M)return!1;if(h=null,f=null,b||y)return x(),!1;p=!0;const t=v;return v=t+1,e.onFailure?.(n,t),g||N(c(t,l)),x(),!1}),h}async function A(){for(;;){if(y||b)return null===s;if(!h&&!s)return!0;if(!await(h??B()))return!1}}return{setSave(e){o=e},push(e){if(y)return;const t=n.now();s={value:e},m=t,h&&null===f&&(f=t),null===i&&(i=t,k()),g||b||h||p||j(),x()},flush:A,retryNow:()=>(v=0,A()),pause(){y||g||(g=!0,F(),x())},resume:()=>y?Promise.resolve(null===s):(g=!1,x(),A()),stop(){y||(b=!0,F(),x())},reset(){y||(M++,h=null,F(),s=null,i=null,f=null,v=0,p=!1,w=!1,b=!1,k(),x())},hasPending:()=>null!==s,getSnapshot:()=>L,subscribe:e=>(E.add(e),()=>{E.delete(e)}),dispose(){F(),null!==S&&n.clearTimeout(S),S=null,y=!0}}}function m(e,n={document:document,window:window}){const t=n.document,u=n.window,r=()=>{"hidden"===t.visibilityState&&e()},l=()=>e();return t.addEventListener("visibilitychange",r),u.addEventListener("pagehide",l),()=>{t.removeEventListener("visibilitychange",r),u.removeEventListener("pagehide",l)}}function h(e){const n=e.getSnapshot();n.paused||n.stopped||e.flush()}function v(o){const s=n(o);t(()=>{s.current=o});const[i]=u(()=>f({...o,save:e=>s.current.save(e),onFailure:(e,n)=>s.current.onFailure?.(e,n)})),a=r(i.subscribe,i.getSnapshot,i.getSnapshot);t(()=>m(()=>h(i)),[i]);const c=o.warnBeforeUnload??!0;return t(()=>{if(!c)return;const e=e=>{i.hasPending()&&(e.preventDefault(),e.returnValue="")};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[i,c]),t(()=>()=>h(i),[i]),l(()=>({state:a,indicator:e(a),push:i.push,flush:i.flush,retryNow:i.retryNow,pause:i.pause,resume:i.resume,stop:i.stop,reset:i.reset,hasPending:i.hasPending}),[i,a])}export{o as AUTOSAVE_DEBOUNCE_MS,s as AUTOSAVE_MAX_WAIT_MS,a as AUTOSAVE_RETRY_DELAYS_MS,i as AUTOSAVE_UNSAVED_AFTER_MS,c as autosaveRetryDelay,f as createAutosave,m as installTabAwayFlush,v as useAutosave};
@@ -1 +0,0 @@
1
- import{useEaselHost as n}from"./chunk-U3JP4VGF.js";import{useEaselApi as o,bindUndoKeys as t}from"./chunk-KYG35KKJ.js";import{useState as e,useEffect as u}from"react";function r(o){const t=n(),[r,c]=e(null);return u(()=>c(o.current),[o]),t.ownsDocument?"undefined"==typeof document?null:document:r}function c(e,c){const m=n(),i=o(),f=r(e);u(()=>{if(!m.ownsDocument&&f)return t(f,i,{leaveTyping:!0})},[m,i,f]);const s=c?.document??null;u(()=>{if(!m.ownsDocument&&s)return t(s,i,{leaveTyping:!0})},[m,i,s])}function m(n){return n.ownsDocument?{}:{tabIndex:-1}}export{m as editorRootFocus,r as useEaselKeyTarget,c as useEaselUndoKeys};
@@ -1,62 +0,0 @@
1
- import{dedupeSlotChildren as e}from"./chunk-26OOWIJJ.js";import{styleClipboardOf as n}from"./chunk-MVQEEWTE.js";import{markedTreeNodeId as t,revealSelectedTreeRow as o,sameSelector as r}from"./chunk-FGNR22NY.js";import{cloneNodeWithFreshIds as i}from"./chunk-2GVCAIPX.js";import{rootRowName as l,slotChildRowName as s,slotChildRenameProp as d,sectionRenameProp as c}from"./chunk-TBF5CVPA.js";import{scrollPreviewToSection as a,gotoPreviewSlide as p,scrollPreviewToTop as u}from"./chunk-4ES5JGGX.js";import{useEaselKeyTarget as f,useEaselUndoKeys as h,editorRootFocus as m}from"./chunk-DOHYKMMH.js";import{SlotChildActionsProvider as g}from"./chunk-KCBEE2MC.js";import{screenStorageKeys as y,DEFAULT_PANEL_W as k,clampPanelWidth as S}from"./chunk-6TOYXESC.js";import{usePartBridge as v}from"./chunk-2LBXIYF7.js";import{useSectionOps as x}from"./chunk-2QUWI67X.js";import{useNodeClipboard as w,useNodeContextMenu as b}from"./chunk-LC62L4P2.js";import{PageEditGuardNotices as z}from"./chunk-E4MAYJX5.js";import{useScreenDocument as B}from"./chunk-64ZRPAWS.js";import{requestMediaPick as C}from"./chunk-KG7RJWOK.js";import{heldStyle as O,styleShortcut as I}from"./chunk-V7U33NF2.js";import{AddChildRow as N}from"./chunk-5545A3PC.js";import{AddSidePanel as $}from"./chunk-LIH5SH6S.js";import{SidePanelHead as P,PanelShowStrip as T}from"./chunk-PFNIVZPN.js";import{MediaSidePanel as A}from"./chunk-COCSEEXP.js";import{useScreenSaveSwitch as M,useScreenNodeKeys as j,useScreenPinned as E,useScreenDocumentLabel as R,useScreenCanvasFrame as L,useScreenInspectorPanel as V,useScreenDevices as H,useScreenPickFollowsSelection as F,useScreenLeftView as W,useScreenAdd as D,SELECTION_MODE as U,sameInspectorMode as G,useScreenBridges as Y,useScreenBlockRules as J,useScreenBlockLook as X,useScreenStorageNamespace as K,useScreenNotify as _,useScreenCanvasHead as Q,isSlotMode as q,useScreenStyleClipboard as Z,useScreenDocumentPass as ee,useScreenCanvasDrag as ne,ScreenCanvasTargetProvider as te,isPinnedFirst as oe,isPinnedLast as re,screenSlotsOf as ie}from"./chunk-E3PD66A3.js";import{ROOT_ZONE as le,blockNodeActions as se,TREE_MAX_DEPTH as de,childSlotsOf as ce,slotFieldsOf as ae,slotChildrenIn as pe,nestsInTree as ue,newNodeId as fe}from"./chunk-PLVEGYK6.js";import{useMediaPanel as he,usePanelPick as me,useCancelPanelPick as ge}from"./chunk-R6WTQWAC.js";import{useEaselHost as ye,useHostEscape as ke}from"./chunk-U3JP4VGF.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as Se}from"./chunk-6WY6ZXJG.js";import{DEFAULT_SCREEN_WORDS as ve}from"./chunk-5F3PKNT7.js";import{useEasel as xe,useEaselApi as we}from"./chunk-KYG35KKJ.js";import{TreeRow as be,Subtree as ze,LayersTree as Be,TreeGroupLabel as Ce,TreeRowAction as Oe,TreeSeam as Ie}from"./chunk-4JSBIW5H.js";import{DEFAULT_TREE_WORDS as Ne}from"./chunk-K56YDHYQ.js";import{DEFAULT_NODE_MENU_WORDS as $e}from"./chunk-WK3AFPXY.js";import{toItemSelector as Pe,useNodeOps as Te,clickPick as Ae}from"./chunk-SOZUYCQZ.js";import{LayersIcon as Me,MediaIcon as je}from"./chunk-4VJATVVR.js";import{DEFAULT_SAVE_WORDS as Ee,saveIndicator as Re}from"./chunk-H6DDIBQ4.js";import{EaselTopBar as Le,TopBarRail as Ve,TopBarCluster as He,EaselIconButton as Fe,TopBarDivider as We,DeviceSwitch as De,InspectorIconButton as Ue,PanelResizeHandle as Ge,MAX_PANEL_W as Ye,MIN_PANEL_W as Je,panelWidthVars as Xe,SaveState as Ke,SaveStateToggle as _e}from"./chunk-UB4TLWVJ.js";import{DEFAULT_CHROME_WORDS as Qe}from"./chunk-Y2G7CU6A.js";import{useWords as qe}from"./chunk-MFIRYGHW.js";import{insertSeams as Ze,CanvasDragLayer as en,CanvasInsert as nn}from"./chunk-SSORUDHE.js";import{DEFAULT_DRAG_WORDS as tn}from"./chunk-O2NLQBFX.js";import{createDragSession as on,useTreeDrag as rn,gapToMoveIndex as ln}from"./chunk-67GNT6PF.js";import{useCanvasFrame as sn,LIST_SELECTOR as dn,BLOCK_SELECTOR as cn,useCanvasEvent as an}from"./chunk-AWJUYMX7.js";import{zoneKey as pn,ROOT_ID as un,ROOT_SLOT as fn,parseZoneKey as hn,find as mn,DataError as gn}from"./chunk-KRXQM65X.js";import{useRef as yn,useMemo as kn,useState as Sn,useEffect as vn,useCallback as xn,useLayoutEffect as wn,Fragment as bn}from"react";import{Tooltip as zn,Button as Bn,toast as Cn}from"efficient-shell/ui";import{UndoIcon as On,RedoIcon as In,TrashIcon as Nn,EyeOffIcon as $n,EyeIcon as Pn,DuplicateIcon as Tn}from"efficient-shell/icons/efficient";import{jsx as An,jsxs as Mn,Fragment as jn}from"react/jsx-runtime";function En({saveState:e,notSaving:n,readOnlyReason:t,toggle:o,onToggle:r,onRetry:i,words:l,saveWords:s}){if(null!==t)/* @__PURE__ */return An(Ke,{tone:"off",label:t,role:"status"});if(n)/* @__PURE__ */
2
- return An(Ke,{tone:e.pending?"off-unsaved":"off",label:l.notSaving,role:"status"});const{tone:d,label:c}=Re(e,s),a=e.failed&&!e.paused&&/* @__PURE__ */An(Bn,{variant:"secondary",size:"sm",onClick:i,children:l.retry});/* @__PURE__ */
3
- return Mn(jn,o?{children:[
4
- /* @__PURE__ */An(_e,{pressed:e.paused,onToggle:r,title:e.paused?l.autoSaveOff:l.autoSaveOn,children:/* @__PURE__ */An(Ke,{tone:d,label:c})}),a]}:{children:[
5
- /* @__PURE__ */An(Ke,{tone:d,label:c,role:"status"}),a]})}function Rn({expand:e}){/* @__PURE__ */
6
- return An("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round",children:/* @__PURE__ */Mn(jn,e?{children:[
7
- /* @__PURE__ */An("path",{d:"M8 9l4-4 4 4"}),
8
- /* @__PURE__ */An("path",{d:"M8 15l4 4 4-4"})]}:{children:[
9
- /* @__PURE__ */An("path",{d:"M8 4l4 4 4-4"}),
10
- /* @__PURE__ */An("path",{d:"M8 20l4-4 4 4"}),
11
- /* @__PURE__ */An("path",{d:"M5 12h14"})]})})}var Ln=`${dn}, ${cn}`;function Vn(e,n,t){const o=t-n;if(o<6)return null;if(o<24)return{top:Math.round((n+t)/2),height:Math.round(o)};return{top:Math.round(Math.min(Math.max(e,n+12),t-12))}}var Hn="__rungs";var Fn="screen:band",Wn={duplicate:!0,delete:!0};function Dn(){const Re=ye(),{target:Ke,docId:_e,capabilities:dn,currentSlug:Dn,siteId:Un,onPublish:Gn,saveState:Yn,saveConflict:Jn,retrySave:Xn,toggleAutoSave:Kn,readOnly:_n,readOnlyReason:Qn=null}=B(),qn=M(),Zn=j(),{mediaEditing:et,hasEditGuard:nt,hasPinnedChrome:tt}=dn,{appState:ot,dispatch:rt,history:it,selectedItem:lt,getSelectorForId:st,config:dt}=xe(e=>e),ct=E(),{first:at,firstGroup:pt,lastGroup:ut,isSectionGroup:ft,sectionGroupZone:ht,panelOf:mt}=ct,gt=mt(at),yt=e=>oe(ct,e),kt=e=>re(ct,e),St="node"===ct.firstRow,vt=ct.band??null,xt=qe("screen",ve),wt=qe("tree",Ne),bt=qe("drag",tn),zt=qe("save",Ee),Bt=qe("menu",$e),Ct=qe("styleClipboard",Se),Ot=qe("chrome",Qe),It=R()??`/${Dn}`,Nt=L(),$t=V(),Pt=x({readOnly:_n}),Tt=x({readOnly:_n,foldIntoHistory:!0}),At=yn(null),Mt=we(),jt=kn(()=>({...Pt,select:e=>{At.current=e,Pt.select(e)},commitDocument:(e,n)=>{if(void 0!==n){const t=Mt.config;At.current=Pe(e,t,n)}Pt.commitDocument(e,n)}}),[Pt,Mt]),Et=ot.ui,Rt=Et.leftSideBarVisible,Lt=Et.rightSideBarVisible,{options:Vt,widths:Ht,initial:Ft,fluid:Wt,fit:Dt}=H(),[Ut,Gt]=Sn(Ft),Yt=he(),Jt=et&&null!==Yt,Xt=me(),Kt=ge();F(lt?.props.id);const{read:_t,write:Qt,forSelection:qt}=W(),[Zt,eo]=Sn(_t);vn(()=>{Qt(Zt)},[Zt]);const[no,to]=Sn(0),oo=yn(null),ro=yn(null),io=sn(ro,{readySelector:Ln}),lo=f(ro);h(ro,io);const[so,co]=Sn(!1),ao=yn(!1),po=yn(!1),[uo,fo]=Sn(null),ho=D(),mo=e=>fo(null===e?null:{zone:le,index:e}),[go,yo]=Sn([]),[ko,So]=Sn(U),vo="puck"===ko.kind,xo=so&&!uo&&ho.railTarget?ho.railTarget(ot.data,{node:lt??null,mode:ko}):null,wo=xo?{zone:pn(xo),index:xo.index}:null,bo=uo??wo,zo=bo&&bo.zone===le?bo.index:null,Bo=t(ko,lt?.props.id),[Co,Oo]=Sn(null);vn(()=>{Co&&(o(),Oo(null))},[Co]);const Io=yn(st);Io.current=st;const No=xn((e,{scroll:n})=>{eo(n=>qt(e,n)),n&&Oo(e);const t=[];let o=e;for(let e=0;e<4;e++){const e=Io.current(o)?.zone;if(!e||!e.includes(":"))break;const n=e.split(":")[0];t.push(n),t.push(e),o=n}0!==t.length&&ir(e=>{if(t.every(n=>!e.has(n)))return e;const n=new Set(e);return t.forEach(e=>n.delete(e)),n})},[]),$o=yn(null);vn(()=>{const e=$o.current;$o.current=null;const n=null==lt?.props.id?null:String(lt.props.id);So(t=>e&&e.id===n?e.mode:"part"===t.kind&&"nodeId"in t&&t.nodeId===n?t:mt(lt?.type)??U);const t=lt?.props.id,o=At.current;if(At.current=null,!t)return;const i=st(t);No(String(t),{scroll:!r(o,i??null,le)})},[lt?.props.id,No]);const Po=xn(e=>{So(n=>G(n,e)?n:e),rt({type:"setUi",ui:{rightSideBarVisible:!0}})},[rt]),To=yn(()=>{});To.current=(e,n)=>{const t=e?qr(e.zone??le)[e.index]?.props.id:null,o=null==t?null:String(t),r=null==lt?.props.id?null:String(lt.props.id);So(e=>G(e,n)?e:n),o!==r&&($o.current={id:o,mode:n},jt.select(e))};const Ao=xn((e,n)=>To.current(e,n),[]),Mo={kind:ko.kind,mode:ko,open:Po,show:e=>So(e),reveal:()=>{Lt||rt({type:"setUi",ui:{rightSideBarVisible:!0}})},select:Ao},jo=Y(Mo,{data:ot.data,selected:lt??null,zoneOf:e=>st(e)?.zone,readOnly:Boolean(_n),select:e=>{So(U),jt.select({index:e})},replace:(e,n)=>jt.replaceComponent(le,e,n),scrollTo:e=>bi(e)},{device:Ut,refreshes:no},{setView:eo,reveal:()=>{Rt||rt({type:"setUi",ui:{leftSideBarVisible:!0}})}}),Eo=jo.pinnedSource??!1,Ro=jo.resolveLeftView?jo.resolveLeftView(Zt,Jt):"media"===Zt&&Jt?Zt:"sections",Lo=J(),{isLockedBlock:Vo,duplicateBlocked:Ho,nestDepth:Fo,newSectionNode:Wo,canAddTo:Do,blockIsOffered:Uo}=Lo,Go=X(),{labelAtLevel:Yo,Icon:Jo,useProducts:Xo}=Go,Ko=Go.rowName?(e,n,t)=>Go.rowName(e,n,t):void 0,_o=xn(e=>{rt({type:"setUi",ui:{rightSideBarVisible:!0}}),a(e),No(e,{scroll:!0})},[rt,No]),{selectNode:Qo,openPartId:qo}=v({mode:ko,setMode:So,onOpenPart:_o}),[Zo,er]=Sn(null);ke(null!==Zo,()=>er(null));const nr=y(K()),tr=nr.collapsed,or=nr.panelWidths,[rr,ir]=Sn(()=>{if("undefined"==typeof window)/* @__PURE__ */return new Set;try{const e=window.localStorage.getItem(tr);return new Set(e?JSON.parse(e):[])}catch{/* @__PURE__ */
12
- return new Set}});vn(()=>{try{window.localStorage.setItem(tr,JSON.stringify([...rr]))}catch{}},[rr]);const[lr,sr]=Sn(()=>{if("undefined"==typeof window)return{...k};try{const e=window.localStorage.getItem(or);if(!e)return{...k};const n=JSON.parse(e);return{left:S(Number(n.left)||k.left),right:S(Number(n.right)||k.right)}}catch{return{...k}}});vn(()=>{const e=setTimeout(()=>{try{window.localStorage.setItem(or,JSON.stringify(lr))}catch{}},300);return()=>clearTimeout(e)},[lr]);const dr=xn((e,n)=>sr(t=>{const o="function"==typeof n?n(t[e]):n;return t[e]===o?t:{...t,[e]:o}}),[]),cr=xn(e=>dr("left",e),[dr]),ar=xn(e=>dr("right",e),[dr]),pr=e=>rr.has(e),ur=e=>ir(n=>{const t=new Set(n);return t.has(e)?t.delete(e):t.add(e),t}),fr=yn(!1),hr=yn(null);vn(()=>{if(fr.current&&!so){const e=hr.current,n=e&&e.isConnected&&!e.closest('[aria-hidden="true"]')?e:null;(n??ro.current?.querySelector(`button[aria-label="${CSS.escape(xt.add.title)}"]`))?.focus(),hr.current=null}fr.current=so},[so]),vn(()=>{if(!so||!lo)return;const e=e=>{"Escape"===e.key&&Ti()};return lo.addEventListener("keydown",e),()=>lo.removeEventListener("keydown",e)},[so,lo]),ke(so,()=>Ti()),vn(()=>{!Rt&&so&&(co(!1),fo(null),ao.current=!1)},[Rt]),vn(()=>{if(!Xt)return po.current&&rt({type:"setUi",ui:{leftSideBarVisible:!1}}),void(po.current=!1);so&&(co(!1),fo(null),po.current=ao.current,ao.current=!1),Rt||(po.current=!0,rt({type:"setUi",ui:{leftSideBarVisible:!0}}))},[Xt]),vn(()=>{!Rt&&Xt&&(po.current=!1,Kt())},[Rt]),vn(()=>{if(!Xt||!lo)return;const e=e=>{"Escape"===e.key&&Kt()};return lo.addEventListener("keydown",e),()=>lo.removeEventListener("keydown",e)},[Xt,lo]),ke(null!==Xt,()=>Kt());const mr=_(),gr=(e,n="success",t)=>{if(mr)return void(t?mr(e,"error"===n?"error":"info",t):mr(e,"error"===n?"error":"info"));const o={sound:!1,action:t?.action,onClose:t?.onClose};"error"===n?Cn.error(e,{...o,duration:t?.duration??3200}):Cn.success(e,{...o,duration:t?.duration??1900})},yr=yn(null),[kr,Sr]=Sn(0),[vr,xr]=Sn(0),wr=Q(),br=yn(null),zr=e=>Math.max(0,e.clientHeight-(br.current?.offsetHeight??0));vn(()=>{const e=yr.current;if(!e)return;const n=()=>{Sr(e.clientWidth),xr(zr(e))};n();const t=new ResizeObserver(n);return t.observe(e),br.current&&t.observe(br.current),()=>t.disconnect()},[]),wn(()=>{yr.current&&(Sr(yr.current.clientWidth),xr(zr(yr.current)))},[lr,Rt,Lt]);const Br=Ut===Wt?kr>0?kr:Ht[Wt]:Ht[Ut],Cr=kr>0?Math.min(kr/Br,"shrink"===Dt?1:2):1,Or=Br*Cr,Ir=kr>0&&Or>kr+1,Nr={width:Or,height:vr||"100%",flex:"none",position:"relative"},$r={width:Br,height:vr?vr/Cr:"100%",maxHeight:"none",transform:1!==Cr?`scale(${Cr})`:void 0,transformOrigin:"top left"},Pr=()=>rt({type:"setUi",ui:{leftSideBarVisible:!Rt}}),Tr=()=>rt({type:"setUi",ui:{rightSideBarVisible:!Lt}}),Ar=e=>{so&&(co(!1),fo(null),ao.current=!1,Rt&&Zt===e)||Xt&&(po.current=!1,Kt(),Rt&&Zt===e)||(Rt&&Zt===e?Pr():(eo(e),Rt||rt({type:"setUi",ui:{leftSideBarVisible:!0}})))},Mr=()=>{C(Re,{accept:"image/*",title:Ot.mediaLibrary})},jr=()=>{So(U),jt.select(null),u()},Er=()=>{So(gt??U),Lt||rt({type:"setUi",ui:{rightSideBarVisible:!0}})},Rr=ot.data.content??[],Lr=()=>{const e=Rr.findIndex(yt),n=Rr.findIndex(kt);return{floor:e>=0?e+1:0,cap:n>=0?n:Rr.length}},Vr=dt,Hr=Lo.stripCopy,Fr=e=>i(e,Hr),Wr=w(),Dr=Te({data:ot.data,config:Vr,readOnly:Boolean(_n),clipboard:Wr,strip:Hr?e=>Hr(e):void 0,afterRemove:"none",stepBounds:(e,n)=>{if(e.parentId!==un||e.slot!==fn)return{min:0,max:n-1};const{floor:t,cap:o}=Lr();return{min:t,max:o-1}},commit:(e,{select:n})=>{void 0!==n&&So(U);const t=void 0===n||"node"===n?.kind?n:null;jt.commitDocument(e,t)}}),Ur=e=>{const n=mn(ot.data,dt,e);if(!n)return!1;const t=pn(n.place),o=n.node,r=t===le?Kr(o):ci(o);return!!Dr.remove(e)&&(gr(xt.deleted({name:r}),"success",{duration:8e3,action:{label:xt.bar.undo,onClick:()=>{Dr.restore(n.node,n.place)}}}),!0)},Gr={...Dr,remove:Ur},Yr=e=>Yo(e,"block",dt.components[e]?.label??e),Jr=xn(e=>dt.components[e]?.defaultProps??{},[dt]),Xr=e=>Yo(e,"section",Yr(e)),Kr=e=>l({type:e.type,props:e.props??{}},Xr(e.type),Ko),{nodeAddresses:_r,zoneItems:Qr}=kn(()=>{const e=/* @__PURE__ */new Map,n=/* @__PURE__ */new Map,t=(o,r,i)=>{n.set(r,o),o.forEach((n,o)=>{const l=String(n.props?.id??"");if(l&&e.set(l,{zone:r,index:o}),i>=de)return;const s=/* @__PURE__ */new Map;for(const{child:e,zone:t}of ce(dt,n))s.set(t,[...s.get(t)??[],e]);for(const[e,n]of s)t(n,e,i+1)})};return t(Rr,le,0),{nodeAddresses:e,zoneItems:n}},[Rr,dt]),qr=xn(e=>Qr.get(e)??[],[Qr]),Zr=e=>{const n=_r.get(e);return n?qr(n.zone)[n.index]:void 0},ei=e=>ie(Lo,dt,e),ni=e=>{if(!Lo.slotsOf||e===le)return null;const n=e.lastIndexOf(":");if(n<=0)return null;const t=Zr(e.slice(0,n));if(!t)return null;const o=ei(t).filter(e=>e.rung),r=o.findIndex(t=>t.slot===e.slice(n+1));return r<0?null:{node:t,slot:o[r],position:r}},ti=(()=>{if(!q(ko))return null;const e=`${ko.nodeId}:${ko.slot}`;return ni(e)?.slot.panel===ko.kind?e:null})(),oi=yn(null);vn(()=>{const e=oi.current;if(oi.current=null,!ti||!q(ko))return;const n=ko.nodeId;No(n,{scroll:e!==ti}),ir(e=>{if(!e.has(n))return e;const t=new Set(e);return t.delete(n),t})},[ko]);const ri=(e,n,t)=>{const o=String(e.props.id);if(!n.panel)return void(e=>{const n=_r.get(e);n&&(n.zone===le?zi(n.index):el(n.zone,n.index,e,Zr(n.zone.slice(0,n.zone.lastIndexOf(":")))?.type??""))})(o);const r={kind:n.panel,nodeId:o,slot:n.slot},i=`${o}:${n.slot}`;t&&ti!==i&&(oi.current=i),Ao(null,r),Lt||rt({type:"setUi",ui:{rightSideBarVisible:!0}}),bi(o)},ii=(e,n,t)=>{const o=`${e}:${n}`;if(ir(n=>{if(!n.has(o)&&!n.has(e))return n;const t=new Set(n);return t.delete(o),t.delete(e),t}),!t)return;ti!==o&&(oi.current=o);Ao(null,{kind:t,nodeId:e,slot:n})},li=(e,n,t)=>{if(_n||!Lo.moveSlot)return;const o=Zr(e),r=o?ei(o).filter(e=>e.rung):[],i=r[n];if(!i)return;const l={parentId:e,slot:Hn,index:n},s=ln(l,{...l,index:Math.min(Math.max(t,0),r.length)});if(s===n)return;const d=Lo.moveSlot(e,n,s);"string"==typeof d&&ii(e,d,i.panel)},si=Xo(),di=kn(()=>{const e=/* @__PURE__ */new Map;for(const n of si??[])e.set(n.slug,n.name);return e},[si]),ci=e=>s(e,Yr,Go.plainText,e=>di.get(e),Go.rowName),ai=(e,n)=>{const t=dt.components[e.type]?.fields,o=n===le||kl(n)?"section":"block",r=n===le&&(yt(e)||kt(e)||ft(e.type)),i="block"===o?d(t):r?null:c(t);return Go.renamePropOf?Go.renamePropOf(e,o,i):i},pi=(e,n,t,o)=>{if(!(!_n&&Zo?.zone===e&&Zo.index===n))return;const r=(t,o)=>{er(null),o&&((e,n,t)=>{const o=qr(e)[n];if(!o)return;const r=ai(o,e);r&&jt.replaceComponent(e,n,{...o,props:{...o.props,[r]:t.trim()}})})(e,n,t)};/* @__PURE__ */
13
- return An("input",{className:"es-tree-rename",defaultValue:o,autoFocus:!0,"aria-label":xt.rename,onClick:e=>e.stopPropagation(),onBlur:e=>r(e.currentTarget.value,!0),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),r(e.currentTarget.value,!0)):"Escape"===e.key&&(e.preventDefault(),r("",!1))}},t)},ui=n(Z(),Ct),fi=ui.scope({target:Ke,siteId:Un,docId:_e}),hi=dt,mi=(e,n)=>n===le?Xr(e):Yr(e),gi=(e,n,t)=>{const o=ui.plan(fi,t,mi(t.type,e),hi);o&&(o.changed&&jt.replaceComponent(e,n,{...t,props:{...o.props,id:t.props.id}}),gr(o.message))},yi=b({nodesIn:qr,nodeAt:(e,n)=>qr(e)[n]??null,labelOf:(e,n)=>n===le?Xr(e):Yr(e),renamePropOf:ai,beginRename:(e,n)=>er({zone:e,index:n}),history:{hasPast:it.hasPast,hasFuture:it.hasFuture,back:()=>it.back(),forward:()=>it.forward()},openAddSection:()=>{jt.select(null),$i(null)},openPageSettings:()=>{jt.select(null),So(U)},pageSettingsLabel:xt.pageSettings,words:{menu:Bt,styleClipboard:Ct,screen:xt.menu},readOnly:Boolean(_n),collapseAll:()=>ir(new Set(qr(le).map(e=>String(e.props.id)))),onPasteRefused:e=>gr(e?xt.pasteRefused({name:e.label}):xt.menu.clipboardRefused,"error"),canPasteAt:(e,n)=>vl(e,n),menuRows:jo.menuRows,isLocked:e=>Vo(e.type),duplicateBlocked:e=>Ho(ot.data,e),permits:e=>se(dt,e.type),canAddTo:Do,nodeOps:Gr,isPinned:(e,n)=>n===le&&(yt(e)||kt(e)),sectionBand:Lr,openAddInside:(e,n)=>{e===le?zi(n):jt.select({zone:e,index:n}),$i(null)},locate:e=>_r.get(e)??null,rowNameOf:(e,n)=>n===le?Kr(e):ci(e),selectAt:(e,n,t,o)=>{e===le?zi(n):el(e,n,t,o??"")},slotRung:e=>{const n=ni(e);return n?.slot.panel?{label:n.slot.label,select:()=>ri(n.node,n.slot,!1)}:null},style:{held:()=>O(fi),canCopy:e=>ui.rows(hi,e).some(e=>!1!==e.counted),copy:(e,n)=>ui.copy(fi,e,mi(e.type,n),hi),paste:(e,n,t)=>gi(e,n,t)},keys:Zn?{target:lo,selected:()=>{const e=ot.ui.itemSelector;return e?{zone:e.zone??le,index:e.index}:null},held:()=>Wr.get(),readOnly:Boolean(_n),onDone:({done:e,name:n})=>{"copied"===e&&gr(xt.copied({name:n}))}}:void 0},io),ki=yn({copy:(e,n)=>{},paste:(e,n,t)=>{},at:()=>null,readOnly:!1});vn(()=>{ki.current={copy:(e,n)=>ui.copy(fi,e,mi(e.type,n),hi),paste:gi,at:()=>{const e=ot.ui.itemSelector;if(!e)return null;const n=e.zone??le,t=qr(n)[e.index];return t?{zone:n,index:e.index,node:t}:null},readOnly:Boolean(_n)}});const Si=xn(e=>{const n=I(e);if(!n)return;const t=ki.current,o=t.at();o&&(e.preventDefault(),"copy"===n?t.copy(o.node,o.zone):t.readOnly||t.paste(o.zone,o.index,o.node))},[]);vn(()=>{if(!lo)return;const e=e=>Si(e);return lo.addEventListener("keydown",e),()=>lo.removeEventListener("keydown",e)},[Si,lo]),an(io,"keydown",Si);const vi=Rr.map(e=>e.props.id).join("|");vn(()=>{const e=io?.document??null,n=io?.window??null;let t=0;const o=[],r=()=>{if(!e)return void yo(e=>e.length?[]:e);const n=Rr.findIndex(kt),t=n>=0?n:Rr.length,o=n=>{const t=Rr[n]?.props?.id;return null==t?null:e.querySelector(`[data-puck-component="${CSS.escape(String(t))}"]`)},r=e=>e?[...e.querySelectorAll(cn)].map(e=>e.getBoundingClientRect()).filter(e=>e.width>0||e.height>0):[],i=[];for(let e=Rr.length>0&&!yt(Rr[0])?0:1;e<=t;e++){const n=o(e),t=o(e-1),l=n?.getBoundingClientRect()??null,s=t?.getBoundingClientRect()??null;if(!l&&!s)continue;const d=Vn(l&&s?(s.bottom+l.top)/2:l?0===e?l.top+12:l.top:s.bottom,Math.max(0===e?0:-1/0,...r(t).map(e=>e.bottom)),Math.min(1/0,...r(n).map(e=>e.top)));d&&i.push({...d,index:e})}yo(e=>function(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t].top!==n[t].top||e[t].index!==n[t].index||e[t].height!==n[t].height)return!1;return!0}(e,i)?e:i)},i=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(r)};if(!e||!n)return void r();n.addEventListener("scroll",i,{passive:!0});const l=new ResizeObserver(i);return l.observe(e.documentElement),r(),o.push(setTimeout(r,150),setTimeout(r,450)),()=>{cancelAnimationFrame(t),o.forEach(clearTimeout),n.removeEventListener("scroll",i),l.disconnect()}},[io,vi,Ut,Cr,Rt,Lt,lt?.props.id]);const xi=io?.document??null,wi=io?.window??null;vn(()=>{const e=oo.current;if(!e||!xi||!wi)return;const n=[],t=()=>{const n=xi.querySelector(`[data-puck-component="${CSS.escape(e.id)}"]`);if(!n)return!1;const t=n.getBoundingClientRect().top-e.offset;return Math.abs(t)>1&&wi.scrollTo({left:wi.scrollX,top:wi.scrollY+t,behavior:"instant"}),!0};return oo.current=null,t()&&n.push(setTimeout(t,150),setTimeout(t,450)),()=>n.forEach(clearTimeout)},[xi,wi]);const bi=e=>{jo.holdCanvasOn?jo.holdCanvasOn(e):a(e)},zi=e=>{So(U),jt.select({index:e}),jo.sectionPressed?.(Rr[e]);const n=Rr[e]?.props?.id;n&&bi(n)},Bi=e=>{const{floor:n,cap:t}=Lr(),o=e=>Math.min(Math.max(n,e),t);if("number"==typeof e)return o(e);const r=lt&&ko.kind!==gt?.kind?Rr.findIndex(e=>e.props.id===lt.props.id):-1;return o(r>=0?r+1:t)},Ci=(e,n)=>{const{floor:t,cap:o}=Lr(),r=Math.min(Math.max(n,t),o),i=e<r?r-1:r;return i===e?{moved:!1,dest:e}:(jt.reorderComponent(le,e,i),jt.select({index:i}),{moved:!0,dest:i})},Oi=(e,n,t,o)=>{So(U),jt.select(o?{index:o.index,zone:o.zone}:{index:e}),a(n),gr(xt.sectionAdded({name:t}))},Ii=(e,n)=>{const t=Bi(n),o=Wo(e,{nodeDefaults:Jr,newNodeId:fe,sectionLabel:Xr,blockIsOffered:Uo}),r=o?jt.insertNode(le,t,o):jt.insertSection(e,t);return Oi(t,r,Xr(e),o?((e,n,t)=>{if(e.type===t)return null;const o={at:null},r=(e,n,i)=>{const l=i.filter(n=>n===e.type).length;for(const{child:s,zone:d,index:c}of ce(dt,e)){if(s.type===t&&(!o.at||n>o.at.depth)){const r=Do(e.type,l,d.slice(d.lastIndexOf(":")+1)),i=r?.choices??(r?.spec?[{type:r.spec.childType,label:r.spec.childType}]:[]);null!==r&&"footer"!==r.source&&`${e.props.id}:${r.slot}`===d&&i.some(e=>e.type===t)&&(o.at={zone:d,index:c,depth:n})}r(s,n+1,[...i,e.type])}};return r({type:e.type,props:{...e.props,id:n}},1,[]),o.at?{zone:o.at.zone,index:o.at.index}:null})(o,r,e):null),t},Ni=(e,n,t)=>{const o=Bi(t),r=jt.insertNode(le,o,n);return Oi(o,r,e),o},$i=e=>Pi(le,e),Pi=(e,n)=>{hr.current=document.activeElement??null,Xt&&(ao.current=po.current,po.current=!1,Kt()),fo(null===n?null:{zone:e,index:n}),co(!0),Rt||(ao.current=!0,rt({type:"setUi",ui:{leftSideBarVisible:!0}}))},Ti=()=>{co(!1),fo(null),ao.current&&rt({type:"setUi",ui:{leftSideBarVisible:!1}}),ao.current=!1},Ai=(e,n,t)=>{if("section"===e.kind)jt.insertComponent(n,e.type,t);else{if("template"!==e.kind)return;jt.insertNode(n,t,Fr(e.template.node))}So(U),jt.select({index:t,zone:n})},Mi=(e,n)=>Go.rowName?n?yt(e)?Go.rowName(e,"section",xt.header):kt(e)?Go.rowName(e,"section",xt.footer):ft(e.type)?Go.rowName(e,"section",Yr(e.type)):Kr(e):ci(e):n?Xr(e.type):Yr(e.type),ji=e=>n=>{e()},Ei=()=>jo.editPinnedSource?.(),Ri=(e,n,t)=>{if(_n)return null;const o=qr(e)[n];return o&&!se(dt,o.type).delete?null:/* @__PURE__ */An(Oe,{kind:"delete",label:xt.deleteNamed({name:t}),onClick:()=>((e,n)=>{const t=qr(e)[n]?.props?.id;null!=t&&Ur(String(t))})(e,n),children:/* @__PURE__ */An(Nn,{size:15})})},Li=e=>Go.rowPreview?.(e)||void 0,Vi=e=>Go.rowMarks?.(e)??void 0,Hi=(e,n,t)=>Go.rowActions?.(e,n,t)??null,Fi=(e,n,t,o)=>{if(_n)return null;const r=Boolean(t.props._hidden);/* @__PURE__ */
14
- return An(Oe,{kind:"eye",label:r?xt.showNamed({name:o}):xt.hideNamed({name:o}),onClick:()=>Di(e,n,t),children:/* @__PURE__ */An(r?$n:Pn,{size:14,strokeWidth:1.8,strokeLinecap:void 0,strokeLinejoin:void 0})})},Wi=e=>{const n=Xr(Rr[e]?.type??""),t=n?xt.addSectionBefore({name:n}):xt.addSectionHere;return Dl(le,e,()=>$i(e),t)},Di=(e,n,t)=>{jt.replaceComponent(e,n,{...t,props:{...t.props,_hidden:!t.props._hidden}})},Ui=e=>ae(dt,e),Gi=e=>ce(dt,e),Yi=e=>Lo.slotsOf?ei(e).map(n=>({slot:n.slot,rung:n.rung?n:null,kids:pe(e,n.slot)})):[{slot:null,rung:null,kids:Gi(e)}],Ji=e=>Lo.slotsOf?Yi(e).flatMap(e=>e.kids):Gi(e),Xi=e=>Boolean(Lo.slotsOf)&&ei(e).some(e=>e.rung),Ki=(e,n,t)=>null===t?void 0===n?Do(e):Do(e,n):Do(e,n,t),_i=(e,n,t)=>{const o=ue(dt,e.type,n)&&(t||Ji(e).length>0||Xi(e));return{collapsible:o,folded:o&&pr(String(e.props.id))}},Qi=(e,n,t)=>Yi(e).flatMap(o=>{const r=o.rung?n+1:n,i=o.kids.flatMap(({child:e})=>_i(e,r,t(e.type)).collapsible?[String(e.props.id),...Qi(e,r+1,t)]:[]);return o.rung?[`${e.props.id}:${o.rung.slot}`,...i]:i}),qi=e=>Ji(e).length>0||Xi(e)||Boolean(Do(e.type)),Zi=e=>Boolean(Do(e)),el=(e,n,t,o)=>{if(So(U),Do(o)?.spec?.slider){const t=e.split(":")[0];p(t,n),jt.select({index:n,zone:e}),a(t)}else jt.select({index:n,zone:e}),bi(t)},nl=(e,n,t,o,r)=>{const i=`${e}:${n}`;jt.insertComponent(i,t,o),Do(r)?.spec?.slider?requestAnimationFrame(()=>{p(e,o),jt.select({index:o,zone:i})}):jt.select({index:o,zone:i})},tl=(e,n,t)=>{jt.insertComponent(e,n,t),So(U),jt.select({index:t,zone:e})},ol=yn(/* @__PURE__ */new Set);vn(()=>{Rr.forEach(e=>{const n=Do(e.type)?.spec;if(!n)return;const t=e.props.id;if(ol.current.has(t))return;ol.current.add(t);if((Array.isArray(e.props[n.slot])?e.props[n.slot]:[]).length>0)return;if(n.skipSeed?.(e.props))return;const o=`${t}:${n.slot}`,r=n.legacy?.(e.props)??[];(r.length?r:n.seeds(Jr)).forEach((e,t)=>Tt.seedChild(o,t,n.childType,e))})},[Rr,Tt,Jr]);const rl=yn(/* @__PURE__ */new Set);vn(()=>{Rr.forEach((n,t)=>{const o=n.props.id;if(rl.current.has(o))return;const r=e(n,Ui(n.type));rl.current.add(o),r&&Tt.replaceComponent(le,t,{...n,props:r})})},[Rr,Tt]),ee(Tt,dt);const il=Rr.findIndex(kt),ll=il>=0?Rr[il]:null,sl=St?Rr.findIndex(yt):-1,dl=sl>=0?Rr[sl]:null,cl=Rr.find(e=>e.type===pt)??null,al=Rr.find(e=>e.type===ut)??null,pl=il>=0?il:Rr.length,ul=[];Rr.forEach(e=>{kt(e)||(qi(e)&&ul.push(String(e.props.id)),ul.push(...Qi(e,1,Zi)))}),ll&&(ul.push(String(ll.props.id)),ul.push(...Qi(ll,1,Zi)));const fl=ul.length>0&&ul.every(e=>rr.has(e)),hl=e=>{const n=Go.blockRowName(e,Yr);return Go.rowName?Go.rowName(e,"block",n):n},ml=(e,n,t,o)=>{const r=qr(e)[t];if(!r)return;const i={...hn(e),index:t},l={...hn(n),index:Math.min(Math.max(o,0),qr(n).length)},s=ln(i,l);if(e!==n||s!==t)try{Dr.move(String(r.props.id),{...l,index:s})}catch(e){if(!(e instanceof gn))throw e}},gl=e=>{const n=/* @__PURE__ */new Set,t=e=>{for(const{child:o,zone:r}of Gi(e))n.add(r),t(o)};for(const t of Ui(e.type))n.add(`${e.props.id}:${t}`);return t(e),n},yl=e=>{let n=e.slice(0,e.indexOf(":"));for(let e=0;e<64;e++){const e=_r.get(n);if(!e)return null;if(e.zone===le)return n;n=e.zone.slice(0,e.zone.indexOf(":"))}return null},kl=e=>{const n=e.slice(0,e.indexOf(":")),t=Rr.find(e=>ft(e.type)&&String(e.props.id)===n);return t&&ht(n)===e?t:null},Sl=(e,n,t)=>{if(e.rung){const t=Zr(e.rung.nodeId),o=t?ei(t).filter(e=>e.rung).length:0;return n.parentId===e.rung.nodeId&&n.slot===Hn&&n.index>=0&&n.index<=o}if(n.slot===Hn)return!1;if(e.add)return wl(e.add,n);const o=pn(n);if(ft(e.type))return!1;const r=kl(o),i=kl(e.zone);if(r||i)return!(!r||!i)&&(n.index>=0&&n.index<=qr(o).length);if(e.zone===le||o===le){if(e.zone!==o)return!1;const{floor:t,cap:r}=Lr();return n.index>=t&&n.index<=r}if(n.index<0||n.index>qr(o).length)return!1;if(e.zone===o)return!0;const l=ll&&!ct.lastIsOpen?String(ll.props.id):null;return(!l||yl(e.zone)!==l&&yl(o)!==l)&&((e,n,t,o)=>{if(e===n)return!0;const r=o??qr(e)[t];if(!r)return!1;const i=n.split(":")[0],l=_r.get(i),s=l?qr(l.zone)[l.index]:void 0;if(!s)return!1;if(!o&&gl(r).has(n))return!1;const d=Do(s.type,Fo(ot?.data,s.type,i),n.slice(n.lastIndexOf(":")+1));return!!d&&(!!(d.choices?d.choices.some(e=>e.type===r.type):d.spec?.childType===r.type)&&!d.spec?.addBlocked?.(qr(n),r))})(e.zone,o,e.index,t)},vl=(e,n)=>{const t=pn(e.from);if(t===pn(n))return!0;const o=e.node;return Sl({id:String(o.props?.id??""),zone:t,index:-1,type:o.type},n,o)},xl=e=>{const n=e.slice(0,e.indexOf(":")),t=_r.get(n),o=t?qr(t.zone)[t.index]:void 0;if(!t||!o)return null;const r=Do(o.type,Fo(ot?.data,o.type,n),e.slice(e.lastIndexOf(":")+1));if(!r||`${n}:${r.slot}`!==e)return null;if("footer"===r.source)return null;const i=r.choices??(r.spec?[{type:r.spec.childType,label:Yr(r.spec.childType)}]:[]),l=ni(e);return{parent:o,parentId:n,target:r,choices:i,parentName:l?l.slot.label:Mi(o,t.zone===le)}},wl=(e,n)=>{const t=pn(n);if("block"!==e.kind){if(kl(t))return n.index>=0&&n.index<=qr(t).length;if(t!==le)return!1;const{floor:e,cap:o}=Lr();return n.index>=e&&n.index<=o}if(t===le)return!1;const o=xl(t);return!(!o||!o.choices.some(n=>n.type===e.type))&&!o.target.spec?.addBlocked?.(qr(t))},bl=(e,n)=>{e.rung?li(e.rung.nodeId,e.index,n.index):e.add?((e,n)=>{if("block"!==e.kind&&kl(pn(n)))return void Ai(e,pn(n),n.index);if("section"===e.kind)return void Ii(e.type,n.index);if("template"===e.kind)return void Ni(e.template.name,Fr(e.template.node),n.index);const t=pn(n),o=xl(t);o&&(o.target.spec?nl(o.parentId,o.target.slot,e.type,n.index,o.parent.type):tl(t,e.type,n.index))})(e.add,n):e.zone===le?Ci(e.index,n.index):ml(e.zone,pn(n),e.index,n.index)},[zl]=Sn(()=>on()),Bl=rn({keyOf:e=>e.id,readOnly:Boolean(_n),session:zl,canDrop:Sl,onDrop:bl,onStep:(e,n)=>{e.rung?li(e.rung.nodeId,e.index,n<0?e.index-1:e.index+2):e.zone===le?((e,n)=>{const t=Xr(Rr[e]?.type??""),o=Ci(e,n<0?e-1:e+2);if(!o.moved)return void gr(n<0?xt.sectionFirst({name:t}):xt.sectionLast({name:t}));const{floor:r,cap:i}=Lr();gr(xt.sectionMoved({name:t,n:o.dest-r+1,total:i-r}))})(e.index,n):ml(e.zone,e.zone,e.index,n<0?e.index-1:e.index+2)}}),Cl=xn(e=>{const{floor:n,cap:t}=Lr(),o=[];for(const r of e.nodes){const e=pn(r.place),i=qr(e)[r.place.index];if(!i||String(i.props.id)!==r.id)continue;if(yt(i)||kt(i)||Vo(i.type))continue;if(ft(i.type))continue;const l=Boolean(kl(e)),s=e===le||l;e===le&&t-n<2||o.push({key:r.id,item:{id:r.id,zone:e,index:r.place.index,type:i.type},box:r.box,label:s?Xr(i.type):ci(i),from:r.place})}const r=e.zones.flatMap(e=>{const n=pn(e.list);return n===le&&0===e.children.length?[{...e,addLabel:xt.addSection,addAlways:!0}]:e.children.length>0||Boolean(xl(n)?.choices.length)||Boolean(kl(n))?[e]:[]}),i=r.flatMap(e=>{const n=pn(e.list);return n===le||kl(n)||!xl(n)?.choices.length?[]:Ze(e,xt.addBlockHere)});return{sources:o,zones:r,seams:i}},[ot.data]),Ol=null==lt?.props.id?null:String(lt.props.id),Il=xn(e=>{const n=dt,t=e=>!e.item.rung&&null!==mn(ot.data,n,e.item.id),o=e[e.length-1];if(!t(o))return o;const r=n=>e.find(e=>t(e)&&e.item.id===n),i=r(Ol);return i||(r(Ae(ot.data,n,o.item.id,Ol))??o)},[ot.data,dt,Ol]),Nl=e=>{So(U),jt.select(e.zone===le?{index:e.index}:{index:e.index,zone:e.zone})},$l=ne(),Pl=()=>({data:ot.data,device:Ut,ops:jt,inspector:Mo}),Tl=$l?.model,Al=kn(()=>Tl?e=>Tl(e,Cl(e),Pl()):Cl,[Tl,Cl,Ut]),Ml=$l?.measure,jl=Ml?(e,n)=>Ml(e,n,Pl()):void 0,El=$l?.canDrop,Rl=El?(e,n)=>El(e,n,Sl,Pl()):Sl,Ll=$l?.drop,Vl=Ll?(e,n)=>Ll(e,n,bl,Pl()):bl,Hl=$l?.pick,Fl=Hl?e=>Hl(e,Nl,Pl()):Nl,Wl=e=>{const n=pn(e),t=ni(n);t&&ri(t.node,t.slot,!1),Pi(n,e.index)},Dl=(e,n,t,o)=>/* @__PURE__ */An(Ie,{..._n?{}:Bl.seam({place:{...hn(e),index:n}}),onAdd:_n?void 0:t,label:o},`seam:${e}:${n}`),Ul={rowClick:ji,isCollapsed:pr,toggleCollapse:ur},Gl=e=>{const n=String(e.props.id),t=Rr.findIndex(e=>String(e.props.id)===n),o=ht(n),r=qr(o),i=pr(n),l=Yr(e.type),s=Go.rowName?Go.rowName(e,"section",l):l,d=e=>Dl(o,e,()=>Pi(o,e),xt.addSectionHere);/* @__PURE__ */
15
- return Mn(jn,{children:[
16
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:e.type,size:13}),name:s,preview:Li(e),marks:Vi(e),onSelect:()=>zi(t),nameSlot:pi(le,t,n,s),selected:Bo===n,actions:Hi(e,le,t)??void 0,rowProps:{"data-node-id":n,onClick:ji(()=>zi(t))},fold:{open:!i,label:"section",onToggle:()=>ur(n)}}),!i&&/* @__PURE__ */Mn(ze,{children:[r.map((n,t)=>{const r=String(n.props.id),i=Kr(n),l=qi(n),s=l&&pr(r),c=()=>el(o,t,r,e.type),{rowProps:a,...p}=Bl.row({item:{id:r,zone:o,index:t,type:n.type},place:{...hn(o),index:t}},{"data-node-id":r,onClick:ji(c)});/* @__PURE__ */
17
- return Mn(bn,{children:[d(t),
18
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:n.type,size:13}),name:i,preview:Li(n),marks:Vi(n),onSelect:c,nameSlot:pi(o,t,r,i),selected:Bo===r,hidden:Boolean(n.props._hidden),...p,fold:l?{open:!s,label:"section",onToggle:()=>ur(r)}:void 0,actions:/* @__PURE__ */Mn(jn,{children:[Ri(o,t,i),Hi(n,o,t),Fi(o,t,n,i)]}),rowProps:a}),l&&!s&&/* @__PURE__ */An(ze,{children:Xl(n,2)})]},r)}),d(r.length)]})]})},Yl=(e,n,t,o,r)=>{const i=String(e.props.id),l=`${i}:${n.slot}`,s=Bl.dragging,d=!pr(l)&&s?.rung?.nodeId!==i,c={...hn(l),index:0},a=s&&!s.rung&&Sl(s,c)?c:void 0,p=()=>ri(e,n,!0),{rowProps:u,...f}=Bl.row({item:{id:`rung:${l}`,zone:`${i}:${Hn}`,index:t,type:e.type,rung:{nodeId:i,slot:n.slot}},place:{parentId:i,slot:Hn,index:t},into:a,canDrag:Boolean(Lo.moveSlot)&&!1!==n.movable&&o>1},{"data-slot-zone":l,onClick:ji(p)}),h=_n?null:Lo.slotActions?.(e,n.slot);/* @__PURE__ */
19
- return Mn(bn,{children:[n.heading,
20
- /* @__PURE__ */An(be,{words:wt,icon:n.glyph??null,name:n.label,badge:n.badge,onSelect:p,selected:ti===l,...f,dragHint:n.dragHint,fold:{open:d,label:n.label,onToggle:()=>ur(l)},actions:h&&h.length>0?/* @__PURE__ */An(jn,{children:h.map((t,o)=>/* @__PURE__ */An(Oe,{kind:"delete"===t.kind?"delete":"plain",label:t.label,disabled:t.disabled,onClick:()=>((e,n,t)=>{if(_n||t.disabled)return;const o=String(e.props.id),r=e=>{"string"==typeof e&&ii(o,e,n.panel)},i=t.run();i&&"function"==typeof i.then?i.then(r):r(i)})(e,n,t),children:"delete"===t.kind?/* @__PURE__ */An(Nn,{size:15}):/* @__PURE__ */An(Tn,{size:15})},`${o}:${t.kind}`))}):void 0,rowProps:u}),d&&/* @__PURE__ */An(ze,{children:r})]},l)},Jl=(e,n)=>{const t=Yi(e),o=t.filter(e=>e.rung).length;let r=0;/* @__PURE__ */
21
- return An(jn,{children:t.map(t=>{const i=t.kids,l=t.rung?n+1:n,s=Ki(e.type,void 0,t.slot),d=s?`${e.props.id}:${s.slot}`:null,c=null===t.slot?null:`${e.props.id}:${t.slot}`,a=null!==c&&Boolean(xl(c)?.choices.length),p=(e,n)=>a?Dl(e,n,()=>Pi(e,n),xt.addBlockHere):Dl(e,n),u=/* @__PURE__ */Mn(jn,{children:[i.map(({child:n,zone:t,index:o})=>{const r=Bo===String(n.props.id),{collapsible:i,folded:s}=_i(n,l,Zi(n.type)),d=String(n.props.id),c=hl(n),a=()=>el(t,o,d,e.type),{rowProps:u,...f}=Bl.row({item:{id:d,zone:t,index:o,type:n.type},place:{...hn(t),index:o}},{"data-node-id":d,onClick:ji(a)});/* @__PURE__ */
22
- return Mn(bn,{children:[0===o&&p(t,0),
23
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:n.type,size:13}),name:c,preview:Li(n),marks:Vi(n),onSelect:a,nameSlot:pi(t,o,d,c),selected:r,hidden:Boolean(n.props._hidden),...f,fold:i?{open:!s,label:"group",onToggle:()=>ur(d)}:void 0,actions:/* @__PURE__ */Mn(jn,{children:[Ri(t,o,c),Hi(n,t,o),Fi(t,o,n,c)]}),rowProps:u}),i&&!s&&/* @__PURE__ */An(ze,{children:Jl(n,l+1)}),p(t,o+1)]},String(n.props.id??`${t}-${o}`))}),null===c?d&&!i.some(e=>e.zone===d)?p(d,0):null:0!==i.length||!t.rung&&d!==c?null:p(c,0)]});return t.rung?Yl(e,t.rung,r++,o,u):/* @__PURE__ */An(bn,{children:u},t.slot??"")})})},Xl=(e,n)=>{const t=Fo(ot?.data,e.type,String(e.props.id)),o=Yi(e),r=o.filter(e=>e.rung).length;let i=0;/* @__PURE__ */
24
- return An(jn,{children:o.map(o=>{const l=o.kids,s=o.rung?n+1:n,d=Ki(e.type,t,o.slot),c=d?.spec??null,a=c&&Array.isArray(e.props[c.slot])?e.props[c.slot]:[],p=d&&d.choices?{slot:d.slot,choices:d.choices}:null,u=String(e.props.id),f=c&&!c.fixed?`${u}:${c.slot}`:null,h=p?`${u}:${p.slot}`:null,m=(n,t)=>{const o=n===f&&c&&!c.addBlocked?.(a)?()=>nl(e.props.id,c.slot,c.childType,t,e.type):n===h?()=>Pi(n,t):void 0;return Dl(n,t,o,n===f&&c?c.addLabel:xt.addBlockHere)},g=null===o.slot?null:`${u}:${o.slot}`,y=Boolean(c&&!c.fixed&&(null===g||g===f)),k=/* @__PURE__ */Mn(jn,{children:[l.map(({child:n,zone:t,index:o})=>{const r=Bo===String(n.props.id),i=ci(n),l=String(n.props.id),{collapsible:d,folded:c}=_i(n,s,Zi(n.type)),a=Ui(n.type),p=1===a.length?`${l}:${a[0]}`:null,u=p?{...hn(p),index:qr(p).length}:void 0,f=Bl.dragging,h=u&&f&&Sl(f,u)?u:void 0,g=()=>el(t,o,l,e.type),{rowProps:y,...k}=Bl.row({item:{id:l,zone:t,index:o,type:n.type},place:{...hn(t),index:o},into:h,canDrag:!Vo(n.type)},{"data-node-id":l,onClick:ji(g)});/* @__PURE__ */
25
- return Mn(bn,{children:[0===o&&m(t,0),
26
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:n.type,size:13}),name:i,preview:Li(n),marks:Vi(n),onSelect:g,nameSlot:pi(t,o,l,i),selected:r,hidden:Boolean(n.props._hidden),...k,fold:d?{open:!c,label:"group",onToggle:()=>ur(l)}:void 0,actions:Vo(n.type)?Hi(n,t,o)??void 0:/* @__PURE__ */Mn(jn,{children:[Ri(t,o,i),Hi(n,t,o),Fi(t,o,n,i)]}),rowProps:y}),d&&!c&&/* @__PURE__ */An(ze,{children:Xl(n,s+1)}),m(t,o+1)]},String(n.props.id??`${t}-${o}`))}),y&&c&&
27
- /* @__PURE__ */An(N,{small:!0,label:c.addLabel,blocked:c.addBlocked?.(a)??null,onAdd:()=>nl(e.props.id,c.slot,c.childType,a.length,e.type)}),null===g?h&&!l.some(e=>e.zone===h)?m(h,0):null:0!==l.length||(o.rung?y:g!==h)?null:m(g,0)]});return o.rung?Yl(e,o.rung,i++,r,k):/* @__PURE__ */An(bn,{children:k},o.slot??"")})})},Kl=(()=>{if(!lt||!vo)return null;const e=String(lt.type),n=String(lt.props.id),t=Do(e,Fo(ot?.data,e,n));if(!t||"footer"===t.source)return null;const o=Rr.some(e=>String(e.props?.id)===n),r=Array.isArray(lt.props[t.slot])?lt.props[t.slot]:[];if(t.spec?.addBlocked?.(r))return null;const i=t.choices??(t.spec?[{type:t.spec.childType,label:Yr(t.spec.childType)}]:[]);return 0===i.length?null:{parentName:Mi(lt,o),choices:i,onPick:o=>{t.spec?nl(n,t.slot,o,r.length,e):tl(`${n}:${t.slot}`,o,r.length)}}})(),_l=bo&&bo.zone!==le&&!kl(bo.zone)?bo.zone:null,Ql=!0===ho.blocksFirst,ql=_l?xl(_l):Ql&&bo?null:Kl,Zl=Boolean(uo&&_l)||Ql&&Boolean(ql&&ql.choices.length>0),es=so||null!==Xt,ns=e=>"panel"in e?{id:e.id,label:e.label,icon:e.icon,active:Rt&&!es&&Ro===e.id,onSelect:()=>Ar(e.id)}:e,ts=[{id:"add",label:xt.add.title,icon:/* @__PURE__ */An("span",{className:"sf-rail-plus","aria-hidden":"true",children:"+"}),active:so,onSelect:()=>so?Ti():$i(null)},...(jo.railLead??[]).map(ns),{id:"sections",label:xt.layers,icon:/* @__PURE__ */An(Me,{}),active:Rt&&!es&&"sections"===Ro,onSelect:()=>Ar("sections")},...(jo.railTrail??[]).map(ns)];Jt?ts.push({id:"media",label:xt.railMedia,icon:/* @__PURE__ */An(je,{}),active:Rt&&!so&&(null!==Xt||"media"===Ro),onSelect:()=>Ar("media")}):et&&ts.push({id:"media",label:xt.railMedia,icon:/* @__PURE__ */An(je,{}),onSelect:Mr});const os=[...jo.railLead??[],...jo.railTrail??[]].find(e=>"panel"in e&&e.id===Ro),rs=Boolean(vt?.foldable)&&!Eo,is=vt?.label??(nt?xt.pageSections:xt.templateSections),ls=rs&&pr(Fn),ss=/* @__PURE__ */Mn(jn,{children:[Rr.map((e,n)=>{if(yt(e)||kt(e)||ft(e.type))return null;const t=Bo===String(e.props.id),o=Boolean(e.props._hidden);Gi(e);const r=String(e.props.id),i=jo.hasOwnRows?.(e)??!1,l=qi(e)||i,s=l&&pr(r),d=Ui(e.type),c=1===d.length?`${r}:${d[0]}`:null,a=c?{...hn(c),index:qr(c).length}:void 0,p=Bl.dragging,u=a&&p&&Sl(p,a)?a:void 0,{rowProps:f,...h}=Bl.row({item:{id:r,zone:le,index:n,type:e.type},place:{...hn(le),index:n},into:u},{"data-node-id":r,onClick:ji(()=>zi(n))});/* @__PURE__ */
28
- return Mn(bn,{children:[n>0&&Wi(n),
29
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:e.type,size:13}),name:Kr(e),preview:Li(e),marks:Vi(e),onSelect:()=>zi(n),nameSlot:pi(le,n,r,Kr(e)),selected:t,hidden:o,...h,fold:l?{open:!s,label:"section",onToggle:()=>ur(r)}:void 0,actions:/* @__PURE__ */Mn(jn,{children:[Ri(le,n,Kr(e)),Hi(e,le,n),Fi(le,n,e,Kr(e))]}),rowProps:f}),qi(e)&&!s&&/* @__PURE__ */Mn(ze,{children:[Xl(e,1),jo.partRows?.(e,Ul)]}),i&&!s&&/* @__PURE__ */An(ze,{children:jo.ownRows?.(e,n,Ul)})]},String(e.props.id??n))}),!Eo&&pl>0&&Wi(pl),vt?.addAtEnd&&!Eo&&!_n&&/* @__PURE__ */An(N,{small:!0,label:xt.addSection,blocked:null,onAdd:()=>$i(pl)})]}),ds=(e,n,t)=>{const o=String(e.props.id),r=Ji(e).length>0||Xi(e)||Boolean(Do(e.type)),i=r&&pr(o),l="header"===t?xt.header:xt.footer,s=Go.rowName?Go.rowName(e,"section",l):l;/* @__PURE__ */
30
- return Mn(jn,{children:[
31
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:t,size:13}),name:s,preview:Li(e),marks:Vi(e),onSelect:()=>zi(n),nameSlot:pi(le,n,o,s),selected:Bo===String(e.props.id),fold:r?{open:!i,label:"section",onToggle:()=>ur(o)}:void 0,actions:Hi(e,le,n)??void 0,rowProps:{"data-node-id":o,onClick:ji(()=>zi(n))}}),r&&!i&&/* @__PURE__ */An(ze,{children:Jl(e,1)})]})};return(jo.wrap??(e=>e))(
32
- /* @__PURE__ */An(te,{target:io,children:/* @__PURE__ */Mn("div",{ref:ro,className:"sf-editor es-editor",style:Xe(lr),onContextMenu:yi.onEditorContextMenu,...m(Re),children:[
33
- /* @__PURE__ */Mn(Le,{children:[
34
- /* @__PURE__ */An(Ve,{items:ts,ariaLabel:xt.bar.views}),
35
- /* @__PURE__ */Mn(He,{children:[
36
- /* @__PURE__ */An(Fe,{label:xt.bar.undo,disabled:Boolean(_n)||!it.hasPast,onClick:()=>it.back(),children:/* @__PURE__ */An(On,{})}),
37
- /* @__PURE__ */An(Fe,{label:xt.bar.redo,disabled:Boolean(_n)||!it.hasFuture,onClick:()=>it.forward(),children:/* @__PURE__ */An(In,{})}),
38
- /* @__PURE__ */An(We,{}),
39
- /* @__PURE__ */An(De,{devices:Vt,value:Ut,onChange:Gt})]}),
40
- /* @__PURE__ */Mn(He,{kind:"right",style:{minWidth:300},children:[
41
- /* @__PURE__ */An(En,{saveState:Yn,notSaving:Boolean(_n)||null!=Jn,readOnlyReason:Qn,toggle:qn,onToggle:Kn,onRetry:Xn,words:xt.bar,saveWords:zt}),jo.barLead?.(),
42
- /* @__PURE__ */An(zn,{content:xt.bar.refreshTip,side:"bottom",children:/* @__PURE__ */An(Bn,{variant:"secondary",onClick:()=>{oo.current=(()=>{const e=io?.document;if(!e)return null;const n=Rr.findIndex(kt),t=n>=0?n:Rr.length;let o=null;for(let n=0;n<t;n++){const t=Rr[n]?.props?.id;if(null==t)continue;const r=e.querySelector(`[data-puck-component="${CSS.escape(String(t))}"]`);if(!r)continue;const i=r.getBoundingClientRect().top;i<=4&&(null===o||i>o.offset)&&(o={id:String(t),offset:i})}if(!o){const e=lt?.props?.id??Rr[0]?.props?.id;null!=e&&(o={id:String(e),offset:0})}return o})(),to(e=>e+1)},children:xt.bar.refresh})}),jo.barTrail?.(),jo.barMain?jo.barMain():/* @__PURE__ */An(Bn,{variant:"primary",disabled:null!==Qn,onClick:()=>{Gn(ot.data)},children:xt.done})]})]}),
43
- /* @__PURE__ */An(z,{}),
44
- /* @__PURE__ */Mn("div",{className:"sf-body",children:[Rt?/* @__PURE__ */Mn(jn,{children:[
45
- /* @__PURE__ */An("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left","aria-label":xt.leftPanel,children:so?/* @__PURE__ */An($,{blocks:ql,blocksOnly:Zl,at:uo?{label:(e=>{const n=kl(e.zone);if(n)return xt.add.addingTo({name:Go.rowName?Mi(n,!0):Yr(n.type)});if(e.zone===le){const n=Rr[e.index];return n&&!kt(n)?xt.add.addingBefore({name:Mi(n,!0)}):xt.add.addingAtEnd}const t=xl(e.zone);return t?xt.add.addingTo({name:t.parentName}):xt.add.addingHere})(uo),onClear:()=>fo(null)}:void 0,onAdd:e=>{const n=bo,t=(e,n)=>{uo&&fo({zone:e,index:n})};if(n&&"block"!==e.kind&&kl(n.zone))return Ai(e,n.zone,n.index),void t(n.zone,n.index+1);if("section"===e.kind)return(e=>{if(null===zo)return void Ii(e);const n=Ii(e,zo);uo&&mo(n+1)})(e.type);if("template"===e.kind)return((e,n)=>{if(null===zo)return void Ni(e,n);const t=Ni(e,n,zo);uo&&mo(t+1)})(e.template.name,Fr(e.template.node));if(n&&n.zone!==le){const o=xl(n.zone);if(!o)return;return o.target.spec?nl(o.parentId,o.target.slot,e.type,n.index,o.parent.type):tl(n.zone,e.type,n.index),void t(n.zone,n.index+1)}Kl?.onPick(e.type)},itemFor:e=>({id:`new:${e.kind}:${"template"===e.kind?e.template.id:e.type}`,zone:"",index:-1,type:"template"===e.kind?e.template.node.type:e.type,add:e}),session:zl,siteWide:jo.addPanelRow?.(Ti),onClose:Ti,onHide:Pr,readOnly:Boolean(_n)}):Xt&&Yt?
46
- /* @__PURE__ */An(A,{panel:Yt,pick:Xt,onHide:Pr}):os?os.panel({onHide:Pr,notify:gr}):"media"===Ro&&Yt?/* @__PURE__ */An(A,{panel:Yt,pick:null,onHide:Pr}):/* @__PURE__ */Mn(jn,{children:[
47
- /* @__PURE__ */An(P,{icon:/* @__PURE__ */An(Me,{}),title:xt.layers,context:It,actions:
48
- /* @__PURE__ */An(Ue,{label:fl?xt.expandAll:xt.collapseAll,title:0===ul.length?xt.nothingToFold:void 0,disabled:0===ul.length,onClick:()=>ir(e=>{const n=new Set(ul);return fl?new Set([...e].filter(e=>!n.has(e))):/* @__PURE__ */new Set([...e,...ul])}),children:/* @__PURE__ */An(Rn,{expand:fl})}),onHide:Pr}),
49
- /* @__PURE__ */Mn(Be,{className:"sf-tree sf-scroll",words:wt,children:[
50
- /* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:"page",size:13}),name:xt.pageSettings,onSelect:jr,selected:!lt&&vo,rowProps:{onClick:ji(jr)}}),cl&&/* @__PURE__ */Mn(jn,{children:[
51
- /* @__PURE__ */An(Ce,{children:xt.header}),Gl(cl)]}),!Eo&&tt&&/* @__PURE__ */Mn(jn,{children:[
52
- /* @__PURE__ */An(Ce,{children:xt.header}),!St&&/* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:"header",size:13}),name:xt.header,onSelect:Er,selected:ko.kind===gt?.kind,rowProps:{onClick:ji(Er)}})]}),!Eo&&dl&&ds(dl,sl,"header"),!Eo&&!rs&&/* @__PURE__ */An(Ce,{children:is}),rs?/* @__PURE__ */Mn(jn,{children:[
53
- /* @__PURE__ */An(be,{words:wt,icon:null,name:is,fold:{open:!ls,label:is,onToggle:()=>ur(Fn)}}),!ls&&/* @__PURE__ */An(ze,{children:ss})]}):ss,tt&&/* @__PURE__ */An(Ce,{children:xt.footer}),ll&&ds(ll,il,"footer"),!Eo&&!ll&&tt&&/* @__PURE__ */An(be,{words:wt,icon:/* @__PURE__ */An(Jo,{type:"footer",size:13}),name:xt.footer,onSelect:Ei,rowProps:{onClick:ji(Ei),title:xt.editFooter}}),al&&Gl(al),jo.treeFoot?.()]})]})}),
54
- /* @__PURE__ */An(Ge,{side:"left",width:lr.left,min:Je,max:Ye,defaultWidth:k.left,label:xt.resizeLeftPanel,onResize:cr})]}):/* @__PURE__ */An(T,{side:"left",onShow:Pr}),
55
- /* @__PURE__ */Mn("div",{ref:yr,className:"sf-center sf-scroll","data-sf-canvas-head":wr?"":void 0,style:{overflowX:Ir?"auto":"hidden",overflowY:"hidden"},children:[wr&&/* @__PURE__ */An("div",{ref:br,className:"sf-canvas-head",children:/* @__PURE__ */An(wr,{device:Ut})}),
56
- /* @__PURE__ */An("div",{className:"sf-frame-scaler",style:Nr,children:/* @__PURE__ */An("div",{className:"sf-frame "+(Ut===Wt?"":`sf-frame--${Ut}`),style:$r,children:/* @__PURE__ */Mn("div",{className:"sf-preview-host",children:[
57
- /* @__PURE__ */An(Nt,{},no),
58
- /* @__PURE__ */An(en,{canvas:io,session:zl,model:Al,measure:jl,canDrop:Rl,onDrop:Vl,choose:Il,onPick:Fl,onZoneAdd:Wl,onSeamAdd:Wl,zoneAddLabel:xt.canvasAddBlock,words:bt.canvas,readOnly:Boolean(_n),revision:ot.data}),go.length>0&&/* @__PURE__ */An("div",{className:"sf-preview-gaps",children:go.map(e=>
59
- /* @__PURE__ */An(nn,{index:e.index,label:xt.addSectionHere,onInsert:()=>$i(e.index),className:void 0===e.height?"sf-preview-gap":"sf-preview-gap sf-preview-gap--tight",style:void 0===e.height?{top:e.top}:{top:e.top,height:e.height}},e.index))})]})})})]}),Lt?/* @__PURE__ */Mn(jn,{children:[
60
- /* @__PURE__ */An(g,{value:{selectChild:el,addChild:nl,childRowName:ci,blockRowName:hl},children:/* @__PURE__ */An($t,{mode:ko,onOpenWebsiteSettings:jo.openSettings??(()=>{}),onOpenSiteStyles:jo.openStyles,onSelectNode:Qo,onNotify:gr,onHidePanel:Tr,nodeActions:lt?se(dt,lt.type):Wn})}),
61
- /* @__PURE__ */An(Ge,{side:"right",width:lr.right,min:Je,max:Ye,defaultWidth:k.right,label:xt.resizeSettingsPanel,onResize:ar})]}):
62
- /* @__PURE__ */An(T,{side:"right",onShow:Tr})]}),yi.menu]})}))}export{Dn as ScreenChrome};
@@ -1,5 +0,0 @@
1
- import{blockTypesIn as e}from"./chunk-5ZBY24K7.js";import{buildPaletteSections as t,pinnedSection as o,paletteWithoutPinned as n,categoryLabel as i}from"./chunk-PA3PNTVV.js";import{sectionTemplatesOf as s}from"./chunk-BVN33R76.js";import{SidePanelHead as r,PanelModeExit as c}from"./chunk-PFNIVZPN.js";import{useEaselSession as l}from"./chunk-O7Q4DDJT.js";import{blockRuns as a}from"./chunk-HQ4VVRIC.js";import{useScreenBlockLook as p,useScreenBlockRules as m}from"./chunk-E3PD66A3.js";import{DEFAULT_SCREEN_WORDS as d}from"./chunk-5F3PKNT7.js";import{useEasel as f}from"./chunk-KYG35KKJ.js";import{useWords as u}from"./chunk-MFIRYGHW.js";import{AddPanel as k}from"./chunk-SSORUDHE.js";import{DEFAULT_DRAG_WORDS as h}from"./chunk-O2NLQBFX.js";import{useState as y,useEffect as b,useMemo as j}from"react";import{AddIcon as g}from"efficient-shell/icons/efficient";import{jsx as $,jsxs as O,Fragment as B}from"react/jsx-runtime";var N=e=>`section:${e}`,v=e=>`block:${e}`,x=e=>`template:${e}`;function F({blocks:F,blocksOnly:I,at:P,onAdd:V,itemFor:A,session:D,siteWide:H,onClose:K,onHide:L,readOnly:R}){const S=f(e=>e.config),T=p(),{labelAtLevel:w,categoryLabel:C,firstSection:E,Icon:Q,Thumbnail:Y}=T,{blockIsOffered:z}=m(),G=u("screen",d).add,J=u("drag",h).add,W=l(),[Z,M]=y([]);b(()=>{let t=!1;const o=e=>z(e,W);return s(W).list().then(n=>{if(t)return;const i=S.components;M(n.filter(t=>t.node?.type&&i[t.node.type]&&e(t.node).every(o)))}).catch(()=>{}),()=>{t=!0}},[S,W]);const U=j(()=>t(S,T),[S]),X=e=>({type:N(e.type),label:e.name,cover:/* @__PURE__ */$(Y,{type:e.type}),title:e.desc?`${e.name} — ${e.desc}`:G.tile({name:e.name}),keywords:[e.alias??"",e.desc,e.type,e.catLabel].filter(Boolean)}),q=j(()=>{const e=[];if(F&&F.choices.length>0&&a(F.choices).forEach((t,o)=>{e.push({key:`blocks:${o}`,title:0===o?`${G.inside({name:F.parentName})}${t.group?` · ${t.group}`:""}`:t.group??"",tiles:t.items.map(e=>({type:v(e.type),label:e.label,icon:/* @__PURE__ */$(Q,{type:e.type,size:18}),title:G.tile({name:e.label})}))})}),I)return e;const t=o(U,E);t&&e.push({key:"start",title:G.startBlank,tiles:[X(t)]}),Z.length>0&&e.push({key:"templates",title:G.templates,tiles:Z.map(e=>{return{type:x(e.id),label:e.name,cover:/* @__PURE__ */$(Y,{type:e.node.type}),keywords:[(t=e.node.type,w(t,"section",S.components[t]?.label??t)),e.node.type]};var t})});const s=n(U,E);for(const t of Object.keys(S.categories??{})){const o=s.filter(e=>e.cat===t);0!==o.length&&e.push({key:`category:${t}`,title:i(S,t,C),tiles:o.map(X)})}return e},[F,I,Z,U,S,G]),_=e=>{const t=e.indexOf(":"),o=e.slice(0,t),n=e.slice(t+1);if("section"===o)return{kind:"section",type:n};if("block"===o)return{kind:"block",type:n};if("template"===o){const e=Z.find(e=>e.id===n);return e?{kind:"template",template:e}:null}return null};/* @__PURE__ */
2
- return O(B,{children:[
3
- /* @__PURE__ */$(r,{icon:/* @__PURE__ */$(g,{size:15}),title:G.title,context:I?G.contextBlocks:G.contextAll,actions:/* @__PURE__ */$(c,{label:G.done,description:G.doneDescription,onClick:K}),onHide:L}),
4
- /* @__PURE__ */O("div",{className:"sf-addside sf-scroll",children:[
5
- /* @__PURE__ */$(k,{groups:q,session:D,itemFor:e=>A(_(e)??{kind:"section",type:e}),onInsert:e=>{const t=_(e);t&&V(t)},at:P,hint:I?G.hintBlocks:G.hint,searchLabel:I?G.searchBlocks:G.searchSections,readOnly:R,words:J}),H&&!I?H:null]})]})}export{F as AddSidePanel,v as blockKey,N as sectionKey,x as templateKey};
@@ -1 +0,0 @@
1
- import{textFieldIdentifier as n}from"./chunk-DUVRZ456.js";import{hidableText as r}from"./chunk-6W7WLPZH.js";function t(n,t){const o=r(n.props.name);if(o)return o;const e=r(n.props.altName);if(e)return e;const c=n.props.collection?.name;if(c)return c;const u=n.props.source?.title;if(u)return u;const s=n.props.code;return s?t?.(s)??s:""}function o(n,r,o,e,c){const u=o(t(n,e))||r(n.type);return c?c(n,"block",u):u}function e(r){if(!r)return null;for(const t of["name","altName"])if(n(r[t]))return t;return null}function c(r){const t=r?.name;return void 0===t||n(t)?"name":null}function u(n,t,o){const e=r(n.props?.name).trim()||t;return o?o(n,"section",e):e}export{u as rootRowName,c as sectionRenameProp,t as slotChildName,e as slotChildRenameProp,o as slotChildRowName};
@@ -1,21 +0,0 @@
1
- import{DEFAULT_NOTICE_WORDS as e,DEFAULT_CHROME_WORDS as n}from"./chunk-Y2G7CU6A.js";import{holderOf as i,describeAge as a,nameOrSomeone as s}from"./chunk-THWO5YVZ.js";import{DEFAULT_LOCK_WORDS as t}from"./chunk-RE4LP46F.js";import{EaselRail as l}from"./chunk-MJM6SFD3.js";import{DEFAULT_RAIL_WORDS as r}from"./chunk-2OAZYSWJ.js";import{useWords as o}from"./chunk-MFIRYGHW.js";import{jsx as c,jsxs as d,Fragment as u}from"react/jsx-runtime";import{Tooltip as h,IconButton as m,Segmented as v,Switch as f,ResizeHandle as p,Button as k,Banner as b}from"efficient-shell/ui";import{PanelLeftIcon as g,PanelRightIcon as y,MediaIcon as N,ImageIcon as w}from"efficient-shell/icons/efficient";function C({children:e}){/* @__PURE__ */
2
- return c("div",{className:"es-topbar",children:e})}function O({kind:e,style:n,children:i}){/* @__PURE__ */
3
- return c("div",{className:e?`es-cluster es-cluster--${e}`:"es-cluster",style:n,children:i})}function x(){/* @__PURE__ */
4
- return c("div",{className:"es-divider-v","aria-hidden":"true"})}function z({items:e,ariaLabel:n,onWords:i}){const a=o("rail",r);/* @__PURE__ */
5
- return c("div",{className:"es-cluster es-cluster--rail es-rail-fit",children:/* @__PURE__ */c(l,{items:e,ariaLabel:n??a.label,orientation:"row",onLabelsShown:i})})}function R({label:e,onClick:n,disabled:i,state:a,buttonRef:s,children:t}){/* @__PURE__ */
6
- return c(h,{content:e,side:"bottom",children:/* @__PURE__ */c(m,{ref:s,"aria-label":e,"aria-pressed":a?"active"===a:void 0,className:"es-iconbtn",disabled:i,onClick:n,children:t})})}function B({devices:e,value:i,onChange:a,ariaLabel:s}){const t=o("chrome",n);/* @__PURE__ */
7
- return c(v,{className:"es-devseg",size:"sm",label:s??t.device,value:i,onChange:e=>{e!==i&&a(e)},options:e.map(e=>({value:e.id,icon:/* @__PURE__ */c(h,{content:e.label,side:"bottom",children:/* @__PURE__ */c("span",{className:"es-devseg-glyph","aria-hidden":"true",children:e.icon})}),label:/* @__PURE__ */c("span",{className:"es-vh",children:e.label})}))})}var L={idle:"is-quiet",saved:"is-quiet is-saved",saving:"is-saving",error:"is-error",off:"is-off","off-unsaved":"is-off is-unsaved"};function $({tone:e,label:n,counting:i,waitMs:a,ringRef:s,role:t}){/* @__PURE__ */
8
- return d("span",{className:`es-savestate ${L[e]}`,role:t,"aria-live":"polite",children:[/* @__PURE__ */c("span",i?{ref:s,className:"es-savestate-ring is-counting",style:void 0!==a?{"--es-savewait":`${a}ms`}:void 0,"aria-hidden":"true"}:{className:"es-savestate-dot","aria-hidden":"true"}),n]})}function W({pressed:e,title:n,onToggle:i,children:a}){/* @__PURE__ */
9
- return c("span",{className:"es-savestate-toggle",children:/* @__PURE__ */c(h,{content:n,side:"bottom",children:/* @__PURE__ */c(f,{size:"sm",checked:!e,"aria-label":n,label:a,onChange:()=>i()})})})}function j({side:e,width:i,min:a,max:s,defaultWidth:t,label:l,onResize:r}){const d=o("chrome",n);/* @__PURE__ */
10
- return c(p,{side:e,width:i,min:a,max:s,defaultWidth:t,label:l,hint:d.resize,onResize:e=>r(e),className:`es-resizer es-resizer--${e}`})}function M({icon:e,name:n,kind:i,actions:a}){/* @__PURE__ */
11
- return d("div",{className:"es-insp-head",children:[
12
- /* @__PURE__ */c("span",{className:"es-insp-chip","aria-hidden":"true",children:e}),
13
- /* @__PURE__ */d("div",{className:"es-insp-titles",children:[
14
- /* @__PURE__ */c(h,{content:n,describe:!1,side:"bottom",className:"es-insp-name-tip",children:/* @__PURE__ */c("h2",{className:"es-insp-name",children:n})}),
15
- /* @__PURE__ */c("div",{className:"es-insp-kind",children:i})]}),a?/* @__PURE__ */c("div",{className:"es-insp-actions",children:a}):null]})}function S({label:e,title:n,hasPopup:i,onClick:a,disabled:s,danger:t,expanded:l,buttonRef:r,children:o}){/* @__PURE__ */
16
- return c(h,{content:n??e,side:"bottom",children:/* @__PURE__ */c(m,{ref:r,variant:t?"ghost-danger":"ghost",className:"es-insp-iconbtn","aria-label":e,"aria-haspopup":i,"aria-expanded":l,disabled:s,onClick:a,children:o})})}function P({name:e,onSelect:i,label:a,inline:s}){const t=o("chrome",n),l=a??t.upLevel,r=/* @__PURE__ */c(h,{content:l,side:"bottom",children:/* @__PURE__ */c(k,{variant:"link",size:"sm",className:"es-insp-up-btn","aria-label":t.upLevelTo({label:l,name:e}),leftIcon:/* @__PURE__ */c("span",{className:"es-insp-up-arrow","aria-hidden":"true",children:"←"}),onClick:i,children:/* @__PURE__ */c("span",{className:"es-insp-up-name",children:e})})});return s?r:/* @__PURE__ */c("div",{className:"es-insp-up",children:r})}function Y({context:e,pick:i,onCancel:a,onHide:s,side:t="left"}){const l=o("chrome",n),r=s?/* @__PURE__ */c(S,{label:l.hidePanelLabel({side:t}),title:l.hidePanel,onClick:s,children:/* @__PURE__ */c("left"===t?g:y,{size:16})}):null;if(!i)/* @__PURE__ */
17
- return c(M,{icon:/* @__PURE__ */c(N,{}),name:l.mediaLibrary,kind:e,actions:r??void 0});const m=l.mediaKinds[i.kind];/* @__PURE__ */
18
- return c(M,{icon:/* @__PURE__ */c(w,{size:15}),name:l.mediaChoose({kind:m}),kind:i.field?l.mediaFor({field:i.field}):e,actions:/* @__PURE__ */d(u,{children:[
19
- /* @__PURE__ */c(h,{content:l.mediaKeep({kind:m}),side:"bottom",children:/* @__PURE__ */c(k,{variant:"secondary",size:"sm",className:"es-insp-textbtn",onClick:a,children:l.mediaCancel})}),r?/* @__PURE__ */d(u,{children:[
20
- /* @__PURE__ */c("span",{className:"es-insp-divider","aria-hidden":"true"}),r]}):null]})})}function T(e){return/svg/i.test(e)?"svg":e.startsWith("video")?"video":"image"}var F={notice:e,lock:t};function H(e,n,t,l=F){const r=l.notice,o=i(e),c={kind:"reload",label:r.reload};if(n){const e=a(n.secondsAgo,l.lock);return{tone:"warning",urgent:!0,lead:n.savedByYou?r.savedByYou({noun:t,when:e}):r.savedByOther({name:s(n.savedBy,l.lock),noun:t,when:e}),body:r.conflictBody,actions:o?[c,{kind:"take-over",label:r.takeOver,title:r.takeOverWhileDeciding}]:[c]}}if(!o)return null;const d=s(o.name,l.lock),u=a(o.secondsSinceSeen,l.lock);switch(e.kind){case"takenover":return{tone:"warning",urgent:!0,lead:r.tookOver({name:d,noun:t,when:a(o.secondsSinceHeld,l.lock)}),body:r.tookOverBody,actions:[{kind:"take-back",label:r.takeBack},c]};case"readonly":return{tone:"neutral",urgent:!1,lead:r.viewingOnly,body:r.viewingOnlyBody({name:d,noun:t,seen:u}),actions:[{kind:"take-over",label:r.takeOver}]};default:return{tone:"warning",urgent:!1,lead:r.editing({name:d,noun:t}),body:r.editingBody({seen:u}),actions:[{kind:"view-read-only",label:r.viewReadOnly},{kind:"take-over",label:r.takeOver,title:r.takeOverTold}]}}}function A({access:n,conflict:i,noun:a,onTakeOver:s,onViewReadOnly:l,onReload:r}){const d=H(n,i,a,{notice:o("notice",e),lock:o("lock",t)});if(!d)return null;const u={reload:r,"take-over":s,"take-back":s,"view-read-only":l},m=d.actions.map(e=>e.title?/* @__PURE__ */c(h,{content:e.title,side:"bottom",children:/* @__PURE__ */c(k,{variant:"secondary",size:"sm",onClick:u[e.kind],children:e.label})},e.kind):/* @__PURE__ */c(k,{variant:"secondary",size:"sm",onClick:u[e.kind],children:e.label},e.kind));/* @__PURE__ */
21
- return c("div",{className:`es-notice is-${d.tone}`,role:d.urgent?"alert":"status",children:/* @__PURE__ */c(b,{tone:"warning"===d.tone?"warning":"info",title:d.lead,action:/* @__PURE__ */c("span",{className:"es-notice-actions",children:m}),children:d.body})})}var q={left:288,right:320},D=220,G=560;function I(e){return Math.min(560,Math.max(220,Math.round(e)))}function J(e){return{"--es-left-w":`${e.left}px`,"--es-right-w":`${e.right}px`}}function K(e,n){e.style.setProperty("--es-left-w",`${n.left}px`),e.style.setProperty("--es-right-w",`${n.right}px`)}export{q as DEFAULT_PANEL_W,B as DeviceSwitch,R as EaselIconButton,C as EaselTopBar,A as EditNotice,M as InspectorHead,S as InspectorIconButton,P as InspectorUpLevel,G as MAX_PANEL_W,D as MIN_PANEL_W,Y as MediaPanelHead,j as PanelResizeHandle,$ as SaveState,W as SaveStateToggle,O as TopBarCluster,x as TopBarDivider,z as TopBarRail,I as clampPanelWidth,H as editNotice,T as mediaPickKind,J as panelWidthVars,K as setPanelWidthVars};