@kawaijs/renderer-dom 0.1.11 → 0.1.12
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 +34 -12
- package/dist/asset-fallbacks.d.ts +13 -0
- package/dist/asset-fallbacks.d.ts.map +1 -0
- package/dist/asset-fallbacks.js +41 -0
- package/dist/asset-fallbacks.js.map +1 -0
- package/dist/components/choice-menu.d.ts +12 -0
- package/dist/components/choice-menu.d.ts.map +1 -0
- package/dist/components/choice-menu.js +44 -0
- package/dist/components/choice-menu.js.map +1 -0
- package/dist/components/dialogue-box.d.ts +29 -0
- package/dist/components/dialogue-box.d.ts.map +1 -0
- package/dist/components/dialogue-box.js +155 -0
- package/dist/components/dialogue-box.js.map +1 -0
- package/dist/components/hotspot-layer.d.ts +13 -0
- package/dist/components/hotspot-layer.d.ts.map +1 -0
- package/dist/components/hotspot-layer.js +47 -0
- package/dist/components/hotspot-layer.js.map +1 -0
- package/dist/components/main-menu.d.ts +36 -0
- package/dist/components/main-menu.d.ts.map +1 -0
- package/dist/components/main-menu.js +257 -0
- package/dist/components/main-menu.js.map +1 -0
- package/dist/components/quick-menu.d.ts +22 -0
- package/dist/components/quick-menu.d.ts.map +1 -0
- package/dist/components/quick-menu.js +59 -0
- package/dist/components/quick-menu.js.map +1 -0
- package/dist/components/stage-layer.d.ts +39 -0
- package/dist/components/stage-layer.d.ts.map +1 -0
- package/dist/components/stage-layer.js +253 -0
- package/dist/components/stage-layer.js.map +1 -0
- package/dist/components/vfx-layer.d.ts +28 -0
- package/dist/components/vfx-layer.d.ts.map +1 -0
- package/dist/components/vfx-layer.js +310 -0
- package/dist/components/vfx-layer.js.map +1 -0
- package/dist/embed.d.ts +5 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +17 -0
- package/dist/embed.js.map +1 -0
- package/dist/icons.d.ts +31 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +31 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +31 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -3
- package/dist/index.js.map +1 -1
- package/dist/layout/viewport-adapter.d.ts +52 -0
- package/dist/layout/viewport-adapter.d.ts.map +1 -0
- package/dist/layout/viewport-adapter.js +123 -0
- package/dist/layout/viewport-adapter.js.map +1 -0
- package/dist/modals/about-modal.d.ts +3 -0
- package/dist/modals/about-modal.d.ts.map +1 -0
- package/dist/modals/about-modal.js +59 -0
- package/dist/modals/about-modal.js.map +1 -0
- package/dist/modals/achievements-modal.d.ts +4 -0
- package/dist/modals/achievements-modal.d.ts.map +1 -0
- package/dist/modals/achievements-modal.js +103 -0
- package/dist/modals/achievements-modal.js.map +1 -0
- package/dist/modals/confirm-modal.d.ts +9 -0
- package/dist/modals/confirm-modal.d.ts.map +1 -0
- package/dist/modals/confirm-modal.js +80 -0
- package/dist/modals/confirm-modal.js.map +1 -0
- package/dist/modals/gallery-modal.d.ts +4 -0
- package/dist/modals/gallery-modal.d.ts.map +1 -0
- package/dist/modals/gallery-modal.js +128 -0
- package/dist/modals/gallery-modal.js.map +1 -0
- package/dist/modals/history-modal.d.ts +3 -0
- package/dist/modals/history-modal.d.ts.map +1 -0
- package/dist/modals/history-modal.js +66 -0
- package/dist/modals/history-modal.js.map +1 -0
- package/dist/modals/input-modal.d.ts +10 -0
- package/dist/modals/input-modal.d.ts.map +1 -0
- package/dist/modals/input-modal.js +62 -0
- package/dist/modals/input-modal.js.map +1 -0
- package/dist/modals/save-load-modal.d.ts +3 -0
- package/dist/modals/save-load-modal.d.ts.map +1 -0
- package/dist/modals/save-load-modal.js +262 -0
- package/dist/modals/save-load-modal.js.map +1 -0
- package/dist/modals/settings-modal.d.ts +14 -0
- package/dist/modals/settings-modal.d.ts.map +1 -0
- package/dist/modals/settings-modal.js +128 -0
- package/dist/modals/settings-modal.js.map +1 -0
- package/dist/renderer.d.ts +63 -56
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +643 -734
- package/dist/renderer.js.map +1 -1
- package/dist/share-meta.d.ts +27 -0
- package/dist/share-meta.d.ts.map +1 -0
- package/dist/share-meta.js +113 -0
- package/dist/share-meta.js.map +1 -0
- package/dist/touch.d.ts +16 -0
- package/dist/touch.d.ts.map +1 -0
- package/dist/touch.js +60 -0
- package/dist/touch.js.map +1 -0
- package/dist/types.d.ts +134 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +60 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/focus-trap.d.ts +6 -0
- package/dist/utils/focus-trap.d.ts.map +1 -0
- package/dist/utils/focus-trap.js +52 -0
- package/dist/utils/focus-trap.js.map +1 -0
- package/dist/utils/rich-text.d.ts +7 -0
- package/dist/utils/rich-text.d.ts.map +1 -0
- package/dist/utils/rich-text.js +31 -0
- package/dist/utils/rich-text.js.map +1 -0
- package/package.json +17 -3
- package/src/theme.css +1995 -685
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { SVG_ICONS } from '../icons.js';
|
|
2
|
+
import { trapFocus } from '../utils/focus-trap.js';
|
|
3
|
+
export function showSettingsModal(rootEl, options) {
|
|
4
|
+
const existing = rootEl.querySelector('.kawa-modal-overlay:not(.kawa-confirm-overlay)');
|
|
5
|
+
if (existing)
|
|
6
|
+
existing.remove();
|
|
7
|
+
let currentSpeed = options.typewriterSpeed;
|
|
8
|
+
let currentDelay = options.autoDelayMs;
|
|
9
|
+
let currentMusic = options.musicVolume ?? 0.8;
|
|
10
|
+
let currentSound = options.soundVolume ?? 1.0;
|
|
11
|
+
const overlay = document.createElement('div');
|
|
12
|
+
overlay.className = 'kawa-modal-overlay';
|
|
13
|
+
const card = document.createElement('div');
|
|
14
|
+
card.className = 'kawa-modal-card';
|
|
15
|
+
card.setAttribute('role', 'dialog');
|
|
16
|
+
card.setAttribute('aria-modal', 'true');
|
|
17
|
+
card.setAttribute('aria-label', 'Preferences / Settings');
|
|
18
|
+
const header = document.createElement('div');
|
|
19
|
+
header.className = 'kawa-modal-header';
|
|
20
|
+
const title = document.createElement('div');
|
|
21
|
+
title.className = 'kawa-modal-title';
|
|
22
|
+
title.innerHTML = `${SVG_ICONS.settings} <span>Preferences</span>`;
|
|
23
|
+
const releaseFocus = trapFocus(card);
|
|
24
|
+
const close = () => {
|
|
25
|
+
releaseFocus();
|
|
26
|
+
overlay.remove();
|
|
27
|
+
};
|
|
28
|
+
const closeBtn = document.createElement('button');
|
|
29
|
+
closeBtn.type = 'button';
|
|
30
|
+
closeBtn.className = 'kawa-btn';
|
|
31
|
+
closeBtn.innerHTML = `${SVG_ICONS.close} <span>Close</span>`;
|
|
32
|
+
closeBtn.setAttribute('aria-label', 'Close settings');
|
|
33
|
+
closeBtn.addEventListener('click', (e) => {
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
close();
|
|
36
|
+
});
|
|
37
|
+
header.appendChild(title);
|
|
38
|
+
header.appendChild(closeBtn);
|
|
39
|
+
const body = document.createElement('div');
|
|
40
|
+
body.className = 'kawa-modal-body';
|
|
41
|
+
const notifyChange = () => {
|
|
42
|
+
options.onSettingsChange({
|
|
43
|
+
typewriterSpeed: currentSpeed,
|
|
44
|
+
autoDelayMs: currentDelay,
|
|
45
|
+
musicVolume: currentMusic,
|
|
46
|
+
soundVolume: currentSound
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
// 1. Text Speed
|
|
50
|
+
const speedRow = document.createElement('div');
|
|
51
|
+
speedRow.className = 'kawa-setting-row';
|
|
52
|
+
speedRow.innerHTML = `
|
|
53
|
+
<div class="kawa-setting-header">
|
|
54
|
+
<span>Text Display Speed</span>
|
|
55
|
+
<span class="kawa-setting-value" id="kawa-speed-val">${currentSpeed === 0 ? 'Instant' : `${currentSpeed}ms`}</span>
|
|
56
|
+
</div>
|
|
57
|
+
<input type="range" class="kawa-slider" id="kawa-speed-slider" min="0" max="60" step="5" value="${currentSpeed}">
|
|
58
|
+
`;
|
|
59
|
+
const speedInput = speedRow.querySelector('#kawa-speed-slider');
|
|
60
|
+
const speedValEl = speedRow.querySelector('#kawa-speed-val');
|
|
61
|
+
speedInput.addEventListener('input', () => {
|
|
62
|
+
currentSpeed = Number(speedInput.value);
|
|
63
|
+
speedValEl.textContent = currentSpeed === 0 ? 'Instant' : `${currentSpeed}ms`;
|
|
64
|
+
notifyChange();
|
|
65
|
+
});
|
|
66
|
+
// 2. Auto Forward Delay
|
|
67
|
+
const autoRow = document.createElement('div');
|
|
68
|
+
autoRow.className = 'kawa-setting-row';
|
|
69
|
+
const autoVal = (currentDelay / 1000).toFixed(1);
|
|
70
|
+
autoRow.innerHTML = `
|
|
71
|
+
<div class="kawa-setting-header">
|
|
72
|
+
<span>Auto-Forward Time</span>
|
|
73
|
+
<span class="kawa-setting-value" id="kawa-auto-val">${autoVal}s</span>
|
|
74
|
+
</div>
|
|
75
|
+
<input type="range" class="kawa-slider" id="kawa-auto-slider" min="500" max="5000" step="250" value="${currentDelay}">
|
|
76
|
+
`;
|
|
77
|
+
const autoInput = autoRow.querySelector('#kawa-auto-slider');
|
|
78
|
+
const autoValEl = autoRow.querySelector('#kawa-auto-val');
|
|
79
|
+
autoInput.addEventListener('input', () => {
|
|
80
|
+
currentDelay = Number(autoInput.value);
|
|
81
|
+
autoValEl.textContent = `${(currentDelay / 1000).toFixed(1)}s`;
|
|
82
|
+
notifyChange();
|
|
83
|
+
});
|
|
84
|
+
// 3. Audio Volume Sliders
|
|
85
|
+
const musicRow = document.createElement('div');
|
|
86
|
+
musicRow.className = 'kawa-setting-row';
|
|
87
|
+
const musicPercent = Math.round(currentMusic * 100);
|
|
88
|
+
musicRow.innerHTML = `
|
|
89
|
+
<div class="kawa-setting-header">
|
|
90
|
+
<span>${SVG_ICONS.volumeOn} Music Volume</span>
|
|
91
|
+
<span class="kawa-setting-value" id="kawa-music-val">${musicPercent}%</span>
|
|
92
|
+
</div>
|
|
93
|
+
<input type="range" class="kawa-slider" id="kawa-music-slider" min="0" max="100" step="5" value="${musicPercent}">
|
|
94
|
+
`;
|
|
95
|
+
const musicInput = musicRow.querySelector('#kawa-music-slider');
|
|
96
|
+
const musicValEl = musicRow.querySelector('#kawa-music-val');
|
|
97
|
+
musicInput.addEventListener('input', () => {
|
|
98
|
+
currentMusic = Number(musicInput.value) / 100;
|
|
99
|
+
musicValEl.textContent = `${musicInput.value}%`;
|
|
100
|
+
notifyChange();
|
|
101
|
+
});
|
|
102
|
+
const sfxRow = document.createElement('div');
|
|
103
|
+
sfxRow.className = 'kawa-setting-row';
|
|
104
|
+
const sfxPercent = Math.round(currentSound * 100);
|
|
105
|
+
sfxRow.innerHTML = `
|
|
106
|
+
<div class="kawa-setting-header">
|
|
107
|
+
<span>${SVG_ICONS.volumeOn} Sound & Voice Volume</span>
|
|
108
|
+
<span class="kawa-setting-value" id="kawa-sfx-val">${sfxPercent}%</span>
|
|
109
|
+
</div>
|
|
110
|
+
<input type="range" class="kawa-slider" id="kawa-sfx-slider" min="0" max="100" step="5" value="${sfxPercent}">
|
|
111
|
+
`;
|
|
112
|
+
const sfxInput = sfxRow.querySelector('#kawa-sfx-slider');
|
|
113
|
+
const sfxValEl = sfxRow.querySelector('#kawa-sfx-val');
|
|
114
|
+
sfxInput.addEventListener('input', () => {
|
|
115
|
+
currentSound = Number(sfxInput.value) / 100;
|
|
116
|
+
sfxValEl.textContent = `${sfxInput.value}%`;
|
|
117
|
+
notifyChange();
|
|
118
|
+
});
|
|
119
|
+
body.appendChild(speedRow);
|
|
120
|
+
body.appendChild(autoRow);
|
|
121
|
+
body.appendChild(musicRow);
|
|
122
|
+
body.appendChild(sfxRow);
|
|
123
|
+
card.appendChild(header);
|
|
124
|
+
card.appendChild(body);
|
|
125
|
+
overlay.appendChild(card);
|
|
126
|
+
rootEl.appendChild(overlay);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=settings-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-modal.js","sourceRoot":"","sources":["../../src/modals/settings-modal.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,86 +1,93 @@
|
|
|
1
1
|
import type { StoryPackage } from '@kawaijs/ast';
|
|
2
2
|
import type { StoryVM } from '@kawaijs/runtime';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
container: HTMLElement;
|
|
30
|
-
typewriterSpeed?: number;
|
|
31
|
-
autoDelayMs?: number;
|
|
32
|
-
assetResolver?: (path: string, type: AssetType) => string;
|
|
33
|
-
}
|
|
3
|
+
import { type DOMRendererOptions, type GalleryItem } from './types.js';
|
|
4
|
+
import { ViewportAdapter } from './layout/viewport-adapter.js';
|
|
5
|
+
export * from './icons.js';
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
export * from './asset-fallbacks.js';
|
|
8
|
+
export * from './utils/rich-text.js';
|
|
9
|
+
export * from './utils/focus-trap.js';
|
|
10
|
+
export * from './layout/viewport-adapter.js';
|
|
11
|
+
export * from './modals/save-load-modal.js';
|
|
12
|
+
export * from './modals/settings-modal.js';
|
|
13
|
+
export * from './modals/history-modal.js';
|
|
14
|
+
export * from './modals/about-modal.js';
|
|
15
|
+
export * from './modals/gallery-modal.js';
|
|
16
|
+
export * from './modals/achievements-modal.js';
|
|
17
|
+
export * from './modals/confirm-modal.js';
|
|
18
|
+
export * from './modals/input-modal.js';
|
|
19
|
+
export * from './components/main-menu.js';
|
|
20
|
+
export * from './components/dialogue-box.js';
|
|
21
|
+
export * from './components/choice-menu.js';
|
|
22
|
+
export * from './components/quick-menu.js';
|
|
23
|
+
export * from './components/stage-layer.js';
|
|
24
|
+
export * from './components/vfx-layer.js';
|
|
25
|
+
export * from './share-meta.js';
|
|
26
|
+
export * from './embed.js';
|
|
27
|
+
export * from './touch.js';
|
|
28
|
+
export declare function extractGalleryItems(story?: StoryPackage): GalleryItem[];
|
|
34
29
|
export declare class DOMRenderer {
|
|
35
30
|
private readonly vm;
|
|
36
31
|
private readonly container;
|
|
32
|
+
private readonly options;
|
|
37
33
|
private typewriterSpeed;
|
|
38
34
|
private autoDelayMs;
|
|
35
|
+
private musicVolume;
|
|
36
|
+
private soundVolume;
|
|
39
37
|
private readonly assetResolver;
|
|
38
|
+
private readonly mainMenuOptions?;
|
|
39
|
+
private readonly audioManager?;
|
|
40
40
|
private rootEl;
|
|
41
|
-
private
|
|
42
|
-
private
|
|
43
|
-
private
|
|
44
|
-
private
|
|
45
|
-
private
|
|
46
|
-
private
|
|
47
|
-
private
|
|
48
|
-
private
|
|
49
|
-
private modeBadgeEl;
|
|
50
|
-
private dialogueBoxEl;
|
|
51
|
-
private speakerTagEl;
|
|
52
|
-
private dialogueTextEl;
|
|
53
|
-
private choiceContainerEl;
|
|
54
|
-
private backBtnEl;
|
|
55
|
-
private autoBtnEl;
|
|
56
|
-
private skipBtnEl;
|
|
57
|
-
private currentTypewriterInterval;
|
|
58
|
-
private isTypewriting;
|
|
59
|
-
private fullCurrentText;
|
|
60
|
-
private isChoicePending;
|
|
41
|
+
private stageLayer;
|
|
42
|
+
private dialogueBox;
|
|
43
|
+
private choiceMenu;
|
|
44
|
+
private hotspotLayer;
|
|
45
|
+
private quickMenu;
|
|
46
|
+
private mainMenu;
|
|
47
|
+
private viewportAdapter?;
|
|
48
|
+
private appliedStyleTargets;
|
|
61
49
|
private isAutoMode;
|
|
62
50
|
private isSkipMode;
|
|
63
51
|
private autoTimer;
|
|
64
52
|
private skipInterval;
|
|
53
|
+
private pauseTimer;
|
|
54
|
+
private errorToastTimer;
|
|
55
|
+
private advanceLockUntil;
|
|
56
|
+
private destroyed;
|
|
65
57
|
private unsubscribeVMState?;
|
|
58
|
+
private unsubscribeCamera?;
|
|
59
|
+
private unsubscribeAudio?;
|
|
60
|
+
private unsubscribeError?;
|
|
66
61
|
private boundKeyHandler?;
|
|
62
|
+
private touchControls?;
|
|
67
63
|
constructor(vm: StoryVM, options: DOMRendererOptions);
|
|
68
64
|
destroy(): void;
|
|
65
|
+
showErrorToast(message: string): void;
|
|
66
|
+
getViewportAdapter(): ViewportAdapter | undefined;
|
|
69
67
|
shakeScreen(type?: 'shake' | 'vpunch' | 'hpunch'): void;
|
|
70
68
|
flashScreen(): void;
|
|
71
69
|
toggleAutoMode(force?: boolean): void;
|
|
72
70
|
toggleSkipMode(force?: boolean): void;
|
|
71
|
+
showMainMenu(): void;
|
|
72
|
+
hideMainMenu(): void;
|
|
73
|
+
isMainMenuActive(): boolean;
|
|
74
|
+
startNewGame(): void;
|
|
75
|
+
continueLatestGame(): Promise<boolean>;
|
|
76
|
+
showSaveLoadModal(mode: 'save' | 'load'): Promise<void>;
|
|
77
|
+
showSettingsModal(): void;
|
|
78
|
+
showHistoryModal(): void;
|
|
79
|
+
showAboutModal(): void;
|
|
80
|
+
showGalleryModal(): void;
|
|
73
81
|
private updateModeUI;
|
|
74
82
|
private scheduleAutoAdvance;
|
|
75
83
|
private buildDOM;
|
|
76
84
|
private bindEvents;
|
|
77
85
|
private handleUserAdvance;
|
|
86
|
+
private syncUrlLabel;
|
|
87
|
+
private syncShareMeta;
|
|
88
|
+
private applyThemeAndStyles;
|
|
78
89
|
private render;
|
|
79
|
-
private
|
|
80
|
-
private finishTypewriter;
|
|
81
|
-
showSettingsModal(): void;
|
|
90
|
+
private renderEndingCard;
|
|
82
91
|
private saveSettings;
|
|
83
|
-
showSaveLoadModal(mode: 'save' | 'load'): Promise<void>;
|
|
84
|
-
showHistoryModal(): void;
|
|
85
92
|
}
|
|
86
93
|
//# sourceMappingURL=renderer.d.ts.map
|
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,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|