efficient-easel 0.106.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +70 -29
  2. package/dist/{LinkPicker-W2Rtxetz.d.ts → LinkPicker-hPEr1MJx.d.ts} +6 -4
  3. package/dist/autosave/index.d.ts +5 -5
  4. package/dist/chrome/chrome.css +50 -273
  5. package/dist/chrome/index.d.ts +61 -56
  6. package/dist/chrome/index.js +1 -1
  7. package/dist/chunk-4SWZAYKI.js +5 -0
  8. package/dist/chunk-5545A3PC.js +4 -0
  9. package/dist/chunk-7SQF6LZL.js +1 -0
  10. package/dist/chunk-BXMXTO36.js +1 -0
  11. package/dist/chunk-EA2HTX37.js +5 -0
  12. package/dist/{chunk-VINYARYJ.js → chunk-FER7FCAG.js} +1 -1
  13. package/dist/chunk-FPAVNX3Y.js +6 -0
  14. package/dist/{chunk-LY4K2ECT.js → chunk-GXFAQ7JN.js} +1 -1
  15. package/dist/chunk-HMJS344F.js +1 -0
  16. package/dist/{chunk-JWMNPRTT.js → chunk-I64QM6DU.js} +1 -1
  17. package/dist/chunk-JLTZQ4US.js +1 -0
  18. package/dist/chunk-K56YDHYQ.js +1 -0
  19. package/dist/chunk-LOMEH6DG.js +1 -0
  20. package/dist/{chunk-FS5BLARH.js → chunk-MAEXP3KE.js} +1 -1
  21. package/dist/chunk-MJM6SFD3.js +3 -0
  22. package/dist/chunk-NLRW4BGG.js +8 -0
  23. package/dist/chunk-O5F46JWM.js +64 -0
  24. package/dist/chunk-ONRYLR2D.js +2 -0
  25. package/dist/{chunk-WTMHT7BI.js → chunk-ORR3Q4WV.js} +1 -1
  26. package/dist/chunk-P2VEMZH5.js +1 -0
  27. package/dist/{chunk-MHKBLPQ2.js → chunk-PT6V53OO.js} +1 -1
  28. package/dist/{chunk-6WH7FA2M.js → chunk-PYCLHOSA.js} +2 -2
  29. package/dist/chunk-Q27BB5ZC.js +14 -0
  30. package/dist/chunk-QFMJBBKM.js +5 -0
  31. package/dist/chunk-QLD57GBB.js +6 -0
  32. package/dist/chunk-QR4DLZ3P.js +5 -0
  33. package/dist/chunk-QRKKQGUO.js +4 -0
  34. package/dist/chunk-QTPJMJOJ.js +1 -0
  35. package/dist/chunk-RG7PFKCA.js +7 -0
  36. package/dist/chunk-TJ7YIRWQ.js +21 -0
  37. package/dist/{chunk-3P6AMTOS.js → chunk-VPFNZ7TB.js} +1 -1
  38. package/dist/chunk-W3XX2CNW.js +16 -0
  39. package/dist/chunk-WDXPWSP7.js +24 -0
  40. package/dist/chunk-X6DQWK2C.js +1 -0
  41. package/dist/chunk-XWR5YVA7.js +9 -0
  42. package/dist/chunk-ZNNATBDC.js +1 -0
  43. package/dist/copy/copy.css +66 -177
  44. package/dist/copy/index.d.ts +0 -2
  45. package/dist/copy/index.js +31 -32
  46. package/dist/drag/drag.css +31 -11
  47. package/dist/drag/index.js +1 -1
  48. package/dist/easel/index.js +1 -1
  49. package/dist/fields/fields.css +35 -304
  50. package/dist/fields/index.d.ts +87 -95
  51. package/dist/fields/index.js +1 -1
  52. package/dist/gold/gold.css +3 -3
  53. package/dist/gold/index.d.ts +6 -5
  54. package/dist/gold/index.js +1 -1
  55. package/dist/index.d.ts +3 -3
  56. package/dist/index.js +1 -1
  57. package/dist/menu/index.d.ts +49 -93
  58. package/dist/menu/index.js +1 -1
  59. package/dist/menu/menu.css +37 -246
  60. package/dist/node-ops/index.d.ts +1 -1
  61. package/dist/panel/index.d.ts +46 -72
  62. package/dist/panel/index.js +17 -18
  63. package/dist/panel/panel.css +143 -372
  64. package/dist/pick/index.d.ts +52 -33
  65. package/dist/pick/index.js +7 -7
  66. package/dist/pick/pick.css +19 -150
  67. package/dist/rail/index.d.ts +48 -90
  68. package/dist/rail/index.js +1 -1
  69. package/dist/rail/rail.css +21 -108
  70. package/dist/screen/components/AddBlockRow.d.ts +8 -2
  71. package/dist/screen/components/AddBlockRow.js +1 -1
  72. package/dist/screen/components/AddChildRow.d.ts +4 -3
  73. package/dist/screen/components/AddChildRow.js +1 -1
  74. package/dist/screen/components/AddSidePanel.js +1 -1
  75. package/dist/screen/components/MediaSidePanel.d.ts +1 -1
  76. package/dist/screen/components/MediaSidePanel.js +1 -1
  77. package/dist/screen/components/NodeContextMenu.d.ts +12 -8
  78. package/dist/screen/components/NodeContextMenu.js +1 -1
  79. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  80. package/dist/screen/components/ScreenChrome.js +1 -1
  81. package/dist/screen/components/ScreenDocumentContext.d.ts +1 -1
  82. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  83. package/dist/screen/components/ScreenMount.d.ts +7 -7
  84. package/dist/screen/components/ScreenMount.js +1 -1
  85. package/dist/screen/components/ScreenStoreProvider.d.ts +7 -7
  86. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  87. package/dist/screen/components/SectionScreenShell.js +16 -16
  88. package/dist/screen/components/SidePanelHead.d.ts +4 -2
  89. package/dist/screen/components/SidePanelHead.js +1 -1
  90. package/dist/screen/components/UiIcon.d.ts +10 -26
  91. package/dist/screen/components/UiIcon.js +2 -1
  92. package/dist/screen/components/panel-widths.js +1 -1
  93. package/dist/screen/components/usePartBridge.d.ts +7 -7
  94. package/dist/screen/components/usePartBridge.js +1 -1
  95. package/dist/screen/index.d.ts +7 -7
  96. package/dist/screen/index.js +1 -1
  97. package/dist/screen/lib/admin-bridge.d.ts +1 -1
  98. package/dist/screen/lib/admin-bridge.js +1 -1
  99. package/dist/screen/lib/chrome-theme.d.ts +20 -12
  100. package/dist/screen/lib/chrome-theme.js +1 -1
  101. package/dist/screen/lib/document-addressing.d.ts +1 -1
  102. package/dist/screen/lib/host-chrome.d.ts +1 -1
  103. package/dist/screen/lib/host.d.ts +1 -1
  104. package/dist/screen/lib/key-scope.js +1 -1
  105. package/dist/screen/lib/links/link-filters.d.ts +1 -1
  106. package/dist/screen/lib/media-panel.d.ts +1 -1
  107. package/dist/screen/lib/media-picker.d.ts +1 -1
  108. package/dist/screen/lib/page-lock.d.ts +1 -1
  109. package/dist/screen/lib/puck/style-clipboard.d.ts +7 -7
  110. package/dist/screen/lib/puck/use-section-ops.d.ts +16 -0
  111. package/dist/screen/lib/puck/use-section-ops.js +1 -1
  112. package/dist/screen/lib/screen-parts.d.ts +14 -8
  113. package/dist/screen/lib/screen-parts.js +1 -1
  114. package/dist/screen/lib/section-templates.d.ts +1 -1
  115. package/dist/screen/lib/session-context.d.ts +1 -1
  116. package/dist/screen/lib/session.d.ts +1 -1
  117. package/dist/screen/screen.css +33 -206
  118. package/dist/shell/index.d.ts +134 -118
  119. package/dist/shell/index.js +1 -1
  120. package/dist/shell/shell.css +130 -88
  121. package/dist/strings/catalogue.d.ts +5 -5
  122. package/dist/strings/catalogue.js +1 -1
  123. package/dist/strings/index.d.ts +5 -5
  124. package/dist/strings/index.js +1 -1
  125. package/dist/style-clipboard/index.d.ts +1 -1
  126. package/dist/text-styles/index.d.ts +12 -3
  127. package/dist/text-styles/index.js +33 -38
  128. package/dist/text-styles/text-styles.css +39 -71
  129. package/dist/tree/index.d.ts +49 -44
  130. package/dist/tree/index.js +1 -1
  131. package/dist/tree/tree.css +31 -653
  132. package/dist/{types-DJDBtdB2.d.ts → types-BqGnUVX5.d.ts} +32 -32
  133. package/dist/types-BsyPh6EW.d.ts +99 -0
  134. package/dist/{types-DWS-s9z-.d.ts → types-CsgMwHHa.d.ts} +14 -11
  135. package/dist/{types-CqY85foL.d.ts → types-Dt1CFR1S.d.ts} +4 -2
  136. package/dist/{wordFit-D4S36PvB.d.ts → wordFit-7XpmhcaW.d.ts} +3 -5
  137. package/dist/words-Cl9xMUYY.d.ts +41 -0
  138. package/dist/{words-D_Lnw1Gr.d.ts → words-CvFnwGSr.d.ts} +1 -1
  139. package/package.json +5 -1
  140. package/dist/chunk-2UX75JDP.js +0 -1
  141. package/dist/chunk-37OCQYNX.js +0 -65
  142. package/dist/chunk-3EDSDPIP.js +0 -1
  143. package/dist/chunk-3QVB4AG2.js +0 -3
  144. package/dist/chunk-3WSPDAK2.js +0 -1
  145. package/dist/chunk-5MZ3RNQQ.js +0 -13
  146. package/dist/chunk-5ZBBXZPV.js +0 -6
  147. package/dist/chunk-BZ5ASXOL.js +0 -1
  148. package/dist/chunk-C6BJB5AC.js +0 -2
  149. package/dist/chunk-DX4XELD6.js +0 -18
  150. package/dist/chunk-EOJNJCMJ.js +0 -16
  151. package/dist/chunk-EWVJSRRY.js +0 -6
  152. package/dist/chunk-H24N5TMZ.js +0 -11
  153. package/dist/chunk-I6T4TZ5Q.js +0 -8
  154. package/dist/chunk-KTVH2ZRL.js +0 -15
  155. package/dist/chunk-M7N2V4TG.js +0 -2
  156. package/dist/chunk-MS4QRBJ6.js +0 -5
  157. package/dist/chunk-ND55LTCA.js +0 -5
  158. package/dist/chunk-OWBO4WKA.js +0 -0
  159. package/dist/chunk-P6O363EE.js +0 -6
  160. package/dist/chunk-PBSEUZD6.js +0 -1
  161. package/dist/chunk-RW4XBUUW.js +0 -1
  162. package/dist/chunk-UEVTQBM7.js +0 -10
  163. package/dist/chunk-VCQVNPTG.js +0 -22
  164. package/dist/chunk-WZ7TGAAT.js +0 -3
  165. package/dist/chunk-YC4TB3CJ.js +0 -25
  166. package/dist/chunk-Z6SOLDWV.js +0 -1
  167. package/dist/chunk-ZFDCDJNZ.js +0 -16
  168. package/dist/chunk-ZNS7727Y.js +0 -12
  169. package/dist/types-Djdq6Xkd.d.ts +0 -138
  170. package/dist/words-DgHcY5qB.d.ts +0 -33
