efficient-easel 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +7 -3
  2. package/dist/chrome/index.js +1 -1
  3. package/dist/{chunk-ORR3Q4WV.js → chunk-2JIWFFXA.js} +1 -1
  4. package/dist/{chunk-MAEXP3KE.js → chunk-35Q5HMJZ.js} +1 -1
  5. package/dist/{chunk-TJIXDXTV.js → chunk-4CJP57AY.js} +1 -1
  6. package/dist/chunk-4VJATVVR.js +1 -0
  7. package/dist/{chunk-KCE5RVVC.js → chunk-6AMS5BQH.js} +3 -3
  8. package/dist/chunk-6HHHBBSY.js +16 -0
  9. package/dist/{chunk-QR4DLZ3P.js → chunk-BSSKAEFF.js} +1 -1
  10. package/dist/chunk-E2L2XVRX.js +23 -0
  11. package/dist/chunk-HGTPLCTQ.js +1 -0
  12. package/dist/chunk-HMXIAMCU.js +1 -0
  13. package/dist/chunk-IJ3OOBDY.js +64 -0
  14. package/dist/{chunk-RINSVAKA.js → chunk-IJGHMGG4.js} +1 -1
  15. package/dist/chunk-LACBURK5.js +5 -0
  16. package/dist/{chunk-NGT4DAHF.js → chunk-LC7N3GZS.js} +1 -1
  17. package/dist/{chunk-JMIZ3FOV.js → chunk-LEGBBCOH.js} +1 -1
  18. package/dist/chunk-OSPUG6S6.js +1 -0
  19. package/dist/chunk-OXYGFK2B.js +21 -0
  20. package/dist/{chunk-4OL6MRYY.js → chunk-PBVC2VGH.js} +1 -1
  21. package/dist/chunk-PT6NPMWV.js +5 -0
  22. package/dist/chunk-V7U33NF2.js +1 -0
  23. package/dist/{chunk-SQTY6CJD.js → chunk-ZV6OYSZ7.js} +1 -1
  24. package/dist/copy/index.js +21 -21
  25. package/dist/drag/index.js +1 -1
  26. package/dist/fields/fields.css +23 -74
  27. package/dist/fields/index.d.ts +11 -3
  28. package/dist/fields/index.js +1 -1
  29. package/dist/icons/index.d.ts +2 -507
  30. package/dist/icons/index.js +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/node-ops/index.js +1 -1
  34. package/dist/panel/index.js +15 -15
  35. package/dist/rail/index.d.ts +1 -1
  36. package/dist/rail/index.js +1 -1
  37. package/dist/screen/components/AddBlockRow.js +1 -1
  38. package/dist/screen/components/AddSidePanel.js +1 -1
  39. package/dist/screen/components/MediaSidePanel.js +1 -1
  40. package/dist/screen/components/NodeContextMenu.js +1 -1
  41. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  42. package/dist/screen/components/ScreenChrome.js +1 -1
  43. package/dist/screen/components/ScreenMount.js +1 -1
  44. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  45. package/dist/screen/components/SectionScreenShell.js +16 -16
  46. package/dist/screen/components/SidePanelHead.js +1 -1
  47. package/dist/screen/components/UiIcon.js +2 -2
  48. package/dist/screen/components/panel-widths.js +1 -1
  49. package/dist/screen/components/usePartBridge.js +1 -1
  50. package/dist/screen/index.js +1 -1
  51. package/dist/screen/lib/puck/style-clipboard.js +1 -1
  52. package/dist/screen/lib/puck/use-section-ops.js +1 -1
  53. package/dist/screen/lib/screen-parts.js +1 -1
  54. package/dist/shell/index.d.ts +4 -4
  55. package/dist/shell/index.js +1 -1
  56. package/dist/shell/shell.css +11 -3
  57. package/dist/style-clipboard/index.js +1 -1
  58. package/dist/text-styles/index.js +23 -23
  59. package/package.json +5 -4
  60. package/dist/chunk-2F6RZTR7.js +0 -5
  61. package/dist/chunk-2LK54I4E.js +0 -1
  62. package/dist/chunk-57DJOKXT.js +0 -1
  63. package/dist/chunk-7QWOAQQL.js +0 -5
  64. package/dist/chunk-BEEJ63CT.js +0 -64
  65. package/dist/chunk-HMJS344F.js +0 -1
  66. package/dist/chunk-JLTZQ4US.js +0 -1
  67. package/dist/chunk-L5KW4HG5.js +0 -470
  68. package/dist/chunk-Q6ETRSEA.js +0 -24
  69. package/dist/chunk-TJ7YIRWQ.js +0 -21
  70. package/dist/chunk-W3XX2CNW.js +0 -16
  71. package/dist/chunk-X6DQWK2C.js +0 -1
