@moku-labs/game 0.14.2 → 0.14.4
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/app/page.d.mts +1 -1
- package/dist/app/system.d.mts +3 -3
- package/dist/app.d.mts +2 -2
- package/dist/app.mjs +1 -1
- package/dist/assets.d.mts +1 -1
- package/dist/{commands-DWuuqLHu.d.mts → commands-BMpk-pW7.d.mts} +5 -5
- package/dist/control.d.mts +4 -4
- package/dist/{define-HP1Xow8i.d.mts → define-TUpLvorL.d.mts} +2 -2
- package/dist/{headless-CBQhbYPZ.d.mts → headless-TowWxARz.d.mts} +1 -1
- package/dist/{index-CGynRcOj.d.mts → index-qc-2WJnj.d.mts} +4 -4
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +1 -1
- package/dist/inspect.d.mts +7 -7
- package/dist/jsx-dev-runtime.d.mts +1 -1
- package/dist/jsx-runtime.d.mts +1 -1
- package/dist/{memory-DUNdViKq.d.mts → memory-D6S7BUAo.d.mts} +1 -1
- package/dist/{runtime-CRfdX18W.d.mts → runtime-BYbkAbM9.d.mts} +1 -1
- package/dist/{src-BD-MZliM.mjs → src-DiPISDVO.mjs} +157 -22
- package/dist/testing.d.mts +4 -4
- package/dist/testing.mjs +1 -1
- package/dist/{types-v3HEx-i8.d.mts → types--IldPLbm.d.mts} +4 -4
- package/dist/{types-BAWV0bNA.d.mts → types-CUNcMkD1.d.mts} +26 -2
- package/dist/{types-BVHYu1kz.d.mts → types-CsejHij6.d.mts} +2 -2
- package/dist/{types-DO_5UT1J.d.mts → types-DzbRzti4.d.mts} +2 -2
- package/dist/{types-c50K8lVm.d.mts → types-NgMDwIrO.d.mts} +2 -2
- package/dist/{types-zzul0fH3.d.mts → types-p12uOu00.d.mts} +3 -2
- package/dist/visual.d.mts +6 -6
- package/llms.txt +1 -0
- package/package.json +1 -1
package/dist/app/page.d.mts
CHANGED
package/dist/app/system.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { tn as PlayerStateProvider } from "../types-
|
|
2
|
-
import { ct as PlatformProvider } from "../index-
|
|
3
|
-
import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types
|
|
1
|
+
import { tn as PlayerStateProvider } from "../types-CUNcMkD1.mjs";
|
|
2
|
+
import { ct as PlatformProvider } from "../index-qc-2WJnj.mjs";
|
|
3
|
+
import { _ as SystemShellFactory, g as SystemName, h as SystemModules } from "../types--IldPLbm.mjs";
|
|
4
4
|
import { Back, Haptics, KeepAwake, Lifecycle, Store } from "@moku-labs/system";
|
|
5
5
|
|
|
6
6
|
//#region src/app/system.d.ts
|
package/dist/app.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Xt as Json } from "./types-
|
|
2
|
-
import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams } from "./types
|
|
1
|
+
import { Xt as Json } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { a as GameHandle, c as MemoryProvider, d as SaveKind, f as Scenario, g as SystemName, i as GameDefinition, l as PageAgent, n as GameApp, o as GamePluginConfigs, p as ScreenSeams, r as GameConfig, s as HeadlessSeams } from "./types--IldPLbm.mjs";
|
|
3
3
|
import { AnyPluginInstance } from "@moku-labs/core";
|
|
4
4
|
|
|
5
5
|
//#region src/app/define.d.ts
|
package/dist/app.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as effectsPlugin, H as platformPlugin, Nt as audioPlugin, i as screen, t as createApp } from "./src-
|
|
1
|
+
import { Ct as effectsPlugin, H as platformPlugin, Nt as audioPlugin, i as screen, t as createApp } from "./src-DiPISDVO.mjs";
|
|
2
2
|
import { t as memory } from "./memory-CWlqhS7l.mjs";
|
|
3
3
|
import { t as fakeClock } from "./fake-MpzwZhIZ.mjs";
|
|
4
4
|
//#region src/app/define.ts
|
package/dist/assets.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as Api$2, E as DebugSwitches, Ot as Bookmark, h as Api$1, jt as FlowState, ln as Api, vn as Time, w as Captured } from "./types-
|
|
2
|
-
import { a as AudioApi, r as UiApi, v as ScenesApi, x as AnimApi } from "./types-
|
|
3
|
-
import { A as InputApi } from "./types-
|
|
4
|
-
import { t as HeadlessApp } from "./headless-
|
|
5
|
-
import { n as Command, r as ControlApp } from "./types-
|
|
1
|
+
import { A as Api$2, E as DebugSwitches, Ot as Bookmark, h as Api$1, jt as FlowState, ln as Api, vn as Time, w as Captured } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { a as AudioApi, r as UiApi, v as ScenesApi, x as AnimApi } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { A as InputApi } from "./types-p12uOu00.mjs";
|
|
4
|
+
import { t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
5
|
+
import { n as Command, r as ControlApp } from "./types-CsejHij6.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/plugins/flow/doors/commands.d.ts
|
|
8
8
|
/**
|
package/dist/control.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as HeadlessApp } from "./headless-
|
|
2
|
-
import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-
|
|
3
|
-
import { t as commands } from "./commands-
|
|
4
|
-
import { t as defineCommand } from "./define-
|
|
1
|
+
import { t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
2
|
+
import { i as InputArguments, n as Command, o as InputSchema, s as Ran } from "./types-CsejHij6.mjs";
|
|
3
|
+
import { t as commands } from "./commands-BMpk-pW7.mjs";
|
|
4
|
+
import { t as defineCommand } from "./define-TUpLvorL.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/plugins/flow/doors/dev.d.ts
|
|
7
7
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as HeadlessApp } from "./headless-
|
|
2
|
-
import { c as Source, n as Command, o as InputSchema } from "./types-
|
|
1
|
+
import { t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
2
|
+
import { c as Source, n as Command, o as InputSchema } from "./types-CsejHij6.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/flow/doors/define.d.ts
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as Answer, Mt as JournalEntry, Pt as RouteStep, Xt as Json, cn as RngState, dt as Api$1, hn as Api, jt as FlowState } from "./types-
|
|
1
|
+
import { Bt as Answer, Mt as JournalEntry, Pt as RouteStep, Xt as Json, cn as RngState, dt as Api$1, hn as Api, jt as FlowState } from "./types-CUNcMkD1.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugins/flow/headless.d.ts
|
|
4
4
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as DescriptionNode, A as Api$6, B as ComponentType, Et as FeatureDescription, Ft as SceneIdOf, G as Mut, Gt as State$2, J as QueryTerm, Jt as Config$5, K as Narrowed, Lt as Descriptor, N as State$8, Qt as State$5, R as ComponentHandle, Rt as GuideOptions, Sn as Require, Ut as Config$2, V as ComponentValue, Vt as Api$1, X as SystemDefinition, Xt as Json, Y as ResourceType, Z as TagType, Zt as Root, _n as State$7, a as Config$1, at as NumericFields, bn as Config$9, c as LoadBundles, d as State$1, dn as Events, dt as Api$2, en as Patch, et as Ease, f as Tier, fn as PauseReason, ft as BundlesOf, g as Config$6, gn as Config$7, gt as GameTypes, h as Api$4, hn as Api$5, ht as FeaturePlugin, i as BundleSpec, j as Config$8, k as ViewportSize, kt as DefineNode, l as LoadReason, ln as Api$3, mt as EmitterIdOf, o as DefineBundles, on as StoreApi, ot as ProjectionMotion, pn as State$4, pt as Config$3, r as BundleMap, sn as RngApi, st as ProjectionSpec, t as Api, un as Config$4, vt as State$3, x as State$6, xn as Events$1, xt as defineFlow, yt as TextStylesOf, zt as Hint } from "./types-
|
|
2
|
-
import { A as SfxDescriptor, C as Config$10, D as Target, E as State$9, N as defineAnimation, S as AnimPlayerValue, T as MotionKeyframe, _ as SceneSpec, a as AudioApi, c as MusicDescriptor, d as State$10, g as SceneDefinition, h as LayerMap, j as Step, k as HapticKind, l as MusicOptions, m as DefineScene, n as State$12, p as AnySceneProjection, r as UiApi, s as Config$11, t as Config$12, v as ScenesApi, w as FramesValue, x as AnimApi, y as State$11, z as play } from "./types-
|
|
3
|
-
import { _ as NoiseValue, c as EmitterValue, d as ColorMatrixValue, f as DisplacementValue, g as GlowValue, h as FilterValueOf, i as State$13, l as AlphaValue, m as FilterSpec, n as EffectsApi, o as EmitterConfig, p as FilterComponent, s as EmitterDefinition, t as Config$13, u as BlurValue, v as OutlineValue, y as UniformDeclaration } from "./types-
|
|
4
|
-
import { A as InputApi, B as SpriteOptions, E as TextValue, F as NineSliceValue, G as Argument, J as IntlKit, K as Config$14, O as defineComponent, Q as TypedTr, R as ShapeValue, S as TextBind, T as TextStyles, U as TransformValue, V as SpriteValue, W as sprite, X as Part, Y as Message, Z as State$14, _ as Config$16, b as State$16, et as IsFlags, f as defineTokens, g as BindOptions, h as BindField, it as WhenFlags, j as State$15, k as Config$15, nt as Style, p as IntrinsicElementsFor, q as I18nApi, s as PopupComponent, tt as ResolvedStyle, v as CountdownValue, w as TextStyleInput, x as TextApi, y as Point } from "./types-
|
|
1
|
+
import { $ as DescriptionNode, A as Api$6, B as ComponentType, Et as FeatureDescription, Ft as SceneIdOf, G as Mut, Gt as State$2, J as QueryTerm, Jt as Config$5, K as Narrowed, Lt as Descriptor, N as State$8, Qt as State$5, R as ComponentHandle, Rt as GuideOptions, Sn as Require, Ut as Config$2, V as ComponentValue, Vt as Api$1, X as SystemDefinition, Xt as Json, Y as ResourceType, Z as TagType, Zt as Root, _n as State$7, a as Config$1, at as NumericFields, bn as Config$9, c as LoadBundles, d as State$1, dn as Events, dt as Api$2, en as Patch, et as Ease, f as Tier, fn as PauseReason, ft as BundlesOf, g as Config$6, gn as Config$7, gt as GameTypes, h as Api$4, hn as Api$5, ht as FeaturePlugin, i as BundleSpec, j as Config$8, k as ViewportSize, kt as DefineNode, l as LoadReason, ln as Api$3, mt as EmitterIdOf, o as DefineBundles, on as StoreApi, ot as ProjectionMotion, pn as State$4, pt as Config$3, r as BundleMap, sn as RngApi, st as ProjectionSpec, t as Api, un as Config$4, vt as State$3, x as State$6, xn as Events$1, xt as defineFlow, yt as TextStylesOf, zt as Hint } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { A as SfxDescriptor, C as Config$10, D as Target, E as State$9, N as defineAnimation, S as AnimPlayerValue, T as MotionKeyframe, _ as SceneSpec, a as AudioApi, c as MusicDescriptor, d as State$10, g as SceneDefinition, h as LayerMap, j as Step, k as HapticKind, l as MusicOptions, m as DefineScene, n as State$12, p as AnySceneProjection, r as UiApi, s as Config$11, t as Config$12, v as ScenesApi, w as FramesValue, x as AnimApi, y as State$11, z as play } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { _ as NoiseValue, c as EmitterValue, d as ColorMatrixValue, f as DisplacementValue, g as GlowValue, h as FilterValueOf, i as State$13, l as AlphaValue, m as FilterSpec, n as EffectsApi, o as EmitterConfig, p as FilterComponent, s as EmitterDefinition, t as Config$13, u as BlurValue, v as OutlineValue, y as UniformDeclaration } from "./types-NgMDwIrO.mjs";
|
|
4
|
+
import { A as InputApi, B as SpriteOptions, E as TextValue, F as NineSliceValue, G as Argument, J as IntlKit, K as Config$14, O as defineComponent, Q as TypedTr, R as ShapeValue, S as TextBind, T as TextStyles, U as TransformValue, V as SpriteValue, W as sprite, X as Part, Y as Message, Z as State$14, _ as Config$16, b as State$16, et as IsFlags, f as defineTokens, g as BindOptions, h as BindField, it as WhenFlags, j as State$15, k as Config$15, nt as Style, p as IntrinsicElementsFor, q as I18nApi, s as PopupComponent, tt as ResolvedStyle, v as CountdownValue, w as TextStyleInput, x as TextApi, y as Point } from "./types-p12uOu00.mjs";
|
|
5
5
|
import { Log } from "@moku-labs/common/browser";
|
|
6
6
|
import { PluginCtx } from "@moku-labs/core";
|
|
7
7
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as DescriptionNode, $t as types_d_exports$9, C as types_d_exports$11, Ct as slot, Kt as types_d_exports$3, P as types_d_exports$16, St as exit, Tt as type, bt as types_d_exports$5, in as SaveUnreadableError, m as types_d_exports$1, mn as types_d_exports$8, wt as to, yn as types_d_exports$14 } from "./types-
|
|
2
|
-
import { B as sequence, F as frames, G as stagger, H as sfx, I as haptic, J as wait, K as tween, L as mark, M as HAPTIC_KINDS, N as defineAnimation, O as types_d_exports, P as external, R as parallel, U as spawn, V as set, W as spawned, b as types_d_exports$12, f as types_d_exports$2, i as types_d_exports$15, k as HapticKind, q as use, z as play } from "./types-
|
|
3
|
-
import { a as types_d_exports$4 } from "./types-
|
|
4
|
-
import { $ as types_d_exports$6, C as TextFormat, D as types_d_exports$13, H as Transform, I as Parent, L as Shape, M as types_d_exports$7, N as Display, O as defineComponent, P as NineSlice, W as sprite, d as popup, f as defineTokens, g as BindOptions, l as Box, u as LocalWrite, v as CountdownValue, z as Sprite } from "./types-
|
|
5
|
-
import { $ as defineFeature, A as Held, B as Traced, C as Animation, Ct as bind, D as load, E as defineBundles, F as Pressed, G as component, H as Layer, I as Swipeable, J as system, K as mut, L as Tappable, M as Pointer, N as PointerOver, O as Draggable, P as Pressable, Q as schedule, R as Touchable, S as AnimPlayer, St as Text, T as defineScene, Tt as label, U as Order, V as Exiting, W as Tree, X as guide, Y as tag, Z as hint, _ as defineStyle, _t as audioPlugin, a as defineEmitter, at as rendererPlugin, b as messageDuration, bt as projection, c as Alpha, ct as PlatformProvider, d as Displacement, dt as lifecyclePlugin, et as worldPlugin, f as Glow, ft as inputPlugin, g as resolve, gt as clockPlugin, h as music, ht as effectsPlugin, i as screen, it as scenesPlugin, j as Hovered, k as DropTarget, l as Blur, lt as types_d_exports$10, m as Outline, mt as flowPlugin, n as createPlugin, nt as timePlugin, o as Emitter, ot as platformPlugin, p as Noise, pt as i18nPlugin, q as resource, r as defineGame, rt as textPlugin, s as defineFilter, st as BackResult, t as createApp, tt as uiPlugin, u as ColorMatrix, ut as modelPlugin, v as tr, vt as assetsPlugin, w as Frames, wt as defineTextStyles, x as defineMotion, xt as Countdown, y as messageArgument, yt as animPlugin, z as Traceable } from "./index-
|
|
1
|
+
import { $ as DescriptionNode, $t as types_d_exports$9, C as types_d_exports$11, Ct as slot, Kt as types_d_exports$3, P as types_d_exports$16, St as exit, Tt as type, bt as types_d_exports$5, in as SaveUnreadableError, m as types_d_exports$1, mn as types_d_exports$8, wt as to, yn as types_d_exports$14 } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { B as sequence, F as frames, G as stagger, H as sfx, I as haptic, J as wait, K as tween, L as mark, M as HAPTIC_KINDS, N as defineAnimation, O as types_d_exports, P as external, R as parallel, U as spawn, V as set, W as spawned, b as types_d_exports$12, f as types_d_exports$2, i as types_d_exports$15, k as HapticKind, q as use, z as play } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { a as types_d_exports$4 } from "./types-NgMDwIrO.mjs";
|
|
4
|
+
import { $ as types_d_exports$6, C as TextFormat, D as types_d_exports$13, H as Transform, I as Parent, L as Shape, M as types_d_exports$7, N as Display, O as defineComponent, P as NineSlice, W as sprite, d as popup, f as defineTokens, g as BindOptions, l as Box, u as LocalWrite, v as CountdownValue, z as Sprite } from "./types-p12uOu00.mjs";
|
|
5
|
+
import { $ as defineFeature, A as Held, B as Traced, C as Animation, Ct as bind, D as load, E as defineBundles, F as Pressed, G as component, H as Layer, I as Swipeable, J as system, K as mut, L as Tappable, M as Pointer, N as PointerOver, O as Draggable, P as Pressable, Q as schedule, R as Touchable, S as AnimPlayer, St as Text, T as defineScene, Tt as label, U as Order, V as Exiting, W as Tree, X as guide, Y as tag, Z as hint, _ as defineStyle, _t as audioPlugin, a as defineEmitter, at as rendererPlugin, b as messageDuration, bt as projection, c as Alpha, ct as PlatformProvider, d as Displacement, dt as lifecyclePlugin, et as worldPlugin, f as Glow, ft as inputPlugin, g as resolve, gt as clockPlugin, h as music, ht as effectsPlugin, i as screen, it as scenesPlugin, j as Hovered, k as DropTarget, l as Blur, lt as types_d_exports$10, m as Outline, mt as flowPlugin, n as createPlugin, nt as timePlugin, o as Emitter, ot as platformPlugin, p as Noise, pt as i18nPlugin, q as resource, r as defineGame, rt as textPlugin, s as defineFilter, st as BackResult, t as createApp, tt as uiPlugin, u as ColorMatrix, ut as modelPlugin, v as tr, vt as assetsPlugin, w as Frames, wt as defineTextStyles, x as defineMotion, xt as Countdown, y as messageArgument, yt as animPlugin, z as Traceable } from "./index-qc-2WJnj.mjs";
|
|
6
6
|
export { Alpha, types_d_exports as Anim, AnimPlayer, Animation, types_d_exports$1 as Assets, types_d_exports$2 as Audio, type BackResult, type BindOptions, Blur, Box, types_d_exports$3 as Clock, ColorMatrix, Countdown, type CountdownValue, type DescriptionNode, Displacement, Display, Draggable, DropTarget, types_d_exports$4 as Effects, Emitter, Exiting, types_d_exports$5 as Flow, Frames, Glow, HAPTIC_KINDS, type HapticKind, Held, Hovered, types_d_exports$6 as I18n, types_d_exports$7 as Input, Layer, types_d_exports$8 as Lifecycle, LocalWrite, types_d_exports$9 as Model, NineSlice, Noise, Order, Outline, Parent, types_d_exports$10 as Platform, type PlatformProvider, Pointer, PointerOver, Pressable, Pressed, types_d_exports$11 as Renderer, SaveUnreadableError, types_d_exports$12 as Scenes, Shape, Sprite, Swipeable, Tappable, Text, type TextFormat, types_d_exports$13 as TextTypes, types_d_exports$14 as Time, Touchable, Traceable, Traced, Transform, Tree, types_d_exports$15 as Ui, types_d_exports$16 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, defineAnimation, defineBundles, defineComponent, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flowPlugin, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as sfx, A as types_exports$3, At as Noise, B as defineStyle, Bt as rendererPlugin, C as types_exports$10, Ct as effectsPlugin, D as types_exports$6, Dt as ColorMatrix, E as types_exports$7, Et as Blur, F as resolve, Ft as assetsPlugin, G as external, Gt as to, H as platformPlugin, Ht as flowPlugin, I as Box, It as animPlugin, J as mark, Jt as SaveUnreadableError, K as frames, Kt as type, L as LocalWrite, Lt as AnimPlayer, M as types_exports$1, Mt as defineFilter, N as types_exports, Nt as audioPlugin, O as types_exports$5, Ot as Displacement, P as uiPlugin, Pt as scenesPlugin, Q as set, R as popup, Rt as Animation, S as types_exports$11, St as messageDuration, T as types_exports$8, Tt as Alpha, U as HAPTIC_KINDS, Ut as exit, V as textPlugin, Vt as worldPlugin, W as defineAnimation, Wt as slot, X as play, Xt as timePlugin, Y as parallel, Yt as lifecyclePlugin, Z as sequence, Zt as clockPlugin, _ as types_exports$16, _t as Touchable, a as defineMotion, at as wait, b as types_exports$13, bt as i18nPlugin, c as schedule, ct as DropTarget, d as tr, dt as Pointer, et as spawn, f as defineFeature, ft as PointerOver, g as load, gt as Tappable, h as defineBundles, ht as Swipeable, i as screen, it as use, j as types_exports$2, jt as Outline, k as types_exports$4, kt as Glow, l as projection, lt as Held, m as music, mt as Pressed, n as createPlugin, nt as stagger, o as guide, ot as inputPlugin, p as defineEmitter, pt as Pressable, q as haptic, qt as modelPlugin, r as defineGame, rt as tween, s as hint, st as Draggable, t as createApp, tt as spawned, u as defineScene, ut as Hovered, v as types_exports$15, vt as Traceable, w as types_exports$9, wt as Emitter, x as types_exports$12, xt as messageArgument, y as types_exports$14, yt as Traced, z as defineTokens, zt as Frames } from "./src-
|
|
1
|
+
import { $ as sfx, A as types_exports$3, At as Noise, B as defineStyle, Bt as rendererPlugin, C as types_exports$10, Ct as effectsPlugin, D as types_exports$6, Dt as ColorMatrix, E as types_exports$7, Et as Blur, F as resolve, Ft as assetsPlugin, G as external, Gt as to, H as platformPlugin, Ht as flowPlugin, I as Box, It as animPlugin, J as mark, Jt as SaveUnreadableError, K as frames, Kt as type, L as LocalWrite, Lt as AnimPlayer, M as types_exports$1, Mt as defineFilter, N as types_exports, Nt as audioPlugin, O as types_exports$5, Ot as Displacement, P as uiPlugin, Pt as scenesPlugin, Q as set, R as popup, Rt as Animation, S as types_exports$11, St as messageDuration, T as types_exports$8, Tt as Alpha, U as HAPTIC_KINDS, Ut as exit, V as textPlugin, Vt as worldPlugin, W as defineAnimation, Wt as slot, X as play, Xt as timePlugin, Y as parallel, Yt as lifecyclePlugin, Z as sequence, Zt as clockPlugin, _ as types_exports$16, _t as Touchable, a as defineMotion, at as wait, b as types_exports$13, bt as i18nPlugin, c as schedule, ct as DropTarget, d as tr, dt as Pointer, et as spawn, f as defineFeature, ft as PointerOver, g as load, gt as Tappable, h as defineBundles, ht as Swipeable, i as screen, it as use, j as types_exports$2, jt as Outline, k as types_exports$4, kt as Glow, l as projection, lt as Held, m as music, mt as Pressed, n as createPlugin, nt as stagger, o as guide, ot as inputPlugin, p as defineEmitter, pt as Pressable, q as haptic, qt as modelPlugin, r as defineGame, rt as tween, s as hint, st as Draggable, t as createApp, tt as spawned, u as defineScene, ut as Hovered, v as types_exports$15, vt as Traceable, w as types_exports$9, wt as Emitter, x as types_exports$12, xt as messageArgument, y as types_exports$14, yt as Traced, z as defineTokens, zt as Frames } from "./src-DiPISDVO.mjs";
|
|
2
2
|
import { A as system, C as Exiting, D as component, E as Tree, O as mut, S as sprite, T as Order, _ as Parent, b as Transform, c as Text, d as defineTextStyles, f as label, g as NineSlice, h as Display, j as tag, k as resource, l as bind, s as Countdown, v as Shape, w as Layer, y as Sprite } from "./visual-dMW8iqAE.mjs";
|
|
3
3
|
import { r as defineComponent } from "./flatten-BkXuscAV.mjs";
|
|
4
4
|
export { Alpha, types_exports as Anim, AnimPlayer, Animation, types_exports$1 as Assets, types_exports$2 as Audio, Blur, Box, types_exports$3 as Clock, ColorMatrix, Countdown, Displacement, Display, Draggable, DropTarget, types_exports$4 as Effects, Emitter, Exiting, types_exports$5 as Flow, Frames, Glow, HAPTIC_KINDS, Held, Hovered, types_exports$6 as I18n, types_exports$7 as Input, Layer, types_exports$8 as Lifecycle, LocalWrite, types_exports$9 as Model, NineSlice, Noise, Order, Outline, Parent, types_exports$10 as Platform, Pointer, PointerOver, Pressable, Pressed, types_exports$11 as Renderer, SaveUnreadableError, types_exports$12 as Scenes, Shape, Sprite, Swipeable, Tappable, Text, types_exports$13 as TextTypes, types_exports$14 as Time, Touchable, Traceable, Traced, Transform, Tree, types_exports$15 as Ui, types_exports$16 as World, animPlugin, assetsPlugin, audioPlugin, bind, clockPlugin, component, createApp, createPlugin, defineAnimation, defineBundles, defineComponent, defineEmitter, defineFeature, defineFilter, defineGame, defineMotion, defineScene, defineStyle, defineTextStyles, defineTokens, effectsPlugin, exit, external, flowPlugin, frames, guide, haptic, hint, i18nPlugin, inputPlugin, label, lifecyclePlugin, load, mark, messageArgument, messageDuration, modelPlugin, music, mut, parallel, platformPlugin, play, popup, projection, rendererPlugin, resolve, resource, scenesPlugin, schedule, screen, sequence, set, sfx, slot, spawn, spawned, sprite, stagger, system, tag, textPlugin, timePlugin, to, tr, tween, type, uiPlugin, use, wait, worldPlugin };
|
package/dist/inspect.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { A as Api$1, At as FlowGraph, M as Explained, Mt as JournalEntry, S as Under, T as RenderStats, U as EntitySnapshot, W as FrameDiff, _t as Position, an as Snapshot, h as Api$2, p as Usage, qt as Api, t as Api$3, z as ComponentSchema } from "./types-
|
|
2
|
-
import { a as AudioApi, r as UiApi, u as SoundEntry } from "./types-
|
|
3
|
-
import { n as EffectsApi, r as EffectsStats } from "./types-
|
|
4
|
-
import { c as UiNode } from "./types-
|
|
5
|
-
import { t as HeadlessApp } from "./headless-
|
|
6
|
-
import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types-
|
|
7
|
-
import { n as defineSource } from "./define-
|
|
1
|
+
import { A as Api$1, At as FlowGraph, M as Explained, Mt as JournalEntry, S as Under, T as RenderStats, U as EntitySnapshot, W as FrameDiff, _t as Position, an as Snapshot, h as Api$2, p as Usage, qt as Api, t as Api$3, z as ComponentSchema } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { a as AudioApi, r as UiApi, u as SoundEntry } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { n as EffectsApi, r as EffectsStats } from "./types-NgMDwIrO.mjs";
|
|
4
|
+
import { c as UiNode } from "./types-p12uOu00.mjs";
|
|
5
|
+
import { t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
6
|
+
import { a as InputOf, c as Source, i as InputArguments, l as WatchApp, o as InputSchema, t as CheatEntry, u as WatchInput } from "./types-CsejHij6.mjs";
|
|
7
|
+
import { n as defineSource } from "./define-TUpLvorL.mjs";
|
|
8
8
|
|
|
9
9
|
//#region src/plugins/flow/doors/read.d.ts
|
|
10
10
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-
|
|
1
|
+
import { a as jsxs, i as jsxDEV, n as JSX, r as jsx, t as Fragment } from "./runtime-BYbkAbM9.mjs";
|
|
2
2
|
export { Fragment, type JSX, jsx, jsxDEV, jsxs };
|
package/dist/jsx-runtime.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-
|
|
1
|
+
import { a as jsxs, n as JSX, r as jsx, t as Fragment } from "./runtime-BYbkAbM9.mjs";
|
|
2
2
|
export { Fragment, type JSX, jsx, jsxs };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Xt as Json, nn as ProviderCall, rn as SaveDoc, tn as PlayerStateProvider } from "./types-
|
|
1
|
+
import { Xt as Json, nn as ProviderCall, rn as SaveDoc, tn as PlayerStateProvider } from "./types-CUNcMkD1.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugins/model/store/providers/memory.d.ts
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as JsxChild, m as UiIntrinsicElements, t as DescriptionNode } from "./types-
|
|
1
|
+
import { a as JsxChild, m as UiIntrinsicElements, t as DescriptionNode } from "./types-p12uOu00.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/plugins/ui/jsx/runtime.d.ts
|
|
4
4
|
/** What the compiler passes as props: the children plus whatever the tag declared. */
|
|
@@ -6520,6 +6520,7 @@ function clearWorld(state) {
|
|
|
6520
6520
|
state.ecs.offFrame.length = 0;
|
|
6521
6521
|
for (const off of state.projection.offHints) off();
|
|
6522
6522
|
state.projection.offHints.length = 0;
|
|
6523
|
+
state.projection.converged.length = 0;
|
|
6523
6524
|
state.projection.specs.clear();
|
|
6524
6525
|
state.projection.mounted.clear();
|
|
6525
6526
|
state.projection.byEntity.clear();
|
|
@@ -7630,13 +7631,63 @@ function keyedItems(pctx, spec, snapshot) {
|
|
|
7630
7631
|
return next;
|
|
7631
7632
|
}
|
|
7632
7633
|
/**
|
|
7634
|
+
* The last step of a reconcile a restore or a load caused: every live view is written to its rest
|
|
7635
|
+
* pose, whether its item changed or not. An aborted node finishes its animation, which leaves a
|
|
7636
|
+
* view on the end pose, and a view whose item is the same object as before is never touched by
|
|
7637
|
+
* the entries. It runs after the flush: every handle is finished and every track of the entity is
|
|
7638
|
+
* cancelled by then, also an additive one, which writes its base back when it ends. So nothing
|
|
7639
|
+
* writes after it. Muted fields are left out, and `view` does not run again.
|
|
7640
|
+
*
|
|
7641
|
+
* @param pctx - Domain context of the projection module.
|
|
7642
|
+
* @param mounted - The mounted projection, already flushed.
|
|
7643
|
+
*/
|
|
7644
|
+
function convergeMounted(pctx, mounted) {
|
|
7645
|
+
for (const view of mounted.live.values()) writeRestNow(pctx, view, [...view.rest.keys()]);
|
|
7646
|
+
}
|
|
7647
|
+
/**
|
|
7648
|
+
* The same last step for the elements another plugin owns, which no reconcile of a projection
|
|
7649
|
+
* meets: each is written to the rest pose its owner recorded with `setRest`. Every track on the
|
|
7650
|
+
* entity is ended first, so nothing writes after it. Only a component the entity still carries
|
|
7651
|
+
* is written and muted fields are left out. An element that is leaving has its tracks ended and
|
|
7652
|
+
* keeps its place, and the recorded pose of an entity that is gone is skipped. So is one recorded
|
|
7653
|
+
* for a projection view: its own rest pose wins, as in `restOf`, and it is already home.
|
|
7654
|
+
*
|
|
7655
|
+
* @param pctx - Domain context of the projection module.
|
|
7656
|
+
*/
|
|
7657
|
+
function convergeElements(pctx) {
|
|
7658
|
+
const { ecs, components } = pctx.deps;
|
|
7659
|
+
const state = pctx.ctx.state.projection;
|
|
7660
|
+
for (const [entity, rest] of state.rests) {
|
|
7661
|
+
if (ecs.ownerOf(entity) === void 0 || state.byEntity.has(entity)) continue;
|
|
7662
|
+
cancelTracks(pctx, entity);
|
|
7663
|
+
if (ecs.has(entity, components.Exiting)) continue;
|
|
7664
|
+
const carried = [];
|
|
7665
|
+
for (const [name, value] of rest) if (storedValue(pctx, entity, value.type) !== void 0) carried.push(name);
|
|
7666
|
+
writeRestNow(pctx, createViewRecord(entity, "", "", void 0, rest), carried);
|
|
7667
|
+
}
|
|
7668
|
+
}
|
|
7669
|
+
/**
|
|
7670
|
+
* Tells every `onConverged` listener that the picture is home, so an owner puts back what only
|
|
7671
|
+
* it knows: `ui` builds its roots again. A listener that throws is logged and the others still
|
|
7672
|
+
* run.
|
|
7673
|
+
*
|
|
7674
|
+
* @param pctx - Domain context of the projection module.
|
|
7675
|
+
*/
|
|
7676
|
+
function tellConverged(pctx) {
|
|
7677
|
+
for (const listener of [...pctx.ctx.state.projection.converged]) try {
|
|
7678
|
+
listener();
|
|
7679
|
+
} catch (error) {
|
|
7680
|
+
pctx.ctx.log.error("world:converged-listener-failed", {}, asError$2(error));
|
|
7681
|
+
}
|
|
7682
|
+
}
|
|
7683
|
+
/**
|
|
7633
7684
|
* Reconciles one mounted projection against the snapshot.
|
|
7634
7685
|
*
|
|
7635
7686
|
* @param pctx - Domain context of the projection module.
|
|
7636
7687
|
* @param spec - The projection spec.
|
|
7637
7688
|
* @param mounted - The mounted projection.
|
|
7638
7689
|
* @param snapshot - The model snapshot of this reconcile.
|
|
7639
|
-
* @param options - Mode and
|
|
7690
|
+
* @param options - Mode, force flag and converge flag of this reconcile.
|
|
7640
7691
|
* @param counts - The counters of this reconcile.
|
|
7641
7692
|
* @param used - The hints that reached an entry.
|
|
7642
7693
|
*/
|
|
@@ -7665,13 +7716,16 @@ function reconcileOne(pctx, spec, mounted, snapshot, options, counts, used) {
|
|
|
7665
7716
|
}
|
|
7666
7717
|
mounted.items = next;
|
|
7667
7718
|
if (options.direct) flushMounted(pctx, mounted);
|
|
7719
|
+
if (options.converge) convergeMounted(pctx, mounted);
|
|
7668
7720
|
counts.queued += mounted.queue.length;
|
|
7669
7721
|
}
|
|
7670
7722
|
/**
|
|
7671
|
-
* Runs one reconcile over every mounted projection, or over the named ones only.
|
|
7723
|
+
* Runs one reconcile over every mounted projection, or over the named ones only. A converging
|
|
7724
|
+
* one then brings the elements other plugins own home and tells their owners.
|
|
7672
7725
|
*
|
|
7673
7726
|
* @param pctx - Domain context of the projection module.
|
|
7674
|
-
* @param options - Which projections, play or direct,
|
|
7727
|
+
* @param options - Which projections, play or direct, whether `view` is forced, and whether
|
|
7728
|
+
* every live view and every element is brought to its rest pose at the end.
|
|
7675
7729
|
*/
|
|
7676
7730
|
function reconcile(pctx, options) {
|
|
7677
7731
|
const state = pctx.ctx.state.projection;
|
|
@@ -7685,6 +7739,10 @@ function reconcile(pctx, options) {
|
|
|
7685
7739
|
counts.projections += 1;
|
|
7686
7740
|
reconcileOne(pctx, spec, mounted, snapshot, options, counts, used);
|
|
7687
7741
|
}
|
|
7742
|
+
if (options.converge) {
|
|
7743
|
+
convergeElements(pctx);
|
|
7744
|
+
tellConverged(pctx);
|
|
7745
|
+
}
|
|
7688
7746
|
counts.hintsRouted = used.size;
|
|
7689
7747
|
counts.hintsDropped = state.hints.length - used.size;
|
|
7690
7748
|
if (pctx.ctx.config.reconciledEvent) pctx.ctx.emit("world:reconciled", {
|
|
@@ -7721,6 +7779,22 @@ function isDirectCause(cause) {
|
|
|
7721
7779
|
return cause === "load" || cause === "restore" || cause === "mount" || cause === "rerun";
|
|
7722
7780
|
}
|
|
7723
7781
|
/**
|
|
7782
|
+
* Tells whether a cause replaces the state, so every live view has to stand on its rest pose
|
|
7783
|
+
* when the reconcile ends, also a view whose item is the same object as before, and every
|
|
7784
|
+
* element on the rest pose its owner recorded.
|
|
7785
|
+
*
|
|
7786
|
+
* @param cause - Why the reconcile runs.
|
|
7787
|
+
* @returns True for a load and a restore.
|
|
7788
|
+
* @example
|
|
7789
|
+
* ```ts
|
|
7790
|
+
* isConvergeCause("restore"); // true
|
|
7791
|
+
* isConvergeCause("rerun"); // false
|
|
7792
|
+
* ```
|
|
7793
|
+
*/
|
|
7794
|
+
function isConvergeCause(cause) {
|
|
7795
|
+
return cause === "load" || cause === "restore";
|
|
7796
|
+
}
|
|
7797
|
+
/**
|
|
7724
7798
|
* Creates the empty view tables of a freshly mounted projection. These live in their own
|
|
7725
7799
|
* non-exported functions because lint rule L5 refuses a collection built inside an exported
|
|
7726
7800
|
* declaration.
|
|
@@ -7851,16 +7925,19 @@ function createProjectionApi(ctx, deps) {
|
|
|
7851
7925
|
};
|
|
7852
7926
|
const state = ctx.state.projection;
|
|
7853
7927
|
/**
|
|
7854
|
-
* Reconciles what is dirty. The cause table decides play or direct
|
|
7928
|
+
* Reconciles what is dirty. The cause table decides play or direct, and whether every live view
|
|
7929
|
+
* and every element with a recorded rest pose is brought to it: a restore and a load do that.
|
|
7855
7930
|
*/
|
|
7856
7931
|
const reconcileIfDirty = () => {
|
|
7857
7932
|
const dirty = state.dirty;
|
|
7858
7933
|
state.dirty = void 0;
|
|
7859
7934
|
if (dirty !== void 0 && (dirty.roots.has("player") || dirty.roots.has("session"))) {
|
|
7860
7935
|
const direct = dirty.force || dirty.causes.some((cause) => isDirectCause(cause)) || deps.ecs.mode() !== "live";
|
|
7936
|
+
const converge = dirty.causes.some((cause) => isConvergeCause(cause));
|
|
7861
7937
|
reconcile(pctx, {
|
|
7862
7938
|
direct,
|
|
7863
|
-
force: dirty.force
|
|
7939
|
+
force: dirty.force,
|
|
7940
|
+
converge
|
|
7864
7941
|
});
|
|
7865
7942
|
}
|
|
7866
7943
|
state.hints.length = 0;
|
|
@@ -7920,7 +7997,8 @@ function createProjectionApi(ctx, deps) {
|
|
|
7920
7997
|
if (fresh.length > 0) reconcile(pctx, {
|
|
7921
7998
|
names: fresh.map((spec) => spec.name),
|
|
7922
7999
|
direct: true,
|
|
7923
|
-
force: true
|
|
8000
|
+
force: true,
|
|
8001
|
+
converge: false
|
|
7924
8002
|
});
|
|
7925
8003
|
},
|
|
7926
8004
|
unmount: (names) => {
|
|
@@ -8034,6 +8112,13 @@ function createProjectionApi(ctx, deps) {
|
|
|
8034
8112
|
state.rests.delete(entity);
|
|
8035
8113
|
};
|
|
8036
8114
|
},
|
|
8115
|
+
onConverged: (listener) => {
|
|
8116
|
+
state.converged.push(listener);
|
|
8117
|
+
return () => {
|
|
8118
|
+
const at = state.converged.indexOf(listener);
|
|
8119
|
+
if (at !== -1) state.converged.splice(at, 1);
|
|
8120
|
+
};
|
|
8121
|
+
},
|
|
8037
8122
|
rerunAll: forceRerun,
|
|
8038
8123
|
markDirty: (roots, cause) => {
|
|
8039
8124
|
const dirty = state.dirty ?? emptyDirty();
|
|
@@ -8197,6 +8282,7 @@ function exposeProjection(projection) {
|
|
|
8197
8282
|
setRest: projection.setRest,
|
|
8198
8283
|
restOf: projection.restOf,
|
|
8199
8284
|
registerKey: projection.registerKey,
|
|
8285
|
+
onConverged: projection.onConverged,
|
|
8200
8286
|
rerunAll: projection.rerunAll
|
|
8201
8287
|
};
|
|
8202
8288
|
}
|
|
@@ -8323,6 +8409,7 @@ function createProjectionState() {
|
|
|
8323
8409
|
keys: emptyMap$7(),
|
|
8324
8410
|
keysByEntity: emptyMap$7(),
|
|
8325
8411
|
mutes: emptyMap$7(),
|
|
8412
|
+
converged: [],
|
|
8326
8413
|
offHints: []
|
|
8327
8414
|
};
|
|
8328
8415
|
}
|
|
@@ -30236,9 +30323,10 @@ function restValueOf(current, value, owned) {
|
|
|
30236
30323
|
/**
|
|
30237
30324
|
* Records the rest pose of one extra component with a value, so a `change` hook can bring it
|
|
30238
30325
|
* home with `view.toRest`; a tag has no rest. The fields the type gives to a plugin are skipped.
|
|
30326
|
+
* The visual of a live element is recorded the same way each time its look is written.
|
|
30239
30327
|
*
|
|
30240
30328
|
* @param ctx - Domain context of the ui plugin.
|
|
30241
|
-
* @param element - The element that carries the
|
|
30329
|
+
* @param element - The element that carries the component.
|
|
30242
30330
|
* @param value - The value of this render.
|
|
30243
30331
|
*/
|
|
30244
30332
|
function recordRest(ctx, element, value) {
|
|
@@ -31206,14 +31294,17 @@ function createReconciler(ctx, modules, fields) {
|
|
|
31206
31294
|
* Writes the visual and input components of a live element again. A visual or an input the
|
|
31207
31295
|
* element no longer carries is removed, so a variant can trade the rectangle for a nine-slice and
|
|
31208
31296
|
* back, and a button that became disabled stops answering the gate. `Scroll` is only ever added:
|
|
31209
|
-
* its offset belongs to the finger, and a new look or a new rect never resets it. The
|
|
31210
|
-
* the
|
|
31297
|
+
* its offset belongs to the finger, and a new look or a new rect never resets it. The look
|
|
31298
|
+
* written is recorded as the rest of the visual, so the rest the world holds is always the one
|
|
31299
|
+
* the element is drawn with: a restore brings it back to exactly that. The extras of the
|
|
31300
|
+
* `components` prop are diffed last.
|
|
31211
31301
|
*
|
|
31212
31302
|
* @param element - The element that changed.
|
|
31213
31303
|
*/
|
|
31214
31304
|
function writeLive(element) {
|
|
31215
31305
|
writeOrder(element);
|
|
31216
|
-
const
|
|
31306
|
+
const visuals = visualOf$1(element);
|
|
31307
|
+
const values = [...visuals, ...inputOf(element)];
|
|
31217
31308
|
for (const type of [...VISUALS, ...INPUTS]) if (!values.some((value) => value.type === type) && ecs.has(element.entity, type)) ecs.remove(element.entity, type);
|
|
31218
31309
|
for (const value of values) {
|
|
31219
31310
|
if (!ecs.has(element.entity, value.type)) {
|
|
@@ -31224,6 +31315,7 @@ function createReconciler(ctx, modules, fields) {
|
|
|
31224
31315
|
const owned = ecs.typeOf(value.type.componentName)?.owned ?? [];
|
|
31225
31316
|
ecs.set(element.entity, asHandle(value.type), livePatch(value.value, owned));
|
|
31226
31317
|
}
|
|
31318
|
+
for (const value of visuals) recordRest(ctx, element, value);
|
|
31227
31319
|
writeExtras(element);
|
|
31228
31320
|
}
|
|
31229
31321
|
/**
|
|
@@ -31514,6 +31606,39 @@ function createReconciler(ctx, modules, fields) {
|
|
|
31514
31606
|
else modules.layout.enter(element);
|
|
31515
31607
|
}
|
|
31516
31608
|
/**
|
|
31609
|
+
* Asks for every root to be built again. The world calls it after a restore or a load, when it
|
|
31610
|
+
* brought every element to its rest pose and ended every track on it. The next reconcile does
|
|
31611
|
+
* the work, because only then the tree of the restored state is here to build from.
|
|
31612
|
+
*/
|
|
31613
|
+
function converged() {
|
|
31614
|
+
state.remount = true;
|
|
31615
|
+
ctx.deps.time.wake();
|
|
31616
|
+
}
|
|
31617
|
+
/**
|
|
31618
|
+
* Builds every root again from nothing: its element tree is dropped at once, with no exit, and
|
|
31619
|
+
* the reconcile of this pass enters it through the mount path. So after a restore or a load an
|
|
31620
|
+
* element stands exactly as if its root had just been mounted with the restored state: a new
|
|
31621
|
+
* entity with the components of the description, then its `enter` hook, then its loop. What a
|
|
31622
|
+
* mount does not bring is gone with the old tree: the local state of a component, a scroll
|
|
31623
|
+
* offset, the keyboard focus, a text being edited, a hover. A root that is leaving keeps
|
|
31624
|
+
* leaving.
|
|
31625
|
+
*/
|
|
31626
|
+
function remountRoots() {
|
|
31627
|
+
state.remount = false;
|
|
31628
|
+
for (const root of state.roots.values()) {
|
|
31629
|
+
if (state.removing.has(root.entity)) continue;
|
|
31630
|
+
const element = root.element === void 0 ? void 0 : lookup(root.element);
|
|
31631
|
+
if (element !== void 0) {
|
|
31632
|
+
forgetSubtree(element);
|
|
31633
|
+
forgetInstances(state, element.identity);
|
|
31634
|
+
despawnTree(element);
|
|
31635
|
+
}
|
|
31636
|
+
root.element = void 0;
|
|
31637
|
+
root.dirty = true;
|
|
31638
|
+
root.needsSolve = true;
|
|
31639
|
+
}
|
|
31640
|
+
}
|
|
31641
|
+
/**
|
|
31517
31642
|
* Reconciles one root from the node its `Tree` carries.
|
|
31518
31643
|
*
|
|
31519
31644
|
* @param root - The root to reconcile.
|
|
@@ -31574,13 +31699,15 @@ function createReconciler(ctx, modules, fields) {
|
|
|
31574
31699
|
}
|
|
31575
31700
|
}
|
|
31576
31701
|
/**
|
|
31577
|
-
* The first of the two systems of phase `layout`: the sweep, the
|
|
31578
|
-
* pull of the text being typed, the scroll offsets and the
|
|
31579
|
-
* show a string of another size, the viewport, the dirty
|
|
31702
|
+
* The first of the two systems of phase `layout`: the sweep, the roots a restore asked to build
|
|
31703
|
+
* again, the popups that may leave, the pull of the text being typed, the scroll offsets and the
|
|
31704
|
+
* windowed ranges, the bound texts that show a string of another size, the viewport, the dirty
|
|
31705
|
+
* roots and the hosted views.
|
|
31580
31706
|
*/
|
|
31581
31707
|
function reconcile() {
|
|
31582
31708
|
sweep();
|
|
31583
31709
|
state.reconciles += 1;
|
|
31710
|
+
if (state.remount) remountRoots();
|
|
31584
31711
|
settlePopups(ctx, state, unmountRoot);
|
|
31585
31712
|
fields.pull();
|
|
31586
31713
|
const containers = scrollContainers();
|
|
@@ -31720,7 +31847,8 @@ function createReconciler(ctx, modules, fields) {
|
|
|
31720
31847
|
unmountRoot,
|
|
31721
31848
|
markPointer,
|
|
31722
31849
|
playEnter,
|
|
31723
|
-
sweep
|
|
31850
|
+
sweep,
|
|
31851
|
+
converged
|
|
31724
31852
|
};
|
|
31725
31853
|
}
|
|
31726
31854
|
//#endregion
|
|
@@ -31846,6 +31974,7 @@ function createJsxApi(ctx, modules) {
|
|
|
31846
31974
|
applyTap: (entity) => applyTap(ctx, entity),
|
|
31847
31975
|
markPointer: frame.markPointer,
|
|
31848
31976
|
playEnter: frame.playEnter,
|
|
31977
|
+
converged: frame.converged,
|
|
31849
31978
|
key: (input) => focus.key(input),
|
|
31850
31979
|
blur: focus.blur
|
|
31851
31980
|
};
|
|
@@ -32119,7 +32248,9 @@ function restVisual(element) {
|
|
|
32119
32248
|
}
|
|
32120
32249
|
/**
|
|
32121
32250
|
* Records the rest pose of one element before a hook runs: the transform from `Box` and the
|
|
32122
|
-
* style, and the visual the element is actually drawn with.
|
|
32251
|
+
* style, and the visual the element is actually drawn with. The content of a scroll records no
|
|
32252
|
+
* rest `Transform`: the scroll step owns its pose, and the world brings an element back to every
|
|
32253
|
+
* rest it holds after a restore.
|
|
32123
32254
|
*
|
|
32124
32255
|
* @param ctx - Domain context of the ui plugin.
|
|
32125
32256
|
* @param element - The element that entered or moved.
|
|
@@ -32127,7 +32258,7 @@ function restVisual(element) {
|
|
|
32127
32258
|
*/
|
|
32128
32259
|
function writeRest(ctx, element, parent) {
|
|
32129
32260
|
const projection = ctx.deps.world.projection;
|
|
32130
|
-
projection.setRest(element.entity, Transform, restTransform(element.rect, parent, element.style, element.fit));
|
|
32261
|
+
if (element.type !== "content") projection.setRest(element.entity, Transform, restTransform(element.rect, parent, element.style, element.fit));
|
|
32131
32262
|
const visual = restVisual(element);
|
|
32132
32263
|
if (visual !== void 0) projection.setRest(element.entity, visual.component, visual.value);
|
|
32133
32264
|
}
|
|
@@ -32239,8 +32370,8 @@ function still(element) {
|
|
|
32239
32370
|
* element plays its `change.Transform` motion when it has one, else takes the pose through a
|
|
32240
32371
|
* 0 ms rest track, which lands on the next frame step and lets an additive loop re-base on the
|
|
32241
32372
|
* new rest; an element that has not spawned yet only records it, and so does one whose
|
|
32242
|
-
* `change.Box` motion already played. The content of a scroll keeps its `Transform
|
|
32243
|
-
* step owns it.
|
|
32373
|
+
* `change.Box` motion already played. The content of a scroll keeps its `Transform` and records
|
|
32374
|
+
* no rest with the world: the scroll step owns it.
|
|
32244
32375
|
*
|
|
32245
32376
|
* @param ctx - Domain context of the ui plugin.
|
|
32246
32377
|
* @param element - The element whose rect, style or fit may have changed.
|
|
@@ -32253,6 +32384,7 @@ function repose(ctx, element, parent, hooked, hint) {
|
|
|
32253
32384
|
if (samePose(element.rest, next)) return;
|
|
32254
32385
|
const previous = element.rest;
|
|
32255
32386
|
element.rest = next;
|
|
32387
|
+
if (element.type === "content") return;
|
|
32256
32388
|
ctx.deps.world.projection.setRest(element.entity, Transform, next);
|
|
32257
32389
|
if (!element.live || hooked) return;
|
|
32258
32390
|
const hook = element.motion?.change?.Transform;
|
|
@@ -32260,7 +32392,7 @@ function repose(ctx, element, parent, hooked, hint) {
|
|
|
32260
32392
|
play(ctx, element, (view) => hook(view, previous, next, hint));
|
|
32261
32393
|
return;
|
|
32262
32394
|
}
|
|
32263
|
-
|
|
32395
|
+
handleOf(ctx, element)?.toRest(Transform, { ms: 0 });
|
|
32264
32396
|
}
|
|
32265
32397
|
/**
|
|
32266
32398
|
* Moves the rest `Transform` of a root element up by the keyboard lift, or back to its own rest
|
|
@@ -33692,7 +33824,8 @@ function registerComponents(ctx, jsx) {
|
|
|
33692
33824
|
}
|
|
33693
33825
|
/**
|
|
33694
33826
|
* Opens the two systems of phase `layout`, the seven world hooks of `Tree`, `Box`, `Pressed` and
|
|
33695
|
-
* `PointerOver`, the
|
|
33827
|
+
* `PointerOver`, the listener that asks for every root to be built again after a restore or a
|
|
33828
|
+
* load, the two effect handlers, the hint listener that buffers every released hint for
|
|
33696
33829
|
* the `change` hooks of the next frame step, the three tap listeners (the `LocalWrite` patch, the
|
|
33697
33830
|
* pointer tap that clears the keyboard focus, and the tap that starts or ends the editing of a
|
|
33698
33831
|
* text field), the pointer door that opens the keyboard inside the DOM listener, the key listener
|
|
@@ -33720,7 +33853,7 @@ function openRegistrations(ctx, jsx, layout) {
|
|
|
33720
33853
|
})), ecs.onAdded(Tree, (entity) => {
|
|
33721
33854
|
const place = projection.keyOf(entity);
|
|
33722
33855
|
jsx.mountRoot(entity, place?.projection ?? "ui", ecs.get(entity, Layer)?.name ?? "ui");
|
|
33723
|
-
}), ecs.onRemoved(Tree, (entity) => jsx.unmountRoot(entity)), ecs.onAdded(Box, (entity) => jsx.playEnter(entity)), ecs.onAdded(Pressed, (entity) => jsx.markPointer(entity, "pressed", true)), ecs.onRemoved(Pressed, (entity) => jsx.markPointer(entity, "pressed", false)), ecs.onAdded(PointerOver, (entity) => jsx.markPointer(entity, "hover", true)), ecs.onRemoved(PointerOver, (entity) => jsx.markPointer(entity, "hover", false)), ctx.deps.flow.fx.handle("popup", layout.popupHandler(jsx)), ctx.deps.flow.fx.handle("guide", layout.guideHandler()), ctx.deps.flow.fx.onHint((hint) => {
|
|
33856
|
+
}), ecs.onRemoved(Tree, (entity) => jsx.unmountRoot(entity)), ecs.onAdded(Box, (entity) => jsx.playEnter(entity)), projection.onConverged(jsx.converged), ecs.onAdded(Pressed, (entity) => jsx.markPointer(entity, "pressed", true)), ecs.onRemoved(Pressed, (entity) => jsx.markPointer(entity, "pressed", false)), ecs.onAdded(PointerOver, (entity) => jsx.markPointer(entity, "hover", true)), ecs.onRemoved(PointerOver, (entity) => jsx.markPointer(entity, "hover", false)), ctx.deps.flow.fx.handle("popup", layout.popupHandler(jsx)), ctx.deps.flow.fx.handle("guide", layout.guideHandler()), ctx.deps.flow.fx.onHint((hint) => {
|
|
33724
33857
|
ctx.state.jsx.hints.push(hint);
|
|
33725
33858
|
}), ctx.deps.input.onTap(jsx.applyTap), ctx.deps.input.onTap(() => jsx.blur()), ctx.deps.input.onTap(jsx.tapped), ctx.deps.input.onPointer(jsx.pointer), ctx.deps.input.onKey(jsx.key), ctx.deps.input.controls.add(LocalWrite), () => jsx.releaseHosted(), () => ecs.despawnOwnedBy(UI_OWNER));
|
|
33726
33859
|
}
|
|
@@ -33773,6 +33906,7 @@ function stopUi(state) {
|
|
|
33773
33906
|
state.jsx.hosts.clear();
|
|
33774
33907
|
state.jsx.hosted.clear();
|
|
33775
33908
|
state.jsx.scrolls.clear();
|
|
33909
|
+
state.jsx.remount = false;
|
|
33776
33910
|
state.jsx.hints.length = 0;
|
|
33777
33911
|
state.jsx.focus.entity = void 0;
|
|
33778
33912
|
state.jsx.focus.ring = void 0;
|
|
@@ -34115,7 +34249,8 @@ function createJsxState() {
|
|
|
34115
34249
|
text: createTextState(),
|
|
34116
34250
|
hints: [],
|
|
34117
34251
|
scrolls: emptySet(),
|
|
34118
|
-
windowRenders: 0
|
|
34252
|
+
windowRenders: 0,
|
|
34253
|
+
remount: false
|
|
34119
34254
|
};
|
|
34120
34255
|
}
|
|
34121
34256
|
//#endregion
|
package/dist/testing.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Dt as AnyFlow, Ht as ClockSource, Nt as NodeTable, Wt as FakeClock, Xt as Json, ht as FeaturePlugin } from "./types-
|
|
2
|
-
import { t as createApp } from "./index-
|
|
3
|
-
import { n as saveOf, t as memory } from "./memory-
|
|
4
|
-
import { a as createHeadless, i as ReproResult, n as HeadlessGame, o as runRepro, r as Repro, s as stepFrames, t as HeadlessApp } from "./headless-
|
|
1
|
+
import { Dt as AnyFlow, Ht as ClockSource, Nt as NodeTable, Wt as FakeClock, Xt as Json, ht as FeaturePlugin } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { t as createApp } from "./index-qc-2WJnj.mjs";
|
|
3
|
+
import { n as saveOf, t as memory } from "./memory-D6S7BUAo.mjs";
|
|
4
|
+
import { a as createHeadless, i as ReproResult, n as HeadlessGame, o as runRepro, r as Repro, s as stepFrames, t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
5
5
|
import { AnyPluginInstance } from "@moku-labs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/plugins/clock/fake.d.ts
|
package/dist/testing.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Kt as type, Ut as exit, t as createApp } from "./src-
|
|
1
|
+
import { Kt as type, Ut as exit, t as createApp } from "./src-DiPISDVO.mjs";
|
|
2
2
|
import { n as saveOf, t as memory } from "./memory-CWlqhS7l.mjs";
|
|
3
3
|
import { t as fakeClock } from "./fake-MpzwZhIZ.mjs";
|
|
4
4
|
import { i as stepFrames, r as runRepro, t as createHeadless } from "./headless-BA6ffzqD.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Dt as AnyFlow, Ht as ClockSource, Jt as Config, Wt as FakeClock, Xt as Json, a as Config$3, g as Config$2, ht as FeaturePlugin, n as AssetsIo, pt as Config$1, tn as PlayerStateProvider, u as Manifest, v as PixiModule } from "./types-
|
|
2
|
-
import { o as AudioContextLike, s as Config$4 } from "./types-
|
|
3
|
-
import { _t as audioPlugin, ct as PlatformProvider, ht as effectsPlugin, i as screen, ot as platformPlugin, t as createApp } from "./index-
|
|
4
|
-
import { t as memory } from "./memory-
|
|
1
|
+
import { Dt as AnyFlow, Ht as ClockSource, Jt as Config, Wt as FakeClock, Xt as Json, a as Config$3, g as Config$2, ht as FeaturePlugin, n as AssetsIo, pt as Config$1, tn as PlayerStateProvider, u as Manifest, v as PixiModule } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { o as AudioContextLike, s as Config$4 } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { _t as audioPlugin, ct as PlatformProvider, ht as effectsPlugin, i as screen, ot as platformPlugin, t as createApp } from "./index-qc-2WJnj.mjs";
|
|
4
|
+
import { t as memory } from "./memory-D6S7BUAo.mjs";
|
|
5
5
|
import { AnyPluginInstance } from "@moku-labs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/app/types.d.ts
|
|
@@ -3470,7 +3470,10 @@ type AnyProjectionSpec = {
|
|
|
3470
3470
|
readonly motion?: AnyProjectionMotion;
|
|
3471
3471
|
};
|
|
3472
3472
|
/**
|
|
3473
|
-
* Why a reconcile runs. Merged over the frame; the cause table decides play or direct.
|
|
3473
|
+
* Why a reconcile runs. Merged over the frame; the cause table decides play or direct. A
|
|
3474
|
+
* `"restore"` and a `"load"` replace the state, so their reconcile also brings every live view to
|
|
3475
|
+
* its rest pose, whether its item changed or not, and every element to the rest pose its owner
|
|
3476
|
+
* recorded with `setRest`.
|
|
3474
3477
|
*
|
|
3475
3478
|
* @example
|
|
3476
3479
|
* ```ts
|
|
@@ -3590,7 +3593,8 @@ type ProjectionState = {
|
|
|
3590
3593
|
rests: Map<Entity, RestPose>; /** Projection name to key to the entity a plugin above registered under it. */
|
|
3591
3594
|
keys: Map<string, Map<string, Entity>>; /** The reverse of `keys`, so `keyOf` answers for a registered element too. */
|
|
3592
3595
|
keysByEntity: Map<Entity, ProjectionKey>; /** Entity to component name to the fields another writer owns. */
|
|
3593
|
-
mutes: Map<Entity, Map<string, Set<string>>>;
|
|
3596
|
+
mutes: Map<Entity, Map<string, Set<string>>>; /** The `onConverged` listeners: the owners of elements, told after a restore or a load. */
|
|
3597
|
+
converged: Array<() => void>;
|
|
3594
3598
|
offHints: Array<() => void>;
|
|
3595
3599
|
};
|
|
3596
3600
|
/**
|
|
@@ -3858,6 +3862,9 @@ type ProjectionApi = {
|
|
|
3858
3862
|
viewOf(entity: Entity, owner: Owner): ViewHandle<unknown> | undefined;
|
|
3859
3863
|
/**
|
|
3860
3864
|
* Records what one component of an element looks like at rest, so `toRest` knows where home is.
|
|
3865
|
+
* It is also where a restore and a load put the element: after their reconcile every track on
|
|
3866
|
+
* the entity is ended and every recorded component it still carries is written, muted fields
|
|
3867
|
+
* left out. So the owner records the pose it draws the element with, every time that changes.
|
|
3861
3868
|
*
|
|
3862
3869
|
* @param entity - The entity of the element.
|
|
3863
3870
|
* @param component - The component whose rest value is recorded.
|
|
@@ -3892,6 +3899,23 @@ type ProjectionApi = {
|
|
|
3892
3899
|
* ```
|
|
3893
3900
|
*/
|
|
3894
3901
|
registerKey(projection: string, key: string, entity: Entity): () => void;
|
|
3902
|
+
/**
|
|
3903
|
+
* Calls a listener after a reconcile a restore or a load caused. By then every live view and
|
|
3904
|
+
* every element with a recorded rest pose stands on that pose, and every track on them is
|
|
3905
|
+
* ended, also a loop the owner of an element started. The owner puts back what only it knows.
|
|
3906
|
+
*
|
|
3907
|
+
* @param listener - Called once after each such reconcile.
|
|
3908
|
+
* @returns The remover; calling it twice is safe.
|
|
3909
|
+
* @example
|
|
3910
|
+
* ```ts
|
|
3911
|
+
* // `ui` builds its roots again after a restore, so each element stands as freshly mounted.
|
|
3912
|
+
* const world = ctx.require(worldPlugin);
|
|
3913
|
+
* const off = world.projection.onConverged(() => jsx.converged());
|
|
3914
|
+
*
|
|
3915
|
+
* off(); // onStop: `ui` is gone
|
|
3916
|
+
* ```
|
|
3917
|
+
*/
|
|
3918
|
+
onConverged(listener: () => void): () => void;
|
|
3895
3919
|
/**
|
|
3896
3920
|
* Marks every mounted projection dirty and forces `view` for every item, so the next frame
|
|
3897
3921
|
* rebuilds the picture directly.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Xt as Json, an as Snapshot } from "./types-
|
|
2
|
-
import { t as HeadlessApp } from "./headless-
|
|
1
|
+
import { Xt as Json, an as Snapshot } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { t as HeadlessApp } from "./headless-TowWxARz.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
|
|
5
5
|
//#region src/plugins/flow/doors/types.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as Api$2, B as ComponentType, F as AnyComponent, H as Entity, It as TypeTag, L as AnyComponentValue, Lt as Descriptor, R as ComponentHandle, Sn as Require, Xt as Json, Yt as Events$2, at as NumericFields, ct as TrackOptions, dn as Events$3, dt as Api$1, et as Ease, h as Api$5, hn as Api, it as MotionHandle, lt as TrackSegment, nt as LayerSpec, q as Owner, qt as Api$4, s as Events$4, t as Api$3, tt as LayerSort, xn as Events$5 } from "./types-
|
|
2
|
-
import { A as InputApi, c as UiNode, i as Finding, n as ElementChange, o as JsxState, q as I18nApi, r as ElementMotion, rt as StylesState, x as TextApi } from "./types-
|
|
1
|
+
import { A as Api$2, B as ComponentType, F as AnyComponent, H as Entity, It as TypeTag, L as AnyComponentValue, Lt as Descriptor, R as ComponentHandle, Sn as Require, Xt as Json, Yt as Events$2, at as NumericFields, ct as TrackOptions, dn as Events$3, dt as Api$1, et as Ease, h as Api$5, hn as Api, it as MotionHandle, lt as TrackSegment, nt as LayerSpec, q as Owner, qt as Api$4, s as Events$4, t as Api$3, tt as LayerSort, xn as Events$5 } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { A as InputApi, c as UiNode, i as Finding, n as ElementChange, o as JsxState, q as I18nApi, r as ElementMotion, rt as StylesState, x as TextApi } from "./types-p12uOu00.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
import { PluginCtx } from "@moku-labs/core";
|
|
5
5
|
import { Node, Yoga } from "yoga-layout/load";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as Api$1, B as ComponentType, D as FilterSlot, H as Entity, O as Point, R as ComponentHandle, Sn as Require, _ as PixiFilter, b as PixiTexture, dt as Api, h as Api$2, s as Events, t as Api$3, v as PixiModule, xn as Events$1, y as PixiSprite } from "./types-
|
|
2
|
-
import { x as AnimApi } from "./types-
|
|
1
|
+
import { A as Api$1, B as ComponentType, D as FilterSlot, H as Entity, O as Point, R as ComponentHandle, Sn as Require, _ as PixiFilter, b as PixiTexture, dt as Api, h as Api$2, s as Events, t as Api$3, v as PixiModule, xn as Events$1, y as PixiSprite } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { x as AnimApi } from "./types-DzbRzti4.mjs";
|
|
3
3
|
import { Log } from "@moku-labs/common/browser";
|
|
4
4
|
import { PluginCtx } from "@moku-labs/core";
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as Api$2, B as ComponentType, F as AnyComponent, H as Entity, I as AnyComponentType, L as AnyComponentValue, Lt as Descriptor, O as Point$2, Q as ChangeHook, Sn as Require, V as ComponentValue, Vt as Api$5, Xt as Json, at as NumericFields, dt as Api$1, h as Api$3, hn as Api, it as MotionHandle, k as ViewportSize, ot as ProjectionMotion, rt as Motion, s as Events$1, t as Api$4, ut as ViewHandle, zt as Hint } from "./types-
|
|
1
|
+
import { A as Api$2, B as ComponentType, F as AnyComponent, H as Entity, I as AnyComponentType, L as AnyComponentValue, Lt as Descriptor, O as Point$2, Q as ChangeHook, Sn as Require, V as ComponentValue, Vt as Api$5, Xt as Json, at as NumericFields, dt as Api$1, h as Api$3, hn as Api, it as MotionHandle, k as ViewportSize, ot as ProjectionMotion, rt as Motion, s as Events$1, t as Api$4, ut as ViewHandle, zt as Hint } from "./types-CUNcMkD1.mjs";
|
|
2
2
|
import { Log } from "@moku-labs/common/browser";
|
|
3
3
|
import { PluginCtx } from "@moku-labs/core";
|
|
4
4
|
|
|
@@ -2693,7 +2693,8 @@ type JsxState = {
|
|
|
2693
2693
|
text: TextState;
|
|
2694
2694
|
hints: Hint[];
|
|
2695
2695
|
scrolls: Set<Entity>;
|
|
2696
|
-
windowRenders: number;
|
|
2696
|
+
windowRenders: number; /** True from a restore or a load until the next reconcile built every root again. */
|
|
2697
|
+
remount: boolean;
|
|
2697
2698
|
};
|
|
2698
2699
|
/**
|
|
2699
2700
|
* One node of the snapshot `tree()` answers with. `rect` is natural: under a `fit` ancestor it
|
package/dist/visual.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as Api$1, h as Api, ln as Api$3, qt as Api$2 } from "./types-
|
|
2
|
-
import { r as UiApi, x as AnimApi } from "./types-
|
|
3
|
-
import { A as InputApi } from "./types-
|
|
4
|
-
import { r as Repro } from "./headless-
|
|
5
|
-
import { a as InputOf, r as ControlApp } from "./types-
|
|
6
|
-
import { t as commands } from "./commands-
|
|
1
|
+
import { A as Api$1, h as Api, ln as Api$3, qt as Api$2 } from "./types-CUNcMkD1.mjs";
|
|
2
|
+
import { r as UiApi, x as AnimApi } from "./types-DzbRzti4.mjs";
|
|
3
|
+
import { A as InputApi } from "./types-p12uOu00.mjs";
|
|
4
|
+
import { r as Repro } from "./headless-TowWxARz.mjs";
|
|
5
|
+
import { a as InputOf, r as ControlApp } from "./types-CsejHij6.mjs";
|
|
6
|
+
import { t as commands } from "./commands-BMpk-pW7.mjs";
|
|
7
7
|
|
|
8
8
|
//#region src/visual/types.d.ts
|
|
9
9
|
/** The base commands of the `/control` door, keyed by their short names. */
|
package/llms.txt
CHANGED
|
@@ -479,6 +479,7 @@ The graph. Modules `runner`, `gate`, `inbox`, `fx`, `features`. Runner methods s
|
|
|
479
479
|
- `features.register(name, description)`, `features.all()`, `features.contributions(slotName)`.
|
|
480
480
|
- `FlowState` is `{ running, path, stack, pending: { fx?, gate? }, mode }`.
|
|
481
481
|
- `Bookmark` is `{ path, input, player, session, rng, graph, scene?, rest? }`. Serialisable. `scene` is written by the `game.bookmark` door and read by `game.restore`; `flow.restore` ignores it. `path` names a rest node, or the transit node that waits at the gate for an effect that takes answers (a `popup`, or a hand-written descriptor with `answers`); `rest: { path, input }` then names the rest point before it (left out when the graph started at that node or a restore entered it), and the state is the one committed when that node was entered. `restore` needs a running graph. A rest checkpoint is always accepted. Any other node is accepted only when the graph did not change since the bookmark; with another graph a transit bookmark is entered at `rest` instead when that is a checkpoint, and the log gets `flow:restore-fell-back`.
|
|
482
|
+
- After a `restore` or a load the picture is the one of the restored state, whatever played before: every view of a mounted projection stands on its rest pose with no motion running, and every ui root is built again through the mount path, so `enter` hooks run and a loop starts as after a fresh mount. Scroll offsets, local state, hover and focus start anew. Look an element up again with `ui.find(key)` after a restore. A rest node names the scene it is shown on (`scene: "splash"`): a restore into a node without `scene` keeps the mounted scene.
|
|
482
483
|
- `restore` of a rest node resolves when the node is entered. `restore` of a transit node runs it again from its start, so its effects before the gate play again, and resolves once its gate is open. The open gate is not the draw: the popup shows on the next frame. `restore` also resolves when the loop ends before the bookmark was entered, after a stop or a fatal error, and nothing is entered then.
|
|
483
484
|
- Events: `flow:edge` `{ flow, node, outcome, payload, next, patches: { doc, session }, index, now }` after the commit of an edge. `flow:rest` `{ path, checkpoint }`. `flow:error` `{ path, error, rolledBackTo, retry }`.
|
|
484
485
|
- Config: `mainFlow` default `undefined` and required before `run()`, `safeNode: string | undefined` default `undefined` which means the main flow's `start`, `retries` default `1`, `settleTimeoutMs` default `2000`, `journalLimit` default `500`, `holdMs` default `0`.
|