efficient-easel 26.16.0 → 27.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/README.md +9 -8
  2. package/dist/blocks/index.d.ts +1 -1
  3. package/dist/canvas/index.d.ts +2 -1
  4. package/dist/canvas/index.js +1 -1
  5. package/dist/chrome/index.js +1 -1
  6. package/dist/{chunk-PVBDKBJB.js → chunk-2EEYFRQM.js} +1 -1
  7. package/dist/{chunk-6DUCOSHW.js → chunk-3FANFZ4D.js} +1 -1
  8. package/dist/{chunk-CWELHADJ.js → chunk-3OOYGEJY.js} +1 -1
  9. package/dist/chunk-53QUHEHK.js +1 -0
  10. package/dist/{chunk-JIP5JNRB.js → chunk-5HYVOOH3.js} +1 -1
  11. package/dist/chunk-6GJEOER4.js +1 -0
  12. package/dist/{chunk-6ATIYLUL.js → chunk-6V6LC7QV.js} +1 -1
  13. package/dist/{chunk-KO47WAWR.js → chunk-7YXWWMBM.js} +1 -1
  14. package/dist/{chunk-GR3XRILS.js → chunk-A5USZ6Z6.js} +1 -1
  15. package/dist/{chunk-Y2T3JX7K.js → chunk-ANBPE45L.js} +1 -1
  16. package/dist/{chunk-KFWNGPW3.js → chunk-C63IB4VW.js} +5 -5
  17. package/dist/chunk-DIOTWSCO.js +1 -0
  18. package/dist/chunk-DTEYSPJE.js +64 -0
  19. package/dist/{chunk-C4TJN6GR.js → chunk-G2VZ4DET.js} +1 -1
  20. package/dist/{chunk-YYD257TD.js → chunk-G7J6SGMF.js} +1 -1
  21. package/dist/chunk-GJ427TZL.js +8 -0
  22. package/dist/chunk-J5VPNHOW.js +1 -0
  23. package/dist/{chunk-QZJKWKGH.js → chunk-JUJEVGLY.js} +1 -1
  24. package/dist/chunk-L36E2WCO.js +19 -0
  25. package/dist/chunk-LAJYMOY3.js +1 -0
  26. package/dist/{chunk-K53PQAMP.js → chunk-LDHUPZBK.js} +1 -1
  27. package/dist/{chunk-SBVIW3KJ.js → chunk-MTWQYLJE.js} +1 -1
  28. package/dist/chunk-OB4KI2AN.js +2 -0
  29. package/dist/{chunk-5U6DUZE2.js → chunk-P3HXHLES.js} +4 -4
  30. package/dist/{chunk-3XECMGXX.js → chunk-QEEW4X64.js} +1 -1
  31. package/dist/{chunk-JDQSRKJG.js → chunk-QPNNWQ24.js} +1 -1
  32. package/dist/{chunk-BFJAEQZ6.js → chunk-RTMDZJNE.js} +1 -1
  33. package/dist/chunk-SDSBXW3V.js +26 -0
  34. package/dist/chunk-SEC6NV6Y.js +18 -0
  35. package/dist/{chunk-W2S2VJOQ.js → chunk-SEH3Q3EL.js} +1 -1
  36. package/dist/chunk-TDEBPOWV.js +3 -0
  37. package/dist/{chunk-QTHQPJWA.js → chunk-TF6NAIV7.js} +1 -1
  38. package/dist/{chunk-6EDVZBUO.js → chunk-TQUEVJOO.js} +1 -1
  39. package/dist/chunk-TUIBPB77.js +5 -0
  40. package/dist/chunk-UMTUKSE6.js +1 -0
  41. package/dist/chunk-VNUXFD4X.js +1 -0
  42. package/dist/{chunk-VBEVZZTV.js → chunk-VTY7OQB5.js} +11 -11
  43. package/dist/chunk-WL57KM5C.js +17 -0
  44. package/dist/{chunk-H4TUOPI7.js → chunk-WW24O7HT.js} +1 -1
  45. package/dist/chunk-XESNAMI3.js +4 -0
  46. package/dist/chunk-XT75WETI.js +1 -0
  47. package/dist/{chunk-MGEXTIZH.js → chunk-XV5D4V2T.js} +1 -1
  48. package/dist/{chunk-CLAADE4J.js → chunk-XWTQTANN.js} +5 -5
  49. package/dist/chunk-YDTEYXQW.js +1 -0
  50. package/dist/chunk-ZNLODQD4.js +3 -0
  51. package/dist/copy/index.d.ts +1 -1
  52. package/dist/copy/index.js +13 -13
  53. package/dist/data/index.d.ts +2 -1
  54. package/dist/data/index.js +1 -1
  55. package/dist/drag/index.js +1 -1
  56. package/dist/draw/index.js +1 -1
  57. package/dist/easel/index.d.ts +2 -2
  58. package/dist/easel/index.js +1 -1
  59. package/dist/edit-lock/index.js +1 -1
  60. package/dist/fields/fields.css +8 -0
  61. package/dist/fields/index.d.ts +89 -18
  62. package/dist/fields/index.js +1 -1
  63. package/dist/node-ops/index.js +1 -1
  64. package/dist/panel/index.js +1 -1
  65. package/dist/phone-order-CRKvsTsz.d.ts +141 -0
  66. package/dist/{rowMarks-CO5TpfLY.d.ts → rowMarks-D2cO7UTi.d.ts} +5 -5
  67. package/dist/screen/components/AddBlockRow.js +1 -1
  68. package/dist/screen/components/AddSidePanel.d.ts +1 -1
  69. package/dist/screen/components/AddSidePanel.js +1 -1
  70. package/dist/screen/components/NodeContextMenu.d.ts +1 -1
  71. package/dist/screen/components/NodeContextMenu.js +1 -1
  72. package/dist/screen/components/PageEditGuardNotices.js +1 -1
  73. package/dist/screen/components/SaveControls.d.ts +1 -1
  74. package/dist/screen/components/SaveControls.js +1 -1
  75. package/dist/screen/components/ScreenChrome.js +1 -1
  76. package/dist/screen/components/ScreenDocumentContext.d.ts +1 -1
  77. package/dist/screen/components/ScreenDocumentContext.js +1 -1
  78. package/dist/screen/components/ScreenMount.d.ts +1 -1
  79. package/dist/screen/components/ScreenMount.js +1 -1
  80. package/dist/screen/components/ScreenStoreProvider.d.ts +1 -1
  81. package/dist/screen/components/ScreenStoreProvider.js +1 -1
  82. package/dist/screen/components/SectionScreenShell.js +16 -16
  83. package/dist/screen/components/SidePanelHead.js +1 -1
  84. package/dist/screen/components/panel-widths.js +1 -1
  85. package/dist/screen/components/usePartBridge.d.ts +1 -1
  86. package/dist/screen/components/usePartBridge.js +1 -1
  87. package/dist/screen/index.d.ts +1 -1
  88. package/dist/screen/index.js +1 -1
  89. package/dist/screen/lib/admin-bridge.d.ts +1 -1
  90. package/dist/screen/lib/content/view-tiers.d.ts +11 -1
  91. package/dist/screen/lib/content/view-tiers.js +1 -1
  92. package/dist/screen/lib/document/block-set-host.js +1 -1
  93. package/dist/screen/lib/document/block-size-fields.d.ts +1 -1
  94. package/dist/screen/lib/document/block-size-fields.js +1 -1
  95. package/dist/screen/lib/document/block-types-in.js +1 -1
  96. package/dist/screen/lib/document/box-fields.d.ts +42 -14
  97. package/dist/screen/lib/document/box-fields.js +1 -1
  98. package/dist/screen/lib/document/button-fields.d.ts +1 -1
  99. package/dist/screen/lib/document/button-fields.js +1 -1
  100. package/dist/screen/lib/document/device-fields.d.ts +10 -17
  101. package/dist/screen/lib/document/device-fields.js +1 -1
  102. package/dist/screen/lib/document/image-fields.d.ts +1 -1
  103. package/dist/screen/lib/document/image-fields.js +5 -5
  104. package/dist/screen/lib/document/palette-sections.d.ts +1 -1
  105. package/dist/screen/lib/document/panel-no-control-mark.d.ts +2 -2
  106. package/dist/screen/lib/document/section-doc.d.ts +1 -1
  107. package/dist/screen/lib/document/section-doc.js +1 -1
  108. package/dist/screen/lib/document/shadow-fields.d.ts +1 -1
  109. package/dist/screen/lib/document/shadow-fields.js +2 -2
  110. package/dist/screen/lib/document/style-clipboard.d.ts +1 -1
  111. package/dist/screen/lib/document/style-clipboard.js +1 -1
  112. package/dist/screen/lib/document/style-fields.d.ts +1 -1
  113. package/dist/screen/lib/document/style-fields.js +1 -1
  114. package/dist/screen/lib/document/use-section-ops.d.ts +1 -1
  115. package/dist/screen/lib/document/use-section-ops.js +1 -1
  116. package/dist/screen/lib/document-addressing.d.ts +1 -1
  117. package/dist/screen/lib/document-hooks.d.ts +1 -1
  118. package/dist/screen/lib/document-switch.js +1 -1
  119. package/dist/screen/lib/failure.js +1 -1
  120. package/dist/screen/lib/host-inbound.js +1 -1
  121. package/dist/screen/lib/host.d.ts +1 -1
  122. package/dist/screen/lib/key-scope.js +1 -1
  123. package/dist/screen/lib/media-panel.d.ts +1 -1
  124. package/dist/screen/lib/media-picker.d.ts +1 -1
  125. package/dist/screen/lib/media-picker.js +1 -1
  126. package/dist/screen/lib/page-lock.d.ts +1 -1
  127. package/dist/screen/lib/page-lock.js +1 -1
  128. package/dist/screen/lib/screen-parts.d.ts +1 -11
  129. package/dist/screen/lib/screen-parts.js +1 -1
  130. package/dist/screen/lib/section-templates.d.ts +1 -1
  131. package/dist/screen/lib/session-context.d.ts +1 -1
  132. package/dist/screen/lib/session.d.ts +1 -1
  133. package/dist/screen/lib/shared-sections.d.ts +1 -1
  134. package/dist/screen/screen.css +0 -6
  135. package/dist/screen/words.d.ts +1 -3
  136. package/dist/screen/words.js +1 -1
  137. package/dist/strings/index.d.ts +1 -1
  138. package/dist/strings/index.js +2 -2
  139. package/dist/style-clipboard/index.js +1 -1
  140. package/dist/text-styles/index.d.ts +6 -5
  141. package/dist/text-styles/index.js +37 -37
  142. package/dist/text-styles/model.d.ts +24 -14
  143. package/dist/text-styles/model.js +1 -1
  144. package/dist/{types-CVHwspYM.d.ts → types-DcyH17ij.d.ts} +2 -0
  145. package/dist/{words-CFkb8XtN.d.ts → words-dNm6REMa.d.ts} +21 -0
  146. package/package.json +1 -1
  147. package/dist/chunk-3W2O22DZ.js +0 -19
  148. package/dist/chunk-BLE3U2GS.js +0 -2
  149. package/dist/chunk-CPIWSFGR.js +0 -2
  150. package/dist/chunk-E52W3M5I.js +0 -1
  151. package/dist/chunk-EUFDQ4KL.js +0 -1
  152. package/dist/chunk-JACEEVVF.js +0 -1
  153. package/dist/chunk-JQQFB7EZ.js +0 -1
  154. package/dist/chunk-LWFE6QDN.js +0 -20
  155. package/dist/chunk-OGG6FMBA.js +0 -17
  156. package/dist/chunk-RN5AYO53.js +0 -1
  157. package/dist/chunk-RQO3UDKP.js +0 -8
  158. package/dist/chunk-SQTVXE5D.js +0 -18
  159. package/dist/chunk-T5U2UZO6.js +0 -64
  160. package/dist/chunk-TOKMFZPB.js +0 -1
  161. package/dist/chunk-TXNCWF67.js +0 -4
  162. package/dist/chunk-U4TG43PD.js +0 -1
  163. package/dist/chunk-XFI3UPB2.js +0 -1
  164. package/dist/chunk-YHZSBL2N.js +0 -1
  165. package/dist/chunk-YTF65TZA.js +0 -5
  166. package/dist/chunk-ZEH6QLBH.js +0 -4
  167. package/dist/resolve-Bz4mszpL.d.ts +0 -57
