narraleaf-react 0.19.0 → 0.19.2

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.
@@ -64,7 +64,13 @@ export type StackModelRawData = {
64
64
  /**
65
65
  * One frame of a read-only {@link StackModel.snapshot} — an action currently on the execution
66
66
  * stack. A frame that is a concurrent group ({@link Control.all}/{@link Control.any}) also lists
67
- * its branches (each a top-to-bottom frame list).
67
+ * its branches, each a whole {@link StackSnapshot}.
68
+ *
69
+ * `branches` used to be `StackFrameSnapshot[][]` — only each branch's `frames`. That silently threw
70
+ * away everything a nested stack knows about ITSELF: a `Control.repeat` runs as a nested StackModel,
71
+ * so its `loop` counter lived on a snapshot whose frames were kept and whose `loop` and `tag` were
72
+ * dropped on the way out. The counter was therefore unreachable from `getStackSnapshot()` no matter
73
+ * how a caller asked, which is exactly what a debug view most wants to show.
68
74
  *
69
75
  * **Experimental / read-only.** For tooling (Studio's call-stack view). The exact shape is not a
70
76
  * stable contract and may change; do not serialize it or drive game logic from it.
@@ -73,7 +79,7 @@ export type StackFrameSnapshot = {
73
79
  actionId: string | null;
74
80
  actionType: string | null;
75
81
  branchWaitType?: StackModelWaiting["type"];
76
- branches?: StackFrameSnapshot[][];
82
+ branches?: StackSnapshot[];
77
83
  };
78
84
  /**
79
85
  * Read-only view of a StackModel's execution stack. `frames` are ordered top-first (the frame
@@ -33,3 +33,15 @@ export declare function resolveDialogAvatar(ctx: DialogAvatarResolverContext & {
33
33
  portraitAvatar?: DialogAvatar;
34
34
  characterAvatar?: DialogAvatar | false;
35
35
  }): DialogAvatarResolution;
36
+ /**
37
+ * Every avatar source a character can show that is knowable ahead of time.
38
+ *
39
+ * Only *static* sources are enumerable. A {@link DialogAvatarResolver} derives its answer from the
40
+ * portrait's live state, so what it can return is invisible from here — the same limitation, and
41
+ * for the same reason, as a layer {@link LayerResolver}. Callers that preload from this should say
42
+ * so, and a project whose avatars are resolver-driven has to register them itself.
43
+ *
44
+ * `false` is not an absence of a source, it is an instruction to show none; either way there is
45
+ * nothing to preload.
46
+ */
47
+ export declare function collectStaticAvatarSources(character: Character, sentence?: Sentence | null): ImageSrc[];