Commit graph

5745 commits

Author SHA1 Message Date
Marc Durdin
f55218fec6 chore: Merge remote-tracking branch 'origin/epic/web-core' into auto/A19S35-merge-base-into-web-core 2026-08-14 17:19:28 +02:00
Marc Durdin
85d7b398bc chore(web): add test for versionInfo.full
Test-bot: skip
2026-08-13 08:40:21 +02:00
Marc Durdin
1f82507730 docs(web): deprecate unused and obsolete API endpoints and docs cleanup
Deprecate the following obsolete functions and properties:
* `keyman.helpURL`
* `keyman.util.rgba`
* `keyman.util.toFloat`
* `keyman.util.toNumber`
* `keyman.util.toNzString`

Use correct language for code blocks in Keyman Engine for Web
documentation.

Test-bot: skip
2026-08-12 16:07:22 +02:00
Marc Durdin
b40c4b376b fix(web): cleanup loaduserinterface and unloaduserinterface events
The `loaduserinterface` and `unloaduserinterface` events were
incompletely implemented, and the documentation was incomplete. This
change:

1. ensures `loaduserinterface` is called any time a UI is set, either
   during initialization or when the property is set later.
2. ensures `unloaduserinterface` is called immediately before a UI is
   shutdown.
3. updates documentation
4. removes misleading commented code in kmwuifloat.ts

Test-bot: skip
2026-08-12 15:51:55 +02:00
Marc Durdin
f1361a94f0 feat(web): add keyman.versionInfo API
KeymanWeb has long had `keyman.build` and `keyman.version`. Neither of
these properties expose the full version string, and consumers are
forced to manipulate them to get a partial version string.

This change deprecates both these properties, and introduces a new
`keyman.versionInfo` property, which returns an object with all the
version information, most importantly `full`.

Update documentation and add a unit test for this, following the unit
test pattern established throughout Keyman of a unit test filename
matching the implementation class. The `KeymanEngineBase` class is a
little difficult to instantiate so this unit test module currently has
a minimal instantiation which provides enough to fulfill the one
included test.

Test-bot: skip
2026-08-12 11:07:31 +02:00
Eberhard Beilharz
58915062f8
docs(web): add language identifier to the code blocks of event docs
Build-bot: skip
Test-bot: skip
2026-08-10 14:17:56 +02:00
Eberhard Beilharz
e772775461
Merge pull request #16311 from keymanapp/refactor/web/setTargetDir
refactor(web): improve naming of `_SetTargetDir` function

`_SetTargetDir` deals with setting the text direction of the target, not the target directory. This change mainly renames the private function to `setTargetTextDirection`.
2026-08-10 13:53:56 +02:00
Marc Durdin
0e0c0be70d chore: Merge remote-tracking branch 'origin/epic/web-core' into auto/A19S34-merge-base-into-web-core 2026-08-10 11:58:50 +02:00
Eberhard Beilharz
870903dccb
refactor(web): fix return type of currentKeyboardSrcTextStore
`currentKeyboardSrcTextStore` can return `null` if the global
`textStore` should be used. This change reflects this in the return
type.

Build-bot: skip build:web
Test-bot: skip
2026-08-07 09:37:14 +02:00
Eberhard Beilharz
363f71e9de
refactor(web): improve naming of _SetTargetDir function
`_SetTargetDir` deals with setting the text direction of the target,
not the target directory. This change mainly renames the private function
to `setTargetTextDirection`.

Build-bot: skip build:web
Test-bot: skip
2026-08-07 08:54:22 +02:00
Eberhard Beilharz
1eb58c4ef8
chore(web): fire keyboardloaded event only once per keyboard
Previously we fired `keyboardloaded` twice for each loaded keyboard.
This change fixes this.

Fixes: #16292
Build-bot: skip build:web
Test-bot: skip
2026-08-03 17:50:11 +02:00
Eberhard Beilharz
21f744f44a
Merge pull request #16286 from keymanapp/refactor/web/contextManager
refactor(web): adjust function visibility and variable names
2026-07-30 15:51:50 +02:00
Eberhard Beilharz
8cad000e11
Merge pull request #16285 from keymanapp/chore/web/updateHelpLinks
chore(web): update help links to use latest version

This updates three in-code help links to point to `current-version` instead of an outdated version page.
2026-07-27 15:38:57 +02:00
Eberhard Beilharz
d9f572f92d
refactor(web): adjust function visibility and variable names
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
The functions are only used inside of the class, so this change makes
them private. Also update some variable names.

Test-bot: skip
2026-07-27 14:17:33 +02:00
Eberhard Beilharz
76058bcc52
chore(web): update help links to use latest version
This updates three in-code help links to point to `current-version`
instead of an outdated version page.