@@ -1 +1 @@
1
- export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-OXZDSOZV.js";import"../../../chunk-TCAAOYQY.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";
1
+ export{cloneNodeWithFreshIds,docToNode,nodeToDoc}from"../../../chunk-OXZDSOZV.js";import"../../../chunk-TCAAOYQY.js";import"../../../chunk-YDTEYXQW.js";import"../../../chunk-KXM6YRG2.js";
@@ -13,7 +13,7 @@ import '../../../blocks/index.js';
13
13
  import '../../../types-BljCVdzR.js';
14
14
  import '../../../data/index.js';
15
15
  import '../../../types-Dq180WRV.js';
16
- import '../../../resolve-Bz4mszpL.js';
16
+ import '../../../phone-order-CRKvsTsz.js';
17
17
  import '../../../plan-D0DgSLnY.js';
18
18
  import '../document-contract.js';
19
19
  import '../document-switch.js';
@@ -1,2 +1,2 @@
1
- import{DEFAULT_SHADOW_COLOR as o,DEFAULT_SHADOW as n,shadowValue as r,SHADOWS as i}from"../../../chunk-CRITA6CA.js";export{DEFAULT_SHADOW,DEFAULT_SHADOW_COLOR,SHADOWS,shadowValue}from"../../../chunk-CRITA6CA.js";import{styleFieldBuilders as t}from"../../../chunk-TXNCWF67.js";import"../../../chunk-OGG6FMBA.js";import"../../../chunk-BLE3U2GS.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-C4TJN6GR.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-PLTTPHK5.js";import"../../../chunk-E52W3M5I.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-3W2O22DZ.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-CLAADE4J.js";import{SettingsDefaultReset as s}from"../../../chunk-2T22IY3J.js";import"../../../chunk-D4TH4QQR.js";import{DEFAULT_PANEL_WORDS as e}from"../../../chunk-56ID6FKZ.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-OECWLNKJ.js";import{SettingsField as p}from"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.js";import{useWords as c}from"../../../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{ShadowIcon as h}from"efficient-shell/icons/efficient";import{IconPicker as u}from"efficient-shell/ui";import{jsx as l}from"react/jsx-runtime";var m={none:"None",soft:"Soft",lifted:"Lifted"},a={none:"none",soft:"0 1px 1px rgba(20, 20, 22, 0.10), 0 2px 4px -1px rgba(20, 20, 22, 0.14)",lifted:"0 1px 2px rgba(20, 20, 22, 0.10), 0 4px 7px -2px rgba(20, 20, 22, 0.30)"},k={display:"block",flex:"none",boxSizing:"border-box",width:16,height:11};function j({o:o,say:t,props:j}){const d=c("panel",e),f=o.builtIn??n,b=r(j.value),F=b??f,C=t(o.label);/* @__PURE__ */
2
- return l(p,{label:C,icon:o.icon??/* @__PURE__ */l(h,{}),value:t(m[F]),changed:null!==b,hint:o.hint,action:/* @__PURE__ */l(s,{words:d,label:C,changed:null!==b,detail:t(m[f]),onReset:()=>j.onChange(void 0),disabled:j.readOnly}),children:/* @__PURE__ */l(u,{label:C,value:F,options:i.map(o=>({value:o,label:t(m[o]),icon:/* @__PURE__ */l("span",{"data-shadow-chip":"",className:"border border-line bg-surface",style:{...k,boxShadow:a[o]}})})),onChange:o=>j.onChange(o),disabled:j.readOnly})})}function d(n=o=>o){const{colourField:r}=t(n);return{shadowField:o=>({type:"custom",render:r=>/* @__PURE__ */l(j,{o:o,say:n,props:r})}),shadowColourField:n=>{const i=n.follows??o;return r({key:n.key??"shadowColor",label:n.label,icon:/* @__PURE__ */l(h,{}),hint:n.hint,useFollows:()=>i})}}}var{shadowField:f,shadowColourField:b}=d();export{b as shadowColourField,f as shadowField,d as shadowFieldBuilders};
1
+ import{DEFAULT_SHADOW_COLOR as o,DEFAULT_SHADOW as n,shadowValue as r,SHADOWS as i}from"../../../chunk-CRITA6CA.js";export{DEFAULT_SHADOW,DEFAULT_SHADOW_COLOR,SHADOWS,shadowValue}from"../../../chunk-CRITA6CA.js";import{styleFieldBuilders as t}from"../../../chunk-XESNAMI3.js";import"../../../chunk-WL57KM5C.js";import"../../../chunk-XWTQTANN.js";import{SettingsDefaultReset as s}from"../../../chunk-2T22IY3J.js";import"../../../chunk-ZNLODQD4.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-G2VZ4DET.js";import"../../../chunk-3OOYGEJY.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-PLTTPHK5.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-L36E2WCO.js";import"../../../chunk-XT75WETI.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-D4TH4QQR.js";import{DEFAULT_PANEL_WORDS as e}from"../../../chunk-56ID6FKZ.js";import"../../../chunk-LDHUPZBK.js";import"../../../chunk-TF6NAIV7.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-DIOTWSCO.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-C63IB4VW.js";import"../../../chunk-DX3VILZ3.js";import{SettingsField as p}from"../../../chunk-MIX7EGRG.js";import"../../../chunk-UMTUKSE6.js";import{useWords as c}from"../../../chunk-MFIRYGHW.js";import"../../../chunk-YDTEYXQW.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-6GJEOER4.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-BSPCSC45.js";import{ShadowIcon as h}from"efficient-shell/icons/efficient";import{IconPicker as u}from"efficient-shell/ui";import{jsx as l}from"react/jsx-runtime";var m={none:"None",soft:"Soft",lifted:"Lifted"},a={none:"none",soft:"0 1px 1px rgba(20, 20, 22, 0.10), 0 2px 4px -1px rgba(20, 20, 22, 0.14)",lifted:"0 1px 2px rgba(20, 20, 22, 0.10), 0 4px 7px -2px rgba(20, 20, 22, 0.30)"},k={display:"block",flex:"none",boxSizing:"border-box",width:16,height:11};function j({o:o,say:t,props:j}){const d=c("panel",e),f=o.builtIn??n,b=r(j.value),T=b??f,C=t(o.label);/* @__PURE__ */
2
+ return l(p,{label:C,icon:o.icon??/* @__PURE__ */l(h,{}),value:t(m[T]),changed:null!==b,hint:o.hint,action:/* @__PURE__ */l(s,{words:d,label:C,changed:null!==b,detail:t(m[f]),onReset:()=>j.onChange(void 0),disabled:j.readOnly}),children:/* @__PURE__ */l(u,{label:C,value:T,options:i.map(o=>({value:o,label:t(m[o]),icon:/* @__PURE__ */l("span",{"data-shadow-chip":"",className:"border border-line bg-surface",style:{...k,boxShadow:a[o]}})})),onChange:o=>j.onChange(o),disabled:j.readOnly})})}function d(n=o=>o){const{colourField:r}=t(n);return{shadowField:o=>({type:"custom",render:r=>/* @__PURE__ */l(j,{o:o,say:n,props:r})}),shadowColourField:n=>{const i=n.follows??o;return r({key:n.key??"shadowColor",label:n.label,icon:/* @__PURE__ */l(h,{}),hint:n.hint,useFollows:()=>i})}}}var{shadowField:f,shadowColourField:b}=d();export{b as shadowColourField,f as shadowField,d as shadowFieldBuilders};
@@ -15,7 +15,7 @@ import './block-choice.js';
15
15
  import '../../../blocks/index.js';
16
16
  import '../../../types-BljCVdzR.js';
17
17
  import '../../../data/index.js';
18
- import '../../../resolve-Bz4mszpL.js';
18
+ import '../../../phone-order-CRKvsTsz.js';
19
19
  import '../../../plan-D0DgSLnY.js';
20
20
  import '../../../types-SrGNzYeO.js';
21
21
  import '../../../types-Cy7rdmXt.js';
@@ -1 +1 @@
1
- export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-U4TG43PD.js";import"../../../chunk-5XL2RXFU.js";import"../../../chunk-3QB2ZQXK.js";import"../../../chunk-BLE3U2GS.js";import"../../../chunk-22I55W37.js";import"../../../chunk-C4TJN6GR.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-EUFDQ4KL.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";
1
+ export{copyNodeStyle,nodeStyleRows,planNodePaste,shopFieldKind,siteStyleScope,styleClipboardOf}from"../../../chunk-VNUXFD4X.js";import"../../../chunk-5XL2RXFU.js";import"../../../chunk-3QB2ZQXK.js";import"../../../chunk-ZNLODQD4.js";import"../../../chunk-22I55W37.js";import"../../../chunk-G2VZ4DET.js";import"../../../chunk-3OOYGEJY.js";import"../../../chunk-6WY6ZXJG.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-YDTEYXQW.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-BSPCSC45.js";
@@ -13,7 +13,7 @@ import '../../../blocks/index.js';
13
13
  import '../../../types-BljCVdzR.js';
14
14
  import '../../../data/index.js';
15
15
  import '../../../types-Dq180WRV.js';
16
- import '../../../resolve-Bz4mszpL.js';
16
+ import '../../../phone-order-CRKvsTsz.js';
17
17
  import '../../../plan-D0DgSLnY.js';
18
18
  import '../document-contract.js';
