@rydr/game-sdk 4.0.0 → 5.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.
- package/README.md +19 -11
- package/dist/client/HardwareStore.d.ts +10 -0
- package/dist/client/HardwareStore.d.ts.map +1 -1
- package/dist/client/HardwareStore.js +10 -0
- package/dist/client/HardwareStore.js.map +1 -1
- package/dist/client/PlatformClient.d.ts +39 -5
- package/dist/client/PlatformClient.d.ts.map +1 -1
- package/dist/client/PlatformClient.js +32 -7
- package/dist/client/PlatformClient.js.map +1 -1
- package/dist/host/PlatformHost.d.ts +27 -7
- package/dist/host/PlatformHost.d.ts.map +1 -1
- package/dist/host/PlatformHost.js +41 -4
- package/dist/host/PlatformHost.js.map +1 -1
- package/dist/nav/README.md +5 -5
- package/dist/nav/scroll-nav.d.ts.map +1 -1
- package/dist/nav/scroll-nav.js +8 -4
- package/dist/nav/scroll-nav.js.map +1 -1
- package/dist/nav/spatial-nav.d.ts.map +1 -1
- package/dist/nav/spatial-nav.js +8 -4
- package/dist/nav/spatial-nav.js.map +1 -1
- package/dist/protocol/buttons.d.ts +49 -15
- package/dist/protocol/buttons.d.ts.map +1 -1
- package/dist/protocol/buttons.js +39 -17
- package/dist/protocol/buttons.js.map +1 -1
- package/dist/protocol/glyphs.d.ts +47 -0
- package/dist/protocol/glyphs.d.ts.map +1 -0
- package/dist/protocol/glyphs.js +75 -0
- package/dist/protocol/glyphs.js.map +1 -0
- package/dist/protocol/index.d.ts +1 -0
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/index.js +1 -0
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/messages.d.ts +19 -5
- package/dist/protocol/messages.d.ts.map +1 -1
- package/dist/protocol/version.d.ts +2 -2
- package/dist/protocol/version.d.ts.map +1 -1
- package/dist/protocol/version.js +32 -2
- package/dist/protocol/version.js.map +1 -1
- package/dist/three/README.md +1 -1
- package/dist/ui/README.md +6 -6
- package/dist/ui/action-card.d.ts +4 -4
- package/dist/ui/action-card.d.ts.map +1 -1
- package/dist/ui/action-card.js.map +1 -1
- package/dist/ui/action-diamond.d.ts +3 -3
- package/dist/ui/action-diamond.d.ts.map +1 -1
- package/dist/ui/action-diamond.js +4 -2
- package/dist/ui/action-diamond.js.map +1 -1
- package/dist/ui/choice-card.d.ts +3 -3
- package/dist/ui/choice-card.d.ts.map +1 -1
- package/dist/ui/choice-card.js +1 -1
- package/dist/ui/choice-card.js.map +1 -1
- package/dist/ui/dialogue-card.d.ts +3 -3
- package/dist/ui/dialogue-card.d.ts.map +1 -1
- package/dist/ui/dialogue-card.js +1 -1
- package/dist/ui/dialogue-card.js.map +1 -1
- package/dist/ui/keycap.d.ts +19 -5
- package/dist/ui/keycap.d.ts.map +1 -1
- package/dist/ui/keycap.js +63 -9
- package/dist/ui/keycap.js.map +1 -1
- package/dist/ui/labeled-diamond.d.ts +4 -4
- package/dist/ui/labeled-diamond.d.ts.map +1 -1
- package/dist/ui/labeled-diamond.js +7 -4
- package/dist/ui/labeled-diamond.js.map +1 -1
- package/dist/ui/showcase/index.d.ts.map +1 -1
- package/dist/ui/showcase/index.js +53 -27
- package/dist/ui/showcase/index.js.map +1 -1
- package/dist/ui/solo-labeled-diamond.d.ts +5 -5
- package/dist/ui/solo-labeled-diamond.d.ts.map +1 -1
- package/dist/ui/solo-labeled-diamond.js +4 -2
- package/dist/ui/solo-labeled-diamond.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-diamond.js","sourceRoot":"","sources":["../../src/ui/action-diamond.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"action-diamond.js","sourceRoot":"","sources":["../../src/ui/action-diamond.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyC,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AAEpE,MAAM,SAAS,GAAkC;IAC/C,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;CAClG,CAAC;AA2BF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,OAA6B,EAAE;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;IAChE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;IAEzE,MAAM,KAAK,GAAG,EAAwC,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAoB,EAAE,CAAC;QACxG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAgB,CAAC;QACpK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AACvD,CAAC"}
|
package/dist/ui/choice-card.d.ts
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
* by default (a classic RPG bar), or `inline:true` to lay it in normal flow.
|
|
15
15
|
*/
|
|
16
16
|
import { type Card } from "./card.js";
|
|
17
|
-
import { type
|
|
17
|
+
import { type DiamondButton, type ButtonSource, type Keycap } from "./keycap.js";
|
|
18
18
|
export interface ChoiceCardOptions {
|
|
19
|
-
/** The confirm button parked on the highlighted option (default "
|
|
20
|
-
button?:
|
|
19
|
+
/** The confirm button parked on the highlighted option (default `"DIAMOND_DOWN"`). */
|
|
20
|
+
button?: DiamondButton;
|
|
21
21
|
/** Lay the card inline (normal flow) instead of fixed bottom-centre. */
|
|
22
22
|
inline?: boolean;
|
|
23
23
|
/** Wire the confirm keycap to real controller input (pressed while its button is held). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-card.d.ts","sourceRoot":"","sources":["../../src/ui/choice-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAkC,KAAK,
|
|
1
|
+
{"version":3,"file":"choice-card.d.ts","sourceRoot":"","sources":["../../src/ui/choice-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAkC,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;+EAC2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,IAAI,EAAE,IAAI,CAAC;IACX,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,4GAA4G;IAC5G,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,uCAAuC;IACvC,KAAK,IAAI,MAAM,CAAC;IAChB,sGAAsG;IACtG,OAAO,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAyH3F"}
|
package/dist/ui/choice-card.js
CHANGED
|
@@ -27,7 +27,7 @@ export function mountChoiceCard(host, opts = {}) {
|
|
|
27
27
|
promptEl.className = "rydr-ui-choice-prompt";
|
|
28
28
|
const listEl = document.createElement("div");
|
|
29
29
|
listEl.className = "rydr-ui-choice-list";
|
|
30
|
-
const keycap = createKeycap(opts.button ?? "
|
|
30
|
+
const keycap = createKeycap(opts.button ?? "DIAMOND_DOWN", { variant: "solo", animate: true, press: opts.press });
|
|
31
31
|
// the keycap is parked on the highlighted row by render(); it has no fixed home in the card.
|
|
32
32
|
wrap.append(nameEl, promptEl, listEl);
|
|
33
33
|
const card = mountCard(host, { content: wrap, inline: opts.inline });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-card.js","sourceRoot":"","sources":["../../src/ui/choice-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAa,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"choice-card.js","sourceRoot":"","sources":["../../src/ui/choice-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* default (a classic RPG bar), or `inline:true` to lay it in normal flow.
|
|
16
16
|
*/
|
|
17
17
|
import { type Card } from "./card.js";
|
|
18
|
-
import { type
|
|
18
|
+
import { type DiamondButton, type ButtonSource, type Keycap } from "./keycap.js";
|
|
19
19
|
/**
|
|
20
20
|
* A structured line: `text` plus an optional per-line speaker `name` (so one card can host a
|
|
21
21
|
* multi-character conversation) and an optional `audioUrl` (voice-over MP3, played when the line
|
|
@@ -30,8 +30,8 @@ export interface DialogueLine {
|
|
|
30
30
|
audioUrl?: string;
|
|
31
31
|
}
|
|
32
32
|
export interface DialogueCardOptions {
|
|
33
|
-
/** The "continue" button shown in the corner (default "
|
|
34
|
-
button?:
|
|
33
|
+
/** The "continue" button shown in the corner (default `"DIAMOND_DOWN"`). */
|
|
34
|
+
button?: DiamondButton;
|
|
35
35
|
/** Lay the card inline (normal flow) instead of fixed bottom-centre. */
|
|
36
36
|
inline?: boolean;
|
|
37
37
|
/** Typewriter speed, ms per character (default 18; 0 = reveal instantly). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogue-card.d.ts","sourceRoot":"","sources":["../../src/ui/dialogue-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAgB,KAAK,
|
|
1
|
+
{"version":3,"file":"dialogue-card.d.ts","sourceRoot":"","sources":["../../src/ui/dialogue-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAK/F;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iDAC6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;8GAC0G;IAC1G,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,mEAAmE;IACnE,IAAI,EAAE,IAAI,CAAC;IACX,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;2GACuG;IACvG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAC9D,sGAAsG;IACtG,OAAO,IAAI,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IACd,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,2GAA2G;AAC3G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,mBAAwB,GAAG,YAAY,CAgGjG"}
|
package/dist/ui/dialogue-card.js
CHANGED
|
@@ -33,7 +33,7 @@ export function mountDialogueCard(host, opts = {}) {
|
|
|
33
33
|
go.className = "rydr-ui-dlg-go";
|
|
34
34
|
const cueEl = document.createElement("span");
|
|
35
35
|
cueEl.className = "rydr-ui-dlg-cue";
|
|
36
|
-
const keycap = createKeycap(opts.button ?? "
|
|
36
|
+
const keycap = createKeycap(opts.button ?? "DIAMOND_DOWN", { variant: "solo", animate: true, press: opts.press });
|
|
37
37
|
go.append(cueEl, keycap.el);
|
|
38
38
|
wrap.append(nameEl, lineEl, go);
|
|
39
39
|
const card = mountCard(host, { content: wrap, inline: opts.inline });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogue-card.js","sourceRoot":"","sources":["../../src/ui/dialogue-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAa,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"dialogue-card.js","sourceRoot":"","sources":["../../src/ui/dialogue-card.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/keycap.d.ts
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* button name the press-wiring listens for; everything else is identical.
|
|
15
15
|
*/
|
|
16
16
|
import type { ButtonName, ButtonEdge } from "../protocol/index.js";
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
import { type GlyphSet } from "../protocol/glyphs.js";
|
|
18
|
+
/** The four face-diamond buttons (a subset of the canonical {@link ButtonName} vocabulary). */
|
|
19
|
+
export type DiamondButton = "DIAMOND_UP" | "DIAMOND_DOWN" | "DIAMOND_LEFT" | "DIAMOND_RIGHT";
|
|
19
20
|
/** The four directional buttons (the canonical d-pad {@link ButtonName}s). */
|
|
20
21
|
export type DirButton = "UP" | "DOWN" | "LEFT" | "RIGHT";
|
|
21
22
|
/** "full" = the 4-button diamond; "solo" = just the active button. */
|
|
@@ -44,6 +45,12 @@ export interface KeycapOptions {
|
|
|
44
45
|
* keycap shows its pressed sink while ITS button is held (down → pressed, up → released).
|
|
45
46
|
*/
|
|
46
47
|
press?: ButtonSource;
|
|
48
|
+
/**
|
|
49
|
+
* Which controller's lettering to draw. Defaults to the set reported by `press` (when that's a
|
|
50
|
+
* `session`), else `"xbox"`. Set it explicitly only to preview a set you don't currently have —
|
|
51
|
+
* a settings screen, a showcase, a screenshot.
|
|
52
|
+
*/
|
|
53
|
+
glyphSet?: GlyphSet;
|
|
47
54
|
}
|
|
48
55
|
/** A bare keycap with its state setters. */
|
|
49
56
|
export interface Keycap {
|
|
@@ -66,12 +73,19 @@ export interface Keycap {
|
|
|
66
73
|
setVisible(on: boolean): void;
|
|
67
74
|
dispose(): void;
|
|
68
75
|
}
|
|
69
|
-
/**
|
|
70
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Build a bare face-diamond keycap with state setters.
|
|
78
|
+
*
|
|
79
|
+
* The button is named by POSITION (`"DIAMOND_DOWN"`), and the letter drawn on it comes from the
|
|
80
|
+
* controller the rider is holding — pass `glyphSet`, or pass a `session` as `press` and it is taken
|
|
81
|
+
* from there. That is the whole point: a keycap for the confirm button reads `A`, `✕` or `B` without
|
|
82
|
+
* the game knowing or caring which.
|
|
83
|
+
*/
|
|
84
|
+
export declare function createKeycap(button: DiamondButton, opts?: KeycapOptions): Keycap;
|
|
71
85
|
/**
|
|
72
86
|
* Build a bare directional (UP/DOWN/LEFT/RIGHT) keycap. Identical state machine to {@link createKeycap}
|
|
73
87
|
* — solo/full, pulse, pressed, cooldown ring — only the active button shows a WHITE chevron (rotated
|
|
74
|
-
* per direction) on a steel-grey pip, not the loud
|
|
88
|
+
* per direction) on a steel-grey pip, not the loud face-button hues.
|
|
75
89
|
*/
|
|
76
90
|
export declare function createDpadKeycap(dir: DirButton, opts?: KeycapOptions): Keycap;
|
|
77
91
|
//# sourceMappingURL=keycap.d.ts.map
|
package/dist/ui/keycap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycap.d.ts","sourceRoot":"","sources":["../../src/ui/keycap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"keycap.d.ts","sourceRoot":"","sources":["../../src/ui/keycap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtF,+FAA+F;AAC/F,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;AAC7F,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5C,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/E;AAoBD,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,EAAE,EAAE,WAAW,CAAC;IAChB,uCAAuC;IACvC,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChE,6BAA6B;IAC7B,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,8FAA8F;IAC9F,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,4BAA4B;IAC5B,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AA0KD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAEjF"}
|
package/dist/ui/keycap.js
CHANGED
|
@@ -13,11 +13,52 @@
|
|
|
13
13
|
* chevron on a steel-grey pip, rotated per direction). They differ ONLY in the face drawn and the
|
|
14
14
|
* button name the press-wiring listens for; everything else is identical.
|
|
15
15
|
*/
|
|
16
|
+
import { buttonLabel, DEFAULT_GLYPH_SET } from "../protocol/glyphs.js";
|
|
16
17
|
import { injectCss } from "./styles.js";
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Which lettering to draw: an explicit `glyphSet` wins, else the one a real `PlatformSession` passed
|
|
20
|
+
* as `press` reports, else {@link DEFAULT_GLYPH_SET}.
|
|
21
|
+
*
|
|
22
|
+
* The session is probed structurally rather than declared on {@link ButtonSource}, because that type
|
|
23
|
+
* is deliberately the *minimal* slice a keycap needs — plenty of callers pass a hand-rolled stub or a
|
|
24
|
+
* showcase double, and requiring a hardware snapshot on all of them would break every one for a value
|
|
25
|
+
* that is optional anyway.
|
|
26
|
+
*
|
|
27
|
+
* Resolved once at build time: keycaps are cheap to recreate, and riders swap controllers far more
|
|
28
|
+
* rarely than these are constructed.
|
|
29
|
+
*/
|
|
30
|
+
function resolveGlyphSet(opts) {
|
|
31
|
+
if (opts.glyphSet)
|
|
32
|
+
return opts.glyphSet;
|
|
33
|
+
const snapshot = opts.press?.hardware?.current;
|
|
34
|
+
return snapshot?.glyphSet ?? DEFAULT_GLYPH_SET;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Hues follow the ROLE, not the position: confirm is green and back is amber, which is the colour
|
|
38
|
+
* language riders already read. They therefore moved with the roles when confirm went from the right
|
|
39
|
+
* button to the bottom one — leaving them pinned to positions would have painted the back button
|
|
40
|
+
* green, which reads as "go".
|
|
41
|
+
*/
|
|
42
|
+
const COLOR = {
|
|
43
|
+
top: "#4DD5FF",
|
|
44
|
+
rgt: "#FF7A0C", // back
|
|
45
|
+
bot: "#00C968", // confirm
|
|
46
|
+
lft: "#FF79FF",
|
|
47
|
+
};
|
|
19
48
|
const DIR = { top: [0, -1], bot: [0, 1], lft: [-1, 0], rgt: [1, 0] };
|
|
20
|
-
const POS_OF = {
|
|
49
|
+
const POS_OF = {
|
|
50
|
+
DIAMOND_UP: "top",
|
|
51
|
+
DIAMOND_RIGHT: "rgt",
|
|
52
|
+
DIAMOND_DOWN: "bot",
|
|
53
|
+
DIAMOND_LEFT: "lft",
|
|
54
|
+
};
|
|
55
|
+
/** Inverse of {@link POS_OF} — the canonical button drawn at each position, for label lookup. */
|
|
56
|
+
const BUTTON_AT = {
|
|
57
|
+
top: "DIAMOND_UP",
|
|
58
|
+
rgt: "DIAMOND_RIGHT",
|
|
59
|
+
bot: "DIAMOND_DOWN",
|
|
60
|
+
lft: "DIAMOND_LEFT",
|
|
61
|
+
};
|
|
21
62
|
const POS_OF_DIR = { UP: "top", DOWN: "bot", LEFT: "lft", RIGHT: "rgt" };
|
|
22
63
|
/** Rotation (deg) applied to the base-points-up chevron so it points the right way per position. */
|
|
23
64
|
const ROT = { top: 0, rgt: 90, bot: 180, lft: 270 };
|
|
@@ -28,13 +69,19 @@ const DPAD_TONE = "#566273";
|
|
|
28
69
|
const PIP = 20, PIP_ACTIVE = 38, LETTER_FONT = 23;
|
|
29
70
|
const NEUTRAL_ACTIVE = "#ffffff"; // mono active button: white face (the letter stays dark)
|
|
30
71
|
const INACTIVE = "#3a424e"; // the idle siblings in a full diamond
|
|
31
|
-
/**
|
|
32
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Letter face — the glyph PRINTED on the rider's own pad at this position (`A` on Xbox, `✕` on a
|
|
74
|
+
* DualSense, `B` on a Switch Pro), sized up on the active button.
|
|
75
|
+
*
|
|
76
|
+
* A factory rather than a constant because the letter depends on which controller is paired; the set
|
|
77
|
+
* is resolved once when the keycap is built. See {@link buttonLabel}.
|
|
78
|
+
*/
|
|
79
|
+
const letterFaceFor = (set) => (pos, active) => {
|
|
33
80
|
const lt = document.createElement("span");
|
|
34
81
|
lt.className = "rydr-ui-pip-letter";
|
|
35
82
|
if (active)
|
|
36
83
|
lt.style.fontSize = `${LETTER_FONT}px`;
|
|
37
|
-
lt.textContent =
|
|
84
|
+
lt.textContent = buttonLabel(set, BUTTON_AT[pos]);
|
|
38
85
|
return lt;
|
|
39
86
|
};
|
|
40
87
|
/** Directional face — a white chevron (only on the active button; siblings stay blank). */
|
|
@@ -145,14 +192,21 @@ function build(activePos, pressName, face, opts, accent) {
|
|
|
145
192
|
dispose: () => { off?.(); el.remove(); },
|
|
146
193
|
};
|
|
147
194
|
}
|
|
148
|
-
/**
|
|
195
|
+
/**
|
|
196
|
+
* Build a bare face-diamond keycap with state setters.
|
|
197
|
+
*
|
|
198
|
+
* The button is named by POSITION (`"DIAMOND_DOWN"`), and the letter drawn on it comes from the
|
|
199
|
+
* controller the rider is holding — pass `glyphSet`, or pass a `session` as `press` and it is taken
|
|
200
|
+
* from there. That is the whole point: a keycap for the confirm button reads `A`, `✕` or `B` without
|
|
201
|
+
* the game knowing or caring which.
|
|
202
|
+
*/
|
|
149
203
|
export function createKeycap(button, opts = {}) {
|
|
150
|
-
return build(POS_OF[button], button,
|
|
204
|
+
return build(POS_OF[button], button, letterFaceFor(resolveGlyphSet(opts)), opts);
|
|
151
205
|
}
|
|
152
206
|
/**
|
|
153
207
|
* Build a bare directional (UP/DOWN/LEFT/RIGHT) keycap. Identical state machine to {@link createKeycap}
|
|
154
208
|
* — solo/full, pulse, pressed, cooldown ring — only the active button shows a WHITE chevron (rotated
|
|
155
|
-
* per direction) on a steel-grey pip, not the loud
|
|
209
|
+
* per direction) on a steel-grey pip, not the loud face-button hues.
|
|
156
210
|
*/
|
|
157
211
|
export function createDpadKeycap(dir, opts = {}) {
|
|
158
212
|
return build(POS_OF_DIR[dir], dir, chevronFace, opts, DPAD_TONE);
|
package/dist/ui/keycap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycap.js","sourceRoot":"","sources":["../../src/ui/keycap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"keycap.js","sourceRoot":"","sources":["../../src/ui/keycap.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
* Fixed-overlay by default (call `setScreenPos` to track a projected world point), or `inline:true`
|
|
10
10
|
* to lay it in normal flow.
|
|
11
11
|
*/
|
|
12
|
-
import { type
|
|
12
|
+
import { type DiamondButton } from "./keycap.js";
|
|
13
13
|
export interface LabeledDiamondOptions {
|
|
14
14
|
/** Lay the diamond inline (normal flow, full width) instead of as a fixed overlay. */
|
|
15
15
|
inline?: boolean;
|
|
16
16
|
/** Initial active labels — a label string activates that button; omit a button to leave it greyed. */
|
|
17
|
-
actions?: Partial<Record<
|
|
17
|
+
actions?: Partial<Record<DiamondButton, string>>;
|
|
18
18
|
}
|
|
19
19
|
export interface LabeledDiamond {
|
|
20
20
|
root: HTMLElement;
|
|
21
21
|
/** Activate a button with a radiating label, or pass `null`/`""` to deactivate it (pip greys, label hides). */
|
|
22
|
-
setLabel(button:
|
|
22
|
+
setLabel(button: DiamondButton, text: string | null): void;
|
|
23
23
|
/** Disable an active action: its pip goes inert grey and its label fades back. */
|
|
24
|
-
setDisabled(button:
|
|
24
|
+
setDisabled(button: DiamondButton, on: boolean): void;
|
|
25
25
|
setVisible(v: boolean): void;
|
|
26
26
|
/** Centre the diamond at a viewport pixel (e.g. a target projected to screen). */
|
|
27
27
|
setScreenPos(x: number, y: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labeled-diamond.d.ts","sourceRoot":"","sources":["../../src/ui/labeled-diamond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"labeled-diamond.d.ts","sourceRoot":"","sources":["../../src/ui/labeled-diamond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD,MAAM,WAAW,qBAAqB;IACpC,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sGAAsG;IACtG,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,+GAA+G;IAC/G,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3D,kFAAkF;IAClF,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACtD,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,iHAAiH;AACjH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,qBAA0B,GAAG,cAAc,CAsEvG"}
|
|
@@ -12,11 +12,14 @@
|
|
|
12
12
|
import { mountCard } from "./card.js";
|
|
13
13
|
import {} from "./keycap.js";
|
|
14
14
|
import { injectCss } from "./styles.js";
|
|
15
|
-
const POS = {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const POS = {
|
|
16
|
+
DIAMOND_UP: "top", DIAMOND_RIGHT: "rgt", DIAMOND_DOWN: "bot", DIAMOND_LEFT: "lft",
|
|
17
|
+
};
|
|
18
|
+
/** Per-position hue — mirrors the keycap palette, where the hues follow the ROLE: confirm (bottom)
|
|
19
|
+
* is green and back (right) is amber. Keep the two tables in step. */
|
|
20
|
+
const COLOR = { top: "#4DD5FF", rgt: "#FF7A0C", bot: "#00C968", lft: "#FF79FF" };
|
|
18
21
|
const INACTIVE = "#3a424e"; // a button that isn't part of this menu (greyed, sunk)
|
|
19
|
-
const FACES = ["
|
|
22
|
+
const FACES = ["DIAMOND_UP", "DIAMOND_RIGHT", "DIAMOND_DOWN", "DIAMOND_LEFT"];
|
|
20
23
|
/** Mount a labeled A/B/Y/Z diamond: a pip cluster with a card-seated label radiating from each active button. */
|
|
21
24
|
export function mountLabeledDiamond(host, opts = {}) {
|
|
22
25
|
injectCss();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labeled-diamond.js","sourceRoot":"","sources":["../../src/ui/labeled-diamond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAa,MAAM,WAAW,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"labeled-diamond.js","sourceRoot":"","sources":["../../src/ui/labeled-diamond.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/showcase/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/showcase/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA0BH,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE7E,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAoBpD,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,GAAE,iBAAsB,GAAG,UAAU,CA6W3F"}
|