@rydr/game-sdk 3.11.0 → 3.12.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 (69) hide show
  1. package/dist/client/PlatformClient.d.ts +15 -3
  2. package/dist/client/PlatformClient.d.ts.map +1 -1
  3. package/dist/client/PlatformClient.js +1 -1
  4. package/dist/client/PlatformClient.js.map +1 -1
  5. package/dist/conversations/voice-samples.d.ts.map +1 -1
  6. package/dist/conversations/voice-samples.js +183 -2
  7. package/dist/conversations/voice-samples.js.map +1 -1
  8. package/dist/conversations/voices.d.ts.map +1 -1
  9. package/dist/conversations/voices.js +5 -3
  10. package/dist/conversations/voices.js.map +1 -1
  11. package/dist/host/PlatformHost.d.ts +4 -2
  12. package/dist/host/PlatformHost.d.ts.map +1 -1
  13. package/dist/host/PlatformHost.js +1 -1
  14. package/dist/host/PlatformHost.js.map +1 -1
  15. package/dist/protocol/conversations.d.ts +11 -0
  16. package/dist/protocol/conversations.d.ts.map +1 -1
  17. package/dist/protocol/conversations.js +14 -0
  18. package/dist/protocol/conversations.js.map +1 -1
  19. package/dist/protocol/messages.d.ts +7 -1
  20. package/dist/protocol/messages.d.ts.map +1 -1
  21. package/dist/protocol/version.d.ts +2 -2
  22. package/dist/protocol/version.d.ts.map +1 -1
  23. package/dist/protocol/version.js +7 -2
  24. package/dist/protocol/version.js.map +1 -1
  25. package/dist/sound-gallery/index.d.ts +41 -0
  26. package/dist/sound-gallery/index.d.ts.map +1 -0
  27. package/dist/sound-gallery/index.js +1264 -0
  28. package/dist/sound-gallery/index.js.map +1 -0
  29. package/dist/sounds/audio-utils.d.ts +16 -0
  30. package/dist/sounds/audio-utils.d.ts.map +1 -0
  31. package/dist/sounds/audio-utils.js +150 -0
  32. package/dist/sounds/audio-utils.js.map +1 -0
  33. package/dist/sounds/index.d.ts +23 -0
  34. package/dist/sounds/index.d.ts.map +1 -0
  35. package/dist/sounds/index.js +21 -0
  36. package/dist/sounds/index.js.map +1 -0
  37. package/dist/sounds/sound-bank.d.ts +70 -0
  38. package/dist/sounds/sound-bank.d.ts.map +1 -0
  39. package/dist/sounds/sound-bank.js +313 -0
  40. package/dist/sounds/sound-bank.js.map +1 -0
  41. package/dist/sounds/types.d.ts +88 -0
  42. package/dist/sounds/types.d.ts.map +1 -0
  43. package/dist/sounds/types.js +8 -0
  44. package/dist/sounds/types.js.map +1 -0
  45. package/dist/ui/index.d.ts +2 -1
  46. package/dist/ui/index.d.ts.map +1 -1
  47. package/dist/ui/index.js +2 -1
  48. package/dist/ui/index.js.map +1 -1
  49. package/dist/ui/power-race.d.ts +2 -2
  50. package/dist/ui/power-race.d.ts.map +1 -1
  51. package/dist/ui/power-race.js +8 -72
  52. package/dist/ui/power-race.js.map +1 -1
  53. package/dist/ui/showcase/index.d.ts.map +1 -1
  54. package/dist/ui/showcase/index.js +42 -2
  55. package/dist/ui/showcase/index.js.map +1 -1
  56. package/dist/ui/solo-labeled-diamond.d.ts +69 -0
  57. package/dist/ui/solo-labeled-diamond.d.ts.map +1 -0
  58. package/dist/ui/solo-labeled-diamond.js +168 -0
  59. package/dist/ui/solo-labeled-diamond.js.map +1 -0
  60. package/dist/ui/styles.js +11 -2
  61. package/dist/ui/styles.js.map +1 -1
  62. package/dist/voice-gallery/index.d.ts.map +1 -1
  63. package/dist/voice-gallery/index.js +132 -12
  64. package/dist/voice-gallery/index.js.map +1 -1
  65. package/dist/voiceover-editor/index.d.ts +6 -0
  66. package/dist/voiceover-editor/index.d.ts.map +1 -1
  67. package/dist/voiceover-editor/index.js +222 -14
  68. package/dist/voiceover-editor/index.js.map +1 -1
  69. package/package.json +12 -1
