@datamoc/mw_games 0.5.2 → 0.5.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/README.md +7 -4
- package/dist/i18n/EditSession.d.ts +101 -0
- package/dist/i18n/EditSession.d.ts.map +1 -0
- package/dist/i18n/EditSession.js +150 -0
- package/dist/i18n/EditSession.js.map +1 -0
- package/dist/i18n/Fluent.js +9 -1
- package/dist/i18n/Fluent.js.map +1 -1
- package/dist/i18n/FormatSpec.d.ts +75 -0
- package/dist/i18n/FormatSpec.d.ts.map +1 -0
- package/dist/i18n/FormatSpec.js +303 -0
- package/dist/i18n/FormatSpec.js.map +1 -0
- package/dist/i18n/SemanticMessage.d.ts +15 -2
- package/dist/i18n/SemanticMessage.d.ts.map +1 -1
- package/dist/i18n/SemanticMessage.js +16 -2
- package/dist/i18n/SemanticMessage.js.map +1 -1
- package/dist/i18n/SoundMarkers.d.ts +38 -0
- package/dist/i18n/SoundMarkers.d.ts.map +1 -0
- package/dist/i18n/SoundMarkers.js +48 -0
- package/dist/i18n/SoundMarkers.js.map +1 -0
- package/dist/i18n/Validate.d.ts +26 -0
- package/dist/i18n/Validate.d.ts.map +1 -1
- package/dist/i18n/Validate.js +33 -0
- package/dist/i18n/Validate.js.map +1 -1
- package/dist/i18n/index.d.ts +34 -2
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +80 -10
- package/dist/i18n/index.js.map +1 -1
- package/dist/mw_games.global.js +42 -35
- package/dist/two-d/render/AnimatedSprite.d.ts +4 -0
- package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
- package/dist/two-d/render/AnimatedSprite.js +4 -0
- package/dist/two-d/render/AnimatedSprite.js.map +1 -1
- package/dist/two-d/render/LayeredSprite.d.ts +8 -0
- package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
- package/dist/two-d/render/LayeredSprite.js +8 -0
- package/dist/two-d/render/LayeredSprite.js.map +1 -1
- package/dist/two-d/render/TileMap.d.ts +7 -0
- package/dist/two-d/render/TileMap.d.ts.map +1 -1
- package/dist/two-d/render/TileMap.js +7 -0
- package/dist/two-d/render/TileMap.js.map +1 -1
- package/dist/two-d/render/TintedSprite.d.ts +12 -0
- package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
- package/dist/two-d/render/TintedSprite.js +12 -0
- package/dist/two-d/render/TintedSprite.js.map +1 -1
- package/dist/two-d/ui/Label.d.ts +14 -0
- package/dist/two-d/ui/Label.d.ts.map +1 -1
- package/dist/two-d/ui/Label.js +40 -0
- package/dist/two-d/ui/Label.js.map +1 -1
- package/dist/two-d/ui/MessageBox.d.ts +10 -2
- package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
- package/dist/two-d/ui/MessageBox.js +30 -9
- package/dist/two-d/ui/MessageBox.js.map +1 -1
- package/dist/two-d/ui/NinePatch.d.ts +2 -0
- package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
- package/dist/two-d/ui/NinePatch.js +2 -0
- package/dist/two-d/ui/NinePatch.js.map +1 -1
- package/dist/two-d/ui/RichLabel.d.ts +56 -0
- package/dist/two-d/ui/RichLabel.d.ts.map +1 -0
- package/dist/two-d/ui/RichLabel.js +135 -0
- package/dist/two-d/ui/RichLabel.js.map +1 -0
- package/dist/two-d/ui/index.d.ts +6 -0
- package/dist/two-d/ui/index.d.ts.map +1 -1
- package/dist/two-d/ui/index.js +3 -0
- package/dist/two-d/ui/index.js.map +1 -1
- package/dist/two-d/ui/markdown.d.ts +55 -0
- package/dist/two-d/ui/markdown.d.ts.map +1 -0
- package/dist/two-d/ui/markdown.js +145 -0
- package/dist/two-d/ui/markdown.js.map +1 -0
- package/dist/two-d/ui/reveal.d.ts +41 -0
- package/dist/two-d/ui/reveal.d.ts.map +1 -0
- package/dist/two-d/ui/reveal.js +22 -0
- package/dist/two-d/ui/reveal.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBox.js","sourceRoot":"","sources":["../../../src/two-d/ui/MessageBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageBox.js","sourceRoot":"","sources":["../../../src/two-d/ui/MessageBox.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,8 @@ export interface NinePatchOptions {
|
|
|
30
30
|
* const panel = new NinePatch(panelTexture, { border: 8 });
|
|
31
31
|
* panel.resize(200, 120);
|
|
32
32
|
* console.log(panel.border); // { left: 8, top: 8, right: 8, bottom: 8 }
|
|
33
|
+
*
|
|
34
|
+
* panel.alpha = 0.6; // fading the panel needs no extra API, unlike width/height/tint above
|
|
33
35
|
* ```
|
|
34
36
|
*/
|
|
35
37
|
export declare class NinePatch extends Container {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NinePatch.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/NinePatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAChC,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AAED
|
|
1
|
+
{"version":3,"file":"NinePatch.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/NinePatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAChC,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACvC,OAAO,CAAC,MAAM,CAAkB;IAEhC,YAAY,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAgBxD;IAED,4EAA4E;IAC5E,IAAI,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAOzE;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAM1C;CAMD"}
|
|
@@ -20,6 +20,8 @@ import { Container, NineSliceSprite } from 'pixi.js';
|
|
|
20
20
|
* const panel = new NinePatch(panelTexture, { border: 8 });
|
|
21
21
|
* panel.resize(200, 120);
|
|
22
22
|
* console.log(panel.border); // { left: 8, top: 8, right: 8, bottom: 8 }
|
|
23
|
+
*
|
|
24
|
+
* panel.alpha = 0.6; // fading the panel needs no extra API, unlike width/height/tint above
|
|
23
25
|
* ```
|
|
24
26
|
*/
|
|
25
27
|
export class NinePatch extends Container {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NinePatch.js","sourceRoot":"","sources":["../../../src/two-d/ui/NinePatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQrD
|
|
1
|
+
{"version":3,"file":"NinePatch.js","sourceRoot":"","sources":["../../../src/two-d/ui/NinePatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IAGvC,YAAY,OAAkB,EAAE,OAAyB;QACxD,KAAK,EAAE,CAAC;QAER,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YAC9F,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAElB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,OAAO;YACP,SAAS,EAAE,CAAC,CAAC,IAAI;YACjB,SAAS,EAAE,CAAC,CAAC,GAAG;YAChB,UAAU,EAAE,CAAC,CAAC,KAAK;YACnB,YAAY,EAAE,CAAC,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,IAAI,MAAM;QACT,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC3B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SAChC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,MAAc;QACnC,iFAAiF;QACjF,2EAA2E;QAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CAMD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { HTMLText } from 'pixi.js';
|
|
2
|
+
import { type ThemedTextOptions } from './themedText.ts';
|
|
3
|
+
export interface RichLabelOptions extends ThemedTextOptions {
|
|
4
|
+
/** Text texture resolution; omit to use the renderer default. */
|
|
5
|
+
resolution?: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A label that renders basic inline markdown (`**bold**`, `__bold__`, `*italic*`,
|
|
9
|
+
* `_italic*`, combined `***both***`) through Pixi's `HTMLText`, which is what makes
|
|
10
|
+
* mixed styles inside one string possible at all - plain `Text` styles the whole string
|
|
11
|
+
* or nothing, which is exactly what `Label` stays for.
|
|
12
|
+
*
|
|
13
|
+
* Costs more than a `Label`: HTML text measures and re-renders through the DOM rather
|
|
14
|
+
* than one canvas texture upload, so this is for descriptions, dialogue lines and help
|
|
15
|
+
* bodies, not for a number updated every frame. For the same reason it does not suit
|
|
16
|
+
* `MessageBox`'s typewriter reveal - a half-revealed `**bo` shows its markers literally.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { RichLabel } from '@datamoc/mw_games/two-d/ui';
|
|
21
|
+
*
|
|
22
|
+
* const blurb = new RichLabel({ text: 'Take **two** *small* coins' });
|
|
23
|
+
*
|
|
24
|
+
* blurb.setText('Take **three** coins'); // skips the re-render if the string is unchanged
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class RichLabel extends HTMLText {
|
|
28
|
+
private readonly opts;
|
|
29
|
+
private readonly themeListener;
|
|
30
|
+
private revealSpans;
|
|
31
|
+
private reveal;
|
|
32
|
+
constructor(options?: RichLabelOptions | string);
|
|
33
|
+
/** avoids the re-render when the markdown source has not actually changed */
|
|
34
|
+
setText(value: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Shows markdown `value` progressively, `speed` visible characters per second -
|
|
37
|
+
* markers never count toward the total and never leak half-shown, which is exactly
|
|
38
|
+
* what a plain character slice over the source would get wrong. Driven by
|
|
39
|
+
* `updateReveal(dt)` like `Label`'s own reveal, for the same reason: a label owns no
|
|
40
|
+
* update loop of its own.
|
|
41
|
+
*/
|
|
42
|
+
showProgressive(value: string, speed?: number): void;
|
|
43
|
+
/** advances an in-progress reveal; returns true when nothing is left to show */
|
|
44
|
+
updateReveal(dt: number): boolean;
|
|
45
|
+
/** shows the whole in-progress text at once */
|
|
46
|
+
completeReveal(): void;
|
|
47
|
+
private renderRevealed;
|
|
48
|
+
/**
|
|
49
|
+
* Reapplies whichever style fields were never given an explicit option, the same rule
|
|
50
|
+
* `Label`'s own restyle follows: an explicit `color`/`size` survives a theme change
|
|
51
|
+
* while theme defaults pick up the new one.
|
|
52
|
+
*/
|
|
53
|
+
private restyle;
|
|
54
|
+
destroy(options?: Parameters<HTMLText['destroy']>[0]): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=RichLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichLabel.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/RichLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,SAAS,CAAC;AAElD,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAI5F,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IAC1D,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,SAAU,SAAQ,QAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,MAAM,CAA4B;IAE1C,YAAY,OAAO,GAAE,gBAAgB,GAAG,MAAW,EAsBlD;IAED,6EAA6E;IAC7E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM3B;IAED;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAInD;IAED,gFAAgF;IAChF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKhC;IAED,+CAA+C;IAC/C,cAAc,IAAI,IAAI,CAIrB;IAED,OAAO,CAAC,cAAc;IAOtB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAUN,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAGnE;CACD"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { HTMLText, HTMLTextStyle } from 'pixi.js';
|
|
2
|
+
import { theme, themeChanged } from './theme.js';
|
|
3
|
+
import { normalizeTextOptions, themedAlign } from './themedText.js';
|
|
4
|
+
import { parseMarkdown, sliceSpans, stripMarkdown } from './markdown.js';
|
|
5
|
+
import { startReveal, advanceReveal, completeReveal } from './reveal.js';
|
|
6
|
+
/**
|
|
7
|
+
* A label that renders basic inline markdown (`**bold**`, `__bold__`, `*italic*`,
|
|
8
|
+
* `_italic*`, combined `***both***`) through Pixi's `HTMLText`, which is what makes
|
|
9
|
+
* mixed styles inside one string possible at all - plain `Text` styles the whole string
|
|
10
|
+
* or nothing, which is exactly what `Label` stays for.
|
|
11
|
+
*
|
|
12
|
+
* Costs more than a `Label`: HTML text measures and re-renders through the DOM rather
|
|
13
|
+
* than one canvas texture upload, so this is for descriptions, dialogue lines and help
|
|
14
|
+
* bodies, not for a number updated every frame. For the same reason it does not suit
|
|
15
|
+
* `MessageBox`'s typewriter reveal - a half-revealed `**bo` shows its markers literally.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { RichLabel } from '@datamoc/mw_games/two-d/ui';
|
|
20
|
+
*
|
|
21
|
+
* const blurb = new RichLabel({ text: 'Take **two** *small* coins' });
|
|
22
|
+
*
|
|
23
|
+
* blurb.setText('Take **three** coins'); // skips the re-render if the string is unchanged
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class RichLabel extends HTMLText {
|
|
27
|
+
constructor(options = {}) {
|
|
28
|
+
const opts = normalizeTextOptions(options);
|
|
29
|
+
const t = theme();
|
|
30
|
+
super({
|
|
31
|
+
text: toHtml(opts.text ?? ''),
|
|
32
|
+
resolution: opts.resolution,
|
|
33
|
+
style: new HTMLTextStyle({
|
|
34
|
+
fontFamily: t.font.family,
|
|
35
|
+
fontSize: opts.size ?? t.font.size,
|
|
36
|
+
fontWeight: opts.bold ? 'bold' : 'normal',
|
|
37
|
+
fill: opts.color ?? t.color.text,
|
|
38
|
+
lineHeight: (opts.size ?? t.font.size) * t.font.lineHeight,
|
|
39
|
+
align: themedAlign(opts, t),
|
|
40
|
+
wordWrap: opts.wrapWidth !== undefined,
|
|
41
|
+
wordWrapWidth: opts.wrapWidth ?? 0,
|
|
42
|
+
breakWords: true,
|
|
43
|
+
}),
|
|
44
|
+
});
|
|
45
|
+
this.themeListener = (t) => this.restyle(t);
|
|
46
|
+
this.revealSpans = null;
|
|
47
|
+
this.reveal = null;
|
|
48
|
+
this.opts = opts;
|
|
49
|
+
themeChanged.add(this.themeListener);
|
|
50
|
+
}
|
|
51
|
+
/** avoids the re-render when the markdown source has not actually changed */
|
|
52
|
+
setText(value) {
|
|
53
|
+
//an instant set cancels any reveal in progress - the two never interleave
|
|
54
|
+
this.revealSpans = null;
|
|
55
|
+
this.reveal = null;
|
|
56
|
+
const html = toHtml(value);
|
|
57
|
+
if (this.text !== html)
|
|
58
|
+
this.text = html;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Shows markdown `value` progressively, `speed` visible characters per second -
|
|
62
|
+
* markers never count toward the total and never leak half-shown, which is exactly
|
|
63
|
+
* what a plain character slice over the source would get wrong. Driven by
|
|
64
|
+
* `updateReveal(dt)` like `Label`'s own reveal, for the same reason: a label owns no
|
|
65
|
+
* update loop of its own.
|
|
66
|
+
*/
|
|
67
|
+
showProgressive(value, speed) {
|
|
68
|
+
this.revealSpans = parseMarkdown(value);
|
|
69
|
+
this.reveal = startReveal(stripMarkdown(value).length, speed);
|
|
70
|
+
this.renderRevealed();
|
|
71
|
+
}
|
|
72
|
+
/** advances an in-progress reveal; returns true when nothing is left to show */
|
|
73
|
+
updateReveal(dt) {
|
|
74
|
+
if (!this.reveal)
|
|
75
|
+
return true;
|
|
76
|
+
const done = advanceReveal(this.reveal, dt);
|
|
77
|
+
this.renderRevealed();
|
|
78
|
+
return done;
|
|
79
|
+
}
|
|
80
|
+
/** shows the whole in-progress text at once */
|
|
81
|
+
completeReveal() {
|
|
82
|
+
if (!this.reveal)
|
|
83
|
+
return;
|
|
84
|
+
completeReveal(this.reveal);
|
|
85
|
+
this.renderRevealed();
|
|
86
|
+
}
|
|
87
|
+
renderRevealed() {
|
|
88
|
+
if (!this.reveal || !this.revealSpans)
|
|
89
|
+
return;
|
|
90
|
+
//through the field rather than setText, which cancels a reveal in progress
|
|
91
|
+
const html = toHtmlSpans(sliceSpans(this.revealSpans, this.reveal.revealed));
|
|
92
|
+
if (this.text !== html)
|
|
93
|
+
this.text = html;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Reapplies whichever style fields were never given an explicit option, the same rule
|
|
97
|
+
* `Label`'s own restyle follows: an explicit `color`/`size` survives a theme change
|
|
98
|
+
* while theme defaults pick up the new one.
|
|
99
|
+
*/
|
|
100
|
+
restyle(t) {
|
|
101
|
+
this.style.fontFamily = t.font.family;
|
|
102
|
+
if (this.opts.color === undefined)
|
|
103
|
+
this.style.fill = t.color.text;
|
|
104
|
+
if (this.opts.size === undefined) {
|
|
105
|
+
this.style.fontSize = t.font.size;
|
|
106
|
+
this.style.lineHeight = t.font.size * t.font.lineHeight;
|
|
107
|
+
}
|
|
108
|
+
if (this.opts.align === undefined)
|
|
109
|
+
this.style.align = themedAlign(this.opts, t);
|
|
110
|
+
}
|
|
111
|
+
destroy(options) {
|
|
112
|
+
themeChanged.remove(this.themeListener);
|
|
113
|
+
super.destroy(options);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** styled spans to an HTML fragment; literal text is escaped so `a < b` never parses */
|
|
117
|
+
function toHtml(source) {
|
|
118
|
+
return toHtmlSpans(parseMarkdown(source));
|
|
119
|
+
}
|
|
120
|
+
function toHtmlSpans(spans) {
|
|
121
|
+
return spans
|
|
122
|
+
.map((span) => {
|
|
123
|
+
let text = escapeHtml(span.text);
|
|
124
|
+
if (span.italic)
|
|
125
|
+
text = `<i>${text}</i>`;
|
|
126
|
+
if (span.bold)
|
|
127
|
+
text = `<b>${text}</b>`;
|
|
128
|
+
return text;
|
|
129
|
+
})
|
|
130
|
+
.join('');
|
|
131
|
+
}
|
|
132
|
+
function escapeHtml(text) {
|
|
133
|
+
return text.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=RichLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RichLabel.js","sourceRoot":"","sources":["../../../src/two-d/ui/RichLabel.ts"],"names":[],"mappings":"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"}
|
package/dist/two-d/ui/index.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ export { theme, setTheme, defaultTheme, highContrastTheme, themeChanged } from '
|
|
|
2
2
|
export type { Theme } from './theme.ts';
|
|
3
3
|
export { Label } from './Label.ts';
|
|
4
4
|
export type { LabelOptions } from './Label.ts';
|
|
5
|
+
export { RichLabel } from './RichLabel.ts';
|
|
6
|
+
export type { RichLabelOptions } from './RichLabel.ts';
|
|
7
|
+
export { parseMarkdown, stripMarkdown, sliceSpans } from './markdown.ts';
|
|
8
|
+
export type { MarkdownSpan } from './markdown.ts';
|
|
9
|
+
export { startReveal, advanceReveal, completeReveal, revealComplete } from './reveal.ts';
|
|
10
|
+
export type { RevealState } from './reveal.ts';
|
|
5
11
|
export { BitmapLabel, bitmapLabelStyle } from './BitmapLabel.ts';
|
|
6
12
|
export type { BitmapLabelOptions } from './BitmapLabel.ts';
|
|
7
13
|
export { NinePatch } from './NinePatch.ts';
|
|
@@ -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,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;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC"}
|
|
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,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,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;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/two-d/ui/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export { theme, setTheme, defaultTheme, highContrastTheme, themeChanged } from './theme.js';
|
|
2
2
|
export { Label } from './Label.js';
|
|
3
|
+
export { RichLabel } from './RichLabel.js';
|
|
4
|
+
export { parseMarkdown, stripMarkdown, sliceSpans } from './markdown.js';
|
|
5
|
+
export { startReveal, advanceReveal, completeReveal, revealComplete } from './reveal.js';
|
|
3
6
|
export { BitmapLabel, bitmapLabelStyle } from './BitmapLabel.js';
|
|
4
7
|
export { NinePatch } from './NinePatch.js';
|
|
5
8
|
export { Window } from './Window.js';
|
|
@@ -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,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,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
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,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzE,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,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal inline markdown for UI text: bold and italic spans, nothing block-level.
|
|
3
|
+
* `**bold**` and `__bold__` render bold, `*italic*` and `_italic_` italic (including the
|
|
4
|
+
* combined `***both***`), a backslash escapes a marker (`\*` stays a literal asterisk),
|
|
5
|
+
* and anything unmatched stays literal text rather than vanishing.
|
|
6
|
+
*
|
|
7
|
+
* Pure logic, no Pixi dependency: `parseMarkdown` turns a string into styled spans for
|
|
8
|
+
* `RichLabel` to draw, and `stripMarkdown` recovers the plain text (for measuring,
|
|
9
|
+
* accessibility names, or any widget that stays single-style). Headings, links, lists
|
|
10
|
+
* and code spans are deliberately out - a game label needs emphasis inside a sentence,
|
|
11
|
+
* not a document renderer.
|
|
12
|
+
*
|
|
13
|
+
* An underscore run inside a word (`treasure_map`) is not emphasis, matching CommonMark;
|
|
14
|
+
* asterisks always are (`a*b*c` italicizes `b`). Markers pair strictly sequentially per
|
|
15
|
+
* kind (`**a** **b**` is two spans), so exotic nesting degrades to literal markers rather
|
|
16
|
+
* than surprising styling.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { parseMarkdown, stripMarkdown } from '@datamoc/mw_games/two-d/ui';
|
|
21
|
+
*
|
|
22
|
+
* parseMarkdown('Take **two** *small* coins');
|
|
23
|
+
* // [{ text: 'Take ', bold: false, italic: false },
|
|
24
|
+
* // { text: 'two', bold: true, italic: false },
|
|
25
|
+
* // { text: ' ', bold: false, italic: false },
|
|
26
|
+
* // { text: 'small', bold: false, italic: true },
|
|
27
|
+
* // { text: ' coins', bold: false, italic: false }]
|
|
28
|
+
*
|
|
29
|
+
* stripMarkdown('Take **two** coins'); // 'Take two coins'
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export interface MarkdownSpan {
|
|
33
|
+
text: string;
|
|
34
|
+
bold: boolean;
|
|
35
|
+
italic: boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare function parseMarkdown(text: string): MarkdownSpan[];
|
|
38
|
+
export declare function stripMarkdown(text: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* The first `count` visible characters across already-parsed spans, styles kept -
|
|
41
|
+
* the progressive-reveal slice for `RichLabel`, where markers must never count toward
|
|
42
|
+
* the total nor leak onto screen half-shown. Counts in string characters, the same unit
|
|
43
|
+
* `String.slice` (and `MessageBox`'s own reveal) uses.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { parseMarkdown, sliceSpans } from '@datamoc/mw_games/two-d/ui';
|
|
48
|
+
*
|
|
49
|
+
* sliceSpans(parseMarkdown('Take **two** coins'), 7);
|
|
50
|
+
* // [{ text: 'Take ', bold: false, italic: false },
|
|
51
|
+
* // { text: 'tw', bold: true, italic: false }]
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function sliceSpans(spans: readonly MarkdownSpan[], count: number): MarkdownSpan[];
|
|
55
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CAChB;AA2FD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAiC1D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAUxF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/** escapes (`\*`, `\_`, `\\`) hidden from marker scanning, then restored */
|
|
2
|
+
const ESCAPED_STAR = '';
|
|
3
|
+
const ESCAPED_UNDERSCORE = '';
|
|
4
|
+
const ESCAPED_BACKSLASH = '';
|
|
5
|
+
function hideEscapes(text) {
|
|
6
|
+
let out = '';
|
|
7
|
+
for (let i = 0; i < text.length; i++) {
|
|
8
|
+
if (text[i] === '\\' && i + 1 < text.length && (text[i + 1] === '*' || text[i + 1] === '_' || text[i + 1] === '\\')) {
|
|
9
|
+
const next = text[i + 1];
|
|
10
|
+
out += next === '*' ? ESCAPED_STAR : next === '_' ? ESCAPED_UNDERSCORE : ESCAPED_BACKSLASH;
|
|
11
|
+
i++;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
out += text[i];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
function showEscapes(text) {
|
|
20
|
+
return text.replaceAll(ESCAPED_STAR, '*').replaceAll(ESCAPED_UNDERSCORE, '_').replaceAll(ESCAPED_BACKSLASH, '\\');
|
|
21
|
+
}
|
|
22
|
+
function isWordChar(char) {
|
|
23
|
+
return char !== undefined && /[\p{L}\p{N}_]/u.test(char);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Offsets of one marker kind, in order. A run of three stars reads as a double plus a
|
|
27
|
+
* trailing single (`***` opens bold and italic together); an underscore run with word
|
|
28
|
+
* characters on both sides is text, not emphasis.
|
|
29
|
+
*/
|
|
30
|
+
function markerPositions(text, char, double) {
|
|
31
|
+
const positions = [];
|
|
32
|
+
let i = 0;
|
|
33
|
+
while (i < text.length) {
|
|
34
|
+
if (text[i] !== char) {
|
|
35
|
+
i++;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
let run = 0;
|
|
39
|
+
while (text[i + run] === char)
|
|
40
|
+
run++;
|
|
41
|
+
if (!(char === '_' && isWordChar(text[i - 1]) && isWordChar(text[i + run]))) {
|
|
42
|
+
if (double) {
|
|
43
|
+
for (let m = 0; m < Math.floor(run / 2); m++)
|
|
44
|
+
positions.push(i + m * 2);
|
|
45
|
+
}
|
|
46
|
+
else if (run % 2 === 1) {
|
|
47
|
+
//the single left over after the doubles took theirs from the front
|
|
48
|
+
positions.push(i + run - 1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
i += run;
|
|
52
|
+
}
|
|
53
|
+
return positions;
|
|
54
|
+
}
|
|
55
|
+
/** pairs one marker kind sequentially (0-1, 2-3); a trailing opener stays literal */
|
|
56
|
+
function pairMarkers(text, char, double, style, ranges, excluded) {
|
|
57
|
+
const positions = markerPositions(text, char, double);
|
|
58
|
+
const width = double ? 2 : 1;
|
|
59
|
+
for (let m = 0; m + 1 < positions.length; m += 2) {
|
|
60
|
+
const open = positions[m];
|
|
61
|
+
const close = positions[m + 1];
|
|
62
|
+
ranges.push({ from: open + width, to: close, style });
|
|
63
|
+
excluded.push({ from: open, to: open + width }, { from: close, to: close + width });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function mergeSpans(spans) {
|
|
67
|
+
const merged = [];
|
|
68
|
+
for (const span of spans) {
|
|
69
|
+
if (!span.text)
|
|
70
|
+
continue;
|
|
71
|
+
const last = merged[merged.length - 1];
|
|
72
|
+
if (last && last.bold === span.bold && last.italic === span.italic)
|
|
73
|
+
last.text += span.text;
|
|
74
|
+
else
|
|
75
|
+
merged.push({ ...span });
|
|
76
|
+
}
|
|
77
|
+
return merged;
|
|
78
|
+
}
|
|
79
|
+
export function parseMarkdown(text) {
|
|
80
|
+
const hidden = hideEscapes(text);
|
|
81
|
+
const ranges = [];
|
|
82
|
+
const excluded = [];
|
|
83
|
+
pairMarkers(hidden, '*', true, 'bold', ranges, excluded);
|
|
84
|
+
pairMarkers(hidden, '_', true, 'bold', ranges, excluded);
|
|
85
|
+
pairMarkers(hidden, '*', false, 'italic', ranges, excluded);
|
|
86
|
+
pairMarkers(hidden, '_', false, 'italic', ranges, excluded);
|
|
87
|
+
//every range and marker edge splits the string, so no emitted chunk ever straddles
|
|
88
|
+
//a style change or a consumed marker - each chunk just reads which ranges cover it
|
|
89
|
+
const bounds = new Set([0, hidden.length]);
|
|
90
|
+
for (const range of ranges) {
|
|
91
|
+
bounds.add(range.from);
|
|
92
|
+
bounds.add(range.to);
|
|
93
|
+
}
|
|
94
|
+
for (const skip of excluded) {
|
|
95
|
+
bounds.add(skip.from);
|
|
96
|
+
bounds.add(skip.to);
|
|
97
|
+
}
|
|
98
|
+
const points = [...bounds].sort((a, b) => a - b);
|
|
99
|
+
const spans = [];
|
|
100
|
+
for (let i = 0; i + 1 < points.length; i++) {
|
|
101
|
+
const from = points[i];
|
|
102
|
+
const to = points[i + 1];
|
|
103
|
+
if (from >= to || excluded.some((skip) => skip.from <= from && to <= skip.to))
|
|
104
|
+
continue;
|
|
105
|
+
spans.push({
|
|
106
|
+
text: hidden.slice(from, to),
|
|
107
|
+
bold: ranges.some((range) => range.style === 'bold' && range.from <= from && to <= range.to),
|
|
108
|
+
italic: ranges.some((range) => range.style === 'italic' && range.from <= from && to <= range.to),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return mergeSpans(spans).map((span) => ({ ...span, text: showEscapes(span.text) }));
|
|
112
|
+
}
|
|
113
|
+
export function stripMarkdown(text) {
|
|
114
|
+
return parseMarkdown(text)
|
|
115
|
+
.map((span) => span.text)
|
|
116
|
+
.join('');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The first `count` visible characters across already-parsed spans, styles kept -
|
|
120
|
+
* the progressive-reveal slice for `RichLabel`, where markers must never count toward
|
|
121
|
+
* the total nor leak onto screen half-shown. Counts in string characters, the same unit
|
|
122
|
+
* `String.slice` (and `MessageBox`'s own reveal) uses.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { parseMarkdown, sliceSpans } from '@datamoc/mw_games/two-d/ui';
|
|
127
|
+
*
|
|
128
|
+
* sliceSpans(parseMarkdown('Take **two** coins'), 7);
|
|
129
|
+
* // [{ text: 'Take ', bold: false, italic: false },
|
|
130
|
+
* // { text: 'tw', bold: true, italic: false }]
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export function sliceSpans(spans, count) {
|
|
134
|
+
const out = [];
|
|
135
|
+
let remaining = Math.max(0, Math.floor(count));
|
|
136
|
+
for (const span of spans) {
|
|
137
|
+
if (remaining <= 0)
|
|
138
|
+
break;
|
|
139
|
+
const take = Math.min(span.text.length, remaining);
|
|
140
|
+
out.push({ ...span, text: span.text.slice(0, take) });
|
|
141
|
+
remaining -= take;
|
|
142
|
+
}
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/two-d/ui/markdown.ts"],"names":[],"mappings":"AAqCA,4EAA4E;AAC5E,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,WAAW,CAAC,IAAY;IAChC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACrH,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC3F,CAAC,EAAE,CAAC;QACL,CAAC;aAAM,CAAC;YACP,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACnH,CAAC;AAED,SAAS,UAAU,CAAC,IAAwB;IAC3C,OAAO,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAaD;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,IAAe,EAAE,MAAe;IACtE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtB,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI;YAAE,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,MAAM,EAAE,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,mEAAmE;gBACnE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;QACD,CAAC,IAAI,GAAG,CAAC;IACV,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,qFAAqF;AACrF,SAAS,WAAW,CAAC,IAAY,EAAE,IAAe,EAAE,MAAe,EAAE,KAAwB,EAAE,MAAoB,EAAE,QAAoB;IACxI,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,KAAqB;IACxC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;;YACtF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5D,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5D,mFAAmF;IACnF,mFAAmF;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QACxF,KAAK,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5F,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;SAChG,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC;SACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,KAA8B,EAAE,KAAa;IACvE,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,SAAS,IAAI,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progressive text display - the typewriter reveal every dialogue box wants, shared
|
|
3
|
+
* rather than reimplemented per widget. `MessageBox` pages, `Label` lines and `RichLabel`
|
|
4
|
+
* markdown all run on this one character count; what differs is only what each widget
|
|
5
|
+
* counts (`Label` counts string characters, `RichLabel` visible ones via
|
|
6
|
+
* `sliceSpans`, markers excluded) and who calls `advanceReveal` each frame.
|
|
7
|
+
*
|
|
8
|
+
* Pure logic, no Pixi dependency: a game driving its own reveal (a title screen, a
|
|
9
|
+
* tutorial toast) can use this without any widget at all.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { startReveal, advanceReveal, completeReveal, revealComplete } from '@datamoc/mw_games/two-d/ui';
|
|
14
|
+
*
|
|
15
|
+
* const reveal = startReveal('Hello.'.length, 40);
|
|
16
|
+
* advanceReveal(reveal, 0.5); // 20 characters per half second at speed 40
|
|
17
|
+
* revealComplete(reveal); // false
|
|
18
|
+
* completeReveal(reveal); // skip ahead, for a confirm press mid-reveal
|
|
19
|
+
* revealComplete(reveal); // true
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export interface RevealState {
|
|
23
|
+
/** characters to reveal in total, counted the caller's way */
|
|
24
|
+
total: number;
|
|
25
|
+
/** characters per second; 0 starts fully revealed */
|
|
26
|
+
speed: number;
|
|
27
|
+
/** characters revealed so far, possibly fractional between frames */
|
|
28
|
+
revealed: number;
|
|
29
|
+
}
|
|
30
|
+
/** starts a reveal; a zero speed (or zero length) is already complete, like `MessageBox` */
|
|
31
|
+
export declare function startReveal(total: number, speed?: number): RevealState;
|
|
32
|
+
/**
|
|
33
|
+
* Moves the reveal forward by `dt` seconds, clamped to the total. Returns whether the
|
|
34
|
+
* reveal is now complete, so a game can prompt, auto-advance, or play a blip on the
|
|
35
|
+
* exact frame the last character lands.
|
|
36
|
+
*/
|
|
37
|
+
export declare function advanceReveal(state: RevealState, dt: number): boolean;
|
|
38
|
+
/** shows everything at once - the confirm-press-skips-the-reveal behaviour */
|
|
39
|
+
export declare function completeReveal(state: RevealState): void;
|
|
40
|
+
export declare function revealComplete(state: RevealState): boolean;
|
|
41
|
+
//# sourceMappingURL=reveal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveal.d.ts","sourceRoot":"","sources":["../../../src/two-d/ui/reveal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC3B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,WAAW,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** starts a reveal; a zero speed (or zero length) is already complete, like `MessageBox` */
|
|
2
|
+
export function startReveal(total, speed = 40) {
|
|
3
|
+
const safe = Math.max(0, total);
|
|
4
|
+
return { total: safe, speed: Math.max(0, speed), revealed: speed === 0 ? safe : 0 };
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Moves the reveal forward by `dt` seconds, clamped to the total. Returns whether the
|
|
8
|
+
* reveal is now complete, so a game can prompt, auto-advance, or play a blip on the
|
|
9
|
+
* exact frame the last character lands.
|
|
10
|
+
*/
|
|
11
|
+
export function advanceReveal(state, dt) {
|
|
12
|
+
state.revealed = Math.min(state.total, Math.max(0, state.revealed + state.speed * dt));
|
|
13
|
+
return revealComplete(state);
|
|
14
|
+
}
|
|
15
|
+
/** shows everything at once - the confirm-press-skips-the-reveal behaviour */
|
|
16
|
+
export function completeReveal(state) {
|
|
17
|
+
state.revealed = state.total;
|
|
18
|
+
}
|
|
19
|
+
export function revealComplete(state) {
|
|
20
|
+
return state.revealed >= state.total;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reveal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../../src/two-d/ui/reveal.ts"],"names":[],"mappings":"AA8BA,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,EAAU;IAC3D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IACvF,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,KAAkB;IAChD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAkB;IAChD,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;AACtC,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* this from `package.json` automatically, chosen because this project's own build already
|
|
10
10
|
* has no step before `tsc`/`vite` that this would need to run ahead of.
|
|
11
11
|
*/
|
|
12
|
-
export declare const version = "0.5.
|
|
12
|
+
export declare const version = "0.5.4";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|