asciify-engine 4.16.0 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/kit.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { GlyphField, GlyphFieldOptions } from './field.cjs';
2
- import { C as CHARACTER_SETS } from './characters-BgG9AZQl.cjs';
2
+ import { C as CHARACTER_SETS } from './characters-BgECi5Lf.cjs';
3
3
 
4
4
  /** Options every kit component takes. */
5
5
  interface KitOptions {
@@ -270,30 +270,33 @@ declare function skeleton(element: HTMLElement, options?: SkeletonOptions): Skel
270
270
 
271
271
  type PillTone = 'green' | 'amber' | 'red' | 'neutral' | 'new';
272
272
  interface PillOptions extends KitOptions {
273
- /** The tone of a pill without `data-tone`. `new` is a solid pill that takes a sheen on hover. Default `neutral`. */
273
+ /** The tone of a pill without `data-tone`. `new` is a solid pill led by a sparkle. Default `neutral`. */
274
274
  tone?: PillTone;
275
- /** A live state such as Live or Syncing: the indicator breathes and a sweep crosses the pill every few seconds. `data-live` on a pill wins. Default false. */
275
+ /**
276
+ * A live state: the indicator moves. Amber turns a half-filled dot like a spinner (syncing); any other tone breathes its dot.
277
+ * `data-live` on a pill wins. Default false. Neutral shows an open ring, and a pill turning red blinks its dot open twice.
278
+ */
276
279
  live?: boolean;
277
- /** A three-character indicator on status pills, drawn over the pill's `[data-dot]` element (one is added when missing). Default true. */
280
+ /** A one-cell glyph before the label, drawn over the pill's `[data-dot]` element (one is added when missing): a status dot, or a `new` pill's sparkle. Default true. */
278
281
  indicator?: boolean;
279
- /** A gradient sheen of characters passes once across a `new` pill when the pointer enters it. Default true. */
282
+ /** A `new` pill's sparkle twinkles when the pointer enters it. Default true. */
280
283
  sheen?: boolean;
281
284
  /** Glyph hues to paint, as `[r, g, b]` 0–255, for the light and dark ground. */
282
285
  tones?: Partial<Record<'light' | 'dark', Partial<Record<PillTone, [number, number, number]>>>>;
283
286
  }
284
287
  interface PillHandle extends KitHandle<PillOptions> {
285
- /** Runs the sheen once across one pill, or every `new` pill. */
288
+ /** Twinkles the sparkle on one pill, or on every `new` pill. */
286
289
  sheen(pill?: HTMLElement): void;
287
290
  /** Sets a count pill (`data-count`) to `value`; only the changed digits roll. Without `pill`, the first count pill. */
288
291
  count(value: number | string, pill?: HTMLElement): void;
289
292
  /** Re-reads each pill's `data-tone` and `data-live`; tone changes ease over 240ms. `update()` does this too. */
290
293
  refresh(): void;
291
294
  }
292
- /** Glyph hues painted into the source. The field normalises each hue and takes the glyph from its brightness. */
295
+ /** Glyph hues painted into the source. The field normalises each hue and takes the glyph from its brightness. `new` is the neutral sparkle. */
293
296
  declare const PILL_TONES: Record<'light' | 'dark', Record<PillTone, [number, number, number]>>;
294
297
  /**
295
- * Pills and badges with a strip of characters in their tone: a breathing live indicator, a sweep across live states, a sheen on
296
- * `new` pills and rolling digits on count pills. One element gets a field under its text; a list shares one field over their common
298
+ * Pills and badges whose characters stay inside them: a glyph dot in each status pill's tone that breathes while live, turns
299
+ * while syncing and blinks on failure, a sparkle on `new` pills and rolling digits on count pills. One element gets a field under its text; a list shares one field over their common
297
300
  * container (one WebGL context for all), with each pill's labels lifted above it.
298
301
  */
299
302
  declare function pill(target: HTMLElement | Iterable<HTMLElement>, options?: PillOptions): PillHandle;
@@ -303,7 +306,7 @@ interface TabsOptions extends KitOptions {
303
306
  tabs?: string;
304
307
  /** The tab shown first. Default: the one with `aria-selected="true"`, else 0. */
305
308
  active?: number;
306
- /** How long the indicator streams to a new tab, in ms. Default 280. */
309
+ /** How long the indicator glides to a new tab, in ms. Default 440. */
307
310
  duration?: number;
308
311
  /** How the kit shows panels named by `aria-controls`: `hidden` toggles the attribute, `attribute` toggles `data-active`, `none` leaves them. Default `hidden`. */
309
312
  panels?: 'hidden' | 'attribute' | 'none';
@@ -313,11 +316,15 @@ interface TabsOptions extends KitOptions {
313
316
  onChange?: (index: number, tab: HTMLElement) => void;
314
317
  }
315
318
  interface TabsHandle extends KitHandle<TabsOptions> {
316
- /** Selects a tab; the indicator streams across to it. `focus` moves keyboard focus too. */
319
+ /** Selects a tab; the indicator glides across to it. `focus` moves keyboard focus too. */
317
320
  select(index: number, focus?: boolean): void;
318
321
  readonly active: number;
319
322
  }
320
- /** Segmented tabs whose active indicator is a pill of characters that streams across and condenses under the new tab. */
323
+ /**
324
+ * Segmented tabs with a gliding indicator. The pill itself is yours to style from `--tabs-x`, `--tabs-y`, `--tabs-w` and `--tabs-h`,
325
+ * which the kit sets on the tablist every frame, so its outline stays crisp; the field draws a row of characters along its foot
326
+ * that streaks dense toward the leading end in flight and settles into an even, tapered line as it lands.
327
+ */
321
328
  declare function tabs(tablist: HTMLElement, options?: TabsOptions): TabsHandle;
322
329
 
323
330
  /** One update from an image provider. Either may be a Blob or a URL. */
@@ -521,6 +528,10 @@ interface CommandPaletteOptions extends KitOptions {
521
528
  onRun?: (index: number, row: HTMLElement) => void;
522
529
  /** Called after the palette opens or closes. */
523
530
  onOpenChange?: (open: boolean) => void;
531
+ /** A highlight that glides behind the selected row. `false` when your rows style `aria-selected` themselves. Default true. */
532
+ highlight?: boolean;
533
+ /** Rows that carry the AI signature: a sweep of characters runs through their highlight while selected. Default `[data-ai]`. */
534
+ ai?: string;
524
535
  }
525
536
  interface CommandPaletteHandle extends KitHandle<CommandPaletteOptions> {
526
537
  /** Condenses the palette out of the trigger. `focus` moves focus to the input (default true). */
@@ -528,7 +539,7 @@ interface CommandPaletteHandle extends KitHandle<CommandPaletteOptions> {
528
539
  /** Dissolves the palette back into the trigger. */
529
540
  close(): void;
530
541
  toggle(): void;
531
- /** Moves the selection; the marker glides to the row. */
542
+ /** Moves the selection; the highlight glides to the row. */
532
543
  select(index: number): void;
533
544
  /** Runs a row as if it were clicked. */
534
545
  run(index?: number): void;
@@ -536,8 +547,8 @@ interface CommandPaletteHandle extends KitHandle<CommandPaletteOptions> {
536
547
  readonly selected: number;
537
548
  }
538
549
  /**
539
- * A command palette that condenses out of its trigger in blocks of characters and dissolves back into it, with a glyph marker
540
- * in the selected row's gutter that glides between rows.
550
+ * A command palette that condenses out of its trigger in blocks of characters and dissolves back into it. A highlight glides
551
+ * between rows, rows that a search brings in resolve out of characters, and an AI row's highlight carries a sweep of characters.
541
552
  */
542
553
  declare function commandPalette(panel: HTMLElement, options?: CommandPaletteOptions): CommandPaletteHandle;
543
554
 
@@ -602,15 +613,15 @@ declare function likeBurst(button: HTMLElement, options?: LikeBurstOptions): Lik
602
613
  interface BlockChartOptions extends KitOptions {
603
614
  /** The bars, left to right. */
604
615
  values?: readonly number[];
605
- /** A name per bar, read by screen readers and passed to `onHover`. */
616
+ /** A name per bar, read by screen readers and passed to `onHover`. `set()` matches old and new bars by label, so shared bars glide into place. */
606
617
  labels?: readonly string[];
607
618
  /** The value the top of the plot stands for. Default: the largest value plus 4%. */
608
619
  max?: number;
609
- /** How long each bar grows, in ms. Default 520. */
620
+ /** How long bars grow, glide and resize, in ms. Default 560. */
610
621
  duration?: number;
611
622
  /** Grow the bars in the first time the chart comes into view. `false` draws them in place at once, as in a view that is swapped in. Default true. */
612
623
  intro?: boolean;
613
- /** Ms between bars growing. Default 45 for up to 7 bars, else 9. */
624
+ /** Ms between bars growing. Default 45 for up to 7 bars, else 12. */
614
625
  stagger?: number;
615
626
  /** Formats values for the screen reader table. Default `toLocaleString()`. */
616
627
  format?: (value: number) => string;
@@ -618,31 +629,31 @@ interface BlockChartOptions extends KitOptions {
618
629
  onHover?: (index: number | null, value: number | null, label: string | null) => void;
619
630
  }
620
631
  interface BlockChartHandle extends KitHandle<BlockChartOptions> {
621
- /** New values (and labels); the bars grow again. */
632
+ /** New values (and labels); bars with a matching label glide and resize, new ones grow in, dropped ones sink away. */
622
633
  set(values: readonly number[], labels?: readonly string[]): void;
623
- /** Lights one bar and dims the rest, or `null` for the resting emphasis on the last bar. */
634
+ /** Lights one bar and fades the rest, or `null` for the resting emphasis on the last bar. */
624
635
  highlight(index: number | null): void;
625
636
  readonly active: number | null;
626
637
  readonly values: readonly number[];
627
638
  }
628
- /** A bar chart drawn in columns of characters: bars grow in staggered, the last is emphasised, and hover lights one and dims the rest. */
639
+ /** A bar chart drawn in columns of characters on a whole-cell grid: bars grow in staggered, the last is lit, hover lights one and fades the rest. */
629
640
  declare function blockChart(element: HTMLElement, options?: BlockChartOptions): BlockChartHandle;
630
641
 
631
642
  interface PageDissolveOptions extends KitOptions {
632
- /** Where the dissolve starts: an element (such as the tab that was clicked) or a point in the container's CSS pixels. Default: top centre. */
643
+ /** Where the wave starts: an element (such as the tab that was clicked) or a point in the container's CSS pixels. Default: top centre. */
633
644
  origin?: HTMLElement | {
634
645
  x: number;
635
646
  y: number;
636
647
  } | null;
637
- /** Ms the old view takes to break up. Default 140. */
648
+ /** Ms the old view takes to break up from the origin outward. Default 300. */
638
649
  dissolve?: number;
639
- /** Ms the new view takes to condense. Default 160. */
650
+ /** Ms the new view takes to condense in behind it, from the same origin. Default 300. */
640
651
  condense?: number;
641
652
  }
642
653
  interface PageDissolveHandle extends KitHandle<PageDissolveOptions> {
643
654
  /**
644
- * The view breaks into its own characters from `origin`, `render` swaps the content underneath, and the new view condenses
645
- * out of characters. Swaps queue; each promise resolves once its view is crisp again.
655
+ * The crisp view hands over to its own characters, a wave from `origin` breaks it up, `render` swaps the content underneath and the
656
+ * new view condenses in behind the same wave, then hands back to crisp HTML. Swaps queue; each promise resolves once its view is crisp.
646
657
  */
647
658
  swap(render: () => void | Promise<void>, origin?: HTMLElement | {
648
659
  x: number;
@@ -650,7 +661,7 @@ interface PageDissolveHandle extends KitHandle<PageDissolveOptions> {
650
661
  } | null): Promise<void>;
651
662
  readonly busy: boolean;
652
663
  }
653
- /** A page or panel transition: the view dissolves into characters from where the user clicked and the next view condenses in. */
664
+ /** A page or panel transition: one wave of characters from where the user clicked carries the old view out and the next one in. */
654
665
  declare function pageDissolve(container: HTMLElement, options?: PageDissolveOptions): PageDissolveHandle;
655
666
 
656
667
  interface SwipeDeckOptions extends KitOptions {
@@ -727,13 +738,15 @@ interface ToastStackOptions extends KitOptions {
727
738
  render?: (toast: Toast, id: number) => HTMLElement;
728
739
  /** Accessible name of the list. Default `Notifications`. */
729
740
  label?: string;
730
- /** At rest a comet of characters runs round the newest toast's edge every few seconds, outside its text. Default true. */
741
+ /** @deprecated Ignored: toasts no longer draw anything round their edge at rest. */
731
742
  glint?: boolean;
743
+ /** Drag a toast sideways to dismiss it; it breaks into characters that carry on the way it was thrown. Default true. */
744
+ swipe?: boolean;
732
745
  }
733
746
  interface ToastStackHandle extends KitHandle<ToastStackOptions> {
734
747
  /** Adds a toast at the front, gathering out of scattered characters. Returns its id. */
735
748
  push(toast: Toast): number;
736
- /** Takes a toast out: it breaks into characters that drift up and away while the stack closes up. */
749
+ /** Takes a toast out: it breaks into characters that drift away while the stack closes up behind it. */
737
750
  dismiss(id: number): void;
738
751
  /** Dismisses every toast. */
739
752
  clear(): void;
@@ -748,9 +761,7 @@ declare function toastStack(container: HTMLElement, options?: ToastStackOptions)
748
761
 
749
762
  type ThinkingState = 'thinking' | 'streaming' | 'done';
750
763
  interface ThinkingOptions extends KitOptions {
751
- /** Line-shaped bands of drifting dots shown while thinking. Default 3. */
752
- lines?: number;
753
- /** An element to write the status into: `Thinking…`, then `Thought for 2s`. */
764
+ /** The status element: `Thinking…` while a wave of rolling characters runs through it, then `Thought for 2s`. */
754
765
  label?: HTMLElement | null;
755
766
  /** The status texts. */
756
767
  labels?: {
@@ -759,23 +770,32 @@ interface ThinkingOptions extends KitOptions {
759
770
  };
760
771
  /** Start thinking at once. Default true; false waits for `think()`. */
761
772
  start?: boolean;
762
- /** Ms between one word and the next fading in. Default 38. */
773
+ /** Ms between one word of the answer and the next fading in. Default 38. */
763
774
  stagger?: number;
764
- /** A dotted rule under the finished answer. Default true. */
765
- rule?: boolean;
775
+ /** Ms one character of the label takes to roll through its glyphs and back. Default 520. */
776
+ roll?: number;
777
+ /** Ms between neighbouring characters as the wave runs across the label. Default 55. */
778
+ wave?: number;
779
+ /** Glyphs the label rolls through. Default `#%*+=-:`. */
780
+ glyphs?: string;
766
781
  /** Called on each state change; `seconds` is how long it thought, once known. For a status you render yourself. */
767
782
  onState?: (state: ThinkingState, seconds: number) => void;
783
+ /** @deprecated The dot bands were removed in 4.17; ignored. */
784
+ lines?: number;
785
+ /** @deprecated The dotted rule was removed in 4.17; ignored. */
786
+ rule?: boolean;
768
787
  }
769
788
  interface ThinkingHandle extends KitHandle<ThinkingOptions> {
770
789
  /** Clears the answer and thinks again, as for Regenerate. */
771
790
  think(): void;
772
- /** Writes the answer, word by word, as the dots give way. Pass a string or an async iterable of chunks. Resolves when it has settled. */
791
+ /** Writes the answer, word by word, as the label settles. Pass a string or an async iterable of chunks. Resolves when it has settled. */
773
792
  stream(text: string | AsyncIterable<string>): Promise<void>;
774
793
  readonly state: ThinkingState;
775
794
  }
776
795
  /**
777
- * The thinking state of an assistant reply: line-shaped bands of drifting dots while the model thinks, then the answer
778
- * fades in word by word as the dots give way, leaving a quiet dotted rule under it.
796
+ * The thinking state of an assistant reply. While the model thinks, a wave runs through the status label: each letter in
797
+ * turn rolls up through glyphs and lands back on itself, in the label's own font. When the answer starts, every letter rolls
798
+ * once more into `Thought for 2s`, and the answer fades in word by word.
779
799
  */
780
800
  declare function thinking(element: HTMLElement, options?: ThinkingOptions): ThinkingHandle;
781
801
 
@@ -857,7 +877,7 @@ interface AccordionOptions extends KitOptions {
857
877
  images: (string | AccordionImage)[];
858
878
  /** The panel open at first. Default 0. */
859
879
  open?: number;
860
- /** Ms a panel takes to open. Default 280. */
880
+ /** Ms a panel takes to settle open; the panels move on one critically damped spring, so a change mid-move carries its speed. Default 420. */
861
881
  duration?: number;
862
882
  /** Accessible name of the group. Default `Images`. */
863
883
  label?: string;
@@ -870,7 +890,8 @@ interface AccordionHandle extends KitHandle<AccordionOptions> {
870
890
  }
871
891
  /**
872
892
  * A strip of image panels: the open one shows its photo, the closed ones the same photos in characters. Pointing at,
873
- * pressing or focusing a panel opens it, and as it opens its characters flare denser for a beat, then give way to the photo.
893
+ * pressing or focusing a panel opens it. Width, photo and caption all follow one spring per panel, so the characters and the photo
894
+ * cross over without a gap and a change of mind mid-move carries on smoothly.
874
895
  */
875
896
  declare function accordion(element: HTMLElement, options: AccordionOptions): AccordionHandle;
876
897
 
@@ -888,7 +909,7 @@ interface DropzoneOptions extends KitOptions {
888
909
  onError?: (message: string, file: File) => void;
889
910
  /** Largest file accepted, in bytes. Default 10 MB. */
890
911
  maxBytes?: number;
891
- /** Ms the image takes to develop in characters. Default 720. */
912
+ /** Ms the image takes to develop in characters. Default 900. */
892
913
  develop?: number;
893
914
  /** File name for `download()`. Default `<name>-ascii.png`. */
894
915
  filename?: string;
@@ -907,8 +928,8 @@ interface DropzoneHandle extends KitHandle<DropzoneOptions> {
907
928
  readonly state: DropState;
908
929
  }
909
930
  /**
910
- * An image dropzone whose border is a quiet ring of characters that thickens and breathes while a file is dragged over.
911
- * A dropped image develops in characters, in its own colours. Any element inside with `data-dropzone="pick"`, `"clear"`
931
+ * An image dropzone whose border is a quiet ring of characters that comes alive while a file is dragged over.
932
+ * A dropped image opens out from the drop point in characters, in its own colours. Any element inside with `data-dropzone="pick"`, `"clear"`
912
933
  * or `"download"` is wired to that action. Without content of your own it adds a title, hint and Choose file button.
913
934
  */
914
935
  declare function dropzone(element: HTMLElement, options?: DropzoneOptions): DropzoneHandle;
@@ -935,7 +956,7 @@ interface PullRefreshOptions extends KitOptions {
935
956
  onRefresh: () => unknown;
936
957
  /** The element that moves down with the pull. Default the first child. */
937
958
  content?: HTMLElement | null;
938
- /** Pull distance in px that triggers a refresh on release. Default 88. */
959
+ /** Pull distance in px that triggers a refresh on release. Default 64. */
939
960
  threshold?: number;
940
961
  /** What a screen reader hears. */
941
962
  messages?: {
@@ -954,8 +975,8 @@ interface PullRefreshHandle extends KitHandle<PullRefreshOptions> {
954
975
  readonly state: PullState;
955
976
  }
956
977
  /**
957
- * Pull to refresh: dragging the content down at the top gathers an orb of characters in the gap, which tightens into a
958
- * ring at the threshold. Let go past it and the ring spins while `onRefresh` runs, then draws a check and springs back.
978
+ * Pull to refresh: dragging the content down at the top draws a small ring of characters round in the gap, closing it at the
979
+ * threshold with a small pop. Let go past it and the ring opens into a spinning arc while `onRefresh` runs, then draws a check and springs back.
959
980
  */
960
981
  declare function pullRefresh(element: HTMLElement, options: PullRefreshOptions): PullRefreshHandle;
961
982
 
@@ -1063,6 +1084,9 @@ declare const drift: BackgroundPreset;
1063
1084
  /** The drifting ground drawn as dots, clear around your content. `cellSize` is the dot spacing. */
1064
1085
  declare const halftone: BackgroundPreset;
1065
1086
 
1087
+ /** A fine dot grid that swells in slow rolling waves, quiet in the middle; dots rise under the pointer. `cellSize` is the dot spacing. */
1088
+ declare const swell: BackgroundPreset;
1089
+
1066
1090
  /** A word becomes the background, drawn by the GPU with a soft wake. Set it with `text`; `look: { scene: 'orb' }` for the orb. */
1067
1091
  declare const wordField: BackgroundPreset;
1068
1092
 
@@ -1159,10 +1183,102 @@ type TemplateDraw = (ctx: CanvasRenderingContext2D, width: number, height: numbe
1159
1183
  */
1160
1184
  declare function mountCanvas(context: BackgroundContext, draw: TemplateDraw, warmFrames?: number): BackgroundRun | null;
1161
1185
 
1186
+ /**
1187
+ * The Studio's 24 render styles as the glyph field draws them: the glyph-like styles are ramps, the halftone is the dot mark,
1188
+ * and the tile and print styles are field marks of the same name.
1189
+ */
1190
+ declare const KIT_STYLES: {
1191
+ readonly ascii: {
1192
+ readonly mark: "glyph";
1193
+ readonly charset: " .:-=+*#%@";
1194
+ };
1195
+ readonly blocks: {
1196
+ readonly mark: "glyph";
1197
+ readonly charset: " ░▒▓█";
1198
+ };
1199
+ readonly braille: {
1200
+ readonly mark: "glyph";
1201
+ readonly charset: " ⠁⠃⠇⡇⣇⣧⣷⣿";
1202
+ };
1203
+ readonly dots: {
1204
+ readonly mark: "dot";
1205
+ };
1206
+ readonly lines: {
1207
+ readonly mark: "glyph";
1208
+ readonly charset: " -═╪╬";
1209
+ };
1210
+ readonly cross: {
1211
+ readonly mark: "glyph";
1212
+ readonly charset: " ·+xX#";
1213
+ };
1214
+ readonly diagonal: {
1215
+ readonly mark: "glyph";
1216
+ readonly charset: " /╱╳";
1217
+ };
1218
+ readonly diamond: {
1219
+ readonly mark: "glyph";
1220
+ readonly charset: " ·◇◈◆";
1221
+ };
1222
+ readonly mixed: {
1223
+ readonly mark: "glyph";
1224
+ readonly charset: " .:+/◇#@";
1225
+ };
1226
+ readonly pixel: {
1227
+ readonly mark: "pixel";
1228
+ };
1229
+ readonly mosaic: {
1230
+ readonly mark: "mosaic";
1231
+ };
1232
+ readonly lego: {
1233
+ readonly mark: "lego";
1234
+ };
1235
+ readonly voxel: {
1236
+ readonly mark: "voxel";
1237
+ };
1238
+ readonly disco: {
1239
+ readonly mark: "disco";
1240
+ };
1241
+ readonly dither: {
1242
+ readonly mark: "dither";
1243
+ };
1244
+ readonly hex: {
1245
+ readonly mark: "hex";
1246
+ };
1247
+ readonly led: {
1248
+ readonly mark: "led";
1249
+ };
1250
+ readonly cmyk: {
1251
+ readonly mark: "cmyk";
1252
+ };
1253
+ readonly stipple: {
1254
+ readonly mark: "stipple";
1255
+ };
1256
+ readonly engraving: {
1257
+ readonly mark: "engraving";
1258
+ };
1259
+ readonly crosshatch: {
1260
+ readonly mark: "crosshatch";
1261
+ };
1262
+ readonly woodblock: {
1263
+ readonly mark: "woodblock";
1264
+ };
1265
+ readonly risograph: {
1266
+ readonly mark: "risograph";
1267
+ };
1268
+ readonly pointillism: {
1269
+ readonly mark: "pointillism";
1270
+ };
1271
+ };
1272
+ type KitStyle = keyof typeof KIT_STYLES;
1162
1273
  /** The page-wide look `setGlobalLook` lays over every glyph field. */
1163
1274
  interface GlobalLook {
1164
1275
  /** Characters for every glyph field that keeps none of letters of its own. Empty keeps each field's own. */
1165
1276
  charset?: string;
1277
+ /**
1278
+ * One of the Studio's render styles (`KIT_STYLES`): what every such field draws in each cell. A glyph-like style brings its
1279
+ * ramp, which `charset` overrides; a tile or print style changes the mark and keeps each field's own charset for its blanks.
1280
+ */
1281
+ style?: KitStyle;
1166
1282
  }
1167
1283
  /** Re-skins every glyph field on the page at once; `null` gives each field its own characters back. */
1168
1284
  declare function setGlobalLook(next: GlobalLook | null): void;
@@ -1176,4 +1292,4 @@ declare function subscribeGlobalLook(listener: (look: GlobalLook | null) => void
1176
1292
  declare function setFieldBudget(n: number): void;
1177
1293
  declare const getFieldBudget: () => number;
1178
1294
 
1179
- export { type AccordionHandle, type AccordionImage, type AccordionOptions, type ArtPanelHandle, type ArtPanelOptions, type AsciiVideoHandle, type AsciiVideoOptions, BEAM_PALETTES, type BackgroundCharset, type BackgroundContext, type BackgroundCursor, type BackgroundHandle, type BackgroundOptions, type BackgroundPreset, type BackgroundRun, type BackgroundSettings, type BeamHandle, type BeamMode, type BeamOptions, type BeamPalette, type BlockChartHandle, type BlockChartOptions, type Box, type ButtonLoadingHandle, type ButtonLoadingOptions, type ButtonState, type CodeInputHandle, type CodeInputOptions, type CodeState, type CommandPaletteHandle, type CommandPaletteOptions, type CompareHandle, type CompareOptions, type DecodeHandle, type DecodeOptions, type DisintegrateOptions, type DropState, type DroppedImage, type DropzoneHandle, type DropzoneOptions, type FieldBackgroundHandle, type FieldBackgroundOptions, type FieldPreset, type GenerateState, type GlobalLook, type ImageGenerateHandle, type ImageGenerateOptions, type ImageStream, type ImageUpdate, type KitHandle, type KitOptions, type LikeBurstHandle, type LikeBurstOptions, type LikeMark, type OdometerHandle, type OdometerOptions, type OrbState, PILL_TONES, type PageDissolveHandle, type PageDissolveOptions, type PaintFrame, type PillHandle, type PillOptions, type PillTone, type PricingGlowHandle, type PricingGlowOptions, type PullRefreshHandle, type PullRefreshOptions, type PullState, type SkeletonBlock, type SkeletonHandle, type SkeletonOptions, type SlideToConfirmHandle, type SlideToConfirmOptions, type StatusOrbHandle, type StatusOrbOptions, type StreamState, type StreamTextHandle, type StreamTextOptions, type Surface, type SurfaceConfig, type SwipeDeckHandle, type SwipeDeckOptions, type TabsHandle, type TabsOptions, type TemplateDraw, type TemplateFrame, type ThinkingHandle, type ThinkingOptions, type ThinkingState, type Toast, type ToastStackHandle, type ToastStackOptions, VOICE_PALETTES, type VoiceOrbHandle, type VoiceOrbOptions, type VoicePalette, type VoiceState, type WordmarkHandle, type WordmarkOptions, accordion, artPanel, asciiVideo, aurora, background, backgroundCharset, beam, beamPalette, blockChart, buttonLoading, caustics, circuit, codeInput, commandPalette, compare, contour, decode, disintegrate, dna, drift, dropzone, dune, etch, facet, fieldBackground, fire, fluid, getFieldBudget, getGlobalLook, grid, halftone, imageGenerate, likeBurst, moire, morph, mountCanvas, mountSurface, noise, odometer, pageDissolve, pill, pricingGlow, pullRefresh, pulse, rain, resolveColor, setFieldBudget, setGlobalLook, silk, skeleton, slideToConfirm, stars, statusOrb, streamText, subscribeGlobalLook, swipeDeck, tabs, terrain, thinking, toastStack, veil, voiceOrb, voidWell, wave, weave, wordField, wordmark };
1295
+ export { type AccordionHandle, type AccordionImage, type AccordionOptions, type ArtPanelHandle, type ArtPanelOptions, type AsciiVideoHandle, type AsciiVideoOptions, BEAM_PALETTES, type BackgroundCharset, type BackgroundContext, type BackgroundCursor, type BackgroundHandle, type BackgroundOptions, type BackgroundPreset, type BackgroundRun, type BackgroundSettings, type BeamHandle, type BeamMode, type BeamOptions, type BeamPalette, type BlockChartHandle, type BlockChartOptions, type Box, type ButtonLoadingHandle, type ButtonLoadingOptions, type ButtonState, type CodeInputHandle, type CodeInputOptions, type CodeState, type CommandPaletteHandle, type CommandPaletteOptions, type CompareHandle, type CompareOptions, type DecodeHandle, type DecodeOptions, type DisintegrateOptions, type DropState, type DroppedImage, type DropzoneHandle, type DropzoneOptions, type FieldBackgroundHandle, type FieldBackgroundOptions, type FieldPreset, type GenerateState, type GlobalLook, type ImageGenerateHandle, type ImageGenerateOptions, type ImageStream, type ImageUpdate, KIT_STYLES, type KitHandle, type KitOptions, type KitStyle, type LikeBurstHandle, type LikeBurstOptions, type LikeMark, type OdometerHandle, type OdometerOptions, type OrbState, PILL_TONES, type PageDissolveHandle, type PageDissolveOptions, type PaintFrame, type PillHandle, type PillOptions, type PillTone, type PricingGlowHandle, type PricingGlowOptions, type PullRefreshHandle, type PullRefreshOptions, type PullState, type SkeletonBlock, type SkeletonHandle, type SkeletonOptions, type SlideToConfirmHandle, type SlideToConfirmOptions, type StatusOrbHandle, type StatusOrbOptions, type StreamState, type StreamTextHandle, type StreamTextOptions, type Surface, type SurfaceConfig, type SwipeDeckHandle, type SwipeDeckOptions, type TabsHandle, type TabsOptions, type TemplateDraw, type TemplateFrame, type ThinkingHandle, type ThinkingOptions, type ThinkingState, type Toast, type ToastStackHandle, type ToastStackOptions, VOICE_PALETTES, type VoiceOrbHandle, type VoiceOrbOptions, type VoicePalette, type VoiceState, type WordmarkHandle, type WordmarkOptions, accordion, artPanel, asciiVideo, aurora, background, backgroundCharset, beam, beamPalette, blockChart, buttonLoading, caustics, circuit, codeInput, commandPalette, compare, contour, decode, disintegrate, dna, drift, dropzone, dune, etch, facet, fieldBackground, fire, fluid, getFieldBudget, getGlobalLook, grid, halftone, imageGenerate, likeBurst, moire, morph, mountCanvas, mountSurface, noise, odometer, pageDissolve, pill, pricingGlow, pullRefresh, pulse, rain, resolveColor, setFieldBudget, setGlobalLook, silk, skeleton, slideToConfirm, stars, statusOrb, streamText, subscribeGlobalLook, swell, swipeDeck, tabs, terrain, thinking, toastStack, veil, voiceOrb, voidWell, wave, weave, wordField, wordmark };