@@ -1,4 +1,4 @@
1
- import{toItemSelector as e,fromItemSelector as t,useNodeOps as n}from"./chunk-D2BCHTQR.js";import{DEFAULT_CANVAS_WORDS as o}from"./chunk-AELNNAFM.js";import{useResolvedFields as r}from"./chunk-YRLPFZW3.js";import{useWords as a}from"./chunk-MFIRYGHW.js";import{setCanvasNonce as i,isTypingTarget as s}from"./chunk-ZNCEOSXO.js";import{find as d,ROOT_ID as l,getList as c,remove as u,parseZoneKey as p,move as f,duplicate as h,replaceNode as m,createNode as v,insert as y,normalizeData as g,createResolveCache as k,resolveNodeData as b,ROOT_SLOT as w}from"./chunk-KRXQM65X.js";import{topLevelSlotKeys as S,fieldsFrom as I,defaultsFrom as C}from"./chunk-NKB3KVAB.js";import{createContext as O,useEffect as x,useContext as E,useRef as A,useSyncExternalStore as D,useState as z,useMemo as M,useCallback as Z,useLayoutEffect as N}from"react";import{jsx as $,jsxs as j}from"react/jsx-runtime";import{createPortal as R}from"react-dom";function B(e){return!["setData","setUi","set"].includes(e.type)}var P=(e,t,n,o)=>{const r=c(e,t,p(n));return r?.[o]??null},L=(e,t,n,o,r)=>{const a=P(e,t,n,o);if(!a)throw new Error(`${r}: nothing at ${n}[${o}]`);return a};function K(t,n){const{selection:o}=t;return{...t.ui,itemSelector:e(t.data,n,o),selectedSlot:o&&"slot"===o.kind?{parentId:o.parentId,slot:o.slot}:null}}function F(e,t,n){return n?"node"===n.kind?d(e,t,n.id)?n:null:n.parentId===l?c(e,t,n)?n:null:d(e,t,n.parentId)&&c(e,t,n)?n:null:null}function H(e,n,o,r=!1){const{itemSelector:a,selectedSlot:i,...s}=o;let d=e.selection;var l;return"itemSelector"in o&&(d=t(e.data,n,a??null)),"selectedSlot"in o&&(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 V(e,t,n){const o=T(e,t,n);if(o===e)return e;const r=F(o.data,n,o.selection);return r===o.selection?o:{...o,selection:r}}function T(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 H(e,n,"function"==typeof t.ui?t.ui(K(e,n)):t.ui);case"set":{const r={data:o,ui:K(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=H(i,n,a.ui,!0)),i}case"insert":{const r={...p(t.destinationZone),index:t.destinationIndex},a=v(n,t.componentType,{},t.id?{id:t.id}:{});return{...e,data:y(o,n,r,a)}}case"replace":{const r=L(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:m(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=L(o,n,t.sourceZone,t.sourceIndex,"duplicate"),a=h(o,n,r.props.id),i=P(a,n,t.sourceZone,t.sourceIndex+1);return{...e,data:a,selection:i?{kind:"node",id:i.props.id}:e.selection}}case"reorder":return T(e,{...t,type:"move",sourceZone:t.destinationZone},n);case"move":{if(t.sourceZone===t.destinationZone&&t.sourceIndex===t.destinationIndex)return e;const r=P(o,n,t.sourceZone,t.sourceIndex);if(!r)return e;const a={...p(t.destinationZone),index:t.destinationIndex};return{...e,data:f(o,n,r.props.id,a)}}case"remove":{const r=L(o,n,t.zone,t.index,"remove");return{...e,data:u(o,n,r.props.id)}}default:return e}}var q={drag:!0,duplicate:!0,delete:!0,edit:!0,insert:!0},Y={leftSideBarVisible:!0,rightSideBarVisible:!0,arrayState:{},componentList:{},isDragging:!1,previewMode:"edit",viewports:{current:{width:360,height:"auto"},options:[],controlsVisible:!0},field:{focus:null}},U=0,W=()=>`history-${U+=1}`;function X(n){let o=n.config;const r=n.now??(()=>Date.now()),a=n.historyCoalesceMs??250;let i=n.permissions??{};const s=g(n.data,o);let l={data:s,selection:null,ui:{...Y}};if(n.ui){const{itemSelector:e,selectedSlot:r,...a}=n.ui;l={data:s,selection:r?{kind:"slot",...r}:t(s,o,e??null),ui:{...Y,...a}}}let u=[{core:l,at:-1/0,sealed:!0,id:W()}],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:l,at:n}]:(u=[...u.slice(0,p+1),{core:l,at:n,sealed:e,id:W()}],p=u.length-1)},h=/* @__PURE__ */new Set;let v=null,y=null,w=0,S=null,I=!1;const C=()=>{for(const e of[...h])e()},O=()=>{u=[...u.slice(0,p),{...u[p],core:l},...u.slice(p+1)]},x=(e,t)=>{w>0?I=I||t:(t?f(!1):l!==e&&O(),l.data!==e.data&&n.onChange?.(l.data),l!==e&&C())},E=e=>{const t=l;if(l=V(l,e,o),l===t)return;const n=e.recordHistory??B(e);x(t,n&&l.data!==t.data)},A=e=>{0===w&&(S=l,I=!1),w+=1;try{e()}catch(e){throw w-=1,0===w&&S&&(l=S,S=null),e}if(w-=1,w>0||!S)return;const t=S;S=null,I&&l.data!==t.data?f(!0):l!==t&&O(),l.data!==t.data&&n.onChange?.(l.data),l!==t&&C()},D=e=>{const t=l,n=F(l.data,o,e);var r,a;(r=n,a=l.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))||(l={...l,selection:n},x(t,!1))},z=e=>{const t=l;p=e,l=u[p].core,l.data!==t.data&&n.onChange?.(l.data),l!==t&&C()},M=()=>(e={})=>{const t=e.root?o.root?.permissions:o.components[e.item?.type??e.type??""]?.permissions;return{...q,...i,...t}};let Z=M();const N=k(),$={resolveCache:N,async resolveAll({trigger:e="load",metadata:t}={}){const n=l.data,r={type:"root",props:{...n.root.props??{}}},a=[...n.content,...Object.values(n.zones??{}).flat()],[i,...s]=await Promise.all([b(r,o,{cache:N,trigger:e,metadata:t}),...a.map(n=>b(n,o,{cache:N,trigger:e,metadata:t}))]);A(()=>{const e=l;let t=l.data;s.forEach((e,r)=>{if(!e.didChange)return;const i=a[r].props.id,s=d(t,o,i)?.node;s&&s===d(n,o,i)?.node&&(t=m(t,o,i,e.node))}),i.didChange&&t.root===n.root&&(t={...t,root:{...t.root,props:i.node.props,readOnly:i.node.readOnly??t.root.readOnly}}),t!==l.data&&(l={...l,data:t,selection:F(t,o,l.selection)},x(e,!1))})},async resolveNode(e,{trigger:t="replace",metadata:n}={}){const r=d(l.data,o,e)?.node;if(!r)return!1;const a=await b(r,o,{cache:N,trigger:t,metadata:n});if(!a.didChange)return!1;let i=!1;return A(()=>{const t=l;if(d(l.data,o,e)?.node!==r)return;const n=m(l.data,o,e,a.node);n!==l.data&&(l={...l,data:n,selection:F(n,o,l.selection)},x(t,!1),i=!0)}),i},get config(){return o},getState(){if(v&&y===l)return v;const t=l,n={data:t.data,ui:K(t,o)},r="node"===t.selection?.kind?d(t.data,o,t.selection.id)?.node??null:null;return v={appState:n,selection:t.selection,selectedItem:r,config:o,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:K(e.core,o)}})),index:p,setHistoryIndex:e=>{e>=0&&e<u.length&&e!==p&&z(e)}},getPermissions:Z,getItemById:e=>d(t.data,o,e)?.node,getItemBySelector:e=>function(e,t,n){const[o,r]=(n.zone??"root:default-zone").split(/:(.*)/s);return c(e,t,{parentId:o,slot:r})?.[n.index]}(t.data,o,e),getSelectorForId:n=>{const r=e(t.data,o,{kind:"node",id:n});return r?{index:r.index,zone:r.zone??"root:default-zone"}:void 0}},y=t,v},subscribe:e=>(h.add(e),()=>{h.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 t=l,n=void 0===e.select?l.selection:e.select;l={...l,data:e.data,selection:F(e.data,o,n)},x(t,e.data!==t.data)})},load(e,t={}){const n=l,r=g(e,o);l={...l,data:r,selection:F(r,o,t.selection??l.selection)},t.keepHistory||(u=[{core:l,at:-1/0,sealed:!0,id:W()}],p=0),l!==n&&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!==o&&(o=e,Z=M(),v=null,C())}};return $}function Q(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&&s(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 G=O(null),J=O(!0);function _({easel:e,hotkeys:t=!0,resolveOnMount:n=!0,children:o}){return x(()=>{n&&e.resolveAll()},[e,n]),x(()=>{if(t&&"undefined"!=typeof document)return Q(document,e)},[e,t]),/* @__PURE__ */$(G.Provider,{value:e,children:/* @__PURE__ */$(J.Provider,{value:t,children:o})})}function ee(){const e=E(G);if(!e)throw new Error("useEasel: no <EaselProvider> above this component");return e}function te(e){const t=ee(),n=A({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 D(t.subscribe,o,o)}function ne(){return function(e){return te(e)}}var oe="data-puck-component",re="data-puck-dropzone",ae={},ie="data-es-mirror",se="undefined"==typeof window?x:N;function de(e,t,n){for(const e of Array.from(t.head.querySelectorAll(`[${ie}]`)))e.remove();for(const o of Array.from(e.head.querySelectorAll('style, link[rel="stylesheet"]'))){const e=o.cloneNode(!0);e.setAttribute(ie,""),n&&e.setAttribute("nonce",n),t.head.appendChild(e)}}function le({children:e,id:t="preview-frame",title:n,className:r,style:s,mirrorStyles:d=!0,onDocument:l,height:c="auto",nonce:u}){const p=a("canvas",o),f=A(null),[h,m]=z(null);return se(()=>{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]),se(()=>{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){de(o,e,u);const t=o.defaultView;t&&"MutationObserver"in t&&(n=new t.MutationObserver(()=>de(o,e,u)),n.observe(o.head,{childList:!0,subtree:!0,characterData:!0}))}return()=>{n?.disconnect(),t.remove(),m(null),l?.(null)}},[]),/* @__PURE__ */$("iframe",{ref:f,id:t,title:n??p.frame,className:["es-canvas-frame","fill"===c?"is-fill":"",r??""].filter(Boolean).join(" "),style:s,children:h?R(e,h):null})}var ce=O(null),ue=O(ae),pe=[];function fe({parentId:e,slot:t,className:n,style:o,minEmptyHeight:r=128}){const a=ee(),i=te(n=>c(n.appState.data,a.config,{parentId:e,slot:t})??pe),s=te(t=>"node"===t.selection?.kind&&t.selection.id===e&&e!==l),d=te(n=>"slot"===n.selection?.kind&&n.selection.parentId===e&&n.selection.slot===t),u=E(ce),p=["es-zone"];return i.length&&p.push("has-children"),e===l&&p.push("is-root"),(s||d)&&p.push("is-area-selected"),null!==u&&u===e&&e!==l&&p.push("is-hovering-area"),n&&p.push(n),/* @__PURE__ */$("div",{className:p.join(" "),[re]:`${e}:${t}`,style:{...o,"--min-empty-height":`${r}px`},children:i.map(e=>/* @__PURE__ */$(ve,{node:e},e.props.id))})}function he(e,t,n,o){const r="root"===t?e.root:e.components[t],a={...o};for(const e of S(I(r)))a[e]=function(t={}){/* @__PURE__ */
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,isTypingTarget as s}from"./chunk-ZNCEOSXO.js";import{find as d,ROOT_ID as l,getList as c,remove as u,parseZoneKey as p,move as f,duplicate as h,replaceNode as m,createNode as v,insert as y,normalizeData as g,createResolveCache as k,resolveNodeData as b,ROOT_SLOT as w}from"./chunk-KRXQM65X.js";import{topLevelSlotKeys as S,fieldsFrom as I,defaultsFrom as C}from"./chunk-NKB3KVAB.js";import{createContext as O,useEffect as x,useContext as E,useRef as A,useSyncExternalStore as D,useState as z,useMemo as M,useCallback as Z,useLayoutEffect as N}from"react";import{jsx as $,jsxs as j}from"react/jsx-runtime";import{createPortal as R}from"react-dom";function B(e){return!["setData","setUi","set"].includes(e.type)}var P=(e,t,n,o)=>{const r=c(e,t,p(n));return r?.[o]??null},L=(e,t,n,o,r)=>{const a=P(e,t,n,o);if(!a)throw new Error(`${r}: nothing at ${n}[${o}]`);return a};function K(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 F(e,t,n){return n?"node"===n.kind?d(e,t,n.id)?n:null:n.parentId===l?c(e,t,n)?n:null:d(e,t,n.parentId)&&c(e,t,n)?n:null:null}function H(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 V(e,t,n){const o=T(e,t,n);if(o===e)return e;const r=F(o.data,n,o.selection);return r===o.selection?o:{...o,selection:r}}function T(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 H(e,n,"function"==typeof t.ui?t.ui(K(e,n)):t.ui);case"set":{const r={data:o,ui:K(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=H(i,n,a.ui,!0)),i}case"insert":{const r={...p(t.destinationZone),index:t.destinationIndex},a=v(n,t.componentType,{},t.id?{id:t.id}:{});return{...e,data:y(o,n,r,a)}}case"replace":{const r=L(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:m(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=L(o,n,t.sourceZone,t.sourceIndex,"duplicate"),a=h(o,n,r.props.id),i=P(a,n,t.sourceZone,t.sourceIndex+1);return{...e,data:a,selection:i?{kind:"node",id:i.props.id}:e.selection}}case"reorder":return T(e,{...t,type:"move",sourceZone:t.destinationZone},n);case"move":{if(t.sourceZone===t.destinationZone&&t.sourceIndex===t.destinationIndex)return e;const r=P(o,n,t.sourceZone,t.sourceIndex);if(!r)return e;const a={...p(t.destinationZone),index:t.destinationIndex};return{...e,data:f(o,n,r.props.id,a)}}case"remove":{const r=L(o,n,t.zone,t.index,"remove");return{...e,data:u(o,n,r.props.id)}}default:return e}}var q={drag:!0,duplicate:!0,delete:!0,edit:!0,insert:!0},Y={leftSideBarVisible:!0,rightSideBarVisible:!0,arrayState:{},componentList:{},isDragging:!1,previewMode:"edit",viewports:{current:{width:360,height:"auto"},options:[],controlsVisible:!0},field:{focus:null}},U=0,W=()=>`history-${U+=1}`;function X(e){let t=e.config;const r=e.now??(()=>Date.now()),a=e.historyCoalesceMs??250;let i=e.permissions??{};const s=g(e.data,t);let l={data:s,selection:null,ui:{...Y}};if(e.ui){const{itemSelector:n,selectedSlot:r,...a}=e.ui;l={data:s,selection:r?{kind:"slot",...r}:o(s,t,n??null),ui:{...Y,...a}}}let u=[{core:l,at:-1/0,sealed:!0,id:W()}],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:l,at:n}]:(u=[...u.slice(0,p+1),{core:l,at:n,sealed:e,id:W()}],p=u.length-1)},h=/* @__PURE__ */new Set;let v=null,y=null,w=0,S=null,I=!1;const C=()=>{for(const e of[...h])e()},O=()=>{u=[...u.slice(0,p),{...u[p],core:l},...u.slice(p+1)]},x=(t,n)=>{w>0?I=I||n:(n?f(!1):l!==t&&O(),l.data!==t.data&&e.onChange?.(l.data),l!==t&&C())},E=e=>{const n=l;if(l=V(l,e,t),l===n)return;const o=e.recordHistory??B(e);x(n,o&&l.data!==n.data)},A=t=>{0===w&&(S=l,I=!1),w+=1;try{t()}catch(e){throw w-=1,0===w&&S&&(l=S,S=null),e}if(w-=1,w>0||!S)return;const n=S;S=null,I&&l.data!==n.data?f(!0):l!==n&&O(),l.data!==n.data&&e.onChange?.(l.data),l!==n&&C()},D=e=>{const n=l,o=F(l.data,t,e);var r,a;(r=o,a=l.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))||(l={...l,selection:o},x(n,!1))},z=t=>{const n=l;p=t,l=u[p].core,l.data!==n.data&&e.onChange?.(l.data),l!==n&&C()},M=()=>(e={})=>{const n=e.root?t.root?.permissions:t.components[e.item?.type??e.type??""]?.permissions;return{...q,...i,...n}};let Z=M();const N=k(),$={resolveCache:N,async resolveAll({trigger:e="load",metadata:n}={}){const o=l.data,r={type:"root",props:{...o.root.props??{}}},a=[...o.content,...Object.values(o.zones??{}).flat()],[i,...s]=await Promise.all([b(r,t,{cache:N,trigger:e,metadata:n}),...a.map(o=>b(o,t,{cache:N,trigger:e,metadata:n}))]);A(()=>{const e=l;let n=l.data;s.forEach((e,r)=>{if(!e.didChange)return;const i=a[r].props.id,s=d(n,t,i)?.node;s&&s===d(o,t,i)?.node&&(n=m(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!==l.data&&(l={...l,data:n,selection:F(n,t,l.selection)},x(e,!1))})},async resolveNode(e,{trigger:n="replace",metadata:o}={}){const r=d(l.data,t,e)?.node;if(!r)return!1;const a=await b(r,t,{cache:N,trigger:n,metadata:o});if(!a.didChange)return!1;let i=!1;return A(()=>{const n=l;if(d(l.data,t,e)?.node!==r)return;const o=m(l.data,t,e,a.node);o!==l.data&&(l={...l,data:o,selection:F(o,t,l.selection)},x(n,!1),i=!0)}),i},get config(){return t},getState(){if(v&&y===l)return v;const e=l,o={data:e.data,ui:K(e,t)},r="node"===e.selection?.kind?d(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:K(e.core,t)}})),index:p,setHistoryIndex:e=>{e>=0&&e<u.length&&e!==p&&z(e)}},getPermissions:Z,getItemById:n=>d(e.data,t,n)?.node,getItemBySelector:n=>function(e,t,n){const[o,r]=(n.zone??"root:default-zone").split(/:(.*)/s);return c(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}},y=e,v},subscribe:e=>(h.add(e),()=>{h.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=l,o=void 0===e.select?l.selection:e.select;l={...l,data:e.data,selection:F(e.data,t,o)},x(n,e.data!==n.data)})},load(e,n={}){const o=l,r=g(e,t);l={...l,data:r,selection:F(r,t,n.selection??l.selection)},n.keepHistory||(u=[{core:l,at:-1/0,sealed:!0,id:W()}],p=0),l!==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 Q(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&&s(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 G=O(null),J=O(!0);function _({easel:e,hotkeys:t=!0,resolveOnMount:n=!0,children:o}){return x(()=>{n&&e.resolveAll()},[e,n]),x(()=>{if(t&&"undefined"!=typeof document)return Q(document,e)},[e,t]),/* @__PURE__ */$(G.Provider,{value:e,children:/* @__PURE__ */$(J.Provider,{value:t,children:o})})}function ee(){const e=E(G);if(!e)throw new Error("useEasel: no <EaselProvider> above this component");return e}function te(e){const t=ee(),n=A({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 D(t.subscribe,o,o)}function ne(){return function(e){return te(e)}}var oe="data-puck-component",re="data-puck-dropzone",ae={},ie="data-es-mirror",se="undefined"==typeof window?x:N;function de(e,t,n){for(const e of Array.from(t.head.querySelectorAll(`[${ie}]`)))e.remove();for(const o of Array.from(e.head.querySelectorAll('style, link[rel="stylesheet"]'))){const e=o.cloneNode(!0);e.setAttribute(ie,""),n&&e.setAttribute("nonce",n),t.head.appendChild(e)}}function le({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=A(null),[h,m]=z(null);return se(()=>{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]),se(()=>{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){de(o,e,u);const t=o.defaultView;t&&"MutationObserver"in t&&(n=new t.MutationObserver(()=>de(o,e,u)),n.observe(o.head,{childList:!0,subtree:!0,characterData:!0}))}return()=>{n?.disconnect(),t.remove(),m(null),l?.(null)}},[]),/* @__PURE__ */$("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?R(t,h):null})}var ce=O(null),ue=O(ae),pe=[];function fe({parentId:e,slot:t,className:n,style:o,minEmptyHeight:r=128}){const a=ee(),i=te(n=>c(n.appState.data,a.config,{parentId:e,slot:t})??pe),s=te(t=>"node"===t.selection?.kind&&t.selection.id===e&&e!==l),d=te(n=>"slot"===n.selection?.kind&&n.selection.parentId===e&&n.selection.slot===t),u=E(ce),p=["es-zone"];return i.length&&p.push("has-children"),e===l&&p.push("is-root"),(s||d)&&p.push("is-area-selected"),null!==u&&u===e&&e!==l&&p.push("is-hovering-area"),n&&p.push(n),/* @__PURE__ */$("div",{className:p.join(" "),[re]:`${e}:${t}`,style:{...o,"--min-empty-height":`${r}px`},children:i.map(e=>/* @__PURE__ */$(ve,{node:e},e.props.id))})}function he(e,t,n,o){const r="root"===t?e.root:e.components[t],a={...o};for(const e of S(I(r)))a[e]=function(t={}){/* @__PURE__ */
2
2
  return $(fe,{parentId:n,slot:e,...t})};return a}function me(e){return function({zone:t,...n}){/* @__PURE__ */
3
3
  return $(fe,{parentId:e,slot:t,...n})}}function ve({node:e}){const t=ee().config,n=t.components[e.type],o=e.props.id,r=function(e){const t=A(null);return M(()=>n=>{const o=t.current;o&&o!==n&&(o.removeAttribute(oe),o.removeAttribute("data-puck-dnd")),t.current=n,n&&(n.setAttribute(oe,e),n.setAttribute("data-puck-dnd",e),n.style.position="relative")},[e])}(o),a=E(ue);if(!n?.render)return null;const i=n.render,s=he(t,e.type,o,{...C(n),...e.props}),d={renderDropZone:me(o),isEditing:!0,dragRef:n.inline?r:null,metadata:{...a,...n.metadata}};return n.inline?/* @__PURE__ */$(i,{...s,puck:d,editMode:!0}):/* @__PURE__ */$("div",{[oe]:o,"data-puck-dnd":o,style:{position:"relative"},children:/* @__PURE__ */$(i,{...s,puck:d,editMode:!0})})}function ye({metadata:e}){const t=te(e=>e.config),n=te(e=>e.appState.data.root).props??{},o=t.root?.render,r=/* @__PURE__ */$(fe,{parentId:l,slot:w}),a=o?/* @__PURE__ */$(o,{id:"puck-root",...he(t,"root",l,n),puck:{renderDropZone:me(l),isEditing:!0,dragRef:null,metadata:e??{}},editMode:!0,children:r}):r;/* @__PURE__ */
4
4
  return $(ue.Provider,{value:e??ae,children:a})}function ge({id:e,kind:t,overlay:n}){const o=A(null),[r,a]=z(null);se(()=>{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(`[${oe}="${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__ */$("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,{componentId:e,kind:t,children:i}):i}function ke({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=ee(),h=E(J),m=l??h,[v,y]=z(void 0),g=te(e=>"node"===e.selection?.kind?e.selection.id:null),[k,b]=z(null),w=/* @__PURE__ */j("div",{className:"es-canvas-content",style:{position:"relative"},onClick:e=>{const t=e.target;t.closest?.("a[href]")&&e.preventDefault();const n=t.closest?.(`[${oe}]`);n?f.select(n.getAttribute(oe)):t.hasAttribute?.(re)||f.select(null)},onMouseOver:e=>{const t=e.target.closest?.(`[${oe}]`),n=t?.getAttribute(oe)??null;n!==k&&b(n)},onMouseLeave:()=>b(null),children:[
@@ -6,4 +6,4 @@ return $(ue.Provider,{value:e??ae,children:a})}function ge({id:e,kind:t,overlay:
6
6
  /* @__PURE__ */j("div",{className:"es-canvas-outlines",style:{position:"absolute",top:0,left:0,pointerEvents:"none"},children:[
7
7
  /* @__PURE__ */$(ge,{id:k&&k!==g?k:null,kind:"hover",overlay:u}),
8
8
  /* @__PURE__ */$(ge,{id:g,kind:"selected",overlay:u})]}),p]}),S=c?/* @__PURE__ */$(c,{document:v,children:w}):w;x(()=>{if(v&&m)return Q(v,f)},[v,m,f]);/* @__PURE__ */
9
- return $("div",{className:"es-canvas"+(t?` ${t}`:""),style:n,"data-puck-preview":"",children:e?/* @__PURE__ */$(le,{mirrorStyles:r,onDocument:e=>{y(e??void 0),a?.(e)},height:i,title:s,nonce:d,children:S}):/* @__PURE__ */$("div",{id:"preview-frame","data-puck-entry":"",children:S})})}function be(e={}){const t=ee(),o=te(e=>e.appState.data);return n({...e,data:o,config:t.config,commit:(e,{select:n})=>t.run({data:e,select:n})})}function we(){const e=ee(),t=te(e=>e.config),n=e.resolveCache,o=te(e=>e.selectedItem),a=te(e=>e.appState.data.root),i=o?o.props.id:"root",s=a.props??{},l=M(()=>o||{type:"root",props:s},[o,s]),c=o?t.components[o.type]:t.root,u=e.getState(),p=o?d(u.appState.data,t,i):null,f=p&&"root"!==p.place.parentId?p.place.parentId:null,h=f?u.getItemById(f)??null:null,{fields:m}=r({id:i,node:l,block:c,parent:h,appState:u.appState}),v=te(e=>!1===e.getPermissions(o?{item:o}:{root:!0}).edit),y=Z((o,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,[o]:r}},{node:c}=await b(l,t,{cache:n,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 b({type:"root",props:{...s,[o]:r}},t,{cache:n,trigger:"replace"});e.dispatch({type:"replaceRoot",root:{props:d.props,readOnly:d.readOnly},recordHistory:!0})})()},[e,t,n,i]);return{id:i,node:l,fields:m,values:l.props,readOnly:v,onChange:y}}export{le as CanvasFrame,Y as DEFAULT_UI,ke as EaselCanvas,_ as EaselProvider,ye as EditDocument,Q as bindUndoKeys,X as createEasel,ne as createUseEasel,B as recordsByDefault,V as reduce,K as uiView,te as useEasel,ee as useEaselApi,be as useEaselNodeOps,we as useSelectedFields,F as validSelection};
9
+ return $("div",{className:"es-canvas"+(t?` ${t}`:""),style:n,"data-puck-preview":"",children:e?/* @__PURE__ */$(le,{mirrorStyles:r,onDocument:e=>{y(e??void 0),a?.(e)},height:i,title:s,nonce:d,children:S}):/* @__PURE__ */$("div",{id:"preview-frame","data-puck-entry":"",children:S})})}function be(e={}){const t=ee(),n=te(e=>e.appState.data);return r({...e,data:n,config:t.config,commit:(e,{select:n})=>t.run({data:e,select:n})})}function we(){const e=ee(),n=te(e=>e.config),o=e.resolveCache,r=te(e=>e.selectedItem),a=te(e=>e.appState.data.root),i=r?r.props.id:"root",s=a.props??{},l=M(()=>r||{type:"root",props:s},[r,s]),c=r?n.components[r.type]:n.root,u=e.getState(),p=r?d(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=te(e=>!1===e.getPermissions(r?{item:r}:{root:!0}).edit),y=Z((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 b(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 b({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{le as CanvasFrame,Y as DEFAULT_UI,ke as EaselCanvas,_ as EaselProvider,ye as EditDocument,Q as bindUndoKeys,X as createEasel,ne as createUseEasel,B as recordsByDefault,V as reduce,K as uiView,te as useEasel,ee as useEaselApi,be as useEaselNodeOps,we as useSelectedFields,F as validSelection};
@@ -0,0 +1,14 @@
1
+ import{DEFAULT_PANEL_WORDS as e}from"./chunk-QTLAVDJE.js";import{SettingsSwitch as a}from"./chunk-QLD57GBB.js";import{Tabs as l,CountBadge as n,Tooltip as i}from"efficient-shell/ui";import{jsx as s,jsxs as r,Fragment as t}from"react/jsx-runtime";import{isValidElement as c,cloneElement as d}from"react";function o(e){const a=e[0];if(!a?.htmlId||!a.htmlId.endsWith(`-tab-${a.id}`))return;const l=a.htmlId.slice(0,-`-tab-${a.id}`.length);return e.every(e=>e.htmlId===`${l}-tab-${e.id}`)?l:void 0}function u({items:a,activeId:c,onSelect:d,ariaLabel:u=e.settings,idPrefix:h,className:m}){
2
+ /* @__PURE__ */
3
+ return s("div",{className:"es-tabs-fit",children:/* @__PURE__ */s(l,{variant:"pill","aria-label":u,idPrefix:h??o(a),className:m?`es-tabs ${m}`:"es-tabs",value:c,onChange:d,items:a.map(e=>{const a="number"==typeof e.badge&&e.badge>0?/* @__PURE__ */s(n,{count:e.badge,tone:"accent"}):null;return e.icon?{id:e.id,label:/* @__PURE__ */r(t,{children:[
4
+ /* @__PURE__ */r(i,{content:e.label,className:"es-tab-tip",children:[
5
+ /* @__PURE__ */s("span",{className:"es-tab-icon","aria-hidden":"true",children:e.icon}),
6
+ /* @__PURE__ */s("span",{className:"es-tab-word has-icon",children:e.label})]}),a]})}:{id:e.id,label:/* @__PURE__ */r(t,{children:[
7
+ /* @__PURE__ */s("span",{className:"es-tab-word",children:e.label}),a]})}})})})}function h(e){return Array.isArray(e)?e.some(h):c(e)}function m(e,l,n){if(!c(e)||e.type!==a)return e;const i=e.props;return i.ariaLabel||i.ariaLabelledBy?e:d(e,n?{ariaLabelledBy:n}:{ariaLabel:l})}function p({label:e,labelId:a,icon:l,value:n,hint:i,changed:c,htmlFor:d,action:o,children:u,className:p}){const b=h(u),f=h(o);if(!b&&!f)return null;const N=["es-field"];b||N.push("is-inline"),c&&N.push("is-changed"),p&&N.push(p);const g=/* @__PURE__ */r(t,{children:[l?/* @__PURE__ */s("span",{className:"es-field-icon","aria-hidden":"true",children:l}):null,
8
+ /* @__PURE__ */s("span",{className:"es-field-label",id:a,children:e})]});/* @__PURE__ */
9
+ return r("div",{className:N.join(" "),children:[
10
+ /* @__PURE__ */r("div",{className:"es-field-head",children:[d?/* @__PURE__ */s("label",{className:"es-field-name",htmlFor:d,children:g}):/* @__PURE__ */s("span",{className:"es-field-name",children:g}),null!=n?/* @__PURE__ */s("span",{className:"es-field-value",children:n}):null,f?m(o,e,a):null]}),b?/* @__PURE__ */s("div",{className:"es-field-ctl",children:u}):null,i?/* @__PURE__ */s("p",{className:"es-field-hint",children:i}):null]})}function b({title:e,open:a,onToggle:l,count:n,id:i,children:t,className:c}){const d=i?`${i}-body`:void 0;/* @__PURE__ */
11
+ return r("div",{className:c?`es-group ${c}`:"es-group",children:[
12
+ /* @__PURE__ */r("button",{type:"button",id:i,"aria-expanded":a,"aria-controls":d,className:"es-group-head",onClick:()=>l(!a),children:[e,"number"==typeof n&&n>0?/* @__PURE__ */s("span",{className:"es-group-count",children:n}):null,
13
+ /* @__PURE__ */s("span",{className:"es-group-sign","aria-hidden":"true"})]}),
14
+ /* @__PURE__ */s("div",{id:d,className:"es-group-body",hidden:!a,children:t})]})}var f=Object.freeze(["Content","Style","Layout","Animation"]);export{f as SETTINGS_BUCKETS,p as SettingsField,b as SettingsGroup,u as SettingsTabs};
@@ -0,0 +1,5 @@
1
+ import{slotFieldsOf as n}from"./chunk-PLVEGYK6.js";import{usePickFollowsSelection as e}from"./chunk-R6WTQWAC.js";import{EaselCanvas as t,useSelectedFields as r}from"./chunk-PYCLHOSA.js";import{Inspector as o}from"./chunk-WDXPWSP7.js";import{DesktopIcon as u}from"./chunk-L5KW4HG5.js";import{createContext as i,useContext as l}from"react";import{jsx as s}from"react/jsx-runtime";var c={kind:"puck"};function a(n,e){const t=n,r=e,o=Object.keys(t);return o.length===Object.keys(r).length&&o.every(n=>Object.is(t[n],r[n]))}function f(n){const e=n;return"string"==typeof e.nodeId&&"string"==typeof e.slot}function d(e,t,r){const o=e.slotsOf?.(r);return o||n(t,r.type).map(n=>({slot:n,label:n,rung:!1}))}function p(n,e){return n.isFirst?n.isFirst(e):e.type===n.first}function k(n,e){return n.isLast?n.isLast(e):e.type===n.last}var m={},h={},v=()=>m,g=()=>"",y=()=>null,b=()=>{},L={isLockedBlock:()=>!1,duplicateBlocked:()=>null,nestDepth:()=>0,newSectionNode:()=>null,canAddTo:()=>null,blockIsOffered:()=>!0},O={labelAtLevel:(n,e,t)=>t,descriptions:{},categoryLabel:()=>{},firstSection:null,blockRowName:(n,e)=>e(n.type),plainText:n=>n,Icon:()=>null,Thumbnail:()=>null,useProducts:()=>null},j={options:[{id:"desktop",label:"Desktop",icon:/* @__PURE__ */s(u,{})}],initial:"desktop",fluid:"desktop",widths:{desktop:2e3}},P={read:()=>"sections",write:()=>{},forSelection:(n,e)=>n?"sections":e},S={first:null,last:null,firstGroup:null,lastGroup:null,isSectionGroup:()=>!1,sectionGroupZone:()=>"",panelOf:()=>null};function w(){/* @__PURE__ */
2
+ return s(t,{height:"fill"})}function C(){const{id:n,fields:e,values:t,readOnly:u,onChange:i}=r();/* @__PURE__ */
3
+ return s("div",{className:"es-sidepanel es-sidepanel--right",children:/* @__PURE__ */s(o,{fields:e,values:t,onChange:i,readOnly:u,idPrefix:n})})}var D=i({});function G({parts:n,children:e}){/* @__PURE__ */
4
+ return s(D.Provider,{value:n,children:e})}function N(){return l(D)}function W(){return(N().useOwnerName??g)()}function x(){return(N().useDocumentLabel??y)()}function A(n,e,t,r){return(N().useBridges??v)(n,e,t,r)}function B(n){return(N().useStandaloneBridges??v)(n)}function I(n,e){(N().useDocumentPass??b)(n,e)}function T(){return N().blockRules??L}function F(){return N().blockLook??O}function H(){return N().devices??j}function K(){return N().leftView??P}function R(){return N().pinned??S}function V(){return N().saveSwitch??!0}function Y(n){e(!0===N().pickFollowsSelection,n)}function E(){return N().add??h}function Q(){return N().storageNamespace||void 0}function X(){return N().styleClipboard??null}function Z(){return N().nodeKeys??!0}function q(){return N().notify??null}function z(){return N().Canvas??w}function J(){return N().CanvasHead??null}function M(){return N().canvasDrag??null}var U=i(null);function $({target:n,children:e}){/* @__PURE__ */
5
+ return s(U.Provider,{value:n,children:e})}function _(){return l(U)}function nn(){return N().Inspector??C}export{c as SELECTION_MODE,$ as ScreenCanvasTargetProvider,G as ScreenPartsProvider,p as isPinnedFirst,k as isPinnedLast,f as isSlotMode,a as sameInspectorMode,d as screenSlotsOf,E as useScreenAdd,F as useScreenBlockLook,T as useScreenBlockRules,A as useScreenBridges,M as useScreenCanvasDrag,z as useScreenCanvasFrame,J as useScreenCanvasHead,_ as useScreenCanvasTarget,H as useScreenDevices,x as useScreenDocumentLabel,I as useScreenDocumentPass,nn as useScreenInspectorPanel,K as useScreenLeftView,Z as useScreenNodeKeys,q as useScreenNotify,W as useScreenOwnerName,N as useScreenParts,Y as useScreenPickFollowsSelection,R as useScreenPinned,V as useScreenSaveSwitch,Q as useScreenStorageNamespace,X as useScreenStyleClipboard,B as useStandaloneScreenBridges};
@@ -0,0 +1,6 @@
1
+ import{Segmented as e,Switch as a,Tooltip as s}from"efficient-shell/ui";import{jsx as i,jsxs as l}from"react/jsx-runtime";function n({options:a,value:n,onChange:d,ariaLabel:t,fit:r,disabled:c=!1,className:o}){const b=r&&function(e,a){return{"--es-fit-count":e,"--es-fit-labels":`${a.labelsPx}px`,"--es-fit-widest":`${a.widestLabelPx}px`}}(a.length,r),h=a.findIndex(e=>e.id===n);
2
+ /* @__PURE__ */
3
+ return i("div",{className:"es-segs-fit","data-disabled":c||void 0,style:b,children:/* @__PURE__ */i(e,{size:"sm",label:t,className:`es-segs${b?" is-measured":""}${o?` ${o}`:""}`,value:h<0?"":String(h),onChange:e=>d(a[Number(e)].id),options:a.map((e,a)=>{const n=e.title??("string"==typeof e.label?e.label:void 0),d="string"!=typeof e.label,t=a=>n&&(e.icon||d)?/* @__PURE__ */i(s,{content:n,children:a}):a;return{value:String(a),disabled:c||!0===e.disabled,icon:e.icon?t(
4
+ /* @__PURE__ */i("span",{className:"es-seg-icon","aria-hidden":"true",children:e.icon})):void 0,label:d?/* @__PURE__ */l("span",{className:"es-seg-word",children:[t(/* @__PURE__ */i("span",{"aria-hidden":"true",children:e.label})),
5
+ /* @__PURE__ */i("span",{className:"es-vh",children:n})]}):/* @__PURE__ */i("span",{className:"es-seg-word",children:e.label})}})})})}function d({checked:e,onChange:s,disabled:l,id:n,ariaLabel:d,ariaLabelledBy:t,className:r}){/* @__PURE__ */
6
+ return i(a,{size:"sm",id:n,checked:e,"aria-label":d,"aria-labelledby":t,disabled:l,className:r?`es-switch ${r}`:"es-switch",onChange:s})}export{n as SettingsSegmented,d as SettingsSwitch};
@@ -0,0 +1,5 @@
1
+ import{PanelToggleIcon as e}from"./chunk-KQMML6JM.js";import{InspectorHead as n}from"./chunk-TJ7YIRWQ.js";import{Tooltip as i,IconButton as t,Button as o}from"efficient-shell/ui";import{jsx as s,jsxs as l,Fragment as c}from"react/jsx-runtime";function d({icon:e,title:i,context:t,actions:o,side:d="left",onHide:a}){/* @__PURE__ */
2
+ return s(n,{icon:e,name:i,kind:t,actions:o||a?/* @__PURE__ */l(c,{children:[o,a?/* @__PURE__ */s(r,{side:d,onHide:a,divider:Boolean(o)}):null]}):void 0})}function r({side:n,onHide:o,divider:d=!1}){/* @__PURE__ */
3
+ return l(c,{children:[d?/* @__PURE__ */s("span",{className:"sf-head-divider","aria-hidden":"true"}):null,
4
+ /* @__PURE__ */s(i,{content:"Hide panel",side:"bottom",children:/* @__PURE__ */s(t,{className:"es-insp-iconbtn","aria-label":`Hide the ${n} panel`,onClick:o,children:/* @__PURE__ */s(e,{side:n})})})]})}function a({side:n,onShow:o}){/* @__PURE__ */
5
+ return s("div",{className:`es-sidepanel es-sidepanel--${n} sf-panel-strip`,children:/* @__PURE__ */s(i,{content:"Show panel",side:"bottom",children:/* @__PURE__ */s(t,{className:"es-insp-iconbtn","aria-label":`Show the ${n} panel`,onClick:o,children:/* @__PURE__ */s(e,{side:n})})})})}function h({label:e,onClick:n,description:t}){const l=/* @__PURE__ */s(o,{variant:"secondary",size:"sm",className:"es-insp-textbtn",onClick:n,children:e});return t?/* @__PURE__ */s(i,{content:t,side:"bottom",children:l}):l}export{r as PanelHideButton,h as PanelModeExit,a as PanelShowStrip,d as SidePanelHead};
@@ -0,0 +1,4 @@
1
+ import{blockRuns as e}from"./chunk-HQ4VVRIC.js";import{useScreenBlockLook as s}from"./chunk-QFMJBBKM.js";import{DropdownMenu as r}from"efficient-shell/ui";import{jsxs as t,Fragment as l,jsx as i}from"react/jsx-runtime";function c({choices:c,onPick:n}){const{Icon:a}=s(),o=e(c).flatMap(e=>[...e.group?[{type:"label",key:`group:${e.group}`,label:/* @__PURE__ */t(l,{children:[e.group," ",
2
+ /* @__PURE__ */i("span",{className:"sf-menugroup-count",children:e.items.length})]})}]:[],...e.items.map(e=>({key:e.type,label:e.label,icon:/* @__PURE__ */i("span",{className:"sf-chip",children:/* @__PURE__ */i(a,{type:e.type,size:13})}),onSelect:()=>n(e.type)}))]);/* @__PURE__ */
3
+ return i(r,{align:"start",triggerClassName:"sf-add-card",items:o,trigger:/* @__PURE__ */t(l,{children:[
4
+ /* @__PURE__ */i("span",{className:"sf-plus sf-plus--sm",children:"+"}),"Add block"]})})}export{c as AddBlockRow};
@@ -0,0 +1 @@
1
+ import{useScreenBlockRules as e}from"./chunk-QFMJBBKM.js";import{newNodeId as t,ROOT_ZONE as n}from"./chunk-PLVEGYK6.js";import{useEasel as o,useEaselApi as r}from"./chunk-PYCLHOSA.js";import{useMemo as s}from"react";function i(i={}){const{dispatch:p}=o(e=>e),d=r(),c=!0===i.readOnly,a=e().resolveOnInsert,l=!0===(i.resolveOnInsert??a),m=!0===i.foldIntoHistory;return s(()=>{const e=m?e=>p({...e,recordHistory:!1}):p,o=(n,o,r)=>{const s=t(o);return c||e({type:"insert",componentType:o,destinationZone:n,destinationIndex:r,id:s}),s},r=e=>(l&&!c&&d.resolveNode(e,{trigger:"insert"}),e),s=(t,n,o)=>{c||e({type:"replace",destinationZone:t,destinationIndex:n,data:o})},i=(e,t,n)=>r(o(e,t,n));return{insertComponent:i,insertSection:(e,t)=>i(n,e,t),replaceComponent:s,seedChild:(e,t,n,i)=>{const p=o(e,n,t);s(e,t,{type:n,props:{id:p,...i}}),r(p)},insertNode:(e,t,n)=>{const i=o(e,n.type,t);return s(e,t,{type:n.type,props:{...n.props,id:i}}),r(i)},removeComponent:(t,n)=>{c||e({type:"remove",index:n,zone:t})},reorderComponent:(t,n,o)=>{c||e({type:"reorder",sourceIndex:n,destinationIndex:o,destinationZone:t})},duplicateComponent:(t,n)=>{c||e({type:"duplicate",sourceIndex:n,sourceZone:t})},select:e=>p({type:"setUi",ui:{itemSelector:e}}),setDocument:t=>{c||e({type:"setData",data:t})},commitDocument:(t,n)=>{c||(m?d.batch(()=>{e({type:"setData",data:t}),void 0!==n&&("slot"===n?.kind?d.selectSlot({parentId:n.parentId,slot:n.slot}):d.select(n?n.id:null))}):d.run({data:t,select:n}))}}},[p,c,l,d,m])}export{i as useSectionOps};
@@ -0,0 +1,7 @@
1
+ import{clientOnly as n}from"./chunk-GXQCZJOP.js";import{ScreenStoreProvider as e}from"./chunk-FER7FCAG.js";import{ScreenChrome as r}from"./chunk-O5F46JWM.js";import{ScreenDocumentProvider as a,useScreenDocument as i}from"./chunk-ONRYLR2D.js";import{DEFAULT_SCREEN_WORDS as s}from"./chunk-E2O2MRZR.js";import{documentPermissions as o}from"./chunk-THWO5YVZ.js";import{useWords as t}from"./chunk-MFIRYGHW.js";import{useMemo as c}from"react";import{Dialog as d,Button as l}from"efficient-shell/ui";import{jsx as m,jsxs as g,Fragment as h}from"react/jsx-runtime";var v=n(e),f=n(r);function p({saving:n,onCancel:e,onDiscard:r,onSave:a}){/* @__PURE__ */
2
+ return m(d,{open:!0,role:"alertdialog",size:"sm",title:"Unsaved changes",onClose:e,footer:/* @__PURE__ */g(h,{children:[
3
+ /* @__PURE__ */m(l,{variant:"secondary",onClick:e,children:"Cancel"}),
4
+ /* @__PURE__ */m(l,{variant:"ghost-danger",onClick:r,children:"Discard & leave"}),
5
+ /* @__PURE__ */m(l,{variant:"primary",loading:n,onClick:a,children:n?"Saving…":"Save & leave"})]}),children:"Your most recent edits haven’t finished saving yet. Save them before switching, or leave and discard them."})}function u({target:n,addressing:e,onHostMessage:r,children:i}){/* @__PURE__ */
6
+ return m(a,{target:n,addressing:e,onHostMessage:r,children:i})}var C=(n,e)=>/* @__PURE__ */g(h,{children:[n,e]});function k({config:n,parts:e,wrap:r=C}){const{data:a,error:d,redirecting:l,ready:g,saveStatus:h,readOnly:u,onChange:k,pendingNav:N,cancelPendingNav:j,discardAndNavigate:O,saveAndNavigate:R}=i(),S=c(()=>o(!u),[u]),y=t("screen",s);return l?/* @__PURE__ */m("div",{className:"sf-msg",children:y.loading}):d?/* @__PURE__ */m("div",{className:"sf-msg sf-msg--error",children:d}):g?a?r(
7
+ /* @__PURE__ */m(v,{config:n,data:a,onChange:k,permissions:S,parts:e,children:/* @__PURE__ */m(f,{})}),N&&/* @__PURE__ */m(p,{saving:"saving"===h,onCancel:j,onDiscard:O,onSave:()=>{R()}})):/* @__PURE__ */m("div",{className:"sf-msg",children:y.loading}):/* @__PURE__ */m("div",{className:"sf-msg",children:y.waitingForAuthorization})}export{k as DocumentScreen,u as ScreenMount};
@@ -0,0 +1,21 @@
1
+ import{DEFAULT_NOTICE_WORDS as e,DEFAULT_CHROME_WORDS as n}from"./chunk-ZJEBF4NB.js";import{holderOf as i,describeAge as a,nameOrSomeone as s}from"./chunk-THWO5YVZ.js";import{DEFAULT_LOCK_WORDS as t}from"./chunk-RE4LP46F.js";import{EaselRail as l}from"./chunk-MJM6SFD3.js";import{DEFAULT_RAIL_WORDS as r}from"./chunk-2OAZYSWJ.js";import{useWords as o}from"./chunk-MFIRYGHW.js";import{PanelLeftIcon as c,PanelRightIcon as d,MediaIcon as u,ImageIcon as h}from"./chunk-L5KW4HG5.js";import{jsx as m,jsxs as v,Fragment as f}from"react/jsx-runtime";import{Tooltip as k,IconButton as p,Segmented as b,Switch as g,ResizeHandle as y,Button as N,Banner as w}from"efficient-shell/ui";function C({children:e}){/* @__PURE__ */
2
+ return m("div",{className:"es-topbar",children:e})}function O({kind:e,style:n,children:i}){/* @__PURE__ */
3
+ return m("div",{className:e?`es-cluster es-cluster--${e}`:"es-cluster",style:n,children:i})}function x(){/* @__PURE__ */
4
+ return m("div",{className:"es-divider-v","aria-hidden":"true"})}function z({items:e,ariaLabel:n,onWords:i}){const a=o("rail",r);/* @__PURE__ */
5
+ return m("div",{className:"es-cluster es-cluster--rail es-rail-fit",children:/* @__PURE__ */m(l,{items:e,ariaLabel:n??a.label,orientation:"row",onLabelsShown:i})})}function B({label:e,onClick:n,disabled:i,state:a,buttonRef:s,children:t}){/* @__PURE__ */
6
+ return m(k,{content:e,side:"bottom",children:/* @__PURE__ */m(p,{ref:s,"aria-label":e,"aria-pressed":a?"active"===a:void 0,className:"es-iconbtn",disabled:i,onClick:n,children:t})})}function L({devices:e,value:i,onChange:a,ariaLabel:s}){const t=o("chrome",n);/* @__PURE__ */
7
+ return m(b,{className:"es-devseg",size:"sm",label:s??t.device,value:i,onChange:e=>{e!==i&&a(e)},options:e.map(e=>({value:e.id,icon:/* @__PURE__ */m(k,{content:e.label,side:"bottom",children:/* @__PURE__ */m("span",{className:"es-devseg-glyph","aria-hidden":"true",children:e.icon})}),label:/* @__PURE__ */m("span",{className:"es-vh",children:e.label})}))})}var R={idle:"is-quiet",saved:"is-quiet is-saved",saving:"is-saving",error:"is-error",off:"is-off","off-unsaved":"is-off is-unsaved"};function W({tone:e,label:n,counting:i,waitMs:a,ringRef:s,role:t}){/* @__PURE__ */
8
+ return v("span",{className:`es-savestate ${R[e]}`,role:t,"aria-live":"polite",children:[/* @__PURE__ */m("span",i?{ref:s,className:"es-savestate-ring is-counting",style:void 0!==a?{"--es-savewait":`${a}ms`}:void 0,"aria-hidden":"true"}:{className:"es-savestate-dot","aria-hidden":"true"}),n]})}function $({pressed:e,title:n,onToggle:i,children:a}){/* @__PURE__ */
9
+ return m("span",{className:"es-savestate-toggle",children:/* @__PURE__ */m(k,{content:n,side:"bottom",children:/* @__PURE__ */m(g,{size:"sm",checked:!e,"aria-label":n,label:a,onChange:()=>i()})})})}function j({side:e,width:i,min:a,max:s,defaultWidth:t,label:l,onResize:r}){const c=o("chrome",n);/* @__PURE__ */
10
+ return m(y,{side:e,width:i,min:a,max:s,defaultWidth:t,label:l,hint:c.resize,onResize:e=>r(e),className:`es-resizer es-resizer--${e}`})}function M({icon:e,name:n,kind:i,actions:a}){/* @__PURE__ */
11
+ return v("div",{className:"es-insp-head",children:[
12
+ /* @__PURE__ */m("span",{className:"es-insp-chip","aria-hidden":"true",children:e}),
13
+ /* @__PURE__ */v("div",{className:"es-insp-titles",children:[
14
+ /* @__PURE__ */m("h2",{className:"es-insp-name",children:n}),
15
+ /* @__PURE__ */m("div",{className:"es-insp-kind",children:i})]}),a?/* @__PURE__ */m("div",{className:"es-insp-actions",children:a}):null]})}function S({label:e,title:n,hasPopup:i,onClick:a,disabled:s,danger:t,expanded:l,buttonRef:r,children:o}){/* @__PURE__ */
16
+ return m(k,{content:n??e,side:"bottom",children:/* @__PURE__ */m(p,{ref:r,variant:t?"ghost-danger":"ghost",className:"es-insp-iconbtn","aria-label":e,"aria-haspopup":i,"aria-expanded":l,disabled:s,onClick:a,children:o})})}function P({name:e,onSelect:i,label:a,inline:s}){const t=o("chrome",n),l=a??t.upLevel,r=/* @__PURE__ */m(k,{content:l,side:"bottom",children:/* @__PURE__ */m(N,{variant:"link",size:"sm",className:"es-insp-up-btn","aria-label":t.upLevelTo({label:l,name:e}),leftIcon:/* @__PURE__ */m("span",{className:"es-insp-up-arrow","aria-hidden":"true",children:"←"}),onClick:i,children:/* @__PURE__ */m("span",{className:"es-insp-up-name",children:e})})});return s?r:/* @__PURE__ */m("div",{className:"es-insp-up",children:r})}function F({context:e,pick:i,onCancel:a,onHide:s,side:t="left"}){const l=o("chrome",n),r=s?/* @__PURE__ */m(S,{label:l.hidePanelLabel({side:t}),title:l.hidePanel,onClick:s,children:/* @__PURE__ */m("left"===t?c:d,{size:16})}):null;if(!i)/* @__PURE__ */
17
+ return m(M,{icon:/* @__PURE__ */m(u,{}),name:l.mediaLibrary,kind:e,actions:r??void 0});const p=l.mediaKinds[i.kind];/* @__PURE__ */
18
+ return m(M,{icon:/* @__PURE__ */m(h,{size:15}),name:l.mediaChoose({kind:p}),kind:i.field?l.mediaFor({field:i.field}):e,actions:/* @__PURE__ */v(f,{children:[
19
+ /* @__PURE__ */m(k,{content:l.mediaKeep({kind:p}),side:"bottom",children:/* @__PURE__ */m(N,{variant:"secondary",size:"sm",className:"es-insp-textbtn",onClick:a,children:l.mediaCancel})}),r?/* @__PURE__ */v(f,{children:[
20
+ /* @__PURE__ */m("span",{className:"es-insp-divider","aria-hidden":"true"}),r]}):null]})})}function H(e){return/svg/i.test(e)?"svg":e.startsWith("video")?"video":"image"}var T={notice:e,lock:t};function Y(e,n,t,l=T){const r=l.notice,o=i(e),c={kind:"reload",label:r.reload};if(n){const e=a(n.secondsAgo,l.lock);return{tone:"warning",urgent:!0,lead:n.savedByYou?r.savedByYou({noun:t,when:e}):r.savedByOther({name:s(n.savedBy,l.lock),noun:t,when:e}),body:r.conflictBody,actions:o?[c,{kind:"take-over",label:r.takeOver,title:r.takeOverWhileDeciding}]:[c]}}if(!o)return null;const d=s(o.name,l.lock),u=a(o.secondsSinceSeen,l.lock);switch(e.kind){case"takenover":return{tone:"warning",urgent:!0,lead:r.tookOver({name:d,noun:t,when:a(o.secondsSinceHeld,l.lock)}),body:r.tookOverBody,actions:[{kind:"take-back",label:r.takeBack},c]};case"readonly":return{tone:"neutral",urgent:!1,lead:r.viewingOnly,body:r.viewingOnlyBody({name:d,noun:t,seen:u}),actions:[{kind:"take-over",label:r.takeOver}]};default:return{tone:"warning",urgent:!1,lead:r.editing({name:d,noun:t}),body:r.editingBody({seen:u}),actions:[{kind:"view-read-only",label:r.viewReadOnly},{kind:"take-over",label:r.takeOver,title:r.takeOverTold}]}}}function J({access:n,conflict:i,noun:a,onTakeOver:s,onViewReadOnly:l,onReload:r}){const c=Y(n,i,a,{notice:o("notice",e),lock:o("lock",t)});if(!c)return null;const d={reload:r,"take-over":s,"take-back":s,"view-read-only":l},u=c.actions.map(e=>e.title?/* @__PURE__ */m(k,{content:e.title,side:"bottom",children:/* @__PURE__ */m(N,{variant:"secondary",size:"sm",onClick:d[e.kind],children:e.label})},e.kind):/* @__PURE__ */m(N,{variant:"secondary",size:"sm",onClick:d[e.kind],children:e.label},e.kind));/* @__PURE__ */
21
+ return m("div",{className:`es-notice is-${c.tone}`,role:c.urgent?"alert":"status",children:/* @__PURE__ */m(w,{tone:"warning"===c.tone?"warning":"info",title:c.lead,action:/* @__PURE__ */m("span",{className:"es-notice-actions",children:u}),children:c.body})})}var K={left:288,right:320},Z=220,q=560;function A(e){return Math.min(560,Math.max(220,Math.round(e)))}function D(e){return{"--es-left-w":`${e.left}px`,"--es-right-w":`${e.right}px`}}function E(e,n){e.style.setProperty("--es-left-w",`${n.left}px`),e.style.setProperty("--es-right-w",`${n.right}px`)}export{K as DEFAULT_PANEL_W,L as DeviceSwitch,B as EaselIconButton,C as EaselTopBar,J as EditNotice,M as InspectorHead,S as InspectorIconButton,P as InspectorUpLevel,q as MAX_PANEL_W,Z as MIN_PANEL_W,F as MediaPanelHead,j as PanelResizeHandle,W as SaveState,$ as SaveStateToggle,O as TopBarCluster,x as TopBarDivider,z as TopBarRail,A as clampPanelWidth,Y as editNotice,H as mediaPickKind,D as panelWidthVars,E as setPanelWidthVars};
@@ -1 +1 @@
1
- import{applyEaselChromeTheme as e}from"./chunk-3WSPDAK2.js";import{useEaselSession as t}from"./chunk-O7Q4DDJT.js";import{currentEaselSession as n,setSessionBridgedSite as r}from"./chunk-RSCMJIWS.js";import{useEaselHost as o}from"./chunk-U3JP4VGF.js";import{useState as s,useRef as a,useEffect as c}from"react";var u={canCreatePlatformTemplate:!1};function i(t,o={}){const s=o.session??n();s.auth.token=t.token,s.auth.brandId=t.brandId??null,r(s,t.siteId),(o.stampChromeTheme??!0)&&e(t.theme)}function m(e){const[n,r]=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=o(),h=t();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,r(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:n,tokenRef:m,capabilities:l}}export{u as NO_BRIDGED_CAPABILITIES,i as applyAuthGrant,m as useAdminBridge};
1
+ import{applyEaselChromeTheme as e}from"./chunk-LOMEH6DG.js";import{useEaselSession as t}from"./chunk-O7Q4DDJT.js";import{currentEaselSession as n,setSessionBridgedSite as r}from"./chunk-RSCMJIWS.js";import{useEaselHost as o}from"./chunk-U3JP4VGF.js";import{useState as s,useRef as a,useEffect as c}from"react";var u={canCreatePlatformTemplate:!1};function i(t,o={}){const s=o.session??n();s.auth.token=t.token,s.auth.brandId=t.brandId??null,r(s,t.siteId),(o.stampChromeTheme??!0)&&e(t.theme)}function m(e){const[n,r]=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=o(),h=t();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,r(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:n,tokenRef:m,capabilities:l}}export{u as NO_BRIDGED_CAPABILITIES,i as applyAuthGrant,m as useAdminBridge};
@@ -0,0 +1,16 @@
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{withTip as h}from"./chunk-P2VEMZH5.js";import{CloseIcon as p,SearchIcon as f}from"./chunk-L5KW4HG5.js";import{parseZoneKey as m}from"./chunk-KRXQM65X.js";import{useRef as b,useEffect as g,useState as y,useCallback as v,useMemo as x,useSyncExternalStore as k,useId as w,useLayoutEffect as N}from"react";import{Tooltip as A}from"efficient-shell/ui";import{jsxs as D,jsx as z}from"react/jsx-runtime";var T=(e,t,n)=>t>=e.left&&t<=e.left+e.width&&n>=e.top&&n<=e.top+e.height,C=e=>e.width*e.height;function S(e,t,n){let l=null;for(const r of e)T(r.box,t,n)&&(!l||C(r.box)<=C(l.box))&&(l=r);return l}function E(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 $(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 L(e,t,n,l,r=()=>!1,a=()=>!0){const o=e.filter(e=>T(e.box,t,n)).sort((e,t)=>C(e.box)-C(t.box));for(const e of o){const o=E(e,t,n),s={...e.list,index:o};if(r(s))return null;if(l(s))return{zone:e,to:s,line:$(e,o)};if(!a(s))return null}return null}function j(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 M={nodes:[],zones:[]},B="data-puck-dropzone",K="data-puck-component";function O(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 X(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(`[${B}]`)){const t=e.getAttribute(B)??"";let n;try{n=m(t)}catch{continue}const l=[...e.querySelectorAll(`[${K}]`)].filter(t=>t.parentElement?.closest(`[${B}]`)===e),s=l.map(r);o.push({key:t,list:n,box:r(e),axis:O(s,e),children:s}),l.forEach((e,t)=>{const l=e.getAttribute(K);l&&a.push({id:l,place:{...n,index:t},box:s[t]})})}return{nodes:a,zones:o}}var q="data-es-empty-cell",P="data-puck-dropzone",Y=140;var Z=e=>({left:e.left,top:e.top,width:e.width,height:e.height});function F(d){const{canvas:h,session:p,readOnly:f,words:m=e.canvas}=d,w=b(d);g(()=>{w.current=d});const T=b(null),C=o(h),[E,$]=y(0),j=v(()=>$(e=>e+1),[]),[B,K]=y(M);g(()=>{const e=T.current;h&&e&&K((w.current.measure??X)(h,e))},[h,C,d.revision,E]);const O=d.model,Y=x(()=>O(B),[O,B]),F=k(p.subscribe,p.shown,p.shown),[R,G]=y(null),[H,Q]=y(null),V=b(null),W=()=>{V.current&&clearTimeout(V.current),V.current=null},I=()=>{W(),V.current=setTimeout(()=>{p.get()||G(null)},140)};g(()=>W,[]);const J=b(null);s(h,"mousemove",e=>{const t=T.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(J.current=r,w.current.readOnly||p.get())return;W();const a=S(Y.sources,r.x,r.y);G(e=>e?.key===a?.key&&e?.box===a?.box?e:a)}),s(h,"mouseout",e=>{e.relatedTarget||(J.current=null,I())}),s(h,"mouseover",e=>{e.relatedTarget||j()});const U=b(null),_=v(()=>{U.current?.(),U.current=null,Q(null)},[]);g(()=>p.subscribe(()=>{p.get()?j():_()}),[p,_,j]),g(()=>_,[_]),("undefined"==typeof document?g:N)(()=>{if(p.get())return;const e=J.current;G(t=>f?null:e?S(Y.sources,e.x,e.y):t?Y.sources.find(e=>e.key===t.key)??null:null)},[Y,F,p,f]);const ee=e=>{const t=p.get(),n=T.current;if(!t||!n)return null;const l=u(n,e.clientX,e.clientY);J.current=l;const r=L(Y.zones,l.x,l.y,e=>w.current.canDrop(t.item,e),e=>!!t.from&&a(t.from,e),e=>w.current.fallThrough?.(t.item,e,t.from)??!0);return r?{h:t,t:r}:null},te={onDragEnter:e=>{if(U.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)),U.current=o.length?()=>o.forEach(e=>e()):null},onDragOver:e=>{const n=ee(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)||(J.current=null,Q(null))},onDrop:e=>{const t=ee(e);t&&(e.preventDefault(),p.end(),_(),w.current.onDrop(t.h.item,t.t.to))}},ne={draggable:!f&&!!R,onMouseEnter:W,onMouseLeave:()=>!p.get()&&I(),onDragStart:e=>{if(R&&!f){p.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:()=>{p.end(),_()},onClick:()=>{R&&!f&&w.current.onPick?.(R.item)}},{seams:le=[]}=Y,re=Y.zones.filter(e=>0===e.children.length),ae=d.onZoneAdd&&!f?re:[],oe=ae.map(e=>e.key).join("\n");return g(()=>{const e=h?.document;if(!e)return;const t=new Set(oe?oe.split("\n"):[]);for(const n of e.querySelectorAll(`[${P}]`))n.toggleAttribute(q,t.has(n.getAttribute(P)??""));return()=>{for(const t of e.querySelectorAll(`[${q}]`))t.removeAttribute(q)}},[h,oe,B,C,E]),/* @__PURE__ */D("div",{ref:T,className:"es-canvas-layer",children:[F||!d.onSeamAdd||f?null:le.map(e=>/* @__PURE__ */z("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__ */z("button",{type:"button",className:"es-canvas-seam-add",onClick:()=>d.onSeamAdd?.(e.place),children:m.addButton({label:d.seamLabel??m.addSection})})},e.key)),ae.length?ae.map(e=>/* @__PURE__ */z("button",{type:"button",className:H?.zoneKey===e.key?"es-canvas-empty is-over":"es-canvas-empty",style:Z(e.box),onClick:()=>d.onZoneAdd?.({...e.list,index:0}),children:/* @__PURE__ */z("span",{className:"es-canvas-empty-add",children:m.addButton({label:d.zoneAddLabel??m.addBlock})})},e.key)):null,F?/* @__PURE__ */z("div",{className:"es-canvas-catch",...te}):null,H&&!re.some(e=>e.key===H.zoneKey)?/* @__PURE__ */z("div",{className:`es-canvas-line is-${H.axis}`,style:Z(H.line)}):null,
2
+ /* @__PURE__ */z("div",{className:"es-canvas-handle-spot",style:R?{"--es-handle-x":`${R.box.left+2}px`,"--es-handle-y":`${Math.max(R.box.top-11,0)}px`}:void 0,children:/* @__PURE__ */z(A,{className:"es-canvas-handle-tip",side:"top",content:!R||f||F?null:R.title??m.handle({label:R.label}),children:/* @__PURE__ */D("div",{className:["es-canvas-handle",R&&!f?"is-shown":"",F?"is-dragging":""].filter(Boolean).join(" "),...ne,children:[
3
+ /* @__PURE__ */z("span",{className:"es-canvas-grip","aria-hidden":"true",children:"⋮⋮"}),R?.label]})})})]})}var R=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,[m,b]=y(""),g=w(),v=m.trim().toLowerCase(),x=function(e){const t=/* @__PURE__ */new Map;return e.map(e=>{const n=e.key??e.title,l=t.get(n)??0;return t.set(n,l+1),0===l?n:`${n}\0${l}`})}(t),k=t.map((e,t)=>({...e,key:x[t],tiles:v?e.tiles.filter(e=>((e,t)=>e.label.toLowerCase().includes(t)||(e.keywords??[]).some(e=>e.toLowerCase().includes(t)))(e,v)):e.tiles})).filter(e=>e.tiles.length>0),N=(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 D("div",{className:"es-add",children:[a?/* @__PURE__ */D("div",{className:"es-add-at",role:"status",children:[
5
+ /* @__PURE__ */z("span",{children:a.label}),h(c.stop,/* @__PURE__ */z("button",{type:"button",className:"es-add-at-clear","aria-label":c.stop,onClick:a.onClear,children:/* @__PURE__ */z(p,{size:12,"aria-hidden":"true"})}))]}):null,
6
+ /* @__PURE__ */z("p",{className:"es-add-hint",children:d}),
7
+ /* @__PURE__ */D("div",{className:"es-add-search",children:[
8
+ /* @__PURE__ */z(f,{size:16,"aria-hidden":"true"}),
9
+ /* @__PURE__ */z("input",{id:g,type:"search","aria-label":u,placeholder:c.searchPlaceholder({label:u}),value:m,onChange:e=>b(e.target.value)}),m?/* @__PURE__ */z("button",{type:"button",className:"es-add-search-clear","aria-label":c.clearSearch,onClick:()=>b(""),children:/* @__PURE__ */z(p,{size:12,"aria-hidden":"true"})}):null]}),0===k.length?/* @__PURE__ */D("div",{className:"es-add-empty",role:"status",children:[
10
+ /* @__PURE__ */z("div",{className:"es-add-empty-title",children:c.nothing({query:m.trim()})}),
11
+ /* @__PURE__ */z("div",{className:"es-add-empty-sub",children:c.tryAnother})]}):k.map(e=>/* @__PURE__ */D("section",{className:"es-add-group","aria-label":e.title,children:[
12
+ /* @__PURE__ */D("div",{className:"es-add-group-head",children:[
13
+ /* @__PURE__ */z("span",{className:"es-add-group-title",children:e.title}),
14
+ /* @__PURE__ */z("span",{className:"es-add-group-count",children:e.tiles.length})]}),
15
+ /* @__PURE__ */z("div",{className:R(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});return h(l,/* @__PURE__ */D("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}),onDragStart:N(e.type,t),onDragEnd:()=>n.end(),onClick:()=>!t&&r(e.type),children:[null!=e.cover?/* @__PURE__ */z("span",{className:"es-add-tile-cover","aria-hidden":"true",children:e.cover}):e.icon?/* @__PURE__ */z("span",{className:"es-add-tile-glyph","aria-hidden":"true",children:e.icon}):null,
16
+ /* @__PURE__ */z("span",{className:"es-add-tile-label",children:e.label})]},e.type))})})]},e.key))]})}export{G as AddPanel,F as CanvasDragLayer,M as EMPTY_MEASURE,Y as HANDLE_GRACE_MS,L as canvasTarget,T as contains,E as gapInZone,$ as gapLine,X as measureCanvas,S as pickSource,j as seamsBetween};
@@ -0,0 +1,24 @@
1
+ import{FieldSelect as e}from"./chunk-NLRW4BGG.js";import{TreeSeam as n}from"./chunk-XWR5YVA7.js";import{SettingsField as l,SETTINGS_BUCKETS as t,SettingsTabs as a,SettingsGroup as r}from"./chunk-Q27BB5ZC.js";import{DEFAULT_TREE_WORDS as i}from"./chunk-K56YDHYQ.js";import{DEFAULT_PANEL_WORDS as o}from"./chunk-QTLAVDJE.js";import{EaselMenuItems as s}from"./chunk-EA2HTX37.js";import{FieldNumber as c}from"./chunk-7SQF6LZL.js";import{SettingsSegmented as u}from"./chunk-QLD57GBB.js";import{DEFAULT_FIELDS_WORDS as d}from"./chunk-FPOKPNO4.js";import{useWords as m}from"./chunk-MFIRYGHW.js";import{useTreeDrag as p,gapToMoveIndex as h}from"./chunk-67GNT6PF.js";import{withTip as b}from"./chunk-P2VEMZH5.js";import{ChevronIcon as f,LockIcon as g,MoveUpIcon as v,MoveDownIcon as y,DuplicateIcon as x,TrashIcon as k}from"./chunk-L5KW4HG5.js";import{Textarea as w,Input as N,ContextMenu as O,tabPanelId as C,tabButtonId as j,SearchableSelect as S,Select as D}from"efficient-shell/ui";import{useRef as I,useState as $,useLayoutEffect as F,useId as L}from"react";import{jsx as P,jsxs as A}from"react/jsx-runtime";function T({id:e,value:n,onChange:l,placeholder:t,multiline:a=!1,rows:r=3,readOnly:i=!1,ariaLabel:o,ariaLabelledBy:s}){const c=n??"";return a?/* @__PURE__ */P(w,{id:e,size:"sm",className:"es-fin",value:c,rows:r,placeholder:t,readOnly:i,"aria-label":o,"aria-labelledby":s,onChange:e=>l(e.target.value)}):/* @__PURE__ */P(N,{id:e,size:"sm",className:"es-fin",type:"text",value:c,placeholder:t,readOnly:i,"aria-label":o,"aria-labelledby":s,onChange:e=>l(e.target.value)})}function E(e,n,l){const t=e.slice();return t.splice(Math.max(0,Math.min(n,t.length)),0,l),t}function M(e,n,l){const t=e.slice(),[a]=t.splice(n,1);return t.splice(Math.max(0,Math.min(l,t.length)),0,a),t}function z(e,n){return e.filter((e,l)=>l!==n)}function R(e){return null===e||"object"!=typeof e?e:JSON.parse(JSON.stringify(e))}var B='input, textarea, select, button, [contenteditable]:not([contenteditable="false"]), [tabindex]',H={parentId:"list",slot:"items"};function G({label:e,icon:l,noun:t,items:a,onChange:r,newItem:o,summary:c,itemName:u,thumb:w,min:N=0,max:C,readOnly:j=!1,open:S,onOpen:D,renderItem:L,renderRow:T,canRemove:G,lockedReason:K,fixed:Q=!1,removeOnRow:W=!0,canDuplicate:Y,above:V,head:q=!0}){const J=m("fields",d).list,X=m("tree",i),Z=t??J.item,U=!j&&!Q&&("number"!=typeof C||a.length<C),_=a.length<=N,ee=e=>!!G&&!G(a[e],e),ne=e=>!j&&!Q&&W&&!_&&!ee(e),le=e=>U&&(!Y||Y(a[e],e)),te=(e,n)=>u?u(e,n):J.itemName({noun:Z,n:n+1}),ae=I([]),re=I(null),[ie,oe]=$(null),se=I(null),[ce,ue]=$(null),[de,me]=$("");F(()=>{for(const e of ae.current){if(!e)continue;null!==e.querySelector(B)||j?e.removeAttribute("tabindex"):e.tabIndex=0}}),F(()=>{const e=re.current;if(!e)return;re.current=null;const n=ae.current[e.index]?.querySelectorAll(B)[e.nth]??ae.current[e.index];if(n?.focus(),n&&null!==e.start&&"setSelectionRange"in n)try{n.setSelectionRange(e.start,e.end)}catch{}});const pe=(e,n)=>{if(n<0||n>=a.length||n===e)return;const l=ae.current[e],t=l?.ownerDocument.activeElement;if(l&&t&&l.contains(t)){const e=[...l.querySelectorAll(B)].indexOf(t),a=t;re.current={index:n,nth:e,start:"number"==typeof a.selectionStart?a.selectionStart:null,end:"number"==typeof a.selectionEnd?a.selectionEnd:null}}r(M(a,e,n));const i=function(e,n,l){return null===e?null:e===n?l:n<e&&l>=e?e-1:n>e&&l<=e?e+1:e}(S,e,n);i!==S&&D(i),me(J.moved({n:n+1,total:a.length}))},he=e=>{U&&(r(E(a,e,o())),T?(re.current={index:e,nth:0,start:null,end:null},null!==S&&S>=e&&D(S+1)):D(e))},be=e=>{ne(e)&&(r(z(a,e)),S===e?D(null):null!==S&&S>e&&D(S-1))},fe=p({keyOf:e=>String(e),canDrop:(e,n)=>n.parentId===H.parentId&&n.slot===H.slot,onDrop:(e,n)=>{const l=h({...H,index:e},n);l!==e&&pe(e,l)},onStep:(e,n)=>pe(e,e+n),canStep:(e,n)=>e+n>=0&&e+n<a.length,readOnly:j}),ge=e=>{const n=[];return e>0&&n.push({label:J.moveUp,icon:/* @__PURE__ */P(v,{size:14}),shortcut:"⌥↑",onClick:()=>pe(e,e-1)}),e<a.length-1&&n.push({label:J.moveDown,icon:/* @__PURE__ */P(y,{size:14}),shortcut:"⌥↓",onClick:()=>pe(e,e+1)}),le(e)&&n.push({label:J.duplicate,icon:/* @__PURE__ */P(x,{size:14}),onClick:()=>(e=>{le(e)&&(r(E(a,e+1,R(a[e]))),null!==S&&S>e&&D(S+1))})(e)}),ne(e)&&n.push({label:J.delete,icon:/* @__PURE__ */P(k,{size:14}),danger:!0,onClick:()=>be(e)}),n},ve=(e,n,l,t)=>{j||0===ge(e).length||ue({index:e,x:n,y:l,owner:t})},ye=e=>n=>{const l=a.slice();l[e]=n,r(l)};/* @__PURE__ */
2
+ return A("div",{className:"es-list",children:[q?/* @__PURE__ */A("div",{className:"es-list-head",children:[
3
+ /* @__PURE__ */A("span",{className:"es-list-label",children:[l?/* @__PURE__ */P("span",{className:"es-field-icon","aria-hidden":"true",children:l}):null,e]}),
4
+ /* @__PURE__ */P("span",{className:"es-list-count",children:a.length})]}):null,V?/* @__PURE__ */P("div",{className:"es-list-above",children:V}):null,a.length?/* @__PURE__ */A("div",{className:"es-list-rows",...fe.rootProps(),children:[a.map((e,l)=>{const t=fe.row({item:l,place:{...H,index:l}}),a=t.draggable&&ie!==l,r=!T&&S===l,i=!j&&!Q&&W&&ee(l),o=["es-list-row",T?"is-inline":"is-item",r?"is-open":"",a?"is-draggable":"",t.dragging?"is-dragging":"",t.drop?`is-drop-${t.drop}`:""].filter(Boolean).join(" ");/* @__PURE__ */
5
+ return A("div",{className:"es-list-entry",children:[l>0?/* @__PURE__ */P("div",{className:"es-list-gap",children:/* @__PURE__ */P(n,{...fe.seam({place:{...H,index:l}}),onAdd:U?()=>he(l):void 0,label:J.addHere({noun:Z})})}):null,
6
+ /* @__PURE__ */A("div",{...t.rowProps,ref:e=>{ae.current[l]=e},className:o,draggable:a||void 0,"aria-keyshortcuts":t.draggable?"Alt+ArrowUp Alt+ArrowDown":void 0,onPointerDown:e=>{const n=e.target.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"])'),a=!!n&&n===n.ownerDocument.activeElement;e.currentTarget.draggable=t.draggable&&!a,se.current=n&&!a?n:null,oe(a?l:null)},onDragStart:e=>{const n=se.current;se.current=null,n&&n.ownerDocument.activeElement===n&&n.blur(),t.rowProps.onDragStart?.(e)},onContextMenu:e=>{j||(e.preventDefault(),e.stopPropagation(),ve(l,e.clientX,e.clientY,e.currentTarget))},onKeyDown:e=>{if("ContextMenu"===e.key||e.shiftKey&&"F10"===e.key){e.preventDefault();const n=e.currentTarget.ownerDocument,t=e=>e.preventDefault();n.addEventListener("contextmenu",t,{capture:!0,once:!0}),n.defaultView?.setTimeout(()=>n.removeEventListener("contextmenu",t,{capture:!0}),500);const a=e.currentTarget.getBoundingClientRect();return void ve(l,a.left+24,a.bottom,e.currentTarget)}t.rowProps.onKeyDown?.(e)},children:[a?/* @__PURE__ */P("span",{className:"es-list-hint","aria-hidden":"true",children:X.dragHint}):null,T?/* @__PURE__ */P("div",{className:"es-list-row-main",children:T(e,l,ye(l))}):/* @__PURE__ */A("button",{type:"button",className:"es-list-open","aria-expanded":r,onClick:()=>D(r?null:l),children:[w?/* @__PURE__ */P("span",{className:"es-list-thumb","aria-hidden":"true",children:w(e,l)}):null,
7
+ /* @__PURE__ */P("span",{className:"es-list-row-name",children:te(e,l)}),/* @__PURE__ */P("span",c?{className:"es-list-row-summary",children:c(e,l)}:{className:"es-list-row-summary"}),
8
+ /* @__PURE__ */P(f,{size:14,className:"es-list-chev","aria-hidden":"true"})]}),j||Q||!W?null:i?b(K?K(e,l):J.locked,/* @__PURE__ */P("span",{className:"es-list-lock",role:"img","aria-label":K?K(e,l):J.locked,children:/* @__PURE__ */P(g,{size:13})})):b(J.deleteItem({noun:Z}),/* @__PURE__ */P("button",{type:"button",className:"es-list-x","aria-label":J.deleteItem({noun:Z}),disabled:!ne(l),onClick:()=>be(l),children:"×"}))]}),r?/* @__PURE__ */P("div",{className:"es-list-item",children:L(e,l,ye(l))}):null]},l)}),
9
+ /* @__PURE__ */P("div",{className:"es-list-gap",children:/* @__PURE__ */P(n,{...fe.seam({place:{...H,index:a.length}})})})]}):null,j||Q?null:/* @__PURE__ */P("button",{type:"button",className:"es-list-add",disabled:!U,onClick:()=>he(a.length),children:J.add({noun:Z})}),
10
+ /* @__PURE__ */P("span",{className:"es-list-said","aria-live":"polite",children:de}),ce&&ce.index<a.length?
11
+ /* @__PURE__ */P(O,{at:{x:ce.x,y:ce.y},owner:ce.owner,onClose:()=>ue(null),children:/* @__PURE__ */P(s,{items:ge(ce.index),onClose:()=>ue(null)})}):null]})}var K=(e,n)=>"string"==typeof e.label&&e.label?e.label:n;function Q({field:e,name:n,id:l,value:t,onChange:a,readOnly:i,context:o,renderers:s}){const[c,u]=$(!0),d=t&&"object"==typeof t?t:{};/* @__PURE__ */
12
+ return P(r,{id:`${l}-group`,title:K(e,n),open:c,onToggle:u,children:Object.entries(e.objectFields).map(([e,t])=>/* @__PURE__ */P(Y,{field:t,name:`${n}.${e}`,id:`${l}-${e}`,value:d[e],onChange:n=>a({...d,[e]:n}),readOnly:i,context:o,renderers:s},e))})}function W({field:e,name:n,id:l,value:t,onChange:a,readOnly:r,context:i,renderers:o,openItem:s,onOpenItem:c}){const[u,d]=$(null),m=c?s??null:u,p=c??d,h=Array.isArray(t)?t:[],b=e.getItemSummary;/* @__PURE__ */
13
+ return P(G,{label:K(e,n),icon:e.icon,noun:"string"==typeof e.noun?e.noun:void 0,items:h,onChange:a,newItem:()=>R({...e.defaultItemProps??{}}),summary:b?(e,n)=>b(e,n):void 0,min:e.min,max:e.max,readOnly:r,open:m,onOpen:p,renderItem:(t,a,s)=>Object.entries(e.arrayFields).map(([e,c])=>/* @__PURE__ */P(Y,{field:c,name:`${n}[${a}].${e}`,id:`${l}-${a}-${e}`,value:t?.[e],onChange:n=>s({...t,[e]:n}),readOnly:r,context:i,renderers:o},e))})}function Y(n){const{field:t,name:a,id:r,value:i,onChange:o,readOnly:s,context:d,renderers:m}=n;if(!t||t.marker||!1===t.visible)return null;const p=m?.[t.type];if(p)return p({field:t,name:a,id:r,value:i,onChange:o,readOnly:s});switch(t.type){case"custom":{const e={...d,field:t,name:a,id:r,value:i,onChange:o,readOnly:s};return t.render(e)}case"text":case"textarea":/* @__PURE__ */
14
+ return P(l,{label:K(t,a),htmlFor:r,icon:t.icon,hint:t.hint,children:/* @__PURE__ */P(T,{id:r,value:"string"==typeof i?i:null==i?"":String(i),onChange:o,placeholder:t.placeholder,multiline:"textarea"===t.type,readOnly:s})});case"number":/* @__PURE__ */
15
+ return P(l,{label:K(t,a),htmlFor:r,icon:t.icon,hint:t.hint,children:/* @__PURE__ */P(c,{id:r,value:"number"==typeof i?i:void 0,onChange:o,min:t.min,max:t.max,step:t.step,placeholder:t.placeholder,readOnly:s})});case"select":{const n=`${r}-label`;/* @__PURE__ */
16
+ return P(l,{label:K(t,a),labelId:n,htmlFor:r,icon:t.icon,hint:t.hint,children:/* @__PURE__ */P(e,{id:r,value:i,options:t.options,onChange:o,readOnly:s,ariaLabelledBy:n})})}case"radio":/* @__PURE__ */
17
+ return P(l,{label:K(t,a),icon:t.icon,hint:t.hint,children:/* @__PURE__ */P(u,{ariaLabel:K(t,a),value:i,options:t.options.map(e=>({id:e.value,label:e.label,icon:e.icon,disabled:e.disabled||s})),onChange:e=>{s||o(e)}})});case"object":/* @__PURE__ */
18
+ return P(Q,{...n,field:t});case"array":/* @__PURE__ */
19
+ return P(W,{...n,field:t});case"slot":return null}}var V=e=>t.includes(e);function q(e){let n=t[0];const l=[],a=/* @__PURE__ */new Set;for(const[t,r]of Object.entries(e))r&&(V(r.bucket)&&(n=r.bucket),r.marker||!1===r.visible||(l.push({name:t,field:r,bucket:n}),"slot"!==r.type&&a.add(n)));return{rows:l,buckets:t.filter(e=>a.has(e))}}function J(e){return new Map(q(e).rows.map(e=>[e.name,e.bucket]))}function X({fields:e,values:n,onChange:l,readOnly:t=!1,context:r,tab:i,onTab:s,tabs:c=!0,tabIcons:u,renderers:d,idPrefix:p,ariaLabel:h,children:b}){const f=m("panel",o),g=L(),v=p??`es-insp${g.replace(/:/g,"")}`,y=q(e),[x,k]=$(void 0),w=i??x,N=w&&y.buckets.includes(w)?w:y.buckets[0],[O,S]=$(null),D=O&&O.panel===v&&y.rows.some(e=>e.name===O.name)?O:null,I=c&&y.buckets.length>1,F=I&&N?C(v,N):`${v}-rows`;/* @__PURE__ */
20
+ return A("div",{className:"es-insp",children:[I?/* @__PURE__ */P("div",{className:"es-insp-tabs",children:/* @__PURE__ */P(a,{ariaLabel:h??f.settings,activeId:N,onSelect:e=>{const n=e;void 0===i&&k(n),s?.(n)},items:y.buckets.map(e=>({id:e,label:f.buckets[e],icon:u?.[e]})),idPrefix:v})}):null,
21
+ /* @__PURE__ */A("div",{className:"es-insp-rows",id:F,role:I?"tabpanel":void 0,"aria-labelledby":I&&N?j(v,N):void 0,children:[y.rows.map(({name:e,field:a,bucket:i})=>/* @__PURE__ */P("div",{className:"es-insp-row","data-field":e,"data-bucket":i,hidden:!(!I||i===N)||void 0,children:/* @__PURE__ */P(Y,{field:a,name:e,id:`${v}-${e}`,value:n[e],onChange:n=>l(e,n),readOnly:t,context:r,renderers:d,openItem:D&&D.name===e?D.index:null,onOpenItem:n=>S(null===n?null:{panel:v,name:e,index:n})})},e)),b]})]})}function Z(e){return"select"===e.type?e.options:"groups"===e.type?e.groups.flatMap(e=>e.options):[]}function U({value:e,onChange:n,kinds:l,rules:t,filtersFor:a,label:r,readOnly:i}){const o=m("fields",d).link??d.link,[s,c]=$(null),[u,p]=$(null),h=s&&s.against===e?s.kind:t.kindOf(e),b=l.filter(e=>!e.hideWhenEmpty||Z(e.target).length>0||e.value===h),f=b.find(e=>"text"===e.target.type),g=b.find(e=>e.value===h)??f??b[0];if(!g)return null;const v="text"!==g.target.type,y=v?t.targetOf(e):e,x=Z(g.target),k=x.find(e=>e.value===y),w=e=>({value:e,label:o.unavailable({value:e})}),O="select"===g.target.type&&y&&a?a(y):null,C=O?t.readFilter(e):null,j=C?O?.find(e=>e.param===C.param):void 0,I=u&&u.against===e?u.text:e,F=!v&&""!==I.trim()&&!t.isSafe(I),L=(e,l)=>{c(n=>n?{...n,against:e}:n),void 0===l?n(e):n(e,l)},T=e=>{if(!e)return L("");const n=x.find(n=>n.value===e);L(e,n?.label)},E=(e,n)=>n&&!e.some(e=>e.value===n)?[w(n),...e]:[...e],M=(e,n,l,t,a)=>{if(a){const a=l.map(e=>({value:e.value,label:e.label,...e.group?{sublabel:e.group}:{}}));/* @__PURE__ */
22
+ return P(S,{"aria-label":e,value:n,options:a,disabled:i,placeholder:l.find(e=>""===e.value)?.label,onChange:e=>""!==e||l.some(e=>""===e.value)?t(e):void 0})}const r=[];for(const e of l){const n=r[r.length-1],l={value:e.value,label:e.label};e.group?n&&"options"in n&&n.label===e.group?n.options.push(l):r.push({label:e.group,options:[l]}):r.push(l)}/* @__PURE__ */
23
+ return P(D,{size:"sm","aria-label":e,value:n,options:r,disabled:i,onChange:t})};let z;if("text"===g.target.type)z=/* @__PURE__ */P(N,{size:"sm",type:"text",className:"es-fin",invalid:F,"aria-label":o.address,placeholder:o.addressPlaceholder,value:I,readOnly:i,onChange:n=>(n=>{const l=n.trim();l?t.isSafe(n)?(p({text:n,against:l}),L(l)):p({text:n,against:e}):(p({text:n,against:""}),L(""))})(n.target.value)});else{const e="groups"===g.target.type?g.target.groups.flatMap(e=>e.options.map(n=>({value:n.value,label:n.label,group:e.label}))):g.target.options.map(e=>({value:e.value,label:e.label})),n=[{value:"",label:g.target.placeholder},...E(e,y)];z=M(g.label,y,n,T,e.length>10)}/* @__PURE__ */
24
+ return A("div",{className:"es-flink",role:r?"group":void 0,"aria-label":r,children:[M(o.linkType,g.value,b.map(e=>({value:e.value,label:e.label})),l=>{p(null);const t=b.find(e=>e.value===l);if(!t||"text"===t.target.type)return void c({kind:l,against:e});const a=Z(t.target)[0];c({kind:l,against:a?a.value:""}),a?n(a.value,a.label):n("")},!1),z,O&&M(o.filter,C?.param??"",[{value:"",label:o.noFilter},...C&&!j?[w(C.param)]:[],...O.map(e=>({value:e.param,label:e.label}))],e=>{if(!e)return L(y,k?.label);const n=O?.find(n=>n.param===e),l=n?.values[0];l&&L(t.withFilter(y,{param:e,value:l.value}),l.label)},!1),O&&C&&M(o.value,C.value,E((j?.values??[]).map(e=>({value:e.value,label:e.label})),C.value),e=>{if(!C)return;const n=j?.values.find(n=>n.value===e);L(t.withFilter(y,{param:C.param,value:e}),n?.label)},(j?.values.length??0)>10),F&&/* @__PURE__ */P("p",{className:"es-flink-error",role:"alert",children:o.unsafe}),g.hint&&/* @__PURE__ */P("p",{className:"es-flink-hint",children:g.hint}),O&&/* @__PURE__ */P("p",{className:"es-flink-hint",children:o.filterHint})]})}export{T as FieldText,X as Inspector,Y as InspectorField,U as LinkPicker,G as ListField,J as bucketsOf,R as copyItem,E as insertAt,K as labelOf,M as moveTo,q as planFields,z as removeAt};
@@ -0,0 +1 @@
1
+ var a={railWidth:46,railPaddingY:8,railGap:4,railRadius:"var(--radius-xl)",buttonSize:36,iconSize:18,color:{background:"var(--surface)",shadow:"0 1px 2px rgba(0, 0, 0, 0.05), 0 10px 30px rgba(0, 0, 0, 0.06)"}},i={railWidth:"--es-rail-w",railPaddingY:"--es-rail-pad-y",railGap:"--es-rail-gap",railRadius:"--es-rail-radius",buttonSize:"--es-rail-btn-size",iconSize:"--es-rail-icon-size",background:"--es-rail-bg",shadow:"--es-rail-shadow"};export{i as railCssVars,a as railTokens};
@@ -0,0 +1,9 @@
1
+ import{DEFAULT_TREE_WORDS as e}from"./chunk-K56YDHYQ.js";import{useContext as r,createContext as a,isValidElement as l}from"react";import{Tree as o,TreeGroupLabel as n,TreeGroup as i,Tooltip as s,TreeRow as t,IconButton as d,TreeSeam as c,TreeEmptySlot as m}from"efficient-shell/ui";import{jsx as p,jsxs as g,Fragment as h}from"react/jsx-runtime";var u,b=()=>u??=a(1),f=()=>r(b());function k({className:r,children:a,rootProps:l,ariaLabel:n,words:i=e}){/* @__PURE__ */
2
+ return p(o,{"aria-label":n??i.name??e.name,className:r?`es-tree ${r}`:"es-tree",rootProps:l,children:a})}function v({children:e}){/* @__PURE__ */
3
+ return p(n,{children:e})}function w({children:e}){const r=f(),a=b();/* @__PURE__ */
4
+ return p(a.Provider,{value:r+1,children:/* @__PURE__ */p(i,{children:e})})}var N=e.dragHint,P=e=>[e].flat(1/0).some(e=>l(e)&&!0===e.props.pressed);function y({icon:r,name:a,preview:l,selected:o,hidden:n,draggable:i,dragHint:d,dragging:c,drop:m,fold:u,actions:b,nameSlot:k,onSelect:v,marks:w,badge:N,trailing:y,children:A,rowProps:S,level:T,words:H=e}){const j=f(),B=["es-tree-row",o?"is-selected":"",n?"is-hidden":"",i?"is-draggable":"",c?"is-dragging":"",m?`is-drop-${m}`:""].filter(Boolean).join(" "),C=/* @__PURE__ */g(h,{children:[
5
+ /* @__PURE__ */p("span",{className:"es-tree-name",children:a}),w?.map(e=>/* @__PURE__ */p(s,{content:e.label,children:/* @__PURE__ */p("span",{className:"es-tree-mark","aria-label":e.label,role:"img",children:e.icon})},e.key)),y?/* @__PURE__ */p(s,{content:y.label,children:/* @__PURE__ */p("span",{className:"es-tree-trailing","aria-label":y.label,role:"img",children:y.icon})}):null,A]}),x=S?.onClick,$={click:!1},D=x?e=>{x(e),$.click=!0,queueMicrotask(()=>{$.click=!1})}:void 0,L=v?()=>{$.click||v()}:void 0;/* @__PURE__ */
6
+ return p(t,{label:C,level:T??j,icon:r,preview:l,selected:!!o,expanded:u?u.open:void 0,onToggle:u?.onToggle,onSelect:L,muted:!!n,badge:N,actions:b,actionsPinned:P(b)||!!o,rename:k,drop:m,dragging:!!c,draggable:!!i,dragHint:d??H.dragHint,className:B,rowProps:{...S,onClick:D,...i?{"aria-keyshortcuts":"Alt+ArrowUp Alt+ArrowDown"}:{}}})}function A({kind:e,label:r,onClick:a,pressed:l,disabled:o,children:n}){/* @__PURE__ */
7
+ return p(s,{content:r,children:/* @__PURE__ */p(d,{"aria-label":r,"aria-pressed":l,"aria-disabled":o||void 0,variant:"delete"===e?"ghost-danger":"ghost",size:"sm","data-kind":e,className:o?"es-tree-act-off":void 0,onClick:e=>{e.stopPropagation(),o||a()},children:n})})}function S({drop:e,onAdd:r,label:a,seamProps:l}){const o=["es-tree-seam",e?"is-drop":"",r?"has-add":"",l?.className??""].filter(Boolean).join(" "),n={...l,className:o};/* @__PURE__ */
8
+ return p(c,{drop:!!e,onInsert:r,label:a,seamProps:n})}function T({drop:r,onAdd:a,label:l,seamProps:o,words:n=e}){const i=l??(a?n.addBlock??e.addBlock:n.emptySlot??e.emptySlot),s={...o,className:o?.className?`es-tree-empty ${o.className}`:"es-tree-empty"};/* @__PURE__ */
9
+ return p(m,{drop:!!r,onAdd:a,label:i,slotProps:s})}export{k as LayersTree,w as Subtree,N as TREE_DRAG_HINT,T as TreeEmptySlot,v as TreeGroupLabel,y as TreeRow,A as TreeRowAction,S as TreeSeam};
@@ -0,0 +1 @@
1
+ import{DEFAULT_TEXT_STYLES_WORDS as o}from"./chunk-M6F6LS3H.js";import{DEFAULT_PICK_WORDS as r}from"./chunk-ZAOM6PFH.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as t}from"./chunk-6WY6ZXJG.js";import{DEFAULT_SCREEN_WORDS as m}from"./chunk-E2O2MRZR.js";import{DEFAULT_CANVAS_WORDS as n}from"./chunk-AELNNAFM.js";import{DEFAULT_TREE_WORDS as c}from"./chunk-K56YDHYQ.js";import{DEFAULT_PANEL_WORDS as s}from"./chunk-QTLAVDJE.js";import{DEFAULT_NODE_MENU_WORDS as f}from"./chunk-WK3AFPXY.js";import{DEFAULT_SAVE_WORDS as p}from"./chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as e,DEFAULT_NOTICE_WORDS as i}from"./chunk-ZJEBF4NB.js";import{DEFAULT_LOCK_WORDS as u}from"./chunk-RE4LP46F.js";import{DEFAULT_RAIL_WORDS as k}from"./chunk-2OAZYSWJ.js";import{DEFAULT_COPY_WORDS as j}from"./chunk-UH7IGZKF.js";import{DEFAULT_FIELDS_WORDS as h}from"./chunk-FPOKPNO4.js";import{DEFAULT_DRAG_WORDS as l}from"./chunk-O2NLQBFX.js";var F={notice:i,lock:u,save:p,chrome:e,rail:k,tree:c,panel:s,fields:h,pick:r,drag:l,menu:f,styleClipboard:t,copy:j,canvas:n,textStyles:o,screen:m},a=o=>"object"==typeof o&&null!==o;function y(o,r){const t={};for(const m of Object.keys(o)){const n=o[m],c=r[m];null==c?t[m]=n:a(n)?t[m]=a(c)?y(n,c):n:t[m]=typeof c==typeof n?c:n}return t}function O(o,r){return r?y(o,r):o}export{F as DEFAULT_EASEL_STRINGS,O as mergeEaselStrings};