efficient-easel 6.4.0 → 6.6.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 (63) hide show
  1. package/README.md +6 -0
  2. package/dist/{CanvasDragLayer-O1gVT1AL.d.ts → CanvasDragLayer-CLb7j-CZ.d.ts} +18 -2
  3. package/dist/{canvas-typing-Dec_zyuM.d.ts → canvas-typing-U7TV-iax.d.ts} +16 -1
  4. package/dist/{chunk-3PPA5S2J.js → chunk-4UJ6CPLO.js} +1 -1
  5. package/dist/{chunk-6EKKPFVG.js → chunk-57NRNFLO.js} +1 -1
  6. package/dist/{chunk-NL4OU4UU.js → chunk-5PUEZ22M.js} +1 -1
  7. package/dist/chunk-CIHKZMNR.js +1 -0
  8. package/dist/{chunk-7XHDCQVL.js → chunk-CRWFB7MU.js} +16 -16
  9. package/dist/chunk-DSXKBICS.js +5 -0
  10. package/dist/{chunk-VFI3ONLN.js → chunk-ESQZG7B3.js} +1 -1
  11. package/dist/chunk-HXLF2ZQO.js +62 -0
  12. package/dist/{chunk-ISBKAONU.js → chunk-LVUDUQNL.js} +1 -1
  13. package/dist/chunk-M5VRWM7M.js +11 -0
  14. package/dist/{chunk-F4XCIEXI.js → chunk-Q2L6YTII.js} +1 -1
  15. package/dist/chunk-SSORUDHE.js +18 -0
  16. package/dist/chunk-TBY3DFKS.js +1 -0
  17. package/dist/chunk-TCVTMNYE.js +1 -0
  18. package/dist/{chunk-QPQXKKSC.js → chunk-UY7BCB32.js} +1 -1
  19. package/dist/{chunk-LWQQQ72E.js → chunk-VQOIVFSG.js} +3 -3
  20. package/dist/chunk-ZR4CFNMW.js +5 -0
  21. package/dist/copy/index.d.ts +1 -1
  22. package/dist/copy/index.js +18 -18
  23. package/dist/drag/drag.css +33 -26
  24. package/dist/drag/index.d.ts +34 -3
  25. package/dist/drag/index.js +1 -1
  26. package/dist/easel/index.d.ts +13 -1
  27. package/dist/easel/index.js +1 -1
  28. package/dist/fields/index.js +1 -1
  29. package/dist/screen/components/AddBlockRow.js +1 -1
  30. package/dist/screen/components/AddSidePanel.js +1 -1
  31. package/dist/screen/components/MediaSidePanel.js +1 -1
  32. package/dist/screen/components/NodeContextMenu.d.ts +1 -1
  33. package/dist/screen/components/NodeContextMenu.js +1 -1
  34. package/dist/screen/components/ScreenChrome.js +1 -1
  35. package/dist/screen/components/ScreenMount.d.ts +1 -1
  36. package/dist/screen/components/ScreenMount.js +1 -1
  37. package/dist/screen/components/ScreenStoreProvider.d.ts +1 -1
  38. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  39. package/dist/screen/components/SectionScreenShell.js +16 -16
  40. package/dist/screen/components/usePartBridge.d.ts +1 -1
  41. package/dist/screen/components/usePartBridge.js +1 -1
  42. package/dist/screen/index.d.ts +1 -1
  43. package/dist/screen/index.js +1 -1
  44. package/dist/screen/lib/key-scope.js +1 -1
  45. package/dist/screen/lib/puck/style-clipboard.d.ts +1 -1
  46. package/dist/screen/lib/puck/style-clipboard.js +1 -1
  47. package/dist/screen/lib/puck/use-section-ops.js +1 -1
  48. package/dist/screen/lib/screen-parts.d.ts +1 -1
  49. package/dist/screen/lib/screen-parts.js +1 -1
  50. package/dist/screen/screen.css +6 -127
  51. package/dist/strings/catalogue.d.ts +5 -2
  52. package/dist/strings/catalogue.js +1 -1
  53. package/dist/strings/index.js +1 -1
  54. package/dist/text-styles/index.js +16 -16
  55. package/package.json +1 -1
  56. package/dist/chunk-6XXW6ZW3.js +0 -5
  57. package/dist/chunk-AELNNAFM.js +0 -1
  58. package/dist/chunk-AYNU4FYF.js +0 -14
  59. package/dist/chunk-DSUMM2WF.js +0 -10
  60. package/dist/chunk-JIWPANGM.js +0 -1
  61. package/dist/chunk-NTMY5EXS.js +0 -1
  62. package/dist/chunk-TAF5AECR.js +0 -65
  63. package/dist/chunk-YB4QPUEZ.js +0 -5
@@ -26,7 +26,7 @@ import '../../types-Dt1CFR1S.js';
26
26
  import '../../types-CsgMwHHa.js';
27
27
  import '../../wordFit-7XpmhcaW.js';
28
28
  import '../../panelWidths-D9hTLR25.js';
29
- import '../../CanvasDragLayer-O1gVT1AL.js';
29
+ import '../../CanvasDragLayer-CLb7j-CZ.js';
30
30
  import '../../session-DSQFmIvx.js';
31
31
  import '../../words-BDignMl_.js';
32
32
  import '../../types-BsyPh6EW.js';
@@ -1 +1 @@
1
- export{DocumentScreen,ScreenMount as default}from"../../chunk-LWQQQ72E.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-3PPA5S2J.js";import"../../chunk-TAF5AECR.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-BXQBCW3P.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PAM3NLFL.js";import"../../chunk-7F52SZOI.js";import"../../chunk-MQNBD6AB.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-QPQXKKSC.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-6TOYXESC.js";import"../../chunk-NL4OU4UU.js";import"../../chunk-6EKKPFVG.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-ISBKAONU.js";import"../../chunk-HQWQLDCB.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-WZMU646D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-BXMXTO36.js";import"../../chunk-5545A3PC.js";import"../../chunk-YB4QPUEZ.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-PFNIVZPN.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-F4XCIEXI.js";import"../../chunk-6XXW6ZW3.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-MCHMF32I.js";import"../../chunk-V7U33NF2.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-7XHDCQVL.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-EA2HTX37.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-OSPUG6S6.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-4VJATVVR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-UB4TLWVJ.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-JIWPANGM.js";import"../../chunk-66LWADFP.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-QLD57GBB.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-AYNU4FYF.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{DocumentScreen,ScreenMount as default}from"../../chunk-VQOIVFSG.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-4UJ6CPLO.js";import"../../chunk-HXLF2ZQO.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-BXQBCW3P.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PAM3NLFL.js";import"../../chunk-7F52SZOI.js";import"../../chunk-MQNBD6AB.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-UY7BCB32.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-6TOYXESC.js";import"../../chunk-5PUEZ22M.js";import"../../chunk-57NRNFLO.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-LVUDUQNL.js";import"../../chunk-HQWQLDCB.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-WZMU646D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-V7U33NF2.js";import"../../chunk-5545A3PC.js";import"../../chunk-DSXKBICS.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-PFNIVZPN.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-Q2L6YTII.js";import"../../chunk-ZR4CFNMW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-MCHMF32I.js";import"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-CRWFB7MU.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-BXMXTO36.js";import"../../chunk-EA2HTX37.js";import"../../chunk-OSPUG6S6.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-4VJATVVR.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-UB4TLWVJ.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-SSORUDHE.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -13,7 +13,7 @@ import '../../types-CsgMwHHa.js';
13
13
  import '../../wordFit-7XpmhcaW.js';
14
14
  import '../../edit-lock/index.js';
15
15
  import '../../panelWidths-D9hTLR25.js';
16
- import '../../CanvasDragLayer-O1gVT1AL.js';
16
+ import '../../CanvasDragLayer-CLb7j-CZ.js';
17
17
  import '../../session-DSQFmIvx.js';
18
18
  import '../../words-BDignMl_.js';
19
19
  import '../../types-BsyPh6EW.js';
