@kawaijs/renderer-dom 0.1.15 → 1.0.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.
Files changed (53) hide show
  1. package/README.md +10 -5
  2. package/dist/components/dialogue-box.d.ts +3 -0
  3. package/dist/components/dialogue-box.d.ts.map +1 -1
  4. package/dist/components/dialogue-box.js +20 -7
  5. package/dist/components/dialogue-box.js.map +1 -1
  6. package/dist/components/main-menu.d.ts +1 -0
  7. package/dist/components/main-menu.d.ts.map +1 -1
  8. package/dist/components/main-menu.js +13 -2
  9. package/dist/components/main-menu.js.map +1 -1
  10. package/dist/components/stage-layer.d.ts +1 -0
  11. package/dist/components/stage-layer.d.ts.map +1 -1
  12. package/dist/components/stage-layer.js +116 -109
  13. package/dist/components/stage-layer.js.map +1 -1
  14. package/dist/modals/about-modal.d.ts.map +1 -1
  15. package/dist/modals/about-modal.js +3 -3
  16. package/dist/modals/about-modal.js.map +1 -1
  17. package/dist/modals/achievements-modal.d.ts.map +1 -1
  18. package/dist/modals/achievements-modal.js +3 -3
  19. package/dist/modals/achievements-modal.js.map +1 -1
  20. package/dist/modals/confirm-modal.d.ts.map +1 -1
  21. package/dist/modals/confirm-modal.js +2 -0
  22. package/dist/modals/confirm-modal.js.map +1 -1
  23. package/dist/modals/gallery-modal.d.ts.map +1 -1
  24. package/dist/modals/gallery-modal.js +19 -6
  25. package/dist/modals/gallery-modal.js.map +1 -1
  26. package/dist/modals/history-modal.d.ts.map +1 -1
  27. package/dist/modals/history-modal.js +3 -3
  28. package/dist/modals/history-modal.js.map +1 -1
  29. package/dist/modals/input-modal.d.ts.map +1 -1
  30. package/dist/modals/input-modal.js +12 -1
  31. package/dist/modals/input-modal.js.map +1 -1
  32. package/dist/modals/save-load-modal.d.ts.map +1 -1
  33. package/dist/modals/save-load-modal.js +3 -3
  34. package/dist/modals/save-load-modal.js.map +1 -1
  35. package/dist/modals/settings-modal.d.ts.map +1 -1
  36. package/dist/modals/settings-modal.js +9 -4
  37. package/dist/modals/settings-modal.js.map +1 -1
  38. package/dist/renderer.d.ts +2 -0
  39. package/dist/renderer.d.ts.map +1 -1
  40. package/dist/renderer.js +57 -37
  41. package/dist/renderer.js.map +1 -1
  42. package/dist/types.d.ts +5 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/utils/css-url.d.ts +9 -0
  45. package/dist/utils/css-url.d.ts.map +1 -0
  46. package/dist/utils/css-url.js +29 -0
  47. package/dist/utils/css-url.js.map +1 -0
  48. package/dist/utils/modal-lifecycle.d.ts +17 -0
  49. package/dist/utils/modal-lifecycle.d.ts.map +1 -0
  50. package/dist/utils/modal-lifecycle.js +35 -0
  51. package/dist/utils/modal-lifecycle.js.map +1 -0
  52. package/package.json +4 -4
  53. package/src/theme.css +4 -1