@@ -1,33 +1,33 @@
1
- import{hexReadout as e,ColourWindow as n,typedHex as t}from"../chunk-FPAVNX3Y.js";import{DEFAULT_TEXT_STYLES_WORDS as s}from"../chunk-M6F6LS3H.js";export{DEFAULT_TEXT_STYLES_WORDS}from"../chunk-M6F6LS3H.js";import"../chunk-ZAOM6PFH.js";import{FieldSelect as a,FieldSlider as i}from"../chunk-PJP46U5L.js";import"../chunk-FPOKPNO4.js";import{useWords as l}from"../chunk-MFIRYGHW.js";import{withTip as r}from"../chunk-P2VEMZH5.js";import{ChevronIcon as o,TrashIcon as d,BoldIcon as c,ItalicIcon as u,CaseLowerIcon as m,CaseUpperIcon as f,CaseNormalIcon as h}from"../chunk-L5KW4HG5.js";import{hsvToHex as p,Tooltip as v,ColorSwatch as g,IconButton as k}from"efficient-shell/ui";import{useState as y,useRef as b,useId as x,useEffect as w,Fragment as S}from"react";import{jsxs as N,jsx as C,Fragment as M}from"react/jsx-runtime";var z=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],O=["font","color","size","weight","lineSpacing","letterSpacing","paragraphSpacing","letterCase"],$=["heading","body"],j=7,A={heading:3,body:5},L={min:5,max:void 0,sliderMin:12,sliderMax:72,step:1,shiftStep:10,unit:"px"},F={size:L,weight:{min:100,max:900,sliderMin:300,sliderMax:900,step:100,shiftStep:100,unit:""},lineSpacing:{min:50,max:250,sliderMin:50,sliderMax:250,step:1,shiftStep:10,unit:"%"},letterSpacing:{min:-10,max:void 0,sliderMin:-5,sliderMax:10,step:.1,shiftStep:1,unit:"px"},paragraphSpacing:{min:0,max:void 0,sliderMin:0,sliderMax:48,step:1,shiftStep:10,unit:"px"},largestSize:L},W=(e,n)=>`${"heading"===e?"Heading":"Body"} ${n}`;function E(e=({kind:e,n:n})=>W(e,n)){return $.flatMap(n=>Array.from({length:A[n]},(t,s)=>({id:`${n}-${s+1}`,kind:n,name:e({kind:n,n:s+1}),values:{}})))}function H(e,n,t=j){return e.filter(e=>e.kind===n).length<t}function P(e,n){const t=new RegExp(`^${n}-([1-9]\\d*)$`).exec(e);return t?Number(t[1]):void 0}function B(e){const n=P(e.id,e.kind);return void 0!==n&&n<=A[e.kind]}function D(e,n,t={}){const{max:s=j,name:a=({kind:e,n:n})=>W(e,n),make:i}=t;if(!H(e,n,s))return null;const l=e.filter(e=>e.kind===n);let r=l.length+1;const o=new Set(e.map(e=>e.name));for(;o.has(a({kind:n,n:r}));)r+=1;const d=new Set(e.map(e=>e.id));let c=Math.max(r,...l.map(e=>(P(e.id,n)??0)+1));for(;d.has(`${n}-${c}`);)c+=1;const u=l.at(-1),m=i?i(n,r):{id:`${n}-${c}`,kind:n,name:a({kind:n,n:r}),values:{...u?.values??{}}},f=u?e.indexOf(u)+1:"heading"===n?0:e.length;return{styles:[...e.slice(0,f),m,...e.slice(f)],added:m}}function I(e,n,t={}){const{name:s=({kind:e,n:n})=>W(e,n)}=t,a=e.find(e=>e.id===n);if(!a||B(a))return null;const i=e.filter(e=>e.kind===a.kind),l=i.indexOf(a),r=/* @__PURE__ */new Map;return i.forEach((e,n)=>{n>l&&e.name===s({kind:e.kind,n:n+1})&&r.set(e,s({kind:e.kind,n:n}))}),{styles:e.filter(e=>e!==a).map(e=>r.has(e)?{...e,name:r.get(e)}:e),removed:a}}function R(e,n){const t=e.find(e=>e.id===n);if(t)return t;for(const t of $){const s=P(n,t);if(void 0===s)continue;let a;for(const n of e){const e=n.kind===t?P(n.id,t):void 0;void 0!==e&&e<s&&(!a||e>a.n)&&(a={n:e,style:n})}return a?.style}}function T(e,n,t){return e.map(e=>{if(e.id!==n)return e;const s={...e.values};for(const[e,n]of Object.entries(t))void 0===n?delete s[e]:s[e]=n;return{...e,values:s}})}function q(e){return Math.min(20,Math.max(12,Math.round(.5*e+6)))}function K(e,n){const t=n.weights;return[t.thin,t.extraLight,t.light,t.regular,t.medium,t.semibold,t.bold,t.extraBold,t.black][Math.min(8,Math.max(0,Math.round(e/100)-1))]}function U(e,n,t,s={}){const a=n.find(n=>n.value===e.font)?.label??e.font??"",i=void 0===e.size?s.autoSize?t.auto:"":t.px({n:e.size});return t.summary({font:a,size:i,weight:K(e.weight??400,t)})}var V=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>p({h:e,s:1,v:1})).join(", ")})`;function Y({value:t,hex:s,colours:a,label:i,followsWord:l,anyWord:r,onChange:o,readOnly:d=!1}){const[c,u]=y(!1),m=b(null),f=b(null),h=x(),p=void 0!==t&&a.some(e=>e.key===t),k=void 0!==t&&!p;return w(()=>{if(!c)return;const e=m.current?.ownerDocument;if(!e)return;const n=e=>{m.current&&!m.current.contains(e.target)&&u(!1)};return e.addEventListener("click",n,!0),()=>e.removeEventListener("click",n,!0)},[c]),/* @__PURE__ */N("div",{ref:m,className:"es-ts-set","data-ts-setting":"color",children:[
1
+ import{hexReadout as e,ColourWindow as n,typedHex as t}from"../chunk-FPAVNX3Y.js";import{DEFAULT_TEXT_STYLES_WORDS as s}from"../chunk-M6F6LS3H.js";export{DEFAULT_TEXT_STYLES_WORDS}from"../chunk-M6F6LS3H.js";import"../chunk-ZAOM6PFH.js";import{FieldSelect as i,FieldSlider as a}from"../chunk-PJP46U5L.js";import"../chunk-FPOKPNO4.js";import{useWords as l}from"../chunk-MFIRYGHW.js";import{withTip as r}from"../chunk-P2VEMZH5.js";import{hsvToHex as o,Tooltip as d,ColorSwatch as c,IconButton as u}from"efficient-shell/ui";import{useState as m,useRef as f,useId as h,useEffect as p,Fragment as v}from"react";import{ChevronIcon as g,TrashIcon as k,BoldIcon as y,ItalicIcon as b,CaseLowerIcon as x,CaseUpperIcon as w,CaseNormalIcon as S}from"efficient-shell/icons/efficient";import{jsxs as N,jsx as C,Fragment as M}from"react/jsx-runtime";var z=["font","color","size","weight","emphasis","lineSpacing","letterSpacing","paragraphSpacing","letterCase","largestSize"],O=["font","color","size","weight","lineSpacing","letterSpacing","paragraphSpacing","letterCase"],$=["heading","body"],j=7,A={heading:3,body:5},F={min:5,max:void 0,sliderMin:12,sliderMax:72,step:1,shiftStep:10,unit:"px"},L={size:F,weight:{min:100,max:900,sliderMin:300,sliderMax:900,step:100,shiftStep:100,unit:""},lineSpacing:{min:50,max:250,sliderMin:50,sliderMax:250,step:1,shiftStep:10,unit:"%"},letterSpacing:{min:-10,max:void 0,sliderMin:-5,sliderMax:10,step:.1,shiftStep:1,unit:"px"},paragraphSpacing:{min:0,max:void 0,sliderMin:0,sliderMax:48,step:1,shiftStep:10,unit:"px"},largestSize:F},E=(e,n)=>`${"heading"===e?"Heading":"Body"} ${n}`;function W(e=({kind:e,n:n})=>E(e,n)){return $.flatMap(n=>Array.from({length:A[n]},(t,s)=>({id:`${n}-${s+1}`,kind:n,name:e({kind:n,n:s+1}),values:{}})))}function H(e,n,t=j){return e.filter(e=>e.kind===n).length<t}function P(e,n){const t=new RegExp(`^${n}-([1-9]\\d*)$`).exec(e);return t?Number(t[1]):void 0}function B(e){const n=P(e.id,e.kind);return void 0!==n&&n<=A[e.kind]}function D(e,n,t={}){const{max:s=j,name:i=({kind:e,n:n})=>E(e,n),make:a}=t;if(!H(e,n,s))return null;const l=e.filter(e=>e.kind===n);let r=l.length+1;const o=new Set(e.map(e=>e.name));for(;o.has(i({kind:n,n:r}));)r+=1;const d=new Set(e.map(e=>e.id));let c=Math.max(r,...l.map(e=>(P(e.id,n)??0)+1));for(;d.has(`${n}-${c}`);)c+=1;const u=l.at(-1),m=a?a(n,r):{id:`${n}-${c}`,kind:n,name:i({kind:n,n:r}),values:{...u?.values??{}}},f=u?e.indexOf(u)+1:"heading"===n?0:e.length;return{styles:[...e.slice(0,f),m,...e.slice(f)],added:m}}function I(e,n,t={}){const{name:s=({kind:e,n:n})=>E(e,n)}=t,i=e.find(e=>e.id===n);if(!i||B(i))return null;const a=e.filter(e=>e.kind===i.kind),l=a.indexOf(i),r=/* @__PURE__ */new Map;return a.forEach((e,n)=>{n>l&&e.name===s({kind:e.kind,n:n+1})&&r.set(e,s({kind:e.kind,n:n}))}),{styles:e.filter(e=>e!==i).map(e=>r.has(e)?{...e,name:r.get(e)}:e),removed:i}}function R(e,n){const t=e.find(e=>e.id===n);if(t)return t;for(const t of $){const s=P(n,t);if(void 0===s)continue;let i;for(const n of e){const e=n.kind===t?P(n.id,t):void 0;void 0!==e&&e<s&&(!i||e>i.n)&&(i={n:e,style:n})}return i?.style}}function T(e,n,t){return e.map(e=>{if(e.id!==n)return e;const s={...e.values};for(const[e,n]of Object.entries(t))void 0===n?delete s[e]:s[e]=n;return{...e,values:s}})}function q(e){return Math.min(20,Math.max(12,Math.round(.5*e+6)))}function U(e,n){const t=n.weights;return[t.thin,t.extraLight,t.light,t.regular,t.medium,t.semibold,t.bold,t.extraBold,t.black][Math.min(8,Math.max(0,Math.round(e/100)-1))]}function V(e,n,t,s={}){const i=n.find(n=>n.value===e.font)?.label??e.font??"",a=void 0===e.size?s.autoSize?t.auto:"":t.px({n:e.size});return t.summary({font:i,size:a,weight:U(e.weight??400,t)})}var Y=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>o({h:e,s:1,v:1})).join(", ")})`;function _({value:t,hex:s,colours:i,label:a,followsWord:l,anyWord:r,onChange:o,readOnly:u=!1}){const[v,g]=m(!1),k=f(null),y=f(null),b=h(),x=void 0!==t&&i.some(e=>e.key===t),w=void 0!==t&&!x;return p(()=>{if(!v)return;const e=k.current?.ownerDocument;if(!e)return;const n=e=>{k.current&&!k.current.contains(e.target)&&g(!1)};return e.addEventListener("click",n,!0),()=>e.removeEventListener("click",n,!0)},[v]),/* @__PURE__ */N("div",{ref:k,className:"es-ts-set","data-ts-setting":"color",children:[
2
2
  /* @__PURE__ */N("div",{className:"es-ts-top",children:[
3
- /* @__PURE__ */C("span",{className:"es-ts-sub",children:i}),
3
+ /* @__PURE__ */C("span",{className:"es-ts-sub",children:a}),
4
4
  /* @__PURE__ */C("span",{className:"es-ts-colour-read",children:s?e(s):l})]}),
5
- /* @__PURE__ */N("div",{className:"es-ts-swatches",role:"group","aria-label":i,children:[a.map(n=>/* @__PURE__ */C(v,{content:`${n.name} · ${e(n.value)}`,children:/* @__PURE__ */C(g,{color:n.value,size:"sm",className:"es-ts-swatch","aria-label":n.name,selected:t===n.key,disabled:d,onClick:()=>o(n.key)})},n.key)),
6
- /* @__PURE__ */C(v,{content:r,children:/* @__PURE__ */C(g,{ref:f,color:V,size:"sm",className:"es-ts-swatch es-ts-swatch--any","aria-label":r,selected:k,"aria-expanded":c,"aria-controls":c?h:void 0,disabled:d,onClick:()=>u(e=>!e)})})]}),c?/* @__PURE__ */C(n,{id:h,value:s??"",onChange:e=>o(e),label:i,readOnly:d,onClose:()=>{u(!1),f.current?.focus()}}):null]})}function _({styles:e,onChange:n,fonts:t,colours:a=[],settings:i=O,auto:c=[],fallback:u,sample:m,openId:f,defaultOpenId:h=null,onOpenChange:p,onAdd:v,rowActions:g,onRemove:k,max:M=j,readOnly:A=!1}){const L=l("textStyles",s),F=x(),[W,E]=y(h),P=void 0!==f?f:W,R=e=>{void 0===f&&E(e),p?.(e)},K=new Set(c),V=z.filter(e=>i.includes(e)),Y=b(null),[_,G]=y(null);w(()=>{if(!_||!Y.current)return;const e=[...Y.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===_.id),n=e?e.querySelector(".es-ts-row"):Y.current.querySelector(`.es-ts-add[data-ts-kind="${_.kind}"]`);n?.focus(),G(null)},[_]);/* @__PURE__ */
7
- return C("div",{className:"es-ts",ref:Y,children:$.map(s=>{const i=e.filter(e=>e.kind===s),l=`${F}-${s}`,c=!H(e,s,M),f=!A&&!c;/* @__PURE__ */
5
+ /* @__PURE__ */N("div",{className:"es-ts-swatches",role:"group","aria-label":a,children:[i.map(n=>/* @__PURE__ */C(d,{content:`${n.name} · ${e(n.value)}`,children:/* @__PURE__ */C(c,{color:n.value,size:"sm",className:"es-ts-swatch","aria-label":n.name,selected:t===n.key,disabled:u,onClick:()=>o(n.key)})},n.key)),
6
+ /* @__PURE__ */C(d,{content:r,children:/* @__PURE__ */C(c,{ref:y,color:Y,size:"sm",className:"es-ts-swatch es-ts-swatch--any","aria-label":r,selected:w,"aria-expanded":v,"aria-controls":v?b:void 0,disabled:u,onClick:()=>g(e=>!e)})})]}),v?/* @__PURE__ */C(n,{id:b,value:s??"",onChange:e=>o(e),label:a,readOnly:u,onClose:()=>{g(!1),y.current?.focus()}}):null]})}function K({styles:e,onChange:n,fonts:t,colours:i=[],settings:a=O,auto:o=[],fallback:d,sample:c,openId:u,defaultOpenId:y=null,onOpenChange:b,onAdd:x,rowActions:w,onRemove:S,max:M=j,readOnly:A=!1}){const F=l("textStyles",s),L=h(),[E,W]=m(y),P=void 0!==u?u:E,R=e=>{void 0===u&&W(e),b?.(e)},U=new Set(o),Y=z.filter(e=>a.includes(e)),_=f(null),[K,X]=m(null);p(()=>{if(!K||!_.current)return;const e=[..._.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===K.id),n=e?e.querySelector(".es-ts-row"):_.current.querySelector(`.es-ts-add[data-ts-kind="${K.kind}"]`);n?.focus(),X(null)},[K]);/* @__PURE__ */
7
+ return C("div",{className:"es-ts",ref:_,children:$.map(s=>{const a=e.filter(e=>e.kind===s),l=`${L}-${s}`,o=!H(e,s,M),u=!A&&!o;/* @__PURE__ */
8
8
  return N("section",{className:"es-ts-section","aria-labelledby":l,children:[
9
- /* @__PURE__ */C("div",{className:"es-ts-group",id:l,children:L.groups[s]}),i.map(s=>{const i=P===s.id,l={...u?.(s)??{},...s.values},c=t.find(e=>e.value===l.font),f=`${F}-open-${s.id}`,h=g?.(s),p=null!=h&&!1!==h,v=Boolean(k)&&!A&&!B(s),y={fontFamily:c?.family,fontSize:`${q(l.size??16)}px`,fontWeight:l.weight,fontStyle:l.italic?"italic":void 0};/* @__PURE__ */
10
- return N(S,{children:[
9
+ /* @__PURE__ */C("div",{className:"es-ts-group",id:l,children:F.groups[s]}),a.map(s=>{const a=P===s.id,l={...d?.(s)??{},...s.values},o=t.find(e=>e.value===l.font),u=`${L}-open-${s.id}`,m=w?.(s),f=null!=m&&!1!==m,h=Boolean(S)&&!A&&!B(s),p={fontFamily:o?.family,fontSize:`${q(l.size??16)}px`,fontWeight:l.weight,fontStyle:l.italic?"italic":void 0};/* @__PURE__ */
10
+ return N(v,{children:[
11
11
  /* @__PURE__ */N("div",{className:"es-ts-item","data-ts-id":s.id,children:[
12
- /* @__PURE__ */N("button",{type:"button",className:"es-ts-row","aria-expanded":i,"aria-controls":i?f:void 0,onClick:()=>R(i?null:s.id),children:[
13
- /* @__PURE__ */C("span",{className:"es-ts-chev","aria-hidden":"true",children:/* @__PURE__ */C(o,{size:12})}),
14
- /* @__PURE__ */C("span",{className:"es-ts-name",style:y,children:s.name}),
15
- /* @__PURE__ */C("span",{className:"es-ts-meta",children:U(l,t,L,{autoSize:K.has("size")&&void 0===s.values.size})})]}),v||p?/* @__PURE__ */N("div",{className:"es-ts-actions",children:[v?r(L.remove,/* @__PURE__ */C("button",{type:"button",className:"es-ts-del","aria-label":L.removeNamed({name:s.name}),onClick:()=>(t=>{if(A||!k)return;const s=I(e,t.id,{name:L.styleName});if(!s)return;const a=e.filter(e=>e.kind===t.kind),i=a[a.indexOf(t)+1];P===t.id&&R(null),n(s.styles),k(s.removed),G({id:i?.id??null,kind:t.kind})})(s),children:/* @__PURE__ */C(d,{size:14,"aria-hidden":"true"})})):null,p?h:null]}):null]}),i?/* @__PURE__ */C("div",{className:"es-ts-open",id:f,children:/* @__PURE__ */C(Z,{style:s,values:l,fonts:t,colours:a,settings:V,autoSet:K,sample:m??L.sample,words:L,readOnly:A,set:t=>n(T(e,s.id,t))})}):null]},s.id)}),r(!A&&c?L.full({kind:s,max:M}):void 0,/* @__PURE__ */N("button",{type:"button",className:"es-ts-add","data-ts-kind":s,disabled:A,"aria-disabled":!(A||!c)||void 0,"aria-describedby":!A&&c?`${F}-full-${s}`:void 0,onClick:()=>{f&&(t=>{if(A)return;const s=D(e,t,{max:M,name:L.styleName,make:v});s&&n(s.styles)})(s)},children:[
16
- /* @__PURE__ */C("span",{className:"es-ts-add-word",children:L.add[s]}),
17
- /* @__PURE__ */C("span",{className:"es-ts-count",children:L.count({n:i.length,max:M})})]})),A||!c?null:/* @__PURE__ */C("span",{id:`${F}-full-${s}`,className:"es-vh",children:L.full({kind:s,max:M})})]},s)})})}var G={none:h,upper:f,lower:m},X={none:"none",upper:"uppercase",lower:"lowercase"};function Z({style:e,values:n,fonts:s,colours:a,settings:l,autoSet:o,sample:d,words:m,readOnly:f,set:h}){const p=e.values,v=s.find(e=>e.value===n.font),g=function(e,n){return e?n.find(n=>n.key===e)?.value??t(e)??void 0:void 0}(n.color,a),y=e=>"largestSize"===e||o.has(e),b=e=>y(e)?p[e]:n[e],x=b("size"),w=b("lineSpacing"),S=b("letterSpacing"),z=y("letterCase")?p.letterCase:n.letterCase,O={fontFamily:v?.family,fontSize:void 0===x?void 0:`${x}px`,fontWeight:n.weight,fontStyle:n.italic?"italic":void 0,lineHeight:void 0===w?void 0:String(w/100),letterSpacing:void 0===S?void 0:`${S}px`,color:g,textTransform:z?X[z]:void 0},$=e=>{const t=F[e],s=y(e);/* @__PURE__ */
18
- return C("div",{className:"es-ts-slider","data-ts-setting":e,children:/* @__PURE__ */C(i,{label:m.settings[e],value:p[e],onChange:n=>h({[e]:n}),min:t.min,max:t.max,step:t.step,shiftStep:t.shiftStep,sliderMin:t.sliderMin,sliderMax:t.sliderMax,unit:t.unit||void 0,styleValue:s?void 0:n[e],auto:s?m.auto:void 0,readOnly:f})},e)};/* @__PURE__ */
12
+ /* @__PURE__ */N("button",{type:"button",className:"es-ts-row","aria-expanded":a,"aria-controls":a?u:void 0,onClick:()=>R(a?null:s.id),children:[
13
+ /* @__PURE__ */C("span",{className:"es-ts-chev","aria-hidden":"true",children:/* @__PURE__ */C(g,{size:12})}),
14
+ /* @__PURE__ */C("span",{className:"es-ts-name",style:p,children:s.name}),
15
+ /* @__PURE__ */C("span",{className:"es-ts-meta",children:V(l,t,F,{autoSize:U.has("size")&&void 0===s.values.size})})]}),h||f?/* @__PURE__ */N("div",{className:"es-ts-actions",children:[h?r(F.remove,/* @__PURE__ */C("button",{type:"button",className:"es-ts-del","aria-label":F.removeNamed({name:s.name}),onClick:()=>(t=>{if(A||!S)return;const s=I(e,t.id,{name:F.styleName});if(!s)return;const i=e.filter(e=>e.kind===t.kind),a=i[i.indexOf(t)+1];P===t.id&&R(null),n(s.styles),S(s.removed),X({id:a?.id??null,kind:t.kind})})(s),children:/* @__PURE__ */C(k,{size:14,"aria-hidden":"true"})})):null,f?m:null]}):null]}),a?/* @__PURE__ */C("div",{className:"es-ts-open",id:u,children:/* @__PURE__ */C(G,{style:s,values:l,fonts:t,colours:i,settings:Y,autoSet:U,sample:c??F.sample,words:F,readOnly:A,set:t=>n(T(e,s.id,t))})}):null]},s.id)}),r(!A&&o?F.full({kind:s,max:M}):void 0,/* @__PURE__ */N("button",{type:"button",className:"es-ts-add","data-ts-kind":s,disabled:A,"aria-disabled":!(A||!o)||void 0,"aria-describedby":!A&&o?`${L}-full-${s}`:void 0,onClick:()=>{u&&(t=>{if(A)return;const s=D(e,t,{max:M,name:F.styleName,make:x});s&&n(s.styles)})(s)},children:[
16
+ /* @__PURE__ */C("span",{className:"es-ts-add-word",children:F.add[s]}),
17
+ /* @__PURE__ */C("span",{className:"es-ts-count",children:F.count({n:a.length,max:M})})]})),A||!o?null:/* @__PURE__ */C("span",{id:`${L}-full-${s}`,className:"es-vh",children:F.full({kind:s,max:M})})]},s)})})}var X={none:S,upper:w,lower:x},Z={none:"none",upper:"uppercase",lower:"lowercase"};function G({style:e,values:n,fonts:s,colours:i,settings:l,autoSet:o,sample:d,words:c,readOnly:m,set:f}){const h=e.values,p=s.find(e=>e.value===n.font),v=function(e,n){return e?n.find(n=>n.key===e)?.value??t(e)??void 0:void 0}(n.color,i),g=e=>"largestSize"===e||o.has(e),k=e=>g(e)?h[e]:n[e],x=k("size"),w=k("lineSpacing"),S=k("letterSpacing"),z=g("letterCase")?h.letterCase:n.letterCase,O={fontFamily:p?.family,fontSize:void 0===x?void 0:`${x}px`,fontWeight:n.weight,fontStyle:n.italic?"italic":void 0,lineHeight:void 0===w?void 0:String(w/100),letterSpacing:void 0===S?void 0:`${S}px`,color:v,textTransform:z?Z[z]:void 0},$=e=>{const t=L[e],s=g(e);/* @__PURE__ */
18
+ return C("div",{className:"es-ts-slider","data-ts-setting":e,children:/* @__PURE__ */C(a,{label:c.settings[e],value:h[e],onChange:n=>f({[e]:n}),min:t.min,max:t.max,step:t.step,shiftStep:t.shiftStep,sliderMin:t.sliderMin,sliderMax:t.sliderMax,unit:t.unit||void 0,styleValue:s?void 0:n[e],auto:s?c.auto:void 0,readOnly:m})},e)};/* @__PURE__ */
19
19
  return N(M,{children:[
20
- /* @__PURE__ */C("div",{className:"es-ts-preview",style:O,"aria-label":m.preview,children:d}),l.map(t=>{switch(t){case"font":/* @__PURE__ */
21
- return C(J,{value:p.font,fonts:s,words:m,readOnly:f,set:h},t);case"color":/* @__PURE__ */
22
- return C(Q,{value:p.color,hex:g,colours:a,words:m,readOnly:f,set:h},t);case"emphasis":{const e=(n.weight??400)>=600,s=!1!==v?.italic;/* @__PURE__ */
20
+ /* @__PURE__ */C("div",{className:"es-ts-preview",style:O,"aria-label":c.preview,children:d}),l.map(t=>{switch(t){case"font":/* @__PURE__ */
21
+ return C(J,{value:h.font,fonts:s,words:c,readOnly:m,set:f},t);case"color":/* @__PURE__ */
22
+ return C(Q,{value:h.color,hex:v,colours:i,words:c,readOnly:m,set:f},t);case"emphasis":{const e=(n.weight??400)>=600,s=!1!==p?.italic;/* @__PURE__ */
23
23
  return N("div",{className:"es-ts-set","data-ts-setting":t,children:[
24
- /* @__PURE__ */C("span",{className:"es-ts-sub",children:m.settings.emphasis}),
25
- /* @__PURE__ */N("div",{className:"es-ts-icons",children:[r(m.bold,/* @__PURE__ */C(k,{className:"es-ts-icon","aria-label":m.bold,"aria-pressed":e,disabled:f,onClick:()=>h({weight:e?400:700}),children:/* @__PURE__ */C(c,{size:16})})),f||s?r(m.italic,/* @__PURE__ */C(k,{className:"es-ts-icon","aria-label":m.italic,"aria-pressed":Boolean(n.italic),disabled:f,onClick:()=>h({italic:!n.italic||void 0}),children:/* @__PURE__ */C(u,{size:16})})):/* @__PURE__ */C(k,{className:"es-ts-icon","aria-label":m.italic,"aria-pressed":Boolean(n.italic),"aria-disabled":!0,disabledReason:m.italicMissing,children:/* @__PURE__ */C(u,{size:16})})]})]},t)}case"letterCase":/* @__PURE__ */
26
- return C(ee,{value:p.letterCase??n.letterCase,auto:y("letterCase"),words:m,readOnly:f,set:h},t);case"largestSize":return"heading"===e.kind?$(t):null;default:return $(t)}})]})}function J({value:e,fonts:n,words:t,readOnly:s,set:i}){const l=x();/* @__PURE__ */
24
+ /* @__PURE__ */C("span",{className:"es-ts-sub",children:c.settings.emphasis}),
25
+ /* @__PURE__ */N("div",{className:"es-ts-icons",children:[r(c.bold,/* @__PURE__ */C(u,{className:"es-ts-icon","aria-label":c.bold,"aria-pressed":e,disabled:m,onClick:()=>f({weight:e?400:700}),children:/* @__PURE__ */C(y,{size:16})})),m||s?r(c.italic,/* @__PURE__ */C(u,{className:"es-ts-icon","aria-label":c.italic,"aria-pressed":Boolean(n.italic),disabled:m,onClick:()=>f({italic:!n.italic||void 0}),children:/* @__PURE__ */C(b,{size:16})})):/* @__PURE__ */C(u,{className:"es-ts-icon","aria-label":c.italic,"aria-pressed":Boolean(n.italic),"aria-disabled":!0,disabledReason:c.italicMissing,children:/* @__PURE__ */C(b,{size:16})})]})]},t)}case"letterCase":/* @__PURE__ */
26
+ return C(ee,{value:h.letterCase??n.letterCase,auto:g("letterCase"),words:c,readOnly:m,set:f},t);case"largestSize":return"heading"===e.kind?$(t):null;default:return $(t)}})]})}function J({value:e,fonts:n,words:t,readOnly:s,set:a}){const l=h();/* @__PURE__ */
27
27
  return N("div",{className:"es-ts-set","data-ts-setting":"font",children:[
28
28
  /* @__PURE__ */C("span",{className:"es-ts-sub",id:l,children:t.settings.font}),
29
- /* @__PURE__ */C(a,{value:e,options:n.map(e=>({label:e.label,value:e.value})),onChange:e=>i({font:e}),ariaLabelledBy:l,readOnly:s})]})}function Q({value:e,hex:n,colours:t,words:s,readOnly:a,set:i}){/* @__PURE__ */
30
- return C(Y,{value:e,hex:n,colours:t,label:s.settings.color,followsWord:s.colour.follows,anyWord:s.colour.any,readOnly:a,onChange:e=>i({color:e})})}function ee({value:e,auto:n,words:t,readOnly:s,set:a}){const i=n?["auto","none","upper","lower"]:["none","upper","lower"],l=e??(n?"auto":"none"),o=b([]),d=e=>a({letterCase:"auto"===e?void 0:e});/* @__PURE__ */
29
+ /* @__PURE__ */C(i,{value:e,options:n.map(e=>({label:e.label,value:e.value})),onChange:e=>a({font:e}),ariaLabelledBy:l,readOnly:s})]})}function Q({value:e,hex:n,colours:t,words:s,readOnly:i,set:a}){/* @__PURE__ */
30
+ return C(_,{value:e,hex:n,colours:t,label:s.settings.color,followsWord:s.colour.follows,anyWord:s.colour.any,readOnly:i,onChange:e=>a({color:e})})}function ee({value:e,auto:n,words:t,readOnly:s,set:i}){const a=n?["auto","none","upper","lower"]:["none","upper","lower"],l=e??(n?"auto":"none"),o=f([]),d=e=>i({letterCase:"auto"===e?void 0:e});/* @__PURE__ */
31
31
  return N("div",{className:"es-ts-set","data-ts-setting":"letterCase",children:[
32
32
  /* @__PURE__ */C("span",{className:"es-ts-sub",children:t.settings.letterCase}),
33
- /* @__PURE__ */C("div",{className:"es-ts-icons",role:"radiogroup","aria-label":t.settings.letterCase,onKeyDown:e=>{const n="ArrowRight"===e.key||"ArrowDown"===e.key?1:"ArrowLeft"===e.key||"ArrowUp"===e.key?-1:0;if(!n||s)return;e.preventDefault();const t=(i.indexOf(l)+n+i.length)%i.length;d(i[t]),o.current[t]?.focus()},children:i.map((e,n)=>{const a=e===l;if("auto"===e)return r(t.case.autoTitle,/* @__PURE__ */C(k,{ref:e=>{o.current[n]=e},role:"radio",pressed:a,className:"es-ts-icon es-ts-icon--word","aria-checked":a,"aria-label":t.case.auto,tabIndex:a?0:-1,disabled:s,onClick:()=>d(e),children:t.case.auto},e));const i=G[e];return r(t.case[e],/* @__PURE__ */C(k,{ref:e=>{o.current[n]=e},role:"radio",pressed:a,className:"es-ts-icon","aria-checked":a,"aria-label":t.case[e],tabIndex:a?0:-1,disabled:s,onClick:()=>d(e),children:/* @__PURE__ */C(i,{size:16})},e))})})]})}export{O as CAMPAIGN_TEXT_STYLE_SETTINGS,Y as ColourSwatchRow,A as TEXT_STYLE_DEFAULT_COUNT,$ as TEXT_STYLE_KINDS,j as TEXT_STYLE_MAX,F as TEXT_STYLE_RANGES,z as TEXT_STYLE_SETTINGS,_ as TextStylesList,D as addTextStyle,H as canAddTextStyle,E as defaultTextStyles,U as describeTextStyle,B as isDefaultTextStyle,I as removeTextStyle,R as resolveTextStyle,q as textStyleRowSize,T as updateTextStyle,K as weightWord};
33
+ /* @__PURE__ */C("div",{className:"es-ts-icons",role:"radiogroup","aria-label":t.settings.letterCase,onKeyDown:e=>{const n="ArrowRight"===e.key||"ArrowDown"===e.key?1:"ArrowLeft"===e.key||"ArrowUp"===e.key?-1:0;if(!n||s)return;e.preventDefault();const t=(a.indexOf(l)+n+a.length)%a.length;d(a[t]),o.current[t]?.focus()},children:a.map((e,n)=>{const i=e===l;if("auto"===e)return r(t.case.autoTitle,/* @__PURE__ */C(u,{ref:e=>{o.current[n]=e},role:"radio",pressed:i,className:"es-ts-icon es-ts-icon--word","aria-checked":i,"aria-label":t.case.auto,tabIndex:i?0:-1,disabled:s,onClick:()=>d(e),children:t.case.auto},e));const a=X[e];return r(t.case[e],/* @__PURE__ */C(u,{ref:e=>{o.current[n]=e},role:"radio",pressed:i,className:"es-ts-icon","aria-checked":i,"aria-label":t.case[e],tabIndex:i?0:-1,disabled:s,onClick:()=>d(e),children:/* @__PURE__ */C(a,{size:16})},e))})})]})}export{O as CAMPAIGN_TEXT_STYLE_SETTINGS,_ as ColourSwatchRow,A as TEXT_STYLE_DEFAULT_COUNT,$ as TEXT_STYLE_KINDS,j as TEXT_STYLE_MAX,L as TEXT_STYLE_RANGES,z as TEXT_STYLE_SETTINGS,K as TextStylesList,D as addTextStyle,H as canAddTextStyle,W as defaultTextStyles,V as describeTextStyle,B as isDefaultTextStyle,I as removeTextStyle,R as resolveTextStyle,q as textStyleRowSize,T as updateTextStyle,U as weightWord};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-easel",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "description": "Efficient Easel: the EFFICIENT editors' shared engine and chrome: the saved document as pure functions, the published renderer, and the editor frame, panels, Layers tree, text grammar and type-in-place box. Published as editor-shell up to 0.66.0 and as efficient-editor up to 0.95.0.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -517,7 +517,7 @@
517
517
  "dist"