19
19
  import '../document-switch.js';
@@ -1 +1 @@
1
- export{BORDER_WIDTH_MAX,CORNER_RADIUS_MAX,borderField,colourField,cornersField,keptByRow,styleFieldBuilders}from"../../../chunk-TXNCWF67.js";import"../../../chunk-OGG6FMBA.js";import"../../../chunk-BLE3U2GS.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-C4TJN6GR.js";import"../../../chunk-CWELHADJ.js";import"../../../chunk-6WY6ZXJG.js";export{CORNER_SIDES}from"../../../chunk-PLTTPHK5.js";import"../../../chunk-E52W3M5I.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-3W2O22DZ.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-CLAADE4J.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-D4TH4QQR.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.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
+ export{BORDER_WIDTH_MAX,CORNER_RADIUS_MAX,borderField,colourField,cornersField,keptByRow,styleFieldBuilders}from"../../../chunk-XESNAMI3.js";import"../../../chunk-WL57KM5C.js";import"../../../chunk-XWTQTANN.js";import"../../../chunk-2T22IY3J.js";import"../../../chunk-ZNLODQD4.js";import"../../../chunk-22I55W37.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-G2VZ4DET.js";import"../../../chunk-3OOYGEJY.js";import"../../../chunk-6WY6ZXJG.js";export{CORNER_SIDES}from"../../../chunk-PLTTPHK5.js";import"../../../chunk-ANPOR6EY.js";import"../../../chunk-L36E2WCO.js";import"../../../chunk-XT75WETI.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-D4TH4QQR.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-LDHUPZBK.js";import"../../../chunk-TF6NAIV7.js";import"../../../chunk-OECWLNKJ.js";import"../../../chunk-DIOTWSCO.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-C63IB4VW.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-UMTUKSE6.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-YDTEYXQW.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-6GJEOER4.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";import"../../../chunk-BSPCSC45.js";
@@ -5,7 +5,7 @@ import '../../../types-Dq180WRV.js';
5
5
  import 'react';
6
6
  import '../../../types-BljCVdzR.js';
7
7
  import '../../../data/index.js';
8
- import '../../../resolve-Bz4mszpL.js';
8
+ import '../../../phone-order-CRKvsTsz.js';
9
9
 
10
10
  type NodeSelector = {
11
11
  index: number;
@@ -1 +1 @@
1
- export{useSectionOps}from"../../../chunk-6DUCOSHW.js";import"../../../chunk-YTF65TZA.js";import"../../../chunk-NCXYC7WI.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-TCAAOYQY.js";import"../../../chunk-3W2O22DZ.js";import"../../../chunk-JQQFB7EZ.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-LWFE6QDN.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-ZEH6QLBH.js";import"../../../chunk-WHS6Y55E.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-K53PQAMP.js";import"../../../chunk-FIVU2COQ.js";import"../../../chunk-QTHQPJWA.js";import"../../../chunk-D4TH4QQR.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-Y2T3JX7K.js";import"../../../chunk-KFWNGPW3.js";import"../../../chunk-JACEEVVF.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-DX3VILZ3.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
+ export{useSectionOps}from"../../../chunk-3FANFZ4D.js";import"../../../chunk-TUIBPB77.js";import"../../../chunk-NCXYC7WI.js";import"../../../chunk-LX23TCTP.js";import"../../../chunk-TCAAOYQY.js";import"../../../chunk-L36E2WCO.js";import"../../../chunk-XT75WETI.js";import"../../../chunk-TBY3DFKS.js";import"../../../chunk-SDSBXW3V.js";import"../../../chunk-BPXEFVSQ.js";import"../../../chunk-YCSZAP7T.js";import"../../../chunk-TDEBPOWV.js";import"../../../chunk-WHS6Y55E.js";import"../../../chunk-D4TH4QQR.js";import"../../../chunk-K56YDHYQ.js";import"../../../chunk-56ID6FKZ.js";import"../../../chunk-LDHUPZBK.js";import"../../../chunk-FIVU2COQ.js";import"../../../chunk-TF6NAIV7.js";import"../../../chunk-MNQDOSAX.js";import"../../../chunk-PMRN5Z3T.js";import"../../../chunk-ANBPE45L.js";import"../../../chunk-C63IB4VW.js";import"../../../chunk-DX3VILZ3.js";import"../../../chunk-MIX7EGRG.js";import"../../../chunk-UMTUKSE6.js";import"../../../chunk-MFIRYGHW.js";import"../../../chunk-QEEW4X64.js";import"../../../chunk-P2VEMZH5.js";import"../../../chunk-YDTEYXQW.js";import"../../../chunk-KXM6YRG2.js";import"../../../chunk-6GJEOER4.js";import"../../../chunk-FR7EEKFF.js";import"../../../chunk-7UFKEX72.js";
@@ -6,7 +6,7 @@ import '../../blocks/index.js';
6
6
  import '../../types-BljCVdzR.js';
7
7
  import '../../data/index.js';
8
8
  import '../../types-Dq180WRV.js';
9
- import '../../resolve-Bz4mszpL.js';
9
+ import '../../phone-order-CRKvsTsz.js';
10
10
  import '../../plan-D0DgSLnY.js';
11
11
  import './document-switch.js';
12
12
  import '../../engine-CvXpFE86.js';
@@ -4,7 +4,7 @@ import 'react';
4
4
  import '../../types-BljCVdzR.js';
5
5
  import '../../data/index.js';
6
6
  import '../../types-Dq180WRV.js';
7
- import '../../resolve-Bz4mszpL.js';
7
+ import '../../phone-order-CRKvsTsz.js';
8
8
  import '../../plan-D0DgSLnY.js';
9
9
 
10
10
  /**
@@ -1 +1 @@
1
- export{resetForDocumentSwitch,saveStatusForNewDocument,saveStatusOf}from"../../chunk-6ATIYLUL.js";import"../../chunk-YYD257TD.js";import"../../chunk-RE4LP46F.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
1
+ export{resetForDocumentSwitch,saveStatusForNewDocument,saveStatusOf}from"../../chunk-6V6LC7QV.js";import"../../chunk-G7J6SGMF.js";import"../../chunk-RE4LP46F.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";
@@ -1 +1 @@
1
- export{PAGE_CONFLICT_CODE,isExpiredSession,readEaselFailure}from"../../chunk-KO47WAWR.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-YYD257TD.js";import"../../chunk-RE4LP46F.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
1
+ export{PAGE_CONFLICT_CODE,isExpiredSession,readEaselFailure}from"../../chunk-7YXWWMBM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-G7J6SGMF.js";import"../../chunk-RE4LP46F.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";
@@ -1 +1 @@
1
- export{routeSharedHostMessage}from"../../chunk-QZJKWKGH.js";import"../../chunk-JIP5JNRB.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
1
+ export{routeSharedHostMessage}from"../../chunk-JUJEVGLY.js";import"../../chunk-5HYVOOH3.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";
@@ -4,7 +4,7 @@ import '../../blocks/index.js';
4
4
  import '../../types-BljCVdzR.js';
5
5
  import '../../data/index.js';
6
6
  import '../../types-Dq180WRV.js';
7
- import '../../resolve-Bz4mszpL.js';
7
+ import '../../phone-order-CRKvsTsz.js';
8
8
  import '../../plan-D0DgSLnY.js';
9
9
  import './document-contract.js';
10
10
  import './document-switch.js';
@@ -1 +1 @@
1
- export{editorRootFocus,isSaveShortcut,useEaselKeyTarget,useEaselSaveKey,useEaselUndoKeys}from"../../chunk-BFJAEQZ6.js";import"../../chunk-LX23TCTP.js";import"../../chunk-3W2O22DZ.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-K53PQAMP.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-MNQDOSAX.js";import"../../chunk-PMRN5Z3T.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";
1
+ export{editorRootFocus,isSaveShortcut,useEaselKeyTarget,useEaselSaveKey,useEaselUndoKeys}from"../../chunk-RTMDZJNE.js";import"../../chunk-LX23TCTP.js";import"../../chunk-L36E2WCO.js";import"../../chunk-XT75WETI.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-LDHUPZBK.js";import"../../chunk-TF6NAIV7.js";import"../../chunk-MNQDOSAX.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";import"../../chunk-6GJEOER4.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";
@@ -5,7 +5,7 @@ import '../../blocks/index.js';
5
5
  import '../../types-BljCVdzR.js';
6
6
  import '../../data/index.js';
7
7
  import '../../types-Dq180WRV.js';
8
- import '../../resolve-Bz4mszpL.js';
8
+ import '../../phone-order-CRKvsTsz.js';
9
9
  import '../../plan-D0DgSLnY.js';
10
10
  import './document-contract.js';
11
11
  import './document-switch.js';
@@ -4,7 +4,7 @@ import '../../blocks/index.js';
4
4
  import '../../types-BljCVdzR.js';
5
5
  import '../../data/index.js';
6
6
  import '../../types-Dq180WRV.js';
7
- import '../../resolve-Bz4mszpL.js';
7
+ import '../../phone-order-CRKvsTsz.js';
8
8
  import '../../plan-D0DgSLnY.js';
9
9
  import './document-contract.js';
10
10
  import './document-switch.js';
@@ -1 +1 @@
1
- export{requestMediaPick,resolveMediaPick}from"../../chunk-JIP5JNRB.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
1
+ export{requestMediaPick,resolveMediaPick}from"../../chunk-5HYVOOH3.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";
@@ -5,7 +5,7 @@ import 'react';
5
5
  import '../../types-BljCVdzR.js';
6
6
  import '../../data/index.js';
7
7
  import '../../types-Dq180WRV.js';
8
- import '../../resolve-Bz4mszpL.js';
8
+ import '../../phone-order-CRKvsTsz.js';
9
9
  import '../../plan-D0DgSLnY.js';
10
10
  import './backend-error.js';
11
11
  import './host-chrome.js';
@@ -1 +1 @@
1
- export{editLockOf,pageEditLock}from"../../chunk-GR3XRILS.js";import"../../chunk-KO47WAWR.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-YYD257TD.js";import"../../chunk-RE4LP46F.js";import"../../chunk-EUFDQ4KL.js";import"../../chunk-KXM6YRG2.js";
1
+ export{editLockOf,pageEditLock}from"../../chunk-A5USZ6Z6.js";import"../../chunk-7YXWWMBM.js";import"../../chunk-KCOBHPN6.js";import"../../chunk-G7J6SGMF.js";import"../../chunk-RE4LP46F.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";
@@ -21,7 +21,7 @@ import { SlotConfigView, SlotChild } from './document/content-tree.js';
21
21
  import '../../words-SD4neL0n.js';
22
22
  import '../../types-BljCVdzR.js';
23
23
  import '../../data/index.js';
24
- import '../../resolve-Bz4mszpL.js';
24
+ import '../../phone-order-CRKvsTsz.js';
25
25
  import '../../plan-D0DgSLnY.js';
26
26
  import '../../edit-lock/index.js';
27
27
  import '../../panelWidths-DgQXiPXU.js';
@@ -971,16 +971,6 @@ interface ScreenBlockLook {
971
971
  * Absent: the screen's two, as it drew them.
972
972
  */
973
973
  rowActions?: (node: ScreenNode, zone: string, index: number) => ReactNode;
974
- /**
975
- * THE WORDS OF A BLOCK'S CANVAS TAB (Stats design B, Lewis 2026-10-29,
976
- * canvas look Y): where a block's value comes from — "Designs shown" for a
977
- * number filled from a live count — or null for a block that has no tab.
978
- * Asked of the selected block and of the block under the pointer. The
979
- * screen draws the tab the pinned bands wear (the shell's solid badge)
980
- * above the block's top edge; a click on it selects the block. Absent: no
981
- * block has a tab.
982
- */
983
- canvasTab?: (node: ScreenNode) => string | null;
984
974
  }
