@the-inclusionist/engine 9.0.0 → 11.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 +120 -78
- package/app/css/style.css +761 -377
- package/app/public/vendor/fonts/playwrite-cu.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es-deco.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-j.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-s.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pe.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pt.woff2 +0 -0
- package/app/public/vendor/fonts-licences/NOTICE.txt +166 -0
- package/app/public/vendor/fonts-licences/OFL-1.1.txt +86 -0
- package/app/public/vendor/fonts.css +36 -84
- package/dist-pkg/boot/create-game.d.ts +499 -219
- package/dist-pkg/boot/create-game.js +3944 -562
- package/dist-pkg/core/a11y-sr.d.ts +25 -3
- package/dist-pkg/core/a11y-sr.js +38 -19
- package/dist-pkg/core/accessible-label.d.ts +17 -0
- package/dist-pkg/core/accessible-label.js +37 -0
- package/dist-pkg/core/accommodation-subjects.d.ts +26 -0
- package/dist-pkg/core/accommodation-subjects.js +32 -0
- package/dist-pkg/core/accommodations.d.ts +125 -0
- package/dist-pkg/core/accommodations.js +195 -0
- package/dist-pkg/core/actions.d.ts +108 -55
- package/dist-pkg/core/actions.js +122 -71
- package/dist-pkg/core/calm-mode.d.ts +31 -0
- package/dist-pkg/core/calm-mode.js +47 -0
- package/dist-pkg/core/camera-cycle.d.ts +15 -0
- package/dist-pkg/core/camera-cycle.js +7 -0
- package/dist-pkg/core/caption-duration.d.ts +15 -0
- package/dist-pkg/core/caption-duration.js +19 -0
- package/dist-pkg/core/cartridge-problems.d.ts +34 -0
- package/dist-pkg/core/cartridge-problems.js +53 -0
- package/dist-pkg/core/constants.d.ts +0 -54
- package/dist-pkg/core/constants.js +9 -76
- package/dist-pkg/core/contract.d.ts +142 -164
- package/dist-pkg/core/contract.js +222 -208
- package/dist-pkg/core/dom-query.d.ts +4 -4
- package/dist-pkg/core/dom-query.js +12 -20
- package/dist-pkg/core/entity.d.ts +62 -77
- package/dist-pkg/core/entity.js +18 -32
- package/dist-pkg/core/escape-html.d.ts +9 -10
- package/dist-pkg/core/escape-html.js +16 -20
- package/dist-pkg/core/flash-threshold.d.ts +17 -0
- package/dist-pkg/core/flash-threshold.js +113 -0
- package/dist-pkg/core/game-speed.d.ts +11 -0
- package/dist-pkg/core/game-speed.js +16 -0
- package/dist-pkg/core/genres.d.ts +20 -0
- package/dist-pkg/core/genres.js +44 -0
- package/dist-pkg/core/i18n.d.ts +71 -60
- package/dist-pkg/core/i18n.js +186 -200
- package/dist-pkg/core/loop.d.ts +17 -6
- package/dist-pkg/core/loop.js +26 -26
- package/dist-pkg/core/pause-icon-catalogue.d.ts +15 -0
- package/dist-pkg/core/pause-icon-catalogue.js +54 -0
- package/dist-pkg/core/ring.d.ts +17 -0
- package/dist-pkg/core/ring.js +29 -0
- package/dist-pkg/core/rng.d.ts +7 -12
- package/dist-pkg/core/rng.js +23 -53
- package/dist-pkg/core/route.d.ts +26 -26
- package/dist-pkg/core/route.js +126 -121
- package/dist-pkg/core/scenes.d.ts +37 -40
- package/dist-pkg/core/scenes.js +41 -43
- package/dist-pkg/core/screens.d.ts +4 -4
- package/dist-pkg/core/screens.js +11 -16
- package/dist-pkg/core/session-clock.d.ts +23 -0
- package/dist-pkg/core/session-clock.js +37 -0
- package/dist-pkg/core/setting-defaults.d.ts +61 -0
- package/dist-pkg/core/setting-defaults.js +66 -0
- package/dist-pkg/core/speech-rate.d.ts +29 -0
- package/dist-pkg/core/speech-rate.js +47 -0
- package/dist-pkg/core/state.d.ts +118 -118
- package/dist-pkg/core/state.js +322 -297
- package/dist-pkg/core/visual-cycles.d.ts +30 -0
- package/dist-pkg/core/visual-cycles.js +52 -0
- package/dist-pkg/core/visual-state.d.ts +13 -0
- package/dist-pkg/core/visual-state.js +6 -0
- package/dist-pkg/educational/activities-registry.d.ts +1 -1
- package/dist-pkg/educational/activities-registry.js +9 -8
- package/dist-pkg/educational/adaptive-engine.d.ts +11 -11
- package/dist-pkg/educational/adaptive-engine.js +17 -17
- package/dist-pkg/educational/segment-bar.d.ts +12 -12
- package/dist-pkg/educational/segment-bar.js +9 -9
- package/dist-pkg/i18n/en.js +324 -223
- package/dist-pkg/i18n/es.js +323 -223
- package/dist-pkg/i18n/pt.js +348 -226
- package/dist-pkg/input/default-bindings.d.ts +37 -38
- package/dist-pkg/input/default-bindings.js +127 -144
- package/dist-pkg/input/devices.d.ts +7 -7
- package/dist-pkg/input/devices.js +17 -16
- package/dist-pkg/input/edges.d.ts +23 -32
- package/dist-pkg/input/edges.js +23 -28
- package/dist-pkg/input/empathy-filter.d.ts +22 -0
- package/dist-pkg/input/empathy-filter.js +34 -0
- package/dist-pkg/input/face-map.d.ts +96 -0
- package/dist-pkg/input/face-map.js +255 -0
- package/dist-pkg/input/face-signals.d.ts +40 -0
- package/dist-pkg/input/face-signals.js +48 -0
- package/dist-pkg/input/gamepad.d.ts +195 -145
- package/dist-pkg/input/gamepad.js +383 -556
- package/dist-pkg/input/gaze-cycle.d.ts +64 -0
- package/dist-pkg/input/gaze-cycle.js +133 -0
- package/dist-pkg/input/gaze-relative.d.ts +68 -0
- package/dist-pkg/input/gaze-relative.js +142 -0
- package/dist-pkg/input/hand-map.d.ts +28 -0
- package/dist-pkg/input/hand-map.js +142 -0
- package/dist-pkg/input/input-cooldown.d.ts +17 -0
- package/dist-pkg/input/input-cooldown.js +39 -0
- package/dist-pkg/input/key-default.d.ts +30 -0
- package/dist-pkg/input/key-default.js +60 -0
- package/dist-pkg/input/keyboard-runtime.d.ts +15 -21
- package/dist-pkg/input/keyboard-runtime.js +23 -27
- package/dist-pkg/input/keyboard.d.ts +68 -63
- package/dist-pkg/input/keyboard.js +83 -105
- package/dist-pkg/input/keydown.d.ts +123 -137
- package/dist-pkg/input/keydown.js +284 -289
- package/dist-pkg/input/latch-edge.d.ts +33 -21
- package/dist-pkg/input/latch-edge.js +34 -35
- package/dist-pkg/input/latch-scope.d.ts +51 -50
- package/dist-pkg/input/latch-scope.js +61 -82
- package/dist-pkg/input/latch-store.d.ts +26 -30
- package/dist-pkg/input/latch-store.js +42 -50
- package/dist-pkg/input/latch-sync.d.ts +29 -29
- package/dist-pkg/input/latch-sync.js +25 -25
- package/dist-pkg/input/latch.d.ts +14 -17
- package/dist-pkg/input/latch.js +29 -37
- package/dist-pkg/input/pad-defaults.d.ts +13 -16
- package/dist-pkg/input/pad-defaults.js +21 -28
- package/dist-pkg/input/pad-reading.d.ts +76 -0
- package/dist-pkg/input/pad-reading.js +169 -0
- package/dist-pkg/input/pad-wizard.d.ts +99 -0
- package/dist-pkg/input/pad-wizard.js +256 -0
- package/dist-pkg/input/pointer-space.d.ts +19 -20
- package/dist-pkg/input/pointer-space.js +27 -32
- package/dist-pkg/input/pointer.d.ts +39 -40
- package/dist-pkg/input/pointer.js +42 -45
- package/dist-pkg/input/state.d.ts +101 -89
- package/dist-pkg/input/state.js +54 -134
- package/dist-pkg/input/switch-scan.d.ts +59 -0
- package/dist-pkg/input/switch-scan.js +67 -0
- package/dist-pkg/input/synthetic-source.d.ts +42 -0
- package/dist-pkg/input/synthetic-source.js +57 -0
- package/dist-pkg/input/touch-bindings.d.ts +127 -116
- package/dist-pkg/input/touch-bindings.js +158 -173
- package/dist-pkg/input/touch.d.ts +147 -72
- package/dist-pkg/input/touch.js +362 -126
- package/dist-pkg/input/transport-in-use.d.ts +107 -0
- package/dist-pkg/input/transport-in-use.js +130 -0
- package/dist-pkg/input/transports.d.ts +90 -117
- package/dist-pkg/input/transports.js +104 -106
- package/dist-pkg/input/virtual-controller.d.ts +82 -0
- package/dist-pkg/input/virtual-controller.js +69 -0
- package/dist-pkg/input/vocabulary-migration.d.ts +50 -49
- package/dist-pkg/input/vocabulary-migration.js +80 -79
- package/dist-pkg/input/voice-map.d.ts +59 -0
- package/dist-pkg/input/voice-map.js +123 -0
- package/dist-pkg/platform/audio-ambient.d.ts +13 -2
- package/dist-pkg/platform/audio-ambient.js +14 -14
- package/dist-pkg/platform/audio-earcons.d.ts +20 -19
- package/dist-pkg/platform/audio-earcons.js +51 -42
- package/dist-pkg/platform/audio-jingles.js +9 -10
- package/dist-pkg/platform/audio-mixer.d.ts +14 -2
- package/dist-pkg/platform/audio-mixer.js +31 -39
- package/dist-pkg/platform/audio-sonar.d.ts +49 -152
- package/dist-pkg/platform/audio-sonar.js +124 -302
- package/dist-pkg/platform/audio.d.ts +62 -19
- package/dist-pkg/platform/audio.js +193 -168
- package/dist-pkg/platform/choose-by-voice.d.ts +70 -0
- package/dist-pkg/platform/choose-by-voice.js +157 -0
- package/dist-pkg/platform/flash-sampler.d.ts +19 -0
- package/dist-pkg/platform/flash-sampler.js +79 -0
- package/dist-pkg/platform/font-library.d.ts +77 -0
- package/dist-pkg/platform/font-library.js +98 -0
- package/dist-pkg/platform/font-library.json +721 -0
- package/dist-pkg/platform/heavy-catalogue.d.ts +77 -0
- package/dist-pkg/platform/heavy-catalogue.js +256 -0
- package/dist-pkg/platform/heavy-mirror.d.ts +20 -0
- package/dist-pkg/platform/heavy-mirror.js +73 -0
- package/dist-pkg/platform/heavy.d.ts +136 -0
- package/dist-pkg/platform/heavy.js +324 -0
- package/dist-pkg/platform/interruptible-speech.d.ts +23 -16
- package/dist-pkg/platform/interruptible-speech.js +77 -54
- package/dist-pkg/platform/kokoro-port.d.ts +27 -0
- package/dist-pkg/platform/kokoro-port.js +50 -0
- package/dist-pkg/platform/kokoro-runtime.d.ts +20 -0
- package/dist-pkg/platform/kokoro-runtime.js +52 -0
- package/dist-pkg/platform/kokoro.d.ts +70 -0
- package/dist-pkg/platform/kokoro.js +133 -0
- package/dist-pkg/platform/listener-scope.d.ts +12 -0
- package/dist-pkg/platform/listener-scope.js +90 -0
- package/dist-pkg/platform/locale-host.d.ts +14 -0
- package/dist-pkg/platform/locale-host.js +45 -0
- package/dist-pkg/platform/microphone.d.ts +51 -0
- package/dist-pkg/platform/microphone.js +118 -0
- package/dist-pkg/platform/onnx-runtime.d.ts +34 -0
- package/dist-pkg/platform/onnx-runtime.js +42 -0
- package/dist-pkg/platform/reading-in-worker.d.ts +64 -0
- package/dist-pkg/platform/reading-in-worker.js +125 -0
- package/dist-pkg/platform/reading-model.d.ts +94 -0
- package/dist-pkg/platform/reading-model.js +272 -0
- package/dist-pkg/platform/reading-runtime.d.ts +24 -0
- package/dist-pkg/platform/reading-runtime.js +164 -0
- package/dist-pkg/platform/reading-worker.d.ts +41 -0
- package/dist-pkg/platform/reading-worker.js +58 -0
- package/dist-pkg/platform/reading.d.ts +80 -0
- package/dist-pkg/platform/reading.js +136 -0
- package/dist-pkg/platform/speech-recognition.d.ts +60 -0
- package/dist-pkg/platform/speech-recognition.js +104 -0
- package/dist-pkg/platform/speech.d.ts +23 -1
- package/dist-pkg/platform/speech.js +29 -18
- package/dist-pkg/platform/storage-keys.d.ts +96 -0
- package/dist-pkg/platform/storage-keys.js +106 -0
- package/dist-pkg/platform/storage.d.ts +46 -111
- package/dist-pkg/platform/storage.js +104 -169
- package/dist-pkg/platform/tts.d.ts +85 -39
- package/dist-pkg/platform/tts.js +447 -127
- package/dist-pkg/platform/vision-loop.d.ts +23 -0
- package/dist-pkg/platform/vision-loop.js +56 -0
- package/dist-pkg/platform/vision.d.ts +132 -0
- package/dist-pkg/platform/vision.js +117 -0
- package/dist-pkg/platform/voice-listener.d.ts +40 -0
- package/dist-pkg/platform/voice-listener.js +88 -0
- package/dist-pkg/platform/voice-plan.d.ts +15 -98
- package/dist-pkg/platform/voice-plan.js +56 -143
- package/dist-pkg/platform/vosk-runtime.d.ts +96 -0
- package/dist-pkg/platform/vosk-runtime.js +151 -0
- package/dist-pkg/platform/vosk-vocabulary.d.ts +6 -0
- package/dist-pkg/platform/vosk-vocabulary.js +178 -0
- package/dist-pkg/render/canvas.d.ts +13 -7
- package/dist-pkg/render/canvas.js +13 -13
- package/dist-pkg/render/crt.d.ts +48 -12
- package/dist-pkg/render/crt.js +78 -80
- package/dist-pkg/render/cvd-matrices.d.ts +22 -18
- package/dist-pkg/render/cvd-matrices.js +37 -38
- package/dist-pkg/render/hc-role-data.d.ts +7 -7
- package/dist-pkg/render/hc-role-data.js +14 -14
- package/dist-pkg/render/high-contrast.d.ts +67 -56
- package/dist-pkg/render/high-contrast.js +226 -217
- package/dist-pkg/render/low-vision-drawing.d.ts +5 -0
- package/dist-pkg/render/low-vision-drawing.js +46 -0
- package/dist-pkg/render/lq-filter.d.ts +32 -20
- package/dist-pkg/render/lq-filter.js +59 -65
- package/dist-pkg/render/port.d.ts +86 -88
- package/dist-pkg/render/port.js +17 -23
- package/dist-pkg/render/screen-pipeline.d.ts +42 -42
- package/dist-pkg/render/screen-pipeline.js +80 -87
- package/dist-pkg/render/sprite-fx.d.ts +2 -1
- package/dist-pkg/render/sprite-fx.js +16 -14
- package/dist-pkg/render/viewports.d.ts +20 -15
- package/dist-pkg/render/viewports.js +83 -114
- package/dist-pkg/render/viz-axes-labels.d.ts +47 -0
- package/dist-pkg/render/viz-axes-labels.js +88 -0
- package/dist-pkg/render/viz-axes.d.ts +89 -86
- package/dist-pkg/render/viz-axes.js +128 -116
- package/dist-pkg/render/viz-modes.d.ts +28 -29
- package/dist-pkg/render/viz-modes.js +40 -45
- package/dist-pkg/render/viz-refusal.d.ts +32 -0
- package/dist-pkg/render/viz-refusal.js +57 -0
- package/dist-pkg/render/viz-setters.d.ts +104 -66
- package/dist-pkg/render/viz-setters.js +182 -191
- package/dist-pkg/ui/aac-sets.d.ts +45 -0
- package/dist-pkg/ui/aac-sets.js +41 -0
- package/dist-pkg/ui/audio-choices.d.ts +68 -0
- package/dist-pkg/ui/audio-choices.js +98 -0
- package/dist-pkg/ui/audio-rows-that-apply.d.ts +12 -0
- package/dist-pkg/ui/audio-rows-that-apply.js +43 -0
- package/dist-pkg/ui/camera-control.d.ts +53 -0
- package/dist-pkg/ui/camera-control.js +48 -0
- package/dist-pkg/ui/changed-mark.d.ts +9 -8
- package/dist-pkg/ui/changed-mark.js +22 -53
- package/dist-pkg/ui/control-choices.d.ts +37 -0
- package/dist-pkg/ui/control-choices.js +84 -0
- package/dist-pkg/ui/debug-panel.d.ts +59 -43
- package/dist-pkg/ui/debug-panel.js +68 -69
- package/dist-pkg/ui/declared-words.d.ts +21 -0
- package/dist-pkg/ui/declared-words.js +66 -0
- package/dist-pkg/ui/dom.d.ts +10 -14
- package/dist-pkg/ui/dom.js +10 -47
- package/dist-pkg/ui/drawing-problems.d.ts +25 -0
- package/dist-pkg/ui/drawing-problems.js +94 -0
- package/dist-pkg/ui/eye-control.d.ts +36 -0
- package/dist-pkg/ui/eye-control.js +178 -0
- package/dist-pkg/ui/face-control.d.ts +25 -0
- package/dist-pkg/ui/face-control.js +183 -0
- package/dist-pkg/ui/focus-trap.d.ts +39 -49
- package/dist-pkg/ui/focus-trap.js +56 -65
- package/dist-pkg/ui/fonts.d.ts +157 -68
- package/dist-pkg/ui/fonts.js +305 -115
- package/dist-pkg/ui/footer-scroll-driver.d.ts +14 -0
- package/dist-pkg/ui/footer-scroll-driver.js +201 -0
- package/dist-pkg/ui/footer-scroll.d.ts +38 -0
- package/dist-pkg/ui/footer-scroll.js +55 -0
- package/dist-pkg/ui/game-options.d.ts +47 -0
- package/dist-pkg/ui/game-options.js +158 -0
- package/dist-pkg/ui/gaze-overlay.d.ts +64 -0
- package/dist-pkg/ui/gaze-overlay.js +165 -0
- package/dist-pkg/ui/hand-control.d.ts +25 -0
- package/dist-pkg/ui/hand-control.js +143 -0
- package/dist-pkg/ui/help-panel.d.ts +87 -0
- package/dist-pkg/ui/help-panel.js +242 -0
- package/dist-pkg/ui/hud-bands.d.ts +62 -0
- package/dist-pkg/ui/hud-bands.js +146 -0
- package/dist-pkg/ui/hud-row.d.ts +34 -0
- package/dist-pkg/ui/hud-row.js +80 -0
- package/dist-pkg/ui/hud.d.ts +73 -73
- package/dist-pkg/ui/hud.js +94 -98
- package/dist-pkg/ui/item-announcement.d.ts +13 -12
- package/dist-pkg/ui/item-announcement.js +25 -26
- package/dist-pkg/ui/layout.d.ts +103 -28
- package/dist-pkg/ui/layout.js +117 -99
- package/dist-pkg/ui/libras-avatar-clip.d.ts +30 -0
- package/dist-pkg/ui/libras-avatar-clip.js +86 -0
- package/dist-pkg/ui/libras-avatar-load.d.ts +52 -0
- package/dist-pkg/ui/libras-avatar-load.js +134 -0
- package/dist-pkg/ui/libras-avatar-plan.d.ts +102 -0
- package/dist-pkg/ui/libras-avatar-plan.js +211 -0
- package/dist-pkg/ui/libras-avatar-player.d.ts +28 -0
- package/dist-pkg/ui/libras-avatar-player.js +226 -0
- package/dist-pkg/ui/libras-avatar-stage.d.ts +37 -0
- package/dist-pkg/ui/libras-avatar-stage.js +208 -0
- package/dist-pkg/ui/libras-glosses.d.ts +28 -0
- package/dist-pkg/ui/libras-glosses.js +161 -0
- package/dist-pkg/ui/locale-flags.d.ts +16 -0
- package/dist-pkg/ui/locale-flags.js +30 -0
- package/dist-pkg/ui/loop-crash.d.ts +17 -17
- package/dist-pkg/ui/loop-crash.js +33 -62
- package/dist-pkg/ui/menu-intent.d.ts +61 -0
- package/dist-pkg/ui/menu-intent.js +88 -0
- package/dist-pkg/ui/menu-items.d.ts +20 -0
- package/dist-pkg/ui/menu-items.js +51 -0
- package/dist-pkg/ui/menu-nav.d.ts +98 -92
- package/dist-pkg/ui/menu-nav.js +398 -286
- package/dist-pkg/ui/mobility-choices.d.ts +26 -0
- package/dist-pkg/ui/mobility-choices.js +41 -0
- package/dist-pkg/ui/motion-choices.d.ts +31 -0
- package/dist-pkg/ui/motion-choices.js +68 -0
- package/dist-pkg/ui/motion-scene.d.ts +24 -19
- package/dist-pkg/ui/motion-scene.js +29 -61
- package/dist-pkg/ui/mount-panel.d.ts +81 -0
- package/dist-pkg/ui/mount-panel.js +61 -0
- package/dist-pkg/ui/panel-shell.d.ts +65 -31
- package/dist-pkg/ui/panel-shell.js +92 -66
- package/dist-pkg/ui/panel-widgets.d.ts +150 -0
- package/dist-pkg/ui/panel-widgets.js +294 -0
- package/dist-pkg/ui/pause-buttons.d.ts +35 -0
- package/dist-pkg/ui/pause-buttons.js +66 -0
- package/dist-pkg/ui/pause-icons.d.ts +261 -347
- package/dist-pkg/ui/pause-icons.js +671 -601
- package/dist-pkg/ui/pause-markup.d.ts +86 -0
- package/dist-pkg/ui/pause-markup.js +125 -0
- package/dist-pkg/ui/reach-notice.d.ts +22 -23
- package/dist-pkg/ui/reach-notice.js +55 -58
- package/dist-pkg/ui/scan-overlay.d.ts +23 -0
- package/dist-pkg/ui/scan-overlay.js +50 -0
- package/dist-pkg/ui/screen-text.d.ts +25 -0
- package/dist-pkg/ui/screen-text.js +152 -0
- package/dist-pkg/ui/session-clock.d.ts +32 -0
- package/dist-pkg/ui/session-clock.js +67 -0
- package/dist-pkg/ui/settings-aac.d.ts +70 -0
- package/dist-pkg/ui/settings-aac.js +208 -0
- package/dist-pkg/ui/settings-audio.d.ts +97 -114
- package/dist-pkg/ui/settings-audio.js +493 -425
- package/dist-pkg/ui/settings-controls.d.ts +53 -96
- package/dist-pkg/ui/settings-controls.js +143 -215
- package/dist-pkg/ui/settings-empathy.d.ts +39 -30
- package/dist-pkg/ui/settings-empathy.js +53 -60
- package/dist-pkg/ui/settings-mobility.d.ts +192 -0
- package/dist-pkg/ui/settings-mobility.js +332 -0
- package/dist-pkg/ui/settings-motion.d.ts +91 -70
- package/dist-pkg/ui/settings-motion.js +287 -198
- package/dist-pkg/ui/settings-panel.d.ts +58 -45
- package/dist-pkg/ui/settings-panel.js +189 -94
- package/dist-pkg/ui/settings-typo.d.ts +29 -78
- package/dist-pkg/ui/settings-typo.js +158 -129
- package/dist-pkg/ui/settings-visual.d.ts +29 -87
- package/dist-pkg/ui/settings-visual.js +240 -193
- package/dist-pkg/ui/shell.d.ts +112 -135
- package/dist-pkg/ui/shell.js +148 -217
- package/dist-pkg/ui/simulation-list.d.ts +27 -0
- package/dist-pkg/ui/simulation-list.js +76 -0
- package/dist-pkg/ui/simulation-over-the-world.d.ts +23 -0
- package/dist-pkg/ui/simulation-over-the-world.js +131 -0
- package/dist-pkg/ui/simulation-refusal.d.ts +5 -31
- package/dist-pkg/ui/simulation-refusal.js +8 -56
- package/dist-pkg/ui/switchable-control.d.ts +11 -0
- package/dist-pkg/ui/switchable-control.js +19 -0
- package/dist-pkg/ui/title.d.ts +3 -12
- package/dist-pkg/ui/title.js +49 -18
- package/dist-pkg/ui/top-band.d.ts +26 -0
- package/dist-pkg/ui/top-band.js +96 -0
- package/dist-pkg/ui/typo-choices.d.ts +71 -0
- package/dist-pkg/ui/typo-choices.js +85 -0
- package/dist-pkg/ui/visual-axes-panel.d.ts +11 -47
- package/dist-pkg/ui/visual-axes-panel.js +12 -94
- package/dist-pkg/ui/visual-choices.d.ts +77 -0
- package/dist-pkg/ui/visual-choices.js +107 -0
- package/dist-pkg/ui/vlibras.d.ts +77 -10
- package/dist-pkg/ui/vlibras.js +130 -81
- package/dist-pkg/ui/voice-control.d.ts +68 -0
- package/dist-pkg/ui/voice-control.js +276 -0
- package/dist-pkg/ui/voice-settings.d.ts +95 -0
- package/dist-pkg/ui/voice-settings.js +352 -0
- package/dist-pkg/ui/where-the-child-is.d.ts +31 -0
- package/dist-pkg/ui/where-the-child-is.js +70 -0
- package/docs/CREDITS.md +300 -44
- package/docs/LICENSES.md +189 -145
- package/package.json +51 -27
- package/scripts/check-cartridge.mjs +78 -0
- package/scripts/game-build.d.mts +25 -0
- package/scripts/game-build.mjs +144 -0
- package/scripts/heavy-into-the-delivery.mjs +388 -0
- package/scripts/libras-avatar.json +680 -0
- package/scripts/libras-avatar.mjs +246 -0
- package/scripts/libras-glosses/gloss.py +95 -0
- package/scripts/libras-glosses/pyproject.toml +32 -0
- package/scripts/libras-glosses/uv.lock +781 -0
- package/scripts/libras-glosses.mjs +351 -0
- package/scripts/licences/Apache-2.0.txt +176 -0
- package/scripts/licences/GPL-3.0.txt +674 -0
- package/scripts/licences/MIT.txt +17 -0
- package/scripts/licences/OFL-1.1.txt +86 -0
- package/scripts/licences/UFL-1.0.txt +96 -0
- package/scripts/licences/fonts.mjs +389 -0
- package/scripts/licences/third-party.mjs +301 -0
- package/scripts/licences/vosk-browser.NOTICE.txt +268 -0
- package/app/public/vendor/fonts/comicneue-400.woff2 +0 -0
- package/app/public/vendor/fonts/comicneue-700.woff2 +0 -0
- package/app/public/vendor/fonts/fondamento-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/fondamento-400.woff2 +0 -0
- package/app/public/vendor/fonts/inter-400.woff2 +0 -0
- package/app/public/vendor/fonts/inter-700.woff2 +0 -0
- package/app/public/vendor/fonts/lato-400.woff2 +0 -0
- package/app/public/vendor/fonts/lato-700.woff2 +0 -0
- package/app/public/vendor/fonts/literata-400.woff2 +0 -0
- package/app/public/vendor/fonts/literata-700.woff2 +0 -0
- package/app/public/vendor/fonts/newsreader-400.woff2 +0 -0
- package/app/public/vendor/fonts/newsreader-700.woff2 +0 -0
- package/app/public/vendor/fonts/opendyslexic-400.woff2 +0 -0
- package/app/public/vendor/fonts/opensans-400.woff2 +0 -0
- package/app/public/vendor/fonts/opensans-700.woff2 +0 -0
- package/app/public/vendor/fonts/pinyon-400.woff2 +0 -0
- package/app/public/vendor/fonts/pressstart-400.woff2 +0 -0
- package/app/public/vendor/fonts/quattro-400.woff2 +0 -0
- package/app/public/vendor/fonts/quattro-700.woff2 +0 -0
- package/app/public/vendor/fonts/sourcesans-400.woff2 +0 -0
- package/app/public/vendor/fonts/sourcesans-700.woff2 +0 -0
- package/app/public/vendor/fonts/sourceserif-400.woff2 +0 -0
- package/app/public/vendor/fonts/sourceserif-700.woff2 +0 -0
- package/app/public/vendor/fonts/ufmag-400.woff2 +0 -0
- package/dist-pkg/core/anel.d.ts +0 -17
- package/dist-pkg/core/anel.js +0 -31
- package/dist-pkg/core/collision.d.ts +0 -21
- package/dist-pkg/core/collision.js +0 -62
- package/dist-pkg/core/layers.d.ts +0 -63
- package/dist-pkg/core/layers.js +0 -95
- package/dist-pkg/core/letter-grid.d.ts +0 -55
- package/dist-pkg/core/letter-grid.js +0 -116
- package/dist-pkg/core/password.d.ts +0 -34
- package/dist-pkg/core/password.js +0 -205
- package/dist-pkg/core/rotulo-acessivel.d.ts +0 -17
- package/dist-pkg/core/rotulo-acessivel.js +0 -41
- package/dist-pkg/core/run-state.d.ts +0 -115
- package/dist-pkg/core/run-state.js +0 -40
- package/dist-pkg/core/tiles.d.ts +0 -12
- package/dist-pkg/core/tiles.js +0 -61
- package/dist-pkg/core/world.d.ts +0 -4
- package/dist-pkg/core/world.js +0 -58
- package/dist-pkg/input/origem-sintetica.d.ts +0 -44
- package/dist-pkg/input/origem-sintetica.js +0 -60
- package/dist-pkg/input/transporte-em-uso.d.ts +0 -101
- package/dist-pkg/input/transporte-em-uso.js +0 -130
- package/dist-pkg/platform/audio-nav.d.ts +0 -51
- package/dist-pkg/platform/audio-nav.js +0 -99
- package/dist-pkg/platform/guide-intensity.d.ts +0 -40
- package/dist-pkg/platform/guide-intensity.js +0 -73
- package/dist-pkg/platform/pesados-catalogo.d.ts +0 -14
- package/dist-pkg/platform/pesados-catalogo.js +0 -177
- package/dist-pkg/platform/pesados.d.ts +0 -31
- package/dist-pkg/platform/pesados.js +0 -75
- package/dist-pkg/platform/vozes-prontas.d.ts +0 -28
- package/dist-pkg/platform/vozes-prontas.js +0 -61
- package/dist-pkg/render/camera.d.ts +0 -58
- package/dist-pkg/render/camera.js +0 -105
- package/dist-pkg/render/cenario-data.d.ts +0 -127
- package/dist-pkg/render/cenario-data.js +0 -145
- package/dist-pkg/render/city-tex.d.ts +0 -63
- package/dist-pkg/render/city-tex.js +0 -228
- package/dist-pkg/render/city-tiles.d.ts +0 -11
- package/dist-pkg/render/city-tiles.js +0 -140
- package/dist-pkg/render/draw.d.ts +0 -149
- package/dist-pkg/render/draw.js +0 -231
- package/dist-pkg/render/fx.d.ts +0 -63
- package/dist-pkg/render/fx.js +0 -123
- package/dist-pkg/render/minimap.d.ts +0 -11
- package/dist-pkg/render/minimap.js +0 -94
- package/dist-pkg/render/parallax.d.ts +0 -85
- package/dist-pkg/render/parallax.js +0 -158
- package/dist-pkg/render/player-anim.d.ts +0 -71
- package/dist-pkg/render/player-anim.js +0 -152
- package/dist-pkg/render/recycling-tex.d.ts +0 -48
- package/dist-pkg/render/recycling-tex.js +0 -164
- package/dist-pkg/render/scene-city.d.ts +0 -77
- package/dist-pkg/render/scene-city.js +0 -181
- package/dist-pkg/render/scene-parallax.d.ts +0 -72
- package/dist-pkg/render/scene-parallax.js +0 -426
- package/dist-pkg/render/scene-sky.d.ts +0 -126
- package/dist-pkg/render/scene-sky.js +0 -295
- package/dist-pkg/render/set-cenario.d.ts +0 -54
- package/dist-pkg/render/set-cenario.js +0 -103
- package/dist-pkg/render/textures.d.ts +0 -75
- package/dist-pkg/render/textures.js +0 -240
- package/dist-pkg/render/title-scene.d.ts +0 -46
- package/dist-pkg/render/title-scene.js +0 -75
- package/dist-pkg/render/weather.d.ts +0 -96
- package/dist-pkg/render/weather.js +0 -171
- package/dist-pkg/render/wheelchair-sprites.d.ts +0 -32
- package/dist-pkg/render/wheelchair-sprites.js +0 -69
- package/dist-pkg/render/world-tex.d.ts +0 -18
- package/dist-pkg/render/world-tex.js +0 -87
- package/dist-pkg/ui/activities-menu.d.ts +0 -258
- package/dist-pkg/ui/activities-menu.js +0 -648
- package/dist-pkg/ui/caa-sets.d.ts +0 -39
- package/dist-pkg/ui/caa-sets.js +0 -65
- package/dist-pkg/ui/latch-refusal.d.ts +0 -32
- package/dist-pkg/ui/latch-refusal.js +0 -60
- package/dist-pkg/ui/map-hub.d.ts +0 -56
- package/dist-pkg/ui/map-hub.js +0 -138
- package/dist-pkg/ui/settings-caa.d.ts +0 -45
- package/dist-pkg/ui/settings-caa.js +0 -137
- package/dist-pkg/ui/settings-motor.d.ts +0 -175
- package/dist-pkg/ui/settings-motor.js +0 -342
- package/dist-pkg/ui/webcam.d.ts +0 -7
- package/dist-pkg/ui/webcam.js +0 -93
package/dist-pkg/ui/shell.d.ts
CHANGED
|
@@ -1,114 +1,92 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
import type { Translate } from '../core/i18n.js';
|
|
2
3
|
import type { DomQuery } from '../core/dom-query.js';
|
|
3
|
-
import type { PadMap } from '../input/
|
|
4
|
-
import type {
|
|
5
|
-
/**
|
|
6
|
-
export type { DomQuery } from '../core/dom-query.js';
|
|
7
|
-
/** O subconjunto de `Window` que `printMode` usa (add/remove de ouvinte em CAPTURA + o adiamento de 80ms). */
|
|
4
|
+
import type { PadMap } from '../input/pad-reading.js';
|
|
5
|
+
import type { SceneFacts } from '../core/scenes.js';
|
|
6
|
+
/** The part of `Window` that `printMode` uses (adding and removing a listener in CAPTURE, and the 80 ms delay). */
|
|
8
7
|
export interface ShellWindow {
|
|
9
8
|
addEventListener(type: string, fn: (e: Event) => void, capture: boolean): void;
|
|
10
9
|
removeEventListener(type: string, fn: (e: Event) => void, capture: boolean): void;
|
|
11
10
|
setTimeout(fn: () => void, ms: number): unknown;
|
|
12
11
|
}
|
|
13
|
-
/**
|
|
12
|
+
/** A pause screen (`.screen-pause`) — only what the shell touches. */
|
|
14
13
|
export interface PauseScreen {
|
|
15
14
|
hidden: boolean;
|
|
16
15
|
querySelectorAll<T extends Element = Element>(sel: string): ArrayLike<T> & Iterable<T>;
|
|
17
16
|
}
|
|
18
|
-
/**
|
|
17
|
+
/** A gamepad, as little of it as the title legend reads. */
|
|
19
18
|
interface PadLike {
|
|
20
19
|
index: number;
|
|
21
20
|
id: string;
|
|
22
21
|
mapping: string;
|
|
23
22
|
}
|
|
24
|
-
/**
|
|
23
|
+
/** Where the focus goes on ENTERING a scene. */
|
|
25
24
|
export type PhaseFocus = 'game-region' | 'pause-menu' | 'title-button';
|
|
26
25
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* (`#touch-controls`) mora em `touchControlsPlan`, separado de propósito.
|
|
26
|
+
* What the scene on top asks of the document — a projection of the scene facts, with no field depending on history (the
|
|
27
|
+
* one that would, `#touch-controls`, lives in `touchControlsPlan`, apart on purpose).
|
|
30
28
|
*/
|
|
31
|
-
export type { FatosDaCena } from '../core/scenes.js';
|
|
32
29
|
export interface PhaseView {
|
|
33
|
-
/** `#title-overlay`.hidden —
|
|
30
|
+
/** `#title-overlay`.hidden — the splash only shows on the title. */
|
|
34
31
|
titleOverlayHidden: boolean;
|
|
35
32
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* Ele era `true` em toda fase, e existia porque a Etapa 2 aposentou a pausa GLOBAL sem apagar o elemento: a
|
|
39
|
-
* casca continuava a procurá-lo e a escondê-lo a cada troca de fase, com dois gates a afirmar que ele ficava
|
|
40
|
-
* escondido. Código a segurar um cadáver.
|
|
41
|
-
*
|
|
42
|
-
* E o cadáver custava mais do que as linhas: aquelas quarenta linhas de `#pause-overlay` no `index.html` do
|
|
43
|
-
* cartucho eram o menu de pausa com aspecto mais OFICIAL do repositório — o que o próximo autor de cartucho
|
|
44
|
-
* copia junto com o ficheiro —, e já tinham derivado do que a engine gera (dois itens «Comunicação», e um
|
|
45
|
-
* `#opt-letra` que hoje sai do `dynLabel`). Um campo que diz «está escondido» aceita que ele exista; não o
|
|
46
|
-
* ter diz que ele não existe.
|
|
33
|
+
* There is no global pause overlay to hide: each screen has its own pause card (below). A field saying «it is hidden»
|
|
34
|
+
* would accept that one exists — and a leftover global menu in a page is the one the next game author would copy.
|
|
47
35
|
*/
|
|
48
|
-
/** `.screen-pause`.hidden
|
|
36
|
+
/** `.screen-pause`.hidden of EACH screen — the per-screen cards only show while paused. */
|
|
49
37
|
screenPauseHidden: boolean;
|
|
50
|
-
/** `setMasterMuted(...)` — GAG:
|
|
38
|
+
/** `setMasterMuted(...)` — GAG: outside play ALL sound goes quiet (ambient and rain loops included). */
|
|
51
39
|
masterMuted: boolean;
|
|
52
|
-
/** `hideTouchControls()` — menu
|
|
40
|
+
/** `hideTouchControls()` — an active menu (title or pause) = no virtual controller. */
|
|
53
41
|
hideTouchControls: boolean;
|
|
54
42
|
/**
|
|
55
|
-
* `aria-pressed`
|
|
56
|
-
*
|
|
57
|
-
* O alvo era `#btn-pause`, e esse id NUNCA existiu no documento: o botão saiu da barra e a fiação ficou
|
|
58
|
-
* "guardada p/ compat". A linha que escrevia o atributo era morta, e o teste do navegador não pegava porque
|
|
59
|
-
* o FIXTURE inventava o elemento — um caso que provava que o código escreve num botão que só o teste tem.
|
|
60
|
-
*
|
|
61
|
-
* O alvo agora é `#touch-start`, que é o botão que existe, o que o Dev clica e o ÚNICO caminho de pausa num
|
|
62
|
-
* tablet (não há teclado no Positivo da issue #8).
|
|
43
|
+
* The pause button's `aria-pressed` — it tells a screen reader WHETHER the game is paused. The target is
|
|
44
|
+
* `#touch-start`, the pad's START: the button that exists, and the only way to pause on a tablet without a keyboard.
|
|
63
45
|
*/
|
|
64
46
|
pausePressed: boolean;
|
|
65
|
-
/**
|
|
47
|
+
/** Who receives the focus on entering this scene. */
|
|
66
48
|
focus: PhaseFocus;
|
|
67
49
|
}
|
|
68
|
-
/**
|
|
69
|
-
export declare function phaseView(f:
|
|
70
|
-
/**
|
|
50
|
+
/** Every question the scene change asks of the scene, asked at once. */
|
|
51
|
+
export declare function phaseView(f: SceneFacts): PhaseView;
|
|
52
|
+
/** The part of `#touch-controls` that matters: hidden? and was the pad on before the pause? */
|
|
71
53
|
export interface TouchControlsState {
|
|
72
54
|
/** `tc.hidden`. */
|
|
73
55
|
hidden: boolean;
|
|
74
|
-
/** `tc.dataset.wasOn === '1'`.
|
|
56
|
+
/** `tc.dataset.wasOn === '1'`. Absent or any other value = false. */
|
|
75
57
|
wasOn: boolean;
|
|
76
58
|
}
|
|
77
59
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
60
|
+
* The ONE part of a scene change with memory: hide the touch controls on pause (recording that they were on) and give them
|
|
61
|
+
* back on resume. Pure, so it can be pinned without a browser.
|
|
80
62
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
63
|
+
* The state that arrives here is the one from BEFORE `hideTouchControls()` — the caller reads first and hides after.
|
|
64
|
+
* The other order never records `wasOn` (the plan sees the pad already off), and resuming on a phone would not give the
|
|
65
|
+
* virtual d-pad back.
|
|
84
66
|
*/
|
|
85
|
-
export declare function touchControlsPlan(f:
|
|
86
|
-
/**
|
|
67
|
+
export declare function touchControlsPlan(f: SceneFacts, st: TouchControlsState, screens: number): TouchControlsState;
|
|
68
|
+
/** One legend «chip»: the glyph (with an optional background colour) followed by the word it stands for. */
|
|
87
69
|
export declare function chip(txt: string, col: string | null, word?: string): string;
|
|
88
70
|
/**
|
|
89
|
-
*
|
|
71
|
+
* The SPOKEN name of a controller glyph. A glyph that already reads as a word passes untouched.
|
|
90
72
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* cada chamada, com o idioma vigente naquele instante.
|
|
73
|
+
* `PAD_GLYPH_SPOKEN` in `input/devices` holds KEYS, not text, because it is a module `const` evaluated once on import —
|
|
74
|
+
* resolved text would freeze the language at boot. It is resolved here, on each call, in the language of that moment.
|
|
94
75
|
*/
|
|
95
|
-
export declare function
|
|
76
|
+
export declare function spokenGlyph(t: Translate, g: string): string;
|
|
96
77
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* Ela dizia qual botão confirma e qual volta, e carregava `aria-hidden="true"` — ou seja, era invisível
|
|
100
|
-
* justamente para quem não pode ver o glifo. A XAG 106 manda narrar exatamente isto ("A to Select").
|
|
78
|
+
* THE PAUSE LEGEND — two layers in the same place (ADR-0044 item 4).
|
|
101
79
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
80
|
+
* It says which button confirms and which goes back, and XAG 106 asks for exactly this to be narrated ("A to Select").
|
|
81
|
+
* The CHIPS stay visible and silent — a screen reader would read `✕` as a multiplication sign — and beside them a single
|
|
82
|
+
* sentence exists for screen readers only, with the glyphs already turned into words. Two readings of the same
|
|
83
|
+
* information, each in the sense that reaches it.
|
|
106
84
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
85
|
+
* Takes the `[glyph, colour]` pairs of the pad's design by position: yes is the south button (A · ✕ · B) and no the east one
|
|
86
|
+
* (B · ◯ · A) on every design — no design swaps them (the Dev's association, ADR-0013 erratum).
|
|
109
87
|
*/
|
|
110
|
-
export declare function pauseLegendHtml(sim: readonly [string, string],
|
|
111
|
-
/**
|
|
88
|
+
export declare function pauseLegendHtml(t: Translate, sim: readonly [string, string], no: readonly [string, string]): string;
|
|
89
|
+
/** The four action buttons, in the legend's fixed glyph order: action2 · action3 · action1 · action4. */
|
|
112
90
|
export interface ActionGlyphs {
|
|
113
91
|
action2: readonly [string, string | null];
|
|
114
92
|
action3: readonly [string, string | null];
|
|
@@ -116,95 +94,93 @@ export interface ActionGlyphs {
|
|
|
116
94
|
action4: readonly [string, string | null];
|
|
117
95
|
}
|
|
118
96
|
/**
|
|
119
|
-
*
|
|
97
|
+
* Legend row 1: the d-pad and START/Enter. The same for touch and gamepad; the keyboard overrides the labels.
|
|
120
98
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
99
|
+
* The words come from `legend.*` and are resolved HERE, on each call — not in a module table, which would freeze the
|
|
100
|
+
* language at boot. The SHORT register on purpose: this row sits under a glyph and has no room for the longer wording the
|
|
101
|
+
* remapping list uses.
|
|
124
102
|
*/
|
|
125
|
-
export declare function legendRow1(dirTxt: string, pauseTxt: string): string;
|
|
103
|
+
export declare function legendRow1(t: Translate, dirTxt: string, pauseTxt: string): string;
|
|
126
104
|
/**
|
|
127
|
-
*
|
|
105
|
+
* Legend row 2: the action buttons, in glyph order.
|
|
128
106
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* especial, correr e trocar, nessa ordem. Agora `rotulo` é perguntado ao jogo (a versão CURTA, ver
|
|
132
|
-
* `ActionWord.short`), e uma posição que o jogo não nomeia não vira ficha nenhuma.
|
|
107
|
+
* The words are asked of the GAME (`wordFor`, the SHORT version — see `ActionWord.short`): the engine does not assume
|
|
108
|
+
* every game has jump, special, run and swap. A position the game does not name becomes no chip at all.
|
|
133
109
|
*/
|
|
134
|
-
export declare function legendRow2(g: ActionGlyphs,
|
|
135
|
-
/**
|
|
110
|
+
export declare function legendRow2(g: ActionGlyphs, wordFor: (action: string) => string | null): string;
|
|
111
|
+
/** The final innerHTML of `#title-legend`: two `.lg-row`. */
|
|
136
112
|
export declare function legendHtml(l1: string, l2: string): string;
|
|
137
113
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
114
|
+
* The glyphs of a PHYSICAL pad. `layout` comes from `padLayoutFromId` (only when `mapping === 'standard'`; off-standard it
|
|
115
|
+
* is always 'generic'), and `custom` is the wizard's map (only consulted OFF the standard). A button with no entry in the
|
|
116
|
+
* custom map falls back to its default index ('0'..'3'), and an index the design does not know becomes the pair
|
|
117
|
+
* `[index, '#3a4a6a']` — the fallback grey.
|
|
142
118
|
*/
|
|
143
119
|
export declare function padActionGlyphs(layout: string, custom: PadMap | null): ActionGlyphs;
|
|
144
|
-
/**
|
|
120
|
+
/** The glyphs of the VIRTUAL (touch) pad: always the 'generic' design (0/1/2/3), no custom map. */
|
|
145
121
|
export declare function touchActionGlyphs(): ActionGlyphs;
|
|
146
122
|
/**
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
123
|
+
* Chooses WHICH gamepad the legend describes: Player 1's, if they have one (`players[0].pad`); otherwise the first one
|
|
124
|
+
* connected. With `p1pad >= 0` and no pad of that index present, the result is `null` (the legend falls back to the
|
|
125
|
+
* keyboard) rather than picking another.
|
|
150
126
|
*/
|
|
151
127
|
export declare function pickLegendPad(pads: readonly (PadLike | null)[], p1pad: number): PadLike | null;
|
|
152
128
|
export interface ShellCtx {
|
|
153
|
-
/**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
129
|
+
/** Translates in the page's language — the root's translator (ADR-0232 D3). REQUIRED: text built from nowhere is a raw key. */
|
|
130
|
+
t: Translate;
|
|
131
|
+
/** The three facts of the scene on TOP, asked on each use — the root holds the stack and names the scenes. A getter,
|
|
132
|
+
* not a value: the shell projects the CURRENT state, not the one of the moment it was wired. */
|
|
133
|
+
sceneFacts: () => SceneFacts;
|
|
134
|
+
/** BACK TO THE GAME. What the pause card's «Continue» does, and what a new player joining does. Resuming is what the
|
|
135
|
+
* shell means; pushing and popping scenes is the root's. */
|
|
136
|
+
resumeGame: () => void;
|
|
137
|
+
/** How many players/screens. ROUND state (ADR-0038): it comes from the instance the host owns — a module-level
|
|
138
|
+
* binding would be shared by a second game on the same page. */
|
|
162
139
|
getNumPlayers: () => number;
|
|
163
|
-
/**
|
|
164
|
-
*
|
|
140
|
+
/** The players. ROUND state, for the same reason. `readonly unknown[]` because each consumer narrows to ITS slice —
|
|
141
|
+
* the real type is the game's, not the engine's (ADR-0033). */
|
|
165
142
|
getPlayers: () => readonly unknown[];
|
|
166
|
-
/** ui/dom.ts `$`.
|
|
143
|
+
/** ui/dom.ts `$`. Injected: the module never reaches `document`. */
|
|
167
144
|
$: DomQuery;
|
|
168
|
-
/** `window` —
|
|
145
|
+
/** `window` — only for Print mode's two CAPTURE listeners and the 80 ms delay. */
|
|
169
146
|
win: ShellWindow;
|
|
170
|
-
/** platform/audio.ts `setMasterMuted` —
|
|
147
|
+
/** platform/audio.ts `setMasterMuted` — the master node that silences EVERYTHING on pause and title (GAG). */
|
|
171
148
|
setMasterMuted: (muted: boolean) => void;
|
|
172
|
-
/** core/a11y-sr `srSay` (
|
|
149
|
+
/** core/a11y-sr `srSay` (polite) and `srAlert` (assertive). */
|
|
173
150
|
srSay: (msg: string) => void;
|
|
174
151
|
srAlert: (msg: string) => void;
|
|
175
|
-
/**
|
|
152
|
+
/** The pause cards, one per screen; the host rebuilds them when the number of screens changes. */
|
|
176
153
|
getPauseScreens: () => PauseScreen[];
|
|
177
|
-
/**
|
|
154
|
+
/** Who opened the pause card; the accessibility panels open scoped to that player. */
|
|
178
155
|
getPauseActor: () => number;
|
|
179
|
-
/** input/touch.ts
|
|
156
|
+
/** input/touch.ts: hides the virtual d-pad. */
|
|
180
157
|
hideTouchControls: () => void;
|
|
181
|
-
/** ui/pause-icons.ts:
|
|
158
|
+
/** ui/pause-icons.ts: reflects the `.pi-btn` of every screen (accessibility state). */
|
|
182
159
|
reflectPauseIcons: () => void;
|
|
183
|
-
/**
|
|
160
|
+
/** Gamepad API adapter — the same pattern as input/gamepad.ts (it is what makes it testable without a browser). */
|
|
184
161
|
getGamepads: () => readonly (PadLike | null)[];
|
|
185
|
-
/** `document.body.classList.contains('touch-mode')` —
|
|
162
|
+
/** `document.body.classList.contains('touch-mode')` — injected so as not to reach `document`. */
|
|
186
163
|
isTouchMode: () => boolean;
|
|
187
|
-
/** input/touch.ts `padLayoutFromId` — id
|
|
164
|
+
/** input/touch.ts `padLayoutFromId` — controller id → button design. */
|
|
188
165
|
padLayoutFromId: (id: string) => string;
|
|
189
|
-
/**
|
|
190
|
-
|
|
191
|
-
* `Record<string, { b?: number }>`, era uma aproximação: perdia o `boolean` que o mapa admite. */
|
|
166
|
+
/** The wizard's map for that controller model (only used OFF the standard). `PadMap` comes from `input/pad-reading`,
|
|
167
|
+
* which owns it, including the `boolean` the map admits. */
|
|
192
168
|
padMapFor: (id: string) => PadMap | null;
|
|
193
|
-
/** input/keyboard-runtime.ts `kbFor(i)` —
|
|
169
|
+
/** input/keyboard-runtime.ts `kbFor(i)` — player `i`'s CONFIGURED keys (the remap honoured). */
|
|
194
170
|
kbFor: (i: number) => Record<string, string[]>;
|
|
195
|
-
/** ui/
|
|
171
|
+
/** ui/control-choices `keyName` — `KeyboardEvent.code` → a human label. */
|
|
196
172
|
keyName: (code: string) => string;
|
|
197
173
|
/**
|
|
198
|
-
*
|
|
174
|
+
* The SHORT word for this position, in the game's language. `null` = the game does not use it.
|
|
199
175
|
*
|
|
200
|
-
* ⚠️
|
|
201
|
-
*
|
|
202
|
-
*
|
|
176
|
+
* ⚠️ Short and not the long one: the legend puts the word under a glyph, in a row of four, and has no room for the
|
|
177
|
+
* «Correr / interagir» the remapping list uses. The distinction was already in the dictionary (`legend.*` against
|
|
178
|
+
* `act.*`) and now crosses the boundary WITH the words — see `ActionWord.short`.
|
|
203
179
|
*/
|
|
204
|
-
|
|
205
|
-
/** `setQuizLevel(n, announce)` —
|
|
180
|
+
shortLabel: (action: string) => string | null;
|
|
181
|
+
/** `setQuizLevel(n, announce)` — the 1..5 cycle of the literacy level. */
|
|
206
182
|
setQuizLevel: (n: number, announce: boolean) => void;
|
|
207
|
-
/**
|
|
183
|
+
/** The current literacy level — read to compute the next in the cycle. */
|
|
208
184
|
getQuizLevel: () => number;
|
|
209
185
|
openTypo: () => void;
|
|
210
186
|
openAudio: () => void;
|
|
@@ -212,38 +188,39 @@ export interface ShellCtx {
|
|
|
212
188
|
openVisual: () => void;
|
|
213
189
|
openHelp: () => void;
|
|
214
190
|
quitGame: () => void;
|
|
215
|
-
/**
|
|
191
|
+
/** Does one more screen fit in this window? */
|
|
216
192
|
fitsN: (n: number) => boolean;
|
|
217
|
-
/**
|
|
193
|
+
/** Creates/activates the next player; `null` = no pad associated yet. */
|
|
218
194
|
joinPlayer: (padIdx: number | null) => boolean;
|
|
219
|
-
/** ui/hud.ts:
|
|
195
|
+
/** ui/hud.ts: the «press a button to join» badge on the new player's screen. */
|
|
220
196
|
showWaitingBadge: (i: number) => void;
|
|
221
|
-
/** ui/settings-
|
|
222
|
-
|
|
223
|
-
/** ui/settings-motion.ts `setSelectedPlayer`:
|
|
197
|
+
/** ui/settings-mobility.ts: scopes the Mobility panel to the player who opened it. */
|
|
198
|
+
setMobilityPlayer: (i: number) => void;
|
|
199
|
+
/** ui/settings-motion.ts `setSelectedPlayer`: the same for the Motion panel. */
|
|
224
200
|
setMotionPlayer: (i: number) => void;
|
|
225
201
|
/** ui/settings-motion.ts `motion.open`. */
|
|
226
202
|
openMotion: () => void;
|
|
227
|
-
/**
|
|
228
|
-
|
|
203
|
+
/** Opens the Augmentative and Alternative Communication menu (ui/settings-aac). */
|
|
204
|
+
openAac: () => void;
|
|
229
205
|
/** ui/settings-empathy.ts `empathy.open`. */
|
|
230
206
|
openEmpathy: () => void;
|
|
231
|
-
/**
|
|
207
|
+
/** Scopes Visual and Empathy to the player who opened them. */
|
|
232
208
|
setSelVizPlayer: (i: number) => void;
|
|
233
209
|
}
|
|
234
|
-
/**
|
|
210
|
+
/** The table of the `.pm-btn` actions. Key = the button's `data-act`. */
|
|
235
211
|
export type PauseActs = Record<string, () => void>;
|
|
236
212
|
export interface ShellApi {
|
|
237
|
-
/**
|
|
238
|
-
*
|
|
239
|
-
|
|
240
|
-
/**
|
|
213
|
+
/** Projects onto the document the scene on top of the stack NOW. The root calls it after pushing or popping: pushing
|
|
214
|
+
* is the root's, since the root names the scenes. */
|
|
215
|
+
applyScene: () => void;
|
|
216
|
+
/** Selects the 1st `.pm-btn` (Continue) on EACH pause screen. */
|
|
241
217
|
pauseSelect: () => void;
|
|
242
|
-
/**
|
|
218
|
+
/** Print mode: hides the pause cards to see the screen clean; any key or click brings them back. */
|
|
243
219
|
printMode: () => void;
|
|
244
|
-
/**
|
|
220
|
+
/** Repaints `#title-legend` with Player 1's current device and mapping. */
|
|
245
221
|
updateTitleLegend: () => void;
|
|
246
|
-
/**
|
|
222
|
+
/** The pause card's action table — read by ui/pause-icons.ts (`getPauseActs`). */
|
|
247
223
|
pauseActs: PauseActs;
|
|
248
224
|
}
|
|
249
225
|
export declare function initShell(ctx: ShellCtx): ShellApi;
|
|
226
|
+
export {};
|