518
518
  ],
519
519
  "peerDependencies": {
520
- "efficient-shell": "^4.166.0",
520
+ "efficient-shell": "^4.171.0",
521
521
  "react": ">=18",
522
522
  "react-dom": ">=18"
523
523
  },
@@ -527,7 +527,7 @@
527
527
  "@types/node": "^22.0.0",
528
528
  "@types/react": "^18.2.0",
529
529
  "@types/react-dom": "^18.2.0",
530
- "efficient-shell": "^4.166.0",
530
+ "efficient-shell": "^4.171.0",
531
531
  "esbuild": "^0.27.0",
532
532
  "jsdom": "^26.1.0",
533
533
  "react": "^18.2.0",
@@ -541,7 +541,8 @@
541
541
  "build": "NODE_OPTIONS=--max-old-space-size=6144 tsup && cp src/rail/rail.css dist/rail/rail.css && cp src/shell/shell.css dist/shell/shell.css && cp src/gold/gold.css dist/gold/gold.css && cp src/copy/copy.css dist/copy/copy.css && cp src/panel/panel.css dist/panel/panel.css && cp src/menu/menu.css dist/menu/menu.css && cp src/chrome/chrome.css dist/chrome/chrome.css && cp src/tree/tree.css dist/tree/tree.css && cp src/drag/drag.css dist/drag/drag.css && cp src/pick/pick.css dist/pick/pick.css && cp src/fields/fields.css dist/fields/fields.css && cp src/text-styles/text-styles.css dist/text-styles/text-styles.css && cp src/easel/easel.css dist/easel/easel.css && cp src/screen/screen.css dist/screen/screen.css",
542
542
  "dev": "tsup --watch",
543
543
  "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
544
- "test": "node scripts/test.mjs",
544
+ "test": "efficient-shell-ui-check && node scripts/test.mjs",
545
+ "check:ui-kit": "efficient-shell-ui-check",
545
546
  "verify:exports": "node scripts/verify-exports-resolve.mjs",
546
547
  "clean": "rm -rf dist"
547
548
  },
