efficient-easel 26.3.0 → 26.5.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.
@@ -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: number | ((props: BoxFieldRenderProps<unknown>) => number);
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. */
@@ -378,14 +482,19 @@ type SidesPaddingOptions = {
378
482
  /** What an EMPTY side draws, per side, shown in grey (default 0). */
379
483
  fallback?: Partial<Record<PadSide, number>>;
380
484
  /**
381
- * What an EMPTY side draws, as a HOOK, for a number the host holds live
382
- * (the campaign's Button padding, which the merchant changes in Styles).
383
- * Read on each render; a side it leaves out rests on `fallback`. Left out,
384
- * `fallback` alone is what an empty side draws. It is a React hook, called
385
- * by the row: give it ALWAYS or NEVER for one field set, never only
386
- * sometimes, or the row's hook count changes between renders.
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.
387
491
  */
388
- useFallback?: () => Partial<Record<PadSide, number>> | undefined;
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;
389
498
  /** The `Padding` group head before the row (default true). */
390
499
  group?: boolean;
391
500
  min?: number;
@@ -436,6 +545,14 @@ interface AlignmentOptions {
436
545
  * desktop glyph (a word does not fit a 288px strip beside the other glyphs)
437
546
  * and named by the word. It takes the place of `inherit` when both are set. */
438
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;
439
556
  }
440
557
  /** What a host says about a Block alignment row: where the block sits in its
441
558
  * parent. Always Left / Center / Right (the three places a block can stand). */
@@ -449,6 +566,8 @@ interface BlockAlignmentOptions {
449
566
  inherit?: string;
450
567
  /** This is the phone's row: its first answer is Match desktop, as a glyph. */
451
568
  phone?: boolean;
569
+ /** Where the pair keeps the phone value, as {@link AlignmentOptions.access}. */
570
+ access?: PhoneValueAccess;
452
571
  }
453
572
  /**
454
573
  * The segmented strip: easel's `SettingsSegmented`, with an option's `value`
@@ -482,6 +601,15 @@ declare function placementGridView(say: BoxFieldSay, { label, value, onChange, p
482
601
  onChange: (next: string) => void;
483
602
  points: readonly PlacementPoint[];
484
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;
485
613
  /**
486
614
  * Every builder, speaking the host's words: `say` answers the host's word for
487
615
  * each English word a row draws. Bind it ONCE, where the host's controls are
@@ -598,4 +726,4 @@ declare const boxFieldSet: (opts?: BoxFieldSetOptions) => {
598
726
  _gNudge: BoxField<undefined>;
599
727
  };
600
728
 
601
- 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-6F6OAL3C.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
+ 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";
@@ -3,6 +3,10 @@ import { ColorPreset } from 'efficient-shell/ui';
3
3
  export { BUTTON_PAD_KEYS, BUTTON_STYLE_KEYS } from '../content/style-keys.js';
4
4
  import 'react';
5
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';
6
10
  import '../../../ScreenDocumentContext-DPW_6gOC.js';
7
11
  import '../../../blocks/index.js';
8
12
  import '../../../types-BljCVdzR.js';
@@ -1 +1 @@
1
- export{buttonFieldSet}from"../../../chunk-C4HXU4HJ.js";import"../../../chunk-RKLDSLU6.js";import"../../../chunk-6F6OAL3C.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";
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';
@@ -3,6 +3,10 @@ import { ColorPreset } from 'efficient-shell/ui';
3
3
  export { CORNER_SIDES } from '../content/style-keys.js';
4
4
  import { ValueAccess, BoxField, BoxFieldSay } from './box-fields.js';
5
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';
6
10
  import '../../../ScreenDocumentContext-DPW_6gOC.js';
7
11
  import '../../../blocks/index.js';
8
12
  import '../../../types-BljCVdzR.js';
@@ -1 +1 @@
1
- export{BORDER_WIDTH_MAX,CORNER_RADIUS_MAX,borderField,colourField,cornersField,keptByRow,styleFieldBuilders}from"../../../chunk-RKLDSLU6.js";import"../../../chunk-6F6OAL3C.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{CORNER_SIDES}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";
1
+ export{BORDER_WIDTH_MAX,CORNER_RADIUS_MAX,borderField,colourField,cornersField,keptByRow,styleFieldBuilders}from"../../../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{CORNER_SIDES}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";