@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
|
@@ -1,7 +1,6 @@
|
|
|
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
|
-
/** Minimal DOM-selector shape (matches ui/dom.ts's `$`). */
|
|
4
|
-
export type { DomQuery } from '../core/dom-query.js';
|
|
5
4
|
/** Minimal platform/storage.ts shape this module needs. */
|
|
6
5
|
export interface TouchStore {
|
|
7
6
|
get(key: string, fallback?: string | null): string | null;
|
|
@@ -11,75 +10,104 @@ export interface TouchStore {
|
|
|
11
10
|
setJSON(key: string, obj: unknown): void;
|
|
12
11
|
}
|
|
13
12
|
export interface TouchCtx {
|
|
13
|
+
/** Translates in the page's language — the root's translator (ADR-0232 D3). REQUIRED: text built from nowhere is a raw key. */
|
|
14
|
+
t: Translate;
|
|
14
15
|
/** DOM selector (querySelector), injected — never reaches `document` globally. */
|
|
15
16
|
$: DomQuery;
|
|
16
17
|
/** Screen-reader "polite" announcement (core/a11y-sr's srSay), injected. */
|
|
17
18
|
srSay: (msg: string) => void;
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
+
* THE POSITIONS THIS GAME USES, each with its own word, in the current language.
|
|
20
21
|
*
|
|
21
|
-
* ⚠️
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* ⚠️ The slot menu offers these and not a fixed list: with a fixed list the engine would be deciding that every
|
|
23
|
+
* game has jump, run, swap and special, and a child in a quiz could assign a button a power swap that then does
|
|
24
|
+
* nothing.
|
|
24
25
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
26
|
+
* The order comes from here too: it is `core/actions`' canonical order, the same the remapping screen uses, so the
|
|
27
|
+
* child does not have to relearn the list when switching panels.
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
-
readonly
|
|
30
|
-
readonly
|
|
29
|
+
gameActions: () => readonly {
|
|
30
|
+
readonly action: string;
|
|
31
|
+
readonly label: string;
|
|
31
32
|
}[];
|
|
32
33
|
/** Persistence (platform/storage.ts), injected. */
|
|
33
34
|
store: TouchStore;
|
|
34
35
|
/** Element the --pad-* CSS custom properties are written to: document.documentElement in production
|
|
35
36
|
* (mirrors ui/settings-typo.ts's `root` injection for the same reason — no direct `document` access). */
|
|
36
37
|
root: HTMLElement;
|
|
37
|
-
/** Shared device-class check (
|
|
38
|
+
/** Shared device-class check (the host's, used by several subsystems) — injected, not duplicated. */
|
|
38
39
|
isMobile: () => boolean;
|
|
39
40
|
/** Screen dimensions, injected (never reads `window.innerWidth/innerHeight` directly). */
|
|
40
41
|
viewport: () => {
|
|
41
42
|
w: number;
|
|
42
43
|
h: number;
|
|
43
44
|
};
|
|
44
|
-
/** Shared overlay z-index/focus helper
|
|
45
|
+
/** Shared overlay z-index/focus helper, used by every panel — injected. */
|
|
45
46
|
frontOverlay: (el: HTMLElement | null) => void;
|
|
46
|
-
/** Optional hook fired after applyPadDesign() changes padDesign —
|
|
47
|
-
*
|
|
47
|
+
/** Optional hook fired after applyPadDesign() changes padDesign — whatever draws the button glyphs elsewhere (a
|
|
48
|
+
* pause legend, say) is NOT part of this module's boundary but must still refresh. */
|
|
48
49
|
onPadDesignApplied?: () => void;
|
|
49
50
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
51
|
+
* The on-screen control CAME ON. It exists so the root can turn on by itself what only makes sense on touch — the
|
|
52
|
+
* run button's latch, say: on a virtual button nobody "holds" comfortably, because the finger that holds is the
|
|
53
|
+
* same one that has to reach the others.
|
|
53
54
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
55
|
+
* A hook and not a rule in here: this module draws controls and knows no accessibility setting at all. Whoever owns
|
|
56
|
+
* the players knows what to turn on.
|
|
56
57
|
*/
|
|
57
58
|
onTouchControlsShown?: () => void;
|
|
58
59
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
* escrita dentro da engine.
|
|
60
|
+
* The on-screen controls LEFT the screen — the pair of `onTouchControlsShown`. A root that moves something out of the
|
|
61
|
+
* pad's way (the platformer's minimap corner) moves it back here; `input/` does not reach `render/` for it (issue #167).
|
|
62
|
+
*/
|
|
63
|
+
onTouchControlsHidden?: () => void;
|
|
64
|
+
/**
|
|
65
|
+
* MAY the virtual pad show NOW? Injected, and it is the GAME's policy, not the engine's.
|
|
66
66
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
67
|
+
* Reading the player count, the phase and whether a player has a quiz open here would write one game's policy
|
|
68
|
+
* into the engine — and make the touch layer know that a literacy activity exists. So it is the same move as
|
|
69
|
+
* `isNavigable`: inject the BOOLEAN, not the state. The platformer answers "one player, playing, no challenge
|
|
70
|
+
* open"; a game of another genre answers whatever is true in it.
|
|
70
71
|
*/
|
|
71
72
|
padAllowed: () => boolean;
|
|
73
|
+
/**
|
|
74
|
+
* The window, only to listen for `resize` — the root's (ADR-0232 D4). REQUIRED, and `null` is an answer: a host with no
|
|
75
|
+
* window at all does not listen, and the geometry stays as at boot. A fallback to the global would reach a window the
|
|
76
|
+
* root never handed in, which is what took down every boot in a fake document once this was wired to `createGame`.
|
|
77
|
+
*/
|
|
78
|
+
win: Pick<Window, 'addEventListener'> | null;
|
|
79
|
+
/**
|
|
80
|
+
* Draws ONE slot's choice by its size (ADR-0130 rule 3): five named positions or fewer are a cycle row, more a dropdown.
|
|
81
|
+
* Injected because the drawing lives in `ui/panel-widgets.mountChoice` and this module is a layer below it (ADR-0173);
|
|
82
|
+
* `createGame` hands it in. ABSENT, each slot stays a hand-built `<select>`, whatever its size — a host that builds its
|
|
83
|
+
* own touch panel keeps the control it always had.
|
|
84
|
+
*/
|
|
85
|
+
drawChoice?: (spec: TouchSlotChoice, pick: (action: string) => void) => HTMLElement;
|
|
86
|
+
}
|
|
87
|
+
/** What a slot's choice is drawn from: the slot's name, the game's positions in its words, and the one it carries now. */
|
|
88
|
+
export interface TouchSlotChoice {
|
|
89
|
+
readonly label: string;
|
|
90
|
+
readonly values: readonly {
|
|
91
|
+
readonly value: string;
|
|
92
|
+
readonly label: string;
|
|
93
|
+
}[];
|
|
94
|
+
readonly current: string;
|
|
72
95
|
}
|
|
73
96
|
export declare const IPHONE16_LONG_MM = 141.1;
|
|
74
97
|
export declare const IPHONE16_LONG_PX = 852;
|
|
75
98
|
export declare const IPHONE16_PXMM: number;
|
|
76
|
-
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
99
|
+
/**
|
|
100
|
+
* CSS px per ASSUMED millimetre — an estimate anchored on one phone, NOT a measurement of the device (plan phase 5b).
|
|
101
|
+
* On a mobile, the window's long edge is taken to be an iPhone 16's display (141.1 mm), whatever the device: a 10-inch
|
|
102
|
+
* tablet window of 1280×800 is read as 141.1 mm long, about 9.07 px/mm, where its glass is about 216 mm. On a desktop it is
|
|
103
|
+
* the iPhone 16 ratio, fixed (it does not grow with the monitor). The browser exposes no physical size, so a «real
|
|
104
|
+
* millimetre» is not reachable from here; targets that must meet a floor use the engine's `--alvo-min` (ADR-0163).
|
|
105
|
+
* Pure: `mobile`/`viewW`/`viewH` arrive resolved (isMobile()/innerWidth/innerHeight stay on the impure side).
|
|
106
|
+
*/
|
|
79
107
|
export declare function padPxPerMm(mobile: boolean, viewW: number, viewH: number): number;
|
|
80
108
|
export type HandTag = 'crianca' | 'adulto' | 'inter';
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
109
|
+
/** Sorts a value in mm into the child's-hand / in-between / adult's-hand band (used by the touch settings panel's
|
|
110
|
+
* tags). */
|
|
83
111
|
export declare function padHandTag(v: number, lo: number, hi: number): HandTag;
|
|
84
112
|
export interface PadMm {
|
|
85
113
|
btn: number;
|
|
@@ -99,37 +127,30 @@ export interface PadPhysicalPx {
|
|
|
99
127
|
stickTravelPx: number;
|
|
100
128
|
stickDeadPx: number;
|
|
101
129
|
}
|
|
102
|
-
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
130
|
+
/** All the geometry in px from the configured mm + the px/mm factor — kept pure so it is testable (high/low dpr, small
|
|
131
|
+
* screen, extreme values). applyPadPhysical() only calls this and writes the result into CSS custom properties + the
|
|
132
|
+
* panel's labels. */
|
|
105
133
|
export declare function computePadPhysicalPx(mm: PadMm, pxPerMm: number): PadPhysicalPx;
|
|
106
134
|
export type PadLayout = 'sony' | 'nintendo' | 'microsoft' | 'generic';
|
|
107
|
-
/**
|
|
135
|
+
/** The button-labelling layout from the controller's reported id (a substring/VID heuristic). */
|
|
108
136
|
export declare function padLayoutFromId(id: string | null | undefined): PadLayout;
|
|
109
|
-
/**
|
|
137
|
+
/** The 13 remappable touch slots (d-pad×4, START, buttons 0–3, the four shoulders) — `lbl` is the label's i18n key. */
|
|
110
138
|
export declare const TOUCH_SLOTS: ReadonlyArray<{
|
|
111
139
|
k: string;
|
|
112
140
|
lbl: string;
|
|
113
141
|
}>;
|
|
114
142
|
/**
|
|
115
|
-
*
|
|
143
|
+
* The actions the touch TRANSPORT can carry.
|
|
116
144
|
*
|
|
117
|
-
* ⚠️
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* As duas coisas eram a mesma por acidente enquanto só havia um jogo.
|
|
145
|
+
* ⚠️ IT IS NOT THE `<select>`'S LIST: the options come from `ctx.gameActions()`, because the game decides which actions
|
|
146
|
+
* exist. This list is what THIS transport reaches — and it is against it that `input/touch-bindings`' gate checks the
|
|
147
|
+
* dispatch recognises everything that can be offered. The two were the same by accident while there was one game.
|
|
121
148
|
*/
|
|
122
149
|
export declare const TOUCH_ACTS: readonly string[];
|
|
123
|
-
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
150
|
+
/** Merges the persisted map (loose JSON from localStorage) over TOUCH_DEFAULT. It does NOT validate keys/values
|
|
151
|
+
* against TOUCH_SLOTS/TOUCH_ACTS — malformed JSON with strange keys/values passes as it is (it only fails if it is not
|
|
152
|
+
* an object). */
|
|
126
153
|
export declare function normalizeTouchMap(stored: unknown): Record<string, string>;
|
|
127
|
-
export type PadKind = 'kb' | 'x' | 'd';
|
|
128
|
-
/** UNUSED hoje — grep em game.js (`\bpadKind\b`) só acha a própria definição, nenhum chamador. Extraído porque
|
|
129
|
-
* a fronteira explicitamente listou; NÃO apagado (relatado, não conserto). Lê navigator.getGamepads() direto,
|
|
130
|
-
* no mesmo padrão de ui/settings-audio.ts / core/i18n.ts (acesso direto a navigator, sem DI) — mesmo assim,
|
|
131
|
-
* é semanticamente "ler o controle", território do agente de input/gamepad; ver a nota de fronteira no retorno. */
|
|
132
|
-
export declare function padKind(): PadKind;
|
|
133
154
|
export interface PadMmPatch {
|
|
134
155
|
btn?: number;
|
|
135
156
|
gap?: number;
|
|
@@ -138,36 +159,90 @@ export interface PadMmPatch {
|
|
|
138
159
|
dpad?: number;
|
|
139
160
|
}
|
|
140
161
|
export interface TouchApi {
|
|
141
|
-
/** (Re)
|
|
162
|
+
/** (Re)draws #touchmap-list from the current touchMap and wires each slot's <select>. */
|
|
142
163
|
renderTouchMap(): void;
|
|
143
|
-
/**
|
|
164
|
+
/** Opens the on-screen buttons dialog (#touchcfg). */
|
|
144
165
|
openTouchCfg(): void;
|
|
145
|
-
/**
|
|
166
|
+
/** Closes the #touchcfg dialog and gives focus back to the button that opened it. */
|
|
146
167
|
closeTouchCfg(): void;
|
|
147
|
-
/**
|
|
148
|
-
*
|
|
149
|
-
*
|
|
168
|
+
/** Hides the touch controls (the keyboard or a physical pad took over, or a menu opened on top). The `reason`
|
|
169
|
+
* parameter is only a debugging label at call sites; the function ignores it and keeps it so existing calls do not
|
|
170
|
+
* break. */
|
|
150
171
|
hideTouchControls(reason?: string): void;
|
|
151
|
-
/**
|
|
152
|
-
*
|
|
172
|
+
/** Shows the touch controls (a touch/click was detected). A no-op whenever the game's `padAllowed()` says no — on
|
|
173
|
+
* those screens the child touches the on-screen buttons directly. */
|
|
153
174
|
showTouchControls(): void;
|
|
154
|
-
/**
|
|
175
|
+
/** Switches between the virtual stick and the cross (D-pad), following `padDir`. */
|
|
155
176
|
applyDirStyle(): void;
|
|
156
|
-
/**
|
|
177
|
+
/** Recomputes all the geometry (mm→px) and writes the custom properties + the panel's labels. */
|
|
157
178
|
applyPadPhysical(): void;
|
|
158
|
-
/**
|
|
179
|
+
/** Updates one or more sizes (mm), persists them and reapplies the geometry. */
|
|
159
180
|
setPadMm(patch: PadMmPatch): void;
|
|
160
|
-
/**
|
|
161
|
-
*
|
|
162
|
-
* design resultante. */
|
|
181
|
+
/** Applies (and optionally switches) the button design; persists it; repaints the touch diamond's buttons
|
|
182
|
+
* (#pad-diamond); fires ctx.onPadDesignApplied(). Returns the resulting design. */
|
|
163
183
|
applyPadDesign(d?: string): string;
|
|
164
|
-
/**
|
|
184
|
+
/** The button design currently active ('generic'|'microsoft'|'sony'|'nintendo'). */
|
|
165
185
|
getPadDesign(): string;
|
|
166
|
-
/**
|
|
186
|
+
/** A live reference to the current touch map (slot → action) — mutated by renderTouchMap(); NOT a copy. */
|
|
167
187
|
getTouchMap(): Record<string, string>;
|
|
168
|
-
/**
|
|
188
|
+
/** The virtual stick's useful travel in px, recomputed on every applyPadPhysical(). */
|
|
169
189
|
getStickTravelPx(): number;
|
|
170
|
-
/**
|
|
190
|
+
/** The virtual stick's dead zone in px, recomputed on every applyPadPhysical(). */
|
|
171
191
|
getStickDeadPx(): number;
|
|
172
192
|
}
|
|
173
193
|
export declare function initTouch(ctx: TouchCtx): TouchApi;
|
|
194
|
+
/** The three `document` things the pad's markup needs. Same shape as `ui/panel-shell`. */
|
|
195
|
+
export interface TouchMarkupCtx {
|
|
196
|
+
/** Translates in the page's language — the root's translator (ADR-0232 D3). REQUIRED: text built from nowhere is a raw key. */
|
|
197
|
+
t: Translate;
|
|
198
|
+
find: (sel: string) => HTMLElement | null;
|
|
199
|
+
create: (tag: string) => HTMLElement;
|
|
200
|
+
}
|
|
201
|
+
export interface TouchMarkupSpec {
|
|
202
|
+
/** The LIVE slot→action map (`TOUCH_DEFAULT` merged with what the child remapped). */
|
|
203
|
+
readonly map: Readonly<Record<string, string>>;
|
|
204
|
+
/** The actions THIS game declares (`presetActions(preset)`). Empty = nothing to draw. */
|
|
205
|
+
readonly gameActions: ReadonlySet<string>;
|
|
206
|
+
/** Each slot's label, already translated — the GAME's word for the action it fires. */
|
|
207
|
+
readonly slotLabel: (slot: string) => string;
|
|
208
|
+
/** The d-pad's drawing: `cruz` (cross) or `analogico` (stick). It comes from the pad's persisted setting (`padDir`). */
|
|
209
|
+
readonly dpad?: 'cruz' | 'analogico';
|
|
210
|
+
}
|
|
211
|
+
export declare function buttonName(t: Translate, slotAction: string): string | null;
|
|
212
|
+
/**
|
|
213
|
+
* Builds (or reuses) `#touch-controls` and returns it.
|
|
214
|
+
*
|
|
215
|
+
* ⚠️ IT IS BORN HIDDEN, and that is not a detail: switching by modality belongs to `touch-bindings` — a touch or click
|
|
216
|
+
* SHOWS it, the keyboard or a pad HIDES it. A pad born on screen covers the game of whoever will never touch it.
|
|
217
|
+
*
|
|
218
|
+
* 🔴 ONLY WHAT THE GAME NAMES, since ADR-0162 — which undid ADR-0157's minimum (directions and four buttons in every
|
|
219
|
+
* game, with the physical legend on the unnamed ones): «Vale para todos os botões: somente aparecem se o jogo os
|
|
220
|
+
* nomeia.» SELECT and START always stay, because they are the pause's doors. ⚠️ A game that names no direction does not
|
|
221
|
+
* move through menus by touch; that is why `consumer-quiz` declares the positions it uses. The four buttons sit in a 2×2
|
|
222
|
+
* block by the action's NUMBER (ADR-0160): 1 and 4 on top, 2 and 3 below.
|
|
223
|
+
*
|
|
224
|
+
* Idempotent: mounting twice returns the same node, its content rebuilt for the map of now.
|
|
225
|
+
*/
|
|
226
|
+
export declare function mountTouchControls(ctx: TouchMarkupCtx, spec: TouchMarkupSpec): HTMLElement;
|
|
227
|
+
/**
|
|
228
|
+
* What this game does NOT reach by touch, said instead of kept quiet — the half of ADR-0143 §4 that is not markup.
|
|
229
|
+
*
|
|
230
|
+
* 📌 It returns LINES and does not throw: a host gap never takes the boot down, by the same rule the rest of
|
|
231
|
+
* `problems` follows. The sentences go to the consumer that INTEGRATES the engine, not to a child.
|
|
232
|
+
*/
|
|
233
|
+
export declare function touchGaps(spec: Pick<TouchMarkupSpec, 'map' | 'gameActions'>): string[];
|
|
234
|
+
export type PersonaKey = 'crianca-pequena' | 'crianca-grande' | 'adulto-pequeno' | 'adulto-maos-grandes';
|
|
235
|
+
export interface PersonaDoPad {
|
|
236
|
+
readonly key: PersonaKey;
|
|
237
|
+
/** The i18n key of the persona's name. */
|
|
238
|
+
readonly label: string;
|
|
239
|
+
readonly mm: Readonly<PadMm>;
|
|
240
|
+
}
|
|
241
|
+
/** The four, in the Dev's order. */
|
|
242
|
+
export declare const PERSONAS_DO_PAD: readonly PersonaDoPad[];
|
|
243
|
+
/**
|
|
244
|
+
* The persona whose button is closest to `btnMm` — what the step control shows for a pad that was sized before
|
|
245
|
+
* the personas existed (the factory 12.5 mm reads as «small adult»). Ties go to the LARGER button: when in doubt,
|
|
246
|
+
* the easier target.
|
|
247
|
+
*/
|
|
248
|
+
export declare function closestPersona(btnMm: number): number;
|