package/dist/ui/styles.js CHANGED
@@ -24,8 +24,10 @@ const CSS = `
24
24
  .rydr-ui-root { position: fixed; left: 50%; bottom: 96px; z-index: 40; pointer-events: none;
25
25
  transform: translateX(-50%); opacity: 0; transition: opacity 0.18s; }
26
26
  .rydr-ui-root.inline { position: relative; left: auto; bottom: auto; transform: none; opacity: 1; display: inline-block; z-index: auto; }
27
- /* the dark action card holding the content slot */
28
- .rydr-ui-card { position: relative; padding: 10px 20px 12px; border-radius: 12px; background: rgba(8,14,24,0.7);
27
+ /* the dark action card holding the content slot. Padding is a var so a consumer can retune it (the
28
+ default 10/20/12 is asymmetric to seat a bottom-straddling keycap; a chip with a side keycap or
29
+ custom content may want it symmetric/tighter) via the --rydr-ui-card-pad property on an ancestor. */
30
+ .rydr-ui-card { position: relative; padding: var(--rydr-ui-card-pad, 10px 20px 12px); border-radius: 12px; background: rgba(8,14,24,0.7);
29
31
  border: 1px solid rgba(255,255,255,0.16); backdrop-filter: blur(8px); box-shadow: 0 6px 18px rgba(0,0,0,0.4);
30
32
  color: #eef4ff; text-align: center; }
31
33
  /* the card is JUST a dark container with padding — it hugs its content by default. A consumer can fix
@@ -172,6 +174,13 @@ const CSS = `
172
174
  /* a disabled action's label fades back (the pip carries its own inert grey via .rydr-ui-pip.disabled) */
173
175
  .rydr-ui-ld-lbl-off { opacity: 0.4; transition: opacity 0.12s; }
174
176
 
177
+ /* SOLO LABELED DIAMOND (mountSoloLabeledDiamond) — reuses the labeled-diamond grid + label cells, but
178
+ its centre cell is a full A/B/Y/Z keycap (one big active pip, three small blank grey circles) rather
179
+ than the same-size pip cluster. The keycap is absolutely placed by JS so its 4-pip centre lands at
180
+ the cell centre (a known pixel), and the single label's tuck margin is computed per-pip in JS (so it
181
+ seats on the big active pip AND the small inactive ones) — hence no per-side margins here. */
182
+ .rydr-ui-sld-cluster { grid-area: 2 / 2; position: relative; width: 110px; height: 100px; z-index: 3; }
183
+
175
184
  /* RARITY CARD (mountRarityCard) — a generic rarity-tinted glass frame + a content slot the game fills.
176
185
  The whole frame is tinted by --rarity (set inline per card). An optional top band carries the rarity
177
186
  label; .selected adds a ring + deeper glow and lifts the card for arrow-navigable pickers. */
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,SAAS;IACvB,IAAI,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAAC,WAAW,GAAG,IAAI,CAAC;QAAC,OAAO;IAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC;IACzB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyMX,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,SAAS;IACvB,IAAI,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAAC,WAAW,GAAG,IAAI,CAAC;QAAC,OAAO;IAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,aAAa,CAAC;IACzB,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkNX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/voice-gallery/index.ts"],"names":[],"mappings":"AA6BA,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,iBAAiB,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAuDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAmO5F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/voice-gallery/index.ts"],"names":[],"mappings":"AA4BA,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,iBAAiB,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AA0ED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAuU5F"}
@@ -13,7 +13,7 @@
13
13
  * Self-contained like `@rydr/game-sdk/ui`: injects its own scoped `.rydr-vg-*` CSS once.
