@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,49 +1,45 @@
|
|
|
1
1
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
import type { Translate, Translator } from '../core/i18n.js';
|
|
2
3
|
import type { PlayerView } from '../core/entity.js';
|
|
3
4
|
import type { PlayerAudioOut } from '../platform/audio-sonar.js';
|
|
4
5
|
import type { DomQuery } from '../core/dom-query.js';
|
|
5
|
-
|
|
6
|
+
import type { PanelShellCtx } from './panel-shell.js';
|
|
7
|
+
import { type TtsPanel, type VoiceSettingsStore } from './voice-settings.js';
|
|
6
8
|
/** Minimal platform/storage.ts shape this module needs (get/set only — no direct localStorage access). */
|
|
7
9
|
export interface AudioStore {
|
|
8
10
|
get(key: string, fallback?: string | null): string | null;
|
|
9
11
|
set(key: string, value: string | number | boolean): boolean;
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
k: string;
|
|
13
|
-
lbl: string;
|
|
14
|
-
}
|
|
15
|
-
export interface AudioCatState {
|
|
16
|
-
on: boolean;
|
|
17
|
-
vol: number;
|
|
18
|
-
}
|
|
19
|
-
export interface TtsPanelEngine {
|
|
20
|
-
id: string;
|
|
21
|
-
speak: (text: string) => void;
|
|
22
|
-
}
|
|
23
|
-
/** Minimal shape of the injected `tts` (platform/tts.ts's createTts() instance) this panel drives. */
|
|
24
|
-
export interface TtsPanel {
|
|
25
|
-
getEngineSel: () => string;
|
|
26
|
-
setEngineSel: (v: string) => void;
|
|
27
|
-
getEngine: () => TtsPanelEngine | null;
|
|
28
|
-
getVoiceObj: () => SpeechSynthesisVoice | null;
|
|
29
|
-
setVoiceObj: (v: SpeechSynthesisVoice | null) => void;
|
|
30
|
-
loadTTS: () => void;
|
|
31
|
-
narrate: (text: string) => void;
|
|
32
|
-
/**
|
|
33
|
-
* ESTA MONTAGEM TEM MOTOR NEURAL? (ADR-0094) OPCIONAL, e a ausência vale `true`: um falso de teste
|
|
34
|
-
* escrito antes deste campo não tem opinião sobre motores neurais, e fazê-lo esconder o Piper mudaria o
|
|
35
|
-
* que esse teste afirma sem que ninguém tenha escrito a mudança.
|
|
36
|
-
*/
|
|
37
|
-
neuralDisponivel?: boolean;
|
|
38
|
-
}
|
|
13
|
+
import { type AudioCatDef, type AudioCatState } from './audio-choices.js';
|
|
39
14
|
/**
|
|
40
|
-
*
|
|
15
|
+
* A player's dedicated audio output: the device id and the AudioContext/gain it opened.
|
|
41
16
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
17
|
+
* The id is the entity's (a persisted player preference); the `_ac`/`_acOut` pair is `platform/audio-sonar`'s, which
|
|
18
|
+
* creates them. Hence the intersection instead of three keys in one view.
|
|
44
19
|
*/
|
|
45
20
|
export type SinkPlayer = PlayerView<'audioSink'> & PlayerAudioOut;
|
|
21
|
+
/**
|
|
22
|
+
* THE SETTINGS THIS PANEL READS AND WRITES — the page's settings store, built by the root (ADR-0232 D2c, issue #207): the
|
|
23
|
+
* voice section's (the spoken index and the speech rate) and the default blind-mode writer. A root passes `core/state`.
|
|
24
|
+
*/
|
|
25
|
+
export interface SettingsAudioSettings extends VoiceSettingsStore {
|
|
26
|
+
/** Write, persist, notify — used when the host injects no `setBlindMode`. */
|
|
27
|
+
setBlindModeValue(on: boolean): void;
|
|
28
|
+
}
|
|
46
29
|
export interface SettingsAudioCtx {
|
|
30
|
+
/**
|
|
31
|
+
* The root's translator (ADR-0232 D3): its `t`, and the page's language as a BCP-47 tag, which picks the system voices the
|
|
32
|
+
* list offers. A Pick and not a bare `t`, because the voice list reads the language.
|
|
33
|
+
*/
|
|
34
|
+
translator: Pick<Translator, 't' | 'bcp47'>;
|
|
35
|
+
/** The page's settings store (see `SettingsAudioSettings`). REQUIRED (ADR-0232): no module reads it by import. */
|
|
36
|
+
settings: SettingsAudioSettings;
|
|
37
|
+
/**
|
|
38
|
+
* Subscribes to a setting's change and returns the release. REQUIRED, and it is the ROOT'S door (`stateOn` in
|
|
39
|
+
* `createGame`): a subscription made through it ends with the root's `dispose()` (ADR-0220), where one made on the
|
|
40
|
+
* page's bus by import went on redrawing the panel of an ended root.
|
|
41
|
+
*/
|
|
42
|
+
on: (setting: 'blindMode', react: (on: boolean) => void) => () => void;
|
|
47
43
|
/** DOM selector (querySelector), injected — never reaches `document` globally. */
|
|
48
44
|
$: DomQuery;
|
|
49
45
|
/** Screen-reader "polite" announcement (core/a11y-sr's srSay), injected. */
|
|
@@ -51,15 +47,38 @@ export interface SettingsAudioCtx {
|
|
|
51
47
|
/** Persistence (platform/storage.ts) — only the TTS engine/voice choice and the per-player audio sink live
|
|
52
48
|
* here; the mixer categories persist through `setCatGain` (platform/audio.ts already saves them). */
|
|
53
49
|
store: AudioStore;
|
|
54
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Creates an element KEEPING its type — the outputs' `<select>` answers `.value`, the voice list needs `<option>`.
|
|
52
|
+
*
|
|
53
|
+
* 📌 Named like its neighbour, `ui/voice-settings`'s `newOption`.
|
|
54
|
+
*/
|
|
55
|
+
newElement: <K extends keyof HTMLElementTagNameMap>(tag: K) => HTMLElementTagNameMap[K];
|
|
56
|
+
/** THIS device's speech synthesis. With no voices, `voices` returns an empty list — which is an answer. */
|
|
57
|
+
speech: {
|
|
58
|
+
voices: () => readonly SpeechSynthesisVoice[];
|
|
59
|
+
speakSample: (sample: string, chosen: SpeechSynthesisVoice | null) => void;
|
|
60
|
+
whenVoicesChange: (again: () => void) => void;
|
|
61
|
+
};
|
|
62
|
+
/** This device's audio outputs, and what it can do with them. */
|
|
63
|
+
audioOutputs: {
|
|
64
|
+
/** Can this browser LIST outputs? */
|
|
65
|
+
canList: () => boolean;
|
|
66
|
+
/** Can this browser ROUTE sound to a chosen output? (It needs an AudioContext.) */
|
|
67
|
+
canRoute: () => boolean;
|
|
68
|
+
/** The outputs already known, without asking permission — many come unnamed, which is the browser's design. */
|
|
69
|
+
list: () => Promise<readonly MediaDeviceInfo[]>;
|
|
70
|
+
/** Asks permission so the outputs have NAMES, and returns them. */
|
|
71
|
+
detect: () => Promise<readonly MediaDeviceInfo[]>;
|
|
72
|
+
};
|
|
73
|
+
/** Category catalog (platform/audio-mixer.ts's AUDIO_CATS) — pure data, injected. */
|
|
55
74
|
audioCats: readonly AudioCatDef[];
|
|
56
|
-
/** Shared helper (
|
|
75
|
+
/** Shared helper (the host's): toggles a button's .is-on/aria-pressed. Used by many other panels too — not ours. */
|
|
57
76
|
toggleBtn: (b: HTMLElement, on: boolean) => void;
|
|
58
|
-
/** Shared: current player count
|
|
77
|
+
/** Shared: current player count, read live from the host. */
|
|
59
78
|
getNumPlayers: () => number;
|
|
60
|
-
/** Shared: the live players array
|
|
79
|
+
/** Shared: the live players array — only `.audioSink`/`._ac`/`._acOut` are touched here. */
|
|
61
80
|
getPlayers: () => SinkPlayer[];
|
|
62
|
-
/** Master mute (platform/audio.ts's soundOn), read/write live
|
|
81
|
+
/** Master mute (platform/audio.ts's soundOn), read/write live. */
|
|
63
82
|
getSoundOn: () => boolean;
|
|
64
83
|
setSoundOn: (on: boolean) => void;
|
|
65
84
|
/** Master volume 0..1 (platform/audio.ts's volume). */
|
|
@@ -71,100 +90,64 @@ export interface SettingsAudioCtx {
|
|
|
71
90
|
setCatGain: (cat: string) => void;
|
|
72
91
|
/** Narration engine/voice panel API (platform/tts.ts's createTts() instance). */
|
|
73
92
|
tts: TtsPanel;
|
|
74
|
-
/**
|
|
75
|
-
*
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
/**
|
|
93
|
+
/** Blind-mode state (NOT owned by this panel). The toggle's widget lives inside #audio; the state and its gameplay
|
|
94
|
+
* side effects belong to the host. */
|
|
95
|
+
getBlindMode: () => boolean;
|
|
96
|
+
setBlindMode?: (on: boolean) => void;
|
|
97
|
+
/** Cane hit spacing. Same reasoning as blind mode. */
|
|
79
98
|
getCaneBlockDiv: () => number;
|
|
80
99
|
setCaneBlockDiv: (div: number) => void;
|
|
81
100
|
/**
|
|
82
|
-
*
|
|
101
|
+
* Moves the rows' prose to the footer (`ui/settings-panel` → `fillExplain`). Called on EVERY render.
|
|
83
102
|
*
|
|
84
|
-
* ⚠️
|
|
85
|
-
*
|
|
86
|
-
* voltam com a prosa lá dentro — então a explicação aparece duas vezes, no rodapé e sob o rótulo, a
|
|
87
|
-
* partir do primeiro clique. O `CLAUDE.md` §4 regista exatamente isto, e a issue #109 já o consertou
|
|
88
|
-
* uma vez noutros painéis.
|
|
103
|
+
* ⚠️ Relabelling a row puts its `.opt-hint` back inside it — so without this call the explanation appears twice, in
|
|
104
|
+
* the footer and under the label, from the first click. `CLAUDE.md` §4 records exactly this (issue #109).
|
|
89
105
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
106
|
+
* Optional in the signature because a consumer can mount the panel without the shell (a test): without the shell
|
|
107
|
+
* there is no footer to duplicate.
|
|
92
108
|
*/
|
|
93
109
|
fillExplain?: (card: HTMLElement | null) => void;
|
|
94
110
|
}
|
|
95
111
|
export interface SettingsAudioApi {
|
|
96
|
-
/** Re-renders the whole #audio overlay content (master, categories, nav-sound, TTS panel, sinks,
|
|
97
|
-
* cane-div sync) and re-wires whatever it (re)creates. Idempotent;
|
|
112
|
+
/** Re-renders the whole #audio overlay content (master, categories, nav-sound, TTS panel, sinks, blind-mode and
|
|
113
|
+
* cane-div sync) and re-wires whatever it (re)creates. Idempotent; the host calls it on every open. */
|
|
98
114
|
renderAudio: () => void;
|
|
99
|
-
/** Refreshes the #opt-modocego button. Exported because
|
|
100
|
-
|
|
101
|
-
/** Refreshes the #opt-tts button
|
|
102
|
-
* iconAct('tts', …) toggles audioCat.tts.on itself and then calls this. */
|
|
115
|
+
/** Refreshes the #opt-modocego button. Exported because the host's blind-mode setter calls it directly. */
|
|
116
|
+
reflectBlindMode: () => void;
|
|
117
|
+
/** Refreshes the #opt-tts button, the #tts-vol slider and the #tts-engine selection. */
|
|
103
118
|
reflectTts: () => void;
|
|
119
|
+
/**
|
|
120
|
+
* Shows ONE mixer category as the mixer holds it now — its switch and its volume wherever this panel draws them, and the
|
|
121
|
+
* left-the-default marks — without redrawing anything else. The host calls it for every change the mixer tells
|
|
122
|
+
* (`Audio.onCatChange`, ADR-0247): a category written by a game, the bar or another panel.
|
|
123
|
+
*/
|
|
124
|
+
reflectCategory: (cat: string) => void;
|
|
104
125
|
}
|
|
105
|
-
/** Categorias de NAVEGAÇÃO SONORA (bengala/sonar/guarda/guia) — volume geral separado do som do jogo. */
|
|
106
|
-
export declare const NAV_CATS: readonly ["sonar", "guard", "guide"];
|
|
107
|
-
/** Categorias GERAIS do jogo (TTS fica na seção Voz, fora desta lista). */
|
|
108
|
-
export declare const GEN_CATS: readonly ["music", "ambient", "interact", "earcons", "other"];
|
|
109
|
-
/** 0..1 -> 0..100 rounded (slider display value). */
|
|
110
|
-
export declare function volPercent(v: number): number;
|
|
111
|
-
/** One category row's markup (volume slider + on/off switch). Pure — resolves label/state from the given data,
|
|
112
|
-
* never from a global. Returns '' for an unknown/missing category (defensive; never hit with real catalogs). */
|
|
113
|
-
export declare function catRowHTML(k: string, cats: readonly AudioCatDef[], state: Readonly<Record<string, AudioCatState>>): string;
|
|
114
|
-
/** Full innerHTML for a category list (#audio-list or #navsound-list). Pure string building — no DOM. */
|
|
115
|
-
export declare function catsListHTML(keys: readonly string[], cats: readonly AudioCatDef[], state: Readonly<Record<string, AudioCatState>>): string;
|
|
116
|
-
/** #navsound-master's value: the loudest of the nav categories, as a 0..100 slider value. */
|
|
117
|
-
export declare function navMasterVolume(state: Readonly<Record<string, AudioCatState>>, navCats?: readonly string[]): number;
|
|
118
|
-
/** Cane-hit spacing select -> validated int (garbage/empty -> 1, "a batida por bloco"). */
|
|
119
|
-
export declare function parseCaneDiv(raw: string): number;
|
|
120
|
-
/** srSay text for a cane-hit spacing choice. The two halves are ONE sentence per case, not a shared prefix
|
|
121
|
-
* plus a tail: a language that renders this as "One tap per block (cane)" needs to move the word "cane". */
|
|
122
|
-
export declare function caneDivMessage(div: number): string;
|
|
123
|
-
/** #tts-engine's option catalog: (value, i18n KEY of the label). The engine NAMES are proper nouns and stay
|
|
124
|
-
* put; what translates is the parenthetical that explains each one. Keys, not text — see input/devices. */
|
|
125
|
-
export declare const TTS_ENGINE_OPTIONS: readonly (readonly [string, string])[];
|
|
126
126
|
/**
|
|
127
|
-
*
|
|
127
|
+
* MOUNTS THIS PANEL'S INSIDE — the controls and containers it reaches.
|
|
128
128
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* funcionar é pior que uma opção a menos: quem a escolhe fica à espera de um download que nunca começa, e
|
|
132
|
-
* quem navega por escuta não tem como ver que não começou.
|
|
129
|
+
* 🔴 IT IS THE LARGEST INVISIBLE CONTRACT OF THE PANELS: this file looks for `#opt-modocego`, `#cane-div`,
|
|
130
|
+
* `#opt-menuindex`, `#opt-tts`, `#tts-vol` and more, and nothing in the type says so — which is why it builds them.
|
|
133
131
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
132
|
+
* ⚠️ AND EACH ONE'S TAG MATTERS, which makes this the worst place to guess: the voice selects have to be `<select>` — the
|
|
133
|
+
* panel writes `.value` into them —, the volumes `<input type=range>`, and `#cane-div` is the cycle row `caneRow` builds
|
|
134
|
+
* (a host's own `<select>` is still read). On a `<button>`,
|
|
135
|
+
* writing `.value` gives no error at all: it creates a property nobody reads, and the child's choice vanishes silently.
|
|
136
|
+
*
|
|
137
|
+
* 📌 THE ORDER IS THE DECISION (ADR-0044 §2), from general to particular (see the composition below).
|
|
138
|
+
*
|
|
139
|
+
* ⚠️ `#opt-sound` IS NOT CREATED HERE, deliberately: it is this setting's mirror on the quick bar, outside the panel.
|
|
140
|
+
* `reflectMaster` reaches it with a guard (`if (sb)`), because a game may have no bar.
|
|
141
|
+
*
|
|
142
|
+
* Idempotent: calling it twice reuses what exists instead of duplicating it.
|
|
136
143
|
*/
|
|
137
|
-
export declare function
|
|
138
|
-
export interface VoiceLike {
|
|
139
|
-
name: string;
|
|
140
|
-
lang: string;
|
|
141
|
-
}
|
|
144
|
+
export declare function mountAudioInside(t: Translate, ctx: PanelShellCtx, card: HTMLElement, list: HTMLElement): void;
|
|
142
145
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* Chamava-se `pickPtVoices` e filtrava `/^pt/i` fixo, de modo que o jogo em inglês oferecia à pessoa uma
|
|
146
|
-
* lista de vozes PORTUGUESAS para ler texto em inglês. O nome dizia a verdade sobre o que fazia e mentia
|
|
147
|
-
* sobre o que devia fazer.
|
|
146
|
+
* MOUNTS THE AUDIO PANEL'S INSIDE (ADR-0151 §2 item 4): the general sound — switch and volume — and then the shell's
|
|
147
|
+
* list with the four taste categories (music, ambience, interaction, earcons).
|
|
148
148
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
* exata. O recuo para a lista inteira fica: uma lista vazia seria pior que uma lista no idioma errado, que
|
|
152
|
-
* ao menos a pessoa pode ouvir e rejeitar.
|
|
149
|
+
* ⚠️ THE IDS ARE THE ONES `initSettingsAudio` ALREADY LISTENS TO (`#audio-master`, `#audio-master-vol`, `#audio-list`). And
|
|
150
|
+
* the same order rule: mount BEFORE `init`. Idempotent and relabellable, like its hearing sibling.
|
|
153
151
|
*/
|
|
154
|
-
export declare function
|
|
155
|
-
/** "<name> (<lang>)" option label. */
|
|
156
|
-
export declare function voiceLabel(v: VoiceLike): string;
|
|
157
|
-
/** Whether the browser can list/switch audio outputs at all (gates the #audio-sinks hint copy). */
|
|
158
|
-
export declare function sinksSupported(hasEnumerateDevices: boolean, hasAudioContextCtor: boolean): boolean;
|
|
159
|
-
export interface SinkDeviceLike {
|
|
160
|
-
deviceId: string;
|
|
161
|
-
label?: string;
|
|
162
|
-
}
|
|
163
|
-
/** A device's option label, falling back to a 1-based "Saída N" when the browser withholds the real label
|
|
164
|
-
* (no getUserMedia permission granted yet). */
|
|
165
|
-
export declare function sinkOptionLabel(d: SinkDeviceLike, index: number): string;
|
|
166
|
-
/** A player's current sink select value ('' = default/shared). */
|
|
167
|
-
export declare function sinkSelectValue(p: {
|
|
168
|
-
audioSink?: string | null;
|
|
169
|
-
} | undefined): string;
|
|
152
|
+
export declare function mountSoundInside(t: Translate, ctx: PanelShellCtx, card: HTMLElement, list: HTMLElement): void;
|
|
170
153
|
export declare function initSettingsAudio(ctx: SettingsAudioCtx): SettingsAudioApi;
|