985
975
  /**
986
976
  * THE DEVICES the canvas can be looked at on. That the top bar has a switch,
@@ -1 +1 @@
1
- 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-YTF65TZA.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-TCAAOYQY.js";import"../../chunk-3W2O22DZ.js";import"../../chunk-JQQFB7EZ.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-LWFE6QDN.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-ZEH6QLBH.js";import"../../chunk-WHS6Y55E.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-K53PQAMP.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-QTHQPJWA.js";import"../../chunk-D4TH4QQR.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-MNQDOSAX.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-Y2T3JX7K.js";import"../../chunk-KFWNGPW3.js";import"../../chunk-JACEEVVF.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-DX3VILZ3.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
+ 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-TUIBPB77.js";import"../../chunk-NCXYC7WI.js";import"../../chunk-LX23TCTP.js";import"../../chunk-TCAAOYQY.js";import"../../chunk-L36E2WCO.js";import"../../chunk-XT75WETI.js";import"../../chunk-TBY3DFKS.js";import"../../chunk-SDSBXW3V.js";import"../../chunk-BPXEFVSQ.js";import"../../chunk-YCSZAP7T.js";import"../../chunk-TDEBPOWV.js";import"../../chunk-WHS6Y55E.js";import"../../chunk-D4TH4QQR.js";import"../../chunk-K56YDHYQ.js";import"../../chunk-56ID6FKZ.js";import"../../chunk-LDHUPZBK.js";import"../../chunk-FIVU2COQ.js";import"../../chunk-TF6NAIV7.js";import"../../chunk-MNQDOSAX.js";import"../../chunk-PMRN5Z3T.js";import"../../chunk-ANBPE45L.js";import"../../chunk-C63IB4VW.js";import"../../chunk-DX3VILZ3.js";import"../../chunk-MIX7EGRG.js";import"../../chunk-UMTUKSE6.js";import"../../chunk-MFIRYGHW.js";import"../../chunk-QEEW4X64.js";import"../../chunk-P2VEMZH5.js";import"../../chunk-YDTEYXQW.js";import"../../chunk-KXM6YRG2.js";import"../../chunk-6GJEOER4.js";import"../../chunk-FR7EEKFF.js";import"../../chunk-7UFKEX72.js";
@@ -6,7 +6,7 @@ import 'react';
6
6
  import '../../types-BljCVdzR.js';
7
7
  import '../../data/index.js';
8
8
  import '../../types-Dq180WRV.js';
9
- import '../../resolve-Bz4mszpL.js';
9
+ import '../../phone-order-CRKvsTsz.js';
10
10
  import '../../plan-D0DgSLnY.js';
11
11
  import './backend-error.js';
12
12
  import '../../edit-lock/index.js';
@@ -5,7 +5,7 @@ import '../../blocks/index.js';
5
5
  import '../../types-BljCVdzR.js';
6
6
  import '../../data/index.js';
7
7
  import '../../types-Dq180WRV.js';
8
- import '../../resolve-Bz4mszpL.js';
8
+ import '../../phone-order-CRKvsTsz.js';
9
9
  import '../../plan-D0DgSLnY.js';
10
10
  import './backend-error.js';
11
11
  import '../../edit-lock/index.js';
@@ -9,7 +9,7 @@ import 'react';
9
9
  import '../../types-BljCVdzR.js';
10
10
  import '../../data/index.js';
11
11
  import '../../types-Dq180WRV.js';
12
- import '../../resolve-Bz4mszpL.js';
12
+ import '../../phone-order-CRKvsTsz.js';
13
13
  import '../../plan-D0DgSLnY.js';
14
14
  import '../../edit-lock/index.js';
15
15
  import './links/link-filters.js';
@@ -6,7 +6,7 @@ import 'react';
6
6
  import '../../types-BljCVdzR.js';
7
7
  import '../../data/index.js';
8
8
  import '../../types-Dq180WRV.js';
9
- import '../../resolve-Bz4mszpL.js';
9
+ import '../../phone-order-CRKvsTsz.js';
10
10
  import '../../plan-D0DgSLnY.js';
11
11
  import './backend-error.js';
12
12
  import '../../edit-lock/index.js';
@@ -831,12 +831,6 @@
831
831
  pointer-events: auto;
832
832
  cursor: pointer;
833
833
  }
834
- /* A block's own tab (`blockLook.canvasTab`, Stats design B, Lewis
835
- 2026-10-29): it rides above the block's top edge, lifted by its own
836
- height, so it never covers the number it names. */
837
- .es-band-tab.is-above {
838
- transform: translateY(-100%);
839
- }
840
834
  /* A SHARED node's tab (Shared section design v4, Lewis 2026-10-21): the
841
835
  shell's `shared` mark before the name, inside the badge's line. */