14
14
  */
15
15
  import { GEMINI_VOICES, VOICE_SAMPLE_EMOTIONS, VOICE_SAMPLE_LANGS, } from "../conversations/voices.js";
16
- import { getVoiceSamples, voiceSampleJobs, voiceSampleKey, VOICE_SAMPLE_SPEED, } from "../conversations/voice-samples.js";
16
+ import { getVoiceSamples, voiceSampleJobs, voiceSampleKey, } from "../conversations/voice-samples.js";
17
17
  const LANG_LABEL = { fr: "🇫🇷 Français", en: "🇬🇧 English" };
18
18
  const GENDER_ICON = { female: "♀", male: "♂" };
19
19
  const CSS = `
@@ -36,15 +36,33 @@ const CSS = `
36
36
  .rydr-vg-g{font-size:13px;font-weight:700}
37
37
  .rydr-vg-g.female{color:#ff8fc7}
38
38
  .rydr-vg-g.male{color:#6fb4ff}
39
+ .rydr-vg-gender{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600}
40
+ .rydr-vg-filter{display:inline-flex;gap:3px;border:1px solid #2a3242;border-radius:8px;padding:3px;background:#12151d}
41
+ .rydr-vg-fbtn{padding:5px 11px;border-radius:6px;border:none;background:transparent;color:#9aa4b8;cursor:pointer;font:inherit;font-size:12px}
42
+ .rydr-vg-fbtn:hover{color:#e7e9ee}
43
+ .rydr-vg-fbtn.sel{background:#2b5fd6;color:#fff}
39
44
  .rydr-vg-persona{color:#8b93a7;font-size:12px;margin-top:2px}
40
45
  .rydr-vg-cell{display:flex;flex-wrap:wrap;gap:6px}
41
46
  .rydr-vg-clip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid #2a3242;background:#161b25;color:#cdd3e0;cursor:pointer;font:inherit;font-size:12px}
42
47
  .rydr-vg-clip:hover:not(:disabled){border-color:#3f74ee;color:#fff}
43
48
  .rydr-vg-clip:disabled{opacity:.4;cursor:default}
44
49
  .rydr-vg-clip.playing{background:#2b5fd6;border-color:#3f74ee;color:#fff}
50
+ .rydr-vg-clip.gen{border-color:#3f74ee;color:#fff}
51
+ .rydr-vg-clip.err{border-color:#5c2436;background:#2a1119;color:#e2718f}
52
+ .rydr-vg-clip.err:hover:not(:disabled){border-color:#e2718f;color:#f2a9bd}
45
53
  .rydr-vg-clip .ic{font-size:10px}
54
+ .rydr-vg-clip.gen .ic{display:inline-block;animation:rydr-vg-spin 1s linear infinite}
55
+ @keyframes rydr-vg-spin{to{transform:rotate(360deg)}}
46
56
  .rydr-vg-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1b2130;border:1px solid #31405f;padding:10px 16px;border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.5);z-index:5}
47
57
  `;
58
+ /** A short, human-readable hint for a TTS failure — flags the content-policy block explicitly so the
59
+ * operator knows to simplify the text/style rather than just retry. */
60
+ function ttsErrorHint(msg) {
61
+ if (/usage guidelines|INVALID_ARGUMENT|violates|safety|policy/i.test(msg)) {
62
+ return "Blocked by content policy — simplify the spoken text and the style, then retry.";
63
+ }
64
+ return msg.length > 140 ? msg.slice(0, 137) + "…" : msg;
65
+ }
48
66
  const STYLE_ID = "rydr-vg-style";
49
67
  function ensureStyle() {
50
68
  if (typeof document === "undefined" || document.getElementById(STYLE_ID))
@@ -74,14 +92,24 @@ export function mountVoiceGallery(root, opts) {
74
92
  // Runtime URL map, seeded from the committed manifest; generation updates it live so an admin can
75
93
  // preview clips before committing.
76
94
  const urls = new Map(Object.entries(getVoiceSamples().clips));
95
+ // Per-clip generation: the exact inputs for every (voice, lang, emotion) cell, keyed by sample key,
96
+ // plus the set of keys currently synthesising — so an admin can generate ONE cell and preview it
97
+ // (not just the whole grid via "Generate all").
98
+ const jobByKey = new Map(voiceSampleJobs().map((j) => [j.key, j]));
99
+ const generating = new Set();
100
+ const errors = new Map(); // key → last generation error (shown on the cell)
77
101
  const audio = new Audio();
78
102
  let playingKey = null;
79
103
  const clipButtons = new Map();
104
+ const refreshClipButton = (key) => {
105
+ clipButtons.get(key)?._refresh?.();
106
+ };
80
107
  function stopPlaying() {
81
108
  audio.pause();
82
- if (playingKey)
83
- clipButtons.get(playingKey)?.classList.remove("playing");
109
+ const was = playingKey;
84
110
  playingKey = null;
111
+ if (was)
112
+ refreshClipButton(was); // flip ⏸ → ▶ (replay)
85
113
  }
86
114
  function togglePlay(key) {
87
115
  const clip = urls.get(key);
@@ -96,8 +124,9 @@ export function mountVoiceGallery(root, opts) {
96
124
  audio.currentTime = 0;
97
125
  void audio.play().catch(() => undefined);
98
126
  playingKey = key;
99
- clipButtons.get(key)?.classList.add("playing");
127
+ refreshClipButton(key); // flip ▶ → ⏸ (click to stop)
100
128
  }
129
+ // At end-of-clip the audio stops itself; reset our state + icon so the button shows ▶ to replay.
101
130
  audio.addEventListener("ended", stopPlaying);
102
131
  const container = el("div", "rydr-vg");
103
132
  // ── Header ──────────────────────────────────────────────────────────────────
@@ -108,6 +137,29 @@ export function mountVoiceGallery(root, opts) {
108
137
  title.appendChild(el("div", "sub", `${GEMINI_VOICES.length} voices · ${VOICE_SAMPLE_LANGS.length} languages · ${VOICE_SAMPLE_EMOTIONS.length} emotions (${total} clips)`));
109
138
  head.appendChild(title);
110
139
  const actions = el("div", "rydr-vg-actions");
140
+ // Gender filter (everyone): All / Women / Men, toggling row visibility. `voiceRows` is filled as the
141
+ // table body is built below; the handlers only run after that, so the forward reference is safe.
142
+ const voiceRows = [];
143
+ let genderFilter = "all";
144
+ const filterBar = el("div", "rydr-vg-filter");
145
+ const applyGenderFilter = () => {
146
+ for (const [g, tr] of voiceRows)
147
+ tr.style.display = genderFilter === "all" || g === genderFilter ? "" : "none";
148
+ for (const b of Array.from(filterBar.children)) {
149
+ b.classList.toggle("sel", b.dataset.v === genderFilter);
150
+ }
151
+ };
152
+ for (const f of [
153
+ { v: "all", label: "All" },
154
+ { v: "female", label: "♀ Women" },
155
+ { v: "male", label: "♂ Men" },
156
+ ]) {
157
+ const b = el("button", "rydr-vg-fbtn", f.label);
158
+ b.dataset.v = f.v;
159
+ b.addEventListener("click", () => { genderFilter = f.v; applyGenderFilter(); });
160
+ filterBar.appendChild(b);
161
+ }
162
+ actions.appendChild(filterBar);
111
163
  const prog = el("div", "rydr-vg-prog");
112
164
  const genBtn = el("button", "rydr-vg-btn primary");
113
165
  genBtn.textContent = "Generate all";
@@ -125,6 +177,7 @@ export function mountVoiceGallery(root, opts) {
125
177
  const thead = el("thead");
126
178
  const hrow = el("tr");
127
179
  hrow.appendChild(el("th", undefined, "Voice"));
180
+ hrow.appendChild(el("th", undefined, "Gender"));
128
181
  for (const lang of VOICE_SAMPLE_LANGS)
129
182
  hrow.appendChild(el("th", undefined, LANG_LABEL[lang]));
130
183
  thead.appendChild(hrow);
@@ -138,11 +191,36 @@ export function mountVoiceGallery(root, opts) {
138
191
  btn.appendChild(el("span", undefined, label));
139
192
  const refresh = () => {
140
193
  const has = urls.has(key);
141
- btn.disabled = !has;
142
- btn.title = has ? `Play ${label} (${lang})` : "Not generated yet";
194
+ const gen = generating.has(key);
195
+ const playing = playingKey === key;
196
+ const err = !has && !gen ? errors.get(key) : undefined;
197
+ btn.classList.toggle("gen", gen);
198
+ btn.classList.toggle("playing", playing);
199
+ btn.classList.toggle("err", !!err);
200
+ // An admin can click an ungenerated cell to synthesise just that one and preview it; a
201
+ // non-admin can only play what is already committed.
202
+ btn.disabled = gen || (!has && !isAdmin);
203
+ // ▶ play · ⏸ playing (click to stop) · ◌ generating · ⚠ failed (retry) · ✦ generate one
204
+ ic.textContent = playing ? "⏸" : has ? "▶" : gen ? "◌" : err ? "⚠" : "✦";
205
+ btn.title = playing
206
+ ? `Stop ${label} (${lang})`
207
+ : has
208
+ ? `Play ${label} (${lang})`
209
+ : gen
210
+ ? "Generating…"
211
+ : err
212
+ ? `${err} (click to retry)`
213
+ : isAdmin
214
+ ? `Generate ${label} (${lang}) and preview`
215
+ : "Not generated yet";
143
216
  };
144
217
  refresh();
145
- btn.addEventListener("click", () => togglePlay(key));
218
+ btn.addEventListener("click", () => {
219
+ if (urls.has(key))
220
+ togglePlay(key);
221
+ else if (isAdmin)
222
+ void generateOne(key);
223
+ });
146
224
  clipButtons.set(key, btn);
147
225
  // stash the refresher so generation can re-enable it
148
226
  btn._refresh = refresh;
@@ -153,10 +231,15 @@ export function mountVoiceGallery(root, opts) {
153
231
  const nameCell = el("td");
154
232
  const nameLine = el("div", "rydr-vg-name");
155
233
  nameLine.appendChild(el("span", undefined, voice.id));
156
- nameLine.appendChild(el("span", `rydr-vg-g ${voice.gender}`, GENDER_ICON[voice.gender]));
157
234
  nameCell.appendChild(nameLine);
158
235
  nameCell.appendChild(el("div", "rydr-vg-persona", voice.persona));
159
236
  tr.appendChild(nameCell);
237
+ const genderCell = el("td");
238
+ const gender = el("div", "rydr-vg-gender");
239
+ gender.appendChild(el("span", `rydr-vg-g ${voice.gender}`, GENDER_ICON[voice.gender]));
240
+ gender.appendChild(el("span", `rydr-vg-g ${voice.gender}`, voice.gender === "female" ? "Female" : "Male"));
241
+ genderCell.appendChild(gender);
242
+ tr.appendChild(genderCell);
160
243
  for (const lang of VOICE_SAMPLE_LANGS) {
161
244
  const cell = el("td");
162
245
  const wrap = el("div", "rydr-vg-cell");
@@ -166,9 +249,11 @@ export function mountVoiceGallery(root, opts) {
166
249
  cell.appendChild(wrap);
167
250
  tr.appendChild(cell);
168
251
  }
252
+ voiceRows.push([voice.gender, tr]);
169
253
  tbody.appendChild(tr);
170
254
  }
171
255
  table.appendChild(tbody);
256
+ applyGenderFilter(); // set the initial "All" selected state
172
257
  container.appendChild(table);
173
258
  root.appendChild(container);
174
259
  // ── Generation (admin) ───────────────────────────────────────────────────────
@@ -180,8 +265,40 @@ export function mountVoiceGallery(root, opts) {
180
265
  }
181
266
  function markGenerated(key, clip) {
182
267
  urls.set(key, clip);
183
- const btn = clipButtons.get(key);
184
- btn?._refresh?.();
268
+ refreshClipButton(key);
269
+ }
270
+ /** Synthesise a SINGLE (voice, lang, emotion) sample, then play it — the "generate one + preview"
271
+ * path. No-op if it is already generated or in flight. Updates the live manifest so "Copy manifest"
272
+ * includes it. */
273
+ async function generateOne(key) {
274
+ if (generating.has(key) || urls.has(key))
275
+ return;
276
+ const job = jobByKey.get(key);
277
+ if (!job)
278
+ return;
279
+ generating.add(key);
280
+ errors.delete(key); // clear any prior failure for this cell before retrying
281
+ refreshClipButton(key);
282
+ try {
283
+ const r = await session.generateVoiceover({
284
+ text: job.text,
285
+ voice: job.voice,
286
+ style: job.style,
287
+ speed: job.speed,
288
+ lang: job.lang,
289
+ });
290
+ generatedAt = Date.now();
291
+ markGenerated(key, { url: r.url, hash: r.hash });
292
+ generating.delete(key);
293
+ togglePlay(key); // preview immediately
294
+ if (isAdmin)
295
+ setProgress(`${urls.size}/${total} generated`);
296
+ }
297
+ catch (e) {
298
+ generating.delete(key);
299
+ errors.set(key, ttsErrorHint(e instanceof Error ? e.message : String(e)));
300
+ refreshClipButton(key);
301
+ }
185
302
  }
186
303
  async function generateAll() {
187
304
  if (busy)
@@ -202,6 +319,7 @@ export function mountVoiceGallery(root, opts) {
202
319
  if (!job)
203
320
  break;
204
321
  try {
322
+ errors.delete(job.key);
205
323
  const r = await session.generateVoiceover({
206
324
  text: job.text,
207
325
  voice: job.voice,
@@ -213,8 +331,10 @@ export function mountVoiceGallery(root, opts) {
213
331
  if (r.cached)
214
332
  cached++;
215
333
  }
216
- catch {
334
+ catch (e) {
217
335
  failed++;
336
+ errors.set(job.key, ttsErrorHint(e instanceof Error ? e.message : String(e)));
337
+ refreshClipButton(job.key);
218
338
  }
219
339
  done++;
220
340
  setProgress(`${done} / ${jobs.length}${failed ? ` · ${failed} failed` : ""}`);
@@ -238,7 +358,7 @@ export function mountVoiceGallery(root, opts) {
238
358
  .join("\n");
239
359
  return (`export const VOICE_SAMPLES: VoiceSampleManifest = {\n` +
240
360
  ` generatedAt: ${generatedAt},\n` +
241
- ` speed: ${VOICE_SAMPLE_SPEED},\n` +
361
+ ` speed: VOICE_SAMPLE_SPEED,\n` +
242
362
  ` clips: {\n${clipLines}\n },\n` +
243
363
  `};\n`);
244
364
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/voice-gallery/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/voice-gallery/index.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,12 @@ export interface VoiceoverEditorOptions {
54
54
  * code-aware (read-only code text + sync chip). Empty/omitted → plain authoring surface, no chip.
55
55
  */
56
56
  definitions?: ConversationDef[];
57
+ /**
58
+ * URL of the full voice gallery ("All voice characters"). When set, the Characters tab shows an
59
+ * "Open voice gallery ↗" link so authors can browse every voice × language × emotion. The platform
60
+ * passes `/core-voice-gallery.html`; games can omit it (the in-tab audition list still works).
61
+ */
62
+ galleryUrl?: string;
57
63
  }
58
64
  export interface VoiceoverEditor {
59
65
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/voiceover-editor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAYlE,OAAO,EAA8C,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7G,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC5E,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC3D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACnK;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AAqFD,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,eAAe,CA0nBrG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/voiceover-editor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAmBlE,OAAO,EAA8C,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE7G,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,cAAc,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC5E,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC3D,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACnK;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AA2HD,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,GAAG,eAAe,CAqyBrG"}