Build-bot: skip
Test-bot: skip
2026-07-27 13:22:04 +02:00
Eberhard Beilharz
f6eec08a66
fix(web): ignore exception trying to access cookie
This change works around the problem where third-party cookies are
blocked when using the keymanweb bookmark by ignoring the exception.
The cookie is used to store a previous state; if we ignore the exception
the user will always get the initial state of the keyboard, but at
least the bookmark is usable.

Fixes: #keymanapp/r.keymanweb.com/9
Build-bot: skip build:web
Test-bot: skip
2026-07-27 10:07:17 +02:00
Eberhard Beilharz
0f16f39e17
chore: Merge branch 'epic/web-core' into auto/A19S33-merge-master-into-web-core 2026-07-20 09:57:23 +02:00
Marc Durdin
8d533da167
Merge pull request #16225 from keymanapp/docs/web/typos
docs(web): fix typos following #16170
2026-07-20 10:32:34 +10:00
Marc Durdin
3852d354f7
Merge pull request #16221 from keymanapp/chore/web/stubAndKeyboardCacheScope
chore(web): declare scope for stubAndKeyboardCache members
2026-07-14 21:22:09 +10:00
Marc Durdin
0e076d5389 chore(web): declare scope for stubAndKeyboardCache members
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Also remove redundant `fetchKeyboardForStub` function, as it had only a
single use (and was not unit tested directly).

Test-bot: skip
2026-07-11 14:47:32 +02:00
Marc Durdin
b25005b7db docs(web): fix typos following #16170
Test-bot: skip
Build-bot: skip
Follows: #16170
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-07-11 09:23:20 +02:00
Marc Durdin
0d8e6ae929
Merge pull request #16171 from keymanapp/docs/web/16169-cleanup
docs(web): cleanup of index pages and page titles
2026-07-11 17:14:59 +10:00
Marc Durdin
07daf94555
Merge pull request #16170 from keymanapp/fix/web/16144-define-interfaces-for-imes-in-base
fix(web): define IME interfaces in `KeyboardInterfaceBase`
2026-07-11 00:25:31 +10:00
Marc Durdin
83328c904b fix(web): ensure onmouseleave does not crash if mouseEnterPromise is not set 2026-07-10 15:32:56 +02:00
Marc Durdin
4ab67f5812
Merge pull request #16127 from keymanapp/fix/developer/15217-resync-model-after-device-switch
fix(web): resync model in `set osk()` (as used by Server)
2026-07-09 18:50:11 +10:00
Joshua Horton
21c43452e0
Merge pull request #16209 from keymanapp/fix/auto-test-cookies-and-paths
fix(web): fixes cookie unit-tests and path for OSK resources during testing
2026-07-09 00:45:43 +07:00
Marc Durdin
34c6beb958
Merge pull request #16176 from keymanapp/chore/16172-remove-deprecated-html-metas
chore: remove deprecated "X-UA-Compatible" and "apple-mobile-web-app-capable" metas
2026-07-08 22:34:00 +10:00
Marc Durdin
c9bfc87828
Merge pull request #16174 from keymanapp/refactor/web/16168-ui-remove-keymanweb-variable
refactor(web): rename `keymanweb` to `keyman` in UI modules
2026-07-08 22:33:48 +10:00
Joshua Horton
81b0c0b706 fix(web): fixes cookie unit-tests and path for OSK resources during testing
Build-bot: skip build:web
Test-bot: skip
2026-07-06 11:13:24 -05:00
Marc Durdin
db881049e1 fix(developer): move osk banner resync from Server frontend to Web set osk
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
After review, it is better to do the sync of the model banner in
KeymanWeb `set osk()` than in the client of the API. The client should
be able to assign a new OSK and have it "just work" without needing to
attach things to it.

Fixes: #15217
2026-07-02 14:55:46 +02:00
Marc Durdin
a1bd0987a8
Merge branch 'master' into fix/web/16144-define-interfaces-for-imes-in-base
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-02 22:00:39 +10:00
Joshua Horton
824925a387
Merge pull request #16136 from keymanapp/fix/ios/load-via-scheme-handler 2026-07-01 21:57:37 +07:00
Marc Durdin
cda7dc6d24 chore: remove deprecated "X-UA-Compatible" and "apple-mobile-web-app-capable" metas
For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.

Fixes: #16172
Test-bot: skip
2026-07-01 10:27:22 +02:00
Marc Durdin
e6d86d7e04 refactor(web): rename keymanweb to keyman in UI modules
The variable name `keymanweb` used in the UI modules is confusing
because `KeymanWeb` also exists and points to something else. Rename to
`keyman` which just mirrors `window.keyman`.

