@rydr/game-sdk 3.11.0 → 3.13.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 (81) hide show
  1. package/README.md +9 -1
  2. package/dist/client/PlatformClient.d.ts +17 -4
  3. package/dist/client/PlatformClient.d.ts.map +1 -1
  4. package/dist/client/PlatformClient.js +1 -1
  5. package/dist/client/PlatformClient.js.map +1 -1
  6. package/dist/conversations/voice-samples.d.ts.map +1 -1
  7. package/dist/conversations/voice-samples.js +183 -2
  8. package/dist/conversations/voice-samples.js.map +1 -1
  9. package/dist/conversations/voices.d.ts.map +1 -1
  10. package/dist/conversations/voices.js +5 -3
  11. package/dist/conversations/voices.js.map +1 -1
  12. package/dist/host/PlatformHost.d.ts +4 -2
  13. package/dist/host/PlatformHost.d.ts.map +1 -1
  14. package/dist/host/PlatformHost.js +1 -1
  15. package/dist/host/PlatformHost.js.map +1 -1
  16. package/dist/protocol/boards.d.ts +4 -0
  17. package/dist/protocol/boards.d.ts.map +1 -1
  18. package/dist/protocol/boards.js.map +1 -1
  19. package/dist/protocol/conversations.d.ts +11 -0
  20. package/dist/protocol/conversations.d.ts.map +1 -1
  21. package/dist/protocol/conversations.js +14 -0
  22. package/dist/protocol/conversations.js.map +1 -1
  23. package/dist/protocol/messages.d.ts +7 -1
  24. package/dist/protocol/messages.d.ts.map +1 -1
  25. package/dist/protocol/version.d.ts +2 -2
  26. package/dist/protocol/version.d.ts.map +1 -1
  27. package/dist/protocol/version.js +7 -2
  28. package/dist/protocol/version.js.map +1 -1
  29. package/dist/sound-gallery/index.d.ts +41 -0
  30. package/dist/sound-gallery/index.d.ts.map +1 -0
  31. package/dist/sound-gallery/index.js +1264 -0
  32. package/dist/sound-gallery/index.js.map +1 -0
  33. package/dist/soundboard-editor/index.d.ts +44 -0
  34. package/dist/soundboard-editor/index.d.ts.map +1 -0
  35. package/dist/soundboard-editor/index.js +253 -0
  36. package/dist/soundboard-editor/index.js.map +1 -0
  37. package/dist/sounds/audio-utils.d.ts +16 -0
  38. package/dist/sounds/audio-utils.d.ts.map +1 -0
  39. package/dist/sounds/audio-utils.js +150 -0
  40. package/dist/sounds/audio-utils.js.map +1 -0
  41. package/dist/sounds/index.d.ts +25 -0
  42. package/dist/sounds/index.d.ts.map +1 -0
  43. package/dist/sounds/index.js +22 -0
  44. package/dist/sounds/index.js.map +1 -0
  45. package/dist/sounds/sound-bank.d.ts +73 -0
  46. package/dist/sounds/sound-bank.d.ts.map +1 -0
  47. package/dist/sounds/sound-bank.js +321 -0
  48. package/dist/sounds/sound-bank.js.map +1 -0
  49. package/dist/sounds/soundboard.d.ts +121 -0
  50. package/dist/sounds/soundboard.d.ts.map +1 -0
  51. package/dist/sounds/soundboard.js +154 -0
  52. package/dist/sounds/soundboard.js.map +1 -0
  53. package/dist/sounds/types.d.ts +88 -0
  54. package/dist/sounds/types.d.ts.map +1 -0
  55. package/dist/sounds/types.js +8 -0
  56. package/dist/sounds/types.js.map +1 -0
  57. package/dist/ui/index.d.ts +2 -1
  58. package/dist/ui/index.d.ts.map +1 -1
  59. package/dist/ui/index.js +2 -1
  60. package/dist/ui/index.js.map +1 -1
  61. package/dist/ui/power-race.d.ts +2 -2
  62. package/dist/ui/power-race.d.ts.map +1 -1
  63. package/dist/ui/power-race.js +8 -72
  64. package/dist/ui/power-race.js.map +1 -1
  65. package/dist/ui/showcase/index.d.ts.map +1 -1
  66. package/dist/ui/showcase/index.js +42 -2
  67. package/dist/ui/showcase/index.js.map +1 -1
  68. package/dist/ui/solo-labeled-diamond.d.ts +69 -0
  69. package/dist/ui/solo-labeled-diamond.d.ts.map +1 -0
  70. package/dist/ui/solo-labeled-diamond.js +168 -0
  71. package/dist/ui/solo-labeled-diamond.js.map +1 -0
  72. package/dist/ui/styles.js +11 -2
  73. package/dist/ui/styles.js.map +1 -1
  74. package/dist/voice-gallery/index.d.ts.map +1 -1
  75. package/dist/voice-gallery/index.js +132 -12
  76. package/dist/voice-gallery/index.js.map +1 -1
  77. package/dist/voiceover-editor/index.d.ts +6 -0
  78. package/dist/voiceover-editor/index.d.ts.map +1 -1
  79. package/dist/voiceover-editor/index.js +222 -14
  80. package/dist/voiceover-editor/index.js.map +1 -1
  81. package/package.json +16 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/showcase/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/showcase/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * SOLO LABELED DIAMOND — the {@link mountLabeledDiamond} look (a card-seated label radiating out from a
3
+ * button in an A/B/Y/Z cluster) but with EXACTLY ONE active button at a time, and the other three drawn
4
+ * as the small blank grey circles of the classic A/B/Y/Z diamond (`createKeycap(…, { variant: "full" })`
5
+ * in {@link ./keycap}). Where the labeled diamond is a "here are all the actions on offer" menu (any
6
+ * number lit at once), this is the "press THIS one" affordance: a single plain label on one button, the
7
+ * rest sunk and quiet.
8
+ *
9
+ * The centre cluster IS a full A/B/Y/Z keycap, so it inherits that state machine for free — colour vs
10
+ * mono (`colored`), the bouncing pulse (`animate`), pressed sink, cooldown ring, and disabled — all
11
+ * driven through the exposed `keycap` handle. `setActive` moves the active button to any of A/B/Y/Z.
12
+ *
13
+ * The label's SIDE is independent of which button is active: `labelPos` defaults to `"auto"` (the active
14
+ * button's own side) but can be forced to `"top"/"right"/"bottom"/"left"` — including a side holding a
15
+ * small inactive circle. The label's tuck is computed from the real pip geometry, so it seats neatly on
16
+ * the big active pip AND the smaller inactive ones.
17
+ *
18
+ * Fixed-overlay by default (call `setScreenPos` to track a projected world point), or `inline:true` to
19
+ * lay it in normal flow.
20
+ */
21
+ import { type ButtonLetter, type ButtonSource, type Keycap } from "./keycap.js";
22
+ /** Which side the single label sits on. `"auto"` follows the active button; the rest force a side. */
23
+ export type SoloLabelPos = "auto" | "top" | "right" | "bottom" | "left";
24
+ export interface SoloLabeledDiamondOptions {
25
+ /** Lay the diamond inline (normal flow, full width) instead of as a fixed overlay. */
26
+ inline?: boolean;
27
+ /** Per-button hue (default true). `false` → mono: a white active face with a dark letter. */
28
+ colored?: boolean;
29
+ /** Run the bouncing attract pulse on the active button (default true). */
30
+ animate?: boolean;
31
+ /** Wire to real controller input: the active keycap shows its pressed sink while ITS button is held. */
32
+ press?: ButtonSource;
33
+ /** Which button starts active (default `"A"`). */
34
+ active?: ButtonLetter;
35
+ /** The label text (radiates from `labelPos`). */
36
+ label?: string;
37
+ /** Which side the label sits on (default `"auto"` = the active button's side). */
38
+ labelPos?: SoloLabelPos;
39
+ /**
40
+ * Hug the keycap: size the cluster cell to the diamond's real bounding box instead of the fixed
41
+ * 110×100 overlay cell, so an inline chip carries no dead space around the glyph (and the wrap
42
+ * hugs its content rather than filling its width). The box tracks the active button's bbox on
43
+ * `setActive`. Intended for compact inline chips; leave off for the fixed screen-tracking overlay.
44
+ */
45
+ compact?: boolean;
46
+ }
47
+ export interface SoloLabeledDiamond {
48
+ root: HTMLElement;
49
+ /** The centre A/B/Y/Z keycap — drive cooldown / disabled / pressed / colour through it. */
50
+ keycap: Keycap;
51
+ /** Which button is currently active. */
52
+ active: ButtonLetter;
53
+ /** Move the single active button to `button`; optionally set its label. */
54
+ setActive(button: ButtonLetter, label?: string): void;
55
+ /** Update the label text (`null`/`""` hides it). */
56
+ setLabel(text: string | null): void;
57
+ /** Move the label to a side (`"auto"` = follow the active button). */
58
+ setLabelPos(pos: SoloLabelPos): void;
59
+ setVisible(v: boolean): void;
60
+ /** Centre the diamond at a viewport pixel (e.g. a target projected to screen). */
61
+ setScreenPos(x: number, y: number): void;
62
+ dispose(): void;
63
+ }
64
+ /**
65
+ * Mount a solo labeled diamond: a full A/B/Y/Z keycap (one big active pip, three small blank grey
66
+ * circles) with a single card-seated label radiating from a configurable side.
67
+ */
68
+ export declare function mountSoloLabeledDiamond(host: HTMLElement, opts?: SoloLabeledDiamondOptions): SoloLabeledDiamond;
69
+ //# sourceMappingURL=solo-labeled-diamond.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solo-labeled-diamond.d.ts","sourceRoot":"","sources":["../../src/ui/solo-labeled-diamond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAM9F,sGAAsG;AACtG,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AA0CxE,MAAM,WAAW,yBAAyB;IACxC,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wGAAwG;IACxG,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,sEAAsE;IACtE,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,kFAAkF;IAClF,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,yBAA8B,GAAG,kBAAkB,CA2GnH"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * SOLO LABELED DIAMOND — the {@link mountLabeledDiamond} look (a card-seated label radiating out from a
3
+ * button in an A/B/Y/Z cluster) but with EXACTLY ONE active button at a time, and the other three drawn
4
+ * as the small blank grey circles of the classic A/B/Y/Z diamond (`createKeycap(…, { variant: "full" })`
5
+ * in {@link ./keycap}). Where the labeled diamond is a "here are all the actions on offer" menu (any
6
+ * number lit at once), this is the "press THIS one" affordance: a single plain label on one button, the
7
+ * rest sunk and quiet.
8
+ *
9
+ * The centre cluster IS a full A/B/Y/Z keycap, so it inherits that state machine for free — colour vs
10
+ * mono (`colored`), the bouncing pulse (`animate`), pressed sink, cooldown ring, and disabled — all
11
+ * driven through the exposed `keycap` handle. `setActive` moves the active button to any of A/B/Y/Z.
12
+ *
13
+ * The label's SIDE is independent of which button is active: `labelPos` defaults to `"auto"` (the active
14
+ * button's own side) but can be forced to `"top"/"right"/"bottom"/"left"` — including a side holding a
15
+ * small inactive circle. The label's tuck is computed from the real pip geometry, so it seats neatly on
16
+ * the big active pip AND the smaller inactive ones.
17
+ *
18
+ * Fixed-overlay by default (call `setScreenPos` to track a projected world point), or `inline:true` to
19
+ * lay it in normal flow.
20
+ */
21
+ import { mountCard } from "./card.js";
22
+ import { createKeycap } from "./keycap.js";
23
+ import { injectCss } from "./styles.js";
24
+ const POS = { Y: "top", A: "rgt", B: "bot", Z: "lft" };
25
+ const SIDE = { top: "top", right: "rgt", bottom: "bot", left: "lft" };
26
+ // Keycap "full" geometry (mirrors keycap.ts): small pip radius, active pip radius, and the on-axis
27
+ // distance of each — inactive pips sit at r0 from centre, the active one is pushed out to D.
28
+ const RI = 10, RA = 19, R0 = 19, D = 29;
29
+ const DIRV = { top: [0, -1], bot: [0, 1], lft: [-1, 0], rgt: [1, 0] };
30
+ // The DEFAULT cluster cell (matches .rydr-ui-sld-cluster): a fixed overlay box the keycap is pinned to,
31
+ // so every pip lands at a known cluster pixel regardless of which button is active. `compact` mode
32
+ // replaces this frame with the keycap's own tight bbox (keycapFrame) so an inline chip has no dead space.
33
+ const CW = 110, CH = 100;
34
+ // How far the pip's OUTER edge tucks UNDER the label card (px). The card has 20px side padding, so a
35
+ // left/right pip must overlap by well under that or it hides the first/last letter — hence the smaller
36
+ // horizontal value. Vertical text is centred, so a top/bottom pip can sit a touch deeper.
37
+ const OVERLAP_V = 6;
38
+ const OVERLAP_H = 10;
39
+ const FIXED_FRAME = { w: CW, h: CH, cx: CW / 2, cy: CH / 2 };
40
+ /** The keycap's OWN tight bounding box for a given active pos, plus where the pip-cluster centre sits
41
+ * inside it (mirrors keycap.ts `buildPips`). Used as the cluster frame in `compact` mode so the box
42
+ * hugs the glyph. Tracks the active button — its big pip pushes the bounds out on one side. */
43
+ function keycapFrame(active) {
44
+ let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
45
+ for (const k of ["top", "bot", "lft", "rgt"]) {
46
+ const isA = k === active, r = isA ? RA : RI, dist = isA ? D : R0;
47
+ minX = Math.min(minX, DIRV[k][0] * dist - r);
48
+ maxX = Math.max(maxX, DIRV[k][0] * dist + r);
49
+ minY = Math.min(minY, DIRV[k][1] * dist - r);
50
+ maxY = Math.max(maxY, DIRV[k][1] * dist + r);
51
+ }
52
+ return { w: maxX - minX, h: maxY - minY, cx: -minX, cy: -minY };
53
+ }
54
+ /** Centre + radius (in cluster pixels) of the pip at `side`, given the frame's pip-cluster centre. */
55
+ function pipGeom(side, active, fx, fy) {
56
+ const isActive = side === active;
57
+ const r = isActive ? RA : RI;
58
+ const dist = isActive ? D : R0;
59
+ return { cx: fx + DIRV[side][0] * dist, cy: fy + DIRV[side][1] * dist, r };
60
+ }
61
+ /**
62
+ * Mount a solo labeled diamond: a full A/B/Y/Z keycap (one big active pip, three small blank grey
63
+ * circles) with a single card-seated label radiating from a configurable side.
64
+ */
65
+ export function mountSoloLabeledDiamond(host, opts = {}) {
66
+ injectCss();
67
+ const colored = opts.colored ?? true;
68
+ const animate = opts.animate ?? true;
69
+ const root = document.createElement("div");
70
+ root.className = "rydr-ui-ld-host rydr-ui-sld-host" + (opts.inline ? " inline" : "");
71
+ const wrap = document.createElement("div");
72
+ wrap.className = "rydr-ui-ld-wrap";
73
+ root.appendChild(wrap);
74
+ // centre cell: the full A/B/Y/Z keycap, absolutely placed so its pip-cluster centre is the cell centre
75
+ const cluster = document.createElement("div");
76
+ cluster.className = "rydr-ui-sld-cluster";
77
+ wrap.appendChild(cluster);
78
+ // ONE label (any number of sides possible, but only one active at a time), seated in the dark card
79
+ const slot = document.createElement("div");
80
+ slot.className = "rydr-ui-ld-lbl";
81
+ const card = mountCard(slot, { content: "", inline: true });
82
+ wrap.appendChild(slot);
83
+ host.appendChild(root);
84
+ const compact = opts.compact ?? false;
85
+ // In compact mode the wrap hugs its content instead of the inline default (full width + 210px min-
86
+ // height), so the chip is as small as the glyph + label — no game-side CSS override needed. The grid
87
+ // stays 3×3 (so the label's grid-area still picks its side) but every track is `auto`: an empty side
88
+ // track then collapses to 0. (Under `max-content` the default `1fr` tracks do NOT collapse — they keep
89
+ // a flexible share — which left a wide empty cell on the label-less side.)
90
+ if (compact) {
91
+ wrap.style.width = "max-content";
92
+ wrap.style.minHeight = "0";
93
+ wrap.style.padding = "0";
94
+ wrap.style.gridTemplateColumns = "auto auto auto";
95
+ wrap.style.gridTemplateRows = "auto auto auto";
96
+ }
97
+ let active = opts.active ?? "A";
98
+ let label = opts.label ?? null;
99
+ let labelPos = opts.labelPos ?? "auto";
100
+ let keycap;
101
+ let frame = FIXED_FRAME;
102
+ const side = () => (labelPos === "auto" ? POS[active] : SIDE[labelPos]);
103
+ const buildKeycap = () => {
104
+ keycap?.dispose();
105
+ keycap = createKeycap(active, { variant: "full", colored, animate, press: opts.press });
106
+ // compact → the cluster hugs the keycap's own bbox; otherwise it stays the fixed overlay cell.
107
+ frame = compact ? keycapFrame(POS[active]) : FIXED_FRAME;
108
+ if (compact) {
109
+ cluster.style.width = `${frame.w}px`;
110
+ cluster.style.height = `${frame.h}px`;
111
+ }
112
+ // Place the keycap so its 4-pip centre lands at the frame's pip-cluster centre. The keycap's own
113
+ // bbox top-left is at (-kc.cx, -kc.cy) from that centre; in compact mode this resolves to (0, 0).
114
+ const kc = keycapFrame(POS[active]);
115
+ keycap.el.style.position = "absolute";
116
+ keycap.el.style.left = `${frame.cx - kc.cx}px`;
117
+ keycap.el.style.top = `${frame.cy - kc.cy}px`;
118
+ cluster.appendChild(keycap.el);
119
+ };
120
+ const paintLabel = () => {
121
+ const s = side();
122
+ slot.className = `rydr-ui-ld-lbl rydr-ui-ld-lbl-${s}`;
123
+ const on = label != null && label !== "";
124
+ slot.style.display = on ? "" : "none";
125
+ if (on)
126
+ card.setLabel(label);
127
+ // tuck the label so the pip's OUTER edge sits a fixed overlap under the card — computed from THIS
128
+ // pip's real radius/position, so a big active pip and a small grey one each seat correctly.
129
+ const { cx, cy, r } = pipGeom(s, POS[active], frame.cx, frame.cy);
130
+ slot.style.margin = "0";
131
+ if (s === "top")
132
+ slot.style.marginBottom = `${-((cy - r) + OVERLAP_V)}px`;
133
+ else if (s === "bot")
134
+ slot.style.marginTop = `${-((frame.h - (cy + r)) + OVERLAP_V)}px`;
135
+ else if (s === "lft")
136
+ slot.style.marginRight = `${-((cx - r) + OVERLAP_H)}px`;
137
+ else
138
+ slot.style.marginLeft = `${-((frame.w - (cx + r)) + OVERLAP_H)}px`;
139
+ // Cross-axis: seat the label on the TARGET pip's centre, not the box centre. A compact box grows
140
+ // toward the big active pip, so its geometric centre can differ from the pip the label tucks to
141
+ // (e.g. Back = big B + right label). A no-op for the symmetric fixed frame (frame centre = box centre).
142
+ slot.style.transform =
143
+ s === "lft" || s === "rgt" ? `translateY(${frame.cy - frame.h / 2}px)` : `translateX(${frame.cx - frame.w / 2}px)`;
144
+ };
145
+ buildKeycap();
146
+ paintLabel();
147
+ return {
148
+ root,
149
+ get keycap() { return keycap; },
150
+ get active() { return active; },
151
+ setActive: (button, next) => {
152
+ active = button;
153
+ if (next !== undefined)
154
+ label = next;
155
+ buildKeycap();
156
+ paintLabel();
157
+ },
158
+ setLabel: (text) => { label = text; paintLabel(); },
159
+ setLabelPos: (pos) => { labelPos = pos; paintLabel(); },
160
+ setVisible: (v) => { root.style.visibility = v ? "" : "hidden"; },
161
+ setScreenPos(x, y) {
162
+ root.style.left = `${x}px`;
163
+ root.style.top = `${y}px`;
164
+ },
165
+ dispose: () => { keycap?.dispose(); root.remove(); },
166
+ };
167
+ }
168
+ //# sourceMappingURL=solo-labeled-diamond.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solo-labeled-diamond.js","sourceRoot":"","sources":["../../src/ui/solo-labeled-diamond.ts"],"names":[],"mappings":"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"}
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
  }