842
836
  .es-band-tab-mark {
@@ -389,10 +389,8 @@ type ScreenWords = {
389
389
  headerSettings: string;
390
390
  /** The section screen's menu of blocks to add (`AddBlockRow`). */
391
391
  addBlockMenu: string;
392
- /** The quiet line over a section's settings on a device that is not the
393
- * desktop: the tablet's, then the phone's. */
392
+ /** The quiet line over a section's settings in the phone view. */
394
393
  deviceNote: {
395
- tablet: string;
396
394
  mobile: string;
397
395
  };
398
396
  };
@@ -1 +1 @@
1
- export{DEFAULT_IMAGE_ROW_WORDS,DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_SHARED_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-C4TJN6GR.js";
1
+ export{DEFAULT_IMAGE_ROW_WORDS,DEFAULT_SCREEN_ADD_WORDS,DEFAULT_SCREEN_SAVE_STATUS_WORDS,DEFAULT_SCREEN_SHARED_WORDS,DEFAULT_SCREEN_WORDS}from"../chunk-G2VZ4DET.js";
@@ -3,7 +3,7 @@ import { N as NoticeWords, C as ChromeWords } from '../words-DYu4iBrR.js';
3
3
  import { C as CopyWords } from '../words-Cf5VT2Ic.js';
4
4
  import { D as DragWords } from '../words-SD4neL0n.js';
5
5
  import { LockWords } from '../edit-lock/index.js';
6
- import { F as FieldsWords } from '../words-CFkb8XtN.js';
6
+ import { F as FieldsWords } from '../words-dNm6REMa.js';
7
7
  import { N as NodeMenuWords } from '../words-DMG4dYq2.js';
8
8
  import { P as PageCopyWords } from '../words-Dl8Qja4K.js';
9
9
  import { P as PanelWords, C as ColourRowWords } from '../words-BgeDGDKn.js';
@@ -1,2 +1,2 @@
1
- import{DEFAULT_TEXT_STYLES_WORDS as o}from"../chunk-OGH6CC3E.js";import{DEFAULT_PAGE_COPY_WORDS as r}from"../chunk-CEC5XLN4.js";import{DEFAULT_SCREEN_WORDS as n,DEFAULT_IMAGE_ROW_WORDS as t}from"../chunk-C4TJN6GR.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as c}from"../chunk-6WY6ZXJG.js";import{DEFAULT_CANVAS_WORDS as e}from"../chunk-TBY3DFKS.js";import{DEFAULT_TREE_WORDS as m}from"../chunk-K56YDHYQ.js";import{DEFAULT_NODE_MENU_WORDS as i}from"../chunk-WK3AFPXY.js";import{DEFAULT_COLOUR_ROW_WORDS as s,DEFAULT_PANEL_WORDS as u}from"../chunk-56ID6FKZ.js";import{DEFAULT_SAVE_WORDS as f}from"../chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as p,DEFAULT_NOTICE_WORDS as l}from"../chunk-AJSDWWJW.js";import{DEFAULT_RAIL_WORDS as h}from"../chunk-2OAZYSWJ.js";import{DEFAULT_LOCK_WORDS as j}from"../chunk-RE4LP46F.js";import{DEFAULT_COPY_WORDS as a}from"../chunk-PMRN5Z3T.js";import{DEFAULT_FIELDS_WORDS as k}from"../chunk-JACEEVVF.js";import{stringsContext as y}from"../chunk-MFIRYGHW.js";import{DEFAULT_DRAG_WORDS as C}from"../chunk-TQ5Y6S2X.js";import{useContext as Y,useMemo as W}from"react";import{jsx as d}from"react/jsx-runtime";var g={notice:l,lock:j,save:f,chrome:p,rail:h,tree:m,panel:u,fields:k,colourRow:s,imageRow:t,drag:C,menu:i,styleClipboard:c,copy:a,canvas:e,textStyles:o,screen:n,pageCopy:r},v=o=>"object"==typeof o&&null!==o;function D(o,r){const n={};for(const t of Object.keys(o)){const c=o[t],e=r[t];null==e?n[t]=c:v(c)?n[t]=v(e)?D(c,e):c:n[t]=typeof e==typeof c?e:c}return n}function F(o,r){return r?D(o,r):o}function J({value:o,locale:r,children:n}){const t=y(),c=Y(t),e=c?.strings??g,m=r??c?.locale??"en",i=W(()=>({strings:F(e,o),locale:m}),[e,o,m]);/* @__PURE__ */
2
- return d(t.Provider,{value:i,children:n})}function R(){return Y(y())?.strings??g}function E(){return Y(y())?.locale??"en"}export{g as DEFAULT_EASEL_STRINGS,J as EaselStringsProvider,F as mergeEaselStrings,E as useEaselLocale,R as useEaselStrings};
1
+ import{DEFAULT_TEXT_STYLES_WORDS as o}from"../chunk-OGH6CC3E.js";import{DEFAULT_SCREEN_WORDS as r,DEFAULT_IMAGE_ROW_WORDS as n}from"../chunk-G2VZ4DET.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as t}from"../chunk-6WY6ZXJG.js";import{DEFAULT_CANVAS_WORDS as c}from"../chunk-TBY3DFKS.js";import{DEFAULT_TREE_WORDS as e}from"../chunk-K56YDHYQ.js";import{DEFAULT_COLOUR_ROW_WORDS as m,DEFAULT_PANEL_WORDS as i}from"../chunk-56ID6FKZ.js";import{DEFAULT_NODE_MENU_WORDS as s}from"../chunk-WK3AFPXY.js";import{DEFAULT_PAGE_COPY_WORDS as u}from"../chunk-CEC5XLN4.js";import{DEFAULT_SAVE_WORDS as f}from"../chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as p,DEFAULT_NOTICE_WORDS as l}from"../chunk-AJSDWWJW.js";import{DEFAULT_RAIL_WORDS as h}from"../chunk-2OAZYSWJ.js";import{DEFAULT_LOCK_WORDS as j}from"../chunk-RE4LP46F.js";import{DEFAULT_COPY_WORDS as a}from"../chunk-PMRN5Z3T.js";import{DEFAULT_FIELDS_WORDS as k}from"../chunk-UMTUKSE6.js";import{stringsContext as y}from"../chunk-MFIRYGHW.js";import{DEFAULT_DRAG_WORDS as Y}from"../chunk-TQ5Y6S2X.js";import{useContext as D,useMemo as W}from"react";import{jsx as d}from"react/jsx-runtime";var g={notice:l,lock:j,save:f,chrome:p,rail:h,tree:e,panel:i,fields:k,colourRow:m,imageRow:n,drag:Y,menu:s,styleClipboard:t,copy:a,canvas:c,textStyles:o,screen:r,pageCopy:u},v=o=>"object"==typeof o&&null!==o;function C(o,r){const n={};for(const t of Object.keys(o)){const c=o[t],e=r[t];null==e?n[t]=c:v(c)?n[t]=v(e)?C(c,e):c:n[t]=typeof e==typeof c?e:c}return n}function S(o,r){return r?C(o,r):o}function E({value:o,locale:r,children:n}){const t=y(),c=D(t),e=c?.strings??g,m=r??c?.locale??"en",i=W(()=>({strings:S(e,o),locale:m}),[e,o,m]);/* @__PURE__ */
2
+ return d(t.Provider,{value:i,children:n})}function F(){return D(y())?.strings??g}function K(){return D(y())?.locale??"en"}export{g as DEFAULT_EASEL_STRINGS,E as EaselStringsProvider,S as mergeEaselStrings,K as useEaselLocale,F as useEaselStrings};
@@ -1 +1 @@
1
- export{COPY_STYLE_SHORTCUT,PASTE_STYLE_SHORTCUT,STYLE_KIND,choiceKind,clearStyle,copyStyle,fieldKind,heldStyle,pasteMessage,planPaste,styleMenuItems,styleShortcut,subscribeStyle,withStyleKind}from"../chunk-CWELHADJ.js";import"../chunk-6WY6ZXJG.js";import"../chunk-EUFDQ4KL.js";import"../chunk-KXM6YRG2.js";
1
+ export{COPY_STYLE_SHORTCUT,PASTE_STYLE_SHORTCUT,STYLE_KIND,choiceKind,clearStyle,copyStyle,fieldKind,heldStyle,pasteMessage,planPaste,styleMenuItems,styleShortcut,subscribeStyle,withStyleKind}from"../chunk-3OOYGEJY.js";import"../chunk-6WY6ZXJG.js";import"../chunk-YDTEYXQW.js";import"../chunk-KXM6YRG2.js";
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import { TextStyle, TextStyleFont, TextStyleColour, TextStyleSetting, TextStyleAuto, TextStyleValues, TextStyleDevice, TextStyleKind } from './model.js';
4
- export { CAMPAIGN_TEXT_STYLE_SETTINGS, TEXT_STYLE_CASES, TEXT_STYLE_CASE_CSS, TEXT_STYLE_DEFAULT_COUNT, TEXT_STYLE_KINDS, TEXT_STYLE_MAX, TEXT_STYLE_RANGES, TEXT_STYLE_SETTINGS, TextStyleCase, TextStyleCaseCss, TextStyleNumber, TextStyleRange, addTextStyle, canAddTextStyle, defaultTextStyles, describeTextStyle, isDefaultTextStyle, isTextStyleCase, removeTextStyle, resolveTextStyle, textStyleCaseCss, textStyleCaseOfCss, textStyleRowSize, updateTextStyle, weightWord } from './model.js';
4
+ export { CAMPAIGN_TEXT_STYLE_SETTINGS, TEXT_STYLE_CASES, TEXT_STYLE_CASE_CSS, TEXT_STYLE_DEFAULT_COUNT, TEXT_STYLE_KINDS, TEXT_STYLE_MAX, TEXT_STYLE_RANGES, TEXT_STYLE_SETTINGS, TEXT_STYLE_VIEW_NUMBERS, TextStyleCase, TextStyleCaseCss, TextStyleNumber, TextStyleRange, TextStyleViewNumber, addTextStyle, canAddTextStyle, defaultTextStyles, describeTextStyle, isDefaultTextStyle, isTextStyleCase, removeTextStyle, resolveTextStyle, textStyleCaseCss, textStyleCaseOfCss, textStyleRowSize, textStyleViewKey, textStyleViewValues, updateTextStyle, weightWord } from './model.js';
5
5
  export { D as DEFAULT_TEXT_STYLES_WORDS, T as TextStylesWords } from '../words-B5Gb7KFq.js';
6
6
 