Also fixup type declaration for toolbar `lastDismissalCallback`, which
did not match the assigned type.

Fixes: #16168
Test-bot: skip
2026-07-01 09:18:11 +02:00
Marc Durdin
d527e3739e docs(web): cleanup of index pages and page titles
Fixes: #16169
Test-bot: skip
2026-07-01 08:06:26 +02:00
Marc Durdin
0fc869faa4 fix(web): define IME interfaces in KeyboardInterfaceBase
Ensure that the IME interface methods are all defined for both browser
and webview modes. Deprecate 'Element' methods and replace with
'TextStore' to clarify return type. Add deprecation flags where needed
and update documentation accordingly.

Fixes: #16144
2026-07-01 07:43:08 +02:00
Eberhard Beilharz
a2150b17bf
Merge pull request #16108 from keymanapp/test/web/guide-examples
test(web): add e2e tests for examples from guide
2026-06-29 17:29:59 +02:00
Eberhard Beilharz
b805f66177
chore(android): address code review comment 2026-06-29 17:08:24 +02:00
Joshua Horton
eea463b18b fix(web): set proper font path for doc-keyboards 2026-06-29 09:38:03 -05:00
Marc Durdin
c2d72b7a03 fix(web): revert regression in setting activeKeyboard in set osk
Fixes: #16155
Test-bot: skip
2026-06-29 15:40:05 +02:00
Joshua Horton
b3ee271aee fix(ios): load host page, keyboards through a consistent WKURLSchemeHandler
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This bypasses any need to modify KMW keyboard loading (say, via .fetch), though it does require a number of collateral changes to be made in order for CORS, etc to be satisfied.

Build-bot: skip build:ios
2026-06-26 14:37:11 -05:00
Eberhard Beilharz
bda4b50e2a
test(web): add e2e tests for examples from guide
Build-bot: skip build:web
Test-bot: skip
2026-06-18 19:43:12 +02:00
Eberhard Beilharz
046100a5f8
Merge pull request #16067 from keymanapp/fix/web/validateForCustomKeyboard
fix(web): fix `KeyboardStub.validateForCustomKeyboard`

This change fixes a misleading error message in `validateForCustomKeyboard` - `KR` is not the region as the error implies - furthermore it doesn't make sense to check `KR` since it is the optional   [keyboard registration function](https://help.keyman.com/developer/engine/web/18.0/reference/interface/registerKeyboard),   so this change removes it.
2026-06-10 12:44:41 +02:00
Eberhard Beilharz
623a73242c
Merge pull request #16086 from keymanapp/chore/web/cleanup
chore(web): remove outdated `*_load.js` files

This change removes unused `*_load.js` files and inlines the code from `laokeys_load.js`. Current Keyman versions no longer produce _load.js files when compiling a keyboard, so these files were pretty outdated.
2026-06-10 08:14:07 +02:00
Eberhard Beilharz
0539582012
Merge pull request #16085 from keymanapp/docs/web/keyman17
docs(web): remove unnecessary mentioning of Keyman 17 from docs

Some pages were mentioning Keyman 17 although the content applies to newer versions as well. This change therefore removes the version number from those places.
2026-06-10 08:13:38 +02:00
Eberhard Beilharz
31843db6f9
Merge pull request #16083 from keymanapp/chore/web/kmxsample
chore(web): hide KMX keyboard test page
2026-06-10 08:13:13 +02:00
Eberhard Beilharz
9733ea4211
chore(web): remove outdated *_load.js files
This change removes unused `*_load.js` files and inlines the code from
`laokeys_load.js`. Current Keyman versions no longer produce _load.js
files when compiling a keyboard, so these files were pretty outdated.

Build-bot: skip build:web
Test-bot: skip
2026-06-09 18:42:47 +02:00
Eberhard Beilharz
52e6854d9f
Merge pull request #16070 from keymanapp/chore/web/improvedoc
chore(web): more improvements to documentation

- some small updates to the text
2026-06-09 18:19:00 +02:00
Eberhard Beilharz
a16e9b7f59
docs(web): remove unnecessary mentioning of Keyman 17 from docs
Some pages were mentioning Keyman 17 although the content applies to
newer versions as well. This change therefore removes the version
number from those places.

Build-bot: skip
Test-bot: skip
2026-06-09 18:16:59 +02:00
Eberhard Beilharz
517e9d26f3
Merge pull request #16064 from keymanapp/chore/web/449_rm_kmw
chore(web): improve the KeymanWeb integration documentation

- replace use of `kmw` with `keyman` 
- unify pattern to load keyboards: do it in `keyman.init().then()` instead   of in the document `onload`

Part-of: keymanapp/keyman.com#449
2026-06-09 18:08:15 +02:00