package/README.md CHANGED
@@ -43,18 +43,23 @@ const renderer = new DOMRenderer(vm, {
43
43
  ## Features
44
44
 
45
45
  - **Ren'Py-Style Start / Main Menu**: Start Game, Continue, Load, CG Gallery, Preferences, About, and Quit. Fully customizable through `MainMenuOptions` or standard CSS.
46
+ - **Modal focus lifecycle**: Escape / gamepad dismiss and modal replacement call registered closers so focus traps (`trapFocus`) restore the previous element. Opening Save while Settings is open releases the previous trap first.
47
+ - **Input prompts**: `input` overlays cannot be closed with Escape (avoids soft-locking `pendingInput`).
46
48
  - **Atmospheric VFX Layer**: Canvas particles for `sakura` (cherry blossoms), `rain`, `snow`, plus `fog` / `tint` overlays (`tint` layers over weather without stopping petals).
47
- - **Scene & Sprite Transitions**: Background `with fade`; sprite `with bounce` / `dissolve` / `nod` / `shake` / `slideleft` / `slideright`.
49
+ - **Scene & Sprite Transitions**: Background wipe/push/zoom/glitch/…; same-asset transition changes re-trigger animations; CSS `url()` values are escaped via `cssUrl`.
50
+ - **Speaking sprites**: Lip-sync animates the `<img>`, not the positioned wrapper — sprites stay centered (`translateX(-50%)`).
48
51
  - **Camera Directives & Shakes**: `shake`, `vpunch`, `hpunch`, and screen `flash`.
49
- - **Unlockable CG Gallery & Lightbox**: Fullscreen illustration modal with progress tracking and lightbox viewer.
52
+ - **Unlockable CG Gallery & Lightbox**: Fullscreen illustration modal with progress tracking and lightbox viewer (`data:` limited to `data:image/*`).
50
53
  - **Save & Load Modals**: Multi-slot save system with live state previews, slot deletion, and timestamps.
51
- - **Preferences Modal**: Interactive sliders for Typewriter speed, Auto-forward delay, Music and SFX volume.
54
+ - **Preferences Modal**: Interactive sliders for Typewriter speed, Auto-forward delay, Music and SFX volume (language codes are HTML-escaped).
52
55
  - **Dialogue History / Backlog**: Formatted log of all past speaker interactions (synced on rollback/load).
56
+ - **Typewriter safety**: Hiding the dialogue box (choices / `window hide`) clears the typewriter interval and completion callbacks.
53
57
  - **Responsive 16:9 Letterboxing**: Automatically scales to any screen aspect ratio.
54
- - **Rich Text & Interpolation**: Built-in support for dynamic variables `[var]`, `{b}`, `{i}`, `{color=...}`, `{size=...}` tags with XSS sanitization.
55
- - **Keyboard Navigation**: Space/Enter advance, Backspace rollback, A auto, Ctrl skip, S/L save/load, H history, P preferences, Esc title.
58
+ - **Rich Text & Interpolation**: Built-in support for dynamic variables `[var]`, `{b}`, `{i}`, `{color=...}`, `{size=...}`, glitch/shake/rainbow/corrupt tags with XSS sanitization.
59
+ - **Keyboard Navigation**: Space/Enter advance, Backspace rollback, A auto, Ctrl skip, S/L save/load, H history, P preferences, Esc title (or close modal with focus restore).
56
60
  - **Theme / Style hooks**: `theme "noir|sakura|ocean|dusk"` and `style dialogue|choices|stage …` map to CSS tokens / classes.
57
61
  - **Share & embed**: dynamic Open Graph meta per scene; `?embed=1` for iframe-friendly chrome; `?at=` deep-links.
62
+ - **Audio**: Uses `AudioManager.attachToVM` so a second manual `attachToVM` cannot stack duplicate listeners.
58
63
 
59
64
  ## License
60
65
 
@@ -24,6 +24,9 @@ export declare class DialogueBoxComponent {
24
24
  finishTypewriter(): void;
25
25
  private announceFinishedLine;
26
26
  private startTypewriter;
27
+ /** Clear interval + completion callback without announcing (used when hiding the box). */
28
+ private stopTypewriter;
29
+ private stopTypewriterIntervalOnly;
27
30
  destroy(): void;
28
31
  }
29
32
  //# sourceMappingURL=dialogue-box.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialogue-box.d.ts","sourceRoot":"","sources":["../../src/components/dialogue-box.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,qBAAa,oBAAoB;IAC/B,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,oBAAoB,CAAC,CAAa;gBAE9B,eAAe,SAAK;IA2CzB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,gBAAgB,IAAI,OAAO;IAI3B,MAAM,CACX,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,EACnH,UAAU,CAAC,EAAE,MAAM,IAAI,GACtB,IAAI;IA8CA,gBAAgB,IAAI,IAAI;IAiB/B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,eAAe;IA8BhB,OAAO,IAAI,IAAI;CAMvB"}
1
+ {"version":3,"file":"dialogue-box.d.ts","sourceRoot":"","sources":["../../src/components/dialogue-box.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,qBAAa,oBAAoB;IAC/B,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,oBAAoB,CAAC,CAAa;gBAE9B,eAAe,SAAK;IA2CzB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,gBAAgB,IAAI,OAAO;IAI3B,MAAM,CACX,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,EACnH,UAAU,CAAC,EAAE,MAAM,IAAI,GACtB,IAAI;IAmDA,gBAAgB,IAAI,IAAI;IAgB/B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,eAAe;IA8BvB,0FAA0F;IAC1F,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,0BAA0B;IAO3B,OAAO,IAAI,IAAI;CAGvB"}
@@ -55,8 +55,11 @@ export class DialogueBoxComponent {
55
55
  }
56
56
  render(dialogue, onComplete) {
57
57
  if (!dialogue) {
58
+ this.stopTypewriter();
58
59
  this.el.style.display = 'none';
59
60
  this.announceEl.textContent = '';
61
+ this.indicatorEl.style.opacity = '0';
62
+ this.el.setAttribute('aria-busy', 'false');
60
63
  return;
61
64
  }
62
65
  this.el.style.display = 'block';
@@ -89,7 +92,9 @@ export class DialogueBoxComponent {
89
92
  this.isTypewriting = false;
90
93
  this.indicatorEl.style.opacity = '1';
91
94
  this.announceFinishedLine(dialogue);
92
- this.onTypewriterComplete?.();
95
+ const complete = this.onTypewriterComplete;
96
+ this.onTypewriterComplete = undefined;
97
+ complete?.();
93
98
  }
94
99
  else {
95
100
  this.startTypewriter(this.fullCurrentText, dialogue);
@@ -98,10 +103,7 @@ export class DialogueBoxComponent {
98
103
  finishTypewriter() {
99
104
  if (!this.isTypewriting)
100
105
  return;
101
- if (this.typewriterInterval) {
102
- clearInterval(this.typewriterInterval);
103
- this.typewriterInterval = null;
104
- }
106
+ this.stopTypewriterIntervalOnly();
105
107
  this.isTypewriting = false;
106
108
  this.dialogueTextEl.innerHTML = formatRichText(this.fullCurrentText);
107
109
  this.indicatorEl.style.opacity = '1';
@@ -110,7 +112,9 @@ export class DialogueBoxComponent {
110
112
  speakerDisplayName: speaker,
111
113
  text: this.fullCurrentText
112
114
  });
113
- this.onTypewriterComplete?.();
115
+ const complete = this.onTypewriterComplete;
116
+ this.onTypewriterComplete = undefined;
117
+ complete?.();
114
118
  }
115
119
  announceFinishedLine(dialogue) {
116
120
  this.el.setAttribute('aria-busy', 'false');
@@ -145,11 +149,20 @@ export class DialogueBoxComponent {
145
149
  // Keep dialogue ref for finish path via fullCurrentText / speakerTag
146
150
  void dialogue;
147
151
  }
148
- destroy() {
152
+ /** Clear interval + completion callback without announcing (used when hiding the box). */
153
+ stopTypewriter() {
154
+ this.stopTypewriterIntervalOnly();
155
+ this.isTypewriting = false;
156
+ this.onTypewriterComplete = undefined;
157
+ }
158
+ stopTypewriterIntervalOnly() {
149
159
  if (this.typewriterInterval) {
150
160
  clearInterval(this.typewriterInterval);
151
161
  this.typewriterInterval = null;
152
162
  }
153
163
  }
164
+ destroy() {
165
+ this.stopTypewriter();
166
+ }
154
167
  }
155
168
  //# sourceMappingURL=dialogue-box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialogue-box.js","sourceRoot":"","sources":["../../src/components/dialogue-box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialogue-box.js","sourceRoot":"","sources":["../../src/components/dialogue-box.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export declare class MainMenuComponent {
24
24
  private readonly callbacks;
25
25
  private menuEl?;
26
26
  private isVisible;
27
+ private refreshGeneration;
27
28
  constructor(rootEl: HTMLElement, vm: StoryVM, options: MainMenuOptions | undefined, callbacks: MainMenuComponentCallbacks);
28
29
  mount(container: HTMLElement): void;
29
30
  show(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"main-menu.d.ts","sourceRoot":"","sources":["../../src/components/main-menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS5E,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACzD,iBAAiB,EAAE,MAAM;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,CAAC,CAAC,EAAE;YACpB,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,KAAK,IAAI,CAAC;KACZ,CAAC;CACH;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,EAAE,SAAS,EAAE,0BAA0B;IAOlH,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IASnC,IAAI,IAAI,IAAI;IAcZ,IAAI,IAAI,IAAI;IAQZ,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,IAAI;IAoBf,mBAAmB,IAAI,YAAY,EAAE;IA8D5C,OAAO,CAAC,QAAQ;CA0IjB"}
1
+ {"version":3,"file":"main-menu.d.ts","sourceRoot":"","sources":["../../src/components/main-menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU5E,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACzD,iBAAiB,EAAE,MAAM;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,CAAC,CAAC,EAAE;YACpB,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,KAAK,IAAI,CAAC;KACZ,CAAC;CACH;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,EAAE,SAAS,EAAE,0BAA0B;IAOlH,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IASnC,IAAI,IAAI,IAAI;IAeZ,IAAI,IAAI,IAAI;IASZ,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,IAAI;IAuBf,mBAAmB,IAAI,YAAY,EAAE;IA8D5C,OAAO,CAAC,QAAQ;CA8IjB"}
@@ -6,6 +6,7 @@ import { showConfirmModal } from '../modals/confirm-modal.js';
6
6
  import { showGalleryModal } from '../modals/gallery-modal.js';
7
7
  import { showAchievementsModal } from '../modals/achievements-modal.js';
8
8
  import { escapeHtml } from '../utils/rich-text.js';
9
+ import { cssUrl } from '../utils/css-url.js';
9
10
  export class MainMenuComponent {
10
11
  vm;
11
12
  rootEl;
@@ -13,6 +14,7 @@ export class MainMenuComponent {
13
14
  callbacks;
14
15
  menuEl;
15
16
  isVisible = false;
17
+ refreshGeneration = 0;
16
18
  constructor(rootEl, vm, options, callbacks) {
17
19
  this.rootEl = rootEl;
18
20
  this.vm = vm;
@@ -34,6 +36,7 @@ export class MainMenuComponent {
34
36
  if (!this.menuEl)
35
37
  return;
36
38
  this.isVisible = true;
39
+ this.refreshGeneration++;
37
40
  this.refresh();
38
41
  this.menuEl.style.display = 'flex';
39
42
  this.menuEl.classList.add('active');
@@ -43,6 +46,7 @@ export class MainMenuComponent {
43
46
  if (!this.menuEl)
44
47
  return;
45
48
  this.isVisible = false;
49
+ this.refreshGeneration++;
46
50
  this.menuEl.classList.remove('active');
47
51
  this.menuEl.style.display = 'none';
48
52
  this.options?.onClose?.();
@@ -53,10 +57,13 @@ export class MainMenuComponent {
53
57
  refresh() {
54
58
  if (!this.menuEl)
55
59
  return;
56
- // Check if saves exist to enable/disable the "Continue" button
57
60
  const continueBtn = this.menuEl.querySelector('button[data-action="continue"]');
58
61
  if (continueBtn) {
62
+ const generation = this.refreshGeneration;
59
63
  void this.vm.getSaveManager().listSlots(6).then((slots) => {
64
+ if (!this.isVisible || generation !== this.refreshGeneration || !continueBtn.isConnected) {
65
+ return;
66
+ }
60
67
  const hasSaves = slots.some((s) => s !== null);
61
68
  if (!hasSaves) {
62
69
  continueBtn.classList.add('disabled');
@@ -132,7 +139,7 @@ export class MainMenuComponent {
132
139
  this.menuEl.style.display = 'none';
133
140
  if (this.options?.backgroundUrl) {
134
141
  const bgUrl = this.callbacks.assetResolver(this.options.backgroundUrl, 'background');
135
- this.menuEl.style.backgroundImage = `url("${bgUrl}")`;
142
+ this.menuEl.style.backgroundImage = cssUrl(bgUrl);
136
143
  this.menuEl.style.backgroundSize = 'cover';
137
144
  this.menuEl.style.backgroundPosition = 'center';
138
145
  }
@@ -177,7 +184,11 @@ export class MainMenuComponent {
177
184
  btn.id = `kawa-menu-${item.id}`;
178
185
  btn.innerHTML = `${item.icon ? item.icon + ' ' : ''}<span>${escapeHtml(item.label)}</span>`;
179
186
  if (item.action === 'continue') {
187
+ const generation = this.refreshGeneration;
180
188
  void this.vm.getSaveManager().listSlots(6).then((slots) => {
189
+ if (!this.isVisible || generation !== this.refreshGeneration || !btn.isConnected) {
190
+ return;
191
+ }
181
192
  const hasSaves = slots.some((s) => s !== null);
182
193
  if (!hasSaves) {
183
194
  btn.classList.add('disabled');
@@ -1 +1 @@
1
- {"version":3,"file":"main-menu.js","sourceRoot":"","sources":["../../src/components/main-menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main-menu.js","sourceRoot":"","sources":["../../src/components/main-menu.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare class StageLayerComponent {
12
12
  private bgLayerB;
13
13
  private activeBgLayer;
14
14
  private currentBgUrl;
15
+ private currentBgTransition;
15
16
  private activeCharacters;
16
17
  private pendingRemovals;
17
18
  private flashTimer;
@@ -1 +1 @@
1
- {"version":3,"file":"stage-layer.d.ts","sourceRoot":"","sources":["../../src/components/stage-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAInD,qBAAa,mBAAmB;IAC9B,SAAgB,OAAO,EAAE,cAAc,CAAC;IACxC,SAAgB,YAAY,EAAE,cAAc,CAAC;IAC7C,SAAgB,YAAY,EAAE,cAAc,CAAC;IAC7C,SAAgB,QAAQ,EAAE,iBAAiB,CAAC;IAC5C,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,SAAgB,WAAW,EAAE,cAAc,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,gBAAgB,CAWpB;IACJ,OAAO,CAAC,eAAe,CAAoF;IAC3G,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;gBAE9D,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM;IA6CpE,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO,CAAC,WAAW;IAIZ,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAgIpG,gBAAgB,CACrB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,YAAY,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACtE,CACF,GACA,IAAI;IAqHA,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAI1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAuCrC,WAAW,CAAC,IAAI,GAAE,OAAO,GAAG,QAAQ,GAAG,QAAkB,GAAG,IAAI;IAOhE,WAAW,IAAI,IAAI;IAiBnB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQtD,OAAO,IAAI,IAAI;CAYvB"}
1
+ {"version":3,"file":"stage-layer.d.ts","sourceRoot":"","sources":["../../src/components/stage-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,mBAAmB;IAC9B,SAAgB,OAAO,EAAE,cAAc,CAAC;IACxC,SAAgB,YAAY,EAAE,cAAc,CAAC;IAC7C,SAAgB,YAAY,EAAE,cAAc,CAAC;IAC7C,SAAgB,QAAQ,EAAE,iBAAiB,CAAC;IAC5C,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,SAAgB,WAAW,EAAE,cAAc,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,mBAAmB,CAAM;IAEjC,OAAO,CAAC,gBAAgB,CAWpB;IACJ,OAAO,CAAC,eAAe,CAAoF;IAC3G,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;gBAE9D,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM;IA6CpE,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,SAAS,CAAiC;IAElD,OAAO,CAAC,WAAW;IAIZ,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IA8HpG,gBAAgB,CACrB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,YAAY,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACtE,CACF,GACA,IAAI;IAsHA,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAI1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAuCrC,WAAW,CAAC,IAAI,GAAE,OAAO,GAAG,QAAQ,GAAG,QAAkB,GAAG,IAAI;IAOhE,WAAW,IAAI,IAAI;IAiBnB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQtD,OAAO,IAAI,IAAI;CAsBvB"}
@@ -1,5 +1,6 @@
1
1
  import { VfxLayerComponent } from './vfx-layer.js';
2
2
  import { escapeHtml } from '../utils/rich-text.js';
3
+ import { clearBgTransitionClasses, cssUrl } from '../utils/css-url.js';
3
4
  import { bindImageSrcFallbacks, characterAssetCandidates } from '../asset-fallbacks.js';
4
5
  export class StageLayerComponent {
5
6
  stageEl;
@@ -12,6 +13,7 @@ export class StageLayerComponent {
12
13
  bgLayerB;
13
14
  activeBgLayer = 'A';
14
15
  currentBgUrl = '';
16
+ currentBgTransition = '';
15
17
  activeCharacters = new Map();
16
18
  pendingRemovals = new Map();
17
19
  flashTimer = null;
@@ -59,10 +61,12 @@ export class StageLayerComponent {
59
61
  updateBackground(background, transition) {
60
62
  if (!background) {
61
63
  this.currentBgUrl = '';
64
+ this.currentBgTransition = '';
62
65
  this.bgLayerA.style.backgroundImage = '';
63
66
  this.bgLayerB.style.backgroundImage = '';
64
67
  this.bgLayerA.classList.remove('active');
65
68
  this.bgLayerB.classList.remove('active');
69
+ clearBgTransitionClasses(this.bgLayerA, this.bgLayerB);
66
70
  if (this.bgVideoEl) {
67
71
  this.bgVideoEl.pause();
68
72
  this.bgVideoEl.remove();
@@ -75,115 +79,107 @@ export class StageLayerComponent {
75
79
  const cleanBg = background.replace(/^bg[\s_]+/i, '').replace(/^video:[\s_]*/i, '').trim();
76
80
  const isVideo = this.isVideoPath(background);
77
81
  const primaryUrl = this.assetResolver(cleanBg, 'background');
78
- if (primaryUrl !== this.currentBgUrl) {
79
- this.currentBgUrl = primaryUrl;
80
- if (isVideo) {
81
- // Video Background
82
- this.bgLayerA.classList.remove('active');
83
- this.bgLayerB.classList.remove('active');
84
- if (!this.bgVideoEl) {
85
- this.bgVideoEl = document.createElement('video');
86
- this.bgVideoEl.className = 'kawa-bg-video';
87
- this.bgVideoEl.autoplay = true;
88
- this.bgVideoEl.loop = true;
89
- this.bgVideoEl.muted = true;
90
- this.bgVideoEl.playsInline = true;
91
- this.bgVideoEl.setAttribute('aria-hidden', 'true');
92
- this.backgroundEl.appendChild(this.bgVideoEl);
93
- }
94
- this.bgVideoEl.src = primaryUrl;
95
- this.bgVideoEl.play().catch(() => { });
82
+ // Re-run when the asset OR the transition changes (same URL + new wipe must still animate).
83
+ if (primaryUrl === this.currentBgUrl && transitionName === this.currentBgTransition) {
84
+ return;
85
+ }
86
+ this.currentBgUrl = primaryUrl;
87
+ this.currentBgTransition = transitionName;
88
+ if (isVideo) {
89
+ // Video Background
90
+ this.bgLayerA.classList.remove('active');
91
+ this.bgLayerB.classList.remove('active');
92
+ clearBgTransitionClasses(this.bgLayerA, this.bgLayerB);
93
+ if (!this.bgVideoEl) {
94
+ this.bgVideoEl = document.createElement('video');
95
+ this.bgVideoEl.className = 'kawa-bg-video';
96
+ this.bgVideoEl.autoplay = true;
97
+ this.bgVideoEl.loop = true;
98
+ this.bgVideoEl.muted = true;
99
+ this.bgVideoEl.playsInline = true;
100
+ this.bgVideoEl.setAttribute('aria-hidden', 'true');
101
+ this.backgroundEl.appendChild(this.bgVideoEl);
96
102
  }
97
- else {
98
- // Static Image Background
99
- if (this.bgVideoEl) {
100
- this.bgVideoEl.pause();
101
- this.bgVideoEl.remove();
102
- this.bgVideoEl = null;
103
- }
104
- const crossfade = transitionName === 'fade' ||
105
- transitionName === 'dissolve' ||
106
- transitionName === 'wipeleft' ||
107
- transitionName === 'wiperight' ||
108
- transitionName === 'wipeup' ||
109
- transitionName === 'wipedown' ||
110
- transitionName === 'circlewipe' ||
111
- transitionName === 'iris' ||
112
- transitionName === 'pushleft' ||
113
- transitionName === 'pushright' ||
114
- transitionName === 'pushup' ||
115
- transitionName === 'pushdown' ||
116
- transitionName === 'zoom' ||
117
- transitionName === 'blur' ||
118
- transitionName === 'glitch' ||
119
- transitionName === 'corrupt';
120
- if (crossfade) {
121
- const nextLayer = this.activeBgLayer === 'A' ? this.bgLayerB : this.bgLayerA;
122
- const curLayer = this.activeBgLayer === 'A' ? this.bgLayerA : this.bgLayerB;
123
- nextLayer.style.backgroundImage = `url("${primaryUrl}")`;
124
- // Reset transition classes then apply for this transition
125
- const allTransClasses = [
126
- 'kawa-wipe-from-left',
127
- 'kawa-wipe-from-right',
128
- 'kawa-wipe-from-up',
129
- 'kawa-wipe-from-down',
130
- 'kawa-wipe-circle',
131
- 'kawa-push-from-left',
132
- 'kawa-push-from-right',
133
- 'kawa-push-from-up',
134
- 'kawa-push-from-down',
135
- 'kawa-zoom-in',
136
- 'kawa-blur-transition',
137
- 'kawa-glitch-transition'
138
- ];
139
- nextLayer.classList.remove(...allTransClasses);
140
- curLayer.classList.remove(...allTransClasses);
141
- if (transitionName === 'wipeleft') {
142
- nextLayer.classList.add('kawa-wipe-from-right');
143
- }
144
- else if (transitionName === 'wiperight') {
145
- nextLayer.classList.add('kawa-wipe-from-left');
146
- }
147
- else if (transitionName === 'wipeup') {
148
- nextLayer.classList.add('kawa-wipe-from-down');
149
- }
150
- else if (transitionName === 'wipedown') {
151
- nextLayer.classList.add('kawa-wipe-from-up');
152
- }
153
- else if (transitionName === 'circlewipe' || transitionName === 'iris') {
154
- nextLayer.classList.add('kawa-wipe-circle');
155
- }
156
- else if (transitionName === 'pushleft') {
157
- nextLayer.classList.add('kawa-push-from-right');
158
- }
159
- else if (transitionName === 'pushright') {
160
- nextLayer.classList.add('kawa-push-from-left');
161
- }
162
- else if (transitionName === 'pushup') {
163
- nextLayer.classList.add('kawa-push-from-down');
164
- }
165
- else if (transitionName === 'pushdown') {
166
- nextLayer.classList.add('kawa-push-from-up');
167
- }
168
- else if (transitionName === 'zoom') {
169
- nextLayer.classList.add('kawa-zoom-in');
170
- }
171
- else if (transitionName === 'blur') {
172
- nextLayer.classList.add('kawa-blur-transition');
173
- }
174
- else if (transitionName === 'glitch' || transitionName === 'corrupt') {
175
- nextLayer.classList.add('kawa-glitch-transition');
176
- }
177
- nextLayer.classList.add('active');
178
- curLayer.classList.remove('active');
179
- this.activeBgLayer = this.activeBgLayer === 'A' ? 'B' : 'A';
180
- }
181
- else {
182
- const curLayer = this.activeBgLayer === 'A' ? this.bgLayerA : this.bgLayerB;
183
- curLayer.style.backgroundImage = `url("${primaryUrl}")`;
184
- curLayer.classList.add('active');
185
- }
103
+ this.bgVideoEl.src = primaryUrl;
104
+ this.bgVideoEl.play().catch(() => { });
105
+ return;
106
+ }
107
+ // Static Image Background
108
+ if (this.bgVideoEl) {
109
+ this.bgVideoEl.pause();
110
+ this.bgVideoEl.remove();
111
+ this.bgVideoEl = null;
112
+ }
113
+ const crossfade = transitionName === 'fade' ||
114
+ transitionName === 'dissolve' ||
115
+ transitionName === 'wipeleft' ||
116
+ transitionName === 'wiperight' ||
117
+ transitionName === 'wipeup' ||
118
+ transitionName === 'wipedown' ||
119
+ transitionName === 'circlewipe' ||
120
+ transitionName === 'iris' ||
121
+ transitionName === 'pushleft' ||
122
+ transitionName === 'pushright' ||
123
+ transitionName === 'pushup' ||
124
+ transitionName === 'pushdown' ||
125
+ transitionName === 'zoom' ||
126
+ transitionName === 'blur' ||
127
+ transitionName === 'glitch' ||
128
+ transitionName === 'corrupt';
129
+ if (crossfade) {
130
+ const nextLayer = this.activeBgLayer === 'A' ? this.bgLayerB : this.bgLayerA;
131
+ const curLayer = this.activeBgLayer === 'A' ? this.bgLayerA : this.bgLayerB;
132
+ nextLayer.style.backgroundImage = cssUrl(primaryUrl);
133
+ clearBgTransitionClasses(nextLayer, curLayer);
134
+ // Force reflow so CSS transition/animation classes re-trigger reliably.
135
+ void nextLayer.offsetWidth;
136
+ if (transitionName === 'wipeleft') {
137
+ nextLayer.classList.add('kawa-wipe-from-right');
138
+ }
139
+ else if (transitionName === 'wiperight') {
140
+ nextLayer.classList.add('kawa-wipe-from-left');
141
+ }
142
+ else if (transitionName === 'wipeup') {
143
+ nextLayer.classList.add('kawa-wipe-from-down');
144
+ }
145
+ else if (transitionName === 'wipedown') {
146
+ nextLayer.classList.add('kawa-wipe-from-up');
147
+ }
148
+ else if (transitionName === 'circlewipe' || transitionName === 'iris') {
149
+ nextLayer.classList.add('kawa-wipe-circle');
150
+ }
151
+ else if (transitionName === 'pushleft') {
152
+ nextLayer.classList.add('kawa-push-from-right');
186
153
  }
154
+ else if (transitionName === 'pushright') {
155
+ nextLayer.classList.add('kawa-push-from-left');
156
+ }
157
+ else if (transitionName === 'pushup') {
158
+ nextLayer.classList.add('kawa-push-from-down');
159
+ }
160
+ else if (transitionName === 'pushdown') {
161
+ nextLayer.classList.add('kawa-push-from-up');
162
+ }
163
+ else if (transitionName === 'zoom') {
164
+ nextLayer.classList.add('kawa-zoom-in');
165
+ }
166
+ else if (transitionName === 'blur') {
167
+ nextLayer.classList.add('kawa-blur-transition');
168
+ }
169
+ else if (transitionName === 'glitch' || transitionName === 'corrupt') {
170
+ nextLayer.classList.add('kawa-glitch-transition');
171
+ }
172
+ nextLayer.classList.add('active');
173
+ curLayer.classList.remove('active');
174
+ this.activeBgLayer = this.activeBgLayer === 'A' ? 'B' : 'A';
175
+ }
176
+ else {
177
+ const curLayer = this.activeBgLayer === 'A' ? this.bgLayerA : this.bgLayerB;
178
+ const otherLayer = this.activeBgLayer === 'A' ? this.bgLayerB : this.bgLayerA;
179
+ clearBgTransitionClasses(this.bgLayerA, this.bgLayerB);
180
+ curLayer.style.backgroundImage = cssUrl(primaryUrl);
181
+ curLayer.classList.add('active');
182
+ otherLayer.classList.remove('active');
187
183
  }
188
184
  }
189
185
  updateCharacters(characters) {
@@ -192,7 +188,8 @@ export class StageLayerComponent {
192
188
  for (const [id, entry] of this.activeCharacters.entries()) {
193
189
  if (!presentChars.has(id)) {
194
190
  entry.div.style.opacity = '0';
195
- entry.div.style.transform = `translateY(20px)`;
191
+ // Preserve horizontal centering from .kawa-pos-* while fading out.
192
+ entry.div.style.transform = 'translateX(-50%) translateY(20px)';
196
193
  const timer = setTimeout(() => {
197
194
  entry.div.remove();
198
195
  this.pendingRemovals.delete(id);
@@ -334,7 +331,7 @@ export class StageLayerComponent {
334
331
  this.cgVideoEl.remove();
335
332
  this.cgVideoEl = null;
336
333
  }
337
- this.cgEl.style.backgroundImage = `url("${url}")`;
334
+ this.cgEl.style.backgroundImage = cssUrl(url);
338
335
  }
339
336
  this.cgEl.style.display = 'block';
340
337
  }
@@ -379,6 +376,16 @@ export class StageLayerComponent {
379
376
  }
380
377
  this.pendingRemovals.clear();
381
378
  this.activeCharacters.clear();
379
+ if (this.bgVideoEl) {
380
+ this.bgVideoEl.pause();
381
+ this.bgVideoEl.remove();
382
+ this.bgVideoEl = null;
383
+ }
384
+ if (this.cgVideoEl) {
385
+ this.cgVideoEl.pause();
386
+ this.cgVideoEl.remove();
387
+ this.cgVideoEl = null;
388
+ }
382
389
  }
383
390
  }
384
391
  //# sourceMappingURL=stage-layer.js.map