@@ -1 +1 @@
1
- export{ScreenStoreProvider as default}from"../../chunk-3PPA5S2J.js";import"../../chunk-6XXW6ZW3.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-7XHDCQVL.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-EA2HTX37.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-JIWPANGM.js";import"../../chunk-66LWADFP.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-QLD57GBB.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{ScreenStoreProvider as default}from"../../chunk-4UJ6CPLO.js";import"../../chunk-ZR4CFNMW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-CRWFB7MU.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -1,16 +1,16 @@
1
- import{AddBlockRow as e}from"../../chunk-VFI3ONLN.js";import{slotChildRowName as n}from"../../chunk-TBF5CVPA.js";import{scrollPreviewToSection as o,gotoPreviewSlide as r}from"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import{useEaselUndoKeys as t}from"../../chunk-QPQXKKSC.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-6TOYXESC.js";import{usePartBridge as c}from"../../chunk-NL4OU4UU.js";import{useSectionOps as p}from"../../chunk-6EKKPFVG.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-WZMU646D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as m}from"../../chunk-F4XCIEXI.js";import{SELECTION_MODE as d,useScreenPinned as a,useScreenCanvasFrame as u,useScreenInspectorPanel as h,useScreenPickFollowsSelection as k,sameInspectorMode as f,useStandaloneScreenBridges as j,useScreenBlockLook as N,useScreenBlockRules as y}from"../../chunk-6XXW6ZW3.js";import{nestsInTree as S,slotFieldsOf as C}from"../../chunk-PLVEGYK6.js";import{useMediaPanel as A,usePanelPick as x,useCancelPanelPick as M}from"../../chunk-R6WTQWAC.js";import{useHostEscape as F}from"../../chunk-U3JP4VGF.js";import{DEFAULT_SCREEN_WORDS as O}from"../../chunk-MCHMF32I.js";import{useEasel as P}from"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-7XHDCQVL.js";import"../../chunk-OZ72A6MY.js";import{LayersTree as v,Subtree as L,TreeRow as W,TreeRowAction as B,TreeSeam as g}from"../../chunk-4JSBIW5H.js";import"../../chunk-EA2HTX37.js";import{DEFAULT_TREE_WORDS as w}from"../../chunk-K56YDHYQ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-BDTITTMW.js";import{DEFAULT_SAVE_WORDS as z,saveIndicator as E}from"../../chunk-H6DDIBQ4.js";import{SaveState as b,panelWidthVars as R}from"../../chunk-UB4TLWVJ.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-JIWPANGM.js";import"../../chunk-66LWADFP.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-QLD57GBB.js";import{useWords as T}from"../../chunk-MFIRYGHW.js";import"../../chunk-AYNU4FYF.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as X}from"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import{zoneKey as I,parseZoneKey as Y}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as D,useRef as H,useEffect as K,useCallback as V,Fragment as J}from"react";import{Tooltip as U}from"efficient-shell/ui";import{TrashIcon as G}from"efficient-shell/icons/efficient";import{jsxs as Q,jsx as Z,Fragment as $}from"react/jsx-runtime";var q=e=>n=>{n.target.closest("button, input")||e()},_={rowClick:q};function ee(){const{saveState:ee,readOnly:ne,readOnlyReason:oe=null}=l(),re=p(),{appState:te,selectedItem:se,config:ie}=P(e=>e),[ce,pe]=D(d),le=T("screen",O),me=T("tree",w),de=T("save",z),{first:ae,last:ue,panelOf:he}=a(),ke=he(ae),fe=u(),je=h(),Ne=te.data.content?.[0]??null,ye=Ne?.props.id??null,Se=Ne?.type===ae,Ce=Ne?.type===ue,Ae=H(null),xe=H(null);t(xe);const Me=A(),Fe=x(),Oe=M();k(se?.props.id),K(()=>{const e=xe.current;if(!Fe||!e)return;const n=e=>{"Escape"===e.key&&Oe()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[Fe]),F(null!==Fe,()=>Oe()),K(()=>{ye&&Ae.current!==ye&&(Ae.current=ye,Se?pe(ke??d):se||re.select({index:0}))},[ye,se,re,Se]);const Pe=V(e=>pe(n=>f(n,e)?n:e),[]),ve=j({kind:ce.kind,mode:ce,open:Pe,show:e=>pe(e),reveal:()=>{},select:(e,n)=>{pe(e=>f(e,n)?e:n),re.select(e)}}),{selectNode:Le}=c({mode:ce,setMode:pe,onOpenPart:o}),We=N(),{labelAtLevel:Be,Icon:ge}=We,{canAddTo:we}=y(),ze=e=>Be(e,"block",ie.components[e]?.label??e),Ee=e=>Be(e,"section",ze(e)),be=!Se&&"puck"===ce.kind&&se?.props.id===ye,Re=Ne?we(Ne.type)?.spec??null:null,Te=Ne&&Re?`${Ne.props.id}:${Re.slot}`:null,Xe=Ne&&Re&&Array.isArray(Ne.props[Re.slot])?Ne.props[Re.slot]:[],Ie=e=>n(e,ze,We.plainText),Ye=(e,n)=>{Ne&&Re&&Te&&(pe(d),Re.slider?(r(String(Ne.props.id),e),re.select({index:e,zone:Te}),o(String(Ne.props.id))):(re.select({index:e,zone:Te}),o(n)))},De=()=>{if(!Ne||!Re||!Te)return;const e=Xe.length;re.insertComponent(Te,Re.childType,e),pe(d),Re.slider?requestAnimationFrame(()=>{r(String(Ne.props.id),e),re.select({index:e,zone:Te})}):re.select({index:e,zone:Te})},He=e=>C(ie,e),Ke=e=>{const{parentId:n,slot:o}=Y(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of He(e.type)){const o=Array.isArray(e.props[n])?e.props[n]:[];for(const e of o){const n=r(e);if(n)return n}}return null},t=r(Ne)?.props[o];return Array.isArray(t)?t.length:0},Ve=(e,n,o)=>{const r=Math.min(Math.max(o,0),Ke(e)),t=n<r?r-1:r;t!==n&&(re.reorderComponent(e,n,t),pe(d),re.select({index:t,zone:e}))},Je=X({keyOf:e=>e.id,readOnly:Boolean(ne),canDrop:(e,n)=>I(n)===e.zone&&n.index>=0&&n.index<=Ke(e.zone),onDrop:(e,n)=>Ve(e.zone,e.index,n.index),onStep:(e,n)=>Ve(e.zone,e.index,n<0?e.index-1:e.index+2)}),Ue=(e,n)=>/* @__PURE__ */Z(g,{...ne?{}:Je.seam({place:{...Y(e),index:n}})},`seam:${e}:${n}`),Ge=e=>We.blockRowName(e,ze),Qe=(e,n,r)=>{pe(d),re.select({index:n,zone:e}),o(r)},Ze=(e,n,o)=>{re.insertComponent(e,n,o),pe(d),re.select({index:o,zone:e})},$e=(n,o,r)=>/* @__PURE__ */Z(e,{choices:r,onPick:e=>Ze(n,e,o)}),qe=(e,n)=>{const o=He((r=e).type).flatMap(e=>(Array.isArray(r.props[e])?r.props[e]:[]).map((n,o)=>({child:n,zone:`${r.props.id}:${e}`,index:o})));var r;const t=we(e.type),s=t?.choices??null,i="footer"===t?.source?Ge:Ie;/* @__PURE__ */
2
- return Q($,{children:[o.map(({child:e,zone:o,index:r})=>{const t=se?.props.id===e.props.id,s=S(ie,e.type,n),c=i(e),p=String(e.props.id),l=()=>Qe(o,r,p),{rowProps:m,...a}=Je.row({item:{id:p,zone:o,index:r},place:{...Y(o),index:r}},{onClick:q(l)});/* @__PURE__ */
3
- return Q(J,{children:[0===r&&Ue(o,0),
4
- /* @__PURE__ */Z(W,{words:me,icon:/* @__PURE__ */Z(ge,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...a,actions:/* @__PURE__ */Z(B,{kind:"delete",label:le.deleteNamed({name:c}),onClick:()=>{return e=o,n=r,re.removeComponent(e,n),pe(d),void re.select(null);var e,n},children:/* @__PURE__ */Z(G,{size:13})}),rowProps:m}),s&&/* @__PURE__ */Z(L,{children:qe(e,n+1)}),Ue(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?$e(`${e.props.id}:${t.slot}`,o.length,s):null]})},_e="HeroSingle"===Ne?.type,en=Boolean(Ne)&&(Boolean(Re)||Ce||Se||_e);/* @__PURE__ */
5
- return Q("div",{ref:xe,className:"sf-editor es-editor",style:R(i),children:[
6
- /* @__PURE__ */Z("div",{className:"sf-section-bar",children:/* @__PURE__ */Z(b,null!==oe?{tone:"off",label:oe,role:"status"}:{...E(ee,de),role:"status"})}),
7
- /* @__PURE__ */Q("div",{className:"sf-body",children:[Fe&&Me?/* @__PURE__ */Z("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */Z(m,{panel:Me,pick:Fe})}):en&&Ne&&/* @__PURE__ */Q("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
8
- /* @__PURE__ */Z("div",{className:"sf-panel-head",children:/* @__PURE__ */Z(U,{content:Se?le.headerSettings:le.sectionSettings({name:Ee(Ne.type)}),side:"bottom",children:/* @__PURE__ */Z("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(be?"is-selected":""),"aria-pressed":be,onClick:()=>{Se?pe(ke??d):(pe(d),re.select({index:0}))},children:Ee(Ne.type)})})}),
9
- /* @__PURE__ */Z(v,{className:"sf-tree sf-scroll",rootProps:Je.rootProps(),words:me,children:/* @__PURE__ */Z(L,{children:Se?
10
- /* @__PURE__ */Z(W,{words:me,icon:/* @__PURE__ */Z(ge,{type:"header",size:13}),name:le.headerSettings,selected:ce.kind===ke?.kind,onSelect:()=>pe(ke??d),rowProps:{onClick:q(()=>pe(ke??d))}}):Re?/* @__PURE__ */Q($,{children:[Xe.map((e,n)=>{const o=se?.props.id===e.props.id,r=Ie(e),t=String(e.props.id),s=()=>Ye(n,t),{rowProps:i,...c}=Je.row({item:{id:t,zone:Te,index:n},place:{...Y(Te),index:n}},{onClick:q(s)});/* @__PURE__ */
11
- return Q(J,{children:[0===n&&Ue(Te,0),
12
- /* @__PURE__ */Z(W,{words:me,icon:/* @__PURE__ */Z(ge,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */Z(B,{kind:"delete",label:le.deleteNamed({name:r}),onClick:()=>{return e=n,void(Te&&(re.removeComponent(Te,e),pe(d),re.select(null)));var e},children:/* @__PURE__ */Z(G,{size:13})}),rowProps:i}),Ue(Te,n+1)]},String(e.props.id??n))}),
13
- /* @__PURE__ */Q("button",{type:"button",className:"sf-add-card",onClick:De,children:[
14
- /* @__PURE__ */Z("span",{className:"sf-plus sf-plus--sm",children:"+"}),Re.addLabel]}),ye?ve.partRows?.(Ne,_):null]}):qe(Ne,1)})})]}),
15
- /* @__PURE__ */Z("div",{className:"sf-center",children:/* @__PURE__ */Z("div",{className:"sf-preview-host",children:/* @__PURE__ */Z(fe,{})})}),
16
- /* @__PURE__ */Z(s,{value:{selectChild:(e,n,o,r)=>"section"===we(r)?.source?Ye(n,o):Qe(e,n,o),addChild:(e,n,o,r,t)=>"section"===we(t)?.source?De():Ze(`${e}:${n}`,o,r),childRowName:Ie,blockRowName:Ge},children:/* @__PURE__ */Z(je,{mode:ce,onOpenWebsiteSettings:ve.openSettings??(()=>{}),onSelectNode:Le,hideNodeActions:!0})})]})]})}export{ee as default};
1
+ import{AddBlockRow as e}from"../../chunk-ESQZG7B3.js";import{slotChildRowName as n}from"../../chunk-TBF5CVPA.js";import{scrollPreviewToSection as o,gotoPreviewSlide as r}from"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import{useEaselUndoKeys as t}from"../../chunk-UY7BCB32.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-6TOYXESC.js";import{usePartBridge as c}from"../../chunk-5PUEZ22M.js";import{useSectionOps as p}from"../../chunk-57NRNFLO.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-WZMU646D.js";import"../../chunk-S4AWJX4Q.js";import"../../chunk-ERR437B5.js";import"../../chunk-KG7RJWOK.js";import"../../chunk-GMCZXMOV.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-HNKB2ZYR.js";import"../../chunk-CLOS6SSX.js";import"../../chunk-VPFNZ7TB.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as m}from"../../chunk-Q2L6YTII.js";import{SELECTION_MODE as d,useScreenPinned as a,useScreenCanvasFrame as u,useScreenInspectorPanel as h,useScreenPickFollowsSelection as k,sameInspectorMode as f,useStandaloneScreenBridges as j,useScreenBlockLook as S,useScreenBlockRules as y}from"../../chunk-ZR4CFNMW.js";import{nestsInTree as N,slotFieldsOf as C}from"../../chunk-PLVEGYK6.js";import{useMediaPanel as M,usePanelPick as x,useCancelPanelPick as A}from"../../chunk-R6WTQWAC.js";import{useHostEscape as B}from"../../chunk-U3JP4VGF.js";import{DEFAULT_SCREEN_WORDS as R}from"../../chunk-MCHMF32I.js";import{useEasel as O}from"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-CRWFB7MU.js";import"../../chunk-OZ72A6MY.js";import{LayersTree as v,Subtree as P,TreeRow as F,TreeRowAction as T,TreeSeam as W}from"../../chunk-4JSBIW5H.js";import"../../chunk-3ZJSLHHI.js";import{DEFAULT_TREE_WORDS as g}from"../../chunk-K56YDHYQ.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-BDTITTMW.js";import{DEFAULT_SAVE_WORDS as w,saveIndicator as z}from"../../chunk-H6DDIBQ4.js";import{SaveState as E,panelWidthVars as L}from"../../chunk-UB4TLWVJ.js";import"../../chunk-Y2G7CU6A.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import{useWords as b}from"../../chunk-MFIRYGHW.js";import"../../chunk-SSORUDHE.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as Y}from"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import{zoneKey as H,parseZoneKey as D}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as I,useRef as Z,useEffect as J,useCallback as K,Fragment as U}from"react";import{Tooltip as V}from"efficient-shell/ui";import{TrashIcon as G}from"efficient-shell/icons/efficient";import{jsxs as Q,jsx as X,Fragment as $}from"react/jsx-runtime";var q=e=>n=>{n.target.closest("button, input")||e()},_={rowClick:q};function ee(){const{saveState:ee,readOnly:ne,readOnlyReason:oe=null}=l(),re=p(),{appState:te,selectedItem:se,config:ie}=O(e=>e),[ce,pe]=I(d),le=b("screen",R),me=b("tree",g),de=b("save",w),{first:ae,last:ue,panelOf:he}=a(),ke=he(ae),fe=u(),je=h(),Se=te.data.content?.[0]??null,ye=Se?.props.id??null,Ne=Se?.type===ae,Ce=Se?.type===ue,Me=Z(null),xe=Z(null);t(xe);const Ae=M(),Be=x(),Re=A();k(se?.props.id),J(()=>{const e=xe.current;if(!Be||!e)return;const n=e=>{"Escape"===e.key&&Re()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[Be]),B(null!==Be,()=>Re()),J(()=>{ye&&Me.current!==ye&&(Me.current=ye,Ne?pe(ke??d):se||re.select({index:0}))},[ye,se,re,Ne]);const Oe=K(e=>pe(n=>f(n,e)?n:e),[]),ve=j({kind:ce.kind,mode:ce,open:Oe,show:e=>pe(e),reveal:()=>{},select:(e,n)=>{pe(e=>f(e,n)?e:n),re.select(e)}}),{selectNode:Pe}=c({mode:ce,setMode:pe,onOpenPart:o}),Fe=S(),{labelAtLevel:Te,Icon:We}=Fe,{canAddTo:ge}=y(),we=e=>Te(e,"block",ie.components[e]?.label??e),ze=e=>Te(e,"section",we(e)),Ee=!Ne&&"puck"===ce.kind&&se?.props.id===ye,Le=Se?ge(Se.type)?.spec??null:null,be=Se&&Le?`${Se.props.id}:${Le.slot}`:null,Ye=Se&&Le&&Array.isArray(Se.props[Le.slot])?Se.props[Le.slot]:[],He=e=>n(e,we,Fe.plainText),De=(e,n)=>{Se&&Le&&be&&(pe(d),Le.slider?(r(String(Se.props.id),e),re.select({index:e,zone:be}),o(String(Se.props.id))):(re.select({index:e,zone:be}),o(n)))},Ie=()=>{if(!Se||!Le||!be)return;const e=Ye.length;re.insertComponent(be,Le.childType,e),pe(d),Le.slider?requestAnimationFrame(()=>{r(String(Se.props.id),e),re.select({index:e,zone:be})}):re.select({index:e,zone:be})},Ze=e=>C(ie,e),Je=e=>{const{parentId:n,slot:o}=D(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Ze(e.type)){const o=Array.isArray(e.props[n])?e.props[n]:[];for(const e of o){const n=r(e);if(n)return n}}return null},t=r(Se)?.props[o];return Array.isArray(t)?t.length:0},Ke=(e,n,o)=>{const r=Math.min(Math.max(o,0),Je(e)),t=n<r?r-1:r;t!==n&&(re.reorderComponent(e,n,t),pe(d),re.select({index:t,zone:e}))},Ue=Y({keyOf:e=>e.id,readOnly:Boolean(ne),canDrop:(e,n)=>H(n)===e.zone&&n.index>=0&&n.index<=Je(e.zone),onDrop:(e,n)=>Ke(e.zone,e.index,n.index),onStep:(e,n)=>Ke(e.zone,e.index,n<0?e.index-1:e.index+2)}),Ve=(e,n)=>/* @__PURE__ */X(W,{...ne?{}:Ue.seam({place:{...D(e),index:n}})},`seam:${e}:${n}`),Ge=e=>Fe.blockRowName(e,we),Qe=(e,n,r)=>{pe(d),re.select({index:n,zone:e}),o(r)},Xe=(e,n,o)=>{re.insertComponent(e,n,o),pe(d),re.select({index:o,zone:e})},$e=(n,o,r)=>/* @__PURE__ */X(e,{choices:r,onPick:e=>Xe(n,e,o)}),qe=(e,n)=>{const o=Ze((r=e).type).flatMap(e=>(Array.isArray(r.props[e])?r.props[e]:[]).map((n,o)=>({child:n,zone:`${r.props.id}:${e}`,index:o})));var r;const t=ge(e.type),s=t?.choices??null,i="footer"===t?.source?Ge:He;/* @__PURE__ */
2
+ return Q($,{children:[o.map(({child:e,zone:o,index:r})=>{const t=se?.props.id===e.props.id,s=N(ie,e.type,n),c=i(e),p=String(e.props.id),l=()=>Qe(o,r,p),{rowProps:m,...a}=Ue.row({item:{id:p,zone:o,index:r},place:{...D(o),index:r}},{onClick:q(l)});/* @__PURE__ */
3
+ return Q(U,{children:[0===r&&Ve(o,0),
4
+ /* @__PURE__ */X(F,{words:me,icon:/* @__PURE__ */X(We,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...a,actions:/* @__PURE__ */X(T,{kind:"delete",label:le.deleteNamed({name:c}),onClick:()=>{return e=o,n=r,re.removeComponent(e,n),pe(d),void re.select(null);var e,n},children:/* @__PURE__ */X(G,{size:13})}),rowProps:m}),s&&/* @__PURE__ */X(P,{children:qe(e,n+1)}),Ve(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?$e(`${e.props.id}:${t.slot}`,o.length,s):null]})},_e="HeroSingle"===Se?.type,en=Boolean(Se)&&(Boolean(Le)||Ce||Ne||_e);/* @__PURE__ */
5
+ return Q("div",{ref:xe,className:"sf-editor es-editor",style:L(i),children:[
6
+ /* @__PURE__ */X("div",{className:"sf-section-bar",children:/* @__PURE__ */X(E,null!==oe?{tone:"off",label:oe,role:"status"}:{...z(ee,de),role:"status"})}),
7
+ /* @__PURE__ */Q("div",{className:"sf-body",children:[Be&&Ae?/* @__PURE__ */X("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */X(m,{panel:Ae,pick:Be})}):en&&Se&&/* @__PURE__ */Q("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
8
+ /* @__PURE__ */X("div",{className:"sf-panel-head",children:/* @__PURE__ */X(V,{content:Ne?le.headerSettings:le.sectionSettings({name:ze(Se.type)}),side:"bottom",children:/* @__PURE__ */X("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(Ee?"is-selected":""),"aria-pressed":Ee,onClick:()=>{Ne?pe(ke??d):(pe(d),re.select({index:0}))},children:ze(Se.type)})})}),
9
+ /* @__PURE__ */X(v,{className:"sf-tree sf-scroll",rootProps:Ue.rootProps(),words:me,children:/* @__PURE__ */X(P,{children:Ne?
10
+ /* @__PURE__ */X(F,{words:me,icon:/* @__PURE__ */X(We,{type:"header",size:13}),name:le.headerSettings,selected:ce.kind===ke?.kind,onSelect:()=>pe(ke??d),rowProps:{onClick:q(()=>pe(ke??d))}}):Le?/* @__PURE__ */Q($,{children:[Ye.map((e,n)=>{const o=se?.props.id===e.props.id,r=He(e),t=String(e.props.id),s=()=>De(n,t),{rowProps:i,...c}=Ue.row({item:{id:t,zone:be,index:n},place:{...D(be),index:n}},{onClick:q(s)});/* @__PURE__ */
11
+ return Q(U,{children:[0===n&&Ve(be,0),
12
+ /* @__PURE__ */X(F,{words:me,icon:/* @__PURE__ */X(We,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */X(T,{kind:"delete",label:le.deleteNamed({name:r}),onClick:()=>{return e=n,void(be&&(re.removeComponent(be,e),pe(d),re.select(null)));var e},children:/* @__PURE__ */X(G,{size:13})}),rowProps:i}),Ve(be,n+1)]},String(e.props.id??n))}),
13
+ /* @__PURE__ */Q("button",{type:"button",className:"sf-add-card",onClick:Ie,children:[
14
+ /* @__PURE__ */X("span",{className:"sf-plus sf-plus--sm",children:"+"}),Le.addLabel]}),ye?ve.partRows?.(Se,_):null]}):qe(Se,1)})})]}),
15
+ /* @__PURE__ */X("div",{className:"sf-center",children:/* @__PURE__ */X("div",{className:"sf-preview-host",children:/* @__PURE__ */X(fe,{})})}),
16
+ /* @__PURE__ */X(s,{value:{selectChild:(e,n,o,r)=>"section"===ge(r)?.source?De(n,o):Qe(e,n,o),addChild:(e,n,o,r,t)=>"section"===ge(t)?.source?Ie():Xe(`${e}:${n}`,o,r),childRowName:He,blockRowName:Ge},children:/* @__PURE__ */X(je,{mode:ce,onOpenWebsiteSettings:ve.openSettings??(()=>{}),onSelectNode:Pe,hideNodeActions:!0})})]})]})}export{ee as default};
@@ -12,7 +12,7 @@ import '../../types-CsgMwHHa.js';
12
12
  import '../../wordFit-7XpmhcaW.js';
13
13
  import '../../edit-lock/index.js';
14
14
  import '../../panelWidths-D9hTLR25.js';
15
- import '../../CanvasDragLayer-O1gVT1AL.js';
15
+ import '../../CanvasDragLayer-CLb7j-CZ.js';
16
16
  import '../../session-DSQFmIvx.js';
17
17
  import '../../words-BDignMl_.js';
18
18
  import '../../types-BsyPh6EW.js';
@@ -1 +1 @@
1
- export{usePartBridge}from"../../chunk-NL4OU4UU.js";import"../../chunk-6EKKPFVG.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-6XXW6ZW3.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-7XHDCQVL.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-EA2HTX37.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-JIWPANGM.js";import"../../chunk-66LWADFP.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-QLD57GBB.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{usePartBridge}from"../../chunk-5PUEZ22M.js";import"../../chunk-57NRNFLO.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-ZR4CFNMW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-CRWFB7MU.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -18,7 +18,7 @@ import '../types-CsgMwHHa.js';
18
18
  import '../wordFit-7XpmhcaW.js';
19
19
  import '../edit-lock/index.js';
20
20
  import '../panelWidths-D9hTLR25.js';
21
- import '../CanvasDragLayer-O1gVT1AL.js';
21
+ import '../CanvasDragLayer-CLb7j-CZ.js';
22
22
  import '../session-DSQFmIvx.js';
23
23
  import '../words-BDignMl_.js';
24
24
  import '../types-BsyPh6EW.js';
@@ -1 +1 @@
1
- import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-LWQQQ72E.js";import"../chunk-GXQCZJOP.js";export{ScreenStoreProvider}from"../chunk-3PPA5S2J.js";import"../chunk-TAF5AECR.js";import"../chunk-26OOWIJJ.js";import"../chunk-BXQBCW3P.js";import"../chunk-FGNR22NY.js";import"../chunk-ZE7I3PLX.js";import"../chunk-2GVCAIPX.js";import"../chunk-PAM3NLFL.js";import"../chunk-7F52SZOI.js";import"../chunk-MQNBD6AB.js";import"../chunk-TBF5CVPA.js";import"../chunk-4ES5JGGX.js";import"../chunk-IQ5TA7AM.js";import"../chunk-DUVRZ456.js";import"../chunk-6W7WLPZH.js";import"../chunk-QPQXKKSC.js";import"../chunk-KCBEE2MC.js";import"../chunk-6TOYXESC.js";import"../chunk-NL4OU4UU.js";import"../chunk-6EKKPFVG.js";import"../chunk-IYT6NN2J.js";import"../chunk-ISBKAONU.js";import"../chunk-HQWQLDCB.js";import"../chunk-BSPCSC45.js";import"../chunk-I54UCYOU.js";import"../chunk-GOTN2KY4.js";import"../chunk-R5L2E7JX.js";import"../chunk-WZMU646D.js";import"../chunk-S4AWJX4Q.js";import"../chunk-ERR437B5.js";import"../chunk-KG7RJWOK.js";import"../chunk-GMCZXMOV.js";export{NO_DOCUMENT_ADDRESSING}from"../chunk-RLBXE4EU.js";import"../chunk-HNKB2ZYR.js";import"../chunk-CLOS6SSX.js";import"../chunk-VPFNZ7TB.js";import"../chunk-LOMEH6DG.js";import"../chunk-BXMXTO36.js";import"../chunk-5545A3PC.js";import"../chunk-YB4QPUEZ.js";import"../chunk-5ZBY24K7.js";import"../chunk-PA3PNTVV.js";import"../chunk-BVN33R76.js";import"../chunk-PFNIVZPN.js";import"../chunk-KQMML6JM.js";import"../chunk-KCOBHPN6.js";export{EaselSessionProvider,useEaselSession}from"../chunk-O7Q4DDJT.js";export{EFFICIENT_BACKEND,activateEaselSession,backendOf,createEaselSession,currentEaselSession,deactivateEaselSession,efficientClientOpen,isEfficientBackend,provideDefaultBackend,resetAmbientEaselSession,sessionRegistry,setSessionBridgedSite,setSessionDocumentSite}from"../chunk-RSCMJIWS.js";import"../chunk-HQ4VVRIC.js";import"../chunk-F4XCIEXI.js";export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenAdd,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../chunk-6XXW6ZW3.js";import"../chunk-PLVEGYK6.js";import"../chunk-R6WTQWAC.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost,useHostEscape}from"../chunk-U3JP4VGF.js";import"../chunk-MCHMF32I.js";import"../chunk-V7U33NF2.js";import"../chunk-6WY6ZXJG.js";import"../chunk-DSUMM2WF.js";import"../chunk-AELNNAFM.js";import"../chunk-7XHDCQVL.js";import"../chunk-OZ72A6MY.js";import"../chunk-4JSBIW5H.js";import"../chunk-EA2HTX37.js";import"../chunk-K56YDHYQ.js";import"../chunk-YRLPFZW3.js";import"../chunk-OSPUG6S6.js";import"../chunk-WK3AFPXY.js";import"../chunk-UK2FQOUT.js";import"../chunk-3ZJSLHHI.js";import"../chunk-KFV7N2DJ.js";import"../chunk-4VJATVVR.js";import"../chunk-BDTITTMW.js";import"../chunk-H6DDIBQ4.js";import"../chunk-UB4TLWVJ.js";import"../chunk-Y2G7CU6A.js";import"../chunk-THWO5YVZ.js";import"../chunk-RE4LP46F.js";import"../chunk-MJM6SFD3.js";import"../chunk-2OAZYSWJ.js";import"../chunk-JIWPANGM.js";import"../chunk-66LWADFP.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import"../chunk-QLD57GBB.js";import"../chunk-MFIRYGHW.js";import"../chunk-AYNU4FYF.js";import"../chunk-O2NLQBFX.js";import"../chunk-67GNT6PF.js";import"../chunk-AWJUYMX7.js";import"../chunk-P2VEMZH5.js";import"../chunk-KRXQM65X.js";import"../chunk-NKB3KVAB.js";
1
+ import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-VQOIVFSG.js";import"../chunk-GXQCZJOP.js";export{ScreenStoreProvider}from"../chunk-4UJ6CPLO.js";import"../chunk-HXLF2ZQO.js";import"../chunk-26OOWIJJ.js";import"../chunk-BXQBCW3P.js";import"../chunk-FGNR22NY.js";import"../chunk-ZE7I3PLX.js";import"../chunk-2GVCAIPX.js";import"../chunk-PAM3NLFL.js";import"../chunk-7F52SZOI.js";import"../chunk-MQNBD6AB.js";import"../chunk-TBF5CVPA.js";import"../chunk-4ES5JGGX.js";import"../chunk-IQ5TA7AM.js";import"../chunk-DUVRZ456.js";import"../chunk-6W7WLPZH.js";import"../chunk-UY7BCB32.js";import"../chunk-KCBEE2MC.js";import"../chunk-6TOYXESC.js";import"../chunk-5PUEZ22M.js";import"../chunk-57NRNFLO.js";import"../chunk-IYT6NN2J.js";import"../chunk-LVUDUQNL.js";import"../chunk-HQWQLDCB.js";import"../chunk-BSPCSC45.js";import"../chunk-I54UCYOU.js";import"../chunk-GOTN2KY4.js";import"../chunk-R5L2E7JX.js";import"../chunk-WZMU646D.js";import"../chunk-S4AWJX4Q.js";import"../chunk-ERR437B5.js";import"../chunk-KG7RJWOK.js";import"../chunk-GMCZXMOV.js";export{NO_DOCUMENT_ADDRESSING}from"../chunk-RLBXE4EU.js";import"../chunk-HNKB2ZYR.js";import"../chunk-CLOS6SSX.js";import"../chunk-VPFNZ7TB.js";import"../chunk-LOMEH6DG.js";import"../chunk-V7U33NF2.js";import"../chunk-5545A3PC.js";import"../chunk-DSXKBICS.js";import"../chunk-5ZBY24K7.js";import"../chunk-PA3PNTVV.js";import"../chunk-BVN33R76.js";import"../chunk-PFNIVZPN.js";import"../chunk-KQMML6JM.js";import"../chunk-KCOBHPN6.js";export{EaselSessionProvider,useEaselSession}from"../chunk-O7Q4DDJT.js";export{EFFICIENT_BACKEND,activateEaselSession,backendOf,createEaselSession,currentEaselSession,deactivateEaselSession,efficientClientOpen,isEfficientBackend,provideDefaultBackend,resetAmbientEaselSession,sessionRegistry,setSessionBridgedSite,setSessionDocumentSite}from"../chunk-RSCMJIWS.js";import"../chunk-HQ4VVRIC.js";import"../chunk-Q2L6YTII.js";export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenAdd,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../chunk-ZR4CFNMW.js";import"../chunk-PLVEGYK6.js";import"../chunk-R6WTQWAC.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost,useHostEscape}from"../chunk-U3JP4VGF.js";import"../chunk-6WY6ZXJG.js";import"../chunk-MCHMF32I.js";import"../chunk-M5VRWM7M.js";import"../chunk-TBY3DFKS.js";import"../chunk-CRWFB7MU.js";import"../chunk-OZ72A6MY.js";import"../chunk-4JSBIW5H.js";import"../chunk-3ZJSLHHI.js";import"../chunk-K56YDHYQ.js";import"../chunk-KFV7N2DJ.js";import"../chunk-YRLPFZW3.js";import"../chunk-BXMXTO36.js";import"../chunk-EA2HTX37.js";import"../chunk-OSPUG6S6.js";import"../chunk-WK3AFPXY.js";import"../chunk-UK2FQOUT.js";import"../chunk-4VJATVVR.js";import"../chunk-BDTITTMW.js";import"../chunk-H6DDIBQ4.js";import"../chunk-UB4TLWVJ.js";import"../chunk-Y2G7CU6A.js";import"../chunk-THWO5YVZ.js";import"../chunk-RE4LP46F.js";import"../chunk-MJM6SFD3.js";import"../chunk-2OAZYSWJ.js";import"../chunk-CIHKZMNR.js";import"../chunk-66LWADFP.js";import"../chunk-QLD57GBB.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import"../chunk-MFIRYGHW.js";import"../chunk-SSORUDHE.js";import"../chunk-O2NLQBFX.js";import"../chunk-67GNT6PF.js";import"../chunk-AWJUYMX7.js";import"../chunk-P2VEMZH5.js";import"../chunk-KRXQM65X.js";import"../chunk-NKB3KVAB.js";
@@ -1 +1 @@
1
- export{editorRootFocus,useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-QPQXKKSC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-JIWPANGM.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{editorRootFocus,useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-UY7BCB32.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -16,7 +16,7 @@ import '../../../types-CsgMwHHa.js';
16
16
  import '../../../wordFit-7XpmhcaW.js';
17
17
  import '../../../edit-lock/index.js';
18
18
  import '../../../panelWidths-D9hTLR25.js';
19
- import '../../../CanvasDragLayer-O1gVT1AL.js';
19
+ import '../../../CanvasDragLayer-CLb7j-CZ.js';
20
20
  import '../../../session-DSQFmIvx.js';
21
21
  import '../../../words-BDignMl_.js';
22
22
  import '../../../types-BLRK6_JO.js';
@@ -1 +1 @@
1
- export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-BXQBCW3P.js";import"../../../chunk-ZE7I3PLX.js";import"../../../chunk-PAM3NLFL.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-MQNBD6AB.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BSPCSC45.js";import"../../../chunk-MCHMF32I.js";import"../../../chunk-V7U33NF2.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-MFIRYGHW.js";
1
+ export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-BXQBCW3P.js";import"../../../chunk-ZE7I3PLX.js";import"../../../chunk-PAM3NLFL.js";import"../../../chunk-7F52SZOI.js";import"../../../chunk-MQNBD6AB.js";import"../../../chunk-DUVRZ456.js";import"../../../chunk-BSPCSC45.js";import"../../../chunk-V7U33NF2.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-MCHMF32I.js";import"../../../chunk-MFIRYGHW.js";
@@ -1 +1 @@
1
- export{useSectionOps}from"../../../chunk-6EKKPFVG.js";import"../../../chunk-6XXW6ZW3.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-R6WTQWAC.js";import"../../../chunk-U3JP4VGF.js";import"../../../chunk-DSUMM2WF.js";import"../../../chunk-AELNNAFM.js";import"../../../chunk-7XHDCQVL.js";import"../../../chunk-OZ72A6MY.js";import"../../../chunk-4JSBIW5H.js";import"../../../chunk-EA2HTX37.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-UK2FQOUT.js";import"../../../chunk-3ZJSLHHI.js";import"../../../chunk-KFV7N2DJ.js";import"../../../chunk-JIWPANGM.js";import"../../../chunk-66LWADFP.js";import"../../../chunk-FFYXVAAL.js";import"../../../chunk-546BBOPE.js";import"../../../chunk-QLD57GBB.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-67GNT6PF.js";import"../../../chunk-AWJUYMX7.js";import"../../../chunk-P2VEMZH5.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
1
+ export{useSectionOps}from"../../../chunk-57NRNFLO.js";import"../../../chunk-ZR4CFNMW.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-R6WTQWAC.js";import"../../../chunk-U3JP4VGF.js";import"../../../chunk-M5VRWM7M.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-CRWFB7MU.js";import"../../../chunk-OZ72A6MY.js";import"../../../chunk-4JSBIW5H.js";import"../../../chunk-3ZJSLHHI.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-KFV7N2DJ.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-EA2HTX37.js";import"../../../chunk-UK2FQOUT.js";import"../../../chunk-CIHKZMNR.js";import"../../../chunk-66LWADFP.js";import"../../../chunk-QLD57GBB.js";import"../../../chunk-FFYXVAAL.js";import"../../../chunk-546BBOPE.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-67GNT6PF.js";import"../../../chunk-AWJUYMX7.js";import"../../../chunk-P2VEMZH5.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
@@ -4,7 +4,7 @@ import { Data } from '../../blocks/index.js';
4
4
  import { C as CanvasTarget } from '../../watch-BTYOJpQU.js';
5
5
  import { D as DeviceOption } from '../../types-Dt1CFR1S.js';
6
6
  import { P as Place } from '../../types-41704JE4.js';
7
- import { M as MeasuredCanvas, C as CanvasDragModel } from '../../CanvasDragLayer-O1gVT1AL.js';
7
+ import { M as MeasuredCanvas, C as CanvasDragModel } from '../../CanvasDragLayer-CLb7j-CZ.js';
8
8
  import { E as EaselContextMenuItem } from '../../types-BsyPh6EW.js';
9
9
  import { a as EaselRailItem } from '../../types-CsgMwHHa.js';
10
10
  import { StyleRow } from '../../style-clipboard/index.js';
@@ -1 +1 @@
1
- export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenAdd,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../../chunk-6XXW6ZW3.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-DSUMM2WF.js";import"../../chunk-AELNNAFM.js";import"../../chunk-7XHDCQVL.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-EA2HTX37.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-JIWPANGM.js";import"../../chunk-66LWADFP.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-QLD57GBB.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
1
+ export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSlotMode,sameInspectorMode,screenSlotsOf,useScreenAdd,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../../chunk-ZR4CFNMW.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-M5VRWM7M.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-CRWFB7MU.js";import"../../chunk-OZ72A6MY.js";import"../../chunk-4JSBIW5H.js";import"../../chunk-3ZJSLHHI.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-KFV7N2DJ.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-EA2HTX37.js";import"../../chunk-UK2FQOUT.js";import"../../chunk-CIHKZMNR.js";import"../../chunk-66LWADFP.js";import"../../chunk-QLD57GBB.js";import"../../chunk-FFYXVAAL.js";import"../../chunk-546BBOPE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-67GNT6PF.js";import"../../chunk-AWJUYMX7.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
@@ -629,9 +629,11 @@
629
629
  interactive; only the slim bands are clickable. On hover a band shows an accent
630
630
  insertion line + a dark "Add section" pill; clicking opens the picker targeted
631
631
  at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
632
- /* The full-width band only POSITIONS the affordance over a seam — it is itself
632
+ /* The full-width band only POSITIONS the ➕ over a seam — it is itself
633
633
  click-through (pointer-events:none) so it never steals canvas clicks / Puck
634
- selection near a section boundary. Only the centred pill is interactive. */
634
+ selection near a section boundary. Only the ➕ is interactive: the canvas
635
+ insert point (efficient-easel/drag `CanvasInsert`, drag.css), the shell's
636
+ 24px IconButton (owner 2026-10-14). */
635
637
  .sf-preview-gap {
636
638
  position: absolute;
637
639
  left: 0;
@@ -656,134 +658,11 @@
656
658
  overflow: hidden;
657
659
  }
658
660
 
659
- .sf-preview-gap--tight:hover {
661
+ .sf-preview-gap--tight:hover,
662
+ .sf-preview-gap--tight:focus-within {
660
663
  overflow: visible;
661
664
  }
662
665
 
663
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
664
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
665
- seam between top-level sections, placed at the boundary Y measured from the
666
- live iframe. The container ignores pointer events so the canvas stays
667
- interactive; only the slim bands are clickable. On hover a band shows an accent
668
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
669
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
670
- .sf-preview-gap-line {
671
- position: absolute;
672
- left: 0;
673
- right: 0;
674
- top: 50%;
675
- height: 2px;
676
- transform: translateY(-50%);
677
- background: var(--sf-accent);
678
- opacity: 0;
679
- pointer-events: none;
680
- transition: opacity 0.12s;
681
- }
682
-
683
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
684
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
685
- seam between top-level sections, placed at the boundary Y measured from the
686
- live iframe. The container ignores pointer events so the canvas stays
687
- interactive; only the slim bands are clickable. On hover a band shows an accent
688
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
689
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
690
- /* The only clickable element: a compact "+" chip that is hidden at rest and
691
- fades in on hover, expanding to the full "Add section" pill. Keeping it
692
- invisible until hovered means the canvas carries no persistent affordance,
693
- while the dead zone stays no larger than this small chip (opacity:0 still
694
- hit-tests, so the seam remains hoverable). */
695
- .sf-preview-gap-pill {
696
- position: relative;
697
- display: inline-flex;
698
- align-items: center;
699
- padding: 4px;
700
- border-radius: 999px;
701
- background: var(--sf-toast-bg);
702
- color: var(--sf-on-accent);
703
- font-family: var(--sf-font);
704
- font-size: 12px;
705
- font-weight: 500;
706
- white-space: nowrap;
707
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
708
- opacity: 0;
709
- cursor: pointer;
710
- pointer-events: auto;
711
- transition: opacity 0.12s, padding 0.12s;
712
- }
713
-
714
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
715
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
716
- seam between top-level sections, placed at the boundary Y measured from the
717
- live iframe. The container ignores pointer events so the canvas stays
718
- interactive; only the slim bands are clickable. On hover a band shows an accent
719
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
720
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
721
- .sf-preview-gap-pill:hover {
722
- opacity: 1;
723
- padding: 4px 12px 4px 4px;
724
- }
725
-
726
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
727
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
728
- seam between top-level sections, placed at the boundary Y measured from the
729
- live iframe. The container ignores pointer events so the canvas stays
730
- interactive; only the slim bands are clickable. On hover a band shows an accent
731
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
732
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
733
- .sf-preview-gap-plus {
734
- display: inline-flex;
735
- align-items: center;
736
- justify-content: center;
737
- width: 18px;
738
- height: 18px;
739
- border-radius: 50%;
740
- background: var(--sf-accent);
741
- color: var(--sf-on-accent);
742
- font-size: 14px;
743
- line-height: 1;
744
- flex: none;
745
- }
746
-
747
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
748
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
749
- seam between top-level sections, placed at the boundary Y measured from the
750
- live iframe. The container ignores pointer events so the canvas stays
751
- interactive; only the slim bands are clickable. On hover a band shows an accent
752
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
753
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
754
- /* Label collapsed until hover so the resting chip is just the "+". */
755
- .sf-preview-gap-label {
756
- max-width: 0;
757
- margin-left: 0;
758
- overflow: hidden;
759
- opacity: 0;
760
- transition: max-width 0.14s, margin-left 0.14s, opacity 0.12s;
761
- }
762
-
763
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
764
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
765
- seam between top-level sections, placed at the boundary Y measured from the
766
- live iframe. The container ignores pointer events so the canvas stays
767
- interactive; only the slim bands are clickable. On hover a band shows an accent
768
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
769
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
770
- .sf-preview-gap-pill:hover .sf-preview-gap-label {
771
- max-width: 140px;
772
- margin-left: 6px;
773
- opacity: 1;
774
- }
775
-
776
- /* ── Canvas "Add section" seams (overlay between preview sections) ──────────
777
- Absolutely positioned over .sf-preview-host (the iframe's box), one band per
778
- seam between top-level sections, placed at the boundary Y measured from the
779
- live iframe. The container ignores pointer events so the canvas stays
780
- interactive; only the slim bands are clickable. On hover a band shows an accent
781
- insertion line + a dark "Add section" pill; clicking opens the picker targeted
782
- at that seam. It sits inside the scaled device frame, so it tracks the zoom. */
783
- .sf-preview-gap:has(.sf-preview-gap-pill:hover) .sf-preview-gap-line {
784
- opacity: 1;
785
- }
786
-
787
666
  .sf-msg {
788
667
  padding: 24px;
789
668
  font-size: 14px;
@@ -22,14 +22,17 @@ import '../markup/index.js';
22
22
  import '../buckets-Tj-nkBpg.js';
23
23
 
24
24
  /**
25
- * The easel canvas's own words (`efficient-easel/strings`, 0.95.0). There is
26
- * one: what the frame is called when the host does not name it (`title`).
25
+ * The easel canvas's own words (`efficient-easel/strings`, 0.95.0): what the
26
+ * frame is called when the host does not name it (`title`), and the name of
27
+ * the bar of text tools that floats above words typed on the canvas.
27
28
  *
28
29
  * A plain module with no import.
29
30
  */
30
31
  type CanvasWords = {
31
32
  /** The canvas frame's accessible name. */
32
33
  frame: string;
34
+ /** The floating bar of text tools over the words being typed (its group's name). */
35
+ textTools: string;
33
36
  };
34
37
 
35
38
  /**
@@ -1 +1 @@
1
- export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-NTMY5EXS.js";import"../chunk-M6F6LS3H.js";import"../chunk-MCHMF32I.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-K56YDHYQ.js";import"../chunk-WK3AFPXY.js";import"../chunk-KFV7N2DJ.js";import"../chunk-ZAOM6PFH.js";import"../chunk-H6DDIBQ4.js";import"../chunk-Y2G7CU6A.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-AUT242JK.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import"../chunk-O2NLQBFX.js";
1
+ export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-TCVTMNYE.js";import"../chunk-M6F6LS3H.js";import"../chunk-ZAOM6PFH.js";import"../chunk-6WY6ZXJG.js";import"../chunk-MCHMF32I.js";import"../chunk-TBY3DFKS.js";import"../chunk-K56YDHYQ.js";import"../chunk-KFV7N2DJ.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-Y2G7CU6A.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-AUT242JK.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import"../chunk-O2NLQBFX.js";
@@ -1,2 +1,2 @@
1
- import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-NTMY5EXS.js";export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-NTMY5EXS.js";import"../chunk-M6F6LS3H.js";import"../chunk-MCHMF32I.js";import"../chunk-6WY6ZXJG.js";import"../chunk-AELNNAFM.js";import"../chunk-K56YDHYQ.js";import"../chunk-WK3AFPXY.js";import"../chunk-KFV7N2DJ.js";import"../chunk-ZAOM6PFH.js";import"../chunk-H6DDIBQ4.js";import"../chunk-Y2G7CU6A.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-AUT242JK.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import{stringsContext as o}from"../chunk-MFIRYGHW.js";import"../chunk-O2NLQBFX.js";import{useContext as t,useMemo as c}from"react";import{jsx as i}from"react/jsx-runtime";function s({value:s,locale:u,children:m}){const e=o(),p=t(e),h=p?.strings??r,j=u??p?.locale??"en",k=c(()=>({strings:n(h,s),locale:j}),[h,s,j]);/* @__PURE__ */
1
+ import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-TCVTMNYE.js";export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-TCVTMNYE.js";import"../chunk-M6F6LS3H.js";import"../chunk-ZAOM6PFH.js";import"../chunk-6WY6ZXJG.js";import"../chunk-MCHMF32I.js";import"../chunk-TBY3DFKS.js";import"../chunk-K56YDHYQ.js";import"../chunk-KFV7N2DJ.js";import"../chunk-WK3AFPXY.js";import"../chunk-H6DDIBQ4.js";import"../chunk-Y2G7CU6A.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-AUT242JK.js";import"../chunk-FFYXVAAL.js";import"../chunk-546BBOPE.js";import{stringsContext as o}from"../chunk-MFIRYGHW.js";import"../chunk-O2NLQBFX.js";import{useContext as t,useMemo as c}from"react";import{jsx as i}from"react/jsx-runtime";function s({value:s,locale:u,children:m}){const e=o(),p=t(e),h=p?.strings??r,j=u??p?.locale??"en",k=c(()=>({strings:n(h,s),locale:j}),[h,s,j]);/* @__PURE__ */
2
2
  return i(e.Provider,{value:k,children:m})}function u(){return t(o())?.strings??r}function m(){return t(o())?.locale??"en"}export{s as EaselStringsProvider,m as useEaselLocale,u as useEaselStrings};
@@ -1,21 +1,21 @@
1
- import{DEFAULT_TEXT_STYLES_WORDS as e}from"../chunk-M6F6LS3H.js";export{DEFAULT_TEXT_STYLES_WORDS}from"../chunk-M6F6LS3H.js";import{FieldSelect as n,FieldSlider as t}from"../chunk-OZ72A6MY.js";import{hexReadout as s,ColourWindow as i,typedHex as a}from"../chunk-FPAVNX3Y.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FFYXVAAL.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"],$=["font","color","size","weight","lineSpacing","letterSpacing","paragraphSpacing","letterCase"],O=["heading","body"],A=7,j={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 O.flatMap(n=>Array.from({length:j[n]},(t,s)=>({id:`${n}-${s+1}`,kind:n,name:e({kind:n,n:s+1}),values:{}})))}function H(e,n,t=A){return e.filter(e=>e.kind===n).length<t}function B(e,n){const t=new RegExp(`^${n}-([1-9]\\d*)$`).exec(e);return t?Number(t[1]):void 0}function D(e){const n=B(e.id,e.kind);return void 0!==n&&n<=j[e.kind]}function I(e,n,t={}){const{max:s=A,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=>(B(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 R(e,n,t={}){const{name:s=({kind:e,n:n})=>E(e,n)}=t,i=e.find(e=>e.id===n);if(!i||D(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 T(e,n){const t=e.find(e=>e.id===n);if(t)return t;for(const t of O){const s=B(n,t);if(void 0===s)continue;let i;for(const n of e){const e=n.kind===t?B(n.id,t):void 0;void 0!==e&&e<s&&(!i||e>i.n)&&(i={n:e,style:n})}return i?.style}}function Y(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 V(e){return Math.min(20,Math.max(12,Math.round(.5*e+6)))}function q(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 P(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:q(e.weight??400,t)})}var X=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>o({h:e,s:1,v:1})).join(", ")})`;function Z({value:e,hex:n,colours:t,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!==e&&t.some(n=>n.key===e),w=void 0!==e&&!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:[
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-OZ72A6MY.js";import"../chunk-FFYXVAAL.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"],$=["font","color","size","weight","lineSpacing","letterSpacing","paragraphSpacing","letterCase"],O=["heading","body"],A=7,j={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 O.flatMap(n=>Array.from({length:j[n]},(t,s)=>({id:`${n}-${s+1}`,kind:n,name:e({kind:n,n:s+1}),values:{}})))}function H(e,n,t=A){return e.filter(e=>e.kind===n).length<t}function B(e,n){const t=new RegExp(`^${n}-([1-9]\\d*)$`).exec(e);return t?Number(t[1]):void 0}function D(e){const n=B(e.id,e.kind);return void 0!==n&&n<=j[e.kind]}function I(e,n,t={}){const{max:s=A,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=>(B(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 R(e,n,t={}){const{name:s=({kind:e,n:n})=>E(e,n)}=t,i=e.find(e=>e.id===n);if(!i||D(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 T(e,n){const t=e.find(e=>e.id===n);if(t)return t;for(const t of O){const s=B(n,t);if(void 0===s)continue;let i;for(const n of e){const e=n.kind===t?B(n.id,t):void 0;void 0!==e&&e<s&&(!i||e>i.n)&&(i={n:e,style:n})}return i?.style}}function Y(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 V(e){return Math.min(20,Math.max(12,Math.round(.5*e+6)))}function q(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 P(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:q(e.weight??400,t)})}var X=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>o({h:e,s:1,v:1})).join(", ")})`;function Z({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
3
  /* @__PURE__ */C("span",{className:"es-ts-sub",children:a}),
4
- /* @__PURE__ */C("span",{className:"es-ts-colour-read",children:n?s(n):l})]}),
5
- /* @__PURE__ */N("div",{className:"es-ts-swatches",role:"group","aria-label":a,children:[t.map(n=>/* @__PURE__ */C(d,{content:`${n.name} · ${s(n.value)}`,children:/* @__PURE__ */C(c,{color:n.value,size:"sm",className:"es-ts-swatch","aria-label":n.name,selected:e===n.key,disabled:u,onClick:()=>o(n.key)})},n.key)),
6
- /* @__PURE__ */C(d,{content:r,children:/* @__PURE__ */C(c,{ref:y,color:X,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(i,{id:b,value:n??"",onChange:e=>o(e),label:a,readOnly:u,onClose:()=>{g(!1),y.current?.focus()}}):null]})}function _({styles:n,onChange:t,fonts:s,colours:i=[],settings:a=$,auto:o=[],fallback:d,sample:c,openId:u,defaultOpenId:y=null,onOpenChange:b,onAdd:x,rowActions:w,onRemove:S,max:M=A,readOnly:j=!1}){const F=l("textStyles",e),L=h(),[E,W]=m(y),B=void 0!==u?u:E,T=e=>{void 0===u&&W(e),b?.(e)},q=new Set(o),X=z.filter(e=>a.includes(e)),Z=f(null),[_,U]=m(null);p(()=>{if(!_||!Z.current)return;const e=[...Z.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===_.id),n=e?e.querySelector(".es-ts-row"):Z.current.querySelector(`.es-ts-add[data-ts-kind="${_.kind}"]`);n?.focus(),U(null)},[_]);/* @__PURE__ */
7
- return C("div",{className:"es-ts",ref:Z,children:O.map(e=>{const a=n.filter(n=>n.kind===e),l=`${L}-${e}`,o=!H(n,e,M),u=!j&&!o;/* @__PURE__ */
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":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:X,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 _({styles:e,onChange:n,fonts:t,colours:i=[],settings:a=$,auto:o=[],fallback:d,sample:c,openId:u,defaultOpenId:y=null,onOpenChange:b,onAdd:x,rowActions:w,onRemove:S,max:M=A,readOnly:j=!1}){const F=l("textStyles",s),L=h(),[E,W]=m(y),B=void 0!==u?u:E,T=e=>{void 0===u&&W(e),b?.(e)},q=new Set(o),X=z.filter(e=>a.includes(e)),Z=f(null),[_,U]=m(null);p(()=>{if(!_||!Z.current)return;const e=[...Z.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===_.id),n=e?e.querySelector(".es-ts-row"):Z.current.querySelector(`.es-ts-add[data-ts-kind="${_.kind}"]`);n?.focus(),U(null)},[_]);/* @__PURE__ */
7
+ return C("div",{className:"es-ts",ref:Z,children:O.map(s=>{const a=e.filter(e=>e.kind===s),l=`${L}-${s}`,o=!H(e,s,M),u=!j&&!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:F.groups[e]}),a.map(e=>{const a=B===e.id,l={...d?.(e)??{},...e.values},o=s.find(e=>e.value===l.font),u=`${L}-open-${e.id}`,m=w?.(e),f=null!=m&&!1!==m,h=Boolean(S)&&!j&&!D(e),p={fontFamily:o?.family,fontSize:`${V(l.size??16)}px`,fontWeight:l.weight,fontStyle:l.italic?"italic":void 0};/* @__PURE__ */
9
+ /* @__PURE__ */C("div",{className:"es-ts-group",id:l,children:F.groups[s]}),a.map(s=>{const a=B===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)&&!j&&!D(s),p={fontFamily:o?.family,fontSize:`${V(l.size??16)}px`,fontWeight:l.weight,fontStyle:l.italic?"italic":void 0};/* @__PURE__ */
10
10
  return N(v,{children:[
11
- /* @__PURE__ */N("div",{className:"es-ts-item","data-ts-id":e.id,children:[
12
- /* @__PURE__ */N("button",{type:"button",className:"es-ts-row","aria-expanded":a,"aria-controls":a?u:void 0,onClick:()=>T(a?null:e.id),children:[
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":a,"aria-controls":a?u:void 0,onClick:()=>T(a?null:s.id),children:[
13
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:e.name}),
15
- /* @__PURE__ */C("span",{className:"es-ts-meta",children:P(l,s,F,{autoSize:q.has("size")&&void 0===e.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:e.name}),onClick:()=>(e=>{if(j||!S)return;const s=R(n,e.id,{name:F.styleName});if(!s)return;const i=n.filter(n=>n.kind===e.kind),a=i[i.indexOf(e)+1];B===e.id&&T(null),t(s.styles),S(s.removed),U({id:a?.id??null,kind:e.kind})})(e),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(K,{style:e,values:l,fonts:s,colours:i,settings:X,autoSet:q,sample:c??F.sample,words:F,readOnly:j,set:s=>t(Y(n,e.id,s))})}):null]},e.id)}),r(!j&&o?F.full({kind:e,max:M}):void 0,/* @__PURE__ */N("button",{type:"button",className:"es-ts-add","data-ts-kind":e,disabled:j,"aria-disabled":!(j||!o)||void 0,"aria-describedby":!j&&o?`${L}-full-${e}`:void 0,onClick:()=>{u&&(e=>{if(j)return;const s=I(n,e,{max:M,name:F.styleName,make:x});s&&t(s.styles)})(e)},children:[
16
- /* @__PURE__ */C("span",{className:"es-ts-add-word",children:F.add[e]}),
17
- /* @__PURE__ */C("span",{className:"es-ts-count",children:F.count({n:a.length,max:M})})]})),j||!o?null:/* @__PURE__ */C("span",{id:`${L}-full-${e}`,className:"es-vh",children:F.full({kind:e,max:M})})]},e)})})}var U={none:S,upper:w,lower:x},G={none:"none",upper:"uppercase",lower:"lowercase"};function K({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??a(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,$={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?G[z]:void 0},O=e=>{const s=L[e],i=g(e);/* @__PURE__ */
18
- return C("div",{className:"es-ts-slider","data-ts-setting":e,children:/* @__PURE__ */C(t,{label:c.settings[e],value:h[e],onChange:n=>f({[e]:n}),min:s.min,max:s.max,step:s.step,shiftStep:s.shiftStep,sliderMin:s.sliderMin,sliderMax:s.sliderMax,unit:s.unit||void 0,styleValue:i?void 0:n[e],auto:i?c.auto:void 0,readOnly:m})},e)};/* @__PURE__ */
14
+ /* @__PURE__ */C("span",{className:"es-ts-name",style:p,children:s.name}),
15
+ /* @__PURE__ */C("span",{className:"es-ts-meta",children:P(l,t,F,{autoSize:q.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(j||!S)return;const s=R(e,t.id,{name:F.styleName});if(!s)return;const i=e.filter(e=>e.kind===t.kind),a=i[i.indexOf(t)+1];B===t.id&&T(null),n(s.styles),S(s.removed),U({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(K,{style:s,values:l,fonts:t,colours:i,settings:X,autoSet:q,sample:c??F.sample,words:F,readOnly:j,set:t=>n(Y(e,s.id,t))})}):null]},s.id)}),r(!j&&o?F.full({kind:s,max:M}):void 0,/* @__PURE__ */N("button",{type:"button",className:"es-ts-add","data-ts-kind":s,disabled:j,"aria-disabled":!(j||!o)||void 0,"aria-describedby":!j&&o?`${L}-full-${s}`:void 0,onClick:()=>{u&&(t=>{if(j)return;const s=I(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})})]})),j||!o?null:/* @__PURE__ */C("span",{id:`${L}-full-${s}`,className:"es-vh",children:F.full({kind:s,max:M})})]},s)})})}var U={none:S,upper:w,lower:x},G={none:"none",upper:"uppercase",lower:"lowercase"};function K({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,$={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?G[z]:void 0},O=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
20
  /* @__PURE__ */C("div",{className:"es-ts-preview",style:$,"aria-label":c.preview,children:d}),l.map(t=>{switch(t){case"font":/* @__PURE__ */
21
21
  return C(J,{value:h.font,fonts:s,words:c,readOnly:m,set:f},t);case"color":/* @__PURE__ */
@@ -23,10 +23,10 @@ return C(Q,{value:h.color,hex:v,colours:i,words:c,readOnly:m,set:f},t);case"emph
23
23
  return N("div",{className:"es-ts-set","data-ts-setting":t,children:[
24
24
  /* @__PURE__ */C("span",{className:"es-ts-sub",children:c.settings.emphasis}),
25
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?O(t):null;default:return O(t)}})]})}function J({value:e,fonts:t,words:s,readOnly:i,set:a}){const l=h();/* @__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?O(t):null;default:return O(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
- /* @__PURE__ */C("span",{className:"es-ts-sub",id:l,children:s.settings.font}),
29
- /* @__PURE__ */C(n,{value:e,options:t.map(e=>({label:e.label,value:e.value})),onChange:e=>a({font:e}),ariaLabelledBy:l,readOnly:i})]})}function Q({value:e,hex:n,colours:t,words:s,readOnly:i,set:a}){/* @__PURE__ */
28
+ /* @__PURE__ */C("span",{className:"es-ts-sub",id:l,children:t.settings.font}),
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
30
  return C(Z,{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}),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-easel",
3
- "version": "6.4.0",
3
+ "version": "6.6.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",
@@ -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-DSUMM2WF.js";import{Inspector as i}from"./chunk-7XHDCQVL.js";import{createContext as o,useContext as u}from"react";import{DesktopIcon as l}from"efficient-shell/icons/efficient";import{jsx as s}from"react/jsx-runtime";var c={kind:"puck"};function f(n,e){const t=n,r=e,i=Object.keys(t);return i.length===Object.keys(r).length&&i.every(n=>Object.is(t[n],r[n]))}function a(n){const e=n;return"string"==typeof e.nodeId&&"string"==typeof e.slot}function d(e,t,r){const i=e.slotsOf?.(r);return i||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 m(n,e){return n.isLast?n.isLast(e):e.type===n.last}var k={},h={},v=()=>k,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(l,{})}],initial:"desktop",fluid:"desktop",widths:{desktop:2e3}},w={read:()=>"sections",write:()=>{},forSelection:(n,e)=>n?"sections":e},S={first:null,last:null,firstGroup:null,lastGroup:null,isSectionGroup:()=>!1,sectionGroupZone:()=>"",panelOf:()=>null};function C(){/* @__PURE__ */
2
- return s(t,{height:"fill"})}function D(){const{id:n,fields:e,values:t,readOnly:o,onChange:u}=r();/* @__PURE__ */
3
- return s("div",{className:"es-sidepanel es-sidepanel--right",children:/* @__PURE__ */s(i,{fields:e,values:t,onChange:u,readOnly:o,idPrefix:n})})}var P=o({});function G({parts:n,children:e}){/* @__PURE__ */
4
- return s(P.Provider,{value:n,children:e})}function N(){return u(P)}function x(){return(N().useOwnerName??g)()}function B(){return(N().useDocumentLabel??y)()}function F(n,e,t,r){return(N().useBridges??v)(n,e,t,r)}function I(n){return(N().useStandaloneBridges??v)(n)}function T(n,e){(N().useDocumentPass??b)(n,e)}function A(){return N().blockRules??L}function R(){return N().blockLook??O}function V(){return N().devices??j}function W(){return N().leftView??w}function H(){return N().pinned??S}function K(){return N().saveSwitch??!0}function M(n){e(!0===N().pickFollowsSelection,n)}function Q(){return N().add??h}function E(){return N().storageNamespace||void 0}function U(){return N().styleClipboard??null}function X(){return N().nodeKeys??!0}function Y(){return N().notify??null}function Z(){return N().Canvas??C}function q(){return N().CanvasHead??null}function z(){return N().canvasDrag??null}var J=o(null);function $({target:n,children:e}){/* @__PURE__ */
5
- return s(J.Provider,{value:n,children:e})}function _(){return u(J)}function nn(){return N().Inspector??D}export{c as SELECTION_MODE,$ as ScreenCanvasTargetProvider,G as ScreenPartsProvider,p as isPinnedFirst,m as isPinnedLast,a as isSlotMode,f as sameInspectorMode,d as screenSlotsOf,Q as useScreenAdd,R as useScreenBlockLook,A as useScreenBlockRules,F as useScreenBridges,z as useScreenCanvasDrag,Z as useScreenCanvasFrame,q as useScreenCanvasHead,_ as useScreenCanvasTarget,V as useScreenDevices,B as useScreenDocumentLabel,T as useScreenDocumentPass,nn as useScreenInspectorPanel,W as useScreenLeftView,X as useScreenNodeKeys,Y as useScreenNotify,x as useScreenOwnerName,N as useScreenParts,M as useScreenPickFollowsSelection,H as useScreenPinned,K as useScreenSaveSwitch,E as useScreenStorageNamespace,U as useScreenStyleClipboard,I as useStandaloneScreenBridges};
@@ -1 +0,0 @@
1
- var a={frame:"Canvas"};export{a as DEFAULT_CANVAS_WORDS};