@@ -1,5 +0,0 @@
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-Q6ETRSEA.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}},S={read:()=>"sections",write:()=>{},forSelection:(n,e)=>n?"sections":e},w={first:null,last:null,firstGroup:null,lastGroup:null,isSectionGroup:()=>!1,sectionGroupZone:()=>"",panelOf:()=>null};function C(){/* @__PURE__ */
2
- return s(t,{height:"fill"})}function P(){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 G=i({});function A({parts:n,children:e}){/* @__PURE__ */
4
- return s(G.Provider,{value:n,children:e})}function D(){return l(G)}function N(){return(D().useOwnerName??g)()}function T(){return(D().useDocumentLabel??y)()}function x(n,e,t,r){return(D().useBridges??v)(n,e,t,r)}function B(n){return(D().useStandaloneBridges??v)(n)}function I(n,e){(D().useDocumentPass??b)(n,e)}function R(){return D().blockRules??L}function E(){return D().blockLook??O}function F(){return D().devices??j}function H(){return D().leftView??S}function K(){return D().pinned??w}function W(){return D().saveSwitch??!0}function Q(n){e(!0===D().pickFollowsSelection,n)}function V(){return D().add??h}function Y(){return D().storageNamespace||void 0}function Z(){return D().styleClipboard??null}function q(){return D().nodeKeys??!0}function z(){return D().notify??null}function J(){return D().Canvas??C}function M(){return D().CanvasHead??null}function U(){return D().canvasDrag??null}var X=i(null);function $({target:n,children:e}){/* @__PURE__ */
5
- return s(X.Provider,{value:n,children:e})}function _(){return l(X)}function nn(){return D().Inspector??P}export{c as SELECTION_MODE,$ as ScreenCanvasTargetProvider,A as ScreenPartsProvider,p as isPinnedFirst,k as isPinnedLast,f as isSlotMode,a as sameInspectorMode,d as screenSlotsOf,V as useScreenAdd,E as useScreenBlockLook,R as useScreenBlockRules,x as useScreenBridges,U as useScreenCanvasDrag,J as useScreenCanvasFrame,M as useScreenCanvasHead,_ as useScreenCanvasTarget,F as useScreenDevices,T as useScreenDocumentLabel,I as useScreenDocumentPass,nn as useScreenInspectorPanel,H as useScreenLeftView,q as useScreenNodeKeys,z as useScreenNotify,N as useScreenOwnerName,D as useScreenParts,Q as useScreenPickFollowsSelection,K as useScreenPinned,W as useScreenSaveSwitch,Y as useScreenStorageNamespace,Z as useScreenStyleClipboard,B as useStandaloneScreenBridges};
@@ -1 +0,0 @@
1
- import{DEFAULT_NODE_MENU_WORDS as e}from"./chunk-WK3AFPXY.js";import{TrashIcon as n,EyeIcon as o,EyeOffIcon as t,RenameIcon as c,PasteIcon as i,CopyIcon as l,MoveDownIcon as s,MoveUpIcon as p,DuplicateIcon as a,AddIcon as r,LayersIcon as u}from"./chunk-L5KW4HG5.js";import{jsx as h}from"react/jsx-runtime";function d(){let e=null;const n=/* @__PURE__ */new Set;return{get:()=>e,set(o){e=o;for(const e of[...n])e()},subscribe:e=>(n.add(e),()=>n.delete(e))}}var m={layer:{icon:/* @__PURE__ */h(u,{})},addInside:{icon:/* @__PURE__ */h(r,{})},duplicate:{icon:/* @__PURE__ */h(a,{})},moveUp:{icon:/* @__PURE__ */h(p,{})},moveDown:{icon:/* @__PURE__ */h(s,{})},copy:{icon:/* @__PURE__ */h(l,{}),shortcut:"⌘C"},cut:{icon:/* @__PURE__ */h(l,{}),shortcut:"⌘X"},paste:{icon:/* @__PURE__ */h(i,{}),shortcut:"⌘V"},rename:{icon:/* @__PURE__ */h(c,{})},hide:{icon:/* @__PURE__ */h(t,{})},show:{icon:/* @__PURE__ */h(o,{})},upLevel:{},delete:{icon:/* @__PURE__ */h(n,{}),danger:!0}};function g(n){const{actions:o,rows:t={},extras:c={},words:i=e}=n,l=e=>({...m[e],label:i[e],...t[e]}),s=(e,n,o)=>{const t=l(e),c={label:o??t.label??e,onClick:n};return t.icon&&(c.icon=t.icon),t.shortcut&&(c.shortcut=t.shortcut),t.danger&&(c.danger=!0),c},p=()=>{const e=l("layer"),o={label:e.label??i.layer,onClick:()=>{},children:n.layer.items};return e.icon&&(o.icon=e.icon),o},a=[],r=[],u=[],h=[],d=!!n.layer&&n.layer.items.length>1;if(d&&"pick"===(n.layer.group??"pick")&&a.push(p()),o.addInside&&r.push(s("addInside",o.addInside)),o.duplicate&&r.push(s("duplicate",o.duplicate)),o.moveUp&&r.push(s("moveUp",o.moveUp)),o.moveDown&&r.push(s("moveDown",o.moveDown)),o.copy&&r.push(s("copy",o.copy)),o.cut&&r.push(s("cut",o.cut)),o.paste){const e=l("paste").label??i.paste;r.push(s("paste",o.paste.run,i.pasteNamed({paste:e,label:o.paste.label})))}o.rename&&u.push(s("rename",o.rename)),o.hide&&u.push(o.hide.hidden?s("show",o.hide.run):s("hide",o.hide.run)),d&&"change"===n.layer.group&&u.push(p()),o.upLevel&&u.push(s("upLevel",o.upLevel)),o.delete&&h.push(s("delete",o.delete)),a.push(...c.pick??[]),r.push(...c.make??[]),u.push(...c.change??[]),h.push(...c.remove??[]);const g=[a,r,n.style??[],u,h].filter(e=>e.length>0),v=a.length+r.length+u.length+h.length===0,b=[{label:n.title,header:!0,onClick:()=>{}}];return v&&n.pinnedLine&&b.push({label:n.pinnedLine,header:!0,onClick:()=>{}}),g.forEach((e,o)=>{(o>0||v&&n.pinnedLine)&&b.push({label:"—",onClick:()=>{}}),b.push(...e)}),b}export{d as createNodeClipboard,g as nodeMenuItems};
@@ -1 +0,0 @@
1
- import{DEFAULT_STYLE_CLIPBOARD_WORDS as t}from"./chunk-6WY6ZXJG.js";import{CopyStyleIcon as e,PasteStyleIcon as n}from"./chunk-L5KW4HG5.js";import{jsx as o}from"react/jsx-runtime";var r="__styleKind";function u(t,e){return t[r]=e,t}function c(t,e){return`${t}:${e.map(t=>String(t)).sort().join("|")}`}function i(t){if(!t)return null;const e=t.indexOf(":");if(e<0)return null;const n=t.slice(0,e);return s.has(n)?{control:n,values:t.slice(e+1).split("|")}:null}var s=/* @__PURE__ */new Set(["choice","select","radio"]);function l(t){if(!t||"object"!=typeof t)return null;const e=t;return"string"==typeof e[r]?e[r]:"text"===e.type||"textarea"===e.type||"number"===e.type?e.type:"select"!==e.type&&"radio"!==e.type||!Array.isArray(e.options)?null:c(e.type,e.options.map(t=>t?.value))}function a(t){return null!=t&&""!==t}function p(t,e){let n=t;for(const t of e){if(!n||"object"!=typeof n)return;n=n[t]}return n}function f(t){return void 0===t?t:JSON.parse(JSON.stringify(t))}function d(t,e,n){const[o,...r]=e,u={...t};if(0===r.length)return void 0===n?delete u[o]:u[o]=n,u;const c=u[o],i=d(c&&"object"==typeof c?c:{},r,n);return 0===Object.keys(i).length?delete u[o]:u[o]=i,u}var y=t=>t.join("."),h="editor-shell:style-clipboard",g=null,m=!1,v=/* @__PURE__ */new Set;function S(){try{return"undefined"==typeof sessionStorage?null:sessionStorage}catch{return null}}function b(){if(!m){m=!0;try{const t=S()?.getItem(h);t&&(g=JSON.parse(t))}catch{g=null}}}function k(t){b(),g={scope:t.scope,sourceType:t.type,sourceLabel:t.label,rows:t.rows.map(e=>{const n=p(t.props,e.path);return{path:[...e.path],kind:e.kind,counted:!1!==e.counted,value:a(n)?f(n):void 0}})};try{S()?.setItem(h,JSON.stringify(g))}catch{}return v.forEach(t=>t()),g}function N(t){return b(),g&&g.scope===t?g:null}function j(t){return v.add(t),()=>{v.delete(t)}}function C(){g=null,m=!0;try{S()?.removeItem(h)}catch{}v.forEach(t=>t())}function w(t,e,n){if(t.kind===e.kind)return null!==e.kind||n;const o=i(t.kind),r=i(e.kind);return!(!o||!r||o.control!==r.control)&&(!a(t.value)||r.values.includes(String(t.value)))}function K(t,e){const n=t.sourceType===e.type,o=new Map(t.rows.map(t=>[y(t.path),t]));let r=e.props,u=0,c=!1;for(const t of e.rows){const e=o.get(y(t.path));if(!e)continue;if(!w(e,t,n))continue;const i=p(r,t.path),s=void 0===e.value?void 0:f(e.value);JSON.stringify(a(i)?i:void 0)!==JSON.stringify(s)&&(r=d(r,t.path,s),c=!0),!1!==t.counted&&(u+=1)}return{props:r,pasted:u,changed:c}}function O(e,n,o,r=t){return 0===e.pasted?r.nothing({source:n,target:o}):r.pasted({count:e.pasted,source:n})}var E="⌥⌘C",J="⌥⌘V";function T(r){const u=r.words??t,c=[];return r.canCopy&&c.push({label:u.copy,icon:/* @__PURE__ */o(e,{}),shortcut:"⌥⌘C",onClick:r.onCopy}),r.held&&c.push({label:u.paste({source:r.held.sourceLabel}),icon:/* @__PURE__ */o(n,{}),shortcut:"⌥⌘V",onClick:r.onPaste}),c}function x(t){if(!t.altKey||t.shiftKey||!t.metaKey&&!t.ctrlKey)return null;const e=t.target;return e&&(e.isContentEditable||"INPUT"===e.tagName||"TEXTAREA"===e.tagName||"SELECT"===e.tagName)?null:"KeyC"===t.code?"copy":"KeyV"===t.code?"paste":null}export{E as COPY_STYLE_SHORTCUT,J as PASTE_STYLE_SHORTCUT,r as STYLE_KIND,c as choiceKind,C as clearStyle,k as copyStyle,l as fieldKind,N as heldStyle,O as pasteMessage,K as planPaste,T as styleMenuItems,x as styleShortcut,j as subscribeStyle,u as withStyleKind};
@@ -1,5 +0,0 @@
1
- import{blockTypesIn as e}from"./chunk-5ZBY24K7.js";import{buildPaletteSections as t,pinnedSection as o,paletteWithoutPinned as n,categoryLabel as s}from"./chunk-PA3PNTVV.js";import{sectionTemplatesOf as i}from"./chunk-BVN33R76.js";import{SidePanelHead as r,PanelModeExit as c}from"./chunk-QR4DLZ3P.js";import{useEaselSession as l}from"./chunk-O7Q4DDJT.js";import{blockRuns as a}from"./chunk-HQ4VVRIC.js";import{useScreenBlockLook as p,useScreenBlockRules as m}from"./chunk-2F6RZTR7.js";import{DEFAULT_SCREEN_WORDS as d}from"./chunk-E2O2MRZR.js";import{useEasel as u}from"./chunk-PYCLHOSA.js";import{useWords as k}from"./chunk-MFIRYGHW.js";import{AddPanel as f}from"./chunk-W3XX2CNW.js";import{AddIcon as h}from"./chunk-L5KW4HG5.js";import{useState as y,useEffect as b,useMemo as j}from"react";import{jsx as g,jsxs as $,Fragment as O}from"react/jsx-runtime";var R=e=>`section:${e}`,v=e=>`block:${e}`,B=e=>`template:${e}`;function L({blocks:L,blocksOnly:x,at:H,onAdd:A,itemFor:C,session:I,siteWide:N,onClose:V,onHide:W,readOnly:D}){const F=u(e=>e.config),P=p(),{labelAtLevel:T,categoryLabel:Z,firstSection:Q,Icon:S,Thumbnail:Y}=P,{blockIsOffered:w}=m(),z=k("screen",d).add,E=l(),[G,K]=y([]);b(()=>{let t=!1;const o=e=>w(e,E);return i(E).list().then(n=>{if(t)return;const s=F.components;K(n.filter(t=>t.node?.type&&s[t.node.type]&&e(t.node).every(o)))}).catch(()=>{}),()=>{t=!0}},[F,E]);const M=j(()=>t(F,P),[F]),X=e=>({type:R(e.type),label:e.name,cover:/* @__PURE__ */g(Y,{type:e.type}),title:e.desc?`${e.name} — ${e.desc}`:z.tile({name:e.name}),keywords:[e.alias??"",e.desc,e.type,e.catLabel].filter(Boolean)}),J=j(()=>{const e=[];if(L&&L.choices.length>0&&a(L.choices).forEach((t,o)=>{e.push({key:`blocks:${o}`,title:0===o?`${z.inside({name:L.parentName})}${t.group?` · ${t.group}`:""}`:t.group??"",tiles:t.items.map(e=>({type:v(e.type),label:e.label,icon:/* @__PURE__ */g(S,{type:e.type,size:18}),title:z.tile({name:e.label})}))})}),x)return e;const t=o(M,Q);t&&e.push({key:"start",title:z.startBlank,tiles:[X(t)]}),G.length>0&&e.push({key:"templates",title:z.templates,tiles:G.map(e=>{return{type:B(e.id),label:e.name,cover:/* @__PURE__ */g(Y,{type:e.node.type}),keywords:[(t=e.node.type,T(t,"section",F.components[t]?.label??t)),e.node.type]};var t})});const i=n(M,Q);for(const t of Object.keys(F.categories??{})){const o=i.filter(e=>e.cat===t);0!==o.length&&e.push({key:`category:${t}`,title:s(F,t,Z),tiles:o.map(X)})}return e},[L,x,G,M,F,z]),q=e=>{const t=e.indexOf(":"),o=e.slice(0,t),n=e.slice(t+1);if("section"===o)return{kind:"section",type:n};if("block"===o)return{kind:"block",type:n};if("template"===o){const e=G.find(e=>e.id===n);return e?{kind:"template",template:e}:null}return null};/* @__PURE__ */
2
- return $(O,{children:[
3
- /* @__PURE__ */g(r,{icon:/* @__PURE__ */g(h,{size:15}),title:z.title,context:x?z.contextBlocks:z.contextAll,actions:/* @__PURE__ */g(c,{label:z.done,description:z.doneDescription,onClick:V}),onHide:W}),
4
- /* @__PURE__ */$("div",{className:"sf-addside sf-scroll",children:[
5
- /* @__PURE__ */g(f,{groups:J,session:I,itemFor:e=>C(q(e)??{kind:"section",type:e}),onInsert:e=>{const t=q(e);t&&A(t)},at:H,hint:x?z.hintBlocks:z.hint,searchLabel:x?z.searchBlocks:z.searchSections,readOnly:D}),N&&!x?N:null]})]})}export{L as AddSidePanel,v as blockKey,R as sectionKey,B as templateKey};
@@ -1,64 +0,0 @@
1
- import{dedupeSlotChildren as e}from"./chunk-26OOWIJJ.js";import{styleClipboardOf as n}from"./chunk-SQTY6CJD.js";import{markedTreeNodeId as t,revealSelectedTreeRow as o,sameSelector as r}from"./chunk-FGNR22NY.js";import{cloneNodeWithFreshIds as i}from"./chunk-2GVCAIPX.js";import{rootRowName as l,slotChildRowName as s,slotChildRenameProp as d,sectionRenameProp as c}from"./chunk-TBF5CVPA.js";import{scrollPreviewToSection as a,gotoPreviewSlide as p,scrollPreviewToTop as u}from"./chunk-4ES5JGGX.js";import{useEaselKeyTarget as f,useEaselUndoKeys as h,editorRootFocus as m}from"./chunk-PT6V53OO.js";import{SlotChildActionsProvider as g}from"./chunk-KCBEE2MC.js";import{screenStorageKeys as y,DEFAULT_PANEL_W as k,clampPanelWidth as S}from"./chunk-ORR3Q4WV.js";import{usePartBridge as v}from"./chunk-RINSVAKA.js";import{useSectionOps as x}from"./chunk-NGT4DAHF.js";import{useNodeClipboard as b,useNodeContextMenu as w}from"./chunk-JLTZQ4US.js";import{PageEditGuardNotices as z}from"./chunk-MAEXP3KE.js";import{useScreenDocument as C}from"./chunk-ONRYLR2D.js";import{requestMediaPick as B}from"./chunk-KG7RJWOK.js";import{heldStyle as O,styleShortcut as $}from"./chunk-57DJOKXT.js";import{AddChildRow as N}from"./chunk-5545A3PC.js";import{AddSidePanel as I}from"./chunk-7QWOAQQL.js";import{SidePanelHead as T,PanelShowStrip as R}from"./chunk-QR4DLZ3P.js";import{MediaSidePanel as P}from"./chunk-4OL6MRYY.js";import{useScreenSaveSwitch as A,useScreenNodeKeys as M,useScreenPinned as j,useScreenDocumentLabel as L,useScreenCanvasFrame as E,useScreenInspectorPanel as D,useScreenDevices as V,useScreenPickFollowsSelection as H,useScreenLeftView as F,useScreenAdd as W,SELECTION_MODE as U,sameInspectorMode as G,useScreenBridges as Y,useScreenBlockRules as J,useScreenBlockLook as Q,useScreenStorageNamespace as K,useScreenNotify as X,useScreenCanvasHead as _,isSlotMode as q,useScreenStyleClipboard as Z,useScreenDocumentPass as ee,useScreenCanvasDrag as ne,ScreenCanvasTargetProvider as te,isPinnedFirst as oe,isPinnedLast as re,screenSlotsOf as ie}from"./chunk-2F6RZTR7.js";import{ROOT_ZONE as le,blockNodeActions as se,TREE_MAX_DEPTH as de,childSlotsOf as ce,slotFieldsOf as ae,slotChildrenIn as pe,nestsInTree as ue,newNodeId as fe}from"./chunk-PLVEGYK6.js";import{useMediaPanel as he,usePanelPick as me,useCancelPanelPick as ge}from"./chunk-R6WTQWAC.js";import{useEaselHost as ye,useHostEscape as ke}from"./chunk-U3JP4VGF.js";import{DEFAULT_SCREEN_WORDS as Se}from"./chunk-E2O2MRZR.js";import{useEasel as ve,useEaselApi as xe}from"./chunk-PYCLHOSA.js";import{TreeRow as be,Subtree as we,LayersTree as ze,TreeGroupLabel as Ce,TreeRowAction as Be,TreeSeam as Oe}from"./chunk-UFY6RNMT.js";import{toItemSelector as $e,useNodeOps as Ne}from"./chunk-D2BCHTQR.js";import{saveIndicator as Ie}from"./chunk-H6DDIBQ4.js";import{EaselTopBar as Te,TopBarRail as Re,TopBarCluster as Pe,EaselIconButton as Ae,TopBarDivider as Me,DeviceSwitch as je,InspectorIconButton as Le,PanelResizeHandle as Ee,MAX_PANEL_W as De,MIN_PANEL_W as Ve,panelWidthVars as He,SaveState as Fe,SaveStateToggle as We}from"./chunk-TJ7YIRWQ.js";import{useWords as Ue}from"./chunk-MFIRYGHW.js";import{CanvasDragLayer as Ge}from"./chunk-W3XX2CNW.js";import{createDragSession as Ye,useTreeDrag as Je,gapToMoveIndex as Qe}from"./chunk-67GNT6PF.js";import{useCanvasFrame as Ke,BLOCK_SELECTOR as Xe,useCanvasEvent as _e}from"./chunk-PAELDYYS.js";import{LayersIcon as qe,MediaIcon as Ze,UndoIcon as en,RedoIcon as nn,TrashIcon as tn,EyeOffIcon as on,EyeIcon as rn,DuplicateIcon as ln}from"./chunk-L5KW4HG5.js";import{zoneKey as sn,ROOT_ID as dn,ROOT_SLOT as cn,parseZoneKey as an,DataError as pn}from"./chunk-KRXQM65X.js";import{useRef as un,useMemo as fn,useState as hn,useEffect as mn,useCallback as gn,useLayoutEffect as yn,Fragment as kn}from"react";import{Tooltip as Sn,Button as vn,toast as xn}from"efficient-shell/ui";import{jsx as bn,jsxs as wn,Fragment as zn}from"react/jsx-runtime";function Cn({saveState:e,notSaving:n,readOnlyReason:t,toggle:o,onToggle:r,onRetry:i}){if(null!==t)/* @__PURE__ */return bn(Fe,{tone:"off",label:t,role:"status"});if(n)/* @__PURE__ */
2
- return bn(Fe,{tone:e.pending?"off-unsaved":"off",label:"Not saving — see the notice above",role:"status"});const{tone:l,label:s}=Ie(e),d=e.failed&&!e.paused&&/* @__PURE__ */bn(vn,{variant:"secondary",size:"sm",onClick:i,children:"Retry now"});/* @__PURE__ */
3
- return wn(zn,o?{children:[
4
- /* @__PURE__ */bn(We,{pressed:e.paused,onToggle:r,title:e.paused?"Auto-save is off — click to turn it back on (saves your held edits)":"Auto-save is on — click to pause it",children:/* @__PURE__ */bn(Fe,{tone:l,label:s})}),d]}:{children:[
5
- /* @__PURE__ */bn(Fe,{tone:l,label:s,role:"status"}),d]})}function Bn({expand:e}){/* @__PURE__ */
6
- return bn("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.9,strokeLinecap:"round",strokeLinejoin:"round",children:/* @__PURE__ */wn(zn,e?{children:[
7
- /* @__PURE__ */bn("path",{d:"M8 9l4-4 4 4"}),
8
- /* @__PURE__ */bn("path",{d:"M8 15l4 4 4-4"})]}:{children:[
9
- /* @__PURE__ */bn("path",{d:"M8 4l4 4 4-4"}),
10
- /* @__PURE__ */bn("path",{d:"M8 20l4-4 4 4"}),
11
- /* @__PURE__ */bn("path",{d:"M5 12h14"})]})})}function On(e,n,t){const o=t-n;if(o<6)return null;if(o<26)return{top:Math.round((n+t)/2),height:Math.round(o)};return{top:Math.round(Math.min(Math.max(e,n+13),t-13))}}var $n="__rungs";var Nn="screen:band",In={duplicate:!0,delete:!0};function Tn(){const Ie=ye(),{target:Fe,docId:We,capabilities:Tn,currentSlug:Rn,siteId:Pn,onPublish:An,saveState:Mn,saveConflict:jn,retrySave:Ln,toggleAutoSave:En,readOnly:Dn,readOnlyReason:Vn=null}=C(),Hn=A(),Fn=M(),{mediaEditing:Wn,hasEditGuard:Un,hasPinnedChrome:Gn}=Tn,{appState:Yn,dispatch:Jn,history:Qn,selectedItem:Kn,getSelectorForId:Xn,config:_n}=ve(e=>e),qn=j(),{first:Zn,firstGroup:et,lastGroup:nt,isSectionGroup:tt,sectionGroupZone:ot,panelOf:rt}=qn,it=rt(Zn),lt=e=>oe(qn,e),st=e=>re(qn,e),dt="node"===qn.firstRow,ct=qn.band??null,at=Ue("screen",Se),pt=L()??`/${Rn}`,ut=E(),ft=D(),ht=x({readOnly:Dn}),mt=x({readOnly:Dn,foldIntoHistory:!0}),gt=un(null),yt=xe(),kt=fn(()=>({...ht,select:e=>{gt.current=e,ht.select(e)},commitDocument:(e,n)=>{if(void 0!==n){const t=yt.config;gt.current=$e(e,t,n)}ht.commitDocument(e,n)}}),[ht,yt]),St=Yn.ui,vt=St.leftSideBarVisible,xt=St.rightSideBarVisible,{options:bt,widths:wt,initial:zt,fluid:Ct,fit:Bt}=V(),[Ot,$t]=hn(zt),Nt=he(),It=Wn&&null!==Nt,Tt=me(),Rt=ge();H(Kn?.props.id);const{read:Pt,write:At,forSelection:Mt}=F(),[jt,Lt]=hn(Pt);mn(()=>{At(jt)},[jt]);const[Et,Dt]=hn(0),Vt=un(null),Ht=un(null),Ft=Ke(Ht,{readySelector:Xe}),Wt=f(Ht);h(Ht,Ft);const[Ut,Gt]=hn(!1),Yt=un(!1),Jt=un(!1),[Qt,Kt]=hn(null),Xt=W(),_t=e=>Kt(null===e?null:{zone:le,index:e}),[qt,Zt]=hn([]),[eo,no]=hn(U),to="puck"===eo.kind,oo=Ut&&!Qt&&Xt.railTarget?Xt.railTarget(Yn.data,{node:Kn??null,mode:eo}):null,ro=oo?{zone:sn(oo),index:oo.index}:null,io=Qt??ro,lo=io&&io.zone===le?io.index:null,so=t(eo,Kn?.props.id),[co,ao]=hn(null);mn(()=>{co&&(o(),ao(null))},[co]);const po=un(Xn);po.current=Xn;const uo=gn((e,{scroll:n})=>{Lt(n=>Mt(e,n)),n&&ao(e);const t=[];let o=e;for(let e=0;e<4;e++){const e=po.current(o)?.zone;if(!e||!e.includes(":"))break;const n=e.split(":")[0];t.push(n),t.push(e),o=n}0!==t.length&&Fo(e=>{if(t.every(n=>!e.has(n)))return e;const n=new Set(e);return t.forEach(e=>n.delete(e)),n})},[]),fo=un(null);mn(()=>{const e=fo.current;fo.current=null;const n=null==Kn?.props.id?null:String(Kn.props.id);no(e&&e.id===n?e.mode:rt(Kn?.type)??U);const t=Kn?.props.id,o=gt.current;if(gt.current=null,!t)return;const i=Xn(t);uo(String(t),{scroll:!r(o,i??null,le)})},[Kn?.props.id,uo]);const ho=gn(e=>{no(n=>G(n,e)?n:e),Jn({type:"setUi",ui:{rightSideBarVisible:!0}})},[Jn]),mo=un(()=>{});mo.current=(e,n)=>{const t=e?Pr(e.zone??le)[e.index]?.props.id:null,o=null==t?null:String(t),r=null==Kn?.props.id?null:String(Kn.props.id);no(e=>G(e,n)?e:n),o!==r&&(fo.current={id:o,mode:n},kt.select(e))};const go=gn((e,n)=>mo.current(e,n),[]),yo={kind:eo.kind,mode:eo,open:ho,show:e=>no(e),reveal:()=>{xt||Jn({type:"setUi",ui:{rightSideBarVisible:!0}})},select:go},ko=Y(yo,{data:Yn.data,selected:Kn??null,zoneOf:e=>Xn(e)?.zone,readOnly:Boolean(Dn),select:e=>{no(U),kt.select({index:e})},replace:(e,n)=>kt.replaceComponent(le,e,n),scrollTo:e=>ri(e)},{device:Ot,refreshes:Et},{setView:Lt,reveal:()=>{vt||Jn({type:"setUi",ui:{leftSideBarVisible:!0}})}}),So=ko.pinnedSource??!1,vo=ko.resolveLeftView?ko.resolveLeftView(jt,It):"media"===jt&&It?jt:"sections",xo=J(),{isLockedBlock:bo,duplicateBlocked:wo,nestDepth:zo,newSectionNode:Co,canAddTo:Bo,blockIsOffered:Oo}=xo,$o=Q(),{labelAtLevel:No,Icon:Io,useProducts:To}=$o,Ro=$o.rowName?(e,n,t)=>$o.rowName(e,n,t):void 0,Po=gn(e=>{Jn({type:"setUi",ui:{rightSideBarVisible:!0}}),a(e),uo(e,{scroll:!0})},[Jn,uo]),{selectNode:Ao,openPartId:Mo}=v({mode:eo,setMode:no,onOpenPart:Po}),[jo,Lo]=hn(null);ke(null!==jo,()=>Lo(null));const Eo=y(K()),Do=Eo.collapsed,Vo=Eo.panelWidths,[Ho,Fo]=hn(()=>{if("undefined"==typeof window)/* @__PURE__ */return new Set;try{const e=window.localStorage.getItem(Do);return new Set(e?JSON.parse(e):[])}catch{/* @__PURE__ */
12
- return new Set}});mn(()=>{try{window.localStorage.setItem(Do,JSON.stringify([...Ho]))}catch{}},[Ho]);const[Wo,Uo]=hn(()=>{if("undefined"==typeof window)return{...k};try{const e=window.localStorage.getItem(Vo);if(!e)return{...k};const n=JSON.parse(e);return{left:S(Number(n.left)||k.left),right:S(Number(n.right)||k.right)}}catch{return{...k}}});mn(()=>{const e=setTimeout(()=>{try{window.localStorage.setItem(Vo,JSON.stringify(Wo))}catch{}},300);return()=>clearTimeout(e)},[Wo]);const Go=gn((e,n)=>Uo(t=>{const o="function"==typeof n?n(t[e]):n;return t[e]===o?t:{...t,[e]:o}}),[]),Yo=gn(e=>Go("left",e),[Go]),Jo=gn(e=>Go("right",e),[Go]),Qo=e=>Ho.has(e),Ko=e=>Fo(n=>{const t=new Set(n);return t.has(e)?t.delete(e):t.add(e),t}),Xo=un(!1),_o=un(null);mn(()=>{if(Xo.current&&!Ut){const e=_o.current,n=e&&e.isConnected&&!e.closest('[aria-hidden="true"]')?e:null;(n??Ht.current?.querySelector(`button[aria-label="${CSS.escape(at.add.title)}"]`))?.focus(),_o.current=null}Xo.current=Ut},[Ut]),mn(()=>{if(!Ut||!Wt)return;const e=e=>{"Escape"===e.key&&fi()};return Wt.addEventListener("keydown",e),()=>Wt.removeEventListener("keydown",e)},[Ut,Wt]),ke(Ut,()=>fi()),mn(()=>{!vt&&Ut&&(Gt(!1),Kt(null),Yt.current=!1)},[vt]),mn(()=>{if(!Tt)return Jt.current&&Jn({type:"setUi",ui:{leftSideBarVisible:!1}}),void(Jt.current=!1);Ut&&(Gt(!1),Kt(null),Jt.current=Yt.current,Yt.current=!1),vt||(Jt.current=!0,Jn({type:"setUi",ui:{leftSideBarVisible:!0}}))},[Tt]),mn(()=>{!vt&&Tt&&(Jt.current=!1,Rt())},[vt]),mn(()=>{if(!Tt||!Wt)return;const e=e=>{"Escape"===e.key&&Rt()};return Wt.addEventListener("keydown",e),()=>Wt.removeEventListener("keydown",e)},[Tt,Wt]),ke(null!==Tt,()=>Rt());const qo=X(),Zo=(e,n="success")=>{qo?qo(e,"error"===n?"error":"info"):"error"===n?xn.error(e,{duration:3200,sound:!1}):xn.success(e,{duration:1900,sound:!1})},er=un(null),[nr,tr]=hn(0),[or,rr]=hn(0),ir=_(),lr=un(null),sr=e=>Math.max(0,e.clientHeight-(lr.current?.offsetHeight??0));mn(()=>{const e=er.current;if(!e)return;const n=()=>{tr(e.clientWidth),rr(sr(e))};n();const t=new ResizeObserver(n);return t.observe(e),lr.current&&t.observe(lr.current),()=>t.disconnect()},[]),yn(()=>{er.current&&(tr(er.current.clientWidth),rr(sr(er.current)))},[Wo,vt,xt]);const dr=Ot===Ct?nr>0?nr:wt[Ct]:wt[Ot],cr=nr>0?Math.min(nr/dr,"shrink"===Bt?1:2):1,ar=dr*cr,pr=nr>0&&ar>nr+1,ur={width:ar,height:or||"100%",flex:"none",position:"relative"},fr={width:dr,height:or?or/cr:"100%",maxHeight:"none",transform:1!==cr?`scale(${cr})`:void 0,transformOrigin:"top left"},hr=()=>Jn({type:"setUi",ui:{leftSideBarVisible:!vt}}),mr=()=>Jn({type:"setUi",ui:{rightSideBarVisible:!xt}}),gr=e=>{Ut&&(Gt(!1),Kt(null),Yt.current=!1,vt&&jt===e)||Tt&&(Jt.current=!1,Rt(),vt&&jt===e)||(vt&&jt===e?hr():(Lt(e),vt||Jn({type:"setUi",ui:{leftSideBarVisible:!0}})))},yr=()=>{B(Ie,{accept:"image/*",title:"Media library"})},kr=()=>{no(U),kt.select(null),u()},Sr=()=>{no(it??U),xt||Jn({type:"setUi",ui:{rightSideBarVisible:!0}})},vr=Yn.data.content??[],xr=()=>{const e=vr.findIndex(lt),n=vr.findIndex(st);return{floor:e>=0?e+1:0,cap:n>=0?n:vr.length}},br=_n,wr=xo.stripCopy,zr=e=>i(e,wr),Cr=b(),Br=Ne({data:Yn.data,config:br,readOnly:Boolean(Dn),clipboard:Cr,strip:wr?e=>wr(e):void 0,afterRemove:"none",stepBounds:(e,n)=>{if(e.parentId!==dn||e.slot!==cn)return{min:0,max:n-1};const{floor:t,cap:o}=xr();return{min:t,max:o-1}},commit:(e,{select:n})=>{void 0!==n&&no(U);const t=void 0===n||"node"===n?.kind?n:null;kt.commitDocument(e,t)}}),Or=e=>_n.components[e]?.label??e,$r=gn(e=>_n.components[e]?.defaultProps??{},[_n]),Nr=e=>No(e,"section",Or(e)),Ir=e=>l({type:e.type,props:e.props??{}},Nr(e.type),Ro),{nodeAddresses:Tr,zoneItems:Rr}=fn(()=>{const e=/* @__PURE__ */new Map,n=/* @__PURE__ */new Map,t=(o,r,i)=>{n.set(r,o),o.forEach((n,o)=>{const l=String(n.props?.id??"");if(l&&e.set(l,{zone:r,index:o}),i>=de)return;const s=/* @__PURE__ */new Map;for(const{child:e,zone:t}of ce(_n,n))s.set(t,[...s.get(t)??[],e]);for(const[e,n]of s)t(n,e,i+1)})};return t(vr,le,0),{nodeAddresses:e,zoneItems:n}},[vr,_n]),Pr=gn(e=>Rr.get(e)??[],[Rr]),Ar=e=>{const n=Tr.get(e);return n?Pr(n.zone)[n.index]:void 0},Mr=e=>ie(xo,_n,e),jr=e=>{if(!xo.slotsOf||e===le)return null;const n=e.lastIndexOf(":");if(n<=0)return null;const t=Ar(e.slice(0,n));if(!t)return null;const o=Mr(t).filter(e=>e.rung),r=o.findIndex(t=>t.slot===e.slice(n+1));return r<0?null:{node:t,slot:o[r],position:r}},Lr=(()=>{if(!q(eo))return null;const e=`${eo.nodeId}:${eo.slot}`;return jr(e)?.slot.panel===eo.kind?e:null})(),Er=un(null);mn(()=>{const e=Er.current;if(Er.current=null,!Lr||!q(eo))return;const n=eo.nodeId;uo(n,{scroll:e!==Lr}),Fo(e=>{if(!e.has(n))return e;const t=new Set(e);return t.delete(n),t})},[eo]);const Dr=(e,n,t)=>{const o=String(e.props.id);if(!n.panel)return void(e=>{const n=Tr.get(e);n&&(n.zone===le?ii(n.index):Mi(n.zone,n.index,e,Ar(n.zone.slice(0,n.zone.lastIndexOf(":")))?.type??""))})(o);const r={kind:n.panel,nodeId:o,slot:n.slot},i=`${o}:${n.slot}`;t&&Lr!==i&&(Er.current=i),go(null,r),xt||Jn({type:"setUi",ui:{rightSideBarVisible:!0}}),ri(o)},Vr=(e,n,t)=>{const o=`${e}:${n}`;if(Fo(n=>{if(!n.has(o)&&!n.has(e))return n;const t=new Set(n);return t.delete(o),t.delete(e),t}),!t)return;Lr!==o&&(Er.current=o);go(null,{kind:t,nodeId:e,slot:n})},Hr=(e,n,t)=>{if(Dn||!xo.moveSlot)return;const o=Ar(e),r=o?Mr(o).filter(e=>e.rung):[],i=r[n];if(!i)return;const l={parentId:e,slot:$n,index:n},s=Qe(l,{...l,index:Math.min(Math.max(t,0),r.length)});if(s===n)return;const d=xo.moveSlot(e,n,s);"string"==typeof d&&Vr(e,d,i.panel)},Fr=To(),Wr=fn(()=>{const e=/* @__PURE__ */new Map;for(const n of Fr??[])e.set(n.slug,n.name);return e},[Fr]),Ur=e=>s(e,Or,$o.plainText,e=>Wr.get(e),$o.rowName),Gr=(e,n)=>{const t=_n.components[e.type]?.fields,o=n===le||Zi(n)?"section":"block",r=n===le&&(lt(e)||st(e)||tt(e.type)),i="block"===o?d(t):r?null:c(t);return $o.renamePropOf?$o.renamePropOf(e,o,i):i},Yr=(e,n,t,o)=>{if(!(!Dn&&jo?.zone===e&&jo.index===n))return;const r=(t,o)=>{Lo(null),o&&((e,n,t)=>{const o=Pr(e)[n];if(!o)return;const r=Gr(o,e);r&&kt.replaceComponent(e,n,{...o,props:{...o.props,[r]:t.trim()}})})(e,n,t)};/* @__PURE__ */
13
- return bn("input",{className:"es-tree-rename",defaultValue:o,autoFocus:!0,"aria-label":"Rename",onClick:e=>e.stopPropagation(),onBlur:e=>r(e.currentTarget.value,!0),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),r(e.currentTarget.value,!0)):"Escape"===e.key&&(e.preventDefault(),r("",!1))}},t)},Jr=n(Z()),Qr=Jr.scope({target:Fe,siteId:Pn,docId:We}),Kr=_n,Xr=(e,n)=>n===le?Nr(e):Or(e),_r=(e,n,t)=>{const o=Jr.plan(Qr,t,Xr(t.type,e),Kr);o&&(o.changed&&kt.replaceComponent(e,n,{...t,props:{...o.props,id:t.props.id}}),Zo(o.message))},qr=w({nodesIn:Pr,nodeAt:(e,n)=>Pr(e)[n]??null,labelOf:(e,n)=>n===le?Nr(e):Or(e),renamePropOf:Gr,beginRename:(e,n)=>Lo({zone:e,index:n}),history:{hasPast:Qn.hasPast,hasFuture:Qn.hasFuture,back:()=>Qn.back(),forward:()=>Qn.forward()},openAddSection:()=>{kt.select(null),pi(null)},openPageSettings:()=>{kt.select(null),no(U)},pageSettingsLabel:at.pageSettings,readOnly:Boolean(Dn),collapseAll:()=>Fo(new Set(Pr(le).map(e=>String(e.props.id)))),onPasteRefused:e=>Zo(e?at.pasteRefused({name:e.label}):"Your browser won’t let us read the clipboard — press ⌘V","error"),canPasteAt:(e,n)=>nl(e,n),menuRows:ko.menuRows,isLocked:e=>bo(e.type),duplicateBlocked:e=>wo(Yn.data,e),permits:e=>se(_n,e.type),canAddTo:Bo,nodeOps:Br,isPinned:(e,n)=>n===le&&(lt(e)||st(e)),sectionBand:xr,openAddInside:(e,n)=>{e===le?ii(n):kt.select({zone:e,index:n}),pi(null)},locate:e=>Tr.get(e)??null,rowNameOf:(e,n)=>n===le?Ir(e):Ur(e),selectAt:(e,n,t,o)=>{e===le?ii(n):Mi(e,n,t,o??"")},slotRung:e=>{const n=jr(e);return n?.slot.panel?{label:n.slot.label,select:()=>Dr(n.node,n.slot,!1)}:null},style:{held:()=>O(Qr),canCopy:e=>Jr.rows(Kr,e).some(e=>!1!==e.counted),copy:(e,n)=>Jr.copy(Qr,e,Xr(e.type,n),Kr),paste:(e,n,t)=>_r(e,n,t)},keys:Fn?{target:Wt,selected:()=>{const e=Yn.ui.itemSelector;return e?{zone:e.zone??le,index:e.index}:null},held:()=>Cr.get(),readOnly:Boolean(Dn),onDone:({done:e,name:n})=>{"copied"===e&&Zo(at.copied({name:n}))}}:void 0},Ft),Zr=un({copy:(e,n)=>{},paste:(e,n,t)=>{},at:()=>null,readOnly:!1});mn(()=>{Zr.current={copy:(e,n)=>Jr.copy(Qr,e,Xr(e.type,n),Kr),paste:_r,at:()=>{const e=Yn.ui.itemSelector;if(!e)return null;const n=e.zone??le,t=Pr(n)[e.index];return t?{zone:n,index:e.index,node:t}:null},readOnly:Boolean(Dn)}});const ei=gn(e=>{const n=$(e);if(!n)return;const t=Zr.current,o=t.at();o&&(e.preventDefault(),"copy"===n?t.copy(o.node,o.zone):t.readOnly||t.paste(o.zone,o.index,o.node))},[]);mn(()=>{if(!Wt)return;const e=e=>ei(e);return Wt.addEventListener("keydown",e),()=>Wt.removeEventListener("keydown",e)},[ei,Wt]),_e(Ft,"keydown",ei);const ni=vr.map(e=>e.props.id).join("|");mn(()=>{const e=Ft?.document??null,n=Ft?.window??null;let t=0;const o=[],r=()=>{if(!e)return void Zt(e=>e.length?[]:e);const n=vr.findIndex(st),t=n>=0?n:vr.length,o=n=>{const t=vr[n]?.props?.id;return null==t?null:e.querySelector(`[data-puck-component="${CSS.escape(String(t))}"]`)},r=e=>e?[...e.querySelectorAll(Xe)].map(e=>e.getBoundingClientRect()).filter(e=>e.width>0||e.height>0):[],i=[];for(let e=1;e<=t;e++){const n=o(e),t=o(e-1),l=n?.getBoundingClientRect()??null,s=t?.getBoundingClientRect()??null;if(!l&&!s)continue;const d=On(l&&s?(s.bottom+l.top)/2:l?l.top:s.bottom,Math.max(-1/0,...r(t).map(e=>e.bottom)),Math.min(1/0,...r(n).map(e=>e.top)));d&&i.push({...d,index:e})}Zt(e=>function(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t].top!==n[t].top||e[t].index!==n[t].index||e[t].height!==n[t].height)return!1;return!0}(e,i)?e:i)},i=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(r)};if(!e||!n)return void r();n.addEventListener("scroll",i,{passive:!0});const l=new ResizeObserver(i);return l.observe(e.documentElement),r(),o.push(setTimeout(r,150),setTimeout(r,450)),()=>{cancelAnimationFrame(t),o.forEach(clearTimeout),n.removeEventListener("scroll",i),l.disconnect()}},[Ft,ni,Ot,cr,vt,xt,Kn?.props.id]);const ti=Ft?.document??null,oi=Ft?.window??null;mn(()=>{const e=Vt.current;if(!e||!ti||!oi)return;const n=[],t=()=>{const n=ti.querySelector(`[data-puck-component="${CSS.escape(e.id)}"]`);if(!n)return!1;const t=n.getBoundingClientRect().top-e.offset;return Math.abs(t)>1&&oi.scrollTo({left:oi.scrollX,top:oi.scrollY+t,behavior:"instant"}),!0};return Vt.current=null,t()&&n.push(setTimeout(t,150),setTimeout(t,450)),()=>n.forEach(clearTimeout)},[ti,oi]);const ri=e=>{ko.holdCanvasOn?ko.holdCanvasOn(e):a(e)},ii=e=>{no(U),kt.select({index:e}),ko.sectionPressed?.(vr[e]);const n=vr[e]?.props?.id;n&&ri(n)},li=e=>{const{floor:n,cap:t}=xr(),o=e=>Math.min(Math.max(n,e),t);if("number"==typeof e)return o(e);const r=Kn&&eo.kind!==it?.kind?vr.findIndex(e=>e.props.id===Kn.props.id):-1;return o(r>=0?r+1:t)},si=(e,n)=>{const{floor:t,cap:o}=xr(),r=Math.min(Math.max(n,t),o),i=e<r?r-1:r;return i===e?{moved:!1,dest:e}:(kt.reorderComponent(le,e,i),kt.select({index:i}),{moved:!0,dest:i})},di=(e,n,t,o)=>{no(U),kt.select(o?{index:o.index,zone:o.zone}:{index:e}),a(n),Zo(`Added “${t}” section`)},ci=(e,n)=>{const t=li(n),o=Co(e,{nodeDefaults:$r,newNodeId:fe,sectionLabel:Nr,blockIsOffered:Oo}),r=o?kt.insertNode(le,t,o):kt.insertSection(e,t);return di(t,r,Nr(e),o?((e,n,t)=>{if(e.type===t)return null;const o={at:null},r=(e,n,i)=>{const l=i.filter(n=>n===e.type).length;for(const{child:s,zone:d,index:c}of ce(_n,e)){if(s.type===t&&(!o.at||n>o.at.depth)){const r=Bo(e.type,l,d.slice(d.lastIndexOf(":")+1)),i=r?.choices??(r?.spec?[{type:r.spec.childType,label:r.spec.childType}]:[]);null!==r&&"footer"!==r.source&&`${e.props.id}:${r.slot}`===d&&i.some(e=>e.type===t)&&(o.at={zone:d,index:c,depth:n})}r(s,n+1,[...i,e.type])}};return r({type:e.type,props:{...e.props,id:n}},1,[]),o.at?{zone:o.at.zone,index:o.at.index}:null})(o,r,e):null),t},ai=(e,n,t)=>{const o=li(t),r=kt.insertNode(le,o,n);return di(o,r,e),o},pi=e=>ui(le,e),ui=(e,n)=>{_o.current=document.activeElement??null,Tt&&(Yt.current=Jt.current,Jt.current=!1,Rt()),Kt(null===n?null:{zone:e,index:n}),Gt(!0),vt||(Yt.current=!0,Jn({type:"setUi",ui:{leftSideBarVisible:!0}}))},fi=()=>{Gt(!1),Kt(null),Yt.current&&Jn({type:"setUi",ui:{leftSideBarVisible:!1}}),Yt.current=!1},hi=(e,n,t)=>{if("section"===e.kind)kt.insertComponent(n,e.type,t);else{if("template"!==e.kind)return;kt.insertNode(n,t,zr(e.template.node))}no(U),kt.select({index:t,zone:n})},mi=(e,n)=>$o.rowName?n?lt(e)?$o.rowName(e,"section",at.header):st(e)?$o.rowName(e,"section",at.footer):tt(e.type)?$o.rowName(e,"section",Or(e.type)):Ir(e):Ur(e):n?Nr(e.type):Or(e.type),gi=e=>n=>{e()},yi=()=>ko.editPinnedSource?.(),ki=(e,n,t)=>{if(Dn)return null;const o=Pr(e)[n];return o&&!se(_n,o.type).delete?null:/* @__PURE__ */bn(Be,{kind:"delete",label:`Delete ${t}`,onClick:()=>((e,n)=>{const t=Pr(e)[n]?.props?.id;null!=t&&Br.remove(String(t))})(e,n),children:/* @__PURE__ */bn(tn,{size:15})})},Si=e=>$o.rowPreview?.(e)||void 0,vi=e=>$o.rowMarks?.(e)??void 0,xi=(e,n,t)=>$o.rowActions?.(e,n,t)??null,bi=(e,n,t,o)=>{if(Dn)return null;const r=Boolean(t.props._hidden);/* @__PURE__ */
14
- return bn(Be,{kind:"eye",label:r?`Show ${o}`:`Hide ${o}`,onClick:()=>zi(e,n,t),children:/* @__PURE__ */bn(r?on:rn,{size:14,strokeWidth:1.8,strokeLinecap:void 0,strokeLinejoin:void 0})})},wi=e=>{const n=Nr(vr[e]?.type??""),t=n?at.addSectionBefore({name:n}):at.addSectionHere;return xl(le,e,()=>pi(e),t)},zi=(e,n,t)=>{kt.replaceComponent(e,n,{...t,props:{...t.props,_hidden:!t.props._hidden}})},Ci=e=>ae(_n,e),Bi=e=>ce(_n,e),Oi=e=>xo.slotsOf?Mr(e).map(n=>({slot:n.slot,rung:n.rung?n:null,kids:pe(e,n.slot)})):[{slot:null,rung:null,kids:Bi(e)}],$i=e=>xo.slotsOf?Oi(e).flatMap(e=>e.kids):Bi(e),Ni=e=>Boolean(xo.slotsOf)&&Mr(e).some(e=>e.rung),Ii=(e,n,t)=>null===t?void 0===n?Bo(e):Bo(e,n):Bo(e,n,t),Ti=(e,n,t)=>{const o=ue(_n,e.type,n)&&(t||$i(e).length>0||Ni(e));return{collapsible:o,folded:o&&Qo(String(e.props.id))}},Ri=(e,n,t)=>Oi(e).flatMap(o=>{const r=o.rung?n+1:n,i=o.kids.flatMap(({child:e})=>Ti(e,r,t(e.type)).collapsible?[String(e.props.id),...Ri(e,r+1,t)]:[]);return o.rung?[`${e.props.id}:${o.rung.slot}`,...i]:i}),Pi=e=>$i(e).length>0||Ni(e)||Boolean(Bo(e.type)),Ai=e=>Boolean(Bo(e)),Mi=(e,n,t,o)=>{if(no(U),Bo(o)?.spec?.slider){const t=e.split(":")[0];p(t,n),kt.select({index:n,zone:e}),a(t)}else kt.select({index:n,zone:e}),ri(t)},ji=(e,n,t,o,r)=>{const i=`${e}:${n}`;kt.insertComponent(i,t,o),Bo(r)?.spec?.slider?requestAnimationFrame(()=>{p(e,o),kt.select({index:o,zone:i})}):kt.select({index:o,zone:i})},Li=(e,n,t)=>{kt.insertComponent(e,n,t),no(U),kt.select({index:t,zone:e})},Ei=un(/* @__PURE__ */new Set);mn(()=>{vr.forEach(e=>{const n=Bo(e.type)?.spec;if(!n)return;const t=e.props.id;if(Ei.current.has(t))return;Ei.current.add(t);if((Array.isArray(e.props[n.slot])?e.props[n.slot]:[]).length>0)return;if(n.skipSeed?.(e.props))return;const o=`${t}:${n.slot}`,r=n.legacy?.(e.props)??[];(r.length?r:n.seeds($r)).forEach((e,t)=>mt.seedChild(o,t,n.childType,e))})},[vr,mt,$r]);const Di=un(/* @__PURE__ */new Set);mn(()=>{vr.forEach((n,t)=>{const o=n.props.id;if(Di.current.has(o))return;const r=e(n,Ci(n.type));Di.current.add(o),r&&mt.replaceComponent(le,t,{...n,props:r})})},[vr,mt]),ee(mt,_n);const Vi=vr.findIndex(st),Hi=Vi>=0?vr[Vi]:null,Fi=dt?vr.findIndex(lt):-1,Wi=Fi>=0?vr[Fi]:null,Ui=vr.find(e=>e.type===et)??null,Gi=vr.find(e=>e.type===nt)??null,Yi=Vi>=0?Vi:vr.length,Ji=[];vr.forEach(e=>{st(e)||(Pi(e)&&Ji.push(String(e.props.id)),Ji.push(...Ri(e,1,Ai)))}),Hi&&(Ji.push(String(Hi.props.id)),Ji.push(...Ri(Hi,1,Ai)));const Qi=Ji.length>0&&Ji.every(e=>Ho.has(e)),Ki=e=>{const n=$o.blockRowName(e,Or);return $o.rowName?$o.rowName(e,"block",n):n},Xi=(e,n,t,o)=>{const r=Pr(e)[t];if(!r)return;const i={...an(e),index:t},l={...an(n),index:Math.min(Math.max(o,0),Pr(n).length)},s=Qe(i,l);if(e!==n||s!==t)try{Br.move(String(r.props.id),{...l,index:s})}catch(e){if(!(e instanceof pn))throw e}},_i=e=>{const n=/* @__PURE__ */new Set,t=e=>{for(const{child:o,zone:r}of Bi(e))n.add(r),t(o)};for(const t of Ci(e.type))n.add(`${e.props.id}:${t}`);return t(e),n},qi=e=>{let n=e.slice(0,e.indexOf(":"));for(let e=0;e<64;e++){const e=Tr.get(n);if(!e)return null;if(e.zone===le)return n;n=e.zone.slice(0,e.zone.indexOf(":"))}return null},Zi=e=>{const n=e.slice(0,e.indexOf(":")),t=vr.find(e=>tt(e.type)&&String(e.props.id)===n);return t&&ot(n)===e?t:null},el=(e,n,t)=>{if(e.rung){const t=Ar(e.rung.nodeId),o=t?Mr(t).filter(e=>e.rung).length:0;return n.parentId===e.rung.nodeId&&n.slot===$n&&n.index>=0&&n.index<=o}if(n.slot===$n)return!1;if(e.add)return ol(e.add,n);const o=sn(n);if(tt(e.type))return!1;const r=Zi(o),i=Zi(e.zone);if(r||i)return!(!r||!i)&&(n.index>=0&&n.index<=Pr(o).length);if(e.zone===le||o===le){if(e.zone!==o)return!1;const{floor:t,cap:r}=xr();return n.index>=t&&n.index<=r}if(n.index<0||n.index>Pr(o).length)return!1;if(e.zone===o)return!0;const l=Hi&&!qn.lastIsOpen?String(Hi.props.id):null;return(!l||qi(e.zone)!==l&&qi(o)!==l)&&((e,n,t,o)=>{if(e===n)return!0;const r=o??Pr(e)[t];if(!r)return!1;const i=n.split(":")[0],l=Tr.get(i),s=l?Pr(l.zone)[l.index]:void 0;if(!s)return!1;if(!o&&_i(r).has(n))return!1;const d=Bo(s.type,zo(Yn?.data,s.type,i),n.slice(n.lastIndexOf(":")+1));return!!d&&(!!(d.choices?d.choices.some(e=>e.type===r.type):d.spec?.childType===r.type)&&!d.spec?.addBlocked?.(Pr(n),r))})(e.zone,o,e.index,t)},nl=(e,n)=>{const t=sn(e.from);if(t===sn(n))return!0;const o=e.node;return el({id:String(o.props?.id??""),zone:t,index:-1,type:o.type},n,o)},tl=e=>{const n=e.slice(0,e.indexOf(":")),t=Tr.get(n),o=t?Pr(t.zone)[t.index]:void 0;if(!t||!o)return null;const r=Bo(o.type,zo(Yn?.data,o.type,n),e.slice(e.lastIndexOf(":")+1));if(!r||`${n}:${r.slot}`!==e)return null;if("footer"===r.source)return null;const i=r.choices??(r.spec?[{type:r.spec.childType,label:Or(r.spec.childType)}]:[]),l=jr(e);return{parent:o,parentId:n,target:r,choices:i,parentName:l?l.slot.label:mi(o,t.zone===le)}},ol=(e,n)=>{const t=sn(n);if("block"!==e.kind){if(Zi(t))return n.index>=0&&n.index<=Pr(t).length;if(t!==le)return!1;const{floor:e,cap:o}=xr();return n.index>=e&&n.index<=o}if(t===le)return!1;const o=tl(t);return!(!o||!o.choices.some(n=>n.type===e.type))&&!o.target.spec?.addBlocked?.(Pr(t))},rl=(e,n)=>{e.rung?Hr(e.rung.nodeId,e.index,n.index):e.add?((e,n)=>{if("block"!==e.kind&&Zi(sn(n)))return void hi(e,sn(n),n.index);if("section"===e.kind)return void ci(e.type,n.index);if("template"===e.kind)return void ai(e.template.name,zr(e.template.node),n.index);const t=sn(n),o=tl(t);o&&(o.target.spec?ji(o.parentId,o.target.slot,e.type,n.index,o.parent.type):Li(t,e.type,n.index))})(e.add,n):e.zone===le?si(e.index,n.index):Xi(e.zone,sn(n),e.index,n.index)},[il]=hn(()=>Ye()),ll=Je({keyOf:e=>e.id,readOnly:Boolean(Dn),session:il,canDrop:el,onDrop:rl,onStep:(e,n)=>{e.rung?Hr(e.rung.nodeId,e.index,n<0?e.index-1:e.index+2):e.zone===le?((e,n)=>{const t=Nr(vr[e]?.type??""),o=si(e,n<0?e-1:e+2);if(!o.moved)return void Zo(`“${t}” is already ${n<0?"first":"last"}`);const{floor:r,cap:i}=xr();Zo(`Moved “${t}” to position ${o.dest-r+1} of ${i-r}`)})(e.index,n):Xi(e.zone,e.zone,e.index,n<0?e.index-1:e.index+2)}}),sl=gn(e=>{const{floor:n,cap:t}=xr(),o=[];for(const r of e.nodes){const e=sn(r.place),i=Pr(e)[r.place.index];if(!i||String(i.props.id)!==r.id)continue;if(lt(i)||st(i)||bo(i.type))continue;if(tt(i.type))continue;const l=Boolean(Zi(e)),s=e===le||l;e===le&&t-n<2||o.push({key:r.id,item:{id:r.id,zone:e,index:r.place.index,type:i.type},box:r.box,label:s?Nr(i.type):Ur(i),from:r.place})}return{sources:o,zones:e.zones.filter(e=>e.children.length>0||Boolean(tl(sn(e.list))?.choices.length)||Boolean(Zi(sn(e.list))))}},[Yn.data]),dl=e=>{no(U),kt.select(e.zone===le?{index:e.index}:{index:e.index,zone:e.zone})},cl=ne(),al=()=>({data:Yn.data,device:Ot,ops:kt,inspector:yo}),pl=cl?.model,ul=fn(()=>pl?e=>pl(e,sl(e),al()):sl,[pl,sl,Ot]),fl=cl?.measure,hl=fl?(e,n)=>fl(e,n,al()):void 0,ml=cl?.canDrop,gl=ml?(e,n)=>ml(e,n,el,al()):el,yl=cl?.drop,kl=yl?(e,n)=>yl(e,n,rl,al()):rl,Sl=cl?.pick,vl=Sl?e=>Sl(e,dl,al()):dl,xl=(e,n,t,o)=>/* @__PURE__ */bn(Oe,{...Dn?{}:ll.seam({place:{...an(e),index:n}}),onAdd:Dn?void 0:t,label:o},`seam:${e}:${n}`),bl={rowClick:gi,isCollapsed:Qo,toggleCollapse:Ko},wl=e=>{const n=String(e.props.id),t=vr.findIndex(e=>String(e.props.id)===n),o=ot(n),r=Pr(o),i=Qo(n),l=Or(e.type),s=$o.rowName?$o.rowName(e,"section",l):l,d=e=>xl(o,e,()=>ui(o,e),at.addSectionHere);/* @__PURE__ */
15
- return wn(zn,{children:[
16
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:e.type,size:13}),name:s,preview:Si(e),marks:vi(e),onSelect:()=>ii(t),nameSlot:Yr(le,t,n,s),selected:so===n,actions:xi(e,le,t)??void 0,rowProps:{"data-node-id":n,onClick:gi(()=>ii(t))},fold:{open:!i,label:"section",onToggle:()=>Ko(n)}}),!i&&/* @__PURE__ */wn(we,{children:[r.map((n,t)=>{const r=String(n.props.id),i=Ir(n),l=Pi(n),s=l&&Qo(r),c=()=>Mi(o,t,r,e.type),{rowProps:a,...p}=ll.row({item:{id:r,zone:o,index:t,type:n.type},place:{...an(o),index:t}},{"data-node-id":r,onClick:gi(c)});/* @__PURE__ */
17
- return wn(kn,{children:[d(t),
18
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:n.type,size:13}),name:i,preview:Si(n),marks:vi(n),onSelect:c,nameSlot:Yr(o,t,r,i),selected:so===r,hidden:Boolean(n.props._hidden),...p,fold:l?{open:!s,label:"section",onToggle:()=>Ko(r)}:void 0,actions:/* @__PURE__ */wn(zn,{children:[ki(o,t,i),xi(n,o,t),bi(o,t,n,i)]}),rowProps:a}),l&&!s&&/* @__PURE__ */bn(we,{children:Bl(n,2)})]},r)}),d(r.length)]})]})},zl=(e,n,t,o,r)=>{const i=String(e.props.id),l=`${i}:${n.slot}`,s=ll.dragging,d=!Qo(l)&&s?.rung?.nodeId!==i,c={...an(l),index:0},a=s&&!s.rung&&el(s,c)?c:void 0,p=()=>Dr(e,n,!0),{rowProps:u,...f}=ll.row({item:{id:`rung:${l}`,zone:`${i}:${$n}`,index:t,type:e.type,rung:{nodeId:i,slot:n.slot}},place:{parentId:i,slot:$n,index:t},into:a,canDrag:Boolean(xo.moveSlot)&&!1!==n.movable&&o>1},{"data-slot-zone":l,onClick:gi(p)}),h=Dn?null:xo.slotActions?.(e,n.slot);/* @__PURE__ */
19
- return wn(kn,{children:[n.heading,
20
- /* @__PURE__ */bn(be,{icon:n.glyph??null,name:n.label,badge:n.badge,onSelect:p,selected:Lr===l,...f,dragHint:n.dragHint,fold:{open:d,label:n.label,onToggle:()=>Ko(l)},actions:h&&h.length>0?/* @__PURE__ */bn(zn,{children:h.map((t,o)=>/* @__PURE__ */bn(Be,{kind:"delete"===t.kind?"delete":"plain",label:t.label,disabled:t.disabled,onClick:()=>((e,n,t)=>{if(Dn||t.disabled)return;const o=String(e.props.id),r=e=>{"string"==typeof e&&Vr(o,e,n.panel)},i=t.run();i&&"function"==typeof i.then?i.then(r):r(i)})(e,n,t),children:"delete"===t.kind?/* @__PURE__ */bn(tn,{size:15}):/* @__PURE__ */bn(ln,{size:15})},`${o}:${t.kind}`))}):void 0,rowProps:u}),d&&/* @__PURE__ */bn(we,{children:r})]},l)},Cl=(e,n)=>{const t=Oi(e),o=t.filter(e=>e.rung).length;let r=0;/* @__PURE__ */
21
- return bn(zn,{children:t.map(t=>{const i=t.kids,l=t.rung?n+1:n,s=Ii(e.type,void 0,t.slot),d=s?`${e.props.id}:${s.slot}`:null,c=null===t.slot?null:`${e.props.id}:${t.slot}`,a=null!==c&&Boolean(tl(c)?.choices.length),p=(e,n)=>a?xl(e,n,()=>ui(e,n),"Add block here"):xl(e,n),u=/* @__PURE__ */wn(zn,{children:[i.map(({child:n,zone:t,index:o})=>{const r=so===String(n.props.id),{collapsible:i,folded:s}=Ti(n,l,Ai(n.type)),d=String(n.props.id),c=Ki(n),a=()=>Mi(t,o,d,e.type),{rowProps:u,...f}=ll.row({item:{id:d,zone:t,index:o,type:n.type},place:{...an(t),index:o}},{"data-node-id":d,onClick:gi(a)});/* @__PURE__ */
22
- return wn(kn,{children:[0===o&&p(t,0),
23
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:n.type,size:13}),name:c,preview:Si(n),marks:vi(n),onSelect:a,nameSlot:Yr(t,o,d,c),selected:r,hidden:Boolean(n.props._hidden),...f,fold:i?{open:!s,label:"group",onToggle:()=>Ko(d)}:void 0,actions:/* @__PURE__ */wn(zn,{children:[ki(t,o,c),xi(n,t,o),bi(t,o,n,c)]}),rowProps:u}),i&&!s&&/* @__PURE__ */bn(we,{children:Cl(n,l+1)}),p(t,o+1)]},String(n.props.id??`${t}-${o}`))}),null===c?d&&!i.some(e=>e.zone===d)?p(d,0):null:0!==i.length||!t.rung&&d!==c?null:p(c,0)]});return t.rung?zl(e,t.rung,r++,o,u):/* @__PURE__ */bn(kn,{children:u},t.slot??"")})})},Bl=(e,n)=>{const t=zo(Yn?.data,e.type,String(e.props.id)),o=Oi(e),r=o.filter(e=>e.rung).length;let i=0;/* @__PURE__ */
24
- return bn(zn,{children:o.map(o=>{const l=o.kids,s=o.rung?n+1:n,d=Ii(e.type,t,o.slot),c=d?.spec??null,a=c&&Array.isArray(e.props[c.slot])?e.props[c.slot]:[],p=d&&d.choices?{slot:d.slot,choices:d.choices}:null,u=String(e.props.id),f=c&&!c.fixed?`${u}:${c.slot}`:null,h=p?`${u}:${p.slot}`:null,m=(n,t)=>{const o=n===f&&c&&!c.addBlocked?.(a)?()=>ji(e.props.id,c.slot,c.childType,t,e.type):n===h?()=>ui(n,t):void 0;return xl(n,t,o,n===f&&c?c.addLabel:"Add block here")},g=null===o.slot?null:`${u}:${o.slot}`,y=Boolean(c&&!c.fixed&&(null===g||g===f)),k=/* @__PURE__ */wn(zn,{children:[l.map(({child:n,zone:t,index:o})=>{const r=so===String(n.props.id),i=Ur(n),l=String(n.props.id),{collapsible:d,folded:c}=Ti(n,s,Ai(n.type)),a=Ci(n.type),p=1===a.length?`${l}:${a[0]}`:null,u=p?{...an(p),index:Pr(p).length}:void 0,f=ll.dragging,h=u&&f&&el(f,u)?u:void 0,g=()=>Mi(t,o,l,e.type),{rowProps:y,...k}=ll.row({item:{id:l,zone:t,index:o,type:n.type},place:{...an(t),index:o},into:h,canDrag:!bo(n.type)},{"data-node-id":l,onClick:gi(g)});/* @__PURE__ */
25
- return wn(kn,{children:[0===o&&m(t,0),
26
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:n.type,size:13}),name:i,preview:Si(n),marks:vi(n),onSelect:g,nameSlot:Yr(t,o,l,i),selected:r,hidden:Boolean(n.props._hidden),...k,fold:d?{open:!c,label:"group",onToggle:()=>Ko(l)}:void 0,actions:bo(n.type)?xi(n,t,o)??void 0:/* @__PURE__ */wn(zn,{children:[ki(t,o,i),xi(n,t,o),bi(t,o,n,i)]}),rowProps:y}),d&&!c&&/* @__PURE__ */bn(we,{children:Bl(n,s+1)}),m(t,o+1)]},String(n.props.id??`${t}-${o}`))}),y&&c&&
27
- /* @__PURE__ */bn(N,{small:!0,label:c.addLabel,blocked:c.addBlocked?.(a)??null,onAdd:()=>ji(e.props.id,c.slot,c.childType,a.length,e.type)}),null===g?h&&!l.some(e=>e.zone===h)?m(h,0):null:0!==l.length||(o.rung?y:g!==h)?null:m(g,0)]});return o.rung?zl(e,o.rung,i++,r,k):/* @__PURE__ */bn(kn,{children:k},o.slot??"")})})},Ol=(()=>{if(!Kn||!to)return null;const e=String(Kn.type),n=String(Kn.props.id),t=Bo(e,zo(Yn?.data,e,n));if(!t||"footer"===t.source)return null;const o=vr.some(e=>String(e.props?.id)===n),r=Array.isArray(Kn.props[t.slot])?Kn.props[t.slot]:[];if(t.spec?.addBlocked?.(r))return null;const i=t.choices??(t.spec?[{type:t.spec.childType,label:Or(t.spec.childType)}]:[]);return 0===i.length?null:{parentName:mi(Kn,o),choices:i,onPick:o=>{t.spec?ji(n,t.slot,o,r.length,e):Li(`${n}:${t.slot}`,o,r.length)}}})(),$l=io&&io.zone!==le&&!Zi(io.zone)?io.zone:null,Nl=!0===Xt.blocksFirst,Il=$l?tl($l):Nl&&io?null:Ol,Tl=Boolean(Qt&&$l)||Nl&&Boolean(Il&&Il.choices.length>0),Rl=Ut||null!==Tt,Pl=e=>"panel"in e?{id:e.id,label:e.label,icon:e.icon,active:vt&&!Rl&&vo===e.id,onSelect:()=>gr(e.id)}:e,Al=[{id:"add",label:at.add.title,icon:/* @__PURE__ */bn("span",{className:"sf-rail-plus","aria-hidden":"true",children:"+"}),active:Ut,onSelect:()=>Ut?fi():pi(null)},...(ko.railLead??[]).map(Pl),{id:"sections",label:"Layers",icon:/* @__PURE__ */bn(qe,{}),active:vt&&!Rl&&"sections"===vo,onSelect:()=>gr("sections")},...(ko.railTrail??[]).map(Pl)];It?Al.push({id:"media",label:at.railMedia,icon:/* @__PURE__ */bn(Ze,{}),active:vt&&!Ut&&(null!==Tt||"media"===vo),onSelect:()=>gr("media")}):Wn&&Al.push({id:"media",label:at.railMedia,icon:/* @__PURE__ */bn(Ze,{}),onSelect:yr});const Ml=[...ko.railLead??[],...ko.railTrail??[]].find(e=>"panel"in e&&e.id===vo),jl=Boolean(ct?.foldable)&&!So,Ll=ct?.label??(Un?at.pageSections:at.templateSections),El=jl&&Qo(Nn),Dl=/* @__PURE__ */wn(zn,{children:[vr.map((e,n)=>{if(lt(e)||st(e)||tt(e.type))return null;const t=so===String(e.props.id),o=Boolean(e.props._hidden);Bi(e);const r=String(e.props.id),i=ko.hasOwnRows?.(e)??!1,l=Pi(e)||i,s=l&&Qo(r),{rowProps:d,...c}=ll.row({item:{id:r,zone:le,index:n,type:e.type},place:{...an(le),index:n}},{"data-node-id":r,onClick:gi(()=>ii(n))});/* @__PURE__ */
28
- return wn(kn,{children:[n>0&&wi(n),
29
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:e.type,size:13}),name:Ir(e),preview:Si(e),marks:vi(e),onSelect:()=>ii(n),nameSlot:Yr(le,n,r,Ir(e)),selected:t,hidden:o,...c,fold:l?{open:!s,label:"section",onToggle:()=>Ko(r)}:void 0,actions:/* @__PURE__ */wn(zn,{children:[ki(le,n,Ir(e)),xi(e,le,n),bi(le,n,e,Ir(e))]}),rowProps:d}),Pi(e)&&!s&&/* @__PURE__ */wn(we,{children:[Bl(e,1),ko.partRows?.(e,bl)]}),i&&!s&&/* @__PURE__ */bn(we,{children:ko.ownRows?.(e,n,bl)})]},String(e.props.id??n))}),!So&&Yi>0&&wi(Yi),ct?.addAtEnd&&!So&&!Dn&&/* @__PURE__ */bn(N,{small:!0,label:at.addSection,blocked:null,onAdd:()=>pi(Yi)})]}),Vl=(e,n,t)=>{const o=String(e.props.id),r=$i(e).length>0||Ni(e)||Boolean(Bo(e.type)),i=r&&Qo(o),l="header"===t?at.header:at.footer,s=$o.rowName?$o.rowName(e,"section",l):l;/* @__PURE__ */
30
- return wn(zn,{children:[
31
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:t,size:13}),name:s,preview:Si(e),marks:vi(e),onSelect:()=>ii(n),nameSlot:Yr(le,n,o,s),selected:so===String(e.props.id),fold:r?{open:!i,label:"section",onToggle:()=>Ko(o)}:void 0,actions:xi(e,le,n)??void 0,rowProps:{"data-node-id":o,onClick:gi(()=>ii(n))}}),r&&!i&&/* @__PURE__ */bn(we,{children:Cl(e,1)})]})};return(ko.wrap??(e=>e))(
32
- /* @__PURE__ */bn(te,{target:Ft,children:/* @__PURE__ */wn("div",{ref:Ht,className:"sf-editor es-editor",style:He(Wo),onContextMenu:qr.onEditorContextMenu,...m(Ie),children:[
33
- /* @__PURE__ */wn(Te,{children:[
34
- /* @__PURE__ */bn(Re,{items:Al,ariaLabel:"Left panel views"}),
35
- /* @__PURE__ */wn(Pe,{children:[
36
- /* @__PURE__ */bn(Ae,{label:"Undo",disabled:Boolean(Dn)||!Qn.hasPast,onClick:()=>Qn.back(),children:/* @__PURE__ */bn(en,{})}),
37
- /* @__PURE__ */bn(Ae,{label:"Redo",disabled:Boolean(Dn)||!Qn.hasFuture,onClick:()=>Qn.forward(),children:/* @__PURE__ */bn(nn,{})}),
38
- /* @__PURE__ */bn(Me,{}),
39
- /* @__PURE__ */bn(je,{devices:bt,value:Ot,onChange:$t})]}),
40
- /* @__PURE__ */wn(Pe,{kind:"right",style:{minWidth:300},children:[
41
- /* @__PURE__ */bn(Cn,{saveState:Mn,notSaving:Boolean(Dn)||null!=jn,readOnlyReason:Vn,toggle:Hn,onToggle:En,onRetry:Ln}),ko.barLead?.(),
42
- /* @__PURE__ */bn(Sn,{content:"Refresh the preview (reloads the canvas, keeps your place)",side:"bottom",children:/* @__PURE__ */bn(vn,{variant:"secondary",onClick:()=>{Vt.current=(()=>{const e=Ft?.document;if(!e)return null;const n=vr.findIndex(st),t=n>=0?n:vr.length;let o=null;for(let n=0;n<t;n++){const t=vr[n]?.props?.id;if(null==t)continue;const r=e.querySelector(`[data-puck-component="${CSS.escape(String(t))}"]`);if(!r)continue;const i=r.getBoundingClientRect().top;i<=4&&(null===o||i>o.offset)&&(o={id:String(t),offset:i})}if(!o){const e=Kn?.props?.id??vr[0]?.props?.id;null!=e&&(o={id:String(e),offset:0})}return o})(),Dt(e=>e+1)},children:"Refresh"})}),ko.barTrail?.(),ko.barMain?ko.barMain():/* @__PURE__ */bn(vn,{variant:"primary",disabled:null!==Vn,onClick:()=>{An(Yn.data)},children:at.done})]})]}),
43
- /* @__PURE__ */bn(z,{}),
44
- /* @__PURE__ */wn("div",{className:"sf-body",children:[vt?/* @__PURE__ */wn(zn,{children:[
45
- /* @__PURE__ */bn("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left","aria-label":at.leftPanel,children:Ut?/* @__PURE__ */bn(I,{blocks:Il,blocksOnly:Tl,at:Qt?{label:(e=>{const n=Zi(e.zone);if(n)return at.add.addingTo({name:$o.rowName?mi(n,!0):Or(n.type)});if(e.zone===le){const n=vr[e.index];return n&&!st(n)?at.add.addingBefore({name:mi(n,!0)}):at.add.addingAtEnd}const t=tl(e.zone);return t?at.add.addingTo({name:t.parentName}):at.add.addingHere})(Qt),onClear:()=>Kt(null)}:void 0,onAdd:e=>{const n=io,t=(e,n)=>{Qt&&Kt({zone:e,index:n})};if(n&&"block"!==e.kind&&Zi(n.zone))return hi(e,n.zone,n.index),void t(n.zone,n.index+1);if("section"===e.kind)return(e=>{if(null===lo)return void ci(e);const n=ci(e,lo);Qt&&_t(n+1)})(e.type);if("template"===e.kind)return((e,n)=>{if(null===lo)return void ai(e,n);const t=ai(e,n,lo);Qt&&_t(t+1)})(e.template.name,zr(e.template.node));if(n&&n.zone!==le){const o=tl(n.zone);if(!o)return;return o.target.spec?ji(o.parentId,o.target.slot,e.type,n.index,o.parent.type):Li(n.zone,e.type,n.index),void t(n.zone,n.index+1)}Ol?.onPick(e.type)},itemFor:e=>({id:`new:${e.kind}:${"template"===e.kind?e.template.id:e.type}`,zone:"",index:-1,type:"template"===e.kind?e.template.node.type:e.type,add:e}),session:il,siteWide:ko.addPanelRow?.(fi),onClose:fi,onHide:hr,readOnly:Boolean(Dn)}):Tt&&Nt?
46
- /* @__PURE__ */bn(P,{panel:Nt,pick:Tt,onHide:hr}):Ml?Ml.panel({onHide:hr,notify:Zo}):"media"===vo&&Nt?/* @__PURE__ */bn(P,{panel:Nt,pick:null,onHide:hr}):/* @__PURE__ */wn(zn,{children:[
47
- /* @__PURE__ */bn(T,{icon:/* @__PURE__ */bn(qe,{}),title:"Layers",context:pt,actions:Ji.length>0?/* @__PURE__ */bn(Le,{label:Qi?"Expand all sections":"Collapse all sections",onClick:()=>Fo(e=>{const n=new Set(Ji);return Qi?new Set([...e].filter(e=>!n.has(e))):/* @__PURE__ */new Set([...e,...Ji])}),children:/* @__PURE__ */bn(Bn,{expand:Qi})}):void 0,onHide:hr}),
48
- /* @__PURE__ */wn(ze,{className:"sf-tree sf-scroll",children:[
49
- /* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:"page",size:13}),name:at.pageSettings,onSelect:kr,selected:!Kn&&to,rowProps:{onClick:gi(kr)}}),Ui&&/* @__PURE__ */wn(zn,{children:[
50
- /* @__PURE__ */bn(Ce,{children:at.header}),wl(Ui)]}),!So&&Gn&&/* @__PURE__ */wn(zn,{children:[
51
- /* @__PURE__ */bn(Ce,{children:at.header}),!dt&&/* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:"header",size:13}),name:at.header,onSelect:Sr,selected:eo.kind===it?.kind,rowProps:{onClick:gi(Sr)}})]}),!So&&Wi&&Vl(Wi,Fi,"header"),!So&&!jl&&/* @__PURE__ */bn(Ce,{children:Ll}),jl?/* @__PURE__ */wn(zn,{children:[
52
- /* @__PURE__ */bn(be,{icon:null,name:Ll,fold:{open:!El,label:Ll,onToggle:()=>Ko(Nn)}}),!El&&/* @__PURE__ */bn(we,{children:Dl})]}):Dl,Gn&&/* @__PURE__ */bn(Ce,{children:at.footer}),Hi&&Vl(Hi,Vi,"footer"),!So&&!Hi&&Gn&&/* @__PURE__ */bn(be,{icon:/* @__PURE__ */bn(Io,{type:"footer",size:13}),name:at.footer,onSelect:yi,rowProps:{onClick:gi(yi),title:"Edit the site footer"}}),Gi&&wl(Gi),ko.treeFoot?.()]})]})}),
53
- /* @__PURE__ */bn(Ee,{side:"left",width:Wo.left,min:Ve,max:De,defaultWidth:k.left,label:at.resizeLeftPanel,onResize:Yo})]}):/* @__PURE__ */bn(R,{side:"left",onShow:hr}),
54
- /* @__PURE__ */wn("div",{ref:er,className:"sf-center sf-scroll","data-sf-canvas-head":ir?"":void 0,style:{overflowX:pr?"auto":"hidden",overflowY:"hidden"},children:[ir&&/* @__PURE__ */bn("div",{ref:lr,className:"sf-canvas-head",children:/* @__PURE__ */bn(ir,{device:Ot})}),
55
- /* @__PURE__ */bn("div",{className:"sf-frame-scaler",style:ur,children:/* @__PURE__ */bn("div",{className:"sf-frame "+(Ot===Ct?"":`sf-frame--${Ot}`),style:fr,children:/* @__PURE__ */wn("div",{className:"sf-preview-host",children:[
56
- /* @__PURE__ */bn(ut,{},Et),
57
- /* @__PURE__ */bn(Ge,{canvas:Ft,session:il,model:ul,measure:hl,canDrop:gl,onDrop:kl,onPick:vl,onZoneAdd:e=>{const n=sn(e),t=jr(n);t&&Dr(t.node,t.slot,!1),ui(n,0)},zoneAddLabel:at.canvasAddBlock,readOnly:Boolean(Dn),revision:Yn.data}),qt.length>0&&/* @__PURE__ */bn("div",{className:"sf-preview-gaps","aria-hidden":"true",children:qt.map(e=>/* @__PURE__ */wn("button",{type:"button",tabIndex:-1,className:void 0===e.height?"sf-preview-gap":"sf-preview-gap sf-preview-gap--tight",style:void 0===e.height?{top:e.top}:{top:e.top,height:e.height},onClick:()=>pi(e.index),children:[
58
- /* @__PURE__ */bn("span",{className:"sf-preview-gap-line"}),
59
- /* @__PURE__ */wn("span",{className:"sf-preview-gap-pill",children:[
60
- /* @__PURE__ */bn("span",{className:"sf-preview-gap-plus",children:"+"}),
61
- /* @__PURE__ */bn("span",{className:"sf-preview-gap-label",children:"Add section"})]})]},e.index))})]})})})]}),xt?/* @__PURE__ */wn(zn,{children:[
62
- /* @__PURE__ */bn(g,{value:{selectChild:Mi,addChild:ji,childRowName:Ur,blockRowName:Ki},children:/* @__PURE__ */bn(ft,{mode:eo,onOpenWebsiteSettings:ko.openSettings??(()=>{}),onOpenSiteStyles:ko.openStyles,onSelectNode:Ao,onNotify:Zo,onHidePanel:mr,nodeActions:Kn?se(_n,Kn.type):In})}),
63
- /* @__PURE__ */bn(Ee,{side:"right",width:Wo.right,min:Ve,max:De,defaultWidth:k.right,label:"Resize settings panel",onResize:Jo})]}):
64
- /* @__PURE__ */bn(R,{side:"right",onShow:mr})]}),qr.menu]})}))}export{Tn as ScreenChrome};
@@ -1 +0,0 @@
1
- var e={accent:"var(--accent-600, var(--submit-bg))",accentTint:"color-mix(in srgb, var(--es-accent) 10%, var(--surface))",accentTintStrong:"color-mix(in srgb, var(--es-accent) 18%, var(--surface))",accentLine:"color-mix(in srgb, var(--es-accent) 32%, var(--surface))",accentText:"color-mix(in srgb, var(--es-accent) 65%, var(--ink-strongest))",accentRing:"var(--rosh-focus-ring)",accentShadow:"color-mix(in srgb, var(--es-accent) 35%, transparent)",onAccent:"var(--status-on-solid)",appBg:"var(--surface-sunken)",previewBg:"var(--surface-raised)",panel:"var(--surface)",raised:"var(--surface)",topbarBg:"var(--surface)",frameBg:"#ffffff",hover:"var(--surface-raised)",hatch:"color-mix(in srgb, var(--ink-strongest) 2%, transparent)",addcardVeil:"color-mix(in srgb, var(--surface-sunken) 66%, transparent)",fieldBg:"var(--surface)",trackBg:"var(--surface-raised)",inputBorder:"var(--line-strong)",fieldText:"var(--ink-strong)",fieldPlaceholder:"var(--ink-faintest)",knob:"var(--surface)",text:"var(--ink-strongest)",textStrong:"var(--ink-strongest)",textSecondary:"var(--ink)",muted:"var(--ink-faint)",icon:"var(--ink-faint)",disabled:"var(--ink-faintest)",divider:"var(--line)",line:"var(--line)",btnBorder:"var(--line-strong)",btnText:"var(--ink)",chipBg:"var(--surface-raised)",chipFg:"var(--ink-faint)",brandSquare:"var(--ink-strongest)",deviceBorder:"var(--line)",toastBg:"var(--status-draft-solid)",toggleOff:"var(--line-strong)",scrollbar:"var(--line-strong)",scrollbarHover:"var(--ink-faintest)",danger:"var(--status-danger-soft-ink)",dangerStrong:"var(--status-danger-soft-ink)",dangerTint:"var(--status-danger-soft)",warning:"var(--status-pending-soft-ink)",previewTint:"var(--status-pending-soft)",success:"var(--status-success-soft-ink)",panelRadius:"var(--radius-xl)",rowRadius:"var(--radius-lg)",fieldRadius:"var(--radius-md)",panelGap:12,space2:2,space4:4,space8:8,space12:12,space16:16,space32:32,panelShadow:"0 1px 2px rgba(0, 0, 0, 0.05), 0 10px 30px rgba(0, 0, 0, 0.06)",topbarShadow:"0 1px 3px rgba(0, 0, 0, 0.06)",raisedShadow:"0 1px 2px rgba(16, 24, 40, 0.1)",font:"var(--font-sans)"},a={previewBg:"var(--surface)",trackBg:"var(--surface)",chipBg:"var(--surface)"},r=[e.space2,e.space4,e.space8,e.space12,e.space16,e.space32],s={accent:"--es-accent",accentTint:"--es-accent-tint",accentTintStrong:"--es-accent-tint-strong",accentLine:"--es-accent-line",accentText:"--es-accent-text",accentRing:"--es-accent-ring",accentShadow:"--es-accent-shadow",onAccent:"--es-on-accent",appBg:"--es-app-bg",previewBg:"--es-preview-bg",panel:"--es-panel",raised:"--es-raised",topbarBg:"--es-topbar-bg",frameBg:"--es-frame-bg",hover:"--es-hover",hatch:"--es-hatch",addcardVeil:"--es-addcard-veil",fieldBg:"--es-field-bg",trackBg:"--es-track-bg",inputBorder:"--es-input-border",fieldText:"--es-field-text",fieldPlaceholder:"--es-field-placeholder",knob:"--es-knob",text:"--es-text",textStrong:"--es-text-strong",textSecondary:"--es-text-secondary",muted:"--es-muted",icon:"--es-icon",disabled:"--es-disabled",divider:"--es-divider",line:"--es-line",btnBorder:"--es-btn-border",btnText:"--es-btn-text",chipBg:"--es-chip-bg",chipFg:"--es-chip-fg",brandSquare:"--es-brand-square",deviceBorder:"--es-device-border",toastBg:"--es-toast-bg",toggleOff:"--es-toggle-off",scrollbar:"--es-scrollbar",scrollbarHover:"--es-scrollbar-hover",danger:"--es-danger",dangerStrong:"--es-danger-strong",dangerTint:"--es-danger-tint",warning:"--es-warning",previewTint:"--es-preview-tint",success:"--es-success",panelRadius:"--es-panel-radius",rowRadius:"--es-row-radius",fieldRadius:"--es-field-radius",panelGap:"--es-panel-gap",space2:"--es-space-2",space4:"--es-space-4",space8:"--es-space-8",space12:"--es-space-12",space16:"--es-space-16",space32:"--es-space-32",panelShadow:"--es-panel-shadow",topbarShadow:"--es-topbar-shadow",raisedShadow:"--es-raised-shadow",font:"--es-font"};export{r as SPACING_SCALE,s as shellCssVars,a as shellDarkTokens,e as shellTokens};
@@ -1 +0,0 @@
1
- import{styleMenuItems as e}from"./chunk-57DJOKXT.js";import{useEaselSession as n}from"./chunk-O7Q4DDJT.js";import{ROOT_ZONE as t}from"./chunk-PLVEGYK6.js";import{useHostEscape as o}from"./chunk-U3JP4VGF.js";import{EaselMenuItems as l,menuLabel as r}from"./chunk-EA2HTX37.js";import{createNodeClipboard as i,nodeMenuItems as c}from"./chunk-2LK54I4E.js";import{useCanvasEvent as s}from"./chunk-PAELDYYS.js";import{isTypingTarget as a,framePointToHost as u}from"./chunk-ZNCEOSXO.js";import{UndoIcon as d,RedoIcon as p,AddIcon as f,PasteIcon as m,SettingsIcon as h,LayersIcon as y,CopyIcon as k}from"./chunk-L5KW4HG5.js";import{zoneKey as b,ROOT_SLOT as v,ROOT_ID as g}from"./chunk-KRXQM65X.js";import{useState as x,useCallback as C,useRef as w,useEffect as P}from"react";import{ContextMenu as z}from"efficient-shell/ui";import{jsx as O}from"react/jsx-runtime";function A(e,n){const o=[],l=/* @__PURE__ */new Set;let r={zone:n.zone,index:n.index};for(;r;){const n=e.nodeAt(r.zone,r.index);if(!n||l.has(n.props.id))break;if(l.add(n.props.id),o.push({zone:r.zone,index:r.index,node:n,parentType:null}),r.zone===t)break;const i=r.zone.lastIndexOf(":");if(i<=0)break;r=e.locate(r.zone.slice(0,i))}for(let e=0;e<o.length-1;e+=1)o[e].parentType=o[e+1].node.type;return o}var K=i(),D=/* @__PURE__ */new WeakMap;function E(e){if(e.claimsPage)return K;const n=e.registry;if(!n)return e.cache("easel:node-clipboard",i);let t=D.get(n);return t||(t=i(),D.set(n,t)),t}function S(){return E(n())}function T(e,n,o){if(n===t){const{floor:n,cap:t}=e.sectionBand();return{parentId:g,slot:v,index:Math.min(Math.max(o,n),t)}}const l=n.lastIndexOf(":");return{parentId:n.slice(0,l),slot:n.slice(l+1),index:o}}function j(e,n,t){const o=e.isPinned(n,t),l=!o&&!e.isLocked(n)&&!e.duplicateBlocked(n),r=e.permits?.(n)??{duplicate:!0,delete:!0};return{copy:!o&&r.duplicate,cut:l&&r.duplicate&&r.delete}}function L(e,n,t){const o=e.canPasteAt;if(!o)return b(n.from)===t.zone?T(e,t.zone,t.index+1):null;for(const l of A(e,t)){const t=T(e,l.zone,l.index+1);if(o(n,t))return t}return null}function M(e){if(e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey)return null;if(a(e.target))return null;const n=e.target,t=n&&"ownerDocument"in n?n.ownerDocument??n:null,o=t?.getSelection?.();if(o&&!o.isCollapsed&&o.toString().trim())return null;const l=e.code||(1===e.key.length?`Key${e.key.toUpperCase()}`:"");return"KeyC"===l?"copy":"KeyX"===l?"cut":"KeyV"===l?"paste":null}function X(e,n,t,o){const l=e.nodeAt(t.zone,t.index);if(!l)return null;const r=l.props.id,i=e.labelOf(l.type,t.zone),c=j(e,l,t.zone);if("copy"===n)return c.copy?(e.nodeOps.copy(r,i),{done:"copied",name:i}):null;if(o.readOnly)return null;if("cut"===n)return c.cut?(e.nodeOps.cut(r,i),{done:"cut",name:i}):null;const s=o.held;if(!s)return null;const a=e.isPinned(l,t.zone)?null:L(e,s,t);return a?(e.nodeOps.paste(a),{done:"pasted",name:s.label}):(e.onPasteRefused(s),{done:"refused",name:s.label})}function I(n,o){const{zone:l,index:r}=o,i=n.nodeAt(l,r);if(!i)return[];const s=i.props.id,a=n.labelOf(i.type,l),u=Boolean(i.props._hidden),d=n.nodeOps,p=n.isPinned(i,l),f=n.isLocked(i),m=!p&&!f&&!n.duplicateBlocked(i),h=n.permits?.(i)??{duplicate:!0,delete:!0},y=j(n,i,l),k=A(n,o),b=d.held,v=b&&!p?L(n,b,o):null,g=!n.readOnly,x=n.style?e({held:g?n.style.held():null,canCopy:n.style.canCopy(i,l),onCopy:()=>n.style?.copy(i,l),onPaste:()=>n.style?.paste(l,r,i)}):[];return c({title:a,layer:{group:"pick",items:k.flatMap((e,o)=>{const l={label:n.rowNameOf(e.node,e.zone),checked:0===o,onClick:()=>n.selectAt(e.zone,e.index,e.node.props.id,e.parentType)},r=e.zone===t?null:n.slotRung?.(e.zone)??null;return r?[l,{label:r.label,checked:!1,onClick:r.select}]:[l]})},actions:{addInside:g&&n.canAddTo(i.type)?()=>n.openAddInside(l,r):void 0,duplicate:g&&m&&h.duplicate?()=>d.duplicate(s):void 0,moveUp:g&&d.canStep(s,-1)?()=>d.step(s,-1):void 0,moveDown:g&&d.canStep(s,1)?()=>d.step(s,1):void 0,copy:y.copy?()=>d.copy(s,a):void 0,cut:g&&y.cut?()=>d.cut(s,a):void 0,paste:g&&b&&v?{label:b.label,run:()=>d.paste(v)}:void 0,rename:g&&n.renamePropOf(i,l)?()=>n.beginRename(l,r):void 0,hide:!g||f||p?void 0:{hidden:u,run:()=>d.setProps(s,{_hidden:!u})},delete:g&&m&&h.delete?()=>d.remove(s):void 0},style:x,extras:n.menuRows?.(i,l,r)??void 0,pinnedLine:p?"Pinned — can’t be moved or deleted":void 0})}function R(e){const n=!e.readOnly,o=[];n&&e.history.hasPast&&o.push({label:"Undo",icon:/* @__PURE__ */O(d,{}),shortcut:"⌘Z",onClick:e.history.back}),n&&e.history.hasFuture&&o.push({label:"Redo",icon:/* @__PURE__ */O(p,{}),shortcut:"⇧⌘Z",onClick:e.history.forward});const l=n?[{label:"Add section",icon:/* @__PURE__ */O(f,{}),onClick:e.openAddSection}]:[],r=e.nodeOps.held,i=T(e,t,e.sectionBand().cap);if(n&&r&&(e.canPasteAt?e.canPasteAt(r,i):b(r.from)===t)){const n=i;l.push({label:`Paste ${r.label}`,icon:/* @__PURE__ */O(m,{}),shortcut:"⌘V",onClick:()=>e.nodeOps.paste(n)})}const c=[o,l,[{label:e.pageSettingsLabel??"Page settings",icon:/* @__PURE__ */O(h,{}),onClick:e.openPageSettings},{label:"Collapse all layers",icon:/* @__PURE__ */O(y,{}),onClick:e.collapseAll}]].filter(e=>e.length>0),s={label:"—",onClick:()=>{}};return c.flatMap((e,n)=>n?[s,...e]:e)}function Y(e,n){const t=n.selectionStart??0,o=n.selectionEnd??0,l=n.value.slice(t,o),r=e=>{n.focus(),n.setRangeText(e,t,o,"end"),n.dispatchEvent(new Event("input",{bubbles:!0}))},i=[];l&&(i.push({label:"Copy",icon:/* @__PURE__ */O(k,{}),shortcut:"⌘C",onClick:()=>navigator.clipboard?.writeText(l)}),i.push({label:"Cut",icon:/* @__PURE__ */O(k,{}),shortcut:"⌘X",onClick:()=>{navigator.clipboard?.writeText(l),r("")}})),i.push({label:"Paste",icon:/* @__PURE__ */O(m,{}),shortcut:"⌘V",onClick:()=>{navigator.clipboard?.readText().then(e=>{e&&r(e)}).catch(()=>e.onPasteRefused())}});const c=[i,n.value?[{label:"Select all",shortcut:"⌘A",onClick:()=>{n.focus(),n.select()}}]:[]].filter(e=>e.length>0),s={label:"—",onClick:()=>{}};return c.flatMap((e,n)=>n?[s,...e]:e)}function B(e){return e.shiftKey}function V(e,n){const[t,l]=x(null),r=C(()=>l(null),[]);o(null!==t,r);const i=w(e);i.current=e;const c=C(e=>{const n=i.current,t=n.keys;if(!t)return;const o=M(e);if(!o)return;const l=t.selected();if(!l)return;const r=X(n,o,l,{readOnly:t.readOnly,held:t.held()});r&&(e.preventDefault(),t.onDone?.(r))},[]),a=e.keys?.target??null;P(()=>{if(!a)return;const e=e=>c(e);return a.addEventListener("keydown",e),()=>a.removeEventListener("keydown",e)},[a,c]),s(n,"keydown",c);const d=C(n=>{if(B(n))return;const t=n.target;if(t?.closest?.("[data-slot-zone]"))return n.preventDefault(),void l(null);const o=function(e){const n=e?.closest?.("input, textarea");return n?n instanceof HTMLInputElement&&!["text","search","url","email","tel","number",""].includes(n.type)?null:n:null}(t);if(o)return n.preventDefault(),void l({kind:"input",x:n.clientX,y:n.clientY,el:o,owner:t});const r=t?.closest?.("[data-node-id]")?.getAttribute("data-node-id"),i=r?e.locate(r):null;n.preventDefault(),l(i?{kind:"node",x:n.clientX,y:n.clientY,...i,owner:t}:{kind:"empty",x:n.clientX,y:n.clientY,owner:t})},[e]);s(n,"contextmenu",t=>{if(B(t)||!n)return;const o=t.target?.closest?.("[data-puck-component]")??null,r=o?.getAttribute("data-puck-component"),i=r?e.locate(r):null;t.preventDefault();const c=u(n.frame,t.clientX,t.clientY),s=n.frame;l(i?{kind:"node",...c,...i,owner:s}:{kind:"empty",...c,owner:s})}),s(n,"mousedown",r),s(n,"scroll",r,{on:"window"});return{onEditorContextMenu:d,menu:t?/* @__PURE__ */O(U,{host:e,target:t,onClose:r}):null,closeMenu:r}}function U({host:e,target:n,onClose:t}){const o="node"===n.kind?I(e,n):"input"===n.kind?Y(e,n.el):R(e);return 0===o.length?null:/* @__PURE__ */O(z,{at:{x:n.x,y:n.y},owner:n.owner??null,onClose:t,"aria-label":r(o),children:/* @__PURE__ */O(l,{items:o,onClose:t})})}export{K as EASEL_NODE_CLIPBOARD,A as ancestorChain,E as nodeClipboardOf,j as nodeClipboardRules,I as nodeMenuItems,M as nodeShortcut,R as pageMenuItems,L as pastePlace,X as runNodeShortcut,Y as textMenuItems,S as useNodeClipboard,V as useNodeContextMenu};