Commit graph

993 commits

Author SHA1 Message Date
Joshua Horton
8059970a7a
change(web): apply suggestion from code-review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-05-16 13:58:08 +07:00
Joshua Horton
ecdfba020f fix(web): empty layout fontSize property should default to 1em
Fixes: #13908
Fixes: KEYMAN-WEB-RK
Cherry-pick-of: #13959

Fun fact:  `Number('')` returns 0, not NaN!  I thought it would do the latter in #13838, which is what led to the issue this PR addresses.
2025-05-16 13:19:14 +07:00
Joshua Horton
e929eb141e fix(web): sustain active batched-layout mode when keyboard is switched
Fixes: #13859
Fixes: KEYMAN-WEB-R4
Cherry-pick-of: #13860
2025-05-08 15:48:00 +07:00
Joshua Horton
04d479e5a9 change(web): use pt-style sizing for unitless touch-layout fontsizes
Cherry-pick-of: #13774
2025-05-06 09:44:31 +07:00
Joshua Horton
d58dd8e73c change(web): apply suggestion from PR review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-05-06 09:44:31 +07:00
Joshua Horton
71d179f02f fix(web): add robustness for bad touch-layout fontsize specs
Fixes: #13766
Fixes: KEYMAN-WEB-QX

It seems that at some point, Developer has been compiling raw "12" values in the touch-layout JSON as a numeric 12 for the fontsize field.  This clearly happened for the inuktitut_pirurvik keyboard; we should also inspect urdu_phonetic, which has the same raw "12".

This change ensures that Web can handle this case without spewing tons of warning/error messages.  It also adds error-logging to help with diagnosis for any related issue in the future.
2025-05-06 09:44:31 +07:00
Joshua Horton
ab2c2f51cb
chore: fix indentation in worker-main/build.sh
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-05-02 08:13:47 +07:00
Joshua Horton
a29568744c maint(web): run LMLayer tests during standard Web module tests
Fixes: #12872

Test-bot: skip
2025-04-30 15:10:02 +07:00
Joshua Horton
cdda6e8ce5
Merge pull request #13646 from keymanapp/fix/web/match-osk-and-banner-font-scaling
fix(web): match banner font scaling to osk font scaling
2025-04-21 09:10:48 +07:00
Eberhard Beilharz
c1683b4be2
chore(web): improve error logging
Previously logging an error resulted in two Sentry issues to be created.
This change now combines the log message and the error into one call to
`console.error`, thus resulting in only one Sentry issue being created.
2025-04-03 16:35:09 +02:00
Joshua Horton
970db6f823 chore(web): one more clean-up nit 2025-04-03 15:49:39 +07:00
Joshua Horton
41106a1d85 chore(web): code cleanup per review 2025-04-03 15:47:03 +07:00
Joshua Horton
8a6f5ac8ab fix(web): prevent div-by-zero potential from prior commit 2025-04-03 08:12:02 +07:00
Joshua Horton
831ca4eeaf fix(web): add banner font downscaling
Fixes: #13644

The banner should also double-check the height of its suggestions, applying downscaling where needed to ensure the suggestions' text does not flow out of bounds.  Additionally, if the main keyboard body's keys required downscaling due to text height, this will likely also result in similar scaling for the suggestions.
2025-04-02 13:15:24 +07:00
Joshua Horton
426e3d1d3a fix(web): apply layout font-scaling to banner
When a keyboard's layout specifies font-upscaling, that scaling should also be applied to the banner.  This was not previously being done, which could lead to font-size discrepancies between the two (as noted with `khmer_angkor` in the base issue).
2025-04-02 13:15:20 +07:00
Joshua Horton
eae55e4fa1 fix(web): remove extra px offset from last OSK row
Fixes: #13620

Turns out there was actually a final-row pixel offset being applied for the OSK.  I _believe_ this was something originally done for touch-oriented OSKs that ended up applied to all during 17.0's OSK refactoring efforts.

kmwosk.css does define layer-group padding above and below (1 px each) for touch keyboards already.  Furthermore, things look fine when removing this extra 1px offset on the bottom from the last row.  I think we're fine to just drop this minor offset and move on for now.
2025-03-31 10:41:50 +07:00
Joshua Horton
71df37930f
Merge pull request #13360 from keymanapp/feat/web/gesture-error-traces
feat(web): adds gesture 'traces' for warning/error logging
2025-03-19 08:13:48 +07:00
Joshua Horton
a015fd0296 change(web): context-state logging now oldest to most recent
The gesture traces themselves, within their indentation, maintain stacktrace-style ordering.
2025-03-18 14:19:37 +07:00
Joshua Horton
76a5e067e9 fix(web): unload and load should use consistent, canEnable check
Fixes: #13512
Fixes: KEYMAN-WEB-QD
2025-03-18 14:07:07 +07:00
Joshua Horton
1b8c2d8776
Merge pull request #13359 from keymanapp/fix/web/bksp-auto-cancel-on-new-input
fix(web): cancel held backspace on new key input
2025-03-17 08:39:36 +07:00
Joshua Horton
fba9b236cc fix(web): cancel held backspace on new key input
As identified in the analysis for #13344, held backspaces have not been cancelled when receiving new inputs.  It's better and cleaner to have it act similarly to normal keystrokes - receiving a new key input autocompletes any currently-held output keys.