7
7
  interface TextStylesListProps {
@@ -49,9 +49,10 @@ interface TextStylesListProps {
49
49
  /** At most this many of each kind. */
50
50
  max?: number;
51
51
  /**
52
- * The view the host's editor is in. In `phone`, the Size row edits the
53
- * style's phone size (`sizePhone`): the desktop size shows grey behind it,
54
- * and an emptied box goes back to it. Left out: `desktop`, as before.
52
+ * The view the host's editor is in. In `tablet` and `phone`, only Size, Line
53
+ * spacing, Letter spacing, Paragraph spacing and Largest size are drawn, and
54
+ * each edits that view's value: the next wider view's number shows grey behind
55
+ * it, and an emptied box goes back to it. Left out: `desktop`, as before.
55
56
  */
56
57
  device?: TextStyleDevice;
57
58
  readOnly?: boolean;
@@ -99,7 +100,7 @@ interface TextStyleItemProps {
99
100
  onChange: (next: TextStyle) => void;
100
101
  /** Buttons at the end of the row, outside the button that opens it. */
101
102
  actions?: ReactNode;
102
- /** The editor's view: `phone` draws and edits the phone size. */
103
+ /** The editor's view: `tablet` and `phone` draw and edit that view's values. */
103
104
  device?: TextStyleDevice;
104
105
  readOnly?: boolean;
105
106
  }
@@ -1,37 +1,37 @@
1
- import{hexReadout as e,typedHex as s}from"../chunk-4FFDGEWA.js";import{DEFAULT_TEXT_STYLES_WORDS as t}from"../chunk-OGH6CC3E.js";export{DEFAULT_TEXT_STYLES_WORDS}from"../chunk-OGH6CC3E.js";import{FieldSlider as a}from"../chunk-ZEH6QLBH.js";import{TEXT_STYLE_KINDS as l,canAddTextStyle as i,TEXT_STYLE_MAX as n,isDefaultTextStyle as r,CAMPAIGN_TEXT_STYLE_SETTINGS as o,TEXT_STYLE_SETTINGS as d,textStyleRowSize as c,describeTextStyle as u,updateTextStyle as m,textStyleCaseCss as h,TEXT_STYLE_CASES as p,addTextStyle as v,removeTextStyle as f,TEXT_STYLE_RANGES as y}from"../chunk-YHZSBL2N.js";export{CAMPAIGN_TEXT_STYLE_SETTINGS,TEXT_STYLE_CASES,TEXT_STYLE_CASE_CSS,TEXT_STYLE_DEFAULT_COUNT,TEXT_STYLE_KINDS,TEXT_STYLE_MAX,TEXT_STYLE_RANGES,TEXT_STYLE_SETTINGS,addTextStyle,canAddTextStyle,defaultTextStyles,describeTextStyle,isDefaultTextStyle,isTextStyleCase,removeTextStyle,resolveTextStyle,textStyleCaseCss,textStyleCaseOfCss,textStyleRowSize,updateTextStyle,weightWord}from"../chunk-YHZSBL2N.js";import{FieldSelect as g}from"../chunk-KFWNGPW3.js";import"../chunk-JACEEVVF.js";import{SettingsSegmented as S}from"../chunk-DX3VILZ3.js";import{useWords as b}from"../chunk-MFIRYGHW.js";import{withTip as N}from"../chunk-P2VEMZH5.js";import{hsvToHex as C,Tooltip as T,ColorSwatch as k,Popover as x,ColorPickerPanel as w,colorSwatchClasses as z,IconButton as E,Button as O}from"efficient-shell/ui";import{useId as _,useState as L,useRef as A,useEffect as j,Fragment as M}from"react";import{TrashIcon as $,ChevronIcon as W,BoldIcon as Y,ItalicIcon as X,CaseLowerIcon as F,CaseCapitalizedIcon as G,CaseUpperIcon as H,CaseNormalIcon as I}from"efficient-shell/icons/efficient";import{jsxs as P,jsx as B,Fragment as D}from"react/jsx-runtime";var R=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>C({h:e,s:1,v:1})).join(", ")})`;function V({value:s,hex:t,colours:a,label:l,followsWord:i,anyWord:n,onChange:r,readOnly:o=!1}){const d=void 0!==s&&a.some(e=>e.key===s),c=void 0!==s&&!d;/* @__PURE__ */
2
- return P("div",{className:"es-ts-set","data-ts-setting":"color",children:[
3
- /* @__PURE__ */P("div",{className:"es-ts-top",children:[
4
- /* @__PURE__ */B("span",{className:"es-ts-sub",children:l}),
5
- /* @__PURE__ */B("span",{className:"es-ts-colour-read",children:t?e(t):i})]}),
6
- /* @__PURE__ */P("div",{className:"es-ts-swatches",role:"group","aria-label":l,children:[a.map(t=>/* @__PURE__ */B(T,{content:`${t.name} · ${e(t.value)}`,children:/* @__PURE__ */B(k,{color:t.value,size:"sm",className:"es-ts-swatch","aria-label":t.name,selected:s===t.key,disabled:o,onClick:()=>r(t.key)})},t.key)),
7
- /* @__PURE__ */B(T,{content:n,children:/* @__PURE__ */B(x,{trigger:/* @__PURE__ */B("span",{"aria-hidden":"true",className:"absolute inset-0",style:{background:R}}),triggerLabel:n,triggerClassName:z({size:"sm",selected:c,className:"es-ts-swatch es-ts-swatch--any"}),"aria-label":l,disabled:o,children:/* @__PURE__ */B(w,{className:"es-pick-window",value:t??"",onChange:e=>r(e),label:l,disabled:o})})})]})]})}function Z({styles:e,onChange:s,fonts:a,colours:d=[],settings:c=o,auto:u=[],fallback:m,sample:h,openId:p,defaultOpenId:y=null,onOpenChange:g,onAdd:S,rowActions:C,onRemove:T,max:k=n,device:x="desktop",readOnly:w=!1}){const z=b("textStyles",t),M=_(),[W,Y]=L(y),X=void 0!==p?p:W,F=e=>{void 0===p&&Y(e),g?.(e)},G=A(null),[H,I]=L(null);j(()=>{if(!H||!G.current)return;const e=[...G.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===H.id),s=e?e.querySelector(".es-ts-row"):G.current.querySelector(`.es-ts-add[data-ts-kind="${H.kind}"]`);s?.focus(),I(null)},[H]);/* @__PURE__ */
8
- return B("div",{className:"es-ts",ref:G,children:l.map(t=>{const l=e.filter(e=>e.kind===t),n=!i(e,t,k),o=!w&&!n;/* @__PURE__ */
9
- return P(q,{label:z.groups[t],children:[l.map(t=>{const l=C?.(t),i=null!=l&&!1!==l,n=Boolean(T)&&!w&&!r(t);/* @__PURE__ */
10
- return B(U,{style:t,fonts:a,colours:d,settings:c,auto:u,fallback:m,sample:h,device:x,readOnly:w,open:X===t.id,onOpenChange:e=>F(e?t.id:null),onChange:t=>s(e.map(e=>e.id===t.id?t:e)),actions:n||i?/* @__PURE__ */P(D,{children:[n?N(z.remove,/* @__PURE__ */B(E,{variant:"ghost-danger",size:"sm",className:"es-ts-del","aria-label":z.removeNamed({name:t.name}),onClick:()=>(t=>{if(w||!T)return;const a=f(e,t.id,{name:z.styleName});if(!a)return;const l=e.filter(e=>e.kind===t.kind),i=l[l.indexOf(t)+1];X===t.id&&F(null),s(a.styles),T(a.removed),I({id:i?.id??null,kind:t.kind})})(t),children:/* @__PURE__ */B($,{size:14,"aria-hidden":"true"})})):null,i?l:null]}):null},t.id)}),N(!w&&n?z.full({kind:t,max:k}):void 0,/* @__PURE__ */P(O,{variant:"link",className:"es-ts-add","data-ts-kind":t,disabled:w,"aria-disabled":!(w||!n)||void 0,"aria-describedby":!w&&n?`${M}-full-${t}`:void 0,onClick:()=>{o&&(t=>{if(w)return;const a=v(e,t,{max:k,name:z.styleName,make:S});a&&s(a.styles)})(t)},children:[
11
- /* @__PURE__ */B("span",{className:"es-ts-add-word",children:z.add[t]}),
12
- /* @__PURE__ */B("span",{className:"es-ts-count",children:z.count({n:l.length,max:k})})]})),w||!n?null:/* @__PURE__ */B("span",{id:`${M}-full-${t}`,className:"es-vh",children:z.full({kind:t,max:k})})]},t)})})}function q({label:e,children:s}){const t=_();/* @__PURE__ */
13
- return P("section",{className:"es-ts-section","aria-labelledby":t,children:[
14
- /* @__PURE__ */B("div",{className:"es-ts-group",id:t,children:e}),s]})}function U({style:e,fonts:s,colours:a=[],settings:l=o,auto:i=[],fallback:n,sample:r,open:h,onOpenChange:p,onChange:v,actions:f,device:y="desktop",readOnly:g=!1}){const S=b("textStyles",t),N=`${_()}-open-${e.id}`,C=new Set(i),T=d.filter(e=>l.includes(e)),k={...n?.(e)??{},...e.values},x="phone"===y,w=x&&void 0!==e.values.sizePhone?{...k,size:e.values.sizePhone}:k,z=s.find(e=>e.value===k.font),E={fontFamily:z?.family,fontSize:`${c(w.size??16)}px`,fontWeight:k.weight,fontStyle:k.italic?"italic":void 0};/* @__PURE__ */
15
- return P(M,{children:[
16
- /* @__PURE__ */P("div",{className:"es-ts-item","data-ts-id":e.id,children:[
17
- /* @__PURE__ */P("button",{type:"button",className:"es-ts-row","aria-expanded":h,"aria-controls":h?N:void 0,onClick:()=>p(!h),children:[
18
- /* @__PURE__ */B("span",{className:"es-ts-chev","aria-hidden":"true",children:/* @__PURE__ */B(W,{size:12})}),
19
- /* @__PURE__ */B("span",{className:"es-ts-name",style:E,children:e.name}),
20
- /* @__PURE__ */B("span",{className:"es-ts-meta",children:u(w,s,S,{autoSize:C.has("size")&&w===k&&void 0===e.values.size})})]}),f?/* @__PURE__ */B("div",{className:"es-ts-actions",children:f}):null]}),h?/* @__PURE__ */B("div",{className:"es-ts-open",id:N,children:/* @__PURE__ */B(J,{style:e,values:k,fonts:s,colours:a,settings:T,autoSet:C,sample:r??S.sample,words:S,phone:x,readOnly:g,set:s=>v(m([e],e.id,s)[0])})}):null]})}var K={none:I,upper:H,capitalize:G,lower:F};function J({style:e,values:t,fonts:l,colours:i,settings:n,autoSet:r,sample:o,words:d,phone:c,readOnly:u,set:m}){const p=e.values,v=l.find(e=>e.value===t.font),f=function(e,t){return e?t.find(s=>s.key===e)?.value??s(e)??void 0:void 0}(t.color,i),g=e=>"largestSize"===e||r.has(e),S=e=>g(e)?p[e]:t[e],b=S("size"),C=c&&void 0!==p.sizePhone?p.sizePhone:b,T=S("lineSpacing"),k=S("letterSpacing"),x=g("letterCase")?p.letterCase:t.letterCase,w={fontFamily:v?.family,fontSize:void 0===C?void 0:`${C}px`,fontWeight:t.weight,fontStyle:t.italic?"italic":void 0,lineHeight:void 0===T?void 0:String(T/100),letterSpacing:void 0===k?void 0:`${k}px`,color:f,textTransform:h(x)},z=e=>{const s=y[e],l=g(e);/* @__PURE__ */
21
- return B("div",{className:"es-ts-slider","data-ts-setting":e,children:/* @__PURE__ */B(a,{label:d.settings[e],value:p[e],onChange:s=>m({[e]:s}),min:s.min,max:s.max,step:s.step,shiftStep:s.shiftStep,sliderMin:s.sliderMin,sliderMax:s.sliderMax,unit:s.unit||void 0,styleValue:l?void 0:t[e],auto:l?d.auto:void 0,readOnly:u})},e)};/* @__PURE__ */
22
- return P(D,{children:[
23
- /* @__PURE__ */B("div",{className:"es-ts-preview",style:w,"aria-label":d.preview,children:o}),n.map(s=>{switch(s){case"font":/* @__PURE__ */
24
- return B(Q,{value:p.font,fonts:l,words:d,readOnly:u,set:m},s);case"color":/* @__PURE__ */
25
- return B(ee,{value:p.color,hex:f,colours:i,words:d,readOnly:u,set:m},s);case"emphasis":{const e=(t.weight??400)>=600,a=!1!==v?.italic;/* @__PURE__ */
26
- return P("div",{className:"es-ts-set","data-ts-setting":s,children:[
27
- /* @__PURE__ */B("span",{className:"es-ts-sub",children:d.settings.emphasis}),
28
- /* @__PURE__ */P("div",{className:"es-ts-icons",children:[N(d.bold,/* @__PURE__ */B(E,{className:"es-ts-icon","aria-label":d.bold,"aria-pressed":e,disabled:u,onClick:()=>m({weight:e?400:700}),children:/* @__PURE__ */B(Y,{size:16})})),u||a?N(d.italic,/* @__PURE__ */B(E,{className:"es-ts-icon","aria-label":d.italic,"aria-pressed":Boolean(t.italic),disabled:u,onClick:()=>m({italic:!t.italic||void 0}),children:/* @__PURE__ */B(X,{size:16})})):/* @__PURE__ */B(E,{className:"es-ts-icon","aria-label":d.italic,"aria-pressed":Boolean(t.italic),"aria-disabled":!0,disabledReason:d.italicMissing,children:/* @__PURE__ */B(X,{size:16})})]})]},s)}case"letterCase":/* @__PURE__ */
29
- return B(se,{value:p.letterCase??t.letterCase,auto:g("letterCase"),words:d,readOnly:u,set:m},s);case"largestSize":return"heading"===e.kind?z(s):null;case"size":return c?(()=>{const e=y.size;/* @__PURE__ */
30
- return B("div",{className:"es-ts-slider","data-ts-setting":"size","data-ts-device":"phone",children:/* @__PURE__ */B(a,{label:d.settings.size,value:p.sizePhone,onChange:e=>m({sizePhone:e}),min:e.min,max:e.max,step:e.step,shiftStep:e.shiftStep,sliderMin:e.sliderMin,sliderMax:e.sliderMax,unit:e.unit||void 0,styleValue:b,readOnly:u})},"size")})():z(s);default:return z(s)}})]})}function Q({value:e,fonts:s,words:t,readOnly:a,set:l}){const i=_();/* @__PURE__ */
31
- return P("div",{className:"es-ts-set","data-ts-setting":"font",children:[
32
- /* @__PURE__ */B("span",{className:"es-ts-sub",id:i,children:t.settings.font}),
33
- /* @__PURE__ */B(g,{value:e,options:s.map(e=>({label:e.label,value:e.value})),onChange:e=>l({font:e}),ariaLabelledBy:i,readOnly:a})]})}function ee({value:e,hex:s,colours:t,words:a,readOnly:l,set:i}){/* @__PURE__ */
34
- return B(V,{value:e,hex:s,colours:t,label:a.settings.color,followsWord:a.colour.follows,anyWord:a.colour.any,readOnly:l,onChange:e=>i({color:e})})}function se({value:e,auto:s,words:t,readOnly:a,set:l}){const i=p.map(e=>{const s=K[e];return{id:e,label:/* @__PURE__ */B(s,{size:16}),title:t.case[e]}}),n=s?[{id:"auto",label:/* @__PURE__ */B("span",{children:t.case.auto}),title:t.case.autoTitle},...i]:i;/* @__PURE__ */
35
- return P("div",{className:"es-ts-set","data-ts-setting":"letterCase",children:[
36
- /* @__PURE__ */B("span",{className:"es-ts-sub",children:t.settings.letterCase}),
37
- /* @__PURE__ */B(S,{options:n,value:e??(s?"auto":"none"),ariaLabel:t.settings.letterCase,disabled:a,onChange:e=>l({letterCase:"auto"===e?void 0:e})})]})}export{V as ColourSwatchRow,U as TextStyleItem,q as TextStylesGroup,Z as TextStylesList};
1
+ import{SettingsDefaultReset as e}from"../chunk-2T22IY3J.js";import{hexReadout as s,typedHex as t}from"../chunk-4FFDGEWA.js";import{DEFAULT_TEXT_STYLES_WORDS as a}from"../chunk-OGH6CC3E.js";export{DEFAULT_TEXT_STYLES_WORDS}from"../chunk-OGH6CC3E.js";import{FieldSlider as l}from"../chunk-TDEBPOWV.js";import{DEFAULT_PANEL_WORDS as i}from"../chunk-56ID6FKZ.js";import{TEXT_STYLE_KINDS as n,canAddTextStyle as r,TEXT_STYLE_MAX as o,isDefaultTextStyle as d,CAMPAIGN_TEXT_STYLE_SETTINGS as c,TEXT_STYLE_SETTINGS as u,textStyleViewValues as m,textStyleRowSize as h,describeTextStyle as p,updateTextStyle as f,textStyleCaseCss as v,TEXT_STYLE_VIEW_NUMBERS as g,TEXT_STYLE_CASES as y,addTextStyle as S,removeTextStyle as b,TEXT_STYLE_RANGES as T,textStyleViewKey as k}from"../chunk-53QUHEHK.js";export{CAMPAIGN_TEXT_STYLE_SETTINGS,TEXT_STYLE_CASES,TEXT_STYLE_CASE_CSS,TEXT_STYLE_DEFAULT_COUNT,TEXT_STYLE_KINDS,TEXT_STYLE_MAX,TEXT_STYLE_RANGES,TEXT_STYLE_SETTINGS,TEXT_STYLE_VIEW_NUMBERS,addTextStyle,canAddTextStyle,defaultTextStyles,describeTextStyle,isDefaultTextStyle,isTextStyleCase,removeTextStyle,resolveTextStyle,textStyleCaseCss,textStyleCaseOfCss,textStyleRowSize,textStyleViewKey,textStyleViewValues,updateTextStyle,weightWord}from"../chunk-53QUHEHK.js";import{viewFollows as N,isAuto as C}from"../chunk-DIOTWSCO.js";import{FieldSelect as x}from"../chunk-C63IB4VW.js";import{SettingsSegmented as E}from"../chunk-DX3VILZ3.js";import{SettingsField as w}from"../chunk-MIX7EGRG.js";import"../chunk-UMTUKSE6.js";import{useWords as O}from"../chunk-MFIRYGHW.js";import{withTip as _}from"../chunk-P2VEMZH5.js";import{hsvToHex as z,Tooltip as j,ColorSwatch as L,Popover as M,ColorPickerPanel as I,colorSwatchClasses as $,IconButton as W,Button as A}from"efficient-shell/ui";import{useId as X,useState as Y,useRef as D,useEffect as G,Fragment as V}from"react";import{TrashIcon as F,ChevronIcon as H,BoldIcon as R,ItalicIcon as U,CaseLowerIcon as B,CaseCapitalizedIcon as K,CaseUpperIcon as q,CaseNormalIcon as P}from"efficient-shell/icons/efficient";import{jsxs as Z,jsx as Q,Fragment as J}from"react/jsx-runtime";var ee=`conic-gradient(${[0,60,120,180,240,300,0].map(e=>z({h:e,s:1,v:1})).join(", ")})`;function se({value:e,hex:t,colours:a,label:l,followsWord:i,anyWord:n,onChange:r,readOnly:o=!1}){const d=void 0!==e&&a.some(s=>s.key===e),c=void 0!==e&&!d;/* @__PURE__ */
2
+ return Z("div",{className:"es-ts-set","data-ts-setting":"color",children:[
3
+ /* @__PURE__ */Z("div",{className:"es-ts-top",children:[
4
+ /* @__PURE__ */Q("span",{className:"es-ts-sub",children:l}),
5
+ /* @__PURE__ */Q("span",{className:"es-ts-colour-read",children:t?s(t):i})]}),
6
+ /* @__PURE__ */Z("div",{className:"es-ts-swatches",role:"group","aria-label":l,children:[a.map(t=>/* @__PURE__ */Q(j,{content:`${t.name} · ${s(t.value)}`,children:/* @__PURE__ */Q(L,{color:t.value,size:"sm",className:"es-ts-swatch","aria-label":t.name,selected:e===t.key,disabled:o,onClick:()=>r(t.key)})},t.key)),
7
+ /* @__PURE__ */Q(j,{content:n,children:/* @__PURE__ */Q(M,{trigger:/* @__PURE__ */Q("span",{"aria-hidden":"true",className:"absolute inset-0",style:{background:ee}}),triggerLabel:n,triggerClassName:$({size:"sm",selected:c,className:"es-ts-swatch es-ts-swatch--any"}),"aria-label":l,disabled:o,children:/* @__PURE__ */Q(I,{className:"es-pick-window",value:t??"",onChange:e=>r(e),label:l,disabled:o})})})]})]})}function te({styles:e,onChange:s,fonts:t,colours:l=[],settings:i=c,auto:u=[],fallback:m,sample:h,openId:p,defaultOpenId:f=null,onOpenChange:v,onAdd:g,rowActions:y,onRemove:T,max:k=o,device:N="desktop",readOnly:C=!1}){const x=O("textStyles",a),E=X(),[w,z]=Y(f),j=void 0!==p?p:w,L=e=>{void 0===p&&z(e),v?.(e)},M=D(null),[I,$]=Y(null);G(()=>{if(!I||!M.current)return;const e=[...M.current.querySelectorAll(".es-ts-item")].find(e=>e.dataset.tsId===I.id),s=e?e.querySelector(".es-ts-row"):M.current.querySelector(`.es-ts-add[data-ts-kind="${I.kind}"]`);s?.focus(),$(null)},[I]);/* @__PURE__ */
8
+ return Q("div",{className:"es-ts",ref:M,children:n.map(a=>{const n=e.filter(e=>e.kind===a),o=!r(e,a,k),c=!C&&!o;/* @__PURE__ */
9
+ return Z(ae,{label:x.groups[a],children:[n.map(a=>{const n=y?.(a),r=null!=n&&!1!==n,o=Boolean(T)&&!C&&!d(a);/* @__PURE__ */
10
+ return Q(le,{style:a,fonts:t,colours:l,settings:i,auto:u,fallback:m,sample:h,device:N,readOnly:C,open:j===a.id,onOpenChange:e=>L(e?a.id:null),onChange:t=>s(e.map(e=>e.id===t.id?t:e)),actions:o||r?/* @__PURE__ */Z(J,{children:[o?_(x.remove,/* @__PURE__ */Q(W,{variant:"ghost-danger",size:"sm",className:"es-ts-del","aria-label":x.removeNamed({name:a.name}),onClick:()=>(t=>{if(C||!T)return;const a=b(e,t.id,{name:x.styleName});if(!a)return;const l=e.filter(e=>e.kind===t.kind),i=l[l.indexOf(t)+1];j===t.id&&L(null),s(a.styles),T(a.removed),$({id:i?.id??null,kind:t.kind})})(a),children:/* @__PURE__ */Q(F,{size:14,"aria-hidden":"true"})})):null,r?n:null]}):null},a.id)}),_(!C&&o?x.full({kind:a,max:k}):void 0,/* @__PURE__ */Z(A,{variant:"link",className:"es-ts-add","data-ts-kind":a,disabled:C,"aria-disabled":!(C||!o)||void 0,"aria-describedby":!C&&o?`${E}-full-${a}`:void 0,onClick:()=>{c&&(t=>{if(C)return;const a=S(e,t,{max:k,name:x.styleName,make:g});a&&s(a.styles)})(a)},children:[
11
+ /* @__PURE__ */Q("span",{className:"es-ts-add-word",children:x.add[a]}),
12
+ /* @__PURE__ */Q("span",{className:"es-ts-count",children:x.count({n:n.length,max:k})})]})),C||!o?null:/* @__PURE__ */Q("span",{id:`${E}-full-${a}`,className:"es-vh",children:x.full({kind:a,max:k})})]},a)})})}function ae({label:e,children:s}){const t=X();/* @__PURE__ */
13
+ return Z("section",{className:"es-ts-section","aria-labelledby":t,children:[
14
+ /* @__PURE__ */Q("div",{className:"es-ts-group",id:t,children:e}),s]})}function le({style:e,fonts:s,colours:t=[],settings:l=c,auto:i=[],fallback:n,sample:r,open:o,onOpenChange:d,onChange:v,actions:g,device:y="desktop",readOnly:S=!1}){const b=O("textStyles",a),T=`${X()}-open-${e.id}`,k=new Set(i),N=u.filter(e=>l.includes(e)),C={...n?.(e)??{},...e.values},x=m(C,y),E=s.find(e=>e.value===C.font),w={fontFamily:E?.family,fontSize:`${h(x.size??16)}px`,fontWeight:C.weight,fontStyle:C.italic?"italic":void 0};/* @__PURE__ */
15
+ return Z(V,{children:[
16
+ /* @__PURE__ */Z("div",{className:"es-ts-item","data-ts-id":e.id,children:[
17
+ /* @__PURE__ */Z("button",{type:"button",className:"es-ts-row","aria-expanded":o,"aria-controls":o?T:void 0,onClick:()=>d(!o),children:[
18
+ /* @__PURE__ */Q("span",{className:"es-ts-chev","aria-hidden":"true",children:/* @__PURE__ */Q(H,{size:12})}),
19
+ /* @__PURE__ */Q("span",{className:"es-ts-name",style:w,children:e.name}),
20
+ /* @__PURE__ */Q("span",{className:"es-ts-meta",children:p(x,s,b,{autoSize:k.has("size")&&void 0===x.size})})]}),g?/* @__PURE__ */Q("div",{className:"es-ts-actions",children:g}):null]}),o?/* @__PURE__ */Q("div",{className:"es-ts-open",id:T,children:/* @__PURE__ */Q(ne,{style:e,values:C,fonts:s,colours:t,settings:N,autoSet:k,sample:r??b.sample,words:b,device:y,readOnly:S,set:s=>v(f([e],e.id,s)[0])})}):null]})}var ie={none:P,upper:q,capitalize:K,lower:B};function ne({style:s,values:a,fonts:n,colours:r,settings:o,autoSet:d,sample:c,words:u,device:h,readOnly:p,set:f}){const y=s.values,S=O("panel",i),b=n.find(e=>e.value===a.font),x=function(e,s){return e?s.find(s=>s.key===e)?.value??t(e)??void 0:void 0}(a.color,r),E=e=>"largestSize"===e||d.has(e),z=e=>E(e)?y[e]:a[e],j=m(y,h),L=j.size??z("size"),M=j.lineSpacing??z("lineSpacing"),I=j.letterSpacing??z("letterSpacing"),$=E("letterCase")?y.letterCase:a.letterCase,A={fontFamily:b?.family,fontSize:void 0===L?void 0:`${L}px`,fontWeight:a.weight,fontStyle:a.italic?"italic":void 0,lineHeight:void 0===M?void 0:String(M/100),letterSpacing:void 0===I?void 0:`${I}px`,color:x,textTransform:v($)},X=e=>{const s=T[e],t=E(e);/* @__PURE__ */
21
+ return Q("div",{className:"es-ts-slider","data-ts-setting":e,children:/* @__PURE__ */Q(l,{label:u.settings[e],value:y[e],onChange:s=>f({[e]:s}),min:s.min,max:s.max,step:s.step,shiftStep:s.shiftStep,sliderMin:s.sliderMin,sliderMax:s.sliderMax,unit:s.unit||void 0,styleValue:t?void 0:a[e],auto:t?u.auto:void 0,readOnly:p})},e)};/* @__PURE__ */
22
+ return Z(J,{children:[
23
+ /* @__PURE__ */Q("div",{className:"es-ts-preview",style:A,"aria-label":u.preview,children:c}),o.map(t=>{if("desktop"!==h)return g.includes(t)?"largestSize"===t&&"heading"!==s.kind?null:((s,t)=>{const a=T[s],i=k(s,t),n=N(z(s),"phone"===t?y[k(s,"tablet")]:void 0),r=!C(y[i]);/* @__PURE__ */
24
+ return Q("div",{className:"es-ts-slider","data-ts-setting":s,"data-ts-device":t,children:/* @__PURE__ */Q(w,{label:u.settings[s],changed:r,action:/* @__PURE__ */Q(e,{label:u.settings[s],changed:r,disabled:p,onReset:()=>f({[i]:void 0}),detail:void 0===n?u.auto:`${n}${a.unit}`,words:S}),children:/* @__PURE__ */Q(l,{bare:!0,label:u.settings[s],value:y[i],onChange:e=>f({[i]:e}),min:a.min,max:a.max,step:a.step,shiftStep:a.shiftStep,sliderMin:a.sliderMin,sliderMax:a.sliderMax,unit:a.unit||void 0,styleValue:n,auto:void 0===n?u.auto:void 0,readOnly:p})})},s)})(t,h):null;switch(t){case"font":/* @__PURE__ */
25
+ return Q(re,{value:y.font,fonts:n,words:u,readOnly:p,set:f},t);case"color":/* @__PURE__ */
26
+ return Q(oe,{value:y.color,hex:x,colours:r,words:u,readOnly:p,set:f},t);case"emphasis":{const e=(a.weight??400)>=600,s=!1!==b?.italic;/* @__PURE__ */
27
+ return Z("div",{className:"es-ts-set","data-ts-setting":t,children:[
28
+ /* @__PURE__ */Q("span",{className:"es-ts-sub",children:u.settings.emphasis}),
29
+ /* @__PURE__ */Z("div",{className:"es-ts-icons",children:[_(u.bold,/* @__PURE__ */Q(W,{className:"es-ts-icon","aria-label":u.bold,"aria-pressed":e,disabled:p,onClick:()=>f({weight:e?400:700}),children:/* @__PURE__ */Q(R,{size:16})})),p||s?_(u.italic,/* @__PURE__ */Q(W,{className:"es-ts-icon","aria-label":u.italic,"aria-pressed":Boolean(a.italic),disabled:p,onClick:()=>f({italic:!a.italic||void 0}),children:/* @__PURE__ */Q(U,{size:16})})):/* @__PURE__ */Q(W,{className:"es-ts-icon","aria-label":u.italic,"aria-pressed":Boolean(a.italic),"aria-disabled":!0,disabledReason:u.italicMissing,children:/* @__PURE__ */Q(U,{size:16})})]})]},t)}case"letterCase":/* @__PURE__ */
30
+ return Q(de,{value:y.letterCase??a.letterCase,auto:E("letterCase"),words:u,readOnly:p,set:f},t);case"largestSize":return"heading"===s.kind?X(t):null;default:return X(t)}})]})}function re({value:e,fonts:s,words:t,readOnly:a,set:l}){const i=X();/* @__PURE__ */
31
+ return Z("div",{className:"es-ts-set","data-ts-setting":"font",children:[
32
+ /* @__PURE__ */Q("span",{className:"es-ts-sub",id:i,children:t.settings.font}),
33
+ /* @__PURE__ */Q(x,{value:e,options:s.map(e=>({label:e.label,value:e.value})),onChange:e=>l({font:e}),ariaLabelledBy:i,readOnly:a})]})}function oe({value:e,hex:s,colours:t,words:a,readOnly:l,set:i}){/* @__PURE__ */
34
+ return Q(se,{value:e,hex:s,colours:t,label:a.settings.color,followsWord:a.colour.follows,anyWord:a.colour.any,readOnly:l,onChange:e=>i({color:e})})}function de({value:e,auto:s,words:t,readOnly:a,set:l}){const i=y.map(e=>{const s=ie[e];return{id:e,label:/* @__PURE__ */Q(s,{size:16}),title:t.case[e]}}),n=s?[{id:"auto",label:/* @__PURE__ */Q("span",{children:t.case.auto}),title:t.case.autoTitle},...i]:i;/* @__PURE__ */
35
+ return Z("div",{className:"es-ts-set","data-ts-setting":"letterCase",children:[
36
+ /* @__PURE__ */Q("span",{className:"es-ts-sub",children:t.settings.letterCase}),
37
+ /* @__PURE__ */Q(E,{options:n,value:e??(s?"auto":"none"),ariaLabel:t.settings.letterCase,disabled:a,onChange:e=>l({letterCase:"auto"===e?void 0:e})})]})}export{se as ColourSwatchRow,le as TextStyleItem,ae as TextStylesGroup,te as TextStylesList};
@@ -68,22 +68,32 @@ interface TextStyleValues {
68
68
  /** px; headings only — the largest a heading is drawn anywhere on the site. */
69
69
  largestSize?: number;
70
70
  /**
71
- * px; the size on a PHONE (Lewis 2026-10-19: Heading 1 at 106 px on a 390 px
72
- * screen). Absent = the phone draws `size`. Edited on the Size row itself,
73
- * in the phone view (`TextStylesList`'s `device`), never as a row of its own.
74
- */
75
- sizePhone?: number;
76
- /**
77
- * px; the size on a TABLET (three views, Lewis 2026-10-09 / 10-23). Absent =
78
- * AUTO: the tablet works its size out from `size` by the text-size rule
79
- * (`AUTO_RULES.textSize` in `screen/lib/content/view-tiers`, x0.85 to 1px),
80
- * and a `sizePhone` left absent follows it (x0.7 of `size`). Nothing reads it
81
- * yet: the panel and the rendering come in later PRs of the plan.
71
+ * The same five numbers per view (Lewis 2026-10-19: Heading 1 at 106 px on a
72
+ * 390 px screen; 2026-11-02: the 5 rows). Absent = the view draws the next
73
+ * wider view. Edited on the setting's own row in that view
74
+ * (`TextStylesList`'s `device`), never as a row of its own.
82
75
  */
83
76
  sizeTablet?: number;
77
+ sizePhone?: number;
78
+ lineSpacingTablet?: number;
79
+ lineSpacingPhone?: number;
80
+ letterSpacingTablet?: number;
81
+ letterSpacingPhone?: number;
82
+ paragraphSpacingTablet?: number;
83
+ paragraphSpacingPhone?: number;
84
+ largestSizeTablet?: number;
85
+ largestSizePhone?: number;
84
86
  }
85
- /** Which view the list edits: the phone view's Size row writes `sizePhone`. */
86
- type TextStyleDevice = 'desktop' | 'phone';
87
+ /** Which view the list edits: the tablet and phone views' rows write that view's value. */
88
+ type TextStyleDevice = 'desktop' | 'tablet' | 'phone';
89
+ /** The settings a style keeps per view. Every other setting is the desktop's. */
90
+ declare const TEXT_STYLE_VIEW_NUMBERS: readonly ["size", "lineSpacing", "letterSpacing", "paragraphSpacing", "largestSize"];
91
+ type TextStyleViewNumber = (typeof TEXT_STYLE_VIEW_NUMBERS)[number];
92
+ /** The key a view's value of `key` is stored under. */
93
+ declare function textStyleViewKey(key: TextStyleViewNumber, device: 'tablet' | 'phone'): `${TextStyleViewNumber}${'Tablet' | 'Phone'}`;
94
+ /** What a view draws: its own value, else the next wider view's. The same
95
+ * object when no view value moves anything. */
96
+ declare function textStyleViewValues(values: TextStyleValues, device: TextStyleDevice): TextStyleValues;
87
97
  interface TextStyle {
88
98
  /** The host's, stable: the list never renames an id. */
89
99
  id: string;
@@ -272,4 +282,4 @@ declare function describeTextStyle(values: TextStyleValues, fonts: readonly Text
272
282
  autoSize?: boolean;
273
283
  }): string;
274
284
 
275
- export { CAMPAIGN_TEXT_STYLE_SETTINGS, TEXT_STYLE_CASES, TEXT_STYLE_CASE_CSS, TEXT_STYLE_DEFAULT_COUNT, TEXT_STYLE_KINDS, TEXT_STYLE_MAX, TEXT_STYLE_RANGES, TEXT_STYLE_SETTINGS, type TextStyle, type TextStyleAuto, type TextStyleCase, type TextStyleCaseCss, type TextStyleColour, type TextStyleDevice, type TextStyleFont, type TextStyleKind, type TextStyleNumber, type TextStyleRange, type TextStyleSetting, type TextStyleValues, addTextStyle, canAddTextStyle, defaultTextStyles, describeTextStyle, isDefaultTextStyle, isTextStyleCase, removeTextStyle, resolveTextStyle, textStyleCaseCss, textStyleCaseOfCss, textStyleRowSize, updateTextStyle, weightWord };
285
+ export { CAMPAIGN_TEXT_STYLE_SETTINGS, TEXT_STYLE_CASES, TEXT_STYLE_CASE_CSS, TEXT_STYLE_DEFAULT_COUNT, TEXT_STYLE_KINDS, TEXT_STYLE_MAX, TEXT_STYLE_RANGES, TEXT_STYLE_SETTINGS, TEXT_STYLE_VIEW_NUMBERS, type TextStyle, type TextStyleAuto, type TextStyleCase, type TextStyleCaseCss, type TextStyleColour, type TextStyleDevice, type TextStyleFont, type TextStyleKind, type TextStyleNumber, type TextStyleRange, type TextStyleSetting, type TextStyleValues, type TextStyleViewNumber, addTextStyle, canAddTextStyle, defaultTextStyles, describeTextStyle, isDefaultTextStyle, isTextStyleCase, removeTextStyle, resolveTextStyle, textStyleCaseCss, textStyleCaseOfCss, textStyleRowSize, textStyleViewKey, textStyleViewValues, updateTextStyle, weightWord };