@datamoc/mw_games 0.41.0 → 0.43.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/CHANGELOG.md +105 -0
- package/README.md +62 -1
- package/REFERENCE.md +73 -8
- package/api-surface.json +696 -0
- package/data/microgm-essential.PROVENANCE.md +13 -0
- package/data/microgm-essential.sf2 +0 -0
- package/data/soundfont-catalog.json +8 -0
- package/dist/audio/AudioLoader.d.ts +28 -0
- package/dist/audio/AudioLoader.d.ts.map +1 -0
- package/dist/audio/AudioLoader.js +53 -0
- package/dist/audio/AudioLoader.js.map +1 -0
- package/dist/audio/Channels.d.ts +1 -0
- package/dist/audio/Channels.d.ts.map +1 -1
- package/dist/audio/Channels.js +2 -1
- package/dist/audio/Channels.js.map +1 -1
- package/dist/audio/MidiRender.d.ts +19 -1
- package/dist/audio/MidiRender.d.ts.map +1 -1
- package/dist/audio/MidiRender.js +24 -1
- package/dist/audio/MidiRender.js.map +1 -1
- package/dist/audio/MusicPlayer.d.ts +80 -0
- package/dist/audio/MusicPlayer.d.ts.map +1 -0
- package/dist/audio/MusicPlayer.js +147 -0
- package/dist/audio/MusicPlayer.js.map +1 -0
- package/dist/audio/SampleDecoder.d.ts +16 -2
- package/dist/audio/SampleDecoder.d.ts.map +1 -1
- package/dist/audio/SampleDecoder.js +10 -6
- package/dist/audio/SampleDecoder.js.map +1 -1
- package/dist/audio/Sound.d.ts +2 -0
- package/dist/audio/Sound.d.ts.map +1 -1
- package/dist/audio/Sound.js +3 -0
- package/dist/audio/Sound.js.map +1 -1
- package/dist/audio/SoundFont.d.ts +40 -5
- package/dist/audio/SoundFont.d.ts.map +1 -1
- package/dist/audio/SoundFont.js +52 -14
- package/dist/audio/SoundFont.js.map +1 -1
- package/dist/audio/Synth.d.ts +1 -1
- package/dist/audio/Synth.d.ts.map +1 -1
- package/dist/audio/Synth.js +4 -0
- package/dist/audio/Synth.js.map +1 -1
- package/dist/audio/index.d.ts +8 -4
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +4 -2
- package/dist/audio/index.js.map +1 -1
- package/dist/core/DialogueText.d.ts +25 -0
- package/dist/core/DialogueText.d.ts.map +1 -1
- package/dist/core/DialogueText.js +25 -0
- package/dist/core/DialogueText.js.map +1 -1
- package/dist/core/Motion.d.ts +20 -0
- package/dist/core/Motion.d.ts.map +1 -1
- package/dist/core/Motion.js +20 -0
- package/dist/core/Motion.js.map +1 -1
- package/dist/core/Save.d.ts +31 -0
- package/dist/core/Save.d.ts.map +1 -1
- package/dist/core/Save.js +31 -0
- package/dist/core/Save.js.map +1 -1
- package/dist/core/Twee.d.ts +34 -0
- package/dist/core/Twee.d.ts.map +1 -1
- package/dist/core/Twee.js +34 -0
- package/dist/core/Twee.js.map +1 -1
- package/dist/mw_games.global.js +22 -22
- package/dist/mwl/index.d.ts +2 -0
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +1 -0
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/objects.d.ts +31 -0
- package/dist/mwl/objects.d.ts.map +1 -0
- package/dist/mwl/objects.js +83 -0
- package/dist/mwl/objects.js.map +1 -0
- package/dist/mwl/schema.d.ts +1 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/tables.d.ts +2 -0
- package/dist/mwl/tables.d.ts.map +1 -1
- package/dist/mwl/tables.js +13 -0
- package/dist/mwl/tables.js.map +1 -1
- package/dist/physics/XpbdWorld.d.ts +68 -5
- package/dist/physics/XpbdWorld.d.ts.map +1 -1
- package/dist/physics/XpbdWorld.js +135 -6
- package/dist/physics/XpbdWorld.js.map +1 -1
- package/dist/testing/index.d.ts +16 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +21 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/three-d/Collision3D.d.ts +46 -2
- package/dist/three-d/Collision3D.d.ts.map +1 -1
- package/dist/three-d/Collision3D.js +46 -2
- package/dist/three-d/Collision3D.js.map +1 -1
- package/dist/three-d/Grid.d.ts +12 -1
- package/dist/three-d/Grid.d.ts.map +1 -1
- package/dist/three-d/Grid.js +12 -1
- package/dist/three-d/Grid.js.map +1 -1
- package/dist/three-d/Vox.d.ts +13 -1
- package/dist/three-d/Vox.d.ts.map +1 -1
- package/dist/three-d/Vox.js +13 -1
- package/dist/three-d/Vox.js.map +1 -1
- package/dist/two-d/Game.d.ts +21 -1
- package/dist/two-d/Game.d.ts.map +1 -1
- package/dist/two-d/Game.js +73 -6
- package/dist/two-d/Game.js.map +1 -1
- package/dist/two-d/Scene2D.d.ts +24 -0
- package/dist/two-d/Scene2D.d.ts.map +1 -1
- package/dist/two-d/Scene2D.js +30 -0
- package/dist/two-d/Scene2D.js.map +1 -1
- package/dist/two-d/render/SceneTransition.d.ts +272 -0
- package/dist/two-d/render/SceneTransition.d.ts.map +1 -0
- package/dist/two-d/render/SceneTransition.js +431 -0
- package/dist/two-d/render/SceneTransition.js.map +1 -0
- package/dist/two-d/render/index.d.ts +2 -0
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +1 -0
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/two-d/ui/Button.d.ts +23 -0
- package/dist/two-d/ui/Button.d.ts.map +1 -1
- package/dist/two-d/ui/Button.js +37 -0
- package/dist/two-d/ui/Button.js.map +1 -1
- package/dist/two-d/ui/DropdownView.d.ts +49 -3
- package/dist/two-d/ui/DropdownView.d.ts.map +1 -1
- package/dist/two-d/ui/DropdownView.js +150 -9
- package/dist/two-d/ui/DropdownView.js.map +1 -1
- package/dist/two-d/ui/ScrollBox.d.ts +90 -0
- package/dist/two-d/ui/ScrollBox.d.ts.map +1 -1
- package/dist/two-d/ui/ScrollBox.js +206 -4
- package/dist/two-d/ui/ScrollBox.js.map +1 -1
- package/dist/two-d/ui/ScrollText.d.ts +122 -0
- package/dist/two-d/ui/ScrollText.d.ts.map +1 -0
- package/dist/two-d/ui/ScrollText.js +202 -0
- package/dist/two-d/ui/ScrollText.js.map +1 -0
- package/dist/two-d/ui/Tooltip.d.ts +70 -1
- package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
- package/dist/two-d/ui/Tooltip.js +115 -3
- package/dist/two-d/ui/Tooltip.js.map +1 -1
- package/dist/two-d/ui/Window.d.ts +35 -2
- package/dist/two-d/ui/Window.d.ts.map +1 -1
- package/dist/two-d/ui/Window.js +58 -3
- package/dist/two-d/ui/Window.js.map +1 -1
- package/dist/two-d/ui/index.d.ts +7 -5
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +3 -2
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/two-d/ui/theme.d.ts +18 -0
- package/dist/two-d/ui/theme.d.ts.map +1 -1
- package/dist/two-d/ui/theme.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +14 -3
- package/sbom.cdx.json +462 -243
- package/tools/browser-driver.mjs +3 -3
- package/tools/browser-smoke.mjs +19 -2
- package/tools/build-tablebases.mjs +7 -3
- package/tools/compile-openings.mjs +7 -3
- package/tools/compile-resources.d.mts +8 -0
- package/tools/compile-resources.mjs +62 -14
- package/tools/emit-page.d.mts +9 -0
- package/tools/emit-page.mjs +57 -4
- package/tools/find-chrome.mjs +4 -2
- package/tools/init.mjs +11 -3
- package/tools/play-uci.mjs +9 -5
- package/tools/svg-optimise.d.mts +8 -0
- package/tools/svg-optimise.mjs +45 -0
- package/tools/vite.mjs +10 -1
- package/tools.md +5 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Container } from 'pixi.js';
|
|
2
|
+
import type { PointerTracker } from '../../core/Input.ts';
|
|
3
|
+
import { Button } from './Button.ts';
|
|
2
4
|
export interface TooltipOptions {
|
|
3
5
|
/** seconds the pointer must rest before the tooltip appears; defaults to 0.4 */
|
|
4
6
|
delay?: number;
|
|
@@ -68,11 +70,13 @@ export declare class Tooltip extends Container {
|
|
|
68
70
|
/**
|
|
69
71
|
* The pointer is resting on something with `text` to explain, at `x`/`y`.
|
|
70
72
|
*
|
|
73
|
+
* `delay` replaces the tooltip's own wait for this one call (a touch long-press waits longer than a hover).
|
|
74
|
+
*
|
|
71
75
|
* Safe to call every frame with the same arguments: the delay keeps counting rather than
|
|
72
76
|
* restarting. Calling it with *different* text restarts the wait, so sweeping across a row
|
|
73
77
|
* of icons shows the one the pointer settles on rather than the first one it crossed.
|
|
74
78
|
*/
|
|
75
|
-
hover(text: string, x: number, y: number): void;
|
|
79
|
+
hover(text: string, x: number, y: number, delay?: number): void;
|
|
76
80
|
/** the pointer left: cancels a pending tooltip and hides a shown one */
|
|
77
81
|
leave(): void;
|
|
78
82
|
get isShowing(): boolean;
|
|
@@ -105,4 +109,69 @@ export declare class Tooltip extends Container {
|
|
|
105
109
|
/** offsets from the anchor, then pulls back inside the viewport if that would overflow it */
|
|
106
110
|
private place;
|
|
107
111
|
}
|
|
112
|
+
/** a rectangle on screen that has something to explain, in the same space as the pointer positions fed to the host */
|
|
113
|
+
export interface TooltipTarget {
|
|
114
|
+
bounds(): {
|
|
115
|
+
x: number;
|
|
116
|
+
y: number;
|
|
117
|
+
width: number;
|
|
118
|
+
height: number;
|
|
119
|
+
};
|
|
120
|
+
/** what to say now, or undefined for nothing */
|
|
121
|
+
text(): string | undefined;
|
|
122
|
+
/** false while the target is hidden; a hidden one explains nothing. True when omitted */
|
|
123
|
+
active?(): boolean;
|
|
124
|
+
}
|
|
125
|
+
export interface TooltipHostOptions {
|
|
126
|
+
/** the tooltip to drive; a default one when omitted */
|
|
127
|
+
tooltip?: Tooltip;
|
|
128
|
+
/** seconds a finger or button must rest before the tooltip shows on a press; 0.5 when omitted */
|
|
129
|
+
longPress?: number;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Drives one `Tooltip` from rectangles instead of from each widget's own pointer events, which is
|
|
133
|
+
* what makes it work in the two places hover cannot reach: on a touch screen (a press that rests
|
|
134
|
+
* for `longPress` seconds shows the text, and releasing hides it) and over a disabled `Button`,
|
|
135
|
+
* which has no pointer events to receive (the host tests the button's bounds itself, and a greyed-out
|
|
136
|
+
* button is exactly the one worth explaining).
|
|
137
|
+
*
|
|
138
|
+
* Feed it pointer positions with `pointerMove`, `pointerDown` and `pointerUp` (or `attach` a
|
|
139
|
+
* `PointerTracker`), and call `update(dt)` each frame. The later a target was added, the higher it
|
|
140
|
+
* counts when targets overlap.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```ts
|
|
144
|
+
* import { Button, TooltipHost } from '@datamoc/mw_games/two-d/ui';
|
|
145
|
+
*
|
|
146
|
+
* const host = new TooltipHost({ longPress: 0.4 });
|
|
147
|
+
* host.tooltip.setViewport(800, 600);
|
|
148
|
+
*
|
|
149
|
+
* const test = new Button({ width: 80, height: 28, text: 'Test', disabled: true,
|
|
150
|
+
* tooltip: () => 'Build a road across the gap first' });
|
|
151
|
+
* host.addButton(test);
|
|
152
|
+
*
|
|
153
|
+
* host.pointerMove(10, 10); // over the disabled button: the text still shows after the hover delay
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare class TooltipHost extends Container {
|
|
157
|
+
readonly tooltip: Tooltip;
|
|
158
|
+
private readonly longPress;
|
|
159
|
+
private readonly targets;
|
|
160
|
+
constructor(options?: TooltipHostOptions);
|
|
161
|
+
/** @returns a function that removes the target again */
|
|
162
|
+
add(target: TooltipTarget): () => void;
|
|
163
|
+
/** a button's own bounds and `tooltip`, whether or not the button is disabled */
|
|
164
|
+
addButton(button: Button): () => void;
|
|
165
|
+
private targetAt;
|
|
166
|
+
/** a pointer with no button down moved: the usual hover */
|
|
167
|
+
pointerMove(x: number, y: number): void;
|
|
168
|
+
/** a finger or button went down: the tooltip shows once it has rested for `longPress` */
|
|
169
|
+
pointerDown(x: number, y: number): void;
|
|
170
|
+
/** the finger or button came up */
|
|
171
|
+
pointerUp(): void;
|
|
172
|
+
/** wires a `PointerTracker` (`Input.attachPointer`) to the host; returns the function that unwires it */
|
|
173
|
+
attach(pointer: PointerTracker): () => void;
|
|
174
|
+
/** @returns true on the frame the tooltip appears, as `Tooltip.update` does */
|
|
175
|
+
update(dt: number): boolean;
|
|
176
|
+
}
|
|
108
177
|
//# sourceMappingURL=Tooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,MAAM,WAAW,cAAc;IAC9B,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4FAA4F;IAC5F,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAElC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,OAAO,CAAsE;IACrF,OAAO,CAAC,MAAM,CAAK;IAEnB,YAAY,OAAO,GAAE,cAAmB,EAcvC;IAED,2FAA2F;IAC3F,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/C;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,IAAI,CAWlE;IAED,wEAAwE;IACxE,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,uFAAuF;IACvF,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,yFAAyF;IACzF,IAAI,aAAa,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAE5C;IAED,IAAI,IAAI,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAE5C;IAED,mGAAmG;IACnG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAmB1B;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAEzD;IAED,6FAA6F;IAC7F,OAAO,CAAC,KAAK;CAwBb;AAED,sHAAsH;AACtH,MAAM,WAAW,aAAa;IAC7B,MAAM,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,gDAAgD;IAChD,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;IAC3B,yFAAyF;IACzF,MAAM,CAAC,IAAI,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,YAAY,OAAO,GAAE,kBAAuB,EAK3C;IAED,wDAAwD;IACxD,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,CAMrC;IAED,iFAAiF;IACjF,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,CAYpC;IAED,OAAO,CAAC,QAAQ;IAYhB,2DAA2D;IAC3D,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAItC;IAED,yFAAyF;IACzF,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAItC;IAED,mCAAmC;IACnC,SAAS,IAAI,IAAI,CAEhB;IAED,yGAAyG;IACzG,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,IAAI,CAY1C;IAED,+EAA+E;IAC/E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE1B;CACD"}
|
package/dist/two-d/ui/Tooltip.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Container } from 'pixi.js';
|
|
2
|
+
import { Button } from './Button.js';
|
|
2
3
|
import { Label } from './Label.js';
|
|
3
4
|
import { Window } from './Window.js';
|
|
4
5
|
import { theme } from './theme.js';
|
|
@@ -68,11 +69,13 @@ export class Tooltip extends Container {
|
|
|
68
69
|
/**
|
|
69
70
|
* The pointer is resting on something with `text` to explain, at `x`/`y`.
|
|
70
71
|
*
|
|
72
|
+
* `delay` replaces the tooltip's own wait for this one call (a touch long-press waits longer than a hover).
|
|
73
|
+
*
|
|
71
74
|
* Safe to call every frame with the same arguments: the delay keeps counting rather than
|
|
72
75
|
* restarting. Calling it with *different* text restarts the wait, so sweeping across a row
|
|
73
76
|
* of icons shows the one the pointer settles on rather than the first one it crossed.
|
|
74
77
|
*/
|
|
75
|
-
hover(text, x, y) {
|
|
78
|
+
hover(text, x, y, delay = this.delay) {
|
|
76
79
|
if (this.pending && this.pending.text === text) {
|
|
77
80
|
this.pending.x = x;
|
|
78
81
|
this.pending.y = y;
|
|
@@ -80,7 +83,7 @@ export class Tooltip extends Container {
|
|
|
80
83
|
this.place();
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
83
|
-
this.pending = { text, x, y };
|
|
86
|
+
this.pending = { text, x, y, delay };
|
|
84
87
|
this.waited = 0;
|
|
85
88
|
this.visible = false;
|
|
86
89
|
}
|
|
@@ -109,7 +112,7 @@ export class Tooltip extends Container {
|
|
|
109
112
|
if (!this.pending || this.visible)
|
|
110
113
|
return false;
|
|
111
114
|
this.waited += dt;
|
|
112
|
-
if (this.waited < this.delay)
|
|
115
|
+
if (this.waited < this.pending.delay)
|
|
113
116
|
return false;
|
|
114
117
|
this.body.setText(this.pending.text);
|
|
115
118
|
const t = theme();
|
|
@@ -160,4 +163,113 @@ export class Tooltip extends Container {
|
|
|
160
163
|
this.panel.y = y;
|
|
161
164
|
}
|
|
162
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Drives one `Tooltip` from rectangles instead of from each widget's own pointer events, which is
|
|
168
|
+
* what makes it work in the two places hover cannot reach: on a touch screen (a press that rests
|
|
169
|
+
* for `longPress` seconds shows the text, and releasing hides it) and over a disabled `Button`,
|
|
170
|
+
* which has no pointer events to receive (the host tests the button's bounds itself, and a greyed-out
|
|
171
|
+
* button is exactly the one worth explaining).
|
|
172
|
+
*
|
|
173
|
+
* Feed it pointer positions with `pointerMove`, `pointerDown` and `pointerUp` (or `attach` a
|
|
174
|
+
* `PointerTracker`), and call `update(dt)` each frame. The later a target was added, the higher it
|
|
175
|
+
* counts when targets overlap.
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```ts
|
|
179
|
+
* import { Button, TooltipHost } from '@datamoc/mw_games/two-d/ui';
|
|
180
|
+
*
|
|
181
|
+
* const host = new TooltipHost({ longPress: 0.4 });
|
|
182
|
+
* host.tooltip.setViewport(800, 600);
|
|
183
|
+
*
|
|
184
|
+
* const test = new Button({ width: 80, height: 28, text: 'Test', disabled: true,
|
|
185
|
+
* tooltip: () => 'Build a road across the gap first' });
|
|
186
|
+
* host.addButton(test);
|
|
187
|
+
*
|
|
188
|
+
* host.pointerMove(10, 10); // over the disabled button: the text still shows after the hover delay
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
export class TooltipHost extends Container {
|
|
192
|
+
constructor(options = {}) {
|
|
193
|
+
super();
|
|
194
|
+
this.targets = [];
|
|
195
|
+
this.tooltip = options.tooltip ?? new Tooltip();
|
|
196
|
+
this.longPress = options.longPress ?? 0.5;
|
|
197
|
+
this.addChild(this.tooltip);
|
|
198
|
+
}
|
|
199
|
+
/** @returns a function that removes the target again */
|
|
200
|
+
add(target) {
|
|
201
|
+
this.targets.push(target);
|
|
202
|
+
return () => {
|
|
203
|
+
const at = this.targets.indexOf(target);
|
|
204
|
+
if (at >= 0)
|
|
205
|
+
this.targets.splice(at, 1);
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/** a button's own bounds and `tooltip`, whether or not the button is disabled */
|
|
209
|
+
addButton(button) {
|
|
210
|
+
return this.add({
|
|
211
|
+
bounds: () => {
|
|
212
|
+
const rect = button.getBounds();
|
|
213
|
+
return { x: rect.x, y: rect.y, width: rect.width, height: rect.height };
|
|
214
|
+
},
|
|
215
|
+
text: () => button.tooltip,
|
|
216
|
+
active: () => {
|
|
217
|
+
for (let node = button; node; node = node.parent)
|
|
218
|
+
if (!node.visible)
|
|
219
|
+
return false;
|
|
220
|
+
return true;
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
targetAt(x, y) {
|
|
225
|
+
for (let index = this.targets.length - 1; index >= 0; index--) {
|
|
226
|
+
const target = this.targets[index];
|
|
227
|
+
if (target.active && !target.active())
|
|
228
|
+
continue;
|
|
229
|
+
const rect = target.bounds();
|
|
230
|
+
if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) {
|
|
231
|
+
return target.text() === undefined ? null : target;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
/** a pointer with no button down moved: the usual hover */
|
|
237
|
+
pointerMove(x, y) {
|
|
238
|
+
const text = this.targetAt(x, y)?.text();
|
|
239
|
+
if (text)
|
|
240
|
+
this.tooltip.hover(text, x, y);
|
|
241
|
+
else
|
|
242
|
+
this.tooltip.leave();
|
|
243
|
+
}
|
|
244
|
+
/** a finger or button went down: the tooltip shows once it has rested for `longPress` */
|
|
245
|
+
pointerDown(x, y) {
|
|
246
|
+
const text = this.targetAt(x, y)?.text();
|
|
247
|
+
if (text)
|
|
248
|
+
this.tooltip.hover(text, x, y, this.longPress);
|
|
249
|
+
else
|
|
250
|
+
this.tooltip.leave();
|
|
251
|
+
}
|
|
252
|
+
/** the finger or button came up */
|
|
253
|
+
pointerUp() {
|
|
254
|
+
this.tooltip.leave();
|
|
255
|
+
}
|
|
256
|
+
/** wires a `PointerTracker` (`Input.attachPointer`) to the host; returns the function that unwires it */
|
|
257
|
+
attach(pointer) {
|
|
258
|
+
const onMove = (p) => this.pointerMove(p.x, p.y);
|
|
259
|
+
const onDown = (p) => this.pointerDown(p.x, p.y);
|
|
260
|
+
const onUp = () => this.pointerUp();
|
|
261
|
+
pointer.move.add(onMove);
|
|
262
|
+
pointer.down.add(onDown);
|
|
263
|
+
pointer.up.add(onUp);
|
|
264
|
+
return () => {
|
|
265
|
+
pointer.move.remove(onMove);
|
|
266
|
+
pointer.down.remove(onDown);
|
|
267
|
+
pointer.up.remove(onUp);
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/** @returns true on the frame the tooltip appears, as `Tooltip.update` does */
|
|
271
|
+
update(dt) {
|
|
272
|
+
return this.tooltip.update(dt);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
163
275
|
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/two-d/ui/Tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/two-d/ui/Tooltip.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { Container } from 'pixi.js';
|
|
2
2
|
import { Signal } from '../../core/Signal.ts';
|
|
3
|
+
import { type OpenAnimationKind } from '../render/SceneTransition.ts';
|
|
3
4
|
import type { Action } from '../../core/Input.ts';
|
|
4
5
|
export interface WindowColors {
|
|
5
6
|
background?: number;
|
|
6
7
|
border?: number;
|
|
7
8
|
title?: number;
|
|
8
9
|
}
|
|
10
|
+
/** how a window opens or closes: `pop` (springs out), `grow`, `slide` (up from below) or `fade` */
|
|
11
|
+
export interface WindowAnimation {
|
|
12
|
+
animation: OpenAnimationKind;
|
|
13
|
+
/** where `pop` and `grow` come from and go back to, in the window's parent space; the window's centre when omitted */
|
|
14
|
+
from?: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
/** seconds; 0.25 when omitted */
|
|
19
|
+
duration?: number;
|
|
20
|
+
}
|
|
9
21
|
export interface WindowOptions {
|
|
10
22
|
width: number;
|
|
11
23
|
height: number;
|
|
@@ -86,6 +98,7 @@ export declare class Window extends Container {
|
|
|
86
98
|
private blocker;
|
|
87
99
|
private readonly themeListener;
|
|
88
100
|
private isClosed;
|
|
101
|
+
private motion;
|
|
89
102
|
private colors;
|
|
90
103
|
constructor(options: WindowOptions);
|
|
91
104
|
/** reapplies the current theme to the frame and title, without changing size or content */
|
|
@@ -121,13 +134,33 @@ export declare class Window extends Container {
|
|
|
121
134
|
*/
|
|
122
135
|
get closed(): boolean;
|
|
123
136
|
/** called each frame while this window is the top of the stack */
|
|
124
|
-
update(
|
|
137
|
+
update(dt: number): void;
|
|
138
|
+
/** puts the window at `progress` of its animation: scaled about the origin, faded, pushed down by a slide */
|
|
139
|
+
private applyMotion;
|
|
140
|
+
/**
|
|
141
|
+
* Plays the opening animation from the window's current position. The stack calls `update(dt)`
|
|
142
|
+
* on its top window, which drives it. Under reduced motion the window simply appears.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* import { Window } from '@datamoc/mw_games/two-d/ui';
|
|
147
|
+
*
|
|
148
|
+
* const window = new Window({ width: 240, height: 120, title: 'Result' });
|
|
149
|
+
* window.open({ animation: 'pop' });
|
|
150
|
+
* window.update(0.25); // normally the WindowStack's update does this
|
|
151
|
+
* console.log(window.scale.x); // 1
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
open(animation?: WindowAnimation): void;
|
|
125
155
|
/**
|
|
126
156
|
* Announces the close and frees this window and its contents. Idempotent, so a second
|
|
127
157
|
* `close()` (a `pop()` racing a `cancel`, a `closeAll()` after a manual close) is a no-op
|
|
128
158
|
* rather than a second `destroy`. The instance is spent afterwards; see `closed`.
|
|
159
|
+
*
|
|
160
|
+
* With `animation` it plays the opening backwards first and closes when it ends (driven by
|
|
161
|
+
* `update(dt)`), unless reduced motion is on, when it closes at once.
|
|
129
162
|
*/
|
|
130
|
-
close(): void;
|
|
163
|
+
close(animation?: WindowAnimation): void;
|
|
131
164
|
/** positions the window in a viewport of the given size, per its anchor */
|
|
132
165
|
place(viewportWidth: number, viewportHeight: number): void;
|
|
133
166
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,WAAW,YAAY;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,sHAAsH;IACtH,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAErC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,MAAO,SAAQ,SAAS;IACpC,QAAQ,CAAC,OAAO,8CAAmB;IACnC,QAAQ,CAAC,OAAO,eAAsB;IAEtC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAE7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;IAE1B,6FAA6F;IAC7F,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAKE;IAChB,OAAO,CAAC,MAAM,CAAe;IAE7B,YAAY,OAAO,EAAE,aAAa,EAkDjC;IAED,2FAA2F;IAC3F,OAAO,CAAC,OAAO;IAMf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAmC1C;IAED,0FAA0F;IAC1F,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED,iFAAiF;IACjF,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGpC;IAED;;;;;;OAMG;IACH,QAAQ,EAAE;QAAE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAQ;IAElE;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CASpC;IAED;;;;;OAKG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,kEAAkE;IAClE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAWvB;IAED,6GAA6G;IAC7G,OAAO,CAAC,WAAW;IAcnB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAItC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAWvC;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAgBzD;IAED;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAMhD;IAEQ,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAIpE;CACD"}
|
package/dist/two-d/ui/Window.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Container, Graphics, Rectangle } from 'pixi.js';
|
|
2
2
|
import { Signal } from '../../core/Signal.js';
|
|
3
|
+
import { reducedMotion } from '../../core/Motion.js';
|
|
4
|
+
import { openAnimationFrame } from '../render/SceneTransition.js';
|
|
3
5
|
import { NinePatch } from './NinePatch.js';
|
|
4
6
|
import { Label } from './Label.js';
|
|
5
7
|
import { theme, themeChanged } from './theme.js';
|
|
@@ -45,6 +47,7 @@ export class Window extends Container {
|
|
|
45
47
|
this.blocker = null;
|
|
46
48
|
this.themeListener = () => this.restyle();
|
|
47
49
|
this.isClosed = false;
|
|
50
|
+
this.motion = null;
|
|
48
51
|
/**
|
|
49
52
|
* A widget offered actions before the window itself sees them.
|
|
50
53
|
*
|
|
@@ -182,17 +185,69 @@ export class Window extends Container {
|
|
|
182
185
|
return this.isClosed;
|
|
183
186
|
}
|
|
184
187
|
/** called each frame while this window is the top of the stack */
|
|
185
|
-
update(
|
|
186
|
-
|
|
188
|
+
update(dt) {
|
|
189
|
+
const motion = this.motion;
|
|
190
|
+
if (!motion)
|
|
191
|
+
return;
|
|
192
|
+
motion.elapsed += dt;
|
|
193
|
+
const duration = motion.options.duration ?? 0.25;
|
|
194
|
+
const progress = Math.min(1, motion.elapsed / duration);
|
|
195
|
+
this.applyMotion(motion.closing ? 1 - progress : progress, motion);
|
|
196
|
+
if (progress < 1)
|
|
197
|
+
return;
|
|
198
|
+
this.motion = null;
|
|
199
|
+
if (motion.closing)
|
|
200
|
+
this.close();
|
|
201
|
+
else
|
|
202
|
+
this.applyMotion(1, motion);
|
|
203
|
+
}
|
|
204
|
+
/** puts the window at `progress` of its animation: scaled about the origin, faded, pushed down by a slide */
|
|
205
|
+
applyMotion(progress, motion) {
|
|
206
|
+
const frame = openAnimationFrame(motion.options.animation, progress, motion.closing);
|
|
207
|
+
const origin = motion.options.from ?? {
|
|
208
|
+
x: motion.base.x + this.currentWidth / 2,
|
|
209
|
+
y: motion.base.y + this.currentHeight / 2,
|
|
210
|
+
};
|
|
211
|
+
this.scale.set(frame.scale);
|
|
212
|
+
this.alpha = frame.alpha;
|
|
213
|
+
this.position.set(origin.x + (motion.base.x - origin.x) * frame.scale, origin.y + (motion.base.y - origin.y) * frame.scale + frame.offset);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Plays the opening animation from the window's current position. The stack calls `update(dt)`
|
|
217
|
+
* on its top window, which drives it. Under reduced motion the window simply appears.
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```ts
|
|
221
|
+
* import { Window } from '@datamoc/mw_games/two-d/ui';
|
|
222
|
+
*
|
|
223
|
+
* const window = new Window({ width: 240, height: 120, title: 'Result' });
|
|
224
|
+
* window.open({ animation: 'pop' });
|
|
225
|
+
* window.update(0.25); // normally the WindowStack's update does this
|
|
226
|
+
* console.log(window.scale.x); // 1
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
open(animation) {
|
|
230
|
+
if (!animation || reducedMotion() || this.isClosed)
|
|
231
|
+
return;
|
|
232
|
+
this.motion = { options: animation, elapsed: 0, closing: false, base: { x: this.x, y: this.y } };
|
|
233
|
+
this.applyMotion(0, this.motion);
|
|
187
234
|
}
|
|
188
235
|
/**
|
|
189
236
|
* Announces the close and frees this window and its contents. Idempotent, so a second
|
|
190
237
|
* `close()` (a `pop()` racing a `cancel`, a `closeAll()` after a manual close) is a no-op
|
|
191
238
|
* rather than a second `destroy`. The instance is spent afterwards; see `closed`.
|
|
239
|
+
*
|
|
240
|
+
* With `animation` it plays the opening backwards first and closes when it ends (driven by
|
|
241
|
+
* `update(dt)`), unless reduced motion is on, when it closes at once.
|
|
192
242
|
*/
|
|
193
|
-
close() {
|
|
243
|
+
close(animation) {
|
|
194
244
|
if (this.isClosed)
|
|
195
245
|
return;
|
|
246
|
+
if (animation && !reducedMotion()) {
|
|
247
|
+
const base = this.motion?.base ?? { x: this.x, y: this.y };
|
|
248
|
+
this.motion = { options: animation, elapsed: 0, closing: true, base };
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
196
251
|
this.isClosed = true;
|
|
197
252
|
this.onClose.dispatch();
|
|
198
253
|
this.parent?.removeChild(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Window.js","sourceRoot":"","sources":["../../../src/two-d/ui/Window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAA0B,MAAM,8BAA8B,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA4DzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IAgCpC,YAAY,OAAsB;QACjC,KAAK,EAAE,CAAC;QAhCA,YAAO,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,YAAO,GAAG,IAAI,MAAM,EAAQ,CAAC;QAQ9B,eAAU,GAAiB,IAAI,CAAC;QAChC,cAAS,GAAiB,IAAI,CAAC;QAE/B,eAAU,GAAG,CAAC,CAAC;QACf,gBAAW,GAAG,CAAC,CAAC;QAEhB,iBAAY,GAAG,CAAC,CAAC;QACjB,kBAAa,GAAG,CAAC,CAAC;QAE1B,6FAA6F;QACrF,YAAO,GAAqB,IAAI,CAAC;QAExB,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAKH,IAAI,CAAC;QAsHhB;;;;;;WAMG;QACH,aAAQ,GAAqD,IAAI,CAAC;QAgIjD,kBAAa,GAAG,CAAC,KAA4B,EAAQ,EAAE;YACvE,qFAAqF;YACrF,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC;QA5PD,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;QAEzC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,iFAAiF;YACjF,uEAAuE;YACvE,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACP,+EAA+E;YAC/E,0BAA0B;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC;gBAC3B,IAAI,EAAE,OAAO,CAAC,KAAK;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa;gBACjD,IAAI,EAAE,IAAI;aACV,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,wFAAwF;YACxF,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,2FAA2F;IACnF,OAAO;QACd,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;QAEjC,IAAI,IAAI,CAAC,UAAU,YAAY,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU;iBACb,KAAK,EAAE;iBACP,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;iBACjC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;iBAC5D,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACxF,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1F,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;YAC1B,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC;QAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,0FAA0F;IAC1F,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,IAAY;QACpB,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,iFAAiF;IACjF,SAAS,CAAC,MAAoB;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAWD;;;;OAIG;IACH,YAAY,CAAC,MAAc;QAC1B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAErD,IAAI,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,EAAU;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;YAC5B,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,6GAA6G;IACrG,WAAW,CAAC,QAAgB,EAAE,MAAqC;QAC1E,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;YACrC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;YACxC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC;SACzC,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAChB,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EACnD,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAClE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAA2B;QAC/B,IAAI,CAAC,SAAS,IAAI,aAAa,EAAE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3D,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QACjG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAA2B;QAChC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,SAAS,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACtE,OAAO;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAqB,EAAE,cAAsB;QAClD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QACjB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,KAAa,EAAE,MAAc;QAC/C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IASD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,CAAS,EAAE,CAAS;QACtC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QACrF,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACb,CAAC;IAEQ,OAAO,CAAC,OAA6C;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;CACD"}
|
package/dist/two-d/ui/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type { BitmapLabelOptions } from './BitmapLabel.ts';
|
|
|
20
20
|
export { NinePatch } from './NinePatch.ts';
|
|
21
21
|
export type { NinePatchOptions } from './NinePatch.ts';
|
|
22
22
|
export { Window } from './Window.ts';
|
|
23
|
-
export type { WindowOptions } from './Window.ts';
|
|
23
|
+
export type { WindowAnimation, WindowOptions } from './Window.ts';
|
|
24
24
|
export { WindowStack } from './WindowStack.ts';
|
|
25
25
|
export { ListView } from './ListView.ts';
|
|
26
26
|
export type { ListItem, ListViewOptions } from './ListView.ts';
|
|
@@ -54,8 +54,8 @@ export { DataTable } from './DataTable.ts';
|
|
|
54
54
|
export type { DataTableOptions, TableColumn } from './DataTable.ts';
|
|
55
55
|
export { TreeView } from './TreeView.ts';
|
|
56
56
|
export type { TreeNode, TreeRow, TreeViewOptions } from './TreeView.ts';
|
|
57
|
-
export { ScrollBox, scrollOffset } from './ScrollBox.ts';
|
|
58
|
-
export type { ScrollBoxOptions } from './ScrollBox.ts';
|
|
57
|
+
export { ScrollBox, ScrollDrag, scrollOffset } from './ScrollBox.ts';
|
|
58
|
+
export type { ScrollBoxOptions, ScrollKey } from './ScrollBox.ts';
|
|
59
59
|
export { Grid, anchorAlign, resolveAnchor, flowLayout } from './Layout.ts';
|
|
60
60
|
export type { Anchor, AnchorSpec, FlowItem, FlowOptions, FlowResult, GridSpec, GridTrack, LayoutRect, } from './Layout.ts';
|
|
61
61
|
export { Skins } from './Skins.ts';
|
|
@@ -78,8 +78,8 @@ export { FloatingTextStack, FLOATING_TEXT_STACK_GAP, floatingTextStackLift, floa
|
|
|
78
78
|
export type { FloatingTextPush, FloatingTextStackEntry, FloatingTextStackMove } from './FloatingTextStack.ts';
|
|
79
79
|
export { Toast } from './Toast.ts';
|
|
80
80
|
export type { ToastOptions } from './Toast.ts';
|
|
81
|
-
export { Tooltip } from './Tooltip.ts';
|
|
82
|
-
export type { TooltipOptions } from './Tooltip.ts';
|
|
81
|
+
export { Tooltip, TooltipHost } from './Tooltip.ts';
|
|
82
|
+
export type { TooltipHostOptions, TooltipOptions, TooltipTarget } from './Tooltip.ts';
|
|
83
83
|
export { HelpScreen } from './HelpScreen.ts';
|
|
84
84
|
export type { HelpScreenOptions, HelpTopic } from './HelpScreen.ts';
|
|
85
85
|
export { StatsScreen } from './StatsScreen.ts';
|
|
@@ -91,4 +91,6 @@ export type { MessageBoxPresenterOptions } from './EventDialogue.ts';
|
|
|
91
91
|
export { contrastRatio, meetsContrast, relativeLuminance } from './contrast.ts';
|
|
92
92
|
export type { ContrastLevel } from './contrast.ts';
|
|
93
93
|
export { ScreenReader, screenReader } from './a11y.ts';
|
|
94
|
+
export { MarqueeLabel, ScrollText, ellipsize, marqueeOffset, truncateLines } from './ScrollText.ts';
|
|
95
|
+
export type { MarqueeLabelOptions, ScrollTextOptions } from './ScrollText.ts';
|
|
94
96
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5F,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,oBAAoB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
|
package/dist/two-d/ui/index.js
CHANGED
|
@@ -27,7 +27,7 @@ export { DropdownView } from './DropdownView.js';
|
|
|
27
27
|
export { TextModel } from './TextModel.js';
|
|
28
28
|
export { DataTable } from './DataTable.js';
|
|
29
29
|
export { TreeView } from './TreeView.js';
|
|
30
|
-
export { ScrollBox, scrollOffset } from './ScrollBox.js';
|
|
30
|
+
export { ScrollBox, ScrollDrag, scrollOffset } from './ScrollBox.js';
|
|
31
31
|
export { Grid, anchorAlign, resolveAnchor, flowLayout } from './Layout.js';
|
|
32
32
|
export { Skins } from './Skins.js';
|
|
33
33
|
export { RebindScreen } from './RebindScreen.js';
|
|
@@ -38,11 +38,12 @@ export { Bar } from './Bar.js';
|
|
|
38
38
|
export { FloatingText, floatingTextAgeAtLeast, floatingTextAlpha, floatingTextRise } from './FloatingText.js';
|
|
39
39
|
export { FloatingTextStack, FLOATING_TEXT_STACK_GAP, floatingTextStackLift, floatingTextStackLifePenalty, floatingTextStackMoves, } from './FloatingTextStack.js';
|
|
40
40
|
export { Toast } from './Toast.js';
|
|
41
|
-
export { Tooltip } from './Tooltip.js';
|
|
41
|
+
export { Tooltip, TooltipHost } from './Tooltip.js';
|
|
42
42
|
export { HelpScreen } from './HelpScreen.js';
|
|
43
43
|
export { StatsScreen } from './StatsScreen.js';
|
|
44
44
|
export { LoadingScreen } from './LoadingScreen.js';
|
|
45
45
|
export { messageBoxPresenter } from './EventDialogue.js';
|
|
46
46
|
export { contrastRatio, meetsContrast, relativeLuminance } from './contrast.js';
|
|
47
47
|
export { ScreenReader, screenReader } from './a11y.js';
|
|
48
|
+
export { MarqueeLabel, ScrollText, ellipsize, marqueeOffset, truncateLines } from './ScrollText.js';
|
|
48
49
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG5F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,GACX,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGzF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI7E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/two-d/ui/index.ts"],"names":[],"mappings":"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"}
|
package/dist/two-d/ui/theme.d.ts
CHANGED
|
@@ -7,6 +7,24 @@ import type { Texture2D } from '../render/Types2D.ts';
|
|
|
7
7
|
* Widgets read from here rather than carrying their own colours, so a game restyles its
|
|
8
8
|
* whole interface by assigning one object. Everything has a default that works, so a game
|
|
9
9
|
* that does not care never has to think about it.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { highContrastTheme, setTheme, theme, themeChanged } from '@datamoc/mw_games/two-d/ui';
|
|
14
|
+
*
|
|
15
|
+
* //a custom theme: only what differs from the default needs stating (`font` and `color` merge too)
|
|
16
|
+
* setTheme({
|
|
17
|
+
* padding: 12,
|
|
18
|
+
* font: { family: 'Georgia, serif', size: 18, lineHeight: 1.4 },
|
|
19
|
+
* color: { ...theme().color, text: 0xfff1d0, selection: 0x3a5a8a },
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* //widgets read the theme once, when built: one that must restyle later listens
|
|
23
|
+
* themeChanged.add((next) => console.log('text colour is now', next.color.text));
|
|
24
|
+
*
|
|
25
|
+
* //an accessibility setting swaps the whole look at once
|
|
26
|
+
* setTheme(highContrastTheme);
|
|
27
|
+
* ```
|
|
10
28
|
*/
|
|
11
29
|
export interface Theme {
|
|
12
30
|
/** the panel texture behind windows; without one, windows draw a flat rectangle */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,KAAK;IACrB,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAEhB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,wDAAwD;QACxD,UAAU,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,KAAK,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,qDAAqD;QACrD,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,SAAS,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,KAqB1B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAC;AAIF;;;;;;;GAOG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAE7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,eAAsB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAQnD"}
|