efficient-easel 0.101.0 → 0.102.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/README.md +37 -0
- package/dist/LinkPicker-W2Rtxetz.d.ts +111 -0
- package/dist/autosave/index.d.ts +6 -3
- package/dist/autosave/index.js +1 -1
- package/dist/chrome/index.d.ts +3 -2
- package/dist/chrome/index.js +1 -25
- package/dist/chunk-26OOWIJJ.js +1 -0
- package/dist/chunk-2LK54I4E.js +1 -0
- package/dist/chunk-3QVB4AG2.js +3 -0
- package/dist/chunk-3U4GP5VA.js +10 -0
- package/dist/chunk-3WSPDAK2.js +1 -0
- package/dist/chunk-4ES5JGGX.js +1 -0
- package/dist/chunk-5464H65G.js +4 -0
- package/dist/chunk-57DJOKXT.js +1 -0
- package/dist/chunk-5MZ3RNQQ.js +13 -0
- package/dist/chunk-5ZBY24K7.js +1 -0
- package/dist/chunk-6DJHRLCU.js +25 -0
- package/dist/chunk-6FY3PZS3.js +1 -0
- package/dist/chunk-6TZTKAB5.js +1 -0
- package/dist/chunk-6W7WLPZH.js +1 -0
- package/dist/chunk-7F52SZOI.js +2 -0
- package/dist/chunk-7MU3RJ6S.js +1 -0
- package/dist/chunk-7RNTMJER.js +5 -0
- package/dist/chunk-A7ZJII7O.js +1 -0
- package/dist/chunk-AJBJ74ME.js +1 -0
- package/dist/chunk-AKFJK65Z.js +1 -0
- package/dist/chunk-AKZWUV5Z.js +1 -0
- package/dist/chunk-BDTITTMW.js +1 -0
- package/dist/chunk-BSPCSC45.js +1 -0
- package/dist/chunk-BXZ6WLHC.js +22 -0
- package/dist/chunk-D7M6IRPJ.js +8 -0
- package/dist/chunk-DUVRZ456.js +1 -0
- package/dist/chunk-E7GGVILG.js +1 -0
- package/dist/chunk-F2FPZIZV.js +62 -0
- package/dist/chunk-F6CCTEIX.js +1 -0
- package/dist/chunk-FGNR22NY.js +1 -0
- package/dist/chunk-FT35FX7D.js +2 -0
- package/dist/chunk-FUDHI5I4.js +1 -0
- package/dist/chunk-GENAF3P6.js +1 -0
- package/dist/chunk-GOTN2KY4.js +2 -0
- package/dist/chunk-GXQCZJOP.js +1 -0
- package/dist/chunk-GZO72N3Q.js +0 -0
- package/dist/chunk-HMX55DYT.js +1 -0
- package/dist/chunk-HQ4VVRIC.js +1 -0
- package/dist/chunk-HWW4XJOH.js +1 -0
- package/dist/chunk-I54UCYOU.js +1 -0
- package/dist/chunk-IQ5TA7AM.js +1 -0
- package/dist/chunk-IWAPPEL4.js +6 -0
- package/dist/chunk-IYT6NN2J.js +1 -0
- package/dist/chunk-J4RAY75C.js +1 -0
- package/dist/chunk-KCBEE2MC.js +2 -0
- package/dist/chunk-KDYIMJTZ.js +1 -0
- package/dist/chunk-KQMML6JM.js +4 -0
- package/dist/chunk-OM67AJQC.js +1 -0
- package/dist/chunk-OYX47SL7.js +1 -0
- package/dist/chunk-P67FP7PG.js +9 -0
- package/dist/chunk-PP44LCJM.js +1 -0
- package/dist/chunk-PWZOS45R.js +2 -0
- package/dist/chunk-Q3SQBNJB.js +1 -0
- package/dist/chunk-R2HLPNQF.js +1 -0
- package/dist/chunk-R5L2E7JX.js +1 -0
- package/dist/chunk-R5ZVNJLJ.js +2 -0
- package/dist/chunk-RLBXE4EU.js +1 -0
- package/dist/chunk-RW4XBUUW.js +1 -0
- package/dist/chunk-SERF2FAU.js +1 -0
- package/dist/chunk-TEZ6V6PA.js +4 -0
- package/dist/chunk-TTJ54QGG.js +18 -0
- package/dist/chunk-UH7TGWHR.js +1 -0
- package/dist/chunk-UVWVYMMZ.js +1 -0
- package/dist/chunk-VLSTGOVD.js +2 -0
- package/dist/chunk-VV5ADNBR.js +1 -0
- package/dist/chunk-ZE7I3PLX.js +1 -0
- package/dist/chunk-ZZ7VLIHQ.js +1 -0
- package/dist/drag/index.d.ts +3 -41
- package/dist/drag/index.js +1 -18
- package/dist/easel/index.js +1 -9
- package/dist/{words-BMzV04b1.d.ts → engine-DBxp_v6B.d.ts} +1 -58
- package/dist/fields/index.d.ts +2 -109
- package/dist/fields/index.js +1 -22
- package/dist/gold/index.d.ts +4 -2
- package/dist/host-B-byaQxg.d.ts +480 -0
- package/dist/menu/index.js +1 -1
- package/dist/node-ops/index.js +1 -1
- package/dist/panel/index.js +16 -16
- package/dist/panelWidths-D9hTLR25.d.ts +66 -0
- package/dist/screen/components/AddBlockRow.d.ts +14 -0
- package/dist/screen/components/AddBlockRow.js +1 -0
- package/dist/screen/components/AddChildRow.d.ts +39 -0
- package/dist/screen/components/AddChildRow.js +1 -0
- package/dist/screen/components/AddSidePanel.d.ts +54 -0
- package/dist/screen/components/AddSidePanel.js +1 -0
- package/dist/screen/components/MediaSidePanel.d.ts +47 -0
- package/dist/screen/components/MediaSidePanel.js +1 -0
- package/dist/screen/components/NodeContextMenu.d.ts +364 -0
- package/dist/screen/components/NodeContextMenu.js +1 -0
- package/dist/screen/components/PageEditGuardNotices.d.ts +5 -0
- package/dist/screen/components/PageEditGuardNotices.js +1 -0
- package/dist/screen/components/PanelToggleIcon.d.ts +14 -0
- package/dist/screen/components/PanelToggleIcon.js +1 -0
- package/dist/screen/components/PreviewDeviceContext.d.ts +28 -0
- package/dist/screen/components/PreviewDeviceContext.js +1 -0
- package/dist/screen/components/PreviewPartsContext.d.ts +33 -0
- package/dist/screen/components/PreviewPartsContext.js +1 -0
- package/dist/screen/components/ScreenChrome.d.ts +5 -0
- package/dist/screen/components/ScreenChrome.js +1 -0
- package/dist/screen/components/ScreenDocumentContext.d.ts +20 -0
- package/dist/screen/components/ScreenDocumentContext.js +1 -0
- package/dist/screen/components/ScreenMount.d.ts +75 -0
- package/dist/screen/components/ScreenMount.js +1 -0
- package/dist/screen/components/ScreenStoreProvider.d.ts +63 -0
- package/dist/screen/components/ScreenStoreProvider.js +1 -0
- package/dist/screen/components/SectionScreenShell.d.ts +5 -0
- package/dist/screen/components/SectionScreenShell.js +16 -0
- package/dist/screen/components/SidePanelHead.d.ts +81 -0
- package/dist/screen/components/SidePanelHead.js +1 -0
- package/dist/screen/components/SlotChildActionsContext.d.ts +41 -0
- package/dist/screen/components/SlotChildActionsContext.js +1 -0
- package/dist/screen/components/UiIcon.d.ts +52 -0
- package/dist/screen/components/UiIcon.js +1 -0
- package/dist/screen/components/panel-widths.d.ts +37 -0
- package/dist/screen/components/panel-widths.js +1 -0
- package/dist/screen/components/usePartBridge.d.ts +66 -0
- package/dist/screen/components/usePartBridge.js +1 -0
- package/dist/screen/index.d.ts +31 -0
- package/dist/screen/index.js +1 -0
- package/dist/screen/lib/admin-bridge.d.ts +105 -0
- package/dist/screen/lib/admin-bridge.js +1 -0
- package/dist/screen/lib/backend-error.d.ts +106 -0
- package/dist/screen/lib/backend-error.js +1 -0
- package/dist/screen/lib/chrome-theme.d.ts +21 -0
- package/dist/screen/lib/chrome-theme.js +1 -0
- package/dist/screen/lib/client-only.d.ts +24 -0
- package/dist/screen/lib/client-only.js +1 -0
- package/dist/screen/lib/content/view-tiers.d.ts +25 -0
- package/dist/screen/lib/content/view-tiers.js +1 -0
- package/dist/screen/lib/document-addressing.d.ts +20 -0
- package/dist/screen/lib/document-addressing.js +1 -0
- package/dist/screen/lib/document-contract.d.ts +230 -0
- package/dist/screen/lib/document-contract.js +1 -0
- package/dist/screen/lib/document-hooks.d.ts +71 -0
- package/dist/screen/lib/document-hooks.js +0 -0
- package/dist/screen/lib/document-switch.d.ts +74 -0
- package/dist/screen/lib/document-switch.js +1 -0
- package/dist/screen/lib/failure.d.ts +54 -0
- package/dist/screen/lib/failure.js +1 -0
- package/dist/screen/lib/host-chrome.d.ts +181 -0
- package/dist/screen/lib/host-chrome.js +1 -0
- package/dist/screen/lib/host-inbound.d.ts +20 -0
- package/dist/screen/lib/host-inbound.js +1 -0
- package/dist/screen/lib/host.d.ts +20 -0
- package/dist/screen/lib/host.js +1 -0
- package/dist/screen/lib/key-scope.d.ts +23 -0
- package/dist/screen/lib/key-scope.js +1 -0
- package/dist/screen/lib/links/link-filters.d.ts +41 -0
- package/dist/screen/lib/links/link-filters.js +0 -0
- package/dist/screen/lib/load-error.d.ts +29 -0
- package/dist/screen/lib/load-error.js +1 -0
- package/dist/screen/lib/media-panel.d.ts +94 -0
- package/dist/screen/lib/media-panel.js +1 -0
- package/dist/screen/lib/media-picker.d.ts +68 -0
- package/dist/screen/lib/media-picker.js +1 -0
- package/dist/screen/lib/page-lock.d.ts +5 -0
- package/dist/screen/lib/page-lock.js +1 -0
- package/dist/screen/lib/puck/add-target-types.d.ts +55 -0
- package/dist/screen/lib/puck/add-target-types.js +0 -0
- package/dist/screen/lib/puck/block-choice.d.ts +52 -0
- package/dist/screen/lib/puck/block-choice.js +1 -0
- package/dist/screen/lib/puck/block-types-in.d.ts +39 -0
- package/dist/screen/lib/puck/block-types-in.js +1 -0
- package/dist/screen/lib/puck/content-tree.d.ts +196 -0
- package/dist/screen/lib/puck/content-tree.js +1 -0
- package/dist/screen/lib/puck/device-fields.d.ts +126 -0
- package/dist/screen/lib/puck/device-fields.js +1 -0
- package/dist/screen/lib/puck/field-buckets.d.ts +22 -0
- package/dist/screen/lib/puck/field-buckets.js +1 -0
- package/dist/screen/lib/puck/field-markers.d.ts +205 -0
- package/dist/screen/lib/puck/field-markers.js +1 -0
- package/dist/screen/lib/puck/hidable.d.ts +44 -0
- package/dist/screen/lib/puck/hidable.js +1 -0
- package/dist/screen/lib/puck/palette-sections.d.ts +96 -0
- package/dist/screen/lib/puck/palette-sections.js +1 -0
- package/dist/screen/lib/puck/panel-fields.d.ts +47 -0
- package/dist/screen/lib/puck/panel-fields.js +1 -0
- package/dist/screen/lib/puck/panel-no-control-mark.d.ts +74 -0
- package/dist/screen/lib/puck/panel-no-control-mark.js +1 -0
- package/dist/screen/lib/puck/part-id.d.ts +23 -0
- package/dist/screen/lib/puck/part-id.js +1 -0
- package/dist/screen/lib/puck/preview-click.d.ts +49 -0
- package/dist/screen/lib/puck/preview-click.js +1 -0
- package/dist/screen/lib/puck/preview-dom.d.ts +8 -0
- package/dist/screen/lib/puck/preview-dom.js +1 -0
- package/dist/screen/lib/puck/preview-events.d.ts +25 -0
- package/dist/screen/lib/puck/preview-events.js +1 -0
- package/dist/screen/lib/puck/preview-selection-context.d.ts +72 -0
- package/dist/screen/lib/puck/preview-selection-context.js +1 -0
- package/dist/screen/lib/puck/section-doc.d.ts +20 -0
- package/dist/screen/lib/puck/section-doc.js +1 -0
- package/dist/screen/lib/puck/slot-child-name.d.ts +186 -0
- package/dist/screen/lib/puck/slot-child-name.js +1 -0
- package/dist/screen/lib/puck/slot-heal.d.ts +5 -0
- package/dist/screen/lib/puck/slot-heal.js +1 -0
- package/dist/screen/lib/puck/slot-section-spec.d.ts +96 -0
- package/dist/screen/lib/puck/slot-section-spec.js +0 -0
- package/dist/screen/lib/puck/style-clipboard.d.ts +78 -0
- package/dist/screen/lib/puck/style-clipboard.js +1 -0
- package/dist/screen/lib/puck/text-control-kinds.d.ts +71 -0
- package/dist/screen/lib/puck/text-control-kinds.js +1 -0
- package/dist/screen/lib/puck/tree-reveal.d.ts +62 -0
- package/dist/screen/lib/puck/tree-reveal.js +1 -0
- package/dist/screen/lib/puck/use-section-ops.d.ts +86 -0
- package/dist/screen/lib/puck/use-section-ops.js +1 -0
- package/dist/screen/lib/screen-parts.d.ts +727 -0
- package/dist/screen/lib/screen-parts.js +1 -0
- package/dist/screen/lib/section-template-types.d.ts +49 -0
- package/dist/screen/lib/section-template-types.js +0 -0
- package/dist/screen/lib/section-templates.d.ts +23 -0
- package/dist/screen/lib/section-templates.js +1 -0
- package/dist/screen/lib/session-context.d.ts +30 -0
- package/dist/screen/lib/session-context.js +1 -0
- package/dist/screen/lib/session.d.ts +255 -0
- package/dist/screen/lib/session.js +1 -0
- package/dist/screen/screen.css +1088 -0
- package/dist/session-DSQFmIvx.d.ts +43 -0
- package/dist/strings/catalogue.d.ts +4 -2
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.d.ts +4 -2
- package/dist/strings/index.js +1 -1
- package/dist/style-clipboard/index.js +1 -1
- package/dist/{types-DGcCsxs8.d.ts → types-CqY85foL.d.ts} +3 -65
- package/dist/words-D_Lnw1Gr.d.ts +59 -0
- package/package.json +343 -2
- package/dist/chunk-IG3U5NWJ.js +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import{dedupeSlotChildren as e}from"./chunk-26OOWIJJ.js";import{siteStyleScope as n,copyNodeStyle as t,nodeStyleRows as o,planNodePaste as r}from"./chunk-PP44LCJM.js";import{markedTreeNodeId as i,revealSelectedTreeRow as l,sameSelector as s}from"./chunk-FGNR22NY.js";import{cloneNodeWithFreshIds as d}from"./chunk-AKFJK65Z.js";import{scrollPreviewToSection as c,gotoPreviewSlide as a,scrollPreviewToTop as p}from"./chunk-4ES5JGGX.js";import{rootRowName as u,slotChildRowName as f,slotChildRenameProp as h}from"./chunk-HWW4XJOH.js";import{useEaselKeyTarget as m,useEaselUndoKeys as y}from"./chunk-OM67AJQC.js";import{SlotChildActionsProvider as g}from"./chunk-KCBEE2MC.js";import{UiIcon as k}from"./chunk-5MZ3RNQQ.js";import{DEFAULT_PANEL_W as S,PANEL_WIDTHS_KEY as x,clampPanelWidth as b}from"./chunk-SERF2FAU.js";import{usePartBridge as v}from"./chunk-E7GGVILG.js";import{useSectionOps as w}from"./chunk-VV5ADNBR.js";import{PageEditGuardNotices as z}from"./chunk-UVWVYMMZ.js";import{useScreenDocument as C}from"./chunk-FT35FX7D.js";import{requestMediaPick as B}from"./chunk-6FY3PZS3.js";import{useEaselHost as N}from"./chunk-R5ZVNJLJ.js";import{AddChildRow as A}from"./chunk-3QVB4AG2.js";import{AddSidePanel as T}from"./chunk-7RNTMJER.js";import{SidePanelHead as P,PanelShowStrip as $}from"./chunk-IWAPPEL4.js";import{MediaSidePanel as O}from"./chunk-TEZ6V6PA.js";import{useMediaPanel as j,usePanelPick as E,cancelPanelPick as I}from"./chunk-ZZ7VLIHQ.js";import{useScreenPinned as R,useScreenCanvasFrame as M,useScreenInspectorPanel as L,useScreenDevices as V,useScreenLeftView as F,SELECTION_MODE as D,sameInspectorMode as H,useScreenBridges as G,useScreenBlockRules as J,useScreenBlockLook as U,useScreenDocumentPass as W}from"./chunk-5464H65G.js";import{EASEL_NODE_CLIPBOARD as Z,useNodeContextMenu as Q}from"./chunk-F6CCTEIX.js";import{ROOT_ZONE as X,TREE_MAX_DEPTH as Y,childSlotsOf as K,slotFieldsOf as _,nestsInTree as q,newNodeId as ee}from"./chunk-FUDHI5I4.js";import{heldStyle as ne,styleShortcut as te}from"./chunk-57DJOKXT.js";import{useEasel as oe}from"./chunk-P67FP7PG.js";import{LayersTree as re,TreeRow as ie,TreeGroupLabel as le,Subtree as se,TreeRowAction as de,TreeSeam as ce}from"./chunk-ZFDCDJNZ.js";import{useNodeOps as ae,toItemSelector as pe}from"./chunk-D2BCHTQR.js";import{saveIndicator as ue}from"./chunk-H6DDIBQ4.js";import{EaselTopBar as fe,TopBarRail as he,TopBarCluster as me,EaselIconButton as ye,TopBarDivider as ge,DeviceSwitch as ke,InspectorIconButton as Se,PanelResizeHandle as xe,MAX_PANEL_W as be,MIN_PANEL_W as ve,panelWidthVars as we,SaveState as ze,SaveStateToggle as Ce}from"./chunk-6DJHRLCU.js";import{CanvasDragLayer as Be}from"./chunk-TTJ54QGG.js";import{createDragSession as Ne,useTreeDrag as Ae,gapToMoveIndex as Te}from"./chunk-67GNT6PF.js";import{useCanvasFrame as Pe,BLOCK_SELECTOR as $e,useCanvasEvent as Oe}from"./chunk-PAELDYYS.js";import{LayersIcon as je,UndoIcon as Ee,RedoIcon as Ie,TrashIcon as Re,MediaIcon as Me}from"./chunk-L5KW4HG5.js";import{ROOT_ID as Le,ROOT_SLOT as Ve,zoneKey as Fe,parseZoneKey as De,DataError as He}from"./chunk-KRXQM65X.js";import{useRef as Ge,useMemo as Je,useState as Ue,useEffect as We,useCallback as Ze,useLayoutEffect as Qe,Fragment as Xe}from"react";import{jsx as Ye,jsxs as Ke,Fragment as _e}from"react/jsx-runtime";function qe({saveState:e,notSaving:n,onToggle:t,onRetry:o}){if(n)/* @__PURE__ */
|
|
2
|
+
return Ye(ze,{tone:e.pending?"off-unsaved":"off",label:"Not saving — see the notice above",role:"status"});const{tone:r,label:i}=ue(e);/* @__PURE__ */
|
|
3
|
+
return Ke(_e,{children:[
|
|
4
|
+
/* @__PURE__ */Ye(Ce,{pressed:e.paused,onToggle:t,title:e.paused?"Auto-save is off — click to turn it back on (saves your held edits)":"Auto-save is on — click to pause it",children:/* @__PURE__ */Ye(ze,{tone:r,label:i})}),e.failed&&!e.paused&&/* @__PURE__ */Ye("button",{type:"button",className:"es-btn-ghost",onClick:o,children:"Retry now"})]})}function en({expand:e}){/* @__PURE__ */
|
|
5
|
+
return Ye("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round",children:/* @__PURE__ */Ke(_e,e?{children:[
|
|
6
|
+
/* @__PURE__ */Ye("path",{d:"M8 9l4-4 4 4"}),
|
|
7
|
+
/* @__PURE__ */Ye("path",{d:"M8 15l4 4 4-4"})]}:{children:[
|
|
8
|
+
/* @__PURE__ */Ye("path",{d:"M8 4l4 4 4-4"}),
|
|
9
|
+
/* @__PURE__ */Ye("path",{d:"M8 20l4-4 4 4"}),
|
|
10
|
+
/* @__PURE__ */Ye("path",{d:"M5 12h14"})]})})}function nn(){const ue=N(),{capabilities:ze,currentSlug:Ce,siteId:nn,onPublish:tn,saveState:on,saveConflict:rn,retrySave:ln,toggleAutoSave:sn,readOnly:dn}=C(),{canPublish:cn,mediaEditing:an,hasEditGuard:pn,hasPinnedChrome:un}=ze,{appState:fn,dispatch:hn,history:mn,selectedItem:yn,getSelectorForId:gn,config:kn}=oe(e=>e),{first:Sn,last:xn,firstGroup:bn,lastGroup:vn,isSectionGroup:wn,sectionGroupZone:zn,panelOf:Cn}=R(),Bn=Cn(Sn),Nn=M(),An=L(),Tn=w({readOnly:dn}),Pn=Ge(null),$n=Je(()=>({...Tn,select:e=>{Pn.current=e,Tn.select(e)}}),[Tn]),On=fn.ui,jn=On.leftSideBarVisible,En=On.rightSideBarVisible,{options:In,widths:Rn,initial:Mn,fluid:Ln}=V(),[Vn,Fn]=Ue(Mn),Dn=j(),Hn=an&&null!==Dn,Gn=E(),{read:Jn,write:Un,forSelection:Wn}=F(),[Zn,Qn]=Ue(Jn);We(()=>{Un(Zn)},[Zn]);const[Xn,Yn]=Ue(0),Kn=Ge(null),_n=Ge(null),qn=Pe(_n,{readySelector:$e}),et=m(_n);y(_n);const[nt,tt]=Ue(!1),ot=Ge(!1),rt=Ge(!1),[it,lt]=Ue(null),st=it&&it.zone===X?it.index:null,dt=e=>lt(null===e?null:{zone:X,index:e}),[ct,at]=Ue([]),[pt,ut]=Ue(D),ft="puck"===pt.kind,ht=i(pt,yn?.props.id),[mt,yt]=Ue(null);We(()=>{mt&&(l(),yt(null))},[mt]);const gt=Ge(gn);gt.current=gn;const kt=Ze((e,{scroll:n})=>{Qn(n=>Wn(e,n)),n&&yt(e);const t=[];let o=e;for(let e=0;e<4;e++){const e=gt.current(o)?.zone;if(!e||!e.includes(":"))break;const n=e.split(":")[0];t.push(n),o=n}0!==t.length&&Ft(e=>{if(t.every(n=>!e.has(n)))return e;const n=new Set(e);return t.forEach(e=>n.delete(e)),n})},[]);We(()=>{ut(Cn(yn?.type)??D);const e=yn?.props.id,n=Pn.current;if(Pn.current=null,!e)return;const t=gn(e);kt(String(e),{scroll:!s(n,t??null,X)})},[yn?.props.id,kt]);const St=Ze(e=>{ut(n=>H(n,e)?n:e),hn({type:"setUi",ui:{rightSideBarVisible:!0}})},[hn]),xt=G({kind:pt.kind,mode:pt,open:St,show:e=>ut(e),reveal:()=>{En||hn({type:"setUi",ui:{rightSideBarVisible:!0}})}},{data:fn.data,selected:yn??null,zoneOf:e=>gn(e)?.zone,readOnly:Boolean(dn),select:e=>{ut(D),$n.select({index:e})},replace:(e,n)=>$n.replaceComponent(X,e,n),scrollTo:e=>Wo(e)},{device:Vn,refreshes:Xn},{setView:Qn,reveal:()=>{jn||hn({type:"setUi",ui:{leftSideBarVisible:!0}})}}),bt=xt.pinnedSource??!1,vt=xt.resolveLeftView?xt.resolveLeftView(Zn,Hn):"media"===Zn&&Hn?Zn:"sections",{isLockedBlock:wt,duplicateBlocked:zt,nestDepth:Ct,newSectionNode:Bt,canAddTo:Nt,blockIsOffered:At}=J(),Tt=U(),{labelAtLevel:Pt,Icon:$t,useProducts:Ot}=Tt,jt=Ze(e=>{hn({type:"setUi",ui:{rightSideBarVisible:!0}}),c(e),kt(e,{scroll:!0})},[hn,kt]),{selectNode:Et,openPartId:It}=v({mode:pt,setMode:ut,onOpenPart:jt}),[Rt,Mt]=Ue(null),Lt="sf-editor-collapsed-sections",[Vt,Ft]=Ue(()=>{if("undefined"==typeof window)/* @__PURE__ */return new Set;try{const e=window.localStorage.getItem(Lt);return new Set(e?JSON.parse(e):[])}catch{/* @__PURE__ */
|
|
11
|
+
return new Set}});We(()=>{try{window.localStorage.setItem(Lt,JSON.stringify([...Vt]))}catch{}},[Vt]);const[Dt,Ht]=Ue(()=>{if("undefined"==typeof window)return{...S};try{const e=window.localStorage.getItem(x);if(!e)return{...S};const n=JSON.parse(e);return{left:b(Number(n.left)||S.left),right:b(Number(n.right)||S.right)}}catch{return{...S}}});We(()=>{const e=setTimeout(()=>{try{window.localStorage.setItem(x,JSON.stringify(Dt))}catch{}},300);return()=>clearTimeout(e)},[Dt]);const Gt=Ze((e,n)=>Ht(t=>{const o="function"==typeof n?n(t[e]):n;return t[e]===o?t:{...t,[e]:o}}),[]),Jt=Ze(e=>Gt("left",e),[Gt]),Ut=Ze(e=>Gt("right",e),[Gt]),Wt=e=>Vt.has(e),Zt=e=>Ft(n=>{const t=new Set(n);return t.has(e)?t.delete(e):t.add(e),t}),Qt=Ge(!1),Xt=Ge(null);We(()=>{if(Qt.current&&!nt){const e=Xt.current,n=e&&e.isConnected&&!e.closest('[aria-hidden="true"]')?e:null;(n??_n.current?.querySelector('button[aria-label="Add"]'))?.focus(),Xt.current=null}Qt.current=nt},[nt]),We(()=>{if(!nt||!et)return;const e=e=>{"Escape"===e.key&&nr()};return et.addEventListener("keydown",e),()=>et.removeEventListener("keydown",e)},[nt,et]),We(()=>{!jn&&nt&&(tt(!1),lt(null),ot.current=!1)},[jn]),We(()=>{if(!Gn)return rt.current&&hn({type:"setUi",ui:{leftSideBarVisible:!1}}),void(rt.current=!1);nt&&(tt(!1),lt(null),rt.current=ot.current,ot.current=!1),jn||(rt.current=!0,hn({type:"setUi",ui:{leftSideBarVisible:!0}}))},[Gn]),We(()=>{!jn&&Gn&&(rt.current=!1,I())},[jn]),We(()=>{if(!Gn||!et)return;const e=e=>{"Escape"===e.key&&I()};return et.addEventListener("keydown",e),()=>et.removeEventListener("keydown",e)},[Gn,et]);const[Yt,Kt]=Ue(null),[_t,qt]=Ue(0),eo=Ge(null),no=(e,n="success")=>{Kt({msg:e,tone:n}),qt(e=>e+1),eo.current&&clearTimeout(eo.current),eo.current=setTimeout(()=>Kt(null),"error"===n?3200:1900)};We(()=>()=>{eo.current&&clearTimeout(eo.current)},[]);const to=Ge(null),[oo,ro]=Ue(0),[io,lo]=Ue(0);We(()=>{const e=to.current;if(!e)return;const n=()=>{ro(e.clientWidth),lo(e.clientHeight)};n();const t=new ResizeObserver(n);return t.observe(e),()=>t.disconnect()},[]),Qe(()=>{to.current&&(ro(to.current.clientWidth),lo(to.current.clientHeight))},[Dt,jn,En]);const so=Vn===Ln?oo>0?oo:Rn[Ln]:Rn[Vn],co=oo>0?Math.min(oo/so,2):1,ao=so*co,po=oo>0&&ao>oo+1,uo={width:ao,height:io||"100%",flex:"none",position:"relative"},fo={width:so,height:io?io/co:"100%",maxHeight:"none",transform:1!==co?`scale(${co})`:void 0,transformOrigin:"top left"},ho=()=>hn({type:"setUi",ui:{leftSideBarVisible:!jn}}),mo=()=>hn({type:"setUi",ui:{rightSideBarVisible:!En}}),yo=e=>{nt&&(tt(!1),lt(null),ot.current=!1,jn&&Zn===e)||Gn&&(rt.current=!1,I(),jn&&Zn===e)||(jn&&Zn===e?ho():(Qn(e),jn||hn({type:"setUi",ui:{leftSideBarVisible:!0}})))},go=()=>{B(ue,{accept:"image/*",title:"Media library"})},ko=()=>{ut(D),$n.select(null),p()},So=()=>{ut(Bn??D),En||hn({type:"setUi",ui:{rightSideBarVisible:!0}})},xo=fn.data.content??[],bo=()=>{const e=xo.findIndex(e=>e.type===Sn),n=xo.findIndex(e=>e.type===xn);return{floor:e>=0?e+1:0,cap:n>=0?n:xo.length}},vo=kn,wo=ae({data:fn.data,config:vo,readOnly:Boolean(dn),clipboard:Z,afterRemove:"none",stepBounds:(e,n)=>{if(e.parentId!==Le||e.slot!==Ve)return{min:0,max:n-1};const{floor:t,cap:o}=bo();return{min:t,max:o-1}},commit:(e,{select:n})=>{if(void 0!==n){ut(D);const t="node"===n?.kind?pe(e,vo,n):null;$n.select(t&&t.zone===X?{index:t.index}:t)}$n.commitDocument(e)}}),zo=e=>kn.components[e]?.label??e,Co=Ze(e=>kn.components[e]?.defaultProps??{},[kn]),Bo=e=>Pt(e,"section",zo(e)),No=e=>u({type:e.type,props:e.props??{}},Bo(e.type)),{nodeAddresses:Ao,zoneItems:To}=Je(()=>{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>=Y)return;const s=/* @__PURE__ */new Map;for(const{child:e,zone:t}of K(kn,n))s.set(t,[...s.get(t)??[],e]);for(const[e,n]of s)t(n,e,i+1)})};return t(xo,X,0),{nodeAddresses:e,zoneItems:n}},[xo,kn]),Po=Ze(e=>To.get(e)??[],[To]),$o=Ot(),Oo=Je(()=>{const e=/* @__PURE__ */new Map;for(const n of $o??[])e.set(n.slug,n.name);return e},[$o]),jo=e=>f(e,zo,Tt.plainText,e=>Oo.get(e)),Eo=(e,n)=>n===X?null:h(kn.components[e.type]?.fields),Io=(e,n,t,o)=>{if(!(Rt?.zone===e&&Rt.index===n))return;const r=(t,o)=>{Mt(null),o&&((e,n,t)=>{const o=Po(e)[n];if(!o)return;const r=Eo(o,e);r&&$n.replaceComponent(e,n,{...o,props:{...o.props,[r]:t.trim()}})})(e,n,t)};/* @__PURE__ */
|
|
12
|
+
return Ye("input",{className:"es-tree-rename",defaultValue:o,autoFocus:!0,"aria-label":"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)},Ro=n(nn),Mo=kn,Lo=(e,n)=>n===X?Bo(e):zo(e),Vo=(e,n,t)=>{const o=r(Mo,Ro,t,Lo(t.type,e));o&&(o.changed&&$n.replaceComponent(e,n,{...t,props:{...o.props,id:t.props.id}}),no(o.message))},Fo=Q({nodesIn:Po,nodeAt:(e,n)=>Po(e)[n]??null,labelOf:(e,n)=>n===X?Bo(e):zo(e),renamePropOf:Eo,beginRename:(e,n)=>Mt({zone:e,index:n}),history:{hasPast:mn.hasPast,hasFuture:mn.hasFuture,back:()=>mn.back(),forward:()=>mn.forward()},openAddSection:()=>{$n.select(null),qo(null)},openPageSettings:()=>{$n.select(null),ut(D)},collapseAll:()=>Ft(new Set(Po(X).map(e=>String(e.props.id)))),onPasteRefused:()=>no("Your browser won’t let us read the clipboard — press ⌘V","error"),isLocked:e=>wt(e.type),duplicateBlocked:e=>zt(fn.data,e),canAddTo:Nt,nodeOps:wo,isPinned:(e,n)=>n===X&&(e.type===Sn||e.type===xn),sectionBand:bo,openAddInside:(e,n)=>{e===X?Zo(n):$n.select({zone:e,index:n}),qo(null)},locate:e=>Ao.get(e)??null,rowNameOf:(e,n)=>n===X?No(e):jo(e),selectAt:(e,n,t,o)=>{e===X?Zo(n):mr(e,n,t,o??"")},style:{held:()=>ne(Ro),canCopy:e=>o(Mo,e).some(e=>!1!==e.counted),copy:(e,n)=>t(Mo,Ro,e,Lo(e.type,n)),paste:(e,n,t)=>Vo(e,n,t)}},qn),Do=Ge({copy:(e,n)=>{},paste:(e,n,t)=>{},at:()=>null,readOnly:!1});We(()=>{Do.current={copy:(e,n)=>t(Mo,Ro,e,Lo(e.type,n)),paste:Vo,at:()=>{const e=fn.ui.itemSelector;if(!e)return null;const n=e.zone??X,t=Po(n)[e.index];return t?{zone:n,index:e.index,node:t}:null},readOnly:Boolean(dn)}});const Ho=Ze(e=>{const n=te(e);if(!n)return;const t=Do.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))},[]);We(()=>{if(!et)return;const e=e=>Ho(e);return et.addEventListener("keydown",e),()=>et.removeEventListener("keydown",e)},[Ho,et]),Oe(qn,"keydown",Ho);const Go=xo.map(e=>e.props.id).join("|");We(()=>{const e=qn?.document??null,n=qn?.window??null;let t=0;const o=[],r=()=>{if(!e)return void at(e=>e.length?[]:e);const n=xo.findIndex(e=>e.type===xn),t=n>=0?n:xo.length,o=n=>{const t=xo[n]?.props?.id;if(null==t)return null;const o=e.querySelector(`[data-puck-component="${CSS.escape(String(t))}"]`);return o?o.getBoundingClientRect():null},r=[];for(let e=1;e<=t;e++){const n=o(e),t=o(e-1);(n||t)&&r.push({top:Math.round(n?n.top:t.bottom),index:e})}at(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)return!1;return!0}(e,r)?e:r)},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()}},[qn,Go,Vn,co,jn,En,yn?.props.id]);const Jo=qn?.document??null,Uo=qn?.window??null;We(()=>{const e=Kn.current;if(!e||!Jo||!Uo)return;const n=[],t=()=>{const n=Jo.querySelector(`[data-puck-component="${CSS.escape(e.id)}"]`);if(!n)return!1;const t=n.getBoundingClientRect().top-e.offset;return Math.abs(t)>1&&Uo.scrollTo({left:Uo.scrollX,top:Uo.scrollY+t,behavior:"instant"}),!0};return Kn.current=null,t()&&n.push(setTimeout(t,150),setTimeout(t,450)),()=>n.forEach(clearTimeout)},[Jo,Uo]);const Wo=e=>{xt.holdCanvasOn?xt.holdCanvasOn(e):c(e)},Zo=e=>{ut(D),$n.select({index:e}),xt.sectionPressed?.(xo[e]);const n=xo[e]?.props?.id;n&&Wo(n)},Qo=e=>{const{floor:n,cap:t}=bo(),o=e=>Math.min(Math.max(n,e),t);if("number"==typeof e)return o(e);const r=yn&&pt.kind!==Bn?.kind?xo.findIndex(e=>e.props.id===yn.props.id):-1;return o(r>=0?r+1:t)},Xo=(e,n)=>{const{floor:t,cap:o}=bo(),r=Math.min(Math.max(n,t),o),i=e<r?r-1:r;return i===e?{moved:!1,dest:e}:($n.reorderComponent(X,e,i),$n.select({index:i}),{moved:!0,dest:i})},Yo=(e,n,t)=>{ut(D),$n.select({index:e}),c(n),no(`Added “${t}” section`)},Ko=(e,n)=>{const t=Qo(n),o=Bt(e,{nodeDefaults:Co,newNodeId:ee,sectionLabel:Bo,blockIsOffered:At}),r=o?$n.insertNode(X,t,o):$n.insertSection(e,t);return Yo(t,r,Bo(e)),t},_o=(e,n,t)=>{const o=Qo(t),r=$n.insertNode(X,o,n);return Yo(o,r,e),o},qo=e=>er(X,e),er=(e,n)=>{Xt.current=document.activeElement??null,Gn&&(ot.current=rt.current,rt.current=!1,I()),lt(null===n?null:{zone:e,index:n}),tt(!0),jn||(ot.current=!0,hn({type:"setUi",ui:{leftSideBarVisible:!0}}))},nr=()=>{tt(!1),lt(null),ot.current&&hn({type:"setUi",ui:{leftSideBarVisible:!1}}),ot.current=!1},tr=(e,n,t)=>{if("section"===e.kind)$n.insertComponent(n,e.type,t);else{if("template"!==e.kind)return;$n.insertNode(n,t,d(e.template.node))}ut(D),$n.select({index:t,zone:n})},or=e=>n=>{n.target.closest(".es-tree-select")||e()},rr=()=>xt.editPinnedSource?.(),ir=(e,n,t)=>/* @__PURE__ */Ye(de,{kind:"delete",label:`Delete ${t}`,onClick:()=>((e,n)=>{const t=Po(e)[n]?.props?.id;null!=t&&wo.remove(String(t))})(e,n),children:/* @__PURE__ */Ye(Re,{size:15})}),lr=(e,n,t,o)=>{const r=Boolean(t.props._hidden);/* @__PURE__ */
|
|
13
|
+
return Ye(de,{kind:"eye",label:r?`Show ${o}`:`Hide ${o}`,onClick:()=>dr(e,n,t),children:/* @__PURE__ */Ye(k,r?{name:"eye-off",size:14}:{name:"eye",size:14})})},sr=e=>{const n=Bo(xo[e]?.type??"");return Vr(X,e,()=>qo(e),n?`Add section before ${n}`:"Add section here")},dr=(e,n,t)=>{$n.replaceComponent(e,n,{...t,props:{...t.props,_hidden:!t.props._hidden}})},cr=e=>_(kn,e),ar=e=>K(kn,e),pr=(e,n,t)=>{const o=q(kn,e.type,n)&&(t||ar(e).length>0);return{collapsible:o,folded:o&&Wt(String(e.props.id))}},ur=(e,n,t)=>ar(e).flatMap(({child:e})=>pr(e,n,t(e.type)).collapsible?[String(e.props.id),...ur(e,n+1,t)]:[]),fr=e=>ar(e).length>0||Boolean(Nt(e.type)),hr=e=>Boolean(Nt(e)),mr=(e,n,t,o)=>{if(ut(D),Nt(o)?.spec?.slider){const t=e.split(":")[0];a(t,n),$n.select({index:n,zone:e}),c(t)}else $n.select({index:n,zone:e}),Wo(t)},yr=(e,n,t,o,r)=>{const i=`${e}:${n}`;$n.insertComponent(i,t,o),Nt(r)?.spec?.slider?requestAnimationFrame(()=>{a(e,o),$n.select({index:o,zone:i})}):$n.select({index:o,zone:i})},gr=(e,n,t)=>{$n.insertComponent(e,n,t),ut(D),$n.select({index:t,zone:e})},kr=Ge(/* @__PURE__ */new Set);We(()=>{xo.forEach(e=>{const n=Nt(e.type)?.spec;if(!n)return;const t=e.props.id;if(kr.current.has(t))return;kr.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(Co)).forEach((e,t)=>$n.seedChild(o,t,n.childType,e))})},[xo,$n,Co]);const Sr=Ge(/* @__PURE__ */new Set);We(()=>{xo.forEach((n,t)=>{const o=n.props.id;if(Sr.current.has(o))return;const r=e(n,cr(n.type));Sr.current.add(o),r&&$n.replaceComponent(X,t,{...n,props:r})})},[xo,$n]),W($n,kn);const xr=xo.findIndex(e=>e.type===xn),br=xr>=0?xo[xr]:null,vr=xo.find(e=>e.type===bn)??null,wr=xo.find(e=>e.type===vn)??null,zr=xr>=0?xr:xo.length,Cr=[];xo.forEach(e=>{e.type!==xn&&(fr(e)&&Cr.push(String(e.props.id)),Cr.push(...ur(e,1,hr)))}),br&&(Cr.push(String(br.props.id)),Cr.push(...ur(br,1,hr)));const Br=Cr.length>0&&Cr.every(e=>Vt.has(e)),Nr=e=>Tt.blockRowName(e,zo),Ar=(e,n,t,o)=>{const r=Po(e)[t];if(!r)return;const i={...De(e),index:t},l={...De(n),index:Math.min(Math.max(o,0),Po(n).length)},s=Te(i,l);if(e!==n||s!==t)try{wo.move(String(r.props.id),{...l,index:s})}catch(e){if(!(e instanceof He))throw e}},Tr=e=>{const n=/* @__PURE__ */new Set,t=e=>{for(const{child:o,zone:r}of ar(e))n.add(r),t(o)};for(const t of cr(e.type))n.add(`${e.props.id}:${t}`);return t(e),n},Pr=e=>{let n=e.slice(0,e.indexOf(":"));for(let e=0;e<64;e++){const e=Ao.get(n);if(!e)return null;if(e.zone===X)return n;n=e.zone.slice(0,e.zone.indexOf(":"))}return null},$r=e=>{const n=e.slice(0,e.indexOf(":")),t=xo.find(e=>wn(e.type)&&String(e.props.id)===n);return t&&zn(n)===e?t:null},Or=(e,n)=>{if(e.add)return Er(e.add,n);const t=Fe(n);if(wn(e.type))return!1;const o=$r(t),r=$r(e.zone);if(o||r)return!(!o||!r)&&(n.index>=0&&n.index<=Po(t).length);if(e.zone===X||t===X){if(e.zone!==t)return!1;const{floor:o,cap:r}=bo();return n.index>=o&&n.index<=r}if(n.index<0||n.index>Po(t).length)return!1;if(e.zone===t)return!0;const i=br?String(br.props.id):null;return(!i||Pr(e.zone)!==i&&Pr(t)!==i)&&((e,n,t)=>{if(e===n)return!0;const o=Po(e)[t];if(!o)return!1;const r=n.split(":")[0],i=Ao.get(r),l=i?Po(i.zone)[i.index]:void 0;if(!l)return!1;if(Tr(o).has(n))return!1;const s=Nt(l.type,Ct(fn?.data,l.type,r));return!!s&&(!!(s.choices?s.choices.some(e=>e.type===o.type):s.spec?.childType===o.type)&&!s.spec?.addBlocked?.(Po(n),o))})(e.zone,t,e.index)},jr=e=>{const n=e.slice(0,e.indexOf(":")),t=Ao.get(n),o=t?Po(t.zone)[t.index]:void 0;if(!t||!o)return null;const r=Nt(o.type,Ct(fn?.data,o.type,n));if(!r||`${n}:${r.slot}`!==e)return null;if("footer"===r.source)return null;return{parent:o,parentId:n,target:r,choices:r.choices??(r.spec?[{type:r.spec.childType,label:zo(r.spec.childType)}]:[]),parentName:t.zone===X?Bo(o.type):zo(o.type)}},Er=(e,n)=>{const t=Fe(n);if("block"!==e.kind){if($r(t))return n.index>=0&&n.index<=Po(t).length;if(t!==X)return!1;const{floor:e,cap:o}=bo();return n.index>=e&&n.index<=o}if(t===X)return!1;const o=jr(t);return!(!o||!o.choices.some(n=>n.type===e.type))&&!o.target.spec?.addBlocked?.(Po(t))},Ir=(e,n)=>{e.add?((e,n)=>{if("block"!==e.kind&&$r(Fe(n)))return void tr(e,Fe(n),n.index);if("section"===e.kind)return void Ko(e.type,n.index);if("template"===e.kind)return void _o(e.template.name,d(e.template.node),n.index);const t=Fe(n),o=jr(t);o&&(o.target.spec?yr(o.parentId,o.target.slot,e.type,n.index,o.parent.type):gr(t,e.type,n.index))})(e.add,n):e.zone===X?Xo(e.index,n.index):Ar(e.zone,Fe(n),e.index,n.index)},[Rr]=Ue(()=>Ne()),Mr=Ae({keyOf:e=>e.id,readOnly:Boolean(dn),session:Rr,canDrop:Or,onDrop:Ir,onStep:(e,n)=>{e.zone===X?((e,n)=>{const t=Bo(xo[e]?.type??""),o=Xo(e,n<0?e-1:e+2);if(!o.moved)return void no(`“${t}” is already ${n<0?"first":"last"}`);const{floor:r,cap:i}=bo();no(`Moved “${t}” to position ${o.dest-r+1} of ${i-r}`)})(e.index,n):Ar(e.zone,e.zone,e.index,n<0?e.index-1:e.index+2)}}),Lr=Ze(e=>{const{floor:n,cap:t}=bo(),o=[];for(const r of e.nodes){const e=Fe(r.place),i=Po(e)[r.place.index];if(!i||String(i.props.id)!==r.id)continue;if(i.type===Sn||i.type===xn||wt(i.type))continue;if(wn(i.type))continue;const l=Boolean($r(e)),s=e===X||l;e===X&&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?Bo(i.type):jo(i),from:r.place})}return{sources:o,zones:e.zones.filter(e=>e.children.length>0||Boolean(jr(Fe(e.list))?.choices.length)||Boolean($r(Fe(e.list))))}},[fn.data]),Vr=(e,n,t,o)=>/* @__PURE__ */Ye(ce,{...dn?{}:Mr.seam({place:{...De(e),index:n}}),onAdd:dn?void 0:t,label:o},`seam:${e}:${n}`),Fr={rowClick:or,isCollapsed:Wt,toggleCollapse:Zt},Dr=e=>{const n=String(e.props.id),t=xo.findIndex(e=>String(e.props.id)===n),o=zn(n),r=Po(o),i=Wt(n),l=zo(e.type),s=e=>Vr(o,e,()=>er(o,e),"Add section here");/* @__PURE__ */
|
|
14
|
+
return Ke(_e,{children:[
|
|
15
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:e.type,size:13}),name:l,onSelect:()=>Zo(t),selected:ht===n,rowProps:{"data-node-id":n,onClick:or(()=>Zo(t))},fold:{open:!i,label:"section",onToggle:()=>Zt(n)}}),!i&&/* @__PURE__ */Ke(se,{children:[r.map((n,t)=>{const r=String(n.props.id),i=No(n),l=fr(n),d=l&&Wt(r),c=()=>mr(o,t,r,e.type),{rowProps:a,...p}=Mr.row({item:{id:r,zone:o,index:t,type:n.type},place:{...De(o),index:t}},{"data-node-id":r,onClick:or(c)});/* @__PURE__ */
|
|
16
|
+
return Ke(Xe,{children:[s(t),
|
|
17
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:n.type,size:13}),name:i,onSelect:c,selected:ht===r,hidden:Boolean(n.props._hidden),...p,fold:l?{open:!d,label:"section",onToggle:()=>Zt(r)}:void 0,actions:/* @__PURE__ */Ke(_e,{children:[ir(o,t,i),lr(o,t,n,i)]}),rowProps:a}),l&&!d&&/* @__PURE__ */Ye(se,{children:Gr(n,2)})]},r)}),s(r.length)]})]})},Hr=(e,n)=>{const t=ar(e),o=(e,n)=>Vr(e,n),r=Nt(e.type),i=r?`${e.props.id}:${r.slot}`:null;/* @__PURE__ */
|
|
18
|
+
return Ke(_e,{children:[t.map(({child:t,zone:r,index:i})=>{const l=ht===String(t.props.id),{collapsible:s,folded:d}=pr(t,n,hr(t.type)),c=String(t.props.id),a=Nr(t),p=()=>mr(r,i,c,e.type),{rowProps:u,...f}=Mr.row({item:{id:c,zone:r,index:i,type:t.type},place:{...De(r),index:i}},{"data-node-id":c,onClick:or(p)});/* @__PURE__ */
|
|
19
|
+
return Ke(Xe,{children:[0===i&&o(r,0),
|
|
20
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:t.type,size:13}),name:a,onSelect:p,selected:l,hidden:Boolean(t.props._hidden),...f,fold:s?{open:!d,label:"group",onToggle:()=>Zt(c)}:void 0,actions:/* @__PURE__ */Ke(_e,{children:[ir(r,i,a),lr(r,i,t,a)]}),rowProps:u}),s&&!d&&/* @__PURE__ */Ye(se,{children:Hr(t,n+1)}),o(r,i+1)]},String(t.props.id??`${r}-${i}`))}),i&&!t.some(e=>e.zone===i)?o(i,0):null]})},Gr=(e,n)=>{const t=ar(e),o=Nt(e.type,Ct(fn?.data,e.type,String(e.props.id))),r=o?.spec??null,i=r&&Array.isArray(e.props[r.slot])?e.props[r.slot]:[],l=o&&o.choices?{slot:o.slot,choices:o.choices}:null,s=String(e.props.id),d=r&&!r.fixed?`${s}:${r.slot}`:null,c=l?`${s}:${l.slot}`:null,a=(n,t)=>{const o=n===d&&r&&!r.addBlocked?.(i)?()=>yr(e.props.id,r.slot,r.childType,t,e.type):n===c?()=>er(n,t):void 0;return Vr(n,t,o,n===d&&r?r.addLabel:"Add block here")};/* @__PURE__ */
|
|
21
|
+
return Ke(_e,{children:[t.map(({child:t,zone:o,index:r})=>{const i=ht===String(t.props.id),l=jo(t),s=String(t.props.id),{collapsible:d,folded:c}=pr(t,n,hr(t.type)),p=cr(t.type),u=1===p.length?`${s}:${p[0]}`:null,f=u?{...De(u),index:Po(u).length}:void 0,h=Mr.dragging,m=f&&h&&Or(h,f)?f:void 0,y=()=>mr(o,r,s,e.type),{rowProps:g,...k}=Mr.row({item:{id:s,zone:o,index:r,type:t.type},place:{...De(o),index:r},into:m,canDrag:!wt(t.type)},{"data-node-id":s,onClick:or(y)});/* @__PURE__ */
|
|
22
|
+
return Ke(Xe,{children:[0===r&&a(o,0),
|
|
23
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:t.type,size:13}),name:l,onSelect:y,nameSlot:Io(o,r,s,l),selected:i,hidden:Boolean(t.props._hidden),...k,fold:d?{open:!c,label:"group",onToggle:()=>Zt(s)}:void 0,actions:wt(t.type)?void 0:/* @__PURE__ */Ke(_e,{children:[ir(o,r,l),lr(o,r,t,l)]}),rowProps:g}),d&&!c&&/* @__PURE__ */Ye(se,{children:Gr(t,n+1)}),a(o,r+1)]},String(t.props.id??`${o}-${r}`))}),r&&!r.fixed&&
|
|
24
|
+
/* @__PURE__ */Ye(A,{small:!0,label:r.addLabel,blocked:r.addBlocked?.(i)??null,onAdd:()=>yr(e.props.id,r.slot,r.childType,i.length,e.type)}),c&&!t.some(e=>e.zone===c)?a(c,0):null]})},Jr=(()=>{if(!yn||!ft)return null;const e=String(yn.type),n=String(yn.props.id),t=Nt(e,Ct(fn?.data,e,n));if(!t||"footer"===t.source)return null;const o=xo.some(e=>String(e.props?.id)===n),r=Array.isArray(yn.props[t.slot])?yn.props[t.slot]:[];if(t.spec?.addBlocked?.(r))return null;const i=t.choices??(t.spec?[{type:t.spec.childType,label:zo(t.spec.childType)}]:[]);return 0===i.length?null:{parentName:o?Bo(e):zo(e),choices:i,onPick:o=>{t.spec?yr(n,t.slot,o,r.length,e):gr(`${n}:${t.slot}`,o,r.length)}}})(),Ur=nt||null!==Gn,Wr=e=>"panel"in e?{id:e.id,label:e.label,icon:e.icon,active:jn&&!Ur&&vt===e.id,onSelect:()=>yo(e.id)}:e,Zr=[{id:"add",label:"Add",icon:/* @__PURE__ */Ye("span",{className:"sf-rail-plus","aria-hidden":"true",children:"+"}),active:nt,onSelect:()=>nt?nr():qo(null)},...(xt.railLead??[]).map(Wr),{id:"sections",label:"Layers",icon:/* @__PURE__ */Ye(je,{}),active:jn&&!Ur&&"sections"===vt,onSelect:()=>yo("sections")},...(xt.railTrail??[]).map(Wr)];Hn?Zr.push({id:"media",label:"Media library",icon:/* @__PURE__ */Ye(Me,{}),active:jn&&!nt&&(null!==Gn||"media"===vt),onSelect:()=>yo("media")}):an&&Zr.push({id:"media",label:"Media library",icon:/* @__PURE__ */Ye(Me,{}),onSelect:go});const Qr=[...xt.railLead??[],...xt.railTrail??[]].find(e=>"panel"in e&&e.id===vt);return(xt.wrap??(e=>e))(
|
|
25
|
+
/* @__PURE__ */Ke("div",{ref:_n,className:"sf-editor es-editor",style:we(Dt),onContextMenu:Fo.onEditorContextMenu,children:[
|
|
26
|
+
/* @__PURE__ */Ke(fe,{children:[
|
|
27
|
+
/* @__PURE__ */Ye(he,{items:Zr,ariaLabel:"Left panel views"}),
|
|
28
|
+
/* @__PURE__ */Ke(me,{children:[
|
|
29
|
+
/* @__PURE__ */Ye(ye,{label:"Undo",disabled:!mn.hasPast,onClick:()=>mn.back(),children:/* @__PURE__ */Ye(Ee,{})}),
|
|
30
|
+
/* @__PURE__ */Ye(ye,{label:"Redo",disabled:!mn.hasFuture,onClick:()=>mn.forward(),children:/* @__PURE__ */Ye(Ie,{})}),
|
|
31
|
+
/* @__PURE__ */Ye(ge,{}),
|
|
32
|
+
/* @__PURE__ */Ye(ke,{devices:In,value:Vn,onChange:Fn})]}),
|
|
33
|
+
/* @__PURE__ */Ke(me,{kind:"right",style:{minWidth:300},children:[
|
|
34
|
+
/* @__PURE__ */Ye(qe,{saveState:on,notSaving:Boolean(dn)||null!=rn,onToggle:sn,onRetry:ln}),xt.barLead?.(),
|
|
35
|
+
/* @__PURE__ */Ye("button",{type:"button",className:"es-btn-ghost",title:"Refresh the preview (reloads the canvas, keeps your place)",onClick:()=>{Kn.current=(()=>{const e=qn?.document;if(!e)return null;const n=xo.findIndex(e=>e.type===xn),t=n>=0?n:xo.length;let o=null;for(let n=0;n<t;n++){const t=xo[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=yn?.props?.id??xo[0]?.props?.id;null!=e&&(o={id:String(e),offset:0})}return o})(),Yn(e=>e+1)},children:"Refresh"}),xt.barTrail?.(),
|
|
36
|
+
/* @__PURE__ */Ye("button",{type:"button",className:"es-btn-primary",onClick:()=>{tn(fn.data)},children:cn?"Publish":"Save"})]})]}),
|
|
37
|
+
/* @__PURE__ */Ye(z,{}),
|
|
38
|
+
/* @__PURE__ */Ke("div",{className:"sf-body",children:[jn?/* @__PURE__ */Ke(_e,{children:[
|
|
39
|
+
/* @__PURE__ */Ye("div",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:nt?/* @__PURE__ */Ye(T,{blocks:it&&it.zone!==X&&!$r(it.zone)?jr(it.zone):Jr,blocksOnly:Boolean(it&&it.zone!==X&&!$r(it.zone)),at:it?{label:(e=>{const n=$r(e.zone);if(n)return`Adding to ${zo(n.type)}`;if(e.zone===X){const n=xo[e.index];return n&&n.type!==xn?`Adding before ${Bo(n.type)}`:"Adding at the end of the page"}const t=jr(e.zone);return t?`Adding to ${t.parentName}`:"Adding here"})(it),onClear:()=>lt(null)}:void 0,onAdd:e=>{if(it&&"block"!==e.kind&&$r(it.zone))return tr(e,it.zone,it.index),void lt({zone:it.zone,index:it.index+1});if("section"===e.kind)return(e=>{if(null===st)return void Ko(e);const n=Ko(e,st);dt(n+1)})(e.type);if("template"===e.kind)return((e,n)=>{if(null===st)return void _o(e,n);const t=_o(e,n,st);dt(t+1)})(e.template.name,d(e.template.node));if(it&&it.zone!==X){const n=jr(it.zone);if(!n)return;return n.target.spec?yr(n.parentId,n.target.slot,e.type,it.index,n.parent.type):gr(it.zone,e.type,it.index),void lt({zone:it.zone,index:it.index+1})}Jr?.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:Rr,siteWide:xt.addPanelRow?.(nr),onClose:nr,onHide:ho,readOnly:Boolean(dn)}):Gn&&Dn?
|
|
40
|
+
/* @__PURE__ */Ye(O,{panel:Dn,pick:Gn,onHide:ho}):Qr?Qr.panel({onHide:ho,notify:no}):"media"===vt&&Dn?/* @__PURE__ */Ye(O,{panel:Dn,pick:null,onHide:ho}):/* @__PURE__ */Ke(_e,{children:[
|
|
41
|
+
/* @__PURE__ */Ye(P,{icon:/* @__PURE__ */Ye(je,{}),title:"Layers",context:`/${Ce}`,actions:Cr.length>0?/* @__PURE__ */Ye(Se,{label:Br?"Expand all sections":"Collapse all sections",onClick:()=>Ft(e=>{const n=new Set(Cr);return Br?new Set([...e].filter(e=>!n.has(e))):/* @__PURE__ */new Set([...e,...Cr])}),children:/* @__PURE__ */Ye(en,{expand:Br})}):void 0,onHide:ho}),
|
|
42
|
+
/* @__PURE__ */Ke(re,{className:"sf-tree sf-scroll",children:[
|
|
43
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:"page",size:13}),name:"Page settings",onSelect:ko,selected:!yn&&ft,rowProps:{onClick:or(ko)}}),vr&&/* @__PURE__ */Ke(_e,{children:[
|
|
44
|
+
/* @__PURE__ */Ye(le,{children:"Header"}),Dr(vr)]}),!bt&&un&&/* @__PURE__ */Ke(_e,{children:[
|
|
45
|
+
/* @__PURE__ */Ye(le,{children:"Header"}),
|
|
46
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:"header",size:13}),name:"Header",onSelect:So,selected:pt.kind===Bn?.kind,rowProps:{onClick:or(So)}})]}),!bt&&/* @__PURE__ */Ke(le,{children:["Template · ",pn?"Home page":"Template"]}),xo.map((e,n)=>{if(e.type===Sn||e.type===xn||wn(e.type))return null;const t=ht===String(e.props.id),o=Boolean(e.props._hidden);ar(e);const r=String(e.props.id),i=xt.hasOwnRows?.(e)??!1,l=fr(e)||i,s=l&&Wt(r),{rowProps:d,...c}=Mr.row({item:{id:r,zone:X,index:n,type:e.type},place:{...De(X),index:n}},{"data-node-id":r,onClick:or(()=>Zo(n))});/* @__PURE__ */
|
|
47
|
+
return Ke(Xe,{children:[n>0&&sr(n),
|
|
48
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:e.type,size:13}),name:No(e),onSelect:()=>Zo(n),selected:t,hidden:o,...c,fold:l?{open:!s,label:"section",onToggle:()=>Zt(r)}:void 0,actions:/* @__PURE__ */Ke(_e,{children:[ir(X,n,No(e)),lr(X,n,e,No(e))]}),rowProps:d}),fr(e)&&!s&&/* @__PURE__ */Ke(se,{children:[Gr(e,1),xt.partRows?.(e,Fr)]}),i&&!s&&/* @__PURE__ */Ye(se,{children:xt.ownRows?.(e,n,Fr)})]},String(e.props.id??n))}),!bt&&zr>0&&sr(zr),un&&/* @__PURE__ */Ye(le,{children:"Footer"}),br&&(()=>{const e=String(br.props.id),n=ar(br).length>0||Boolean(Nt(br.type)),t=n&&Wt(e);/* @__PURE__ */
|
|
49
|
+
return Ke(_e,{children:[
|
|
50
|
+
/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:"footer",size:13}),name:"Footer",onSelect:()=>Zo(xr),selected:ht===String(br.props.id),fold:n?{open:!t,label:"section",onToggle:()=>Zt(e)}:void 0,rowProps:{onClick:or(()=>Zo(xr))}}),n&&!t&&/* @__PURE__ */Ye(se,{children:Hr(br,1)})]})})(),!bt&&!br&&un&&/* @__PURE__ */Ye(ie,{icon:/* @__PURE__ */Ye($t,{type:"footer",size:13}),name:"Footer",onSelect:rr,rowProps:{onClick:or(rr),title:"Edit the site footer"}}),wr&&Dr(wr),xt.treeFoot?.()]})]})}),
|
|
51
|
+
/* @__PURE__ */Ye(xe,{side:"left",width:Dt.left,min:ve,max:be,defaultWidth:S.left,label:"Resize Sections panel",onResize:Jt})]}):/* @__PURE__ */Ye($,{side:"left",onShow:ho}),
|
|
52
|
+
/* @__PURE__ */Ye("div",{ref:to,className:"sf-center sf-scroll",style:{overflowX:po?"auto":"hidden",overflowY:"hidden"},children:/* @__PURE__ */Ye("div",{className:"sf-frame-scaler",style:uo,children:/* @__PURE__ */Ye("div",{className:"sf-frame "+(Vn===Ln?"":`sf-frame--${Vn}`),style:fo,children:/* @__PURE__ */Ke("div",{className:"sf-preview-host",children:[
|
|
53
|
+
/* @__PURE__ */Ye(Nn,{},Xn),
|
|
54
|
+
/* @__PURE__ */Ye(Be,{canvas:qn,session:Rr,model:Lr,canDrop:Or,onDrop:Ir,onPick:e=>{ut(D),$n.select(e.zone===X?{index:e.index}:{index:e.index,zone:e.zone})},onZoneAdd:e=>er(Fe(e),0),readOnly:Boolean(dn),revision:fn.data}),ct.length>0&&/* @__PURE__ */Ye("div",{className:"sf-preview-gaps","aria-hidden":"true",children:ct.map(e=>/* @__PURE__ */Ke("button",{type:"button",tabIndex:-1,className:"sf-preview-gap",style:{top:e.top},title:"Add section here",onClick:()=>qo(e.index),children:[
|
|
55
|
+
/* @__PURE__ */Ye("span",{className:"sf-preview-gap-line"}),
|
|
56
|
+
/* @__PURE__ */Ke("span",{className:"sf-preview-gap-pill",children:[
|
|
57
|
+
/* @__PURE__ */Ye("span",{className:"sf-preview-gap-plus",children:"+"}),
|
|
58
|
+
/* @__PURE__ */Ye("span",{className:"sf-preview-gap-label",children:"Add section"})]})]},e.index))})]})})})}),En?/* @__PURE__ */Ke(_e,{children:[
|
|
59
|
+
/* @__PURE__ */Ye(g,{value:{selectChild:mr,addChild:yr,childRowName:jo,blockRowName:Nr},children:/* @__PURE__ */Ye(An,{mode:pt,onOpenWebsiteSettings:xt.openSettings??(()=>{}),onOpenSiteStyles:xt.openStyles,onSelectNode:Et,onNotify:no,onHidePanel:mo})}),
|
|
60
|
+
/* @__PURE__ */Ye(xe,{side:"right",width:Dt.right,min:ve,max:be,defaultWidth:S.right,label:"Resize settings panel",onResize:Ut})]}):
|
|
61
|
+
/* @__PURE__ */Ye($,{side:"right",onShow:mo})]}),Yt&&/* @__PURE__ */Ke("div",{className:"sf-toast "+("error"===Yt.tone?"sf-toast--error":""),role:"status",children:[
|
|
62
|
+
/* @__PURE__ */Ye("span",{className:"sf-toast-check","aria-hidden":"true",children:"error"===Yt.tone?"!":"✓"}),Yt.msg]},_t),Fo.menu]}))}export{nn as ScreenChrome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ROOT_ZONE as e}from"./chunk-FUDHI5I4.js";import{styleMenuItems as n}from"./chunk-57DJOKXT.js";import{EaselContextMenu as t}from"./chunk-KTVH2ZRL.js";import{createNodeClipboard as o,nodeMenuItems as l}from"./chunk-2LK54I4E.js";import{useCanvasEvent as i}from"./chunk-PAELDYYS.js";import{framePointToHost as c}from"./chunk-ZNCEOSXO.js";import{UndoIcon as s,RedoIcon as r,AddIcon as a,PasteIcon as d,SettingsIcon as p,LayersIcon as u,CopyIcon as f}from"./chunk-L5KW4HG5.js";import{zoneKey as h,ROOT_SLOT as m,ROOT_ID as k}from"./chunk-KRXQM65X.js";import{useState as y,useCallback as b}from"react";import{jsx as v}from"react/jsx-runtime";function x(n,t){const o=[],l=/* @__PURE__ */new Set;let i={zone:t.zone,index:t.index};for(;i;){const t=n.nodeAt(i.zone,i.index);if(!t||l.has(t.props.id))break;if(l.add(t.props.id),o.push({zone:i.zone,index:i.index,node:t,parentType:null}),i.zone===e)break;const c=i.zone.lastIndexOf(":");if(c<=0)break;i=n.locate(i.zone.slice(0,c))}for(let e=0;e<o.length-1;e+=1)o[e].parentType=o[e+1].node.type;return o}var C=o();function g(n,t,o){if(t===e){const{floor:e,cap:t}=n.sectionBand();return{parentId:k,slot:m,index:Math.min(Math.max(o,e),t)}}const l=t.lastIndexOf(":");return{parentId:t.slice(0,l),slot:t.slice(l+1),index:o}}function A(e,t){const{zone:o,index:i}=t,c=e.nodeAt(o,i);if(!c)return[];const s=c.props.id,r=e.labelOf(c.type,o),a=Boolean(c.props._hidden),d=e.nodeOps,p=e.isPinned(c,o),u=e.isLocked(c),f=!p&&!u&&!e.duplicateBlocked(c),m=x(e,t),k=d.held,y=k&&!p&&h(k.from)===o?g(e,o,i+1):null,b=e.style?n({held:e.style.held(),canCopy:e.style.canCopy(c,o),onCopy:()=>e.style?.copy(c,o),onPaste:()=>e.style?.paste(o,i,c)}):[];return l({title:r,layer:{group:"pick",items:m.map((n,t)=>({label:e.rowNameOf(n.node,n.zone),checked:0===t,onClick:()=>e.selectAt(n.zone,n.index,n.node.props.id,n.parentType)}))},actions:{addInside:e.canAddTo(c.type)?()=>e.openAddInside(o,i):void 0,duplicate:f?()=>d.duplicate(s):void 0,moveUp:d.canStep(s,-1)?()=>d.step(s,-1):void 0,moveDown:d.canStep(s,1)?()=>d.step(s,1):void 0,copy:p?void 0:()=>d.copy(s,r),cut:f?()=>d.cut(s,r):void 0,paste:k&&y?{label:k.label,run:()=>d.paste(y)}:void 0,rename:e.renamePropOf(c,o)?()=>e.beginRename(o,i):void 0,hide:u||p?void 0:{hidden:a,run:()=>d.setProps(s,{_hidden:!a})},delete:f?()=>d.remove(s):void 0},style:b,pinnedLine:p?"Pinned — can’t be moved or deleted":void 0})}function P(n){const t=[];n.history.hasPast&&t.push({label:"Undo",icon:/* @__PURE__ */v(s,{}),shortcut:"⌘Z",onClick:n.history.back}),n.history.hasFuture&&t.push({label:"Redo",icon:/* @__PURE__ */v(r,{}),shortcut:"⇧⌘Z",onClick:n.history.forward});const o=[{label:"Add section",icon:/* @__PURE__ */v(a,{}),onClick:n.openAddSection}],l=n.nodeOps.held;if(l&&h(l.from)===e){const t=g(n,e,n.sectionBand().cap);o.push({label:`Paste ${l.label}`,icon:/* @__PURE__ */v(d,{}),shortcut:"⌘V",onClick:()=>n.nodeOps.paste(t)})}const i=[t,o,[{label:"Page settings",icon:/* @__PURE__ */v(p,{}),onClick:n.openPageSettings},{label:"Collapse all layers",icon:/* @__PURE__ */v(u,{}),onClick:n.collapseAll}]].filter(e=>e.length>0),c={label:"—",onClick:()=>{}};return i.flatMap((e,n)=>n?[c,...e]:e)}function z(e,n){const t=n.selectionStart??0,o=n.selectionEnd??0,l=n.value.slice(t,o),i=e=>{n.focus(),n.setRangeText(e,t,o,"end"),n.dispatchEvent(new Event("input",{bubbles:!0}))},c=[];l&&(c.push({label:"Copy",icon:/* @__PURE__ */v(f,{}),shortcut:"⌘C",onClick:()=>navigator.clipboard?.writeText(l)}),c.push({label:"Cut",icon:/* @__PURE__ */v(f,{}),shortcut:"⌘X",onClick:()=>{navigator.clipboard?.writeText(l),i("")}})),c.push({label:"Paste",icon:/* @__PURE__ */v(d,{}),shortcut:"⌘V",onClick:()=>{navigator.clipboard?.readText().then(e=>{e&&i(e)}).catch(()=>e.onPasteRefused())}});const s=[c,n.value?[{label:"Select all",shortcut:"⌘A",onClick:()=>{n.focus(),n.select()}}]:[]].filter(e=>e.length>0),r={label:"—",onClick:()=>{}};return s.flatMap((e,n)=>n?[r,...e]:e)}function I(e){return e.shiftKey}function O(e,n){const[o,l]=y(null),s=b(()=>l(null),[]),r=b(n=>{if(I(n))return;const t=n.target,o=function(e){const n=e?.closest?.("input, textarea");return n?n instanceof HTMLInputElement&&!["text","search","url","email","tel","number",""].includes(n.type)?null:n:null}(t);if(o)return n.preventDefault(),void l({kind:"input",x:n.clientX,y:n.clientY,el:o});const i=t?.closest?.("[data-node-id]")?.getAttribute("data-node-id"),c=i?e.locate(i):null;n.preventDefault(),l(c?{kind:"node",x:n.clientX,y:n.clientY,...c}:{kind:"empty",x:n.clientX,y:n.clientY})},[e]);i(n,"contextmenu",t=>{if(I(t)||!n)return;const o=t.target?.closest?.("[data-puck-component]")??null,i=o?.getAttribute("data-puck-component"),s=i?e.locate(i):null;t.preventDefault();const r=c(n.frame,t.clientX,t.clientY);l(s?{kind:"node",...r,...s}:{kind:"empty",...r})}),i(n,"mousedown",s),i(n,"scroll",s,{on:"window"});return{onEditorContextMenu:r,menu:o?/* @__PURE__ */v(t,{x:o.x,y:o.y,items:"node"===o.kind?A(e,o):"input"===o.kind?z(e,o.el):P(e),onClose:s}):null,closeMenu:s}}export{C as EASEL_NODE_CLIPBOARD,x as ancestorChain,A as nodeMenuItems,P as pageMenuItems,z as textMenuItems,O as useNodeContextMenu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,n,t){return!(!e||!n)&&(e.index===n.index&&(e.zone??t)===(n.zone??t))}function n(e=("undefined"==typeof document?void 0:document)){const n=e?.querySelector(".es-tree"),t=n?.querySelector(".es-tree-row.is-selected");return!!t&&(function(e,n){if("function"!=typeof e.getBoundingClientRect)return!1;if("function"!=typeof n.getBoundingClientRect)return!1;const t=e.getBoundingClientRect(),o=n.getBoundingClientRect();return!(!t.height||!o.height)&&o.top>=t.top&&o.bottom<=t.bottom}(n,t)||t.scrollIntoView({block:"center",inline:"nearest"}),!0)}function t(e,n){return"part"===e.kind?e.nodeId??null:"puck"!==e.kind||null==n?null:String(n)}export{t as markedTreeNodeId,n as revealSelectedTreeRow,e as sameSelector};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{routeSharedHostMessage as e}from"./chunk-7MU3RJ6S.js";import{hostLoadRefusal as r,describeLoadFailure as t}from"./chunk-A7ZJII7O.js";import{pageEditLock as n}from"./chunk-AKZWUV5Z.js";import{NO_DOCUMENT_ADDRESSING as o}from"./chunk-RLBXE4EU.js";import{saveStatusOf as a,resetForDocumentSwitch as u}from"./chunk-OYX47SL7.js";import{isExpiredSession as s}from"./chunk-HMX55DYT.js";import{useAdminBridge as i}from"./chunk-Q3SQBNJB.js";import{useEaselHost as c}from"./chunk-R5ZVNJLJ.js";import{useEaselSession as l}from"./chunk-6TZTKAB5.js";import{backendOf as d,setSessionDocumentSite as f}from"./chunk-AJBJ74ME.js";import{useAutosave as v}from"./chunk-BDTITTMW.js";import{canWriteDocument as k,newEaselClientId as p,reloadIfVersionMoved as g,holderOf as m}from"./chunk-JUQ6YJCG.js";import{createContext as h,useContext as w,useState as y,useMemo as S,useCallback as b,useEffect as I,useRef as j}from"react";import{jsx as B}from"react/jsx-runtime";var P={content:[],root:{},zones:{}};var A=h(null);function C(){const e=w(A);if(!e)throw new Error("useStorefrontDocument must be used within StorefrontDocumentProvider");return e}function E({target:h,addressing:w=o,onHostMessage:C,children:E}){const{homeSlug:T,entryMayBounce:J,entryBounce:H,onSwitch:M,tellsHost:N,adapterFor:D,migrateRenamedProps:L}=w,[O,R]=y(h),V=c(),U=l(),Z=S(()=>d(U),[U]),W="template"===O.kind,Y="template"===O.kind?O.id:null,x="template"===O.kind?O.pageSlug??T??"":O.slug,F="page"===O.kind?O.siteId??null:null,K=U.blocks,Q=S(()=>D(O,Z,K),[D,Z,K,O.kind,"template"===O.kind?O.id:O.siteId]),X=Q.capabilities,$=b(e=>U.documentHooks?.stored?.(e)??e,[U]),z="page"===O.kind?O.originSlug??null:null;I(()=>{f(U,F)},[U,F]);const G=j(O);I(()=>{G.current=O},[O]);const{token:_,tokenRef:q,capabilities:ee}=i({onMessage:r=>{if(C?.(r)||e(r))return;const t=r;if("storefront-editor:navigate"===t?.type){const e=r;e?.target&&cr(e.target)}}}),re=!U.usesBridgedToken||null!==_,te=Q.lock,ne=Boolean(Z.lock),[oe,ae]=y(null),[ue,se]=y(null),[ie,ce]=y(null),[le,de]=y(null),fe=j(null),[ve,ke]=y(!1),pe=j(null),[ge,me]=y(null),he=j(null),[we,ye]=y(null),Se=j(null);I(()=>{Se.current=we},[we]);const[be,Ie]=y(X.hasEditLock?{kind:"checking"}:{kind:"editing"}),je=j(be);I(()=>{je.current=be},[be]);const Be=j(()=>Promise.resolve(!1)),Pe=b(e=>{fe.current=e,ke(!0)},[]),Ae=v({save:async({id:e,data:r})=>{if(k(je.current)){if(!await Be.current(e,r)){if(!k(je.current))return void Pe({id:e,data:r});throw new Error("page save did not land")}}else Pe({id:e,data:r})},onFailure:(e,r)=>{0===r&&V.send("storefront-editor:save-failed")}}),{state:Ce,push:Ee,flush:Te,pause:Je,resume:He,stop:Me,reset:Ne,retryNow:De,hasPending:Le}=Ae,Oe=j(Ce);I(()=>{Oe.current=Ce},[Ce]);const Re=a(Ce),Ve=b(()=>{const e=fe.current;e&&(fe.current=null,ke(!1),Ee(e))},[Ee]),Ue=j("");Ue.current||(Ue.current=p());const[Ze,We]=y(0),Ye=j(!1),[xe,Fe]=y(J(h)),Ke=j(!1);I(()=>{if(Ke.current)return;Ke.current=!0;const e=V.address.search(),r=H(h,e);r?V.address.load(r):J(h)&&Fe(!1)},[h,V]);const Qe=V.send;I(()=>{if(!re)return;let e=!1;const n=Q.resolve(x),o=U.documentHooks?.opening?.({slug:x,isTemplate:W,capabilities:X});return n.then(async r=>{if(e)return;if(!r)return W||null===T||x===T?void de(W?"Couldn’t open a page in this template.":`No storefront page with slug "${x}".`):void V.address.load({kind:"page",slug:T,siteId:F??void 0});ae(r.id),se(r.kind??null),he.current=r.version??null;const t=r.layout,n=t&&Object.keys(t).length?t:P,a=L(n),u=o?await o(a):a;e||ce(u)}).catch(n=>{e||(console.error("[storefront-editor] document load failed",n),de(r(n,{slug:x})??`Could not load the document — ${t(n)}`))}),()=>{e=!0}},[re,_,W,Q,x]);const Xe=b(e=>new Promise(r=>{const t=Date.now(),n=setInterval(()=>{const o=q.current;o&&o!==e?(clearInterval(n),r(o)):Date.now()-t>6e3&&(clearInterval(n),r(null))},200)}),[]),$e=b(async e=>{const r=q.current;if(!r&&U.usesBridgedToken)return{ok:!1,error:new Error("no editor token")};try{return{ok:!0,value:await e(r??"")}}catch(t){if(s(t)){Qe("storefront-editor:auth-expired");const t=r?await Xe(r):null;if(t)try{return{ok:!0,value:await e(t)}}catch(e){return{ok:!1,error:e}}}return{ok:!1,error:t}}},[Qe,Xe,U]),ze=b(async e=>{const r=q.current?await $e(e):{ok:!1};return r.ok||Qe("storefront-editor:save-failed"),r.ok},[Qe,$e]),Ge=b(async(e,r,t=!1)=>{if(!k(je.current))return!1;if(Se.current)return!1;const o=await $e(()=>Q.saveLayout(e,r,he.current,Ue.current));if(o.ok)return he.current=o.value.version??he.current,!0;const a=n.readLockTaken(o.error);if(a){const e={kind:"takenover",holder:a};return je.current=e,Ie(e),!1}const u=n.readSaveConflict(o.error);if(u){if(u.savedByYou&&!t&&Q.rereadVersion){const t=await $e(()=>Q.rereadVersion(e));if(t.ok&&t.value)return he.current=t.value,Be.current(e,r,!0)}Me(),Se.current=u,ye(u)}return!1},[Q,$e,Me]);I(()=>{Be.current=Ge},[Ge]);const _e=b(e=>{if(Qe("storefront-editor:dirty"),!oe)return;const r=$(e);pe.current=r,k(je.current)?Ee({id:oe,data:r}):Pe({id:oe,data:r})},[oe,Qe,Pe,Ee,$]),qe=b(async()=>{k(je.current)&&Ve();return await Te()&&null==fe.current},[Ve,Te]),er=j(qe);I(()=>{er.current=qe},[qe]);const rr=j($e);I(()=>{rr.current=$e},[$e]);const tr=b(()=>{V.address.reload()},[V]),nr=j(()=>Promise.resolve(!1));I(()=>{nr.current=()=>{const e=Q.rereadVersion;return oe&&e?g({ours:he.current,stored:async()=>{const r=await rr.current(()=>e(oe));return r.ok?r.value:null},hasPending:()=>null!=fe.current||Le(),reload:tr}):Promise.resolve(!1)}},[Q,oe,Le,tr]),I(()=>{if(!te||!oe||!re)return;let e=!1,r=null;const t=Ue.current,o=n.makeClaimBeat({claim:async e=>{const r=await rr.current(()=>te.claim(oe,t,e));if(r.ok)return{heartbeat_seconds:r.value.heartbeatSeconds};throw r.error},cancelled:()=>e,currentAccess:()=>je.current,heldWrite:()=>({pending:null!=fe.current||Le(),autoSaveEnabled:!Oe.current.paused,saveConflict:null!=Se.current}),setAccess:e=>{je.current=e,Ie(e)},releaseHeldWrite:()=>{er.current()},startHeartbeat:e=>{r=setInterval(()=>{o(!1)},e)},stopHeartbeat:()=>{r&&(clearInterval(r),r=null)},reloadIfMoved:()=>{nr.current()}}),a=Ye.current;return Ye.current=!1,a||Ie({kind:"checking"}),o(a),()=>{e=!0,r&&clearInterval(r),te.release(oe,t).catch(()=>{})}},[oe,te,re,_,Ze]);const or=b(()=>{te&&oe&&(Ye.current=!0,We(e=>e+1))},[oe,te]),ar=b(()=>{Ie(e=>{const r="blocked"===e.kind||"takenover"===e.kind?e.holder:null;return r?{kind:"readonly",holder:r}:e})},[]),ur=b(()=>{Oe.current.paused?(k(je.current)&&Ve(),He()):Je()},[Ve,Je,He]),sr=b(()=>{De()},[De]),ir=b(e=>{pe.current=null,u("template"!==e.kind&&ne,{resetAutosave:()=>{Ne(),fe.current=null,ke(!1)},setVersion:e=>{he.current=e},setSaveConflict:ye,setAccess:Ie}),M(e),R(e),ae(null),se(null),ce(null),de(null),V.address.show(e),N(e)&&V.send("storefront-editor:navigated",{target:e})},[Ne,V,ne,M,N]),cr=b(e=>{if(function(e,r,t){if(e.kind!==r.kind)return!1;if("template"===e.kind){const n=r;return e.id===n.id&&(e.pageSlug??t)===(n.pageSlug??t)}const n=r;return e.slug===n.slug&&e.siteId===n.siteId}(e,G.current,T))return;const r=null!=fe.current;if(!r&&!Le())return void ir(e);const t=Oe.current;r||t.paused||t.failed||t.stopped?me(e):Te().then(r=>{r?ir(e):me(e)})},[ir,Le,Te,T]),lr=b(()=>me(null),[]),dr=b(()=>{me(e=>(e&&ir(e),null))},[ir]),fr=b(async()=>{const e=ge;if(!e)return;await qe()&&(me(null),ir(e))},[ge,qe,ir]),vr=b(async e=>{if(!oe)return;if(!k(je.current)||Se.current)return;const r=$(e);if(!await Ge(oe,r))return void(Se.current||Qe("storefront-editor:save-failed"));const t=Q.publish;if(!X.canPublish||!t)return void Qe("storefront-editor:saved");const n=await $e(()=>t(oe,he.current??void 0));n.ok?(he.current=n.value.version??he.current,Qe("storefront-editor:published")):Qe("storefront-editor:save-failed")},[oe,Q,X.canPublish,Qe,Ge,$e,$]);/* @__PURE__ */
|
|
2
|
+
return B(A.Provider,{value:{target:O,adapter:Q,capabilities:X,templateId:Y,currentSlug:x,currentKind:ue,siteId:F,ready:re,token:_,tokenRef:q,notifyParent:Qe,bridgeCapabilities:ee,runAuthed:ze,docId:oe,data:ie,getLiveData:()=>pe.current??ie,footerOriginSlug:z,error:le,redirecting:xe,saveStatus:Re,saveState:Ce,autoSaveEnabled:!Ce.paused,autoSaveStoppedByConflict:Ce.stopped,hasUnsavedEdits:Ce.pending||ve,toggleAutoSave:ur,retrySave:sr,onChange:_e,flushSave:qe,onPublish:vr,access:be,readOnly:null!==m(be),takeOverEditing:or,viewReadOnly:ar,saveConflict:we,reloadFromServer:tr,navigate:cr,pendingNav:ge,cancelPendingNav:lr,discardAndNavigate:dr,saveAndNavigate:fr},children:E})}export{A as ScreenDocumentContext,E as ScreenDocumentProvider,C as useScreenDocument};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(n,t){const r=n.components?.[t]?.fields??{};return Object.keys(r).filter(n=>"slot"===r[n]?.type)}function t(t,r){return n(t,r.type).flatMap(n=>(Array.isArray(r.props[n])?r.props[n]:[]).map((t,e)=>({child:t,zone:`${r.props.id}:${n}`,index:e})))}function r(n,r,e){const o=(r,i,u,p)=>{if(!r||"object"!=typeof r||!r.props)return null;if(r.props.id===e)return{item:r,zone:i,index:u};if(p>=12)return null;for(const{child:e,zone:i,index:u}of t(n,r)){const n=o(e,i,u,p+1);if(n)return n}return null};for(let n=0;n<r.length;n+=1){const t=o(r[n],f,n,0);if(t)return t}return null}var e=6;function o(t,r,e){return e<6&&n(t,r).length>0}var i=n=>`${n}-${crypto.randomUUID()}`,u="Header",p="Footer",f="root:default-zone",s=[u,p];function c(n){const t=/* @__PURE__ */new Set,r=[];return n.forEach((n,e)=>{const o=n?.type;void 0!==o&&s.includes(o)&&(t.has(o)?r.push(e):t.add(o))}),r}function l(n){return c(n).map(t=>n[t]?.props?.id).filter(n=>"string"==typeof n)}function d(n,t){const r=(n,t)=>n.some(n=>n?.type===t);return s.filter(e=>!r(n,e)&&!r(t,e))}export{p as FOOTER_TYPE,u as HEADER_TYPE,f as ROOT_ZONE,e as TREE_MAX_DEPTH,t as childSlotsOf,r as locateNode,d as missingPinnedTypes,o as nestsInTree,i as newNodeId,l as pinnedDuplicateIds,c as pinnedDuplicateIndices,n as slotFieldsOf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,n){const o=e.categories??{},c=e.components,r=[];for(const[s,i]of Object.entries(o))for(const o of i?.components??[]){const i=c[o];if(!i)continue;const a=i.label??o,l=n.labelAtLevel(o,"section",a);r.push({type:o,cat:s,catLabel:t(e,s,n.categoryLabel),name:l,desc:n.descriptions[o]??"",...l===a?{}:{alias:a}})}return r}function t(e,t,n){return n(t)??e.categories?.[t]?.title??t}function n(e,t){return!t||`${e.name} ${e.alias??""} ${e.desc} ${e.type} ${e.catLabel}`.toLowerCase().includes(t)}function o(e,t){return e.find(e=>e.type===t)??null}function c(e,t){return e.filter(e=>e.type!==t)}export{e as buildPaletteSections,t as categoryLabel,n as matchesQuery,c as paletteWithoutPinned,o as pinnedSection};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{runAsPreviewClick as e}from"./chunk-R5L2E7JX.js";import{useRef as r,useCallback as t,createContext as n,useState as c,useContext as l}from"react";import{jsx as o}from"react/jsx-runtime";function s(){const n=r(()=>{});return{select:t((...r)=>e(()=>n.current(...r)),[]),setSelectHandler:t(e=>{n.current=e},[])}}function u(e){const r=`set${e.charAt(0).toUpperCase()}${e.slice(1)}`,t=(t,n,c,l)=>({[e]:t,[r]:n,select:c,setSelectHandler:l}),u=n(t(null,()=>{},()=>{},()=>{}));return{Provider:function({children:e}){const[r,n]=c(null),{select:l,setSelectHandler:i}=s();/* @__PURE__ */
|
|
2
|
+
return o(u.Provider,{value:t(r,n,l,i),children:e})},useSelection:()=>l(u)}}export{u as createPreviewSelectionContext,s as useSelectHandler};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useState as r,useEffect as t}from"react";import{jsx as n}from"react/jsx-runtime";function o(o){return function(e){const[u,c]=r(!1);return t(()=>c(!0),[]),u?/* @__PURE__ */n(o,{...e}):null}}export{o as clientOnly};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readHostFailure as e,isBackendError as n,STATUS_UNREACHABLE as s}from"./chunk-KDYIMJTZ.js";import{EDIT_LOCK_TAKEN as t}from"./chunk-JUQ6YJCG.js";var a="page_changed_elsewhere",d={unauthorized:401,"changed-elsewhere":409,"lock-taken":409,"not-found":404,invalid:400,unavailable:s};function o(s){const o=e(s);if(o)return{status:o.status,data:o.data};if(!n(s))return null;const c=e(s.cause);if(c)return{status:c.status,data:c.data};const u=d[s.kind];return"changed-elsewhere"===s.kind?{status:u,data:{code:a,saved_by:s.conflict?.savedBy??"",saved_by_you:!0===s.conflict?.savedByYou,seconds_ago:s.conflict?.secondsAgo??0}}:"lock-taken"===s.kind?{status:u,data:{code:t,holder_name:s.holder?.name??"",seconds_since_seen:s.holder?.secondsSinceSeen??0,seconds_since_held:s.holder?.secondsSinceHeld??0}}:{status:u,data:null}}function c(e){return 401===o(e)?.status}export{a as PAGE_CONFLICT_CODE,c as isExpiredSession,o as readEaselFailure};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function o(o){const t=[];for(const r of o){const o=t[t.length-1];o&&o.group===r.group?o.items.push(r):t.push({group:r.group,items:[r]})}return t}export{o as blockRuns};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{textFieldIdentifier as r}from"./chunk-DUVRZ456.js";import{hidableText as n}from"./chunk-6W7WLPZH.js";function t(r,t){const o=n(r.props.name);if(o)return o;const e=n(r.props.altName);if(e)return e;const u=r.props.collection?.name;if(u)return u;const c=r.props.source?.title;if(c)return c;const p=r.props.code;return p?t?.(p)??p:""}function o(r,n,o,e){return o(t(r,e))||n(r.type)}function e(n){if(!n)return null;for(const t of["name","altName"])if(r(n[t]))return t;return null}function u(r,t){return n(r.props?.name).trim()||t}export{u as rootRowName,t as slotChildName,e as slotChildRenameProp,o as slotChildRowName};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createPreviewSelectionContext as e}from"./chunk-GOTN2KY4.js";var{Provider:r,useSelection:o}=e("selectedPartId");export{r as PreviewPartsProvider,o as usePreviewParts};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o="hero-slider:goto";export{o as HERO_SLIDER_GOTO_EVENT};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{PanelToggleIcon as e}from"./chunk-KQMML6JM.js";import{InspectorHead as i,InspectorIconButton as n}from"./chunk-6DJHRLCU.js";import{jsx as t,jsxs as l,Fragment as o}from"react/jsx-runtime";function d({icon:e,title:n,context:d,actions:s,side:a="left",onHide:c}){/* @__PURE__ */
|
|
2
|
+
return t(i,{icon:e,name:n,kind:d,actions:s||c?/* @__PURE__ */l(o,{children:[s,c?/* @__PURE__ */t(r,{side:a,onHide:c,divider:Boolean(s)}):null]}):void 0})}function r({side:i,onHide:d,divider:r=!1}){/* @__PURE__ */
|
|
3
|
+
return l(o,{children:[r?/* @__PURE__ */t("span",{className:"sf-head-divider","aria-hidden":"true"}):null,
|
|
4
|
+
/* @__PURE__ */t(n,{label:`Hide the ${i} panel`,title:"Hide panel",onClick:d,children:/* @__PURE__ */t(e,{side:i})})]})}function s({side:i,onShow:l}){/* @__PURE__ */
|
|
5
|
+
return t("div",{className:`es-sidepanel es-sidepanel--${i} sf-panel-strip`,children:/* @__PURE__ */t(n,{label:`Show the ${i} panel`,title:"Show panel",onClick:l,children:/* @__PURE__ */t(e,{side:i})})})}function a({label:e,onClick:i,description:n}){/* @__PURE__ */
|
|
6
|
+
return t("button",{type:"button",className:"es-btn-ghost sf-head-textbtn",onClick:i,title:n,children:e})}export{r as PanelHideButton,a as PanelModeExit,s as PanelShowStrip,d as SidePanelHead};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n="::";function e(e,r){return`${e}${n}${r??""}`}function r(e){const r=e.indexOf(n);return r<=0?null:{nodeId:e.slice(0,r),propKey:e.slice(r+2)||null}}export{n as PART_SEP,r as decodePartId,e as encodePartId};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{backendOf as e}from"./chunk-AJBJ74ME.js";import{WebsiteBackendError as s}from"./chunk-KDYIMJTZ.js";var r=()=>Promise.reject(new s("unavailable","This editor's backend keeps no section templates.")),t={list:()=>Promise.resolve([]),get:()=>Promise.resolve(null),ensure:r,save:r,update:r,rename:r,remove:r},o=()=>e().sectionTemplates??t,a={list:()=>o().list(),get:e=>o().get(e),ensure:(e,s,r)=>o().ensure(e,s,r),save:(e,s)=>o().save(e,s),update:(e,s)=>o().update(e,s),rename:(e,s)=>o().rename(e,s),remove:e=>o().remove(e)};export{a as sectionTemplates};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createContext as r,useContext as e}from"react";import{jsx as n}from"react/jsx-runtime";var t=r(null);function i({value:r,children:e}){/* @__PURE__ */
|
|
2
|
+
return n(t.Provider,{value:r,children:e})}function o(){return e(t)}export{i as SlotChildActionsProvider,o as useSlotChildActions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class extends Error{kind;conflict;holder;fields;constructor(e,r,s={}){super(r??n[e],void 0===s.cause?void 0:{cause:s.cause}),this.name="WebsiteBackendError",this.kind=e,this.conflict=s.conflict,this.holder=s.holder,this.fields=s.fields}},n={unauthorized:"The editor's sign-in was refused.","changed-elsewhere":"This page was changed somewhere else.","lock-taken":"Somebody else is editing this page.","not-found":"This no longer exists.",invalid:"The request was refused.",unavailable:"The server could not be reached."};function r(e,n){if(!e||"object"!=typeof e)return!1;const r=e;return"WebsiteBackendError"===r.name&&"string"==typeof r.kind&&(void 0===n||r.kind===n)}var s=0,i=null;function o(e){i=e}function t(e){return i?.read(e)??null}function d(e,n){return i?.loadRefusal?.(e,n)??null}function a(){return i?.unreachableMessage??"The server could not be reached."}export{s as STATUS_UNREACHABLE,e as WebsiteBackendError,d as hostLoadRefusalOf,a as hostUnreachableMessage,r as isBackendError,o as provideHostFailures,t as readHostFailure};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";function r({side:r}){/* @__PURE__ */
|
|
2
|
+
return t("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.7,children:[
|
|
3
|
+
/* @__PURE__ */e("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),
|
|
4
|
+
/* @__PURE__ */e("path",{d:"left"===r?"M9 4v16":"M15 4v16"})]})}export{r as PanelToggleIcon};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEaselHost as n}from"./chunk-R5ZVNJLJ.js";import{useEaselApi as o,bindUndoKeys as t}from"./chunk-P67FP7PG.js";import{useState as r,useEffect as u}from"react";function c(o){const t=n(),[c,e]=r(null);return u(()=>e(o.current),[o]),t.ownsDocument?"undefined"==typeof document?null:document:c}function e(r){const e=n(),m=o(),f=c(r);u(()=>{if(!e.ownsDocument&&f)return t(f,m)},[e,m,f])}export{c as useEaselKeyTarget,e as useEaselUndoKeys};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{accessForNewDocument as e}from"./chunk-JUQ6YJCG.js";function n(e){return e.failed?"error":e.pending?"saving":e.saved?"saved":"idle"}function t(e){return"idle"}function r(n,t){t.resetAutosave(),t.setVersion(null),t.setSaveConflict(null),t.setAccess(e(n))}export{r as resetForDocumentSwitch,t as saveStatusForNewDocument,n as saveStatusOf};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{DEFAULT_CANVAS_WORDS as e}from"./chunk-AELNNAFM.js";import{useResolvedFields as t}from"./chunk-YRLPFZW3.js";import{toItemSelector as n,fromItemSelector as o,useNodeOps as r}from"./chunk-D2BCHTQR.js";import{useWords as a}from"./chunk-MFIRYGHW.js";import{setCanvasNonce as i}from"./chunk-ZNCEOSXO.js";import{find as s,ROOT_ID as d,getList as l,remove as c,parseZoneKey as u,move as p,duplicate as f,replaceNode as h,createNode as m,insert as v,normalizeData as y,createResolveCache as g,resolveNodeData as k,ROOT_SLOT as b}from"./chunk-KRXQM65X.js";import{topLevelSlotKeys as w,fieldsFrom as S,defaultsFrom as I}from"./chunk-NKB3KVAB.js";import{createContext as C,useEffect as O,useContext as x,useRef as E,useSyncExternalStore as A,useState as D,useMemo as z,useCallback as M,useLayoutEffect as Z}from"react";import{jsx as N,jsxs as $}from"react/jsx-runtime";import{createPortal as j}from"react-dom";function R(e){return!["setData","setUi","set"].includes(e.type)}var B=(e,t,n,o)=>{const r=l(e,t,u(n));return r?.[o]??null},P=(e,t,n,o,r)=>{const a=B(e,t,n,o);if(!a)throw new Error(`${r}: nothing at ${n}[${o}]`);return a};function L(e,t){const{selection:o}=e;return{...e.ui,itemSelector:n(e.data,t,o),selectedSlot:o&&"slot"===o.kind?{parentId:o.parentId,slot:o.slot}:null}}function K(e,t,n){return n?"node"===n.kind?s(e,t,n.id)?n:null:n.parentId===d?l(e,t,n)?n:null:s(e,t,n.parentId)&&l(e,t,n)?n:null:null}function F(e,t,n,r=!1){const{itemSelector:a,selectedSlot:i,...s}=n;let d=e.selection;var l;return"itemSelector"in n&&(d=o(e.data,t,a??null)),"selectedSlot"in n&&(i?d=(l=i)?{kind:"slot",parentId:l.parentId,slot:l.slot}:null:"slot"===d?.kind&&(d=null)),{...e,selection:d,ui:r?s:{...e.ui,...s}}}function H(e,t,n){const o=V(e,t,n);if(o===e)return e;const r=K(o.data,n,o.selection);return r===o.selection?o:{...o,selection:r}}function V(e,t,n){const{data:o}=e;switch(t.type){case"setData":{const n="function"==typeof t.data?t.data(o):t.data;return{...e,data:{...o,...n}}}case"setUi":return F(e,n,"function"==typeof t.ui?t.ui(L(e,n)):t.ui);case"set":{const r={data:o,ui:L(e,n)},a="function"==typeof t.state?t.state(r):t.state;let i=a.data?{...e,data:a.data}:e;return a.ui&&(i=F(i,n,a.ui,!0)),i}case"insert":{const r={...u(t.destinationZone),index:t.destinationIndex},a=m(n,t.componentType,{},t.id?{id:t.id}:{});return{...e,data:v(o,n,r,a)}}case"replace":{const r=P(o,n,t.destinationZone,t.destinationIndex,"replace");if(r.props.id!==t.data.props.id)throw new Error("Can't change the id during a replace action. Use remove and insert for a new node.");return{...e,data:h(o,n,r.props.id,t.data)}}case"replaceRoot":{const n={...o.root,props:{...o.root.props,...t.root.props},readOnly:t.root.readOnly};return{...e,data:{...o,root:n}}}case"duplicate":{const r=P(o,n,t.sourceZone,t.sourceIndex,"duplicate"),a=f(o,n,r.props.id),i=B(a,n,t.sourceZone,t.sourceIndex+1);return{...e,data:a,selection:i?{kind:"node",id:i.props.id}:e.selection}}case"reorder":return V(e,{...t,type:"move",sourceZone:t.destinationZone},n);case"move":{if(t.sourceZone===t.destinationZone&&t.sourceIndex===t.destinationIndex)return e;const r=B(o,n,t.sourceZone,t.sourceIndex);if(!r)return e;const a={...u(t.destinationZone),index:t.destinationIndex};return{...e,data:p(o,n,r.props.id,a)}}case"remove":{const r=P(o,n,t.zone,t.index,"remove");return{...e,data:c(o,n,r.props.id)}}default:return e}}var T={drag:!0,duplicate:!0,delete:!0,edit:!0,insert:!0},q={leftSideBarVisible:!0,rightSideBarVisible:!0,arrayState:{},componentList:{},isDragging:!1,previewMode:"edit",viewports:{current:{width:360,height:"auto"},options:[],controlsVisible:!0},field:{focus:null}},Y=0,U=()=>`history-${Y+=1}`;function W(e){let t=e.config;const r=e.now??(()=>Date.now()),a=e.historyCoalesceMs??250;let i=e.permissions??{};const d=y(e.data,t);let c={data:d,selection:null,ui:{...q}};if(e.ui){const{itemSelector:n,selectedSlot:r,...a}=e.ui;c={data:d,selection:r?{kind:"slot",...r}:o(d,t,n??null),ui:{...q,...a}}}let u=[{core:c,at:-1/0,sealed:!0,id:U()}],p=0;const f=e=>{const t=u[p],n=r();!e&&p===u.length-1&&p>0&&!t.sealed&&n-t.at<a?u=[...u.slice(0,p),{...t,core:c,at:n}]:(u=[...u.slice(0,p+1),{core:c,at:n,sealed:e,id:U()}],p=u.length-1)},m=/* @__PURE__ */new Set;let v=null,b=null,w=0,S=null,I=!1;const C=()=>{for(const e of[...m])e()},O=()=>{u=[...u.slice(0,p),{...u[p],core:c},...u.slice(p+1)]},x=(t,n)=>{w>0?I=I||n:(n?f(!1):c!==t&&O(),c.data!==t.data&&e.onChange?.(c.data),c!==t&&C())},E=e=>{const n=c;if(c=H(c,e,t),c===n)return;const o=e.recordHistory??R(e);x(n,o&&c.data!==n.data)},A=t=>{0===w&&(S=c,I=!1),w+=1;try{t()}catch(e){throw w-=1,0===w&&S&&(c=S,S=null),e}if(w-=1,w>0||!S)return;const n=S;S=null,I&&c.data!==n.data?f(!0):c!==n&&O(),c.data!==n.data&&e.onChange?.(c.data),c!==n&&C()},D=e=>{const n=c,o=K(c.data,t,e);var r,a;(r=o,a=c.selection,r===a||r&&a&&r.kind===a.kind&&("node"===r.kind&&"node"===a.kind?r.id===a.id:"slot"===r.kind&&"slot"===a.kind&&r.parentId===a.parentId&&r.slot===a.slot))||(c={...c,selection:o},x(n,!1))},z=t=>{const n=c;p=t,c=u[p].core,c.data!==n.data&&e.onChange?.(c.data),c!==n&&C()},M=()=>(e={})=>{const n=e.root?t.root?.permissions:t.components[e.item?.type??e.type??""]?.permissions;return{...T,...i,...n}};let Z=M();const N=g(),$={resolveCache:N,async resolveAll({trigger:e="load",metadata:n}={}){const o=c.data,r={type:"root",props:{...o.root.props??{}}},a=[...o.content,...Object.values(o.zones??{}).flat()],[i,...d]=await Promise.all([k(r,t,{cache:N,trigger:e,metadata:n}),...a.map(o=>k(o,t,{cache:N,trigger:e,metadata:n}))]);A(()=>{const e=c;let n=c.data;d.forEach((e,r)=>{if(!e.didChange)return;const i=a[r].props.id,d=s(n,t,i)?.node;d&&d===s(o,t,i)?.node&&(n=h(n,t,i,e.node))}),i.didChange&&n.root===o.root&&(n={...n,root:{...n.root,props:i.node.props,readOnly:i.node.readOnly??n.root.readOnly}}),n!==c.data&&(c={...c,data:n,selection:K(n,t,c.selection)},x(e,!1))})},async resolveNode(e,{trigger:n="replace",metadata:o}={}){const r=s(c.data,t,e)?.node;if(!r)return!1;const a=await k(r,t,{cache:N,trigger:n,metadata:o});if(!a.didChange)return!1;let i=!1;return A(()=>{const n=c;if(s(c.data,t,e)?.node!==r)return;const o=h(c.data,t,e,a.node);o!==c.data&&(c={...c,data:o,selection:K(o,t,c.selection)},x(n,!1),i=!0)}),i},get config(){return t},getState(){if(v&&b===c)return v;const e=c,o={data:e.data,ui:L(e,t)},r="node"===e.selection?.kind?s(e.data,t,e.selection.id)?.node??null:null;return v={appState:o,selection:e.selection,selectedItem:r,config:t,dispatch:E,history:{back:()=>$.undo(),forward:()=>$.redo(),hasPast:p>0,hasFuture:p<u.length-1,histories:u.map(e=>({id:e.id,state:{data:e.core.data,ui:L(e.core,t)}})),index:p,setHistoryIndex:e=>{e>=0&&e<u.length&&e!==p&&z(e)}},getPermissions:Z,getItemById:n=>s(e.data,t,n)?.node,getItemBySelector:n=>function(e,t,n){const[o,r]=(n.zone??"root:default-zone").split(/:(.*)/s);return l(e,t,{parentId:o,slot:r})?.[n.index]}(e.data,t,n),getSelectorForId:o=>{const r=n(e.data,t,{kind:"node",id:o});return r?{index:r.index,zone:r.zone??"root:default-zone"}:void 0}},b=e,v},subscribe:e=>(m.add(e),()=>{m.delete(e)}),dispatch:E,batch:A,select:e=>D(e?{kind:"node",id:e}:null),selectSlot:e=>D(e?{kind:"slot",parentId:e.parentId,slot:e.slot}:null),run(e){A(()=>{const n=c,o=void 0===e.select?c.selection:e.select;c={...c,data:e.data,selection:K(e.data,t,o)},x(n,e.data!==n.data)})},load(e,n={}){const o=c,r=y(e,t);c={...c,data:r,selection:K(r,t,n.selection??c.selection)},n.keepHistory||(u=[{core:c,at:-1/0,sealed:!0,id:U()}],p=0),c!==o&&C()},undo(){p>0&&z(p-1)},redo(){p<u.length-1&&z(p+1)},setPermissions(e){(function(e,t){if(e===t)return!0;const n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>e[n]===t[n])})(e,i)||(i=e,Z=M(),v=null,C())},setConfig(e){e!==t&&(t=e,Z=M(),v=null,C())}};return $}function X(e,t){const n=e=>{if(e.altKey)return;if(!(e.metaKey!==e.ctrlKey))return;const n="KeyZ"===e.code,o="KeyY"===e.code&&!e.shiftKey;(n||o)&&!1!==t.getState?.().getPermissions().edit&&(e.preventDefault(),o||e.shiftKey?t.redo():t.undo())};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)}var Q=C(null),G=C(!0);function J({easel:e,hotkeys:t=!0,resolveOnMount:n=!0,children:o}){return O(()=>{n&&e.resolveAll()},[e,n]),O(()=>{if(t&&"undefined"!=typeof document)return X(document,e)},[e,t]),/* @__PURE__ */N(Q.Provider,{value:e,children:/* @__PURE__ */N(G.Provider,{value:t,children:o})})}function _(){const e=x(Q);if(!e)throw new Error("useEasel: no <EaselProvider> above this component");return e}function ee(e){const t=_(),n=E({view:null,selector:null,value:void 0,has:!1}),o=()=>{const o=t.getState(),r=n.current;if(r.has&&r.view===o&&r.selector===e)return r.value;const a=e(o);return r.has&&Object.is(r.value,a)?(n.current={view:o,selector:e,value:r.value,has:!0},r.value):(n.current={view:o,selector:e,value:a,has:!0},a)};return A(t.subscribe,o,o)}function te(){return function(e){return ee(e)}}var ne="data-puck-component",oe="data-puck-dropzone",re={},ae="data-es-mirror",ie="undefined"==typeof window?O:Z;function se(e,t,n){for(const e of Array.from(t.head.querySelectorAll(`[${ae}]`)))e.remove();for(const o of Array.from(e.head.querySelectorAll('style, link[rel="stylesheet"]'))){const e=o.cloneNode(!0);e.setAttribute(ae,""),n&&e.setAttribute("nonce",n),t.head.appendChild(e)}}function de({children:t,id:n="preview-frame",title:o,className:r,style:s,mirrorStyles:d=!0,onDocument:l,height:c="auto",nonce:u}){const p=a("canvas",e),f=E(null),[h,m]=D(null);return ie(()=>{const e=f.current,t=h?.ownerDocument.defaultView;if("auto"!==c||!e||!h||!t)return;const n=()=>{e.style.height=`${Math.ceil(h.getBoundingClientRect().height)}px`};n();const o=t.ResizeObserver,r=o?new o(n):null;return r?.observe(h),()=>r?.disconnect()},[h,c]),ie(()=>{let e=f.current?.contentDocument;if(!e)return;"CSS1Compat"!==e.compatMode&&(e.open(),e.write("<!DOCTYPE html><html><head></head><body></body></html>"),e.close(),e=f.current?.contentDocument??e),e.body||e.documentElement.appendChild(e.createElement("body")),e.body.style.margin="0";const t=e.createElement("div");t.setAttribute("data-puck-entry",""),t.id="frame-root","fill"===c&&t.classList.add("es-frame-fill"),e.body.appendChild(t),i(e,u),m(t),l?.(e);let n=null;const o=f.current?.ownerDocument;if(d&&o){se(o,e,u);const t=o.defaultView;t&&"MutationObserver"in t&&(n=new t.MutationObserver(()=>se(o,e,u)),n.observe(o.head,{childList:!0,subtree:!0,characterData:!0}))}return()=>{n?.disconnect(),t.remove(),m(null),l?.(null)}},[]),/* @__PURE__ */N("iframe",{ref:f,id:n,title:o??p.frame,className:["es-canvas-frame","fill"===c?"is-fill":"",r??""].filter(Boolean).join(" "),style:s,children:h?j(t,h):null})}var le=C(null),ce=C(re),ue=[];function pe({parentId:e,slot:t,className:n,style:o,minEmptyHeight:r=128}){const a=_(),i=ee(n=>l(n.appState.data,a.config,{parentId:e,slot:t})??ue),s=ee(t=>"node"===t.selection?.kind&&t.selection.id===e&&e!==d),c=ee(n=>"slot"===n.selection?.kind&&n.selection.parentId===e&&n.selection.slot===t),u=x(le),p=["es-zone"];return i.length&&p.push("has-children"),e===d&&p.push("is-root"),(s||c)&&p.push("is-area-selected"),null!==u&&u===e&&e!==d&&p.push("is-hovering-area"),n&&p.push(n),/* @__PURE__ */N("div",{className:p.join(" "),[oe]:`${e}:${t}`,style:{...o,"--min-empty-height":`${r}px`},children:i.map(e=>/* @__PURE__ */N(me,{node:e},e.props.id))})}function fe(e,t,n,o){const r="root"===t?e.root:e.components[t],a={...o};for(const e of w(S(r)))a[e]=function(t={}){/* @__PURE__ */
|
|
2
|
+
return N(pe,{parentId:n,slot:e,...t})};return a}function he(e){return function({zone:t,...n}){/* @__PURE__ */
|
|
3
|
+
return N(pe,{parentId:e,slot:t,...n})}}function me({node:e}){const t=_().config,n=t.components[e.type],o=e.props.id,r=function(e){const t=E(null);return z(()=>n=>{const o=t.current;o&&o!==n&&(o.removeAttribute(ne),o.removeAttribute("data-puck-dnd")),t.current=n,n&&(n.setAttribute(ne,e),n.setAttribute("data-puck-dnd",e),n.style.position="relative")},[e])}(o),a=x(ce);if(!n?.render)return null;const i=n.render,s=fe(t,e.type,o,{...I(n),...e.props}),d={renderDropZone:he(o),isEditing:!0,dragRef:n.inline?r:null,metadata:{...a,...n.metadata}};return n.inline?/* @__PURE__ */N(i,{...s,puck:d,editMode:!0}):/* @__PURE__ */N("div",{[ne]:o,"data-puck-dnd":o,style:{position:"relative"},children:/* @__PURE__ */N(i,{...s,puck:d,editMode:!0})})}function ve({metadata:e}){const t=ee(e=>e.config),n=ee(e=>e.appState.data.root).props??{},o=t.root?.render,r=/* @__PURE__ */N(pe,{parentId:d,slot:b}),a=o?/* @__PURE__ */N(o,{id:"puck-root",...fe(t,"root",d,n),puck:{renderDropZone:he(d),isEditing:!0,dragRef:null,metadata:e??{}},editMode:!0,children:r}):r;/* @__PURE__ */
|
|
4
|
+
return N(ce.Provider,{value:e??re,children:a})}function ye({id:e,kind:t,overlay:n}){const o=E(null),[r,a]=D(null);ie(()=>{const t=o.current?.ownerDocument,n=t?.defaultView;if(!t||!n||!e)return void a(null);let r=0;const i=()=>{r=0;const i=function(e,t){if(!e||!t)return null;const n=e.getBoundingClientRect(),o=t.getBoundingClientRect();return{top:n.top-o.top,left:n.left-o.left,width:n.width,height:n.height}}(t.querySelector(`[${ne}="${n.CSS?.escape?n.CSS.escape(e):e}"]`),o.current?.parentElement??null);a(e=>{return(t=e)===(n=i)||t&&n&&t.top===n.top&&t.left===n.left&&t.width===n.width&&t.height===n.height?e:i;var t,n})},s=()=>{r||(r=(n.requestAnimationFrame??(e=>n.setTimeout(e,16)))(i))};i();const d="MutationObserver"in n?new n.MutationObserver(s):null;d?.observe(t.body,{childList:!0,subtree:!0,attributes:!0,characterData:!0});const l="ResizeObserver"in n?new n.ResizeObserver(s):null;return l?.observe(t.documentElement),n.addEventListener("resize",s),()=>{d?.disconnect(),l?.disconnect(),n.removeEventListener("resize",s),r&&(n.cancelAnimationFrame??n.clearTimeout)(r)}},[e]);const i=/* @__PURE__ */N("div",{ref:o,"aria-hidden":"true",className:`es-canvas-outline is-${t}`,style:r?{position:"absolute",top:r.top,left:r.left,width:r.width,height:r.height}:{display:"none"}});return n&&e?/* @__PURE__ */N(n,{componentId:e,kind:t,children:i}):i}function ge({frame:e=!0,className:t,style:n,metadata:o,mirrorStyles:r,onDocument:a,height:i,title:s,nonce:d,hotkeys:l,frameWrapper:c,overlay:u,children:p}){const f=_(),h=x(G),m=l??h,[v,y]=D(void 0),g=ee(e=>"node"===e.selection?.kind?e.selection.id:null),[k,b]=D(null),w=/* @__PURE__ */$("div",{className:"es-canvas-content",style:{position:"relative"},onClick:e=>{const t=e.target;t.closest?.("a[href]")&&e.preventDefault();const n=t.closest?.(`[${ne}]`);n?f.select(n.getAttribute(ne)):t.hasAttribute?.(oe)||f.select(null)},onMouseOver:e=>{const t=e.target.closest?.(`[${ne}]`),n=t?.getAttribute(ne)??null;n!==k&&b(n)},onMouseLeave:()=>b(null),children:[
|
|
5
|
+
/* @__PURE__ */N(le.Provider,{value:k,children:/* @__PURE__ */N(ve,{metadata:o})}),
|
|
6
|
+
/* @__PURE__ */$("div",{className:"es-canvas-outlines",style:{position:"absolute",top:0,left:0,pointerEvents:"none"},children:[
|
|
7
|
+
/* @__PURE__ */N(ye,{id:k&&k!==g?k:null,kind:"hover",overlay:u}),
|
|
8
|
+
/* @__PURE__ */N(ye,{id:g,kind:"selected",overlay:u})]}),p]}),S=c?/* @__PURE__ */N(c,{document:v,children:w}):w;O(()=>{if(v&&m)return X(v,f)},[v,m,f]);/* @__PURE__ */
|
|
9
|
+
return N("div",{className:"es-canvas"+(t?` ${t}`:""),style:n,"data-puck-preview":"",children:e?/* @__PURE__ */N(de,{mirrorStyles:r,onDocument:e=>{y(e??void 0),a?.(e)},height:i,title:s,nonce:d,children:S}):/* @__PURE__ */N("div",{id:"preview-frame","data-puck-entry":"",children:S})})}function ke(e={}){const t=_(),n=ee(e=>e.appState.data);return r({...e,data:n,config:t.config,commit:(e,{select:n})=>t.run({data:e,select:n})})}function be(){const e=_(),n=ee(e=>e.config),o=e.resolveCache,r=ee(e=>e.selectedItem),a=ee(e=>e.appState.data.root),i=r?r.props.id:"root",d=a.props??{},l=z(()=>r||{type:"root",props:d},[r,d]),c=r?n.components[r.type]:n.root,u=e.getState(),p=r?s(u.appState.data,n,i):null,f=p&&"root"!==p.place.parentId?p.place.parentId:null,h=f?u.getItemById(f)??null:null,{fields:m}=t({id:i,node:l,block:c,parent:h,appState:u.appState}),v=ee(e=>!1===e.getPermissions(r?{item:r}:{root:!0}).edit),y=M((t,r)=>{(async()=>{const a=e.getState();if("root"!==i){const s=a.getItemById(i),d=a.getSelectorForId(i);if(!s||!d)return;const l={...s,props:{...s.props,[t]:r}},{node:c}=await k(l,n,{cache:o,trigger:"replace"}),u=e.getState().getSelectorForId(i);if(!u)return;return void e.dispatch({type:"replace",destinationZone:u.zone??"root:default-zone",destinationIndex:u.index,data:c})}const s=a.appState.data.root.props??{},{node:d}=await k({type:"root",props:{...s,[t]:r}},n,{cache:o,trigger:"replace"});e.dispatch({type:"replaceRoot",root:{props:d.props,readOnly:d.readOnly},recordHistory:!0})})()},[e,n,o,i]);return{id:i,node:l,fields:m,values:l.props,readOnly:v,onChange:y}}export{de as CanvasFrame,q as DEFAULT_UI,ge as EaselCanvas,J as EaselProvider,ve as EditDocument,X as bindUndoKeys,W as createEasel,te as createUseEasel,R as recordsByDefault,H as reduce,L as uiView,ee as useEasel,_ as useEaselApi,ke as useEaselNodeOps,be as useSelectedFields,K as validSelection};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{withoutDeviceGate as t,deviceMetaOf as o}from"./chunk-PWZOS45R.js";import{BUCKET_KEY as e}from"./chunk-R2HLPNQF.js";import{panelFieldsOf as n}from"./chunk-ZE7I3PLX.js";import{ANCHOR_FIELD_KEYS as r,foldMetaOf as s,MEDIA_FIELD_MARKER as i,TEXT_FIELD_MARKER as c,LINK_FIELD_MARKER as p}from"./chunk-DUVRZ456.js";import{STYLE_KIND as u,fieldKind as f,copyStyle as a,heldStyle as l,planPaste as m,pasteMessage as h}from"./chunk-57DJOKXT.js";var y=/* @__PURE__ */new Set([e.Style,e.Layout]),j=new Set(Object.values(e)),b=new Set(r),S=/* @__PURE__ */new Set(["focal","imageFocal"]),k=[i,c,p];function w(t){return`site:${t??""}`}function g(o){if(!o||"object"!=typeof o)return null;const e=o,n=t(o)??o,r=e[u]??n[u];if("string"==typeof r)return r;const s=e.options??n.options;if(Array.isArray(s)){return`choice:${s.map(t=>String(t?.value)).sort().join("|")}`}return f(n)}function L(o){const e=o,n=t(o);return k.some(t=>t in e||n&&t in n)}function O(t,e){const r=n(t,e)??{},i=[];let c=!1;for(const[t,e]of Object.entries(r))j.has(t)?c=y.has(t):c&&e&&"object"==typeof e&&!t.startsWith("_")&&(s(e)||b.has(t)||S.has(t)||L(e)||"slot"!==e.type&&i.push({path:[t],kind:g(e),counted:"mobile"!==o(e)?.tier}));return i}function v(t,o,e,n){a({scope:o,type:e.type,label:n,rows:O(t,e),props:e.props})}function P(t,o,e,n){const r=l(o);if(!r)return null;const s=m(r,{type:e.type,rows:O(t,e),props:e.props});return{...s,message:h(s,r.sourceLabel,n)}}export{v as copyNodeStyle,O as nodeStyleRows,P as planNodePaste,g as shopFieldKind,w as siteStyleScope};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{noControlField as e}from"./chunk-7F52SZOI.js";import{usePreviewDevice as n}from"./chunk-BSPCSC45.js";import{jsx as t}from"react/jsx-runtime";function r(e){return"mobile"===e?"mobile":"desktop"}var i={desktop:null,tablet:"Tablet uses the desktop settings.",mobile:"Showing the phone settings for this section."},o="data-sf-device-hidden";function s(){/* @__PURE__ */
|
|
2
|
+
return t("span",{hidden:!0,[o]:""})}function u({tier:e,render:i,...o}){return r(n())===e?/* @__PURE__ */t(i,{...o}):/* @__PURE__ */t(s,{})}var c="__device";function d(e){const n=e?.[c];return n??null}function f(e){return d(e)?.inner??e}function a(e,n){const r=n.render;return{...n,[c]:{tier:e,inner:n},render:n=>/* @__PURE__ */t(u,{tier:e,render:r,...n})}}function l(){const e=i[n()];return e?/* @__PURE__ */t("div",{className:"sf-device-scope",children:e}):/* @__PURE__ */t(s,{})}function m(){return e({type:"custom",render:()=>/* @__PURE__ */t(l,{})},"always")}export{c as DEVICE_FIELD_MARKER,o as DEVICE_HIDDEN_ATTR,i as DEVICE_NOTE,a as deviceField,d as deviceMetaOf,m as deviceNote,r as shownTier,f as withoutDeviceGate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{applyEaselChromeTheme as e}from"./chunk-3WSPDAK2.js";import{useEaselHost as t}from"./chunk-R5ZVNJLJ.js";import{useEaselSession as n}from"./chunk-6TZTKAB5.js";import{currentEaselSession as r,setSessionBridgedSite as o}from"./chunk-AJBJ74ME.js";import{useState as s,useRef as a,useEffect as c}from"react";var u={canCreatePlatformTemplate:!1};function i(t,n={}){const s=n.session??r();s.auth.token=t.token,s.auth.brandId=t.brandId??null,o(s,t.siteId),(n.stampChromeTheme??!0)&&e(t.theme)}function m(e){const[r,o]=s(null),m=a(null),[l,f]=s(u),d=a(e?.onAuth),k=a(e?.onMessage);c(()=>{d.current=e?.onAuth,k.current=e?.onMessage});const p=t(),h=n();return c(()=>{const e=p.subscribe(e=>{const t=e;if("storefront-editor:auth"===t.type&&"string"==typeof t.token&&t.token){const e=!!m.current;m.current=t.token,o(t.token),i({...t,token:t.token},{stampChromeTheme:p.ownsDocument,session:h}),f((n=t.can)&&"object"==typeof n?{canCreatePlatformTemplate:!0===n.canCreatePlatformTemplate}:u),d.current?.(e)}else k.current?.(e);var n});if(p.send("storefront-editor:ready"),!h.usesBridgedToken)return e;const t=window.setInterval(()=>{m.current?window.clearInterval(t):p.send("storefront-editor:ready")},500);return()=>{e(),window.clearInterval(t)}},[p,h]),{token:r,tokenRef:m,capabilities:l}}export{u as NO_BRIDGED_CAPABILITIES,i as applyAuthGrant,m as useAdminBridge};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t={Content:"_sContent",Style:"_sStyle",Layout:"_sLayout",Animation:"_sAnimation"};export{t as BUCKET_KEY};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=0;function r(r){n+=1;try{return r()}finally{n-=1}}function t(){return n>0}export{t as isPreviewClick,r as runAsPreviewClick};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createContext as e,useContext as r}from"react";import{jsx as n}from"react/jsx-runtime";var o={connected:!1,ownsDocument:!0,send:()=>{},subscribe:()=>()=>{},address:{search:()=>"",show:()=>{},load:()=>{},reload:()=>{}}},s=e(o);function t({host:e,children:r}){/* @__PURE__ */
|
|
2
|
+
return n(s.Provider,{value:e,children:r})}function d(){return r(s)}function c(e){const r=/* @__PURE__ */new Set;return{host:{connected:!0,ownsDocument:!1,send:(r,n)=>{e.onMessage({type:r,...n})},subscribe:e=>(r.add(e),()=>{r.delete(e)}),address:e.address},deliver:e=>{for(const n of[...r])n(e)}}}export{o as DETACHED_EASEL_HOST,s as EaselHostContext,t as EaselHostProvider,c as createEaselHost,d as useEaselHost};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={canPublish:!1,hasSiteSettings:!1,hasSiteTheme:!1,placeholderFrames:!1,mediaEditing:!1,pageCreationInAdminForm:!1,canDeletePagesInline:!1,hasEditLock:!1,hasEditGuard:!1,hasPinnedChrome:!1,explainsSiteSettings:!1,hasSiteRecord:!1,canEditSiteRecord:!1,hasPreviewLink:!1,hasCatalog:!1,hasForms:!1,hasBlog:!1,offersCommerce:!1,offersService:!1};var s={homeSlug:null,entryMayBounce:()=>!1,entryBounce:()=>null,onSwitch:()=>{},tellsHost:()=>!0,adapterFor:(s,r,o)=>function(s){const r=e=>!s?.sets||s.sets.includes(e);return{capabilities:{...e,offersCommerce:r("commerce"),offersService:r("service")},resolve:()=>Promise.resolve({id:"document",layout:{},version:null}),saveLayout:()=>Promise.resolve({version:null}),listPages:()=>Promise.resolve([])}}(o),migrateRenamedProps:e=>e};export{s as NO_DOCUMENT_ADDRESSING};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=/\b(transform|translate|rotate|scale|perspective|filter|backdrop-filter|contain)\b/;function t(t){const n=e=>t.getPropertyValue(e).trim(),r=(e,t)=>{const r=n(e);return""!==r&&!t.includes(r)};return!!r("transform",["none"])||(!!(r("translate",["none"])||r("rotate",["none"])||r("scale",["none"]))||(!!r("perspective",["none"])||(!!r("filter",["none"])||(!(!r("backdrop-filter",["none"])&&!r("-webkit-backdrop-filter",["none"]))||(!!/\b(layout|paint|strict|content)\b/.test(n("contain"))||(!!r("container-type",["normal"])||(!!r("content-visibility",["visible"])||e.test(n("will-change")))))))))}function n(e){const n=e?.ownerDocument,r=n?.defaultView;if(!(e&&n&&r&&e.isConnected))return null;for(let o=e;o&&o!==n.body&&o!==n.documentElement;o=o.parentElement)if(t(r.getComputedStyle(o)))return null;return e}export{n as menuPortalTarget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_PANEL_W as a,clampPanelWidth as r}from"./chunk-6DJHRLCU.js";var s="sf-editor-panel-widths",t={...a},e=a=>r(a);export{t as DEFAULT_PANEL_W,s as PANEL_WIDTHS_KEY,e as clampPanelWidth};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{settlePanelPick as e}from"./chunk-ZZ7VLIHQ.js";import{useScreenOwnerName as n}from"./chunk-5464H65G.js";import{MediaPanelHead as i,mediaPickKind as c}from"./chunk-6DJHRLCU.js";import{jsxs as o,Fragment as r,jsx as t}from"react/jsx-runtime";function l({panel:l,pick:d,onHide:m}){const p=n();/* @__PURE__ */
|
|
2
|
+
return o(r,{children:[
|
|
3
|
+
/* @__PURE__ */t(i,{context:p,pick:d?{kind:c(d.accept),field:d.title||void 0}:null,onCancel:()=>d&&e(d.requestId,null),onHide:m}),
|
|
4
|
+
/* @__PURE__ */t("div",{className:"sf-media-panel",children:/* @__PURE__ */t(l,{pick:d,onPick:n=>d&&e(d.requestId,n)})})]})}export{l as MediaSidePanel};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{DEFAULT_DRAG_WORDS as e}from"./chunk-O2NLQBFX.js";import{dropEffectFor as t,scrollBoxOf as n,frameScrollBox as l,startAutoScroll as r,isNoOpDrop as a}from"./chunk-67GNT6PF.js";import{useCanvasLayout as o,useCanvasEvent as s}from"./chunk-PAELDYYS.js";import{framePointToHost as i,elementScale as c,frameRectToLayer as d,clientPointToLayer as u}from"./chunk-ZNCEOSXO.js";import{CloseIcon as h,SearchIcon as f}from"./chunk-L5KW4HG5.js";import{parseZoneKey as p}from"./chunk-KRXQM65X.js";import{useRef as m,useEffect as b,useState as g,useCallback as y,useMemo as v,useSyncExternalStore as x,useId as k,useLayoutEffect as w}from"react";import{jsxs as N,jsx as A}from"react/jsx-runtime";var D=(e,t,n)=>t>=e.left&&t<=e.left+e.width&&n>=e.top&&n<=e.top+e.height,z=e=>e.width*e.height;function T(e,t,n){let l=null;for(const r of e)D(r.box,t,n)&&(!l||z(r.box)<=z(l.box))&&(l=r);return l}function C(e,t,n){const l="x"===e.axis?t:n;let r=0;for(const t of e.children){l>("x"===e.axis?t.left+t.width/2:t.top+t.height/2)&&(r+=1)}return r}function S(e,t){const n=e.children;if("x"===e.axis){const l=n[t-1],r=n[t],a=l&&r?(l.left+l.width+r.left)/2:l?l.left+l.width:r?r.left:e.box.left,o=r??l??e.box;return{left:a-1,top:o.top,width:2,height:o.height}}const l=n[t-1],r=n[t],a=l&&r?(l.top+l.height+r.top)/2:l?l.top+l.height:r?r.top:e.box.top;return{left:e.box.left,top:a-1,width:e.box.width,height:2}}function E(e,t,n,l,r=()=>!1,a=()=>!0){const o=e.filter(e=>D(e.box,t,n)).sort((e,t)=>z(e.box)-z(t.box));for(const e of o){const o=C(e,t,n),s={...e.list,index:o};if(r(s))return null;if(l(s))return{zone:e,to:s,line:S(e,o)};if(!a(s))return null}return null}function L(e,t=e.key){const n=[];for(let l=1;l<e.children.length;l++){const r=e.children[l-1],a=e.children[l],o=r.top+r.height;n.push({key:`${t}:${l}`,place:{...e.list,index:l},box:{left:e.box.left,top:o,width:e.box.width,height:Math.max(a.top-o,0)}})}return n}var j={nodes:[],zones:[]},$="data-puck-dropzone",B="data-puck-component";function K(e,t){if(e.length>=2){const[t,n]=e;return Math.abs(n.top-t.top)<Math.min(t.height,n.height)/2&&n.left>t.left?"x":"y"}const n=t.ownerDocument.defaultView?.getComputedStyle(t);return n&&n.display.includes("flex")&&n.flexDirection.startsWith("row")?"x":"y"}function M(e,t){const{frame:n,document:l}=e,r=e=>d(n,function(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width,height:t.height}}(e),t),a=[],o=[];for(const e of l.querySelectorAll(`[${$}]`)){const t=e.getAttribute($)??"";let n;try{n=p(t)}catch{continue}const l=[...e.querySelectorAll(`[${B}]`)].filter(t=>t.parentElement?.closest(`[${$}]`)===e),s=l.map(r);o.push({key:t,list:n,box:r(e),axis:K(s,e),children:s}),l.forEach((e,t)=>{const l=e.getAttribute(B);l&&a.push({id:l,place:{...n,index:t},box:s[t]})})}return{nodes:a,zones:o}}var O="data-es-empty-cell",X="data-puck-dropzone",q=140;var P=e=>({left:e.left,top:e.top,width:e.width,height:e.height});function Y(d){const{canvas:h,session:f,readOnly:p,words:k=e.canvas}=d,D=m(d);b(()=>{D.current=d});const z=m(null),C=o(h),[S,L]=g(0),$=y(()=>L(e=>e+1),[]),[B,K]=g(j);b(()=>{const e=z.current;h&&e&&K((D.current.measure??M)(h,e))},[h,C,d.revision,S]);const q=d.model,Y=v(()=>q(B),[q,B]),F=x(f.subscribe,f.shown,f.shown),[R,Z]=g(null),[G,Q]=g(null),W=m(null),H=()=>{W.current&&clearTimeout(W.current),W.current=null},I=()=>{H(),W.current=setTimeout(()=>{f.get()||Z(null)},140)};b(()=>H,[]);const V=m(null);s(h,"mousemove",e=>{const t=z.current;if(!h||!t)return;const n=i(h.frame,e.clientX,e.clientY,t),l=c(t),r={x:n.x/l,y:n.y/l};if(V.current=r,D.current.readOnly||f.get())return;H();const a=T(Y.sources,r.x,r.y);Z(e=>e?.key===a?.key&&e?.box===a?.box?e:a)}),s(h,"mouseout",e=>{e.relatedTarget||(V.current=null,I())}),s(h,"mouseover",e=>{e.relatedTarget||$()});const J=m(null),U=y(()=>{J.current?.(),J.current=null,Q(null)},[]);b(()=>f.subscribe(()=>{f.get()?$():U()}),[f,U,$]),b(()=>U,[U]),("undefined"==typeof document?b:w)(()=>{if(f.get())return;const e=V.current;Z(t=>p?null:e?T(Y.sources,e.x,e.y):t?Y.sources.find(e=>e.key===t.key)??null:null)},[Y,F,f,p]);const _=e=>{const t=f.get(),n=z.current;if(!t||!n)return null;const l=u(n,e.clientX,e.clientY);V.current=l;const r=E(Y.zones,l.x,l.y,e=>D.current.canDrop(t.item,e),e=>!!t.from&&a(t.from,e),e=>D.current.fallThrough?.(t.item,e,t.from)??!0);return r?{h:t,t:r}:null},ee={onDragEnter:e=>{if(J.current)return;const t=n(e.currentTarget.parentElement?.parentElement??null),a=h?l(h.document):null,o=[];t&&o.push(r(t)),a&&h&&o.push(r(a,h.frame)),J.current=o.length?()=>o.forEach(e=>e()):null},onDragOver:e=>{const n=_(e);if(!n)return void Q(null);e.preventDefault(),e.dataTransfer.dropEffect=t(e.dataTransfer.effectAllowed);const l={zoneKey:n.t.zone.key,line:n.t.line,axis:n.t.zone.axis};Q(e=>e&&e.zoneKey===l.zoneKey&&e.line.left===l.line.left&&e.line.top===l.line.top?e:l)},onDragLeave:e=>{const t=e.relatedTarget;t&&e.currentTarget.contains(t)||(V.current=null,Q(null))},onDrop:e=>{const t=_(e);t&&(e.preventDefault(),f.end(),U(),D.current.onDrop(t.h.item,t.t.to))}},te={draggable:!p&&!!R,onMouseEnter:H,onMouseLeave:()=>!f.get()&&I(),onDragStart:e=>{if(R&&!p){f.start({key:R.key,item:R.item,from:R.from}),e.dataTransfer.effectAllowed="move";try{e.dataTransfer.setData("text/plain",R.key)}catch{}}else e.preventDefault()},onDragEnd:()=>{f.end(),U()},onClick:()=>{R&&!p&&D.current.onPick?.(R.item)}},{seams:ne=[]}=Y,le=Y.zones.filter(e=>0===e.children.length),re=d.onZoneAdd&&!p?le:[],ae=re.map(e=>e.key).join("\n");return b(()=>{const e=h?.document;if(!e)return;const t=new Set(ae?ae.split("\n"):[]);for(const n of e.querySelectorAll(`[${X}]`))n.toggleAttribute(O,t.has(n.getAttribute(X)??""));return()=>{for(const t of e.querySelectorAll(`[${O}]`))t.removeAttribute(O)}},[h,ae,B,C,S]),/* @__PURE__ */N("div",{ref:z,className:"es-canvas-layer",children:[F||!d.onSeamAdd||p?null:ne.map(e=>/* @__PURE__ */A("div",{className:"es-canvas-seam",style:{left:e.box.left,top:e.box.top+e.box.height/2-8,width:e.box.width,height:16},children:/* @__PURE__ */A("button",{type:"button",className:"es-canvas-seam-add",onClick:()=>d.onSeamAdd?.(e.place),children:k.addButton({label:d.seamLabel??k.addSection})})},e.key)),re.length?re.map(e=>/* @__PURE__ */A("button",{type:"button",className:G?.zoneKey===e.key?"es-canvas-empty is-over":"es-canvas-empty",style:P(e.box),onClick:()=>d.onZoneAdd?.({...e.list,index:0}),children:/* @__PURE__ */A("span",{className:"es-canvas-empty-add",children:k.addButton({label:d.zoneAddLabel??k.addBlock})})},e.key)):null,F?/* @__PURE__ */A("div",{className:"es-canvas-catch",...ee}):null,G&&!le.some(e=>e.key===G.zoneKey)?/* @__PURE__ */A("div",{className:`es-canvas-line is-${G.axis}`,style:P(G.line)}):null,
|
|
2
|
+
/* @__PURE__ */N("div",{className:["es-canvas-handle",R&&!p?"is-shown":"",F?"is-dragging":""].filter(Boolean).join(" "),style:R?{left:R.box.left+2,top:Math.max(R.box.top-11,0)}:void 0,title:R?R.title??k.handle({label:R.label}):void 0,...te,children:[
|
|
3
|
+
/* @__PURE__ */A("span",{className:"es-canvas-grip","aria-hidden":"true",children:"⋮⋮"}),R?.label]})]})}var F=e=>e.tiles.length>0&&e.tiles.every(e=>null!=e.cover);function R({groups:t,session:n,itemFor:l,onInsert:r,at:a,hint:o,searchLabel:s,readOnly:i,words:c=e.add}){const d=o??c.hint,u=s??c.search,[p,m]=g(""),b=k(),y=p.trim().toLowerCase(),v=t.map(e=>({...e,tiles:y?e.tiles.filter(e=>((e,t)=>e.label.toLowerCase().includes(t)||(e.keywords??[]).some(e=>e.toLowerCase().includes(t)))(e,y)):e.tiles})).filter(e=>e.tiles.length>0),x=(e,t)=>r=>{if(t)r.preventDefault();else{n.start({key:`new:${e}`,item:l(e)}),r.dataTransfer.effectAllowed="copy";try{r.dataTransfer.setData("text/plain",e)}catch{}}};/* @__PURE__ */
|
|
4
|
+
return N("div",{className:"es-add",children:[a?/* @__PURE__ */N("div",{className:"es-add-at",role:"status",children:[
|
|
5
|
+
/* @__PURE__ */A("span",{children:a.label}),
|
|
6
|
+
/* @__PURE__ */A("button",{type:"button",className:"es-add-at-clear","aria-label":c.stop,title:c.stop,onClick:a.onClear,children:/* @__PURE__ */A(h,{size:12,"aria-hidden":"true"})})]}):null,
|
|
7
|
+
/* @__PURE__ */A("p",{className:"es-add-hint",children:d}),
|
|
8
|
+
/* @__PURE__ */N("div",{className:"es-add-search",children:[
|
|
9
|
+
/* @__PURE__ */A(f,{size:16,"aria-hidden":"true"}),
|
|
10
|
+
/* @__PURE__ */A("input",{id:b,type:"search","aria-label":u,placeholder:c.searchPlaceholder({label:u}),value:p,onChange:e=>m(e.target.value)}),p?/* @__PURE__ */A("button",{type:"button",className:"es-add-search-clear","aria-label":c.clearSearch,onClick:()=>m(""),children:/* @__PURE__ */A(h,{size:12,"aria-hidden":"true"})}):null]}),0===v.length?/* @__PURE__ */N("div",{className:"es-add-empty",role:"status",children:[
|
|
11
|
+
/* @__PURE__ */A("div",{className:"es-add-empty-title",children:c.nothing({query:p.trim()})}),
|
|
12
|
+
/* @__PURE__ */A("div",{className:"es-add-empty-sub",children:c.tryAnother})]}):v.map(e=>/* @__PURE__ */N("section",{className:"es-add-group","aria-label":e.title,children:[
|
|
13
|
+
/* @__PURE__ */N("div",{className:"es-add-group-head",children:[
|
|
14
|
+
/* @__PURE__ */A("span",{className:"es-add-group-title",children:e.title}),
|
|
15
|
+
/* @__PURE__ */A("span",{className:"es-add-group-count",children:e.tiles.length})]}),
|
|
16
|
+
/* @__PURE__ */A("div",{className:F(e)?"es-add-grid is-cards":"es-add-grid",children:e.tiles.map(e=>{const t=Boolean(i||e.disabled),l=i?void 0:e.disabled?e.disabledReason:e.title??c.tile({label:e.label});/* @__PURE__ */
|
|
17
|
+
return N("button",{type:"button",className:null!=e.cover?"es-add-tile has-cover":"es-add-tile",draggable:!t,"aria-disabled":t||void 0,"aria-label":c.tile({label:e.label}),title:l,onDragStart:x(e.type,t),onDragEnd:()=>n.end(),onClick:()=>!t&&r(e.type),children:[null!=e.cover?/* @__PURE__ */A("span",{className:"es-add-tile-cover","aria-hidden":"true",children:e.cover}):e.icon?/* @__PURE__ */A("span",{className:"es-add-tile-glyph","aria-hidden":"true",children:e.icon}):null,
|
|
18
|
+
/* @__PURE__ */A("span",{className:"es-add-tile-label",children:e.label})]},e.type)})})]},e.title))]})}export{R as AddPanel,Y as CanvasDragLayer,j as EMPTY_MEASURE,q as HANDLE_GRACE_MS,E as canvasTarget,D as contains,C as gapInZone,S as gapLine,M as measureCanvas,T as pickSource,L as seamsBetween};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_TEXT_STYLES_WORDS as o}from"./chunk-M6F6LS3H.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as r}from"./chunk-6WY6ZXJG.js";import{DEFAULT_CANVAS_WORDS as t}from"./chunk-AELNNAFM.js";import{DEFAULT_TREE_WORDS as m}from"./chunk-3EDSDPIP.js";import{DEFAULT_PANEL_WORDS as n}from"./chunk-QTLAVDJE.js";import{DEFAULT_NODE_MENU_WORDS as c}from"./chunk-WK3AFPXY.js";import{DEFAULT_SAVE_WORDS as s}from"./chunk-H6DDIBQ4.js";import{DEFAULT_COPY_WORDS as f}from"./chunk-UH7IGZKF.js";import{DEFAULT_PICK_WORDS as p}from"./chunk-ZAOM6PFH.js";import{DEFAULT_FIELDS_WORDS as i}from"./chunk-FPOKPNO4.js";import{DEFAULT_CHROME_WORDS as u,DEFAULT_NOTICE_WORDS as e}from"./chunk-ZJEBF4NB.js";import{DEFAULT_LOCK_WORDS as k}from"./chunk-RE4LP46F.js";import{DEFAULT_RAIL_WORDS as j}from"./chunk-2OAZYSWJ.js";import{DEFAULT_DRAG_WORDS as h}from"./chunk-O2NLQBFX.js";var l={notice:e,lock:k,save:s,chrome:u,rail:j,tree:m,panel:n,fields:i,pick:p,drag:h,menu:c,styleClipboard:r,copy:f,canvas:t,textStyles:o},F=o=>"object"==typeof o&&null!==o;function a(o,r){const t={};for(const m of Object.keys(o)){const n=o[m],c=r[m];null==c?t[m]=n:F(n)?t[m]=F(c)?a(n,c):n:t[m]=typeof c==typeof n?c:n}return t}function y(o,r){return r?a(o,r):o}export{l as DEFAULT_EASEL_STRINGS,y as mergeEaselStrings};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useScreenDocument as e}from"./chunk-FT35FX7D.js";import{EditNotice as n}from"./chunk-6DJHRLCU.js";import{jsx as o}from"react/jsx-runtime";function r(){const{capabilities:r,access:a,takeOverEditing:i,viewReadOnly:t,saveConflict:c,reloadFromServer:s}=e();return r.hasEditGuard?/* @__PURE__ */o(n,{access:a,conflict:c,noun:"page",onTakeOver:i,onViewReadOnly:t,onReload:s}):null}export{r as PageEditGuardNotices};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useEaselHost as t}from"./chunk-R5ZVNJLJ.js";import{ScreenPartsProvider as r}from"./chunk-5464H65G.js";import{createEasel as e,EaselProvider as n}from"./chunk-P67FP7PG.js";import{useState as o,useEffect as s}from"react";import{jsx as i}from"react/jsx-runtime";function a({config:a,data:c,onChange:m,permissions:p,parts:f,children:u}){const[h]=o(()=>e({config:a,data:c,permissions:p}));s(()=>{h.setConfig(a)},[h,a]),s(()=>{if(!m)return;let t=h.getState().appState.data;return h.subscribe(()=>{const r=h.getState().appState.data;r!==t&&(t=r,m(r))})},[h,m]),s(()=>{p&&h.setPermissions(p)},[h,p]);const d=t();/* @__PURE__ */
|
|
2
|
+
return i(n,{easel:h,hotkeys:d.ownsDocument,children:/* @__PURE__ */i(r,{parts:f,children:u})})}export{a as ScreenStoreProvider};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{newNodeId as e,ROOT_ZONE as t}from"./chunk-FUDHI5I4.js";import{useEasel as n}from"./chunk-P67FP7PG.js";import{useMemo as o}from"react";function r(r={}){const{dispatch:i}=n(e=>e),p=!0===r.readOnly;return o(()=>{const n=(t,n,o)=>{const r=e(n);return p||i({type:"insert",componentType:n,destinationZone:t,destinationIndex:o,id:r}),r},o=(e,t,n)=>{p||i({type:"replace",destinationZone:e,destinationIndex:t,data:n})};return{insertComponent:n,insertSection:(e,o)=>n(t,e,o),replaceComponent:o,seedChild:(e,t,r,i)=>{const p=n(e,r,t);o(e,t,{type:r,props:{id:p,...i}})},insertNode:(e,t,r)=>{const i=n(e,r.type,t);return o(e,t,{type:r.type,props:{...r.props,id:i}}),i},removeComponent:(e,t)=>{p||i({type:"remove",index:t,zone:e})},reorderComponent:(e,t,n)=>{p||i({type:"reorder",sourceIndex:t,destinationIndex:n,destinationZone:e})},duplicateComponent:(e,t)=>{p||i({type:"duplicate",sourceIndex:t,sourceZone:e})},select:e=>i({type:"setUi",ui:{itemSelector:e}}),setDocument:e=>{p||i({type:"setData",data:e})},commitDocument:e=>{p||i({type:"setData",data:()=>e,recordHistory:!0})}}},[i,p])}export{r as useSectionOps};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(t,e){if(!e)return null;const n=t.components?.[e.type],l=n?.fields??null;if(!l||"function"!=typeof n?.resolveFields)return l;try{const t=n.resolveFields({type:e.type,props:e.props},{fields:l,lastFields:l,lastData:null,changed:{},parent:null,appState:{}});return t&&"function"!=typeof t.then?t:l}catch{return l}}export{t as panelFieldsOf};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createContext as e,useEffect as n,useContext as r,useSyncExternalStore as u}from"react";import{jsx as t}from"react/jsx-runtime";var l=e(null),o=null;function i({panel:e,children:r}){return o=e,n(()=>(o=e,()=>{o===e&&(o=null,v(f?.request.requestId??"",null))}),[e]),/* @__PURE__ */t(l.Provider,{value:e,children:r})}function s(){return r(l)}function c(){return null!==o}var f=null,d=/* @__PURE__ */new Set,a=()=>{for(const e of[...d])e()};function q(e){return new Promise(n=>{const r=f;f={request:e,resolve:n},a(),r?.resolve(null)})}function v(e,n){if(!f||f.request.requestId!==e)return;const{resolve:r}=f;f=null,a(),r(n)}function m(){f&&v(f.request.requestId,null)}function p(e){return d.add(e),()=>{d.delete(e)}}var I=()=>f?.request??null,h=()=>null;function w(){return u(p,I,h)}export{i as MediaPanelProvider,m as cancelPanelPick,c as hasMediaPanel,q as requestPanelPick,v as settlePanelPick,s as useMediaPanel,w as usePanelPick};
|
package/dist/drag/index.d.ts
CHANGED
|
@@ -1,49 +1,11 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { HTMLAttributes, ReactNode } from 'react';
|
|
3
3
|
import { P as Place, S as SlotAddress } from '../types-41704JE4.js';
|
|
4
|
+
import { D as DragSession } from '../session-DSQFmIvx.js';
|
|
5
|
+
export { a as DragHeld, c as createDragSession } from '../session-DSQFmIvx.js';
|
|
4
6
|
import { C as CanvasTarget$1 } from '../watch-BTYOJpQU.js';
|
|
5
7
|
import { D as DragWords } from '../words-BDignMl_.js';
|
|
6
8
|
|
|
7
|
-
/**
|
|
8
|
-
* The one drag in flight, shared by every surface of an editor — the Layers
|
|
9
|
-
* tree, the canvas and the Add list (blueprint step 3.2).
|
|
10
|
-
*
|
|
11
|
-
* Native drag-and-drop does not let a drop target read what is being dragged
|
|
12
|
-
* until the drop itself (the data is sealed during `dragover`), and a tree that
|
|
13
|
-
* only knows about drags it started cannot take a block from the Add list. So
|
|
14
|
-
* the surface that starts a drag writes it here and every surface reads it: a
|
|
15
|
-
* block picked up on the canvas can land in the tree, a tile from the Add list
|
|
16
|
-
* on either.
|
|
17
|
-
*
|
|
18
|
-
* `from` is where the thing sits now — absent for something new (an Add tile),
|
|
19
|
-
* which is also why a new thing can never be a no-op drop.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
type DragHeld<I> = {
|
|
23
|
-
/** The identity `keyOf` gave it — which row or box is the one being dragged. */
|
|
24
|
-
key: string;
|
|
25
|
-
item: I;
|
|
26
|
-
/** Where it sits now. Absent: it is new, from the Add list. */
|
|
27
|
-
from?: Place;
|
|
28
|
-
};
|
|
29
|
-
type DragSession<I> = {
|
|
30
|
-
/** The drag in flight, current at once (for event handlers). */
|
|
31
|
-
get: () => DragHeld<I> | null;
|
|
32
|
-
/** The drag as last TOLD to subscribers (for rendering — see below). */
|
|
33
|
-
shown: () => DragHeld<I> | null;
|
|
34
|
-
start: (held: DragHeld<I>) => void;
|
|
35
|
-
end: () => void;
|
|
36
|
-
subscribe: (listener: () => void) => () => void;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* `get()` is current the moment a drag starts — the drop targets read it on
|
|
40
|
-
* their first `dragover`. SUBSCRIBERS hear about a start one tick later: the
|
|
41
|
-
* browser takes the drag picture when the `dragstart` handlers return, and a
|
|
42
|
-
* render in between (a row dimming, the handle hiding) would be in the picture.
|
|
43
|
-
* An end is told at once.
|
|
44
|
-
*/
|
|
45
|
-
declare function createDragSession<I>(): DragSession<I>;
|
|
46
|
-
|
|
47
9
|
/**
|
|
48
10
|
* Where a drop lands — the engine's one hit rule, as pure functions (blueprint
|
|
49
11
|
* step 3.1).
|
|
@@ -467,4 +429,4 @@ declare function frameScrollBox(doc: Document): HTMLElement | null;
|
|
|
467
429
|
*/
|
|
468
430
|
declare function startAutoScroll(box: HTMLElement, edges?: Element): () => void;
|
|
469
431
|
|
|
470
|
-
export { AUTO_SCROLL_EDGE, AUTO_SCROLL_MAX_SPEED, type AddGroup, AddPanel, type AddPanelProps, type AddTile, type Box, CanvasDragLayer, type CanvasDragLayerProps, type CanvasDragModel, type CanvasTarget as CanvasDropTarget, type CanvasSeam, type CanvasSource, type CanvasZone,
|
|
432
|
+
export { AUTO_SCROLL_EDGE, AUTO_SCROLL_MAX_SPEED, type AddGroup, AddPanel, type AddPanelProps, type AddTile, type Box, CanvasDragLayer, type CanvasDragLayerProps, type CanvasDragModel, type CanvasTarget as CanvasDropTarget, type CanvasSeam, type CanvasSource, type CanvasZone, DragSession, DragWords, type DropRow, type DropSide, type DropSpot, EMPTY_MEASURE, HANDLE_GRACE_MS, type MeasuredCanvas, type MeasuredNode, type TreeDrag, type TreeDragOptions, type TreeDragRowOptions, type TreeDragRowProps, type TreeDragSeamOptions, type TreeDragSeamProps, autoScrollDelta, autoScrollSpeed, canvasTarget, contains, dropEffectFor, dropOnRow, frameScrollBox, gapInZone, gapLine, gapToMoveIndex, isNoOpDrop, measureCanvas, pickSource, scrollBoxOf, scrollParent, seamsBetween, startAutoScroll, stepGap, useTreeDrag };
|
package/dist/drag/index.js
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/* @__PURE__ */N("div",{className:["es-canvas-handle",G&&!f?"is-shown":"",F?"is-dragging":""].filter(Boolean).join(" "),style:G?{left:G.box.left+2,top:Math.max(G.box.top-11,0)}:void 0,title:G?G.title??k.handle({label:G.label}):void 0,...te,children:[
|
|
3
|
-
/* @__PURE__ */D("span",{className:"es-canvas-grip","aria-hidden":"true",children:"⋮⋮"}),G?.label]})]})}var F=e=>e.tiles.length>0&&e.tiles.every(e=>null!=e.cover);function G({groups:t,session:n,itemFor:l,onInsert:r,at:a,hint:o,searchLabel:s,readOnly:i,words:c=e.add}){const d=o??c.hint,u=s??c.search,[f,m]=b(""),g=k(),y=f.trim().toLowerCase(),v=t.map(e=>({...e,tiles:y?e.tiles.filter(e=>((e,t)=>e.label.toLowerCase().includes(t)||(e.keywords??[]).some(e=>e.toLowerCase().includes(t)))(e,y)):e.tiles})).filter(e=>e.tiles.length>0),x=(e,t)=>r=>{if(t)r.preventDefault();else{n.start({key:`new:${e}`,item:l(e)}),r.dataTransfer.effectAllowed="copy";try{r.dataTransfer.setData("text/plain",e)}catch{}}};/* @__PURE__ */
|
|
4
|
-
return N("div",{className:"es-add",children:[a?/* @__PURE__ */N("div",{className:"es-add-at",role:"status",children:[
|
|
5
|
-
/* @__PURE__ */D("span",{children:a.label}),
|
|
6
|
-
/* @__PURE__ */D("button",{type:"button",className:"es-add-at-clear","aria-label":c.stop,title:c.stop,onClick:a.onClear,children:/* @__PURE__ */D(h,{size:12,"aria-hidden":"true"})})]}):null,
|
|
7
|
-
/* @__PURE__ */D("p",{className:"es-add-hint",children:d}),
|
|
8
|
-
/* @__PURE__ */N("div",{className:"es-add-search",children:[
|
|
9
|
-
/* @__PURE__ */D(p,{size:16,"aria-hidden":"true"}),
|
|
10
|
-
/* @__PURE__ */D("input",{id:g,type:"search","aria-label":u,placeholder:c.searchPlaceholder({label:u}),value:f,onChange:e=>m(e.target.value)}),f?/* @__PURE__ */D("button",{type:"button",className:"es-add-search-clear","aria-label":c.clearSearch,onClick:()=>m(""),children:/* @__PURE__ */D(h,{size:12,"aria-hidden":"true"})}):null]}),0===v.length?/* @__PURE__ */N("div",{className:"es-add-empty",role:"status",children:[
|
|
11
|
-
/* @__PURE__ */D("div",{className:"es-add-empty-title",children:c.nothing({query:f.trim()})}),
|
|
12
|
-
/* @__PURE__ */D("div",{className:"es-add-empty-sub",children:c.tryAnother})]}):v.map(e=>/* @__PURE__ */N("section",{className:"es-add-group","aria-label":e.title,children:[
|
|
13
|
-
/* @__PURE__ */N("div",{className:"es-add-group-head",children:[
|
|
14
|
-
/* @__PURE__ */D("span",{className:"es-add-group-title",children:e.title}),
|
|
15
|
-
/* @__PURE__ */D("span",{className:"es-add-group-count",children:e.tiles.length})]}),
|
|
16
|
-
/* @__PURE__ */D("div",{className:F(e)?"es-add-grid is-cards":"es-add-grid",children:e.tiles.map(e=>{const t=Boolean(i||e.disabled),l=i?void 0:e.disabled?e.disabledReason:e.title??c.tile({label:e.label});/* @__PURE__ */
|
|
17
|
-
return N("button",{type:"button",className:null!=e.cover?"es-add-tile has-cover":"es-add-tile",draggable:!t,"aria-disabled":t||void 0,"aria-label":c.tile({label:e.label}),title:l,onDragStart:x(e.type,t),onDragEnd:()=>n.end(),onClick:()=>!t&&r(e.type),children:[null!=e.cover?/* @__PURE__ */D("span",{className:"es-add-tile-cover","aria-hidden":"true",children:e.cover}):e.icon?/* @__PURE__ */D("span",{className:"es-add-tile-glyph","aria-hidden":"true",children:e.icon}):null,
|
|
18
|
-
/* @__PURE__ */D("span",{className:"es-add-tile-label",children:e.label})]},e.type)})})]},e.title))]})}export{G as AddPanel,q as CanvasDragLayer,O as EMPTY_MEASURE,X as HANDLE_GRACE_MS,C as canvasTarget,A as contains,z as gapInZone,E as gapLine,M as measureCanvas,T as pickSource,L as seamsBetween};
|
|
1
|
+
export{AddPanel,CanvasDragLayer,EMPTY_MEASURE,HANDLE_GRACE_MS,canvasTarget,contains,gapInZone,gapLine,measureCanvas,pickSource,seamsBetween}from"../chunk-TTJ54QGG.js";import"../chunk-O2NLQBFX.js";export{AUTO_SCROLL_EDGE,AUTO_SCROLL_MAX_SPEED,autoScrollDelta,autoScrollSpeed,createDragSession,dropEffectFor,dropOnRow,frameScrollBox,gapToMoveIndex,isNoOpDrop,scrollBoxOf,scrollParent,startAutoScroll,stepGap,useTreeDrag}from"../chunk-67GNT6PF.js";import"../chunk-PAELDYYS.js";import"../chunk-ZNCEOSXO.js";import"../chunk-L5KW4HG5.js";import"../chunk-KRXQM65X.js";import"../chunk-NKB3KVAB.js";
|