efficient-easel 26.2.0 → 26.4.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 +17 -3
- package/dist/{chunk-I3KB7LH7.js → chunk-2C2IUWBH.js} +4 -4
- package/dist/chunk-4O4FSRJL.js +1 -0
- package/dist/chunk-BTQ3FJKT.js +1 -0
- package/dist/{chunk-R76XMEKT.js → chunk-C7IFWSUA.js} +6 -6
- package/dist/chunk-FWPKYUGM.js +5 -0
- package/dist/chunk-JQQFB7EZ.js +1 -0
- package/dist/{chunk-2S7PJZWH.js → chunk-LKP5V3GT.js} +1 -1
- package/dist/{chunk-FYV6GZXP.js → chunk-OKJ6KH24.js} +1 -1
- package/dist/{chunk-YDJZX2XS.js → chunk-R76RCEEC.js} +1 -1
- package/dist/{chunk-MBEUSPIN.js → chunk-SQTVXE5D.js} +4 -4
- package/dist/chunk-SS2NY7PP.js +4 -0
- package/dist/{chunk-CP6KQP5A.js → chunk-STQDOTHF.js} +1 -1
- package/dist/chunk-UJU42JM4.js +14 -0
- package/dist/{chunk-LDXYMHYW.js → chunk-UQAN4BIP.js} +1 -1
- package/dist/{chunk-ZIEINXSZ.js → chunk-XC4PINYS.js} +7 -7
- package/dist/{chunk-IHXQZDDW.js → chunk-XVQNVPIK.js} +39 -39
- package/dist/{chunk-WQXAAVCE.js → chunk-Y5M64LEB.js} +1 -1
- package/dist/chunk-YAFMYW4J.js +16 -0
- package/dist/drag/index.js +1 -1
- package/dist/draw/index.d.ts +1 -0
- package/dist/draw/index.js +1 -1
- package/dist/easel/index.d.ts +16 -1
- package/dist/easel/index.js +1 -1
- package/dist/fields/index.d.ts +5 -1
- package/dist/fields/index.js +1 -1
- package/dist/page-copy/index.js +5 -5
- package/dist/panel/index.d.ts +5 -527
- package/dist/screen/components/AddBlockRow.js +1 -1
- package/dist/screen/components/AddSidePanel.js +1 -1
- package/dist/screen/components/NodeContextMenu.js +1 -1
- package/dist/screen/components/ScreenChrome.js +1 -1
- package/dist/screen/components/ScreenMount.js +1 -1
- package/dist/screen/components/ScreenStoreProvider.js +1 -1
- package/dist/screen/components/SectionScreenShell.js +15 -15
- package/dist/screen/components/usePartBridge.js +1 -1
- package/dist/screen/index.js +1 -1
- package/dist/screen/lib/content/style-keys.d.ts +35 -0
- package/dist/screen/lib/content/style-keys.js +1 -0
- package/dist/screen/lib/document/block-set-host.js +1 -1
- package/dist/screen/lib/document/block-size-fields.d.ts +4 -0
- package/dist/screen/lib/document/block-size-fields.js +1 -1
- package/dist/screen/lib/document/box-fields.d.ts +140 -3
- package/dist/screen/lib/document/box-fields.js +1 -1
- package/dist/screen/lib/document/button-fields.d.ts +10 -18
- package/dist/screen/lib/document/button-fields.js +1 -1
- package/dist/screen/lib/document/image-fields.d.ts +4 -0
- package/dist/screen/lib/document/image-fields.js +4 -4
- package/dist/screen/lib/document/style-fields.d.ts +7 -3
- package/dist/screen/lib/document/style-fields.js +1 -1
- package/dist/screen/lib/document/use-section-ops.js +1 -1
- package/dist/screen/lib/key-scope.js +1 -1
- package/dist/screen/lib/screen-parts.js +1 -1
- package/dist/strings/index.js +1 -1
- package/dist/types-BusXrvDU.d.ts +529 -0
- package/package.json +7 -1
- package/dist/chunk-53ME3GAI.js +0 -16
- package/dist/chunk-FIH23CB7.js +0 -1
- package/dist/chunk-FT3O7X6U.js +0 -5
- package/dist/chunk-LUG22U5L.js +0 -1
- package/dist/chunk-M5IKANJ5.js +0 -13
- package/dist/chunk-ZJRMB5KN.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DocumentScreen,ScreenMount as default}from"../../chunk-
|
|
1
|
+
export{DocumentScreen,ScreenMount as default}from"../../chunk-2C2IUWBH.js";import"../../chunk-GXQCZJOP.js";import"../../chunk-R76RCEEC.js";import"../../chunk-XVQNVPIK.js";import"../../chunk-OXZDSOZV.js";import"../../chunk-7OCEPOEJ.js";import"../../chunk-JYVQ62TL.js";import"../../chunk-UMBNBCL4.js";import"../../chunk-5XL2RXFU.js";import"../../chunk-3QB2ZQXK.js";import"../../chunk-7GGNFLHT.js";import"../../chunk-22I55W37.js";import"../../chunk-LUOY3A3Q.js";import"../../chunk-OKJ6KH24.js";import"../../chunk-KCBEE2MC.js";import"../../chunk-6EDVZBUO.js";import"../../chunk-LKP5V3GT.js";import"../../chunk-UQAN4BIP.js";import"../../chunk-TOEJCZUO.js";import"../../chunk-PVBDKBJB.js";import"../../chunk-RKTF5XLP.js";import"../../chunk-BYONFJVQ.js";import"../../chunk-QZJKWKGH.js";import"../../chunk-ERR437B5.js";import"../../chunk-JIP5JNRB.js";import"../../chunk-GR3XRILS.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-6ATIYLUL.js";import"../../chunk-KO47WAWR.js";import"../../chunk-NQW6XCAY.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-5545A3PC.js";import"../../chunk-XC4PINYS.js";import"../../chunk-GDO4QJ4G.js";import"../../chunk-IZGFJWH4.js";import"../../chunk-N7E6264U.js";import"../../chunk-N3MJOHAG.js";import"../../chunk-SBVIW3KJ.js";import"../../chunk-UMDQ6CLQ.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-RUQOIQWI.js";import"../../chunk-FWPKYUGM.js";import"../../chunk-T2RINM7R.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-STQDOTHF.js";import"../../chunk-YM4UEGBV.js";import"../../chunk-SNF5764Q.js";import"../../chunk-LX23TCTP.js";import"../../chunk-XFYFKITX.js";import"../../chunk-Q3VAJMXS.js";import"../../chunk-CWELHADJ.js";import"../../chunk-6WY6ZXJG.js";import"../../chunk-5NHQ452C.js";import"../../chunk-AJ2SUSET.js";import"../../chunk-6UAEFOJ4.js";import"../../chunk-ANPOR6EY.js";import"../../chunk-R4AUZVA3.js";import"../../chunk-TCAAOYQY.js";import"../../chunk-YAFMYW4J.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-C7IFWSUA.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-ZEH6QLBH.js";import"../../chunk-WHS6Y55E.js";import"../../chunk-FM6JO4WF.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-K53PQAMP.js";import"../../chunk-ZKY45F5G.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-P5VYGWYO.js";import"../../chunk-WK3AFPXY.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-NDRZP6YR.js";import"../../chunk-H6DDIBQ4.js";import"../../chunk-VBEVZZTV.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-AJSDWWJW.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-YYD257TD.js";import"../../chunk-RE4LP46F.js";import"../../chunk-HZSZT3BE.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-Y2T3JX7K.js";import"../../chunk-KFWNGPW3.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-DX3VILZ3.js";import"../../chunk-JACEEVVF.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-SQTVXE5D.js";import"../../chunk-TQ5Y6S2X.js";import"../../chunk-3XECMGXX.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-TOKMFZPB.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";import"../../chunk-BSPCSC45.js";import"../../chunk-467WWV4I.js";import"../../chunk-TIAWIOGD.js";import"../../chunk-MGVI67QV.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ScreenStoreProvider as default}from"../../chunk-
|
|
1
|
+
export{ScreenStoreProvider as default}from"../../chunk-R76RCEEC.js";import"../../chunk-FWPKYUGM.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-TCAAOYQY.js";import"../../chunk-YAFMYW4J.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-C7IFWSUA.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-ZEH6QLBH.js";import"../../chunk-WHS6Y55E.js";import"../../chunk-FM6JO4WF.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-K53PQAMP.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-HZSZT3BE.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-Y2T3JX7K.js";import"../../chunk-KFWNGPW3.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-DX3VILZ3.js";import"../../chunk-JACEEVVF.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-3XECMGXX.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-TOKMFZPB.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import{AddBlockRow as e}from"../../chunk-
|
|
2
|
-
return
|
|
3
|
-
return J
|
|
4
|
-
/* @__PURE__ */L(
|
|
5
|
-
return
|
|
6
|
-
/* @__PURE__ */L("div",{className:"sf-section-bar",children:/* @__PURE__ */L(
|
|
7
|
-
/* @__PURE__ */
|
|
8
|
-
/* @__PURE__ */L("div",{className:"sf-panel-head",children:/* @__PURE__ */L(
|
|
9
|
-
/* @__PURE__ */L(
|
|
10
|
-
/* @__PURE__ */L(
|
|
11
|
-
return J
|
|
12
|
-
/* @__PURE__ */L(
|
|
13
|
-
/* @__PURE__ */
|
|
14
|
-
/* @__PURE__ */L("span",{className:"sf-plus sf-plus--sm",children:"+"}),
|
|
1
|
+
import{AddBlockRow as e}from"../../chunk-Y5M64LEB.js";import{scrollPreviewToSection as n,gotoPreviewSlide as o}from"../../chunk-LUOY3A3Q.js";import{useEaselUndoKeys as r}from"../../chunk-OKJ6KH24.js";import{SlotChildActionsProvider as t}from"../../chunk-KCBEE2MC.js";import{DEFAULT_PANEL_W as s}from"../../chunk-6EDVZBUO.js";import{usePartBridge as i}from"../../chunk-LKP5V3GT.js";import{useSectionOps as c}from"../../chunk-UQAN4BIP.js";import{useScreenDocument as p}from"../../chunk-BYONFJVQ.js";import"../../chunk-QZJKWKGH.js";import"../../chunk-ERR437B5.js";import"../../chunk-JIP5JNRB.js";import"../../chunk-GR3XRILS.js";import"../../chunk-RLBXE4EU.js";import"../../chunk-6ATIYLUL.js";import"../../chunk-KO47WAWR.js";import"../../chunk-NQW6XCAY.js";import"../../chunk-LOMEH6DG.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-RUQOIQWI.js";import{SELECTION_MODE as l,useScreenPinned as m,useScreenCanvasFrame as d,useScreenInspectorPanel as u,useScreenPickFollowsSelection as a,sameInspectorMode as h,useStandaloneScreenBridges as k,useScreenBlockLook as j,useScreenBlockRules as f,isSelectionMode as S,shownChildSlotsOf as A}from"../../chunk-FWPKYUGM.js";import{MediaPopup as N}from"../../chunk-T2RINM7R.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-YM4UEGBV.js";import"../../chunk-SNF5764Q.js";import"../../chunk-LX23TCTP.js";import{DEFAULT_SCREEN_WORDS as y}from"../../chunk-Q3VAJMXS.js";import{slotChildRowName as C}from"../../chunk-5NHQ452C.js";import"../../chunk-AJ2SUSET.js";import"../../chunk-6UAEFOJ4.js";import"../../chunk-ANPOR6EY.js";import"../../chunk-R4AUZVA3.js";import{slotFieldsOf as E,nestsInTree as P}from"../../chunk-TCAAOYQY.js";import{useEasel as x}from"../../chunk-YAFMYW4J.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-C7IFWSUA.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-ZEH6QLBH.js";import{LayersTree as F,Subtree as Y,TreeRow as Q,TreeRowAction as R,TreeSeam as B}from"../../chunk-WHS6Y55E.js";import"../../chunk-FM6JO4WF.js";import{DEFAULT_TREE_WORDS as M}from"../../chunk-K56YDHYQ.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-K53PQAMP.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-NDRZP6YR.js";import{DEFAULT_SAVE_WORDS as O,saveIndicator as W}from"../../chunk-H6DDIBQ4.js";import{SaveState as g,panelWidthVars as I}from"../../chunk-VBEVZZTV.js";import"../../chunk-MJM6SFD3.js";import"../../chunk-AJSDWWJW.js";import"../../chunk-2OAZYSWJ.js";import"../../chunk-YYD257TD.js";import"../../chunk-RE4LP46F.js";import"../../chunk-HZSZT3BE.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-Y2T3JX7K.js";import"../../chunk-KFWNGPW3.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-DX3VILZ3.js";import"../../chunk-JACEEVVF.js";import{useWords as T}from"../../chunk-MFIRYGHW.js";import"../../chunk-SQTVXE5D.js";import"../../chunk-TQ5Y6S2X.js";import{useTreeDrag as v}from"../../chunk-3XECMGXX.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-TOKMFZPB.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";import{zoneKey as K,parseZoneKey as b}from"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";import"../../chunk-467WWV4I.js";import"../../chunk-TIAWIOGD.js";import"../../chunk-MGVI67QV.js";import{useState as z,useRef as V,useEffect as w,useCallback as D,Fragment as J}from"react";import{Tooltip as X}from"efficient-shell/ui";import{TrashIcon as Z}from"efficient-shell/icons/efficient";import{jsxs as H,jsx as L,Fragment as U}from"react/jsx-runtime";var G=e=>n=>{n.target.closest("button, input")||e()},$={rowClick:G};function q(){const{saveState:q,readOnly:_,readOnlyReason:ee=null}=p(),ne=c(),{appState:oe,selectedItem:re,config:te}=x(e=>e),[se,ie]=z(l),ce=T("screen",y),pe=T("tree",M),le=T("save",O),{first:me,last:de,panelOf:ue}=m(),ae=ue(me),he=d(),ke=u(),je=oe.data.content?.[0]??null,fe=je?.props.id??null,Se=je?.type===me,Ae=je?.type===de,Ne=V(null),ye=V(null);r(ye),a(re?.props.id),w(()=>{fe&&Ne.current!==fe&&(Ne.current=fe,Se?ie(ae??l):re||ne.select({index:0}))},[fe,re,ne,Se]);const Ce=D(e=>ie(n=>h(n,e)?n:e),[]),Ee=k({kind:se.kind,mode:se,open:Ce,show:e=>ie(e),reveal:()=>{},select:(e,n)=>{ie(e=>h(e,n)?e:n),ne.select(e)}}),{selectNode:Pe}=i({mode:se,setMode:ie,onOpenPart:n}),xe=j(),{labelAtLevel:Fe,Icon:Ye}=xe,{canAddTo:Qe}=f(),Re=e=>Fe(e,"block",te.components[e]?.label??e),Be=e=>Fe(e,"section",Re(e)),Me=!Se&&S(se)&&re?.props.id===fe,Oe=je?Qe(je.type)?.spec??null:null,We=je&&Oe?`${je.props.id}:${Oe.slot}`:null,ge=je&&Oe&&Array.isArray(je.props[Oe.slot])?je.props[Oe.slot]:[],Ie=e=>C(e,Re,xe.plainText),Te=(e,r)=>{je&&Oe&&We&&(ie(l),Oe.slider?(o(String(je.props.id),e),ne.select({index:e,zone:We}),n(String(je.props.id))):(ne.select({index:e,zone:We}),n(r)))},ve=()=>{if(!je||!Oe||!We)return;const e=ge.length;ne.insertComponent(We,Oe.childType,e),ie(l),Oe.slider?requestAnimationFrame(()=>{o(String(je.props.id),e),ne.select({index:e,zone:We})}):ne.select({index:e,zone:We})},Ke=e=>E(te,e),be=e=>{const{parentId:n,slot:o}=b(e),r=e=>{if(!e)return null;if(String(e.props.id)===n)return e;for(const n of Ke(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(je)?.props[o];return Array.isArray(t)?t.length:0},ze=(e,n,o)=>{const r=Math.min(Math.max(o,0),be(e)),t=n<r?r-1:r;t!==n&&(ne.reorderComponent(e,n,t),ie(l),ne.select({index:t,zone:e}))},Ve=v({keyOf:e=>e.id,readOnly:Boolean(_),canDrop:(e,n)=>K(n)===e.zone&&n.index>=0&&n.index<=be(e.zone),onDrop:(e,n)=>ze(e.zone,e.index,n.index),onStep:(e,n)=>ze(e.zone,e.index,n<0?e.index-1:e.index+2)}),we=(e,n)=>/* @__PURE__ */L(B,{..._?{}:Ve.seam({place:{...b(e),index:n}})},`seam:${e}:${n}`),De=e=>xe.blockRowName(e,Re),Je=(e,o,r)=>{ie(l),ne.select({index:o,zone:e}),n(r)},Xe=(e,n,o)=>{ne.insertComponent(e,n,o),ie(l),ne.select({index:o,zone:e})},Ze=(n,o,r)=>/* @__PURE__ */L(e,{choices:r,onPick:e=>Xe(n,e,o)}),He=(e,n)=>{const o=A(te,e);const r=Qe(e.type,void 0,void 0,{id:String(e.props.id??""),data:oe.data}),t=r?.choices??null,s="footer"===r?.source?De:Ie;/* @__PURE__ */
|
|
2
|
+
return H(U,{children:[o.map(({child:e,zone:o,index:r})=>{const t=re?.props.id===e.props.id,i=P(te,e.type,n),c=s(e),p=String(e.props.id),m=()=>Je(o,r,p),{rowProps:d,...u}=Ve.row({item:{id:p,zone:o,index:r},place:{...b(o),index:r}},{onClick:G(m)});/* @__PURE__ */
|
|
3
|
+
return H(J,{children:[0===r&&we(o,0),
|
|
4
|
+
/* @__PURE__ */L(Q,{words:pe,icon:/* @__PURE__ */L(Ye,{type:e.type,size:13}),name:c,selected:t,onSelect:m,...u,actions:/* @__PURE__ */L(R,{kind:"delete",label:ce.deleteNamed({name:c}),onClick:()=>{return e=o,n=r,ne.removeComponent(e,n),ie(l),void ne.select(null);var e,n},children:/* @__PURE__ */L(Z,{size:13})}),rowProps:d}),i&&/* @__PURE__ */L(Y,{children:He(e,n+1)}),we(o,r+1)]},String(e.props.id??`${o}-${r}`))}),r&&t?Ze(`${e.props.id}:${r.slot}`,o.length,t):null]})},Le="HeroSingle"===je?.type,Ue=Boolean(je)&&(Boolean(Qe(je.type))||Ke(je.type).length>0),Ge=Boolean(je)&&(Boolean(Oe)||Ae||Se||Le||Ue);/* @__PURE__ */
|
|
5
|
+
return H("div",{ref:ye,className:"sf-editor es-editor",style:I(s),children:[
|
|
6
|
+
/* @__PURE__ */L("div",{className:"sf-section-bar",children:/* @__PURE__ */L(g,null!==ee?{tone:"off",label:ee,role:"status"}:{...W(q,le),role:"status"})}),
|
|
7
|
+
/* @__PURE__ */H("div",{className:"sf-body",children:[Ge&&je&&/* @__PURE__ */H("aside",{className:"es-sidepanel es-sidepanel--left sf-panel sf-panel--left",children:[
|
|
8
|
+
/* @__PURE__ */L("div",{className:"sf-panel-head",children:/* @__PURE__ */L(X,{content:Se?ce.headerSettings:ce.sectionSettings({name:Be(je.type)}),side:"bottom",children:/* @__PURE__ */L("button",{type:"button",className:"sf-panel-title sf-panel-title--btn "+(Me?"is-selected":""),"aria-pressed":Me,onClick:()=>{Se?ie(ae??l):(ie(l),ne.select({index:0}))},children:Be(je.type)})})}),
|
|
9
|
+
/* @__PURE__ */L(F,{className:"sf-tree sf-scroll",rootProps:Ve.rootProps(),words:pe,children:/* @__PURE__ */L(Y,{children:Se?
|
|
10
|
+
/* @__PURE__ */L(Q,{words:pe,icon:/* @__PURE__ */L(Ye,{type:"header",size:13}),name:ce.headerSettings,selected:se.kind===ae?.kind,onSelect:()=>ie(ae??l),rowProps:{onClick:G(()=>ie(ae??l))}}):Oe?/* @__PURE__ */H(U,{children:[ge.map((e,n)=>{const o=re?.props.id===e.props.id,r=Ie(e),t=String(e.props.id),s=()=>Te(n,t),{rowProps:i,...c}=Ve.row({item:{id:t,zone:We,index:n},place:{...b(We),index:n}},{onClick:G(s)});/* @__PURE__ */
|
|
11
|
+
return H(J,{children:[0===n&&we(We,0),
|
|
12
|
+
/* @__PURE__ */L(Q,{words:pe,icon:/* @__PURE__ */L(Ye,{type:e.type,size:13}),name:r,selected:o,onSelect:s,...c,actions:/* @__PURE__ */L(R,{kind:"delete",label:ce.deleteNamed({name:r}),onClick:()=>{return e=n,void(We&&(ne.removeComponent(We,e),ie(l),ne.select(null)));var e},children:/* @__PURE__ */L(Z,{size:13})}),rowProps:i}),we(We,n+1)]},String(e.props.id??n))}),
|
|
13
|
+
/* @__PURE__ */H("button",{type:"button",className:"sf-add-card",onClick:ve,children:[
|
|
14
|
+
/* @__PURE__ */L("span",{className:"sf-plus sf-plus--sm",children:"+"}),Oe.addLabel]}),fe?Ee.partRows?.(je,$):null]}):He(je,1)})})]}),
|
|
15
15
|
/* @__PURE__ */L("div",{className:"sf-center",children:/* @__PURE__ */L("div",{className:"sf-preview-host",children:/* @__PURE__ */L(he,{})})}),
|
|
16
|
-
/* @__PURE__ */L(t,{value:{selectChild:(e,n,o,r)=>"section"===
|
|
16
|
+
/* @__PURE__ */L(t,{value:{selectChild:(e,n,o,r)=>"section"===Qe(r)?.source?Te(n,o):Je(e,n,o),addChild:(e,n,o,r,t)=>"section"===Qe(t)?.source?ve():Xe(`${e}:${n}`,o,r),childRowName:Ie,blockRowName:De},children:/* @__PURE__ */L(ke,{mode:se,onOpenWebsiteSettings:Ee.openSettings??(()=>{}),onSelectNode:Pe,hideNodeActions:!0})})]}),
|
|
17
17
|
/* @__PURE__ */L(N,{})]})}export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{usePartBridge}from"../../chunk-
|
|
1
|
+
export{usePartBridge}from"../../chunk-LKP5V3GT.js";import"../../chunk-UQAN4BIP.js";import"../../chunk-FWPKYUGM.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-R4AUZVA3.js";import"../../chunk-TCAAOYQY.js";import"../../chunk-YAFMYW4J.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-C7IFWSUA.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-ZEH6QLBH.js";import"../../chunk-WHS6Y55E.js";import"../../chunk-FM6JO4WF.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-K53PQAMP.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-HZSZT3BE.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-Y2T3JX7K.js";import"../../chunk-KFWNGPW3.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-DX3VILZ3.js";import"../../chunk-JACEEVVF.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-3XECMGXX.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-TOKMFZPB.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";import"../../chunk-467WWV4I.js";import"../../chunk-TIAWIOGD.js";import"../../chunk-MGVI67QV.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-2C2IUWBH.js";import"../chunk-GXQCZJOP.js";export{ScreenStoreProvider}from"../chunk-R76RCEEC.js";import"../chunk-XVQNVPIK.js";import"../chunk-OXZDSOZV.js";import"../chunk-7OCEPOEJ.js";import"../chunk-JYVQ62TL.js";import"../chunk-UMBNBCL4.js";import"../chunk-5XL2RXFU.js";import"../chunk-3QB2ZQXK.js";import"../chunk-7GGNFLHT.js";import"../chunk-22I55W37.js";import"../chunk-LUOY3A3Q.js";import"../chunk-OKJ6KH24.js";import"../chunk-KCBEE2MC.js";import"../chunk-6EDVZBUO.js";import"../chunk-LKP5V3GT.js";import"../chunk-UQAN4BIP.js";import"../chunk-TOEJCZUO.js";import"../chunk-PVBDKBJB.js";import"../chunk-RKTF5XLP.js";import"../chunk-BYONFJVQ.js";import"../chunk-QZJKWKGH.js";import"../chunk-ERR437B5.js";import"../chunk-JIP5JNRB.js";import"../chunk-GR3XRILS.js";export{NO_DOCUMENT_ADDRESSING}from"../chunk-RLBXE4EU.js";import"../chunk-6ATIYLUL.js";import"../chunk-KO47WAWR.js";import"../chunk-NQW6XCAY.js";import"../chunk-LOMEH6DG.js";import"../chunk-5545A3PC.js";import"../chunk-XC4PINYS.js";import"../chunk-GDO4QJ4G.js";import"../chunk-IZGFJWH4.js";import"../chunk-N7E6264U.js";import"../chunk-N3MJOHAG.js";import"../chunk-SBVIW3KJ.js";import"../chunk-UMDQ6CLQ.js";import"../chunk-KCOBHPN6.js";import"../chunk-RUQOIQWI.js";export{SELECTION_MODE,ScreenCanvasTargetProvider,ScreenPartsProvider,isPinnedFirst,isPinnedLast,isSelectionMode,isSlotMode,sameInspectorMode,screenSlotsOf,shownChildSlotsOf,shownSlotFieldsOf,useScreenBlockLook,useScreenBlockRules,useScreenBridges,useScreenCanvasDrag,useScreenCanvasFrame,useScreenCanvasHead,useScreenCanvasTarget,useScreenDevices,useScreenDocumentLabel,useScreenDocumentPass,useScreenInspectorPanel,useScreenLeftView,useScreenNodeKeys,useScreenNotify,useScreenOwnerName,useScreenParts,useScreenPickFollowsSelection,useScreenPinned,useScreenSaveSwitch,useScreenStorageNamespace,useScreenStyleClipboard,useStandaloneScreenBridges}from"../chunk-FWPKYUGM.js";import"../chunk-T2RINM7R.js";import"../chunk-NCXYC7WI.js";import"../chunk-STQDOTHF.js";export{EaselSessionProvider,useEaselSession}from"../chunk-YM4UEGBV.js";export{EFFICIENT_BACKEND,activateEaselSession,backendOf,createEaselSession,currentEaselSession,deactivateEaselSession,efficientClientOpen,isEfficientBackend,provideDefaultBackend,resetAmbientEaselSession,sessionRegistry,setSessionBridgedSite,setSessionDocumentSite}from"../chunk-SNF5764Q.js";export{DETACHED_EASEL_HOST,EaselHostContext,EaselHostProvider,FIELD_DESCRIPTION_MARKER,createEaselHost,describedAs,useEaselHost,useHostEscape}from"../chunk-LX23TCTP.js";import"../chunk-XFYFKITX.js";import"../chunk-Q3VAJMXS.js";import"../chunk-CWELHADJ.js";import"../chunk-6WY6ZXJG.js";import"../chunk-5NHQ452C.js";import"../chunk-AJ2SUSET.js";import"../chunk-6UAEFOJ4.js";import"../chunk-ANPOR6EY.js";import"../chunk-R4AUZVA3.js";import"../chunk-TCAAOYQY.js";import"../chunk-YAFMYW4J.js";import"../chunk-JQQFB7EZ.js";import"../chunk-TBY3DFKS.js";import"../chunk-C7IFWSUA.js";import"../chunk-BPXEFVSQ.js";import"../chunk-YCSZAP7T.js";import"../chunk-ZEH6QLBH.js";import"../chunk-WHS6Y55E.js";import"../chunk-FM6JO4WF.js";import"../chunk-K56YDHYQ.js";import"../chunk-56ID6FKZ.js";import"../chunk-K53PQAMP.js";import"../chunk-ZKY45F5G.js";import"../chunk-FIVU2COQ.js";import"../chunk-P5VYGWYO.js";import"../chunk-WK3AFPXY.js";import"../chunk-QTHQPJWA.js";import"../chunk-NDRZP6YR.js";import"../chunk-H6DDIBQ4.js";import"../chunk-VBEVZZTV.js";import"../chunk-MJM6SFD3.js";import"../chunk-AJSDWWJW.js";import"../chunk-2OAZYSWJ.js";import"../chunk-YYD257TD.js";import"../chunk-RE4LP46F.js";import"../chunk-HZSZT3BE.js";import"../chunk-PMRN5Z3T.js";import"../chunk-Y2T3JX7K.js";import"../chunk-KFWNGPW3.js";import"../chunk-MIX7EGRG.js";import"../chunk-DX3VILZ3.js";import"../chunk-JACEEVVF.js";import"../chunk-MFIRYGHW.js";import"../chunk-SQTVXE5D.js";import"../chunk-TQ5Y6S2X.js";import"../chunk-3XECMGXX.js";import"../chunk-P2VEMZH5.js";import"../chunk-TOKMFZPB.js";import"../chunk-FR7EEKFF.js";import"../chunk-7UFKEX72.js";import"../chunk-EUFDQ4KL.js";import"../chunk-KXM6YRG2.js";import"../chunk-BSPCSC45.js";import"../chunk-467WWV4I.js";import"../chunk-TIAWIOGD.js";import"../chunk-MGVI67QV.js";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Style keys — the stored keys of the Button's style rows and the corners a
|
|
3
|
+
* Corners row keeps, ONE copy for both editors and for the page that draws
|
|
4
|
+
* them (plan [PLAN] Fill Editor Gaps Both Ways, step E-R).
|
|
5
|
+
*
|
|
6
|
+
* The rows are `screen/lib/document/button-fields` (`buttonFieldSet`) and
|
|
7
|
+
* `screen/lib/document/style-fields` (`cornersField`); they import these
|
|
8
|
+
* objects and re-export them under the names hosts already import. A host's
|
|
9
|
+
* published render code reads the same objects through `efficient-easel/draw`,
|
|
10
|
+
* so it keeps no copy of its own.
|
|
11
|
+
*
|
|
12
|
+
* PURE: no React, no import. What each value DRAWS stays the host's.
|
|
13
|
+
*/
|
|
14
|
+
/** The keys the Button's style rows store, as the website stores them. */
|
|
15
|
+
declare const BUTTON_STYLE_KEYS: {
|
|
16
|
+
readonly fill: "buttonColor";
|
|
17
|
+
readonly fillOpacity: "buttonFillOpacity";
|
|
18
|
+
readonly border: "buttonBorder";
|
|
19
|
+
readonly text: "buttonTextColor";
|
|
20
|
+
readonly corners: "buttonCorners";
|
|
21
|
+
readonly cornerSides: "buttonCornerSides";
|
|
22
|
+
};
|
|
23
|
+
/** The Button's own padding keys, as the website stores them. */
|
|
24
|
+
declare const BUTTON_PAD_KEYS: {
|
|
25
|
+
readonly top: "buttonPaddingTop";
|
|
26
|
+
readonly right: "buttonPaddingRight";
|
|
27
|
+
readonly bottom: "buttonPaddingBottom";
|
|
28
|
+
readonly left: "buttonPaddingLeft";
|
|
29
|
+
};
|
|
30
|
+
/** The corners in the order they are stored. Absence means all four. */
|
|
31
|
+
declare const CORNER_SIDES: readonly ["tl", "tr", "br", "bl"];
|
|
32
|
+
/** One corner. */
|
|
33
|
+
type CornerSide = (typeof CORNER_SIDES)[number];
|
|
34
|
+
|
|
35
|
+
export { BUTTON_PAD_KEYS, BUTTON_STYLE_KEYS, CORNER_SIDES, type CornerSide };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{BUTTON_PAD_KEYS,BUTTON_STYLE_KEYS,CORNER_SIDES}from"../../../chunk-BTQ3FJKT.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buttonFieldSet as e}from"../../../chunk-
|
|
1
|
+
import{buttonFieldSet as e}from"../../../chunk-4O4FSRJL.js";import"../../../chunk-SS2NY7PP.js";import{boxFieldSet as o}from"../../../chunk-UJU42JM4.js";import"../../../chunk-CLAADE4J.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-7GGNFLHT.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-Q3VAJMXS.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-BTQ3FJKT.js";import{phoneKey as t}from"../../../chunk-E52W3M5I.js";import{foldMetaOf as n}from"../../../chunk-ANPOR6EY.js";import"../../../chunk-YAFMYW4J.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-FM6JO4WF.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-HZSZT3BE.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-TOKMFZPB.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";function s(e){return Object.keys(e).filter(o=>{return t=e[o],!(null!==n(t));var t})}function r(e,o){const t=o.off??{},s=o.keys??{};for(const[e,o]of Object.entries(t))if(!o.trim())throw new Error(`blockSetFor: off row "${e}" needs a reason.`);for(const o of[...Object.keys(t),...Object.keys(s)]){if(!Object.hasOwn(e,o))throw new Error(`blockSetFor: the set has no row "${o}".`);if(Object.hasOwn(t,o)&&Object.hasOwn(s,o))throw new Error(`blockSetFor: row "${o}" is both off and renamed.`)}const r={};let i=[];for(const[o,c]of Object.entries(e)){const a=n(c);if(a){i=i.filter(([,e])=>n(e).level<a.level),i.push([o,c]);continue}if(Object.hasOwn(t,o))continue;for(const[e,o]of i)r[e]=o;i=[];const u=Object.hasOwn(s,o)?s[o]:o;if(Object.hasOwn(r,u)||u!==o&&Object.hasOwn(e,u))throw new Error(`blockSetFor: renamed key "${u}" is already a row.`);r[u]=c}return r}function i(e){const o=e.build();r(o,e.email),r(o,e.website);const t=s(o),n=e=>new Set(Object.keys(e.off??{})),i=n(e.email),c=n(e.website),a=[];for(const o of t)i.has(o)&&!c.has(o)&&a.push({row:o,only:"website",reason:e.email.off[o]}),c.has(o)&&!i.has(o)&&a.push({row:o,only:"email",reason:e.website.off[o]});return a}var c=["button","image","box","divider","logo","text","section","social"],a={useFill:()=>"",useText:()=>"",useBorder:()=>({width:0,color:""}),useCorners:()=>0},u={button:{build:()=>e({follows:a,padding:{fallback:{}}}),email:{editor:"email"},website:{editor:"website"}},box:{build:()=>o(),email:{editor:"email",keys:{gap:"itemGap"},off:Object.fromEntries(["sectionPaddingTop","sectionPaddingRight","sectionPaddingBottom","sectionPaddingLeft"].map(e=>[t(e),"email: a Banner Box draws in the desktop view only (admin inBannerFields)"]))},website:{editor:"website"}}},h={button:"the set is in easel; admin (A-B) and web-builder (W-B) still build their own rows (plan group 1)",image:"no easel set yet (plan group 2)",box:"the set is in easel and the email Banner Box imports it; the website Flex builds its own rows (plan group 3)",divider:"no easel set yet (plan group 4)",logo:"no easel set yet (plan group 5)",text:"no easel set yet (plan group 6)",section:"no easel set yet (plan group 7)",social:"no easel set yet (plan group 7)"};export{c as BLOCK_KINDS,h as BLOCK_SETS_STILL_TWO_COPIES,u as BLOCK_SET_PAIRS,i as blockSetDifferences,r as blockSetFor,s as blockSetRowKeys};
|
|
@@ -3,6 +3,10 @@ import { PhoneValueAccess, BoxFieldSay, BoxField } from './box-fields.js';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'efficient-shell/format';
|
|
5
5
|
import 'efficient-shell/ui';
|
|
6
|
+
import '../../../types-BusXrvDU.js';
|
|
7
|
+
import '../../../wordFit-7XpmhcaW.js';
|
|
8
|
+
import '../../../words-BrN08Fup.js';
|
|
9
|
+
import '../../../buckets-_MGDYJlb.js';
|
|
6
10
|
import '../../../ScreenDocumentContext-DPW_6gOC.js';
|
|
7
11
|
import '../../../blocks/index.js';
|
|
8
12
|
import '../../../types-BljCVdzR.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{noGlyph as t,boxFieldBuilders as i,PHONE_KEY_ACCESS as n,group as o,phoneTwinFields as r}from"../../../chunk-
|
|
1
|
+
import{noGlyph as t,boxFieldBuilders as i,PHONE_KEY_ACCESS as n,group as o,phoneTwinFields as r}from"../../../chunk-UJU42JM4.js";import"../../../chunk-CLAADE4J.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-7GGNFLHT.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-Q3VAJMXS.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";import{BLOCK_WIDTH_LIMIT as h,BLOCK_FIXED_WIDTH as m,BLOCK_WIDTH_FIT_POINTS as e,BLOCK_WIDTH_FIT_DEFAULT as s,TEXT_FIT_MIN_FONT as c,TEXT_FIT_POINTS as p}from"../../../chunk-X3EMJ2EX.js";import"../../../chunk-E52W3M5I.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-YAFMYW4J.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-FM6JO4WF.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-HZSZT3BE.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-TOKMFZPB.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";import{WidthIcon as u,TextLinesIcon as k}from"efficient-shell/icons/efficient";import{jsx as j}from"react/jsx-runtime";var F=t("a value or limit row under the Width and text-fit choices; drawn bare in the approved design (owner 2026-10-29, c25 row 4); no shell glyph names a min, max or fixed width");function d(t={}){const d=i(t.say),a=t.phone??n,x=(t,i)=>r(t,i,a),E=(t,i,n,o,r)=>x(t,d.slider(i,F,n.min,n.max,n.step,o,"px",{clear:r?{hint:o,emptyLabel:r}:{hint:o}}));return{size:{_gBlockSize:o("Size"),...x("widthFit",d.segmented("Width",/* @__PURE__ */j(u,{}),[...e],s)),...E("width","Fixed width",m,m.fallback),...E("minWidth","Min width",h,h.min,"None"),...E("maxWidth","Content width",h,h.min,"None")},text:t.textFit?{_gText:o("Text"),...x("textFit",d.segmented("When the text does not fit",/* @__PURE__ */j(k,{}),[...p],t.textFit)),...E("minFont","Min font size",c,c.fallback)}:{}}}export{d as blockSizeFieldSet};
|
|
@@ -2,7 +2,11 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactElement, ReactNode } from 'react';
|
|
3
3
|
import { ShowWhenRule } from 'efficient-shell/format';
|
|
4
4
|
import { TextAlign, PositionValue, SidesValue } from 'efficient-shell/ui';
|
|
5
|
+
import { S as SettingsDefaultResetProps } from '../../../types-BusXrvDU.js';
|
|
5
6
|
export { F as FIELD_DESCRIPTION_MARKER, o as describedAs } from '../../../ScreenDocumentContext-DPW_6gOC.js';
|
|
7
|
+
import '../../../wordFit-7XpmhcaW.js';
|
|
8
|
+
import '../../../words-BrN08Fup.js';
|
|
9
|
+
import '../../../buckets-_MGDYJlb.js';
|
|
6
10
|
import '../../../blocks/index.js';
|
|
7
11
|
import '../../../types-BljCVdzR.js';
|
|
8
12
|
import '../../../data/index.js';
|
|
@@ -25,6 +29,12 @@ import '../shared-section-types.js';
|
|
|
25
29
|
|
|
26
30
|
/** A host's word for an English word or row label a builder draws. */
|
|
27
31
|
type BoxFieldSay = (english: string) => string;
|
|
32
|
+
/**
|
|
33
|
+
* What a phone row says it follows: "{value} on desktop", in the host's words.
|
|
34
|
+
* The ONE home of that sentence: every twin row (a slider, a strip, a list, a
|
|
35
|
+
* colour, a border) says it through here.
|
|
36
|
+
*/
|
|
37
|
+
declare function onDesktopWords(say: BoxFieldSay, shown: string): string;
|
|
28
38
|
/** A choice's option, as a builder is given it and as it rides the field. */
|
|
29
39
|
interface SelectOption {
|
|
30
40
|
value: string;
|
|
@@ -66,9 +76,23 @@ type BoxFieldRenderProps<V> = {
|
|
|
66
76
|
* that stores nothing passes `undefined`.
|
|
67
77
|
*/
|
|
68
78
|
follows?: unknown;
|
|
79
|
+
/**
|
|
80
|
+
* Where a phone twin's values are kept ({@link phoneTwinFields} passes its
|
|
81
|
+
* access). A row that reads or writes a SIBLING key too (a colour's
|
|
82
|
+
* opacity) goes through this, so the twin never touches a desktop key.
|
|
83
|
+
*/
|
|
84
|
+
twinAccess?: PhoneValueAccess;
|
|
69
85
|
id?: string;
|
|
70
86
|
name?: string;
|
|
71
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* A LIVE READ a row makes (twins plan E2b): called ONCE per render, inside the
|
|
90
|
+
* row's own component, so it may call React hooks — a host's live styles, the
|
|
91
|
+
* open document. Every live option of a builder is one of these and is named
|
|
92
|
+
* `use…` (`useHint`, `useMax`, `useFallback`). A row given none draws as it
|
|
93
|
+
* always did, with no component of its own.
|
|
94
|
+
*/
|
|
95
|
+
type RowRead<T> = (props: BoxFieldRenderProps<unknown>) => T;
|
|
72
96
|
/** One row of the set: a custom field, drawn by its own render. */
|
|
73
97
|
type BoxField<V> = {
|
|
74
98
|
type: 'custom';
|
|
@@ -262,6 +286,18 @@ declare const PHONE_KEY_ACCESS: PhoneValueAccess;
|
|
|
262
286
|
* `_<objectKey>_<key>`, a key nothing stores.
|
|
263
287
|
*/
|
|
264
288
|
declare function phoneObjectAccess(objectKey: string): PhoneValueAccess;
|
|
289
|
+
/** What {@link phoneTwinFields} is told past the row and where the phone value
|
|
290
|
+
* is kept. */
|
|
291
|
+
interface PhoneTwinOptions<V> {
|
|
292
|
+
/**
|
|
293
|
+
* The row the phone view draws, when it is not the desktop's row: a phone
|
|
294
|
+
* that takes a different range or unit (a divider's length is a % of the
|
|
295
|
+
* column on a phone, px or % on the desktop). It is still given `follows`;
|
|
296
|
+
* a row that must not rest on the desktop value says so itself
|
|
297
|
+
* (`slider`'s `clear.phoneFollows: false`). Left out: the desktop's row.
|
|
298
|
+
*/
|
|
299
|
+
phoneRow?: BoxField<V>;
|
|
300
|
+
}
|
|
265
301
|
/**
|
|
266
302
|
* A row WITH its phone value (twins plan E2: "phone values in phone view, on
|
|
267
303
|
* the same row", Lewis 2026-10-27): the row under `key` (Desktop view only)
|
|
@@ -269,7 +305,7 @@ declare function phoneObjectAccess(objectKey: string): PhoneValueAccess;
|
|
|
269
305
|
* same row given `follows`, the desktop value: empty, it rests on that and
|
|
270
306
|
* says so. A clear writes nothing — never a copy of the desktop value.
|
|
271
307
|
*/
|
|
272
|
-
declare function phoneTwinFields<V>(key: string, row: BoxField<V>, access?: PhoneValueAccess): Record<string, BoxField<V>>;
|
|
308
|
+
declare function phoneTwinFields<V>(key: string, row: BoxField<V>, access?: PhoneValueAccess, more?: PhoneTwinOptions<V>): Record<string, BoxField<V>>;
|
|
273
309
|
/** A slider's label-line mark, as a function of the STORED value. */
|
|
274
310
|
type SliderAction = (value: unknown, onChange: (v: unknown) => void) => ReactNode;
|
|
275
311
|
/**
|
|
@@ -284,10 +320,23 @@ interface SliderClear {
|
|
|
284
320
|
/** The number an empty value follows. A function is given the render's
|
|
285
321
|
* props, for a hint that is live: it rides the field object (the way
|
|
286
322
|
* `currentValue` does), so it stays a pure read. */
|
|
287
|
-
hint
|
|
323
|
+
hint?: number | ((props: BoxFieldRenderProps<unknown>) => number);
|
|
324
|
+
/**
|
|
325
|
+
* The number an empty value follows, read LIVE through a hook
|
|
326
|
+
* ({@link RowRead}): the campaign's own style size, a section's gap. Wins
|
|
327
|
+
* over `hint`. Neither given: the slider's `fallback`.
|
|
328
|
+
*/
|
|
329
|
+
useHint?: RowRead<number>;
|
|
288
330
|
/** The word the empty box shows instead of the number, when what it
|
|
289
331
|
* follows is not one ("Auto": a picture's own height). */
|
|
290
332
|
emptyLabel?: string;
|
|
333
|
+
/**
|
|
334
|
+
* Whether this row's PHONE TWIN rests on the desktop value. Default true.
|
|
335
|
+
* `false`: an empty phone value is the row's own empty state (`hint`,
|
|
336
|
+
* `useHint`, `emptyLabel`), whatever the desktop stores — a picture whose
|
|
337
|
+
* phone height is its natural height ("Auto"), not the desktop's band.
|
|
338
|
+
*/
|
|
339
|
+
phoneFollows?: boolean;
|
|
291
340
|
}
|
|
292
341
|
/** What {@link boxFieldBuilders}' `slider` is told past its numbers. */
|
|
293
342
|
interface SliderOptions {
|
|
@@ -296,6 +345,53 @@ interface SliderOptions {
|
|
|
296
345
|
clear?: SliderClear;
|
|
297
346
|
/** The typed box's ceiling, when a typed number may go past the track. */
|
|
298
347
|
inputMax?: number;
|
|
348
|
+
/**
|
|
349
|
+
* The track's ceiling, read LIVE through a hook ({@link RowRead}): an
|
|
350
|
+
* Image's width stops at the content width the page has now. Wins over
|
|
351
|
+
* `max`; the typed box takes `inputMax` when that is higher.
|
|
352
|
+
*/
|
|
353
|
+
useMax?: RowRead<number>;
|
|
354
|
+
/**
|
|
355
|
+
* The row's description line, under its name: English, which the row
|
|
356
|
+
* says through the host's `say`, as it does its label.
|
|
357
|
+
* A function is a pure read of the render's props: a line for the phone
|
|
358
|
+
* twin only (`'follows' in props`), or for one state of it.
|
|
359
|
+
*/
|
|
360
|
+
hint?: string | ((props: BoxFieldRenderProps<unknown>) => string | undefined);
|
|
361
|
+
}
|
|
362
|
+
/** What {@link SliderControl} draws: a slider and its typed box, for a row
|
|
363
|
+
* that holds more than one (a border's width, one line of several). */
|
|
364
|
+
interface SliderControlProps {
|
|
365
|
+
/** The number, or nothing stored (`undefined` / `null`): the control is
|
|
366
|
+
* empty and follows `hint`. */
|
|
367
|
+
value: number | null | undefined;
|
|
368
|
+
/** A number, or `undefined` for a clear (the box emptied, or Reset). A
|
|
369
|
+
* number already held is never written again. */
|
|
370
|
+
onChange: (next: number | undefined) => void;
|
|
371
|
+
min: number;
|
|
372
|
+
max: number;
|
|
373
|
+
/** Default 1. */
|
|
374
|
+
step?: number;
|
|
375
|
+
/** The unit after the number: `px`, `%`, `×`. */
|
|
376
|
+
unit?: string;
|
|
377
|
+
/** The number an empty control follows, shown in grey; the track rests on
|
|
378
|
+
* it. With `hint` or `emptyLabel` the control may be emptied. */
|
|
379
|
+
hint?: number;
|
|
380
|
+
/** The word the empty box shows instead of a number ("Auto"). */
|
|
381
|
+
emptyLabel?: string;
|
|
382
|
+
/** The typed box's ceiling, when a typed number may go past the track. */
|
|
383
|
+
inputMax?: number;
|
|
384
|
+
readOnly?: boolean;
|
|
385
|
+
/** The control's accessible name, in the host's words. */
|
|
386
|
+
label: string;
|
|
387
|
+
/** The word on the control's own line, which carries Default / Reset at
|
|
388
|
+
* its end ("Width", "Top and bottom"). Left out: `label`. */
|
|
389
|
+
caption?: string;
|
|
390
|
+
/** What Reset's tooltip says it goes back to. Default: the hint and unit,
|
|
391
|
+
* or `emptyLabel`. */
|
|
392
|
+
detail?: string;
|
|
393
|
+
/** The ↺'s words (`useEaselStrings().panel`). English when left out. */
|
|
394
|
+
resetWords?: SettingsDefaultResetProps['words'];
|
|
299
395
|
}
|
|
300
396
|
/** What {@link boxFieldBuilders}' `segmented` is told past its options. */
|
|
301
397
|
interface SegmentedOptions<V> {
|
|
@@ -306,6 +402,14 @@ interface SegmentedOptions<V> {
|
|
|
306
402
|
* phone rests on the desktop value itself. Display only: it never writes.
|
|
307
403
|
*/
|
|
308
404
|
phoneRest?: (desktop: unknown) => V | undefined;
|
|
405
|
+
/**
|
|
406
|
+
* OPT-IN, for a phone twin whose strip HAS a "no choice" answer of its own
|
|
407
|
+
* (Match desktop): the word (English, said through the host's `say`) for
|
|
408
|
+
* the answer the desktop gives, from the desktop value. Given, the label
|
|
409
|
+
* line carries Default / Reset and names it ("Center on desktop"); left
|
|
410
|
+
* out, the row draws exactly as it did before (no ↺).
|
|
411
|
+
*/
|
|
412
|
+
followsLabel?: (desktop: unknown) => string | undefined;
|
|
309
413
|
}
|
|
310
414
|
/** What {@link directionField} is told: the directions this container offers,
|
|
311
415
|
* in the order the strip draws them, and the one an absent value means. */
|
|
@@ -377,6 +481,20 @@ type SidesPaddingOptions = {
|
|
|
377
481
|
phone?: boolean;
|
|
378
482
|
/** What an EMPTY side draws, per side, shown in grey (default 0). */
|
|
379
483
|
fallback?: Partial<Record<PadSide, number>>;
|
|
484
|
+
/**
|
|
485
|
+
* What an empty side draws, read LIVE through a hook ({@link RowRead}): the
|
|
486
|
+
* campaign's Button padding, a button's built-in inset, a section's own
|
|
487
|
+
* band. A side it names wins over `fallback`; a side it leaves out (or
|
|
488
|
+
* `undefined`) rests on `fallback`. It is a React hook, called by the row
|
|
489
|
+
* once per render: give it ALWAYS or NEVER for one field set. A read that
|
|
490
|
+
* needs no props (`() => live`) fits as it is.
|
|
491
|
+
*/
|
|
492
|
+
useFallback?: RowRead<Partial<Record<PadSide, number>> | undefined>;
|
|
493
|
+
/** The row's word (default `Padding`): `Button padding`. English, which the
|
|
494
|
+
* row says through the host's `say`, as every builder's label. */
|
|
495
|
+
label?: string;
|
|
496
|
+
/** The row's glyph (default the all-sides padding glyph). */
|
|
497
|
+
icon?: ReactElement;
|
|
380
498
|
/** The `Padding` group head before the row (default true). */
|
|
381
499
|
group?: boolean;
|
|
382
500
|
min?: number;
|
|
@@ -427,6 +545,14 @@ interface AlignmentOptions {
|
|
|
427
545
|
* desktop glyph (a word does not fit a 288px strip beside the other glyphs)
|
|
428
546
|
* and named by the word. It takes the place of `inherit` when both are set. */
|
|
429
547
|
phone?: boolean;
|
|
548
|
+
/**
|
|
549
|
+
* Where the pair keeps the PHONE value ({@link PhoneValueAccess}): the
|
|
550
|
+
* email designer's `mobile.<key>` ({@link phoneObjectAccess}). Given, the
|
|
551
|
+
* phone row is a {@link phoneTwinFields} twin: it reads the desktop answer
|
|
552
|
+
* and names it on its Default / Reset line. Left out: today's pair, the
|
|
553
|
+
* phone row on `phoneKey(key)`, drawn straight.
|
|
554
|
+
*/
|
|
555
|
+
access?: PhoneValueAccess;
|
|
430
556
|
}
|
|
431
557
|
/** What a host says about a Block alignment row: where the block sits in its
|
|
432
558
|
* parent. Always Left / Center / Right (the three places a block can stand). */
|
|
@@ -440,6 +566,8 @@ interface BlockAlignmentOptions {
|
|
|
440
566
|
inherit?: string;
|
|
441
567
|
/** This is the phone's row: its first answer is Match desktop, as a glyph. */
|
|
442
568
|
phone?: boolean;
|
|
569
|
+
/** Where the pair keeps the phone value, as {@link AlignmentOptions.access}. */
|
|
570
|
+
access?: PhoneValueAccess;
|
|
443
571
|
}
|
|
444
572
|
/**
|
|
445
573
|
* The segmented strip: easel's `SettingsSegmented`, with an option's `value`
|
|
@@ -473,6 +601,15 @@ declare function placementGridView(say: BoxFieldSay, { label, value, onChange, p
|
|
|
473
601
|
onChange: (next: string) => void;
|
|
474
602
|
points: readonly PlacementPoint[];
|
|
475
603
|
}): react.JSX.Element;
|
|
604
|
+
/**
|
|
605
|
+
* THE SLIDER CONTROL, BARE (twins plan E2b): what `slider()` draws, for a
|
|
606
|
+
* row that holds more than one control — a border's width under its caption,
|
|
607
|
+
* one of a coupon's lines, a column's look. Its line carries the caption (or
|
|
608
|
+
* `label`) and Default / Reset; the slider and its typed box sit under it.
|
|
609
|
+
* Hook-free: a host may call it as a function inside a field's render. It is
|
|
610
|
+
* `slider()`'s own drawing ({@link sliderParts}), never a second slider.
|
|
611
|
+
*/
|
|
612
|
+
declare function SliderControl({ caption, label, value, hint, emptyLabel, ...rest }: SliderControlProps): ReactElement;
|
|
476
613
|
/**
|
|
477
614
|
* Every builder, speaking the host's words: `say` answers the host's word for
|
|
478
615
|
* each English word a row draws. Bind it ONCE, where the host's controls are
|
|
@@ -589,4 +726,4 @@ declare const boxFieldSet: (opts?: BoxFieldSetOptions) => {
|
|
|
589
726
|
_gNudge: BoxField<undefined>;
|
|
590
727
|
};
|
|
591
728
|
|
|
592
|
-
export { ANCHOR_LABELS, type AlignmentOptions, AlignmentStrip, BOX_ALIGN_POINTS, BOX_DIRECTIONS, BOX_DIRECTION_LABEL, BOX_GAP, BOX_JUSTIFY_POINTS, BOX_NUDGE_LIMIT, BOX_PLACEMENTS, BOX_PLACEMENT_DEFAULT, BOX_WIDTH, BOX_WRAP_LABEL, BOX_WRAP_POINTS, type BlockAlignmentOptions, BlockAlignmentStrip, type BoxAlign, type BoxField, type BoxFieldRenderProps, type BoxFieldSay, type BoxFieldSetOptions, type BoxFlexRowOptions, type BoxJustify, type BoxPlacement, type BoxWrap, type DirectionFieldOptions, FLAT_ACCESS, type GapFieldOptions, OPEN_PLACEMENT_POINTS, PHONE_KEY_ACCESS, type PhoneValueAccess, type PlacementFieldOptions, PlacementGridView, type PlacementPoint, type PositionOptions, SIDE_PAD_KEYS, Segmented, type SegmentedOptions, type SelectField, type SelectOption, type SidesPaddingOptions, type SliderAction, type SliderClear, type SliderOptions, type ValueAccess, alignmentField, alignmentFields, blockAlignmentField, blockAlignmentFields, boxAlignField, boxFieldBuilders, boxFieldSet, boxJustifyField, boxWrapField, directionField, gapField, group, iconOf, isNoGlyph, noGlyph, normaliseBoxPlacement, objectAccess, phoneObjectAccess, phoneTwinFields, placementField, positionFields, positionPatch, section, segmented, select, sharedStyleKinds, sidesFromObject, sidesPaddingFields, sidesPaddingPatch, sidesToObject, slider, useAccessPatch, useAccessValue };
|
|
729
|
+
export { ANCHOR_LABELS, type AlignmentOptions, AlignmentStrip, BOX_ALIGN_POINTS, BOX_DIRECTIONS, BOX_DIRECTION_LABEL, BOX_GAP, BOX_JUSTIFY_POINTS, BOX_NUDGE_LIMIT, BOX_PLACEMENTS, BOX_PLACEMENT_DEFAULT, BOX_WIDTH, BOX_WRAP_LABEL, BOX_WRAP_POINTS, type BlockAlignmentOptions, BlockAlignmentStrip, type BoxAlign, type BoxField, type BoxFieldRenderProps, type BoxFieldSay, type BoxFieldSetOptions, type BoxFlexRowOptions, type BoxJustify, type BoxPlacement, type BoxWrap, type DirectionFieldOptions, FLAT_ACCESS, type GapFieldOptions, OPEN_PLACEMENT_POINTS, PHONE_KEY_ACCESS, type PhoneTwinOptions, type PhoneValueAccess, type PlacementFieldOptions, PlacementGridView, type PlacementPoint, type PositionOptions, type RowRead, SIDE_PAD_KEYS, Segmented, type SegmentedOptions, type SelectField, type SelectOption, type SidesPaddingOptions, type SliderAction, type SliderClear, SliderControl, type SliderControlProps, type SliderOptions, type ValueAccess, alignmentField, alignmentFields, blockAlignmentField, blockAlignmentFields, boxAlignField, boxFieldBuilders, boxFieldSet, boxJustifyField, boxWrapField, directionField, gapField, group, iconOf, isNoGlyph, noGlyph, normaliseBoxPlacement, objectAccess, onDesktopWords, phoneObjectAccess, phoneTwinFields, placementField, positionFields, positionPatch, section, segmented, select, sharedStyleKinds, sidesFromObject, sidesPaddingFields, sidesPaddingPatch, sidesToObject, slider, useAccessPatch, useAccessValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ANCHOR_LABELS,AlignmentStrip,BOX_ALIGN_POINTS,BOX_DIRECTIONS,BOX_DIRECTION_LABEL,BOX_GAP,BOX_JUSTIFY_POINTS,BOX_NUDGE_LIMIT,BOX_PLACEMENTS,BOX_PLACEMENT_DEFAULT,BOX_WIDTH,BOX_WRAP_LABEL,BOX_WRAP_POINTS,BlockAlignmentStrip,FLAT_ACCESS,OPEN_PLACEMENT_POINTS,PHONE_KEY_ACCESS,PlacementGridView,SIDE_PAD_KEYS,Segmented,alignmentField,alignmentFields,blockAlignmentField,blockAlignmentFields,boxAlignField,boxFieldBuilders,boxFieldSet,boxJustifyField,boxWrapField,directionField,gapField,group,iconOf,isNoGlyph,noGlyph,normaliseBoxPlacement,objectAccess,phoneObjectAccess,phoneTwinFields,placementField,positionFields,positionPatch,section,segmented,select,sharedStyleKinds,sidesFromObject,sidesPaddingFields,sidesPaddingPatch,sidesToObject,slider,useAccessPatch,useAccessValue}from"../../../chunk-
|
|
1
|
+
export{ANCHOR_LABELS,AlignmentStrip,BOX_ALIGN_POINTS,BOX_DIRECTIONS,BOX_DIRECTION_LABEL,BOX_GAP,BOX_JUSTIFY_POINTS,BOX_NUDGE_LIMIT,BOX_PLACEMENTS,BOX_PLACEMENT_DEFAULT,BOX_WIDTH,BOX_WRAP_LABEL,BOX_WRAP_POINTS,BlockAlignmentStrip,FLAT_ACCESS,OPEN_PLACEMENT_POINTS,PHONE_KEY_ACCESS,PlacementGridView,SIDE_PAD_KEYS,Segmented,SliderControl,alignmentField,alignmentFields,blockAlignmentField,blockAlignmentFields,boxAlignField,boxFieldBuilders,boxFieldSet,boxJustifyField,boxWrapField,directionField,gapField,group,iconOf,isNoGlyph,noGlyph,normaliseBoxPlacement,objectAccess,onDesktopWords,phoneObjectAccess,phoneTwinFields,placementField,positionFields,positionPatch,section,segmented,select,sharedStyleKinds,sidesFromObject,sidesPaddingFields,sidesPaddingPatch,sidesToObject,slider,useAccessPatch,useAccessValue}from"../../../chunk-UJU42JM4.js";import"../../../chunk-CLAADE4J.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-7GGNFLHT.js";import"../../../chunk-22I55W37.js";export{FIELD_DESCRIPTION_MARKER,describedAs}from"../../../chunk-LX23TCTP.js";import"../../../chunk-Q3VAJMXS.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-E52W3M5I.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-YAFMYW4J.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-FM6JO4WF.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-HZSZT3BE.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-TOKMFZPB.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { ValueAccess, SidesPaddingOptions, PhoneValueAccess, BoxFieldSay, BoxField } from './box-fields.js';
|
|
2
2
|
import { ColorPreset } from 'efficient-shell/ui';
|
|
3
|
+
export { BUTTON_PAD_KEYS, BUTTON_STYLE_KEYS } from '../content/style-keys.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
import 'efficient-shell/format';
|
|
6
|
+
import '../../../types-BusXrvDU.js';
|
|
7
|
+
import '../../../wordFit-7XpmhcaW.js';
|
|
8
|
+
import '../../../words-BrN08Fup.js';
|
|
9
|
+
import '../../../buckets-_MGDYJlb.js';
|
|
5
10
|
import '../../../ScreenDocumentContext-DPW_6gOC.js';
|
|
6
11
|
import '../../../blocks/index.js';
|
|
7
12
|
import '../../../types-BljCVdzR.js';
|
|
@@ -23,22 +28,6 @@ import '../section-template-types.js';
|
|
|
23
28
|
import './content-tree.js';
|
|
24
29
|
import '../shared-section-types.js';
|
|
25
30
|
|
|
26
|
-
/** The keys the Button's style rows store, as the website stores them. */
|
|
27
|
-
declare const BUTTON_STYLE_KEYS: {
|
|
28
|
-
readonly fill: "buttonColor";
|
|
29
|
-
readonly fillOpacity: "buttonFillOpacity";
|
|
30
|
-
readonly border: "buttonBorder";
|
|
31
|
-
readonly text: "buttonTextColor";
|
|
32
|
-
readonly corners: "buttonCorners";
|
|
33
|
-
readonly cornerSides: "buttonCornerSides";
|
|
34
|
-
};
|
|
35
|
-
/** The Button's own padding keys, as the website stores them. */
|
|
36
|
-
declare const BUTTON_PAD_KEYS: {
|
|
37
|
-
readonly top: "buttonPaddingTop";
|
|
38
|
-
readonly right: "buttonPaddingRight";
|
|
39
|
-
readonly bottom: "buttonPaddingBottom";
|
|
40
|
-
readonly left: "buttonPaddingLeft";
|
|
41
|
-
};
|
|
42
31
|
/** What a host tells {@link buttonFieldSet}. Values only: every host gets
|
|
43
32
|
* every row. */
|
|
44
33
|
interface ButtonFieldSetOptions {
|
|
@@ -63,7 +52,10 @@ interface ButtonFieldSetOptions {
|
|
|
63
52
|
style?: ValueAccess;
|
|
64
53
|
/** The Padding row. `fallback` is the HOST's: what an empty side draws
|
|
65
54
|
* (the website's Btn classes, the campaign's Button padding). The set keeps
|
|
66
|
-
* no number of its own. `
|
|
55
|
+
* no number of its own. `useFallback` is the same as a hook, for a number
|
|
56
|
+
* the host holds live (the campaign's Button padding in Styles); a side it
|
|
57
|
+
* leaves out rests on `fallback`. A hook: give it always or never for one
|
|
58
|
+
* field set (the row's hook count). `object` is the email designer's storage. */
|
|
67
59
|
padding: SidesPaddingOptions & {
|
|
68
60
|
fallback: NonNullable<SidesPaddingOptions['fallback']>;
|
|
69
61
|
};
|
|
@@ -94,4 +86,4 @@ declare function buttonFieldSet(opts: ButtonFieldSetOptions): {
|
|
|
94
86
|
_dSize: BoxField<undefined>;
|
|
95
87
|
};
|
|
96
88
|
|
|
97
|
-
export {
|
|
89
|
+
export { type ButtonFieldSetOptions, buttonFieldSet };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{buttonFieldSet}from"../../../chunk-4O4FSRJL.js";import"../../../chunk-SS2NY7PP.js";import"../../../chunk-UJU42JM4.js";import"../../../chunk-CLAADE4J.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-7GGNFLHT.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-Q3VAJMXS.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";export{BUTTON_PAD_KEYS,BUTTON_STYLE_KEYS}from"../../../chunk-BTQ3FJKT.js";import"../../../chunk-E52W3M5I.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-YAFMYW4J.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-FM6JO4WF.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-HZSZT3BE.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-TOKMFZPB.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";
|
|
@@ -3,6 +3,10 @@ import { BoxField } from './box-fields.js';
|
|
|
3
3
|
import { MEDIA_FIELD_MARKER } from './field-markers.js';
|
|
4
4
|
import 'efficient-shell/format';
|
|
5
5
|
import 'efficient-shell/ui';
|
|
6
|
+
import '../../../types-BusXrvDU.js';
|
|
7
|
+
import '../../../wordFit-7XpmhcaW.js';
|
|
8
|
+
import '../../../words-BrN08Fup.js';
|
|
9
|
+
import '../../../buckets-_MGDYJlb.js';
|
|
6
10
|
import '../../../ScreenDocumentContext-DPW_6gOC.js';
|
|
7
11
|
import '../../../blocks/index.js';
|
|
8
12
|
import '../../../types-BljCVdzR.js';
|