@diffenderfer-games/hub 2.0.0-next.0 → 2.0.0-next.10
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/CHANGELOG.md +163 -0
- package/LICENSE +21 -21
- package/README.md +203 -139
- package/dist/auto.d.ts +8 -8
- package/dist/auto.js +3 -3
- package/dist/avatar-pixi.d.ts +165 -0
- package/dist/avatar-pixi.d.ts.map +1 -0
- package/dist/avatar-pixi.js +299 -0
- package/dist/avatar-pixi.js.map +1 -0
- package/dist/avatar-svg.d.ts +4 -0
- package/dist/avatar-svg.js +5 -0
- package/dist/avatar-three.d.ts +69 -0
- package/dist/avatar-three.d.ts.map +1 -0
- package/dist/avatar-three.js +49 -0
- package/dist/avatar-three.js.map +1 -0
- package/dist/avatar.d.ts +7 -0
- package/dist/avatar.js +500 -0
- package/dist/avatar.js.map +1 -0
- package/dist/daily.d.ts +2 -2
- package/dist/doctor/cli.mjs +119 -28
- package/dist/doctor/cli.mjs.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +3 -3
- package/dist/input.d.ts +2 -2
- package/dist/input.js +2 -2
- package/dist/mp.d.ts +3 -3
- package/dist/race.d.ts +1 -1
- package/dist/rooms.d.ts +3 -3
- package/dist/rooms.js +1 -1
- package/dist/shared/animator.d.ts +104 -0
- package/dist/shared/animator.d.ts.map +1 -0
- package/dist/shared/art.js +1946 -0
- package/dist/shared/art.js.map +1 -0
- package/dist/shared/atlas.d.ts +138 -0
- package/dist/shared/atlas.d.ts.map +1 -0
- package/dist/shared/avatar.d.ts +123 -0
- package/dist/shared/avatar.d.ts.map +1 -0
- package/dist/shared/bridge.js +18 -4
- package/dist/shared/bridge.js.map +1 -1
- package/dist/shared/client-version.gen.js +1 -1
- package/dist/shared/daily.d.ts +145 -19
- package/dist/shared/daily.d.ts.map +1 -1
- package/dist/shared/daily.js +138 -25
- package/dist/shared/daily.js.map +1 -1
- package/dist/shared/defineProperty.js +39 -0
- package/dist/shared/describe.d.ts +32 -0
- package/dist/shared/describe.d.ts.map +1 -0
- package/dist/shared/describe.js +109 -0
- package/dist/shared/describe.js.map +1 -0
- package/dist/shared/globals.js +9 -42
- package/dist/shared/globals.js.map +1 -1
- package/dist/shared/index.d.ts +1122 -46
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/input.d.ts +74 -14
- package/dist/shared/input.d.ts.map +1 -1
- package/dist/shared/input.js +179 -25
- package/dist/shared/input.js.map +1 -1
- package/dist/shared/json-guards.js +48 -0
- package/dist/shared/json-guards.js.map +1 -0
- package/dist/shared/latest-state.js +1 -1
- package/dist/shared/live-canvas.js +62 -0
- package/dist/shared/live-canvas.js.map +1 -0
- package/dist/shared/mp.js +10 -2
- package/dist/shared/mp.js.map +1 -1
- package/dist/shared/multiplayer-types.d.ts +15 -2
- package/dist/shared/multiplayer-types.d.ts.map +1 -1
- package/dist/shared/overlays.js +800 -0
- package/dist/shared/overlays.js.map +1 -0
- package/dist/shared/page-stack.js +2 -1
- package/dist/shared/page-stack.js.map +1 -1
- package/dist/shared/pose-key.js +249 -0
- package/dist/shared/pose-key.js.map +1 -0
- package/dist/shared/race-types.d.ts +1 -1
- package/dist/shared/race.js +1 -1
- package/dist/shared/room-types.d.ts +28 -3
- package/dist/shared/room-types.d.ts.map +1 -1
- package/dist/shared/rooms.d.ts.map +1 -1
- package/dist/shared/rooms.js +23 -4
- package/dist/shared/rooms.js.map +1 -1
- package/dist/shared/runtime-opener.js +1 -1
- package/dist/shared/scene.d.ts +90 -0
- package/dist/shared/scene.d.ts.map +1 -0
- package/dist/shared/social.d.ts +90 -9
- package/dist/shared/social.d.ts.map +1 -1
- package/dist/shared/social.js +6 -1
- package/dist/shared/social.js.map +1 -1
- package/dist/shared/src.js +4563 -667
- package/dist/shared/src.js.map +1 -1
- package/dist/shared/svg-markup.js +2354 -0
- package/dist/shared/svg-markup.js.map +1 -0
- package/dist/shared/svg.js +27 -0
- package/dist/shared/svg.js.map +1 -0
- package/dist/shared/types.d.ts +174 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/wire-types.d.ts +6 -2
- package/dist/shared/wire-types.d.ts.map +1 -1
- package/dist/social.d.ts +5 -5
- package/dist/social.js +2 -2
- package/dist/turns-rules.d.ts +2 -0
- package/dist/turns-rules.js +1 -0
- package/dist/turns.d.ts +61 -0
- package/dist/turns.d.ts.map +1 -0
- package/dist/turns.js +183 -0
- package/dist/turns.js.map +1 -0
- package/package.json +125 -89
- package/src/auto.ts +39 -39
- package/src/avatar/adapters/pixi-avatar.ts +73 -0
- package/src/avatar/adapters/pixi-crowd.ts +329 -0
- package/src/avatar/adapters/pixi-types.ts +84 -0
- package/src/avatar/adapters/three.ts +126 -0
- package/src/avatar/animator/animator.ts +285 -0
- package/src/avatar/animator/reactions.ts +44 -0
- package/src/avatar/animator/schedule.ts +73 -0
- package/src/avatar/art/beard.ts +49 -0
- package/src/avatar/art/glasses.ts +67 -0
- package/src/avatar/art/hair.ts +254 -0
- package/src/avatar/art/headwear.ts +75 -0
- package/src/avatar/art/index.ts +21 -0
- package/src/avatar/art/shape.ts +87 -0
- package/src/avatar/art-store.ts +36 -0
- package/src/avatar/atlas.ts +246 -0
- package/src/avatar/catalog-view.ts +14 -0
- package/src/avatar/colour.ts +109 -0
- package/src/avatar/describe.ts +79 -0
- package/src/avatar/face.ts +187 -0
- package/src/avatar/geom.ts +173 -0
- package/src/avatar/layout.ts +47 -0
- package/src/avatar/look-like.ts +52 -0
- package/src/avatar/outputs/bitmap.ts +75 -0
- package/src/avatar/outputs/canvas-paint.ts +177 -0
- package/src/avatar/outputs/canvas.ts +62 -0
- package/src/avatar/outputs/custom-element.ts +140 -0
- package/src/avatar/outputs/element.ts +58 -0
- package/src/avatar/outputs/live-canvas.ts +57 -0
- package/src/avatar/outputs/overlay-svg.ts +22 -0
- package/src/avatar/outputs/pose-key.ts +30 -0
- package/src/avatar/outputs/svg-markup.ts +113 -0
- package/src/avatar/outputs/svg.ts +41 -0
- package/src/avatar/overlays.ts +128 -0
- package/src/avatar/render/body.ts +116 -0
- package/src/avatar/render/colours.ts +81 -0
- package/src/avatar/render/compose.ts +320 -0
- package/src/avatar/render/context.ts +117 -0
- package/src/avatar/render/eyes.ts +78 -0
- package/src/avatar/render/eyewear.ts +118 -0
- package/src/avatar/render/frame.ts +73 -0
- package/src/avatar/render/head.ts +81 -0
- package/src/avatar/render/mouth.ts +86 -0
- package/src/avatar/render/props.ts +91 -0
- package/src/avatar/render/types.ts +93 -0
- package/src/avatar/render/walker-parts.ts +121 -0
- package/src/avatar/render/walker.ts +199 -0
- package/src/avatar/scene.ts +119 -0
- package/src/avatar-pixi.ts +20 -0
- package/src/avatar-svg.ts +21 -0
- package/src/avatar-three.ts +18 -0
- package/src/avatar.ts +63 -0
- package/src/core/avatar/avatar-cache.ts +95 -0
- package/src/core/avatar/avatar-ref.ts +34 -0
- package/src/core/avatar/avatar-types.ts +43 -0
- package/src/core/avatar/hub-avatar.ts +308 -0
- package/src/core/connection.ts +408 -299
- package/src/core/errors.ts +160 -147
- package/src/core/game-data.ts +40 -38
- package/src/core/hub-economy.ts +216 -179
- package/src/core/hub-progress.ts +269 -205
- package/src/core/hub.ts +352 -131
- package/src/core/menu-control.ts +61 -61
- package/src/core/offline/cloud-saves.ts +62 -0
- package/src/core/offline/events.ts +50 -50
- package/src/core/offline/favorites.ts +21 -21
- package/src/core/offline/hub-kinds/avatar-kind.ts +42 -0
- package/src/core/offline/hub-kinds/daily-kind.ts +68 -0
- package/src/core/offline/hub-kinds/economy-kinds.ts +86 -0
- package/src/core/offline/hub-kinds/game-fields.ts +2 -0
- package/src/core/offline/hub-kinds/index.ts +52 -0
- package/src/core/offline/hub-kinds/legacy-ops.ts +37 -0
- package/src/core/offline/hub-kinds/progress-kinds.ts +165 -0
- package/src/core/offline/hub-kinds/resume-kind.ts +108 -0
- package/src/core/offline/hub-kinds/saved-kind.ts +93 -0
- package/src/core/offline/kind-adapters.ts +48 -0
- package/src/core/offline/local-inventory.ts +64 -0
- package/src/core/offline/local-store.ts +304 -261
- package/src/core/offline/offline-api.ts +65 -0
- package/src/core/offline/outbox-entry.ts +59 -0
- package/src/core/offline/outbox-kinds.ts +78 -0
- package/src/core/offline/outbox-merge.ts +39 -0
- package/src/core/offline/outbox-replayer.ts +141 -0
- package/src/core/offline/outbox-store.ts +85 -0
- package/src/core/offline/outbox.ts +232 -0
- package/src/core/offline/queue.ts +126 -171
- package/src/core/offline/replay-lease.ts +87 -0
- package/src/core/offline/replay-policy.ts +52 -0
- package/src/core/page-account.ts +121 -0
- package/src/core/page.ts +87 -74
- package/src/core/rest/endpoint-types.ts +22 -22
- package/src/core/rest/rest-client.ts +163 -152
- package/src/core/rest/routes.gen.ts +144 -88
- package/src/core/resume/hub-resume.ts +286 -0
- package/src/core/resume/local-resume.ts +130 -0
- package/src/core/resume/resume-list.ts +65 -0
- package/src/core/resume/resume-request.ts +52 -0
- package/src/core/resume/resume-types.ts +64 -0
- package/src/core/saved/daily-saves.ts +196 -0
- package/src/core/saved/daily-seed.ts +16 -0
- package/src/core/saved/hub-saved.ts +221 -0
- package/src/core/saved/local-saved.ts +122 -0
- package/src/core/saved/saved-list.ts +129 -0
- package/src/core/saved/saved-open.ts +104 -0
- package/src/core/saved/saved-order.ts +49 -0
- package/src/core/saved/saved-types.ts +24 -0
- package/src/core/storage/json-guards.ts +80 -74
- package/src/core/storage/key-value.ts +66 -66
- package/src/core/ticket.ts +43 -43
- package/src/core/turns/hub-turns.ts +161 -0
- package/src/core/turns/turn-game.ts +510 -0
- package/src/core/turns/your-turn-buzz.ts +69 -0
- package/src/core/types.ts +134 -134
- package/src/core/version/client-version.gen.ts +2 -2
- package/src/core/version/hub-version.ts +62 -62
- package/src/core/version/semver.ts +97 -97
- package/src/daily/daily-system.ts +276 -161
- package/src/daily/page-daily.ts +36 -36
- package/src/daily/types.ts +105 -67
- package/src/daily.ts +10 -10
- package/src/doctor/checks.ts +86 -76
- package/src/doctor/cli.ts +101 -106
- package/src/doctor/hub-version-fetch.ts +43 -0
- package/src/doctor/tsconfig.json +12 -12
- package/src/doctor/world-check.ts +61 -0
- package/src/globals.ts +115 -110
- package/src/index.ts +68 -50
- package/src/input/device-state.ts +146 -146
- package/src/input/edges.ts +55 -55
- package/src/input/focus-ring.ts +13 -0
- package/src/input/gamepad.ts +61 -61
- package/src/input/input-events.ts +32 -32
- package/src/input/input-registry.ts +171 -164
- package/src/input/input-system.ts +406 -393
- package/src/input/legacy-controls.ts +64 -64
- package/src/input/modality.ts +122 -0
- package/src/input/nav-state.ts +200 -191
- package/src/input/navigator.ts +182 -171
- package/src/input/on-screen-controls.ts +101 -101
- package/src/input/page-control.ts +43 -43
- package/src/input/page-input.ts +193 -193
- package/src/input/player-remaps.ts +77 -77
- package/src/input/source-values.ts +116 -116
- package/src/input/spatial.ts +47 -47
- package/src/input/types.ts +331 -331
- package/src/input/zero-config.ts +164 -177
- package/src/input.ts +26 -22
- package/src/mp.ts +10 -10
- package/src/overlay/controls-panel.ts +163 -163
- package/src/overlay/dom.ts +46 -46
- package/src/overlay/layout-clusters.ts +162 -162
- package/src/overlay/layout-geometry.ts +136 -136
- package/src/overlay/layout.ts +203 -203
- package/src/overlay/listener-scope.ts +23 -23
- package/src/overlay/on-screen-keyboard.ts +137 -137
- package/src/overlay/overlay.ts +234 -208
- package/src/overlay/styles.ts +13 -12
- package/src/overlay/virtual-controls.ts +262 -262
- package/src/race.ts +10 -10
- package/src/realtime/bridge.ts +126 -121
- package/src/realtime/cross-bundle.ts +29 -29
- package/src/realtime/fallback-notice.ts +48 -48
- package/src/realtime/hub-link.ts +65 -65
- package/src/realtime/latest-state.ts +33 -33
- package/src/realtime/multiplayer-forwarder.ts +40 -28
- package/src/realtime/multiplayer-types.ts +66 -52
- package/src/realtime/page-runtime.ts +60 -60
- package/src/realtime/race-forwarder.ts +59 -59
- package/src/realtime/race-types.ts +132 -132
- package/src/realtime/room-types.ts +151 -125
- package/src/realtime/rooms-forwarder.ts +104 -79
- package/src/realtime/runtime-api.ts +74 -49
- package/src/realtime/runtime-opener.ts +61 -61
- package/src/realtime/social-forwarder.ts +77 -72
- package/src/realtime/social-types.ts +86 -78
- package/src/realtime/types.ts +54 -53
- package/src/realtime/wire-types.ts +79 -72
- package/src/realtime/world-types.ts +20 -0
- package/src/rooms.ts +10 -10
- package/src/social.ts +19 -18
- package/src/turns-kit/check-rules.ts +281 -0
- package/src/turns-rules.ts +12 -0
- package/src/turns.ts +14 -0
- package/src/types.ts +13 -13
- package/src/uistack/page-stack.ts +45 -45
- package/src/uistack/play-suspension.ts +82 -82
- package/src/uistack/types.ts +76 -76
- package/src/uistack/ui-stack.ts +144 -144
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["GameInfo","ContractGameInfo","GameInfo","presence","social","mp","rooms","notify","race"],"sources":["../../src/core/storage/key-value.ts","../../src/core/game-data.ts","../../src/core/rest/endpoint-types.ts","../../src/core/types.ts","../../src/core/offline/events.ts","../../src/core/offline/queue.ts","../../src/core/offline/local-store.ts","../../src/core/rest/rest-client.ts","../../src/core/connection.ts","../../src/core/hub-progress.ts","../../src/core/hub-economy.ts","../../src/core/menu-control.ts","../../src/core/version/hub-version.ts","../../src/core/hub.ts","../../src/core/errors.ts","../../src/core/version/client-version.gen.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["AvatarEntry","GameInfo","ContractGameInfo","_$__page_account0.PageAccount","GameInfo","presence","social","mp","rooms","notify","race"],"sources":["../../src/core/page-account.ts","../../src/core/avatar/avatar-ref.ts","../../src/core/avatar/hub-avatar.ts","../../src/core/storage/key-value.ts","../../src/core/rest/endpoint-types.ts","../../src/core/types.ts","../../src/core/offline/events.ts","../../src/core/offline/queue.ts","../../src/core/offline/local-store.ts","../../src/core/rest/rest-client.ts","../../src/core/offline/outbox-entry.ts","../../src/core/offline/outbox-kinds.ts","../../src/core/offline/outbox-store.ts","../../src/core/offline/outbox-replayer.ts","../../src/core/offline/outbox.ts","../../src/core/offline/offline-api.ts","../../src/core/resume/local-resume.ts","../../src/core/saved/local-saved.ts","../../src/core/connection.ts","../../src/core/hub-progress.ts","../../src/core/hub-economy.ts","../../src/core/menu-control.ts","../../src/core/offline/hub-kinds/resume-kind.ts","../../src/core/resume/resume-types.ts","../../src/core/resume/hub-resume.ts","../../src/core/saved/saved-list.ts","../../src/core/saved/hub-saved.ts","../../src/core/turns/turn-game.ts","../../src/core/turns/hub-turns.ts","../../src/core/version/hub-version.ts","../../src/core/hub.ts","../../src/core/errors.ts","../../src/core/turns/your-turn-buzz.ts","../../src/core/version/client-version.gen.ts"],"mappings":"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"}
|
package/dist/shared/input.d.ts
CHANGED
|
@@ -319,6 +319,24 @@ interface ControlsPanelHost {
|
|
|
319
319
|
bindingLabel(inputName: string): string;
|
|
320
320
|
}
|
|
321
321
|
//#endregion
|
|
322
|
+
//#region src/input/nav-state.d.ts
|
|
323
|
+
/** What a navigable list draws with (the overlay). */
|
|
324
|
+
interface NavHighlighter {
|
|
325
|
+
/** Ring the highlighted element, following its corner radius (a CSS `border-radius`, or empty). */
|
|
326
|
+
showHighlight(bounds: Rect, radius: string): void;
|
|
327
|
+
/** Remove the ring. */
|
|
328
|
+
hideHighlight(): void;
|
|
329
|
+
/** Open the on-screen keyboard for a text field. */
|
|
330
|
+
openKeyboard(target: HTMLInputElement | HTMLTextAreaElement | null): void;
|
|
331
|
+
}
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region src/input/navigator.d.ts
|
|
334
|
+
/** What `autoNavigate` was last given: the targets' query and the back action. */
|
|
335
|
+
interface AutoNavigateTarget {
|
|
336
|
+
readonly query: () => NavTarget[];
|
|
337
|
+
readonly back: (() => void) | null;
|
|
338
|
+
}
|
|
339
|
+
//#endregion
|
|
322
340
|
//#region src/input/page-control.d.ts
|
|
323
341
|
/** The cross-bundle input surface. */
|
|
324
342
|
interface PageInputControl {
|
|
@@ -375,6 +393,7 @@ declare class InputSystem implements ControlsPanelHost, PageInputControl {
|
|
|
375
393
|
private activeSource;
|
|
376
394
|
private isPageOwner;
|
|
377
395
|
private pageOwner;
|
|
396
|
+
private readonly modality;
|
|
378
397
|
constructor(host: InputHost, options?: InputSystemOptions);
|
|
379
398
|
/** Whether this page counts as a touch device. */
|
|
380
399
|
get touchDevice(): boolean;
|
|
@@ -453,6 +472,12 @@ declare class InputSystem implements ControlsPanelHost, PageInputControl {
|
|
|
453
472
|
autoNavigate(selector: string | (() => NavTarget[]), options?: {
|
|
454
473
|
back?: () => void;
|
|
455
474
|
}): void;
|
|
475
|
+
/**
|
|
476
|
+
* The game's current `autoNavigate` target (its query and back action), or
|
|
477
|
+
* `null`. Hub UI that takes the gamepad for a while (a dialog) reads it,
|
|
478
|
+
* and gives it back with `autoNavigate(target.query, { back })` when done.
|
|
479
|
+
*/
|
|
480
|
+
autoNavigateTarget(): AutoNavigateTarget | null;
|
|
456
481
|
/** Stop navigating the game's own menu. */
|
|
457
482
|
clearAutoNavigate(): void;
|
|
458
483
|
/**
|
|
@@ -491,16 +516,46 @@ declare function parseInputOverrides(saved: unknown): InputOverrides;
|
|
|
491
516
|
*/
|
|
492
517
|
declare function getInput(options?: InputOptions): InputSystem;
|
|
493
518
|
//#endregion
|
|
494
|
-
//#region src/input/
|
|
495
|
-
/**
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
519
|
+
//#region src/input/focus-ring.d.ts
|
|
520
|
+
/**
|
|
521
|
+
* The hub's focus ring: a two-tone box-shadow (a dark gap, then a light ring)
|
|
522
|
+
* that follows the element's own border-radius and shows on light and dark
|
|
523
|
+
* buttons alike. Pages tune it with CSS variables:
|
|
524
|
+
* `--hub-focus-color` (the ring), `--hub-focus-inner` (the gap),
|
|
525
|
+
* `--hub-focus-width` and `--hub-focus-gap`.
|
|
526
|
+
*/
|
|
527
|
+
/** The ring as a `box-shadow` value. */
|
|
528
|
+
declare const FOCUS_RING_SHADOW = "0 0 0 var(--hub-focus-gap, 2px) var(--hub-focus-inner, rgba(13, 15, 20, 0.85)), 0 0 0 calc(var(--hub-focus-gap, 2px) + var(--hub-focus-width, 3px)) var(--hub-focus-color, #fff)";
|
|
529
|
+
//#endregion
|
|
530
|
+
//#region src/input/modality.d.ts
|
|
531
|
+
/** `keys`: keyboard or gamepad. `pointer`: mouse or pen. `touch`: a finger. */
|
|
532
|
+
type InputModality = 'keys' | 'pointer' | 'touch';
|
|
533
|
+
/** The `<html>` attribute that holds the modality. */
|
|
534
|
+
declare const MODALITY_ATTRIBUTE = "data-hub-input";
|
|
535
|
+
/** Where the modality is stored: `<html>`, or a fake in tests. */
|
|
536
|
+
interface ModalityRoot {
|
|
537
|
+
getAttribute(name: string): string | null;
|
|
538
|
+
setAttribute(name: string, value: string): void;
|
|
539
|
+
}
|
|
540
|
+
/** Reads and writes the page's modality attribute. */
|
|
541
|
+
declare class ModalityTracker {
|
|
542
|
+
private readonly root;
|
|
543
|
+
/** Start at `initial` unless another copy already set the attribute. */
|
|
544
|
+
constructor(root: ModalityRoot, initial: InputModality);
|
|
545
|
+
/** The last modality used. */
|
|
546
|
+
get current(): InputModality;
|
|
547
|
+
/** Whether focus should show: the last input was a keyboard or gamepad. */
|
|
548
|
+
get showsFocus(): boolean;
|
|
549
|
+
/** Record the modality the player just used. */
|
|
550
|
+
set(modality: InputModality): void;
|
|
551
|
+
/** A key went down (`isTyping`: in a text field). */
|
|
552
|
+
noteKey(key: string, isTyping: boolean): void;
|
|
553
|
+
/** A pointer went down. */
|
|
554
|
+
notePointer(pointerType: string): void;
|
|
555
|
+
private readAttribute;
|
|
556
|
+
}
|
|
557
|
+
/** Track the page's modality (once per bundle) and add the focus styles (once per page). */
|
|
558
|
+
declare function trackInputModality(): ModalityTracker;
|
|
504
559
|
//#endregion
|
|
505
560
|
//#region src/overlay/layout-geometry.d.ts
|
|
506
561
|
/** A placed control: top-left corner and size, in viewport px. */
|
|
@@ -587,12 +642,17 @@ declare class Overlay implements NavHighlighter {
|
|
|
587
642
|
setControlHtml(id: string, html: string): void;
|
|
588
643
|
/** Show controls of the enabled groups (or of every group, with `null`, while editing). */
|
|
589
644
|
setVirtualVisible(isVisible: boolean, enabledGroups: ReadonlySet<string> | null): void;
|
|
590
|
-
/**
|
|
645
|
+
/**
|
|
646
|
+
* Game insets (px) auto-placed controls keep clear of, e.g. a top HUD bar.
|
|
647
|
+
* Merged with earlier calls. Also published on the page as
|
|
648
|
+
* `--hub-inset-top` (and right, bottom, left), so the hub's toasts sit
|
|
649
|
+
* below a top HUD too.
|
|
650
|
+
*/
|
|
591
651
|
setInsets(insets: Partial<Insets>): void;
|
|
592
652
|
/** Re-place every control for the current viewport, keeping the player's dragged spots. */
|
|
593
653
|
layout(): void;
|
|
594
|
-
/** Ring the highlighted element. */
|
|
595
|
-
showHighlight(bounds: Rect): void;
|
|
654
|
+
/** Ring the highlighted element, for keyboard and gamepad players only (never after a tap or click). */
|
|
655
|
+
showHighlight(bounds: Rect, radius: string): void;
|
|
596
656
|
/** Remove the ring. */
|
|
597
657
|
hideHighlight(): void;
|
|
598
658
|
/** Open the on-screen keyboard for a text field. */
|
|
@@ -726,5 +786,5 @@ declare function getUiStack(): UiStack;
|
|
|
726
786
|
/** Bump when the UiStack contract gains behaviour; idle older instances are replaced. */
|
|
727
787
|
declare const UI_STACK_VERSION = 1;
|
|
728
788
|
//#endregion
|
|
729
|
-
export {
|
|
789
|
+
export { NavTarget as $, PageInputControl as A, InputConfig as B, INPUT_SINGLETON_API as C, parseInputOverrides as D, isInputSystem as E, AxisSide as F, InputReading as G, InputEvents as H, DraggedSpot as I, MouseMapping as J, InputSource as K, EdgeOffsets as L, AutoNavigateTarget as M, Anchor as N, InputSystem as O, AxisDef as P, NavFocusEvent as Q, GamepadMapping as R, FOCUS_RING_SHADOW as S, getInput as T, InputHost as U, InputDef as V, InputOverrides as W, NavElement as X, NavBlurEvent as Y, NavElementKind as Z, boxesTouch as _, OverlayEdge as a, VirtualDef as at, MODALITY_ATTRIBUTE as b, OverlayReason as c, LayoutOptions as d, NavigableDef as et, layoutControls as f, LayoutItem as g, LayoutBox as h, AutoPauseOptions as i, VirtualControlType as it, isPageInputControl as j, InputSystemOptions as k, UiStack as l, Insets as m, getUiStack as n, TouchMapping as nt, OverlayEvent as o, VirtualInputs as ot, Overlay as p, MenuBridge as q, isUiStack as r, Vector as rt, OverlayListener as s, VirtualOverride as st, UI_STACK_VERSION as t, Rect as tt, UiStackHandoff as u, controlSize as v, InputOptions as w, trackInputModality as x, InputModality as y, GroupDef as z };
|
|
730
790
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","names":[],"sources":["../../src/input/types.ts","../../src/overlay/controls-panel.ts","../../src/input/page-control.ts","../../src/input/input-system.ts","../../src/input/page-input.ts","../../src/input/
|
|
1
|
+
{"version":3,"file":"input.d.ts","names":[],"sources":["../../src/input/types.ts","../../src/overlay/controls-panel.ts","../../src/input/nav-state.ts","../../src/input/navigator.ts","../../src/input/page-control.ts","../../src/input/input-system.ts","../../src/input/page-input.ts","../../src/input/focus-ring.ts","../../src/input/modality.ts","../../src/overlay/layout-geometry.ts","../../src/overlay/virtual-controls.ts","../../src/overlay/overlay.ts","../../src/overlay/layout.ts","../../src/uistack/types.ts","../../src/uistack/page-stack.ts","../../src/uistack/ui-stack.ts"],"mappings":";;;;;;;KAOY;;KAGA;;UAGK;;EAEf;;EAEA;;EAEA;;EAEA,aAAa;;EAEb;;EAEA,WAAW;;EAEX;;EAEA,QAAQ;;;UAIO;;EAEf;;EAEA,gBAAgB;;;UAID;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,aAAa;;;UAIE;;EAEf;;EAEA,QAAQ;;EAER,UAAU;;EAEV,QAAQ;;;;;;UAOO;;EAEf;;EAEA;;;KAIU;;KAMA;;UAGK;;EAEf;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA,MAAM;;EAEN,OAAO;;;;;EAKP,MAAM;;;;;;EAMN;IAAW;IAAY;;;EAEvB;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,SAAS;;;UAIM;;EAEf;;EAEA;;EAEA;;EAEA;;;KAIU;;UAGK;;EAEf;;EAEA,OAAO;;EAEP,KAAK;;EAEL,kBAAkB;;EAElB;;EAEA;;EAEA;;;KAIU,YAAY,cAAc;;UAGrB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,gBAAgB;;EAEhB;;;UAIe;;EAEf,QAAQ,eAAe;;EAEvB,OAAO,eAAe;;EAEtB,UAAU;;EAEV,YAAY;;EAEZ;;;UAIe;;EAEf,QAAQ,eAAe;;;UAIR;;EAEf;;EAEA;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA;;EAEA;;;UAIe;;EAEf;;EAEA;;;KAIU,kBAAkB,QAAQ,cAAc;;UAGnC;;EAEf,WAAW,eAAe,QAAQ;;EAElC,UAAU,eAAe;;EAEzB;;;UAIe;;EAEf;;EAEA;;EAEA;;EAEA,MAAM;;;UAIS;;EAEf;;EAEA,KAAK;;EAEL,OAAO;;EAEP;;;UAIe;;EAEf;;EAEA;;;UAIe;;EAEf,OAAO;;EAEP,MAAM;;EAEN,KAAK;;EAEL,cAAc;;EAEd,UAAU;;;UAIK;;WAEN;;EAET,iBAAiB;;EAEjB,cAAc,WAAW;;;;;UChUV;;WAEN;;EAET,YAAY;;EAEZ,kBAAkB;;EAElB,OAAO,mBAAmB,OAAO,QAAQ;;EAEzC;;EAEA,aAAa;;;;;UCXE;;EAEf,cAAc,QAAQ,MAAM;;EAE5B;;EAEA,aAAa,QAAQ,mBAAmB;;;;;UC2BzB;WACN,aAAa;WACb;;;;;UClCM;;WAEN;;EAET,WAAW,QAAQ;;EAGnB,kBAAkB;;EAElB;;EAEA,UAAU;;EAEV,OAAO;;EAEP,QAAQ;;EAER,aAAa,0BAA0B,cAAc;IAAY;;;EAEjE;;EAEA,aAAa,OAAO;;;iBAQN,mBAAmB,qBAAqB,aAAa;;;;UCVpD;;EAEf;;EAEA,aAAa,QAAQ,gBAAgB;;;cAO1B,uBAAuB,mBAAmB;mBACpC;mBACA;UACT;mBACS;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;UACT;UACA;UAEA;UACA;UACA;UACA;mBACS;EAEL,YAAA,MAAM,WAAW,UAAS;;MAwBlC;;EAKJ,OAAO,QAAQ;;MAmBX;;EAKJ,OAAO;;EAOP,QAAQ;;EAOR,UAAU;;EAKV,MAAM;;EAKN,IAAI,eAAe;;EAKnB,KAAK;;EAKL,GAAG;;EAKH,QAAQ;;EAKR,KAAK,cAAc;;EAKnB,OAAO,eAAe;;MAKlB,UAAU;;EAKd,GAAG,mBAAmB,aAAa,OAAO,MAAM,WAAW,SAAS,YAAY;;EAKhF,eAAe,YAAY;;EAK3B,YAAY;;EAOZ;;EAKA,kBAAkB;;EAKlB,kBAAkB;;;;;;;EAUlB,UAAU;IAAU;IAAc;IAAgB;IAAiB;;;MAK/D;;EAKJ,OAAO,mBAAmB,OAAO,QAAQ;;EASzC,WAAW,YAAY,OAAO;;EAM9B;;EASA;;EASA,aAAa;;EAKb,WAAW,QAAQ;;EAUnB,kBAAkB;;;;;;;EAelB,aAAa,0BAA0B,cAAc;IAAY;;;;;;;EASjE,sBAAsB;;EAKtB;;;;;EAQA,YAAY,OAAO;UAQX;UAeA;UASA;UAsBA;;UAqBA;;;;;cC7WG;;iBAWG,cAAc,qBAAqB,aAAa;;UAK/C;;EAEf;;EAEA,eAAe,WAAW;;;iBAkDZ,oBAAoB,iBAAiB;;;;;;;;iBA6FrC,SAAS,UAAS,eAAoB;;;;;;;;;;;cCvKzC;;;;KCFD;;cAGC;;UA4BI;EACf,aAAa;EACb,aAAa,cAAc;;;cAIhB;mBACM;;EAGL,YAAA,MAAM,cAAc,SAAS;;MAQrC,WAAW;;MAKX;;EAKJ,IAAI,UAAU;;EAOd,QAAQ,aAAa;;EAQrB,YAAY;UAIJ;;;iBASM,sBAAsB;;;;UC1FrB;EACf;EACA;EACA;EACA;;;UAIe;;EAEf;;EAEA,MAAM;;EAEN,OAAO;;EAEP;;EAEA;;EAEA,MAAM;;EAEN,SAAS;;EAET;IAAa;IAAW;;;;UAIT;EACf;EACA;EACA;EACA;;;iBAiCc,YAAY,YAAY,KAAK;EAAsD;EAAW;;;iBAe9F,WAAW,OAAO,WAAW,QAAQ,WAAW;;;;UC3E/C;;EAEf,aAAa;;EAEb,WAAW;;EAEX,QAAQ,YAAY,cAAc;;EAElC;;EAEA,UAAU,YAAY;IAAQ;IAAW;;;;;;cCoB9B,mBAAmB;mBACb;mBACA;mBACA;mBACA;mBACA;mBACA;UACT;UACA;UACA;UACA;UACA;UACA;;;EAoCR,MAAM,QAAQ,aAAa,WAAW,gBAAgB,WAAW;;EAoBjE,eAAe,YAAY;;EAQ3B,kBAAkB,oBAAoB,eAAe;;;;;;;EAarD,UAAU,QAAQ,QAAQ;;EAO1B;;EAgCA,cAAc,QAAQ,MAAM;;EAU5B;;EAKA,aAAa,QAAQ,mBAAmB;;MAKpC;;EAKJ,eAAe,QAAQ,oBAAoB,MAAM;;EAKjD;;UAKQ;;;;;UC/LO;;EAEf,SAAS,QAAQ;;EAEjB,OAAO,QAAQ;;EAEf;;EAEA;;;;;;;;;;;;;;;iBAqDc,eAAe,gBAAgB,cAAc,uBAAuB,wBAAwB,UAAS,gBAAqB,eAAe;;;;;;;;KCrE7I;;KAGA;;UAGK;;EAEf,QAAQ;;;;;EAKR;;;UAIe;;EAEf;;EAEA;;;;;;EAMA;;;KAIU,mBAAmB,OAAO;;UAGrB;;EAEf;IAAa,MAAM;IAAmB,OAAO;;;EAE7C;;;;;;;;UASe;;WAEN;;EAET,KAAK,QAAQ;;WAEJ;;WAEA;;WAEA;;EAET,GAAG,MAAM,aAAa,UAAU;;;;;EAKhC,UAAU,SAAS;;EAEnB,YAAY;;EAEZ,WAAW;;;;QC9DL;YACI;IAER;;;;iBAMY,UAAU,qBAAqB,aAAa;;;;;iBAU5C,cAAc;;;;cCrBjB"}
|
package/dist/shared/input.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as readField, i as isObject, n as claimSingleton, r as hasMethods, t as LEGACY_GLOBAL_NAMES } from "./globals.js";
|
|
2
|
+
import { t as _defineProperty } from "./defineProperty.js";
|
|
2
3
|
import { t as HUB_CLIENT_VERSION } from "./client-version.gen.js";
|
|
3
4
|
import { a as requireElement, i as placeAt, n as findElements, r as pageBody, t as escapeHtml } from "./dom.js";
|
|
4
5
|
//#region src/input/gamepad.ts
|
|
@@ -455,11 +456,16 @@ var InputRegistry = class {
|
|
|
455
456
|
isUp: this.wentUp(name)
|
|
456
457
|
};
|
|
457
458
|
}
|
|
458
|
-
/**
|
|
459
|
+
/**
|
|
460
|
+
* A named axis (or an ad-hoc negative/positive pair) as -1..1: its `x`, or
|
|
461
|
+
* its `y` when it declares only `y` (a vertical one-axis control, like a
|
|
462
|
+
* paddle).
|
|
463
|
+
*/
|
|
459
464
|
axis(name, positive) {
|
|
460
465
|
if (positive !== void 0) return clampUnit(this.value(positive)) - clampUnit(this.value(name));
|
|
461
466
|
const axis = this.axes.get(name);
|
|
462
|
-
|
|
467
|
+
if (axis === void 0) return this.value(name);
|
|
468
|
+
return readAxisSide(axis.x ?? axis.y, (input) => this.value(input));
|
|
463
469
|
}
|
|
464
470
|
/** A named axis pair as a vector clamped to the unit circle. */
|
|
465
471
|
vector(name) {
|
|
@@ -488,6 +494,116 @@ var InputRegistry = class {
|
|
|
488
494
|
}
|
|
489
495
|
};
|
|
490
496
|
//#endregion
|
|
497
|
+
//#region src/input/focus-ring.ts
|
|
498
|
+
/**
|
|
499
|
+
* The hub's focus ring: a two-tone box-shadow (a dark gap, then a light ring)
|
|
500
|
+
* that follows the element's own border-radius and shows on light and dark
|
|
501
|
+
* buttons alike. Pages tune it with CSS variables:
|
|
502
|
+
* `--hub-focus-color` (the ring), `--hub-focus-inner` (the gap),
|
|
503
|
+
* `--hub-focus-width` and `--hub-focus-gap`.
|
|
504
|
+
*/
|
|
505
|
+
const GAP = "var(--hub-focus-gap, 2px)";
|
|
506
|
+
/** The ring as a `box-shadow` value. */
|
|
507
|
+
const FOCUS_RING_SHADOW = `0 0 0 ${GAP} var(--hub-focus-inner, rgba(13, 15, 20, 0.85)), 0 0 0 calc(${GAP} + var(--hub-focus-width, 3px)) var(--hub-focus-color, #fff)`;
|
|
508
|
+
//#endregion
|
|
509
|
+
//#region src/input/modality.ts
|
|
510
|
+
/**
|
|
511
|
+
* Which kind of input the player used last, published as `data-hub-input` on
|
|
512
|
+
* `<html>` so focus styles show only to keyboard and gamepad players: a tap or
|
|
513
|
+
* click never leaves a ring behind, and touch devices show none at all. The
|
|
514
|
+
* attribute is the shared state, so every bundle's copy of the client agrees.
|
|
515
|
+
*/
|
|
516
|
+
/** The `<html>` attribute that holds the modality. */
|
|
517
|
+
const MODALITY_ATTRIBUTE = "data-hub-input";
|
|
518
|
+
const STYLE_ID = "hub-focus-style";
|
|
519
|
+
const MODIFIER_KEYS = /* @__PURE__ */ new Set([
|
|
520
|
+
"Shift",
|
|
521
|
+
"Control",
|
|
522
|
+
"Alt",
|
|
523
|
+
"Meta",
|
|
524
|
+
"AltGraph",
|
|
525
|
+
"CapsLock"
|
|
526
|
+
]);
|
|
527
|
+
const MODALITIES = [
|
|
528
|
+
"keys",
|
|
529
|
+
"pointer",
|
|
530
|
+
"touch"
|
|
531
|
+
];
|
|
532
|
+
/**
|
|
533
|
+
* The page focus styles: the gamepad highlight (`gp-focus`) for keyboard and
|
|
534
|
+
* gamepad players only, and no browser focus ring on buttons after a tap.
|
|
535
|
+
*/
|
|
536
|
+
const PAGE_FOCUS_CSS = `html[${MODALITY_ATTRIBUTE}="keys"] .gp-focus{outline:none !important;box-shadow:${FOCUS_RING_SHADOW} !important;}
|
|
537
|
+
html[${MODALITY_ATTRIBUTE}="touch"] :is(button,a,summary,[role="button"],[tabindex]):focus{outline:none;}`;
|
|
538
|
+
/** The modality a pointer event's `pointerType` implies. */
|
|
539
|
+
function modalityOfPointer(pointerType) {
|
|
540
|
+
return pointerType === "touch" ? "touch" : "pointer";
|
|
541
|
+
}
|
|
542
|
+
/** The modality a key press implies, or `null` when it says nothing (a lone modifier, typing in a field). */
|
|
543
|
+
function modalityOfKey(key, isTyping) {
|
|
544
|
+
if (MODIFIER_KEYS.has(key)) return null;
|
|
545
|
+
return isTyping && key !== "Tab" ? null : "keys";
|
|
546
|
+
}
|
|
547
|
+
/** Reads and writes the page's modality attribute. */
|
|
548
|
+
var ModalityTracker = class {
|
|
549
|
+
/** Start at `initial` unless another copy already set the attribute. */
|
|
550
|
+
constructor(root, initial) {
|
|
551
|
+
_defineProperty(this, "root", void 0);
|
|
552
|
+
this.root = root;
|
|
553
|
+
if (this.readAttribute() === null) this.set(initial);
|
|
554
|
+
}
|
|
555
|
+
/** The last modality used. */
|
|
556
|
+
get current() {
|
|
557
|
+
return this.readAttribute() ?? "pointer";
|
|
558
|
+
}
|
|
559
|
+
/** Whether focus should show: the last input was a keyboard or gamepad. */
|
|
560
|
+
get showsFocus() {
|
|
561
|
+
return this.current === "keys";
|
|
562
|
+
}
|
|
563
|
+
/** Record the modality the player just used. */
|
|
564
|
+
set(modality) {
|
|
565
|
+
if (this.readAttribute() !== modality) this.root.setAttribute(MODALITY_ATTRIBUTE, modality);
|
|
566
|
+
}
|
|
567
|
+
/** A key went down (`isTyping`: in a text field). */
|
|
568
|
+
noteKey(key, isTyping) {
|
|
569
|
+
const modality = modalityOfKey(key, isTyping);
|
|
570
|
+
if (modality !== null) this.set(modality);
|
|
571
|
+
}
|
|
572
|
+
/** A pointer went down. */
|
|
573
|
+
notePointer(pointerType) {
|
|
574
|
+
this.set(modalityOfPointer(pointerType));
|
|
575
|
+
}
|
|
576
|
+
readAttribute() {
|
|
577
|
+
const value = this.root.getAttribute(MODALITY_ATTRIBUTE);
|
|
578
|
+
return MODALITIES.find((modality) => modality === value) ?? null;
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
let pageTracker = null;
|
|
582
|
+
/** Track the page's modality (once per bundle) and add the focus styles (once per page). */
|
|
583
|
+
function trackInputModality() {
|
|
584
|
+
if (pageTracker !== null) return pageTracker;
|
|
585
|
+
const root = document.documentElement;
|
|
586
|
+
const isTouchDevice = typeof matchMedia === "function" && matchMedia("(hover: none) and (pointer: coarse)").matches;
|
|
587
|
+
const isFirstCopy = root.getAttribute(MODALITY_ATTRIBUTE) === null;
|
|
588
|
+
const tracker = new ModalityTracker(root, isTouchDevice ? "touch" : "pointer");
|
|
589
|
+
pageTracker = tracker;
|
|
590
|
+
if (isFirstCopy) {
|
|
591
|
+
document.addEventListener("keydown", (event) => {
|
|
592
|
+
tracker.noteKey(event.key, isTypingTarget(event.target));
|
|
593
|
+
}, true);
|
|
594
|
+
document.addEventListener("pointerdown", (event) => {
|
|
595
|
+
tracker.notePointer(event.pointerType);
|
|
596
|
+
}, true);
|
|
597
|
+
}
|
|
598
|
+
if (document.getElementById(STYLE_ID) === null) {
|
|
599
|
+
const style = document.createElement("style");
|
|
600
|
+
style.id = STYLE_ID;
|
|
601
|
+
style.textContent = PAGE_FOCUS_CSS;
|
|
602
|
+
document.head.appendChild(style);
|
|
603
|
+
}
|
|
604
|
+
return tracker;
|
|
605
|
+
}
|
|
606
|
+
//#endregion
|
|
491
607
|
//#region src/input/legacy-controls.ts
|
|
492
608
|
/**
|
|
493
609
|
* `game.controls` (`window.__HUB__.controls`): the gamepad-to-keyboard map a
|
|
@@ -602,6 +718,10 @@ function boundsOf(element) {
|
|
|
602
718
|
height: 0
|
|
603
719
|
} : rectOf(element.el);
|
|
604
720
|
}
|
|
721
|
+
/** A navigable element's CSS corner radius, so the ring can follow it (empty for a non-DOM element). */
|
|
722
|
+
function radiusOf(element) {
|
|
723
|
+
return element.el === void 0 ? "" : getComputedStyle(element.el).borderRadius;
|
|
724
|
+
}
|
|
605
725
|
/** The text field a navigable element edits, if it is one. */
|
|
606
726
|
function textFieldOf(element) {
|
|
607
727
|
return element.el instanceof HTMLInputElement || element.el instanceof HTMLTextAreaElement ? element.el : null;
|
|
@@ -682,12 +802,14 @@ var NavState = class {
|
|
|
682
802
|
this.elements = this.resolve();
|
|
683
803
|
this.position(highlighter);
|
|
684
804
|
}
|
|
685
|
-
/** Move the ring to the highlighted element (or hide it). */
|
|
805
|
+
/** Move the ring to the highlighted element (or hide it), following keyboard focus (Tab) within the list. */
|
|
686
806
|
position(highlighter) {
|
|
687
807
|
if (highlighter === null) return;
|
|
808
|
+
const focused = this.elements.findIndex((element) => element.el !== void 0 && element.el === document.activeElement);
|
|
809
|
+
if (focused >= 0) this.index = focused;
|
|
688
810
|
const current = this.elements[this.index];
|
|
689
811
|
if (current === void 0) highlighter.hideHighlight();
|
|
690
|
-
else highlighter.showHighlight(boundsOf(current));
|
|
812
|
+
else highlighter.showHighlight(boundsOf(current), radiusOf(current));
|
|
691
813
|
}
|
|
692
814
|
resolve() {
|
|
693
815
|
return this.queryElements().map((target) => target instanceof HTMLElement ? {
|
|
@@ -774,6 +896,13 @@ var Navigator = class {
|
|
|
774
896
|
this.autoNavigateBack = back;
|
|
775
897
|
this.autoNavigateState = null;
|
|
776
898
|
}
|
|
899
|
+
/** The current auto-navigate target and back action, or `null` when none is set. */
|
|
900
|
+
autoNavigateTarget() {
|
|
901
|
+
return this.autoNavigateQuery === null ? null : {
|
|
902
|
+
query: this.autoNavigateQuery,
|
|
903
|
+
back: this.autoNavigateBack
|
|
904
|
+
};
|
|
905
|
+
}
|
|
777
906
|
/** Make a CSS selector's visible matches the auto-navigate targets. */
|
|
778
907
|
static queryFor(selector) {
|
|
779
908
|
return typeof selector === "string" ? () => visibleMatches(selector) : selector;
|
|
@@ -1535,8 +1664,8 @@ const OVERLAY_CSS = `
|
|
|
1535
1664
|
:host(.editing) .edit-bar .btn { margin: 0; }
|
|
1536
1665
|
.safe-probe { position: fixed; left: 0; top: 0; width: 0; height: 0; visibility: hidden; pointer-events: none;
|
|
1537
1666
|
padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); }
|
|
1538
|
-
.ring { position: fixed; pointer-events: none; z-index: 2147483200;
|
|
1539
|
-
|
|
1667
|
+
.ring { position: fixed; pointer-events: none; z-index: 2147483200; box-shadow: ${FOCUS_RING_SHADOW};
|
|
1668
|
+
transition: left .08s, top .08s, width .08s, height .08s; }
|
|
1540
1669
|
.ring[hidden] { display: none; }
|
|
1541
1670
|
.kb { position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147483400; background: #0d0f14ee; padding: 10px;
|
|
1542
1671
|
pointer-events: auto; border-top: 1px solid #2a3142; }
|
|
@@ -1545,7 +1674,7 @@ const OVERLAY_CSS = `
|
|
|
1545
1674
|
.kb .k { flex: 1; min-width: 0; max-width: 64px; height: 46px; border-radius: 8px; border: 1px solid #2a3142;
|
|
1546
1675
|
background: #11141c; color: #e8e6df; font: 16px monospace; cursor: pointer; }
|
|
1547
1676
|
.kb .k.space { max-width: 280px; } .kb .k.wide { max-width: 90px; }
|
|
1548
|
-
.kb .k.kfocus {
|
|
1677
|
+
.kb .k.kfocus { box-shadow: ${FOCUS_RING_SHADOW}; }
|
|
1549
1678
|
.panel { position: fixed; inset: 0; z-index: 2147483500; display: grid; place-items: center; background: rgba(0,0,0,.6); pointer-events: auto;
|
|
1550
1679
|
font-family: 'Space Mono', ui-monospace, monospace; }
|
|
1551
1680
|
.panel-card { background: #0d0f14; color: #e8e6df; border: 1px solid #2a3142; border-radius: 12px; padding: 18px;
|
|
@@ -1852,12 +1981,18 @@ var Overlay = class {
|
|
|
1852
1981
|
control.element.style.display = isShown ? "" : "none";
|
|
1853
1982
|
}
|
|
1854
1983
|
}
|
|
1855
|
-
/**
|
|
1984
|
+
/**
|
|
1985
|
+
* Game insets (px) auto-placed controls keep clear of, e.g. a top HUD bar.
|
|
1986
|
+
* Merged with earlier calls. Also published on the page as
|
|
1987
|
+
* `--hub-inset-top` (and right, bottom, left), so the hub's toasts sit
|
|
1988
|
+
* below a top HUD too.
|
|
1989
|
+
*/
|
|
1856
1990
|
setInsets(insets) {
|
|
1857
1991
|
this.gameInsets = {
|
|
1858
1992
|
...this.gameInsets,
|
|
1859
1993
|
...insets
|
|
1860
1994
|
};
|
|
1995
|
+
publishInsets(this.gameInsets);
|
|
1861
1996
|
this.layout();
|
|
1862
1997
|
}
|
|
1863
1998
|
/** Re-place every control for the current viewport, keeping the player's dragged spots. */
|
|
@@ -1892,9 +2027,10 @@ var Overlay = class {
|
|
|
1892
2027
|
if (box !== void 0) placeAt(control.element, box.x, box.y);
|
|
1893
2028
|
}
|
|
1894
2029
|
}
|
|
1895
|
-
/** Ring the highlighted element. */
|
|
1896
|
-
showHighlight(bounds) {
|
|
1897
|
-
this.ring.hidden =
|
|
2030
|
+
/** Ring the highlighted element, for keyboard and gamepad players only (never after a tap or click). */
|
|
2031
|
+
showHighlight(bounds, radius) {
|
|
2032
|
+
this.ring.hidden = !trackInputModality().showsFocus;
|
|
2033
|
+
this.ring.style.borderRadius = radius;
|
|
1898
2034
|
this.ring.style.left = `${String(bounds.x)}px`;
|
|
1899
2035
|
this.ring.style.top = `${String(bounds.y)}px`;
|
|
1900
2036
|
this.ring.style.width = `${String(bounds.width)}px`;
|
|
@@ -1937,6 +2073,22 @@ var Overlay = class {
|
|
|
1937
2073
|
};
|
|
1938
2074
|
}
|
|
1939
2075
|
};
|
|
2076
|
+
/** Every inset side. */
|
|
2077
|
+
const INSET_SIDES = [
|
|
2078
|
+
"top",
|
|
2079
|
+
"right",
|
|
2080
|
+
"bottom",
|
|
2081
|
+
"left"
|
|
2082
|
+
];
|
|
2083
|
+
/** The page-wide CSS variables other hub UI (the runtime's toasts) keeps clear of. */
|
|
2084
|
+
function publishInsets(insets) {
|
|
2085
|
+
if (typeof document === "undefined") return;
|
|
2086
|
+
for (const side of INSET_SIDES) {
|
|
2087
|
+
const px = insets[side];
|
|
2088
|
+
if (px === void 0) document.documentElement.style.removeProperty(`--hub-inset-${side}`);
|
|
2089
|
+
else document.documentElement.style.setProperty(`--hub-inset-${side}`, `${String(Math.max(0, Math.round(px)))}px`);
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
1940
2092
|
//#endregion
|
|
1941
2093
|
//#region src/input/on-screen-controls.ts
|
|
1942
2094
|
/**
|
|
@@ -2099,9 +2251,8 @@ var PlayerRemaps = class {
|
|
|
2099
2251
|
//#region src/input/zero-config.ts
|
|
2100
2252
|
/** Synthetic keys stay pressed past half deflection. */
|
|
2101
2253
|
const SYNTH_DEADZONE = .5;
|
|
2254
|
+
/** The catalog tile highlight; its style (keyboard and gamepad players only) is in `modality.ts`. */
|
|
2102
2255
|
const FOCUS_CLASS = "gp-focus";
|
|
2103
|
-
const FOCUS_STYLE_ID = "gp-focus-style";
|
|
2104
|
-
const FOCUS_CSS = ".gp-focus{outline:3px solid #ff5f3b !important;outline-offset:2px;border-radius:4px;}";
|
|
2105
2256
|
/** `KeyboardEvent.code` → its `key` and legacy `keyCode`. */
|
|
2106
2257
|
const KEY_FOR_CODE = /* @__PURE__ */ new Map([
|
|
2107
2258
|
["ArrowUp", ["ArrowUp", 38]],
|
|
@@ -2137,14 +2288,6 @@ function dispatchKey(type, code) {
|
|
|
2137
2288
|
Object.defineProperty(event, "which", { get: () => keyCode });
|
|
2138
2289
|
target.dispatchEvent(event);
|
|
2139
2290
|
}
|
|
2140
|
-
/** Add the highlight style to the page once. */
|
|
2141
|
-
function ensureFocusStyle() {
|
|
2142
|
-
if (document.getElementById(FOCUS_STYLE_ID) !== null) return;
|
|
2143
|
-
const style = document.createElement("style");
|
|
2144
|
-
style.id = FOCUS_STYLE_ID;
|
|
2145
|
-
style.textContent = FOCUS_CSS;
|
|
2146
|
-
document.head.appendChild(style);
|
|
2147
|
-
}
|
|
2148
2291
|
/** The keys each pad holds down, by pad index. */
|
|
2149
2292
|
const heldCodes = /* @__PURE__ */ new Map();
|
|
2150
2293
|
function releaseAllKeys() {
|
|
@@ -2233,7 +2376,6 @@ function navigateCatalog(frame) {
|
|
|
2233
2376
|
/** One frame of the zero-config fallback. */
|
|
2234
2377
|
function runZeroConfigFrame(frame) {
|
|
2235
2378
|
if (frame.gamepads.length === 0) return;
|
|
2236
|
-
ensureFocusStyle();
|
|
2237
2379
|
if (frame.slug === null) navigateCatalog(frame);
|
|
2238
2380
|
else synthesizeKeys(frame);
|
|
2239
2381
|
}
|
|
@@ -2261,6 +2403,7 @@ var InputSystem = class {
|
|
|
2261
2403
|
_defineProperty(this, "activeSource", "keyboard");
|
|
2262
2404
|
_defineProperty(this, "isPageOwner", void 0);
|
|
2263
2405
|
_defineProperty(this, "pageOwner", null);
|
|
2406
|
+
_defineProperty(this, "modality", typeof document === "undefined" ? null : trackInputModality());
|
|
2264
2407
|
this.host = host;
|
|
2265
2408
|
this.options = options;
|
|
2266
2409
|
this.isPageOwner = options.isPageOwner ?? true;
|
|
@@ -2437,6 +2580,14 @@ var InputSystem = class {
|
|
|
2437
2580
|
autoNavigate(selector, options) {
|
|
2438
2581
|
this.navigator.setAutoNavigate(Navigator.queryFor(selector), options?.back ?? null);
|
|
2439
2582
|
}
|
|
2583
|
+
/**
|
|
2584
|
+
* The game's current `autoNavigate` target (its query and back action), or
|
|
2585
|
+
* `null`. Hub UI that takes the gamepad for a while (a dialog) reads it,
|
|
2586
|
+
* and gives it back with `autoNavigate(target.query, { back })` when done.
|
|
2587
|
+
*/
|
|
2588
|
+
autoNavigateTarget() {
|
|
2589
|
+
return this.navigator.autoNavigateTarget();
|
|
2590
|
+
}
|
|
2440
2591
|
/** Stop navigating the game's own menu. */
|
|
2441
2592
|
clearAutoNavigate() {
|
|
2442
2593
|
this.navigator.clearAutoNavigate(this.controls.existingOverlay);
|
|
@@ -2495,7 +2646,10 @@ var InputSystem = class {
|
|
|
2495
2646
|
this.devices.frame += 1;
|
|
2496
2647
|
const { isConnected, hasActivity } = this.devices.pollGamepads();
|
|
2497
2648
|
this.controls.isGamepadConnected = isConnected;
|
|
2498
|
-
if (hasActivity)
|
|
2649
|
+
if (hasActivity) {
|
|
2650
|
+
this.setSource("gamepad");
|
|
2651
|
+
this.modality?.set("keys");
|
|
2652
|
+
}
|
|
2499
2653
|
if (this.isPageOwner) this.driveFrame();
|
|
2500
2654
|
else this.registry.sample(this.devices, this.activeSource);
|
|
2501
2655
|
this.devices.decay();
|
|
@@ -2713,6 +2867,6 @@ function getInput(options = {}) {
|
|
|
2713
2867
|
return claimedInput;
|
|
2714
2868
|
}
|
|
2715
2869
|
//#endregion
|
|
2716
|
-
export { isPageInputControl as a, layoutControls as c, parseInputOverrides as i, boxesTouch as l, getInput as n, InputSystem as o, isInputSystem as r, Overlay as s, INPUT_SINGLETON_API as t, controlSize as u };
|
|
2870
|
+
export { isPageInputControl as a, layoutControls as c, MODALITY_ATTRIBUTE as d, trackInputModality as f, parseInputOverrides as i, boxesTouch as l, getInput as n, InputSystem as o, FOCUS_RING_SHADOW as p, isInputSystem as r, Overlay as s, INPUT_SINGLETON_API as t, controlSize as u };
|
|
2717
2871
|
|
|
2718
2872
|
//# sourceMappingURL=input.js.map
|