efficient-easel 0.105.0 → 0.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/chunk-2GVCAIPX.js +1 -0
- package/dist/chunk-37OCQYNX.js +65 -0
- package/dist/chunk-6WH7FA2M.js +9 -0
- package/dist/chunk-C6BJB5AC.js +2 -0
- package/dist/{chunk-TTJ54QGG.js → chunk-DX4XELD6.js} +6 -6
- package/dist/{chunk-PQXIFBDY.js → chunk-E2O2MRZR.js} +1 -1
- package/dist/{chunk-V4LF7D4F.js → chunk-FS5BLARH.js} +1 -1
- package/dist/{chunk-QH6LCNOX.js → chunk-I6T4TZ5Q.js} +1 -1
- package/dist/{chunk-NYKIQJT2.js → chunk-JWMNPRTT.js} +1 -1
- package/dist/{chunk-YN4KND5F.js → chunk-LY4K2ECT.js} +1 -1
- package/dist/chunk-M7N2V4TG.js +2 -0
- package/dist/chunk-MHKBLPQ2.js +1 -0
- package/dist/chunk-MS4QRBJ6.js +5 -0
- package/dist/chunk-ND55LTCA.js +5 -0
- package/dist/{chunk-TLZG2FCF.js → chunk-PBSEUZD6.js} +1 -1
- package/dist/{chunk-RQHC4TD6.js → chunk-UEVTQBM7.js} +3 -3
- package/dist/{chunk-BXZ6WLHC.js → chunk-VCQVNPTG.js} +16 -16
- package/dist/{chunk-SARZN4M7.js → chunk-VINYARYJ.js} +1 -1
- package/dist/chunk-WTMHT7BI.js +1 -0
- package/dist/chunk-Z6SOLDWV.js +1 -0
- package/dist/copy/index.js +9 -9
- package/dist/drag/index.d.ts +10 -0
- package/dist/drag/index.js +1 -1
- package/dist/easel/index.d.ts +10 -1
- package/dist/easel/index.js +1 -1
- package/dist/fields/index.js +1 -1
- package/dist/{host-BQ_b9Qzk.d.ts → host-CiuzZJXj.d.ts} +11 -1
- package/dist/index.js +1 -1
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/MediaSidePanel.d.ts +1 -1
- package/dist/screen/components/MediaSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.d.ts +19 -1
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/PageEditGuardNotices.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenDocumentContext.d.ts +1 -1
- package/dist/screen/components/ScreenDocumentContext.js +1 -1
- package/dist/screen/components/ScreenMount.d.ts +1 -1
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.d.ts +1 -1
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +16 -16
- package/dist/screen/components/panel-widths.d.ts +15 -1
- package/dist/screen/components/panel-widths.js +1 -1
- package/dist/screen/components/usePartBridge.d.ts +1 -1
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.d.ts +2 -2
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/document-addressing.d.ts +1 -1
- package/dist/screen/lib/host.d.ts +1 -1
- package/dist/screen/lib/key-scope.d.ts +31 -2
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/media-panel.d.ts +1 -1
- package/dist/screen/lib/media-picker.d.ts +1 -1
- package/dist/screen/lib/puck/section-doc.d.ts +5 -1
- package/dist/screen/lib/puck/section-doc.js +1 -1
- package/dist/screen/lib/puck/style-clipboard.d.ts +1 -1
- package/dist/screen/lib/puck/use-section-ops.d.ts +14 -12
- package/dist/screen/lib/puck/use-section-ops.js +1 -1
- package/dist/screen/lib/screen-parts.d.ts +38 -2
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/screen/screen.css +21 -0
- package/dist/screen/words.d.ts +17 -1
- package/dist/screen/words.js +1 -1
- package/dist/strings/catalogue.js +1 -1
- package/dist/strings/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-4XQUWGIV.js +0 -65
- package/dist/chunk-53G47SWO.js +0 -1
- package/dist/chunk-7FBDZTUD.js +0 -2
- package/dist/chunk-7V5WZ46F.js +0 -2
- package/dist/chunk-IE4GFYKO.js +0 -1
- package/dist/chunk-N7VRF7PR.js +0 -5
- package/dist/chunk-P67FP7PG.js +0 -9
- package/dist/chunk-VSHV6KJQ.js +0 -5
- package/dist/chunk-VSOP4GUM.js +0 -1
- package/dist/chunk-ZTTWFAAC.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DocumentScreen,ScreenMount as default}from"../../chunk-
|
|
1
|
+
export{DocumentScreen,ScreenMount as default}from"../../chunk-UEVTQBM7.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-VINYARYJ.js";import"../../chunk-37OCQYNX.js";import"../../chunk-26OOWIJJ.js";import"../../chunk-SQTY6CJD.js";import"../../chunk-FGNR22NY.js";import"../../chunk-ZE7I3PLX.js";import"../../chunk-2GVCAIPX.js";import"../../chunk-PWZOS45R.js";import"../../chunk-7F52SZOI.js";import"../../chunk-R2HLPNQF.js";import"../../chunk-TBF5CVPA.js";import"../../chunk-4ES5JGGX.js";import"../../chunk-IQ5TA7AM.js";import"../../chunk-DUVRZ456.js";import"../../chunk-6W7WLPZH.js";import"../../chunk-MHKBLPQ2.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-5MZ3RNQQ.js";import"../../chunk-WTMHT7BI.js";import"../../chunk-LY4K2ECT.js";import"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-M7N2V4TG.js";import"../../chunk-FS5BLARH.js";import"../../chunk-BSPCSC45.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-C6BJB5AC.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-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-57DJOKXT.js";import"../../chunk-3QVB4AG2.js";import"../../chunk-MS4QRBJ6.js";import"../../chunk-5ZBY24K7.js";import"../../chunk-PA3PNTVV.js";import"../../chunk-BVN33R76.js";import"../../chunk-5ZBBXZPV.js";import"../../chunk-KQMML6JM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import"../../chunk-JWMNPRTT.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-2LK54I4E.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-E2O2MRZR.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-RW4XBUUW.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-OWBO4WKA.js";import"../../chunk-BDTITTMW.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.js";import"../../chunk-O2NLQBFX.js";import"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -25,7 +25,7 @@ import './AddSidePanel.js';
|
|
|
25
25
|
import '../lib/section-template-types.js';
|
|
26
26
|
import '../lib/puck/content-tree.js';
|
|
27
27
|
import '../lib/puck/block-choice.js';
|
|
28
|
-
import '../../host-
|
|
28
|
+
import '../../host-CiuzZJXj.js';
|
|
29
29
|
import '../lib/document-contract.js';
|
|
30
30
|
import '../lib/session.js';
|
|
31
31
|
import '../lib/backend-error.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ScreenStoreProvider as default}from"../../chunk-
|
|
1
|
+
export{ScreenStoreProvider as default}from"../../chunk-VINYARYJ.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import{AddBlockRow as e}from"../../chunk-
|
|
2
|
-
return
|
|
3
|
-
return
|
|
4
|
-
/* @__PURE__ */
|
|
5
|
-
return
|
|
6
|
-
/* @__PURE__ */
|
|
7
|
-
/* @__PURE__
|
|
8
|
-
/* @__PURE__ */
|
|
9
|
-
/* @__PURE__ */
|
|
10
|
-
/* @__PURE__ */
|
|
11
|
-
return
|
|
12
|
-
/* @__PURE__ */
|
|
13
|
-
/* @__PURE__
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
1
|
+
import{AddBlockRow as e}from"../../chunk-I6T4TZ5Q.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-MHKBLPQ2.js";import{SlotChildActionsProvider as s}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as i}from"../../chunk-WTMHT7BI.js";import{usePartBridge as c}from"../../chunk-LY4K2ECT.js";import{useSectionOps as p}from"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import{useScreenDocument as l}from"../../chunk-C6BJB5AC.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-3P6AMTOS.js";import"../../chunk-3WSPDAK2.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-O7Q4DDJT.js";import"../../chunk-RSCMJIWS.js";import"../../chunk-HQ4VVRIC.js";import{MediaSidePanel as d}from"../../chunk-JWMNPRTT.js";import{SELECTION_MODE as m,useScreenPinned as a,useScreenCanvasFrame as u,useScreenInspectorPanel as h,useScreenPickFollowsSelection as k,sameInspectorMode as j,useStandaloneScreenBridges as f,useScreenBlockLook as N,useScreenBlockRules as C}from"../../chunk-ND55LTCA.js";import{nestsInTree as y,slotFieldsOf as S}from"../../chunk-PLVEGYK6.js";import{useMediaPanel as A,usePanelPick as T,useCancelPanelPick as P}from"../../chunk-R6WTQWAC.js";import{useHostEscape as x}from"../../chunk-U3JP4VGF.js";import"../../chunk-E2O2MRZR.js";import{useEasel as E}from"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import{LayersTree as O,Subtree as R,TreeRow as B,TreeRowAction as g,TreeSeam as v}from"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-BDTITTMW.js";import{saveIndicator as D}from"../../chunk-H6DDIBQ4.js";import{SaveState as L,panelWidthVars as z}from"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-DX4XELD6.js";import"../../chunk-O2NLQBFX.js";import{useTreeDrag as M}from"../../chunk-67GNT6PF.js";import"../../chunk-PAELDYYS.js";import"../../chunk-ZNCEOSXO.js";import{TrashIcon as W}from"../../chunk-L5KW4HG5.js";import{zoneKey as J,parseZoneKey as Z}from"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";import{useState as b,useRef as w,useEffect as H,useCallback as K,Fragment as Y}from"react";import{jsxs as $,jsx as F,Fragment as I}from"react/jsx-runtime";var V=e=>n=>{n.target.closest(".es-tree-select, button")||e()},Q={rowClick:V};function X(){const{saveState:X,readOnly:G,readOnlyReason:U=null}=l(),q=p(),{appState:_,selectedItem:ee,config:ne}=E(e=>e),[oe,re]=b(m),[te,se]=b(null),{first:ie,last:ce,panelOf:pe}=a(),le=pe(ie),de=u(),me=h(),ae=_.data.content?.[0]??null,ue=ae?.props.id??null,he=ae?.type===ie,ke=ae?.type===ce,je=w(null),fe=w(null);t(fe);const Ne=A(),Ce=T(),ye=P();k(ee?.props.id),H(()=>{const e=fe.current;if(!Ce||!e)return;const n=e=>{"Escape"===e.key&&ye()};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)},[Ce]),x(null!==Ce,()=>ye()),H(()=>{ue&&je.current!==ue&&(je.current=ue,he?re(le??m):ee||q.select({index:0}))},[ue,ee,q,he]);const Se=K(e=>re(n=>j(n,e)?n:e),[]),Ae=f({kind:oe.kind,mode:oe,open:Se,show:e=>re(e),reveal:()=>{},select:(e,n)=>{re(e=>j(e,n)?e:n),q.select(e)}}),{selectNode:Te}=c({mode:oe,setMode:re,onOpenPart:o}),Pe=N(),{labelAtLevel:xe,Icon:Ee}=Pe,{canAddTo:Oe}=C(),Re=e=>ne.components[e]?.label??e,Be=e=>xe(e,"section",Re(e)),ge=!he&&"puck"===oe.kind&&ee?.props.id===ue,ve=ae?Oe(ae.type)?.spec??null:null,De=ae&&ve?`${ae.props.id}:${ve.slot}`:null,Le=ae&&ve&&Array.isArray(ae.props[ve.slot])?ae.props[ve.slot]:[],ze=e=>n(e,Re,Pe.plainText),Me=(e,n)=>{ae&&ve&&De&&(re(m),ve.slider?(r(String(ae.props.id),e),q.select({index:e,zone:De}),o(String(ae.props.id))):(q.select({index:e,zone:De}),o(n)))},We=()=>{if(!ae||!ve||!De)return;const e=Le.length;q.insertComponent(De,ve.childType,e),re(m),ve.slider?requestAnimationFrame(()=>{r(String(ae.props.id),e),q.select({index:e,zone:De})}):q.select({index:e,zone:De})},Je=e=>S(ne,e),Ze=e=>{const{parentId:n,slot:o}=Z(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Je(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(ae)?.props[o];return Array.isArray(t)?t.length:0},be=(e,n,o)=>{const r=Math.min(Math.max(o,0),Ze(e)),t=n<r?r-1:r;t!==n&&(q.reorderComponent(e,n,t),re(m),q.select({index:t,zone:e}))},we=M({keyOf:e=>e.id,readOnly:Boolean(G),canDrop:(e,n)=>J(n)===e.zone&&n.index>=0&&n.index<=Ze(e.zone),onDrop:(e,n)=>be(e.zone,e.index,n.index),onStep:(e,n)=>be(e.zone,e.index,n<0?e.index-1:e.index+2)}),He=(e,n)=>/* @__PURE__ */F(v,{...G?{}:we.seam({place:{...Z(e),index:n}})},`seam:${e}:${n}`),Ke=e=>Pe.blockRowName(e,Re),Ye=(e,n,r)=>{re(m),q.select({index:n,zone:e}),o(r)},$e=(e,n,o)=>{q.insertComponent(e,n,o),re(m),q.select({index:o,zone:e}),se(null)},Fe=(n,o,r)=>/* @__PURE__ */F(e,{choices:r,open:te===n,onToggle:()=>se(te===n?null:n),onPick:e=>$e(n,e,o)}),Ie=(e,n)=>{const o=Je((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=Oe(e.type),s=t?.choices??null,i="footer"===t?.source?Ke:ze;/* @__PURE__ */
|
|
2
|
+
return $(I,{children:[o.map(({child:e,zone:o,index:r})=>{const t=ee?.props.id===e.props.id,s=y(ne,e.type,n),c=i(e),p=String(e.props.id),l=()=>Ye(o,r,p),{rowProps:d,...a}=we.row({item:{id:p,zone:o,index:r},place:{...Z(o),index:r}},{onClick:V(l)});/* @__PURE__ */
|
|
3
|
+
return $(Y,{children:[0===r&&He(o,0),
|
|
4
|
+
/* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:e.type,size:13}),name:c,selected:t,onSelect:l,...a,actions:/* @__PURE__ */F(g,{kind:"delete",label:`Delete ${c}`,onClick:()=>{return e=o,n=r,q.removeComponent(e,n),re(m),void q.select(null);var e,n},children:/* @__PURE__ */F(W,{size:13})}),rowProps:d}),s&&/* @__PURE__ */F(R,{children:Ie(e,n+1)}),He(o,r+1)]},String(e.props.id??`${o}-${r}`))}),t&&s?Fe(`${e.props.id}:${t.slot}`,o.length,s):null]})},Ve="HeroSingle"===ae?.type,Qe=Boolean(ae)&&(Boolean(ve)||ke||he||Ve);/* @__PURE__ */
|
|
5
|
+
return $("div",{ref:fe,className:"sf-editor es-editor",style:z(i),children:[
|
|
6
|
+
/* @__PURE__ */F("div",{className:"sf-section-bar",children:/* @__PURE__ */F(L,null!==U?{tone:"off",label:U,role:"status"}:{...D(X),role:"status"})}),
|
|
7
|
+
/* @__PURE__ */$("div",{className:"sf-body",children:[Ce&&Ne?/* @__PURE__ */F("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:/* @__PURE__ */F(d,{panel:Ne,pick:Ce})}):Qe&&ae&&/* @__PURE__ */$("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
|
|
8
|
+
/* @__PURE__ */F("div",{className:"sf-panel-head",children:/* @__PURE__ */F("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(ge?"is-selected":""),"aria-pressed":ge,title:he?"Header settings":`${Be(ae.type)} settings`,onClick:()=>{he?re(le??m):(re(m),q.select({index:0}))},children:Be(ae.type)})}),
|
|
9
|
+
/* @__PURE__ */F(O,{className:"sf-tree sf-scroll",rootProps:we.rootProps(),children:/* @__PURE__ */F(R,{children:he?
|
|
10
|
+
/* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:"header",size:13}),name:"Header settings",selected:oe.kind===le?.kind,onSelect:()=>re(le??m),rowProps:{onClick:V(()=>re(le??m))}}):ve?/* @__PURE__ */$(I,{children:[Le.map((e,n)=>{const o=ee?.props.id===e.props.id,r=ze(e),t=String(e.props.id),s=()=>Me(n,t),{rowProps:i,...c}=we.row({item:{id:t,zone:De,index:n},place:{...Z(De),index:n}},{onClick:V(s)});/* @__PURE__ */
|
|
11
|
+
return $(Y,{children:[0===n&&He(De,0),
|
|
12
|
+
/* @__PURE__ */F(B,{icon:/* @__PURE__ */F(Ee,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */F(g,{kind:"delete",label:`Delete ${r}`,onClick:()=>{return e=n,void(De&&(q.removeComponent(De,e),re(m),q.select(null)));var e},children:/* @__PURE__ */F(W,{size:13})}),rowProps:i}),He(De,n+1)]},String(e.props.id??n))}),
|
|
13
|
+
/* @__PURE__ */$("button",{type:"button",className:"sf-add-card",onClick:We,children:[
|
|
14
|
+
/* @__PURE__ */F("span",{className:"sf-plus sf-plus--sm",children:"+"}),ve.addLabel]}),ue?Ae.partRows?.(ae,Q):null]}):Ie(ae,1)})})]}),
|
|
15
|
+
/* @__PURE__ */F("div",{className:"sf-center",children:/* @__PURE__ */F("div",{className:"sf-preview-host",children:/* @__PURE__ */F(de,{})})}),
|
|
16
|
+
/* @__PURE__ */F(s,{value:{selectChild:(e,n,o,r)=>"section"===Oe(r)?.source?Me(n,o):Ye(e,n,o),addChild:(e,n,o,r,t)=>"section"===Oe(t)?.source?We():$e(`${e}:${n}`,o,r),childRowName:ze,blockRowName:Ke},children:/* @__PURE__ */F(me,{mode:oe,onOpenWebsiteSettings:Ae.openSettings??(()=>{}),onSelectNode:Te,hideNodeActions:!0})})]})]})}export{X as default};
|
|
@@ -21,6 +21,20 @@ import 'react';
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
declare const PANEL_WIDTHS_KEY = "sf-editor-panel-widths";
|
|
24
|
+
/** …and the key the Layers tree's folds are kept under, beside them. */
|
|
25
|
+
declare const COLLAPSED_SECTIONS_KEY = "sf-editor-collapsed-sections";
|
|
26
|
+
/**
|
|
27
|
+
* THE KEYS ONE MOUNT KEEPS A PERSON'S WIDTHS AND FOLDS UNDER (0.106.0, parity
|
|
28
|
+
* item #21): the website's two above, or — where the layer names a namespace
|
|
29
|
+
* of its own (`ScreenParts.storageNamespace`) — `<namespace>-panel-widths` and
|
|
30
|
+
* `<namespace>-collapsed-sections`. The campaign designer and the website
|
|
31
|
+
* editor, open in one browser, each keep their own; a website, which names
|
|
32
|
+
* none, reads what it always kept, so nobody's layout resets.
|
|
33
|
+
*/
|
|
34
|
+
declare function screenStorageKeys(namespace?: string): {
|
|
35
|
+
panelWidths: string;
|
|
36
|
+
collapsed: string;
|
|
37
|
+
};
|
|
24
38
|
declare const DEFAULT_PANEL_W: {
|
|
25
39
|
readonly left: 288;
|
|
26
40
|
readonly right: 320;
|
|
@@ -34,4 +48,4 @@ type PanelWidths = {
|
|
|
34
48
|
/** Clamp a width into the panels' resizable band and round to a whole pixel. */
|
|
35
49
|
declare const clampPanelWidth: (w: number) => number;
|
|
36
50
|
|
|
37
|
-
export { DEFAULT_PANEL_W, PANEL_WIDTHS_KEY, type PanelSide, type PanelWidths, clampPanelWidth };
|
|
51
|
+
export { COLLAPSED_SECTIONS_KEY, DEFAULT_PANEL_W, PANEL_WIDTHS_KEY, type PanelSide, type PanelWidths, clampPanelWidth, screenStorageKeys };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_PANEL_W,PANEL_WIDTHS_KEY,clampPanelWidth}from"../../chunk-
|
|
1
|
+
export{COLLAPSED_SECTIONS_KEY,DEFAULT_PANEL_W,PANEL_WIDTHS_KEY,clampPanelWidth,screenStorageKeys}from"../../chunk-WTMHT7BI.js";export{MAX_PANEL_W,MIN_PANEL_W,panelWidthVars}from"../../chunk-YC4TB3CJ.js";import"../../chunk-ZJEBF4NB.js";import"../../chunk-THWO5YVZ.js";import"../../chunk-RE4LP46F.js";import"../../chunk-WZ7TGAAT.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-L5KW4HG5.js";
|
|
@@ -24,7 +24,7 @@ import './AddSidePanel.js';
|
|
|
24
24
|
import '../lib/section-template-types.js';
|
|
25
25
|
import '../lib/puck/content-tree.js';
|
|
26
26
|
import '../lib/puck/block-choice.js';
|
|
27
|
-
import '../../host-
|
|
27
|
+
import '../../host-CiuzZJXj.js';
|
|
28
28
|
import '../lib/document-contract.js';
|
|
29
29
|
import '../lib/session.js';
|
|
30
30
|
import '../lib/backend-error.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{usePartBridge}from"../../chunk-
|
|
1
|
+
export{usePartBridge}from"../../chunk-LY4K2ECT.js";import"../../chunk-PBSEUZD6.js";import"../../chunk-IYT6NN2J.js";import"../../chunk-I54UCYOU.js";import"../../chunk-GOTN2KY4.js";import"../../chunk-R5L2E7JX.js";import"../../chunk-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
package/dist/screen/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { DocumentScreen, default as ScreenMount } from './components/ScreenMount.js';
|
|
2
2
|
export { default as ScreenStoreProvider } from './components/ScreenStoreProvider.js';
|
|
3
|
-
export { NodeDefaults, SELECTION_MODE, ScreenAdd, ScreenBlockLook, ScreenBlockRules, ScreenBridges, ScreenCanvas, ScreenCanvasDrag, ScreenCanvasDragContext, ScreenCanvasHeadProps, ScreenCanvasTargetProvider, ScreenDevices, ScreenDocumentOps, ScreenDragItem, ScreenInspector, ScreenInspectorMode, ScreenInspectorPanelProps, ScreenLeftPanel, ScreenLeftView, ScreenLeftViewFrame, ScreenLeftViewRules, ScreenMenuRows, ScreenNewNode, ScreenNode, ScreenNodeActions, ScreenNodeLevel, ScreenNodeMaker, ScreenPartMode, ScreenParts, ScreenPartsProvider, ScreenPinnedBand, ScreenPinnedNodes, ScreenRailItem, ScreenSelection, ScreenSelector, ScreenSlot, ScreenSlotAction, ScreenSlotMode, ScreenStyleClipboard, ScreenStyleDocument, ScreenStylePastePlan, ScreenTree, ScreenTreeFolds, ScreenTreeRows, 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, useScreenStyleClipboard, useStandaloneScreenBridges } from './lib/screen-parts.js';
|
|
3
|
+
export { NodeDefaults, SELECTION_MODE, ScreenAdd, ScreenBlockLook, ScreenBlockRules, ScreenBridges, ScreenCanvas, ScreenCanvasDrag, ScreenCanvasDragContext, ScreenCanvasHeadProps, ScreenCanvasTargetProvider, ScreenDevices, ScreenDocumentOps, ScreenDragItem, ScreenInspector, ScreenInspectorMode, ScreenInspectorPanelProps, ScreenLeftPanel, ScreenLeftView, ScreenLeftViewFrame, ScreenLeftViewRules, ScreenMenuRows, ScreenNewNode, ScreenNode, ScreenNodeActions, ScreenNodeLevel, ScreenNodeMaker, ScreenPartMode, ScreenParts, ScreenPartsProvider, ScreenPinnedBand, ScreenPinnedNodes, ScreenRailItem, ScreenSelection, ScreenSelector, ScreenSlot, ScreenSlotAction, ScreenSlotMode, ScreenStyleClipboard, ScreenStyleDocument, ScreenStylePastePlan, ScreenTree, ScreenTreeFolds, ScreenTreeRows, 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 './lib/screen-parts.js';
|
|
4
4
|
export { DefaultBackend, EFFICIENT_BACKEND, EaselSession, SessionBackend, SessionBlocks, activateEaselSession, backendOf, createEaselSession, currentEaselSession, deactivateEaselSession, efficientClientOpen, isEfficientBackend, provideDefaultBackend, resetAmbientEaselSession, sessionRegistry, setSessionBridgedSite, setSessionDocumentSite } from './lib/session.js';
|
|
5
5
|
export { EaselSessionProvider, useEaselSession } from './lib/session-context.js';
|
|
6
|
-
export { A as AnyDocumentAddressing, D as DETACHED_EASEL_HOST, a as DocumentAddressing, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, N as NO_DOCUMENT_ADDRESSING, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../host-
|
|
6
|
+
export { A as AnyDocumentAddressing, D as DETACHED_EASEL_HOST, a as DocumentAddressing, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, N as NO_DOCUMENT_ADDRESSING, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../host-CiuzZJXj.js';
|
|
7
7
|
export { EaselCapabilities, EaselDocument, EaselDocumentAdapter, EaselPageRow, SiteRecord, SiteRecordPatch, WebsiteEditLock } from './lib/document-contract.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import '../blocks/index.js';
|
package/dist/screen/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-
|
|
1
|
+
import"../chunk-GZO72N3Q.js";export{DocumentScreen,ScreenMount}from"../chunk-UEVTQBM7.js";import"../chunk-GXQCZJOP.js";export{ScreenStoreProvider}from"../chunk-VINYARYJ.js";import"../chunk-37OCQYNX.js";import"../chunk-26OOWIJJ.js";import"../chunk-SQTY6CJD.js";import"../chunk-FGNR22NY.js";import"../chunk-ZE7I3PLX.js";import"../chunk-2GVCAIPX.js";import"../chunk-PWZOS45R.js";import"../chunk-7F52SZOI.js";import"../chunk-R2HLPNQF.js";import"../chunk-TBF5CVPA.js";import"../chunk-4ES5JGGX.js";import"../chunk-IQ5TA7AM.js";import"../chunk-DUVRZ456.js";import"../chunk-6W7WLPZH.js";import"../chunk-MHKBLPQ2.js";import"../chunk-KCBEE2MC.js";import"../chunk-5MZ3RNQQ.js";import"../chunk-WTMHT7BI.js";import"../chunk-LY4K2ECT.js";import"../chunk-PBSEUZD6.js";import"../chunk-IYT6NN2J.js";import"../chunk-M7N2V4TG.js";import"../chunk-FS5BLARH.js";import"../chunk-BSPCSC45.js";import"../chunk-I54UCYOU.js";import"../chunk-GOTN2KY4.js";import"../chunk-R5L2E7JX.js";import"../chunk-C6BJB5AC.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-3P6AMTOS.js";import"../chunk-3WSPDAK2.js";import"../chunk-57DJOKXT.js";import"../chunk-3QVB4AG2.js";import"../chunk-MS4QRBJ6.js";import"../chunk-5ZBY24K7.js";import"../chunk-PA3PNTVV.js";import"../chunk-BVN33R76.js";import"../chunk-5ZBBXZPV.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-JWMNPRTT.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-ND55LTCA.js";import"../chunk-PLVEGYK6.js";import"../chunk-R6WTQWAC.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,createEaselHost,useEaselHost,useHostEscape}from"../chunk-U3JP4VGF.js";import"../chunk-2LK54I4E.js";import"../chunk-6WY6ZXJG.js";import"../chunk-WK3AFPXY.js";import"../chunk-E2O2MRZR.js";import"../chunk-6WH7FA2M.js";import"../chunk-D2BCHTQR.js";import"../chunk-AELNNAFM.js";import"../chunk-VCQVNPTG.js";import"../chunk-EOJNJCMJ.js";import"../chunk-ZFDCDJNZ.js";import"../chunk-3EDSDPIP.js";import"../chunk-YRLPFZW3.js";import"../chunk-RW4XBUUW.js";import"../chunk-KTVH2ZRL.js";import"../chunk-ZNS7727Y.js";import"../chunk-QTLAVDJE.js";import"../chunk-OWBO4WKA.js";import"../chunk-BDTITTMW.js";import"../chunk-H6DDIBQ4.js";import"../chunk-YC4TB3CJ.js";import"../chunk-ZJEBF4NB.js";import"../chunk-THWO5YVZ.js";import"../chunk-RE4LP46F.js";import"../chunk-WZ7TGAAT.js";import"../chunk-2OAZYSWJ.js";import"../chunk-EWVJSRRY.js";import"../chunk-FPOKPNO4.js";import"../chunk-P6O363EE.js";import"../chunk-MFIRYGHW.js";import"../chunk-BZ5ASXOL.js";import"../chunk-DX4XELD6.js";import"../chunk-O2NLQBFX.js";import"../chunk-67GNT6PF.js";import"../chunk-PAELDYYS.js";import"../chunk-ZNCEOSXO.js";import"../chunk-L5KW4HG5.js";import"../chunk-KRXQM65X.js";import"../chunk-NKB3KVAB.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AnyDocumentAddressing, a as DocumentAddressing, N as NO_DOCUMENT_ADDRESSING } from '../../host-
|
|
1
|
+
export { A as AnyDocumentAddressing, a as DocumentAddressing, N as NO_DOCUMENT_ADDRESSING } from '../../host-CiuzZJXj.js';
|
|
2
2
|
import './document-contract.js';
|
|
3
3
|
import './session.js';
|
|
4
4
|
import 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
-
export { D as DETACHED_EASEL_HOST, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../../host-
|
|
2
|
+
export { D as DETACHED_EASEL_HOST, E as EaselHost, b as EaselHostAddress, c as EaselHostContext, d as EaselHostProvider, e as EaselMessageType, f as EaselToHostMessage, H as HostPickedMedia, g as HostToEaselMessage, I as InboundHostMessage, S as SectionScreenTarget, h as SendToHost, i as createEaselHost, u as useEaselHost, j as useHostEscape } from '../../host-CiuzZJXj.js';
|
|
3
3
|
import '../../blocks/index.js';
|
|
4
4
|
import '../../types-E3HrTPg2.js';
|
|
5
5
|
import '../../data/index.js';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
+
import { C as CanvasTarget } from '../../watch-BTYOJpQU.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Where the editor listens for its page-wide shortcuts — undo / redo, copy and
|
|
@@ -17,7 +18,35 @@ declare function useEaselKeyTarget(rootRef: RefObject<HTMLElement | null>): Even
|
|
|
17
18
|
* Undo / redo on the editor's own root when the editor does not own the page —
|
|
18
19
|
* the engine's `EaselProvider` binds them to `document`, and is told not to
|
|
19
20
|
* (`hotkeys={host.ownsDocument}` in ScreenStoreProvider) in exactly this case.
|
|
21
|
+
*
|
|
22
|
+
* …and in the CANVAS FRAME (`canvas`, the frame the screen found, 0.106.0): a
|
|
23
|
+
* key pressed in the frame never leaves its document, and the canvas binds
|
|
24
|
+
* the frame's keys only under the provider's switch, which is off here. Until
|
|
25
|
+
* 0.106.0 ⌘Z on the canvas did nothing in the campaign designer, and in the
|
|
26
|
+
* website editor inside the admin's window. One binder for both
|
|
27
|
+
* (`bindUndoKeys`), never a copy of it; a layer's canvas leaves its own
|
|
28
|
+
* `hotkeys` out, or the frame would answer twice.
|
|
29
|
+
*
|
|
30
|
+
* Both leave a press where a person types to the field (`leaveTyping`): ⌘Z in
|
|
31
|
+
* a settings box or an editable region of the canvas is that field's own undo.
|
|
32
|
+
* And the root takes focus without a tab stop (`editorRootFocus`), so a click
|
|
33
|
+
* on the editor's ground — the top bar between its buttons, a panel's
|
|
34
|
+
* padding — leaves focus inside it, where its keys are heard, and not on the
|
|
35
|
+
* page's body.
|
|
36
|
+
*/
|
|
37
|
+
declare function useEaselUndoKeys(rootRef: RefObject<HTMLElement | null>, canvas?: CanvasTarget | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* What the editor's root carries so a click on its ground keeps focus inside
|
|
40
|
+
* it (0.106.0): a tab index of -1 — focusable, and never a tab stop — where
|
|
41
|
+
* its keys are its root's, inside another app's page; nothing where it owns
|
|
42
|
+
* the page and listens on `document`. A browser moves focus on a press to the
|
|
43
|
+
* nearest focusable thing round it, else to the body, which is outside the
|
|
44
|
+
* root and so out of its keys' hearing.
|
|
20
45
|
*/
|
|
21
|
-
declare function
|
|
46
|
+
declare function editorRootFocus(host: {
|
|
47
|
+
ownsDocument: boolean;
|
|
48
|
+
}): {
|
|
49
|
+
tabIndex?: number;
|
|
50
|
+
};
|
|
22
51
|
|
|
23
|
-
export { useEaselKeyTarget, useEaselUndoKeys };
|
|
52
|
+
export { editorRootFocus, useEaselKeyTarget, useEaselUndoKeys };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-
|
|
1
|
+
export{editorRootFocus,useEaselKeyTarget,useEaselUndoKeys}from"../../chunk-MHKBLPQ2.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ComponentType, ReactNode } from 'react';
|
|
3
|
-
import { H as HostPickedMedia, E as EaselHost } from '../../host-
|
|
3
|
+
import { H as HostPickedMedia, E as EaselHost } from '../../host-CiuzZJXj.js';
|
|
4
4
|
import '../../blocks/index.js';
|
|
5
5
|
import '../../types-E3HrTPg2.js';
|
|
6
6
|
import '../../data/index.js';
|
|
@@ -14,7 +14,11 @@ declare function docToNode(data: Data): TreeItem | null;
|
|
|
14
14
|
* inline slot child's, recursively — so inserting the same template twice never
|
|
15
15
|
* lands two nodes with colliding ids (Puck keys selection/replace on id, and
|
|
16
16
|
* React keys render on it).
|
|
17
|
+
*
|
|
18
|
+
* `strip` (0.106.0) sees each copied node once its children are copied, and
|
|
19
|
+
* answers it as the copy should hold it — the layer's `blockRules.stripCopy`,
|
|
20
|
+
* which takes out what only an original may hold. It keeps the fresh id.
|
|
17
21
|
*/
|
|
18
|
-
declare function cloneNodeWithFreshIds(node: TreeItem): TreeItem;
|
|
22
|
+
declare function cloneNodeWithFreshIds(node: TreeItem, strip?: (node: TreeItem) => TreeItem): TreeItem;
|
|
19
23
|
|
|
20
24
|
export { cloneNodeWithFreshIds, docToNode, nodeToDoc };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-
|
|
1
|
+
export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-2GVCAIPX.js";import"../../../chunk-PLVEGYK6.js";
|
|
@@ -25,7 +25,7 @@ import '../../components/AddSidePanel.js';
|
|
|
25
25
|
import '../section-template-types.js';
|
|
26
26
|
import './content-tree.js';
|
|
27
27
|
import './block-choice.js';
|
|
28
|
-
import '../../../host-
|
|
28
|
+
import '../../../host-CiuzZJXj.js';
|
|
29
29
|
import '../document-contract.js';
|
|
30
30
|
import '../session.js';
|
|
31
31
|
import '../backend-error.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { N as NodeSelection } from '../../../plan-DChbUXdS.js';
|
|
1
2
|
import { Data } from '../../../blocks/index.js';
|
|
2
3
|
import { TreeItem } from './content-tree.js';
|
|
4
|
+
import '../../../types-41704JE4.js';
|
|
3
5
|
import 'react';
|
|
4
6
|
import '../../../types-E3HrTPg2.js';
|
|
5
7
|
import '../../../data/index.js';
|
|
6
|
-
import '../../../types-41704JE4.js';
|
|
7
8
|
import '../../../resolve-D68pb3Bx.js';
|
|
8
|
-
import '../../../plan-DChbUXdS.js';
|
|
9
9
|
|
|
10
10
|
type NodeSelector = {
|
|
11
11
|
index: number;
|
|
@@ -44,18 +44,20 @@ type SectionOps = {
|
|
|
44
44
|
/** Replace the whole working document (used by Reset). */
|
|
45
45
|
setDocument: (data: Data) => void;
|
|
46
46
|
/**
|
|
47
|
-
* Write the next document as ONE undo step — the
|
|
48
|
-
* operations (`efficient-easel/node-ops`, blueprint
|
|
49
|
-
* Delete, Duplicate, Move, Copy / Cut / Paste and Hide,
|
|
50
|
-
* hover-delete). Each of those is planned whole and lands here
|
|
51
|
-
* of the two or three dispatches it used to be.
|
|
47
|
+
* Write the next document, and what to select in it, as ONE undo step — the
|
|
48
|
+
* commit behind the block operations (`efficient-easel/node-ops`, blueprint
|
|
49
|
+
* step 2.4b: the menu's Delete, Duplicate, Move, Copy / Cut / Paste and Hide,
|
|
50
|
+
* and the rows' hover-delete). Each of those is planned whole and lands here
|
|
51
|
+
* once, instead of the two or three dispatches it used to be.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
53
|
+
* `select` is BY ID, in `data` (`undefined` leaves the selection as it is),
|
|
54
|
+
* and goes in with the document through the store's `run` (0.105.1). Until
|
|
55
|
+
* then the chrome selected first, by position (`setUi { itemSelector }`),
|
|
56
|
+
* which the store reads in the document it still holds: a paste or a
|
|
57
|
+
* Duplicate selected the node after its copy, and a Move the node it passed.
|
|
58
|
+
* Behind the read-only gate like every other mutation here.
|
|
57
59
|
*/
|
|
58
|
-
commitDocument: (data: Data) => void;
|
|
60
|
+
commitDocument: (data: Data, select?: NodeSelection) => void;
|
|
59
61
|
};
|
|
60
62
|
type SectionOpsOptions = {
|
|
61
63
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{useSectionOps}from"../../../chunk-
|
|
1
|
+
export{useSectionOps}from"../../../chunk-PBSEUZD6.js";import"../../../chunk-ND55LTCA.js";import"../../../chunk-PLVEGYK6.js";import"../../../chunk-R6WTQWAC.js";import"../../../chunk-U3JP4VGF.js";import"../../../chunk-6WH7FA2M.js";import"../../../chunk-D2BCHTQR.js";import"../../../chunk-AELNNAFM.js";import"../../../chunk-VCQVNPTG.js";import"../../../chunk-EOJNJCMJ.js";import"../../../chunk-ZFDCDJNZ.js";import"../../../chunk-3EDSDPIP.js";import"../../../chunk-YRLPFZW3.js";import"../../../chunk-KTVH2ZRL.js";import"../../../chunk-ZNS7727Y.js";import"../../../chunk-QTLAVDJE.js";import"../../../chunk-EWVJSRRY.js";import"../../../chunk-FPOKPNO4.js";import"../../../chunk-P6O363EE.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-BZ5ASXOL.js";import"../../../chunk-67GNT6PF.js";import"../../../chunk-ZNCEOSXO.js";import"../../../chunk-L5KW4HG5.js";import"../../../chunk-KRXQM65X.js";import"../../../chunk-NKB3KVAB.js";
|
|
@@ -10,7 +10,7 @@ import { a as EaselRailItem } from '../../types-DWS-s9z-.js';
|
|
|
10
10
|
import { StyleRow } from '../../style-clipboard/index.js';
|
|
11
11
|
import { T as TreeRowMark } from '../../types-DJDBtdB2.js';
|
|
12
12
|
import { AddKey } from '../components/AddSidePanel.js';
|
|
13
|
-
import { k as AnyScreenTarget } from '../../host-
|
|
13
|
+
import { k as AnyScreenTarget } from '../../host-CiuzZJXj.js';
|
|
14
14
|
import { HostProduct } from './host-chrome.js';
|
|
15
15
|
import { EaselSession } from './session.js';
|
|
16
16
|
import { AddTarget } from './puck/add-target-types.js';
|
|
@@ -585,6 +585,19 @@ interface ScreenBlockRules {
|
|
|
585
585
|
* the website's never has.
|
|
586
586
|
*/
|
|
587
587
|
resolveOnInsert?: boolean;
|
|
588
|
+
/**
|
|
589
|
+
* CLEAN A COPY (0.106.0): handed every node the screen COPIES into the
|
|
590
|
+
* document — the menu's Duplicate and Paste, ⌘V (a cut block pasted back
|
|
591
|
+
* too), a saved section put in from Add — one node at a time, a copied
|
|
592
|
+
* section's blocks each as well, and it answers the node as the copy should
|
|
593
|
+
* hold it: what only the original may hold taken out. The campaign
|
|
594
|
+
* designer's image block releases the hosted picture it baked (`bakedId`):
|
|
595
|
+
* the next bake deletes the asset that id names, so two blocks holding one
|
|
596
|
+
* would destroy each other's picture. It must keep the node's id (the copy's
|
|
597
|
+
* own, already fresh) and its type. Absent: a copy is its original, prop for
|
|
598
|
+
* prop, but its ids, as before.
|
|
599
|
+
*/
|
|
600
|
+
stripCopy?: (node: ScreenNode) => ScreenNode;
|
|
588
601
|
}
|
|
589
602
|
/**
|
|
590
603
|
* ONE SLOT OF A NODE, as the screen draws it (`ScreenBlockRules.slotsOf`,
|
|
@@ -947,6 +960,16 @@ interface ScreenPinnedNodes {
|
|
|
947
960
|
isFirst?: (node: ScreenNode) => boolean;
|
|
948
961
|
/** …and the one pinned last (the Footer). Absent: a node of type `last`. */
|
|
949
962
|
isLast?: (node: ScreenNode) => boolean;
|
|
963
|
+
/**
|
|
964
|
+
* May a block cross into and out of the node pinned LAST (0.106.0) — dragged
|
|
965
|
+
* in the Layers tree or on the canvas, or pasted? Absent or false, the
|
|
966
|
+
* website's Footer: its blocks reorder within their own slot and nothing
|
|
967
|
+
* from the page's sections lands in it, nor leaves it. True, the campaign
|
|
968
|
+
* designer's Footer, a section whose columns hold any block: its slots are
|
|
969
|
+
* lists like every other's, asked what they take (the slot's own list, the
|
|
970
|
+
* depth, never into itself). The node itself stays pinned either way.
|
|
971
|
+
*/
|
|
972
|
+
lastIsOpen?: boolean;
|
|
950
973
|
/**
|
|
951
974
|
* How the Layers tree draws the node pinned first (0.103.0). `"panel"`: a
|
|
952
975
|
* row of its own that opens the layer's panel for it (`panelOf`), drawn
|
|
@@ -1203,6 +1226,16 @@ interface ScreenParts {
|
|
|
1203
1226
|
/** Where Add puts what it adds, and whether it is a picker of blocks first
|
|
1204
1227
|
* (0.105.0; `ScreenAdd`). Absent: the screen's Add, as it always was. */
|
|
1205
1228
|
add?: ScreenAdd;
|
|
1229
|
+
/**
|
|
1230
|
+
* WHERE A PERSON'S PANEL WIDTHS AND TREE FOLDS ARE KEPT (0.106.0): the
|
|
1231
|
+
* first part of the two `localStorage` keys, `<namespace>-panel-widths` and
|
|
1232
|
+
* `<namespace>-collapsed-sections`, so an editor beside the website's keeps
|
|
1233
|
+
* its own — the campaign designer's panels and folds are not the website
|
|
1234
|
+
* editor's. Read once, as the screen mounts. Absent (or empty): the website
|
|
1235
|
+
* editor's keys, `sf-editor-panel-widths` and
|
|
1236
|
+
* `sf-editor-collapsed-sections`, so a website's layout is what it was.
|
|
1237
|
+
*/
|
|
1238
|
+
storageNamespace?: string;
|
|
1206
1239
|
/** Copy style / Paste style's scope and a node's look, where they are the
|
|
1207
1240
|
* layer's (0.105.0; `ScreenStyleClipboard`). Absent: the website's. */
|
|
1208
1241
|
styleClipboard?: ScreenStyleClipboard;
|
|
@@ -1323,6 +1356,9 @@ declare function useScreenPickFollowsSelection(selection: unknown): void;
|
|
|
1323
1356
|
/** Where Add puts what it adds (`add`). With no layer's, nothing: the
|
|
1324
1357
|
* screen's own Add. */
|
|
1325
1358
|
declare function useScreenAdd(): ScreenAdd;
|
|
1359
|
+
/** Where widths and folds are kept (`storageNamespace`), or undefined: the
|
|
1360
|
+
* website editor's keys. */
|
|
1361
|
+
declare function useScreenStorageNamespace(): string | undefined;
|
|
1326
1362
|
/** The layer's style clipboard (`styleClipboard`), or null: the website's. */
|
|
1327
1363
|
declare function useScreenStyleClipboard(): ScreenStyleClipboard | null;
|
|
1328
1364
|
/** Whether ⌘C / ⌘X / ⌘V reach the selected block (`nodeKeys`). They do
|
|
@@ -1354,4 +1390,4 @@ declare function useScreenCanvasTarget(): CanvasTarget | null;
|
|
|
1354
1390
|
* engine's plain rows for the selection. */
|
|
1355
1391
|
declare function useScreenInspectorPanel(): ComponentType<ScreenInspectorPanelProps>;
|
|
1356
1392
|
|
|
1357
|
-
export { type NodeDefaults, SELECTION_MODE, type ScreenAdd, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenCanvasDrag, type ScreenCanvasDragContext, type ScreenCanvasHeadProps, ScreenCanvasTargetProvider, type ScreenDevices, type ScreenDocumentOps, type ScreenDragItem, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenMenuRows, type ScreenNewNode, type ScreenNode, type ScreenNodeActions, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedBand, type ScreenPinnedNodes, type ScreenRailItem, type ScreenSelection, type ScreenSelector, type ScreenSlot, type ScreenSlotAction, type ScreenSlotMode, type ScreenStyleClipboard, type ScreenStyleDocument, type ScreenStylePastePlan, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, 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, useScreenStyleClipboard, useStandaloneScreenBridges };
|
|
1393
|
+
export { type NodeDefaults, SELECTION_MODE, type ScreenAdd, type ScreenBlockLook, type ScreenBlockRules, type ScreenBridges, type ScreenCanvas, type ScreenCanvasDrag, type ScreenCanvasDragContext, type ScreenCanvasHeadProps, ScreenCanvasTargetProvider, type ScreenDevices, type ScreenDocumentOps, type ScreenDragItem, type ScreenInspector, type ScreenInspectorMode, type ScreenInspectorPanelProps, type ScreenLeftPanel, type ScreenLeftView, type ScreenLeftViewFrame, type ScreenLeftViewRules, type ScreenMenuRows, type ScreenNewNode, type ScreenNode, type ScreenNodeActions, type ScreenNodeLevel, type ScreenNodeMaker, type ScreenPartMode, type ScreenParts, ScreenPartsProvider, type ScreenPinnedBand, type ScreenPinnedNodes, type ScreenRailItem, type ScreenSelection, type ScreenSelector, type ScreenSlot, type ScreenSlotAction, type ScreenSlotMode, type ScreenStyleClipboard, type ScreenStyleDocument, type ScreenStylePastePlan, type ScreenTree, type ScreenTreeFolds, type ScreenTreeRows, 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 };
|
|
@@ -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,useScreenStyleClipboard,useStandaloneScreenBridges}from"../../chunk-
|
|
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-ND55LTCA.js";import"../../chunk-PLVEGYK6.js";import"../../chunk-R6WTQWAC.js";import"../../chunk-U3JP4VGF.js";import"../../chunk-6WH7FA2M.js";import"../../chunk-D2BCHTQR.js";import"../../chunk-AELNNAFM.js";import"../../chunk-VCQVNPTG.js";import"../../chunk-EOJNJCMJ.js";import"../../chunk-ZFDCDJNZ.js";import"../../chunk-3EDSDPIP.js";import"../../chunk-YRLPFZW3.js";import"../../chunk-KTVH2ZRL.js";import"../../chunk-ZNS7727Y.js";import"../../chunk-QTLAVDJE.js";import"../../chunk-EWVJSRRY.js";import"../../chunk-FPOKPNO4.js";import"../../chunk-P6O363EE.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-BZ5ASXOL.js";import"../../chunk-67GNT6PF.js";import"../../chunk-ZNCEOSXO.js";import"../../chunk-L5KW4HG5.js";import"../../chunk-KRXQM65X.js";import"../../chunk-NKB3KVAB.js";
|
package/dist/screen/screen.css
CHANGED
|
@@ -206,6 +206,14 @@
|
|
|
206
206
|
box-sizing: border-box;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
/* The root takes focus without a tab stop inside another app's page (0.106.0,
|
|
210
|
+
lib/key-scope `editorRootFocus`), so a click on its ground keeps its keys in
|
|
211
|
+
hearing. It is never a place a person tabs to, so it draws no ring of its own:
|
|
212
|
+
the ring belongs to the control focus lands on. */
|
|
213
|
+
.sf-editor[tabindex="-1"]:focus {
|
|
214
|
+
outline: none;
|
|
215
|
+
}
|
|
216
|
+
|
|
209
217
|
/* Scrollbars inside the editor panels */
|
|
210
218
|
.sf-scroll::-webkit-scrollbar {
|
|
211
219
|
width: 11px;
|
|
@@ -766,6 +774,19 @@
|
|
|
766
774
|
pointer-events: none;
|
|
767
775
|
}
|
|
768
776
|
|
|
777
|
+
/* A band CUT TO THE ROOM between two blocks (0.106.0): where the gap two
|
|
778
|
+
sections leave is narrower than the pill, the chrome sizes the band to it
|
|
779
|
+
(ScreenChrome `previewGapAt`), and the band clips the pill at rest — so the
|
|
780
|
+
pill, hidden but still taking the pointer, never lies over a block. Hovered,
|
|
781
|
+
it is drawn whole. */
|
|
782
|
+
.sf-preview-gap--tight {
|
|
783
|
+
overflow: hidden;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
.sf-preview-gap--tight:hover {
|
|
787
|
+
overflow: visible;
|
|
788
|
+
}
|
|
789
|
+
|
|
769
790
|
/* ── Canvas "Add section" seams (overlay between preview sections) ──────────
|
|
770
791
|
Absolutely positioned over .sf-preview-host (the iframe's box), one band per
|
|
771
792
|
seam between top-level sections, placed at the boundary Y measured from the
|
package/dist/screen/words.d.ts
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* the Layers tree's frame round the document's nodes (0.103.0): its first
|
|
6
6
|
* row, the pinned groups, the band of sections and the band's "+". And
|
|
7
7
|
* (0.105.0) the Add panel's words (`add`), the main button's, and what the
|
|
8
|
-
* block keys say when a block is copied or will not paste.
|
|
8
|
+
* block keys say when a block is copied or will not paste. And (0.106.0) the
|
|
9
|
+
* canvas's empty-slot cell, the rail's Media button, and the left panel's
|
|
10
|
+
* accessible name and its grip's.
|
|
9
11
|
*
|
|
10
12
|
* They came with the screen from the website editor, written into the
|
|
11
13
|
* provider, the mount and the notice; a second host (the campaign designer)
|
|
@@ -130,6 +132,20 @@ type ScreenWords = {
|
|
|
130
132
|
}) => string;
|
|
131
133
|
/** The Add panel's words (0.105.0). */
|
|
132
134
|
add: ScreenAddWords;
|
|
135
|
+
/** The cell over an EMPTY slot on the canvas, after its "+" (0.106.0): the
|
|
136
|
+
* campaign designer's "Add a block". */
|
|
137
|
+
canvasAddBlock: string;
|
|
138
|
+
/** The rail's button to the media library (0.106.0). Owner ruling R21
|
|
139
|
+
* (Victor Mau, 2026-10-09): the campaign designer's rail reads Add,
|
|
140
|
+
* Layers, Email styles, Media. The panel's own head keeps its word
|
|
141
|
+
* (`EaselStrings.chrome.mediaLibrary`). */
|
|
142
|
+
railMedia: string;
|
|
143
|
+
/** The left panel's accessible name (0.106.0): the panel is a labelled
|
|
144
|
+
* `<aside>`, whichever view it shows. */
|
|
145
|
+
leftPanel: string;
|
|
146
|
+
/** The left panel's resize grip's accessible name (0.106.0). It said
|
|
147
|
+
* "Resize Sections panel", from when the tree was the panel's one view. */
|
|
148
|
+
resizeLeftPanel: string;
|
|
133
149
|
};
|
|
134
150
|
declare const DEFAULT_SCREEN_WORDS: ScreenWords;
|
|
135
151
|
|
package/dist/screen/words.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-
|
|
1
|
+
export{DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-E2O2MRZR.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-
|
|
1
|
+
export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-Z6SOLDWV.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-WK3AFPXY.js";import"../chunk-E2O2MRZR.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-H6DDIBQ4.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.js";import"../chunk-546BBOPE.js";import"../chunk-O2NLQBFX.js";
|
package/dist/strings/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-
|
|
1
|
+
import{DEFAULT_EASEL_STRINGS as r,mergeEaselStrings as n}from"../chunk-Z6SOLDWV.js";export{DEFAULT_EASEL_STRINGS,mergeEaselStrings}from"../chunk-Z6SOLDWV.js";import"../chunk-M6F6LS3H.js";import"../chunk-6WY6ZXJG.js";import"../chunk-WK3AFPXY.js";import"../chunk-E2O2MRZR.js";import"../chunk-AELNNAFM.js";import"../chunk-3EDSDPIP.js";import"../chunk-QTLAVDJE.js";import"../chunk-H6DDIBQ4.js";import"../chunk-ZJEBF4NB.js";import"../chunk-RE4LP46F.js";import"../chunk-2OAZYSWJ.js";import"../chunk-UH7IGZKF.js";import"../chunk-ZAOM6PFH.js";import"../chunk-FPOKPNO4.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};
|