The current, existing behavior also has the potential to get particularly messy with multitaps, which restore the context at their start.  If a backspace is held and then a multitap begins, each new tap of the multitap would undo the backspaces that triggered since the first tap of the multitap.
2025-02-27 13:00:44 +07:00
Joshua Horton
94827b52b2 feat(web): adds gesture 'traces' for warning/error logging
To facilitate debugging cases where gestures don't work as intended, this adds sanitized logging for keystrokes resulting for gestures.  These are only to be output when a relevant error or warning is emitted.

This is primarily being added to facilitate investigation of #13344.
2025-02-27 12:50:35 +07:00
Joshua Horton
2db8fa089c chore(web): clean a few commented-out vars 2025-02-27 09:36:25 +07:00
Joshua Horton
f254f38440 chore(web): remove dead osk-height calculation method
Some of the OSK optimization rework in 17.0 found a better way to handle this that has proven stable; no reason to keep it around any longer.
2025-02-27 09:34:35 +07:00
Joshua Horton
b7c13bdc66 chore(web): remove dead key-target function 2025-02-27 09:31:13 +07:00
Joshua Horton
ecc3bc18e7 chore(web): remove dead bksp functions
These were replaced by the HeldRepeater gesture-handler type.
2025-02-27 09:28:18 +07:00
Joshua Horton
0a8c99e322
Merge pull request #13291 from keymanapp/fix/web/engine-main-headless-tests
fix(web): reconnect, patch up engine/main headless unit tests
2025-02-25 08:17:48 +07:00
Joshua Horton
72a9e8b8fe fix(web): fix up applied suggestion - properly "fill in" Worker type 2025-02-24 13:06:17 +07:00
Joshua Horton
accdb3752e
change(web): apply focused try-catch suggestion from review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-02-24 09:15:50 +07:00
Joshua Horton
3d879ed295 docs(web): remove outdated comment in engine/main/build.sh 2025-02-21 08:16:21 +07:00
Joshua Horton
94df946b0e fix(web): reconnect, patch up engine/main headless unit tests 2025-02-20 12:13:11 +07:00
Joshua Horton
baf2150542 fix(web): properly support workerless use of Web engine
Fixes: #13262
Fixes: KEYMANWEB-COM-1VH
2025-02-20 12:06:28 +07:00
Joshua Horton
14bca9fffd
Merge pull request #13196 from keymanapp/chore/web/fix-coverage-reporting
chore(web): fix coverage-reporting artifact
2025-02-14 14:57:05 +07:00
Joshua Horton
90b4318d84
Merge pull request #13158 from keymanapp/chore/web/top-level-clean-predictive-text
chore(web): ensure /web/build.sh clean triggers all predictive-text child actions
2025-02-14 14:56:52 +07:00
Joshua Horton
b2598e76ba chore(web): fix coverage-reporting artifact
Fixes: #13195
2025-02-12 15:56:54 +07:00
Joshua Horton
3e456bbf3b chore(web): top-level clean affects predictive-text child projects
Addresses parts of #12735.
2025-02-07 10:02:56 +07:00
Joshua Horton
c3cd0493ff docs(web): relocate gesture docs to web/docs/internal 2025-02-06 10:33:28 +07:00
Joshua Horton
0e7b47e075
Merge pull request #12927 from keymanapp/fix/web/context-match-applied-suggestions
fix(web): correctly track context transitions caused by applying suggestions 🖲️
2025-02-03 15:11:01 +07:00
Joshua Horton
3c7ae5d7f6
Merge pull request #12925 from keymanapp/fix/web/context-match-path-ordering
fix(web): correct edit-path ordering at source 🖲️
2025-02-03 15:10:50 +07:00
Joshua Horton
316395a180
Merge pull request #12911 from keymanapp/change/web/context-tracker-backspaces-and-alignment
change(web): add context tracker bksp handling, alignment-offset calculations 🖲️
2025-02-03 15:10:36 +07:00
Joshua Horton
8abff180db
Merge pull request #13048 from keymanapp/fix/web/keyboard-query-errors
fix(web): keyboard query error states should always provide informative Error objects, reports
2025-01-30 13:43:56 +07:00
Joshua Horton
3bf00b867c
Merge pull request #13068 from keymanapp/fix/web/disable-suggestion-autohighlight
fix(web): disabled autoaccept should not autohighlight suggestions
2025-01-30 08:51:52 +07:00
Joshua Horton
657f6f4fbd fix(web): disabled autoaccept should not autohighlight suggestions 2025-01-29 10:56:10 +07:00
Joshua Horton
e97cd3094f fix(web): disabled correction state should prevent predictive corrections
Fixes: #12214
2025-01-29 10:12:53 +07:00
Joshua Horton
1c9b8ce150 chore(web): remove console-based breadcrumb per review request
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-01-27 15:39:22 +07:00
Joshua Horton
5d2d740cb0 fix(web): always return error for keyboard stub Cloud API error states
Fixes: #13043
Fixes: KEYMAN-COM-1BN
Fixes: HELP-KEYMAN-COM-DCA
2025-01-27 15:38:25 +07:00
Joshua Horton
a50d152e98
Merge pull request #13032 from keymanapp/fix/web/font-link-robustness
fix(web): fix handling of data: url fonts, fonts with single quotes in filename
2025-01-27 08:10:00 +07:00
Joshua Horton
ee7ca4c6e1 chore(web): also link issues near font-family fix 2025-01-24 13:27:02 +07:00
Joshua Horton
d74f5544fc chore(web): apply suggestion linking issue numbers
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-01-24 13:27:02 +07:00
Joshua Horton
d6b831cb67 fix(web): fix font-family name escaping 2025-01-24 13:27:02 +07:00