@kawaijs/renderer-dom 0.1.8 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts +47 -2
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +532 -91
- package/dist/renderer.js.map +1 -1
- package/package.json +3 -3
- package/src/theme.css +213 -9
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAsB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEzF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAC9C;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,CAWxC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export * from './renderer.js';
|
|
2
2
|
import { StoryVM } from '@kawaijs/runtime';
|
|
3
|
-
import { DOMRenderer } from './renderer.js';
|
|
3
|
+
import { DOMRenderer, preloadStoryAssets } from './renderer.js';
|
|
4
4
|
/**
|
|
5
5
|
* High-level helper to initialize and mount a visual novel into the DOM.
|
|
6
6
|
*/
|
|
7
7
|
export function mountKawaApp(story, container, options) {
|
|
8
|
+
preloadStoryAssets(story, options?.assetResolver);
|
|
8
9
|
const vm = new StoryVM(story);
|
|
9
10
|
const renderer = new DOMRenderer(vm, {
|
|
10
11
|
container,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAA2B,MAAM,eAAe,CAAC;AAEzF;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAmB,EACnB,SAAsB,EACtB,OAA+C;IAE/C,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAElD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;QACnC,SAAS;QACT,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1B,CAAC"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,40 +1,85 @@
|
|
|
1
|
+
import type { StoryPackage } from '@kawaijs/ast';
|
|
1
2
|
import type { StoryVM } from '@kawaijs/runtime';
|
|
2
3
|
export type AssetType = 'background' | 'character' | 'audio';
|
|
3
4
|
export declare function defaultAssetResolver(path: string, type: AssetType): string;
|
|
5
|
+
/**
|
|
6
|
+
* Preload all background and character assets mentioned in a story to eliminate visual flashes.
|
|
7
|
+
*/
|
|
8
|
+
export declare function preloadStoryAssets(story: StoryPackage, assetResolver?: (path: string, type: AssetType) => string): void;
|
|
9
|
+
export declare const SVG_ICONS: {
|
|
10
|
+
back: string;
|
|
11
|
+
history: string;
|
|
12
|
+
save: string;
|
|
13
|
+
load: string;
|
|
14
|
+
auto: string;
|
|
15
|
+
skip: string;
|
|
16
|
+
settings: string;
|
|
17
|
+
volumeOn: string;
|
|
18
|
+
volumeMute: string;
|
|
19
|
+
trash: string;
|
|
20
|
+
close: string;
|
|
21
|
+
arrowDown: string;
|
|
22
|
+
replay: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Parses inline rich text markup: {b}...{/b}, {i}...{/i}, {color=#hex}...{/color}, {size=1.2em}...{/size}
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatRichText(raw: string): string;
|
|
4
28
|
export interface DOMRendererOptions {
|
|
5
29
|
container: HTMLElement;
|
|
6
30
|
typewriterSpeed?: number;
|
|
31
|
+
autoDelayMs?: number;
|
|
7
32
|
assetResolver?: (path: string, type: AssetType) => string;
|
|
8
33
|
}
|
|
9
34
|
export declare class DOMRenderer {
|
|
10
35
|
private readonly vm;
|
|
11
36
|
private readonly container;
|
|
12
|
-
private
|
|
37
|
+
private typewriterSpeed;
|
|
38
|
+
private autoDelayMs;
|
|
13
39
|
private readonly assetResolver;
|
|
14
40
|
private rootEl;
|
|
15
41
|
private stageEl;
|
|
16
42
|
private backgroundEl;
|
|
43
|
+
private bgLayerA;
|
|
44
|
+
private bgLayerB;
|
|
45
|
+
private activeBgLayer;
|
|
46
|
+
private currentBgUrl;
|
|
17
47
|
private charactersEl;
|
|
48
|
+
private activeCharacters;
|
|
49
|
+
private modeBadgeEl;
|
|
18
50
|
private dialogueBoxEl;
|
|
19
51
|
private speakerTagEl;
|
|
20
52
|
private dialogueTextEl;
|
|
21
53
|
private choiceContainerEl;
|
|
22
54
|
private backBtnEl;
|
|
55
|
+
private autoBtnEl;
|
|
56
|
+
private skipBtnEl;
|
|
23
57
|
private currentTypewriterInterval;
|
|
24
58
|
private isTypewriting;
|
|
25
59
|
private fullCurrentText;
|
|
26
60
|
private isChoicePending;
|
|
61
|
+
private isAutoMode;
|
|
62
|
+
private isSkipMode;
|
|
63
|
+
private autoTimer;
|
|
64
|
+
private skipInterval;
|
|
27
65
|
private unsubscribeVMState?;
|
|
66
|
+
private boundKeyHandler?;
|
|
28
67
|
constructor(vm: StoryVM, options: DOMRendererOptions);
|
|
29
68
|
destroy(): void;
|
|
30
|
-
shakeScreen(): void;
|
|
69
|
+
shakeScreen(type?: 'shake' | 'vpunch' | 'hpunch'): void;
|
|
31
70
|
flashScreen(): void;
|
|
71
|
+
toggleAutoMode(force?: boolean): void;
|
|
72
|
+
toggleSkipMode(force?: boolean): void;
|
|
73
|
+
private updateModeUI;
|
|
74
|
+
private scheduleAutoAdvance;
|
|
32
75
|
private buildDOM;
|
|
33
76
|
private bindEvents;
|
|
34
77
|
private handleUserAdvance;
|
|
35
78
|
private render;
|
|
36
79
|
private startTypewriter;
|
|
37
80
|
private finishTypewriter;
|
|
81
|
+
showSettingsModal(): void;
|
|
82
|
+
private saveSettings;
|
|
38
83
|
showSaveLoadModal(mode: 'save' | 'load'): Promise<void>;
|
|
39
84
|
showHistoryModal(): void;
|
|
40
85
|
}
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAY,MAAM,kBAAkB,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CA0B1E;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;CAC3D;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|