efficient-easel 3.2.1 → 3.7.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 +3 -1
- package/dist/{CanvasDragLayer-zgYT1xwY.d.ts → CanvasDragLayer-DVJGgA-g.d.ts} +13 -1
- package/dist/blocks/index.d.ts +2 -2
- package/dist/chunk-2GLQRNYT.js +16 -0
- package/dist/{chunk-KNUFI3WV.js → chunk-2I7MAA2U.js} +1 -1
- package/dist/{chunk-OFNXIZEP.js → chunk-6N64PNWF.js} +1 -1
- package/dist/chunk-7P6IFCR4.js +1 -0
- package/dist/chunk-CRG625FM.js +7 -0
- package/dist/chunk-LUSM3QTY.js +5 -0
- package/dist/{chunk-6QSPOILR.js → chunk-LZ6EGT4Y.js} +1 -1
- package/dist/{chunk-BF3PIXZD.js → chunk-MCHMF32I.js} +1 -1
- package/dist/{chunk-IMRJHRQ2.js → chunk-MTRFMGBO.js} +1 -1
- package/dist/{chunk-LMHGVI5R.js → chunk-MUZNA23W.js} +1 -1
- package/dist/{chunk-U2DVXW2H.js → chunk-PAM3NLFL.js} +1 -1
- package/dist/chunk-RKSKUGWC.js +65 -0
- package/dist/{chunk-ZN752E2O.js → chunk-SCPCXNTB.js} +1 -1
- package/dist/chunk-UK2FQOUT.js +1 -0
- package/dist/{chunk-J2JBETVO.js → chunk-VZGLBEAE.js} +1 -1
- package/dist/{chunk-2T3ED73A.js → chunk-WSNVBUPL.js} +1 -1
- package/dist/{chunk-PRSTFWUY.js → chunk-WZMU646D.js} +2 -2
- package/dist/{chunk-FRGCTHDB.js → chunk-XBNOEQMR.js} +1 -1
- package/dist/chunk-XW4AV5N4.js +9 -0
- package/dist/{chunk-55IKQFBW.js → chunk-YIKMVF24.js} +5 -5
- package/dist/drag/index.d.ts +1 -1
- package/dist/drag/index.js +1 -1
- package/dist/easel/index.d.ts +5 -5
- package/dist/easel/index.js +1 -1
- package/dist/node-ops/index.d.ts +2 -2
- package/dist/node-ops/index.js +1 -1
- package/dist/{plan-BdQ9mLIf.d.ts → plan-CHKjPr6l.d.ts} +10 -1
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaSidePanel.d.ts +2 -2
- package/dist/screen/components/MediaSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.d.ts +4 -4
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +2 -2
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +3 -3
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +3 -3
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +16 -16
- package/dist/screen/components/usePartBridge.d.ts +3 -3
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +3 -3
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/admin-bridge.d.ts +2 -2
- package/dist/screen/lib/document-addressing.d.ts +2 -2
- package/dist/screen/lib/document-hooks.d.ts +2 -2
- package/dist/screen/lib/host.d.ts +2 -2
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/media-panel.d.ts +2 -2
- package/dist/screen/lib/media-picker.d.ts +2 -2
- package/dist/screen/lib/page-lock.d.ts +2 -2
- package/dist/screen/lib/puck/device-fields.js +1 -1
- package/dist/screen/lib/puck/palette-sections.d.ts +2 -2
- package/dist/screen/lib/puck/section-doc.d.ts +2 -2
- package/dist/screen/lib/puck/style-clipboard.d.ts +3 -3
- package/dist/screen/lib/puck/style-clipboard.js +1 -1
- package/dist/screen/lib/puck/use-section-ops.d.ts +2 -2
- package/dist/screen/lib/puck/use-section-ops.js +1 -1
- package/dist/screen/lib/screen-parts.d.ts +3 -3
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/lib/section-templates.d.ts +2 -2
- package/dist/screen/lib/session-context.d.ts +2 -2
- package/dist/screen/lib/session.d.ts +2 -2
- package/dist/screen/words.d.ts +2 -0
- package/dist/screen/words.js +1 -1
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.js +1 -1
- package/dist/{types-CGFykP7c.d.ts → types-tNFRS_AW.d.ts} +1 -1
- package/dist/{useNodeOps-B3e4b8a2.d.ts → useNodeOps-CLbZyd43.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-2WVZ3CK3.js +0 -5
- package/dist/chunk-4WEGYBTV.js +0 -7
- package/dist/chunk-6HHHBBSY.js +0 -16
- package/dist/chunk-7VP5RXNO.js +0 -64
- package/dist/chunk-AVYFZZAP.js +0 -1
- package/dist/chunk-PDZXAFNX.js +0 -9
- package/dist/chunk-QASZFO4S.js +0 -1
package/dist/chunk-PDZXAFNX.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
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,parentStep as i,nextInChain as a,nodeChain as s}from"./chunk-QASZFO4S.js";import{useWords as d}from"./chunk-MFIRYGHW.js";import{setCanvasNonce as l,isTypingTarget as c}from"./chunk-ZNCEOSXO.js";import{find as u,ROOT_ID as p,getList as f,remove as h,parseZoneKey as m,move as v,duplicate as g,replaceNode as y,createNode as k,insert as S,normalizeData as w,createResolveCache as b,resolveNodeData as I,ROOT_SLOT as C,slotsOf as E}from"./chunk-KRXQM65X.js";import{topLevelSlotKeys as O,fieldsFrom as x,defaultsFrom as A}from"./chunk-NKB3KVAB.js";import{createContext as D,useEffect as z,useContext as M,useRef as Z,useSyncExternalStore as N,useState as j,useMemo as P,useCallback as $,useLayoutEffect as L}from"react";import{jsx as R,jsxs as B}from"react/jsx-runtime";import{createPortal as F}from"react-dom";function K(e){return!["setData","setUi","set"].includes(e.type)}var V=(e,t,n,o)=>{const r=f(e,t,m(n));return r?.[o]??null},H=(e,t,n,o,r)=>{const i=V(e,t,n,o);if(!i)throw new Error(`${r}: nothing at ${n}[${o}]`);return i};function T(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 q(e,t,n){return n?"node"===n.kind?u(e,t,n.id)?n:null:n.parentId===p?f(e,t,n)?n:null:u(e,t,n.parentId)&&f(e,t,n)?n:null:null}function Y(e,t,n,r=!1){const{itemSelector:i,selectedSlot:a,...s}=n;let d=e.selection;var l;return"itemSelector"in n&&(d=o(e.data,t,i??null)),"selectedSlot"in n&&(a?d=(l=a)?{kind:"slot",parentId:l.parentId,slot:l.slot}:null:"slot"===d?.kind&&(d=null)),{...e,selection:d,ui:r?s:{...e.ui,...s}}}function U(e,t,n){const o=W(e,t,n);if(o===e)return e;const r=q(o.data,n,o.selection);return r===o.selection?o:{...o,selection:r}}function W(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 Y(e,n,"function"==typeof t.ui?t.ui(T(e,n)):t.ui);case"set":{const r={data:o,ui:T(e,n)},i="function"==typeof t.state?t.state(r):t.state;let a=i.data?{...e,data:i.data}:e;return i.ui&&(a=Y(a,n,i.ui,!0)),a}case"insert":{const r={...m(t.destinationZone),index:t.destinationIndex},i=k(n,t.componentType,{},t.id?{id:t.id}:{});return{...e,data:S(o,n,r,i)}}case"replace":{const r=H(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:y(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=H(o,n,t.sourceZone,t.sourceIndex,"duplicate"),i=g(o,n,r.props.id),a=V(i,n,t.sourceZone,t.sourceIndex+1);return{...e,data:i,selection:a?{kind:"node",id:a.props.id}:e.selection}}case"reorder":return W(e,{...t,type:"move",sourceZone:t.destinationZone},n);case"move":{if(t.sourceZone===t.destinationZone&&t.sourceIndex===t.destinationIndex)return e;const r=V(o,n,t.sourceZone,t.sourceIndex);if(!r)return e;const i={...m(t.destinationZone),index:t.destinationIndex};return{...e,data:v(o,n,r.props.id,i)}}case"remove":{const r=H(o,n,t.zone,t.index,"remove");return{...e,data:h(o,n,r.props.id)}}default:return e}}var X={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}},G=0,J=()=>`history-${G+=1}`;function _(e){let t=e.config;const r=e.now??(()=>Date.now()),i=e.historyCoalesceMs??250;let a=e.permissions??{};const s=w(e.data,t);let d={data:s,selection:null,ui:{...Q}};if(e.ui){const{itemSelector:n,selectedSlot:r,...i}=e.ui;d={data:s,selection:r?{kind:"slot",...r}:o(s,t,n??null),ui:{...Q,...i}}}let l=[{core:d,at:-1/0,sealed:!0,id:J()}],c=0;const p=e=>{const t=l[c],n=r();!e&&c===l.length-1&&c>0&&!t.sealed&&n-t.at<i?l=[...l.slice(0,c),{...t,core:d,at:n}]:(l=[...l.slice(0,c+1),{core:d,at:n,sealed:e,id:J()}],c=l.length-1)},h=/* @__PURE__ */new Set;let m=null,v=null,g=0,k=null,S=!1;const C=()=>{for(const e of[...h])e()},E=()=>{l=[...l.slice(0,c),{...l[c],core:d},...l.slice(c+1)]},O=(t,n)=>{g>0?S=S||n:(n?p(!1):d!==t&&E(),d.data!==t.data&&e.onChange?.(d.data),d!==t&&C())},x=e=>{const n=d;if(d=U(d,e,t),d===n)return;const o=e.recordHistory??K(e);O(n,o&&d.data!==n.data)},A=t=>{0===g&&(k=d,S=!1),g+=1;try{t()}catch(e){throw g-=1,0===g&&k&&(d=k,k=null),e}if(g-=1,g>0||!k)return;const n=k;k=null,S&&d.data!==n.data?p(!0):d!==n&&E(),d.data!==n.data&&e.onChange?.(d.data),d!==n&&C()},D=e=>{const n=d,o=q(d.data,t,e);var r,i;(r=o,i=d.selection,r===i||r&&i&&r.kind===i.kind&&("node"===r.kind&&"node"===i.kind?r.id===i.id:"slot"===r.kind&&"slot"===i.kind&&r.parentId===i.parentId&&r.slot===i.slot))||(d={...d,selection:o},O(n,!1))},z=t=>{const n=d;c=t,d=l[c].core,d.data!==n.data&&e.onChange?.(d.data),d!==n&&C()},M=()=>(e={})=>{const n=e.root?t.root?.permissions:t.components[e.item?.type??e.type??""]?.permissions;return{...X,...a,...n}};let Z=M();const N=b(),j={resolveCache:N,async resolveAll({trigger:e="load",metadata:n}={}){const o=d.data,r={type:"root",props:{...o.root.props??{}}},i=[...o.content,...Object.values(o.zones??{}).flat()],[a,...s]=await Promise.all([I(r,t,{cache:N,trigger:e,metadata:n}),...i.map(o=>I(o,t,{cache:N,trigger:e,metadata:n}))]);A(()=>{const e=d;let n=d.data;s.forEach((e,r)=>{if(!e.didChange)return;const a=i[r].props.id,s=u(n,t,a)?.node;s&&s===u(o,t,a)?.node&&(n=y(n,t,a,e.node))}),a.didChange&&n.root===o.root&&(n={...n,root:{...n.root,props:a.node.props,readOnly:a.node.readOnly??n.root.readOnly}}),n!==d.data&&(d={...d,data:n,selection:q(n,t,d.selection)},O(e,!1))})},async resolveNode(e,{trigger:n="replace",metadata:o}={}){const r=u(d.data,t,e)?.node;if(!r)return!1;const i=await I(r,t,{cache:N,trigger:n,metadata:o});if(!i.didChange)return!1;let a=!1;return A(()=>{const n=d;if(u(d.data,t,e)?.node!==r)return;const o=y(d.data,t,e,i.node);o!==d.data&&(d={...d,data:o,selection:q(o,t,d.selection)},O(n,!1),a=!0)}),a},get config(){return t},getState(){if(m&&v===d)return m;const e=d,o={data:e.data,ui:T(e,t)},r="node"===e.selection?.kind?u(e.data,t,e.selection.id)?.node??null:null;return m={appState:o,selection:e.selection,selectedItem:r,config:t,dispatch:x,history:{back:()=>j.undo(),forward:()=>j.redo(),hasPast:c>0,hasFuture:c<l.length-1,histories:l.map(e=>({id:e.id,state:{data:e.core.data,ui:T(e.core,t)}})),index:c,setHistoryIndex:e=>{e>=0&&e<l.length&&e!==c&&z(e)}},getPermissions:Z,getItemById:n=>u(e.data,t,n)?.node,getItemBySelector:n=>function(e,t,n){const[o,r]=(n.zone??"root:default-zone").split(/:(.*)/s);return f(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}},v=e,m},subscribe:e=>(h.add(e),()=>{h.delete(e)}),dispatch:x,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=d,o=void 0===e.select?d.selection:e.select;d={...d,data:e.data,selection:q(e.data,t,o)},O(n,e.data!==n.data)})},load(e,n={}){const o=d,r=w(e,t);d={...d,data:r,selection:q(r,t,n.selection??d.selection)},n.keepHistory||(l=[{core:d,at:-1/0,sealed:!0,id:J()}],c=0),d!==o&&C()},undo(){c>0&&z(c-1)},redo(){c<l.length-1&&z(c+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,a)||(a=e,Z=M(),m=null,C())},setConfig(e){e!==t&&(t=e,Z=M(),m=null,C())}};return j}function ee(e,t,n={}){const o=e=>{if(e.altKey)return;if(!(e.metaKey!==e.ctrlKey))return;const o="KeyZ"===e.code,r="KeyY"===e.code&&!e.shiftKey;(o||r)&&(n.leaveTyping&&c(e.target)||!1!==t.getState?.().getPermissions().edit&&(e.preventDefault(),r||e.shiftKey?t.redo():t.undo()))};return e.addEventListener("keydown",o),()=>e.removeEventListener("keydown",o)}var te=D(null),ne=D(!0);function oe({easel:e,hotkeys:t=!0,resolveOnMount:n=!0,children:o}){return z(()=>{n&&e.resolveAll()},[e,n]),z(()=>{if(t&&"undefined"!=typeof document)return ee(document,e)},[e,t]),/* @__PURE__ */R(te.Provider,{value:e,children:/* @__PURE__ */R(ne.Provider,{value:t,children:o})})}function re(){const e=M(te);if(!e)throw new Error("useEasel: no <EaselProvider> above this component");return e}function ie(e){const t=re(),n=Z({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 i=e(o);return r.has&&Object.is(r.value,i)?(n.current={view:o,selector:e,value:r.value,has:!0},r.value):(n.current={view:o,selector:e,value:i,has:!0},i)};return N(t.subscribe,o,o)}function ae(){return function(e){return ie(e)}}var se="data-puck-component",de="data-puck-dropzone",le={},ce="data-es-mirror",ue="undefined"==typeof window?z:L;function pe(e,t,n){for(const e of Array.from(t.head.querySelectorAll(`[${ce}]`)))e.remove();for(const o of Array.from(e.head.querySelectorAll('style, link[rel="stylesheet"]'))){const e=o.cloneNode(!0);e.setAttribute(ce,""),n&&e.setAttribute("nonce",n),t.head.appendChild(e)}}function fe({children:t,id:n="preview-frame",title:o,className:r,style:i,mirrorStyles:a=!0,onDocument:s,height:c="auto",nonce:u}){const p=d("canvas",e),f=Z(null),[h,m]=j(null);return ue(()=>{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]),ue(()=>{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),l(e,u),m(t),s?.(e);let n=null;const o=f.current?.ownerDocument;if(a&&o){pe(o,e,u);const t=o.defaultView;t&&"MutationObserver"in t&&(n=new t.MutationObserver(()=>pe(o,e,u)),n.observe(o.head,{childList:!0,subtree:!0,characterData:!0}))}return()=>{n?.disconnect(),t.remove(),m(null),s?.(null)}},[]),/* @__PURE__ */R("iframe",{ref:f,id:n,title:o??p.frame,className:["es-canvas-frame","fill"===c?"is-fill":"",r??""].filter(Boolean).join(" "),style:i,children:h?F(t,h):null})}var he=D(null),me=D(le),ve=[];function ge({parentId:e,slot:t,className:n,style:o,minEmptyHeight:r=128}){const i=re(),a=ie(n=>f(n.appState.data,i.config,{parentId:e,slot:t})??ve),s=ie(t=>"node"===t.selection?.kind&&t.selection.id===e&&e!==p),d=ie(n=>"slot"===n.selection?.kind&&n.selection.parentId===e&&n.selection.slot===t),l=M(he),c=["es-zone"];return a.length&&c.push("has-children"),e===p&&c.push("is-root"),(s||d)&&c.push("is-area-selected"),null!==l&&l===e&&e!==p&&c.push("is-hovering-area"),n&&c.push(n),/* @__PURE__ */R("div",{className:c.join(" "),[de]:`${e}:${t}`,style:{...o,"--min-empty-height":`${r}px`},children:a.map(e=>/* @__PURE__ */R(Se,{node:e},e.props.id))})}function ye(e,t,n,o){const r="root"===t?e.root:e.components[t],i={...o};for(const e of O(x(r)))i[e]=function(t={}){/* @__PURE__ */
|
|
2
|
-
return R(ge,{parentId:n,slot:e,...t})};return i}function ke(e){return function({zone:t,...n}){/* @__PURE__ */
|
|
3
|
-
return R(ge,{parentId:e,slot:t,...n})}}function Se({node:e}){const t=re().config,n=t.components[e.type],o=e.props.id,r=function(e){const t=Z(null);return P(()=>n=>{const o=t.current;o&&o!==n&&(o.removeAttribute(se),o.removeAttribute("data-puck-dnd")),t.current=n,n&&(n.setAttribute(se,e),n.setAttribute("data-puck-dnd",e),n.style.position="relative")},[e])}(o),i=M(me);if(!n?.render)return null;const a=n.render,s=ye(t,e.type,o,{...A(n),...e.props}),d={renderDropZone:ke(o),isEditing:!0,dragRef:n.inline?r:null,metadata:{...i,...n.metadata}};return n.inline?/* @__PURE__ */R(a,{...s,puck:d,editMode:!0}):/* @__PURE__ */R("div",{[se]:o,"data-puck-dnd":o,style:{position:"relative"},children:/* @__PURE__ */R(a,{...s,puck:d,editMode:!0})})}function we({metadata:e}){const t=ie(e=>e.config),n=ie(e=>e.appState.data.root).props??{},o=t.root?.render,r=/* @__PURE__ */R(ge,{parentId:p,slot:C}),i=o?/* @__PURE__ */R(o,{id:"puck-root",...ye(t,"root",p,n),puck:{renderDropZone:ke(p),isEditing:!0,dragRef:null,metadata:e??{}},editMode:!0,children:r}):r;/* @__PURE__ */
|
|
4
|
-
return R(me.Provider,{value:e??le,children:i})}function be({id:e,kind:t,overlay:n}){const o=Z(null),[r,i]=j(null);ue(()=>{const t=o.current?.ownerDocument,n=t?.defaultView;if(!t||!n||!e)return void i(null);let r=0;const a=()=>{r=0;const a=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(`[${se}="${n.CSS?.escape?n.CSS.escape(e):e}"]`),o.current?.parentElement??null);i(e=>{return(t=e)===(n=a)||t&&n&&t.top===n.top&&t.left===n.left&&t.width===n.width&&t.height===n.height?e:a;var t,n})},s=()=>{r||(r=(n.requestAnimationFrame??(e=>n.setTimeout(e,16)))(a))};a();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 a=/* @__PURE__ */R("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__ */R(n,{componentId:e,kind:t,children:a}):a}function Ie({frame:e=!0,className:t,style:n,metadata:o,mirrorStyles:r,onDocument:d,height:l,title:c,nonce:p,hotkeys:f,frameWrapper:h,overlay:m,children:v}){const g=re(),y=M(ne),k=f??y,[S,w]=j(void 0),b=ie(e=>"node"===e.selection?.kind?e.selection.id:null),[I,C]=j(null),O=e=>{const t=e.closest?.(`[${se}]`)?.getAttribute(se);if(!t)return;const n=g.getState(),o=n.appState.data,r=u(o,g.config,t);if(!r||0===E(r.node,g.config).length)return t;const i="node"===n.selection?.kind?n.selection.id:null;return a(s(o,g.config,t),i)??t},x=/* @__PURE__ */B("div",{className:"es-canvas-content",style:{position:"relative"},onClick:e=>{const t=e.target;t.closest?.("a[href]")&&e.preventDefault();const n=O(t);void 0===n?t.hasAttribute?.(de)||g.select(null):g.select(n)},onMouseOver:e=>{const t=O(e.target)??null;t!==I&&C(t)},onMouseLeave:()=>C(null),children:[
|
|
5
|
-
/* @__PURE__ */R(he.Provider,{value:I,children:/* @__PURE__ */R(we,{metadata:o})}),
|
|
6
|
-
/* @__PURE__ */B("div",{className:"es-canvas-outlines",style:{position:"absolute",top:0,left:0,pointerEvents:"none"},children:[
|
|
7
|
-
/* @__PURE__ */R(be,{id:I&&I!==b?I:null,kind:"hover",overlay:m}),
|
|
8
|
-
/* @__PURE__ */R(be,{id:b,kind:"selected",overlay:m})]}),v]}),A=h?/* @__PURE__ */R(h,{document:S,children:x}):x;z(()=>{if(S&&k)return ee(S,g)},[S,k,g]),z(()=>{if(!S)return;const e=e=>{if("Escape"!==e.key||e.defaultPrevented)return;const t=e.target;if(t?.isContentEditable||t?.closest?.("input, textarea, select"))return;const n=g.getState();if("node"!==n.selection?.kind)return;const o=i(n.appState.data,g.config,n.selection);"node"===o?.kind&&g.select(o.id)};return S.addEventListener("keydown",e),()=>S.removeEventListener("keydown",e)},[S,g]);/* @__PURE__ */
|
|
9
|
-
return R("div",{className:"es-canvas"+(t?` ${t}`:""),style:n,"data-puck-preview":"",children:e?/* @__PURE__ */R(fe,{mirrorStyles:r,onDocument:e=>{w(e??void 0),d?.(e)},height:l,title:c,nonce:p,children:A}):/* @__PURE__ */R("div",{id:"preview-frame","data-puck-entry":"",children:A})})}function Ce(e={}){const t=re(),n=ie(e=>e.appState.data);return r({...e,data:n,config:t.config,commit:(e,{select:n})=>t.run({data:e,select:n})})}function Ee(){const e=re(),n=ie(e=>e.config),o=e.resolveCache,r=ie(e=>e.selectedItem),i=ie(e=>e.appState.data.root),a=r?r.props.id:"root",s=i.props??{},d=P(()=>r||{type:"root",props:s},[r,s]),l=r?n.components[r.type]:n.root,c=e.getState(),p=r?u(c.appState.data,n,a):null,f=p&&"root"!==p.place.parentId?p.place.parentId:null,h=f?c.getItemById(f)??null:null,{fields:m}=t({id:a,node:d,block:l,parent:h,appState:c.appState}),v=ie(e=>!1===e.getPermissions(r?{item:r}:{root:!0}).edit),g=$((t,r)=>{(async()=>{const i=e.getState();if("root"!==a){const s=i.getItemById(a),d=i.getSelectorForId(a);if(!s||!d)return;const l={...s,props:{...s.props,[t]:r}},{node:c}=await I(l,n,{cache:o,trigger:"replace"}),u=e.getState().getSelectorForId(a);if(!u)return;return void e.dispatch({type:"replace",destinationZone:u.zone??"root:default-zone",destinationIndex:u.index,data:c})}const s=i.appState.data.root.props??{},{node:d}=await I({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,a]);return{id:a,node:d,fields:m,values:d.props,readOnly:v,onChange:g}}export{fe as CanvasFrame,Q as DEFAULT_UI,Ie as EaselCanvas,oe as EaselProvider,we as EditDocument,ee as bindUndoKeys,_ as createEasel,ae as createUseEasel,K as recordsByDefault,U as reduce,T as uiView,ie as useEasel,re as useEaselApi,Ce as useEaselNodeOps,Ee as useSelectedFields,q as validSelection};
|
package/dist/chunk-QASZFO4S.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{find as t,remove as n,getList as e,newId as r,duplicate as o,move as a,copyNode as l,insert as c,setProps as d}from"./chunk-KRXQM65X.js";import{useRef as i,useSyncExternalStore as s,useCallback as p,useMemo as u}from"react";var f=t=>({kind:"node",id:t});function m(r,o,a,l="none"){const c=t(r,o,a),d=n(r,o,a);if("none"===l||!c)return{data:d,select:null};const i=e(r,o,c.place)??[],s=i[c.place.index+1]??i[c.place.index-1];return s?.props?.id?{data:d,select:f(s.props.id)}:"root"!==c.place.parentId?{data:d,select:f(c.place.parentId)}:{data:d,select:null}}function x(n,e,a,l={}){const c=t(n,e,a)?.node,d=l.id??r(c?.type??"Node");return{data:o(n,e,a,{strip:l.strip,id:d}),select:f(d)}}function I(t,n,e,r){return{data:a(t,n,e,r),select:f(e)}}var g=(t,n)=>({min:0,max:n-1});function v(n,r,o,a,l=g){const c=t(n,r,o);if(!c)return!1;const d=e(n,r,c.place)?.length??0,{min:i,max:s}=l(c.place,d),p=c.place.index+a;return c.place.index>=i&&c.place.index<=s&&p>=i&&p<=s}function b(n,e,r,o,a=g){if(!v(n,e,r,o,a))return null;const l=t(n,e,r);return I(n,e,r,{...l.place,index:l.place.index+o})}function h(t,n,e,r,o={}){const a=l(e,n,{strip:o.strip});return{data:c(t,n,r,a),select:f(a.props.id)}}function k(t,n,e,r){return{data:d(t,n,e,r),select:void 0}}function y(n,e,r,o=()=>!1){if(!r)return null;if("slot"===r.kind)return t(n,e,r.parentId)?f(r.parentId):null;const a=t(n,e,r.id);if(!a||"root"===a.place.parentId)return null;const l=t(n,e,a.place.parentId);return l?o(l.node,a.place.slot)?{kind:"slot",parentId:l.node.props.id,slot:a.place.slot}:f(l.node.props.id):null}function O(n,e,r){const o=t(n,e,r);return o?[...o.path.filter(t=>"root"!==t.parentId).map(t=>t.parentId),r]:[]}function z(t,n){if(0===t.length)return null;const e=null===n?-1:t.indexOf(n);return-1===e?t[0]:t[Math.min(e+1,t.length-1)]}function R(n,e,r){if(!r||"node"!==r.kind)return null;const o=t(n,e,r.id);return o?{zone:`${o.place.parentId}:${o.place.slot}`,index:o.place.index}:null}function B(t,n,r){if(!r)return null;const[o,a]=(r.zone??"root:default-zone").split(/:(.*)/s),l={parentId:o,slot:a},c=e(t,n,l)?.[r.index];return c?.props?.id?f(c.props.id):null}var M={get:()=>null,set:()=>{},subscribe:()=>()=>{}};function X(n){const e=i(n);e.current=n;const r=n.clipboard??M,o=s(r.subscribe,r.get,r.get),a=p(t=>{const n=e.current;if(n.readOnly)return!1;const r=t(n.data,n.config);return!!r&&((r.data!==n.data||void 0!==r.select)&&(n.commit(r.data,{select:r.select}),e.current={...n,data:r.data},!0))},[]);return u(()=>{const n=()=>e.current,r=(e,r)=>{const o=t(n().data,n().config,e);return o?{node:o.node,label:r,from:{parentId:o.place.parentId,slot:o.place.slot}}:null};return{held:o,remove:t=>a((e,r)=>m(e,r,t,n().afterRemove)),duplicate:t=>a((e,r)=>x(e,r,t,{strip:n().strip})),move:(t,n)=>a((e,r)=>I(e,r,t,n)),step:(t,e)=>a((r,o)=>b(r,o,t,e,n().stepBounds)),canStep:(t,e)=>v(n().data,n().config,t,e,n().stepBounds),setProps:(t,n)=>a((e,r)=>k(e,r,t,n)),copy:(t,e)=>{const o=r(t,e);return o&&(n().clipboard??M).set(o),!!o},cut:(t,e)=>{if(n().readOnly)return!1;const o=r(t,e);return!!o&&((n().clipboard??M).set(o),a((e,r)=>m(e,r,t,n().afterRemove)))},paste:t=>{const e=(n().clipboard??M).get();return!!e&&a((r,o)=>h(r,o,e.node,t,{strip:n().strip}))},parentOf:t=>y(n().data,n().config,t,n().slotIsLevel)}},[o,a])}export{v as canStep,B as fromItemSelector,z as nextInChain,O as nodeChain,y as parentStep,x as planDuplicate,I as planMove,h as planPaste,m as planRemove,k as planSetProps,b as planStep,R as toItemSelector,X as useNodeOps};
|